"Main interface for medialive type defs"
from __future__ import annotations

from typing import Any, Dict, List
from typing_extensions import TypedDict


__all__ = (
    "ChannelCreatedWaitWaiterConfigTypeDef",
    "ChannelDeletedWaitWaiterConfigTypeDef",
    "ChannelRunningWaitWaiterConfigTypeDef",
    "ChannelStoppedWaitWaiterConfigTypeDef",
    "ClientBatchUpdateScheduleCreatesScheduleActionsScheduleActionSettingsHlsTimedMetadataSettingsTypeDef",
    "ClientBatchUpdateScheduleCreatesScheduleActionsScheduleActionSettingsInputSwitchSettingsInputClippingSettingsStartTimecodeTypeDef",
    "ClientBatchUpdateScheduleCreatesScheduleActionsScheduleActionSettingsInputSwitchSettingsInputClippingSettingsStopTimecodeTypeDef",
    "ClientBatchUpdateScheduleCreatesScheduleActionsScheduleActionSettingsInputSwitchSettingsInputClippingSettingsTypeDef",
    "ClientBatchUpdateScheduleCreatesScheduleActionsScheduleActionSettingsInputSwitchSettingsTypeDef",
    "ClientBatchUpdateScheduleCreatesScheduleActionsScheduleActionSettingsPauseStateSettingsPipelinesTypeDef",
    "ClientBatchUpdateScheduleCreatesScheduleActionsScheduleActionSettingsPauseStateSettingsTypeDef",
    "ClientBatchUpdateScheduleCreatesScheduleActionsScheduleActionSettingsScte35ReturnToNetworkSettingsTypeDef",
    "ClientBatchUpdateScheduleCreatesScheduleActionsScheduleActionSettingsScte35SpliceInsertSettingsTypeDef",
    "ClientBatchUpdateScheduleCreatesScheduleActionsScheduleActionSettingsScte35TimeSignalSettingsScte35DescriptorsScte35DescriptorSettingsSegmentationDescriptorScte35DescriptorSettingsDeliveryRestrictionsTypeDef",
    "ClientBatchUpdateScheduleCreatesScheduleActionsScheduleActionSettingsScte35TimeSignalSettingsScte35DescriptorsScte35DescriptorSettingsSegmentationDescriptorScte35DescriptorSettingsTypeDef",
    "ClientBatchUpdateScheduleCreatesScheduleActionsScheduleActionSettingsScte35TimeSignalSettingsScte35DescriptorsScte35DescriptorSettingsTypeDef",
    "ClientBatchUpdateScheduleCreatesScheduleActionsScheduleActionSettingsScte35TimeSignalSettingsScte35DescriptorsTypeDef",
    "ClientBatchUpdateScheduleCreatesScheduleActionsScheduleActionSettingsScte35TimeSignalSettingsTypeDef",
    "ClientBatchUpdateScheduleCreatesScheduleActionsScheduleActionSettingsStaticImageActivateSettingsImageTypeDef",
    "ClientBatchUpdateScheduleCreatesScheduleActionsScheduleActionSettingsStaticImageActivateSettingsTypeDef",
    "ClientBatchUpdateScheduleCreatesScheduleActionsScheduleActionSettingsStaticImageDeactivateSettingsTypeDef",
    "ClientBatchUpdateScheduleCreatesScheduleActionsScheduleActionSettingsTypeDef",
    "ClientBatchUpdateScheduleCreatesScheduleActionsScheduleActionStartSettingsFixedModeScheduleActionStartSettingsTypeDef",
    "ClientBatchUpdateScheduleCreatesScheduleActionsScheduleActionStartSettingsFollowModeScheduleActionStartSettingsTypeDef",
    "ClientBatchUpdateScheduleCreatesScheduleActionsScheduleActionStartSettingsTypeDef",
    "ClientBatchUpdateScheduleCreatesScheduleActionsTypeDef",
    "ClientBatchUpdateScheduleCreatesTypeDef",
    "ClientBatchUpdateScheduleDeletesTypeDef",
    "ClientBatchUpdateScheduleResponseCreatesScheduleActionsScheduleActionSettingsHlsTimedMetadataSettingsTypeDef",
    "ClientBatchUpdateScheduleResponseCreatesScheduleActionsScheduleActionSettingsInputSwitchSettingsInputClippingSettingsStartTimecodeTypeDef",
    "ClientBatchUpdateScheduleResponseCreatesScheduleActionsScheduleActionSettingsInputSwitchSettingsInputClippingSettingsStopTimecodeTypeDef",
    "ClientBatchUpdateScheduleResponseCreatesScheduleActionsScheduleActionSettingsInputSwitchSettingsInputClippingSettingsTypeDef",
    "ClientBatchUpdateScheduleResponseCreatesScheduleActionsScheduleActionSettingsInputSwitchSettingsTypeDef",
    "ClientBatchUpdateScheduleResponseCreatesScheduleActionsScheduleActionSettingsPauseStateSettingsPipelinesTypeDef",
    "ClientBatchUpdateScheduleResponseCreatesScheduleActionsScheduleActionSettingsPauseStateSettingsTypeDef",
    "ClientBatchUpdateScheduleResponseCreatesScheduleActionsScheduleActionSettingsScte35ReturnToNetworkSettingsTypeDef",
    "ClientBatchUpdateScheduleResponseCreatesScheduleActionsScheduleActionSettingsScte35SpliceInsertSettingsTypeDef",
    "ClientBatchUpdateScheduleResponseCreatesScheduleActionsScheduleActionSettingsScte35TimeSignalSettingsScte35DescriptorsScte35DescriptorSettingsSegmentationDescriptorScte35DescriptorSettingsDeliveryRestrictionsTypeDef",
    "ClientBatchUpdateScheduleResponseCreatesScheduleActionsScheduleActionSettingsScte35TimeSignalSettingsScte35DescriptorsScte35DescriptorSettingsSegmentationDescriptorScte35DescriptorSettingsTypeDef",
    "ClientBatchUpdateScheduleResponseCreatesScheduleActionsScheduleActionSettingsScte35TimeSignalSettingsScte35DescriptorsScte35DescriptorSettingsTypeDef",
    "ClientBatchUpdateScheduleResponseCreatesScheduleActionsScheduleActionSettingsScte35TimeSignalSettingsScte35DescriptorsTypeDef",
    "ClientBatchUpdateScheduleResponseCreatesScheduleActionsScheduleActionSettingsScte35TimeSignalSettingsTypeDef",
    "ClientBatchUpdateScheduleResponseCreatesScheduleActionsScheduleActionSettingsStaticImageActivateSettingsImageTypeDef",
    "ClientBatchUpdateScheduleResponseCreatesScheduleActionsScheduleActionSettingsStaticImageActivateSettingsTypeDef",
    "ClientBatchUpdateScheduleResponseCreatesScheduleActionsScheduleActionSettingsStaticImageDeactivateSettingsTypeDef",
    "ClientBatchUpdateScheduleResponseCreatesScheduleActionsScheduleActionSettingsTypeDef",
    "ClientBatchUpdateScheduleResponseCreatesScheduleActionsScheduleActionStartSettingsFixedModeScheduleActionStartSettingsTypeDef",
    "ClientBatchUpdateScheduleResponseCreatesScheduleActionsScheduleActionStartSettingsFollowModeScheduleActionStartSettingsTypeDef",
    "ClientBatchUpdateScheduleResponseCreatesScheduleActionsScheduleActionStartSettingsTypeDef",
    "ClientBatchUpdateScheduleResponseCreatesScheduleActionsTypeDef",
    "ClientBatchUpdateScheduleResponseCreatesTypeDef",
    "ClientBatchUpdateScheduleResponseDeletesScheduleActionsScheduleActionSettingsHlsTimedMetadataSettingsTypeDef",
    "ClientBatchUpdateScheduleResponseDeletesScheduleActionsScheduleActionSettingsInputSwitchSettingsInputClippingSettingsStartTimecodeTypeDef",
    "ClientBatchUpdateScheduleResponseDeletesScheduleActionsScheduleActionSettingsInputSwitchSettingsInputClippingSettingsStopTimecodeTypeDef",
    "ClientBatchUpdateScheduleResponseDeletesScheduleActionsScheduleActionSettingsInputSwitchSettingsInputClippingSettingsTypeDef",
    "ClientBatchUpdateScheduleResponseDeletesScheduleActionsScheduleActionSettingsInputSwitchSettingsTypeDef",
    "ClientBatchUpdateScheduleResponseDeletesScheduleActionsScheduleActionSettingsPauseStateSettingsPipelinesTypeDef",
    "ClientBatchUpdateScheduleResponseDeletesScheduleActionsScheduleActionSettingsPauseStateSettingsTypeDef",
    "ClientBatchUpdateScheduleResponseDeletesScheduleActionsScheduleActionSettingsScte35ReturnToNetworkSettingsTypeDef",
    "ClientBatchUpdateScheduleResponseDeletesScheduleActionsScheduleActionSettingsScte35SpliceInsertSettingsTypeDef",
    "ClientBatchUpdateScheduleResponseDeletesScheduleActionsScheduleActionSettingsScte35TimeSignalSettingsScte35DescriptorsScte35DescriptorSettingsSegmentationDescriptorScte35DescriptorSettingsDeliveryRestrictionsTypeDef",
    "ClientBatchUpdateScheduleResponseDeletesScheduleActionsScheduleActionSettingsScte35TimeSignalSettingsScte35DescriptorsScte35DescriptorSettingsSegmentationDescriptorScte35DescriptorSettingsTypeDef",
    "ClientBatchUpdateScheduleResponseDeletesScheduleActionsScheduleActionSettingsScte35TimeSignalSettingsScte35DescriptorsScte35DescriptorSettingsTypeDef",
    "ClientBatchUpdateScheduleResponseDeletesScheduleActionsScheduleActionSettingsScte35TimeSignalSettingsScte35DescriptorsTypeDef",
    "ClientBatchUpdateScheduleResponseDeletesScheduleActionsScheduleActionSettingsScte35TimeSignalSettingsTypeDef",
    "ClientBatchUpdateScheduleResponseDeletesScheduleActionsScheduleActionSettingsStaticImageActivateSettingsImageTypeDef",
    "ClientBatchUpdateScheduleResponseDeletesScheduleActionsScheduleActionSettingsStaticImageActivateSettingsTypeDef",
    "ClientBatchUpdateScheduleResponseDeletesScheduleActionsScheduleActionSettingsStaticImageDeactivateSettingsTypeDef",
    "ClientBatchUpdateScheduleResponseDeletesScheduleActionsScheduleActionSettingsTypeDef",
    "ClientBatchUpdateScheduleResponseDeletesScheduleActionsScheduleActionStartSettingsFixedModeScheduleActionStartSettingsTypeDef",
    "ClientBatchUpdateScheduleResponseDeletesScheduleActionsScheduleActionStartSettingsFollowModeScheduleActionStartSettingsTypeDef",
    "ClientBatchUpdateScheduleResponseDeletesScheduleActionsScheduleActionStartSettingsTypeDef",
    "ClientBatchUpdateScheduleResponseDeletesScheduleActionsTypeDef",
    "ClientBatchUpdateScheduleResponseDeletesTypeDef",
    "ClientBatchUpdateScheduleResponseTypeDef",
    "ClientCreateChannelDestinationsMediaPackageSettingsTypeDef",
    "ClientCreateChannelDestinationsMultiplexSettingsTypeDef",
    "ClientCreateChannelDestinationsSettingsTypeDef",
    "ClientCreateChannelDestinationsTypeDef",
    "ClientCreateChannelEncoderSettingsAudioDescriptionsAudioNormalizationSettingsTypeDef",
    "ClientCreateChannelEncoderSettingsAudioDescriptionsCodecSettingsAacSettingsTypeDef",
    "ClientCreateChannelEncoderSettingsAudioDescriptionsCodecSettingsAc3SettingsTypeDef",
    "ClientCreateChannelEncoderSettingsAudioDescriptionsCodecSettingsEac3SettingsTypeDef",
    "ClientCreateChannelEncoderSettingsAudioDescriptionsCodecSettingsMp2SettingsTypeDef",
    "ClientCreateChannelEncoderSettingsAudioDescriptionsCodecSettingsTypeDef",
    "ClientCreateChannelEncoderSettingsAudioDescriptionsRemixSettingsChannelMappingsInputChannelLevelsTypeDef",
    "ClientCreateChannelEncoderSettingsAudioDescriptionsRemixSettingsChannelMappingsTypeDef",
    "ClientCreateChannelEncoderSettingsAudioDescriptionsRemixSettingsTypeDef",
    "ClientCreateChannelEncoderSettingsAudioDescriptionsTypeDef",
    "ClientCreateChannelEncoderSettingsAvailBlankingAvailBlankingImageTypeDef",
    "ClientCreateChannelEncoderSettingsAvailBlankingTypeDef",
    "ClientCreateChannelEncoderSettingsAvailConfigurationAvailSettingsScte35SpliceInsertTypeDef",
    "ClientCreateChannelEncoderSettingsAvailConfigurationAvailSettingsScte35TimeSignalAposTypeDef",
    "ClientCreateChannelEncoderSettingsAvailConfigurationAvailSettingsTypeDef",
    "ClientCreateChannelEncoderSettingsAvailConfigurationTypeDef",
    "ClientCreateChannelEncoderSettingsBlackoutSlateBlackoutSlateImageTypeDef",
    "ClientCreateChannelEncoderSettingsBlackoutSlateNetworkEndBlackoutImageTypeDef",
    "ClientCreateChannelEncoderSettingsBlackoutSlateTypeDef",
    "ClientCreateChannelEncoderSettingsCaptionDescriptionsDestinationSettingsBurnInDestinationSettingsFontTypeDef",
    "ClientCreateChannelEncoderSettingsCaptionDescriptionsDestinationSettingsBurnInDestinationSettingsTypeDef",
    "ClientCreateChannelEncoderSettingsCaptionDescriptionsDestinationSettingsDvbSubDestinationSettingsFontTypeDef",
    "ClientCreateChannelEncoderSettingsCaptionDescriptionsDestinationSettingsDvbSubDestinationSettingsTypeDef",
    "ClientCreateChannelEncoderSettingsCaptionDescriptionsDestinationSettingsTtmlDestinationSettingsTypeDef",
    "ClientCreateChannelEncoderSettingsCaptionDescriptionsDestinationSettingsTypeDef",
    "ClientCreateChannelEncoderSettingsCaptionDescriptionsTypeDef",
    "ClientCreateChannelEncoderSettingsGlobalConfigurationInputLossBehaviorInputLossImageSlateTypeDef",
    "ClientCreateChannelEncoderSettingsGlobalConfigurationInputLossBehaviorTypeDef",
    "ClientCreateChannelEncoderSettingsGlobalConfigurationTypeDef",
    "ClientCreateChannelEncoderSettingsNielsenConfigurationTypeDef",
    "ClientCreateChannelEncoderSettingsOutputGroupsOutputGroupSettingsArchiveGroupSettingsDestinationTypeDef",
    "ClientCreateChannelEncoderSettingsOutputGroupsOutputGroupSettingsArchiveGroupSettingsTypeDef",
    "ClientCreateChannelEncoderSettingsOutputGroupsOutputGroupSettingsFrameCaptureGroupSettingsDestinationTypeDef",
    "ClientCreateChannelEncoderSettingsOutputGroupsOutputGroupSettingsFrameCaptureGroupSettingsTypeDef",
    "ClientCreateChannelEncoderSettingsOutputGroupsOutputGroupSettingsHlsGroupSettingsCaptionLanguageMappingsTypeDef",
    "ClientCreateChannelEncoderSettingsOutputGroupsOutputGroupSettingsHlsGroupSettingsDestinationTypeDef",
    "ClientCreateChannelEncoderSettingsOutputGroupsOutputGroupSettingsHlsGroupSettingsHlsCdnSettingsHlsAkamaiSettingsTypeDef",
    "ClientCreateChannelEncoderSettingsOutputGroupsOutputGroupSettingsHlsGroupSettingsHlsCdnSettingsHlsBasicPutSettingsTypeDef",
    "ClientCreateChannelEncoderSettingsOutputGroupsOutputGroupSettingsHlsGroupSettingsHlsCdnSettingsHlsMediaStoreSettingsTypeDef",
    "ClientCreateChannelEncoderSettingsOutputGroupsOutputGroupSettingsHlsGroupSettingsHlsCdnSettingsHlsWebdavSettingsTypeDef",
    "ClientCreateChannelEncoderSettingsOutputGroupsOutputGroupSettingsHlsGroupSettingsHlsCdnSettingsTypeDef",
    "ClientCreateChannelEncoderSettingsOutputGroupsOutputGroupSettingsHlsGroupSettingsKeyProviderSettingsStaticKeySettingsKeyProviderServerTypeDef",
    "ClientCreateChannelEncoderSettingsOutputGroupsOutputGroupSettingsHlsGroupSettingsKeyProviderSettingsStaticKeySettingsTypeDef",
    "ClientCreateChannelEncoderSettingsOutputGroupsOutputGroupSettingsHlsGroupSettingsKeyProviderSettingsTypeDef",
    "ClientCreateChannelEncoderSettingsOutputGroupsOutputGroupSettingsHlsGroupSettingsTypeDef",
    "ClientCreateChannelEncoderSettingsOutputGroupsOutputGroupSettingsMediaPackageGroupSettingsDestinationTypeDef",
    "ClientCreateChannelEncoderSettingsOutputGroupsOutputGroupSettingsMediaPackageGroupSettingsTypeDef",
    "ClientCreateChannelEncoderSettingsOutputGroupsOutputGroupSettingsMsSmoothGroupSettingsDestinationTypeDef",
    "ClientCreateChannelEncoderSettingsOutputGroupsOutputGroupSettingsMsSmoothGroupSettingsTypeDef",
    "ClientCreateChannelEncoderSettingsOutputGroupsOutputGroupSettingsRtmpGroupSettingsTypeDef",
    "ClientCreateChannelEncoderSettingsOutputGroupsOutputGroupSettingsUdpGroupSettingsTypeDef",
    "ClientCreateChannelEncoderSettingsOutputGroupsOutputGroupSettingsTypeDef",
    "ClientCreateChannelEncoderSettingsOutputGroupsOutputsOutputSettingsArchiveOutputSettingsContainerSettingsM2tsSettingsDvbNitSettingsTypeDef",
    "ClientCreateChannelEncoderSettingsOutputGroupsOutputsOutputSettingsArchiveOutputSettingsContainerSettingsM2tsSettingsDvbSdtSettingsTypeDef",
    "ClientCreateChannelEncoderSettingsOutputGroupsOutputsOutputSettingsArchiveOutputSettingsContainerSettingsM2tsSettingsDvbTdtSettingsTypeDef",
    "ClientCreateChannelEncoderSettingsOutputGroupsOutputsOutputSettingsArchiveOutputSettingsContainerSettingsM2tsSettingsTypeDef",
    "ClientCreateChannelEncoderSettingsOutputGroupsOutputsOutputSettingsArchiveOutputSettingsContainerSettingsTypeDef",
    "ClientCreateChannelEncoderSettingsOutputGroupsOutputsOutputSettingsArchiveOutputSettingsTypeDef",
    "ClientCreateChannelEncoderSettingsOutputGroupsOutputsOutputSettingsFrameCaptureOutputSettingsTypeDef",
    "ClientCreateChannelEncoderSettingsOutputGroupsOutputsOutputSettingsHlsOutputSettingsHlsSettingsAudioOnlyHlsSettingsAudioOnlyImageTypeDef",
    "ClientCreateChannelEncoderSettingsOutputGroupsOutputsOutputSettingsHlsOutputSettingsHlsSettingsAudioOnlyHlsSettingsTypeDef",
    "ClientCreateChannelEncoderSettingsOutputGroupsOutputsOutputSettingsHlsOutputSettingsHlsSettingsStandardHlsSettingsM3u8SettingsTypeDef",
    "ClientCreateChannelEncoderSettingsOutputGroupsOutputsOutputSettingsHlsOutputSettingsHlsSettingsStandardHlsSettingsTypeDef",
    "ClientCreateChannelEncoderSettingsOutputGroupsOutputsOutputSettingsHlsOutputSettingsHlsSettingsTypeDef",
    "ClientCreateChannelEncoderSettingsOutputGroupsOutputsOutputSettingsHlsOutputSettingsTypeDef",
    "ClientCreateChannelEncoderSettingsOutputGroupsOutputsOutputSettingsMsSmoothOutputSettingsTypeDef",
    "ClientCreateChannelEncoderSettingsOutputGroupsOutputsOutputSettingsMultiplexOutputSettingsDestinationTypeDef",
    "ClientCreateChannelEncoderSettingsOutputGroupsOutputsOutputSettingsMultiplexOutputSettingsTypeDef",
    "ClientCreateChannelEncoderSettingsOutputGroupsOutputsOutputSettingsRtmpOutputSettingsDestinationTypeDef",
    "ClientCreateChannelEncoderSettingsOutputGroupsOutputsOutputSettingsRtmpOutputSettingsTypeDef",
    "ClientCreateChannelEncoderSettingsOutputGroupsOutputsOutputSettingsUdpOutputSettingsContainerSettingsM2tsSettingsDvbNitSettingsTypeDef",
    "ClientCreateChannelEncoderSettingsOutputGroupsOutputsOutputSettingsUdpOutputSettingsContainerSettingsM2tsSettingsDvbSdtSettingsTypeDef",
    "ClientCreateChannelEncoderSettingsOutputGroupsOutputsOutputSettingsUdpOutputSettingsContainerSettingsM2tsSettingsDvbTdtSettingsTypeDef",
    "ClientCreateChannelEncoderSettingsOutputGroupsOutputsOutputSettingsUdpOutputSettingsContainerSettingsM2tsSettingsTypeDef",
    "ClientCreateChannelEncoderSettingsOutputGroupsOutputsOutputSettingsUdpOutputSettingsContainerSettingsTypeDef",
    "ClientCreateChannelEncoderSettingsOutputGroupsOutputsOutputSettingsUdpOutputSettingsDestinationTypeDef",
    "ClientCreateChannelEncoderSettingsOutputGroupsOutputsOutputSettingsUdpOutputSettingsFecOutputSettingsTypeDef",
    "ClientCreateChannelEncoderSettingsOutputGroupsOutputsOutputSettingsUdpOutputSettingsTypeDef",
    "ClientCreateChannelEncoderSettingsOutputGroupsOutputsOutputSettingsTypeDef",
    "ClientCreateChannelEncoderSettingsOutputGroupsOutputsTypeDef",
    "ClientCreateChannelEncoderSettingsOutputGroupsTypeDef",
    "ClientCreateChannelEncoderSettingsTimecodeConfigTypeDef",
    "ClientCreateChannelEncoderSettingsVideoDescriptionsCodecSettingsFrameCaptureSettingsTypeDef",
    "ClientCreateChannelEncoderSettingsVideoDescriptionsCodecSettingsH264SettingsColorSpaceSettingsTypeDef",
    "ClientCreateChannelEncoderSettingsVideoDescriptionsCodecSettingsH264SettingsTypeDef",
    "ClientCreateChannelEncoderSettingsVideoDescriptionsCodecSettingsH265SettingsColorSpaceSettingsHdr10SettingsTypeDef",
    "ClientCreateChannelEncoderSettingsVideoDescriptionsCodecSettingsH265SettingsColorSpaceSettingsTypeDef",
    "ClientCreateChannelEncoderSettingsVideoDescriptionsCodecSettingsH265SettingsTypeDef",
    "ClientCreateChannelEncoderSettingsVideoDescriptionsCodecSettingsTypeDef",
    "ClientCreateChannelEncoderSettingsVideoDescriptionsTypeDef",
    "ClientCreateChannelEncoderSettingsTypeDef",
    "ClientCreateChannelInputAttachmentsInputSettingsAudioSelectorsSelectorSettingsAudioLanguageSelectionTypeDef",
    "ClientCreateChannelInputAttachmentsInputSettingsAudioSelectorsSelectorSettingsAudioPidSelectionTypeDef",
    "ClientCreateChannelInputAttachmentsInputSettingsAudioSelectorsSelectorSettingsTypeDef",
    "ClientCreateChannelInputAttachmentsInputSettingsAudioSelectorsTypeDef",
    "ClientCreateChannelInputAttachmentsInputSettingsCaptionSelectorsSelectorSettingsDvbSubSourceSettingsTypeDef",
    "ClientCreateChannelInputAttachmentsInputSettingsCaptionSelectorsSelectorSettingsEmbeddedSourceSettingsTypeDef",
    "ClientCreateChannelInputAttachmentsInputSettingsCaptionSelectorsSelectorSettingsScte20SourceSettingsTypeDef",
    "ClientCreateChannelInputAttachmentsInputSettingsCaptionSelectorsSelectorSettingsScte27SourceSettingsTypeDef",
    "ClientCreateChannelInputAttachmentsInputSettingsCaptionSelectorsSelectorSettingsTeletextSourceSettingsTypeDef",
    "ClientCreateChannelInputAttachmentsInputSettingsCaptionSelectorsSelectorSettingsTypeDef",
    "ClientCreateChannelInputAttachmentsInputSettingsCaptionSelectorsTypeDef",
    "ClientCreateChannelInputAttachmentsInputSettingsNetworkInputSettingsHlsInputSettingsTypeDef",
    "ClientCreateChannelInputAttachmentsInputSettingsNetworkInputSettingsTypeDef",
    "ClientCreateChannelInputAttachmentsInputSettingsVideoSelectorSelectorSettingsVideoSelectorPidTypeDef",
    "ClientCreateChannelInputAttachmentsInputSettingsVideoSelectorSelectorSettingsVideoSelectorProgramIdTypeDef",
    "ClientCreateChannelInputAttachmentsInputSettingsVideoSelectorSelectorSettingsTypeDef",
    "ClientCreateChannelInputAttachmentsInputSettingsVideoSelectorTypeDef",
    "ClientCreateChannelInputAttachmentsInputSettingsTypeDef",
    "ClientCreateChannelInputAttachmentsTypeDef",
    "ClientCreateChannelInputSpecificationTypeDef",
    "ClientCreateChannelResponseChannelDestinationsMediaPackageSettingsTypeDef",
    "ClientCreateChannelResponseChannelDestinationsMultiplexSettingsTypeDef",
    "ClientCreateChannelResponseChannelDestinationsSettingsTypeDef",
    "ClientCreateChannelResponseChannelDestinationsTypeDef",
    "ClientCreateChannelResponseChannelEgressEndpointsTypeDef",
    "ClientCreateChannelResponseChannelEncoderSettingsAudioDescriptionsAudioNormalizationSettingsTypeDef",
    "ClientCreateChannelResponseChannelEncoderSettingsAudioDescriptionsCodecSettingsAacSettingsTypeDef",
    "ClientCreateChannelResponseChannelEncoderSettingsAudioDescriptionsCodecSettingsAc3SettingsTypeDef",
    "ClientCreateChannelResponseChannelEncoderSettingsAudioDescriptionsCodecSettingsEac3SettingsTypeDef",
    "ClientCreateChannelResponseChannelEncoderSettingsAudioDescriptionsCodecSettingsMp2SettingsTypeDef",
    "ClientCreateChannelResponseChannelEncoderSettingsAudioDescriptionsCodecSettingsTypeDef",
    "ClientCreateChannelResponseChannelEncoderSettingsAudioDescriptionsRemixSettingsChannelMappingsInputChannelLevelsTypeDef",
    "ClientCreateChannelResponseChannelEncoderSettingsAudioDescriptionsRemixSettingsChannelMappingsTypeDef",
    "ClientCreateChannelResponseChannelEncoderSettingsAudioDescriptionsRemixSettingsTypeDef",
    "ClientCreateChannelResponseChannelEncoderSettingsAudioDescriptionsTypeDef",
    "ClientCreateChannelResponseChannelEncoderSettingsAvailBlankingAvailBlankingImageTypeDef",
    "ClientCreateChannelResponseChannelEncoderSettingsAvailBlankingTypeDef",
    "ClientCreateChannelResponseChannelEncoderSettingsAvailConfigurationAvailSettingsScte35SpliceInsertTypeDef",
    "ClientCreateChannelResponseChannelEncoderSettingsAvailConfigurationAvailSettingsScte35TimeSignalAposTypeDef",
    "ClientCreateChannelResponseChannelEncoderSettingsAvailConfigurationAvailSettingsTypeDef",
    "ClientCreateChannelResponseChannelEncoderSettingsAvailConfigurationTypeDef",
    "ClientCreateChannelResponseChannelEncoderSettingsBlackoutSlateBlackoutSlateImageTypeDef",
    "ClientCreateChannelResponseChannelEncoderSettingsBlackoutSlateNetworkEndBlackoutImageTypeDef",
    "ClientCreateChannelResponseChannelEncoderSettingsBlackoutSlateTypeDef",
    "ClientCreateChannelResponseChannelEncoderSettingsCaptionDescriptionsDestinationSettingsBurnInDestinationSettingsFontTypeDef",
    "ClientCreateChannelResponseChannelEncoderSettingsCaptionDescriptionsDestinationSettingsBurnInDestinationSettingsTypeDef",
    "ClientCreateChannelResponseChannelEncoderSettingsCaptionDescriptionsDestinationSettingsDvbSubDestinationSettingsFontTypeDef",
    "ClientCreateChannelResponseChannelEncoderSettingsCaptionDescriptionsDestinationSettingsDvbSubDestinationSettingsTypeDef",
    "ClientCreateChannelResponseChannelEncoderSettingsCaptionDescriptionsDestinationSettingsTtmlDestinationSettingsTypeDef",
    "ClientCreateChannelResponseChannelEncoderSettingsCaptionDescriptionsDestinationSettingsTypeDef",
    "ClientCreateChannelResponseChannelEncoderSettingsCaptionDescriptionsTypeDef",
    "ClientCreateChannelResponseChannelEncoderSettingsGlobalConfigurationInputLossBehaviorInputLossImageSlateTypeDef",
    "ClientCreateChannelResponseChannelEncoderSettingsGlobalConfigurationInputLossBehaviorTypeDef",
    "ClientCreateChannelResponseChannelEncoderSettingsGlobalConfigurationTypeDef",
    "ClientCreateChannelResponseChannelEncoderSettingsNielsenConfigurationTypeDef",
    "ClientCreateChannelResponseChannelEncoderSettingsOutputGroupsOutputGroupSettingsArchiveGroupSettingsDestinationTypeDef",
    "ClientCreateChannelResponseChannelEncoderSettingsOutputGroupsOutputGroupSettingsArchiveGroupSettingsTypeDef",
    "ClientCreateChannelResponseChannelEncoderSettingsOutputGroupsOutputGroupSettingsFrameCaptureGroupSettingsDestinationTypeDef",
    "ClientCreateChannelResponseChannelEncoderSettingsOutputGroupsOutputGroupSettingsFrameCaptureGroupSettingsTypeDef",
    "ClientCreateChannelResponseChannelEncoderSettingsOutputGroupsOutputGroupSettingsHlsGroupSettingsCaptionLanguageMappingsTypeDef",
    "ClientCreateChannelResponseChannelEncoderSettingsOutputGroupsOutputGroupSettingsHlsGroupSettingsDestinationTypeDef",
    "ClientCreateChannelResponseChannelEncoderSettingsOutputGroupsOutputGroupSettingsHlsGroupSettingsHlsCdnSettingsHlsAkamaiSettingsTypeDef",
    "ClientCreateChannelResponseChannelEncoderSettingsOutputGroupsOutputGroupSettingsHlsGroupSettingsHlsCdnSettingsHlsBasicPutSettingsTypeDef",
    "ClientCreateChannelResponseChannelEncoderSettingsOutputGroupsOutputGroupSettingsHlsGroupSettingsHlsCdnSettingsHlsMediaStoreSettingsTypeDef",
    "ClientCreateChannelResponseChannelEncoderSettingsOutputGroupsOutputGroupSettingsHlsGroupSettingsHlsCdnSettingsHlsWebdavSettingsTypeDef",
    "ClientCreateChannelResponseChannelEncoderSettingsOutputGroupsOutputGroupSettingsHlsGroupSettingsHlsCdnSettingsTypeDef",
    "ClientCreateChannelResponseChannelEncoderSettingsOutputGroupsOutputGroupSettingsHlsGroupSettingsKeyProviderSettingsStaticKeySettingsKeyProviderServerTypeDef",
    "ClientCreateChannelResponseChannelEncoderSettingsOutputGroupsOutputGroupSettingsHlsGroupSettingsKeyProviderSettingsStaticKeySettingsTypeDef",
    "ClientCreateChannelResponseChannelEncoderSettingsOutputGroupsOutputGroupSettingsHlsGroupSettingsKeyProviderSettingsTypeDef",
    "ClientCreateChannelResponseChannelEncoderSettingsOutputGroupsOutputGroupSettingsHlsGroupSettingsTypeDef",
    "ClientCreateChannelResponseChannelEncoderSettingsOutputGroupsOutputGroupSettingsMediaPackageGroupSettingsDestinationTypeDef",
    "ClientCreateChannelResponseChannelEncoderSettingsOutputGroupsOutputGroupSettingsMediaPackageGroupSettingsTypeDef",
    "ClientCreateChannelResponseChannelEncoderSettingsOutputGroupsOutputGroupSettingsMsSmoothGroupSettingsDestinationTypeDef",
    "ClientCreateChannelResponseChannelEncoderSettingsOutputGroupsOutputGroupSettingsMsSmoothGroupSettingsTypeDef",
    "ClientCreateChannelResponseChannelEncoderSettingsOutputGroupsOutputGroupSettingsRtmpGroupSettingsTypeDef",
    "ClientCreateChannelResponseChannelEncoderSettingsOutputGroupsOutputGroupSettingsUdpGroupSettingsTypeDef",
    "ClientCreateChannelResponseChannelEncoderSettingsOutputGroupsOutputGroupSettingsTypeDef",
    "ClientCreateChannelResponseChannelEncoderSettingsOutputGroupsOutputsOutputSettingsArchiveOutputSettingsContainerSettingsM2tsSettingsDvbNitSettingsTypeDef",
    "ClientCreateChannelResponseChannelEncoderSettingsOutputGroupsOutputsOutputSettingsArchiveOutputSettingsContainerSettingsM2tsSettingsDvbSdtSettingsTypeDef",
    "ClientCreateChannelResponseChannelEncoderSettingsOutputGroupsOutputsOutputSettingsArchiveOutputSettingsContainerSettingsM2tsSettingsDvbTdtSettingsTypeDef",
    "ClientCreateChannelResponseChannelEncoderSettingsOutputGroupsOutputsOutputSettingsArchiveOutputSettingsContainerSettingsM2tsSettingsTypeDef",
    "ClientCreateChannelResponseChannelEncoderSettingsOutputGroupsOutputsOutputSettingsArchiveOutputSettingsContainerSettingsTypeDef",
    "ClientCreateChannelResponseChannelEncoderSettingsOutputGroupsOutputsOutputSettingsArchiveOutputSettingsTypeDef",
    "ClientCreateChannelResponseChannelEncoderSettingsOutputGroupsOutputsOutputSettingsFrameCaptureOutputSettingsTypeDef",
    "ClientCreateChannelResponseChannelEncoderSettingsOutputGroupsOutputsOutputSettingsHlsOutputSettingsHlsSettingsAudioOnlyHlsSettingsAudioOnlyImageTypeDef",
    "ClientCreateChannelResponseChannelEncoderSettingsOutputGroupsOutputsOutputSettingsHlsOutputSettingsHlsSettingsAudioOnlyHlsSettingsTypeDef",
    "ClientCreateChannelResponseChannelEncoderSettingsOutputGroupsOutputsOutputSettingsHlsOutputSettingsHlsSettingsStandardHlsSettingsM3u8SettingsTypeDef",
    "ClientCreateChannelResponseChannelEncoderSettingsOutputGroupsOutputsOutputSettingsHlsOutputSettingsHlsSettingsStandardHlsSettingsTypeDef",
    "ClientCreateChannelResponseChannelEncoderSettingsOutputGroupsOutputsOutputSettingsHlsOutputSettingsHlsSettingsTypeDef",
    "ClientCreateChannelResponseChannelEncoderSettingsOutputGroupsOutputsOutputSettingsHlsOutputSettingsTypeDef",
    "ClientCreateChannelResponseChannelEncoderSettingsOutputGroupsOutputsOutputSettingsMsSmoothOutputSettingsTypeDef",
    "ClientCreateChannelResponseChannelEncoderSettingsOutputGroupsOutputsOutputSettingsMultiplexOutputSettingsDestinationTypeDef",
    "ClientCreateChannelResponseChannelEncoderSettingsOutputGroupsOutputsOutputSettingsMultiplexOutputSettingsTypeDef",
    "ClientCreateChannelResponseChannelEncoderSettingsOutputGroupsOutputsOutputSettingsRtmpOutputSettingsDestinationTypeDef",
    "ClientCreateChannelResponseChannelEncoderSettingsOutputGroupsOutputsOutputSettingsRtmpOutputSettingsTypeDef",
    "ClientCreateChannelResponseChannelEncoderSettingsOutputGroupsOutputsOutputSettingsUdpOutputSettingsContainerSettingsM2tsSettingsDvbNitSettingsTypeDef",
    "ClientCreateChannelResponseChannelEncoderSettingsOutputGroupsOutputsOutputSettingsUdpOutputSettingsContainerSettingsM2tsSettingsDvbSdtSettingsTypeDef",
    "ClientCreateChannelResponseChannelEncoderSettingsOutputGroupsOutputsOutputSettingsUdpOutputSettingsContainerSettingsM2tsSettingsDvbTdtSettingsTypeDef",
    "ClientCreateChannelResponseChannelEncoderSettingsOutputGroupsOutputsOutputSettingsUdpOutputSettingsContainerSettingsM2tsSettingsTypeDef",
    "ClientCreateChannelResponseChannelEncoderSettingsOutputGroupsOutputsOutputSettingsUdpOutputSettingsContainerSettingsTypeDef",
    "ClientCreateChannelResponseChannelEncoderSettingsOutputGroupsOutputsOutputSettingsUdpOutputSettingsDestinationTypeDef",
    "ClientCreateChannelResponseChannelEncoderSettingsOutputGroupsOutputsOutputSettingsUdpOutputSettingsFecOutputSettingsTypeDef",
    "ClientCreateChannelResponseChannelEncoderSettingsOutputGroupsOutputsOutputSettingsUdpOutputSettingsTypeDef",
    "ClientCreateChannelResponseChannelEncoderSettingsOutputGroupsOutputsOutputSettingsTypeDef",
    "ClientCreateChannelResponseChannelEncoderSettingsOutputGroupsOutputsTypeDef",
    "ClientCreateChannelResponseChannelEncoderSettingsOutputGroupsTypeDef",
    "ClientCreateChannelResponseChannelEncoderSettingsTimecodeConfigTypeDef",
    "ClientCreateChannelResponseChannelEncoderSettingsVideoDescriptionsCodecSettingsFrameCaptureSettingsTypeDef",
    "ClientCreateChannelResponseChannelEncoderSettingsVideoDescriptionsCodecSettingsH264SettingsColorSpaceSettingsTypeDef",
    "ClientCreateChannelResponseChannelEncoderSettingsVideoDescriptionsCodecSettingsH264SettingsTypeDef",
    "ClientCreateChannelResponseChannelEncoderSettingsVideoDescriptionsCodecSettingsH265SettingsColorSpaceSettingsHdr10SettingsTypeDef",
    "ClientCreateChannelResponseChannelEncoderSettingsVideoDescriptionsCodecSettingsH265SettingsColorSpaceSettingsTypeDef",
    "ClientCreateChannelResponseChannelEncoderSettingsVideoDescriptionsCodecSettingsH265SettingsTypeDef",
    "ClientCreateChannelResponseChannelEncoderSettingsVideoDescriptionsCodecSettingsTypeDef",
    "ClientCreateChannelResponseChannelEncoderSettingsVideoDescriptionsTypeDef",
    "ClientCreateChannelResponseChannelEncoderSettingsTypeDef",
    "ClientCreateChannelResponseChannelInputAttachmentsInputSettingsAudioSelectorsSelectorSettingsAudioLanguageSelectionTypeDef",
    "ClientCreateChannelResponseChannelInputAttachmentsInputSettingsAudioSelectorsSelectorSettingsAudioPidSelectionTypeDef",
    "ClientCreateChannelResponseChannelInputAttachmentsInputSettingsAudioSelectorsSelectorSettingsTypeDef",
    "ClientCreateChannelResponseChannelInputAttachmentsInputSettingsAudioSelectorsTypeDef",
    "ClientCreateChannelResponseChannelInputAttachmentsInputSettingsCaptionSelectorsSelectorSettingsDvbSubSourceSettingsTypeDef",
    "ClientCreateChannelResponseChannelInputAttachmentsInputSettingsCaptionSelectorsSelectorSettingsEmbeddedSourceSettingsTypeDef",
    "ClientCreateChannelResponseChannelInputAttachmentsInputSettingsCaptionSelectorsSelectorSettingsScte20SourceSettingsTypeDef",
    "ClientCreateChannelResponseChannelInputAttachmentsInputSettingsCaptionSelectorsSelectorSettingsScte27SourceSettingsTypeDef",
    "ClientCreateChannelResponseChannelInputAttachmentsInputSettingsCaptionSelectorsSelectorSettingsTeletextSourceSettingsTypeDef",
    "ClientCreateChannelResponseChannelInputAttachmentsInputSettingsCaptionSelectorsSelectorSettingsTypeDef",
    "ClientCreateChannelResponseChannelInputAttachmentsInputSettingsCaptionSelectorsTypeDef",
    "ClientCreateChannelResponseChannelInputAttachmentsInputSettingsNetworkInputSettingsHlsInputSettingsTypeDef",
    "ClientCreateChannelResponseChannelInputAttachmentsInputSettingsNetworkInputSettingsTypeDef",
    "ClientCreateChannelResponseChannelInputAttachmentsInputSettingsVideoSelectorSelectorSettingsVideoSelectorPidTypeDef",
    "ClientCreateChannelResponseChannelInputAttachmentsInputSettingsVideoSelectorSelectorSettingsVideoSelectorProgramIdTypeDef",
    "ClientCreateChannelResponseChannelInputAttachmentsInputSettingsVideoSelectorSelectorSettingsTypeDef",
    "ClientCreateChannelResponseChannelInputAttachmentsInputSettingsVideoSelectorTypeDef",
    "ClientCreateChannelResponseChannelInputAttachmentsInputSettingsTypeDef",
    "ClientCreateChannelResponseChannelInputAttachmentsTypeDef",
    "ClientCreateChannelResponseChannelInputSpecificationTypeDef",
    "ClientCreateChannelResponseChannelPipelineDetailsTypeDef",
    "ClientCreateChannelResponseChannelTypeDef",
    "ClientCreateChannelResponseTypeDef",
    "ClientCreateInputDestinationsTypeDef",
    "ClientCreateInputMediaConnectFlowsTypeDef",
    "ClientCreateInputResponseInputDestinationsVpcTypeDef",
    "ClientCreateInputResponseInputDestinationsTypeDef",
    "ClientCreateInputResponseInputMediaConnectFlowsTypeDef",
    "ClientCreateInputResponseInputSourcesTypeDef",
    "ClientCreateInputResponseInputTypeDef",
    "ClientCreateInputResponseTypeDef",
    "ClientCreateInputSecurityGroupResponseSecurityGroupWhitelistRulesTypeDef",
    "ClientCreateInputSecurityGroupResponseSecurityGroupTypeDef",
    "ClientCreateInputSecurityGroupResponseTypeDef",
    "ClientCreateInputSecurityGroupWhitelistRulesTypeDef",
    "ClientCreateInputSourcesTypeDef",
    "ClientCreateInputVpcTypeDef",
    "ClientCreateMultiplexMultiplexSettingsTypeDef",
    "ClientCreateMultiplexProgramMultiplexProgramSettingsServiceDescriptorTypeDef",
    "ClientCreateMultiplexProgramMultiplexProgramSettingsVideoSettingsStatmuxSettingsTypeDef",
    "ClientCreateMultiplexProgramMultiplexProgramSettingsVideoSettingsTypeDef",
    "ClientCreateMultiplexProgramMultiplexProgramSettingsTypeDef",
    "ClientCreateMultiplexProgramResponseMultiplexProgramMultiplexProgramSettingsServiceDescriptorTypeDef",
    "ClientCreateMultiplexProgramResponseMultiplexProgramMultiplexProgramSettingsVideoSettingsStatmuxSettingsTypeDef",
    "ClientCreateMultiplexProgramResponseMultiplexProgramMultiplexProgramSettingsVideoSettingsTypeDef",
    "ClientCreateMultiplexProgramResponseMultiplexProgramMultiplexProgramSettingsTypeDef",
    "ClientCreateMultiplexProgramResponseMultiplexProgramPacketIdentifiersMapTypeDef",
    "ClientCreateMultiplexProgramResponseMultiplexProgramTypeDef",
    "ClientCreateMultiplexProgramResponseTypeDef",
    "ClientCreateMultiplexResponseMultiplexDestinationsMediaConnectSettingsTypeDef",
    "ClientCreateMultiplexResponseMultiplexDestinationsTypeDef",
    "ClientCreateMultiplexResponseMultiplexMultiplexSettingsTypeDef",
    "ClientCreateMultiplexResponseMultiplexTypeDef",
    "ClientCreateMultiplexResponseTypeDef",
    "ClientDeleteChannelResponseDestinationsMediaPackageSettingsTypeDef",
    "ClientDeleteChannelResponseDestinationsMultiplexSettingsTypeDef",
    "ClientDeleteChannelResponseDestinationsSettingsTypeDef",
    "ClientDeleteChannelResponseDestinationsTypeDef",
    "ClientDeleteChannelResponseEgressEndpointsTypeDef",
    "ClientDeleteChannelResponseEncoderSettingsAudioDescriptionsAudioNormalizationSettingsTypeDef",
    "ClientDeleteChannelResponseEncoderSettingsAudioDescriptionsCodecSettingsAacSettingsTypeDef",
    "ClientDeleteChannelResponseEncoderSettingsAudioDescriptionsCodecSettingsAc3SettingsTypeDef",
    "ClientDeleteChannelResponseEncoderSettingsAudioDescriptionsCodecSettingsEac3SettingsTypeDef",
    "ClientDeleteChannelResponseEncoderSettingsAudioDescriptionsCodecSettingsMp2SettingsTypeDef",
    "ClientDeleteChannelResponseEncoderSettingsAudioDescriptionsCodecSettingsTypeDef",
    "ClientDeleteChannelResponseEncoderSettingsAudioDescriptionsRemixSettingsChannelMappingsInputChannelLevelsTypeDef",
    "ClientDeleteChannelResponseEncoderSettingsAudioDescriptionsRemixSettingsChannelMappingsTypeDef",
    "ClientDeleteChannelResponseEncoderSettingsAudioDescriptionsRemixSettingsTypeDef",
    "ClientDeleteChannelResponseEncoderSettingsAudioDescriptionsTypeDef",
    "ClientDeleteChannelResponseEncoderSettingsAvailBlankingAvailBlankingImageTypeDef",
    "ClientDeleteChannelResponseEncoderSettingsAvailBlankingTypeDef",
    "ClientDeleteChannelResponseEncoderSettingsAvailConfigurationAvailSettingsScte35SpliceInsertTypeDef",
    "ClientDeleteChannelResponseEncoderSettingsAvailConfigurationAvailSettingsScte35TimeSignalAposTypeDef",
    "ClientDeleteChannelResponseEncoderSettingsAvailConfigurationAvailSettingsTypeDef",
    "ClientDeleteChannelResponseEncoderSettingsAvailConfigurationTypeDef",
    "ClientDeleteChannelResponseEncoderSettingsBlackoutSlateBlackoutSlateImageTypeDef",
    "ClientDeleteChannelResponseEncoderSettingsBlackoutSlateNetworkEndBlackoutImageTypeDef",
    "ClientDeleteChannelResponseEncoderSettingsBlackoutSlateTypeDef",
    "ClientDeleteChannelResponseEncoderSettingsCaptionDescriptionsDestinationSettingsBurnInDestinationSettingsFontTypeDef",
    "ClientDeleteChannelResponseEncoderSettingsCaptionDescriptionsDestinationSettingsBurnInDestinationSettingsTypeDef",
    "ClientDeleteChannelResponseEncoderSettingsCaptionDescriptionsDestinationSettingsDvbSubDestinationSettingsFontTypeDef",
    "ClientDeleteChannelResponseEncoderSettingsCaptionDescriptionsDestinationSettingsDvbSubDestinationSettingsTypeDef",
    "ClientDeleteChannelResponseEncoderSettingsCaptionDescriptionsDestinationSettingsTtmlDestinationSettingsTypeDef",
    "ClientDeleteChannelResponseEncoderSettingsCaptionDescriptionsDestinationSettingsTypeDef",
    "ClientDeleteChannelResponseEncoderSettingsCaptionDescriptionsTypeDef",
    "ClientDeleteChannelResponseEncoderSettingsGlobalConfigurationInputLossBehaviorInputLossImageSlateTypeDef",
    "ClientDeleteChannelResponseEncoderSettingsGlobalConfigurationInputLossBehaviorTypeDef",
    "ClientDeleteChannelResponseEncoderSettingsGlobalConfigurationTypeDef",
    "ClientDeleteChannelResponseEncoderSettingsNielsenConfigurationTypeDef",
    "ClientDeleteChannelResponseEncoderSettingsOutputGroupsOutputGroupSettingsArchiveGroupSettingsDestinationTypeDef",
    "ClientDeleteChannelResponseEncoderSettingsOutputGroupsOutputGroupSettingsArchiveGroupSettingsTypeDef",
    "ClientDeleteChannelResponseEncoderSettingsOutputGroupsOutputGroupSettingsFrameCaptureGroupSettingsDestinationTypeDef",
    "ClientDeleteChannelResponseEncoderSettingsOutputGroupsOutputGroupSettingsFrameCaptureGroupSettingsTypeDef",
    "ClientDeleteChannelResponseEncoderSettingsOutputGroupsOutputGroupSettingsHlsGroupSettingsCaptionLanguageMappingsTypeDef",
    "ClientDeleteChannelResponseEncoderSettingsOutputGroupsOutputGroupSettingsHlsGroupSettingsDestinationTypeDef",
    "ClientDeleteChannelResponseEncoderSettingsOutputGroupsOutputGroupSettingsHlsGroupSettingsHlsCdnSettingsHlsAkamaiSettingsTypeDef",
    "ClientDeleteChannelResponseEncoderSettingsOutputGroupsOutputGroupSettingsHlsGroupSettingsHlsCdnSettingsHlsBasicPutSettingsTypeDef",
    "ClientDeleteChannelResponseEncoderSettingsOutputGroupsOutputGroupSettingsHlsGroupSettingsHlsCdnSettingsHlsMediaStoreSettingsTypeDef",
    "ClientDeleteChannelResponseEncoderSettingsOutputGroupsOutputGroupSettingsHlsGroupSettingsHlsCdnSettingsHlsWebdavSettingsTypeDef",
    "ClientDeleteChannelResponseEncoderSettingsOutputGroupsOutputGroupSettingsHlsGroupSettingsHlsCdnSettingsTypeDef",
    "ClientDeleteChannelResponseEncoderSettingsOutputGroupsOutputGroupSettingsHlsGroupSettingsKeyProviderSettingsStaticKeySettingsKeyProviderServerTypeDef",
    "ClientDeleteChannelResponseEncoderSettingsOutputGroupsOutputGroupSettingsHlsGroupSettingsKeyProviderSettingsStaticKeySettingsTypeDef",
    "ClientDeleteChannelResponseEncoderSettingsOutputGroupsOutputGroupSettingsHlsGroupSettingsKeyProviderSettingsTypeDef",
    "ClientDeleteChannelResponseEncoderSettingsOutputGroupsOutputGroupSettingsHlsGroupSettingsTypeDef",
    "ClientDeleteChannelResponseEncoderSettingsOutputGroupsOutputGroupSettingsMediaPackageGroupSettingsDestinationTypeDef",
    "ClientDeleteChannelResponseEncoderSettingsOutputGroupsOutputGroupSettingsMediaPackageGroupSettingsTypeDef",
    "ClientDeleteChannelResponseEncoderSettingsOutputGroupsOutputGroupSettingsMsSmoothGroupSettingsDestinationTypeDef",
    "ClientDeleteChannelResponseEncoderSettingsOutputGroupsOutputGroupSettingsMsSmoothGroupSettingsTypeDef",
    "ClientDeleteChannelResponseEncoderSettingsOutputGroupsOutputGroupSettingsRtmpGroupSettingsTypeDef",
    "ClientDeleteChannelResponseEncoderSettingsOutputGroupsOutputGroupSettingsUdpGroupSettingsTypeDef",
    "ClientDeleteChannelResponseEncoderSettingsOutputGroupsOutputGroupSettingsTypeDef",
    "ClientDeleteChannelResponseEncoderSettingsOutputGroupsOutputsOutputSettingsArchiveOutputSettingsContainerSettingsM2tsSettingsDvbNitSettingsTypeDef",
    "ClientDeleteChannelResponseEncoderSettingsOutputGroupsOutputsOutputSettingsArchiveOutputSettingsContainerSettingsM2tsSettingsDvbSdtSettingsTypeDef",
    "ClientDeleteChannelResponseEncoderSettingsOutputGroupsOutputsOutputSettingsArchiveOutputSettingsContainerSettingsM2tsSettingsDvbTdtSettingsTypeDef",
    "ClientDeleteChannelResponseEncoderSettingsOutputGroupsOutputsOutputSettingsArchiveOutputSettingsContainerSettingsM2tsSettingsTypeDef",
    "ClientDeleteChannelResponseEncoderSettingsOutputGroupsOutputsOutputSettingsArchiveOutputSettingsContainerSettingsTypeDef",
    "ClientDeleteChannelResponseEncoderSettingsOutputGroupsOutputsOutputSettingsArchiveOutputSettingsTypeDef",
    "ClientDeleteChannelResponseEncoderSettingsOutputGroupsOutputsOutputSettingsFrameCaptureOutputSettingsTypeDef",
    "ClientDeleteChannelResponseEncoderSettingsOutputGroupsOutputsOutputSettingsHlsOutputSettingsHlsSettingsAudioOnlyHlsSettingsAudioOnlyImageTypeDef",
    "ClientDeleteChannelResponseEncoderSettingsOutputGroupsOutputsOutputSettingsHlsOutputSettingsHlsSettingsAudioOnlyHlsSettingsTypeDef",
    "ClientDeleteChannelResponseEncoderSettingsOutputGroupsOutputsOutputSettingsHlsOutputSettingsHlsSettingsStandardHlsSettingsM3u8SettingsTypeDef",
    "ClientDeleteChannelResponseEncoderSettingsOutputGroupsOutputsOutputSettingsHlsOutputSettingsHlsSettingsStandardHlsSettingsTypeDef",
    "ClientDeleteChannelResponseEncoderSettingsOutputGroupsOutputsOutputSettingsHlsOutputSettingsHlsSettingsTypeDef",
    "ClientDeleteChannelResponseEncoderSettingsOutputGroupsOutputsOutputSettingsHlsOutputSettingsTypeDef",
    "ClientDeleteChannelResponseEncoderSettingsOutputGroupsOutputsOutputSettingsMsSmoothOutputSettingsTypeDef",
    "ClientDeleteChannelResponseEncoderSettingsOutputGroupsOutputsOutputSettingsMultiplexOutputSettingsDestinationTypeDef",
    "ClientDeleteChannelResponseEncoderSettingsOutputGroupsOutputsOutputSettingsMultiplexOutputSettingsTypeDef",
    "ClientDeleteChannelResponseEncoderSettingsOutputGroupsOutputsOutputSettingsRtmpOutputSettingsDestinationTypeDef",
    "ClientDeleteChannelResponseEncoderSettingsOutputGroupsOutputsOutputSettingsRtmpOutputSettingsTypeDef",
    "ClientDeleteChannelResponseEncoderSettingsOutputGroupsOutputsOutputSettingsUdpOutputSettingsContainerSettingsM2tsSettingsDvbNitSettingsTypeDef",
    "ClientDeleteChannelResponseEncoderSettingsOutputGroupsOutputsOutputSettingsUdpOutputSettingsContainerSettingsM2tsSettingsDvbSdtSettingsTypeDef",
    "ClientDeleteChannelResponseEncoderSettingsOutputGroupsOutputsOutputSettingsUdpOutputSettingsContainerSettingsM2tsSettingsDvbTdtSettingsTypeDef",
    "ClientDeleteChannelResponseEncoderSettingsOutputGroupsOutputsOutputSettingsUdpOutputSettingsContainerSettingsM2tsSettingsTypeDef",
    "ClientDeleteChannelResponseEncoderSettingsOutputGroupsOutputsOutputSettingsUdpOutputSettingsContainerSettingsTypeDef",
    "ClientDeleteChannelResponseEncoderSettingsOutputGroupsOutputsOutputSettingsUdpOutputSettingsDestinationTypeDef",
    "ClientDeleteChannelResponseEncoderSettingsOutputGroupsOutputsOutputSettingsUdpOutputSettingsFecOutputSettingsTypeDef",
    "ClientDeleteChannelResponseEncoderSettingsOutputGroupsOutputsOutputSettingsUdpOutputSettingsTypeDef",
    "ClientDeleteChannelResponseEncoderSettingsOutputGroupsOutputsOutputSettingsTypeDef",
    "ClientDeleteChannelResponseEncoderSettingsOutputGroupsOutputsTypeDef",
    "ClientDeleteChannelResponseEncoderSettingsOutputGroupsTypeDef",
    "ClientDeleteChannelResponseEncoderSettingsTimecodeConfigTypeDef",
    "ClientDeleteChannelResponseEncoderSettingsVideoDescriptionsCodecSettingsFrameCaptureSettingsTypeDef",
    "ClientDeleteChannelResponseEncoderSettingsVideoDescriptionsCodecSettingsH264SettingsColorSpaceSettingsTypeDef",
    "ClientDeleteChannelResponseEncoderSettingsVideoDescriptionsCodecSettingsH264SettingsTypeDef",
    "ClientDeleteChannelResponseEncoderSettingsVideoDescriptionsCodecSettingsH265SettingsColorSpaceSettingsHdr10SettingsTypeDef",
    "ClientDeleteChannelResponseEncoderSettingsVideoDescriptionsCodecSettingsH265SettingsColorSpaceSettingsTypeDef",
    "ClientDeleteChannelResponseEncoderSettingsVideoDescriptionsCodecSettingsH265SettingsTypeDef",
    "ClientDeleteChannelResponseEncoderSettingsVideoDescriptionsCodecSettingsTypeDef",
    "ClientDeleteChannelResponseEncoderSettingsVideoDescriptionsTypeDef",
    "ClientDeleteChannelResponseEncoderSettingsTypeDef",
    "ClientDeleteChannelResponseInputAttachmentsInputSettingsAudioSelectorsSelectorSettingsAudioLanguageSelectionTypeDef",
    "ClientDeleteChannelResponseInputAttachmentsInputSettingsAudioSelectorsSelectorSettingsAudioPidSelectionTypeDef",
    "ClientDeleteChannelResponseInputAttachmentsInputSettingsAudioSelectorsSelectorSettingsTypeDef",
    "ClientDeleteChannelResponseInputAttachmentsInputSettingsAudioSelectorsTypeDef",
    "ClientDeleteChannelResponseInputAttachmentsInputSettingsCaptionSelectorsSelectorSettingsDvbSubSourceSettingsTypeDef",
    "ClientDeleteChannelResponseInputAttachmentsInputSettingsCaptionSelectorsSelectorSettingsEmbeddedSourceSettingsTypeDef",
    "ClientDeleteChannelResponseInputAttachmentsInputSettingsCaptionSelectorsSelectorSettingsScte20SourceSettingsTypeDef",
    "ClientDeleteChannelResponseInputAttachmentsInputSettingsCaptionSelectorsSelectorSettingsScte27SourceSettingsTypeDef",
    "ClientDeleteChannelResponseInputAttachmentsInputSettingsCaptionSelectorsSelectorSettingsTeletextSourceSettingsTypeDef",
    "ClientDeleteChannelResponseInputAttachmentsInputSettingsCaptionSelectorsSelectorSettingsTypeDef",
    "ClientDeleteChannelResponseInputAttachmentsInputSettingsCaptionSelectorsTypeDef",
    "ClientDeleteChannelResponseInputAttachmentsInputSettingsNetworkInputSettingsHlsInputSettingsTypeDef",
    "ClientDeleteChannelResponseInputAttachmentsInputSettingsNetworkInputSettingsTypeDef",
    "ClientDeleteChannelResponseInputAttachmentsInputSettingsVideoSelectorSelectorSettingsVideoSelectorPidTypeDef",
    "ClientDeleteChannelResponseInputAttachmentsInputSettingsVideoSelectorSelectorSettingsVideoSelectorProgramIdTypeDef",
    "ClientDeleteChannelResponseInputAttachmentsInputSettingsVideoSelectorSelectorSettingsTypeDef",
    "ClientDeleteChannelResponseInputAttachmentsInputSettingsVideoSelectorTypeDef",
    "ClientDeleteChannelResponseInputAttachmentsInputSettingsTypeDef",
    "ClientDeleteChannelResponseInputAttachmentsTypeDef",
    "ClientDeleteChannelResponseInputSpecificationTypeDef",
    "ClientDeleteChannelResponsePipelineDetailsTypeDef",
    "ClientDeleteChannelResponseTypeDef",
    "ClientDeleteMultiplexProgramResponseMultiplexProgramSettingsServiceDescriptorTypeDef",
    "ClientDeleteMultiplexProgramResponseMultiplexProgramSettingsVideoSettingsStatmuxSettingsTypeDef",
    "ClientDeleteMultiplexProgramResponseMultiplexProgramSettingsVideoSettingsTypeDef",
    "ClientDeleteMultiplexProgramResponseMultiplexProgramSettingsTypeDef",
    "ClientDeleteMultiplexProgramResponsePacketIdentifiersMapTypeDef",
    "ClientDeleteMultiplexProgramResponseTypeDef",
    "ClientDeleteMultiplexResponseDestinationsMediaConnectSettingsTypeDef",
    "ClientDeleteMultiplexResponseDestinationsTypeDef",
    "ClientDeleteMultiplexResponseMultiplexSettingsTypeDef",
    "ClientDeleteMultiplexResponseTypeDef",
    "ClientDeleteReservationResponseResourceSpecificationTypeDef",
    "ClientDeleteReservationResponseTypeDef",
    "ClientDescribeChannelResponseDestinationsMediaPackageSettingsTypeDef",
    "ClientDescribeChannelResponseDestinationsMultiplexSettingsTypeDef",
    "ClientDescribeChannelResponseDestinationsSettingsTypeDef",
    "ClientDescribeChannelResponseDestinationsTypeDef",
    "ClientDescribeChannelResponseEgressEndpointsTypeDef",
    "ClientDescribeChannelResponseEncoderSettingsAudioDescriptionsAudioNormalizationSettingsTypeDef",
    "ClientDescribeChannelResponseEncoderSettingsAudioDescriptionsCodecSettingsAacSettingsTypeDef",
    "ClientDescribeChannelResponseEncoderSettingsAudioDescriptionsCodecSettingsAc3SettingsTypeDef",
    "ClientDescribeChannelResponseEncoderSettingsAudioDescriptionsCodecSettingsEac3SettingsTypeDef",
    "ClientDescribeChannelResponseEncoderSettingsAudioDescriptionsCodecSettingsMp2SettingsTypeDef",
    "ClientDescribeChannelResponseEncoderSettingsAudioDescriptionsCodecSettingsTypeDef",
    "ClientDescribeChannelResponseEncoderSettingsAudioDescriptionsRemixSettingsChannelMappingsInputChannelLevelsTypeDef",
    "ClientDescribeChannelResponseEncoderSettingsAudioDescriptionsRemixSettingsChannelMappingsTypeDef",
    "ClientDescribeChannelResponseEncoderSettingsAudioDescriptionsRemixSettingsTypeDef",
    "ClientDescribeChannelResponseEncoderSettingsAudioDescriptionsTypeDef",
    "ClientDescribeChannelResponseEncoderSettingsAvailBlankingAvailBlankingImageTypeDef",
    "ClientDescribeChannelResponseEncoderSettingsAvailBlankingTypeDef",
    "ClientDescribeChannelResponseEncoderSettingsAvailConfigurationAvailSettingsScte35SpliceInsertTypeDef",
    "ClientDescribeChannelResponseEncoderSettingsAvailConfigurationAvailSettingsScte35TimeSignalAposTypeDef",
    "ClientDescribeChannelResponseEncoderSettingsAvailConfigurationAvailSettingsTypeDef",
    "ClientDescribeChannelResponseEncoderSettingsAvailConfigurationTypeDef",
    "ClientDescribeChannelResponseEncoderSettingsBlackoutSlateBlackoutSlateImageTypeDef",
    "ClientDescribeChannelResponseEncoderSettingsBlackoutSlateNetworkEndBlackoutImageTypeDef",
    "ClientDescribeChannelResponseEncoderSettingsBlackoutSlateTypeDef",
    "ClientDescribeChannelResponseEncoderSettingsCaptionDescriptionsDestinationSettingsBurnInDestinationSettingsFontTypeDef",
    "ClientDescribeChannelResponseEncoderSettingsCaptionDescriptionsDestinationSettingsBurnInDestinationSettingsTypeDef",
    "ClientDescribeChannelResponseEncoderSettingsCaptionDescriptionsDestinationSettingsDvbSubDestinationSettingsFontTypeDef",
    "ClientDescribeChannelResponseEncoderSettingsCaptionDescriptionsDestinationSettingsDvbSubDestinationSettingsTypeDef",
    "ClientDescribeChannelResponseEncoderSettingsCaptionDescriptionsDestinationSettingsTtmlDestinationSettingsTypeDef",
    "ClientDescribeChannelResponseEncoderSettingsCaptionDescriptionsDestinationSettingsTypeDef",
    "ClientDescribeChannelResponseEncoderSettingsCaptionDescriptionsTypeDef",
    "ClientDescribeChannelResponseEncoderSettingsGlobalConfigurationInputLossBehaviorInputLossImageSlateTypeDef",
    "ClientDescribeChannelResponseEncoderSettingsGlobalConfigurationInputLossBehaviorTypeDef",
    "ClientDescribeChannelResponseEncoderSettingsGlobalConfigurationTypeDef",
    "ClientDescribeChannelResponseEncoderSettingsNielsenConfigurationTypeDef",
    "ClientDescribeChannelResponseEncoderSettingsOutputGroupsOutputGroupSettingsArchiveGroupSettingsDestinationTypeDef",
    "ClientDescribeChannelResponseEncoderSettingsOutputGroupsOutputGroupSettingsArchiveGroupSettingsTypeDef",
    "ClientDescribeChannelResponseEncoderSettingsOutputGroupsOutputGroupSettingsFrameCaptureGroupSettingsDestinationTypeDef",
    "ClientDescribeChannelResponseEncoderSettingsOutputGroupsOutputGroupSettingsFrameCaptureGroupSettingsTypeDef",
    "ClientDescribeChannelResponseEncoderSettingsOutputGroupsOutputGroupSettingsHlsGroupSettingsCaptionLanguageMappingsTypeDef",
    "ClientDescribeChannelResponseEncoderSettingsOutputGroupsOutputGroupSettingsHlsGroupSettingsDestinationTypeDef",
    "ClientDescribeChannelResponseEncoderSettingsOutputGroupsOutputGroupSettingsHlsGroupSettingsHlsCdnSettingsHlsAkamaiSettingsTypeDef",
    "ClientDescribeChannelResponseEncoderSettingsOutputGroupsOutputGroupSettingsHlsGroupSettingsHlsCdnSettingsHlsBasicPutSettingsTypeDef",
    "ClientDescribeChannelResponseEncoderSettingsOutputGroupsOutputGroupSettingsHlsGroupSettingsHlsCdnSettingsHlsMediaStoreSettingsTypeDef",
    "ClientDescribeChannelResponseEncoderSettingsOutputGroupsOutputGroupSettingsHlsGroupSettingsHlsCdnSettingsHlsWebdavSettingsTypeDef",
    "ClientDescribeChannelResponseEncoderSettingsOutputGroupsOutputGroupSettingsHlsGroupSettingsHlsCdnSettingsTypeDef",
    "ClientDescribeChannelResponseEncoderSettingsOutputGroupsOutputGroupSettingsHlsGroupSettingsKeyProviderSettingsStaticKeySettingsKeyProviderServerTypeDef",
    "ClientDescribeChannelResponseEncoderSettingsOutputGroupsOutputGroupSettingsHlsGroupSettingsKeyProviderSettingsStaticKeySettingsTypeDef",
    "ClientDescribeChannelResponseEncoderSettingsOutputGroupsOutputGroupSettingsHlsGroupSettingsKeyProviderSettingsTypeDef",
    "ClientDescribeChannelResponseEncoderSettingsOutputGroupsOutputGroupSettingsHlsGroupSettingsTypeDef",
    "ClientDescribeChannelResponseEncoderSettingsOutputGroupsOutputGroupSettingsMediaPackageGroupSettingsDestinationTypeDef",
    "ClientDescribeChannelResponseEncoderSettingsOutputGroupsOutputGroupSettingsMediaPackageGroupSettingsTypeDef",
    "ClientDescribeChannelResponseEncoderSettingsOutputGroupsOutputGroupSettingsMsSmoothGroupSettingsDestinationTypeDef",
    "ClientDescribeChannelResponseEncoderSettingsOutputGroupsOutputGroupSettingsMsSmoothGroupSettingsTypeDef",
    "ClientDescribeChannelResponseEncoderSettingsOutputGroupsOutputGroupSettingsRtmpGroupSettingsTypeDef",
    "ClientDescribeChannelResponseEncoderSettingsOutputGroupsOutputGroupSettingsUdpGroupSettingsTypeDef",
    "ClientDescribeChannelResponseEncoderSettingsOutputGroupsOutputGroupSettingsTypeDef",
    "ClientDescribeChannelResponseEncoderSettingsOutputGroupsOutputsOutputSettingsArchiveOutputSettingsContainerSettingsM2tsSettingsDvbNitSettingsTypeDef",
    "ClientDescribeChannelResponseEncoderSettingsOutputGroupsOutputsOutputSettingsArchiveOutputSettingsContainerSettingsM2tsSettingsDvbSdtSettingsTypeDef",
    "ClientDescribeChannelResponseEncoderSettingsOutputGroupsOutputsOutputSettingsArchiveOutputSettingsContainerSettingsM2tsSettingsDvbTdtSettingsTypeDef",
    "ClientDescribeChannelResponseEncoderSettingsOutputGroupsOutputsOutputSettingsArchiveOutputSettingsContainerSettingsM2tsSettingsTypeDef",
    "ClientDescribeChannelResponseEncoderSettingsOutputGroupsOutputsOutputSettingsArchiveOutputSettingsContainerSettingsTypeDef",
    "ClientDescribeChannelResponseEncoderSettingsOutputGroupsOutputsOutputSettingsArchiveOutputSettingsTypeDef",
    "ClientDescribeChannelResponseEncoderSettingsOutputGroupsOutputsOutputSettingsFrameCaptureOutputSettingsTypeDef",
    "ClientDescribeChannelResponseEncoderSettingsOutputGroupsOutputsOutputSettingsHlsOutputSettingsHlsSettingsAudioOnlyHlsSettingsAudioOnlyImageTypeDef",
    "ClientDescribeChannelResponseEncoderSettingsOutputGroupsOutputsOutputSettingsHlsOutputSettingsHlsSettingsAudioOnlyHlsSettingsTypeDef",
    "ClientDescribeChannelResponseEncoderSettingsOutputGroupsOutputsOutputSettingsHlsOutputSettingsHlsSettingsStandardHlsSettingsM3u8SettingsTypeDef",
    "ClientDescribeChannelResponseEncoderSettingsOutputGroupsOutputsOutputSettingsHlsOutputSettingsHlsSettingsStandardHlsSettingsTypeDef",
    "ClientDescribeChannelResponseEncoderSettingsOutputGroupsOutputsOutputSettingsHlsOutputSettingsHlsSettingsTypeDef",
    "ClientDescribeChannelResponseEncoderSettingsOutputGroupsOutputsOutputSettingsHlsOutputSettingsTypeDef",
    "ClientDescribeChannelResponseEncoderSettingsOutputGroupsOutputsOutputSettingsMsSmoothOutputSettingsTypeDef",
    "ClientDescribeChannelResponseEncoderSettingsOutputGroupsOutputsOutputSettingsMultiplexOutputSettingsDestinationTypeDef",
    "ClientDescribeChannelResponseEncoderSettingsOutputGroupsOutputsOutputSettingsMultiplexOutputSettingsTypeDef",
    "ClientDescribeChannelResponseEncoderSettingsOutputGroupsOutputsOutputSettingsRtmpOutputSettingsDestinationTypeDef",
    "ClientDescribeChannelResponseEncoderSettingsOutputGroupsOutputsOutputSettingsRtmpOutputSettingsTypeDef",
    "ClientDescribeChannelResponseEncoderSettingsOutputGroupsOutputsOutputSettingsUdpOutputSettingsContainerSettingsM2tsSettingsDvbNitSettingsTypeDef",
    "ClientDescribeChannelResponseEncoderSettingsOutputGroupsOutputsOutputSettingsUdpOutputSettingsContainerSettingsM2tsSettingsDvbSdtSettingsTypeDef",
    "ClientDescribeChannelResponseEncoderSettingsOutputGroupsOutputsOutputSettingsUdpOutputSettingsContainerSettingsM2tsSettingsDvbTdtSettingsTypeDef",
    "ClientDescribeChannelResponseEncoderSettingsOutputGroupsOutputsOutputSettingsUdpOutputSettingsContainerSettingsM2tsSettingsTypeDef",
    "ClientDescribeChannelResponseEncoderSettingsOutputGroupsOutputsOutputSettingsUdpOutputSettingsContainerSettingsTypeDef",
    "ClientDescribeChannelResponseEncoderSettingsOutputGroupsOutputsOutputSettingsUdpOutputSettingsDestinationTypeDef",
    "ClientDescribeChannelResponseEncoderSettingsOutputGroupsOutputsOutputSettingsUdpOutputSettingsFecOutputSettingsTypeDef",
    "ClientDescribeChannelResponseEncoderSettingsOutputGroupsOutputsOutputSettingsUdpOutputSettingsTypeDef",
    "ClientDescribeChannelResponseEncoderSettingsOutputGroupsOutputsOutputSettingsTypeDef",
    "ClientDescribeChannelResponseEncoderSettingsOutputGroupsOutputsTypeDef",
    "ClientDescribeChannelResponseEncoderSettingsOutputGroupsTypeDef",
    "ClientDescribeChannelResponseEncoderSettingsTimecodeConfigTypeDef",
    "ClientDescribeChannelResponseEncoderSettingsVideoDescriptionsCodecSettingsFrameCaptureSettingsTypeDef",
    "ClientDescribeChannelResponseEncoderSettingsVideoDescriptionsCodecSettingsH264SettingsColorSpaceSettingsTypeDef",
    "ClientDescribeChannelResponseEncoderSettingsVideoDescriptionsCodecSettingsH264SettingsTypeDef",
    "ClientDescribeChannelResponseEncoderSettingsVideoDescriptionsCodecSettingsH265SettingsColorSpaceSettingsHdr10SettingsTypeDef",
    "ClientDescribeChannelResponseEncoderSettingsVideoDescriptionsCodecSettingsH265SettingsColorSpaceSettingsTypeDef",
    "ClientDescribeChannelResponseEncoderSettingsVideoDescriptionsCodecSettingsH265SettingsTypeDef",
    "ClientDescribeChannelResponseEncoderSettingsVideoDescriptionsCodecSettingsTypeDef",
    "ClientDescribeChannelResponseEncoderSettingsVideoDescriptionsTypeDef",
    "ClientDescribeChannelResponseEncoderSettingsTypeDef",
    "ClientDescribeChannelResponseInputAttachmentsInputSettingsAudioSelectorsSelectorSettingsAudioLanguageSelectionTypeDef",
    "ClientDescribeChannelResponseInputAttachmentsInputSettingsAudioSelectorsSelectorSettingsAudioPidSelectionTypeDef",
    "ClientDescribeChannelResponseInputAttachmentsInputSettingsAudioSelectorsSelectorSettingsTypeDef",
    "ClientDescribeChannelResponseInputAttachmentsInputSettingsAudioSelectorsTypeDef",
    "ClientDescribeChannelResponseInputAttachmentsInputSettingsCaptionSelectorsSelectorSettingsDvbSubSourceSettingsTypeDef",
    "ClientDescribeChannelResponseInputAttachmentsInputSettingsCaptionSelectorsSelectorSettingsEmbeddedSourceSettingsTypeDef",
    "ClientDescribeChannelResponseInputAttachmentsInputSettingsCaptionSelectorsSelectorSettingsScte20SourceSettingsTypeDef",
    "ClientDescribeChannelResponseInputAttachmentsInputSettingsCaptionSelectorsSelectorSettingsScte27SourceSettingsTypeDef",
    "ClientDescribeChannelResponseInputAttachmentsInputSettingsCaptionSelectorsSelectorSettingsTeletextSourceSettingsTypeDef",
    "ClientDescribeChannelResponseInputAttachmentsInputSettingsCaptionSelectorsSelectorSettingsTypeDef",
    "ClientDescribeChannelResponseInputAttachmentsInputSettingsCaptionSelectorsTypeDef",
    "ClientDescribeChannelResponseInputAttachmentsInputSettingsNetworkInputSettingsHlsInputSettingsTypeDef",
    "ClientDescribeChannelResponseInputAttachmentsInputSettingsNetworkInputSettingsTypeDef",
    "ClientDescribeChannelResponseInputAttachmentsInputSettingsVideoSelectorSelectorSettingsVideoSelectorPidTypeDef",
    "ClientDescribeChannelResponseInputAttachmentsInputSettingsVideoSelectorSelectorSettingsVideoSelectorProgramIdTypeDef",
    "ClientDescribeChannelResponseInputAttachmentsInputSettingsVideoSelectorSelectorSettingsTypeDef",
    "ClientDescribeChannelResponseInputAttachmentsInputSettingsVideoSelectorTypeDef",
    "ClientDescribeChannelResponseInputAttachmentsInputSettingsTypeDef",
    "ClientDescribeChannelResponseInputAttachmentsTypeDef",
    "ClientDescribeChannelResponseInputSpecificationTypeDef",
    "ClientDescribeChannelResponsePipelineDetailsTypeDef",
    "ClientDescribeChannelResponseTypeDef",
    "ClientDescribeInputResponseDestinationsVpcTypeDef",
    "ClientDescribeInputResponseDestinationsTypeDef",
    "ClientDescribeInputResponseMediaConnectFlowsTypeDef",
    "ClientDescribeInputResponseSourcesTypeDef",
    "ClientDescribeInputResponseTypeDef",
    "ClientDescribeInputSecurityGroupResponseWhitelistRulesTypeDef",
    "ClientDescribeInputSecurityGroupResponseTypeDef",
    "ClientDescribeMultiplexProgramResponseMultiplexProgramSettingsServiceDescriptorTypeDef",
    "ClientDescribeMultiplexProgramResponseMultiplexProgramSettingsVideoSettingsStatmuxSettingsTypeDef",
    "ClientDescribeMultiplexProgramResponseMultiplexProgramSettingsVideoSettingsTypeDef",
    "ClientDescribeMultiplexProgramResponseMultiplexProgramSettingsTypeDef",
    "ClientDescribeMultiplexProgramResponsePacketIdentifiersMapTypeDef",
    "ClientDescribeMultiplexProgramResponseTypeDef",
    "ClientDescribeMultiplexResponseDestinationsMediaConnectSettingsTypeDef",
    "ClientDescribeMultiplexResponseDestinationsTypeDef",
    "ClientDescribeMultiplexResponseMultiplexSettingsTypeDef",
    "ClientDescribeMultiplexResponseTypeDef",
    "ClientDescribeOfferingResponseResourceSpecificationTypeDef",
    "ClientDescribeOfferingResponseTypeDef",
    "ClientDescribeReservationResponseResourceSpecificationTypeDef",
    "ClientDescribeReservationResponseTypeDef",
    "ClientDescribeScheduleResponseScheduleActionsScheduleActionSettingsHlsTimedMetadataSettingsTypeDef",
    "ClientDescribeScheduleResponseScheduleActionsScheduleActionSettingsInputSwitchSettingsInputClippingSettingsStartTimecodeTypeDef",
    "ClientDescribeScheduleResponseScheduleActionsScheduleActionSettingsInputSwitchSettingsInputClippingSettingsStopTimecodeTypeDef",
    "ClientDescribeScheduleResponseScheduleActionsScheduleActionSettingsInputSwitchSettingsInputClippingSettingsTypeDef",
    "ClientDescribeScheduleResponseScheduleActionsScheduleActionSettingsInputSwitchSettingsTypeDef",
    "ClientDescribeScheduleResponseScheduleActionsScheduleActionSettingsPauseStateSettingsPipelinesTypeDef",
    "ClientDescribeScheduleResponseScheduleActionsScheduleActionSettingsPauseStateSettingsTypeDef",
    "ClientDescribeScheduleResponseScheduleActionsScheduleActionSettingsScte35ReturnToNetworkSettingsTypeDef",
    "ClientDescribeScheduleResponseScheduleActionsScheduleActionSettingsScte35SpliceInsertSettingsTypeDef",
    "ClientDescribeScheduleResponseScheduleActionsScheduleActionSettingsScte35TimeSignalSettingsScte35DescriptorsScte35DescriptorSettingsSegmentationDescriptorScte35DescriptorSettingsDeliveryRestrictionsTypeDef",
    "ClientDescribeScheduleResponseScheduleActionsScheduleActionSettingsScte35TimeSignalSettingsScte35DescriptorsScte35DescriptorSettingsSegmentationDescriptorScte35DescriptorSettingsTypeDef",
    "ClientDescribeScheduleResponseScheduleActionsScheduleActionSettingsScte35TimeSignalSettingsScte35DescriptorsScte35DescriptorSettingsTypeDef",
    "ClientDescribeScheduleResponseScheduleActionsScheduleActionSettingsScte35TimeSignalSettingsScte35DescriptorsTypeDef",
    "ClientDescribeScheduleResponseScheduleActionsScheduleActionSettingsScte35TimeSignalSettingsTypeDef",
    "ClientDescribeScheduleResponseScheduleActionsScheduleActionSettingsStaticImageActivateSettingsImageTypeDef",
    "ClientDescribeScheduleResponseScheduleActionsScheduleActionSettingsStaticImageActivateSettingsTypeDef",
    "ClientDescribeScheduleResponseScheduleActionsScheduleActionSettingsStaticImageDeactivateSettingsTypeDef",
    "ClientDescribeScheduleResponseScheduleActionsScheduleActionSettingsTypeDef",
    "ClientDescribeScheduleResponseScheduleActionsScheduleActionStartSettingsFixedModeScheduleActionStartSettingsTypeDef",
    "ClientDescribeScheduleResponseScheduleActionsScheduleActionStartSettingsFollowModeScheduleActionStartSettingsTypeDef",
    "ClientDescribeScheduleResponseScheduleActionsScheduleActionStartSettingsTypeDef",
    "ClientDescribeScheduleResponseScheduleActionsTypeDef",
    "ClientDescribeScheduleResponseTypeDef",
    "ClientListChannelsResponseChannelsDestinationsMediaPackageSettingsTypeDef",
    "ClientListChannelsResponseChannelsDestinationsMultiplexSettingsTypeDef",
    "ClientListChannelsResponseChannelsDestinationsSettingsTypeDef",
    "ClientListChannelsResponseChannelsDestinationsTypeDef",
    "ClientListChannelsResponseChannelsEgressEndpointsTypeDef",
    "ClientListChannelsResponseChannelsInputAttachmentsInputSettingsAudioSelectorsSelectorSettingsAudioLanguageSelectionTypeDef",
    "ClientListChannelsResponseChannelsInputAttachmentsInputSettingsAudioSelectorsSelectorSettingsAudioPidSelectionTypeDef",
    "ClientListChannelsResponseChannelsInputAttachmentsInputSettingsAudioSelectorsSelectorSettingsTypeDef",
    "ClientListChannelsResponseChannelsInputAttachmentsInputSettingsAudioSelectorsTypeDef",
    "ClientListChannelsResponseChannelsInputAttachmentsInputSettingsCaptionSelectorsSelectorSettingsDvbSubSourceSettingsTypeDef",
    "ClientListChannelsResponseChannelsInputAttachmentsInputSettingsCaptionSelectorsSelectorSettingsEmbeddedSourceSettingsTypeDef",
    "ClientListChannelsResponseChannelsInputAttachmentsInputSettingsCaptionSelectorsSelectorSettingsScte20SourceSettingsTypeDef",
    "ClientListChannelsResponseChannelsInputAttachmentsInputSettingsCaptionSelectorsSelectorSettingsScte27SourceSettingsTypeDef",
    "ClientListChannelsResponseChannelsInputAttachmentsInputSettingsCaptionSelectorsSelectorSettingsTeletextSourceSettingsTypeDef",
    "ClientListChannelsResponseChannelsInputAttachmentsInputSettingsCaptionSelectorsSelectorSettingsTypeDef",
    "ClientListChannelsResponseChannelsInputAttachmentsInputSettingsCaptionSelectorsTypeDef",
    "ClientListChannelsResponseChannelsInputAttachmentsInputSettingsNetworkInputSettingsHlsInputSettingsTypeDef",
    "ClientListChannelsResponseChannelsInputAttachmentsInputSettingsNetworkInputSettingsTypeDef",
    "ClientListChannelsResponseChannelsInputAttachmentsInputSettingsVideoSelectorSelectorSettingsVideoSelectorPidTypeDef",
    "ClientListChannelsResponseChannelsInputAttachmentsInputSettingsVideoSelectorSelectorSettingsVideoSelectorProgramIdTypeDef",
    "ClientListChannelsResponseChannelsInputAttachmentsInputSettingsVideoSelectorSelectorSettingsTypeDef",
    "ClientListChannelsResponseChannelsInputAttachmentsInputSettingsVideoSelectorTypeDef",
    "ClientListChannelsResponseChannelsInputAttachmentsInputSettingsTypeDef",
    "ClientListChannelsResponseChannelsInputAttachmentsTypeDef",
    "ClientListChannelsResponseChannelsInputSpecificationTypeDef",
    "ClientListChannelsResponseChannelsTypeDef",
    "ClientListChannelsResponseTypeDef",
    "ClientListInputSecurityGroupsResponseInputSecurityGroupsWhitelistRulesTypeDef",
    "ClientListInputSecurityGroupsResponseInputSecurityGroupsTypeDef",
    "ClientListInputSecurityGroupsResponseTypeDef",
    "ClientListInputsResponseInputsDestinationsVpcTypeDef",
    "ClientListInputsResponseInputsDestinationsTypeDef",
    "ClientListInputsResponseInputsMediaConnectFlowsTypeDef",
    "ClientListInputsResponseInputsSourcesTypeDef",
    "ClientListInputsResponseInputsTypeDef",
    "ClientListInputsResponseTypeDef",
    "ClientListMultiplexProgramsResponseMultiplexProgramsTypeDef",
    "ClientListMultiplexProgramsResponseTypeDef",
    "ClientListMultiplexesResponseMultiplexesMultiplexSettingsTypeDef",
    "ClientListMultiplexesResponseMultiplexesTypeDef",
    "ClientListMultiplexesResponseTypeDef",
    "ClientListOfferingsResponseOfferingsResourceSpecificationTypeDef",
    "ClientListOfferingsResponseOfferingsTypeDef",
    "ClientListOfferingsResponseTypeDef",
    "ClientListReservationsResponseReservationsResourceSpecificationTypeDef",
    "ClientListReservationsResponseReservationsTypeDef",
    "ClientListReservationsResponseTypeDef",
    "ClientListTagsForResourceResponseTypeDef",
    "ClientPurchaseOfferingResponseReservationResourceSpecificationTypeDef",
    "ClientPurchaseOfferingResponseReservationTypeDef",
    "ClientPurchaseOfferingResponseTypeDef",
    "ClientStartChannelResponseDestinationsMediaPackageSettingsTypeDef",
    "ClientStartChannelResponseDestinationsMultiplexSettingsTypeDef",
    "ClientStartChannelResponseDestinationsSettingsTypeDef",
    "ClientStartChannelResponseDestinationsTypeDef",
    "ClientStartChannelResponseEgressEndpointsTypeDef",
    "ClientStartChannelResponseEncoderSettingsAudioDescriptionsAudioNormalizationSettingsTypeDef",
    "ClientStartChannelResponseEncoderSettingsAudioDescriptionsCodecSettingsAacSettingsTypeDef",
    "ClientStartChannelResponseEncoderSettingsAudioDescriptionsCodecSettingsAc3SettingsTypeDef",
    "ClientStartChannelResponseEncoderSettingsAudioDescriptionsCodecSettingsEac3SettingsTypeDef",
    "ClientStartChannelResponseEncoderSettingsAudioDescriptionsCodecSettingsMp2SettingsTypeDef",
    "ClientStartChannelResponseEncoderSettingsAudioDescriptionsCodecSettingsTypeDef",
    "ClientStartChannelResponseEncoderSettingsAudioDescriptionsRemixSettingsChannelMappingsInputChannelLevelsTypeDef",
    "ClientStartChannelResponseEncoderSettingsAudioDescriptionsRemixSettingsChannelMappingsTypeDef",
    "ClientStartChannelResponseEncoderSettingsAudioDescriptionsRemixSettingsTypeDef",
    "ClientStartChannelResponseEncoderSettingsAudioDescriptionsTypeDef",
    "ClientStartChannelResponseEncoderSettingsAvailBlankingAvailBlankingImageTypeDef",
    "ClientStartChannelResponseEncoderSettingsAvailBlankingTypeDef",
    "ClientStartChannelResponseEncoderSettingsAvailConfigurationAvailSettingsScte35SpliceInsertTypeDef",
    "ClientStartChannelResponseEncoderSettingsAvailConfigurationAvailSettingsScte35TimeSignalAposTypeDef",
    "ClientStartChannelResponseEncoderSettingsAvailConfigurationAvailSettingsTypeDef",
    "ClientStartChannelResponseEncoderSettingsAvailConfigurationTypeDef",
    "ClientStartChannelResponseEncoderSettingsBlackoutSlateBlackoutSlateImageTypeDef",
    "ClientStartChannelResponseEncoderSettingsBlackoutSlateNetworkEndBlackoutImageTypeDef",
    "ClientStartChannelResponseEncoderSettingsBlackoutSlateTypeDef",
    "ClientStartChannelResponseEncoderSettingsCaptionDescriptionsDestinationSettingsBurnInDestinationSettingsFontTypeDef",
    "ClientStartChannelResponseEncoderSettingsCaptionDescriptionsDestinationSettingsBurnInDestinationSettingsTypeDef",
    "ClientStartChannelResponseEncoderSettingsCaptionDescriptionsDestinationSettingsDvbSubDestinationSettingsFontTypeDef",
    "ClientStartChannelResponseEncoderSettingsCaptionDescriptionsDestinationSettingsDvbSubDestinationSettingsTypeDef",
    "ClientStartChannelResponseEncoderSettingsCaptionDescriptionsDestinationSettingsTtmlDestinationSettingsTypeDef",
    "ClientStartChannelResponseEncoderSettingsCaptionDescriptionsDestinationSettingsTypeDef",
    "ClientStartChannelResponseEncoderSettingsCaptionDescriptionsTypeDef",
    "ClientStartChannelResponseEncoderSettingsGlobalConfigurationInputLossBehaviorInputLossImageSlateTypeDef",
    "ClientStartChannelResponseEncoderSettingsGlobalConfigurationInputLossBehaviorTypeDef",
    "ClientStartChannelResponseEncoderSettingsGlobalConfigurationTypeDef",
    "ClientStartChannelResponseEncoderSettingsNielsenConfigurationTypeDef",
    "ClientStartChannelResponseEncoderSettingsOutputGroupsOutputGroupSettingsArchiveGroupSettingsDestinationTypeDef",
    "ClientStartChannelResponseEncoderSettingsOutputGroupsOutputGroupSettingsArchiveGroupSettingsTypeDef",
    "ClientStartChannelResponseEncoderSettingsOutputGroupsOutputGroupSettingsFrameCaptureGroupSettingsDestinationTypeDef",
    "ClientStartChannelResponseEncoderSettingsOutputGroupsOutputGroupSettingsFrameCaptureGroupSettingsTypeDef",
    "ClientStartChannelResponseEncoderSettingsOutputGroupsOutputGroupSettingsHlsGroupSettingsCaptionLanguageMappingsTypeDef",
    "ClientStartChannelResponseEncoderSettingsOutputGroupsOutputGroupSettingsHlsGroupSettingsDestinationTypeDef",
    "ClientStartChannelResponseEncoderSettingsOutputGroupsOutputGroupSettingsHlsGroupSettingsHlsCdnSettingsHlsAkamaiSettingsTypeDef",
    "ClientStartChannelResponseEncoderSettingsOutputGroupsOutputGroupSettingsHlsGroupSettingsHlsCdnSettingsHlsBasicPutSettingsTypeDef",
    "ClientStartChannelResponseEncoderSettingsOutputGroupsOutputGroupSettingsHlsGroupSettingsHlsCdnSettingsHlsMediaStoreSettingsTypeDef",
    "ClientStartChannelResponseEncoderSettingsOutputGroupsOutputGroupSettingsHlsGroupSettingsHlsCdnSettingsHlsWebdavSettingsTypeDef",
    "ClientStartChannelResponseEncoderSettingsOutputGroupsOutputGroupSettingsHlsGroupSettingsHlsCdnSettingsTypeDef",
    "ClientStartChannelResponseEncoderSettingsOutputGroupsOutputGroupSettingsHlsGroupSettingsKeyProviderSettingsStaticKeySettingsKeyProviderServerTypeDef",
    "ClientStartChannelResponseEncoderSettingsOutputGroupsOutputGroupSettingsHlsGroupSettingsKeyProviderSettingsStaticKeySettingsTypeDef",
    "ClientStartChannelResponseEncoderSettingsOutputGroupsOutputGroupSettingsHlsGroupSettingsKeyProviderSettingsTypeDef",
    "ClientStartChannelResponseEncoderSettingsOutputGroupsOutputGroupSettingsHlsGroupSettingsTypeDef",
    "ClientStartChannelResponseEncoderSettingsOutputGroupsOutputGroupSettingsMediaPackageGroupSettingsDestinationTypeDef",
    "ClientStartChannelResponseEncoderSettingsOutputGroupsOutputGroupSettingsMediaPackageGroupSettingsTypeDef",
    "ClientStartChannelResponseEncoderSettingsOutputGroupsOutputGroupSettingsMsSmoothGroupSettingsDestinationTypeDef",
    "ClientStartChannelResponseEncoderSettingsOutputGroupsOutputGroupSettingsMsSmoothGroupSettingsTypeDef",
    "ClientStartChannelResponseEncoderSettingsOutputGroupsOutputGroupSettingsRtmpGroupSettingsTypeDef",
    "ClientStartChannelResponseEncoderSettingsOutputGroupsOutputGroupSettingsUdpGroupSettingsTypeDef",
    "ClientStartChannelResponseEncoderSettingsOutputGroupsOutputGroupSettingsTypeDef",
    "ClientStartChannelResponseEncoderSettingsOutputGroupsOutputsOutputSettingsArchiveOutputSettingsContainerSettingsM2tsSettingsDvbNitSettingsTypeDef",
    "ClientStartChannelResponseEncoderSettingsOutputGroupsOutputsOutputSettingsArchiveOutputSettingsContainerSettingsM2tsSettingsDvbSdtSettingsTypeDef",
    "ClientStartChannelResponseEncoderSettingsOutputGroupsOutputsOutputSettingsArchiveOutputSettingsContainerSettingsM2tsSettingsDvbTdtSettingsTypeDef",
    "ClientStartChannelResponseEncoderSettingsOutputGroupsOutputsOutputSettingsArchiveOutputSettingsContainerSettingsM2tsSettingsTypeDef",
    "ClientStartChannelResponseEncoderSettingsOutputGroupsOutputsOutputSettingsArchiveOutputSettingsContainerSettingsTypeDef",
    "ClientStartChannelResponseEncoderSettingsOutputGroupsOutputsOutputSettingsArchiveOutputSettingsTypeDef",
    "ClientStartChannelResponseEncoderSettingsOutputGroupsOutputsOutputSettingsFrameCaptureOutputSettingsTypeDef",
    "ClientStartChannelResponseEncoderSettingsOutputGroupsOutputsOutputSettingsHlsOutputSettingsHlsSettingsAudioOnlyHlsSettingsAudioOnlyImageTypeDef",
    "ClientStartChannelResponseEncoderSettingsOutputGroupsOutputsOutputSettingsHlsOutputSettingsHlsSettingsAudioOnlyHlsSettingsTypeDef",
    "ClientStartChannelResponseEncoderSettingsOutputGroupsOutputsOutputSettingsHlsOutputSettingsHlsSettingsStandardHlsSettingsM3u8SettingsTypeDef",
    "ClientStartChannelResponseEncoderSettingsOutputGroupsOutputsOutputSettingsHlsOutputSettingsHlsSettingsStandardHlsSettingsTypeDef",
    "ClientStartChannelResponseEncoderSettingsOutputGroupsOutputsOutputSettingsHlsOutputSettingsHlsSettingsTypeDef",
    "ClientStartChannelResponseEncoderSettingsOutputGroupsOutputsOutputSettingsHlsOutputSettingsTypeDef",
    "ClientStartChannelResponseEncoderSettingsOutputGroupsOutputsOutputSettingsMsSmoothOutputSettingsTypeDef",
    "ClientStartChannelResponseEncoderSettingsOutputGroupsOutputsOutputSettingsMultiplexOutputSettingsDestinationTypeDef",
    "ClientStartChannelResponseEncoderSettingsOutputGroupsOutputsOutputSettingsMultiplexOutputSettingsTypeDef",
    "ClientStartChannelResponseEncoderSettingsOutputGroupsOutputsOutputSettingsRtmpOutputSettingsDestinationTypeDef",
    "ClientStartChannelResponseEncoderSettingsOutputGroupsOutputsOutputSettingsRtmpOutputSettingsTypeDef",
    "ClientStartChannelResponseEncoderSettingsOutputGroupsOutputsOutputSettingsUdpOutputSettingsContainerSettingsM2tsSettingsDvbNitSettingsTypeDef",
    "ClientStartChannelResponseEncoderSettingsOutputGroupsOutputsOutputSettingsUdpOutputSettingsContainerSettingsM2tsSettingsDvbSdtSettingsTypeDef",
    "ClientStartChannelResponseEncoderSettingsOutputGroupsOutputsOutputSettingsUdpOutputSettingsContainerSettingsM2tsSettingsDvbTdtSettingsTypeDef",
    "ClientStartChannelResponseEncoderSettingsOutputGroupsOutputsOutputSettingsUdpOutputSettingsContainerSettingsM2tsSettingsTypeDef",
    "ClientStartChannelResponseEncoderSettingsOutputGroupsOutputsOutputSettingsUdpOutputSettingsContainerSettingsTypeDef",
    "ClientStartChannelResponseEncoderSettingsOutputGroupsOutputsOutputSettingsUdpOutputSettingsDestinationTypeDef",
    "ClientStartChannelResponseEncoderSettingsOutputGroupsOutputsOutputSettingsUdpOutputSettingsFecOutputSettingsTypeDef",
    "ClientStartChannelResponseEncoderSettingsOutputGroupsOutputsOutputSettingsUdpOutputSettingsTypeDef",
    "ClientStartChannelResponseEncoderSettingsOutputGroupsOutputsOutputSettingsTypeDef",
    "ClientStartChannelResponseEncoderSettingsOutputGroupsOutputsTypeDef",
    "ClientStartChannelResponseEncoderSettingsOutputGroupsTypeDef",
    "ClientStartChannelResponseEncoderSettingsTimecodeConfigTypeDef",
    "ClientStartChannelResponseEncoderSettingsVideoDescriptionsCodecSettingsFrameCaptureSettingsTypeDef",
    "ClientStartChannelResponseEncoderSettingsVideoDescriptionsCodecSettingsH264SettingsColorSpaceSettingsTypeDef",
    "ClientStartChannelResponseEncoderSettingsVideoDescriptionsCodecSettingsH264SettingsTypeDef",
    "ClientStartChannelResponseEncoderSettingsVideoDescriptionsCodecSettingsH265SettingsColorSpaceSettingsHdr10SettingsTypeDef",
    "ClientStartChannelResponseEncoderSettingsVideoDescriptionsCodecSettingsH265SettingsColorSpaceSettingsTypeDef",
    "ClientStartChannelResponseEncoderSettingsVideoDescriptionsCodecSettingsH265SettingsTypeDef",
    "ClientStartChannelResponseEncoderSettingsVideoDescriptionsCodecSettingsTypeDef",
    "ClientStartChannelResponseEncoderSettingsVideoDescriptionsTypeDef",
    "ClientStartChannelResponseEncoderSettingsTypeDef",
    "ClientStartChannelResponseInputAttachmentsInputSettingsAudioSelectorsSelectorSettingsAudioLanguageSelectionTypeDef",
    "ClientStartChannelResponseInputAttachmentsInputSettingsAudioSelectorsSelectorSettingsAudioPidSelectionTypeDef",
    "ClientStartChannelResponseInputAttachmentsInputSettingsAudioSelectorsSelectorSettingsTypeDef",
    "ClientStartChannelResponseInputAttachmentsInputSettingsAudioSelectorsTypeDef",
    "ClientStartChannelResponseInputAttachmentsInputSettingsCaptionSelectorsSelectorSettingsDvbSubSourceSettingsTypeDef",
    "ClientStartChannelResponseInputAttachmentsInputSettingsCaptionSelectorsSelectorSettingsEmbeddedSourceSettingsTypeDef",
    "ClientStartChannelResponseInputAttachmentsInputSettingsCaptionSelectorsSelectorSettingsScte20SourceSettingsTypeDef",
    "ClientStartChannelResponseInputAttachmentsInputSettingsCaptionSelectorsSelectorSettingsScte27SourceSettingsTypeDef",
    "ClientStartChannelResponseInputAttachmentsInputSettingsCaptionSelectorsSelectorSettingsTeletextSourceSettingsTypeDef",
    "ClientStartChannelResponseInputAttachmentsInputSettingsCaptionSelectorsSelectorSettingsTypeDef",
    "ClientStartChannelResponseInputAttachmentsInputSettingsCaptionSelectorsTypeDef",
    "ClientStartChannelResponseInputAttachmentsInputSettingsNetworkInputSettingsHlsInputSettingsTypeDef",
    "ClientStartChannelResponseInputAttachmentsInputSettingsNetworkInputSettingsTypeDef",
    "ClientStartChannelResponseInputAttachmentsInputSettingsVideoSelectorSelectorSettingsVideoSelectorPidTypeDef",
    "ClientStartChannelResponseInputAttachmentsInputSettingsVideoSelectorSelectorSettingsVideoSelectorProgramIdTypeDef",
    "ClientStartChannelResponseInputAttachmentsInputSettingsVideoSelectorSelectorSettingsTypeDef",
    "ClientStartChannelResponseInputAttachmentsInputSettingsVideoSelectorTypeDef",
    "ClientStartChannelResponseInputAttachmentsInputSettingsTypeDef",
    "ClientStartChannelResponseInputAttachmentsTypeDef",
    "ClientStartChannelResponseInputSpecificationTypeDef",
    "ClientStartChannelResponsePipelineDetailsTypeDef",
    "ClientStartChannelResponseTypeDef",
    "ClientStartMultiplexResponseDestinationsMediaConnectSettingsTypeDef",
    "ClientStartMultiplexResponseDestinationsTypeDef",
    "ClientStartMultiplexResponseMultiplexSettingsTypeDef",
    "ClientStartMultiplexResponseTypeDef",
    "ClientStopChannelResponseDestinationsMediaPackageSettingsTypeDef",
    "ClientStopChannelResponseDestinationsMultiplexSettingsTypeDef",
    "ClientStopChannelResponseDestinationsSettingsTypeDef",
    "ClientStopChannelResponseDestinationsTypeDef",
    "ClientStopChannelResponseEgressEndpointsTypeDef",
    "ClientStopChannelResponseEncoderSettingsAudioDescriptionsAudioNormalizationSettingsTypeDef",
    "ClientStopChannelResponseEncoderSettingsAudioDescriptionsCodecSettingsAacSettingsTypeDef",
    "ClientStopChannelResponseEncoderSettingsAudioDescriptionsCodecSettingsAc3SettingsTypeDef",
    "ClientStopChannelResponseEncoderSettingsAudioDescriptionsCodecSettingsEac3SettingsTypeDef",
    "ClientStopChannelResponseEncoderSettingsAudioDescriptionsCodecSettingsMp2SettingsTypeDef",
    "ClientStopChannelResponseEncoderSettingsAudioDescriptionsCodecSettingsTypeDef",
    "ClientStopChannelResponseEncoderSettingsAudioDescriptionsRemixSettingsChannelMappingsInputChannelLevelsTypeDef",
    "ClientStopChannelResponseEncoderSettingsAudioDescriptionsRemixSettingsChannelMappingsTypeDef",
    "ClientStopChannelResponseEncoderSettingsAudioDescriptionsRemixSettingsTypeDef",
    "ClientStopChannelResponseEncoderSettingsAudioDescriptionsTypeDef",
    "ClientStopChannelResponseEncoderSettingsAvailBlankingAvailBlankingImageTypeDef",
    "ClientStopChannelResponseEncoderSettingsAvailBlankingTypeDef",
    "ClientStopChannelResponseEncoderSettingsAvailConfigurationAvailSettingsScte35SpliceInsertTypeDef",
    "ClientStopChannelResponseEncoderSettingsAvailConfigurationAvailSettingsScte35TimeSignalAposTypeDef",
    "ClientStopChannelResponseEncoderSettingsAvailConfigurationAvailSettingsTypeDef",
    "ClientStopChannelResponseEncoderSettingsAvailConfigurationTypeDef",
    "ClientStopChannelResponseEncoderSettingsBlackoutSlateBlackoutSlateImageTypeDef",
    "ClientStopChannelResponseEncoderSettingsBlackoutSlateNetworkEndBlackoutImageTypeDef",
    "ClientStopChannelResponseEncoderSettingsBlackoutSlateTypeDef",
    "ClientStopChannelResponseEncoderSettingsCaptionDescriptionsDestinationSettingsBurnInDestinationSettingsFontTypeDef",
    "ClientStopChannelResponseEncoderSettingsCaptionDescriptionsDestinationSettingsBurnInDestinationSettingsTypeDef",
    "ClientStopChannelResponseEncoderSettingsCaptionDescriptionsDestinationSettingsDvbSubDestinationSettingsFontTypeDef",
    "ClientStopChannelResponseEncoderSettingsCaptionDescriptionsDestinationSettingsDvbSubDestinationSettingsTypeDef",
    "ClientStopChannelResponseEncoderSettingsCaptionDescriptionsDestinationSettingsTtmlDestinationSettingsTypeDef",
    "ClientStopChannelResponseEncoderSettingsCaptionDescriptionsDestinationSettingsTypeDef",
    "ClientStopChannelResponseEncoderSettingsCaptionDescriptionsTypeDef",
    "ClientStopChannelResponseEncoderSettingsGlobalConfigurationInputLossBehaviorInputLossImageSlateTypeDef",
    "ClientStopChannelResponseEncoderSettingsGlobalConfigurationInputLossBehaviorTypeDef",
    "ClientStopChannelResponseEncoderSettingsGlobalConfigurationTypeDef",
    "ClientStopChannelResponseEncoderSettingsNielsenConfigurationTypeDef",
    "ClientStopChannelResponseEncoderSettingsOutputGroupsOutputGroupSettingsArchiveGroupSettingsDestinationTypeDef",
    "ClientStopChannelResponseEncoderSettingsOutputGroupsOutputGroupSettingsArchiveGroupSettingsTypeDef",
    "ClientStopChannelResponseEncoderSettingsOutputGroupsOutputGroupSettingsFrameCaptureGroupSettingsDestinationTypeDef",
    "ClientStopChannelResponseEncoderSettingsOutputGroupsOutputGroupSettingsFrameCaptureGroupSettingsTypeDef",
    "ClientStopChannelResponseEncoderSettingsOutputGroupsOutputGroupSettingsHlsGroupSettingsCaptionLanguageMappingsTypeDef",
    "ClientStopChannelResponseEncoderSettingsOutputGroupsOutputGroupSettingsHlsGroupSettingsDestinationTypeDef",
    "ClientStopChannelResponseEncoderSettingsOutputGroupsOutputGroupSettingsHlsGroupSettingsHlsCdnSettingsHlsAkamaiSettingsTypeDef",
    "ClientStopChannelResponseEncoderSettingsOutputGroupsOutputGroupSettingsHlsGroupSettingsHlsCdnSettingsHlsBasicPutSettingsTypeDef",
    "ClientStopChannelResponseEncoderSettingsOutputGroupsOutputGroupSettingsHlsGroupSettingsHlsCdnSettingsHlsMediaStoreSettingsTypeDef",
    "ClientStopChannelResponseEncoderSettingsOutputGroupsOutputGroupSettingsHlsGroupSettingsHlsCdnSettingsHlsWebdavSettingsTypeDef",
    "ClientStopChannelResponseEncoderSettingsOutputGroupsOutputGroupSettingsHlsGroupSettingsHlsCdnSettingsTypeDef",
    "ClientStopChannelResponseEncoderSettingsOutputGroupsOutputGroupSettingsHlsGroupSettingsKeyProviderSettingsStaticKeySettingsKeyProviderServerTypeDef",
    "ClientStopChannelResponseEncoderSettingsOutputGroupsOutputGroupSettingsHlsGroupSettingsKeyProviderSettingsStaticKeySettingsTypeDef",
    "ClientStopChannelResponseEncoderSettingsOutputGroupsOutputGroupSettingsHlsGroupSettingsKeyProviderSettingsTypeDef",
    "ClientStopChannelResponseEncoderSettingsOutputGroupsOutputGroupSettingsHlsGroupSettingsTypeDef",
    "ClientStopChannelResponseEncoderSettingsOutputGroupsOutputGroupSettingsMediaPackageGroupSettingsDestinationTypeDef",
    "ClientStopChannelResponseEncoderSettingsOutputGroupsOutputGroupSettingsMediaPackageGroupSettingsTypeDef",
    "ClientStopChannelResponseEncoderSettingsOutputGroupsOutputGroupSettingsMsSmoothGroupSettingsDestinationTypeDef",
    "ClientStopChannelResponseEncoderSettingsOutputGroupsOutputGroupSettingsMsSmoothGroupSettingsTypeDef",
    "ClientStopChannelResponseEncoderSettingsOutputGroupsOutputGroupSettingsRtmpGroupSettingsTypeDef",
    "ClientStopChannelResponseEncoderSettingsOutputGroupsOutputGroupSettingsUdpGroupSettingsTypeDef",
    "ClientStopChannelResponseEncoderSettingsOutputGroupsOutputGroupSettingsTypeDef",
    "ClientStopChannelResponseEncoderSettingsOutputGroupsOutputsOutputSettingsArchiveOutputSettingsContainerSettingsM2tsSettingsDvbNitSettingsTypeDef",
    "ClientStopChannelResponseEncoderSettingsOutputGroupsOutputsOutputSettingsArchiveOutputSettingsContainerSettingsM2tsSettingsDvbSdtSettingsTypeDef",
    "ClientStopChannelResponseEncoderSettingsOutputGroupsOutputsOutputSettingsArchiveOutputSettingsContainerSettingsM2tsSettingsDvbTdtSettingsTypeDef",
    "ClientStopChannelResponseEncoderSettingsOutputGroupsOutputsOutputSettingsArchiveOutputSettingsContainerSettingsM2tsSettingsTypeDef",
    "ClientStopChannelResponseEncoderSettingsOutputGroupsOutputsOutputSettingsArchiveOutputSettingsContainerSettingsTypeDef",
    "ClientStopChannelResponseEncoderSettingsOutputGroupsOutputsOutputSettingsArchiveOutputSettingsTypeDef",
    "ClientStopChannelResponseEncoderSettingsOutputGroupsOutputsOutputSettingsFrameCaptureOutputSettingsTypeDef",
    "ClientStopChannelResponseEncoderSettingsOutputGroupsOutputsOutputSettingsHlsOutputSettingsHlsSettingsAudioOnlyHlsSettingsAudioOnlyImageTypeDef",
    "ClientStopChannelResponseEncoderSettingsOutputGroupsOutputsOutputSettingsHlsOutputSettingsHlsSettingsAudioOnlyHlsSettingsTypeDef",
    "ClientStopChannelResponseEncoderSettingsOutputGroupsOutputsOutputSettingsHlsOutputSettingsHlsSettingsStandardHlsSettingsM3u8SettingsTypeDef",
    "ClientStopChannelResponseEncoderSettingsOutputGroupsOutputsOutputSettingsHlsOutputSettingsHlsSettingsStandardHlsSettingsTypeDef",
    "ClientStopChannelResponseEncoderSettingsOutputGroupsOutputsOutputSettingsHlsOutputSettingsHlsSettingsTypeDef",
    "ClientStopChannelResponseEncoderSettingsOutputGroupsOutputsOutputSettingsHlsOutputSettingsTypeDef",
    "ClientStopChannelResponseEncoderSettingsOutputGroupsOutputsOutputSettingsMsSmoothOutputSettingsTypeDef",
    "ClientStopChannelResponseEncoderSettingsOutputGroupsOutputsOutputSettingsMultiplexOutputSettingsDestinationTypeDef",
    "ClientStopChannelResponseEncoderSettingsOutputGroupsOutputsOutputSettingsMultiplexOutputSettingsTypeDef",
    "ClientStopChannelResponseEncoderSettingsOutputGroupsOutputsOutputSettingsRtmpOutputSettingsDestinationTypeDef",
    "ClientStopChannelResponseEncoderSettingsOutputGroupsOutputsOutputSettingsRtmpOutputSettingsTypeDef",
    "ClientStopChannelResponseEncoderSettingsOutputGroupsOutputsOutputSettingsUdpOutputSettingsContainerSettingsM2tsSettingsDvbNitSettingsTypeDef",
    "ClientStopChannelResponseEncoderSettingsOutputGroupsOutputsOutputSettingsUdpOutputSettingsContainerSettingsM2tsSettingsDvbSdtSettingsTypeDef",
    "ClientStopChannelResponseEncoderSettingsOutputGroupsOutputsOutputSettingsUdpOutputSettingsContainerSettingsM2tsSettingsDvbTdtSettingsTypeDef",
    "ClientStopChannelResponseEncoderSettingsOutputGroupsOutputsOutputSettingsUdpOutputSettingsContainerSettingsM2tsSettingsTypeDef",
    "ClientStopChannelResponseEncoderSettingsOutputGroupsOutputsOutputSettingsUdpOutputSettingsContainerSettingsTypeDef",
    "ClientStopChannelResponseEncoderSettingsOutputGroupsOutputsOutputSettingsUdpOutputSettingsDestinationTypeDef",
    "ClientStopChannelResponseEncoderSettingsOutputGroupsOutputsOutputSettingsUdpOutputSettingsFecOutputSettingsTypeDef",
    "ClientStopChannelResponseEncoderSettingsOutputGroupsOutputsOutputSettingsUdpOutputSettingsTypeDef",
    "ClientStopChannelResponseEncoderSettingsOutputGroupsOutputsOutputSettingsTypeDef",
    "ClientStopChannelResponseEncoderSettingsOutputGroupsOutputsTypeDef",
    "ClientStopChannelResponseEncoderSettingsOutputGroupsTypeDef",
    "ClientStopChannelResponseEncoderSettingsTimecodeConfigTypeDef",
    "ClientStopChannelResponseEncoderSettingsVideoDescriptionsCodecSettingsFrameCaptureSettingsTypeDef",
    "ClientStopChannelResponseEncoderSettingsVideoDescriptionsCodecSettingsH264SettingsColorSpaceSettingsTypeDef",
    "ClientStopChannelResponseEncoderSettingsVideoDescriptionsCodecSettingsH264SettingsTypeDef",
    "ClientStopChannelResponseEncoderSettingsVideoDescriptionsCodecSettingsH265SettingsColorSpaceSettingsHdr10SettingsTypeDef",
    "ClientStopChannelResponseEncoderSettingsVideoDescriptionsCodecSettingsH265SettingsColorSpaceSettingsTypeDef",
    "ClientStopChannelResponseEncoderSettingsVideoDescriptionsCodecSettingsH265SettingsTypeDef",
    "ClientStopChannelResponseEncoderSettingsVideoDescriptionsCodecSettingsTypeDef",
    "ClientStopChannelResponseEncoderSettingsVideoDescriptionsTypeDef",
    "ClientStopChannelResponseEncoderSettingsTypeDef",
    "ClientStopChannelResponseInputAttachmentsInputSettingsAudioSelectorsSelectorSettingsAudioLanguageSelectionTypeDef",
    "ClientStopChannelResponseInputAttachmentsInputSettingsAudioSelectorsSelectorSettingsAudioPidSelectionTypeDef",
    "ClientStopChannelResponseInputAttachmentsInputSettingsAudioSelectorsSelectorSettingsTypeDef",
    "ClientStopChannelResponseInputAttachmentsInputSettingsAudioSelectorsTypeDef",
    "ClientStopChannelResponseInputAttachmentsInputSettingsCaptionSelectorsSelectorSettingsDvbSubSourceSettingsTypeDef",
    "ClientStopChannelResponseInputAttachmentsInputSettingsCaptionSelectorsSelectorSettingsEmbeddedSourceSettingsTypeDef",
    "ClientStopChannelResponseInputAttachmentsInputSettingsCaptionSelectorsSelectorSettingsScte20SourceSettingsTypeDef",
    "ClientStopChannelResponseInputAttachmentsInputSettingsCaptionSelectorsSelectorSettingsScte27SourceSettingsTypeDef",
    "ClientStopChannelResponseInputAttachmentsInputSettingsCaptionSelectorsSelectorSettingsTeletextSourceSettingsTypeDef",
    "ClientStopChannelResponseInputAttachmentsInputSettingsCaptionSelectorsSelectorSettingsTypeDef",
    "ClientStopChannelResponseInputAttachmentsInputSettingsCaptionSelectorsTypeDef",
    "ClientStopChannelResponseInputAttachmentsInputSettingsNetworkInputSettingsHlsInputSettingsTypeDef",
    "ClientStopChannelResponseInputAttachmentsInputSettingsNetworkInputSettingsTypeDef",
    "ClientStopChannelResponseInputAttachmentsInputSettingsVideoSelectorSelectorSettingsVideoSelectorPidTypeDef",
    "ClientStopChannelResponseInputAttachmentsInputSettingsVideoSelectorSelectorSettingsVideoSelectorProgramIdTypeDef",
    "ClientStopChannelResponseInputAttachmentsInputSettingsVideoSelectorSelectorSettingsTypeDef",
    "ClientStopChannelResponseInputAttachmentsInputSettingsVideoSelectorTypeDef",
    "ClientStopChannelResponseInputAttachmentsInputSettingsTypeDef",
    "ClientStopChannelResponseInputAttachmentsTypeDef",
    "ClientStopChannelResponseInputSpecificationTypeDef",
    "ClientStopChannelResponsePipelineDetailsTypeDef",
    "ClientStopChannelResponseTypeDef",
    "ClientStopMultiplexResponseDestinationsMediaConnectSettingsTypeDef",
    "ClientStopMultiplexResponseDestinationsTypeDef",
    "ClientStopMultiplexResponseMultiplexSettingsTypeDef",
    "ClientStopMultiplexResponseTypeDef",
    "ClientUpdateChannelClassDestinationsMediaPackageSettingsTypeDef",
    "ClientUpdateChannelClassDestinationsMultiplexSettingsTypeDef",
    "ClientUpdateChannelClassDestinationsSettingsTypeDef",
    "ClientUpdateChannelClassDestinationsTypeDef",
    "ClientUpdateChannelClassResponseChannelDestinationsMediaPackageSettingsTypeDef",
    "ClientUpdateChannelClassResponseChannelDestinationsMultiplexSettingsTypeDef",
    "ClientUpdateChannelClassResponseChannelDestinationsSettingsTypeDef",
    "ClientUpdateChannelClassResponseChannelDestinationsTypeDef",
    "ClientUpdateChannelClassResponseChannelEgressEndpointsTypeDef",
    "ClientUpdateChannelClassResponseChannelEncoderSettingsAudioDescriptionsAudioNormalizationSettingsTypeDef",
    "ClientUpdateChannelClassResponseChannelEncoderSettingsAudioDescriptionsCodecSettingsAacSettingsTypeDef",
    "ClientUpdateChannelClassResponseChannelEncoderSettingsAudioDescriptionsCodecSettingsAc3SettingsTypeDef",
    "ClientUpdateChannelClassResponseChannelEncoderSettingsAudioDescriptionsCodecSettingsEac3SettingsTypeDef",
    "ClientUpdateChannelClassResponseChannelEncoderSettingsAudioDescriptionsCodecSettingsMp2SettingsTypeDef",
    "ClientUpdateChannelClassResponseChannelEncoderSettingsAudioDescriptionsCodecSettingsTypeDef",
    "ClientUpdateChannelClassResponseChannelEncoderSettingsAudioDescriptionsRemixSettingsChannelMappingsInputChannelLevelsTypeDef",
    "ClientUpdateChannelClassResponseChannelEncoderSettingsAudioDescriptionsRemixSettingsChannelMappingsTypeDef",
    "ClientUpdateChannelClassResponseChannelEncoderSettingsAudioDescriptionsRemixSettingsTypeDef",
    "ClientUpdateChannelClassResponseChannelEncoderSettingsAudioDescriptionsTypeDef",
    "ClientUpdateChannelClassResponseChannelEncoderSettingsAvailBlankingAvailBlankingImageTypeDef",
    "ClientUpdateChannelClassResponseChannelEncoderSettingsAvailBlankingTypeDef",
    "ClientUpdateChannelClassResponseChannelEncoderSettingsAvailConfigurationAvailSettingsScte35SpliceInsertTypeDef",
    "ClientUpdateChannelClassResponseChannelEncoderSettingsAvailConfigurationAvailSettingsScte35TimeSignalAposTypeDef",
    "ClientUpdateChannelClassResponseChannelEncoderSettingsAvailConfigurationAvailSettingsTypeDef",
    "ClientUpdateChannelClassResponseChannelEncoderSettingsAvailConfigurationTypeDef",
    "ClientUpdateChannelClassResponseChannelEncoderSettingsBlackoutSlateBlackoutSlateImageTypeDef",
    "ClientUpdateChannelClassResponseChannelEncoderSettingsBlackoutSlateNetworkEndBlackoutImageTypeDef",
    "ClientUpdateChannelClassResponseChannelEncoderSettingsBlackoutSlateTypeDef",
    "ClientUpdateChannelClassResponseChannelEncoderSettingsCaptionDescriptionsDestinationSettingsBurnInDestinationSettingsFontTypeDef",
    "ClientUpdateChannelClassResponseChannelEncoderSettingsCaptionDescriptionsDestinationSettingsBurnInDestinationSettingsTypeDef",
    "ClientUpdateChannelClassResponseChannelEncoderSettingsCaptionDescriptionsDestinationSettingsDvbSubDestinationSettingsFontTypeDef",
    "ClientUpdateChannelClassResponseChannelEncoderSettingsCaptionDescriptionsDestinationSettingsDvbSubDestinationSettingsTypeDef",
    "ClientUpdateChannelClassResponseChannelEncoderSettingsCaptionDescriptionsDestinationSettingsTtmlDestinationSettingsTypeDef",
    "ClientUpdateChannelClassResponseChannelEncoderSettingsCaptionDescriptionsDestinationSettingsTypeDef",
    "ClientUpdateChannelClassResponseChannelEncoderSettingsCaptionDescriptionsTypeDef",
    "ClientUpdateChannelClassResponseChannelEncoderSettingsGlobalConfigurationInputLossBehaviorInputLossImageSlateTypeDef",
    "ClientUpdateChannelClassResponseChannelEncoderSettingsGlobalConfigurationInputLossBehaviorTypeDef",
    "ClientUpdateChannelClassResponseChannelEncoderSettingsGlobalConfigurationTypeDef",
    "ClientUpdateChannelClassResponseChannelEncoderSettingsNielsenConfigurationTypeDef",
    "ClientUpdateChannelClassResponseChannelEncoderSettingsOutputGroupsOutputGroupSettingsArchiveGroupSettingsDestinationTypeDef",
    "ClientUpdateChannelClassResponseChannelEncoderSettingsOutputGroupsOutputGroupSettingsArchiveGroupSettingsTypeDef",
    "ClientUpdateChannelClassResponseChannelEncoderSettingsOutputGroupsOutputGroupSettingsFrameCaptureGroupSettingsDestinationTypeDef",
    "ClientUpdateChannelClassResponseChannelEncoderSettingsOutputGroupsOutputGroupSettingsFrameCaptureGroupSettingsTypeDef",
    "ClientUpdateChannelClassResponseChannelEncoderSettingsOutputGroupsOutputGroupSettingsHlsGroupSettingsCaptionLanguageMappingsTypeDef",
    "ClientUpdateChannelClassResponseChannelEncoderSettingsOutputGroupsOutputGroupSettingsHlsGroupSettingsDestinationTypeDef",
    "ClientUpdateChannelClassResponseChannelEncoderSettingsOutputGroupsOutputGroupSettingsHlsGroupSettingsHlsCdnSettingsHlsAkamaiSettingsTypeDef",
    "ClientUpdateChannelClassResponseChannelEncoderSettingsOutputGroupsOutputGroupSettingsHlsGroupSettingsHlsCdnSettingsHlsBasicPutSettingsTypeDef",
    "ClientUpdateChannelClassResponseChannelEncoderSettingsOutputGroupsOutputGroupSettingsHlsGroupSettingsHlsCdnSettingsHlsMediaStoreSettingsTypeDef",
    "ClientUpdateChannelClassResponseChannelEncoderSettingsOutputGroupsOutputGroupSettingsHlsGroupSettingsHlsCdnSettingsHlsWebdavSettingsTypeDef",
    "ClientUpdateChannelClassResponseChannelEncoderSettingsOutputGroupsOutputGroupSettingsHlsGroupSettingsHlsCdnSettingsTypeDef",
    "ClientUpdateChannelClassResponseChannelEncoderSettingsOutputGroupsOutputGroupSettingsHlsGroupSettingsKeyProviderSettingsStaticKeySettingsKeyProviderServerTypeDef",
    "ClientUpdateChannelClassResponseChannelEncoderSettingsOutputGroupsOutputGroupSettingsHlsGroupSettingsKeyProviderSettingsStaticKeySettingsTypeDef",
    "ClientUpdateChannelClassResponseChannelEncoderSettingsOutputGroupsOutputGroupSettingsHlsGroupSettingsKeyProviderSettingsTypeDef",
    "ClientUpdateChannelClassResponseChannelEncoderSettingsOutputGroupsOutputGroupSettingsHlsGroupSettingsTypeDef",
    "ClientUpdateChannelClassResponseChannelEncoderSettingsOutputGroupsOutputGroupSettingsMediaPackageGroupSettingsDestinationTypeDef",
    "ClientUpdateChannelClassResponseChannelEncoderSettingsOutputGroupsOutputGroupSettingsMediaPackageGroupSettingsTypeDef",
    "ClientUpdateChannelClassResponseChannelEncoderSettingsOutputGroupsOutputGroupSettingsMsSmoothGroupSettingsDestinationTypeDef",
    "ClientUpdateChannelClassResponseChannelEncoderSettingsOutputGroupsOutputGroupSettingsMsSmoothGroupSettingsTypeDef",
    "ClientUpdateChannelClassResponseChannelEncoderSettingsOutputGroupsOutputGroupSettingsRtmpGroupSettingsTypeDef",
    "ClientUpdateChannelClassResponseChannelEncoderSettingsOutputGroupsOutputGroupSettingsUdpGroupSettingsTypeDef",
    "ClientUpdateChannelClassResponseChannelEncoderSettingsOutputGroupsOutputGroupSettingsTypeDef",
    "ClientUpdateChannelClassResponseChannelEncoderSettingsOutputGroupsOutputsOutputSettingsArchiveOutputSettingsContainerSettingsM2tsSettingsDvbNitSettingsTypeDef",
    "ClientUpdateChannelClassResponseChannelEncoderSettingsOutputGroupsOutputsOutputSettingsArchiveOutputSettingsContainerSettingsM2tsSettingsDvbSdtSettingsTypeDef",
    "ClientUpdateChannelClassResponseChannelEncoderSettingsOutputGroupsOutputsOutputSettingsArchiveOutputSettingsContainerSettingsM2tsSettingsDvbTdtSettingsTypeDef",
    "ClientUpdateChannelClassResponseChannelEncoderSettingsOutputGroupsOutputsOutputSettingsArchiveOutputSettingsContainerSettingsM2tsSettingsTypeDef",
    "ClientUpdateChannelClassResponseChannelEncoderSettingsOutputGroupsOutputsOutputSettingsArchiveOutputSettingsContainerSettingsTypeDef",
    "ClientUpdateChannelClassResponseChannelEncoderSettingsOutputGroupsOutputsOutputSettingsArchiveOutputSettingsTypeDef",
    "ClientUpdateChannelClassResponseChannelEncoderSettingsOutputGroupsOutputsOutputSettingsFrameCaptureOutputSettingsTypeDef",
    "ClientUpdateChannelClassResponseChannelEncoderSettingsOutputGroupsOutputsOutputSettingsHlsOutputSettingsHlsSettingsAudioOnlyHlsSettingsAudioOnlyImageTypeDef",
    "ClientUpdateChannelClassResponseChannelEncoderSettingsOutputGroupsOutputsOutputSettingsHlsOutputSettingsHlsSettingsAudioOnlyHlsSettingsTypeDef",
    "ClientUpdateChannelClassResponseChannelEncoderSettingsOutputGroupsOutputsOutputSettingsHlsOutputSettingsHlsSettingsStandardHlsSettingsM3u8SettingsTypeDef",
    "ClientUpdateChannelClassResponseChannelEncoderSettingsOutputGroupsOutputsOutputSettingsHlsOutputSettingsHlsSettingsStandardHlsSettingsTypeDef",
    "ClientUpdateChannelClassResponseChannelEncoderSettingsOutputGroupsOutputsOutputSettingsHlsOutputSettingsHlsSettingsTypeDef",
    "ClientUpdateChannelClassResponseChannelEncoderSettingsOutputGroupsOutputsOutputSettingsHlsOutputSettingsTypeDef",
    "ClientUpdateChannelClassResponseChannelEncoderSettingsOutputGroupsOutputsOutputSettingsMsSmoothOutputSettingsTypeDef",
    "ClientUpdateChannelClassResponseChannelEncoderSettingsOutputGroupsOutputsOutputSettingsMultiplexOutputSettingsDestinationTypeDef",
    "ClientUpdateChannelClassResponseChannelEncoderSettingsOutputGroupsOutputsOutputSettingsMultiplexOutputSettingsTypeDef",
    "ClientUpdateChannelClassResponseChannelEncoderSettingsOutputGroupsOutputsOutputSettingsRtmpOutputSettingsDestinationTypeDef",
    "ClientUpdateChannelClassResponseChannelEncoderSettingsOutputGroupsOutputsOutputSettingsRtmpOutputSettingsTypeDef",
    "ClientUpdateChannelClassResponseChannelEncoderSettingsOutputGroupsOutputsOutputSettingsUdpOutputSettingsContainerSettingsM2tsSettingsDvbNitSettingsTypeDef",
    "ClientUpdateChannelClassResponseChannelEncoderSettingsOutputGroupsOutputsOutputSettingsUdpOutputSettingsContainerSettingsM2tsSettingsDvbSdtSettingsTypeDef",
    "ClientUpdateChannelClassResponseChannelEncoderSettingsOutputGroupsOutputsOutputSettingsUdpOutputSettingsContainerSettingsM2tsSettingsDvbTdtSettingsTypeDef",
    "ClientUpdateChannelClassResponseChannelEncoderSettingsOutputGroupsOutputsOutputSettingsUdpOutputSettingsContainerSettingsM2tsSettingsTypeDef",
    "ClientUpdateChannelClassResponseChannelEncoderSettingsOutputGroupsOutputsOutputSettingsUdpOutputSettingsContainerSettingsTypeDef",
    "ClientUpdateChannelClassResponseChannelEncoderSettingsOutputGroupsOutputsOutputSettingsUdpOutputSettingsDestinationTypeDef",
    "ClientUpdateChannelClassResponseChannelEncoderSettingsOutputGroupsOutputsOutputSettingsUdpOutputSettingsFecOutputSettingsTypeDef",
    "ClientUpdateChannelClassResponseChannelEncoderSettingsOutputGroupsOutputsOutputSettingsUdpOutputSettingsTypeDef",
    "ClientUpdateChannelClassResponseChannelEncoderSettingsOutputGroupsOutputsOutputSettingsTypeDef",
    "ClientUpdateChannelClassResponseChannelEncoderSettingsOutputGroupsOutputsTypeDef",
    "ClientUpdateChannelClassResponseChannelEncoderSettingsOutputGroupsTypeDef",
    "ClientUpdateChannelClassResponseChannelEncoderSettingsTimecodeConfigTypeDef",
    "ClientUpdateChannelClassResponseChannelEncoderSettingsVideoDescriptionsCodecSettingsFrameCaptureSettingsTypeDef",
    "ClientUpdateChannelClassResponseChannelEncoderSettingsVideoDescriptionsCodecSettingsH264SettingsColorSpaceSettingsTypeDef",
    "ClientUpdateChannelClassResponseChannelEncoderSettingsVideoDescriptionsCodecSettingsH264SettingsTypeDef",
    "ClientUpdateChannelClassResponseChannelEncoderSettingsVideoDescriptionsCodecSettingsH265SettingsColorSpaceSettingsHdr10SettingsTypeDef",
    "ClientUpdateChannelClassResponseChannelEncoderSettingsVideoDescriptionsCodecSettingsH265SettingsColorSpaceSettingsTypeDef",
    "ClientUpdateChannelClassResponseChannelEncoderSettingsVideoDescriptionsCodecSettingsH265SettingsTypeDef",
    "ClientUpdateChannelClassResponseChannelEncoderSettingsVideoDescriptionsCodecSettingsTypeDef",
    "ClientUpdateChannelClassResponseChannelEncoderSettingsVideoDescriptionsTypeDef",
    "ClientUpdateChannelClassResponseChannelEncoderSettingsTypeDef",
    "ClientUpdateChannelClassResponseChannelInputAttachmentsInputSettingsAudioSelectorsSelectorSettingsAudioLanguageSelectionTypeDef",
    "ClientUpdateChannelClassResponseChannelInputAttachmentsInputSettingsAudioSelectorsSelectorSettingsAudioPidSelectionTypeDef",
    "ClientUpdateChannelClassResponseChannelInputAttachmentsInputSettingsAudioSelectorsSelectorSettingsTypeDef",
    "ClientUpdateChannelClassResponseChannelInputAttachmentsInputSettingsAudioSelectorsTypeDef",
    "ClientUpdateChannelClassResponseChannelInputAttachmentsInputSettingsCaptionSelectorsSelectorSettingsDvbSubSourceSettingsTypeDef",
    "ClientUpdateChannelClassResponseChannelInputAttachmentsInputSettingsCaptionSelectorsSelectorSettingsEmbeddedSourceSettingsTypeDef",
    "ClientUpdateChannelClassResponseChannelInputAttachmentsInputSettingsCaptionSelectorsSelectorSettingsScte20SourceSettingsTypeDef",
    "ClientUpdateChannelClassResponseChannelInputAttachmentsInputSettingsCaptionSelectorsSelectorSettingsScte27SourceSettingsTypeDef",
    "ClientUpdateChannelClassResponseChannelInputAttachmentsInputSettingsCaptionSelectorsSelectorSettingsTeletextSourceSettingsTypeDef",
    "ClientUpdateChannelClassResponseChannelInputAttachmentsInputSettingsCaptionSelectorsSelectorSettingsTypeDef",
    "ClientUpdateChannelClassResponseChannelInputAttachmentsInputSettingsCaptionSelectorsTypeDef",
    "ClientUpdateChannelClassResponseChannelInputAttachmentsInputSettingsNetworkInputSettingsHlsInputSettingsTypeDef",
    "ClientUpdateChannelClassResponseChannelInputAttachmentsInputSettingsNetworkInputSettingsTypeDef",
    "ClientUpdateChannelClassResponseChannelInputAttachmentsInputSettingsVideoSelectorSelectorSettingsVideoSelectorPidTypeDef",
    "ClientUpdateChannelClassResponseChannelInputAttachmentsInputSettingsVideoSelectorSelectorSettingsVideoSelectorProgramIdTypeDef",
    "ClientUpdateChannelClassResponseChannelInputAttachmentsInputSettingsVideoSelectorSelectorSettingsTypeDef",
    "ClientUpdateChannelClassResponseChannelInputAttachmentsInputSettingsVideoSelectorTypeDef",
    "ClientUpdateChannelClassResponseChannelInputAttachmentsInputSettingsTypeDef",
    "ClientUpdateChannelClassResponseChannelInputAttachmentsTypeDef",
    "ClientUpdateChannelClassResponseChannelInputSpecificationTypeDef",
    "ClientUpdateChannelClassResponseChannelPipelineDetailsTypeDef",
    "ClientUpdateChannelClassResponseChannelTypeDef",
    "ClientUpdateChannelClassResponseTypeDef",
    "ClientUpdateChannelDestinationsMediaPackageSettingsTypeDef",
    "ClientUpdateChannelDestinationsMultiplexSettingsTypeDef",
    "ClientUpdateChannelDestinationsSettingsTypeDef",
    "ClientUpdateChannelDestinationsTypeDef",
    "ClientUpdateChannelEncoderSettingsAudioDescriptionsAudioNormalizationSettingsTypeDef",
    "ClientUpdateChannelEncoderSettingsAudioDescriptionsCodecSettingsAacSettingsTypeDef",
    "ClientUpdateChannelEncoderSettingsAudioDescriptionsCodecSettingsAc3SettingsTypeDef",
    "ClientUpdateChannelEncoderSettingsAudioDescriptionsCodecSettingsEac3SettingsTypeDef",
    "ClientUpdateChannelEncoderSettingsAudioDescriptionsCodecSettingsMp2SettingsTypeDef",
    "ClientUpdateChannelEncoderSettingsAudioDescriptionsCodecSettingsTypeDef",
    "ClientUpdateChannelEncoderSettingsAudioDescriptionsRemixSettingsChannelMappingsInputChannelLevelsTypeDef",
    "ClientUpdateChannelEncoderSettingsAudioDescriptionsRemixSettingsChannelMappingsTypeDef",
    "ClientUpdateChannelEncoderSettingsAudioDescriptionsRemixSettingsTypeDef",
    "ClientUpdateChannelEncoderSettingsAudioDescriptionsTypeDef",
    "ClientUpdateChannelEncoderSettingsAvailBlankingAvailBlankingImageTypeDef",
    "ClientUpdateChannelEncoderSettingsAvailBlankingTypeDef",
    "ClientUpdateChannelEncoderSettingsAvailConfigurationAvailSettingsScte35SpliceInsertTypeDef",
    "ClientUpdateChannelEncoderSettingsAvailConfigurationAvailSettingsScte35TimeSignalAposTypeDef",
    "ClientUpdateChannelEncoderSettingsAvailConfigurationAvailSettingsTypeDef",
    "ClientUpdateChannelEncoderSettingsAvailConfigurationTypeDef",
    "ClientUpdateChannelEncoderSettingsBlackoutSlateBlackoutSlateImageTypeDef",
    "ClientUpdateChannelEncoderSettingsBlackoutSlateNetworkEndBlackoutImageTypeDef",
    "ClientUpdateChannelEncoderSettingsBlackoutSlateTypeDef",
    "ClientUpdateChannelEncoderSettingsCaptionDescriptionsDestinationSettingsBurnInDestinationSettingsFontTypeDef",
    "ClientUpdateChannelEncoderSettingsCaptionDescriptionsDestinationSettingsBurnInDestinationSettingsTypeDef",
    "ClientUpdateChannelEncoderSettingsCaptionDescriptionsDestinationSettingsDvbSubDestinationSettingsFontTypeDef",
    "ClientUpdateChannelEncoderSettingsCaptionDescriptionsDestinationSettingsDvbSubDestinationSettingsTypeDef",
    "ClientUpdateChannelEncoderSettingsCaptionDescriptionsDestinationSettingsTtmlDestinationSettingsTypeDef",
    "ClientUpdateChannelEncoderSettingsCaptionDescriptionsDestinationSettingsTypeDef",
    "ClientUpdateChannelEncoderSettingsCaptionDescriptionsTypeDef",
    "ClientUpdateChannelEncoderSettingsGlobalConfigurationInputLossBehaviorInputLossImageSlateTypeDef",
    "ClientUpdateChannelEncoderSettingsGlobalConfigurationInputLossBehaviorTypeDef",
    "ClientUpdateChannelEncoderSettingsGlobalConfigurationTypeDef",
    "ClientUpdateChannelEncoderSettingsNielsenConfigurationTypeDef",
    "ClientUpdateChannelEncoderSettingsOutputGroupsOutputGroupSettingsArchiveGroupSettingsDestinationTypeDef",
    "ClientUpdateChannelEncoderSettingsOutputGroupsOutputGroupSettingsArchiveGroupSettingsTypeDef",
    "ClientUpdateChannelEncoderSettingsOutputGroupsOutputGroupSettingsFrameCaptureGroupSettingsDestinationTypeDef",
    "ClientUpdateChannelEncoderSettingsOutputGroupsOutputGroupSettingsFrameCaptureGroupSettingsTypeDef",
    "ClientUpdateChannelEncoderSettingsOutputGroupsOutputGroupSettingsHlsGroupSettingsCaptionLanguageMappingsTypeDef",
    "ClientUpdateChannelEncoderSettingsOutputGroupsOutputGroupSettingsHlsGroupSettingsDestinationTypeDef",
    "ClientUpdateChannelEncoderSettingsOutputGroupsOutputGroupSettingsHlsGroupSettingsHlsCdnSettingsHlsAkamaiSettingsTypeDef",
    "ClientUpdateChannelEncoderSettingsOutputGroupsOutputGroupSettingsHlsGroupSettingsHlsCdnSettingsHlsBasicPutSettingsTypeDef",
    "ClientUpdateChannelEncoderSettingsOutputGroupsOutputGroupSettingsHlsGroupSettingsHlsCdnSettingsHlsMediaStoreSettingsTypeDef",
    "ClientUpdateChannelEncoderSettingsOutputGroupsOutputGroupSettingsHlsGroupSettingsHlsCdnSettingsHlsWebdavSettingsTypeDef",
    "ClientUpdateChannelEncoderSettingsOutputGroupsOutputGroupSettingsHlsGroupSettingsHlsCdnSettingsTypeDef",
    "ClientUpdateChannelEncoderSettingsOutputGroupsOutputGroupSettingsHlsGroupSettingsKeyProviderSettingsStaticKeySettingsKeyProviderServerTypeDef",
    "ClientUpdateChannelEncoderSettingsOutputGroupsOutputGroupSettingsHlsGroupSettingsKeyProviderSettingsStaticKeySettingsTypeDef",
    "ClientUpdateChannelEncoderSettingsOutputGroupsOutputGroupSettingsHlsGroupSettingsKeyProviderSettingsTypeDef",
    "ClientUpdateChannelEncoderSettingsOutputGroupsOutputGroupSettingsHlsGroupSettingsTypeDef",
    "ClientUpdateChannelEncoderSettingsOutputGroupsOutputGroupSettingsMediaPackageGroupSettingsDestinationTypeDef",
    "ClientUpdateChannelEncoderSettingsOutputGroupsOutputGroupSettingsMediaPackageGroupSettingsTypeDef",
    "ClientUpdateChannelEncoderSettingsOutputGroupsOutputGroupSettingsMsSmoothGroupSettingsDestinationTypeDef",
    "ClientUpdateChannelEncoderSettingsOutputGroupsOutputGroupSettingsMsSmoothGroupSettingsTypeDef",
    "ClientUpdateChannelEncoderSettingsOutputGroupsOutputGroupSettingsRtmpGroupSettingsTypeDef",
    "ClientUpdateChannelEncoderSettingsOutputGroupsOutputGroupSettingsUdpGroupSettingsTypeDef",
    "ClientUpdateChannelEncoderSettingsOutputGroupsOutputGroupSettingsTypeDef",
    "ClientUpdateChannelEncoderSettingsOutputGroupsOutputsOutputSettingsArchiveOutputSettingsContainerSettingsM2tsSettingsDvbNitSettingsTypeDef",
    "ClientUpdateChannelEncoderSettingsOutputGroupsOutputsOutputSettingsArchiveOutputSettingsContainerSettingsM2tsSettingsDvbSdtSettingsTypeDef",
    "ClientUpdateChannelEncoderSettingsOutputGroupsOutputsOutputSettingsArchiveOutputSettingsContainerSettingsM2tsSettingsDvbTdtSettingsTypeDef",
    "ClientUpdateChannelEncoderSettingsOutputGroupsOutputsOutputSettingsArchiveOutputSettingsContainerSettingsM2tsSettingsTypeDef",
    "ClientUpdateChannelEncoderSettingsOutputGroupsOutputsOutputSettingsArchiveOutputSettingsContainerSettingsTypeDef",
    "ClientUpdateChannelEncoderSettingsOutputGroupsOutputsOutputSettingsArchiveOutputSettingsTypeDef",
    "ClientUpdateChannelEncoderSettingsOutputGroupsOutputsOutputSettingsFrameCaptureOutputSettingsTypeDef",
    "ClientUpdateChannelEncoderSettingsOutputGroupsOutputsOutputSettingsHlsOutputSettingsHlsSettingsAudioOnlyHlsSettingsAudioOnlyImageTypeDef",
    "ClientUpdateChannelEncoderSettingsOutputGroupsOutputsOutputSettingsHlsOutputSettingsHlsSettingsAudioOnlyHlsSettingsTypeDef",
    "ClientUpdateChannelEncoderSettingsOutputGroupsOutputsOutputSettingsHlsOutputSettingsHlsSettingsStandardHlsSettingsM3u8SettingsTypeDef",
    "ClientUpdateChannelEncoderSettingsOutputGroupsOutputsOutputSettingsHlsOutputSettingsHlsSettingsStandardHlsSettingsTypeDef",
    "ClientUpdateChannelEncoderSettingsOutputGroupsOutputsOutputSettingsHlsOutputSettingsHlsSettingsTypeDef",
    "ClientUpdateChannelEncoderSettingsOutputGroupsOutputsOutputSettingsHlsOutputSettingsTypeDef",
    "ClientUpdateChannelEncoderSettingsOutputGroupsOutputsOutputSettingsMsSmoothOutputSettingsTypeDef",
    "ClientUpdateChannelEncoderSettingsOutputGroupsOutputsOutputSettingsMultiplexOutputSettingsDestinationTypeDef",
    "ClientUpdateChannelEncoderSettingsOutputGroupsOutputsOutputSettingsMultiplexOutputSettingsTypeDef",
    "ClientUpdateChannelEncoderSettingsOutputGroupsOutputsOutputSettingsRtmpOutputSettingsDestinationTypeDef",
    "ClientUpdateChannelEncoderSettingsOutputGroupsOutputsOutputSettingsRtmpOutputSettingsTypeDef",
    "ClientUpdateChannelEncoderSettingsOutputGroupsOutputsOutputSettingsUdpOutputSettingsContainerSettingsM2tsSettingsDvbNitSettingsTypeDef",
    "ClientUpdateChannelEncoderSettingsOutputGroupsOutputsOutputSettingsUdpOutputSettingsContainerSettingsM2tsSettingsDvbSdtSettingsTypeDef",
    "ClientUpdateChannelEncoderSettingsOutputGroupsOutputsOutputSettingsUdpOutputSettingsContainerSettingsM2tsSettingsDvbTdtSettingsTypeDef",
    "ClientUpdateChannelEncoderSettingsOutputGroupsOutputsOutputSettingsUdpOutputSettingsContainerSettingsM2tsSettingsTypeDef",
    "ClientUpdateChannelEncoderSettingsOutputGroupsOutputsOutputSettingsUdpOutputSettingsContainerSettingsTypeDef",
    "ClientUpdateChannelEncoderSettingsOutputGroupsOutputsOutputSettingsUdpOutputSettingsDestinationTypeDef",
    "ClientUpdateChannelEncoderSettingsOutputGroupsOutputsOutputSettingsUdpOutputSettingsFecOutputSettingsTypeDef",
    "ClientUpdateChannelEncoderSettingsOutputGroupsOutputsOutputSettingsUdpOutputSettingsTypeDef",
    "ClientUpdateChannelEncoderSettingsOutputGroupsOutputsOutputSettingsTypeDef",
    "ClientUpdateChannelEncoderSettingsOutputGroupsOutputsTypeDef",
    "ClientUpdateChannelEncoderSettingsOutputGroupsTypeDef",
    "ClientUpdateChannelEncoderSettingsTimecodeConfigTypeDef",
    "ClientUpdateChannelEncoderSettingsVideoDescriptionsCodecSettingsFrameCaptureSettingsTypeDef",
    "ClientUpdateChannelEncoderSettingsVideoDescriptionsCodecSettingsH264SettingsColorSpaceSettingsTypeDef",
    "ClientUpdateChannelEncoderSettingsVideoDescriptionsCodecSettingsH264SettingsTypeDef",
    "ClientUpdateChannelEncoderSettingsVideoDescriptionsCodecSettingsH265SettingsColorSpaceSettingsHdr10SettingsTypeDef",
    "ClientUpdateChannelEncoderSettingsVideoDescriptionsCodecSettingsH265SettingsColorSpaceSettingsTypeDef",
    "ClientUpdateChannelEncoderSettingsVideoDescriptionsCodecSettingsH265SettingsTypeDef",
    "ClientUpdateChannelEncoderSettingsVideoDescriptionsCodecSettingsTypeDef",
    "ClientUpdateChannelEncoderSettingsVideoDescriptionsTypeDef",
    "ClientUpdateChannelEncoderSettingsTypeDef",
    "ClientUpdateChannelInputAttachmentsInputSettingsAudioSelectorsSelectorSettingsAudioLanguageSelectionTypeDef",
    "ClientUpdateChannelInputAttachmentsInputSettingsAudioSelectorsSelectorSettingsAudioPidSelectionTypeDef",
    "ClientUpdateChannelInputAttachmentsInputSettingsAudioSelectorsSelectorSettingsTypeDef",
    "ClientUpdateChannelInputAttachmentsInputSettingsAudioSelectorsTypeDef",
    "ClientUpdateChannelInputAttachmentsInputSettingsCaptionSelectorsSelectorSettingsDvbSubSourceSettingsTypeDef",
    "ClientUpdateChannelInputAttachmentsInputSettingsCaptionSelectorsSelectorSettingsEmbeddedSourceSettingsTypeDef",
    "ClientUpdateChannelInputAttachmentsInputSettingsCaptionSelectorsSelectorSettingsScte20SourceSettingsTypeDef",
    "ClientUpdateChannelInputAttachmentsInputSettingsCaptionSelectorsSelectorSettingsScte27SourceSettingsTypeDef",
    "ClientUpdateChannelInputAttachmentsInputSettingsCaptionSelectorsSelectorSettingsTeletextSourceSettingsTypeDef",
    "ClientUpdateChannelInputAttachmentsInputSettingsCaptionSelectorsSelectorSettingsTypeDef",
    "ClientUpdateChannelInputAttachmentsInputSettingsCaptionSelectorsTypeDef",
    "ClientUpdateChannelInputAttachmentsInputSettingsNetworkInputSettingsHlsInputSettingsTypeDef",
    "ClientUpdateChannelInputAttachmentsInputSettingsNetworkInputSettingsTypeDef",
    "ClientUpdateChannelInputAttachmentsInputSettingsVideoSelectorSelectorSettingsVideoSelectorPidTypeDef",
    "ClientUpdateChannelInputAttachmentsInputSettingsVideoSelectorSelectorSettingsVideoSelectorProgramIdTypeDef",
    "ClientUpdateChannelInputAttachmentsInputSettingsVideoSelectorSelectorSettingsTypeDef",
    "ClientUpdateChannelInputAttachmentsInputSettingsVideoSelectorTypeDef",
    "ClientUpdateChannelInputAttachmentsInputSettingsTypeDef",
    "ClientUpdateChannelInputAttachmentsTypeDef",
    "ClientUpdateChannelInputSpecificationTypeDef",
    "ClientUpdateChannelResponseChannelDestinationsMediaPackageSettingsTypeDef",
    "ClientUpdateChannelResponseChannelDestinationsMultiplexSettingsTypeDef",
    "ClientUpdateChannelResponseChannelDestinationsSettingsTypeDef",
    "ClientUpdateChannelResponseChannelDestinationsTypeDef",
    "ClientUpdateChannelResponseChannelEgressEndpointsTypeDef",
    "ClientUpdateChannelResponseChannelEncoderSettingsAudioDescriptionsAudioNormalizationSettingsTypeDef",
    "ClientUpdateChannelResponseChannelEncoderSettingsAudioDescriptionsCodecSettingsAacSettingsTypeDef",
    "ClientUpdateChannelResponseChannelEncoderSettingsAudioDescriptionsCodecSettingsAc3SettingsTypeDef",
    "ClientUpdateChannelResponseChannelEncoderSettingsAudioDescriptionsCodecSettingsEac3SettingsTypeDef",
    "ClientUpdateChannelResponseChannelEncoderSettingsAudioDescriptionsCodecSettingsMp2SettingsTypeDef",
    "ClientUpdateChannelResponseChannelEncoderSettingsAudioDescriptionsCodecSettingsTypeDef",
    "ClientUpdateChannelResponseChannelEncoderSettingsAudioDescriptionsRemixSettingsChannelMappingsInputChannelLevelsTypeDef",
    "ClientUpdateChannelResponseChannelEncoderSettingsAudioDescriptionsRemixSettingsChannelMappingsTypeDef",
    "ClientUpdateChannelResponseChannelEncoderSettingsAudioDescriptionsRemixSettingsTypeDef",
    "ClientUpdateChannelResponseChannelEncoderSettingsAudioDescriptionsTypeDef",
    "ClientUpdateChannelResponseChannelEncoderSettingsAvailBlankingAvailBlankingImageTypeDef",
    "ClientUpdateChannelResponseChannelEncoderSettingsAvailBlankingTypeDef",
    "ClientUpdateChannelResponseChannelEncoderSettingsAvailConfigurationAvailSettingsScte35SpliceInsertTypeDef",
    "ClientUpdateChannelResponseChannelEncoderSettingsAvailConfigurationAvailSettingsScte35TimeSignalAposTypeDef",
    "ClientUpdateChannelResponseChannelEncoderSettingsAvailConfigurationAvailSettingsTypeDef",
    "ClientUpdateChannelResponseChannelEncoderSettingsAvailConfigurationTypeDef",
    "ClientUpdateChannelResponseChannelEncoderSettingsBlackoutSlateBlackoutSlateImageTypeDef",
    "ClientUpdateChannelResponseChannelEncoderSettingsBlackoutSlateNetworkEndBlackoutImageTypeDef",
    "ClientUpdateChannelResponseChannelEncoderSettingsBlackoutSlateTypeDef",
    "ClientUpdateChannelResponseChannelEncoderSettingsCaptionDescriptionsDestinationSettingsBurnInDestinationSettingsFontTypeDef",
    "ClientUpdateChannelResponseChannelEncoderSettingsCaptionDescriptionsDestinationSettingsBurnInDestinationSettingsTypeDef",
    "ClientUpdateChannelResponseChannelEncoderSettingsCaptionDescriptionsDestinationSettingsDvbSubDestinationSettingsFontTypeDef",
    "ClientUpdateChannelResponseChannelEncoderSettingsCaptionDescriptionsDestinationSettingsDvbSubDestinationSettingsTypeDef",
    "ClientUpdateChannelResponseChannelEncoderSettingsCaptionDescriptionsDestinationSettingsTtmlDestinationSettingsTypeDef",
    "ClientUpdateChannelResponseChannelEncoderSettingsCaptionDescriptionsDestinationSettingsTypeDef",
    "ClientUpdateChannelResponseChannelEncoderSettingsCaptionDescriptionsTypeDef",
    "ClientUpdateChannelResponseChannelEncoderSettingsGlobalConfigurationInputLossBehaviorInputLossImageSlateTypeDef",
    "ClientUpdateChannelResponseChannelEncoderSettingsGlobalConfigurationInputLossBehaviorTypeDef",
    "ClientUpdateChannelResponseChannelEncoderSettingsGlobalConfigurationTypeDef",
    "ClientUpdateChannelResponseChannelEncoderSettingsNielsenConfigurationTypeDef",
    "ClientUpdateChannelResponseChannelEncoderSettingsOutputGroupsOutputGroupSettingsArchiveGroupSettingsDestinationTypeDef",
    "ClientUpdateChannelResponseChannelEncoderSettingsOutputGroupsOutputGroupSettingsArchiveGroupSettingsTypeDef",
    "ClientUpdateChannelResponseChannelEncoderSettingsOutputGroupsOutputGroupSettingsFrameCaptureGroupSettingsDestinationTypeDef",
    "ClientUpdateChannelResponseChannelEncoderSettingsOutputGroupsOutputGroupSettingsFrameCaptureGroupSettingsTypeDef",
    "ClientUpdateChannelResponseChannelEncoderSettingsOutputGroupsOutputGroupSettingsHlsGroupSettingsCaptionLanguageMappingsTypeDef",
    "ClientUpdateChannelResponseChannelEncoderSettingsOutputGroupsOutputGroupSettingsHlsGroupSettingsDestinationTypeDef",
    "ClientUpdateChannelResponseChannelEncoderSettingsOutputGroupsOutputGroupSettingsHlsGroupSettingsHlsCdnSettingsHlsAkamaiSettingsTypeDef",
    "ClientUpdateChannelResponseChannelEncoderSettingsOutputGroupsOutputGroupSettingsHlsGroupSettingsHlsCdnSettingsHlsBasicPutSettingsTypeDef",
    "ClientUpdateChannelResponseChannelEncoderSettingsOutputGroupsOutputGroupSettingsHlsGroupSettingsHlsCdnSettingsHlsMediaStoreSettingsTypeDef",
    "ClientUpdateChannelResponseChannelEncoderSettingsOutputGroupsOutputGroupSettingsHlsGroupSettingsHlsCdnSettingsHlsWebdavSettingsTypeDef",
    "ClientUpdateChannelResponseChannelEncoderSettingsOutputGroupsOutputGroupSettingsHlsGroupSettingsHlsCdnSettingsTypeDef",
    "ClientUpdateChannelResponseChannelEncoderSettingsOutputGroupsOutputGroupSettingsHlsGroupSettingsKeyProviderSettingsStaticKeySettingsKeyProviderServerTypeDef",
    "ClientUpdateChannelResponseChannelEncoderSettingsOutputGroupsOutputGroupSettingsHlsGroupSettingsKeyProviderSettingsStaticKeySettingsTypeDef",
    "ClientUpdateChannelResponseChannelEncoderSettingsOutputGroupsOutputGroupSettingsHlsGroupSettingsKeyProviderSettingsTypeDef",
    "ClientUpdateChannelResponseChannelEncoderSettingsOutputGroupsOutputGroupSettingsHlsGroupSettingsTypeDef",
    "ClientUpdateChannelResponseChannelEncoderSettingsOutputGroupsOutputGroupSettingsMediaPackageGroupSettingsDestinationTypeDef",
    "ClientUpdateChannelResponseChannelEncoderSettingsOutputGroupsOutputGroupSettingsMediaPackageGroupSettingsTypeDef",
    "ClientUpdateChannelResponseChannelEncoderSettingsOutputGroupsOutputGroupSettingsMsSmoothGroupSettingsDestinationTypeDef",
    "ClientUpdateChannelResponseChannelEncoderSettingsOutputGroupsOutputGroupSettingsMsSmoothGroupSettingsTypeDef",
    "ClientUpdateChannelResponseChannelEncoderSettingsOutputGroupsOutputGroupSettingsRtmpGroupSettingsTypeDef",
    "ClientUpdateChannelResponseChannelEncoderSettingsOutputGroupsOutputGroupSettingsUdpGroupSettingsTypeDef",
    "ClientUpdateChannelResponseChannelEncoderSettingsOutputGroupsOutputGroupSettingsTypeDef",
    "ClientUpdateChannelResponseChannelEncoderSettingsOutputGroupsOutputsOutputSettingsArchiveOutputSettingsContainerSettingsM2tsSettingsDvbNitSettingsTypeDef",
    "ClientUpdateChannelResponseChannelEncoderSettingsOutputGroupsOutputsOutputSettingsArchiveOutputSettingsContainerSettingsM2tsSettingsDvbSdtSettingsTypeDef",
    "ClientUpdateChannelResponseChannelEncoderSettingsOutputGroupsOutputsOutputSettingsArchiveOutputSettingsContainerSettingsM2tsSettingsDvbTdtSettingsTypeDef",
    "ClientUpdateChannelResponseChannelEncoderSettingsOutputGroupsOutputsOutputSettingsArchiveOutputSettingsContainerSettingsM2tsSettingsTypeDef",
    "ClientUpdateChannelResponseChannelEncoderSettingsOutputGroupsOutputsOutputSettingsArchiveOutputSettingsContainerSettingsTypeDef",
    "ClientUpdateChannelResponseChannelEncoderSettingsOutputGroupsOutputsOutputSettingsArchiveOutputSettingsTypeDef",
    "ClientUpdateChannelResponseChannelEncoderSettingsOutputGroupsOutputsOutputSettingsFrameCaptureOutputSettingsTypeDef",
    "ClientUpdateChannelResponseChannelEncoderSettingsOutputGroupsOutputsOutputSettingsHlsOutputSettingsHlsSettingsAudioOnlyHlsSettingsAudioOnlyImageTypeDef",
    "ClientUpdateChannelResponseChannelEncoderSettingsOutputGroupsOutputsOutputSettingsHlsOutputSettingsHlsSettingsAudioOnlyHlsSettingsTypeDef",
    "ClientUpdateChannelResponseChannelEncoderSettingsOutputGroupsOutputsOutputSettingsHlsOutputSettingsHlsSettingsStandardHlsSettingsM3u8SettingsTypeDef",
    "ClientUpdateChannelResponseChannelEncoderSettingsOutputGroupsOutputsOutputSettingsHlsOutputSettingsHlsSettingsStandardHlsSettingsTypeDef",
    "ClientUpdateChannelResponseChannelEncoderSettingsOutputGroupsOutputsOutputSettingsHlsOutputSettingsHlsSettingsTypeDef",
    "ClientUpdateChannelResponseChannelEncoderSettingsOutputGroupsOutputsOutputSettingsHlsOutputSettingsTypeDef",
    "ClientUpdateChannelResponseChannelEncoderSettingsOutputGroupsOutputsOutputSettingsMsSmoothOutputSettingsTypeDef",
    "ClientUpdateChannelResponseChannelEncoderSettingsOutputGroupsOutputsOutputSettingsMultiplexOutputSettingsDestinationTypeDef",
    "ClientUpdateChannelResponseChannelEncoderSettingsOutputGroupsOutputsOutputSettingsMultiplexOutputSettingsTypeDef",
    "ClientUpdateChannelResponseChannelEncoderSettingsOutputGroupsOutputsOutputSettingsRtmpOutputSettingsDestinationTypeDef",
    "ClientUpdateChannelResponseChannelEncoderSettingsOutputGroupsOutputsOutputSettingsRtmpOutputSettingsTypeDef",
    "ClientUpdateChannelResponseChannelEncoderSettingsOutputGroupsOutputsOutputSettingsUdpOutputSettingsContainerSettingsM2tsSettingsDvbNitSettingsTypeDef",
    "ClientUpdateChannelResponseChannelEncoderSettingsOutputGroupsOutputsOutputSettingsUdpOutputSettingsContainerSettingsM2tsSettingsDvbSdtSettingsTypeDef",
    "ClientUpdateChannelResponseChannelEncoderSettingsOutputGroupsOutputsOutputSettingsUdpOutputSettingsContainerSettingsM2tsSettingsDvbTdtSettingsTypeDef",
    "ClientUpdateChannelResponseChannelEncoderSettingsOutputGroupsOutputsOutputSettingsUdpOutputSettingsContainerSettingsM2tsSettingsTypeDef",
    "ClientUpdateChannelResponseChannelEncoderSettingsOutputGroupsOutputsOutputSettingsUdpOutputSettingsContainerSettingsTypeDef",
    "ClientUpdateChannelResponseChannelEncoderSettingsOutputGroupsOutputsOutputSettingsUdpOutputSettingsDestinationTypeDef",
    "ClientUpdateChannelResponseChannelEncoderSettingsOutputGroupsOutputsOutputSettingsUdpOutputSettingsFecOutputSettingsTypeDef",
    "ClientUpdateChannelResponseChannelEncoderSettingsOutputGroupsOutputsOutputSettingsUdpOutputSettingsTypeDef",
    "ClientUpdateChannelResponseChannelEncoderSettingsOutputGroupsOutputsOutputSettingsTypeDef",
    "ClientUpdateChannelResponseChannelEncoderSettingsOutputGroupsOutputsTypeDef",
    "ClientUpdateChannelResponseChannelEncoderSettingsOutputGroupsTypeDef",
    "ClientUpdateChannelResponseChannelEncoderSettingsTimecodeConfigTypeDef",
    "ClientUpdateChannelResponseChannelEncoderSettingsVideoDescriptionsCodecSettingsFrameCaptureSettingsTypeDef",
    "ClientUpdateChannelResponseChannelEncoderSettingsVideoDescriptionsCodecSettingsH264SettingsColorSpaceSettingsTypeDef",
    "ClientUpdateChannelResponseChannelEncoderSettingsVideoDescriptionsCodecSettingsH264SettingsTypeDef",
    "ClientUpdateChannelResponseChannelEncoderSettingsVideoDescriptionsCodecSettingsH265SettingsColorSpaceSettingsHdr10SettingsTypeDef",
    "ClientUpdateChannelResponseChannelEncoderSettingsVideoDescriptionsCodecSettingsH265SettingsColorSpaceSettingsTypeDef",
    "ClientUpdateChannelResponseChannelEncoderSettingsVideoDescriptionsCodecSettingsH265SettingsTypeDef",
    "ClientUpdateChannelResponseChannelEncoderSettingsVideoDescriptionsCodecSettingsTypeDef",
    "ClientUpdateChannelResponseChannelEncoderSettingsVideoDescriptionsTypeDef",
    "ClientUpdateChannelResponseChannelEncoderSettingsTypeDef",
    "ClientUpdateChannelResponseChannelInputAttachmentsInputSettingsAudioSelectorsSelectorSettingsAudioLanguageSelectionTypeDef",
    "ClientUpdateChannelResponseChannelInputAttachmentsInputSettingsAudioSelectorsSelectorSettingsAudioPidSelectionTypeDef",
    "ClientUpdateChannelResponseChannelInputAttachmentsInputSettingsAudioSelectorsSelectorSettingsTypeDef",
    "ClientUpdateChannelResponseChannelInputAttachmentsInputSettingsAudioSelectorsTypeDef",
    "ClientUpdateChannelResponseChannelInputAttachmentsInputSettingsCaptionSelectorsSelectorSettingsDvbSubSourceSettingsTypeDef",
    "ClientUpdateChannelResponseChannelInputAttachmentsInputSettingsCaptionSelectorsSelectorSettingsEmbeddedSourceSettingsTypeDef",
    "ClientUpdateChannelResponseChannelInputAttachmentsInputSettingsCaptionSelectorsSelectorSettingsScte20SourceSettingsTypeDef",
    "ClientUpdateChannelResponseChannelInputAttachmentsInputSettingsCaptionSelectorsSelectorSettingsScte27SourceSettingsTypeDef",
    "ClientUpdateChannelResponseChannelInputAttachmentsInputSettingsCaptionSelectorsSelectorSettingsTeletextSourceSettingsTypeDef",
    "ClientUpdateChannelResponseChannelInputAttachmentsInputSettingsCaptionSelectorsSelectorSettingsTypeDef",
    "ClientUpdateChannelResponseChannelInputAttachmentsInputSettingsCaptionSelectorsTypeDef",
    "ClientUpdateChannelResponseChannelInputAttachmentsInputSettingsNetworkInputSettingsHlsInputSettingsTypeDef",
    "ClientUpdateChannelResponseChannelInputAttachmentsInputSettingsNetworkInputSettingsTypeDef",
    "ClientUpdateChannelResponseChannelInputAttachmentsInputSettingsVideoSelectorSelectorSettingsVideoSelectorPidTypeDef",
    "ClientUpdateChannelResponseChannelInputAttachmentsInputSettingsVideoSelectorSelectorSettingsVideoSelectorProgramIdTypeDef",
    "ClientUpdateChannelResponseChannelInputAttachmentsInputSettingsVideoSelectorSelectorSettingsTypeDef",
    "ClientUpdateChannelResponseChannelInputAttachmentsInputSettingsVideoSelectorTypeDef",
    "ClientUpdateChannelResponseChannelInputAttachmentsInputSettingsTypeDef",
    "ClientUpdateChannelResponseChannelInputAttachmentsTypeDef",
    "ClientUpdateChannelResponseChannelInputSpecificationTypeDef",
    "ClientUpdateChannelResponseChannelPipelineDetailsTypeDef",
    "ClientUpdateChannelResponseChannelTypeDef",
    "ClientUpdateChannelResponseTypeDef",
    "ClientUpdateInputDestinationsTypeDef",
    "ClientUpdateInputMediaConnectFlowsTypeDef",
    "ClientUpdateInputResponseInputDestinationsVpcTypeDef",
    "ClientUpdateInputResponseInputDestinationsTypeDef",
    "ClientUpdateInputResponseInputMediaConnectFlowsTypeDef",
    "ClientUpdateInputResponseInputSourcesTypeDef",
    "ClientUpdateInputResponseInputTypeDef",
    "ClientUpdateInputResponseTypeDef",
    "ClientUpdateInputSecurityGroupResponseSecurityGroupWhitelistRulesTypeDef",
    "ClientUpdateInputSecurityGroupResponseSecurityGroupTypeDef",
    "ClientUpdateInputSecurityGroupResponseTypeDef",
    "ClientUpdateInputSecurityGroupWhitelistRulesTypeDef",
    "ClientUpdateInputSourcesTypeDef",
    "ClientUpdateMultiplexMultiplexSettingsTypeDef",
    "ClientUpdateMultiplexProgramMultiplexProgramSettingsServiceDescriptorTypeDef",
    "ClientUpdateMultiplexProgramMultiplexProgramSettingsVideoSettingsStatmuxSettingsTypeDef",
    "ClientUpdateMultiplexProgramMultiplexProgramSettingsVideoSettingsTypeDef",
    "ClientUpdateMultiplexProgramMultiplexProgramSettingsTypeDef",
    "ClientUpdateMultiplexProgramResponseMultiplexProgramMultiplexProgramSettingsServiceDescriptorTypeDef",
    "ClientUpdateMultiplexProgramResponseMultiplexProgramMultiplexProgramSettingsVideoSettingsStatmuxSettingsTypeDef",
    "ClientUpdateMultiplexProgramResponseMultiplexProgramMultiplexProgramSettingsVideoSettingsTypeDef",
    "ClientUpdateMultiplexProgramResponseMultiplexProgramMultiplexProgramSettingsTypeDef",
    "ClientUpdateMultiplexProgramResponseMultiplexProgramPacketIdentifiersMapTypeDef",
    "ClientUpdateMultiplexProgramResponseMultiplexProgramTypeDef",
    "ClientUpdateMultiplexProgramResponseTypeDef",
    "ClientUpdateMultiplexResponseMultiplexDestinationsMediaConnectSettingsTypeDef",
    "ClientUpdateMultiplexResponseMultiplexDestinationsTypeDef",
    "ClientUpdateMultiplexResponseMultiplexMultiplexSettingsTypeDef",
    "ClientUpdateMultiplexResponseMultiplexTypeDef",
    "ClientUpdateMultiplexResponseTypeDef",
    "ClientUpdateReservationResponseReservationResourceSpecificationTypeDef",
    "ClientUpdateReservationResponseReservationTypeDef",
    "ClientUpdateReservationResponseTypeDef",
    "DescribeSchedulePaginatePaginationConfigTypeDef",
    "DescribeSchedulePaginateResponseScheduleActionsScheduleActionSettingsHlsTimedMetadataSettingsTypeDef",
    "DescribeSchedulePaginateResponseScheduleActionsScheduleActionSettingsInputSwitchSettingsInputClippingSettingsStartTimecodeTypeDef",
    "DescribeSchedulePaginateResponseScheduleActionsScheduleActionSettingsInputSwitchSettingsInputClippingSettingsStopTimecodeTypeDef",
    "DescribeSchedulePaginateResponseScheduleActionsScheduleActionSettingsInputSwitchSettingsInputClippingSettingsTypeDef",
    "DescribeSchedulePaginateResponseScheduleActionsScheduleActionSettingsInputSwitchSettingsTypeDef",
    "DescribeSchedulePaginateResponseScheduleActionsScheduleActionSettingsPauseStateSettingsPipelinesTypeDef",
    "DescribeSchedulePaginateResponseScheduleActionsScheduleActionSettingsPauseStateSettingsTypeDef",
    "DescribeSchedulePaginateResponseScheduleActionsScheduleActionSettingsScte35ReturnToNetworkSettingsTypeDef",
    "DescribeSchedulePaginateResponseScheduleActionsScheduleActionSettingsScte35SpliceInsertSettingsTypeDef",
    "DescribeSchedulePaginateResponseScheduleActionsScheduleActionSettingsScte35TimeSignalSettingsScte35DescriptorsScte35DescriptorSettingsSegmentationDescriptorScte35DescriptorSettingsDeliveryRestrictionsTypeDef",
    "DescribeSchedulePaginateResponseScheduleActionsScheduleActionSettingsScte35TimeSignalSettingsScte35DescriptorsScte35DescriptorSettingsSegmentationDescriptorScte35DescriptorSettingsTypeDef",
    "DescribeSchedulePaginateResponseScheduleActionsScheduleActionSettingsScte35TimeSignalSettingsScte35DescriptorsScte35DescriptorSettingsTypeDef",
    "DescribeSchedulePaginateResponseScheduleActionsScheduleActionSettingsScte35TimeSignalSettingsScte35DescriptorsTypeDef",
    "DescribeSchedulePaginateResponseScheduleActionsScheduleActionSettingsScte35TimeSignalSettingsTypeDef",
    "DescribeSchedulePaginateResponseScheduleActionsScheduleActionSettingsStaticImageActivateSettingsImageTypeDef",
    "DescribeSchedulePaginateResponseScheduleActionsScheduleActionSettingsStaticImageActivateSettingsTypeDef",
    "DescribeSchedulePaginateResponseScheduleActionsScheduleActionSettingsStaticImageDeactivateSettingsTypeDef",
    "DescribeSchedulePaginateResponseScheduleActionsScheduleActionSettingsTypeDef",
    "DescribeSchedulePaginateResponseScheduleActionsScheduleActionStartSettingsFixedModeScheduleActionStartSettingsTypeDef",
    "DescribeSchedulePaginateResponseScheduleActionsScheduleActionStartSettingsFollowModeScheduleActionStartSettingsTypeDef",
    "DescribeSchedulePaginateResponseScheduleActionsScheduleActionStartSettingsTypeDef",
    "DescribeSchedulePaginateResponseScheduleActionsTypeDef",
    "DescribeSchedulePaginateResponseTypeDef",
    "ListChannelsPaginatePaginationConfigTypeDef",
    "ListChannelsPaginateResponseChannelsDestinationsMediaPackageSettingsTypeDef",
    "ListChannelsPaginateResponseChannelsDestinationsMultiplexSettingsTypeDef",
    "ListChannelsPaginateResponseChannelsDestinationsSettingsTypeDef",
    "ListChannelsPaginateResponseChannelsDestinationsTypeDef",
    "ListChannelsPaginateResponseChannelsEgressEndpointsTypeDef",
    "ListChannelsPaginateResponseChannelsInputAttachmentsInputSettingsAudioSelectorsSelectorSettingsAudioLanguageSelectionTypeDef",
    "ListChannelsPaginateResponseChannelsInputAttachmentsInputSettingsAudioSelectorsSelectorSettingsAudioPidSelectionTypeDef",
    "ListChannelsPaginateResponseChannelsInputAttachmentsInputSettingsAudioSelectorsSelectorSettingsTypeDef",
    "ListChannelsPaginateResponseChannelsInputAttachmentsInputSettingsAudioSelectorsTypeDef",
    "ListChannelsPaginateResponseChannelsInputAttachmentsInputSettingsCaptionSelectorsSelectorSettingsDvbSubSourceSettingsTypeDef",
    "ListChannelsPaginateResponseChannelsInputAttachmentsInputSettingsCaptionSelectorsSelectorSettingsEmbeddedSourceSettingsTypeDef",
    "ListChannelsPaginateResponseChannelsInputAttachmentsInputSettingsCaptionSelectorsSelectorSettingsScte20SourceSettingsTypeDef",
    "ListChannelsPaginateResponseChannelsInputAttachmentsInputSettingsCaptionSelectorsSelectorSettingsScte27SourceSettingsTypeDef",
    "ListChannelsPaginateResponseChannelsInputAttachmentsInputSettingsCaptionSelectorsSelectorSettingsTeletextSourceSettingsTypeDef",
    "ListChannelsPaginateResponseChannelsInputAttachmentsInputSettingsCaptionSelectorsSelectorSettingsTypeDef",
    "ListChannelsPaginateResponseChannelsInputAttachmentsInputSettingsCaptionSelectorsTypeDef",
    "ListChannelsPaginateResponseChannelsInputAttachmentsInputSettingsNetworkInputSettingsHlsInputSettingsTypeDef",
    "ListChannelsPaginateResponseChannelsInputAttachmentsInputSettingsNetworkInputSettingsTypeDef",
    "ListChannelsPaginateResponseChannelsInputAttachmentsInputSettingsVideoSelectorSelectorSettingsVideoSelectorPidTypeDef",
    "ListChannelsPaginateResponseChannelsInputAttachmentsInputSettingsVideoSelectorSelectorSettingsVideoSelectorProgramIdTypeDef",
    "ListChannelsPaginateResponseChannelsInputAttachmentsInputSettingsVideoSelectorSelectorSettingsTypeDef",
    "ListChannelsPaginateResponseChannelsInputAttachmentsInputSettingsVideoSelectorTypeDef",
    "ListChannelsPaginateResponseChannelsInputAttachmentsInputSettingsTypeDef",
    "ListChannelsPaginateResponseChannelsInputAttachmentsTypeDef",
    "ListChannelsPaginateResponseChannelsInputSpecificationTypeDef",
    "ListChannelsPaginateResponseChannelsTypeDef",
    "ListChannelsPaginateResponseTypeDef",
    "ListInputSecurityGroupsPaginatePaginationConfigTypeDef",
    "ListInputSecurityGroupsPaginateResponseInputSecurityGroupsWhitelistRulesTypeDef",
    "ListInputSecurityGroupsPaginateResponseInputSecurityGroupsTypeDef",
    "ListInputSecurityGroupsPaginateResponseTypeDef",
    "ListInputsPaginatePaginationConfigTypeDef",
    "ListInputsPaginateResponseInputsDestinationsVpcTypeDef",
    "ListInputsPaginateResponseInputsDestinationsTypeDef",
    "ListInputsPaginateResponseInputsMediaConnectFlowsTypeDef",
    "ListInputsPaginateResponseInputsSourcesTypeDef",
    "ListInputsPaginateResponseInputsTypeDef",
    "ListInputsPaginateResponseTypeDef",
    "ListMultiplexProgramsPaginatePaginationConfigTypeDef",
    "ListMultiplexProgramsPaginateResponseMultiplexProgramsTypeDef",
    "ListMultiplexProgramsPaginateResponseTypeDef",
    "ListMultiplexesPaginatePaginationConfigTypeDef",
    "ListMultiplexesPaginateResponseMultiplexesMultiplexSettingsTypeDef",
    "ListMultiplexesPaginateResponseMultiplexesTypeDef",
    "ListMultiplexesPaginateResponseTypeDef",
    "ListOfferingsPaginatePaginationConfigTypeDef",
    "ListOfferingsPaginateResponseOfferingsResourceSpecificationTypeDef",
    "ListOfferingsPaginateResponseOfferingsTypeDef",
    "ListOfferingsPaginateResponseTypeDef",
    "ListReservationsPaginatePaginationConfigTypeDef",
    "ListReservationsPaginateResponseReservationsResourceSpecificationTypeDef",
    "ListReservationsPaginateResponseReservationsTypeDef",
    "ListReservationsPaginateResponseTypeDef",
    "MultiplexCreatedWaitWaiterConfigTypeDef",
    "MultiplexDeletedWaitWaiterConfigTypeDef",
    "MultiplexRunningWaitWaiterConfigTypeDef",
    "MultiplexStoppedWaitWaiterConfigTypeDef",
)


_ChannelCreatedWaitWaiterConfigTypeDef = TypedDict(
    "_ChannelCreatedWaitWaiterConfigTypeDef", {"Delay": int, "MaxAttempts": int}, total=False
)


class ChannelCreatedWaitWaiterConfigTypeDef(_ChannelCreatedWaitWaiterConfigTypeDef):
    """
    Type definition for `ChannelCreatedWait` `WaiterConfig`

    A dictionary that provides parameters to control waiting behavior.

    - **Delay** *(integer) --*

      The amount of time in seconds to wait between attempts. Default: 3

    - **MaxAttempts** *(integer) --*

      The maximum number of attempts to be made. Default: 5
    """


_ChannelDeletedWaitWaiterConfigTypeDef = TypedDict(
    "_ChannelDeletedWaitWaiterConfigTypeDef", {"Delay": int, "MaxAttempts": int}, total=False
)


class ChannelDeletedWaitWaiterConfigTypeDef(_ChannelDeletedWaitWaiterConfigTypeDef):
    """
    Type definition for `ChannelDeletedWait` `WaiterConfig`

    A dictionary that provides parameters to control waiting behavior.

    - **Delay** *(integer) --*

      The amount of time in seconds to wait between attempts. Default: 5

    - **MaxAttempts** *(integer) --*

      The maximum number of attempts to be made. Default: 20
    """


_ChannelRunningWaitWaiterConfigTypeDef = TypedDict(
    "_ChannelRunningWaitWaiterConfigTypeDef", {"Delay": int, "MaxAttempts": int}, total=False
)


class ChannelRunningWaitWaiterConfigTypeDef(_ChannelRunningWaitWaiterConfigTypeDef):
    """
    Type definition for `ChannelRunningWait` `WaiterConfig`

    A dictionary that provides parameters to control waiting behavior.

    - **Delay** *(integer) --*

      The amount of time in seconds to wait between attempts. Default: 5

    - **MaxAttempts** *(integer) --*

      The maximum number of attempts to be made. Default: 120
    """


_ChannelStoppedWaitWaiterConfigTypeDef = TypedDict(
    "_ChannelStoppedWaitWaiterConfigTypeDef", {"Delay": int, "MaxAttempts": int}, total=False
)


class ChannelStoppedWaitWaiterConfigTypeDef(_ChannelStoppedWaitWaiterConfigTypeDef):
    """
    Type definition for `ChannelStoppedWait` `WaiterConfig`

    A dictionary that provides parameters to control waiting behavior.

    - **Delay** *(integer) --*

      The amount of time in seconds to wait between attempts. Default: 5

    - **MaxAttempts** *(integer) --*

      The maximum number of attempts to be made. Default: 28
    """


_ClientBatchUpdateScheduleCreatesScheduleActionsScheduleActionSettingsHlsTimedMetadataSettingsTypeDef = TypedDict(
    "_ClientBatchUpdateScheduleCreatesScheduleActionsScheduleActionSettingsHlsTimedMetadataSettingsTypeDef",
    {"Id3": str},
)


class ClientBatchUpdateScheduleCreatesScheduleActionsScheduleActionSettingsHlsTimedMetadataSettingsTypeDef(
    _ClientBatchUpdateScheduleCreatesScheduleActionsScheduleActionSettingsHlsTimedMetadataSettingsTypeDef
):
    """
    Type definition for `ClientBatchUpdateScheduleCreatesScheduleActionsScheduleActionSettings`
    `HlsTimedMetadataSettings`

    - **Id3** *(string) --* **[REQUIRED]** Base64 string formatted according to the ID3
    specification: http://id3.org/id3v2.4.0-structure
    """


_ClientBatchUpdateScheduleCreatesScheduleActionsScheduleActionSettingsInputSwitchSettingsInputClippingSettingsStartTimecodeTypeDef = TypedDict(
    "_ClientBatchUpdateScheduleCreatesScheduleActionsScheduleActionSettingsInputSwitchSettingsInputClippingSettingsStartTimecodeTypeDef",
    {"Timecode": str},
    total=False,
)


class ClientBatchUpdateScheduleCreatesScheduleActionsScheduleActionSettingsInputSwitchSettingsInputClippingSettingsStartTimecodeTypeDef(
    _ClientBatchUpdateScheduleCreatesScheduleActionsScheduleActionSettingsInputSwitchSettingsInputClippingSettingsStartTimecodeTypeDef
):
    """
    Type definition for
    `ClientBatchUpdateScheduleCreatesScheduleActionsScheduleActionSettingsInputSwitchSettingsInputClippingSettings`
    `StartTimecode`

    - **Timecode** *(string) --* The timecode for the frame where you want to start the clip.
    Optional; if not specified, the clip starts at first frame in the file. Enter the timecode as
    HH:MM:SS:FF or HH:MM:SS;FF.
    """


_ClientBatchUpdateScheduleCreatesScheduleActionsScheduleActionSettingsInputSwitchSettingsInputClippingSettingsStopTimecodeTypeDef = TypedDict(
    "_ClientBatchUpdateScheduleCreatesScheduleActionsScheduleActionSettingsInputSwitchSettingsInputClippingSettingsStopTimecodeTypeDef",
    {"LastFrameClippingBehavior": str, "Timecode": str},
    total=False,
)


class ClientBatchUpdateScheduleCreatesScheduleActionsScheduleActionSettingsInputSwitchSettingsInputClippingSettingsStopTimecodeTypeDef(
    _ClientBatchUpdateScheduleCreatesScheduleActionsScheduleActionSettingsInputSwitchSettingsInputClippingSettingsStopTimecodeTypeDef
):
    """
    Type definition for
    `ClientBatchUpdateScheduleCreatesScheduleActionsScheduleActionSettingsInputSwitchSettingsInputClippingSettings`
    `StopTimecode`

    - **LastFrameClippingBehavior** *(string) --* If you specify a StopTimecode in an input (in
    order to clip the file), you can specify if you want the clip to exclude (the default) or
    include the frame specified by the timecode.

    - **Timecode** *(string) --* The timecode for the frame where you want to stop the clip.
    Optional; if not specified, the clip continues to the end of the file. Enter the timecode as
    HH:MM:SS:FF or HH:MM:SS;FF.
    """


_RequiredClientBatchUpdateScheduleCreatesScheduleActionsScheduleActionSettingsInputSwitchSettingsInputClippingSettingsTypeDef = TypedDict(
    "_RequiredClientBatchUpdateScheduleCreatesScheduleActionsScheduleActionSettingsInputSwitchSettingsInputClippingSettingsTypeDef",
    {"InputTimecodeSource": str},
)
_OptionalClientBatchUpdateScheduleCreatesScheduleActionsScheduleActionSettingsInputSwitchSettingsInputClippingSettingsTypeDef = TypedDict(
    "_OptionalClientBatchUpdateScheduleCreatesScheduleActionsScheduleActionSettingsInputSwitchSettingsInputClippingSettingsTypeDef",
    {
        "StartTimecode": ClientBatchUpdateScheduleCreatesScheduleActionsScheduleActionSettingsInputSwitchSettingsInputClippingSettingsStartTimecodeTypeDef,
        "StopTimecode": ClientBatchUpdateScheduleCreatesScheduleActionsScheduleActionSettingsInputSwitchSettingsInputClippingSettingsStopTimecodeTypeDef,
    },
    total=False,
)


class ClientBatchUpdateScheduleCreatesScheduleActionsScheduleActionSettingsInputSwitchSettingsInputClippingSettingsTypeDef(
    _RequiredClientBatchUpdateScheduleCreatesScheduleActionsScheduleActionSettingsInputSwitchSettingsInputClippingSettingsTypeDef,
    _OptionalClientBatchUpdateScheduleCreatesScheduleActionsScheduleActionSettingsInputSwitchSettingsInputClippingSettingsTypeDef,
):
    """
    Type definition for
    `ClientBatchUpdateScheduleCreatesScheduleActionsScheduleActionSettingsInputSwitchSettings`
    `InputClippingSettings`

    - **InputTimecodeSource** *(string) --* **[REQUIRED]** The source of the timecodes in the source
    being clipped.

    - **StartTimecode** *(dict) --* Settings to identify the start of the clip.

      - **Timecode** *(string) --* The timecode for the frame where you want to start the clip.
      Optional; if not specified, the clip starts at first frame in the file. Enter the timecode as
      HH:MM:SS:FF or HH:MM:SS;FF.

    - **StopTimecode** *(dict) --* Settings to identify the end of the clip.

      - **LastFrameClippingBehavior** *(string) --* If you specify a StopTimecode in an input (in
      order to clip the file), you can specify if you want the clip to exclude (the default) or
      include the frame specified by the timecode.

      - **Timecode** *(string) --* The timecode for the frame where you want to stop the clip.
      Optional; if not specified, the clip continues to the end of the file. Enter the timecode as
      HH:MM:SS:FF or HH:MM:SS;FF.
    """


_RequiredClientBatchUpdateScheduleCreatesScheduleActionsScheduleActionSettingsInputSwitchSettingsTypeDef = TypedDict(
    "_RequiredClientBatchUpdateScheduleCreatesScheduleActionsScheduleActionSettingsInputSwitchSettingsTypeDef",
    {"InputAttachmentNameReference": str},
)
_OptionalClientBatchUpdateScheduleCreatesScheduleActionsScheduleActionSettingsInputSwitchSettingsTypeDef = TypedDict(
    "_OptionalClientBatchUpdateScheduleCreatesScheduleActionsScheduleActionSettingsInputSwitchSettingsTypeDef",
    {
        "InputClippingSettings": ClientBatchUpdateScheduleCreatesScheduleActionsScheduleActionSettingsInputSwitchSettingsInputClippingSettingsTypeDef,
        "UrlPath": List[str],
    },
    total=False,
)


class ClientBatchUpdateScheduleCreatesScheduleActionsScheduleActionSettingsInputSwitchSettingsTypeDef(
    _RequiredClientBatchUpdateScheduleCreatesScheduleActionsScheduleActionSettingsInputSwitchSettingsTypeDef,
    _OptionalClientBatchUpdateScheduleCreatesScheduleActionsScheduleActionSettingsInputSwitchSettingsTypeDef,
):
    """
    Type definition for `ClientBatchUpdateScheduleCreatesScheduleActionsScheduleActionSettings`
    `InputSwitchSettings`

    - **InputAttachmentNameReference** *(string) --* **[REQUIRED]** The name of the input attachment
    (not the name of the input!) to switch to. The name is specified in the channel configuration.

    - **InputClippingSettings** *(dict) --* Settings to let you create a clip of the file input, in
    order to set up the input to ingest only a portion of the file.

      - **InputTimecodeSource** *(string) --* **[REQUIRED]** The source of the timecodes in the
      source being clipped.

      - **StartTimecode** *(dict) --* Settings to identify the start of the clip.

        - **Timecode** *(string) --* The timecode for the frame where you want to start the clip.
        Optional; if not specified, the clip starts at first frame in the file. Enter the timecode
        as HH:MM:SS:FF or HH:MM:SS;FF.

      - **StopTimecode** *(dict) --* Settings to identify the end of the clip.

        - **LastFrameClippingBehavior** *(string) --* If you specify a StopTimecode in an input (in
        order to clip the file), you can specify if you want the clip to exclude (the default) or
        include the frame specified by the timecode.

        - **Timecode** *(string) --* The timecode for the frame where you want to stop the clip.
        Optional; if not specified, the clip continues to the end of the file. Enter the timecode as
        HH:MM:SS:FF or HH:MM:SS;FF.

    - **UrlPath** *(list) --* The value for the variable portion of the URL for the dynamic input,
    for this instance of the input. Each time you use the same dynamic input in an input switch
    action, you can provide a different value, in order to connect the input to a different content
    source.

      - *(string) --* Placeholder documentation for __string
    """


_ClientBatchUpdateScheduleCreatesScheduleActionsScheduleActionSettingsPauseStateSettingsPipelinesTypeDef = TypedDict(
    "_ClientBatchUpdateScheduleCreatesScheduleActionsScheduleActionSettingsPauseStateSettingsPipelinesTypeDef",
    {"PipelineId": str},
)


class ClientBatchUpdateScheduleCreatesScheduleActionsScheduleActionSettingsPauseStateSettingsPipelinesTypeDef(
    _ClientBatchUpdateScheduleCreatesScheduleActionsScheduleActionSettingsPauseStateSettingsPipelinesTypeDef
):
    """
    Type definition for
    `ClientBatchUpdateScheduleCreatesScheduleActionsScheduleActionSettingsPauseStateSettings`
    `Pipelines`

    - **PipelineId** *(string) --* **[REQUIRED]** Pipeline ID to pause ("PIPELINE_0" or
    "PIPELINE_1").
    """


_ClientBatchUpdateScheduleCreatesScheduleActionsScheduleActionSettingsPauseStateSettingsTypeDef = TypedDict(
    "_ClientBatchUpdateScheduleCreatesScheduleActionsScheduleActionSettingsPauseStateSettingsTypeDef",
    {
        "Pipelines": List[
            ClientBatchUpdateScheduleCreatesScheduleActionsScheduleActionSettingsPauseStateSettingsPipelinesTypeDef
        ]
    },
    total=False,
)


class ClientBatchUpdateScheduleCreatesScheduleActionsScheduleActionSettingsPauseStateSettingsTypeDef(
    _ClientBatchUpdateScheduleCreatesScheduleActionsScheduleActionSettingsPauseStateSettingsTypeDef
):
    """
    Type definition for `ClientBatchUpdateScheduleCreatesScheduleActionsScheduleActionSettings`
    `PauseStateSettings`

    - **Pipelines** *(list) --* Placeholder documentation for __listOfPipelinePauseStateSettings

      - *(dict) --* Settings for pausing a pipeline.

        - **PipelineId** *(string) --* **[REQUIRED]** Pipeline ID to pause ("PIPELINE_0" or
        "PIPELINE_1").
    """


_ClientBatchUpdateScheduleCreatesScheduleActionsScheduleActionSettingsScte35ReturnToNetworkSettingsTypeDef = TypedDict(
    "_ClientBatchUpdateScheduleCreatesScheduleActionsScheduleActionSettingsScte35ReturnToNetworkSettingsTypeDef",
    {"SpliceEventId": int},
)


class ClientBatchUpdateScheduleCreatesScheduleActionsScheduleActionSettingsScte35ReturnToNetworkSettingsTypeDef(
    _ClientBatchUpdateScheduleCreatesScheduleActionsScheduleActionSettingsScte35ReturnToNetworkSettingsTypeDef
):
    """
    Type definition for `ClientBatchUpdateScheduleCreatesScheduleActionsScheduleActionSettings`
    `Scte35ReturnToNetworkSettings`

    - **SpliceEventId** *(integer) --* **[REQUIRED]** The splice_event_id for the SCTE-35
    splice_insert, as defined in SCTE-35.
    """


_RequiredClientBatchUpdateScheduleCreatesScheduleActionsScheduleActionSettingsScte35SpliceInsertSettingsTypeDef = TypedDict(
    "_RequiredClientBatchUpdateScheduleCreatesScheduleActionsScheduleActionSettingsScte35SpliceInsertSettingsTypeDef",
    {"SpliceEventId": int},
)
_OptionalClientBatchUpdateScheduleCreatesScheduleActionsScheduleActionSettingsScte35SpliceInsertSettingsTypeDef = TypedDict(
    "_OptionalClientBatchUpdateScheduleCreatesScheduleActionsScheduleActionSettingsScte35SpliceInsertSettingsTypeDef",
    {"Duration": int},
    total=False,
)


class ClientBatchUpdateScheduleCreatesScheduleActionsScheduleActionSettingsScte35SpliceInsertSettingsTypeDef(
    _RequiredClientBatchUpdateScheduleCreatesScheduleActionsScheduleActionSettingsScte35SpliceInsertSettingsTypeDef,
    _OptionalClientBatchUpdateScheduleCreatesScheduleActionsScheduleActionSettingsScte35SpliceInsertSettingsTypeDef,
):
    """
    Type definition for `ClientBatchUpdateScheduleCreatesScheduleActionsScheduleActionSettings`
    `Scte35SpliceInsertSettings`

    - **Duration** *(integer) --* Optional, the duration for the splice_insert, in 90 KHz ticks. To
    convert seconds to ticks, multiple the seconds by 90,000. If you enter a duration, there is an
    expectation that the downstream system can read the duration and cue in at that time. If you do
    not enter a duration, the splice_insert will continue indefinitely and there is an expectation
    that you will enter a return_to_network to end the splice_insert at the appropriate time.

    - **SpliceEventId** *(integer) --* **[REQUIRED]** The splice_event_id for the SCTE-35
    splice_insert, as defined in SCTE-35.
    """


_ClientBatchUpdateScheduleCreatesScheduleActionsScheduleActionSettingsScte35TimeSignalSettingsScte35DescriptorsScte35DescriptorSettingsSegmentationDescriptorScte35DescriptorSettingsDeliveryRestrictionsTypeDef = TypedDict(
    "_ClientBatchUpdateScheduleCreatesScheduleActionsScheduleActionSettingsScte35TimeSignalSettingsScte35DescriptorsScte35DescriptorSettingsSegmentationDescriptorScte35DescriptorSettingsDeliveryRestrictionsTypeDef",
    {
        "ArchiveAllowedFlag": str,
        "DeviceRestrictions": str,
        "NoRegionalBlackoutFlag": str,
        "WebDeliveryAllowedFlag": str,
    },
)


class ClientBatchUpdateScheduleCreatesScheduleActionsScheduleActionSettingsScte35TimeSignalSettingsScte35DescriptorsScte35DescriptorSettingsSegmentationDescriptorScte35DescriptorSettingsDeliveryRestrictionsTypeDef(
    _ClientBatchUpdateScheduleCreatesScheduleActionsScheduleActionSettingsScte35TimeSignalSettingsScte35DescriptorsScte35DescriptorSettingsSegmentationDescriptorScte35DescriptorSettingsDeliveryRestrictionsTypeDef
):
    """
    Type definition for
    `ClientBatchUpdateScheduleCreatesScheduleActionsScheduleActionSettingsScte35TimeSignalSettingsScte35DescriptorsScte35DescriptorSettingsSegmentationDescriptorScte35DescriptorSettings`
    `DeliveryRestrictions`

    - **ArchiveAllowedFlag** *(string) --* **[REQUIRED]** Corresponds to SCTE-35
    archive_allowed_flag.

    - **DeviceRestrictions** *(string) --* **[REQUIRED]** Corresponds to SCTE-35 device_restrictions
    parameter.

    - **NoRegionalBlackoutFlag** *(string) --* **[REQUIRED]** Corresponds to SCTE-35
    no_regional_blackout_flag parameter.

    - **WebDeliveryAllowedFlag** *(string) --* **[REQUIRED]** Corresponds to SCTE-35
    web_delivery_allowed_flag parameter.
    """


_RequiredClientBatchUpdateScheduleCreatesScheduleActionsScheduleActionSettingsScte35TimeSignalSettingsScte35DescriptorsScte35DescriptorSettingsSegmentationDescriptorScte35DescriptorSettingsTypeDef = TypedDict(
    "_RequiredClientBatchUpdateScheduleCreatesScheduleActionsScheduleActionSettingsScte35TimeSignalSettingsScte35DescriptorsScte35DescriptorSettingsSegmentationDescriptorScte35DescriptorSettingsTypeDef",
    {"SegmentationCancelIndicator": str, "SegmentationEventId": int},
)
_OptionalClientBatchUpdateScheduleCreatesScheduleActionsScheduleActionSettingsScte35TimeSignalSettingsScte35DescriptorsScte35DescriptorSettingsSegmentationDescriptorScte35DescriptorSettingsTypeDef = TypedDict(
    "_OptionalClientBatchUpdateScheduleCreatesScheduleActionsScheduleActionSettingsScte35TimeSignalSettingsScte35DescriptorsScte35DescriptorSettingsSegmentationDescriptorScte35DescriptorSettingsTypeDef",
    {
        "DeliveryRestrictions": ClientBatchUpdateScheduleCreatesScheduleActionsScheduleActionSettingsScte35TimeSignalSettingsScte35DescriptorsScte35DescriptorSettingsSegmentationDescriptorScte35DescriptorSettingsDeliveryRestrictionsTypeDef,
        "SegmentNum": int,
        "SegmentationDuration": int,
        "SegmentationTypeId": int,
        "SegmentationUpid": str,
        "SegmentationUpidType": int,
        "SegmentsExpected": int,
        "SubSegmentNum": int,
        "SubSegmentsExpected": int,
    },
    total=False,
)


class ClientBatchUpdateScheduleCreatesScheduleActionsScheduleActionSettingsScte35TimeSignalSettingsScte35DescriptorsScte35DescriptorSettingsSegmentationDescriptorScte35DescriptorSettingsTypeDef(
    _RequiredClientBatchUpdateScheduleCreatesScheduleActionsScheduleActionSettingsScte35TimeSignalSettingsScte35DescriptorsScte35DescriptorSettingsSegmentationDescriptorScte35DescriptorSettingsTypeDef,
    _OptionalClientBatchUpdateScheduleCreatesScheduleActionsScheduleActionSettingsScte35TimeSignalSettingsScte35DescriptorsScte35DescriptorSettingsSegmentationDescriptorScte35DescriptorSettingsTypeDef,
):
    """
    Type definition for
    `ClientBatchUpdateScheduleCreatesScheduleActionsScheduleActionSettingsScte35TimeSignalSettingsScte35DescriptorsScte35DescriptorSettings`
    `SegmentationDescriptorScte35DescriptorSettings`

    - **DeliveryRestrictions** *(dict) --* Holds the four SCTE-35 delivery restriction parameters.

      - **ArchiveAllowedFlag** *(string) --* **[REQUIRED]** Corresponds to SCTE-35
      archive_allowed_flag.

      - **DeviceRestrictions** *(string) --* **[REQUIRED]** Corresponds to SCTE-35
      device_restrictions parameter.

      - **NoRegionalBlackoutFlag** *(string) --* **[REQUIRED]** Corresponds to SCTE-35
      no_regional_blackout_flag parameter.

      - **WebDeliveryAllowedFlag** *(string) --* **[REQUIRED]** Corresponds to SCTE-35
      web_delivery_allowed_flag parameter.

    - **SegmentNum** *(integer) --* Corresponds to SCTE-35 segment_num. A value that is valid for
    the specified segmentation_type_id.

    - **SegmentationCancelIndicator** *(string) --* **[REQUIRED]** Corresponds to SCTE-35
    segmentation_event_cancel_indicator.

    - **SegmentationDuration** *(integer) --* Corresponds to SCTE-35 segmentation_duration.
    Optional. The duration for the time_signal, in 90 KHz ticks. To convert seconds to ticks,
    multiple the seconds by 90,000. Enter time in 90 KHz clock ticks. If you do not enter a
    duration, the time_signal will continue until you insert a cancellation message.

    - **SegmentationEventId** *(integer) --* **[REQUIRED]** Corresponds to SCTE-35
    segmentation_event_id.

    - **SegmentationTypeId** *(integer) --* Corresponds to SCTE-35 segmentation_type_id. One of the
    segmentation_type_id values listed in the SCTE-35 specification. On the console, enter the ID in
    decimal (for example, "52"). In the CLI, API, or an SDK, enter the ID in hex (for example,
    "0x34") or decimal (for example, "52").

    - **SegmentationUpid** *(string) --* Corresponds to SCTE-35 segmentation_upid. Enter a string
    containing the hexadecimal representation of the characters that make up the SCTE-35
    segmentation_upid value. Must contain an even number of hex characters. Do not include spaces
    between each hex pair. For example, the ASCII "ADS Information" becomes hex
    "41445320496e666f726d6174696f6e.

    - **SegmentationUpidType** *(integer) --* Corresponds to SCTE-35 segmentation_upid_type. On the
    console, enter one of the types listed in the SCTE-35 specification, converted to a decimal. For
    example, "0x0C" hex from the specification is "12" in decimal. In the CLI, API, or an SDK, enter
    one of the types listed in the SCTE-35 specification, in either hex (for example, "0x0C" ) or in
    decimal (for example, "12").

    - **SegmentsExpected** *(integer) --* Corresponds to SCTE-35 segments_expected. A value that is
    valid for the specified segmentation_type_id.

    - **SubSegmentNum** *(integer) --* Corresponds to SCTE-35 sub_segment_num. A value that is valid
    for the specified segmentation_type_id.

    - **SubSegmentsExpected** *(integer) --* Corresponds to SCTE-35 sub_segments_expected. A value
    that is valid for the specified segmentation_type_id.
    """


_ClientBatchUpdateScheduleCreatesScheduleActionsScheduleActionSettingsScte35TimeSignalSettingsScte35DescriptorsScte35DescriptorSettingsTypeDef = TypedDict(
    "_ClientBatchUpdateScheduleCreatesScheduleActionsScheduleActionSettingsScte35TimeSignalSettingsScte35DescriptorsScte35DescriptorSettingsTypeDef",
    {
        "SegmentationDescriptorScte35DescriptorSettings": ClientBatchUpdateScheduleCreatesScheduleActionsScheduleActionSettingsScte35TimeSignalSettingsScte35DescriptorsScte35DescriptorSettingsSegmentationDescriptorScte35DescriptorSettingsTypeDef
    },
)


class ClientBatchUpdateScheduleCreatesScheduleActionsScheduleActionSettingsScte35TimeSignalSettingsScte35DescriptorsScte35DescriptorSettingsTypeDef(
    _ClientBatchUpdateScheduleCreatesScheduleActionsScheduleActionSettingsScte35TimeSignalSettingsScte35DescriptorsScte35DescriptorSettingsTypeDef
):
    """
    Type definition for
    `ClientBatchUpdateScheduleCreatesScheduleActionsScheduleActionSettingsScte35TimeSignalSettingsScte35Descriptors`
    `Scte35DescriptorSettings`

    - **SegmentationDescriptorScte35DescriptorSettings** *(dict) --* **[REQUIRED]** SCTE-35
    Segmentation Descriptor.

      - **DeliveryRestrictions** *(dict) --* Holds the four SCTE-35 delivery restriction parameters.

        - **ArchiveAllowedFlag** *(string) --* **[REQUIRED]** Corresponds to SCTE-35
        archive_allowed_flag.

        - **DeviceRestrictions** *(string) --* **[REQUIRED]** Corresponds to SCTE-35
        device_restrictions parameter.

        - **NoRegionalBlackoutFlag** *(string) --* **[REQUIRED]** Corresponds to SCTE-35
        no_regional_blackout_flag parameter.

        - **WebDeliveryAllowedFlag** *(string) --* **[REQUIRED]** Corresponds to SCTE-35
        web_delivery_allowed_flag parameter.

      - **SegmentNum** *(integer) --* Corresponds to SCTE-35 segment_num. A value that is valid for
      the specified segmentation_type_id.

      - **SegmentationCancelIndicator** *(string) --* **[REQUIRED]** Corresponds to SCTE-35
      segmentation_event_cancel_indicator.

      - **SegmentationDuration** *(integer) --* Corresponds to SCTE-35 segmentation_duration.
      Optional. The duration for the time_signal, in 90 KHz ticks. To convert seconds to ticks,
      multiple the seconds by 90,000. Enter time in 90 KHz clock ticks. If you do not enter a
      duration, the time_signal will continue until you insert a cancellation message.

      - **SegmentationEventId** *(integer) --* **[REQUIRED]** Corresponds to SCTE-35
      segmentation_event_id.

      - **SegmentationTypeId** *(integer) --* Corresponds to SCTE-35 segmentation_type_id. One of
      the segmentation_type_id values listed in the SCTE-35 specification. On the console, enter the
      ID in decimal (for example, "52"). In the CLI, API, or an SDK, enter the ID in hex (for
      example, "0x34") or decimal (for example, "52").

      - **SegmentationUpid** *(string) --* Corresponds to SCTE-35 segmentation_upid. Enter a string
      containing the hexadecimal representation of the characters that make up the SCTE-35
      segmentation_upid value. Must contain an even number of hex characters. Do not include spaces
      between each hex pair. For example, the ASCII "ADS Information" becomes hex
      "41445320496e666f726d6174696f6e.

      - **SegmentationUpidType** *(integer) --* Corresponds to SCTE-35 segmentation_upid_type. On
      the console, enter one of the types listed in the SCTE-35 specification, converted to a
      decimal. For example, "0x0C" hex from the specification is "12" in decimal. In the CLI, API,
      or an SDK, enter one of the types listed in the SCTE-35 specification, in either hex (for
      example, "0x0C" ) or in decimal (for example, "12").

      - **SegmentsExpected** *(integer) --* Corresponds to SCTE-35 segments_expected. A value that
      is valid for the specified segmentation_type_id.

      - **SubSegmentNum** *(integer) --* Corresponds to SCTE-35 sub_segment_num. A value that is
      valid for the specified segmentation_type_id.

      - **SubSegmentsExpected** *(integer) --* Corresponds to SCTE-35 sub_segments_expected. A value
      that is valid for the specified segmentation_type_id.
    """


_ClientBatchUpdateScheduleCreatesScheduleActionsScheduleActionSettingsScte35TimeSignalSettingsScte35DescriptorsTypeDef = TypedDict(
    "_ClientBatchUpdateScheduleCreatesScheduleActionsScheduleActionSettingsScte35TimeSignalSettingsScte35DescriptorsTypeDef",
    {
        "Scte35DescriptorSettings": ClientBatchUpdateScheduleCreatesScheduleActionsScheduleActionSettingsScte35TimeSignalSettingsScte35DescriptorsScte35DescriptorSettingsTypeDef
    },
)


class ClientBatchUpdateScheduleCreatesScheduleActionsScheduleActionSettingsScte35TimeSignalSettingsScte35DescriptorsTypeDef(
    _ClientBatchUpdateScheduleCreatesScheduleActionsScheduleActionSettingsScte35TimeSignalSettingsScte35DescriptorsTypeDef
):
    """
    Type definition for
    `ClientBatchUpdateScheduleCreatesScheduleActionsScheduleActionSettingsScte35TimeSignalSettings`
    `Scte35Descriptors`

    - **Scte35DescriptorSettings** *(dict) --* **[REQUIRED]** SCTE-35 Descriptor Settings.

      - **SegmentationDescriptorScte35DescriptorSettings** *(dict) --* **[REQUIRED]** SCTE-35
      Segmentation Descriptor.

        - **DeliveryRestrictions** *(dict) --* Holds the four SCTE-35 delivery restriction
        parameters.

          - **ArchiveAllowedFlag** *(string) --* **[REQUIRED]** Corresponds to SCTE-35
          archive_allowed_flag.

          - **DeviceRestrictions** *(string) --* **[REQUIRED]** Corresponds to SCTE-35
          device_restrictions parameter.

          - **NoRegionalBlackoutFlag** *(string) --* **[REQUIRED]** Corresponds to SCTE-35
          no_regional_blackout_flag parameter.

          - **WebDeliveryAllowedFlag** *(string) --* **[REQUIRED]** Corresponds to SCTE-35
          web_delivery_allowed_flag parameter.

        - **SegmentNum** *(integer) --* Corresponds to SCTE-35 segment_num. A value that is valid
        for the specified segmentation_type_id.

        - **SegmentationCancelIndicator** *(string) --* **[REQUIRED]** Corresponds to SCTE-35
        segmentation_event_cancel_indicator.

        - **SegmentationDuration** *(integer) --* Corresponds to SCTE-35 segmentation_duration.
        Optional. The duration for the time_signal, in 90 KHz ticks. To convert seconds to ticks,
        multiple the seconds by 90,000. Enter time in 90 KHz clock ticks. If you do not enter a
        duration, the time_signal will continue until you insert a cancellation message.

        - **SegmentationEventId** *(integer) --* **[REQUIRED]** Corresponds to SCTE-35
        segmentation_event_id.

        - **SegmentationTypeId** *(integer) --* Corresponds to SCTE-35 segmentation_type_id. One of
        the segmentation_type_id values listed in the SCTE-35 specification. On the console, enter
        the ID in decimal (for example, "52"). In the CLI, API, or an SDK, enter the ID in hex (for
        example, "0x34") or decimal (for example, "52").

        - **SegmentationUpid** *(string) --* Corresponds to SCTE-35 segmentation_upid. Enter a
        string containing the hexadecimal representation of the characters that make up the SCTE-35
        segmentation_upid value. Must contain an even number of hex characters. Do not include
        spaces between each hex pair. For example, the ASCII "ADS Information" becomes hex
        "41445320496e666f726d6174696f6e.

        - **SegmentationUpidType** *(integer) --* Corresponds to SCTE-35 segmentation_upid_type. On
        the console, enter one of the types listed in the SCTE-35 specification, converted to a
        decimal. For example, "0x0C" hex from the specification is "12" in decimal. In the CLI, API,
        or an SDK, enter one of the types listed in the SCTE-35 specification, in either hex (for
        example, "0x0C" ) or in decimal (for example, "12").

        - **SegmentsExpected** *(integer) --* Corresponds to SCTE-35 segments_expected. A value that
        is valid for the specified segmentation_type_id.

        - **SubSegmentNum** *(integer) --* Corresponds to SCTE-35 sub_segment_num. A value that is
        valid for the specified segmentation_type_id.

        - **SubSegmentsExpected** *(integer) --* Corresponds to SCTE-35 sub_segments_expected. A
        value that is valid for the specified segmentation_type_id.
    """


_ClientBatchUpdateScheduleCreatesScheduleActionsScheduleActionSettingsScte35TimeSignalSettingsTypeDef = TypedDict(
    "_ClientBatchUpdateScheduleCreatesScheduleActionsScheduleActionSettingsScte35TimeSignalSettingsTypeDef",
    {
        "Scte35Descriptors": List[
            ClientBatchUpdateScheduleCreatesScheduleActionsScheduleActionSettingsScte35TimeSignalSettingsScte35DescriptorsTypeDef
        ]
    },
)


class ClientBatchUpdateScheduleCreatesScheduleActionsScheduleActionSettingsScte35TimeSignalSettingsTypeDef(
    _ClientBatchUpdateScheduleCreatesScheduleActionsScheduleActionSettingsScte35TimeSignalSettingsTypeDef
):
    """
    Type definition for `ClientBatchUpdateScheduleCreatesScheduleActionsScheduleActionSettings`
    `Scte35TimeSignalSettings`

    - **Scte35Descriptors** *(list) --* **[REQUIRED]** The list of SCTE-35 descriptors accompanying
    the SCTE-35 time_signal.

      - *(dict) --* Holds one set of SCTE-35 Descriptor Settings.

        - **Scte35DescriptorSettings** *(dict) --* **[REQUIRED]** SCTE-35 Descriptor Settings.

          - **SegmentationDescriptorScte35DescriptorSettings** *(dict) --* **[REQUIRED]** SCTE-35
          Segmentation Descriptor.

            - **DeliveryRestrictions** *(dict) --* Holds the four SCTE-35 delivery restriction
            parameters.

              - **ArchiveAllowedFlag** *(string) --* **[REQUIRED]** Corresponds to SCTE-35
              archive_allowed_flag.

              - **DeviceRestrictions** *(string) --* **[REQUIRED]** Corresponds to SCTE-35
              device_restrictions parameter.

              - **NoRegionalBlackoutFlag** *(string) --* **[REQUIRED]** Corresponds to SCTE-35
              no_regional_blackout_flag parameter.

              - **WebDeliveryAllowedFlag** *(string) --* **[REQUIRED]** Corresponds to SCTE-35
              web_delivery_allowed_flag parameter.

            - **SegmentNum** *(integer) --* Corresponds to SCTE-35 segment_num. A value that is
            valid for the specified segmentation_type_id.

            - **SegmentationCancelIndicator** *(string) --* **[REQUIRED]** Corresponds to SCTE-35
            segmentation_event_cancel_indicator.

            - **SegmentationDuration** *(integer) --* Corresponds to SCTE-35 segmentation_duration.
            Optional. The duration for the time_signal, in 90 KHz ticks. To convert seconds to
            ticks, multiple the seconds by 90,000. Enter time in 90 KHz clock ticks. If you do not
            enter a duration, the time_signal will continue until you insert a cancellation message.

            - **SegmentationEventId** *(integer) --* **[REQUIRED]** Corresponds to SCTE-35
            segmentation_event_id.

            - **SegmentationTypeId** *(integer) --* Corresponds to SCTE-35 segmentation_type_id. One
            of the segmentation_type_id values listed in the SCTE-35 specification. On the console,
            enter the ID in decimal (for example, "52"). In the CLI, API, or an SDK, enter the ID in
            hex (for example, "0x34") or decimal (for example, "52").

            - **SegmentationUpid** *(string) --* Corresponds to SCTE-35 segmentation_upid. Enter a
            string containing the hexadecimal representation of the characters that make up the
            SCTE-35 segmentation_upid value. Must contain an even number of hex characters. Do not
            include spaces between each hex pair. For example, the ASCII "ADS Information" becomes
            hex "41445320496e666f726d6174696f6e.

            - **SegmentationUpidType** *(integer) --* Corresponds to SCTE-35 segmentation_upid_type.
            On the console, enter one of the types listed in the SCTE-35 specification, converted to
            a decimal. For example, "0x0C" hex from the specification is "12" in decimal. In the
            CLI, API, or an SDK, enter one of the types listed in the SCTE-35 specification, in
            either hex (for example, "0x0C" ) or in decimal (for example, "12").

            - **SegmentsExpected** *(integer) --* Corresponds to SCTE-35 segments_expected. A value
            that is valid for the specified segmentation_type_id.

            - **SubSegmentNum** *(integer) --* Corresponds to SCTE-35 sub_segment_num. A value that
            is valid for the specified segmentation_type_id.

            - **SubSegmentsExpected** *(integer) --* Corresponds to SCTE-35 sub_segments_expected. A
            value that is valid for the specified segmentation_type_id.
    """


_RequiredClientBatchUpdateScheduleCreatesScheduleActionsScheduleActionSettingsStaticImageActivateSettingsImageTypeDef = TypedDict(
    "_RequiredClientBatchUpdateScheduleCreatesScheduleActionsScheduleActionSettingsStaticImageActivateSettingsImageTypeDef",
    {"Uri": str},
)
_OptionalClientBatchUpdateScheduleCreatesScheduleActionsScheduleActionSettingsStaticImageActivateSettingsImageTypeDef = TypedDict(
    "_OptionalClientBatchUpdateScheduleCreatesScheduleActionsScheduleActionSettingsStaticImageActivateSettingsImageTypeDef",
    {"PasswordParam": str, "Username": str},
    total=False,
)


class ClientBatchUpdateScheduleCreatesScheduleActionsScheduleActionSettingsStaticImageActivateSettingsImageTypeDef(
    _RequiredClientBatchUpdateScheduleCreatesScheduleActionsScheduleActionSettingsStaticImageActivateSettingsImageTypeDef,
    _OptionalClientBatchUpdateScheduleCreatesScheduleActionsScheduleActionSettingsStaticImageActivateSettingsImageTypeDef,
):
    """
    Type definition for
    `ClientBatchUpdateScheduleCreatesScheduleActionsScheduleActionSettingsStaticImageActivateSettings`
    `Image`

    - **PasswordParam** *(string) --* key used to extract the password from EC2 Parameter store

    - **Uri** *(string) --* **[REQUIRED]** Uniform Resource Identifier - This should be a path to a
    file accessible to the Live system (eg. a http:// URI) depending on the output type. For
    example, a RTMP destination should have a uri simliar to: "rtmp://fmsserver/live".

    - **Username** *(string) --* Documentation update needed
    """


_RequiredClientBatchUpdateScheduleCreatesScheduleActionsScheduleActionSettingsStaticImageActivateSettingsTypeDef = TypedDict(
    "_RequiredClientBatchUpdateScheduleCreatesScheduleActionsScheduleActionSettingsStaticImageActivateSettingsTypeDef",
    {
        "Image": ClientBatchUpdateScheduleCreatesScheduleActionsScheduleActionSettingsStaticImageActivateSettingsImageTypeDef
    },
)
_OptionalClientBatchUpdateScheduleCreatesScheduleActionsScheduleActionSettingsStaticImageActivateSettingsTypeDef = TypedDict(
    "_OptionalClientBatchUpdateScheduleCreatesScheduleActionsScheduleActionSettingsStaticImageActivateSettingsTypeDef",
    {
        "Duration": int,
        "FadeIn": int,
        "FadeOut": int,
        "Height": int,
        "ImageX": int,
        "ImageY": int,
        "Layer": int,
        "Opacity": int,
        "Width": int,
    },
    total=False,
)


class ClientBatchUpdateScheduleCreatesScheduleActionsScheduleActionSettingsStaticImageActivateSettingsTypeDef(
    _RequiredClientBatchUpdateScheduleCreatesScheduleActionsScheduleActionSettingsStaticImageActivateSettingsTypeDef,
    _OptionalClientBatchUpdateScheduleCreatesScheduleActionsScheduleActionSettingsStaticImageActivateSettingsTypeDef,
):
    """
    Type definition for `ClientBatchUpdateScheduleCreatesScheduleActionsScheduleActionSettings`
    `StaticImageActivateSettings`

    - **Duration** *(integer) --* The duration in milliseconds for the image to remain on the video.
    If omitted or set to 0 the duration is unlimited and the image will remain until it is
    explicitly deactivated.

    - **FadeIn** *(integer) --* The time in milliseconds for the image to fade in. The fade-in
    starts at the start time of the overlay. Default is 0 (no fade-in).

    - **FadeOut** *(integer) --* Applies only if a duration is specified. The time in milliseconds
    for the image to fade out. The fade-out starts when the duration time is hit, so it effectively
    extends the duration. Default is 0 (no fade-out).

    - **Height** *(integer) --* The height of the image when inserted into the video, in pixels. The
    overlay will be scaled up or down to the specified height. Leave blank to use the native height
    of the overlay.

    - **Image** *(dict) --* **[REQUIRED]** The location and filename of the image file to overlay on
    the video. The file must be a 32-bit BMP, PNG, or TGA file, and must not be larger (in pixels)
    than the input video.

      - **PasswordParam** *(string) --* key used to extract the password from EC2 Parameter store

      - **Uri** *(string) --* **[REQUIRED]** Uniform Resource Identifier - This should be a path to
      a file accessible to the Live system (eg. a http:// URI) depending on the output type. For
      example, a RTMP destination should have a uri simliar to: "rtmp://fmsserver/live".

      - **Username** *(string) --* Documentation update needed

    - **ImageX** *(integer) --* Placement of the left edge of the overlay relative to the left edge
    of the video frame, in pixels. 0 (the default) is the left edge of the frame. If the placement
    causes the overlay to extend beyond the right edge of the underlying video, then the overlay is
    cropped on the right.

    - **ImageY** *(integer) --* Placement of the top edge of the overlay relative to the top edge of
    the video frame, in pixels. 0 (the default) is the top edge of the frame. If the placement
    causes the overlay to extend beyond the bottom edge of the underlying video, then the overlay is
    cropped on the bottom.

    - **Layer** *(integer) --* The number of the layer, 0 to 7. There are 8 layers that can be
    overlaid on the video, each layer with a different image. The layers are in Z order, which means
    that overlays with higher values of layer are inserted on top of overlays with lower values of
    layer. Default is 0.

    - **Opacity** *(integer) --* Opacity of image where 0 is transparent and 100 is fully opaque.
    Default is 100.

    - **Width** *(integer) --* The width of the image when inserted into the video, in pixels. The
    overlay will be scaled up or down to the specified width. Leave blank to use the native width of
    the overlay.
    """


_ClientBatchUpdateScheduleCreatesScheduleActionsScheduleActionSettingsStaticImageDeactivateSettingsTypeDef = TypedDict(
    "_ClientBatchUpdateScheduleCreatesScheduleActionsScheduleActionSettingsStaticImageDeactivateSettingsTypeDef",
    {"FadeOut": int, "Layer": int},
    total=False,
)


class ClientBatchUpdateScheduleCreatesScheduleActionsScheduleActionSettingsStaticImageDeactivateSettingsTypeDef(
    _ClientBatchUpdateScheduleCreatesScheduleActionsScheduleActionSettingsStaticImageDeactivateSettingsTypeDef
):
    """
    Type definition for `ClientBatchUpdateScheduleCreatesScheduleActionsScheduleActionSettings`
    `StaticImageDeactivateSettings`

    - **FadeOut** *(integer) --* The time in milliseconds for the image to fade out. Default is 0
    (no fade-out).

    - **Layer** *(integer) --* The image overlay layer to deactivate, 0 to 7. Default is 0.
    """


_ClientBatchUpdateScheduleCreatesScheduleActionsScheduleActionSettingsTypeDef = TypedDict(
    "_ClientBatchUpdateScheduleCreatesScheduleActionsScheduleActionSettingsTypeDef",
    {
        "HlsTimedMetadataSettings": ClientBatchUpdateScheduleCreatesScheduleActionsScheduleActionSettingsHlsTimedMetadataSettingsTypeDef,
        "InputSwitchSettings": ClientBatchUpdateScheduleCreatesScheduleActionsScheduleActionSettingsInputSwitchSettingsTypeDef,
        "PauseStateSettings": ClientBatchUpdateScheduleCreatesScheduleActionsScheduleActionSettingsPauseStateSettingsTypeDef,
        "Scte35ReturnToNetworkSettings": ClientBatchUpdateScheduleCreatesScheduleActionsScheduleActionSettingsScte35ReturnToNetworkSettingsTypeDef,
        "Scte35SpliceInsertSettings": ClientBatchUpdateScheduleCreatesScheduleActionsScheduleActionSettingsScte35SpliceInsertSettingsTypeDef,
        "Scte35TimeSignalSettings": ClientBatchUpdateScheduleCreatesScheduleActionsScheduleActionSettingsScte35TimeSignalSettingsTypeDef,
        "StaticImageActivateSettings": ClientBatchUpdateScheduleCreatesScheduleActionsScheduleActionSettingsStaticImageActivateSettingsTypeDef,
        "StaticImageDeactivateSettings": ClientBatchUpdateScheduleCreatesScheduleActionsScheduleActionSettingsStaticImageDeactivateSettingsTypeDef,
    },
    total=False,
)


class ClientBatchUpdateScheduleCreatesScheduleActionsScheduleActionSettingsTypeDef(
    _ClientBatchUpdateScheduleCreatesScheduleActionsScheduleActionSettingsTypeDef
):
    """
    Type definition for `ClientBatchUpdateScheduleCreatesScheduleActions` `ScheduleActionSettings`

    - **HlsTimedMetadataSettings** *(dict) --* Action to insert HLS metadata

      - **Id3** *(string) --* **[REQUIRED]** Base64 string formatted according to the ID3
      specification: http://id3.org/id3v2.4.0-structure

    - **InputSwitchSettings** *(dict) --* Action to switch the input

      - **InputAttachmentNameReference** *(string) --* **[REQUIRED]** The name of the input
      attachment (not the name of the input!) to switch to. The name is specified in the channel
      configuration.

      - **InputClippingSettings** *(dict) --* Settings to let you create a clip of the file input,
      in order to set up the input to ingest only a portion of the file.

        - **InputTimecodeSource** *(string) --* **[REQUIRED]** The source of the timecodes in the
        source being clipped.

        - **StartTimecode** *(dict) --* Settings to identify the start of the clip.

          - **Timecode** *(string) --* The timecode for the frame where you want to start the clip.
          Optional; if not specified, the clip starts at first frame in the file. Enter the timecode
          as HH:MM:SS:FF or HH:MM:SS;FF.

        - **StopTimecode** *(dict) --* Settings to identify the end of the clip.

          - **LastFrameClippingBehavior** *(string) --* If you specify a StopTimecode in an input
          (in order to clip the file), you can specify if you want the clip to exclude (the default)
          or include the frame specified by the timecode.

          - **Timecode** *(string) --* The timecode for the frame where you want to stop the clip.
          Optional; if not specified, the clip continues to the end of the file. Enter the timecode
          as HH:MM:SS:FF or HH:MM:SS;FF.

      - **UrlPath** *(list) --* The value for the variable portion of the URL for the dynamic input,
      for this instance of the input. Each time you use the same dynamic input in an input switch
      action, you can provide a different value, in order to connect the input to a different
      content source.

        - *(string) --* Placeholder documentation for __string

    - **PauseStateSettings** *(dict) --* Action to pause or unpause one or both channel pipelines

      - **Pipelines** *(list) --* Placeholder documentation for __listOfPipelinePauseStateSettings

        - *(dict) --* Settings for pausing a pipeline.

          - **PipelineId** *(string) --* **[REQUIRED]** Pipeline ID to pause ("PIPELINE_0" or
          "PIPELINE_1").

    - **Scte35ReturnToNetworkSettings** *(dict) --* Action to insert SCTE-35 return_to_network
    message

      - **SpliceEventId** *(integer) --* **[REQUIRED]** The splice_event_id for the SCTE-35
      splice_insert, as defined in SCTE-35.

    - **Scte35SpliceInsertSettings** *(dict) --* Action to insert SCTE-35 splice_insert message

      - **Duration** *(integer) --* Optional, the duration for the splice_insert, in 90 KHz ticks.
      To convert seconds to ticks, multiple the seconds by 90,000. If you enter a duration, there is
      an expectation that the downstream system can read the duration and cue in at that time. If
      you do not enter a duration, the splice_insert will continue indefinitely and there is an
      expectation that you will enter a return_to_network to end the splice_insert at the
      appropriate time.

      - **SpliceEventId** *(integer) --* **[REQUIRED]** The splice_event_id for the SCTE-35
      splice_insert, as defined in SCTE-35.

    - **Scte35TimeSignalSettings** *(dict) --* Action to insert SCTE-35 time_signal message

      - **Scte35Descriptors** *(list) --* **[REQUIRED]** The list of SCTE-35 descriptors
      accompanying the SCTE-35 time_signal.

        - *(dict) --* Holds one set of SCTE-35 Descriptor Settings.

          - **Scte35DescriptorSettings** *(dict) --* **[REQUIRED]** SCTE-35 Descriptor Settings.

            - **SegmentationDescriptorScte35DescriptorSettings** *(dict) --* **[REQUIRED]** SCTE-35
            Segmentation Descriptor.

              - **DeliveryRestrictions** *(dict) --* Holds the four SCTE-35 delivery restriction
              parameters.

                - **ArchiveAllowedFlag** *(string) --* **[REQUIRED]** Corresponds to SCTE-35
                archive_allowed_flag.

                - **DeviceRestrictions** *(string) --* **[REQUIRED]** Corresponds to SCTE-35
                device_restrictions parameter.

                - **NoRegionalBlackoutFlag** *(string) --* **[REQUIRED]** Corresponds to SCTE-35
                no_regional_blackout_flag parameter.

                - **WebDeliveryAllowedFlag** *(string) --* **[REQUIRED]** Corresponds to SCTE-35
                web_delivery_allowed_flag parameter.

              - **SegmentNum** *(integer) --* Corresponds to SCTE-35 segment_num. A value that is
              valid for the specified segmentation_type_id.

              - **SegmentationCancelIndicator** *(string) --* **[REQUIRED]** Corresponds to SCTE-35
              segmentation_event_cancel_indicator.

              - **SegmentationDuration** *(integer) --* Corresponds to SCTE-35
              segmentation_duration. Optional. The duration for the time_signal, in 90 KHz ticks. To
              convert seconds to ticks, multiple the seconds by 90,000. Enter time in 90 KHz clock
              ticks. If you do not enter a duration, the time_signal will continue until you insert
              a cancellation message.

              - **SegmentationEventId** *(integer) --* **[REQUIRED]** Corresponds to SCTE-35
              segmentation_event_id.

              - **SegmentationTypeId** *(integer) --* Corresponds to SCTE-35 segmentation_type_id.
              One of the segmentation_type_id values listed in the SCTE-35 specification. On the
              console, enter the ID in decimal (for example, "52"). In the CLI, API, or an SDK,
              enter the ID in hex (for example, "0x34") or decimal (for example, "52").

              - **SegmentationUpid** *(string) --* Corresponds to SCTE-35 segmentation_upid. Enter a
              string containing the hexadecimal representation of the characters that make up the
              SCTE-35 segmentation_upid value. Must contain an even number of hex characters. Do not
              include spaces between each hex pair. For example, the ASCII "ADS Information" becomes
              hex "41445320496e666f726d6174696f6e.

              - **SegmentationUpidType** *(integer) --* Corresponds to SCTE-35
              segmentation_upid_type. On the console, enter one of the types listed in the SCTE-35
              specification, converted to a decimal. For example, "0x0C" hex from the specification
              is "12" in decimal. In the CLI, API, or an SDK, enter one of the types listed in the
              SCTE-35 specification, in either hex (for example, "0x0C" ) or in decimal (for
              example, "12").

              - **SegmentsExpected** *(integer) --* Corresponds to SCTE-35 segments_expected. A
              value that is valid for the specified segmentation_type_id.

              - **SubSegmentNum** *(integer) --* Corresponds to SCTE-35 sub_segment_num. A value
              that is valid for the specified segmentation_type_id.

              - **SubSegmentsExpected** *(integer) --* Corresponds to SCTE-35 sub_segments_expected.
              A value that is valid for the specified segmentation_type_id.

    - **StaticImageActivateSettings** *(dict) --* Action to activate a static image overlay

      - **Duration** *(integer) --* The duration in milliseconds for the image to remain on the
      video. If omitted or set to 0 the duration is unlimited and the image will remain until it is
      explicitly deactivated.

      - **FadeIn** *(integer) --* The time in milliseconds for the image to fade in. The fade-in
      starts at the start time of the overlay. Default is 0 (no fade-in).

      - **FadeOut** *(integer) --* Applies only if a duration is specified. The time in milliseconds
      for the image to fade out. The fade-out starts when the duration time is hit, so it
      effectively extends the duration. Default is 0 (no fade-out).

      - **Height** *(integer) --* The height of the image when inserted into the video, in pixels.
      The overlay will be scaled up or down to the specified height. Leave blank to use the native
      height of the overlay.

      - **Image** *(dict) --* **[REQUIRED]** The location and filename of the image file to overlay
      on the video. The file must be a 32-bit BMP, PNG, or TGA file, and must not be larger (in
      pixels) than the input video.

        - **PasswordParam** *(string) --* key used to extract the password from EC2 Parameter store

        - **Uri** *(string) --* **[REQUIRED]** Uniform Resource Identifier - This should be a path
        to a file accessible to the Live system (eg. a http:// URI) depending on the output type.
        For example, a RTMP destination should have a uri simliar to: "rtmp://fmsserver/live".

        - **Username** *(string) --* Documentation update needed

      - **ImageX** *(integer) --* Placement of the left edge of the overlay relative to the left
      edge of the video frame, in pixels. 0 (the default) is the left edge of the frame. If the
      placement causes the overlay to extend beyond the right edge of the underlying video, then the
      overlay is cropped on the right.

      - **ImageY** *(integer) --* Placement of the top edge of the overlay relative to the top edge
      of the video frame, in pixels. 0 (the default) is the top edge of the frame. If the placement
      causes the overlay to extend beyond the bottom edge of the underlying video, then the overlay
      is cropped on the bottom.

      - **Layer** *(integer) --* The number of the layer, 0 to 7. There are 8 layers that can be
      overlaid on the video, each layer with a different image. The layers are in Z order, which
      means that overlays with higher values of layer are inserted on top of overlays with lower
      values of layer. Default is 0.

      - **Opacity** *(integer) --* Opacity of image where 0 is transparent and 100 is fully opaque.
      Default is 100.

      - **Width** *(integer) --* The width of the image when inserted into the video, in pixels. The
      overlay will be scaled up or down to the specified width. Leave blank to use the native width
      of the overlay.

    - **StaticImageDeactivateSettings** *(dict) --* Action to deactivate a static image overlay

      - **FadeOut** *(integer) --* The time in milliseconds for the image to fade out. Default is 0
      (no fade-out).

      - **Layer** *(integer) --* The image overlay layer to deactivate, 0 to 7. Default is 0.
    """


_ClientBatchUpdateScheduleCreatesScheduleActionsScheduleActionStartSettingsFixedModeScheduleActionStartSettingsTypeDef = TypedDict(
    "_ClientBatchUpdateScheduleCreatesScheduleActionsScheduleActionStartSettingsFixedModeScheduleActionStartSettingsTypeDef",
    {"Time": str},
)


class ClientBatchUpdateScheduleCreatesScheduleActionsScheduleActionStartSettingsFixedModeScheduleActionStartSettingsTypeDef(
    _ClientBatchUpdateScheduleCreatesScheduleActionsScheduleActionStartSettingsFixedModeScheduleActionStartSettingsTypeDef
):
    """
    Type definition for `ClientBatchUpdateScheduleCreatesScheduleActionsScheduleActionStartSettings`
    `FixedModeScheduleActionStartSettings`

    - **Time** *(string) --* **[REQUIRED]** Start time for the action to start in the channel. (Not
    the time for the action to be added to the schedule: actions are always added to the schedule
    immediately.) UTC format: yyyy-mm-ddThh:mm:ss.nnnZ. All the letters are digits (for example, mm
    might be 01) except for the two constants "T" for time and "Z" for "UTC format".
    """


_ClientBatchUpdateScheduleCreatesScheduleActionsScheduleActionStartSettingsFollowModeScheduleActionStartSettingsTypeDef = TypedDict(
    "_ClientBatchUpdateScheduleCreatesScheduleActionsScheduleActionStartSettingsFollowModeScheduleActionStartSettingsTypeDef",
    {"FollowPoint": str, "ReferenceActionName": str},
)


class ClientBatchUpdateScheduleCreatesScheduleActionsScheduleActionStartSettingsFollowModeScheduleActionStartSettingsTypeDef(
    _ClientBatchUpdateScheduleCreatesScheduleActionsScheduleActionStartSettingsFollowModeScheduleActionStartSettingsTypeDef
):
    """
    Type definition for `ClientBatchUpdateScheduleCreatesScheduleActionsScheduleActionStartSettings`
    `FollowModeScheduleActionStartSettings`

    - **FollowPoint** *(string) --* **[REQUIRED]** Identifies whether this action starts relative to
    the start or relative to the end of the reference action.

    - **ReferenceActionName** *(string) --* **[REQUIRED]** The action name of another action that
    this one refers to.
    """


_ClientBatchUpdateScheduleCreatesScheduleActionsScheduleActionStartSettingsTypeDef = TypedDict(
    "_ClientBatchUpdateScheduleCreatesScheduleActionsScheduleActionStartSettingsTypeDef",
    {
        "FixedModeScheduleActionStartSettings": ClientBatchUpdateScheduleCreatesScheduleActionsScheduleActionStartSettingsFixedModeScheduleActionStartSettingsTypeDef,
        "FollowModeScheduleActionStartSettings": ClientBatchUpdateScheduleCreatesScheduleActionsScheduleActionStartSettingsFollowModeScheduleActionStartSettingsTypeDef,
        "ImmediateModeScheduleActionStartSettings": Dict[str, Any],
    },
    total=False,
)


class ClientBatchUpdateScheduleCreatesScheduleActionsScheduleActionStartSettingsTypeDef(
    _ClientBatchUpdateScheduleCreatesScheduleActionsScheduleActionStartSettingsTypeDef
):
    """
    Type definition for `ClientBatchUpdateScheduleCreatesScheduleActions`
    `ScheduleActionStartSettings`

    - **FixedModeScheduleActionStartSettings** *(dict) --* Option for specifying the start time for
    an action.

      - **Time** *(string) --* **[REQUIRED]** Start time for the action to start in the channel.
      (Not the time for the action to be added to the schedule: actions are always added to the
      schedule immediately.) UTC format: yyyy-mm-ddThh:mm:ss.nnnZ. All the letters are digits (for
      example, mm might be 01) except for the two constants "T" for time and "Z" for "UTC format".

    - **FollowModeScheduleActionStartSettings** *(dict) --* Option for specifying an action as
    relative to another action.

      - **FollowPoint** *(string) --* **[REQUIRED]** Identifies whether this action starts relative
      to the start or relative to the end of the reference action.

      - **ReferenceActionName** *(string) --* **[REQUIRED]** The action name of another action that
      this one refers to.

    - **ImmediateModeScheduleActionStartSettings** *(dict) --* Option for specifying an action that
    should be applied immediately.
    """


_ClientBatchUpdateScheduleCreatesScheduleActionsTypeDef = TypedDict(
    "_ClientBatchUpdateScheduleCreatesScheduleActionsTypeDef",
    {
        "ActionName": str,
        "ScheduleActionSettings": ClientBatchUpdateScheduleCreatesScheduleActionsScheduleActionSettingsTypeDef,
        "ScheduleActionStartSettings": ClientBatchUpdateScheduleCreatesScheduleActionsScheduleActionStartSettingsTypeDef,
    },
)


class ClientBatchUpdateScheduleCreatesScheduleActionsTypeDef(
    _ClientBatchUpdateScheduleCreatesScheduleActionsTypeDef
):
    """
    Type definition for `ClientBatchUpdateScheduleCreates` `ScheduleActions`

    - **ActionName** *(string) --* **[REQUIRED]** The name of the action, must be unique within the
    schedule. This name provides the main reference to an action once it is added to the schedule. A
    name is unique if it is no longer in the schedule. The schedule is automatically cleaned up to
    remove actions with a start time of more than 1 hour ago (approximately) so at that point a name
    can be reused.

    - **ScheduleActionSettings** *(dict) --* **[REQUIRED]** Settings for this schedule action.

      - **HlsTimedMetadataSettings** *(dict) --* Action to insert HLS metadata

        - **Id3** *(string) --* **[REQUIRED]** Base64 string formatted according to the ID3
        specification: http://id3.org/id3v2.4.0-structure

      - **InputSwitchSettings** *(dict) --* Action to switch the input

        - **InputAttachmentNameReference** *(string) --* **[REQUIRED]** The name of the input
        attachment (not the name of the input!) to switch to. The name is specified in the channel
        configuration.

        - **InputClippingSettings** *(dict) --* Settings to let you create a clip of the file input,
        in order to set up the input to ingest only a portion of the file.

          - **InputTimecodeSource** *(string) --* **[REQUIRED]** The source of the timecodes in the
          source being clipped.

          - **StartTimecode** *(dict) --* Settings to identify the start of the clip.

            - **Timecode** *(string) --* The timecode for the frame where you want to start the
            clip. Optional; if not specified, the clip starts at first frame in the file. Enter the
            timecode as HH:MM:SS:FF or HH:MM:SS;FF.

          - **StopTimecode** *(dict) --* Settings to identify the end of the clip.

            - **LastFrameClippingBehavior** *(string) --* If you specify a StopTimecode in an input
            (in order to clip the file), you can specify if you want the clip to exclude (the
            default) or include the frame specified by the timecode.

            - **Timecode** *(string) --* The timecode for the frame where you want to stop the clip.
            Optional; if not specified, the clip continues to the end of the file. Enter the
            timecode as HH:MM:SS:FF or HH:MM:SS;FF.

        - **UrlPath** *(list) --* The value for the variable portion of the URL for the dynamic
        input, for this instance of the input. Each time you use the same dynamic input in an input
        switch action, you can provide a different value, in order to connect the input to a
        different content source.

          - *(string) --* Placeholder documentation for __string

      - **PauseStateSettings** *(dict) --* Action to pause or unpause one or both channel pipelines

        - **Pipelines** *(list) --* Placeholder documentation for __listOfPipelinePauseStateSettings

          - *(dict) --* Settings for pausing a pipeline.

            - **PipelineId** *(string) --* **[REQUIRED]** Pipeline ID to pause ("PIPELINE_0" or
            "PIPELINE_1").

      - **Scte35ReturnToNetworkSettings** *(dict) --* Action to insert SCTE-35 return_to_network
      message

        - **SpliceEventId** *(integer) --* **[REQUIRED]** The splice_event_id for the SCTE-35
        splice_insert, as defined in SCTE-35.

      - **Scte35SpliceInsertSettings** *(dict) --* Action to insert SCTE-35 splice_insert message

        - **Duration** *(integer) --* Optional, the duration for the splice_insert, in 90 KHz ticks.
        To convert seconds to ticks, multiple the seconds by 90,000. If you enter a duration, there
        is an expectation that the downstream system can read the duration and cue in at that time.
        If you do not enter a duration, the splice_insert will continue indefinitely and there is an
        expectation that you will enter a return_to_network to end the splice_insert at the
        appropriate time.

        - **SpliceEventId** *(integer) --* **[REQUIRED]** The splice_event_id for the SCTE-35
        splice_insert, as defined in SCTE-35.

      - **Scte35TimeSignalSettings** *(dict) --* Action to insert SCTE-35 time_signal message

        - **Scte35Descriptors** *(list) --* **[REQUIRED]** The list of SCTE-35 descriptors
        accompanying the SCTE-35 time_signal.

          - *(dict) --* Holds one set of SCTE-35 Descriptor Settings.

            - **Scte35DescriptorSettings** *(dict) --* **[REQUIRED]** SCTE-35 Descriptor Settings.

              - **SegmentationDescriptorScte35DescriptorSettings** *(dict) --* **[REQUIRED]**
              SCTE-35 Segmentation Descriptor.

                - **DeliveryRestrictions** *(dict) --* Holds the four SCTE-35 delivery restriction
                parameters.

                  - **ArchiveAllowedFlag** *(string) --* **[REQUIRED]** Corresponds to SCTE-35
                  archive_allowed_flag.

                  - **DeviceRestrictions** *(string) --* **[REQUIRED]** Corresponds to SCTE-35
                  device_restrictions parameter.

                  - **NoRegionalBlackoutFlag** *(string) --* **[REQUIRED]** Corresponds to SCTE-35
                  no_regional_blackout_flag parameter.

                  - **WebDeliveryAllowedFlag** *(string) --* **[REQUIRED]** Corresponds to SCTE-35
                  web_delivery_allowed_flag parameter.

                - **SegmentNum** *(integer) --* Corresponds to SCTE-35 segment_num. A value that is
                valid for the specified segmentation_type_id.

                - **SegmentationCancelIndicator** *(string) --* **[REQUIRED]** Corresponds to
                SCTE-35 segmentation_event_cancel_indicator.

                - **SegmentationDuration** *(integer) --* Corresponds to SCTE-35
                segmentation_duration. Optional. The duration for the time_signal, in 90 KHz ticks.
                To convert seconds to ticks, multiple the seconds by 90,000. Enter time in 90 KHz
                clock ticks. If you do not enter a duration, the time_signal will continue until you
                insert a cancellation message.

                - **SegmentationEventId** *(integer) --* **[REQUIRED]** Corresponds to SCTE-35
                segmentation_event_id.

                - **SegmentationTypeId** *(integer) --* Corresponds to SCTE-35 segmentation_type_id.
                One of the segmentation_type_id values listed in the SCTE-35 specification. On the
                console, enter the ID in decimal (for example, "52"). In the CLI, API, or an SDK,
                enter the ID in hex (for example, "0x34") or decimal (for example, "52").

                - **SegmentationUpid** *(string) --* Corresponds to SCTE-35 segmentation_upid. Enter
                a string containing the hexadecimal representation of the characters that make up
                the SCTE-35 segmentation_upid value. Must contain an even number of hex characters.
                Do not include spaces between each hex pair. For example, the ASCII "ADS
                Information" becomes hex "41445320496e666f726d6174696f6e.

                - **SegmentationUpidType** *(integer) --* Corresponds to SCTE-35
                segmentation_upid_type. On the console, enter one of the types listed in the SCTE-35
                specification, converted to a decimal. For example, "0x0C" hex from the
                specification is "12" in decimal. In the CLI, API, or an SDK, enter one of the types
                listed in the SCTE-35 specification, in either hex (for example, "0x0C" ) or in
                decimal (for example, "12").

                - **SegmentsExpected** *(integer) --* Corresponds to SCTE-35 segments_expected. A
                value that is valid for the specified segmentation_type_id.

                - **SubSegmentNum** *(integer) --* Corresponds to SCTE-35 sub_segment_num. A value
                that is valid for the specified segmentation_type_id.

                - **SubSegmentsExpected** *(integer) --* Corresponds to SCTE-35
                sub_segments_expected. A value that is valid for the specified segmentation_type_id.

      - **StaticImageActivateSettings** *(dict) --* Action to activate a static image overlay

        - **Duration** *(integer) --* The duration in milliseconds for the image to remain on the
        video. If omitted or set to 0 the duration is unlimited and the image will remain until it
        is explicitly deactivated.

        - **FadeIn** *(integer) --* The time in milliseconds for the image to fade in. The fade-in
        starts at the start time of the overlay. Default is 0 (no fade-in).

        - **FadeOut** *(integer) --* Applies only if a duration is specified. The time in
        milliseconds for the image to fade out. The fade-out starts when the duration time is hit,
        so it effectively extends the duration. Default is 0 (no fade-out).

        - **Height** *(integer) --* The height of the image when inserted into the video, in pixels.
        The overlay will be scaled up or down to the specified height. Leave blank to use the native
        height of the overlay.

        - **Image** *(dict) --* **[REQUIRED]** The location and filename of the image file to
        overlay on the video. The file must be a 32-bit BMP, PNG, or TGA file, and must not be
        larger (in pixels) than the input video.

          - **PasswordParam** *(string) --* key used to extract the password from EC2 Parameter
          store

          - **Uri** *(string) --* **[REQUIRED]** Uniform Resource Identifier - This should be a path
          to a file accessible to the Live system (eg. a http:// URI) depending on the output type.
          For example, a RTMP destination should have a uri simliar to: "rtmp://fmsserver/live".

          - **Username** *(string) --* Documentation update needed

        - **ImageX** *(integer) --* Placement of the left edge of the overlay relative to the left
        edge of the video frame, in pixels. 0 (the default) is the left edge of the frame. If the
        placement causes the overlay to extend beyond the right edge of the underlying video, then
        the overlay is cropped on the right.

        - **ImageY** *(integer) --* Placement of the top edge of the overlay relative to the top
        edge of the video frame, in pixels. 0 (the default) is the top edge of the frame. If the
        placement causes the overlay to extend beyond the bottom edge of the underlying video, then
        the overlay is cropped on the bottom.

        - **Layer** *(integer) --* The number of the layer, 0 to 7. There are 8 layers that can be
        overlaid on the video, each layer with a different image. The layers are in Z order, which
        means that overlays with higher values of layer are inserted on top of overlays with lower
        values of layer. Default is 0.

        - **Opacity** *(integer) --* Opacity of image where 0 is transparent and 100 is fully
        opaque. Default is 100.

        - **Width** *(integer) --* The width of the image when inserted into the video, in pixels.
        The overlay will be scaled up or down to the specified width. Leave blank to use the native
        width of the overlay.

      - **StaticImageDeactivateSettings** *(dict) --* Action to deactivate a static image overlay

        - **FadeOut** *(integer) --* The time in milliseconds for the image to fade out. Default is
        0 (no fade-out).

        - **Layer** *(integer) --* The image overlay layer to deactivate, 0 to 7. Default is 0.

    - **ScheduleActionStartSettings** *(dict) --* **[REQUIRED]** The time for the action to start in
    the channel.

      - **FixedModeScheduleActionStartSettings** *(dict) --* Option for specifying the start time
      for an action.

        - **Time** *(string) --* **[REQUIRED]** Start time for the action to start in the channel.
        (Not the time for the action to be added to the schedule: actions are always added to the
        schedule immediately.) UTC format: yyyy-mm-ddThh:mm:ss.nnnZ. All the letters are digits (for
        example, mm might be 01) except for the two constants "T" for time and "Z" for "UTC format".

      - **FollowModeScheduleActionStartSettings** *(dict) --* Option for specifying an action as
      relative to another action.

        - **FollowPoint** *(string) --* **[REQUIRED]** Identifies whether this action starts
        relative to the start or relative to the end of the reference action.

        - **ReferenceActionName** *(string) --* **[REQUIRED]** The action name of another action
        that this one refers to.

      - **ImmediateModeScheduleActionStartSettings** *(dict) --* Option for specifying an action
      that should be applied immediately.
    """


_ClientBatchUpdateScheduleCreatesTypeDef = TypedDict(
    "_ClientBatchUpdateScheduleCreatesTypeDef",
    {"ScheduleActions": List[ClientBatchUpdateScheduleCreatesScheduleActionsTypeDef]},
)


class ClientBatchUpdateScheduleCreatesTypeDef(_ClientBatchUpdateScheduleCreatesTypeDef):
    """
    Type definition for `ClientBatchUpdateSchedule` `Creates`

    - **ScheduleActions** *(list) --* **[REQUIRED]** A list of schedule actions to create.

      - *(dict) --* Contains information on a single schedule action.

        - **ActionName** *(string) --* **[REQUIRED]** The name of the action, must be unique within
        the schedule. This name provides the main reference to an action once it is added to the
        schedule. A name is unique if it is no longer in the schedule. The schedule is automatically
        cleaned up to remove actions with a start time of more than 1 hour ago (approximately) so at
        that point a name can be reused.

        - **ScheduleActionSettings** *(dict) --* **[REQUIRED]** Settings for this schedule action.

          - **HlsTimedMetadataSettings** *(dict) --* Action to insert HLS metadata

            - **Id3** *(string) --* **[REQUIRED]** Base64 string formatted according to the ID3
            specification: http://id3.org/id3v2.4.0-structure

          - **InputSwitchSettings** *(dict) --* Action to switch the input

            - **InputAttachmentNameReference** *(string) --* **[REQUIRED]** The name of the input
            attachment (not the name of the input!) to switch to. The name is specified in the
            channel configuration.

            - **InputClippingSettings** *(dict) --* Settings to let you create a clip of the file
            input, in order to set up the input to ingest only a portion of the file.

              - **InputTimecodeSource** *(string) --* **[REQUIRED]** The source of the timecodes in
              the source being clipped.

              - **StartTimecode** *(dict) --* Settings to identify the start of the clip.

                - **Timecode** *(string) --* The timecode for the frame where you want to start the
                clip. Optional; if not specified, the clip starts at first frame in the file. Enter
                the timecode as HH:MM:SS:FF or HH:MM:SS;FF.

              - **StopTimecode** *(dict) --* Settings to identify the end of the clip.

                - **LastFrameClippingBehavior** *(string) --* If you specify a StopTimecode in an
                input (in order to clip the file), you can specify if you want the clip to exclude
                (the default) or include the frame specified by the timecode.

                - **Timecode** *(string) --* The timecode for the frame where you want to stop the
                clip. Optional; if not specified, the clip continues to the end of the file. Enter
                the timecode as HH:MM:SS:FF or HH:MM:SS;FF.

            - **UrlPath** *(list) --* The value for the variable portion of the URL for the dynamic
            input, for this instance of the input. Each time you use the same dynamic input in an
            input switch action, you can provide a different value, in order to connect the input to
            a different content source.

              - *(string) --* Placeholder documentation for __string

          - **PauseStateSettings** *(dict) --* Action to pause or unpause one or both channel
          pipelines

            - **Pipelines** *(list) --* Placeholder documentation for
            __listOfPipelinePauseStateSettings

              - *(dict) --* Settings for pausing a pipeline.

                - **PipelineId** *(string) --* **[REQUIRED]** Pipeline ID to pause ("PIPELINE_0" or
                "PIPELINE_1").

          - **Scte35ReturnToNetworkSettings** *(dict) --* Action to insert SCTE-35 return_to_network
          message

            - **SpliceEventId** *(integer) --* **[REQUIRED]** The splice_event_id for the SCTE-35
            splice_insert, as defined in SCTE-35.

          - **Scte35SpliceInsertSettings** *(dict) --* Action to insert SCTE-35 splice_insert
          message

            - **Duration** *(integer) --* Optional, the duration for the splice_insert, in 90 KHz
            ticks. To convert seconds to ticks, multiple the seconds by 90,000. If you enter a
            duration, there is an expectation that the downstream system can read the duration and
            cue in at that time. If you do not enter a duration, the splice_insert will continue
            indefinitely and there is an expectation that you will enter a return_to_network to end
            the splice_insert at the appropriate time.

            - **SpliceEventId** *(integer) --* **[REQUIRED]** The splice_event_id for the SCTE-35
            splice_insert, as defined in SCTE-35.

          - **Scte35TimeSignalSettings** *(dict) --* Action to insert SCTE-35 time_signal message

            - **Scte35Descriptors** *(list) --* **[REQUIRED]** The list of SCTE-35 descriptors
            accompanying the SCTE-35 time_signal.

              - *(dict) --* Holds one set of SCTE-35 Descriptor Settings.

                - **Scte35DescriptorSettings** *(dict) --* **[REQUIRED]** SCTE-35 Descriptor
                Settings.

                  - **SegmentationDescriptorScte35DescriptorSettings** *(dict) --* **[REQUIRED]**
                  SCTE-35 Segmentation Descriptor.

                    - **DeliveryRestrictions** *(dict) --* Holds the four SCTE-35 delivery
                    restriction parameters.

                      - **ArchiveAllowedFlag** *(string) --* **[REQUIRED]** Corresponds to SCTE-35
                      archive_allowed_flag.

                      - **DeviceRestrictions** *(string) --* **[REQUIRED]** Corresponds to SCTE-35
                      device_restrictions parameter.

                      - **NoRegionalBlackoutFlag** *(string) --* **[REQUIRED]** Corresponds to
                      SCTE-35 no_regional_blackout_flag parameter.

                      - **WebDeliveryAllowedFlag** *(string) --* **[REQUIRED]** Corresponds to
                      SCTE-35 web_delivery_allowed_flag parameter.

                    - **SegmentNum** *(integer) --* Corresponds to SCTE-35 segment_num. A value that
                    is valid for the specified segmentation_type_id.

                    - **SegmentationCancelIndicator** *(string) --* **[REQUIRED]** Corresponds to
                    SCTE-35 segmentation_event_cancel_indicator.

                    - **SegmentationDuration** *(integer) --* Corresponds to SCTE-35
                    segmentation_duration. Optional. The duration for the time_signal, in 90 KHz
                    ticks. To convert seconds to ticks, multiple the seconds by 90,000. Enter time
                    in 90 KHz clock ticks. If you do not enter a duration, the time_signal will
                    continue until you insert a cancellation message.

                    - **SegmentationEventId** *(integer) --* **[REQUIRED]** Corresponds to SCTE-35
                    segmentation_event_id.

                    - **SegmentationTypeId** *(integer) --* Corresponds to SCTE-35
                    segmentation_type_id. One of the segmentation_type_id values listed in the
                    SCTE-35 specification. On the console, enter the ID in decimal (for example,
                    "52"). In the CLI, API, or an SDK, enter the ID in hex (for example, "0x34") or
                    decimal (for example, "52").

                    - **SegmentationUpid** *(string) --* Corresponds to SCTE-35 segmentation_upid.
                    Enter a string containing the hexadecimal representation of the characters that
                    make up the SCTE-35 segmentation_upid value. Must contain an even number of hex
                    characters. Do not include spaces between each hex pair. For example, the ASCII
                    "ADS Information" becomes hex "41445320496e666f726d6174696f6e.

                    - **SegmentationUpidType** *(integer) --* Corresponds to SCTE-35
                    segmentation_upid_type. On the console, enter one of the types listed in the
                    SCTE-35 specification, converted to a decimal. For example, "0x0C" hex from the
                    specification is "12" in decimal. In the CLI, API, or an SDK, enter one of the
                    types listed in the SCTE-35 specification, in either hex (for example, "0x0C" )
                    or in decimal (for example, "12").

                    - **SegmentsExpected** *(integer) --* Corresponds to SCTE-35 segments_expected.
                    A value that is valid for the specified segmentation_type_id.

                    - **SubSegmentNum** *(integer) --* Corresponds to SCTE-35 sub_segment_num. A
                    value that is valid for the specified segmentation_type_id.

                    - **SubSegmentsExpected** *(integer) --* Corresponds to SCTE-35
                    sub_segments_expected. A value that is valid for the specified
                    segmentation_type_id.

          - **StaticImageActivateSettings** *(dict) --* Action to activate a static image overlay

            - **Duration** *(integer) --* The duration in milliseconds for the image to remain on
            the video. If omitted or set to 0 the duration is unlimited and the image will remain
            until it is explicitly deactivated.

            - **FadeIn** *(integer) --* The time in milliseconds for the image to fade in. The
            fade-in starts at the start time of the overlay. Default is 0 (no fade-in).

            - **FadeOut** *(integer) --* Applies only if a duration is specified. The time in
            milliseconds for the image to fade out. The fade-out starts when the duration time is
            hit, so it effectively extends the duration. Default is 0 (no fade-out).

            - **Height** *(integer) --* The height of the image when inserted into the video, in
            pixels. The overlay will be scaled up or down to the specified height. Leave blank to
            use the native height of the overlay.

            - **Image** *(dict) --* **[REQUIRED]** The location and filename of the image file to
            overlay on the video. The file must be a 32-bit BMP, PNG, or TGA file, and must not be
            larger (in pixels) than the input video.

              - **PasswordParam** *(string) --* key used to extract the password from EC2 Parameter
              store

              - **Uri** *(string) --* **[REQUIRED]** Uniform Resource Identifier - This should be a
              path to a file accessible to the Live system (eg. a http:// URI) depending on the
              output type. For example, a RTMP destination should have a uri simliar to:
              "rtmp://fmsserver/live".

              - **Username** *(string) --* Documentation update needed

            - **ImageX** *(integer) --* Placement of the left edge of the overlay relative to the
            left edge of the video frame, in pixels. 0 (the default) is the left edge of the frame.
            If the placement causes the overlay to extend beyond the right edge of the underlying
            video, then the overlay is cropped on the right.

            - **ImageY** *(integer) --* Placement of the top edge of the overlay relative to the top
            edge of the video frame, in pixels. 0 (the default) is the top edge of the frame. If the
            placement causes the overlay to extend beyond the bottom edge of the underlying video,
            then the overlay is cropped on the bottom.

            - **Layer** *(integer) --* The number of the layer, 0 to 7. There are 8 layers that can
            be overlaid on the video, each layer with a different image. The layers are in Z order,
            which means that overlays with higher values of layer are inserted on top of overlays
            with lower values of layer. Default is 0.

            - **Opacity** *(integer) --* Opacity of image where 0 is transparent and 100 is fully
            opaque. Default is 100.

            - **Width** *(integer) --* The width of the image when inserted into the video, in
            pixels. The overlay will be scaled up or down to the specified width. Leave blank to use
            the native width of the overlay.

          - **StaticImageDeactivateSettings** *(dict) --* Action to deactivate a static image
          overlay

            - **FadeOut** *(integer) --* The time in milliseconds for the image to fade out. Default
            is 0 (no fade-out).

            - **Layer** *(integer) --* The image overlay layer to deactivate, 0 to 7. Default is 0.

        - **ScheduleActionStartSettings** *(dict) --* **[REQUIRED]** The time for the action to
        start in the channel.

          - **FixedModeScheduleActionStartSettings** *(dict) --* Option for specifying the start
          time for an action.

            - **Time** *(string) --* **[REQUIRED]** Start time for the action to start in the
            channel. (Not the time for the action to be added to the schedule: actions are always
            added to the schedule immediately.) UTC format: yyyy-mm-ddThh:mm:ss.nnnZ. All the
            letters are digits (for example, mm might be 01) except for the two constants "T" for
            time and "Z" for "UTC format".

          - **FollowModeScheduleActionStartSettings** *(dict) --* Option for specifying an action as
          relative to another action.

            - **FollowPoint** *(string) --* **[REQUIRED]** Identifies whether this action starts
            relative to the start or relative to the end of the reference action.

            - **ReferenceActionName** *(string) --* **[REQUIRED]** The action name of another action
            that this one refers to.

          - **ImmediateModeScheduleActionStartSettings** *(dict) --* Option for specifying an action
          that should be applied immediately.
    """


_ClientBatchUpdateScheduleDeletesTypeDef = TypedDict(
    "_ClientBatchUpdateScheduleDeletesTypeDef", {"ActionNames": List[str]}
)


class ClientBatchUpdateScheduleDeletesTypeDef(_ClientBatchUpdateScheduleDeletesTypeDef):
    """
    Type definition for `ClientBatchUpdateSchedule` `Deletes`

    - **ActionNames** *(list) --* **[REQUIRED]** A list of schedule actions to delete.

      - *(string) --* Placeholder documentation for __string
    """


_ClientBatchUpdateScheduleResponseCreatesScheduleActionsScheduleActionSettingsHlsTimedMetadataSettingsTypeDef = TypedDict(
    "_ClientBatchUpdateScheduleResponseCreatesScheduleActionsScheduleActionSettingsHlsTimedMetadataSettingsTypeDef",
    {"Id3": str},
    total=False,
)


class ClientBatchUpdateScheduleResponseCreatesScheduleActionsScheduleActionSettingsHlsTimedMetadataSettingsTypeDef(
    _ClientBatchUpdateScheduleResponseCreatesScheduleActionsScheduleActionSettingsHlsTimedMetadataSettingsTypeDef
):
    """
    Type definition for
    `ClientBatchUpdateScheduleResponseCreatesScheduleActionsScheduleActionSettings`
    `HlsTimedMetadataSettings`

    - **Id3** *(string) --* Base64 string formatted according to the ID3 specification:
    http://id3.org/id3v2.4.0-structure
    """


_ClientBatchUpdateScheduleResponseCreatesScheduleActionsScheduleActionSettingsInputSwitchSettingsInputClippingSettingsStartTimecodeTypeDef = TypedDict(
    "_ClientBatchUpdateScheduleResponseCreatesScheduleActionsScheduleActionSettingsInputSwitchSettingsInputClippingSettingsStartTimecodeTypeDef",
    {"Timecode": str},
    total=False,
)


class ClientBatchUpdateScheduleResponseCreatesScheduleActionsScheduleActionSettingsInputSwitchSettingsInputClippingSettingsStartTimecodeTypeDef(
    _ClientBatchUpdateScheduleResponseCreatesScheduleActionsScheduleActionSettingsInputSwitchSettingsInputClippingSettingsStartTimecodeTypeDef
):
    """
    Type definition for
    `ClientBatchUpdateScheduleResponseCreatesScheduleActionsScheduleActionSettingsInputSwitchSettingsInputClippingSettings`
    `StartTimecode`

    - **Timecode** *(string) --* The timecode for the frame where you want to start the clip.
    Optional; if not specified, the clip starts at first frame in the file. Enter the timecode as
    HH:MM:SS:FF or HH:MM:SS;FF.
    """


_ClientBatchUpdateScheduleResponseCreatesScheduleActionsScheduleActionSettingsInputSwitchSettingsInputClippingSettingsStopTimecodeTypeDef = TypedDict(
    "_ClientBatchUpdateScheduleResponseCreatesScheduleActionsScheduleActionSettingsInputSwitchSettingsInputClippingSettingsStopTimecodeTypeDef",
    {"LastFrameClippingBehavior": str, "Timecode": str},
    total=False,
)


class ClientBatchUpdateScheduleResponseCreatesScheduleActionsScheduleActionSettingsInputSwitchSettingsInputClippingSettingsStopTimecodeTypeDef(
    _ClientBatchUpdateScheduleResponseCreatesScheduleActionsScheduleActionSettingsInputSwitchSettingsInputClippingSettingsStopTimecodeTypeDef
):
    """
    Type definition for
    `ClientBatchUpdateScheduleResponseCreatesScheduleActionsScheduleActionSettingsInputSwitchSettingsInputClippingSettings`
    `StopTimecode`

    - **LastFrameClippingBehavior** *(string) --* If you specify a StopTimecode in an input (in
    order to clip the file), you can specify if you want the clip to exclude (the default) or
    include the frame specified by the timecode.

    - **Timecode** *(string) --* The timecode for the frame where you want to stop the clip.
    Optional; if not specified, the clip continues to the end of the file. Enter the timecode as
    HH:MM:SS:FF or HH:MM:SS;FF.
    """


_ClientBatchUpdateScheduleResponseCreatesScheduleActionsScheduleActionSettingsInputSwitchSettingsInputClippingSettingsTypeDef = TypedDict(
    "_ClientBatchUpdateScheduleResponseCreatesScheduleActionsScheduleActionSettingsInputSwitchSettingsInputClippingSettingsTypeDef",
    {
        "InputTimecodeSource": str,
        "StartTimecode": ClientBatchUpdateScheduleResponseCreatesScheduleActionsScheduleActionSettingsInputSwitchSettingsInputClippingSettingsStartTimecodeTypeDef,
        "StopTimecode": ClientBatchUpdateScheduleResponseCreatesScheduleActionsScheduleActionSettingsInputSwitchSettingsInputClippingSettingsStopTimecodeTypeDef,
    },
    total=False,
)


class ClientBatchUpdateScheduleResponseCreatesScheduleActionsScheduleActionSettingsInputSwitchSettingsInputClippingSettingsTypeDef(
    _ClientBatchUpdateScheduleResponseCreatesScheduleActionsScheduleActionSettingsInputSwitchSettingsInputClippingSettingsTypeDef
):
    """
    Type definition for
    `ClientBatchUpdateScheduleResponseCreatesScheduleActionsScheduleActionSettingsInputSwitchSettings`
    `InputClippingSettings`

    - **InputTimecodeSource** *(string) --* The source of the timecodes in the source being clipped.

    - **StartTimecode** *(dict) --* Settings to identify the start of the clip.

      - **Timecode** *(string) --* The timecode for the frame where you want to start the clip.
      Optional; if not specified, the clip starts at first frame in the file. Enter the timecode as
      HH:MM:SS:FF or HH:MM:SS;FF.

    - **StopTimecode** *(dict) --* Settings to identify the end of the clip.

      - **LastFrameClippingBehavior** *(string) --* If you specify a StopTimecode in an input (in
      order to clip the file), you can specify if you want the clip to exclude (the default) or
      include the frame specified by the timecode.

      - **Timecode** *(string) --* The timecode for the frame where you want to stop the clip.
      Optional; if not specified, the clip continues to the end of the file. Enter the timecode as
      HH:MM:SS:FF or HH:MM:SS;FF.
    """


_ClientBatchUpdateScheduleResponseCreatesScheduleActionsScheduleActionSettingsInputSwitchSettingsTypeDef = TypedDict(
    "_ClientBatchUpdateScheduleResponseCreatesScheduleActionsScheduleActionSettingsInputSwitchSettingsTypeDef",
    {
        "InputAttachmentNameReference": str,
        "InputClippingSettings": ClientBatchUpdateScheduleResponseCreatesScheduleActionsScheduleActionSettingsInputSwitchSettingsInputClippingSettingsTypeDef,
        "UrlPath": List[str],
    },
    total=False,
)


class ClientBatchUpdateScheduleResponseCreatesScheduleActionsScheduleActionSettingsInputSwitchSettingsTypeDef(
    _ClientBatchUpdateScheduleResponseCreatesScheduleActionsScheduleActionSettingsInputSwitchSettingsTypeDef
):
    """
    Type definition for
    `ClientBatchUpdateScheduleResponseCreatesScheduleActionsScheduleActionSettings`
    `InputSwitchSettings`

    - **InputAttachmentNameReference** *(string) --* The name of the input attachment (not the name
    of the input!) to switch to. The name is specified in the channel configuration.

    - **InputClippingSettings** *(dict) --* Settings to let you create a clip of the file input, in
    order to set up the input to ingest only a portion of the file.

      - **InputTimecodeSource** *(string) --* The source of the timecodes in the source being
      clipped.

      - **StartTimecode** *(dict) --* Settings to identify the start of the clip.

        - **Timecode** *(string) --* The timecode for the frame where you want to start the clip.
        Optional; if not specified, the clip starts at first frame in the file. Enter the timecode
        as HH:MM:SS:FF or HH:MM:SS;FF.

      - **StopTimecode** *(dict) --* Settings to identify the end of the clip.

        - **LastFrameClippingBehavior** *(string) --* If you specify a StopTimecode in an input (in
        order to clip the file), you can specify if you want the clip to exclude (the default) or
        include the frame specified by the timecode.

        - **Timecode** *(string) --* The timecode for the frame where you want to stop the clip.
        Optional; if not specified, the clip continues to the end of the file. Enter the timecode as
        HH:MM:SS:FF or HH:MM:SS;FF.

    - **UrlPath** *(list) --* The value for the variable portion of the URL for the dynamic input,
    for this instance of the input. Each time you use the same dynamic input in an input switch
    action, you can provide a different value, in order to connect the input to a different content
    source.

      - *(string) --* Placeholder documentation for __string
    """


_ClientBatchUpdateScheduleResponseCreatesScheduleActionsScheduleActionSettingsPauseStateSettingsPipelinesTypeDef = TypedDict(
    "_ClientBatchUpdateScheduleResponseCreatesScheduleActionsScheduleActionSettingsPauseStateSettingsPipelinesTypeDef",
    {"PipelineId": str},
    total=False,
)


class ClientBatchUpdateScheduleResponseCreatesScheduleActionsScheduleActionSettingsPauseStateSettingsPipelinesTypeDef(
    _ClientBatchUpdateScheduleResponseCreatesScheduleActionsScheduleActionSettingsPauseStateSettingsPipelinesTypeDef
):
    """
    Type definition for
    `ClientBatchUpdateScheduleResponseCreatesScheduleActionsScheduleActionSettingsPauseStateSettings`
    `Pipelines`

    - **PipelineId** *(string) --* Pipeline ID to pause ("PIPELINE_0" or "PIPELINE_1").
    """


_ClientBatchUpdateScheduleResponseCreatesScheduleActionsScheduleActionSettingsPauseStateSettingsTypeDef = TypedDict(
    "_ClientBatchUpdateScheduleResponseCreatesScheduleActionsScheduleActionSettingsPauseStateSettingsTypeDef",
    {
        "Pipelines": List[
            ClientBatchUpdateScheduleResponseCreatesScheduleActionsScheduleActionSettingsPauseStateSettingsPipelinesTypeDef
        ]
    },
    total=False,
)


class ClientBatchUpdateScheduleResponseCreatesScheduleActionsScheduleActionSettingsPauseStateSettingsTypeDef(
    _ClientBatchUpdateScheduleResponseCreatesScheduleActionsScheduleActionSettingsPauseStateSettingsTypeDef
):
    """
    Type definition for
    `ClientBatchUpdateScheduleResponseCreatesScheduleActionsScheduleActionSettings`
    `PauseStateSettings`

    - **Pipelines** *(list) --* Placeholder documentation for __listOfPipelinePauseStateSettings

      - *(dict) --* Settings for pausing a pipeline.

        - **PipelineId** *(string) --* Pipeline ID to pause ("PIPELINE_0" or "PIPELINE_1").
    """


_ClientBatchUpdateScheduleResponseCreatesScheduleActionsScheduleActionSettingsScte35ReturnToNetworkSettingsTypeDef = TypedDict(
    "_ClientBatchUpdateScheduleResponseCreatesScheduleActionsScheduleActionSettingsScte35ReturnToNetworkSettingsTypeDef",
    {"SpliceEventId": int},
    total=False,
)


class ClientBatchUpdateScheduleResponseCreatesScheduleActionsScheduleActionSettingsScte35ReturnToNetworkSettingsTypeDef(
    _ClientBatchUpdateScheduleResponseCreatesScheduleActionsScheduleActionSettingsScte35ReturnToNetworkSettingsTypeDef
):
    """
    Type definition for
    `ClientBatchUpdateScheduleResponseCreatesScheduleActionsScheduleActionSettings`
    `Scte35ReturnToNetworkSettings`

    - **SpliceEventId** *(integer) --* The splice_event_id for the SCTE-35 splice_insert, as defined
    in SCTE-35.
    """


_ClientBatchUpdateScheduleResponseCreatesScheduleActionsScheduleActionSettingsScte35SpliceInsertSettingsTypeDef = TypedDict(
    "_ClientBatchUpdateScheduleResponseCreatesScheduleActionsScheduleActionSettingsScte35SpliceInsertSettingsTypeDef",
    {"Duration": int, "SpliceEventId": int},
    total=False,
)


class ClientBatchUpdateScheduleResponseCreatesScheduleActionsScheduleActionSettingsScte35SpliceInsertSettingsTypeDef(
    _ClientBatchUpdateScheduleResponseCreatesScheduleActionsScheduleActionSettingsScte35SpliceInsertSettingsTypeDef
):
    """
    Type definition for
    `ClientBatchUpdateScheduleResponseCreatesScheduleActionsScheduleActionSettings`
    `Scte35SpliceInsertSettings`

    - **Duration** *(integer) --* Optional, the duration for the splice_insert, in 90 KHz ticks. To
    convert seconds to ticks, multiple the seconds by 90,000. If you enter a duration, there is an
    expectation that the downstream system can read the duration and cue in at that time. If you do
    not enter a duration, the splice_insert will continue indefinitely and there is an expectation
    that you will enter a return_to_network to end the splice_insert at the appropriate time.

    - **SpliceEventId** *(integer) --* The splice_event_id for the SCTE-35 splice_insert, as defined
    in SCTE-35.
    """


_ClientBatchUpdateScheduleResponseCreatesScheduleActionsScheduleActionSettingsScte35TimeSignalSettingsScte35DescriptorsScte35DescriptorSettingsSegmentationDescriptorScte35DescriptorSettingsDeliveryRestrictionsTypeDef = TypedDict(
    "_ClientBatchUpdateScheduleResponseCreatesScheduleActionsScheduleActionSettingsScte35TimeSignalSettingsScte35DescriptorsScte35DescriptorSettingsSegmentationDescriptorScte35DescriptorSettingsDeliveryRestrictionsTypeDef",
    {
        "ArchiveAllowedFlag": str,
        "DeviceRestrictions": str,
        "NoRegionalBlackoutFlag": str,
        "WebDeliveryAllowedFlag": str,
    },
    total=False,
)


class ClientBatchUpdateScheduleResponseCreatesScheduleActionsScheduleActionSettingsScte35TimeSignalSettingsScte35DescriptorsScte35DescriptorSettingsSegmentationDescriptorScte35DescriptorSettingsDeliveryRestrictionsTypeDef(
    _ClientBatchUpdateScheduleResponseCreatesScheduleActionsScheduleActionSettingsScte35TimeSignalSettingsScte35DescriptorsScte35DescriptorSettingsSegmentationDescriptorScte35DescriptorSettingsDeliveryRestrictionsTypeDef
):
    """
    Type definition for
    `ClientBatchUpdateScheduleResponseCreatesScheduleActionsScheduleActionSettingsScte35TimeSignalSettingsScte35DescriptorsScte35DescriptorSettingsSegmentationDescriptorScte35DescriptorSettings`
    `DeliveryRestrictions`

    - **ArchiveAllowedFlag** *(string) --* Corresponds to SCTE-35 archive_allowed_flag.

    - **DeviceRestrictions** *(string) --* Corresponds to SCTE-35 device_restrictions parameter.

    - **NoRegionalBlackoutFlag** *(string) --* Corresponds to SCTE-35 no_regional_blackout_flag
    parameter.

    - **WebDeliveryAllowedFlag** *(string) --* Corresponds to SCTE-35 web_delivery_allowed_flag
    parameter.
    """


_ClientBatchUpdateScheduleResponseCreatesScheduleActionsScheduleActionSettingsScte35TimeSignalSettingsScte35DescriptorsScte35DescriptorSettingsSegmentationDescriptorScte35DescriptorSettingsTypeDef = TypedDict(
    "_ClientBatchUpdateScheduleResponseCreatesScheduleActionsScheduleActionSettingsScte35TimeSignalSettingsScte35DescriptorsScte35DescriptorSettingsSegmentationDescriptorScte35DescriptorSettingsTypeDef",
    {
        "DeliveryRestrictions": ClientBatchUpdateScheduleResponseCreatesScheduleActionsScheduleActionSettingsScte35TimeSignalSettingsScte35DescriptorsScte35DescriptorSettingsSegmentationDescriptorScte35DescriptorSettingsDeliveryRestrictionsTypeDef,
        "SegmentNum": int,
        "SegmentationCancelIndicator": str,
        "SegmentationDuration": int,
        "SegmentationEventId": int,
        "SegmentationTypeId": int,
        "SegmentationUpid": str,
        "SegmentationUpidType": int,
        "SegmentsExpected": int,
        "SubSegmentNum": int,
        "SubSegmentsExpected": int,
    },
    total=False,
)


class ClientBatchUpdateScheduleResponseCreatesScheduleActionsScheduleActionSettingsScte35TimeSignalSettingsScte35DescriptorsScte35DescriptorSettingsSegmentationDescriptorScte35DescriptorSettingsTypeDef(
    _ClientBatchUpdateScheduleResponseCreatesScheduleActionsScheduleActionSettingsScte35TimeSignalSettingsScte35DescriptorsScte35DescriptorSettingsSegmentationDescriptorScte35DescriptorSettingsTypeDef
):
    """
    Type definition for
    `ClientBatchUpdateScheduleResponseCreatesScheduleActionsScheduleActionSettingsScte35TimeSignalSettingsScte35DescriptorsScte35DescriptorSettings`
    `SegmentationDescriptorScte35DescriptorSettings`

    - **DeliveryRestrictions** *(dict) --* Holds the four SCTE-35 delivery restriction parameters.

      - **ArchiveAllowedFlag** *(string) --* Corresponds to SCTE-35 archive_allowed_flag.

      - **DeviceRestrictions** *(string) --* Corresponds to SCTE-35 device_restrictions parameter.

      - **NoRegionalBlackoutFlag** *(string) --* Corresponds to SCTE-35 no_regional_blackout_flag
      parameter.

      - **WebDeliveryAllowedFlag** *(string) --* Corresponds to SCTE-35 web_delivery_allowed_flag
      parameter.

    - **SegmentNum** *(integer) --* Corresponds to SCTE-35 segment_num. A value that is valid for
    the specified segmentation_type_id.

    - **SegmentationCancelIndicator** *(string) --* Corresponds to SCTE-35
    segmentation_event_cancel_indicator.

    - **SegmentationDuration** *(integer) --* Corresponds to SCTE-35 segmentation_duration.
    Optional. The duration for the time_signal, in 90 KHz ticks. To convert seconds to ticks,
    multiple the seconds by 90,000. Enter time in 90 KHz clock ticks. If you do not enter a
    duration, the time_signal will continue until you insert a cancellation message.

    - **SegmentationEventId** *(integer) --* Corresponds to SCTE-35 segmentation_event_id.

    - **SegmentationTypeId** *(integer) --* Corresponds to SCTE-35 segmentation_type_id. One of the
    segmentation_type_id values listed in the SCTE-35 specification. On the console, enter the ID in
    decimal (for example, "52"). In the CLI, API, or an SDK, enter the ID in hex (for example,
    "0x34") or decimal (for example, "52").

    - **SegmentationUpid** *(string) --* Corresponds to SCTE-35 segmentation_upid. Enter a string
    containing the hexadecimal representation of the characters that make up the SCTE-35
    segmentation_upid value. Must contain an even number of hex characters. Do not include spaces
    between each hex pair. For example, the ASCII "ADS Information" becomes hex
    "41445320496e666f726d6174696f6e.

    - **SegmentationUpidType** *(integer) --* Corresponds to SCTE-35 segmentation_upid_type. On the
    console, enter one of the types listed in the SCTE-35 specification, converted to a decimal. For
    example, "0x0C" hex from the specification is "12" in decimal. In the CLI, API, or an SDK, enter
    one of the types listed in the SCTE-35 specification, in either hex (for example, "0x0C" ) or in
    decimal (for example, "12").

    - **SegmentsExpected** *(integer) --* Corresponds to SCTE-35 segments_expected. A value that is
    valid for the specified segmentation_type_id.

    - **SubSegmentNum** *(integer) --* Corresponds to SCTE-35 sub_segment_num. A value that is valid
    for the specified segmentation_type_id.

    - **SubSegmentsExpected** *(integer) --* Corresponds to SCTE-35 sub_segments_expected. A value
    that is valid for the specified segmentation_type_id.
    """


_ClientBatchUpdateScheduleResponseCreatesScheduleActionsScheduleActionSettingsScte35TimeSignalSettingsScte35DescriptorsScte35DescriptorSettingsTypeDef = TypedDict(
    "_ClientBatchUpdateScheduleResponseCreatesScheduleActionsScheduleActionSettingsScte35TimeSignalSettingsScte35DescriptorsScte35DescriptorSettingsTypeDef",
    {
        "SegmentationDescriptorScte35DescriptorSettings": ClientBatchUpdateScheduleResponseCreatesScheduleActionsScheduleActionSettingsScte35TimeSignalSettingsScte35DescriptorsScte35DescriptorSettingsSegmentationDescriptorScte35DescriptorSettingsTypeDef
    },
    total=False,
)


class ClientBatchUpdateScheduleResponseCreatesScheduleActionsScheduleActionSettingsScte35TimeSignalSettingsScte35DescriptorsScte35DescriptorSettingsTypeDef(
    _ClientBatchUpdateScheduleResponseCreatesScheduleActionsScheduleActionSettingsScte35TimeSignalSettingsScte35DescriptorsScte35DescriptorSettingsTypeDef
):
    """
    Type definition for
    `ClientBatchUpdateScheduleResponseCreatesScheduleActionsScheduleActionSettingsScte35TimeSignalSettingsScte35Descriptors`
    `Scte35DescriptorSettings`

    - **SegmentationDescriptorScte35DescriptorSettings** *(dict) --* SCTE-35 Segmentation
    Descriptor.

      - **DeliveryRestrictions** *(dict) --* Holds the four SCTE-35 delivery restriction parameters.

        - **ArchiveAllowedFlag** *(string) --* Corresponds to SCTE-35 archive_allowed_flag.

        - **DeviceRestrictions** *(string) --* Corresponds to SCTE-35 device_restrictions parameter.

        - **NoRegionalBlackoutFlag** *(string) --* Corresponds to SCTE-35 no_regional_blackout_flag
        parameter.

        - **WebDeliveryAllowedFlag** *(string) --* Corresponds to SCTE-35 web_delivery_allowed_flag
        parameter.

      - **SegmentNum** *(integer) --* Corresponds to SCTE-35 segment_num. A value that is valid for
      the specified segmentation_type_id.

      - **SegmentationCancelIndicator** *(string) --* Corresponds to SCTE-35
      segmentation_event_cancel_indicator.

      - **SegmentationDuration** *(integer) --* Corresponds to SCTE-35 segmentation_duration.
      Optional. The duration for the time_signal, in 90 KHz ticks. To convert seconds to ticks,
      multiple the seconds by 90,000. Enter time in 90 KHz clock ticks. If you do not enter a
      duration, the time_signal will continue until you insert a cancellation message.

      - **SegmentationEventId** *(integer) --* Corresponds to SCTE-35 segmentation_event_id.

      - **SegmentationTypeId** *(integer) --* Corresponds to SCTE-35 segmentation_type_id. One of
      the segmentation_type_id values listed in the SCTE-35 specification. On the console, enter the
      ID in decimal (for example, "52"). In the CLI, API, or an SDK, enter the ID in hex (for
      example, "0x34") or decimal (for example, "52").

      - **SegmentationUpid** *(string) --* Corresponds to SCTE-35 segmentation_upid. Enter a string
      containing the hexadecimal representation of the characters that make up the SCTE-35
      segmentation_upid value. Must contain an even number of hex characters. Do not include spaces
      between each hex pair. For example, the ASCII "ADS Information" becomes hex
      "41445320496e666f726d6174696f6e.

      - **SegmentationUpidType** *(integer) --* Corresponds to SCTE-35 segmentation_upid_type. On
      the console, enter one of the types listed in the SCTE-35 specification, converted to a
      decimal. For example, "0x0C" hex from the specification is "12" in decimal. In the CLI, API,
      or an SDK, enter one of the types listed in the SCTE-35 specification, in either hex (for
      example, "0x0C" ) or in decimal (for example, "12").

      - **SegmentsExpected** *(integer) --* Corresponds to SCTE-35 segments_expected. A value that
      is valid for the specified segmentation_type_id.

      - **SubSegmentNum** *(integer) --* Corresponds to SCTE-35 sub_segment_num. A value that is
      valid for the specified segmentation_type_id.

      - **SubSegmentsExpected** *(integer) --* Corresponds to SCTE-35 sub_segments_expected. A value
      that is valid for the specified segmentation_type_id.
    """


_ClientBatchUpdateScheduleResponseCreatesScheduleActionsScheduleActionSettingsScte35TimeSignalSettingsScte35DescriptorsTypeDef = TypedDict(
    "_ClientBatchUpdateScheduleResponseCreatesScheduleActionsScheduleActionSettingsScte35TimeSignalSettingsScte35DescriptorsTypeDef",
    {
        "Scte35DescriptorSettings": ClientBatchUpdateScheduleResponseCreatesScheduleActionsScheduleActionSettingsScte35TimeSignalSettingsScte35DescriptorsScte35DescriptorSettingsTypeDef
    },
    total=False,
)


class ClientBatchUpdateScheduleResponseCreatesScheduleActionsScheduleActionSettingsScte35TimeSignalSettingsScte35DescriptorsTypeDef(
    _ClientBatchUpdateScheduleResponseCreatesScheduleActionsScheduleActionSettingsScte35TimeSignalSettingsScte35DescriptorsTypeDef
):
    """
    Type definition for
    `ClientBatchUpdateScheduleResponseCreatesScheduleActionsScheduleActionSettingsScte35TimeSignalSettings`
    `Scte35Descriptors`

    - **Scte35DescriptorSettings** *(dict) --* SCTE-35 Descriptor Settings.

      - **SegmentationDescriptorScte35DescriptorSettings** *(dict) --* SCTE-35 Segmentation
      Descriptor.

        - **DeliveryRestrictions** *(dict) --* Holds the four SCTE-35 delivery restriction
        parameters.

          - **ArchiveAllowedFlag** *(string) --* Corresponds to SCTE-35 archive_allowed_flag.

          - **DeviceRestrictions** *(string) --* Corresponds to SCTE-35 device_restrictions
          parameter.

          - **NoRegionalBlackoutFlag** *(string) --* Corresponds to SCTE-35
          no_regional_blackout_flag parameter.

          - **WebDeliveryAllowedFlag** *(string) --* Corresponds to SCTE-35
          web_delivery_allowed_flag parameter.

        - **SegmentNum** *(integer) --* Corresponds to SCTE-35 segment_num. A value that is valid
        for the specified segmentation_type_id.

        - **SegmentationCancelIndicator** *(string) --* Corresponds to SCTE-35
        segmentation_event_cancel_indicator.

        - **SegmentationDuration** *(integer) --* Corresponds to SCTE-35 segmentation_duration.
        Optional. The duration for the time_signal, in 90 KHz ticks. To convert seconds to ticks,
        multiple the seconds by 90,000. Enter time in 90 KHz clock ticks. If you do not enter a
        duration, the time_signal will continue until you insert a cancellation message.

        - **SegmentationEventId** *(integer) --* Corresponds to SCTE-35 segmentation_event_id.

        - **SegmentationTypeId** *(integer) --* Corresponds to SCTE-35 segmentation_type_id. One of
        the segmentation_type_id values listed in the SCTE-35 specification. On the console, enter
        the ID in decimal (for example, "52"). In the CLI, API, or an SDK, enter the ID in hex (for
        example, "0x34") or decimal (for example, "52").

        - **SegmentationUpid** *(string) --* Corresponds to SCTE-35 segmentation_upid. Enter a
        string containing the hexadecimal representation of the characters that make up the SCTE-35
        segmentation_upid value. Must contain an even number of hex characters. Do not include
        spaces between each hex pair. For example, the ASCII "ADS Information" becomes hex
        "41445320496e666f726d6174696f6e.

        - **SegmentationUpidType** *(integer) --* Corresponds to SCTE-35 segmentation_upid_type. On
        the console, enter one of the types listed in the SCTE-35 specification, converted to a
        decimal. For example, "0x0C" hex from the specification is "12" in decimal. In the CLI, API,
        or an SDK, enter one of the types listed in the SCTE-35 specification, in either hex (for
        example, "0x0C" ) or in decimal (for example, "12").

        - **SegmentsExpected** *(integer) --* Corresponds to SCTE-35 segments_expected. A value that
        is valid for the specified segmentation_type_id.

        - **SubSegmentNum** *(integer) --* Corresponds to SCTE-35 sub_segment_num. A value that is
        valid for the specified segmentation_type_id.

        - **SubSegmentsExpected** *(integer) --* Corresponds to SCTE-35 sub_segments_expected. A
        value that is valid for the specified segmentation_type_id.
    """


_ClientBatchUpdateScheduleResponseCreatesScheduleActionsScheduleActionSettingsScte35TimeSignalSettingsTypeDef = TypedDict(
    "_ClientBatchUpdateScheduleResponseCreatesScheduleActionsScheduleActionSettingsScte35TimeSignalSettingsTypeDef",
    {
        "Scte35Descriptors": List[
            ClientBatchUpdateScheduleResponseCreatesScheduleActionsScheduleActionSettingsScte35TimeSignalSettingsScte35DescriptorsTypeDef
        ]
    },
    total=False,
)


class ClientBatchUpdateScheduleResponseCreatesScheduleActionsScheduleActionSettingsScte35TimeSignalSettingsTypeDef(
    _ClientBatchUpdateScheduleResponseCreatesScheduleActionsScheduleActionSettingsScte35TimeSignalSettingsTypeDef
):
    """
    Type definition for
    `ClientBatchUpdateScheduleResponseCreatesScheduleActionsScheduleActionSettings`
    `Scte35TimeSignalSettings`

    - **Scte35Descriptors** *(list) --* The list of SCTE-35 descriptors accompanying the SCTE-35
    time_signal.

      - *(dict) --* Holds one set of SCTE-35 Descriptor Settings.

        - **Scte35DescriptorSettings** *(dict) --* SCTE-35 Descriptor Settings.

          - **SegmentationDescriptorScte35DescriptorSettings** *(dict) --* SCTE-35 Segmentation
          Descriptor.

            - **DeliveryRestrictions** *(dict) --* Holds the four SCTE-35 delivery restriction
            parameters.

              - **ArchiveAllowedFlag** *(string) --* Corresponds to SCTE-35 archive_allowed_flag.

              - **DeviceRestrictions** *(string) --* Corresponds to SCTE-35 device_restrictions
              parameter.

              - **NoRegionalBlackoutFlag** *(string) --* Corresponds to SCTE-35
              no_regional_blackout_flag parameter.

              - **WebDeliveryAllowedFlag** *(string) --* Corresponds to SCTE-35
              web_delivery_allowed_flag parameter.

            - **SegmentNum** *(integer) --* Corresponds to SCTE-35 segment_num. A value that is
            valid for the specified segmentation_type_id.

            - **SegmentationCancelIndicator** *(string) --* Corresponds to SCTE-35
            segmentation_event_cancel_indicator.

            - **SegmentationDuration** *(integer) --* Corresponds to SCTE-35 segmentation_duration.
            Optional. The duration for the time_signal, in 90 KHz ticks. To convert seconds to
            ticks, multiple the seconds by 90,000. Enter time in 90 KHz clock ticks. If you do not
            enter a duration, the time_signal will continue until you insert a cancellation message.

            - **SegmentationEventId** *(integer) --* Corresponds to SCTE-35 segmentation_event_id.

            - **SegmentationTypeId** *(integer) --* Corresponds to SCTE-35 segmentation_type_id. One
            of the segmentation_type_id values listed in the SCTE-35 specification. On the console,
            enter the ID in decimal (for example, "52"). In the CLI, API, or an SDK, enter the ID in
            hex (for example, "0x34") or decimal (for example, "52").

            - **SegmentationUpid** *(string) --* Corresponds to SCTE-35 segmentation_upid. Enter a
            string containing the hexadecimal representation of the characters that make up the
            SCTE-35 segmentation_upid value. Must contain an even number of hex characters. Do not
            include spaces between each hex pair. For example, the ASCII "ADS Information" becomes
            hex "41445320496e666f726d6174696f6e.

            - **SegmentationUpidType** *(integer) --* Corresponds to SCTE-35 segmentation_upid_type.
            On the console, enter one of the types listed in the SCTE-35 specification, converted to
            a decimal. For example, "0x0C" hex from the specification is "12" in decimal. In the
            CLI, API, or an SDK, enter one of the types listed in the SCTE-35 specification, in
            either hex (for example, "0x0C" ) or in decimal (for example, "12").

            - **SegmentsExpected** *(integer) --* Corresponds to SCTE-35 segments_expected. A value
            that is valid for the specified segmentation_type_id.

            - **SubSegmentNum** *(integer) --* Corresponds to SCTE-35 sub_segment_num. A value that
            is valid for the specified segmentation_type_id.

            - **SubSegmentsExpected** *(integer) --* Corresponds to SCTE-35 sub_segments_expected. A
            value that is valid for the specified segmentation_type_id.
    """


_ClientBatchUpdateScheduleResponseCreatesScheduleActionsScheduleActionSettingsStaticImageActivateSettingsImageTypeDef = TypedDict(
    "_ClientBatchUpdateScheduleResponseCreatesScheduleActionsScheduleActionSettingsStaticImageActivateSettingsImageTypeDef",
    {"PasswordParam": str, "Uri": str, "Username": str},
    total=False,
)


class ClientBatchUpdateScheduleResponseCreatesScheduleActionsScheduleActionSettingsStaticImageActivateSettingsImageTypeDef(
    _ClientBatchUpdateScheduleResponseCreatesScheduleActionsScheduleActionSettingsStaticImageActivateSettingsImageTypeDef
):
    """
    Type definition for
    `ClientBatchUpdateScheduleResponseCreatesScheduleActionsScheduleActionSettingsStaticImageActivateSettings`
    `Image`

    - **PasswordParam** *(string) --* key used to extract the password from EC2 Parameter store

    - **Uri** *(string) --* Uniform Resource Identifier - This should be a path to a file accessible
    to the Live system (eg. a http:// URI) depending on the output type. For example, a RTMP
    destination should have a uri simliar to: "rtmp://fmsserver/live".

    - **Username** *(string) --* Documentation update needed
    """


_ClientBatchUpdateScheduleResponseCreatesScheduleActionsScheduleActionSettingsStaticImageActivateSettingsTypeDef = TypedDict(
    "_ClientBatchUpdateScheduleResponseCreatesScheduleActionsScheduleActionSettingsStaticImageActivateSettingsTypeDef",
    {
        "Duration": int,
        "FadeIn": int,
        "FadeOut": int,
        "Height": int,
        "Image": ClientBatchUpdateScheduleResponseCreatesScheduleActionsScheduleActionSettingsStaticImageActivateSettingsImageTypeDef,
        "ImageX": int,
        "ImageY": int,
        "Layer": int,
        "Opacity": int,
        "Width": int,
    },
    total=False,
)


class ClientBatchUpdateScheduleResponseCreatesScheduleActionsScheduleActionSettingsStaticImageActivateSettingsTypeDef(
    _ClientBatchUpdateScheduleResponseCreatesScheduleActionsScheduleActionSettingsStaticImageActivateSettingsTypeDef
):
    """
    Type definition for
    `ClientBatchUpdateScheduleResponseCreatesScheduleActionsScheduleActionSettings`
    `StaticImageActivateSettings`

    - **Duration** *(integer) --* The duration in milliseconds for the image to remain on the video.
    If omitted or set to 0 the duration is unlimited and the image will remain until it is
    explicitly deactivated.

    - **FadeIn** *(integer) --* The time in milliseconds for the image to fade in. The fade-in
    starts at the start time of the overlay. Default is 0 (no fade-in).

    - **FadeOut** *(integer) --* Applies only if a duration is specified. The time in milliseconds
    for the image to fade out. The fade-out starts when the duration time is hit, so it effectively
    extends the duration. Default is 0 (no fade-out).

    - **Height** *(integer) --* The height of the image when inserted into the video, in pixels. The
    overlay will be scaled up or down to the specified height. Leave blank to use the native height
    of the overlay.

    - **Image** *(dict) --* The location and filename of the image file to overlay on the video. The
    file must be a 32-bit BMP, PNG, or TGA file, and must not be larger (in pixels) than the input
    video.

      - **PasswordParam** *(string) --* key used to extract the password from EC2 Parameter store

      - **Uri** *(string) --* Uniform Resource Identifier - This should be a path to a file
      accessible to the Live system (eg. a http:// URI) depending on the output type. For example, a
      RTMP destination should have a uri simliar to: "rtmp://fmsserver/live".

      - **Username** *(string) --* Documentation update needed

    - **ImageX** *(integer) --* Placement of the left edge of the overlay relative to the left edge
    of the video frame, in pixels. 0 (the default) is the left edge of the frame. If the placement
    causes the overlay to extend beyond the right edge of the underlying video, then the overlay is
    cropped on the right.

    - **ImageY** *(integer) --* Placement of the top edge of the overlay relative to the top edge of
    the video frame, in pixels. 0 (the default) is the top edge of the frame. If the placement
    causes the overlay to extend beyond the bottom edge of the underlying video, then the overlay is
    cropped on the bottom.

    - **Layer** *(integer) --* The number of the layer, 0 to 7. There are 8 layers that can be
    overlaid on the video, each layer with a different image. The layers are in Z order, which means
    that overlays with higher values of layer are inserted on top of overlays with lower values of
    layer. Default is 0.

    - **Opacity** *(integer) --* Opacity of image where 0 is transparent and 100 is fully opaque.
    Default is 100.

    - **Width** *(integer) --* The width of the image when inserted into the video, in pixels. The
    overlay will be scaled up or down to the specified width. Leave blank to use the native width of
    the overlay.
    """


_ClientBatchUpdateScheduleResponseCreatesScheduleActionsScheduleActionSettingsStaticImageDeactivateSettingsTypeDef = TypedDict(
    "_ClientBatchUpdateScheduleResponseCreatesScheduleActionsScheduleActionSettingsStaticImageDeactivateSettingsTypeDef",
    {"FadeOut": int, "Layer": int},
    total=False,
)


class ClientBatchUpdateScheduleResponseCreatesScheduleActionsScheduleActionSettingsStaticImageDeactivateSettingsTypeDef(
    _ClientBatchUpdateScheduleResponseCreatesScheduleActionsScheduleActionSettingsStaticImageDeactivateSettingsTypeDef
):
    """
    Type definition for
    `ClientBatchUpdateScheduleResponseCreatesScheduleActionsScheduleActionSettings`
    `StaticImageDeactivateSettings`

    - **FadeOut** *(integer) --* The time in milliseconds for the image to fade out. Default is 0
    (no fade-out).

    - **Layer** *(integer) --* The image overlay layer to deactivate, 0 to 7. Default is 0.
    """


_ClientBatchUpdateScheduleResponseCreatesScheduleActionsScheduleActionSettingsTypeDef = TypedDict(
    "_ClientBatchUpdateScheduleResponseCreatesScheduleActionsScheduleActionSettingsTypeDef",
    {
        "HlsTimedMetadataSettings": ClientBatchUpdateScheduleResponseCreatesScheduleActionsScheduleActionSettingsHlsTimedMetadataSettingsTypeDef,
        "InputSwitchSettings": ClientBatchUpdateScheduleResponseCreatesScheduleActionsScheduleActionSettingsInputSwitchSettingsTypeDef,
        "PauseStateSettings": ClientBatchUpdateScheduleResponseCreatesScheduleActionsScheduleActionSettingsPauseStateSettingsTypeDef,
        "Scte35ReturnToNetworkSettings": ClientBatchUpdateScheduleResponseCreatesScheduleActionsScheduleActionSettingsScte35ReturnToNetworkSettingsTypeDef,
        "Scte35SpliceInsertSettings": ClientBatchUpdateScheduleResponseCreatesScheduleActionsScheduleActionSettingsScte35SpliceInsertSettingsTypeDef,
        "Scte35TimeSignalSettings": ClientBatchUpdateScheduleResponseCreatesScheduleActionsScheduleActionSettingsScte35TimeSignalSettingsTypeDef,
        "StaticImageActivateSettings": ClientBatchUpdateScheduleResponseCreatesScheduleActionsScheduleActionSettingsStaticImageActivateSettingsTypeDef,
        "StaticImageDeactivateSettings": ClientBatchUpdateScheduleResponseCreatesScheduleActionsScheduleActionSettingsStaticImageDeactivateSettingsTypeDef,
    },
    total=False,
)


class ClientBatchUpdateScheduleResponseCreatesScheduleActionsScheduleActionSettingsTypeDef(
    _ClientBatchUpdateScheduleResponseCreatesScheduleActionsScheduleActionSettingsTypeDef
):
    """
    Type definition for `ClientBatchUpdateScheduleResponseCreatesScheduleActions`
    `ScheduleActionSettings`

    - **HlsTimedMetadataSettings** *(dict) --* Action to insert HLS metadata

      - **Id3** *(string) --* Base64 string formatted according to the ID3 specification:
      http://id3.org/id3v2.4.0-structure

    - **InputSwitchSettings** *(dict) --* Action to switch the input

      - **InputAttachmentNameReference** *(string) --* The name of the input attachment (not the
      name of the input!) to switch to. The name is specified in the channel configuration.

      - **InputClippingSettings** *(dict) --* Settings to let you create a clip of the file input,
      in order to set up the input to ingest only a portion of the file.

        - **InputTimecodeSource** *(string) --* The source of the timecodes in the source being
        clipped.

        - **StartTimecode** *(dict) --* Settings to identify the start of the clip.

          - **Timecode** *(string) --* The timecode for the frame where you want to start the clip.
          Optional; if not specified, the clip starts at first frame in the file. Enter the timecode
          as HH:MM:SS:FF or HH:MM:SS;FF.

        - **StopTimecode** *(dict) --* Settings to identify the end of the clip.

          - **LastFrameClippingBehavior** *(string) --* If you specify a StopTimecode in an input
          (in order to clip the file), you can specify if you want the clip to exclude (the default)
          or include the frame specified by the timecode.

          - **Timecode** *(string) --* The timecode for the frame where you want to stop the clip.
          Optional; if not specified, the clip continues to the end of the file. Enter the timecode
          as HH:MM:SS:FF or HH:MM:SS;FF.

      - **UrlPath** *(list) --* The value for the variable portion of the URL for the dynamic input,
      for this instance of the input. Each time you use the same dynamic input in an input switch
      action, you can provide a different value, in order to connect the input to a different
      content source.

        - *(string) --* Placeholder documentation for __string

    - **PauseStateSettings** *(dict) --* Action to pause or unpause one or both channel pipelines

      - **Pipelines** *(list) --* Placeholder documentation for __listOfPipelinePauseStateSettings

        - *(dict) --* Settings for pausing a pipeline.

          - **PipelineId** *(string) --* Pipeline ID to pause ("PIPELINE_0" or "PIPELINE_1").

    - **Scte35ReturnToNetworkSettings** *(dict) --* Action to insert SCTE-35 return_to_network
    message

      - **SpliceEventId** *(integer) --* The splice_event_id for the SCTE-35 splice_insert, as
      defined in SCTE-35.

    - **Scte35SpliceInsertSettings** *(dict) --* Action to insert SCTE-35 splice_insert message

      - **Duration** *(integer) --* Optional, the duration for the splice_insert, in 90 KHz ticks.
      To convert seconds to ticks, multiple the seconds by 90,000. If you enter a duration, there is
      an expectation that the downstream system can read the duration and cue in at that time. If
      you do not enter a duration, the splice_insert will continue indefinitely and there is an
      expectation that you will enter a return_to_network to end the splice_insert at the
      appropriate time.

      - **SpliceEventId** *(integer) --* The splice_event_id for the SCTE-35 splice_insert, as
      defined in SCTE-35.

    - **Scte35TimeSignalSettings** *(dict) --* Action to insert SCTE-35 time_signal message

      - **Scte35Descriptors** *(list) --* The list of SCTE-35 descriptors accompanying the SCTE-35
      time_signal.

        - *(dict) --* Holds one set of SCTE-35 Descriptor Settings.

          - **Scte35DescriptorSettings** *(dict) --* SCTE-35 Descriptor Settings.

            - **SegmentationDescriptorScte35DescriptorSettings** *(dict) --* SCTE-35 Segmentation
            Descriptor.

              - **DeliveryRestrictions** *(dict) --* Holds the four SCTE-35 delivery restriction
              parameters.

                - **ArchiveAllowedFlag** *(string) --* Corresponds to SCTE-35 archive_allowed_flag.

                - **DeviceRestrictions** *(string) --* Corresponds to SCTE-35 device_restrictions
                parameter.

                - **NoRegionalBlackoutFlag** *(string) --* Corresponds to SCTE-35
                no_regional_blackout_flag parameter.

                - **WebDeliveryAllowedFlag** *(string) --* Corresponds to SCTE-35
                web_delivery_allowed_flag parameter.

              - **SegmentNum** *(integer) --* Corresponds to SCTE-35 segment_num. A value that is
              valid for the specified segmentation_type_id.

              - **SegmentationCancelIndicator** *(string) --* Corresponds to SCTE-35
              segmentation_event_cancel_indicator.

              - **SegmentationDuration** *(integer) --* Corresponds to SCTE-35
              segmentation_duration. Optional. The duration for the time_signal, in 90 KHz ticks. To
              convert seconds to ticks, multiple the seconds by 90,000. Enter time in 90 KHz clock
              ticks. If you do not enter a duration, the time_signal will continue until you insert
              a cancellation message.

              - **SegmentationEventId** *(integer) --* Corresponds to SCTE-35 segmentation_event_id.

              - **SegmentationTypeId** *(integer) --* Corresponds to SCTE-35 segmentation_type_id.
              One of the segmentation_type_id values listed in the SCTE-35 specification. On the
              console, enter the ID in decimal (for example, "52"). In the CLI, API, or an SDK,
              enter the ID in hex (for example, "0x34") or decimal (for example, "52").

              - **SegmentationUpid** *(string) --* Corresponds to SCTE-35 segmentation_upid. Enter a
              string containing the hexadecimal representation of the characters that make up the
              SCTE-35 segmentation_upid value. Must contain an even number of hex characters. Do not
              include spaces between each hex pair. For example, the ASCII "ADS Information" becomes
              hex "41445320496e666f726d6174696f6e.

              - **SegmentationUpidType** *(integer) --* Corresponds to SCTE-35
              segmentation_upid_type. On the console, enter one of the types listed in the SCTE-35
              specification, converted to a decimal. For example, "0x0C" hex from the specification
              is "12" in decimal. In the CLI, API, or an SDK, enter one of the types listed in the
              SCTE-35 specification, in either hex (for example, "0x0C" ) or in decimal (for
              example, "12").

              - **SegmentsExpected** *(integer) --* Corresponds to SCTE-35 segments_expected. A
              value that is valid for the specified segmentation_type_id.

              - **SubSegmentNum** *(integer) --* Corresponds to SCTE-35 sub_segment_num. A value
              that is valid for the specified segmentation_type_id.

              - **SubSegmentsExpected** *(integer) --* Corresponds to SCTE-35 sub_segments_expected.
              A value that is valid for the specified segmentation_type_id.

    - **StaticImageActivateSettings** *(dict) --* Action to activate a static image overlay

      - **Duration** *(integer) --* The duration in milliseconds for the image to remain on the
      video. If omitted or set to 0 the duration is unlimited and the image will remain until it is
      explicitly deactivated.

      - **FadeIn** *(integer) --* The time in milliseconds for the image to fade in. The fade-in
      starts at the start time of the overlay. Default is 0 (no fade-in).

      - **FadeOut** *(integer) --* Applies only if a duration is specified. The time in milliseconds
      for the image to fade out. The fade-out starts when the duration time is hit, so it
      effectively extends the duration. Default is 0 (no fade-out).

      - **Height** *(integer) --* The height of the image when inserted into the video, in pixels.
      The overlay will be scaled up or down to the specified height. Leave blank to use the native
      height of the overlay.

      - **Image** *(dict) --* The location and filename of the image file to overlay on the video.
      The file must be a 32-bit BMP, PNG, or TGA file, and must not be larger (in pixels) than the
      input video.

        - **PasswordParam** *(string) --* key used to extract the password from EC2 Parameter store

        - **Uri** *(string) --* Uniform Resource Identifier - This should be a path to a file
        accessible to the Live system (eg. a http:// URI) depending on the output type. For example,
        a RTMP destination should have a uri simliar to: "rtmp://fmsserver/live".

        - **Username** *(string) --* Documentation update needed

      - **ImageX** *(integer) --* Placement of the left edge of the overlay relative to the left
      edge of the video frame, in pixels. 0 (the default) is the left edge of the frame. If the
      placement causes the overlay to extend beyond the right edge of the underlying video, then the
      overlay is cropped on the right.

      - **ImageY** *(integer) --* Placement of the top edge of the overlay relative to the top edge
      of the video frame, in pixels. 0 (the default) is the top edge of the frame. If the placement
      causes the overlay to extend beyond the bottom edge of the underlying video, then the overlay
      is cropped on the bottom.

      - **Layer** *(integer) --* The number of the layer, 0 to 7. There are 8 layers that can be
      overlaid on the video, each layer with a different image. The layers are in Z order, which
      means that overlays with higher values of layer are inserted on top of overlays with lower
      values of layer. Default is 0.

      - **Opacity** *(integer) --* Opacity of image where 0 is transparent and 100 is fully opaque.
      Default is 100.

      - **Width** *(integer) --* The width of the image when inserted into the video, in pixels. The
      overlay will be scaled up or down to the specified width. Leave blank to use the native width
      of the overlay.

    - **StaticImageDeactivateSettings** *(dict) --* Action to deactivate a static image overlay

      - **FadeOut** *(integer) --* The time in milliseconds for the image to fade out. Default is 0
      (no fade-out).

      - **Layer** *(integer) --* The image overlay layer to deactivate, 0 to 7. Default is 0.
    """


_ClientBatchUpdateScheduleResponseCreatesScheduleActionsScheduleActionStartSettingsFixedModeScheduleActionStartSettingsTypeDef = TypedDict(
    "_ClientBatchUpdateScheduleResponseCreatesScheduleActionsScheduleActionStartSettingsFixedModeScheduleActionStartSettingsTypeDef",
    {"Time": str},
    total=False,
)


class ClientBatchUpdateScheduleResponseCreatesScheduleActionsScheduleActionStartSettingsFixedModeScheduleActionStartSettingsTypeDef(
    _ClientBatchUpdateScheduleResponseCreatesScheduleActionsScheduleActionStartSettingsFixedModeScheduleActionStartSettingsTypeDef
):
    """
    Type definition for
    `ClientBatchUpdateScheduleResponseCreatesScheduleActionsScheduleActionStartSettings`
    `FixedModeScheduleActionStartSettings`

    - **Time** *(string) --* Start time for the action to start in the channel. (Not the time for
    the action to be added to the schedule: actions are always added to the schedule immediately.)
    UTC format: yyyy-mm-ddThh:mm:ss.nnnZ. All the letters are digits (for example, mm might be 01)
    except for the two constants "T" for time and "Z" for "UTC format".
    """


_ClientBatchUpdateScheduleResponseCreatesScheduleActionsScheduleActionStartSettingsFollowModeScheduleActionStartSettingsTypeDef = TypedDict(
    "_ClientBatchUpdateScheduleResponseCreatesScheduleActionsScheduleActionStartSettingsFollowModeScheduleActionStartSettingsTypeDef",
    {"FollowPoint": str, "ReferenceActionName": str},
    total=False,
)


class ClientBatchUpdateScheduleResponseCreatesScheduleActionsScheduleActionStartSettingsFollowModeScheduleActionStartSettingsTypeDef(
    _ClientBatchUpdateScheduleResponseCreatesScheduleActionsScheduleActionStartSettingsFollowModeScheduleActionStartSettingsTypeDef
):
    """
    Type definition for
    `ClientBatchUpdateScheduleResponseCreatesScheduleActionsScheduleActionStartSettings`
    `FollowModeScheduleActionStartSettings`

    - **FollowPoint** *(string) --* Identifies whether this action starts relative to the start or
    relative to the end of the reference action.

    - **ReferenceActionName** *(string) --* The action name of another action that this one refers
    to.
    """


_ClientBatchUpdateScheduleResponseCreatesScheduleActionsScheduleActionStartSettingsTypeDef = TypedDict(
    "_ClientBatchUpdateScheduleResponseCreatesScheduleActionsScheduleActionStartSettingsTypeDef",
    {
        "FixedModeScheduleActionStartSettings": ClientBatchUpdateScheduleResponseCreatesScheduleActionsScheduleActionStartSettingsFixedModeScheduleActionStartSettingsTypeDef,
        "FollowModeScheduleActionStartSettings": ClientBatchUpdateScheduleResponseCreatesScheduleActionsScheduleActionStartSettingsFollowModeScheduleActionStartSettingsTypeDef,
        "ImmediateModeScheduleActionStartSettings": Dict[str, Any],
    },
    total=False,
)


class ClientBatchUpdateScheduleResponseCreatesScheduleActionsScheduleActionStartSettingsTypeDef(
    _ClientBatchUpdateScheduleResponseCreatesScheduleActionsScheduleActionStartSettingsTypeDef
):
    """
    Type definition for `ClientBatchUpdateScheduleResponseCreatesScheduleActions`
    `ScheduleActionStartSettings`

    - **FixedModeScheduleActionStartSettings** *(dict) --* Option for specifying the start time for
    an action.

      - **Time** *(string) --* Start time for the action to start in the channel. (Not the time for
      the action to be added to the schedule: actions are always added to the schedule immediately.)
      UTC format: yyyy-mm-ddThh:mm:ss.nnnZ. All the letters are digits (for example, mm might be 01)
      except for the two constants "T" for time and "Z" for "UTC format".

    - **FollowModeScheduleActionStartSettings** *(dict) --* Option for specifying an action as
    relative to another action.

      - **FollowPoint** *(string) --* Identifies whether this action starts relative to the start or
      relative to the end of the reference action.

      - **ReferenceActionName** *(string) --* The action name of another action that this one refers
      to.

    - **ImmediateModeScheduleActionStartSettings** *(dict) --* Option for specifying an action that
    should be applied immediately.
    """


_ClientBatchUpdateScheduleResponseCreatesScheduleActionsTypeDef = TypedDict(
    "_ClientBatchUpdateScheduleResponseCreatesScheduleActionsTypeDef",
    {
        "ActionName": str,
        "ScheduleActionSettings": ClientBatchUpdateScheduleResponseCreatesScheduleActionsScheduleActionSettingsTypeDef,
        "ScheduleActionStartSettings": ClientBatchUpdateScheduleResponseCreatesScheduleActionsScheduleActionStartSettingsTypeDef,
    },
    total=False,
)


class ClientBatchUpdateScheduleResponseCreatesScheduleActionsTypeDef(
    _ClientBatchUpdateScheduleResponseCreatesScheduleActionsTypeDef
):
    """
    Type definition for `ClientBatchUpdateScheduleResponseCreates` `ScheduleActions`

    - **ActionName** *(string) --* The name of the action, must be unique within the schedule. This
    name provides the main reference to an action once it is added to the schedule. A name is unique
    if it is no longer in the schedule. The schedule is automatically cleaned up to remove actions
    with a start time of more than 1 hour ago (approximately) so at that point a name can be reused.

    - **ScheduleActionSettings** *(dict) --* Settings for this schedule action.

      - **HlsTimedMetadataSettings** *(dict) --* Action to insert HLS metadata

        - **Id3** *(string) --* Base64 string formatted according to the ID3 specification:
        http://id3.org/id3v2.4.0-structure

      - **InputSwitchSettings** *(dict) --* Action to switch the input

        - **InputAttachmentNameReference** *(string) --* The name of the input attachment (not the
        name of the input!) to switch to. The name is specified in the channel configuration.

        - **InputClippingSettings** *(dict) --* Settings to let you create a clip of the file input,
        in order to set up the input to ingest only a portion of the file.

          - **InputTimecodeSource** *(string) --* The source of the timecodes in the source being
          clipped.

          - **StartTimecode** *(dict) --* Settings to identify the start of the clip.

            - **Timecode** *(string) --* The timecode for the frame where you want to start the
            clip. Optional; if not specified, the clip starts at first frame in the file. Enter the
            timecode as HH:MM:SS:FF or HH:MM:SS;FF.

          - **StopTimecode** *(dict) --* Settings to identify the end of the clip.

            - **LastFrameClippingBehavior** *(string) --* If you specify a StopTimecode in an input
            (in order to clip the file), you can specify if you want the clip to exclude (the
            default) or include the frame specified by the timecode.

            - **Timecode** *(string) --* The timecode for the frame where you want to stop the clip.
            Optional; if not specified, the clip continues to the end of the file. Enter the
            timecode as HH:MM:SS:FF or HH:MM:SS;FF.

        - **UrlPath** *(list) --* The value for the variable portion of the URL for the dynamic
        input, for this instance of the input. Each time you use the same dynamic input in an input
        switch action, you can provide a different value, in order to connect the input to a
        different content source.

          - *(string) --* Placeholder documentation for __string

      - **PauseStateSettings** *(dict) --* Action to pause or unpause one or both channel pipelines

        - **Pipelines** *(list) --* Placeholder documentation for __listOfPipelinePauseStateSettings

          - *(dict) --* Settings for pausing a pipeline.

            - **PipelineId** *(string) --* Pipeline ID to pause ("PIPELINE_0" or "PIPELINE_1").

      - **Scte35ReturnToNetworkSettings** *(dict) --* Action to insert SCTE-35 return_to_network
      message

        - **SpliceEventId** *(integer) --* The splice_event_id for the SCTE-35 splice_insert, as
        defined in SCTE-35.

      - **Scte35SpliceInsertSettings** *(dict) --* Action to insert SCTE-35 splice_insert message

        - **Duration** *(integer) --* Optional, the duration for the splice_insert, in 90 KHz ticks.
        To convert seconds to ticks, multiple the seconds by 90,000. If you enter a duration, there
        is an expectation that the downstream system can read the duration and cue in at that time.
        If you do not enter a duration, the splice_insert will continue indefinitely and there is an
        expectation that you will enter a return_to_network to end the splice_insert at the
        appropriate time.

        - **SpliceEventId** *(integer) --* The splice_event_id for the SCTE-35 splice_insert, as
        defined in SCTE-35.

      - **Scte35TimeSignalSettings** *(dict) --* Action to insert SCTE-35 time_signal message

        - **Scte35Descriptors** *(list) --* The list of SCTE-35 descriptors accompanying the SCTE-35
        time_signal.

          - *(dict) --* Holds one set of SCTE-35 Descriptor Settings.

            - **Scte35DescriptorSettings** *(dict) --* SCTE-35 Descriptor Settings.

              - **SegmentationDescriptorScte35DescriptorSettings** *(dict) --* SCTE-35 Segmentation
              Descriptor.

                - **DeliveryRestrictions** *(dict) --* Holds the four SCTE-35 delivery restriction
                parameters.

                  - **ArchiveAllowedFlag** *(string) --* Corresponds to SCTE-35
                  archive_allowed_flag.

                  - **DeviceRestrictions** *(string) --* Corresponds to SCTE-35 device_restrictions
                  parameter.

                  - **NoRegionalBlackoutFlag** *(string) --* Corresponds to SCTE-35
                  no_regional_blackout_flag parameter.

                  - **WebDeliveryAllowedFlag** *(string) --* Corresponds to SCTE-35
                  web_delivery_allowed_flag parameter.

                - **SegmentNum** *(integer) --* Corresponds to SCTE-35 segment_num. A value that is
                valid for the specified segmentation_type_id.

                - **SegmentationCancelIndicator** *(string) --* Corresponds to SCTE-35
                segmentation_event_cancel_indicator.

                - **SegmentationDuration** *(integer) --* Corresponds to SCTE-35
                segmentation_duration. Optional. The duration for the time_signal, in 90 KHz ticks.
                To convert seconds to ticks, multiple the seconds by 90,000. Enter time in 90 KHz
                clock ticks. If you do not enter a duration, the time_signal will continue until you
                insert a cancellation message.

                - **SegmentationEventId** *(integer) --* Corresponds to SCTE-35
                segmentation_event_id.

                - **SegmentationTypeId** *(integer) --* Corresponds to SCTE-35 segmentation_type_id.
                One of the segmentation_type_id values listed in the SCTE-35 specification. On the
                console, enter the ID in decimal (for example, "52"). In the CLI, API, or an SDK,
                enter the ID in hex (for example, "0x34") or decimal (for example, "52").

                - **SegmentationUpid** *(string) --* Corresponds to SCTE-35 segmentation_upid. Enter
                a string containing the hexadecimal representation of the characters that make up
                the SCTE-35 segmentation_upid value. Must contain an even number of hex characters.
                Do not include spaces between each hex pair. For example, the ASCII "ADS
                Information" becomes hex "41445320496e666f726d6174696f6e.

                - **SegmentationUpidType** *(integer) --* Corresponds to SCTE-35
                segmentation_upid_type. On the console, enter one of the types listed in the SCTE-35
                specification, converted to a decimal. For example, "0x0C" hex from the
                specification is "12" in decimal. In the CLI, API, or an SDK, enter one of the types
                listed in the SCTE-35 specification, in either hex (for example, "0x0C" ) or in
                decimal (for example, "12").

                - **SegmentsExpected** *(integer) --* Corresponds to SCTE-35 segments_expected. A
                value that is valid for the specified segmentation_type_id.

                - **SubSegmentNum** *(integer) --* Corresponds to SCTE-35 sub_segment_num. A value
                that is valid for the specified segmentation_type_id.

                - **SubSegmentsExpected** *(integer) --* Corresponds to SCTE-35
                sub_segments_expected. A value that is valid for the specified segmentation_type_id.

      - **StaticImageActivateSettings** *(dict) --* Action to activate a static image overlay

        - **Duration** *(integer) --* The duration in milliseconds for the image to remain on the
        video. If omitted or set to 0 the duration is unlimited and the image will remain until it
        is explicitly deactivated.

        - **FadeIn** *(integer) --* The time in milliseconds for the image to fade in. The fade-in
        starts at the start time of the overlay. Default is 0 (no fade-in).

        - **FadeOut** *(integer) --* Applies only if a duration is specified. The time in
        milliseconds for the image to fade out. The fade-out starts when the duration time is hit,
        so it effectively extends the duration. Default is 0 (no fade-out).

        - **Height** *(integer) --* The height of the image when inserted into the video, in pixels.
        The overlay will be scaled up or down to the specified height. Leave blank to use the native
        height of the overlay.

        - **Image** *(dict) --* The location and filename of the image file to overlay on the video.
        The file must be a 32-bit BMP, PNG, or TGA file, and must not be larger (in pixels) than the
        input video.

          - **PasswordParam** *(string) --* key used to extract the password from EC2 Parameter
          store

          - **Uri** *(string) --* Uniform Resource Identifier - This should be a path to a file
          accessible to the Live system (eg. a http:// URI) depending on the output type. For
          example, a RTMP destination should have a uri simliar to: "rtmp://fmsserver/live".

          - **Username** *(string) --* Documentation update needed

        - **ImageX** *(integer) --* Placement of the left edge of the overlay relative to the left
        edge of the video frame, in pixels. 0 (the default) is the left edge of the frame. If the
        placement causes the overlay to extend beyond the right edge of the underlying video, then
        the overlay is cropped on the right.

        - **ImageY** *(integer) --* Placement of the top edge of the overlay relative to the top
        edge of the video frame, in pixels. 0 (the default) is the top edge of the frame. If the
        placement causes the overlay to extend beyond the bottom edge of the underlying video, then
        the overlay is cropped on the bottom.

        - **Layer** *(integer) --* The number of the layer, 0 to 7. There are 8 layers that can be
        overlaid on the video, each layer with a different image. The layers are in Z order, which
        means that overlays with higher values of layer are inserted on top of overlays with lower
        values of layer. Default is 0.

        - **Opacity** *(integer) --* Opacity of image where 0 is transparent and 100 is fully
        opaque. Default is 100.

        - **Width** *(integer) --* The width of the image when inserted into the video, in pixels.
        The overlay will be scaled up or down to the specified width. Leave blank to use the native
        width of the overlay.

      - **StaticImageDeactivateSettings** *(dict) --* Action to deactivate a static image overlay

        - **FadeOut** *(integer) --* The time in milliseconds for the image to fade out. Default is
        0 (no fade-out).

        - **Layer** *(integer) --* The image overlay layer to deactivate, 0 to 7. Default is 0.

    - **ScheduleActionStartSettings** *(dict) --* The time for the action to start in the channel.

      - **FixedModeScheduleActionStartSettings** *(dict) --* Option for specifying the start time
      for an action.

        - **Time** *(string) --* Start time for the action to start in the channel. (Not the time
        for the action to be added to the schedule: actions are always added to the schedule
        immediately.) UTC format: yyyy-mm-ddThh:mm:ss.nnnZ. All the letters are digits (for example,
        mm might be 01) except for the two constants "T" for time and "Z" for "UTC format".

      - **FollowModeScheduleActionStartSettings** *(dict) --* Option for specifying an action as
      relative to another action.

        - **FollowPoint** *(string) --* Identifies whether this action starts relative to the start
        or relative to the end of the reference action.

        - **ReferenceActionName** *(string) --* The action name of another action that this one
        refers to.

      - **ImmediateModeScheduleActionStartSettings** *(dict) --* Option for specifying an action
      that should be applied immediately.
    """


_ClientBatchUpdateScheduleResponseCreatesTypeDef = TypedDict(
    "_ClientBatchUpdateScheduleResponseCreatesTypeDef",
    {"ScheduleActions": List[ClientBatchUpdateScheduleResponseCreatesScheduleActionsTypeDef]},
    total=False,
)


class ClientBatchUpdateScheduleResponseCreatesTypeDef(
    _ClientBatchUpdateScheduleResponseCreatesTypeDef
):
    """
    Type definition for `ClientBatchUpdateScheduleResponse` `Creates`

    - **ScheduleActions** *(list) --* List of actions that have been created in the schedule.

      - *(dict) --* Contains information on a single schedule action.

        - **ActionName** *(string) --* The name of the action, must be unique within the schedule.
        This name provides the main reference to an action once it is added to the schedule. A name
        is unique if it is no longer in the schedule. The schedule is automatically cleaned up to
        remove actions with a start time of more than 1 hour ago (approximately) so at that point a
        name can be reused.

        - **ScheduleActionSettings** *(dict) --* Settings for this schedule action.

          - **HlsTimedMetadataSettings** *(dict) --* Action to insert HLS metadata

            - **Id3** *(string) --* Base64 string formatted according to the ID3 specification:
            http://id3.org/id3v2.4.0-structure

          - **InputSwitchSettings** *(dict) --* Action to switch the input

            - **InputAttachmentNameReference** *(string) --* The name of the input attachment (not
            the name of the input!) to switch to. The name is specified in the channel
            configuration.

            - **InputClippingSettings** *(dict) --* Settings to let you create a clip of the file
            input, in order to set up the input to ingest only a portion of the file.

              - **InputTimecodeSource** *(string) --* The source of the timecodes in the source
              being clipped.

              - **StartTimecode** *(dict) --* Settings to identify the start of the clip.

                - **Timecode** *(string) --* The timecode for the frame where you want to start the
                clip. Optional; if not specified, the clip starts at first frame in the file. Enter
                the timecode as HH:MM:SS:FF or HH:MM:SS;FF.

              - **StopTimecode** *(dict) --* Settings to identify the end of the clip.

                - **LastFrameClippingBehavior** *(string) --* If you specify a StopTimecode in an
                input (in order to clip the file), you can specify if you want the clip to exclude
                (the default) or include the frame specified by the timecode.

                - **Timecode** *(string) --* The timecode for the frame where you want to stop the
                clip. Optional; if not specified, the clip continues to the end of the file. Enter
                the timecode as HH:MM:SS:FF or HH:MM:SS;FF.

            - **UrlPath** *(list) --* The value for the variable portion of the URL for the dynamic
            input, for this instance of the input. Each time you use the same dynamic input in an
            input switch action, you can provide a different value, in order to connect the input to
            a different content source.

              - *(string) --* Placeholder documentation for __string

          - **PauseStateSettings** *(dict) --* Action to pause or unpause one or both channel
          pipelines

            - **Pipelines** *(list) --* Placeholder documentation for
            __listOfPipelinePauseStateSettings

              - *(dict) --* Settings for pausing a pipeline.

                - **PipelineId** *(string) --* Pipeline ID to pause ("PIPELINE_0" or "PIPELINE_1").

          - **Scte35ReturnToNetworkSettings** *(dict) --* Action to insert SCTE-35 return_to_network
          message

            - **SpliceEventId** *(integer) --* The splice_event_id for the SCTE-35 splice_insert, as
            defined in SCTE-35.

          - **Scte35SpliceInsertSettings** *(dict) --* Action to insert SCTE-35 splice_insert
          message

            - **Duration** *(integer) --* Optional, the duration for the splice_insert, in 90 KHz
            ticks. To convert seconds to ticks, multiple the seconds by 90,000. If you enter a
            duration, there is an expectation that the downstream system can read the duration and
            cue in at that time. If you do not enter a duration, the splice_insert will continue
            indefinitely and there is an expectation that you will enter a return_to_network to end
            the splice_insert at the appropriate time.

            - **SpliceEventId** *(integer) --* The splice_event_id for the SCTE-35 splice_insert, as
            defined in SCTE-35.

          - **Scte35TimeSignalSettings** *(dict) --* Action to insert SCTE-35 time_signal message

            - **Scte35Descriptors** *(list) --* The list of SCTE-35 descriptors accompanying the
            SCTE-35 time_signal.

              - *(dict) --* Holds one set of SCTE-35 Descriptor Settings.

                - **Scte35DescriptorSettings** *(dict) --* SCTE-35 Descriptor Settings.

                  - **SegmentationDescriptorScte35DescriptorSettings** *(dict) --* SCTE-35
                  Segmentation Descriptor.

                    - **DeliveryRestrictions** *(dict) --* Holds the four SCTE-35 delivery
                    restriction parameters.

                      - **ArchiveAllowedFlag** *(string) --* Corresponds to SCTE-35
                      archive_allowed_flag.

                      - **DeviceRestrictions** *(string) --* Corresponds to SCTE-35
                      device_restrictions parameter.

                      - **NoRegionalBlackoutFlag** *(string) --* Corresponds to SCTE-35
                      no_regional_blackout_flag parameter.

                      - **WebDeliveryAllowedFlag** *(string) --* Corresponds to SCTE-35
                      web_delivery_allowed_flag parameter.

                    - **SegmentNum** *(integer) --* Corresponds to SCTE-35 segment_num. A value that
                    is valid for the specified segmentation_type_id.

                    - **SegmentationCancelIndicator** *(string) --* Corresponds to SCTE-35
                    segmentation_event_cancel_indicator.

                    - **SegmentationDuration** *(integer) --* Corresponds to SCTE-35
                    segmentation_duration. Optional. The duration for the time_signal, in 90 KHz
                    ticks. To convert seconds to ticks, multiple the seconds by 90,000. Enter time
                    in 90 KHz clock ticks. If you do not enter a duration, the time_signal will
                    continue until you insert a cancellation message.

                    - **SegmentationEventId** *(integer) --* Corresponds to SCTE-35
                    segmentation_event_id.

                    - **SegmentationTypeId** *(integer) --* Corresponds to SCTE-35
                    segmentation_type_id. One of the segmentation_type_id values listed in the
                    SCTE-35 specification. On the console, enter the ID in decimal (for example,
                    "52"). In the CLI, API, or an SDK, enter the ID in hex (for example, "0x34") or
                    decimal (for example, "52").

                    - **SegmentationUpid** *(string) --* Corresponds to SCTE-35 segmentation_upid.
                    Enter a string containing the hexadecimal representation of the characters that
                    make up the SCTE-35 segmentation_upid value. Must contain an even number of hex
                    characters. Do not include spaces between each hex pair. For example, the ASCII
                    "ADS Information" becomes hex "41445320496e666f726d6174696f6e.

                    - **SegmentationUpidType** *(integer) --* Corresponds to SCTE-35
                    segmentation_upid_type. On the console, enter one of the types listed in the
                    SCTE-35 specification, converted to a decimal. For example, "0x0C" hex from the
                    specification is "12" in decimal. In the CLI, API, or an SDK, enter one of the
                    types listed in the SCTE-35 specification, in either hex (for example, "0x0C" )
                    or in decimal (for example, "12").

                    - **SegmentsExpected** *(integer) --* Corresponds to SCTE-35 segments_expected.
                    A value that is valid for the specified segmentation_type_id.

                    - **SubSegmentNum** *(integer) --* Corresponds to SCTE-35 sub_segment_num. A
                    value that is valid for the specified segmentation_type_id.

                    - **SubSegmentsExpected** *(integer) --* Corresponds to SCTE-35
                    sub_segments_expected. A value that is valid for the specified
                    segmentation_type_id.

          - **StaticImageActivateSettings** *(dict) --* Action to activate a static image overlay

            - **Duration** *(integer) --* The duration in milliseconds for the image to remain on
            the video. If omitted or set to 0 the duration is unlimited and the image will remain
            until it is explicitly deactivated.

            - **FadeIn** *(integer) --* The time in milliseconds for the image to fade in. The
            fade-in starts at the start time of the overlay. Default is 0 (no fade-in).

            - **FadeOut** *(integer) --* Applies only if a duration is specified. The time in
            milliseconds for the image to fade out. The fade-out starts when the duration time is
            hit, so it effectively extends the duration. Default is 0 (no fade-out).

            - **Height** *(integer) --* The height of the image when inserted into the video, in
            pixels. The overlay will be scaled up or down to the specified height. Leave blank to
            use the native height of the overlay.

            - **Image** *(dict) --* The location and filename of the image file to overlay on the
            video. The file must be a 32-bit BMP, PNG, or TGA file, and must not be larger (in
            pixels) than the input video.

              - **PasswordParam** *(string) --* key used to extract the password from EC2 Parameter
              store

              - **Uri** *(string) --* Uniform Resource Identifier - This should be a path to a file
              accessible to the Live system (eg. a http:// URI) depending on the output type. For
              example, a RTMP destination should have a uri simliar to: "rtmp://fmsserver/live".

              - **Username** *(string) --* Documentation update needed

            - **ImageX** *(integer) --* Placement of the left edge of the overlay relative to the
            left edge of the video frame, in pixels. 0 (the default) is the left edge of the frame.
            If the placement causes the overlay to extend beyond the right edge of the underlying
            video, then the overlay is cropped on the right.

            - **ImageY** *(integer) --* Placement of the top edge of the overlay relative to the top
            edge of the video frame, in pixels. 0 (the default) is the top edge of the frame. If the
            placement causes the overlay to extend beyond the bottom edge of the underlying video,
            then the overlay is cropped on the bottom.

            - **Layer** *(integer) --* The number of the layer, 0 to 7. There are 8 layers that can
            be overlaid on the video, each layer with a different image. The layers are in Z order,
            which means that overlays with higher values of layer are inserted on top of overlays
            with lower values of layer. Default is 0.

            - **Opacity** *(integer) --* Opacity of image where 0 is transparent and 100 is fully
            opaque. Default is 100.

            - **Width** *(integer) --* The width of the image when inserted into the video, in
            pixels. The overlay will be scaled up or down to the specified width. Leave blank to use
            the native width of the overlay.

          - **StaticImageDeactivateSettings** *(dict) --* Action to deactivate a static image
          overlay

            - **FadeOut** *(integer) --* The time in milliseconds for the image to fade out. Default
            is 0 (no fade-out).

            - **Layer** *(integer) --* The image overlay layer to deactivate, 0 to 7. Default is 0.

        - **ScheduleActionStartSettings** *(dict) --* The time for the action to start in the
        channel.

          - **FixedModeScheduleActionStartSettings** *(dict) --* Option for specifying the start
          time for an action.

            - **Time** *(string) --* Start time for the action to start in the channel. (Not the
            time for the action to be added to the schedule: actions are always added to the
            schedule immediately.) UTC format: yyyy-mm-ddThh:mm:ss.nnnZ. All the letters are digits
            (for example, mm might be 01) except for the two constants "T" for time and "Z" for "UTC
            format".

          - **FollowModeScheduleActionStartSettings** *(dict) --* Option for specifying an action as
          relative to another action.

            - **FollowPoint** *(string) --* Identifies whether this action starts relative to the
            start or relative to the end of the reference action.

            - **ReferenceActionName** *(string) --* The action name of another action that this one
            refers to.

          - **ImmediateModeScheduleActionStartSettings** *(dict) --* Option for specifying an action
          that should be applied immediately.
    """


_ClientBatchUpdateScheduleResponseDeletesScheduleActionsScheduleActionSettingsHlsTimedMetadataSettingsTypeDef = TypedDict(
    "_ClientBatchUpdateScheduleResponseDeletesScheduleActionsScheduleActionSettingsHlsTimedMetadataSettingsTypeDef",
    {"Id3": str},
    total=False,
)


class ClientBatchUpdateScheduleResponseDeletesScheduleActionsScheduleActionSettingsHlsTimedMetadataSettingsTypeDef(
    _ClientBatchUpdateScheduleResponseDeletesScheduleActionsScheduleActionSettingsHlsTimedMetadataSettingsTypeDef
):
    """
    Type definition for
    `ClientBatchUpdateScheduleResponseDeletesScheduleActionsScheduleActionSettings`
    `HlsTimedMetadataSettings`

    - **Id3** *(string) --* Base64 string formatted according to the ID3 specification:
    http://id3.org/id3v2.4.0-structure
    """


_ClientBatchUpdateScheduleResponseDeletesScheduleActionsScheduleActionSettingsInputSwitchSettingsInputClippingSettingsStartTimecodeTypeDef = TypedDict(
    "_ClientBatchUpdateScheduleResponseDeletesScheduleActionsScheduleActionSettingsInputSwitchSettingsInputClippingSettingsStartTimecodeTypeDef",
    {"Timecode": str},
    total=False,
)


class ClientBatchUpdateScheduleResponseDeletesScheduleActionsScheduleActionSettingsInputSwitchSettingsInputClippingSettingsStartTimecodeTypeDef(
    _ClientBatchUpdateScheduleResponseDeletesScheduleActionsScheduleActionSettingsInputSwitchSettingsInputClippingSettingsStartTimecodeTypeDef
):
    """
    Type definition for
    `ClientBatchUpdateScheduleResponseDeletesScheduleActionsScheduleActionSettingsInputSwitchSettingsInputClippingSettings`
    `StartTimecode`

    - **Timecode** *(string) --* The timecode for the frame where you want to start the clip.
    Optional; if not specified, the clip starts at first frame in the file. Enter the timecode as
    HH:MM:SS:FF or HH:MM:SS;FF.
    """


_ClientBatchUpdateScheduleResponseDeletesScheduleActionsScheduleActionSettingsInputSwitchSettingsInputClippingSettingsStopTimecodeTypeDef = TypedDict(
    "_ClientBatchUpdateScheduleResponseDeletesScheduleActionsScheduleActionSettingsInputSwitchSettingsInputClippingSettingsStopTimecodeTypeDef",
    {"LastFrameClippingBehavior": str, "Timecode": str},
    total=False,
)


class ClientBatchUpdateScheduleResponseDeletesScheduleActionsScheduleActionSettingsInputSwitchSettingsInputClippingSettingsStopTimecodeTypeDef(
    _ClientBatchUpdateScheduleResponseDeletesScheduleActionsScheduleActionSettingsInputSwitchSettingsInputClippingSettingsStopTimecodeTypeDef
):
    """
    Type definition for
    `ClientBatchUpdateScheduleResponseDeletesScheduleActionsScheduleActionSettingsInputSwitchSettingsInputClippingSettings`
    `StopTimecode`

    - **LastFrameClippingBehavior** *(string) --* If you specify a StopTimecode in an input (in
    order to clip the file), you can specify if you want the clip to exclude (the default) or
    include the frame specified by the timecode.

    - **Timecode** *(string) --* The timecode for the frame where you want to stop the clip.
    Optional; if not specified, the clip continues to the end of the file. Enter the timecode as
    HH:MM:SS:FF or HH:MM:SS;FF.
    """


_ClientBatchUpdateScheduleResponseDeletesScheduleActionsScheduleActionSettingsInputSwitchSettingsInputClippingSettingsTypeDef = TypedDict(
    "_ClientBatchUpdateScheduleResponseDeletesScheduleActionsScheduleActionSettingsInputSwitchSettingsInputClippingSettingsTypeDef",
    {
        "InputTimecodeSource": str,
        "StartTimecode": ClientBatchUpdateScheduleResponseDeletesScheduleActionsScheduleActionSettingsInputSwitchSettingsInputClippingSettingsStartTimecodeTypeDef,
        "StopTimecode": ClientBatchUpdateScheduleResponseDeletesScheduleActionsScheduleActionSettingsInputSwitchSettingsInputClippingSettingsStopTimecodeTypeDef,
    },
    total=False,
)


class ClientBatchUpdateScheduleResponseDeletesScheduleActionsScheduleActionSettingsInputSwitchSettingsInputClippingSettingsTypeDef(
    _ClientBatchUpdateScheduleResponseDeletesScheduleActionsScheduleActionSettingsInputSwitchSettingsInputClippingSettingsTypeDef
):
    """
    Type definition for
    `ClientBatchUpdateScheduleResponseDeletesScheduleActionsScheduleActionSettingsInputSwitchSettings`
    `InputClippingSettings`

    - **InputTimecodeSource** *(string) --* The source of the timecodes in the source being clipped.

    - **StartTimecode** *(dict) --* Settings to identify the start of the clip.

      - **Timecode** *(string) --* The timecode for the frame where you want to start the clip.
      Optional; if not specified, the clip starts at first frame in the file. Enter the timecode as
      HH:MM:SS:FF or HH:MM:SS;FF.

    - **StopTimecode** *(dict) --* Settings to identify the end of the clip.

      - **LastFrameClippingBehavior** *(string) --* If you specify a StopTimecode in an input (in
      order to clip the file), you can specify if you want the clip to exclude (the default) or
      include the frame specified by the timecode.

      - **Timecode** *(string) --* The timecode for the frame where you want to stop the clip.
      Optional; if not specified, the clip continues to the end of the file. Enter the timecode as
      HH:MM:SS:FF or HH:MM:SS;FF.
    """


_ClientBatchUpdateScheduleResponseDeletesScheduleActionsScheduleActionSettingsInputSwitchSettingsTypeDef = TypedDict(
    "_ClientBatchUpdateScheduleResponseDeletesScheduleActionsScheduleActionSettingsInputSwitchSettingsTypeDef",
    {
        "InputAttachmentNameReference": str,
        "InputClippingSettings": ClientBatchUpdateScheduleResponseDeletesScheduleActionsScheduleActionSettingsInputSwitchSettingsInputClippingSettingsTypeDef,
        "UrlPath": List[str],
    },
    total=False,
)


class ClientBatchUpdateScheduleResponseDeletesScheduleActionsScheduleActionSettingsInputSwitchSettingsTypeDef(
    _ClientBatchUpdateScheduleResponseDeletesScheduleActionsScheduleActionSettingsInputSwitchSettingsTypeDef
):
    """
    Type definition for
    `ClientBatchUpdateScheduleResponseDeletesScheduleActionsScheduleActionSettings`
    `InputSwitchSettings`

    - **InputAttachmentNameReference** *(string) --* The name of the input attachment (not the name
    of the input!) to switch to. The name is specified in the channel configuration.

    - **InputClippingSettings** *(dict) --* Settings to let you create a clip of the file input, in
    order to set up the input to ingest only a portion of the file.

      - **InputTimecodeSource** *(string) --* The source of the timecodes in the source being
      clipped.

      - **StartTimecode** *(dict) --* Settings to identify the start of the clip.

        - **Timecode** *(string) --* The timecode for the frame where you want to start the clip.
        Optional; if not specified, the clip starts at first frame in the file. Enter the timecode
        as HH:MM:SS:FF or HH:MM:SS;FF.

      - **StopTimecode** *(dict) --* Settings to identify the end of the clip.

        - **LastFrameClippingBehavior** *(string) --* If you specify a StopTimecode in an input (in
        order to clip the file), you can specify if you want the clip to exclude (the default) or
        include the frame specified by the timecode.

        - **Timecode** *(string) --* The timecode for the frame where you want to stop the clip.
        Optional; if not specified, the clip continues to the end of the file. Enter the timecode as
        HH:MM:SS:FF or HH:MM:SS;FF.

    - **UrlPath** *(list) --* The value for the variable portion of the URL for the dynamic input,
    for this instance of the input. Each time you use the same dynamic input in an input switch
    action, you can provide a different value, in order to connect the input to a different content
    source.

      - *(string) --* Placeholder documentation for __string
    """


_ClientBatchUpdateScheduleResponseDeletesScheduleActionsScheduleActionSettingsPauseStateSettingsPipelinesTypeDef = TypedDict(
    "_ClientBatchUpdateScheduleResponseDeletesScheduleActionsScheduleActionSettingsPauseStateSettingsPipelinesTypeDef",
    {"PipelineId": str},
    total=False,
)


class ClientBatchUpdateScheduleResponseDeletesScheduleActionsScheduleActionSettingsPauseStateSettingsPipelinesTypeDef(
    _ClientBatchUpdateScheduleResponseDeletesScheduleActionsScheduleActionSettingsPauseStateSettingsPipelinesTypeDef
):
    """
    Type definition for
    `ClientBatchUpdateScheduleResponseDeletesScheduleActionsScheduleActionSettingsPauseStateSettings`
    `Pipelines`

    - **PipelineId** *(string) --* Pipeline ID to pause ("PIPELINE_0" or "PIPELINE_1").
    """


_ClientBatchUpdateScheduleResponseDeletesScheduleActionsScheduleActionSettingsPauseStateSettingsTypeDef = TypedDict(
    "_ClientBatchUpdateScheduleResponseDeletesScheduleActionsScheduleActionSettingsPauseStateSettingsTypeDef",
    {
        "Pipelines": List[
            ClientBatchUpdateScheduleResponseDeletesScheduleActionsScheduleActionSettingsPauseStateSettingsPipelinesTypeDef
        ]
    },
    total=False,
)


class ClientBatchUpdateScheduleResponseDeletesScheduleActionsScheduleActionSettingsPauseStateSettingsTypeDef(
    _ClientBatchUpdateScheduleResponseDeletesScheduleActionsScheduleActionSettingsPauseStateSettingsTypeDef
):
    """
    Type definition for
    `ClientBatchUpdateScheduleResponseDeletesScheduleActionsScheduleActionSettings`
    `PauseStateSettings`

    - **Pipelines** *(list) --* Placeholder documentation for __listOfPipelinePauseStateSettings

      - *(dict) --* Settings for pausing a pipeline.

        - **PipelineId** *(string) --* Pipeline ID to pause ("PIPELINE_0" or "PIPELINE_1").
    """


_ClientBatchUpdateScheduleResponseDeletesScheduleActionsScheduleActionSettingsScte35ReturnToNetworkSettingsTypeDef = TypedDict(
    "_ClientBatchUpdateScheduleResponseDeletesScheduleActionsScheduleActionSettingsScte35ReturnToNetworkSettingsTypeDef",
    {"SpliceEventId": int},
    total=False,
)


class ClientBatchUpdateScheduleResponseDeletesScheduleActionsScheduleActionSettingsScte35ReturnToNetworkSettingsTypeDef(
    _ClientBatchUpdateScheduleResponseDeletesScheduleActionsScheduleActionSettingsScte35ReturnToNetworkSettingsTypeDef
):
    """
    Type definition for
    `ClientBatchUpdateScheduleResponseDeletesScheduleActionsScheduleActionSettings`
    `Scte35ReturnToNetworkSettings`

    - **SpliceEventId** *(integer) --* The splice_event_id for the SCTE-35 splice_insert, as defined
    in SCTE-35.
    """


_ClientBatchUpdateScheduleResponseDeletesScheduleActionsScheduleActionSettingsScte35SpliceInsertSettingsTypeDef = TypedDict(
    "_ClientBatchUpdateScheduleResponseDeletesScheduleActionsScheduleActionSettingsScte35SpliceInsertSettingsTypeDef",
    {"Duration": int, "SpliceEventId": int},
    total=False,
)


class ClientBatchUpdateScheduleResponseDeletesScheduleActionsScheduleActionSettingsScte35SpliceInsertSettingsTypeDef(
    _ClientBatchUpdateScheduleResponseDeletesScheduleActionsScheduleActionSettingsScte35SpliceInsertSettingsTypeDef
):
    """
    Type definition for
    `ClientBatchUpdateScheduleResponseDeletesScheduleActionsScheduleActionSettings`
    `Scte35SpliceInsertSettings`

    - **Duration** *(integer) --* Optional, the duration for the splice_insert, in 90 KHz ticks. To
    convert seconds to ticks, multiple the seconds by 90,000. If you enter a duration, there is an
    expectation that the downstream system can read the duration and cue in at that time. If you do
    not enter a duration, the splice_insert will continue indefinitely and there is an expectation
    that you will enter a return_to_network to end the splice_insert at the appropriate time.

    - **SpliceEventId** *(integer) --* The splice_event_id for the SCTE-35 splice_insert, as defined
    in SCTE-35.
    """


_ClientBatchUpdateScheduleResponseDeletesScheduleActionsScheduleActionSettingsScte35TimeSignalSettingsScte35DescriptorsScte35DescriptorSettingsSegmentationDescriptorScte35DescriptorSettingsDeliveryRestrictionsTypeDef = TypedDict(
    "_ClientBatchUpdateScheduleResponseDeletesScheduleActionsScheduleActionSettingsScte35TimeSignalSettingsScte35DescriptorsScte35DescriptorSettingsSegmentationDescriptorScte35DescriptorSettingsDeliveryRestrictionsTypeDef",
    {
        "ArchiveAllowedFlag": str,
        "DeviceRestrictions": str,
        "NoRegionalBlackoutFlag": str,
        "WebDeliveryAllowedFlag": str,
    },
    total=False,
)


class ClientBatchUpdateScheduleResponseDeletesScheduleActionsScheduleActionSettingsScte35TimeSignalSettingsScte35DescriptorsScte35DescriptorSettingsSegmentationDescriptorScte35DescriptorSettingsDeliveryRestrictionsTypeDef(
    _ClientBatchUpdateScheduleResponseDeletesScheduleActionsScheduleActionSettingsScte35TimeSignalSettingsScte35DescriptorsScte35DescriptorSettingsSegmentationDescriptorScte35DescriptorSettingsDeliveryRestrictionsTypeDef
):
    """
    Type definition for
    `ClientBatchUpdateScheduleResponseDeletesScheduleActionsScheduleActionSettingsScte35TimeSignalSettingsScte35DescriptorsScte35DescriptorSettingsSegmentationDescriptorScte35DescriptorSettings`
    `DeliveryRestrictions`

    - **ArchiveAllowedFlag** *(string) --* Corresponds to SCTE-35 archive_allowed_flag.

    - **DeviceRestrictions** *(string) --* Corresponds to SCTE-35 device_restrictions parameter.

    - **NoRegionalBlackoutFlag** *(string) --* Corresponds to SCTE-35 no_regional_blackout_flag
    parameter.

    - **WebDeliveryAllowedFlag** *(string) --* Corresponds to SCTE-35 web_delivery_allowed_flag
    parameter.
    """


_ClientBatchUpdateScheduleResponseDeletesScheduleActionsScheduleActionSettingsScte35TimeSignalSettingsScte35DescriptorsScte35DescriptorSettingsSegmentationDescriptorScte35DescriptorSettingsTypeDef = TypedDict(
    "_ClientBatchUpdateScheduleResponseDeletesScheduleActionsScheduleActionSettingsScte35TimeSignalSettingsScte35DescriptorsScte35DescriptorSettingsSegmentationDescriptorScte35DescriptorSettingsTypeDef",
    {
        "DeliveryRestrictions": ClientBatchUpdateScheduleResponseDeletesScheduleActionsScheduleActionSettingsScte35TimeSignalSettingsScte35DescriptorsScte35DescriptorSettingsSegmentationDescriptorScte35DescriptorSettingsDeliveryRestrictionsTypeDef,
        "SegmentNum": int,
        "SegmentationCancelIndicator": str,
        "SegmentationDuration": int,
        "SegmentationEventId": int,
        "SegmentationTypeId": int,
        "SegmentationUpid": str,
        "SegmentationUpidType": int,
        "SegmentsExpected": int,
        "SubSegmentNum": int,
        "SubSegmentsExpected": int,
    },
    total=False,
)


class ClientBatchUpdateScheduleResponseDeletesScheduleActionsScheduleActionSettingsScte35TimeSignalSettingsScte35DescriptorsScte35DescriptorSettingsSegmentationDescriptorScte35DescriptorSettingsTypeDef(
    _ClientBatchUpdateScheduleResponseDeletesScheduleActionsScheduleActionSettingsScte35TimeSignalSettingsScte35DescriptorsScte35DescriptorSettingsSegmentationDescriptorScte35DescriptorSettingsTypeDef
):
    """
    Type definition for
    `ClientBatchUpdateScheduleResponseDeletesScheduleActionsScheduleActionSettingsScte35TimeSignalSettingsScte35DescriptorsScte35DescriptorSettings`
    `SegmentationDescriptorScte35DescriptorSettings`

    - **DeliveryRestrictions** *(dict) --* Holds the four SCTE-35 delivery restriction parameters.

      - **ArchiveAllowedFlag** *(string) --* Corresponds to SCTE-35 archive_allowed_flag.

      - **DeviceRestrictions** *(string) --* Corresponds to SCTE-35 device_restrictions parameter.

      - **NoRegionalBlackoutFlag** *(string) --* Corresponds to SCTE-35 no_regional_blackout_flag
      parameter.

      - **WebDeliveryAllowedFlag** *(string) --* Corresponds to SCTE-35 web_delivery_allowed_flag
      parameter.

    - **SegmentNum** *(integer) --* Corresponds to SCTE-35 segment_num. A value that is valid for
    the specified segmentation_type_id.

    - **SegmentationCancelIndicator** *(string) --* Corresponds to SCTE-35
    segmentation_event_cancel_indicator.

    - **SegmentationDuration** *(integer) --* Corresponds to SCTE-35 segmentation_duration.
    Optional. The duration for the time_signal, in 90 KHz ticks. To convert seconds to ticks,
    multiple the seconds by 90,000. Enter time in 90 KHz clock ticks. If you do not enter a
    duration, the time_signal will continue until you insert a cancellation message.

    - **SegmentationEventId** *(integer) --* Corresponds to SCTE-35 segmentation_event_id.

    - **SegmentationTypeId** *(integer) --* Corresponds to SCTE-35 segmentation_type_id. One of the
    segmentation_type_id values listed in the SCTE-35 specification. On the console, enter the ID in
    decimal (for example, "52"). In the CLI, API, or an SDK, enter the ID in hex (for example,
    "0x34") or decimal (for example, "52").

    - **SegmentationUpid** *(string) --* Corresponds to SCTE-35 segmentation_upid. Enter a string
    containing the hexadecimal representation of the characters that make up the SCTE-35
    segmentation_upid value. Must contain an even number of hex characters. Do not include spaces
    between each hex pair. For example, the ASCII "ADS Information" becomes hex
    "41445320496e666f726d6174696f6e.

    - **SegmentationUpidType** *(integer) --* Corresponds to SCTE-35 segmentation_upid_type. On the
    console, enter one of the types listed in the SCTE-35 specification, converted to a decimal. For
    example, "0x0C" hex from the specification is "12" in decimal. In the CLI, API, or an SDK, enter
    one of the types listed in the SCTE-35 specification, in either hex (for example, "0x0C" ) or in
    decimal (for example, "12").

    - **SegmentsExpected** *(integer) --* Corresponds to SCTE-35 segments_expected. A value that is
    valid for the specified segmentation_type_id.

    - **SubSegmentNum** *(integer) --* Corresponds to SCTE-35 sub_segment_num. A value that is valid
    for the specified segmentation_type_id.

    - **SubSegmentsExpected** *(integer) --* Corresponds to SCTE-35 sub_segments_expected. A value
    that is valid for the specified segmentation_type_id.
    """


_ClientBatchUpdateScheduleResponseDeletesScheduleActionsScheduleActionSettingsScte35TimeSignalSettingsScte35DescriptorsScte35DescriptorSettingsTypeDef = TypedDict(
    "_ClientBatchUpdateScheduleResponseDeletesScheduleActionsScheduleActionSettingsScte35TimeSignalSettingsScte35DescriptorsScte35DescriptorSettingsTypeDef",
    {
        "SegmentationDescriptorScte35DescriptorSettings": ClientBatchUpdateScheduleResponseDeletesScheduleActionsScheduleActionSettingsScte35TimeSignalSettingsScte35DescriptorsScte35DescriptorSettingsSegmentationDescriptorScte35DescriptorSettingsTypeDef
    },
    total=False,
)


class ClientBatchUpdateScheduleResponseDeletesScheduleActionsScheduleActionSettingsScte35TimeSignalSettingsScte35DescriptorsScte35DescriptorSettingsTypeDef(
    _ClientBatchUpdateScheduleResponseDeletesScheduleActionsScheduleActionSettingsScte35TimeSignalSettingsScte35DescriptorsScte35DescriptorSettingsTypeDef
):
    """
    Type definition for
    `ClientBatchUpdateScheduleResponseDeletesScheduleActionsScheduleActionSettingsScte35TimeSignalSettingsScte35Descriptors`
    `Scte35DescriptorSettings`

    - **SegmentationDescriptorScte35DescriptorSettings** *(dict) --* SCTE-35 Segmentation
    Descriptor.

      - **DeliveryRestrictions** *(dict) --* Holds the four SCTE-35 delivery restriction parameters.

        - **ArchiveAllowedFlag** *(string) --* Corresponds to SCTE-35 archive_allowed_flag.

        - **DeviceRestrictions** *(string) --* Corresponds to SCTE-35 device_restrictions parameter.

        - **NoRegionalBlackoutFlag** *(string) --* Corresponds to SCTE-35 no_regional_blackout_flag
        parameter.

        - **WebDeliveryAllowedFlag** *(string) --* Corresponds to SCTE-35 web_delivery_allowed_flag
        parameter.

      - **SegmentNum** *(integer) --* Corresponds to SCTE-35 segment_num. A value that is valid for
      the specified segmentation_type_id.

      - **SegmentationCancelIndicator** *(string) --* Corresponds to SCTE-35
      segmentation_event_cancel_indicator.

      - **SegmentationDuration** *(integer) --* Corresponds to SCTE-35 segmentation_duration.
      Optional. The duration for the time_signal, in 90 KHz ticks. To convert seconds to ticks,
      multiple the seconds by 90,000. Enter time in 90 KHz clock ticks. If you do not enter a
      duration, the time_signal will continue until you insert a cancellation message.

      - **SegmentationEventId** *(integer) --* Corresponds to SCTE-35 segmentation_event_id.

      - **SegmentationTypeId** *(integer) --* Corresponds to SCTE-35 segmentation_type_id. One of
      the segmentation_type_id values listed in the SCTE-35 specification. On the console, enter the
      ID in decimal (for example, "52"). In the CLI, API, or an SDK, enter the ID in hex (for
      example, "0x34") or decimal (for example, "52").

      - **SegmentationUpid** *(string) --* Corresponds to SCTE-35 segmentation_upid. Enter a string
      containing the hexadecimal representation of the characters that make up the SCTE-35
      segmentation_upid value. Must contain an even number of hex characters. Do not include spaces
      between each hex pair. For example, the ASCII "ADS Information" becomes hex
      "41445320496e666f726d6174696f6e.

      - **SegmentationUpidType** *(integer) --* Corresponds to SCTE-35 segmentation_upid_type. On
      the console, enter one of the types listed in the SCTE-35 specification, converted to a
      decimal. For example, "0x0C" hex from the specification is "12" in decimal. In the CLI, API,
      or an SDK, enter one of the types listed in the SCTE-35 specification, in either hex (for
      example, "0x0C" ) or in decimal (for example, "12").

      - **SegmentsExpected** *(integer) --* Corresponds to SCTE-35 segments_expected. A value that
      is valid for the specified segmentation_type_id.

      - **SubSegmentNum** *(integer) --* Corresponds to SCTE-35 sub_segment_num. A value that is
      valid for the specified segmentation_type_id.

      - **SubSegmentsExpected** *(integer) --* Corresponds to SCTE-35 sub_segments_expected. A value
      that is valid for the specified segmentation_type_id.
    """


_ClientBatchUpdateScheduleResponseDeletesScheduleActionsScheduleActionSettingsScte35TimeSignalSettingsScte35DescriptorsTypeDef = TypedDict(
    "_ClientBatchUpdateScheduleResponseDeletesScheduleActionsScheduleActionSettingsScte35TimeSignalSettingsScte35DescriptorsTypeDef",
    {
        "Scte35DescriptorSettings": ClientBatchUpdateScheduleResponseDeletesScheduleActionsScheduleActionSettingsScte35TimeSignalSettingsScte35DescriptorsScte35DescriptorSettingsTypeDef
    },
    total=False,
)


class ClientBatchUpdateScheduleResponseDeletesScheduleActionsScheduleActionSettingsScte35TimeSignalSettingsScte35DescriptorsTypeDef(
    _ClientBatchUpdateScheduleResponseDeletesScheduleActionsScheduleActionSettingsScte35TimeSignalSettingsScte35DescriptorsTypeDef
):
    """
    Type definition for
    `ClientBatchUpdateScheduleResponseDeletesScheduleActionsScheduleActionSettingsScte35TimeSignalSettings`
    `Scte35Descriptors`

    - **Scte35DescriptorSettings** *(dict) --* SCTE-35 Descriptor Settings.

      - **SegmentationDescriptorScte35DescriptorSettings** *(dict) --* SCTE-35 Segmentation
      Descriptor.

        - **DeliveryRestrictions** *(dict) --* Holds the four SCTE-35 delivery restriction
        parameters.

          - **ArchiveAllowedFlag** *(string) --* Corresponds to SCTE-35 archive_allowed_flag.

          - **DeviceRestrictions** *(string) --* Corresponds to SCTE-35 device_restrictions
          parameter.

          - **NoRegionalBlackoutFlag** *(string) --* Corresponds to SCTE-35
          no_regional_blackout_flag parameter.

          - **WebDeliveryAllowedFlag** *(string) --* Corresponds to SCTE-35
          web_delivery_allowed_flag parameter.

        - **SegmentNum** *(integer) --* Corresponds to SCTE-35 segment_num. A value that is valid
        for the specified segmentation_type_id.

        - **SegmentationCancelIndicator** *(string) --* Corresponds to SCTE-35
        segmentation_event_cancel_indicator.

        - **SegmentationDuration** *(integer) --* Corresponds to SCTE-35 segmentation_duration.
        Optional. The duration for the time_signal, in 90 KHz ticks. To convert seconds to ticks,
        multiple the seconds by 90,000. Enter time in 90 KHz clock ticks. If you do not enter a
        duration, the time_signal will continue until you insert a cancellation message.

        - **SegmentationEventId** *(integer) --* Corresponds to SCTE-35 segmentation_event_id.

        - **SegmentationTypeId** *(integer) --* Corresponds to SCTE-35 segmentation_type_id. One of
        the segmentation_type_id values listed in the SCTE-35 specification. On the console, enter
        the ID in decimal (for example, "52"). In the CLI, API, or an SDK, enter the ID in hex (for
        example, "0x34") or decimal (for example, "52").

        - **SegmentationUpid** *(string) --* Corresponds to SCTE-35 segmentation_upid. Enter a
        string containing the hexadecimal representation of the characters that make up the SCTE-35
        segmentation_upid value. Must contain an even number of hex characters. Do not include
        spaces between each hex pair. For example, the ASCII "ADS Information" becomes hex
        "41445320496e666f726d6174696f6e.

        - **SegmentationUpidType** *(integer) --* Corresponds to SCTE-35 segmentation_upid_type. On
        the console, enter one of the types listed in the SCTE-35 specification, converted to a
        decimal. For example, "0x0C" hex from the specification is "12" in decimal. In the CLI, API,
        or an SDK, enter one of the types listed in the SCTE-35 specification, in either hex (for
        example, "0x0C" ) or in decimal (for example, "12").

        - **SegmentsExpected** *(integer) --* Corresponds to SCTE-35 segments_expected. A value that
        is valid for the specified segmentation_type_id.

        - **SubSegmentNum** *(integer) --* Corresponds to SCTE-35 sub_segment_num. A value that is
        valid for the specified segmentation_type_id.

        - **SubSegmentsExpected** *(integer) --* Corresponds to SCTE-35 sub_segments_expected. A
        value that is valid for the specified segmentation_type_id.
    """


_ClientBatchUpdateScheduleResponseDeletesScheduleActionsScheduleActionSettingsScte35TimeSignalSettingsTypeDef = TypedDict(
    "_ClientBatchUpdateScheduleResponseDeletesScheduleActionsScheduleActionSettingsScte35TimeSignalSettingsTypeDef",
    {
        "Scte35Descriptors": List[
            ClientBatchUpdateScheduleResponseDeletesScheduleActionsScheduleActionSettingsScte35TimeSignalSettingsScte35DescriptorsTypeDef
        ]
    },
    total=False,
)


class ClientBatchUpdateScheduleResponseDeletesScheduleActionsScheduleActionSettingsScte35TimeSignalSettingsTypeDef(
    _ClientBatchUpdateScheduleResponseDeletesScheduleActionsScheduleActionSettingsScte35TimeSignalSettingsTypeDef
):
    """
    Type definition for
    `ClientBatchUpdateScheduleResponseDeletesScheduleActionsScheduleActionSettings`
    `Scte35TimeSignalSettings`

    - **Scte35Descriptors** *(list) --* The list of SCTE-35 descriptors accompanying the SCTE-35
    time_signal.

      - *(dict) --* Holds one set of SCTE-35 Descriptor Settings.

        - **Scte35DescriptorSettings** *(dict) --* SCTE-35 Descriptor Settings.

          - **SegmentationDescriptorScte35DescriptorSettings** *(dict) --* SCTE-35 Segmentation
          Descriptor.

            - **DeliveryRestrictions** *(dict) --* Holds the four SCTE-35 delivery restriction
            parameters.

              - **ArchiveAllowedFlag** *(string) --* Corresponds to SCTE-35 archive_allowed_flag.

              - **DeviceRestrictions** *(string) --* Corresponds to SCTE-35 device_restrictions
              parameter.

              - **NoRegionalBlackoutFlag** *(string) --* Corresponds to SCTE-35
              no_regional_blackout_flag parameter.

              - **WebDeliveryAllowedFlag** *(string) --* Corresponds to SCTE-35
              web_delivery_allowed_flag parameter.

            - **SegmentNum** *(integer) --* Corresponds to SCTE-35 segment_num. A value that is
            valid for the specified segmentation_type_id.

            - **SegmentationCancelIndicator** *(string) --* Corresponds to SCTE-35
            segmentation_event_cancel_indicator.

            - **SegmentationDuration** *(integer) --* Corresponds to SCTE-35 segmentation_duration.
            Optional. The duration for the time_signal, in 90 KHz ticks. To convert seconds to
            ticks, multiple the seconds by 90,000. Enter time in 90 KHz clock ticks. If you do not
            enter a duration, the time_signal will continue until you insert a cancellation message.

            - **SegmentationEventId** *(integer) --* Corresponds to SCTE-35 segmentation_event_id.

            - **SegmentationTypeId** *(integer) --* Corresponds to SCTE-35 segmentation_type_id. One
            of the segmentation_type_id values listed in the SCTE-35 specification. On the console,
            enter the ID in decimal (for example, "52"). In the CLI, API, or an SDK, enter the ID in
            hex (for example, "0x34") or decimal (for example, "52").

            - **SegmentationUpid** *(string) --* Corresponds to SCTE-35 segmentation_upid. Enter a
            string containing the hexadecimal representation of the characters that make up the
            SCTE-35 segmentation_upid value. Must contain an even number of hex characters. Do not
            include spaces between each hex pair. For example, the ASCII "ADS Information" becomes
            hex "41445320496e666f726d6174696f6e.

            - **SegmentationUpidType** *(integer) --* Corresponds to SCTE-35 segmentation_upid_type.
            On the console, enter one of the types listed in the SCTE-35 specification, converted to
            a decimal. For example, "0x0C" hex from the specification is "12" in decimal. In the
            CLI, API, or an SDK, enter one of the types listed in the SCTE-35 specification, in
            either hex (for example, "0x0C" ) or in decimal (for example, "12").

            - **SegmentsExpected** *(integer) --* Corresponds to SCTE-35 segments_expected. A value
            that is valid for the specified segmentation_type_id.

            - **SubSegmentNum** *(integer) --* Corresponds to SCTE-35 sub_segment_num. A value that
            is valid for the specified segmentation_type_id.

            - **SubSegmentsExpected** *(integer) --* Corresponds to SCTE-35 sub_segments_expected. A
            value that is valid for the specified segmentation_type_id.
    """


_ClientBatchUpdateScheduleResponseDeletesScheduleActionsScheduleActionSettingsStaticImageActivateSettingsImageTypeDef = TypedDict(
    "_ClientBatchUpdateScheduleResponseDeletesScheduleActionsScheduleActionSettingsStaticImageActivateSettingsImageTypeDef",
    {"PasswordParam": str, "Uri": str, "Username": str},
    total=False,
)


class ClientBatchUpdateScheduleResponseDeletesScheduleActionsScheduleActionSettingsStaticImageActivateSettingsImageTypeDef(
    _ClientBatchUpdateScheduleResponseDeletesScheduleActionsScheduleActionSettingsStaticImageActivateSettingsImageTypeDef
):
    """
    Type definition for
    `ClientBatchUpdateScheduleResponseDeletesScheduleActionsScheduleActionSettingsStaticImageActivateSettings`
    `Image`

    - **PasswordParam** *(string) --* key used to extract the password from EC2 Parameter store

    - **Uri** *(string) --* Uniform Resource Identifier - This should be a path to a file accessible
    to the Live system (eg. a http:// URI) depending on the output type. For example, a RTMP
    destination should have a uri simliar to: "rtmp://fmsserver/live".

    - **Username** *(string) --* Documentation update needed
    """


_ClientBatchUpdateScheduleResponseDeletesScheduleActionsScheduleActionSettingsStaticImageActivateSettingsTypeDef = TypedDict(
    "_ClientBatchUpdateScheduleResponseDeletesScheduleActionsScheduleActionSettingsStaticImageActivateSettingsTypeDef",
    {
        "Duration": int,
        "FadeIn": int,
        "FadeOut": int,
        "Height": int,
        "Image": ClientBatchUpdateScheduleResponseDeletesScheduleActionsScheduleActionSettingsStaticImageActivateSettingsImageTypeDef,
        "ImageX": int,
        "ImageY": int,
        "Layer": int,
        "Opacity": int,
        "Width": int,
    },
    total=False,
)


class ClientBatchUpdateScheduleResponseDeletesScheduleActionsScheduleActionSettingsStaticImageActivateSettingsTypeDef(
    _ClientBatchUpdateScheduleResponseDeletesScheduleActionsScheduleActionSettingsStaticImageActivateSettingsTypeDef
):
    """
    Type definition for
    `ClientBatchUpdateScheduleResponseDeletesScheduleActionsScheduleActionSettings`
    `StaticImageActivateSettings`

    - **Duration** *(integer) --* The duration in milliseconds for the image to remain on the video.
    If omitted or set to 0 the duration is unlimited and the image will remain until it is
    explicitly deactivated.

    - **FadeIn** *(integer) --* The time in milliseconds for the image to fade in. The fade-in
    starts at the start time of the overlay. Default is 0 (no fade-in).

    - **FadeOut** *(integer) --* Applies only if a duration is specified. The time in milliseconds
    for the image to fade out. The fade-out starts when the duration time is hit, so it effectively
    extends the duration. Default is 0 (no fade-out).

    - **Height** *(integer) --* The height of the image when inserted into the video, in pixels. The
    overlay will be scaled up or down to the specified height. Leave blank to use the native height
    of the overlay.

    - **Image** *(dict) --* The location and filename of the image file to overlay on the video. The
    file must be a 32-bit BMP, PNG, or TGA file, and must not be larger (in pixels) than the input
    video.

      - **PasswordParam** *(string) --* key used to extract the password from EC2 Parameter store

      - **Uri** *(string) --* Uniform Resource Identifier - This should be a path to a file
      accessible to the Live system (eg. a http:// URI) depending on the output type. For example, a
      RTMP destination should have a uri simliar to: "rtmp://fmsserver/live".

      - **Username** *(string) --* Documentation update needed

    - **ImageX** *(integer) --* Placement of the left edge of the overlay relative to the left edge
    of the video frame, in pixels. 0 (the default) is the left edge of the frame. If the placement
    causes the overlay to extend beyond the right edge of the underlying video, then the overlay is
    cropped on the right.

    - **ImageY** *(integer) --* Placement of the top edge of the overlay relative to the top edge of
    the video frame, in pixels. 0 (the default) is the top edge of the frame. If the placement
    causes the overlay to extend beyond the bottom edge of the underlying video, then the overlay is
    cropped on the bottom.

    - **Layer** *(integer) --* The number of the layer, 0 to 7. There are 8 layers that can be
    overlaid on the video, each layer with a different image. The layers are in Z order, which means
    that overlays with higher values of layer are inserted on top of overlays with lower values of
    layer. Default is 0.

    - **Opacity** *(integer) --* Opacity of image where 0 is transparent and 100 is fully opaque.
    Default is 100.

    - **Width** *(integer) --* The width of the image when inserted into the video, in pixels. The
    overlay will be scaled up or down to the specified width. Leave blank to use the native width of
    the overlay.
    """


_ClientBatchUpdateScheduleResponseDeletesScheduleActionsScheduleActionSettingsStaticImageDeactivateSettingsTypeDef = TypedDict(
    "_ClientBatchUpdateScheduleResponseDeletesScheduleActionsScheduleActionSettingsStaticImageDeactivateSettingsTypeDef",
    {"FadeOut": int, "Layer": int},
    total=False,
)


class ClientBatchUpdateScheduleResponseDeletesScheduleActionsScheduleActionSettingsStaticImageDeactivateSettingsTypeDef(
    _ClientBatchUpdateScheduleResponseDeletesScheduleActionsScheduleActionSettingsStaticImageDeactivateSettingsTypeDef
):
    """
    Type definition for
    `ClientBatchUpdateScheduleResponseDeletesScheduleActionsScheduleActionSettings`
    `StaticImageDeactivateSettings`

    - **FadeOut** *(integer) --* The time in milliseconds for the image to fade out. Default is 0
    (no fade-out).

    - **Layer** *(integer) --* The image overlay layer to deactivate, 0 to 7. Default is 0.
    """


_ClientBatchUpdateScheduleResponseDeletesScheduleActionsScheduleActionSettingsTypeDef = TypedDict(
    "_ClientBatchUpdateScheduleResponseDeletesScheduleActionsScheduleActionSettingsTypeDef",
    {
        "HlsTimedMetadataSettings": ClientBatchUpdateScheduleResponseDeletesScheduleActionsScheduleActionSettingsHlsTimedMetadataSettingsTypeDef,
        "InputSwitchSettings": ClientBatchUpdateScheduleResponseDeletesScheduleActionsScheduleActionSettingsInputSwitchSettingsTypeDef,
        "PauseStateSettings": ClientBatchUpdateScheduleResponseDeletesScheduleActionsScheduleActionSettingsPauseStateSettingsTypeDef,
        "Scte35ReturnToNetworkSettings": ClientBatchUpdateScheduleResponseDeletesScheduleActionsScheduleActionSettingsScte35ReturnToNetworkSettingsTypeDef,
        "Scte35SpliceInsertSettings": ClientBatchUpdateScheduleResponseDeletesScheduleActionsScheduleActionSettingsScte35SpliceInsertSettingsTypeDef,
        "Scte35TimeSignalSettings": ClientBatchUpdateScheduleResponseDeletesScheduleActionsScheduleActionSettingsScte35TimeSignalSettingsTypeDef,
        "StaticImageActivateSettings": ClientBatchUpdateScheduleResponseDeletesScheduleActionsScheduleActionSettingsStaticImageActivateSettingsTypeDef,
        "StaticImageDeactivateSettings": ClientBatchUpdateScheduleResponseDeletesScheduleActionsScheduleActionSettingsStaticImageDeactivateSettingsTypeDef,
    },
    total=False,
)


class ClientBatchUpdateScheduleResponseDeletesScheduleActionsScheduleActionSettingsTypeDef(
    _ClientBatchUpdateScheduleResponseDeletesScheduleActionsScheduleActionSettingsTypeDef
):
    """
    Type definition for `ClientBatchUpdateScheduleResponseDeletesScheduleActions`
    `ScheduleActionSettings`

    - **HlsTimedMetadataSettings** *(dict) --* Action to insert HLS metadata

      - **Id3** *(string) --* Base64 string formatted according to the ID3 specification:
      http://id3.org/id3v2.4.0-structure

    - **InputSwitchSettings** *(dict) --* Action to switch the input

      - **InputAttachmentNameReference** *(string) --* The name of the input attachment (not the
      name of the input!) to switch to. The name is specified in the channel configuration.

      - **InputClippingSettings** *(dict) --* Settings to let you create a clip of the file input,
      in order to set up the input to ingest only a portion of the file.

        - **InputTimecodeSource** *(string) --* The source of the timecodes in the source being
        clipped.

        - **StartTimecode** *(dict) --* Settings to identify the start of the clip.

          - **Timecode** *(string) --* The timecode for the frame where you want to start the clip.
          Optional; if not specified, the clip starts at first frame in the file. Enter the timecode
          as HH:MM:SS:FF or HH:MM:SS;FF.

        - **StopTimecode** *(dict) --* Settings to identify the end of the clip.

          - **LastFrameClippingBehavior** *(string) --* If you specify a StopTimecode in an input
          (in order to clip the file), you can specify if you want the clip to exclude (the default)
          or include the frame specified by the timecode.

          - **Timecode** *(string) --* The timecode for the frame where you want to stop the clip.
          Optional; if not specified, the clip continues to the end of the file. Enter the timecode
          as HH:MM:SS:FF or HH:MM:SS;FF.

      - **UrlPath** *(list) --* The value for the variable portion of the URL for the dynamic input,
      for this instance of the input. Each time you use the same dynamic input in an input switch
      action, you can provide a different value, in order to connect the input to a different
      content source.

        - *(string) --* Placeholder documentation for __string

    - **PauseStateSettings** *(dict) --* Action to pause or unpause one or both channel pipelines

      - **Pipelines** *(list) --* Placeholder documentation for __listOfPipelinePauseStateSettings

        - *(dict) --* Settings for pausing a pipeline.

          - **PipelineId** *(string) --* Pipeline ID to pause ("PIPELINE_0" or "PIPELINE_1").

    - **Scte35ReturnToNetworkSettings** *(dict) --* Action to insert SCTE-35 return_to_network
    message

      - **SpliceEventId** *(integer) --* The splice_event_id for the SCTE-35 splice_insert, as
      defined in SCTE-35.

    - **Scte35SpliceInsertSettings** *(dict) --* Action to insert SCTE-35 splice_insert message

      - **Duration** *(integer) --* Optional, the duration for the splice_insert, in 90 KHz ticks.
      To convert seconds to ticks, multiple the seconds by 90,000. If you enter a duration, there is
      an expectation that the downstream system can read the duration and cue in at that time. If
      you do not enter a duration, the splice_insert will continue indefinitely and there is an
      expectation that you will enter a return_to_network to end the splice_insert at the
      appropriate time.

      - **SpliceEventId** *(integer) --* The splice_event_id for the SCTE-35 splice_insert, as
      defined in SCTE-35.

    - **Scte35TimeSignalSettings** *(dict) --* Action to insert SCTE-35 time_signal message

      - **Scte35Descriptors** *(list) --* The list of SCTE-35 descriptors accompanying the SCTE-35
      time_signal.

        - *(dict) --* Holds one set of SCTE-35 Descriptor Settings.

          - **Scte35DescriptorSettings** *(dict) --* SCTE-35 Descriptor Settings.

            - **SegmentationDescriptorScte35DescriptorSettings** *(dict) --* SCTE-35 Segmentation
            Descriptor.

              - **DeliveryRestrictions** *(dict) --* Holds the four SCTE-35 delivery restriction
              parameters.

                - **ArchiveAllowedFlag** *(string) --* Corresponds to SCTE-35 archive_allowed_flag.

                - **DeviceRestrictions** *(string) --* Corresponds to SCTE-35 device_restrictions
                parameter.

                - **NoRegionalBlackoutFlag** *(string) --* Corresponds to SCTE-35
                no_regional_blackout_flag parameter.

                - **WebDeliveryAllowedFlag** *(string) --* Corresponds to SCTE-35
                web_delivery_allowed_flag parameter.

              - **SegmentNum** *(integer) --* Corresponds to SCTE-35 segment_num. A value that is
              valid for the specified segmentation_type_id.

              - **SegmentationCancelIndicator** *(string) --* Corresponds to SCTE-35
              segmentation_event_cancel_indicator.

              - **SegmentationDuration** *(integer) --* Corresponds to SCTE-35
              segmentation_duration. Optional. The duration for the time_signal, in 90 KHz ticks. To
              convert seconds to ticks, multiple the seconds by 90,000. Enter time in 90 KHz clock
              ticks. If you do not enter a duration, the time_signal will continue until you insert
              a cancellation message.

              - **SegmentationEventId** *(integer) --* Corresponds to SCTE-35 segmentation_event_id.

              - **SegmentationTypeId** *(integer) --* Corresponds to SCTE-35 segmentation_type_id.
              One of the segmentation_type_id values listed in the SCTE-35 specification. On the
              console, enter the ID in decimal (for example, "52"). In the CLI, API, or an SDK,
              enter the ID in hex (for example, "0x34") or decimal (for example, "52").

              - **SegmentationUpid** *(string) --* Corresponds to SCTE-35 segmentation_upid. Enter a
              string containing the hexadecimal representation of the characters that make up the
              SCTE-35 segmentation_upid value. Must contain an even number of hex characters. Do not
              include spaces between each hex pair. For example, the ASCII "ADS Information" becomes
              hex "41445320496e666f726d6174696f6e.

              - **SegmentationUpidType** *(integer) --* Corresponds to SCTE-35
              segmentation_upid_type. On the console, enter one of the types listed in the SCTE-35
              specification, converted to a decimal. For example, "0x0C" hex from the specification
              is "12" in decimal. In the CLI, API, or an SDK, enter one of the types listed in the
              SCTE-35 specification, in either hex (for example, "0x0C" ) or in decimal (for
              example, "12").

              - **SegmentsExpected** *(integer) --* Corresponds to SCTE-35 segments_expected. A
              value that is valid for the specified segmentation_type_id.

              - **SubSegmentNum** *(integer) --* Corresponds to SCTE-35 sub_segment_num. A value
              that is valid for the specified segmentation_type_id.

              - **SubSegmentsExpected** *(integer) --* Corresponds to SCTE-35 sub_segments_expected.
              A value that is valid for the specified segmentation_type_id.

    - **StaticImageActivateSettings** *(dict) --* Action to activate a static image overlay

      - **Duration** *(integer) --* The duration in milliseconds for the image to remain on the
      video. If omitted or set to 0 the duration is unlimited and the image will remain until it is
      explicitly deactivated.

      - **FadeIn** *(integer) --* The time in milliseconds for the image to fade in. The fade-in
      starts at the start time of the overlay. Default is 0 (no fade-in).

      - **FadeOut** *(integer) --* Applies only if a duration is specified. The time in milliseconds
      for the image to fade out. The fade-out starts when the duration time is hit, so it
      effectively extends the duration. Default is 0 (no fade-out).

      - **Height** *(integer) --* The height of the image when inserted into the video, in pixels.
      The overlay will be scaled up or down to the specified height. Leave blank to use the native
      height of the overlay.

      - **Image** *(dict) --* The location and filename of the image file to overlay on the video.
      The file must be a 32-bit BMP, PNG, or TGA file, and must not be larger (in pixels) than the
      input video.

        - **PasswordParam** *(string) --* key used to extract the password from EC2 Parameter store

        - **Uri** *(string) --* Uniform Resource Identifier - This should be a path to a file
        accessible to the Live system (eg. a http:// URI) depending on the output type. For example,
        a RTMP destination should have a uri simliar to: "rtmp://fmsserver/live".

        - **Username** *(string) --* Documentation update needed

      - **ImageX** *(integer) --* Placement of the left edge of the overlay relative to the left
      edge of the video frame, in pixels. 0 (the default) is the left edge of the frame. If the
      placement causes the overlay to extend beyond the right edge of the underlying video, then the
      overlay is cropped on the right.

      - **ImageY** *(integer) --* Placement of the top edge of the overlay relative to the top edge
      of the video frame, in pixels. 0 (the default) is the top edge of the frame. If the placement
      causes the overlay to extend beyond the bottom edge of the underlying video, then the overlay
      is cropped on the bottom.

      - **Layer** *(integer) --* The number of the layer, 0 to 7. There are 8 layers that can be
      overlaid on the video, each layer with a different image. The layers are in Z order, which
      means that overlays with higher values of layer are inserted on top of overlays with lower
      values of layer. Default is 0.

      - **Opacity** *(integer) --* Opacity of image where 0 is transparent and 100 is fully opaque.
      Default is 100.

      - **Width** *(integer) --* The width of the image when inserted into the video, in pixels. The
      overlay will be scaled up or down to the specified width. Leave blank to use the native width
      of the overlay.

    - **StaticImageDeactivateSettings** *(dict) --* Action to deactivate a static image overlay

      - **FadeOut** *(integer) --* The time in milliseconds for the image to fade out. Default is 0
      (no fade-out).

      - **Layer** *(integer) --* The image overlay layer to deactivate, 0 to 7. Default is 0.
    """


_ClientBatchUpdateScheduleResponseDeletesScheduleActionsScheduleActionStartSettingsFixedModeScheduleActionStartSettingsTypeDef = TypedDict(
    "_ClientBatchUpdateScheduleResponseDeletesScheduleActionsScheduleActionStartSettingsFixedModeScheduleActionStartSettingsTypeDef",
    {"Time": str},
    total=False,
)


class ClientBatchUpdateScheduleResponseDeletesScheduleActionsScheduleActionStartSettingsFixedModeScheduleActionStartSettingsTypeDef(
    _ClientBatchUpdateScheduleResponseDeletesScheduleActionsScheduleActionStartSettingsFixedModeScheduleActionStartSettingsTypeDef
):
    """
    Type definition for
    `ClientBatchUpdateScheduleResponseDeletesScheduleActionsScheduleActionStartSettings`
    `FixedModeScheduleActionStartSettings`

    - **Time** *(string) --* Start time for the action to start in the channel. (Not the time for
    the action to be added to the schedule: actions are always added to the schedule immediately.)
    UTC format: yyyy-mm-ddThh:mm:ss.nnnZ. All the letters are digits (for example, mm might be 01)
    except for the two constants "T" for time and "Z" for "UTC format".
    """


_ClientBatchUpdateScheduleResponseDeletesScheduleActionsScheduleActionStartSettingsFollowModeScheduleActionStartSettingsTypeDef = TypedDict(
    "_ClientBatchUpdateScheduleResponseDeletesScheduleActionsScheduleActionStartSettingsFollowModeScheduleActionStartSettingsTypeDef",
    {"FollowPoint": str, "ReferenceActionName": str},
    total=False,
)


class ClientBatchUpdateScheduleResponseDeletesScheduleActionsScheduleActionStartSettingsFollowModeScheduleActionStartSettingsTypeDef(
    _ClientBatchUpdateScheduleResponseDeletesScheduleActionsScheduleActionStartSettingsFollowModeScheduleActionStartSettingsTypeDef
):
    """
    Type definition for
    `ClientBatchUpdateScheduleResponseDeletesScheduleActionsScheduleActionStartSettings`
    `FollowModeScheduleActionStartSettings`

    - **FollowPoint** *(string) --* Identifies whether this action starts relative to the start or
    relative to the end of the reference action.

    - **ReferenceActionName** *(string) --* The action name of another action that this one refers
    to.
    """


_ClientBatchUpdateScheduleResponseDeletesScheduleActionsScheduleActionStartSettingsTypeDef = TypedDict(
    "_ClientBatchUpdateScheduleResponseDeletesScheduleActionsScheduleActionStartSettingsTypeDef",
    {
        "FixedModeScheduleActionStartSettings": ClientBatchUpdateScheduleResponseDeletesScheduleActionsScheduleActionStartSettingsFixedModeScheduleActionStartSettingsTypeDef,
        "FollowModeScheduleActionStartSettings": ClientBatchUpdateScheduleResponseDeletesScheduleActionsScheduleActionStartSettingsFollowModeScheduleActionStartSettingsTypeDef,
        "ImmediateModeScheduleActionStartSettings": Dict[str, Any],
    },
    total=False,
)


class ClientBatchUpdateScheduleResponseDeletesScheduleActionsScheduleActionStartSettingsTypeDef(
    _ClientBatchUpdateScheduleResponseDeletesScheduleActionsScheduleActionStartSettingsTypeDef
):
    """
    Type definition for `ClientBatchUpdateScheduleResponseDeletesScheduleActions`
    `ScheduleActionStartSettings`

    - **FixedModeScheduleActionStartSettings** *(dict) --* Option for specifying the start time for
    an action.

      - **Time** *(string) --* Start time for the action to start in the channel. (Not the time for
      the action to be added to the schedule: actions are always added to the schedule immediately.)
      UTC format: yyyy-mm-ddThh:mm:ss.nnnZ. All the letters are digits (for example, mm might be 01)
      except for the two constants "T" for time and "Z" for "UTC format".

    - **FollowModeScheduleActionStartSettings** *(dict) --* Option for specifying an action as
    relative to another action.

      - **FollowPoint** *(string) --* Identifies whether this action starts relative to the start or
      relative to the end of the reference action.

      - **ReferenceActionName** *(string) --* The action name of another action that this one refers
      to.

    - **ImmediateModeScheduleActionStartSettings** *(dict) --* Option for specifying an action that
    should be applied immediately.
    """


_ClientBatchUpdateScheduleResponseDeletesScheduleActionsTypeDef = TypedDict(
    "_ClientBatchUpdateScheduleResponseDeletesScheduleActionsTypeDef",
    {
        "ActionName": str,
        "ScheduleActionSettings": ClientBatchUpdateScheduleResponseDeletesScheduleActionsScheduleActionSettingsTypeDef,
        "ScheduleActionStartSettings": ClientBatchUpdateScheduleResponseDeletesScheduleActionsScheduleActionStartSettingsTypeDef,
    },
    total=False,
)


class ClientBatchUpdateScheduleResponseDeletesScheduleActionsTypeDef(
    _ClientBatchUpdateScheduleResponseDeletesScheduleActionsTypeDef
):
    """
    Type definition for `ClientBatchUpdateScheduleResponseDeletes` `ScheduleActions`

    - **ActionName** *(string) --* The name of the action, must be unique within the schedule. This
    name provides the main reference to an action once it is added to the schedule. A name is unique
    if it is no longer in the schedule. The schedule is automatically cleaned up to remove actions
    with a start time of more than 1 hour ago (approximately) so at that point a name can be reused.

    - **ScheduleActionSettings** *(dict) --* Settings for this schedule action.

      - **HlsTimedMetadataSettings** *(dict) --* Action to insert HLS metadata

        - **Id3** *(string) --* Base64 string formatted according to the ID3 specification:
        http://id3.org/id3v2.4.0-structure

      - **InputSwitchSettings** *(dict) --* Action to switch the input

        - **InputAttachmentNameReference** *(string) --* The name of the input attachment (not the
        name of the input!) to switch to. The name is specified in the channel configuration.

        - **InputClippingSettings** *(dict) --* Settings to let you create a clip of the file input,
        in order to set up the input to ingest only a portion of the file.

          - **InputTimecodeSource** *(string) --* The source of the timecodes in the source being
          clipped.

          - **StartTimecode** *(dict) --* Settings to identify the start of the clip.

            - **Timecode** *(string) --* The timecode for the frame where you want to start the
            clip. Optional; if not specified, the clip starts at first frame in the file. Enter the
            timecode as HH:MM:SS:FF or HH:MM:SS;FF.

          - **StopTimecode** *(dict) --* Settings to identify the end of the clip.

            - **LastFrameClippingBehavior** *(string) --* If you specify a StopTimecode in an input
            (in order to clip the file), you can specify if you want the clip to exclude (the
            default) or include the frame specified by the timecode.

            - **Timecode** *(string) --* The timecode for the frame where you want to stop the clip.
            Optional; if not specified, the clip continues to the end of the file. Enter the
            timecode as HH:MM:SS:FF or HH:MM:SS;FF.

        - **UrlPath** *(list) --* The value for the variable portion of the URL for the dynamic
        input, for this instance of the input. Each time you use the same dynamic input in an input
        switch action, you can provide a different value, in order to connect the input to a
        different content source.

          - *(string) --* Placeholder documentation for __string

      - **PauseStateSettings** *(dict) --* Action to pause or unpause one or both channel pipelines

        - **Pipelines** *(list) --* Placeholder documentation for __listOfPipelinePauseStateSettings

          - *(dict) --* Settings for pausing a pipeline.

            - **PipelineId** *(string) --* Pipeline ID to pause ("PIPELINE_0" or "PIPELINE_1").

      - **Scte35ReturnToNetworkSettings** *(dict) --* Action to insert SCTE-35 return_to_network
      message

        - **SpliceEventId** *(integer) --* The splice_event_id for the SCTE-35 splice_insert, as
        defined in SCTE-35.

      - **Scte35SpliceInsertSettings** *(dict) --* Action to insert SCTE-35 splice_insert message

        - **Duration** *(integer) --* Optional, the duration for the splice_insert, in 90 KHz ticks.
        To convert seconds to ticks, multiple the seconds by 90,000. If you enter a duration, there
        is an expectation that the downstream system can read the duration and cue in at that time.
        If you do not enter a duration, the splice_insert will continue indefinitely and there is an
        expectation that you will enter a return_to_network to end the splice_insert at the
        appropriate time.

        - **SpliceEventId** *(integer) --* The splice_event_id for the SCTE-35 splice_insert, as
        defined in SCTE-35.

      - **Scte35TimeSignalSettings** *(dict) --* Action to insert SCTE-35 time_signal message

        - **Scte35Descriptors** *(list) --* The list of SCTE-35 descriptors accompanying the SCTE-35
        time_signal.

          - *(dict) --* Holds one set of SCTE-35 Descriptor Settings.

            - **Scte35DescriptorSettings** *(dict) --* SCTE-35 Descriptor Settings.

              - **SegmentationDescriptorScte35DescriptorSettings** *(dict) --* SCTE-35 Segmentation
              Descriptor.

                - **DeliveryRestrictions** *(dict) --* Holds the four SCTE-35 delivery restriction
                parameters.

                  - **ArchiveAllowedFlag** *(string) --* Corresponds to SCTE-35
                  archive_allowed_flag.

                  - **DeviceRestrictions** *(string) --* Corresponds to SCTE-35 device_restrictions
                  parameter.

                  - **NoRegionalBlackoutFlag** *(string) --* Corresponds to SCTE-35
                  no_regional_blackout_flag parameter.

                  - **WebDeliveryAllowedFlag** *(string) --* Corresponds to SCTE-35
                  web_delivery_allowed_flag parameter.

                - **SegmentNum** *(integer) --* Corresponds to SCTE-35 segment_num. A value that is
                valid for the specified segmentation_type_id.

                - **SegmentationCancelIndicator** *(string) --* Corresponds to SCTE-35
                segmentation_event_cancel_indicator.

                - **SegmentationDuration** *(integer) --* Corresponds to SCTE-35
                segmentation_duration. Optional. The duration for the time_signal, in 90 KHz ticks.
                To convert seconds to ticks, multiple the seconds by 90,000. Enter time in 90 KHz
                clock ticks. If you do not enter a duration, the time_signal will continue until you
                insert a cancellation message.

                - **SegmentationEventId** *(integer) --* Corresponds to SCTE-35
                segmentation_event_id.

                - **SegmentationTypeId** *(integer) --* Corresponds to SCTE-35 segmentation_type_id.
                One of the segmentation_type_id values listed in the SCTE-35 specification. On the
                console, enter the ID in decimal (for example, "52"). In the CLI, API, or an SDK,
                enter the ID in hex (for example, "0x34") or decimal (for example, "52").

                - **SegmentationUpid** *(string) --* Corresponds to SCTE-35 segmentation_upid. Enter
                a string containing the hexadecimal representation of the characters that make up
                the SCTE-35 segmentation_upid value. Must contain an even number of hex characters.
                Do not include spaces between each hex pair. For example, the ASCII "ADS
                Information" becomes hex "41445320496e666f726d6174696f6e.

                - **SegmentationUpidType** *(integer) --* Corresponds to SCTE-35
                segmentation_upid_type. On the console, enter one of the types listed in the SCTE-35
                specification, converted to a decimal. For example, "0x0C" hex from the
                specification is "12" in decimal. In the CLI, API, or an SDK, enter one of the types
                listed in the SCTE-35 specification, in either hex (for example, "0x0C" ) or in
                decimal (for example, "12").

                - **SegmentsExpected** *(integer) --* Corresponds to SCTE-35 segments_expected. A
                value that is valid for the specified segmentation_type_id.

                - **SubSegmentNum** *(integer) --* Corresponds to SCTE-35 sub_segment_num. A value
                that is valid for the specified segmentation_type_id.

                - **SubSegmentsExpected** *(integer) --* Corresponds to SCTE-35
                sub_segments_expected. A value that is valid for the specified segmentation_type_id.

      - **StaticImageActivateSettings** *(dict) --* Action to activate a static image overlay

        - **Duration** *(integer) --* The duration in milliseconds for the image to remain on the
        video. If omitted or set to 0 the duration is unlimited and the image will remain until it
        is explicitly deactivated.

        - **FadeIn** *(integer) --* The time in milliseconds for the image to fade in. The fade-in
        starts at the start time of the overlay. Default is 0 (no fade-in).

        - **FadeOut** *(integer) --* Applies only if a duration is specified. The time in
        milliseconds for the image to fade out. The fade-out starts when the duration time is hit,
        so it effectively extends the duration. Default is 0 (no fade-out).

        - **Height** *(integer) --* The height of the image when inserted into the video, in pixels.
        The overlay will be scaled up or down to the specified height. Leave blank to use the native
        height of the overlay.

        - **Image** *(dict) --* The location and filename of the image file to overlay on the video.
        The file must be a 32-bit BMP, PNG, or TGA file, and must not be larger (in pixels) than the
        input video.

          - **PasswordParam** *(string) --* key used to extract the password from EC2 Parameter
          store

          - **Uri** *(string) --* Uniform Resource Identifier - This should be a path to a file
          accessible to the Live system (eg. a http:// URI) depending on the output type. For
          example, a RTMP destination should have a uri simliar to: "rtmp://fmsserver/live".

          - **Username** *(string) --* Documentation update needed

        - **ImageX** *(integer) --* Placement of the left edge of the overlay relative to the left
        edge of the video frame, in pixels. 0 (the default) is the left edge of the frame. If the
        placement causes the overlay to extend beyond the right edge of the underlying video, then
        the overlay is cropped on the right.

        - **ImageY** *(integer) --* Placement of the top edge of the overlay relative to the top
        edge of the video frame, in pixels. 0 (the default) is the top edge of the frame. If the
        placement causes the overlay to extend beyond the bottom edge of the underlying video, then
        the overlay is cropped on the bottom.

        - **Layer** *(integer) --* The number of the layer, 0 to 7. There are 8 layers that can be
        overlaid on the video, each layer with a different image. The layers are in Z order, which
        means that overlays with higher values of layer are inserted on top of overlays with lower
        values of layer. Default is 0.

        - **Opacity** *(integer) --* Opacity of image where 0 is transparent and 100 is fully
        opaque. Default is 100.

        - **Width** *(integer) --* The width of the image when inserted into the video, in pixels.
        The overlay will be scaled up or down to the specified width. Leave blank to use the native
        width of the overlay.

      - **StaticImageDeactivateSettings** *(dict) --* Action to deactivate a static image overlay

        - **FadeOut** *(integer) --* The time in milliseconds for the image to fade out. Default is
        0 (no fade-out).

        - **Layer** *(integer) --* The image overlay layer to deactivate, 0 to 7. Default is 0.

    - **ScheduleActionStartSettings** *(dict) --* The time for the action to start in the channel.

      - **FixedModeScheduleActionStartSettings** *(dict) --* Option for specifying the start time
      for an action.

        - **Time** *(string) --* Start time for the action to start in the channel. (Not the time
        for the action to be added to the schedule: actions are always added to the schedule
        immediately.) UTC format: yyyy-mm-ddThh:mm:ss.nnnZ. All the letters are digits (for example,
        mm might be 01) except for the two constants "T" for time and "Z" for "UTC format".

      - **FollowModeScheduleActionStartSettings** *(dict) --* Option for specifying an action as
      relative to another action.

        - **FollowPoint** *(string) --* Identifies whether this action starts relative to the start
        or relative to the end of the reference action.

        - **ReferenceActionName** *(string) --* The action name of another action that this one
        refers to.

      - **ImmediateModeScheduleActionStartSettings** *(dict) --* Option for specifying an action
      that should be applied immediately.
    """


_ClientBatchUpdateScheduleResponseDeletesTypeDef = TypedDict(
    "_ClientBatchUpdateScheduleResponseDeletesTypeDef",
    {"ScheduleActions": List[ClientBatchUpdateScheduleResponseDeletesScheduleActionsTypeDef]},
    total=False,
)


class ClientBatchUpdateScheduleResponseDeletesTypeDef(
    _ClientBatchUpdateScheduleResponseDeletesTypeDef
):
    """
    Type definition for `ClientBatchUpdateScheduleResponse` `Deletes`

    - **ScheduleActions** *(list) --* List of actions that have been deleted from the schedule.

      - *(dict) --* Contains information on a single schedule action.

        - **ActionName** *(string) --* The name of the action, must be unique within the schedule.
        This name provides the main reference to an action once it is added to the schedule. A name
        is unique if it is no longer in the schedule. The schedule is automatically cleaned up to
        remove actions with a start time of more than 1 hour ago (approximately) so at that point a
        name can be reused.

        - **ScheduleActionSettings** *(dict) --* Settings for this schedule action.

          - **HlsTimedMetadataSettings** *(dict) --* Action to insert HLS metadata

            - **Id3** *(string) --* Base64 string formatted according to the ID3 specification:
            http://id3.org/id3v2.4.0-structure

          - **InputSwitchSettings** *(dict) --* Action to switch the input

            - **InputAttachmentNameReference** *(string) --* The name of the input attachment (not
            the name of the input!) to switch to. The name is specified in the channel
            configuration.

            - **InputClippingSettings** *(dict) --* Settings to let you create a clip of the file
            input, in order to set up the input to ingest only a portion of the file.

              - **InputTimecodeSource** *(string) --* The source of the timecodes in the source
              being clipped.

              - **StartTimecode** *(dict) --* Settings to identify the start of the clip.

                - **Timecode** *(string) --* The timecode for the frame where you want to start the
                clip. Optional; if not specified, the clip starts at first frame in the file. Enter
                the timecode as HH:MM:SS:FF or HH:MM:SS;FF.

              - **StopTimecode** *(dict) --* Settings to identify the end of the clip.

                - **LastFrameClippingBehavior** *(string) --* If you specify a StopTimecode in an
                input (in order to clip the file), you can specify if you want the clip to exclude
                (the default) or include the frame specified by the timecode.

                - **Timecode** *(string) --* The timecode for the frame where you want to stop the
                clip. Optional; if not specified, the clip continues to the end of the file. Enter
                the timecode as HH:MM:SS:FF or HH:MM:SS;FF.

            - **UrlPath** *(list) --* The value for the variable portion of the URL for the dynamic
            input, for this instance of the input. Each time you use the same dynamic input in an
            input switch action, you can provide a different value, in order to connect the input to
            a different content source.

              - *(string) --* Placeholder documentation for __string

          - **PauseStateSettings** *(dict) --* Action to pause or unpause one or both channel
          pipelines

            - **Pipelines** *(list) --* Placeholder documentation for
            __listOfPipelinePauseStateSettings

              - *(dict) --* Settings for pausing a pipeline.

                - **PipelineId** *(string) --* Pipeline ID to pause ("PIPELINE_0" or "PIPELINE_1").

          - **Scte35ReturnToNetworkSettings** *(dict) --* Action to insert SCTE-35 return_to_network
          message

            - **SpliceEventId** *(integer) --* The splice_event_id for the SCTE-35 splice_insert, as
            defined in SCTE-35.

          - **Scte35SpliceInsertSettings** *(dict) --* Action to insert SCTE-35 splice_insert
          message

            - **Duration** *(integer) --* Optional, the duration for the splice_insert, in 90 KHz
            ticks. To convert seconds to ticks, multiple the seconds by 90,000. If you enter a
            duration, there is an expectation that the downstream system can read the duration and
            cue in at that time. If you do not enter a duration, the splice_insert will continue
            indefinitely and there is an expectation that you will enter a return_to_network to end
            the splice_insert at the appropriate time.

            - **SpliceEventId** *(integer) --* The splice_event_id for the SCTE-35 splice_insert, as
            defined in SCTE-35.

          - **Scte35TimeSignalSettings** *(dict) --* Action to insert SCTE-35 time_signal message

            - **Scte35Descriptors** *(list) --* The list of SCTE-35 descriptors accompanying the
            SCTE-35 time_signal.

              - *(dict) --* Holds one set of SCTE-35 Descriptor Settings.

                - **Scte35DescriptorSettings** *(dict) --* SCTE-35 Descriptor Settings.

                  - **SegmentationDescriptorScte35DescriptorSettings** *(dict) --* SCTE-35
                  Segmentation Descriptor.

                    - **DeliveryRestrictions** *(dict) --* Holds the four SCTE-35 delivery
                    restriction parameters.

                      - **ArchiveAllowedFlag** *(string) --* Corresponds to SCTE-35
                      archive_allowed_flag.

                      - **DeviceRestrictions** *(string) --* Corresponds to SCTE-35
                      device_restrictions parameter.

                      - **NoRegionalBlackoutFlag** *(string) --* Corresponds to SCTE-35
                      no_regional_blackout_flag parameter.

                      - **WebDeliveryAllowedFlag** *(string) --* Corresponds to SCTE-35
                      web_delivery_allowed_flag parameter.

                    - **SegmentNum** *(integer) --* Corresponds to SCTE-35 segment_num. A value that
                    is valid for the specified segmentation_type_id.

                    - **SegmentationCancelIndicator** *(string) --* Corresponds to SCTE-35
                    segmentation_event_cancel_indicator.

                    - **SegmentationDuration** *(integer) --* Corresponds to SCTE-35
                    segmentation_duration. Optional. The duration for the time_signal, in 90 KHz
                    ticks. To convert seconds to ticks, multiple the seconds by 90,000. Enter time
                    in 90 KHz clock ticks. If you do not enter a duration, the time_signal will
                    continue until you insert a cancellation message.

                    - **SegmentationEventId** *(integer) --* Corresponds to SCTE-35
                    segmentation_event_id.

                    - **SegmentationTypeId** *(integer) --* Corresponds to SCTE-35
                    segmentation_type_id. One of the segmentation_type_id values listed in the
                    SCTE-35 specification. On the console, enter the ID in decimal (for example,
                    "52"). In the CLI, API, or an SDK, enter the ID in hex (for example, "0x34") or
                    decimal (for example, "52").

                    - **SegmentationUpid** *(string) --* Corresponds to SCTE-35 segmentation_upid.
                    Enter a string containing the hexadecimal representation of the characters that
                    make up the SCTE-35 segmentation_upid value. Must contain an even number of hex
                    characters. Do not include spaces between each hex pair. For example, the ASCII
                    "ADS Information" becomes hex "41445320496e666f726d6174696f6e.

                    - **SegmentationUpidType** *(integer) --* Corresponds to SCTE-35
                    segmentation_upid_type. On the console, enter one of the types listed in the
                    SCTE-35 specification, converted to a decimal. For example, "0x0C" hex from the
                    specification is "12" in decimal. In the CLI, API, or an SDK, enter one of the
                    types listed in the SCTE-35 specification, in either hex (for example, "0x0C" )
                    or in decimal (for example, "12").

                    - **SegmentsExpected** *(integer) --* Corresponds to SCTE-35 segments_expected.
                    A value that is valid for the specified segmentation_type_id.

                    - **SubSegmentNum** *(integer) --* Corresponds to SCTE-35 sub_segment_num. A
                    value that is valid for the specified segmentation_type_id.

                    - **SubSegmentsExpected** *(integer) --* Corresponds to SCTE-35
                    sub_segments_expected. A value that is valid for the specified
                    segmentation_type_id.

          - **StaticImageActivateSettings** *(dict) --* Action to activate a static image overlay

            - **Duration** *(integer) --* The duration in milliseconds for the image to remain on
            the video. If omitted or set to 0 the duration is unlimited and the image will remain
            until it is explicitly deactivated.

            - **FadeIn** *(integer) --* The time in milliseconds for the image to fade in. The
            fade-in starts at the start time of the overlay. Default is 0 (no fade-in).

            - **FadeOut** *(integer) --* Applies only if a duration is specified. The time in
            milliseconds for the image to fade out. The fade-out starts when the duration time is
            hit, so it effectively extends the duration. Default is 0 (no fade-out).

            - **Height** *(integer) --* The height of the image when inserted into the video, in
            pixels. The overlay will be scaled up or down to the specified height. Leave blank to
            use the native height of the overlay.

            - **Image** *(dict) --* The location and filename of the image file to overlay on the
            video. The file must be a 32-bit BMP, PNG, or TGA file, and must not be larger (in
            pixels) than the input video.

              - **PasswordParam** *(string) --* key used to extract the password from EC2 Parameter
              store

              - **Uri** *(string) --* Uniform Resource Identifier - This should be a path to a file
              accessible to the Live system (eg. a http:// URI) depending on the output type. For
              example, a RTMP destination should have a uri simliar to: "rtmp://fmsserver/live".

              - **Username** *(string) --* Documentation update needed

            - **ImageX** *(integer) --* Placement of the left edge of the overlay relative to the
            left edge of the video frame, in pixels. 0 (the default) is the left edge of the frame.
            If the placement causes the overlay to extend beyond the right edge of the underlying
            video, then the overlay is cropped on the right.

            - **ImageY** *(integer) --* Placement of the top edge of the overlay relative to the top
            edge of the video frame, in pixels. 0 (the default) is the top edge of the frame. If the
            placement causes the overlay to extend beyond the bottom edge of the underlying video,
            then the overlay is cropped on the bottom.

            - **Layer** *(integer) --* The number of the layer, 0 to 7. There are 8 layers that can
            be overlaid on the video, each layer with a different image. The layers are in Z order,
            which means that overlays with higher values of layer are inserted on top of overlays
            with lower values of layer. Default is 0.

            - **Opacity** *(integer) --* Opacity of image where 0 is transparent and 100 is fully
            opaque. Default is 100.

            - **Width** *(integer) --* The width of the image when inserted into the video, in
            pixels. The overlay will be scaled up or down to the specified width. Leave blank to use
            the native width of the overlay.

          - **StaticImageDeactivateSettings** *(dict) --* Action to deactivate a static image
          overlay

            - **FadeOut** *(integer) --* The time in milliseconds for the image to fade out. Default
            is 0 (no fade-out).

            - **Layer** *(integer) --* The image overlay layer to deactivate, 0 to 7. Default is 0.

        - **ScheduleActionStartSettings** *(dict) --* The time for the action to start in the
        channel.

          - **FixedModeScheduleActionStartSettings** *(dict) --* Option for specifying the start
          time for an action.

            - **Time** *(string) --* Start time for the action to start in the channel. (Not the
            time for the action to be added to the schedule: actions are always added to the
            schedule immediately.) UTC format: yyyy-mm-ddThh:mm:ss.nnnZ. All the letters are digits
            (for example, mm might be 01) except for the two constants "T" for time and "Z" for "UTC
            format".

          - **FollowModeScheduleActionStartSettings** *(dict) --* Option for specifying an action as
          relative to another action.

            - **FollowPoint** *(string) --* Identifies whether this action starts relative to the
            start or relative to the end of the reference action.

            - **ReferenceActionName** *(string) --* The action name of another action that this one
            refers to.

          - **ImmediateModeScheduleActionStartSettings** *(dict) --* Option for specifying an action
          that should be applied immediately.
    """


_ClientBatchUpdateScheduleResponseTypeDef = TypedDict(
    "_ClientBatchUpdateScheduleResponseTypeDef",
    {
        "Creates": ClientBatchUpdateScheduleResponseCreatesTypeDef,
        "Deletes": ClientBatchUpdateScheduleResponseDeletesTypeDef,
    },
    total=False,
)


class ClientBatchUpdateScheduleResponseTypeDef(_ClientBatchUpdateScheduleResponseTypeDef):
    """
    Type definition for `ClientBatchUpdateSchedule` `Response`

    - **Creates** *(dict) --* Schedule actions created in the schedule.

      - **ScheduleActions** *(list) --* List of actions that have been created in the schedule.

        - *(dict) --* Contains information on a single schedule action.

          - **ActionName** *(string) --* The name of the action, must be unique within the schedule.
          This name provides the main reference to an action once it is added to the schedule. A
          name is unique if it is no longer in the schedule. The schedule is automatically cleaned
          up to remove actions with a start time of more than 1 hour ago (approximately) so at that
          point a name can be reused.

          - **ScheduleActionSettings** *(dict) --* Settings for this schedule action.

            - **HlsTimedMetadataSettings** *(dict) --* Action to insert HLS metadata

              - **Id3** *(string) --* Base64 string formatted according to the ID3 specification:
              http://id3.org/id3v2.4.0-structure

            - **InputSwitchSettings** *(dict) --* Action to switch the input

              - **InputAttachmentNameReference** *(string) --* The name of the input attachment (not
              the name of the input!) to switch to. The name is specified in the channel
              configuration.

              - **InputClippingSettings** *(dict) --* Settings to let you create a clip of the file
              input, in order to set up the input to ingest only a portion of the file.

                - **InputTimecodeSource** *(string) --* The source of the timecodes in the source
                being clipped.

                - **StartTimecode** *(dict) --* Settings to identify the start of the clip.

                  - **Timecode** *(string) --* The timecode for the frame where you want to start
                  the clip. Optional; if not specified, the clip starts at first frame in the file.
                  Enter the timecode as HH:MM:SS:FF or HH:MM:SS;FF.

                - **StopTimecode** *(dict) --* Settings to identify the end of the clip.

                  - **LastFrameClippingBehavior** *(string) --* If you specify a StopTimecode in an
                  input (in order to clip the file), you can specify if you want the clip to exclude
                  (the default) or include the frame specified by the timecode.

                  - **Timecode** *(string) --* The timecode for the frame where you want to stop the
                  clip. Optional; if not specified, the clip continues to the end of the file. Enter
                  the timecode as HH:MM:SS:FF or HH:MM:SS;FF.

              - **UrlPath** *(list) --* The value for the variable portion of the URL for the
              dynamic input, for this instance of the input. Each time you use the same dynamic
              input in an input switch action, you can provide a different value, in order to
              connect the input to a different content source.

                - *(string) --* Placeholder documentation for __string

            - **PauseStateSettings** *(dict) --* Action to pause or unpause one or both channel
            pipelines

              - **Pipelines** *(list) --* Placeholder documentation for
              __listOfPipelinePauseStateSettings

                - *(dict) --* Settings for pausing a pipeline.

                  - **PipelineId** *(string) --* Pipeline ID to pause ("PIPELINE_0" or
                  "PIPELINE_1").

            - **Scte35ReturnToNetworkSettings** *(dict) --* Action to insert SCTE-35
            return_to_network message

              - **SpliceEventId** *(integer) --* The splice_event_id for the SCTE-35 splice_insert,
              as defined in SCTE-35.

            - **Scte35SpliceInsertSettings** *(dict) --* Action to insert SCTE-35 splice_insert
            message

              - **Duration** *(integer) --* Optional, the duration for the splice_insert, in 90 KHz
              ticks. To convert seconds to ticks, multiple the seconds by 90,000. If you enter a
              duration, there is an expectation that the downstream system can read the duration and
              cue in at that time. If you do not enter a duration, the splice_insert will continue
              indefinitely and there is an expectation that you will enter a return_to_network to
              end the splice_insert at the appropriate time.

              - **SpliceEventId** *(integer) --* The splice_event_id for the SCTE-35 splice_insert,
              as defined in SCTE-35.

            - **Scte35TimeSignalSettings** *(dict) --* Action to insert SCTE-35 time_signal message

              - **Scte35Descriptors** *(list) --* The list of SCTE-35 descriptors accompanying the
              SCTE-35 time_signal.

                - *(dict) --* Holds one set of SCTE-35 Descriptor Settings.

                  - **Scte35DescriptorSettings** *(dict) --* SCTE-35 Descriptor Settings.

                    - **SegmentationDescriptorScte35DescriptorSettings** *(dict) --* SCTE-35
                    Segmentation Descriptor.

                      - **DeliveryRestrictions** *(dict) --* Holds the four SCTE-35 delivery
                      restriction parameters.

                        - **ArchiveAllowedFlag** *(string) --* Corresponds to SCTE-35
                        archive_allowed_flag.

                        - **DeviceRestrictions** *(string) --* Corresponds to SCTE-35
                        device_restrictions parameter.

                        - **NoRegionalBlackoutFlag** *(string) --* Corresponds to SCTE-35
                        no_regional_blackout_flag parameter.

                        - **WebDeliveryAllowedFlag** *(string) --* Corresponds to SCTE-35
                        web_delivery_allowed_flag parameter.

                      - **SegmentNum** *(integer) --* Corresponds to SCTE-35 segment_num. A value
                      that is valid for the specified segmentation_type_id.

                      - **SegmentationCancelIndicator** *(string) --* Corresponds to SCTE-35
                      segmentation_event_cancel_indicator.

                      - **SegmentationDuration** *(integer) --* Corresponds to SCTE-35
                      segmentation_duration. Optional. The duration for the time_signal, in 90 KHz
                      ticks. To convert seconds to ticks, multiple the seconds by 90,000. Enter time
                      in 90 KHz clock ticks. If you do not enter a duration, the time_signal will
                      continue until you insert a cancellation message.

                      - **SegmentationEventId** *(integer) --* Corresponds to SCTE-35
                      segmentation_event_id.

                      - **SegmentationTypeId** *(integer) --* Corresponds to SCTE-35
                      segmentation_type_id. One of the segmentation_type_id values listed in the
                      SCTE-35 specification. On the console, enter the ID in decimal (for example,
                      "52"). In the CLI, API, or an SDK, enter the ID in hex (for example, "0x34")
                      or decimal (for example, "52").

                      - **SegmentationUpid** *(string) --* Corresponds to SCTE-35 segmentation_upid.
                      Enter a string containing the hexadecimal representation of the characters
                      that make up the SCTE-35 segmentation_upid value. Must contain an even number
                      of hex characters. Do not include spaces between each hex pair. For example,
                      the ASCII "ADS Information" becomes hex "41445320496e666f726d6174696f6e.

                      - **SegmentationUpidType** *(integer) --* Corresponds to SCTE-35
                      segmentation_upid_type. On the console, enter one of the types listed in the
                      SCTE-35 specification, converted to a decimal. For example, "0x0C" hex from
                      the specification is "12" in decimal. In the CLI, API, or an SDK, enter one of
                      the types listed in the SCTE-35 specification, in either hex (for example,
                      "0x0C" ) or in decimal (for example, "12").

                      - **SegmentsExpected** *(integer) --* Corresponds to SCTE-35
                      segments_expected. A value that is valid for the specified
                      segmentation_type_id.

                      - **SubSegmentNum** *(integer) --* Corresponds to SCTE-35 sub_segment_num. A
                      value that is valid for the specified segmentation_type_id.

                      - **SubSegmentsExpected** *(integer) --* Corresponds to SCTE-35
                      sub_segments_expected. A value that is valid for the specified
                      segmentation_type_id.

            - **StaticImageActivateSettings** *(dict) --* Action to activate a static image overlay

              - **Duration** *(integer) --* The duration in milliseconds for the image to remain on
              the video. If omitted or set to 0 the duration is unlimited and the image will remain
              until it is explicitly deactivated.

              - **FadeIn** *(integer) --* The time in milliseconds for the image to fade in. The
              fade-in starts at the start time of the overlay. Default is 0 (no fade-in).

              - **FadeOut** *(integer) --* Applies only if a duration is specified. The time in
              milliseconds for the image to fade out. The fade-out starts when the duration time is
              hit, so it effectively extends the duration. Default is 0 (no fade-out).

              - **Height** *(integer) --* The height of the image when inserted into the video, in
              pixels. The overlay will be scaled up or down to the specified height. Leave blank to
              use the native height of the overlay.

              - **Image** *(dict) --* The location and filename of the image file to overlay on the
              video. The file must be a 32-bit BMP, PNG, or TGA file, and must not be larger (in
              pixels) than the input video.

                - **PasswordParam** *(string) --* key used to extract the password from EC2
                Parameter store

                - **Uri** *(string) --* Uniform Resource Identifier - This should be a path to a
                file accessible to the Live system (eg. a http:// URI) depending on the output type.
                For example, a RTMP destination should have a uri simliar to:
                "rtmp://fmsserver/live".

                - **Username** *(string) --* Documentation update needed

              - **ImageX** *(integer) --* Placement of the left edge of the overlay relative to the
              left edge of the video frame, in pixels. 0 (the default) is the left edge of the
              frame. If the placement causes the overlay to extend beyond the right edge of the
              underlying video, then the overlay is cropped on the right.

              - **ImageY** *(integer) --* Placement of the top edge of the overlay relative to the
              top edge of the video frame, in pixels. 0 (the default) is the top edge of the frame.
              If the placement causes the overlay to extend beyond the bottom edge of the underlying
              video, then the overlay is cropped on the bottom.

              - **Layer** *(integer) --* The number of the layer, 0 to 7. There are 8 layers that
              can be overlaid on the video, each layer with a different image. The layers are in Z
              order, which means that overlays with higher values of layer are inserted on top of
              overlays with lower values of layer. Default is 0.

              - **Opacity** *(integer) --* Opacity of image where 0 is transparent and 100 is fully
              opaque. Default is 100.

              - **Width** *(integer) --* The width of the image when inserted into the video, in
              pixels. The overlay will be scaled up or down to the specified width. Leave blank to
              use the native width of the overlay.

            - **StaticImageDeactivateSettings** *(dict) --* Action to deactivate a static image
            overlay

              - **FadeOut** *(integer) --* The time in milliseconds for the image to fade out.
              Default is 0 (no fade-out).

              - **Layer** *(integer) --* The image overlay layer to deactivate, 0 to 7. Default is
              0.

          - **ScheduleActionStartSettings** *(dict) --* The time for the action to start in the
          channel.

            - **FixedModeScheduleActionStartSettings** *(dict) --* Option for specifying the start
            time for an action.

              - **Time** *(string) --* Start time for the action to start in the channel. (Not the
              time for the action to be added to the schedule: actions are always added to the
              schedule immediately.) UTC format: yyyy-mm-ddThh:mm:ss.nnnZ. All the letters are
              digits (for example, mm might be 01) except for the two constants "T" for time and "Z"
              for "UTC format".

            - **FollowModeScheduleActionStartSettings** *(dict) --* Option for specifying an action
            as relative to another action.

              - **FollowPoint** *(string) --* Identifies whether this action starts relative to the
              start or relative to the end of the reference action.

              - **ReferenceActionName** *(string) --* The action name of another action that this
              one refers to.

            - **ImmediateModeScheduleActionStartSettings** *(dict) --* Option for specifying an
            action that should be applied immediately.

    - **Deletes** *(dict) --* Schedule actions deleted from the schedule.

      - **ScheduleActions** *(list) --* List of actions that have been deleted from the schedule.

        - *(dict) --* Contains information on a single schedule action.

          - **ActionName** *(string) --* The name of the action, must be unique within the schedule.
          This name provides the main reference to an action once it is added to the schedule. A
          name is unique if it is no longer in the schedule. The schedule is automatically cleaned
          up to remove actions with a start time of more than 1 hour ago (approximately) so at that
          point a name can be reused.

          - **ScheduleActionSettings** *(dict) --* Settings for this schedule action.

            - **HlsTimedMetadataSettings** *(dict) --* Action to insert HLS metadata

              - **Id3** *(string) --* Base64 string formatted according to the ID3 specification:
              http://id3.org/id3v2.4.0-structure

            - **InputSwitchSettings** *(dict) --* Action to switch the input

              - **InputAttachmentNameReference** *(string) --* The name of the input attachment (not
              the name of the input!) to switch to. The name is specified in the channel
              configuration.

              - **InputClippingSettings** *(dict) --* Settings to let you create a clip of the file
              input, in order to set up the input to ingest only a portion of the file.

                - **InputTimecodeSource** *(string) --* The source of the timecodes in the source
                being clipped.

                - **StartTimecode** *(dict) --* Settings to identify the start of the clip.

                  - **Timecode** *(string) --* The timecode for the frame where you want to start
                  the clip. Optional; if not specified, the clip starts at first frame in the file.
                  Enter the timecode as HH:MM:SS:FF or HH:MM:SS;FF.

                - **StopTimecode** *(dict) --* Settings to identify the end of the clip.

                  - **LastFrameClippingBehavior** *(string) --* If you specify a StopTimecode in an
                  input (in order to clip the file), you can specify if you want the clip to exclude
                  (the default) or include the frame specified by the timecode.

                  - **Timecode** *(string) --* The timecode for the frame where you want to stop the
                  clip. Optional; if not specified, the clip continues to the end of the file. Enter
                  the timecode as HH:MM:SS:FF or HH:MM:SS;FF.

              - **UrlPath** *(list) --* The value for the variable portion of the URL for the
              dynamic input, for this instance of the input. Each time you use the same dynamic
              input in an input switch action, you can provide a different value, in order to
              connect the input to a different content source.

                - *(string) --* Placeholder documentation for __string

            - **PauseStateSettings** *(dict) --* Action to pause or unpause one or both channel
            pipelines

              - **Pipelines** *(list) --* Placeholder documentation for
              __listOfPipelinePauseStateSettings

                - *(dict) --* Settings for pausing a pipeline.

                  - **PipelineId** *(string) --* Pipeline ID to pause ("PIPELINE_0" or
                  "PIPELINE_1").

            - **Scte35ReturnToNetworkSettings** *(dict) --* Action to insert SCTE-35
            return_to_network message

              - **SpliceEventId** *(integer) --* The splice_event_id for the SCTE-35 splice_insert,
              as defined in SCTE-35.

            - **Scte35SpliceInsertSettings** *(dict) --* Action to insert SCTE-35 splice_insert
            message

              - **Duration** *(integer) --* Optional, the duration for the splice_insert, in 90 KHz
              ticks. To convert seconds to ticks, multiple the seconds by 90,000. If you enter a
              duration, there is an expectation that the downstream system can read the duration and
              cue in at that time. If you do not enter a duration, the splice_insert will continue
              indefinitely and there is an expectation that you will enter a return_to_network to
              end the splice_insert at the appropriate time.

              - **SpliceEventId** *(integer) --* The splice_event_id for the SCTE-35 splice_insert,
              as defined in SCTE-35.

            - **Scte35TimeSignalSettings** *(dict) --* Action to insert SCTE-35 time_signal message

              - **Scte35Descriptors** *(list) --* The list of SCTE-35 descriptors accompanying the
              SCTE-35 time_signal.

                - *(dict) --* Holds one set of SCTE-35 Descriptor Settings.

                  - **Scte35DescriptorSettings** *(dict) --* SCTE-35 Descriptor Settings.

                    - **SegmentationDescriptorScte35DescriptorSettings** *(dict) --* SCTE-35
                    Segmentation Descriptor.

                      - **DeliveryRestrictions** *(dict) --* Holds the four SCTE-35 delivery
                      restriction parameters.

                        - **ArchiveAllowedFlag** *(string) --* Corresponds to SCTE-35
                        archive_allowed_flag.

                        - **DeviceRestrictions** *(string) --* Corresponds to SCTE-35
                        device_restrictions parameter.

                        - **NoRegionalBlackoutFlag** *(string) --* Corresponds to SCTE-35
                        no_regional_blackout_flag parameter.

                        - **WebDeliveryAllowedFlag** *(string) --* Corresponds to SCTE-35
                        web_delivery_allowed_flag parameter.

                      - **SegmentNum** *(integer) --* Corresponds to SCTE-35 segment_num. A value
                      that is valid for the specified segmentation_type_id.

                      - **SegmentationCancelIndicator** *(string) --* Corresponds to SCTE-35
                      segmentation_event_cancel_indicator.

                      - **SegmentationDuration** *(integer) --* Corresponds to SCTE-35
                      segmentation_duration. Optional. The duration for the time_signal, in 90 KHz
                      ticks. To convert seconds to ticks, multiple the seconds by 90,000. Enter time
                      in 90 KHz clock ticks. If you do not enter a duration, the time_signal will
                      continue until you insert a cancellation message.

                      - **SegmentationEventId** *(integer) --* Corresponds to SCTE-35
                      segmentation_event_id.

                      - **SegmentationTypeId** *(integer) --* Corresponds to SCTE-35
                      segmentation_type_id. One of the segmentation_type_id values listed in the
                      SCTE-35 specification. On the console, enter the ID in decimal (for example,
                      "52"). In the CLI, API, or an SDK, enter the ID in hex (for example, "0x34")
                      or decimal (for example, "52").

                      - **SegmentationUpid** *(string) --* Corresponds to SCTE-35 segmentation_upid.
                      Enter a string containing the hexadecimal representation of the characters
                      that make up the SCTE-35 segmentation_upid value. Must contain an even number
                      of hex characters. Do not include spaces between each hex pair. For example,
                      the ASCII "ADS Information" becomes hex "41445320496e666f726d6174696f6e.

                      - **SegmentationUpidType** *(integer) --* Corresponds to SCTE-35
                      segmentation_upid_type. On the console, enter one of the types listed in the
                      SCTE-35 specification, converted to a decimal. For example, "0x0C" hex from
                      the specification is "12" in decimal. In the CLI, API, or an SDK, enter one of
                      the types listed in the SCTE-35 specification, in either hex (for example,
                      "0x0C" ) or in decimal (for example, "12").

                      - **SegmentsExpected** *(integer) --* Corresponds to SCTE-35
                      segments_expected. A value that is valid for the specified
                      segmentation_type_id.

                      - **SubSegmentNum** *(integer) --* Corresponds to SCTE-35 sub_segment_num. A
                      value that is valid for the specified segmentation_type_id.

                      - **SubSegmentsExpected** *(integer) --* Corresponds to SCTE-35
                      sub_segments_expected. A value that is valid for the specified
                      segmentation_type_id.

            - **StaticImageActivateSettings** *(dict) --* Action to activate a static image overlay

              - **Duration** *(integer) --* The duration in milliseconds for the image to remain on
              the video. If omitted or set to 0 the duration is unlimited and the image will remain
              until it is explicitly deactivated.

              - **FadeIn** *(integer) --* The time in milliseconds for the image to fade in. The
              fade-in starts at the start time of the overlay. Default is 0 (no fade-in).

              - **FadeOut** *(integer) --* Applies only if a duration is specified. The time in
              milliseconds for the image to fade out. The fade-out starts when the duration time is
              hit, so it effectively extends the duration. Default is 0 (no fade-out).

              - **Height** *(integer) --* The height of the image when inserted into the video, in
              pixels. The overlay will be scaled up or down to the specified height. Leave blank to
              use the native height of the overlay.

              - **Image** *(dict) --* The location and filename of the image file to overlay on the
              video. The file must be a 32-bit BMP, PNG, or TGA file, and must not be larger (in
              pixels) than the input video.

                - **PasswordParam** *(string) --* key used to extract the password from EC2
                Parameter store

                - **Uri** *(string) --* Uniform Resource Identifier - This should be a path to a
                file accessible to the Live system (eg. a http:// URI) depending on the output type.
                For example, a RTMP destination should have a uri simliar to:
                "rtmp://fmsserver/live".

                - **Username** *(string) --* Documentation update needed

              - **ImageX** *(integer) --* Placement of the left edge of the overlay relative to the
              left edge of the video frame, in pixels. 0 (the default) is the left edge of the
              frame. If the placement causes the overlay to extend beyond the right edge of the
              underlying video, then the overlay is cropped on the right.

              - **ImageY** *(integer) --* Placement of the top edge of the overlay relative to the
              top edge of the video frame, in pixels. 0 (the default) is the top edge of the frame.
              If the placement causes the overlay to extend beyond the bottom edge of the underlying
              video, then the overlay is cropped on the bottom.

              - **Layer** *(integer) --* The number of the layer, 0 to 7. There are 8 layers that
              can be overlaid on the video, each layer with a different image. The layers are in Z
              order, which means that overlays with higher values of layer are inserted on top of
              overlays with lower values of layer. Default is 0.

              - **Opacity** *(integer) --* Opacity of image where 0 is transparent and 100 is fully
              opaque. Default is 100.

              - **Width** *(integer) --* The width of the image when inserted into the video, in
              pixels. The overlay will be scaled up or down to the specified width. Leave blank to
              use the native width of the overlay.

            - **StaticImageDeactivateSettings** *(dict) --* Action to deactivate a static image
            overlay

              - **FadeOut** *(integer) --* The time in milliseconds for the image to fade out.
              Default is 0 (no fade-out).

              - **Layer** *(integer) --* The image overlay layer to deactivate, 0 to 7. Default is
              0.

          - **ScheduleActionStartSettings** *(dict) --* The time for the action to start in the
          channel.

            - **FixedModeScheduleActionStartSettings** *(dict) --* Option for specifying the start
            time for an action.

              - **Time** *(string) --* Start time for the action to start in the channel. (Not the
              time for the action to be added to the schedule: actions are always added to the
              schedule immediately.) UTC format: yyyy-mm-ddThh:mm:ss.nnnZ. All the letters are
              digits (for example, mm might be 01) except for the two constants "T" for time and "Z"
              for "UTC format".

            - **FollowModeScheduleActionStartSettings** *(dict) --* Option for specifying an action
            as relative to another action.

              - **FollowPoint** *(string) --* Identifies whether this action starts relative to the
              start or relative to the end of the reference action.

              - **ReferenceActionName** *(string) --* The action name of another action that this
              one refers to.

            - **ImmediateModeScheduleActionStartSettings** *(dict) --* Option for specifying an
            action that should be applied immediately.
    """


_ClientCreateChannelDestinationsMediaPackageSettingsTypeDef = TypedDict(
    "_ClientCreateChannelDestinationsMediaPackageSettingsTypeDef", {"ChannelId": str}, total=False
)


class ClientCreateChannelDestinationsMediaPackageSettingsTypeDef(
    _ClientCreateChannelDestinationsMediaPackageSettingsTypeDef
):
    """
    Type definition for `ClientCreateChannelDestinations` `MediaPackageSettings`

    - **ChannelId** *(string) --* ID of the channel in MediaPackage that is the destination for this
    output group. You do not need to specify the individual inputs in MediaPackage; MediaLive will
    handle the connection of the two MediaLive pipelines to the two MediaPackage inputs. The
    MediaPackage channel and MediaLive channel must be in the same region.
    """


_ClientCreateChannelDestinationsMultiplexSettingsTypeDef = TypedDict(
    "_ClientCreateChannelDestinationsMultiplexSettingsTypeDef",
    {"MultiplexId": str, "ProgramName": str},
    total=False,
)


class ClientCreateChannelDestinationsMultiplexSettingsTypeDef(
    _ClientCreateChannelDestinationsMultiplexSettingsTypeDef
):
    """
    Type definition for `ClientCreateChannelDestinations` `MultiplexSettings`

    - **MultiplexId** *(string) --* The ID of the Multiplex that the encoder is providing output to.
    You do not need to specify the individual inputs to the Multiplex; MediaLive will handle the
    connection of the two MediaLive pipelines to the two Multiplex instances. The Multiplex must be
    in the same region as the Channel.

    - **ProgramName** *(string) --* The program name of the Multiplex program that the encoder is
    providing output to.
    """


_ClientCreateChannelDestinationsSettingsTypeDef = TypedDict(
    "_ClientCreateChannelDestinationsSettingsTypeDef",
    {"PasswordParam": str, "StreamName": str, "Url": str, "Username": str},
    total=False,
)


class ClientCreateChannelDestinationsSettingsTypeDef(
    _ClientCreateChannelDestinationsSettingsTypeDef
):
    """
    Type definition for `ClientCreateChannelDestinations` `Settings`

    - **PasswordParam** *(string) --* key used to extract the password from EC2 Parameter store

    - **StreamName** *(string) --* Stream name for RTMP destinations (URLs of type rtmp://)

    - **Url** *(string) --* A URL specifying a destination

    - **Username** *(string) --* username for destination
    """


_ClientCreateChannelDestinationsTypeDef = TypedDict(
    "_ClientCreateChannelDestinationsTypeDef",
    {
        "Id": str,
        "MediaPackageSettings": List[ClientCreateChannelDestinationsMediaPackageSettingsTypeDef],
        "MultiplexSettings": ClientCreateChannelDestinationsMultiplexSettingsTypeDef,
        "Settings": List[ClientCreateChannelDestinationsSettingsTypeDef],
    },
    total=False,
)


class ClientCreateChannelDestinationsTypeDef(_ClientCreateChannelDestinationsTypeDef):
    """
    Type definition for `ClientCreateChannel` `Destinations`

    - **Id** *(string) --* User-specified id. This is used in an output group or an output.

    - **MediaPackageSettings** *(list) --* Destination settings for a MediaPackage output; one
    destination for both encoders.

      - *(dict) --* MediaPackage Output Destination Settings

        - **ChannelId** *(string) --* ID of the channel in MediaPackage that is the destination for
        this output group. You do not need to specify the individual inputs in MediaPackage;
        MediaLive will handle the connection of the two MediaLive pipelines to the two MediaPackage
        inputs. The MediaPackage channel and MediaLive channel must be in the same region.

    - **MultiplexSettings** *(dict) --* Destination settings for a Multiplex output; one destination
    for both encoders.

      - **MultiplexId** *(string) --* The ID of the Multiplex that the encoder is providing output
      to. You do not need to specify the individual inputs to the Multiplex; MediaLive will handle
      the connection of the two MediaLive pipelines to the two Multiplex instances. The Multiplex
      must be in the same region as the Channel.

      - **ProgramName** *(string) --* The program name of the Multiplex program that the encoder is
      providing output to.

    - **Settings** *(list) --* Destination settings for a standard output; one destination for each
    redundant encoder.

      - *(dict) --* Placeholder documentation for OutputDestinationSettings

        - **PasswordParam** *(string) --* key used to extract the password from EC2 Parameter store

        - **StreamName** *(string) --* Stream name for RTMP destinations (URLs of type rtmp://)

        - **Url** *(string) --* A URL specifying a destination

        - **Username** *(string) --* username for destination
    """


_ClientCreateChannelEncoderSettingsAudioDescriptionsAudioNormalizationSettingsTypeDef = TypedDict(
    "_ClientCreateChannelEncoderSettingsAudioDescriptionsAudioNormalizationSettingsTypeDef",
    {"Algorithm": str, "AlgorithmControl": str, "TargetLkfs": float},
    total=False,
)


class ClientCreateChannelEncoderSettingsAudioDescriptionsAudioNormalizationSettingsTypeDef(
    _ClientCreateChannelEncoderSettingsAudioDescriptionsAudioNormalizationSettingsTypeDef
):
    """
    Type definition for `ClientCreateChannelEncoderSettingsAudioDescriptions`
    `AudioNormalizationSettings`

    - **Algorithm** *(string) --* Audio normalization algorithm to use. itu17701 conforms to the
    CALM Act specification, itu17702 conforms to the EBU R-128 specification.

    - **AlgorithmControl** *(string) --* When set to correctAudio the output audio is corrected
    using the chosen algorithm. If set to measureOnly, the audio will be measured but not adjusted.

    - **TargetLkfs** *(float) --* Target LKFS(loudness) to adjust volume to. If no value is entered,
    a default value will be used according to the chosen algorithm. The CALM Act (1770-1) recommends
    a target of -24 LKFS. The EBU R-128 specification (1770-2) recommends a target of -23 LKFS.
    """


_ClientCreateChannelEncoderSettingsAudioDescriptionsCodecSettingsAacSettingsTypeDef = TypedDict(
    "_ClientCreateChannelEncoderSettingsAudioDescriptionsCodecSettingsAacSettingsTypeDef",
    {
        "Bitrate": float,
        "CodingMode": str,
        "InputType": str,
        "Profile": str,
        "RateControlMode": str,
        "RawFormat": str,
        "SampleRate": float,
        "Spec": str,
        "VbrQuality": str,
    },
    total=False,
)


class ClientCreateChannelEncoderSettingsAudioDescriptionsCodecSettingsAacSettingsTypeDef(
    _ClientCreateChannelEncoderSettingsAudioDescriptionsCodecSettingsAacSettingsTypeDef
):
    """
    Type definition for `ClientCreateChannelEncoderSettingsAudioDescriptionsCodecSettings`
    `AacSettings`

    - **Bitrate** *(float) --* Average bitrate in bits/second. Valid values depend on rate control
    mode and profile.

    - **CodingMode** *(string) --* Mono, Stereo, or 5.1 channel layout. Valid values depend on rate
    control mode and profile. The adReceiverMix setting receives a stereo description plus control
    track and emits a mono AAC encode of the description track, with control data emitted in the PES
    header as per ETSI TS 101 154 Annex E.

    - **InputType** *(string) --* Set to "broadcasterMixedAd" when input contains pre-mixed main
    audio + AD (narration) as a stereo pair. The Audio Type field (audioType) will be set to 3,
    which signals to downstream systems that this stream contains "broadcaster mixed AD". Note that
    the input received by the encoder must contain pre-mixed audio; the encoder does not perform the
    mixing. The values in audioTypeControl and audioType (in AudioDescription) are ignored when set
    to broadcasterMixedAd. Leave set to "normal" when input does not contain pre-mixed audio + AD.

    - **Profile** *(string) --* AAC Profile.

    - **RateControlMode** *(string) --* Rate Control Mode.

    - **RawFormat** *(string) --* Sets LATM / LOAS AAC output for raw containers.

    - **SampleRate** *(float) --* Sample rate in Hz. Valid values depend on rate control mode and
    profile.

    - **Spec** *(string) --* Use MPEG-2 AAC audio instead of MPEG-4 AAC audio for raw or MPEG-2
    Transport Stream containers.

    - **VbrQuality** *(string) --* VBR Quality Level - Only used if rateControlMode is VBR.
    """


_ClientCreateChannelEncoderSettingsAudioDescriptionsCodecSettingsAc3SettingsTypeDef = TypedDict(
    "_ClientCreateChannelEncoderSettingsAudioDescriptionsCodecSettingsAc3SettingsTypeDef",
    {
        "Bitrate": float,
        "BitstreamMode": str,
        "CodingMode": str,
        "Dialnorm": int,
        "DrcProfile": str,
        "LfeFilter": str,
        "MetadataControl": str,
    },
    total=False,
)


class ClientCreateChannelEncoderSettingsAudioDescriptionsCodecSettingsAc3SettingsTypeDef(
    _ClientCreateChannelEncoderSettingsAudioDescriptionsCodecSettingsAc3SettingsTypeDef
):
    """
    Type definition for `ClientCreateChannelEncoderSettingsAudioDescriptionsCodecSettings`
    `Ac3Settings`

    - **Bitrate** *(float) --* Average bitrate in bits/second. Valid bitrates depend on the coding
    mode.

    - **BitstreamMode** *(string) --* Specifies the bitstream mode (bsmod) for the emitted AC-3
    stream. See ATSC A/52-2012 for background on these values.

    - **CodingMode** *(string) --* Dolby Digital coding mode. Determines number of channels.

    - **Dialnorm** *(integer) --* Sets the dialnorm for the output. If excluded and input audio is
    Dolby Digital, dialnorm will be passed through.

    - **DrcProfile** *(string) --* If set to filmStandard, adds dynamic range compression signaling
    to the output bitstream as defined in the Dolby Digital specification.

    - **LfeFilter** *(string) --* When set to enabled, applies a 120Hz lowpass filter to the LFE
    channel prior to encoding. Only valid in codingMode32Lfe mode.

    - **MetadataControl** *(string) --* When set to "followInput", encoder metadata will be sourced
    from the DD, DD+, or DolbyE decoder that supplied this audio data. If audio was not supplied
    from one of these streams, then the static metadata settings will be used.
    """


_ClientCreateChannelEncoderSettingsAudioDescriptionsCodecSettingsEac3SettingsTypeDef = TypedDict(
    "_ClientCreateChannelEncoderSettingsAudioDescriptionsCodecSettingsEac3SettingsTypeDef",
    {
        "AttenuationControl": str,
        "Bitrate": float,
        "BitstreamMode": str,
        "CodingMode": str,
        "DcFilter": str,
        "Dialnorm": int,
        "DrcLine": str,
        "DrcRf": str,
        "LfeControl": str,
        "LfeFilter": str,
        "LoRoCenterMixLevel": float,
        "LoRoSurroundMixLevel": float,
        "LtRtCenterMixLevel": float,
        "LtRtSurroundMixLevel": float,
        "MetadataControl": str,
        "PassthroughControl": str,
        "PhaseControl": str,
        "StereoDownmix": str,
        "SurroundExMode": str,
        "SurroundMode": str,
    },
    total=False,
)


class ClientCreateChannelEncoderSettingsAudioDescriptionsCodecSettingsEac3SettingsTypeDef(
    _ClientCreateChannelEncoderSettingsAudioDescriptionsCodecSettingsEac3SettingsTypeDef
):
    """
    Type definition for `ClientCreateChannelEncoderSettingsAudioDescriptionsCodecSettings`
    `Eac3Settings`

    - **AttenuationControl** *(string) --* When set to attenuate3Db, applies a 3 dB attenuation to
    the surround channels. Only used for 3/2 coding mode.

    - **Bitrate** *(float) --* Average bitrate in bits/second. Valid bitrates depend on the coding
    mode.

    - **BitstreamMode** *(string) --* Specifies the bitstream mode (bsmod) for the emitted E-AC-3
    stream. See ATSC A/52-2012 (Annex E) for background on these values.

    - **CodingMode** *(string) --* Dolby Digital Plus coding mode. Determines number of channels.

    - **DcFilter** *(string) --* When set to enabled, activates a DC highpass filter for all input
    channels.

    - **Dialnorm** *(integer) --* Sets the dialnorm for the output. If blank and input audio is
    Dolby Digital Plus, dialnorm will be passed through.

    - **DrcLine** *(string) --* Sets the Dolby dynamic range compression profile.

    - **DrcRf** *(string) --* Sets the profile for heavy Dolby dynamic range compression, ensures
    that the instantaneous signal peaks do not exceed specified levels.

    - **LfeControl** *(string) --* When encoding 3/2 audio, setting to lfe enables the LFE channel

    - **LfeFilter** *(string) --* When set to enabled, applies a 120Hz lowpass filter to the LFE
    channel prior to encoding. Only valid with codingMode32 coding mode.

    - **LoRoCenterMixLevel** *(float) --* Left only/Right only center mix level. Only used for 3/2
    coding mode.

    - **LoRoSurroundMixLevel** *(float) --* Left only/Right only surround mix level. Only used for
    3/2 coding mode.

    - **LtRtCenterMixLevel** *(float) --* Left total/Right total center mix level. Only used for 3/2
    coding mode.

    - **LtRtSurroundMixLevel** *(float) --* Left total/Right total surround mix level. Only used for
    3/2 coding mode.

    - **MetadataControl** *(string) --* When set to followInput, encoder metadata will be sourced
    from the DD, DD+, or DolbyE decoder that supplied this audio data. If audio was not supplied
    from one of these streams, then the static metadata settings will be used.

    - **PassthroughControl** *(string) --* When set to whenPossible, input DD+ audio will be passed
    through if it is present on the input. This detection is dynamic over the life of the transcode.
    Inputs that alternate between DD+ and non-DD+ content will have a consistent DD+ output as the
    system alternates between passthrough and encoding.

    - **PhaseControl** *(string) --* When set to shift90Degrees, applies a 90-degree phase shift to
    the surround channels. Only used for 3/2 coding mode.

    - **StereoDownmix** *(string) --* Stereo downmix preference. Only used for 3/2 coding mode.

    - **SurroundExMode** *(string) --* When encoding 3/2 audio, sets whether an extra center back
    surround channel is matrix encoded into the left and right surround channels.

    - **SurroundMode** *(string) --* When encoding 2/0 audio, sets whether Dolby Surround is matrix
    encoded into the two channels.
    """


_ClientCreateChannelEncoderSettingsAudioDescriptionsCodecSettingsMp2SettingsTypeDef = TypedDict(
    "_ClientCreateChannelEncoderSettingsAudioDescriptionsCodecSettingsMp2SettingsTypeDef",
    {"Bitrate": float, "CodingMode": str, "SampleRate": float},
    total=False,
)


class ClientCreateChannelEncoderSettingsAudioDescriptionsCodecSettingsMp2SettingsTypeDef(
    _ClientCreateChannelEncoderSettingsAudioDescriptionsCodecSettingsMp2SettingsTypeDef
):
    """
    Type definition for `ClientCreateChannelEncoderSettingsAudioDescriptionsCodecSettings`
    `Mp2Settings`

    - **Bitrate** *(float) --* Average bitrate in bits/second.

    - **CodingMode** *(string) --* The MPEG2 Audio coding mode. Valid values are codingMode10 (for
    mono) or codingMode20 (for stereo).

    - **SampleRate** *(float) --* Sample rate in Hz.
    """


_ClientCreateChannelEncoderSettingsAudioDescriptionsCodecSettingsTypeDef = TypedDict(
    "_ClientCreateChannelEncoderSettingsAudioDescriptionsCodecSettingsTypeDef",
    {
        "AacSettings": ClientCreateChannelEncoderSettingsAudioDescriptionsCodecSettingsAacSettingsTypeDef,
        "Ac3Settings": ClientCreateChannelEncoderSettingsAudioDescriptionsCodecSettingsAc3SettingsTypeDef,
        "Eac3Settings": ClientCreateChannelEncoderSettingsAudioDescriptionsCodecSettingsEac3SettingsTypeDef,
        "Mp2Settings": ClientCreateChannelEncoderSettingsAudioDescriptionsCodecSettingsMp2SettingsTypeDef,
        "PassThroughSettings": Dict[str, Any],
    },
    total=False,
)


class ClientCreateChannelEncoderSettingsAudioDescriptionsCodecSettingsTypeDef(
    _ClientCreateChannelEncoderSettingsAudioDescriptionsCodecSettingsTypeDef
):
    """
    Type definition for `ClientCreateChannelEncoderSettingsAudioDescriptions` `CodecSettings`

    - **AacSettings** *(dict) --* Aac Settings

      - **Bitrate** *(float) --* Average bitrate in bits/second. Valid values depend on rate control
      mode and profile.

      - **CodingMode** *(string) --* Mono, Stereo, or 5.1 channel layout. Valid values depend on
      rate control mode and profile. The adReceiverMix setting receives a stereo description plus
      control track and emits a mono AAC encode of the description track, with control data emitted
      in the PES header as per ETSI TS 101 154 Annex E.

      - **InputType** *(string) --* Set to "broadcasterMixedAd" when input contains pre-mixed main
      audio + AD (narration) as a stereo pair. The Audio Type field (audioType) will be set to 3,
      which signals to downstream systems that this stream contains "broadcaster mixed AD". Note
      that the input received by the encoder must contain pre-mixed audio; the encoder does not
      perform the mixing. The values in audioTypeControl and audioType (in AudioDescription) are
      ignored when set to broadcasterMixedAd. Leave set to "normal" when input does not contain
      pre-mixed audio + AD.

      - **Profile** *(string) --* AAC Profile.

      - **RateControlMode** *(string) --* Rate Control Mode.

      - **RawFormat** *(string) --* Sets LATM / LOAS AAC output for raw containers.

      - **SampleRate** *(float) --* Sample rate in Hz. Valid values depend on rate control mode and
      profile.

      - **Spec** *(string) --* Use MPEG-2 AAC audio instead of MPEG-4 AAC audio for raw or MPEG-2
      Transport Stream containers.

      - **VbrQuality** *(string) --* VBR Quality Level - Only used if rateControlMode is VBR.

    - **Ac3Settings** *(dict) --* Ac3 Settings

      - **Bitrate** *(float) --* Average bitrate in bits/second. Valid bitrates depend on the coding
      mode.

      - **BitstreamMode** *(string) --* Specifies the bitstream mode (bsmod) for the emitted AC-3
      stream. See ATSC A/52-2012 for background on these values.

      - **CodingMode** *(string) --* Dolby Digital coding mode. Determines number of channels.

      - **Dialnorm** *(integer) --* Sets the dialnorm for the output. If excluded and input audio is
      Dolby Digital, dialnorm will be passed through.

      - **DrcProfile** *(string) --* If set to filmStandard, adds dynamic range compression
      signaling to the output bitstream as defined in the Dolby Digital specification.

      - **LfeFilter** *(string) --* When set to enabled, applies a 120Hz lowpass filter to the LFE
      channel prior to encoding. Only valid in codingMode32Lfe mode.

      - **MetadataControl** *(string) --* When set to "followInput", encoder metadata will be
      sourced from the DD, DD+, or DolbyE decoder that supplied this audio data. If audio was not
      supplied from one of these streams, then the static metadata settings will be used.

    - **Eac3Settings** *(dict) --* Eac3 Settings

      - **AttenuationControl** *(string) --* When set to attenuate3Db, applies a 3 dB attenuation to
      the surround channels. Only used for 3/2 coding mode.

      - **Bitrate** *(float) --* Average bitrate in bits/second. Valid bitrates depend on the coding
      mode.

      - **BitstreamMode** *(string) --* Specifies the bitstream mode (bsmod) for the emitted E-AC-3
      stream. See ATSC A/52-2012 (Annex E) for background on these values.

      - **CodingMode** *(string) --* Dolby Digital Plus coding mode. Determines number of channels.

      - **DcFilter** *(string) --* When set to enabled, activates a DC highpass filter for all input
      channels.

      - **Dialnorm** *(integer) --* Sets the dialnorm for the output. If blank and input audio is
      Dolby Digital Plus, dialnorm will be passed through.

      - **DrcLine** *(string) --* Sets the Dolby dynamic range compression profile.

      - **DrcRf** *(string) --* Sets the profile for heavy Dolby dynamic range compression, ensures
      that the instantaneous signal peaks do not exceed specified levels.

      - **LfeControl** *(string) --* When encoding 3/2 audio, setting to lfe enables the LFE channel

      - **LfeFilter** *(string) --* When set to enabled, applies a 120Hz lowpass filter to the LFE
      channel prior to encoding. Only valid with codingMode32 coding mode.

      - **LoRoCenterMixLevel** *(float) --* Left only/Right only center mix level. Only used for 3/2
      coding mode.

      - **LoRoSurroundMixLevel** *(float) --* Left only/Right only surround mix level. Only used for
      3/2 coding mode.

      - **LtRtCenterMixLevel** *(float) --* Left total/Right total center mix level. Only used for
      3/2 coding mode.

      - **LtRtSurroundMixLevel** *(float) --* Left total/Right total surround mix level. Only used
      for 3/2 coding mode.

      - **MetadataControl** *(string) --* When set to followInput, encoder metadata will be sourced
      from the DD, DD+, or DolbyE decoder that supplied this audio data. If audio was not supplied
      from one of these streams, then the static metadata settings will be used.

      - **PassthroughControl** *(string) --* When set to whenPossible, input DD+ audio will be
      passed through if it is present on the input. This detection is dynamic over the life of the
      transcode. Inputs that alternate between DD+ and non-DD+ content will have a consistent DD+
      output as the system alternates between passthrough and encoding.

      - **PhaseControl** *(string) --* When set to shift90Degrees, applies a 90-degree phase shift
      to the surround channels. Only used for 3/2 coding mode.

      - **StereoDownmix** *(string) --* Stereo downmix preference. Only used for 3/2 coding mode.

      - **SurroundExMode** *(string) --* When encoding 3/2 audio, sets whether an extra center back
      surround channel is matrix encoded into the left and right surround channels.

      - **SurroundMode** *(string) --* When encoding 2/0 audio, sets whether Dolby Surround is
      matrix encoded into the two channels.

    - **Mp2Settings** *(dict) --* Mp2 Settings

      - **Bitrate** *(float) --* Average bitrate in bits/second.

      - **CodingMode** *(string) --* The MPEG2 Audio coding mode. Valid values are codingMode10 (for
      mono) or codingMode20 (for stereo).

      - **SampleRate** *(float) --* Sample rate in Hz.

    - **PassThroughSettings** *(dict) --* Pass Through Settings
    """


_ClientCreateChannelEncoderSettingsAudioDescriptionsRemixSettingsChannelMappingsInputChannelLevelsTypeDef = TypedDict(
    "_ClientCreateChannelEncoderSettingsAudioDescriptionsRemixSettingsChannelMappingsInputChannelLevelsTypeDef",
    {"Gain": int, "InputChannel": int},
)


class ClientCreateChannelEncoderSettingsAudioDescriptionsRemixSettingsChannelMappingsInputChannelLevelsTypeDef(
    _ClientCreateChannelEncoderSettingsAudioDescriptionsRemixSettingsChannelMappingsInputChannelLevelsTypeDef
):
    """
    Type definition for
    `ClientCreateChannelEncoderSettingsAudioDescriptionsRemixSettingsChannelMappings`
    `InputChannelLevels`

    - **Gain** *(integer) --* **[REQUIRED]** Remixing value. Units are in dB and acceptable values
    are within the range from -60 (mute) and 6 dB.

    - **InputChannel** *(integer) --* **[REQUIRED]** The index of the input channel used as a
    source.
    """


_ClientCreateChannelEncoderSettingsAudioDescriptionsRemixSettingsChannelMappingsTypeDef = TypedDict(
    "_ClientCreateChannelEncoderSettingsAudioDescriptionsRemixSettingsChannelMappingsTypeDef",
    {
        "InputChannelLevels": List[
            ClientCreateChannelEncoderSettingsAudioDescriptionsRemixSettingsChannelMappingsInputChannelLevelsTypeDef
        ],
        "OutputChannel": int,
    },
)


class ClientCreateChannelEncoderSettingsAudioDescriptionsRemixSettingsChannelMappingsTypeDef(
    _ClientCreateChannelEncoderSettingsAudioDescriptionsRemixSettingsChannelMappingsTypeDef
):
    """
    Type definition for `ClientCreateChannelEncoderSettingsAudioDescriptionsRemixSettings`
    `ChannelMappings`

    - **InputChannelLevels** *(list) --* **[REQUIRED]** Indices and gain values for each input
    channel that should be remixed into this output channel.

      - *(dict) --* Input Channel Level

        - **Gain** *(integer) --* **[REQUIRED]** Remixing value. Units are in dB and acceptable
        values are within the range from -60 (mute) and 6 dB.

        - **InputChannel** *(integer) --* **[REQUIRED]** The index of the input channel used as a
        source.

    - **OutputChannel** *(integer) --* **[REQUIRED]** The index of the output channel being
    produced.
    """


_RequiredClientCreateChannelEncoderSettingsAudioDescriptionsRemixSettingsTypeDef = TypedDict(
    "_RequiredClientCreateChannelEncoderSettingsAudioDescriptionsRemixSettingsTypeDef",
    {
        "ChannelMappings": List[
            ClientCreateChannelEncoderSettingsAudioDescriptionsRemixSettingsChannelMappingsTypeDef
        ]
    },
)
_OptionalClientCreateChannelEncoderSettingsAudioDescriptionsRemixSettingsTypeDef = TypedDict(
    "_OptionalClientCreateChannelEncoderSettingsAudioDescriptionsRemixSettingsTypeDef",
    {"ChannelsIn": int, "ChannelsOut": int},
    total=False,
)


class ClientCreateChannelEncoderSettingsAudioDescriptionsRemixSettingsTypeDef(
    _RequiredClientCreateChannelEncoderSettingsAudioDescriptionsRemixSettingsTypeDef,
    _OptionalClientCreateChannelEncoderSettingsAudioDescriptionsRemixSettingsTypeDef,
):
    """
    Type definition for `ClientCreateChannelEncoderSettingsAudioDescriptions` `RemixSettings`

    - **ChannelMappings** *(list) --* **[REQUIRED]** Mapping of input channels to output channels,
    with appropriate gain adjustments.

      - *(dict) --* Audio Channel Mapping

        - **InputChannelLevels** *(list) --* **[REQUIRED]** Indices and gain values for each input
        channel that should be remixed into this output channel.

          - *(dict) --* Input Channel Level

            - **Gain** *(integer) --* **[REQUIRED]** Remixing value. Units are in dB and acceptable
            values are within the range from -60 (mute) and 6 dB.

            - **InputChannel** *(integer) --* **[REQUIRED]** The index of the input channel used as
            a source.

        - **OutputChannel** *(integer) --* **[REQUIRED]** The index of the output channel being
        produced.

    - **ChannelsIn** *(integer) --* Number of input channels to be used.

    - **ChannelsOut** *(integer) --* Number of output channels to be produced. Valid values: 1, 2,
    4, 6, 8
    """


_RequiredClientCreateChannelEncoderSettingsAudioDescriptionsTypeDef = TypedDict(
    "_RequiredClientCreateChannelEncoderSettingsAudioDescriptionsTypeDef",
    {"AudioSelectorName": str, "Name": str},
)
_OptionalClientCreateChannelEncoderSettingsAudioDescriptionsTypeDef = TypedDict(
    "_OptionalClientCreateChannelEncoderSettingsAudioDescriptionsTypeDef",
    {
        "AudioNormalizationSettings": ClientCreateChannelEncoderSettingsAudioDescriptionsAudioNormalizationSettingsTypeDef,
        "AudioType": str,
        "AudioTypeControl": str,
        "CodecSettings": ClientCreateChannelEncoderSettingsAudioDescriptionsCodecSettingsTypeDef,
        "LanguageCode": str,
        "LanguageCodeControl": str,
        "RemixSettings": ClientCreateChannelEncoderSettingsAudioDescriptionsRemixSettingsTypeDef,
        "StreamName": str,
    },
    total=False,
)


class ClientCreateChannelEncoderSettingsAudioDescriptionsTypeDef(
    _RequiredClientCreateChannelEncoderSettingsAudioDescriptionsTypeDef,
    _OptionalClientCreateChannelEncoderSettingsAudioDescriptionsTypeDef,
):
    """
    Type definition for `ClientCreateChannelEncoderSettings` `AudioDescriptions`

    - **AudioNormalizationSettings** *(dict) --* Advanced audio normalization settings.

      - **Algorithm** *(string) --* Audio normalization algorithm to use. itu17701 conforms to the
      CALM Act specification, itu17702 conforms to the EBU R-128 specification.

      - **AlgorithmControl** *(string) --* When set to correctAudio the output audio is corrected
      using the chosen algorithm. If set to measureOnly, the audio will be measured but not
      adjusted.

      - **TargetLkfs** *(float) --* Target LKFS(loudness) to adjust volume to. If no value is
      entered, a default value will be used according to the chosen algorithm. The CALM Act (1770-1)
      recommends a target of -24 LKFS. The EBU R-128 specification (1770-2) recommends a target of
      -23 LKFS.

    - **AudioSelectorName** *(string) --* **[REQUIRED]** The name of the AudioSelector used as the
    source for this AudioDescription.

    - **AudioType** *(string) --* Applies only if audioTypeControl is useConfigured. The values for
    audioType are defined in ISO-IEC 13818-1.

    - **AudioTypeControl** *(string) --* Determines how audio type is determined. followInput: If
    the input contains an ISO 639 audioType, then that value is passed through to the output. If the
    input contains no ISO 639 audioType, the value in Audio Type is included in the output.
    useConfigured: The value in Audio Type is included in the output. Note that this field and
    audioType are both ignored if inputType is broadcasterMixedAd.

    - **CodecSettings** *(dict) --* Audio codec settings.

      - **AacSettings** *(dict) --* Aac Settings

        - **Bitrate** *(float) --* Average bitrate in bits/second. Valid values depend on rate
        control mode and profile.

        - **CodingMode** *(string) --* Mono, Stereo, or 5.1 channel layout. Valid values depend on
        rate control mode and profile. The adReceiverMix setting receives a stereo description plus
        control track and emits a mono AAC encode of the description track, with control data
        emitted in the PES header as per ETSI TS 101 154 Annex E.

        - **InputType** *(string) --* Set to "broadcasterMixedAd" when input contains pre-mixed main
        audio + AD (narration) as a stereo pair. The Audio Type field (audioType) will be set to 3,
        which signals to downstream systems that this stream contains "broadcaster mixed AD". Note
        that the input received by the encoder must contain pre-mixed audio; the encoder does not
        perform the mixing. The values in audioTypeControl and audioType (in AudioDescription) are
        ignored when set to broadcasterMixedAd. Leave set to "normal" when input does not contain
        pre-mixed audio + AD.

        - **Profile** *(string) --* AAC Profile.

        - **RateControlMode** *(string) --* Rate Control Mode.

        - **RawFormat** *(string) --* Sets LATM / LOAS AAC output for raw containers.

        - **SampleRate** *(float) --* Sample rate in Hz. Valid values depend on rate control mode
        and profile.

        - **Spec** *(string) --* Use MPEG-2 AAC audio instead of MPEG-4 AAC audio for raw or MPEG-2
        Transport Stream containers.

        - **VbrQuality** *(string) --* VBR Quality Level - Only used if rateControlMode is VBR.

      - **Ac3Settings** *(dict) --* Ac3 Settings

        - **Bitrate** *(float) --* Average bitrate in bits/second. Valid bitrates depend on the
        coding mode.

        - **BitstreamMode** *(string) --* Specifies the bitstream mode (bsmod) for the emitted AC-3
        stream. See ATSC A/52-2012 for background on these values.

        - **CodingMode** *(string) --* Dolby Digital coding mode. Determines number of channels.

        - **Dialnorm** *(integer) --* Sets the dialnorm for the output. If excluded and input audio
        is Dolby Digital, dialnorm will be passed through.

        - **DrcProfile** *(string) --* If set to filmStandard, adds dynamic range compression
        signaling to the output bitstream as defined in the Dolby Digital specification.

        - **LfeFilter** *(string) --* When set to enabled, applies a 120Hz lowpass filter to the LFE
        channel prior to encoding. Only valid in codingMode32Lfe mode.

        - **MetadataControl** *(string) --* When set to "followInput", encoder metadata will be
        sourced from the DD, DD+, or DolbyE decoder that supplied this audio data. If audio was not
        supplied from one of these streams, then the static metadata settings will be used.

      - **Eac3Settings** *(dict) --* Eac3 Settings

        - **AttenuationControl** *(string) --* When set to attenuate3Db, applies a 3 dB attenuation
        to the surround channels. Only used for 3/2 coding mode.

        - **Bitrate** *(float) --* Average bitrate in bits/second. Valid bitrates depend on the
        coding mode.

        - **BitstreamMode** *(string) --* Specifies the bitstream mode (bsmod) for the emitted
        E-AC-3 stream. See ATSC A/52-2012 (Annex E) for background on these values.

        - **CodingMode** *(string) --* Dolby Digital Plus coding mode. Determines number of
        channels.

        - **DcFilter** *(string) --* When set to enabled, activates a DC highpass filter for all
        input channels.

        - **Dialnorm** *(integer) --* Sets the dialnorm for the output. If blank and input audio is
        Dolby Digital Plus, dialnorm will be passed through.

        - **DrcLine** *(string) --* Sets the Dolby dynamic range compression profile.

        - **DrcRf** *(string) --* Sets the profile for heavy Dolby dynamic range compression,
        ensures that the instantaneous signal peaks do not exceed specified levels.

        - **LfeControl** *(string) --* When encoding 3/2 audio, setting to lfe enables the LFE
        channel

        - **LfeFilter** *(string) --* When set to enabled, applies a 120Hz lowpass filter to the LFE
        channel prior to encoding. Only valid with codingMode32 coding mode.

        - **LoRoCenterMixLevel** *(float) --* Left only/Right only center mix level. Only used for
        3/2 coding mode.

        - **LoRoSurroundMixLevel** *(float) --* Left only/Right only surround mix level. Only used
        for 3/2 coding mode.

        - **LtRtCenterMixLevel** *(float) --* Left total/Right total center mix level. Only used for
        3/2 coding mode.

        - **LtRtSurroundMixLevel** *(float) --* Left total/Right total surround mix level. Only used
        for 3/2 coding mode.

        - **MetadataControl** *(string) --* When set to followInput, encoder metadata will be
        sourced from the DD, DD+, or DolbyE decoder that supplied this audio data. If audio was not
        supplied from one of these streams, then the static metadata settings will be used.

        - **PassthroughControl** *(string) --* When set to whenPossible, input DD+ audio will be
        passed through if it is present on the input. This detection is dynamic over the life of the
        transcode. Inputs that alternate between DD+ and non-DD+ content will have a consistent DD+
        output as the system alternates between passthrough and encoding.

        - **PhaseControl** *(string) --* When set to shift90Degrees, applies a 90-degree phase shift
        to the surround channels. Only used for 3/2 coding mode.

        - **StereoDownmix** *(string) --* Stereo downmix preference. Only used for 3/2 coding mode.

        - **SurroundExMode** *(string) --* When encoding 3/2 audio, sets whether an extra center
        back surround channel is matrix encoded into the left and right surround channels.

        - **SurroundMode** *(string) --* When encoding 2/0 audio, sets whether Dolby Surround is
        matrix encoded into the two channels.

      - **Mp2Settings** *(dict) --* Mp2 Settings

        - **Bitrate** *(float) --* Average bitrate in bits/second.

        - **CodingMode** *(string) --* The MPEG2 Audio coding mode. Valid values are codingMode10
        (for mono) or codingMode20 (for stereo).

        - **SampleRate** *(float) --* Sample rate in Hz.

      - **PassThroughSettings** *(dict) --* Pass Through Settings

    - **LanguageCode** *(string) --* Indicates the language of the audio output track. Only used if
    languageControlMode is useConfigured, or there is no ISO 639 language code specified in the
    input.

    - **LanguageCodeControl** *(string) --* Choosing followInput will cause the ISO 639 language
    code of the output to follow the ISO 639 language code of the input. The languageCode will be
    used when useConfigured is set, or when followInput is selected but there is no ISO 639 language
    code specified by the input.

    - **Name** *(string) --* **[REQUIRED]** The name of this AudioDescription. Outputs will use this
    name to uniquely identify this AudioDescription. Description names should be unique within this
    Live Event.

    - **RemixSettings** *(dict) --* Settings that control how input audio channels are remixed into
    the output audio channels.

      - **ChannelMappings** *(list) --* **[REQUIRED]** Mapping of input channels to output channels,
      with appropriate gain adjustments.

        - *(dict) --* Audio Channel Mapping

          - **InputChannelLevels** *(list) --* **[REQUIRED]** Indices and gain values for each input
          channel that should be remixed into this output channel.

            - *(dict) --* Input Channel Level

              - **Gain** *(integer) --* **[REQUIRED]** Remixing value. Units are in dB and
              acceptable values are within the range from -60 (mute) and 6 dB.

              - **InputChannel** *(integer) --* **[REQUIRED]** The index of the input channel used
              as a source.

          - **OutputChannel** *(integer) --* **[REQUIRED]** The index of the output channel being
          produced.

      - **ChannelsIn** *(integer) --* Number of input channels to be used.

      - **ChannelsOut** *(integer) --* Number of output channels to be produced. Valid values: 1, 2,
      4, 6, 8

    - **StreamName** *(string) --* Used for MS Smooth and Apple HLS outputs. Indicates the name
    displayed by the player (eg. English, or Director Commentary).
    """


_RequiredClientCreateChannelEncoderSettingsAvailBlankingAvailBlankingImageTypeDef = TypedDict(
    "_RequiredClientCreateChannelEncoderSettingsAvailBlankingAvailBlankingImageTypeDef",
    {"Uri": str},
)
_OptionalClientCreateChannelEncoderSettingsAvailBlankingAvailBlankingImageTypeDef = TypedDict(
    "_OptionalClientCreateChannelEncoderSettingsAvailBlankingAvailBlankingImageTypeDef",
    {"PasswordParam": str, "Username": str},
    total=False,
)


class ClientCreateChannelEncoderSettingsAvailBlankingAvailBlankingImageTypeDef(
    _RequiredClientCreateChannelEncoderSettingsAvailBlankingAvailBlankingImageTypeDef,
    _OptionalClientCreateChannelEncoderSettingsAvailBlankingAvailBlankingImageTypeDef,
):
    """
    Type definition for `ClientCreateChannelEncoderSettingsAvailBlanking` `AvailBlankingImage`

    - **PasswordParam** *(string) --* key used to extract the password from EC2 Parameter store

    - **Uri** *(string) --* **[REQUIRED]** Uniform Resource Identifier - This should be a path to a
    file accessible to the Live system (eg. a http:// URI) depending on the output type. For
    example, a RTMP destination should have a uri simliar to: "rtmp://fmsserver/live".

    - **Username** *(string) --* Documentation update needed
    """


_ClientCreateChannelEncoderSettingsAvailBlankingTypeDef = TypedDict(
    "_ClientCreateChannelEncoderSettingsAvailBlankingTypeDef",
    {
        "AvailBlankingImage": ClientCreateChannelEncoderSettingsAvailBlankingAvailBlankingImageTypeDef,
        "State": str,
    },
    total=False,
)


class ClientCreateChannelEncoderSettingsAvailBlankingTypeDef(
    _ClientCreateChannelEncoderSettingsAvailBlankingTypeDef
):
    """
    Type definition for `ClientCreateChannelEncoderSettings` `AvailBlanking`

    - **AvailBlankingImage** *(dict) --* Blanking image to be used. Leave empty for solid black.
    Only bmp and png images are supported.

      - **PasswordParam** *(string) --* key used to extract the password from EC2 Parameter store

      - **Uri** *(string) --* **[REQUIRED]** Uniform Resource Identifier - This should be a path to
      a file accessible to the Live system (eg. a http:// URI) depending on the output type. For
      example, a RTMP destination should have a uri simliar to: "rtmp://fmsserver/live".

      - **Username** *(string) --* Documentation update needed

    - **State** *(string) --* When set to enabled, causes video, audio and captions to be blanked
    when insertion metadata is added.
    """


_ClientCreateChannelEncoderSettingsAvailConfigurationAvailSettingsScte35SpliceInsertTypeDef = TypedDict(
    "_ClientCreateChannelEncoderSettingsAvailConfigurationAvailSettingsScte35SpliceInsertTypeDef",
    {"AdAvailOffset": int, "NoRegionalBlackoutFlag": str, "WebDeliveryAllowedFlag": str},
    total=False,
)


class ClientCreateChannelEncoderSettingsAvailConfigurationAvailSettingsScte35SpliceInsertTypeDef(
    _ClientCreateChannelEncoderSettingsAvailConfigurationAvailSettingsScte35SpliceInsertTypeDef
):
    """
    Type definition for `ClientCreateChannelEncoderSettingsAvailConfigurationAvailSettings`
    `Scte35SpliceInsert`

    - **AdAvailOffset** *(integer) --* When specified, this offset (in milliseconds) is added to the
    input Ad Avail PTS time. This only applies to embedded SCTE 104/35 messages and does not apply
    to OOB messages.

    - **NoRegionalBlackoutFlag** *(string) --* When set to ignore, Segment Descriptors with
    noRegionalBlackoutFlag set to 0 will no longer trigger blackouts or Ad Avail slates

    - **WebDeliveryAllowedFlag** *(string) --* When set to ignore, Segment Descriptors with
    webDeliveryAllowedFlag set to 0 will no longer trigger blackouts or Ad Avail slates
    """


_ClientCreateChannelEncoderSettingsAvailConfigurationAvailSettingsScte35TimeSignalAposTypeDef = TypedDict(
    "_ClientCreateChannelEncoderSettingsAvailConfigurationAvailSettingsScte35TimeSignalAposTypeDef",
    {"AdAvailOffset": int, "NoRegionalBlackoutFlag": str, "WebDeliveryAllowedFlag": str},
    total=False,
)


class ClientCreateChannelEncoderSettingsAvailConfigurationAvailSettingsScte35TimeSignalAposTypeDef(
    _ClientCreateChannelEncoderSettingsAvailConfigurationAvailSettingsScte35TimeSignalAposTypeDef
):
    """
    Type definition for `ClientCreateChannelEncoderSettingsAvailConfigurationAvailSettings`
    `Scte35TimeSignalApos`

    - **AdAvailOffset** *(integer) --* When specified, this offset (in milliseconds) is added to the
    input Ad Avail PTS time. This only applies to embedded SCTE 104/35 messages and does not apply
    to OOB messages.

    - **NoRegionalBlackoutFlag** *(string) --* When set to ignore, Segment Descriptors with
    noRegionalBlackoutFlag set to 0 will no longer trigger blackouts or Ad Avail slates

    - **WebDeliveryAllowedFlag** *(string) --* When set to ignore, Segment Descriptors with
    webDeliveryAllowedFlag set to 0 will no longer trigger blackouts or Ad Avail slates
    """


_ClientCreateChannelEncoderSettingsAvailConfigurationAvailSettingsTypeDef = TypedDict(
    "_ClientCreateChannelEncoderSettingsAvailConfigurationAvailSettingsTypeDef",
    {
        "Scte35SpliceInsert": ClientCreateChannelEncoderSettingsAvailConfigurationAvailSettingsScte35SpliceInsertTypeDef,
        "Scte35TimeSignalApos": ClientCreateChannelEncoderSettingsAvailConfigurationAvailSettingsScte35TimeSignalAposTypeDef,
    },
    total=False,
)


class ClientCreateChannelEncoderSettingsAvailConfigurationAvailSettingsTypeDef(
    _ClientCreateChannelEncoderSettingsAvailConfigurationAvailSettingsTypeDef
):
    """
    Type definition for `ClientCreateChannelEncoderSettingsAvailConfiguration` `AvailSettings`

    - **Scte35SpliceInsert** *(dict) --* Scte35 Splice Insert

      - **AdAvailOffset** *(integer) --* When specified, this offset (in milliseconds) is added to
      the input Ad Avail PTS time. This only applies to embedded SCTE 104/35 messages and does not
      apply to OOB messages.

      - **NoRegionalBlackoutFlag** *(string) --* When set to ignore, Segment Descriptors with
      noRegionalBlackoutFlag set to 0 will no longer trigger blackouts or Ad Avail slates

      - **WebDeliveryAllowedFlag** *(string) --* When set to ignore, Segment Descriptors with
      webDeliveryAllowedFlag set to 0 will no longer trigger blackouts or Ad Avail slates

    - **Scte35TimeSignalApos** *(dict) --* Scte35 Time Signal Apos

      - **AdAvailOffset** *(integer) --* When specified, this offset (in milliseconds) is added to
      the input Ad Avail PTS time. This only applies to embedded SCTE 104/35 messages and does not
      apply to OOB messages.

      - **NoRegionalBlackoutFlag** *(string) --* When set to ignore, Segment Descriptors with
      noRegionalBlackoutFlag set to 0 will no longer trigger blackouts or Ad Avail slates

      - **WebDeliveryAllowedFlag** *(string) --* When set to ignore, Segment Descriptors with
      webDeliveryAllowedFlag set to 0 will no longer trigger blackouts or Ad Avail slates
    """


_ClientCreateChannelEncoderSettingsAvailConfigurationTypeDef = TypedDict(
    "_ClientCreateChannelEncoderSettingsAvailConfigurationTypeDef",
    {"AvailSettings": ClientCreateChannelEncoderSettingsAvailConfigurationAvailSettingsTypeDef},
    total=False,
)


class ClientCreateChannelEncoderSettingsAvailConfigurationTypeDef(
    _ClientCreateChannelEncoderSettingsAvailConfigurationTypeDef
):
    """
    Type definition for `ClientCreateChannelEncoderSettings` `AvailConfiguration`

    - **AvailSettings** *(dict) --* Ad avail settings.

      - **Scte35SpliceInsert** *(dict) --* Scte35 Splice Insert

        - **AdAvailOffset** *(integer) --* When specified, this offset (in milliseconds) is added to
        the input Ad Avail PTS time. This only applies to embedded SCTE 104/35 messages and does not
        apply to OOB messages.

        - **NoRegionalBlackoutFlag** *(string) --* When set to ignore, Segment Descriptors with
        noRegionalBlackoutFlag set to 0 will no longer trigger blackouts or Ad Avail slates

        - **WebDeliveryAllowedFlag** *(string) --* When set to ignore, Segment Descriptors with
        webDeliveryAllowedFlag set to 0 will no longer trigger blackouts or Ad Avail slates

      - **Scte35TimeSignalApos** *(dict) --* Scte35 Time Signal Apos

        - **AdAvailOffset** *(integer) --* When specified, this offset (in milliseconds) is added to
        the input Ad Avail PTS time. This only applies to embedded SCTE 104/35 messages and does not
        apply to OOB messages.

        - **NoRegionalBlackoutFlag** *(string) --* When set to ignore, Segment Descriptors with
        noRegionalBlackoutFlag set to 0 will no longer trigger blackouts or Ad Avail slates

        - **WebDeliveryAllowedFlag** *(string) --* When set to ignore, Segment Descriptors with
        webDeliveryAllowedFlag set to 0 will no longer trigger blackouts or Ad Avail slates
    """


_RequiredClientCreateChannelEncoderSettingsBlackoutSlateBlackoutSlateImageTypeDef = TypedDict(
    "_RequiredClientCreateChannelEncoderSettingsBlackoutSlateBlackoutSlateImageTypeDef",
    {"Uri": str},
)
_OptionalClientCreateChannelEncoderSettingsBlackoutSlateBlackoutSlateImageTypeDef = TypedDict(
    "_OptionalClientCreateChannelEncoderSettingsBlackoutSlateBlackoutSlateImageTypeDef",
    {"PasswordParam": str, "Username": str},
    total=False,
)


class ClientCreateChannelEncoderSettingsBlackoutSlateBlackoutSlateImageTypeDef(
    _RequiredClientCreateChannelEncoderSettingsBlackoutSlateBlackoutSlateImageTypeDef,
    _OptionalClientCreateChannelEncoderSettingsBlackoutSlateBlackoutSlateImageTypeDef,
):
    """
    Type definition for `ClientCreateChannelEncoderSettingsBlackoutSlate` `BlackoutSlateImage`

    - **PasswordParam** *(string) --* key used to extract the password from EC2 Parameter store

    - **Uri** *(string) --* **[REQUIRED]** Uniform Resource Identifier - This should be a path to a
    file accessible to the Live system (eg. a http:// URI) depending on the output type. For
    example, a RTMP destination should have a uri simliar to: "rtmp://fmsserver/live".

    - **Username** *(string) --* Documentation update needed
    """


_RequiredClientCreateChannelEncoderSettingsBlackoutSlateNetworkEndBlackoutImageTypeDef = TypedDict(
    "_RequiredClientCreateChannelEncoderSettingsBlackoutSlateNetworkEndBlackoutImageTypeDef",
    {"Uri": str},
)
_OptionalClientCreateChannelEncoderSettingsBlackoutSlateNetworkEndBlackoutImageTypeDef = TypedDict(
    "_OptionalClientCreateChannelEncoderSettingsBlackoutSlateNetworkEndBlackoutImageTypeDef",
    {"PasswordParam": str, "Username": str},
    total=False,
)


class ClientCreateChannelEncoderSettingsBlackoutSlateNetworkEndBlackoutImageTypeDef(
    _RequiredClientCreateChannelEncoderSettingsBlackoutSlateNetworkEndBlackoutImageTypeDef,
    _OptionalClientCreateChannelEncoderSettingsBlackoutSlateNetworkEndBlackoutImageTypeDef,
):
    """
    Type definition for `ClientCreateChannelEncoderSettingsBlackoutSlate` `NetworkEndBlackoutImage`

    - **PasswordParam** *(string) --* key used to extract the password from EC2 Parameter store

    - **Uri** *(string) --* **[REQUIRED]** Uniform Resource Identifier - This should be a path to a
    file accessible to the Live system (eg. a http:// URI) depending on the output type. For
    example, a RTMP destination should have a uri simliar to: "rtmp://fmsserver/live".

    - **Username** *(string) --* Documentation update needed
    """


_ClientCreateChannelEncoderSettingsBlackoutSlateTypeDef = TypedDict(
    "_ClientCreateChannelEncoderSettingsBlackoutSlateTypeDef",
    {
        "BlackoutSlateImage": ClientCreateChannelEncoderSettingsBlackoutSlateBlackoutSlateImageTypeDef,
        "NetworkEndBlackout": str,
        "NetworkEndBlackoutImage": ClientCreateChannelEncoderSettingsBlackoutSlateNetworkEndBlackoutImageTypeDef,
        "NetworkId": str,
        "State": str,
    },
    total=False,
)


class ClientCreateChannelEncoderSettingsBlackoutSlateTypeDef(
    _ClientCreateChannelEncoderSettingsBlackoutSlateTypeDef
):
    """
    Type definition for `ClientCreateChannelEncoderSettings` `BlackoutSlate`

    - **BlackoutSlateImage** *(dict) --* Blackout slate image to be used. Leave empty for solid
    black. Only bmp and png images are supported.

      - **PasswordParam** *(string) --* key used to extract the password from EC2 Parameter store

      - **Uri** *(string) --* **[REQUIRED]** Uniform Resource Identifier - This should be a path to
      a file accessible to the Live system (eg. a http:// URI) depending on the output type. For
      example, a RTMP destination should have a uri simliar to: "rtmp://fmsserver/live".

      - **Username** *(string) --* Documentation update needed

    - **NetworkEndBlackout** *(string) --* Setting to enabled causes the encoder to blackout the
    video, audio, and captions, and raise the "Network Blackout Image" slate when an SCTE104/35
    Network End Segmentation Descriptor is encountered. The blackout will be lifted when the Network
    Start Segmentation Descriptor is encountered. The Network End and Network Start descriptors must
    contain a network ID that matches the value entered in "Network ID".

    - **NetworkEndBlackoutImage** *(dict) --* Path to local file to use as Network End Blackout
    image. Image will be scaled to fill the entire output raster.

      - **PasswordParam** *(string) --* key used to extract the password from EC2 Parameter store

      - **Uri** *(string) --* **[REQUIRED]** Uniform Resource Identifier - This should be a path to
      a file accessible to the Live system (eg. a http:// URI) depending on the output type. For
      example, a RTMP destination should have a uri simliar to: "rtmp://fmsserver/live".

      - **Username** *(string) --* Documentation update needed

    - **NetworkId** *(string) --* Provides Network ID that matches EIDR ID format (e.g.,
    "10.XXXX/XXXX-XXXX-XXXX-XXXX-XXXX-C").

    - **State** *(string) --* When set to enabled, causes video, audio and captions to be blanked
    when indicated by program metadata.
    """


_RequiredClientCreateChannelEncoderSettingsCaptionDescriptionsDestinationSettingsBurnInDestinationSettingsFontTypeDef = TypedDict(
    "_RequiredClientCreateChannelEncoderSettingsCaptionDescriptionsDestinationSettingsBurnInDestinationSettingsFontTypeDef",
    {"Uri": str},
)
_OptionalClientCreateChannelEncoderSettingsCaptionDescriptionsDestinationSettingsBurnInDestinationSettingsFontTypeDef = TypedDict(
    "_OptionalClientCreateChannelEncoderSettingsCaptionDescriptionsDestinationSettingsBurnInDestinationSettingsFontTypeDef",
    {"PasswordParam": str, "Username": str},
    total=False,
)


class ClientCreateChannelEncoderSettingsCaptionDescriptionsDestinationSettingsBurnInDestinationSettingsFontTypeDef(
    _RequiredClientCreateChannelEncoderSettingsCaptionDescriptionsDestinationSettingsBurnInDestinationSettingsFontTypeDef,
    _OptionalClientCreateChannelEncoderSettingsCaptionDescriptionsDestinationSettingsBurnInDestinationSettingsFontTypeDef,
):
    """
    Type definition for
    `ClientCreateChannelEncoderSettingsCaptionDescriptionsDestinationSettingsBurnInDestinationSettings`
    `Font`

    - **PasswordParam** *(string) --* key used to extract the password from EC2 Parameter store

    - **Uri** *(string) --* **[REQUIRED]** Uniform Resource Identifier - This should be a path to a
    file accessible to the Live system (eg. a http:// URI) depending on the output type. For
    example, a RTMP destination should have a uri simliar to: "rtmp://fmsserver/live".

    - **Username** *(string) --* Documentation update needed
    """


_ClientCreateChannelEncoderSettingsCaptionDescriptionsDestinationSettingsBurnInDestinationSettingsTypeDef = TypedDict(
    "_ClientCreateChannelEncoderSettingsCaptionDescriptionsDestinationSettingsBurnInDestinationSettingsTypeDef",
    {
        "Alignment": str,
        "BackgroundColor": str,
        "BackgroundOpacity": int,
        "Font": ClientCreateChannelEncoderSettingsCaptionDescriptionsDestinationSettingsBurnInDestinationSettingsFontTypeDef,
        "FontColor": str,
        "FontOpacity": int,
        "FontResolution": int,
        "FontSize": str,
        "OutlineColor": str,
        "OutlineSize": int,
        "ShadowColor": str,
        "ShadowOpacity": int,
        "ShadowXOffset": int,
        "ShadowYOffset": int,
        "TeletextGridControl": str,
        "XPosition": int,
        "YPosition": int,
    },
    total=False,
)


class ClientCreateChannelEncoderSettingsCaptionDescriptionsDestinationSettingsBurnInDestinationSettingsTypeDef(
    _ClientCreateChannelEncoderSettingsCaptionDescriptionsDestinationSettingsBurnInDestinationSettingsTypeDef
):
    """
    Type definition for `ClientCreateChannelEncoderSettingsCaptionDescriptionsDestinationSettings`
    `BurnInDestinationSettings`

    - **Alignment** *(string) --* If no explicit xPosition or yPosition is provided, setting
    alignment to centered will place the captions at the bottom center of the output. Similarly,
    setting a left alignment will align captions to the bottom left of the output. If x and y
    positions are given in conjunction with the alignment parameter, the font will be justified
    (either left or centered) relative to those coordinates. Selecting "smart" justification will
    left-justify live subtitles and center-justify pre-recorded subtitles. All burn-in and DVB-Sub
    font settings must match.

    - **BackgroundColor** *(string) --* Specifies the color of the rectangle behind the captions.
    All burn-in and DVB-Sub font settings must match.

    - **BackgroundOpacity** *(integer) --* Specifies the opacity of the background rectangle. 255 is
    opaque; 0 is transparent. Leaving this parameter out is equivalent to setting it to 0
    (transparent). All burn-in and DVB-Sub font settings must match.

    - **Font** *(dict) --* External font file used for caption burn-in. File extension must be 'ttf'
    or 'tte'. Although the user can select output fonts for many different types of input captions,
    embedded, STL and teletext sources use a strict grid system. Using external fonts with these
    caption sources could cause unexpected display of proportional fonts. All burn-in and DVB-Sub
    font settings must match.

      - **PasswordParam** *(string) --* key used to extract the password from EC2 Parameter store

      - **Uri** *(string) --* **[REQUIRED]** Uniform Resource Identifier - This should be a path to
      a file accessible to the Live system (eg. a http:// URI) depending on the output type. For
      example, a RTMP destination should have a uri simliar to: "rtmp://fmsserver/live".

      - **Username** *(string) --* Documentation update needed

    - **FontColor** *(string) --* Specifies the color of the burned-in captions. This option is not
    valid for source captions that are STL, 608/embedded or teletext. These source settings are
    already pre-defined by the caption stream. All burn-in and DVB-Sub font settings must match.

    - **FontOpacity** *(integer) --* Specifies the opacity of the burned-in captions. 255 is opaque;
    0 is transparent. All burn-in and DVB-Sub font settings must match.

    - **FontResolution** *(integer) --* Font resolution in DPI (dots per inch); default is 96 dpi.
    All burn-in and DVB-Sub font settings must match.

    - **FontSize** *(string) --* When set to 'auto' fontSize will scale depending on the size of the
    output. Giving a positive integer will specify the exact font size in points. All burn-in and
    DVB-Sub font settings must match.

    - **OutlineColor** *(string) --* Specifies font outline color. This option is not valid for
    source captions that are either 608/embedded or teletext. These source settings are already
    pre-defined by the caption stream. All burn-in and DVB-Sub font settings must match.

    - **OutlineSize** *(integer) --* Specifies font outline size in pixels. This option is not valid
    for source captions that are either 608/embedded or teletext. These source settings are already
    pre-defined by the caption stream. All burn-in and DVB-Sub font settings must match.

    - **ShadowColor** *(string) --* Specifies the color of the shadow cast by the captions. All
    burn-in and DVB-Sub font settings must match.

    - **ShadowOpacity** *(integer) --* Specifies the opacity of the shadow. 255 is opaque; 0 is
    transparent. Leaving this parameter out is equivalent to setting it to 0 (transparent). All
    burn-in and DVB-Sub font settings must match.

    - **ShadowXOffset** *(integer) --* Specifies the horizontal offset of the shadow relative to the
    captions in pixels. A value of -2 would result in a shadow offset 2 pixels to the left. All
    burn-in and DVB-Sub font settings must match.

    - **ShadowYOffset** *(integer) --* Specifies the vertical offset of the shadow relative to the
    captions in pixels. A value of -2 would result in a shadow offset 2 pixels above the text. All
    burn-in and DVB-Sub font settings must match.

    - **TeletextGridControl** *(string) --* Controls whether a fixed grid size will be used to
    generate the output subtitles bitmap. Only applicable for Teletext inputs and DVB-Sub/Burn-in
    outputs.

    - **XPosition** *(integer) --* Specifies the horizontal position of the caption relative to the
    left side of the output in pixels. A value of 10 would result in the captions starting 10 pixels
    from the left of the output. If no explicit xPosition is provided, the horizontal caption
    position will be determined by the alignment parameter. All burn-in and DVB-Sub font settings
    must match.

    - **YPosition** *(integer) --* Specifies the vertical position of the caption relative to the
    top of the output in pixels. A value of 10 would result in the captions starting 10 pixels from
    the top of the output. If no explicit yPosition is provided, the caption will be positioned
    towards the bottom of the output. All burn-in and DVB-Sub font settings must match.
    """


_RequiredClientCreateChannelEncoderSettingsCaptionDescriptionsDestinationSettingsDvbSubDestinationSettingsFontTypeDef = TypedDict(
    "_RequiredClientCreateChannelEncoderSettingsCaptionDescriptionsDestinationSettingsDvbSubDestinationSettingsFontTypeDef",
    {"Uri": str},
)
_OptionalClientCreateChannelEncoderSettingsCaptionDescriptionsDestinationSettingsDvbSubDestinationSettingsFontTypeDef = TypedDict(
    "_OptionalClientCreateChannelEncoderSettingsCaptionDescriptionsDestinationSettingsDvbSubDestinationSettingsFontTypeDef",
    {"PasswordParam": str, "Username": str},
    total=False,
)


class ClientCreateChannelEncoderSettingsCaptionDescriptionsDestinationSettingsDvbSubDestinationSettingsFontTypeDef(
    _RequiredClientCreateChannelEncoderSettingsCaptionDescriptionsDestinationSettingsDvbSubDestinationSettingsFontTypeDef,
    _OptionalClientCreateChannelEncoderSettingsCaptionDescriptionsDestinationSettingsDvbSubDestinationSettingsFontTypeDef,
):
    """
    Type definition for
    `ClientCreateChannelEncoderSettingsCaptionDescriptionsDestinationSettingsDvbSubDestinationSettings`
    `Font`

    - **PasswordParam** *(string) --* key used to extract the password from EC2 Parameter store

    - **Uri** *(string) --* **[REQUIRED]** Uniform Resource Identifier - This should be a path to a
    file accessible to the Live system (eg. a http:// URI) depending on the output type. For
    example, a RTMP destination should have a uri simliar to: "rtmp://fmsserver/live".

    - **Username** *(string) --* Documentation update needed
    """


_ClientCreateChannelEncoderSettingsCaptionDescriptionsDestinationSettingsDvbSubDestinationSettingsTypeDef = TypedDict(
    "_ClientCreateChannelEncoderSettingsCaptionDescriptionsDestinationSettingsDvbSubDestinationSettingsTypeDef",
    {
        "Alignment": str,
        "BackgroundColor": str,
        "BackgroundOpacity": int,
        "Font": ClientCreateChannelEncoderSettingsCaptionDescriptionsDestinationSettingsDvbSubDestinationSettingsFontTypeDef,
        "FontColor": str,
        "FontOpacity": int,
        "FontResolution": int,
        "FontSize": str,
        "OutlineColor": str,
        "OutlineSize": int,
        "ShadowColor": str,
        "ShadowOpacity": int,
        "ShadowXOffset": int,
        "ShadowYOffset": int,
        "TeletextGridControl": str,
        "XPosition": int,
        "YPosition": int,
    },
    total=False,
)


class ClientCreateChannelEncoderSettingsCaptionDescriptionsDestinationSettingsDvbSubDestinationSettingsTypeDef(
    _ClientCreateChannelEncoderSettingsCaptionDescriptionsDestinationSettingsDvbSubDestinationSettingsTypeDef
):
    """
    Type definition for `ClientCreateChannelEncoderSettingsCaptionDescriptionsDestinationSettings`
    `DvbSubDestinationSettings`

    - **Alignment** *(string) --* If no explicit xPosition or yPosition is provided, setting
    alignment to centered will place the captions at the bottom center of the output. Similarly,
    setting a left alignment will align captions to the bottom left of the output. If x and y
    positions are given in conjunction with the alignment parameter, the font will be justified
    (either left or centered) relative to those coordinates. Selecting "smart" justification will
    left-justify live subtitles and center-justify pre-recorded subtitles. This option is not valid
    for source captions that are STL or 608/embedded. These source settings are already pre-defined
    by the caption stream. All burn-in and DVB-Sub font settings must match.

    - **BackgroundColor** *(string) --* Specifies the color of the rectangle behind the captions.
    All burn-in and DVB-Sub font settings must match.

    - **BackgroundOpacity** *(integer) --* Specifies the opacity of the background rectangle. 255 is
    opaque; 0 is transparent. Leaving this parameter blank is equivalent to setting it to 0
    (transparent). All burn-in and DVB-Sub font settings must match.

    - **Font** *(dict) --* External font file used for caption burn-in. File extension must be 'ttf'
    or 'tte'. Although the user can select output fonts for many different types of input captions,
    embedded, STL and teletext sources use a strict grid system. Using external fonts with these
    caption sources could cause unexpected display of proportional fonts. All burn-in and DVB-Sub
    font settings must match.

      - **PasswordParam** *(string) --* key used to extract the password from EC2 Parameter store

      - **Uri** *(string) --* **[REQUIRED]** Uniform Resource Identifier - This should be a path to
      a file accessible to the Live system (eg. a http:// URI) depending on the output type. For
      example, a RTMP destination should have a uri simliar to: "rtmp://fmsserver/live".

      - **Username** *(string) --* Documentation update needed

    - **FontColor** *(string) --* Specifies the color of the burned-in captions. This option is not
    valid for source captions that are STL, 608/embedded or teletext. These source settings are
    already pre-defined by the caption stream. All burn-in and DVB-Sub font settings must match.

    - **FontOpacity** *(integer) --* Specifies the opacity of the burned-in captions. 255 is opaque;
    0 is transparent. All burn-in and DVB-Sub font settings must match.

    - **FontResolution** *(integer) --* Font resolution in DPI (dots per inch); default is 96 dpi.
    All burn-in and DVB-Sub font settings must match.

    - **FontSize** *(string) --* When set to auto fontSize will scale depending on the size of the
    output. Giving a positive integer will specify the exact font size in points. All burn-in and
    DVB-Sub font settings must match.

    - **OutlineColor** *(string) --* Specifies font outline color. This option is not valid for
    source captions that are either 608/embedded or teletext. These source settings are already
    pre-defined by the caption stream. All burn-in and DVB-Sub font settings must match.

    - **OutlineSize** *(integer) --* Specifies font outline size in pixels. This option is not valid
    for source captions that are either 608/embedded or teletext. These source settings are already
    pre-defined by the caption stream. All burn-in and DVB-Sub font settings must match.

    - **ShadowColor** *(string) --* Specifies the color of the shadow cast by the captions. All
    burn-in and DVB-Sub font settings must match.

    - **ShadowOpacity** *(integer) --* Specifies the opacity of the shadow. 255 is opaque; 0 is
    transparent. Leaving this parameter blank is equivalent to setting it to 0 (transparent). All
    burn-in and DVB-Sub font settings must match.

    - **ShadowXOffset** *(integer) --* Specifies the horizontal offset of the shadow relative to the
    captions in pixels. A value of -2 would result in a shadow offset 2 pixels to the left. All
    burn-in and DVB-Sub font settings must match.

    - **ShadowYOffset** *(integer) --* Specifies the vertical offset of the shadow relative to the
    captions in pixels. A value of -2 would result in a shadow offset 2 pixels above the text. All
    burn-in and DVB-Sub font settings must match.

    - **TeletextGridControl** *(string) --* Controls whether a fixed grid size will be used to
    generate the output subtitles bitmap. Only applicable for Teletext inputs and DVB-Sub/Burn-in
    outputs.

    - **XPosition** *(integer) --* Specifies the horizontal position of the caption relative to the
    left side of the output in pixels. A value of 10 would result in the captions starting 10 pixels
    from the left of the output. If no explicit xPosition is provided, the horizontal caption
    position will be determined by the alignment parameter. This option is not valid for source
    captions that are STL, 608/embedded or teletext. These source settings are already pre-defined
    by the caption stream. All burn-in and DVB-Sub font settings must match.

    - **YPosition** *(integer) --* Specifies the vertical position of the caption relative to the
    top of the output in pixels. A value of 10 would result in the captions starting 10 pixels from
    the top of the output. If no explicit yPosition is provided, the caption will be positioned
    towards the bottom of the output. This option is not valid for source captions that are STL,
    608/embedded or teletext. These source settings are already pre-defined by the caption stream.
    All burn-in and DVB-Sub font settings must match.
    """


_ClientCreateChannelEncoderSettingsCaptionDescriptionsDestinationSettingsTtmlDestinationSettingsTypeDef = TypedDict(
    "_ClientCreateChannelEncoderSettingsCaptionDescriptionsDestinationSettingsTtmlDestinationSettingsTypeDef",
    {"StyleControl": str},
    total=False,
)


class ClientCreateChannelEncoderSettingsCaptionDescriptionsDestinationSettingsTtmlDestinationSettingsTypeDef(
    _ClientCreateChannelEncoderSettingsCaptionDescriptionsDestinationSettingsTtmlDestinationSettingsTypeDef
):
    """
    Type definition for `ClientCreateChannelEncoderSettingsCaptionDescriptionsDestinationSettings`
    `TtmlDestinationSettings`

    - **StyleControl** *(string) --* When set to passthrough, passes through style and position
    information from a TTML-like input source (TTML, SMPTE-TT, CFF-TT) to the CFF-TT output or TTML
    output.
    """


_ClientCreateChannelEncoderSettingsCaptionDescriptionsDestinationSettingsTypeDef = TypedDict(
    "_ClientCreateChannelEncoderSettingsCaptionDescriptionsDestinationSettingsTypeDef",
    {
        "AribDestinationSettings": Dict,
        "BurnInDestinationSettings": ClientCreateChannelEncoderSettingsCaptionDescriptionsDestinationSettingsBurnInDestinationSettingsTypeDef,
        "DvbSubDestinationSettings": ClientCreateChannelEncoderSettingsCaptionDescriptionsDestinationSettingsDvbSubDestinationSettingsTypeDef,
        "EmbeddedDestinationSettings": Dict,
        "EmbeddedPlusScte20DestinationSettings": Dict,
        "RtmpCaptionInfoDestinationSettings": Dict,
        "Scte20PlusEmbeddedDestinationSettings": Dict,
        "Scte27DestinationSettings": Dict,
        "SmpteTtDestinationSettings": Dict,
        "TeletextDestinationSettings": Dict,
        "TtmlDestinationSettings": ClientCreateChannelEncoderSettingsCaptionDescriptionsDestinationSettingsTtmlDestinationSettingsTypeDef,
        "WebvttDestinationSettings": Dict[str, Any],
    },
    total=False,
)


class ClientCreateChannelEncoderSettingsCaptionDescriptionsDestinationSettingsTypeDef(
    _ClientCreateChannelEncoderSettingsCaptionDescriptionsDestinationSettingsTypeDef
):
    """
    Type definition for `ClientCreateChannelEncoderSettingsCaptionDescriptions`
    `DestinationSettings`

    - **AribDestinationSettings** *(dict) --* Arib Destination Settings

    - **BurnInDestinationSettings** *(dict) --* Burn In Destination Settings

      - **Alignment** *(string) --* If no explicit xPosition or yPosition is provided, setting
      alignment to centered will place the captions at the bottom center of the output. Similarly,
      setting a left alignment will align captions to the bottom left of the output. If x and y
      positions are given in conjunction with the alignment parameter, the font will be justified
      (either left or centered) relative to those coordinates. Selecting "smart" justification will
      left-justify live subtitles and center-justify pre-recorded subtitles. All burn-in and DVB-Sub
      font settings must match.

      - **BackgroundColor** *(string) --* Specifies the color of the rectangle behind the captions.
      All burn-in and DVB-Sub font settings must match.

      - **BackgroundOpacity** *(integer) --* Specifies the opacity of the background rectangle. 255
      is opaque; 0 is transparent. Leaving this parameter out is equivalent to setting it to 0
      (transparent). All burn-in and DVB-Sub font settings must match.

      - **Font** *(dict) --* External font file used for caption burn-in. File extension must be
      'ttf' or 'tte'. Although the user can select output fonts for many different types of input
      captions, embedded, STL and teletext sources use a strict grid system. Using external fonts
      with these caption sources could cause unexpected display of proportional fonts. All burn-in
      and DVB-Sub font settings must match.

        - **PasswordParam** *(string) --* key used to extract the password from EC2 Parameter store

        - **Uri** *(string) --* **[REQUIRED]** Uniform Resource Identifier - This should be a path
        to a file accessible to the Live system (eg. a http:// URI) depending on the output type.
        For example, a RTMP destination should have a uri simliar to: "rtmp://fmsserver/live".

        - **Username** *(string) --* Documentation update needed

      - **FontColor** *(string) --* Specifies the color of the burned-in captions. This option is
      not valid for source captions that are STL, 608/embedded or teletext. These source settings
      are already pre-defined by the caption stream. All burn-in and DVB-Sub font settings must
      match.

      - **FontOpacity** *(integer) --* Specifies the opacity of the burned-in captions. 255 is
      opaque; 0 is transparent. All burn-in and DVB-Sub font settings must match.

      - **FontResolution** *(integer) --* Font resolution in DPI (dots per inch); default is 96 dpi.
      All burn-in and DVB-Sub font settings must match.

      - **FontSize** *(string) --* When set to 'auto' fontSize will scale depending on the size of
      the output. Giving a positive integer will specify the exact font size in points. All burn-in
      and DVB-Sub font settings must match.

      - **OutlineColor** *(string) --* Specifies font outline color. This option is not valid for
      source captions that are either 608/embedded or teletext. These source settings are already
      pre-defined by the caption stream. All burn-in and DVB-Sub font settings must match.

      - **OutlineSize** *(integer) --* Specifies font outline size in pixels. This option is not
      valid for source captions that are either 608/embedded or teletext. These source settings are
      already pre-defined by the caption stream. All burn-in and DVB-Sub font settings must match.

      - **ShadowColor** *(string) --* Specifies the color of the shadow cast by the captions. All
      burn-in and DVB-Sub font settings must match.

      - **ShadowOpacity** *(integer) --* Specifies the opacity of the shadow. 255 is opaque; 0 is
      transparent. Leaving this parameter out is equivalent to setting it to 0 (transparent). All
      burn-in and DVB-Sub font settings must match.

      - **ShadowXOffset** *(integer) --* Specifies the horizontal offset of the shadow relative to
      the captions in pixels. A value of -2 would result in a shadow offset 2 pixels to the left.
      All burn-in and DVB-Sub font settings must match.

      - **ShadowYOffset** *(integer) --* Specifies the vertical offset of the shadow relative to the
      captions in pixels. A value of -2 would result in a shadow offset 2 pixels above the text. All
      burn-in and DVB-Sub font settings must match.

      - **TeletextGridControl** *(string) --* Controls whether a fixed grid size will be used to
      generate the output subtitles bitmap. Only applicable for Teletext inputs and DVB-Sub/Burn-in
      outputs.

      - **XPosition** *(integer) --* Specifies the horizontal position of the caption relative to
      the left side of the output in pixels. A value of 10 would result in the captions starting 10
      pixels from the left of the output. If no explicit xPosition is provided, the horizontal
      caption position will be determined by the alignment parameter. All burn-in and DVB-Sub font
      settings must match.

      - **YPosition** *(integer) --* Specifies the vertical position of the caption relative to the
      top of the output in pixels. A value of 10 would result in the captions starting 10 pixels
      from the top of the output. If no explicit yPosition is provided, the caption will be
      positioned towards the bottom of the output. All burn-in and DVB-Sub font settings must match.

    - **DvbSubDestinationSettings** *(dict) --* Dvb Sub Destination Settings

      - **Alignment** *(string) --* If no explicit xPosition or yPosition is provided, setting
      alignment to centered will place the captions at the bottom center of the output. Similarly,
      setting a left alignment will align captions to the bottom left of the output. If x and y
      positions are given in conjunction with the alignment parameter, the font will be justified
      (either left or centered) relative to those coordinates. Selecting "smart" justification will
      left-justify live subtitles and center-justify pre-recorded subtitles. This option is not
      valid for source captions that are STL or 608/embedded. These source settings are already
      pre-defined by the caption stream. All burn-in and DVB-Sub font settings must match.

      - **BackgroundColor** *(string) --* Specifies the color of the rectangle behind the captions.
      All burn-in and DVB-Sub font settings must match.

      - **BackgroundOpacity** *(integer) --* Specifies the opacity of the background rectangle. 255
      is opaque; 0 is transparent. Leaving this parameter blank is equivalent to setting it to 0
      (transparent). All burn-in and DVB-Sub font settings must match.

      - **Font** *(dict) --* External font file used for caption burn-in. File extension must be
      'ttf' or 'tte'. Although the user can select output fonts for many different types of input
      captions, embedded, STL and teletext sources use a strict grid system. Using external fonts
      with these caption sources could cause unexpected display of proportional fonts. All burn-in
      and DVB-Sub font settings must match.

        - **PasswordParam** *(string) --* key used to extract the password from EC2 Parameter store

        - **Uri** *(string) --* **[REQUIRED]** Uniform Resource Identifier - This should be a path
        to a file accessible to the Live system (eg. a http:// URI) depending on the output type.
        For example, a RTMP destination should have a uri simliar to: "rtmp://fmsserver/live".

        - **Username** *(string) --* Documentation update needed

      - **FontColor** *(string) --* Specifies the color of the burned-in captions. This option is
      not valid for source captions that are STL, 608/embedded or teletext. These source settings
      are already pre-defined by the caption stream. All burn-in and DVB-Sub font settings must
      match.

      - **FontOpacity** *(integer) --* Specifies the opacity of the burned-in captions. 255 is
      opaque; 0 is transparent. All burn-in and DVB-Sub font settings must match.

      - **FontResolution** *(integer) --* Font resolution in DPI (dots per inch); default is 96 dpi.
      All burn-in and DVB-Sub font settings must match.

      - **FontSize** *(string) --* When set to auto fontSize will scale depending on the size of the
      output. Giving a positive integer will specify the exact font size in points. All burn-in and
      DVB-Sub font settings must match.

      - **OutlineColor** *(string) --* Specifies font outline color. This option is not valid for
      source captions that are either 608/embedded or teletext. These source settings are already
      pre-defined by the caption stream. All burn-in and DVB-Sub font settings must match.

      - **OutlineSize** *(integer) --* Specifies font outline size in pixels. This option is not
      valid for source captions that are either 608/embedded or teletext. These source settings are
      already pre-defined by the caption stream. All burn-in and DVB-Sub font settings must match.

      - **ShadowColor** *(string) --* Specifies the color of the shadow cast by the captions. All
      burn-in and DVB-Sub font settings must match.

      - **ShadowOpacity** *(integer) --* Specifies the opacity of the shadow. 255 is opaque; 0 is
      transparent. Leaving this parameter blank is equivalent to setting it to 0 (transparent). All
      burn-in and DVB-Sub font settings must match.

      - **ShadowXOffset** *(integer) --* Specifies the horizontal offset of the shadow relative to
      the captions in pixels. A value of -2 would result in a shadow offset 2 pixels to the left.
      All burn-in and DVB-Sub font settings must match.

      - **ShadowYOffset** *(integer) --* Specifies the vertical offset of the shadow relative to the
      captions in pixels. A value of -2 would result in a shadow offset 2 pixels above the text. All
      burn-in and DVB-Sub font settings must match.

      - **TeletextGridControl** *(string) --* Controls whether a fixed grid size will be used to
      generate the output subtitles bitmap. Only applicable for Teletext inputs and DVB-Sub/Burn-in
      outputs.

      - **XPosition** *(integer) --* Specifies the horizontal position of the caption relative to
      the left side of the output in pixels. A value of 10 would result in the captions starting 10
      pixels from the left of the output. If no explicit xPosition is provided, the horizontal
      caption position will be determined by the alignment parameter. This option is not valid for
      source captions that are STL, 608/embedded or teletext. These source settings are already
      pre-defined by the caption stream. All burn-in and DVB-Sub font settings must match.

      - **YPosition** *(integer) --* Specifies the vertical position of the caption relative to the
      top of the output in pixels. A value of 10 would result in the captions starting 10 pixels
      from the top of the output. If no explicit yPosition is provided, the caption will be
      positioned towards the bottom of the output. This option is not valid for source captions that
      are STL, 608/embedded or teletext. These source settings are already pre-defined by the
      caption stream. All burn-in and DVB-Sub font settings must match.

    - **EmbeddedDestinationSettings** *(dict) --* Embedded Destination Settings

    - **EmbeddedPlusScte20DestinationSettings** *(dict) --* Embedded Plus Scte20 Destination
    Settings

    - **RtmpCaptionInfoDestinationSettings** *(dict) --* Rtmp Caption Info Destination Settings

    - **Scte20PlusEmbeddedDestinationSettings** *(dict) --* Scte20 Plus Embedded Destination
    Settings

    - **Scte27DestinationSettings** *(dict) --* Scte27 Destination Settings

    - **SmpteTtDestinationSettings** *(dict) --* Smpte Tt Destination Settings

    - **TeletextDestinationSettings** *(dict) --* Teletext Destination Settings

    - **TtmlDestinationSettings** *(dict) --* Ttml Destination Settings

      - **StyleControl** *(string) --* When set to passthrough, passes through style and position
      information from a TTML-like input source (TTML, SMPTE-TT, CFF-TT) to the CFF-TT output or
      TTML output.

    - **WebvttDestinationSettings** *(dict) --* Webvtt Destination Settings
    """


_RequiredClientCreateChannelEncoderSettingsCaptionDescriptionsTypeDef = TypedDict(
    "_RequiredClientCreateChannelEncoderSettingsCaptionDescriptionsTypeDef",
    {"CaptionSelectorName": str, "Name": str},
)
_OptionalClientCreateChannelEncoderSettingsCaptionDescriptionsTypeDef = TypedDict(
    "_OptionalClientCreateChannelEncoderSettingsCaptionDescriptionsTypeDef",
    {
        "DestinationSettings": ClientCreateChannelEncoderSettingsCaptionDescriptionsDestinationSettingsTypeDef,
        "LanguageCode": str,
        "LanguageDescription": str,
    },
    total=False,
)


class ClientCreateChannelEncoderSettingsCaptionDescriptionsTypeDef(
    _RequiredClientCreateChannelEncoderSettingsCaptionDescriptionsTypeDef,
    _OptionalClientCreateChannelEncoderSettingsCaptionDescriptionsTypeDef,
):
    """
    Type definition for `ClientCreateChannelEncoderSettings` `CaptionDescriptions`

    - **CaptionSelectorName** *(string) --* **[REQUIRED]** Specifies which input caption selector to
    use as a caption source when generating output captions. This field should match a
    captionSelector name.

    - **DestinationSettings** *(dict) --* Additional settings for captions destination that depend
    on the destination type.

      - **AribDestinationSettings** *(dict) --* Arib Destination Settings

      - **BurnInDestinationSettings** *(dict) --* Burn In Destination Settings

        - **Alignment** *(string) --* If no explicit xPosition or yPosition is provided, setting
        alignment to centered will place the captions at the bottom center of the output. Similarly,
        setting a left alignment will align captions to the bottom left of the output. If x and y
        positions are given in conjunction with the alignment parameter, the font will be justified
        (either left or centered) relative to those coordinates. Selecting "smart" justification
        will left-justify live subtitles and center-justify pre-recorded subtitles. All burn-in and
        DVB-Sub font settings must match.

        - **BackgroundColor** *(string) --* Specifies the color of the rectangle behind the
        captions. All burn-in and DVB-Sub font settings must match.

        - **BackgroundOpacity** *(integer) --* Specifies the opacity of the background rectangle.
        255 is opaque; 0 is transparent. Leaving this parameter out is equivalent to setting it to 0
        (transparent). All burn-in and DVB-Sub font settings must match.

        - **Font** *(dict) --* External font file used for caption burn-in. File extension must be
        'ttf' or 'tte'. Although the user can select output fonts for many different types of input
        captions, embedded, STL and teletext sources use a strict grid system. Using external fonts
        with these caption sources could cause unexpected display of proportional fonts. All burn-in
        and DVB-Sub font settings must match.

          - **PasswordParam** *(string) --* key used to extract the password from EC2 Parameter
          store

          - **Uri** *(string) --* **[REQUIRED]** Uniform Resource Identifier - This should be a path
          to a file accessible to the Live system (eg. a http:// URI) depending on the output type.
          For example, a RTMP destination should have a uri simliar to: "rtmp://fmsserver/live".

          - **Username** *(string) --* Documentation update needed

        - **FontColor** *(string) --* Specifies the color of the burned-in captions. This option is
        not valid for source captions that are STL, 608/embedded or teletext. These source settings
        are already pre-defined by the caption stream. All burn-in and DVB-Sub font settings must
        match.

        - **FontOpacity** *(integer) --* Specifies the opacity of the burned-in captions. 255 is
        opaque; 0 is transparent. All burn-in and DVB-Sub font settings must match.

        - **FontResolution** *(integer) --* Font resolution in DPI (dots per inch); default is 96
        dpi. All burn-in and DVB-Sub font settings must match.

        - **FontSize** *(string) --* When set to 'auto' fontSize will scale depending on the size of
        the output. Giving a positive integer will specify the exact font size in points. All
        burn-in and DVB-Sub font settings must match.

        - **OutlineColor** *(string) --* Specifies font outline color. This option is not valid for
        source captions that are either 608/embedded or teletext. These source settings are already
        pre-defined by the caption stream. All burn-in and DVB-Sub font settings must match.

        - **OutlineSize** *(integer) --* Specifies font outline size in pixels. This option is not
        valid for source captions that are either 608/embedded or teletext. These source settings
        are already pre-defined by the caption stream. All burn-in and DVB-Sub font settings must
        match.

        - **ShadowColor** *(string) --* Specifies the color of the shadow cast by the captions. All
        burn-in and DVB-Sub font settings must match.

        - **ShadowOpacity** *(integer) --* Specifies the opacity of the shadow. 255 is opaque; 0 is
        transparent. Leaving this parameter out is equivalent to setting it to 0 (transparent). All
        burn-in and DVB-Sub font settings must match.

        - **ShadowXOffset** *(integer) --* Specifies the horizontal offset of the shadow relative to
        the captions in pixels. A value of -2 would result in a shadow offset 2 pixels to the left.
        All burn-in and DVB-Sub font settings must match.

        - **ShadowYOffset** *(integer) --* Specifies the vertical offset of the shadow relative to
        the captions in pixels. A value of -2 would result in a shadow offset 2 pixels above the
        text. All burn-in and DVB-Sub font settings must match.

        - **TeletextGridControl** *(string) --* Controls whether a fixed grid size will be used to
        generate the output subtitles bitmap. Only applicable for Teletext inputs and
        DVB-Sub/Burn-in outputs.

        - **XPosition** *(integer) --* Specifies the horizontal position of the caption relative to
        the left side of the output in pixels. A value of 10 would result in the captions starting
        10 pixels from the left of the output. If no explicit xPosition is provided, the horizontal
        caption position will be determined by the alignment parameter. All burn-in and DVB-Sub font
        settings must match.

        - **YPosition** *(integer) --* Specifies the vertical position of the caption relative to
        the top of the output in pixels. A value of 10 would result in the captions starting 10
        pixels from the top of the output. If no explicit yPosition is provided, the caption will be
        positioned towards the bottom of the output. All burn-in and DVB-Sub font settings must
        match.

      - **DvbSubDestinationSettings** *(dict) --* Dvb Sub Destination Settings

        - **Alignment** *(string) --* If no explicit xPosition or yPosition is provided, setting
        alignment to centered will place the captions at the bottom center of the output. Similarly,
        setting a left alignment will align captions to the bottom left of the output. If x and y
        positions are given in conjunction with the alignment parameter, the font will be justified
        (either left or centered) relative to those coordinates. Selecting "smart" justification
        will left-justify live subtitles and center-justify pre-recorded subtitles. This option is
        not valid for source captions that are STL or 608/embedded. These source settings are
        already pre-defined by the caption stream. All burn-in and DVB-Sub font settings must match.

        - **BackgroundColor** *(string) --* Specifies the color of the rectangle behind the
        captions. All burn-in and DVB-Sub font settings must match.

        - **BackgroundOpacity** *(integer) --* Specifies the opacity of the background rectangle.
        255 is opaque; 0 is transparent. Leaving this parameter blank is equivalent to setting it to
        0 (transparent). All burn-in and DVB-Sub font settings must match.

        - **Font** *(dict) --* External font file used for caption burn-in. File extension must be
        'ttf' or 'tte'. Although the user can select output fonts for many different types of input
        captions, embedded, STL and teletext sources use a strict grid system. Using external fonts
        with these caption sources could cause unexpected display of proportional fonts. All burn-in
        and DVB-Sub font settings must match.

          - **PasswordParam** *(string) --* key used to extract the password from EC2 Parameter
          store

          - **Uri** *(string) --* **[REQUIRED]** Uniform Resource Identifier - This should be a path
          to a file accessible to the Live system (eg. a http:// URI) depending on the output type.
          For example, a RTMP destination should have a uri simliar to: "rtmp://fmsserver/live".

          - **Username** *(string) --* Documentation update needed

        - **FontColor** *(string) --* Specifies the color of the burned-in captions. This option is
        not valid for source captions that are STL, 608/embedded or teletext. These source settings
        are already pre-defined by the caption stream. All burn-in and DVB-Sub font settings must
        match.

        - **FontOpacity** *(integer) --* Specifies the opacity of the burned-in captions. 255 is
        opaque; 0 is transparent. All burn-in and DVB-Sub font settings must match.

        - **FontResolution** *(integer) --* Font resolution in DPI (dots per inch); default is 96
        dpi. All burn-in and DVB-Sub font settings must match.

        - **FontSize** *(string) --* When set to auto fontSize will scale depending on the size of
        the output. Giving a positive integer will specify the exact font size in points. All
        burn-in and DVB-Sub font settings must match.

        - **OutlineColor** *(string) --* Specifies font outline color. This option is not valid for
        source captions that are either 608/embedded or teletext. These source settings are already
        pre-defined by the caption stream. All burn-in and DVB-Sub font settings must match.

        - **OutlineSize** *(integer) --* Specifies font outline size in pixels. This option is not
        valid for source captions that are either 608/embedded or teletext. These source settings
        are already pre-defined by the caption stream. All burn-in and DVB-Sub font settings must
        match.

        - **ShadowColor** *(string) --* Specifies the color of the shadow cast by the captions. All
        burn-in and DVB-Sub font settings must match.

        - **ShadowOpacity** *(integer) --* Specifies the opacity of the shadow. 255 is opaque; 0 is
        transparent. Leaving this parameter blank is equivalent to setting it to 0 (transparent).
        All burn-in and DVB-Sub font settings must match.

        - **ShadowXOffset** *(integer) --* Specifies the horizontal offset of the shadow relative to
        the captions in pixels. A value of -2 would result in a shadow offset 2 pixels to the left.
        All burn-in and DVB-Sub font settings must match.

        - **ShadowYOffset** *(integer) --* Specifies the vertical offset of the shadow relative to
        the captions in pixels. A value of -2 would result in a shadow offset 2 pixels above the
        text. All burn-in and DVB-Sub font settings must match.

        - **TeletextGridControl** *(string) --* Controls whether a fixed grid size will be used to
        generate the output subtitles bitmap. Only applicable for Teletext inputs and
        DVB-Sub/Burn-in outputs.

        - **XPosition** *(integer) --* Specifies the horizontal position of the caption relative to
        the left side of the output in pixels. A value of 10 would result in the captions starting
        10 pixels from the left of the output. If no explicit xPosition is provided, the horizontal
        caption position will be determined by the alignment parameter. This option is not valid for
        source captions that are STL, 608/embedded or teletext. These source settings are already
        pre-defined by the caption stream. All burn-in and DVB-Sub font settings must match.

        - **YPosition** *(integer) --* Specifies the vertical position of the caption relative to
        the top of the output in pixels. A value of 10 would result in the captions starting 10
        pixels from the top of the output. If no explicit yPosition is provided, the caption will be
        positioned towards the bottom of the output. This option is not valid for source captions
        that are STL, 608/embedded or teletext. These source settings are already pre-defined by the
        caption stream. All burn-in and DVB-Sub font settings must match.

      - **EmbeddedDestinationSettings** *(dict) --* Embedded Destination Settings

      - **EmbeddedPlusScte20DestinationSettings** *(dict) --* Embedded Plus Scte20 Destination
      Settings

      - **RtmpCaptionInfoDestinationSettings** *(dict) --* Rtmp Caption Info Destination Settings

      - **Scte20PlusEmbeddedDestinationSettings** *(dict) --* Scte20 Plus Embedded Destination
      Settings

      - **Scte27DestinationSettings** *(dict) --* Scte27 Destination Settings

      - **SmpteTtDestinationSettings** *(dict) --* Smpte Tt Destination Settings

      - **TeletextDestinationSettings** *(dict) --* Teletext Destination Settings

      - **TtmlDestinationSettings** *(dict) --* Ttml Destination Settings

        - **StyleControl** *(string) --* When set to passthrough, passes through style and position
        information from a TTML-like input source (TTML, SMPTE-TT, CFF-TT) to the CFF-TT output or
        TTML output.

      - **WebvttDestinationSettings** *(dict) --* Webvtt Destination Settings

    - **LanguageCode** *(string) --* ISO 639-2 three-digit code:
    http://www.loc.gov/standards/iso639-2/

    - **LanguageDescription** *(string) --* Human readable information to indicate captions
    available for players (eg. English, or Spanish).

    - **Name** *(string) --* **[REQUIRED]** Name of the caption description. Used to associate a
    caption description with an output. Names must be unique within an event.
    """


_RequiredClientCreateChannelEncoderSettingsGlobalConfigurationInputLossBehaviorInputLossImageSlateTypeDef = TypedDict(
    "_RequiredClientCreateChannelEncoderSettingsGlobalConfigurationInputLossBehaviorInputLossImageSlateTypeDef",
    {"Uri": str},
)
_OptionalClientCreateChannelEncoderSettingsGlobalConfigurationInputLossBehaviorInputLossImageSlateTypeDef = TypedDict(
    "_OptionalClientCreateChannelEncoderSettingsGlobalConfigurationInputLossBehaviorInputLossImageSlateTypeDef",
    {"PasswordParam": str, "Username": str},
    total=False,
)


class ClientCreateChannelEncoderSettingsGlobalConfigurationInputLossBehaviorInputLossImageSlateTypeDef(
    _RequiredClientCreateChannelEncoderSettingsGlobalConfigurationInputLossBehaviorInputLossImageSlateTypeDef,
    _OptionalClientCreateChannelEncoderSettingsGlobalConfigurationInputLossBehaviorInputLossImageSlateTypeDef,
):
    """
    Type definition for `ClientCreateChannelEncoderSettingsGlobalConfigurationInputLossBehavior`
    `InputLossImageSlate`

    - **PasswordParam** *(string) --* key used to extract the password from EC2 Parameter store

    - **Uri** *(string) --* **[REQUIRED]** Uniform Resource Identifier - This should be a path to a
    file accessible to the Live system (eg. a http:// URI) depending on the output type. For
    example, a RTMP destination should have a uri simliar to: "rtmp://fmsserver/live".

    - **Username** *(string) --* Documentation update needed
    """


_ClientCreateChannelEncoderSettingsGlobalConfigurationInputLossBehaviorTypeDef = TypedDict(
    "_ClientCreateChannelEncoderSettingsGlobalConfigurationInputLossBehaviorTypeDef",
    {
        "BlackFrameMsec": int,
        "InputLossImageColor": str,
        "InputLossImageSlate": ClientCreateChannelEncoderSettingsGlobalConfigurationInputLossBehaviorInputLossImageSlateTypeDef,
        "InputLossImageType": str,
        "RepeatFrameMsec": int,
    },
    total=False,
)


class ClientCreateChannelEncoderSettingsGlobalConfigurationInputLossBehaviorTypeDef(
    _ClientCreateChannelEncoderSettingsGlobalConfigurationInputLossBehaviorTypeDef
):
    """
    Type definition for `ClientCreateChannelEncoderSettingsGlobalConfiguration` `InputLossBehavior`

    - **BlackFrameMsec** *(integer) --* Documentation update needed

    - **InputLossImageColor** *(string) --* When input loss image type is "color" this field
    specifies the color to use. Value: 6 hex characters representing the values of RGB.

    - **InputLossImageSlate** *(dict) --* When input loss image type is "slate" these fields specify
    the parameters for accessing the slate.

      - **PasswordParam** *(string) --* key used to extract the password from EC2 Parameter store

      - **Uri** *(string) --* **[REQUIRED]** Uniform Resource Identifier - This should be a path to
      a file accessible to the Live system (eg. a http:// URI) depending on the output type. For
      example, a RTMP destination should have a uri simliar to: "rtmp://fmsserver/live".

      - **Username** *(string) --* Documentation update needed

    - **InputLossImageType** *(string) --* Indicates whether to substitute a solid color or a slate
    into the output after input loss exceeds blackFrameMsec.

    - **RepeatFrameMsec** *(integer) --* Documentation update needed
    """


_ClientCreateChannelEncoderSettingsGlobalConfigurationTypeDef = TypedDict(
    "_ClientCreateChannelEncoderSettingsGlobalConfigurationTypeDef",
    {
        "InitialAudioGain": int,
        "InputEndAction": str,
        "InputLossBehavior": ClientCreateChannelEncoderSettingsGlobalConfigurationInputLossBehaviorTypeDef,
        "OutputLockingMode": str,
        "OutputTimingSource": str,
        "SupportLowFramerateInputs": str,
    },
    total=False,
)


class ClientCreateChannelEncoderSettingsGlobalConfigurationTypeDef(
    _ClientCreateChannelEncoderSettingsGlobalConfigurationTypeDef
):
    """
    Type definition for `ClientCreateChannelEncoderSettings` `GlobalConfiguration`

    - **InitialAudioGain** *(integer) --* Value to set the initial audio gain for the Live Event.

    - **InputEndAction** *(string) --* Indicates the action to take when the current input completes
    (e.g. end-of-file). When switchAndLoopInputs is configured the encoder will restart at the
    beginning of the first input. When "none" is configured the encoder will transcode either black,
    a solid color, or a user specified slate images per the "Input Loss Behavior" configuration
    until the next input switch occurs (which is controlled through the Channel Schedule API).

    - **InputLossBehavior** *(dict) --* Settings for system actions when input is lost.

      - **BlackFrameMsec** *(integer) --* Documentation update needed

      - **InputLossImageColor** *(string) --* When input loss image type is "color" this field
      specifies the color to use. Value: 6 hex characters representing the values of RGB.

      - **InputLossImageSlate** *(dict) --* When input loss image type is "slate" these fields
      specify the parameters for accessing the slate.

        - **PasswordParam** *(string) --* key used to extract the password from EC2 Parameter store

        - **Uri** *(string) --* **[REQUIRED]** Uniform Resource Identifier - This should be a path
        to a file accessible to the Live system (eg. a http:// URI) depending on the output type.
        For example, a RTMP destination should have a uri simliar to: "rtmp://fmsserver/live".

        - **Username** *(string) --* Documentation update needed

      - **InputLossImageType** *(string) --* Indicates whether to substitute a solid color or a
      slate into the output after input loss exceeds blackFrameMsec.

      - **RepeatFrameMsec** *(integer) --* Documentation update needed

    - **OutputLockingMode** *(string) --* Indicates how MediaLive pipelines are synchronized.
    PIPELINELOCKING - MediaLive will attempt to synchronize the output of each pipeline to the
    other. EPOCHLOCKING - MediaLive will attempt to synchronize the output of each pipeline to the
    Unix epoch.

    - **OutputTimingSource** *(string) --* Indicates whether the rate of frames emitted by the Live
    encoder should be paced by its system clock (which optionally may be locked to another source
    via NTP) or should be locked to the clock of the source that is providing the input stream.

    - **SupportLowFramerateInputs** *(string) --* Adjusts video input buffer for streams with very
    low video framerates. This is commonly set to enabled for music channels with less than one
    video frame per second.
    """


_ClientCreateChannelEncoderSettingsNielsenConfigurationTypeDef = TypedDict(
    "_ClientCreateChannelEncoderSettingsNielsenConfigurationTypeDef",
    {"DistributorId": str, "NielsenPcmToId3Tagging": str},
    total=False,
)


class ClientCreateChannelEncoderSettingsNielsenConfigurationTypeDef(
    _ClientCreateChannelEncoderSettingsNielsenConfigurationTypeDef
):
    """
    Type definition for `ClientCreateChannelEncoderSettings` `NielsenConfiguration`

    - **DistributorId** *(string) --* Enter the Distributor ID assigned to your organization by
    Nielsen.

    - **NielsenPcmToId3Tagging** *(string) --* Enables Nielsen PCM to ID3 tagging
    """


_ClientCreateChannelEncoderSettingsOutputGroupsOutputGroupSettingsArchiveGroupSettingsDestinationTypeDef = TypedDict(
    "_ClientCreateChannelEncoderSettingsOutputGroupsOutputGroupSettingsArchiveGroupSettingsDestinationTypeDef",
    {"DestinationRefId": str},
    total=False,
)


class ClientCreateChannelEncoderSettingsOutputGroupsOutputGroupSettingsArchiveGroupSettingsDestinationTypeDef(
    _ClientCreateChannelEncoderSettingsOutputGroupsOutputGroupSettingsArchiveGroupSettingsDestinationTypeDef
):
    """
    Type definition for
    `ClientCreateChannelEncoderSettingsOutputGroupsOutputGroupSettingsArchiveGroupSettings`
    `Destination`

    - **DestinationRefId** *(string) --* Placeholder documentation for __string
    """


_RequiredClientCreateChannelEncoderSettingsOutputGroupsOutputGroupSettingsArchiveGroupSettingsTypeDef = TypedDict(
    "_RequiredClientCreateChannelEncoderSettingsOutputGroupsOutputGroupSettingsArchiveGroupSettingsTypeDef",
    {
        "Destination": ClientCreateChannelEncoderSettingsOutputGroupsOutputGroupSettingsArchiveGroupSettingsDestinationTypeDef
    },
)
_OptionalClientCreateChannelEncoderSettingsOutputGroupsOutputGroupSettingsArchiveGroupSettingsTypeDef = TypedDict(
    "_OptionalClientCreateChannelEncoderSettingsOutputGroupsOutputGroupSettingsArchiveGroupSettingsTypeDef",
    {"RolloverInterval": int},
    total=False,
)


class ClientCreateChannelEncoderSettingsOutputGroupsOutputGroupSettingsArchiveGroupSettingsTypeDef(
    _RequiredClientCreateChannelEncoderSettingsOutputGroupsOutputGroupSettingsArchiveGroupSettingsTypeDef,
    _OptionalClientCreateChannelEncoderSettingsOutputGroupsOutputGroupSettingsArchiveGroupSettingsTypeDef,
):
    """
    Type definition for `ClientCreateChannelEncoderSettingsOutputGroupsOutputGroupSettings`
    `ArchiveGroupSettings`

    - **Destination** *(dict) --* **[REQUIRED]** A directory and base filename where archive files
    should be written.

      - **DestinationRefId** *(string) --* Placeholder documentation for __string

    - **RolloverInterval** *(integer) --* Number of seconds to write to archive file before closing
    and starting a new one.
    """


_ClientCreateChannelEncoderSettingsOutputGroupsOutputGroupSettingsFrameCaptureGroupSettingsDestinationTypeDef = TypedDict(
    "_ClientCreateChannelEncoderSettingsOutputGroupsOutputGroupSettingsFrameCaptureGroupSettingsDestinationTypeDef",
    {"DestinationRefId": str},
    total=False,
)


class ClientCreateChannelEncoderSettingsOutputGroupsOutputGroupSettingsFrameCaptureGroupSettingsDestinationTypeDef(
    _ClientCreateChannelEncoderSettingsOutputGroupsOutputGroupSettingsFrameCaptureGroupSettingsDestinationTypeDef
):
    """
    Type definition for
    `ClientCreateChannelEncoderSettingsOutputGroupsOutputGroupSettingsFrameCaptureGroupSettings`
    `Destination`

    - **DestinationRefId** *(string) --* Placeholder documentation for __string
    """


_ClientCreateChannelEncoderSettingsOutputGroupsOutputGroupSettingsFrameCaptureGroupSettingsTypeDef = TypedDict(
    "_ClientCreateChannelEncoderSettingsOutputGroupsOutputGroupSettingsFrameCaptureGroupSettingsTypeDef",
    {
        "Destination": ClientCreateChannelEncoderSettingsOutputGroupsOutputGroupSettingsFrameCaptureGroupSettingsDestinationTypeDef
    },
)


class ClientCreateChannelEncoderSettingsOutputGroupsOutputGroupSettingsFrameCaptureGroupSettingsTypeDef(
    _ClientCreateChannelEncoderSettingsOutputGroupsOutputGroupSettingsFrameCaptureGroupSettingsTypeDef
):
    """
    Type definition for `ClientCreateChannelEncoderSettingsOutputGroupsOutputGroupSettings`
    `FrameCaptureGroupSettings`

    - **Destination** *(dict) --* **[REQUIRED]** The destination for the frame capture files. Either
    the URI for an Amazon S3 bucket and object, plus a file name prefix (for example,
    s3ssl://sportsDelivery/highlights/20180820/curling_) or the URI for a MediaStore container, plus
    a file name prefix (for example, mediastoressl://sportsDelivery/20180820/curling_). The final
    file names consist of the prefix from the destination field (for example, "curling_") + name
    modifier + the counter (5 digits, starting from 00001) + extension (which is always .jpg). For
    example, curlingLow.00001.jpg

      - **DestinationRefId** *(string) --* Placeholder documentation for __string
    """


_ClientCreateChannelEncoderSettingsOutputGroupsOutputGroupSettingsHlsGroupSettingsCaptionLanguageMappingsTypeDef = TypedDict(
    "_ClientCreateChannelEncoderSettingsOutputGroupsOutputGroupSettingsHlsGroupSettingsCaptionLanguageMappingsTypeDef",
    {"CaptionChannel": int, "LanguageCode": str, "LanguageDescription": str},
)


class ClientCreateChannelEncoderSettingsOutputGroupsOutputGroupSettingsHlsGroupSettingsCaptionLanguageMappingsTypeDef(
    _ClientCreateChannelEncoderSettingsOutputGroupsOutputGroupSettingsHlsGroupSettingsCaptionLanguageMappingsTypeDef
):
    """
    Type definition for
    `ClientCreateChannelEncoderSettingsOutputGroupsOutputGroupSettingsHlsGroupSettings`
    `CaptionLanguageMappings`

    - **CaptionChannel** *(integer) --* **[REQUIRED]** The closed caption channel being described by
    this CaptionLanguageMapping. Each channel mapping must have a unique channel number (maximum of
    4)

    - **LanguageCode** *(string) --* **[REQUIRED]** Three character ISO 639-2 language code (see
    http://www.loc.gov/standards/iso639-2)

    - **LanguageDescription** *(string) --* **[REQUIRED]** Textual description of language
    """


_ClientCreateChannelEncoderSettingsOutputGroupsOutputGroupSettingsHlsGroupSettingsDestinationTypeDef = TypedDict(
    "_ClientCreateChannelEncoderSettingsOutputGroupsOutputGroupSettingsHlsGroupSettingsDestinationTypeDef",
    {"DestinationRefId": str},
    total=False,
)


class ClientCreateChannelEncoderSettingsOutputGroupsOutputGroupSettingsHlsGroupSettingsDestinationTypeDef(
    _ClientCreateChannelEncoderSettingsOutputGroupsOutputGroupSettingsHlsGroupSettingsDestinationTypeDef
):
    """
    Type definition for
    `ClientCreateChannelEncoderSettingsOutputGroupsOutputGroupSettingsHlsGroupSettings`
    `Destination`

    - **DestinationRefId** *(string) --* Placeholder documentation for __string
    """


_ClientCreateChannelEncoderSettingsOutputGroupsOutputGroupSettingsHlsGroupSettingsHlsCdnSettingsHlsAkamaiSettingsTypeDef = TypedDict(
    "_ClientCreateChannelEncoderSettingsOutputGroupsOutputGroupSettingsHlsGroupSettingsHlsCdnSettingsHlsAkamaiSettingsTypeDef",
    {
        "ConnectionRetryInterval": int,
        "FilecacheDuration": int,
        "HttpTransferMode": str,
        "NumRetries": int,
        "RestartDelay": int,
        "Salt": str,
        "Token": str,
    },
    total=False,
)


class ClientCreateChannelEncoderSettingsOutputGroupsOutputGroupSettingsHlsGroupSettingsHlsCdnSettingsHlsAkamaiSettingsTypeDef(
    _ClientCreateChannelEncoderSettingsOutputGroupsOutputGroupSettingsHlsGroupSettingsHlsCdnSettingsHlsAkamaiSettingsTypeDef
):
    """
    Type definition for
    `ClientCreateChannelEncoderSettingsOutputGroupsOutputGroupSettingsHlsGroupSettingsHlsCdnSettings`
    `HlsAkamaiSettings`

    - **ConnectionRetryInterval** *(integer) --* Number of seconds to wait before retrying
    connection to the CDN if the connection is lost.

    - **FilecacheDuration** *(integer) --* Size in seconds of file cache for streaming outputs.

    - **HttpTransferMode** *(string) --* Specify whether or not to use chunked transfer encoding to
    Akamai. User should contact Akamai to enable this feature.

    - **NumRetries** *(integer) --* Number of retry attempts that will be made before the Live Event
    is put into an error state.

    - **RestartDelay** *(integer) --* If a streaming output fails, number of seconds to wait until a
    restart is initiated. A value of 0 means never restart.

    - **Salt** *(string) --* Salt for authenticated Akamai.

    - **Token** *(string) --* Token parameter for authenticated akamai. If not specified, _gda_ is
    used.
    """


_ClientCreateChannelEncoderSettingsOutputGroupsOutputGroupSettingsHlsGroupSettingsHlsCdnSettingsHlsBasicPutSettingsTypeDef = TypedDict(
    "_ClientCreateChannelEncoderSettingsOutputGroupsOutputGroupSettingsHlsGroupSettingsHlsCdnSettingsHlsBasicPutSettingsTypeDef",
    {
        "ConnectionRetryInterval": int,
        "FilecacheDuration": int,
        "NumRetries": int,
        "RestartDelay": int,
    },
    total=False,
)


class ClientCreateChannelEncoderSettingsOutputGroupsOutputGroupSettingsHlsGroupSettingsHlsCdnSettingsHlsBasicPutSettingsTypeDef(
    _ClientCreateChannelEncoderSettingsOutputGroupsOutputGroupSettingsHlsGroupSettingsHlsCdnSettingsHlsBasicPutSettingsTypeDef
):
    """
    Type definition for
    `ClientCreateChannelEncoderSettingsOutputGroupsOutputGroupSettingsHlsGroupSettingsHlsCdnSettings`
    `HlsBasicPutSettings`

    - **ConnectionRetryInterval** *(integer) --* Number of seconds to wait before retrying
    connection to the CDN if the connection is lost.

    - **FilecacheDuration** *(integer) --* Size in seconds of file cache for streaming outputs.

    - **NumRetries** *(integer) --* Number of retry attempts that will be made before the Live Event
    is put into an error state.

    - **RestartDelay** *(integer) --* If a streaming output fails, number of seconds to wait until a
    restart is initiated. A value of 0 means never restart.
    """


_ClientCreateChannelEncoderSettingsOutputGroupsOutputGroupSettingsHlsGroupSettingsHlsCdnSettingsHlsMediaStoreSettingsTypeDef = TypedDict(
    "_ClientCreateChannelEncoderSettingsOutputGroupsOutputGroupSettingsHlsGroupSettingsHlsCdnSettingsHlsMediaStoreSettingsTypeDef",
    {
        "ConnectionRetryInterval": int,
        "FilecacheDuration": int,
        "MediaStoreStorageClass": str,
        "NumRetries": int,
        "RestartDelay": int,
    },
    total=False,
)


class ClientCreateChannelEncoderSettingsOutputGroupsOutputGroupSettingsHlsGroupSettingsHlsCdnSettingsHlsMediaStoreSettingsTypeDef(
    _ClientCreateChannelEncoderSettingsOutputGroupsOutputGroupSettingsHlsGroupSettingsHlsCdnSettingsHlsMediaStoreSettingsTypeDef
):
    """
    Type definition for
    `ClientCreateChannelEncoderSettingsOutputGroupsOutputGroupSettingsHlsGroupSettingsHlsCdnSettings`
    `HlsMediaStoreSettings`

    - **ConnectionRetryInterval** *(integer) --* Number of seconds to wait before retrying
    connection to the CDN if the connection is lost.

    - **FilecacheDuration** *(integer) --* Size in seconds of file cache for streaming outputs.

    - **MediaStoreStorageClass** *(string) --* When set to temporal, output files are stored in
    non-persistent memory for faster reading and writing.

    - **NumRetries** *(integer) --* Number of retry attempts that will be made before the Live Event
    is put into an error state.

    - **RestartDelay** *(integer) --* If a streaming output fails, number of seconds to wait until a
    restart is initiated. A value of 0 means never restart.
    """


_ClientCreateChannelEncoderSettingsOutputGroupsOutputGroupSettingsHlsGroupSettingsHlsCdnSettingsHlsWebdavSettingsTypeDef = TypedDict(
    "_ClientCreateChannelEncoderSettingsOutputGroupsOutputGroupSettingsHlsGroupSettingsHlsCdnSettingsHlsWebdavSettingsTypeDef",
    {
        "ConnectionRetryInterval": int,
        "FilecacheDuration": int,
        "HttpTransferMode": str,
        "NumRetries": int,
        "RestartDelay": int,
    },
    total=False,
)


class ClientCreateChannelEncoderSettingsOutputGroupsOutputGroupSettingsHlsGroupSettingsHlsCdnSettingsHlsWebdavSettingsTypeDef(
    _ClientCreateChannelEncoderSettingsOutputGroupsOutputGroupSettingsHlsGroupSettingsHlsCdnSettingsHlsWebdavSettingsTypeDef
):
    """
    Type definition for
    `ClientCreateChannelEncoderSettingsOutputGroupsOutputGroupSettingsHlsGroupSettingsHlsCdnSettings`
    `HlsWebdavSettings`

    - **ConnectionRetryInterval** *(integer) --* Number of seconds to wait before retrying
    connection to the CDN if the connection is lost.

    - **FilecacheDuration** *(integer) --* Size in seconds of file cache for streaming outputs.

    - **HttpTransferMode** *(string) --* Specify whether or not to use chunked transfer encoding to
    WebDAV.

    - **NumRetries** *(integer) --* Number of retry attempts that will be made before the Live Event
    is put into an error state.

    - **RestartDelay** *(integer) --* If a streaming output fails, number of seconds to wait until a
    restart is initiated. A value of 0 means never restart.
    """


_ClientCreateChannelEncoderSettingsOutputGroupsOutputGroupSettingsHlsGroupSettingsHlsCdnSettingsTypeDef = TypedDict(
    "_ClientCreateChannelEncoderSettingsOutputGroupsOutputGroupSettingsHlsGroupSettingsHlsCdnSettingsTypeDef",
    {
        "HlsAkamaiSettings": ClientCreateChannelEncoderSettingsOutputGroupsOutputGroupSettingsHlsGroupSettingsHlsCdnSettingsHlsAkamaiSettingsTypeDef,
        "HlsBasicPutSettings": ClientCreateChannelEncoderSettingsOutputGroupsOutputGroupSettingsHlsGroupSettingsHlsCdnSettingsHlsBasicPutSettingsTypeDef,
        "HlsMediaStoreSettings": ClientCreateChannelEncoderSettingsOutputGroupsOutputGroupSettingsHlsGroupSettingsHlsCdnSettingsHlsMediaStoreSettingsTypeDef,
        "HlsWebdavSettings": ClientCreateChannelEncoderSettingsOutputGroupsOutputGroupSettingsHlsGroupSettingsHlsCdnSettingsHlsWebdavSettingsTypeDef,
    },
    total=False,
)


class ClientCreateChannelEncoderSettingsOutputGroupsOutputGroupSettingsHlsGroupSettingsHlsCdnSettingsTypeDef(
    _ClientCreateChannelEncoderSettingsOutputGroupsOutputGroupSettingsHlsGroupSettingsHlsCdnSettingsTypeDef
):
    """
    Type definition for
    `ClientCreateChannelEncoderSettingsOutputGroupsOutputGroupSettingsHlsGroupSettings`
    `HlsCdnSettings`

    - **HlsAkamaiSettings** *(dict) --* Hls Akamai Settings

      - **ConnectionRetryInterval** *(integer) --* Number of seconds to wait before retrying
      connection to the CDN if the connection is lost.

      - **FilecacheDuration** *(integer) --* Size in seconds of file cache for streaming outputs.

      - **HttpTransferMode** *(string) --* Specify whether or not to use chunked transfer encoding
      to Akamai. User should contact Akamai to enable this feature.

      - **NumRetries** *(integer) --* Number of retry attempts that will be made before the Live
      Event is put into an error state.

      - **RestartDelay** *(integer) --* If a streaming output fails, number of seconds to wait until
      a restart is initiated. A value of 0 means never restart.

      - **Salt** *(string) --* Salt for authenticated Akamai.

      - **Token** *(string) --* Token parameter for authenticated akamai. If not specified, _gda_ is
      used.

    - **HlsBasicPutSettings** *(dict) --* Hls Basic Put Settings

      - **ConnectionRetryInterval** *(integer) --* Number of seconds to wait before retrying
      connection to the CDN if the connection is lost.

      - **FilecacheDuration** *(integer) --* Size in seconds of file cache for streaming outputs.

      - **NumRetries** *(integer) --* Number of retry attempts that will be made before the Live
      Event is put into an error state.

      - **RestartDelay** *(integer) --* If a streaming output fails, number of seconds to wait until
      a restart is initiated. A value of 0 means never restart.

    - **HlsMediaStoreSettings** *(dict) --* Hls Media Store Settings

      - **ConnectionRetryInterval** *(integer) --* Number of seconds to wait before retrying
      connection to the CDN if the connection is lost.

      - **FilecacheDuration** *(integer) --* Size in seconds of file cache for streaming outputs.

      - **MediaStoreStorageClass** *(string) --* When set to temporal, output files are stored in
      non-persistent memory for faster reading and writing.

      - **NumRetries** *(integer) --* Number of retry attempts that will be made before the Live
      Event is put into an error state.

      - **RestartDelay** *(integer) --* If a streaming output fails, number of seconds to wait until
      a restart is initiated. A value of 0 means never restart.

    - **HlsWebdavSettings** *(dict) --* Hls Webdav Settings

      - **ConnectionRetryInterval** *(integer) --* Number of seconds to wait before retrying
      connection to the CDN if the connection is lost.

      - **FilecacheDuration** *(integer) --* Size in seconds of file cache for streaming outputs.

      - **HttpTransferMode** *(string) --* Specify whether or not to use chunked transfer encoding
      to WebDAV.

      - **NumRetries** *(integer) --* Number of retry attempts that will be made before the Live
      Event is put into an error state.

      - **RestartDelay** *(integer) --* If a streaming output fails, number of seconds to wait until
      a restart is initiated. A value of 0 means never restart.
    """


_RequiredClientCreateChannelEncoderSettingsOutputGroupsOutputGroupSettingsHlsGroupSettingsKeyProviderSettingsStaticKeySettingsKeyProviderServerTypeDef = TypedDict(
    "_RequiredClientCreateChannelEncoderSettingsOutputGroupsOutputGroupSettingsHlsGroupSettingsKeyProviderSettingsStaticKeySettingsKeyProviderServerTypeDef",
    {"Uri": str},
)
_OptionalClientCreateChannelEncoderSettingsOutputGroupsOutputGroupSettingsHlsGroupSettingsKeyProviderSettingsStaticKeySettingsKeyProviderServerTypeDef = TypedDict(
    "_OptionalClientCreateChannelEncoderSettingsOutputGroupsOutputGroupSettingsHlsGroupSettingsKeyProviderSettingsStaticKeySettingsKeyProviderServerTypeDef",
    {"PasswordParam": str, "Username": str},
    total=False,
)


class ClientCreateChannelEncoderSettingsOutputGroupsOutputGroupSettingsHlsGroupSettingsKeyProviderSettingsStaticKeySettingsKeyProviderServerTypeDef(
    _RequiredClientCreateChannelEncoderSettingsOutputGroupsOutputGroupSettingsHlsGroupSettingsKeyProviderSettingsStaticKeySettingsKeyProviderServerTypeDef,
    _OptionalClientCreateChannelEncoderSettingsOutputGroupsOutputGroupSettingsHlsGroupSettingsKeyProviderSettingsStaticKeySettingsKeyProviderServerTypeDef,
):
    """
    Type definition for
    `ClientCreateChannelEncoderSettingsOutputGroupsOutputGroupSettingsHlsGroupSettingsKeyProviderSettingsStaticKeySettings`
    `KeyProviderServer`

    - **PasswordParam** *(string) --* key used to extract the password from EC2 Parameter store

    - **Uri** *(string) --* **[REQUIRED]** Uniform Resource Identifier - This should be a path to a
    file accessible to the Live system (eg. a http:// URI) depending on the output type. For
    example, a RTMP destination should have a uri simliar to: "rtmp://fmsserver/live".

    - **Username** *(string) --* Documentation update needed
    """


_RequiredClientCreateChannelEncoderSettingsOutputGroupsOutputGroupSettingsHlsGroupSettingsKeyProviderSettingsStaticKeySettingsTypeDef = TypedDict(
    "_RequiredClientCreateChannelEncoderSettingsOutputGroupsOutputGroupSettingsHlsGroupSettingsKeyProviderSettingsStaticKeySettingsTypeDef",
    {"StaticKeyValue": str},
)
_OptionalClientCreateChannelEncoderSettingsOutputGroupsOutputGroupSettingsHlsGroupSettingsKeyProviderSettingsStaticKeySettingsTypeDef = TypedDict(
    "_OptionalClientCreateChannelEncoderSettingsOutputGroupsOutputGroupSettingsHlsGroupSettingsKeyProviderSettingsStaticKeySettingsTypeDef",
    {
        "KeyProviderServer": ClientCreateChannelEncoderSettingsOutputGroupsOutputGroupSettingsHlsGroupSettingsKeyProviderSettingsStaticKeySettingsKeyProviderServerTypeDef
    },
    total=False,
)


class ClientCreateChannelEncoderSettingsOutputGroupsOutputGroupSettingsHlsGroupSettingsKeyProviderSettingsStaticKeySettingsTypeDef(
    _RequiredClientCreateChannelEncoderSettingsOutputGroupsOutputGroupSettingsHlsGroupSettingsKeyProviderSettingsStaticKeySettingsTypeDef,
    _OptionalClientCreateChannelEncoderSettingsOutputGroupsOutputGroupSettingsHlsGroupSettingsKeyProviderSettingsStaticKeySettingsTypeDef,
):
    """
    Type definition for
    `ClientCreateChannelEncoderSettingsOutputGroupsOutputGroupSettingsHlsGroupSettingsKeyProviderSettings`
    `StaticKeySettings`

    - **KeyProviderServer** *(dict) --* The URL of the license server used for protecting content.

      - **PasswordParam** *(string) --* key used to extract the password from EC2 Parameter store

      - **Uri** *(string) --* **[REQUIRED]** Uniform Resource Identifier - This should be a path to
      a file accessible to the Live system (eg. a http:// URI) depending on the output type. For
      example, a RTMP destination should have a uri simliar to: "rtmp://fmsserver/live".

      - **Username** *(string) --* Documentation update needed

    - **StaticKeyValue** *(string) --* **[REQUIRED]** Static key value as a 32 character hexadecimal
    string.
    """


_ClientCreateChannelEncoderSettingsOutputGroupsOutputGroupSettingsHlsGroupSettingsKeyProviderSettingsTypeDef = TypedDict(
    "_ClientCreateChannelEncoderSettingsOutputGroupsOutputGroupSettingsHlsGroupSettingsKeyProviderSettingsTypeDef",
    {
        "StaticKeySettings": ClientCreateChannelEncoderSettingsOutputGroupsOutputGroupSettingsHlsGroupSettingsKeyProviderSettingsStaticKeySettingsTypeDef
    },
    total=False,
)


class ClientCreateChannelEncoderSettingsOutputGroupsOutputGroupSettingsHlsGroupSettingsKeyProviderSettingsTypeDef(
    _ClientCreateChannelEncoderSettingsOutputGroupsOutputGroupSettingsHlsGroupSettingsKeyProviderSettingsTypeDef
):
    """
    Type definition for
    `ClientCreateChannelEncoderSettingsOutputGroupsOutputGroupSettingsHlsGroupSettings`
    `KeyProviderSettings`

    - **StaticKeySettings** *(dict) --* Static Key Settings

      - **KeyProviderServer** *(dict) --* The URL of the license server used for protecting content.

        - **PasswordParam** *(string) --* key used to extract the password from EC2 Parameter store

        - **Uri** *(string) --* **[REQUIRED]** Uniform Resource Identifier - This should be a path
        to a file accessible to the Live system (eg. a http:// URI) depending on the output type.
        For example, a RTMP destination should have a uri simliar to: "rtmp://fmsserver/live".

        - **Username** *(string) --* Documentation update needed

      - **StaticKeyValue** *(string) --* **[REQUIRED]** Static key value as a 32 character
      hexadecimal string.
    """


_RequiredClientCreateChannelEncoderSettingsOutputGroupsOutputGroupSettingsHlsGroupSettingsTypeDef = TypedDict(
    "_RequiredClientCreateChannelEncoderSettingsOutputGroupsOutputGroupSettingsHlsGroupSettingsTypeDef",
    {
        "Destination": ClientCreateChannelEncoderSettingsOutputGroupsOutputGroupSettingsHlsGroupSettingsDestinationTypeDef
    },
)
_OptionalClientCreateChannelEncoderSettingsOutputGroupsOutputGroupSettingsHlsGroupSettingsTypeDef = TypedDict(
    "_OptionalClientCreateChannelEncoderSettingsOutputGroupsOutputGroupSettingsHlsGroupSettingsTypeDef",
    {
        "AdMarkers": List[str],
        "BaseUrlContent": str,
        "BaseUrlManifest": str,
        "CaptionLanguageMappings": List[
            ClientCreateChannelEncoderSettingsOutputGroupsOutputGroupSettingsHlsGroupSettingsCaptionLanguageMappingsTypeDef
        ],
        "CaptionLanguageSetting": str,
        "ClientCache": str,
        "CodecSpecification": str,
        "ConstantIv": str,
        "DirectoryStructure": str,
        "EncryptionType": str,
        "HlsCdnSettings": ClientCreateChannelEncoderSettingsOutputGroupsOutputGroupSettingsHlsGroupSettingsHlsCdnSettingsTypeDef,
        "IFrameOnlyPlaylists": str,
        "IndexNSegments": int,
        "InputLossAction": str,
        "IvInManifest": str,
        "IvSource": str,
        "KeepSegments": int,
        "KeyFormat": str,
        "KeyFormatVersions": str,
        "KeyProviderSettings": ClientCreateChannelEncoderSettingsOutputGroupsOutputGroupSettingsHlsGroupSettingsKeyProviderSettingsTypeDef,
        "ManifestCompression": str,
        "ManifestDurationFormat": str,
        "MinSegmentLength": int,
        "Mode": str,
        "OutputSelection": str,
        "ProgramDateTime": str,
        "ProgramDateTimePeriod": int,
        "RedundantManifest": str,
        "SegmentLength": int,
        "SegmentationMode": str,
        "SegmentsPerSubdirectory": int,
        "StreamInfResolution": str,
        "TimedMetadataId3Frame": str,
        "TimedMetadataId3Period": int,
        "TimestampDeltaMilliseconds": int,
        "TsFileMode": str,
    },
    total=False,
)


class ClientCreateChannelEncoderSettingsOutputGroupsOutputGroupSettingsHlsGroupSettingsTypeDef(
    _RequiredClientCreateChannelEncoderSettingsOutputGroupsOutputGroupSettingsHlsGroupSettingsTypeDef,
    _OptionalClientCreateChannelEncoderSettingsOutputGroupsOutputGroupSettingsHlsGroupSettingsTypeDef,
):
    """
    Type definition for `ClientCreateChannelEncoderSettingsOutputGroupsOutputGroupSettings`
    `HlsGroupSettings`

    - **AdMarkers** *(list) --* Choose one or more ad marker types to pass SCTE35 signals through to
    this group of Apple HLS outputs.

      - *(string) --* Hls Ad Markers

    - **BaseUrlContent** *(string) --* A partial URI prefix that will be prepended to each output in
    the media .m3u8 file. Can be used if base manifest is delivered from a different URL than the
    main .m3u8 file.

    - **BaseUrlManifest** *(string) --* A partial URI prefix that will be prepended to each output
    in the media .m3u8 file. Can be used if base manifest is delivered from a different URL than the
    main .m3u8 file.

    - **CaptionLanguageMappings** *(list) --* Mapping of up to 4 caption channels to caption
    languages. Is only meaningful if captionLanguageSetting is set to "insert".

      - *(dict) --* Maps a caption channel to an ISO 693-2 language code
      (http://www.loc.gov/standards/iso639-2), with an optional description.

        - **CaptionChannel** *(integer) --* **[REQUIRED]** The closed caption channel being
        described by this CaptionLanguageMapping. Each channel mapping must have a unique channel
        number (maximum of 4)

        - **LanguageCode** *(string) --* **[REQUIRED]** Three character ISO 639-2 language code (see
        http://www.loc.gov/standards/iso639-2)

        - **LanguageDescription** *(string) --* **[REQUIRED]** Textual description of language

    - **CaptionLanguageSetting** *(string) --* Applies only to 608 Embedded output captions. insert:
    Include CLOSED-CAPTIONS lines in the manifest. Specify at least one language in the CC1 Language
    Code field. One CLOSED-CAPTION line is added for each Language Code you specify. Make sure to
    specify the languages in the order in which they appear in the original source (if the source is
    embedded format) or the order of the caption selectors (if the source is other than embedded).
    Otherwise, languages in the manifest will not match up properly with the output captions. none:
    Include CLOSED-CAPTIONS=NONE line in the manifest. omit: Omit any CLOSED-CAPTIONS line from the
    manifest.

    - **ClientCache** *(string) --* When set to "disabled", sets the #EXT-X-ALLOW-CACHE:no tag in
    the manifest, which prevents clients from saving media segments for later replay.

    - **CodecSpecification** *(string) --* Specification to use (RFC-6381 or the default RFC-4281)
    during m3u8 playlist generation.

    - **ConstantIv** *(string) --* For use with encryptionType. This is a 128-bit, 16-byte hex value
    represented by a 32-character text string. If ivSource is set to "explicit" then this parameter
    is required and is used as the IV for encryption.

    - **Destination** *(dict) --* **[REQUIRED]** A directory or HTTP destination for the HLS
    segments, manifest files, and encryption keys (if enabled).

      - **DestinationRefId** *(string) --* Placeholder documentation for __string

    - **DirectoryStructure** *(string) --* Place segments in subdirectories.

    - **EncryptionType** *(string) --* Encrypts the segments with the given encryption scheme.
    Exclude this parameter if no encryption is desired.

    - **HlsCdnSettings** *(dict) --* Parameters that control interactions with the CDN.

      - **HlsAkamaiSettings** *(dict) --* Hls Akamai Settings

        - **ConnectionRetryInterval** *(integer) --* Number of seconds to wait before retrying
        connection to the CDN if the connection is lost.

        - **FilecacheDuration** *(integer) --* Size in seconds of file cache for streaming outputs.

        - **HttpTransferMode** *(string) --* Specify whether or not to use chunked transfer encoding
        to Akamai. User should contact Akamai to enable this feature.

        - **NumRetries** *(integer) --* Number of retry attempts that will be made before the Live
        Event is put into an error state.

        - **RestartDelay** *(integer) --* If a streaming output fails, number of seconds to wait
        until a restart is initiated. A value of 0 means never restart.

        - **Salt** *(string) --* Salt for authenticated Akamai.

        - **Token** *(string) --* Token parameter for authenticated akamai. If not specified, _gda_
        is used.

      - **HlsBasicPutSettings** *(dict) --* Hls Basic Put Settings

        - **ConnectionRetryInterval** *(integer) --* Number of seconds to wait before retrying
        connection to the CDN if the connection is lost.

        - **FilecacheDuration** *(integer) --* Size in seconds of file cache for streaming outputs.

        - **NumRetries** *(integer) --* Number of retry attempts that will be made before the Live
        Event is put into an error state.

        - **RestartDelay** *(integer) --* If a streaming output fails, number of seconds to wait
        until a restart is initiated. A value of 0 means never restart.

      - **HlsMediaStoreSettings** *(dict) --* Hls Media Store Settings

        - **ConnectionRetryInterval** *(integer) --* Number of seconds to wait before retrying
        connection to the CDN if the connection is lost.

        - **FilecacheDuration** *(integer) --* Size in seconds of file cache for streaming outputs.

        - **MediaStoreStorageClass** *(string) --* When set to temporal, output files are stored in
        non-persistent memory for faster reading and writing.

        - **NumRetries** *(integer) --* Number of retry attempts that will be made before the Live
        Event is put into an error state.

        - **RestartDelay** *(integer) --* If a streaming output fails, number of seconds to wait
        until a restart is initiated. A value of 0 means never restart.

      - **HlsWebdavSettings** *(dict) --* Hls Webdav Settings

        - **ConnectionRetryInterval** *(integer) --* Number of seconds to wait before retrying
        connection to the CDN if the connection is lost.

        - **FilecacheDuration** *(integer) --* Size in seconds of file cache for streaming outputs.

        - **HttpTransferMode** *(string) --* Specify whether or not to use chunked transfer encoding
        to WebDAV.

        - **NumRetries** *(integer) --* Number of retry attempts that will be made before the Live
        Event is put into an error state.

        - **RestartDelay** *(integer) --* If a streaming output fails, number of seconds to wait
        until a restart is initiated. A value of 0 means never restart.

    - **IFrameOnlyPlaylists** *(string) --* DISABLED: Do not create an I-frame-only manifest, but do
    create the master and media manifests (according to the Output Selection field). STANDARD:
    Create an I-frame-only manifest for each output that contains video, as well as the other
    manifests (according to the Output Selection field). The I-frame manifest contains a
    #EXT-X-I-FRAMES-ONLY tag to indicate it is I-frame only, and one or more #EXT-X-BYTERANGE
    entries identifying the I-frame position. For example, #EXT-X-BYTERANGE:160364@1461888"

    - **IndexNSegments** *(integer) --* Applies only if Mode field is LIVE. Specifies the maximum
    number of segments in the media manifest file. After this maximum, older segments are removed
    from the media manifest. This number must be less than or equal to the Keep Segments field.

    - **InputLossAction** *(string) --* Parameter that control output group behavior on input loss.

    - **IvInManifest** *(string) --* For use with encryptionType. The IV (Initialization Vector) is
    a 128-bit number used in conjunction with the key for encrypting blocks. If set to "include", IV
    is listed in the manifest, otherwise the IV is not in the manifest.

    - **IvSource** *(string) --* For use with encryptionType. The IV (Initialization Vector) is a
    128-bit number used in conjunction with the key for encrypting blocks. If this setting is
    "followsSegmentNumber", it will cause the IV to change every segment (to match the segment
    number). If this is set to "explicit", you must enter a constantIv value.

    - **KeepSegments** *(integer) --* Applies only if Mode field is LIVE. Specifies the number of
    media segments (.ts files) to retain in the destination directory.

    - **KeyFormat** *(string) --* The value specifies how the key is represented in the resource
    identified by the URI. If parameter is absent, an implicit value of "identity" is used. A
    reverse DNS string can also be given.

    - **KeyFormatVersions** *(string) --* Either a single positive integer version value or a slash
    delimited list of version values (1/2/3).

    - **KeyProviderSettings** *(dict) --* The key provider settings.

      - **StaticKeySettings** *(dict) --* Static Key Settings

        - **KeyProviderServer** *(dict) --* The URL of the license server used for protecting
        content.

          - **PasswordParam** *(string) --* key used to extract the password from EC2 Parameter
          store

          - **Uri** *(string) --* **[REQUIRED]** Uniform Resource Identifier - This should be a path
          to a file accessible to the Live system (eg. a http:// URI) depending on the output type.
          For example, a RTMP destination should have a uri simliar to: "rtmp://fmsserver/live".

          - **Username** *(string) --* Documentation update needed

        - **StaticKeyValue** *(string) --* **[REQUIRED]** Static key value as a 32 character
        hexadecimal string.

    - **ManifestCompression** *(string) --* When set to gzip, compresses HLS playlist.

    - **ManifestDurationFormat** *(string) --* Indicates whether the output manifest should use
    floating point or integer values for segment duration.

    - **MinSegmentLength** *(integer) --* When set, minimumSegmentLength is enforced by looking
    ahead and back within the specified range for a nearby avail and extending the segment size if
    needed.

    - **Mode** *(string) --* If "vod", all segments are indexed and kept permanently in the
    destination and manifest. If "live", only the number segments specified in keepSegments and
    indexNSegments are kept; newer segments replace older segments, which may prevent players from
    rewinding all the way to the beginning of the event. VOD mode uses HLS EXT-X-PLAYLIST-TYPE of
    EVENT while the channel is running, converting it to a "VOD" type manifest on completion of the
    stream.

    - **OutputSelection** *(string) --* MANIFESTSANDSEGMENTS: Generates manifests (master manifest,
    if applicable, and media manifests) for this output group. SEGMENTSONLY: Does not generate any
    manifests for this output group.

    - **ProgramDateTime** *(string) --* Includes or excludes EXT-X-PROGRAM-DATE-TIME tag in .m3u8
    manifest files. The value is calculated as follows: either the program date and time are
    initialized using the input timecode source, or the time is initialized using the input timecode
    source and the date is initialized using the timestampOffset.

    - **ProgramDateTimePeriod** *(integer) --* Period of insertion of EXT-X-PROGRAM-DATE-TIME entry,
    in seconds.

    - **RedundantManifest** *(string) --* ENABLED: The master manifest (.m3u8 file) for each
    pipeline includes information about both pipelines: first its own media files, then the media
    files of the other pipeline. This feature allows playout device that support stale manifest
    detection to switch from one manifest to the other, when the current manifest seems to be stale.
    There are still two destinations and two master manifests, but both master manifests reference
    the media files from both pipelines. DISABLED: The master manifest (.m3u8 file) for each
    pipeline includes information about its own pipeline only. For an HLS output group with
    MediaPackage as the destination, the DISABLED behavior is always followed. MediaPackage
    regenerates the manifests it serves to players so a redundant manifest from MediaLive is
    irrelevant.

    - **SegmentLength** *(integer) --* Length of MPEG-2 Transport Stream segments to create (in
    seconds). Note that segments will end on the next keyframe after this number of seconds, so
    actual segment length may be longer.

    - **SegmentationMode** *(string) --* useInputSegmentation has been deprecated. The configured
    segment size is always used.

    - **SegmentsPerSubdirectory** *(integer) --* Number of segments to write to a subdirectory
    before starting a new one. directoryStructure must be subdirectoryPerStream for this setting to
    have an effect.

    - **StreamInfResolution** *(string) --* Include or exclude RESOLUTION attribute for video in
    EXT-X-STREAM-INF tag of variant manifest.

    - **TimedMetadataId3Frame** *(string) --* Indicates ID3 frame that has the timecode.

    - **TimedMetadataId3Period** *(integer) --* Timed Metadata interval in seconds.

    - **TimestampDeltaMilliseconds** *(integer) --* Provides an extra millisecond delta offset to
    fine tune the timestamps.

    - **TsFileMode** *(string) --* SEGMENTEDFILES: Emit the program as segments - multiple .ts media
    files. SINGLEFILE: Applies only if Mode field is VOD. Emit the program as a single .ts media
    file. The media manifest includes #EXT-X-BYTERANGE tags to index segments for playback. A
    typical use for this value is when sending the output to AWS Elemental MediaConvert, which can
    accept only a single media file. Playback while the channel is running is not guaranteed due to
    HTTP server caching.
    """


_ClientCreateChannelEncoderSettingsOutputGroupsOutputGroupSettingsMediaPackageGroupSettingsDestinationTypeDef = TypedDict(
    "_ClientCreateChannelEncoderSettingsOutputGroupsOutputGroupSettingsMediaPackageGroupSettingsDestinationTypeDef",
    {"DestinationRefId": str},
    total=False,
)


class ClientCreateChannelEncoderSettingsOutputGroupsOutputGroupSettingsMediaPackageGroupSettingsDestinationTypeDef(
    _ClientCreateChannelEncoderSettingsOutputGroupsOutputGroupSettingsMediaPackageGroupSettingsDestinationTypeDef
):
    """
    Type definition for
    `ClientCreateChannelEncoderSettingsOutputGroupsOutputGroupSettingsMediaPackageGroupSettings`
    `Destination`

    - **DestinationRefId** *(string) --* Placeholder documentation for __string
    """


_ClientCreateChannelEncoderSettingsOutputGroupsOutputGroupSettingsMediaPackageGroupSettingsTypeDef = TypedDict(
    "_ClientCreateChannelEncoderSettingsOutputGroupsOutputGroupSettingsMediaPackageGroupSettingsTypeDef",
    {
        "Destination": ClientCreateChannelEncoderSettingsOutputGroupsOutputGroupSettingsMediaPackageGroupSettingsDestinationTypeDef
    },
)


class ClientCreateChannelEncoderSettingsOutputGroupsOutputGroupSettingsMediaPackageGroupSettingsTypeDef(
    _ClientCreateChannelEncoderSettingsOutputGroupsOutputGroupSettingsMediaPackageGroupSettingsTypeDef
):
    """
    Type definition for `ClientCreateChannelEncoderSettingsOutputGroupsOutputGroupSettings`
    `MediaPackageGroupSettings`

    - **Destination** *(dict) --* **[REQUIRED]** MediaPackage channel destination.

      - **DestinationRefId** *(string) --* Placeholder documentation for __string
    """


_ClientCreateChannelEncoderSettingsOutputGroupsOutputGroupSettingsMsSmoothGroupSettingsDestinationTypeDef = TypedDict(
    "_ClientCreateChannelEncoderSettingsOutputGroupsOutputGroupSettingsMsSmoothGroupSettingsDestinationTypeDef",
    {"DestinationRefId": str},
    total=False,
)


class ClientCreateChannelEncoderSettingsOutputGroupsOutputGroupSettingsMsSmoothGroupSettingsDestinationTypeDef(
    _ClientCreateChannelEncoderSettingsOutputGroupsOutputGroupSettingsMsSmoothGroupSettingsDestinationTypeDef
):
    """
    Type definition for
    `ClientCreateChannelEncoderSettingsOutputGroupsOutputGroupSettingsMsSmoothGroupSettings`
    `Destination`

    - **DestinationRefId** *(string) --* Placeholder documentation for __string
    """


_RequiredClientCreateChannelEncoderSettingsOutputGroupsOutputGroupSettingsMsSmoothGroupSettingsTypeDef = TypedDict(
    "_RequiredClientCreateChannelEncoderSettingsOutputGroupsOutputGroupSettingsMsSmoothGroupSettingsTypeDef",
    {
        "Destination": ClientCreateChannelEncoderSettingsOutputGroupsOutputGroupSettingsMsSmoothGroupSettingsDestinationTypeDef
    },
)
_OptionalClientCreateChannelEncoderSettingsOutputGroupsOutputGroupSettingsMsSmoothGroupSettingsTypeDef = TypedDict(
    "_OptionalClientCreateChannelEncoderSettingsOutputGroupsOutputGroupSettingsMsSmoothGroupSettingsTypeDef",
    {
        "AcquisitionPointId": str,
        "AudioOnlyTimecodeControl": str,
        "CertificateMode": str,
        "ConnectionRetryInterval": int,
        "EventId": str,
        "EventIdMode": str,
        "EventStopBehavior": str,
        "FilecacheDuration": int,
        "FragmentLength": int,
        "InputLossAction": str,
        "NumRetries": int,
        "RestartDelay": int,
        "SegmentationMode": str,
        "SendDelayMs": int,
        "SparseTrackType": str,
        "StreamManifestBehavior": str,
        "TimestampOffset": str,
        "TimestampOffsetMode": str,
    },
    total=False,
)


class ClientCreateChannelEncoderSettingsOutputGroupsOutputGroupSettingsMsSmoothGroupSettingsTypeDef(
    _RequiredClientCreateChannelEncoderSettingsOutputGroupsOutputGroupSettingsMsSmoothGroupSettingsTypeDef,
    _OptionalClientCreateChannelEncoderSettingsOutputGroupsOutputGroupSettingsMsSmoothGroupSettingsTypeDef,
):
    """
    Type definition for `ClientCreateChannelEncoderSettingsOutputGroupsOutputGroupSettings`
    `MsSmoothGroupSettings`

    - **AcquisitionPointId** *(string) --* The value of the "Acquisition Point Identity" element
    used in each message placed in the sparse track. Only enabled if sparseTrackType is not "none".

    - **AudioOnlyTimecodeControl** *(string) --* If set to passthrough for an audio-only MS Smooth
    output, the fragment absolute time will be set to the current timecode. This option does not
    write timecodes to the audio elementary stream.

    - **CertificateMode** *(string) --* If set to verifyAuthenticity, verify the https certificate
    chain to a trusted Certificate Authority (CA). This will cause https outputs to self-signed
    certificates to fail.

    - **ConnectionRetryInterval** *(integer) --* Number of seconds to wait before retrying
    connection to the IIS server if the connection is lost. Content will be cached during this time
    and the cache will be be delivered to the IIS server once the connection is re-established.

    - **Destination** *(dict) --* **[REQUIRED]** Smooth Streaming publish point on an IIS server.
    Elemental Live acts as a "Push" encoder to IIS.

      - **DestinationRefId** *(string) --* Placeholder documentation for __string

    - **EventId** *(string) --* MS Smooth event ID to be sent to the IIS server. Should only be
    specified if eventIdMode is set to useConfigured.

    - **EventIdMode** *(string) --* Specifies whether or not to send an event ID to the IIS server.
    If no event ID is sent and the same Live Event is used without changing the publishing point,
    clients might see cached video from the previous run. Options: - "useConfigured" - use the value
    provided in eventId - "useTimestamp" - generate and send an event ID based on the current
    timestamp - "noEventId" - do not send an event ID to the IIS server.

    - **EventStopBehavior** *(string) --* When set to sendEos, send EOS signal to IIS server when
    stopping the event

    - **FilecacheDuration** *(integer) --* Size in seconds of file cache for streaming outputs.

    - **FragmentLength** *(integer) --* Length of mp4 fragments to generate (in seconds). Fragment
    length must be compatible with GOP size and framerate.

    - **InputLossAction** *(string) --* Parameter that control output group behavior on input loss.

    - **NumRetries** *(integer) --* Number of retry attempts.

    - **RestartDelay** *(integer) --* Number of seconds before initiating a restart due to output
    failure, due to exhausting the numRetries on one segment, or exceeding filecacheDuration.

    - **SegmentationMode** *(string) --* useInputSegmentation has been deprecated. The configured
    segment size is always used.

    - **SendDelayMs** *(integer) --* Number of milliseconds to delay the output from the second
    pipeline.

    - **SparseTrackType** *(string) --* If set to scte35, use incoming SCTE-35 messages to generate
    a sparse track in this group of MS-Smooth outputs.

    - **StreamManifestBehavior** *(string) --* When set to send, send stream manifest so publishing
    point doesn't start until all streams start.

    - **TimestampOffset** *(string) --* Timestamp offset for the event. Only used if
    timestampOffsetMode is set to useConfiguredOffset.

    - **TimestampOffsetMode** *(string) --* Type of timestamp date offset to use. -
    useEventStartDate: Use the date the event was started as the offset - useConfiguredOffset: Use
    an explicitly configured date as the offset
    """


_ClientCreateChannelEncoderSettingsOutputGroupsOutputGroupSettingsRtmpGroupSettingsTypeDef = TypedDict(
    "_ClientCreateChannelEncoderSettingsOutputGroupsOutputGroupSettingsRtmpGroupSettingsTypeDef",
    {
        "AuthenticationScheme": str,
        "CacheFullBehavior": str,
        "CacheLength": int,
        "CaptionData": str,
        "InputLossAction": str,
        "RestartDelay": int,
    },
    total=False,
)


class ClientCreateChannelEncoderSettingsOutputGroupsOutputGroupSettingsRtmpGroupSettingsTypeDef(
    _ClientCreateChannelEncoderSettingsOutputGroupsOutputGroupSettingsRtmpGroupSettingsTypeDef
):
    """
    Type definition for `ClientCreateChannelEncoderSettingsOutputGroupsOutputGroupSettings`
    `RtmpGroupSettings`

    - **AuthenticationScheme** *(string) --* Authentication scheme to use when connecting with CDN

    - **CacheFullBehavior** *(string) --* Controls behavior when content cache fills up. If remote
    origin server stalls the RTMP connection and does not accept content fast enough the 'Media
    Cache' will fill up. When the cache reaches the duration specified by cacheLength the cache will
    stop accepting new content. If set to disconnectImmediately, the RTMP output will force a
    disconnect. Clear the media cache, and reconnect after restartDelay seconds. If set to
    waitForServer, the RTMP output will wait up to 5 minutes to allow the origin server to begin
    accepting data again.

    - **CacheLength** *(integer) --* Cache length, in seconds, is used to calculate buffer size.

    - **CaptionData** *(string) --* Controls the types of data that passes to onCaptionInfo outputs.
    If set to 'all' then 608 and 708 carried DTVCC data will be passed. If set to
    'field1AndField2608' then DTVCC data will be stripped out, but 608 data from both fields will be
    passed. If set to 'field1608' then only the data carried in 608 from field 1 video will be
    passed.

    - **InputLossAction** *(string) --* Controls the behavior of this RTMP group if input becomes
    unavailable. - emitOutput: Emit a slate until input returns. - pauseOutput: Stop transmitting
    data until input returns. This does not close the underlying RTMP connection.

    - **RestartDelay** *(integer) --* If a streaming output fails, number of seconds to wait until a
    restart is initiated. A value of 0 means never restart.
    """


_ClientCreateChannelEncoderSettingsOutputGroupsOutputGroupSettingsUdpGroupSettingsTypeDef = TypedDict(
    "_ClientCreateChannelEncoderSettingsOutputGroupsOutputGroupSettingsUdpGroupSettingsTypeDef",
    {"InputLossAction": str, "TimedMetadataId3Frame": str, "TimedMetadataId3Period": int},
    total=False,
)


class ClientCreateChannelEncoderSettingsOutputGroupsOutputGroupSettingsUdpGroupSettingsTypeDef(
    _ClientCreateChannelEncoderSettingsOutputGroupsOutputGroupSettingsUdpGroupSettingsTypeDef
):
    """
    Type definition for `ClientCreateChannelEncoderSettingsOutputGroupsOutputGroupSettings`
    `UdpGroupSettings`

    - **InputLossAction** *(string) --* Specifies behavior of last resort when input video is lost,
    and no more backup inputs are available. When dropTs is selected the entire transport stream
    will stop being emitted. When dropProgram is selected the program can be dropped from the
    transport stream (and replaced with null packets to meet the TS bitrate requirement). Or, when
    emitProgram is chosen the transport stream will continue to be produced normally with repeat
    frames, black frames, or slate frames substituted for the absent input video.

    - **TimedMetadataId3Frame** *(string) --* Indicates ID3 frame that has the timecode.

    - **TimedMetadataId3Period** *(integer) --* Timed Metadata interval in seconds.
    """


_ClientCreateChannelEncoderSettingsOutputGroupsOutputGroupSettingsTypeDef = TypedDict(
    "_ClientCreateChannelEncoderSettingsOutputGroupsOutputGroupSettingsTypeDef",
    {
        "ArchiveGroupSettings": ClientCreateChannelEncoderSettingsOutputGroupsOutputGroupSettingsArchiveGroupSettingsTypeDef,
        "FrameCaptureGroupSettings": ClientCreateChannelEncoderSettingsOutputGroupsOutputGroupSettingsFrameCaptureGroupSettingsTypeDef,
        "HlsGroupSettings": ClientCreateChannelEncoderSettingsOutputGroupsOutputGroupSettingsHlsGroupSettingsTypeDef,
        "MediaPackageGroupSettings": ClientCreateChannelEncoderSettingsOutputGroupsOutputGroupSettingsMediaPackageGroupSettingsTypeDef,
        "MsSmoothGroupSettings": ClientCreateChannelEncoderSettingsOutputGroupsOutputGroupSettingsMsSmoothGroupSettingsTypeDef,
        "MultiplexGroupSettings": Dict,
        "RtmpGroupSettings": ClientCreateChannelEncoderSettingsOutputGroupsOutputGroupSettingsRtmpGroupSettingsTypeDef,
        "UdpGroupSettings": ClientCreateChannelEncoderSettingsOutputGroupsOutputGroupSettingsUdpGroupSettingsTypeDef,
    },
    total=False,
)


class ClientCreateChannelEncoderSettingsOutputGroupsOutputGroupSettingsTypeDef(
    _ClientCreateChannelEncoderSettingsOutputGroupsOutputGroupSettingsTypeDef
):
    """
    Type definition for `ClientCreateChannelEncoderSettingsOutputGroups` `OutputGroupSettings`

    - **ArchiveGroupSettings** *(dict) --* Archive Group Settings

      - **Destination** *(dict) --* **[REQUIRED]** A directory and base filename where archive files
      should be written.

        - **DestinationRefId** *(string) --* Placeholder documentation for __string

      - **RolloverInterval** *(integer) --* Number of seconds to write to archive file before
      closing and starting a new one.

    - **FrameCaptureGroupSettings** *(dict) --* Frame Capture Group Settings

      - **Destination** *(dict) --* **[REQUIRED]** The destination for the frame capture files.
      Either the URI for an Amazon S3 bucket and object, plus a file name prefix (for example,
      s3ssl://sportsDelivery/highlights/20180820/curling_) or the URI for a MediaStore container,
      plus a file name prefix (for example, mediastoressl://sportsDelivery/20180820/curling_). The
      final file names consist of the prefix from the destination field (for example, "curling_") +
      name modifier + the counter (5 digits, starting from 00001) + extension (which is always
      .jpg). For example, curlingLow.00001.jpg

        - **DestinationRefId** *(string) --* Placeholder documentation for __string

    - **HlsGroupSettings** *(dict) --* Hls Group Settings

      - **AdMarkers** *(list) --* Choose one or more ad marker types to pass SCTE35 signals through
      to this group of Apple HLS outputs.

        - *(string) --* Hls Ad Markers

      - **BaseUrlContent** *(string) --* A partial URI prefix that will be prepended to each output
      in the media .m3u8 file. Can be used if base manifest is delivered from a different URL than
      the main .m3u8 file.

      - **BaseUrlManifest** *(string) --* A partial URI prefix that will be prepended to each output
      in the media .m3u8 file. Can be used if base manifest is delivered from a different URL than
      the main .m3u8 file.

      - **CaptionLanguageMappings** *(list) --* Mapping of up to 4 caption channels to caption
      languages. Is only meaningful if captionLanguageSetting is set to "insert".

        - *(dict) --* Maps a caption channel to an ISO 693-2 language code
        (http://www.loc.gov/standards/iso639-2), with an optional description.

          - **CaptionChannel** *(integer) --* **[REQUIRED]** The closed caption channel being
          described by this CaptionLanguageMapping. Each channel mapping must have a unique channel
          number (maximum of 4)

          - **LanguageCode** *(string) --* **[REQUIRED]** Three character ISO 639-2 language code
          (see http://www.loc.gov/standards/iso639-2)

          - **LanguageDescription** *(string) --* **[REQUIRED]** Textual description of language

      - **CaptionLanguageSetting** *(string) --* Applies only to 608 Embedded output captions.
      insert: Include CLOSED-CAPTIONS lines in the manifest. Specify at least one language in the
      CC1 Language Code field. One CLOSED-CAPTION line is added for each Language Code you specify.
      Make sure to specify the languages in the order in which they appear in the original source
      (if the source is embedded format) or the order of the caption selectors (if the source is
      other than embedded). Otherwise, languages in the manifest will not match up properly with the
      output captions. none: Include CLOSED-CAPTIONS=NONE line in the manifest. omit: Omit any
      CLOSED-CAPTIONS line from the manifest.

      - **ClientCache** *(string) --* When set to "disabled", sets the #EXT-X-ALLOW-CACHE:no tag in
      the manifest, which prevents clients from saving media segments for later replay.

      - **CodecSpecification** *(string) --* Specification to use (RFC-6381 or the default RFC-4281)
      during m3u8 playlist generation.

      - **ConstantIv** *(string) --* For use with encryptionType. This is a 128-bit, 16-byte hex
      value represented by a 32-character text string. If ivSource is set to "explicit" then this
      parameter is required and is used as the IV for encryption.

      - **Destination** *(dict) --* **[REQUIRED]** A directory or HTTP destination for the HLS
      segments, manifest files, and encryption keys (if enabled).

        - **DestinationRefId** *(string) --* Placeholder documentation for __string

      - **DirectoryStructure** *(string) --* Place segments in subdirectories.

      - **EncryptionType** *(string) --* Encrypts the segments with the given encryption scheme.
      Exclude this parameter if no encryption is desired.

      - **HlsCdnSettings** *(dict) --* Parameters that control interactions with the CDN.

        - **HlsAkamaiSettings** *(dict) --* Hls Akamai Settings

          - **ConnectionRetryInterval** *(integer) --* Number of seconds to wait before retrying
          connection to the CDN if the connection is lost.

          - **FilecacheDuration** *(integer) --* Size in seconds of file cache for streaming
          outputs.

          - **HttpTransferMode** *(string) --* Specify whether or not to use chunked transfer
          encoding to Akamai. User should contact Akamai to enable this feature.

          - **NumRetries** *(integer) --* Number of retry attempts that will be made before the Live
          Event is put into an error state.

          - **RestartDelay** *(integer) --* If a streaming output fails, number of seconds to wait
          until a restart is initiated. A value of 0 means never restart.

          - **Salt** *(string) --* Salt for authenticated Akamai.

          - **Token** *(string) --* Token parameter for authenticated akamai. If not specified,
          _gda_ is used.

        - **HlsBasicPutSettings** *(dict) --* Hls Basic Put Settings

          - **ConnectionRetryInterval** *(integer) --* Number of seconds to wait before retrying
          connection to the CDN if the connection is lost.

          - **FilecacheDuration** *(integer) --* Size in seconds of file cache for streaming
          outputs.

          - **NumRetries** *(integer) --* Number of retry attempts that will be made before the Live
          Event is put into an error state.

          - **RestartDelay** *(integer) --* If a streaming output fails, number of seconds to wait
          until a restart is initiated. A value of 0 means never restart.

        - **HlsMediaStoreSettings** *(dict) --* Hls Media Store Settings

          - **ConnectionRetryInterval** *(integer) --* Number of seconds to wait before retrying
          connection to the CDN if the connection is lost.

          - **FilecacheDuration** *(integer) --* Size in seconds of file cache for streaming
          outputs.

          - **MediaStoreStorageClass** *(string) --* When set to temporal, output files are stored
          in non-persistent memory for faster reading and writing.

          - **NumRetries** *(integer) --* Number of retry attempts that will be made before the Live
          Event is put into an error state.

          - **RestartDelay** *(integer) --* If a streaming output fails, number of seconds to wait
          until a restart is initiated. A value of 0 means never restart.

        - **HlsWebdavSettings** *(dict) --* Hls Webdav Settings

          - **ConnectionRetryInterval** *(integer) --* Number of seconds to wait before retrying
          connection to the CDN if the connection is lost.

          - **FilecacheDuration** *(integer) --* Size in seconds of file cache for streaming
          outputs.

          - **HttpTransferMode** *(string) --* Specify whether or not to use chunked transfer
          encoding to WebDAV.

          - **NumRetries** *(integer) --* Number of retry attempts that will be made before the Live
          Event is put into an error state.

          - **RestartDelay** *(integer) --* If a streaming output fails, number of seconds to wait
          until a restart is initiated. A value of 0 means never restart.

      - **IFrameOnlyPlaylists** *(string) --* DISABLED: Do not create an I-frame-only manifest, but
      do create the master and media manifests (according to the Output Selection field). STANDARD:
      Create an I-frame-only manifest for each output that contains video, as well as the other
      manifests (according to the Output Selection field). The I-frame manifest contains a
      #EXT-X-I-FRAMES-ONLY tag to indicate it is I-frame only, and one or more #EXT-X-BYTERANGE
      entries identifying the I-frame position. For example, #EXT-X-BYTERANGE:160364@1461888"

      - **IndexNSegments** *(integer) --* Applies only if Mode field is LIVE. Specifies the maximum
      number of segments in the media manifest file. After this maximum, older segments are removed
      from the media manifest. This number must be less than or equal to the Keep Segments field.

      - **InputLossAction** *(string) --* Parameter that control output group behavior on input
      loss.

      - **IvInManifest** *(string) --* For use with encryptionType. The IV (Initialization Vector)
      is a 128-bit number used in conjunction with the key for encrypting blocks. If set to
      "include", IV is listed in the manifest, otherwise the IV is not in the manifest.

      - **IvSource** *(string) --* For use with encryptionType. The IV (Initialization Vector) is a
      128-bit number used in conjunction with the key for encrypting blocks. If this setting is
      "followsSegmentNumber", it will cause the IV to change every segment (to match the segment
      number). If this is set to "explicit", you must enter a constantIv value.

      - **KeepSegments** *(integer) --* Applies only if Mode field is LIVE. Specifies the number of
      media segments (.ts files) to retain in the destination directory.

      - **KeyFormat** *(string) --* The value specifies how the key is represented in the resource
      identified by the URI. If parameter is absent, an implicit value of "identity" is used. A
      reverse DNS string can also be given.

      - **KeyFormatVersions** *(string) --* Either a single positive integer version value or a
      slash delimited list of version values (1/2/3).

      - **KeyProviderSettings** *(dict) --* The key provider settings.

        - **StaticKeySettings** *(dict) --* Static Key Settings

          - **KeyProviderServer** *(dict) --* The URL of the license server used for protecting
          content.

            - **PasswordParam** *(string) --* key used to extract the password from EC2 Parameter
            store

            - **Uri** *(string) --* **[REQUIRED]** Uniform Resource Identifier - This should be a
            path to a file accessible to the Live system (eg. a http:// URI) depending on the output
            type. For example, a RTMP destination should have a uri simliar to:
            "rtmp://fmsserver/live".

            - **Username** *(string) --* Documentation update needed

          - **StaticKeyValue** *(string) --* **[REQUIRED]** Static key value as a 32 character
          hexadecimal string.

      - **ManifestCompression** *(string) --* When set to gzip, compresses HLS playlist.

      - **ManifestDurationFormat** *(string) --* Indicates whether the output manifest should use
      floating point or integer values for segment duration.

      - **MinSegmentLength** *(integer) --* When set, minimumSegmentLength is enforced by looking
      ahead and back within the specified range for a nearby avail and extending the segment size if
      needed.

      - **Mode** *(string) --* If "vod", all segments are indexed and kept permanently in the
      destination and manifest. If "live", only the number segments specified in keepSegments and
      indexNSegments are kept; newer segments replace older segments, which may prevent players from
      rewinding all the way to the beginning of the event. VOD mode uses HLS EXT-X-PLAYLIST-TYPE of
      EVENT while the channel is running, converting it to a "VOD" type manifest on completion of
      the stream.

      - **OutputSelection** *(string) --* MANIFESTSANDSEGMENTS: Generates manifests (master
      manifest, if applicable, and media manifests) for this output group. SEGMENTSONLY: Does not
      generate any manifests for this output group.

      - **ProgramDateTime** *(string) --* Includes or excludes EXT-X-PROGRAM-DATE-TIME tag in .m3u8
      manifest files. The value is calculated as follows: either the program date and time are
      initialized using the input timecode source, or the time is initialized using the input
      timecode source and the date is initialized using the timestampOffset.

      - **ProgramDateTimePeriod** *(integer) --* Period of insertion of EXT-X-PROGRAM-DATE-TIME
      entry, in seconds.

      - **RedundantManifest** *(string) --* ENABLED: The master manifest (.m3u8 file) for each
      pipeline includes information about both pipelines: first its own media files, then the media
      files of the other pipeline. This feature allows playout device that support stale manifest
      detection to switch from one manifest to the other, when the current manifest seems to be
      stale. There are still two destinations and two master manifests, but both master manifests
      reference the media files from both pipelines. DISABLED: The master manifest (.m3u8 file) for
      each pipeline includes information about its own pipeline only. For an HLS output group with
      MediaPackage as the destination, the DISABLED behavior is always followed. MediaPackage
      regenerates the manifests it serves to players so a redundant manifest from MediaLive is
      irrelevant.

      - **SegmentLength** *(integer) --* Length of MPEG-2 Transport Stream segments to create (in
      seconds). Note that segments will end on the next keyframe after this number of seconds, so
      actual segment length may be longer.

      - **SegmentationMode** *(string) --* useInputSegmentation has been deprecated. The configured
      segment size is always used.

      - **SegmentsPerSubdirectory** *(integer) --* Number of segments to write to a subdirectory
      before starting a new one. directoryStructure must be subdirectoryPerStream for this setting
      to have an effect.

      - **StreamInfResolution** *(string) --* Include or exclude RESOLUTION attribute for video in
      EXT-X-STREAM-INF tag of variant manifest.

      - **TimedMetadataId3Frame** *(string) --* Indicates ID3 frame that has the timecode.

      - **TimedMetadataId3Period** *(integer) --* Timed Metadata interval in seconds.

      - **TimestampDeltaMilliseconds** *(integer) --* Provides an extra millisecond delta offset to
      fine tune the timestamps.

      - **TsFileMode** *(string) --* SEGMENTEDFILES: Emit the program as segments - multiple .ts
      media files. SINGLEFILE: Applies only if Mode field is VOD. Emit the program as a single .ts
      media file. The media manifest includes #EXT-X-BYTERANGE tags to index segments for playback.
      A typical use for this value is when sending the output to AWS Elemental MediaConvert, which
      can accept only a single media file. Playback while the channel is running is not guaranteed
      due to HTTP server caching.

    - **MediaPackageGroupSettings** *(dict) --* Media Package Group Settings

      - **Destination** *(dict) --* **[REQUIRED]** MediaPackage channel destination.

        - **DestinationRefId** *(string) --* Placeholder documentation for __string

    - **MsSmoothGroupSettings** *(dict) --* Ms Smooth Group Settings

      - **AcquisitionPointId** *(string) --* The value of the "Acquisition Point Identity" element
      used in each message placed in the sparse track. Only enabled if sparseTrackType is not
      "none".

      - **AudioOnlyTimecodeControl** *(string) --* If set to passthrough for an audio-only MS Smooth
      output, the fragment absolute time will be set to the current timecode. This option does not
      write timecodes to the audio elementary stream.

      - **CertificateMode** *(string) --* If set to verifyAuthenticity, verify the https certificate
      chain to a trusted Certificate Authority (CA). This will cause https outputs to self-signed
      certificates to fail.

      - **ConnectionRetryInterval** *(integer) --* Number of seconds to wait before retrying
      connection to the IIS server if the connection is lost. Content will be cached during this
      time and the cache will be be delivered to the IIS server once the connection is
      re-established.

      - **Destination** *(dict) --* **[REQUIRED]** Smooth Streaming publish point on an IIS server.
      Elemental Live acts as a "Push" encoder to IIS.

        - **DestinationRefId** *(string) --* Placeholder documentation for __string

      - **EventId** *(string) --* MS Smooth event ID to be sent to the IIS server. Should only be
      specified if eventIdMode is set to useConfigured.

      - **EventIdMode** *(string) --* Specifies whether or not to send an event ID to the IIS
      server. If no event ID is sent and the same Live Event is used without changing the publishing
      point, clients might see cached video from the previous run. Options: - "useConfigured" - use
      the value provided in eventId - "useTimestamp" - generate and send an event ID based on the
      current timestamp - "noEventId" - do not send an event ID to the IIS server.

      - **EventStopBehavior** *(string) --* When set to sendEos, send EOS signal to IIS server when
      stopping the event

      - **FilecacheDuration** *(integer) --* Size in seconds of file cache for streaming outputs.

      - **FragmentLength** *(integer) --* Length of mp4 fragments to generate (in seconds). Fragment
      length must be compatible with GOP size and framerate.

      - **InputLossAction** *(string) --* Parameter that control output group behavior on input
      loss.

      - **NumRetries** *(integer) --* Number of retry attempts.

      - **RestartDelay** *(integer) --* Number of seconds before initiating a restart due to output
      failure, due to exhausting the numRetries on one segment, or exceeding filecacheDuration.

      - **SegmentationMode** *(string) --* useInputSegmentation has been deprecated. The configured
      segment size is always used.

      - **SendDelayMs** *(integer) --* Number of milliseconds to delay the output from the second
      pipeline.

      - **SparseTrackType** *(string) --* If set to scte35, use incoming SCTE-35 messages to
      generate a sparse track in this group of MS-Smooth outputs.

      - **StreamManifestBehavior** *(string) --* When set to send, send stream manifest so
      publishing point doesn't start until all streams start.

      - **TimestampOffset** *(string) --* Timestamp offset for the event. Only used if
      timestampOffsetMode is set to useConfiguredOffset.

      - **TimestampOffsetMode** *(string) --* Type of timestamp date offset to use. -
      useEventStartDate: Use the date the event was started as the offset - useConfiguredOffset: Use
      an explicitly configured date as the offset

    - **MultiplexGroupSettings** *(dict) --* Multiplex Group Settings

    - **RtmpGroupSettings** *(dict) --* Rtmp Group Settings

      - **AuthenticationScheme** *(string) --* Authentication scheme to use when connecting with CDN

      - **CacheFullBehavior** *(string) --* Controls behavior when content cache fills up. If remote
      origin server stalls the RTMP connection and does not accept content fast enough the 'Media
      Cache' will fill up. When the cache reaches the duration specified by cacheLength the cache
      will stop accepting new content. If set to disconnectImmediately, the RTMP output will force a
      disconnect. Clear the media cache, and reconnect after restartDelay seconds. If set to
      waitForServer, the RTMP output will wait up to 5 minutes to allow the origin server to begin
      accepting data again.

      - **CacheLength** *(integer) --* Cache length, in seconds, is used to calculate buffer size.

      - **CaptionData** *(string) --* Controls the types of data that passes to onCaptionInfo
      outputs. If set to 'all' then 608 and 708 carried DTVCC data will be passed. If set to
      'field1AndField2608' then DTVCC data will be stripped out, but 608 data from both fields will
      be passed. If set to 'field1608' then only the data carried in 608 from field 1 video will be
      passed.

      - **InputLossAction** *(string) --* Controls the behavior of this RTMP group if input becomes
      unavailable. - emitOutput: Emit a slate until input returns. - pauseOutput: Stop transmitting
      data until input returns. This does not close the underlying RTMP connection.

      - **RestartDelay** *(integer) --* If a streaming output fails, number of seconds to wait until
      a restart is initiated. A value of 0 means never restart.

    - **UdpGroupSettings** *(dict) --* Udp Group Settings

      - **InputLossAction** *(string) --* Specifies behavior of last resort when input video is
      lost, and no more backup inputs are available. When dropTs is selected the entire transport
      stream will stop being emitted. When dropProgram is selected the program can be dropped from
      the transport stream (and replaced with null packets to meet the TS bitrate requirement). Or,
      when emitProgram is chosen the transport stream will continue to be produced normally with
      repeat frames, black frames, or slate frames substituted for the absent input video.

      - **TimedMetadataId3Frame** *(string) --* Indicates ID3 frame that has the timecode.

      - **TimedMetadataId3Period** *(integer) --* Timed Metadata interval in seconds.
    """


_RequiredClientCreateChannelEncoderSettingsOutputGroupsOutputsOutputSettingsArchiveOutputSettingsContainerSettingsM2tsSettingsDvbNitSettingsTypeDef = TypedDict(
    "_RequiredClientCreateChannelEncoderSettingsOutputGroupsOutputsOutputSettingsArchiveOutputSettingsContainerSettingsM2tsSettingsDvbNitSettingsTypeDef",
    {"NetworkId": int, "NetworkName": str},
)
_OptionalClientCreateChannelEncoderSettingsOutputGroupsOutputsOutputSettingsArchiveOutputSettingsContainerSettingsM2tsSettingsDvbNitSettingsTypeDef = TypedDict(
    "_OptionalClientCreateChannelEncoderSettingsOutputGroupsOutputsOutputSettingsArchiveOutputSettingsContainerSettingsM2tsSettingsDvbNitSettingsTypeDef",
    {"RepInterval": int},
    total=False,
)


class ClientCreateChannelEncoderSettingsOutputGroupsOutputsOutputSettingsArchiveOutputSettingsContainerSettingsM2tsSettingsDvbNitSettingsTypeDef(
    _RequiredClientCreateChannelEncoderSettingsOutputGroupsOutputsOutputSettingsArchiveOutputSettingsContainerSettingsM2tsSettingsDvbNitSettingsTypeDef,
    _OptionalClientCreateChannelEncoderSettingsOutputGroupsOutputsOutputSettingsArchiveOutputSettingsContainerSettingsM2tsSettingsDvbNitSettingsTypeDef,
):
    """
    Type definition for
    `ClientCreateChannelEncoderSettingsOutputGroupsOutputsOutputSettingsArchiveOutputSettingsContainerSettingsM2tsSettings`
    `DvbNitSettings`

    - **NetworkId** *(integer) --* **[REQUIRED]** The numeric value placed in the Network
    Information Table (NIT).

    - **NetworkName** *(string) --* **[REQUIRED]** The network name text placed in the
    networkNameDescriptor inside the Network Information Table. Maximum length is 256 characters.

    - **RepInterval** *(integer) --* The number of milliseconds between instances of this table in
    the output transport stream.
    """


_ClientCreateChannelEncoderSettingsOutputGroupsOutputsOutputSettingsArchiveOutputSettingsContainerSettingsM2tsSettingsDvbSdtSettingsTypeDef = TypedDict(
    "_ClientCreateChannelEncoderSettingsOutputGroupsOutputsOutputSettingsArchiveOutputSettingsContainerSettingsM2tsSettingsDvbSdtSettingsTypeDef",
    {"OutputSdt": str, "RepInterval": int, "ServiceName": str, "ServiceProviderName": str},
    total=False,
)


class ClientCreateChannelEncoderSettingsOutputGroupsOutputsOutputSettingsArchiveOutputSettingsContainerSettingsM2tsSettingsDvbSdtSettingsTypeDef(
    _ClientCreateChannelEncoderSettingsOutputGroupsOutputsOutputSettingsArchiveOutputSettingsContainerSettingsM2tsSettingsDvbSdtSettingsTypeDef
):
    """
    Type definition for
    `ClientCreateChannelEncoderSettingsOutputGroupsOutputsOutputSettingsArchiveOutputSettingsContainerSettingsM2tsSettings`
    `DvbSdtSettings`

    - **OutputSdt** *(string) --* Selects method of inserting SDT information into output stream.
    The sdtFollow setting copies SDT information from input stream to output stream. The
    sdtFollowIfPresent setting copies SDT information from input stream to output stream if SDT
    information is present in the input, otherwise it will fall back on the user-defined values. The
    sdtManual setting means user will enter the SDT information. The sdtNone setting means output
    stream will not contain SDT information.

    - **RepInterval** *(integer) --* The number of milliseconds between instances of this table in
    the output transport stream.

    - **ServiceName** *(string) --* The service name placed in the serviceDescriptor in the Service
    Description Table. Maximum length is 256 characters.

    - **ServiceProviderName** *(string) --* The service provider name placed in the
    serviceDescriptor in the Service Description Table. Maximum length is 256 characters.
    """


_ClientCreateChannelEncoderSettingsOutputGroupsOutputsOutputSettingsArchiveOutputSettingsContainerSettingsM2tsSettingsDvbTdtSettingsTypeDef = TypedDict(
    "_ClientCreateChannelEncoderSettingsOutputGroupsOutputsOutputSettingsArchiveOutputSettingsContainerSettingsM2tsSettingsDvbTdtSettingsTypeDef",
    {"RepInterval": int},
    total=False,
)


class ClientCreateChannelEncoderSettingsOutputGroupsOutputsOutputSettingsArchiveOutputSettingsContainerSettingsM2tsSettingsDvbTdtSettingsTypeDef(
    _ClientCreateChannelEncoderSettingsOutputGroupsOutputsOutputSettingsArchiveOutputSettingsContainerSettingsM2tsSettingsDvbTdtSettingsTypeDef
):
    """
    Type definition for
    `ClientCreateChannelEncoderSettingsOutputGroupsOutputsOutputSettingsArchiveOutputSettingsContainerSettingsM2tsSettings`
    `DvbTdtSettings`

    - **RepInterval** *(integer) --* The number of milliseconds between instances of this table in
    the output transport stream.
    """


_ClientCreateChannelEncoderSettingsOutputGroupsOutputsOutputSettingsArchiveOutputSettingsContainerSettingsM2tsSettingsTypeDef = TypedDict(
    "_ClientCreateChannelEncoderSettingsOutputGroupsOutputsOutputSettingsArchiveOutputSettingsContainerSettingsM2tsSettingsTypeDef",
    {
        "AbsentInputAudioBehavior": str,
        "Arib": str,
        "AribCaptionsPid": str,
        "AribCaptionsPidControl": str,
        "AudioBufferModel": str,
        "AudioFramesPerPes": int,
        "AudioPids": str,
        "AudioStreamType": str,
        "Bitrate": int,
        "BufferModel": str,
        "CcDescriptor": str,
        "DvbNitSettings": ClientCreateChannelEncoderSettingsOutputGroupsOutputsOutputSettingsArchiveOutputSettingsContainerSettingsM2tsSettingsDvbNitSettingsTypeDef,
        "DvbSdtSettings": ClientCreateChannelEncoderSettingsOutputGroupsOutputsOutputSettingsArchiveOutputSettingsContainerSettingsM2tsSettingsDvbSdtSettingsTypeDef,
        "DvbSubPids": str,
        "DvbTdtSettings": ClientCreateChannelEncoderSettingsOutputGroupsOutputsOutputSettingsArchiveOutputSettingsContainerSettingsM2tsSettingsDvbTdtSettingsTypeDef,
        "DvbTeletextPid": str,
        "Ebif": str,
        "EbpAudioInterval": str,
        "EbpLookaheadMs": int,
        "EbpPlacement": str,
        "EcmPid": str,
        "EsRateInPes": str,
        "EtvPlatformPid": str,
        "EtvSignalPid": str,
        "FragmentTime": float,
        "Klv": str,
        "KlvDataPids": str,
        "NielsenId3Behavior": str,
        "NullPacketBitrate": float,
        "PatInterval": int,
        "PcrControl": str,
        "PcrPeriod": int,
        "PcrPid": str,
        "PmtInterval": int,
        "PmtPid": str,
        "ProgramNum": int,
        "RateMode": str,
        "Scte27Pids": str,
        "Scte35Control": str,
        "Scte35Pid": str,
        "SegmentationMarkers": str,
        "SegmentationStyle": str,
        "SegmentationTime": float,
        "TimedMetadataBehavior": str,
        "TimedMetadataPid": str,
        "TransportStreamId": int,
        "VideoPid": str,
    },
    total=False,
)


class ClientCreateChannelEncoderSettingsOutputGroupsOutputsOutputSettingsArchiveOutputSettingsContainerSettingsM2tsSettingsTypeDef(
    _ClientCreateChannelEncoderSettingsOutputGroupsOutputsOutputSettingsArchiveOutputSettingsContainerSettingsM2tsSettingsTypeDef
):
    """
    Type definition for
    `ClientCreateChannelEncoderSettingsOutputGroupsOutputsOutputSettingsArchiveOutputSettingsContainerSettings`
    `M2tsSettings`

    - **AbsentInputAudioBehavior** *(string) --* When set to drop, output audio streams will be
    removed from the program if the selected input audio stream is removed from the input. This
    allows the output audio configuration to dynamically change based on input configuration. If
    this is set to encodeSilence, all output audio streams will output encoded silence when not
    connected to an active input stream.

    - **Arib** *(string) --* When set to enabled, uses ARIB-compliant field muxing and removes video
    descriptor.

    - **AribCaptionsPid** *(string) --* Packet Identifier (PID) for ARIB Captions in the transport
    stream. Can be entered as a decimal or hexadecimal value. Valid values are 32 (or 0x20)..8182
    (or 0x1ff6).

    - **AribCaptionsPidControl** *(string) --* If set to auto, pid number used for ARIB Captions
    will be auto-selected from unused pids. If set to useConfigured, ARIB Captions will be on the
    configured pid number.

    - **AudioBufferModel** *(string) --* When set to dvb, uses DVB buffer model for Dolby Digital
    audio. When set to atsc, the ATSC model is used.

    - **AudioFramesPerPes** *(integer) --* The number of audio frames to insert for each PES packet.

    - **AudioPids** *(string) --* Packet Identifier (PID) of the elementary audio stream(s) in the
    transport stream. Multiple values are accepted, and can be entered in ranges and/or by comma
    separation. Can be entered as decimal or hexadecimal values. Each PID specified must be in the
    range of 32 (or 0x20)..8182 (or 0x1ff6).

    - **AudioStreamType** *(string) --* When set to atsc, uses stream type = 0x81 for AC3 and stream
    type = 0x87 for EAC3. When set to dvb, uses stream type = 0x06.

    - **Bitrate** *(integer) --* The output bitrate of the transport stream in bits per second.
    Setting to 0 lets the muxer automatically determine the appropriate bitrate.

    - **BufferModel** *(string) --* If set to multiplex, use multiplex buffer model for accurate
    interleaving. Setting to bufferModel to none can lead to lower latency, but low-memory devices
    may not be able to play back the stream without interruptions.

    - **CcDescriptor** *(string) --* When set to enabled, generates captionServiceDescriptor in PMT.

    - **DvbNitSettings** *(dict) --* Inserts DVB Network Information Table (NIT) at the specified
    table repetition interval.

      - **NetworkId** *(integer) --* **[REQUIRED]** The numeric value placed in the Network
      Information Table (NIT).

      - **NetworkName** *(string) --* **[REQUIRED]** The network name text placed in the
      networkNameDescriptor inside the Network Information Table. Maximum length is 256 characters.

      - **RepInterval** *(integer) --* The number of milliseconds between instances of this table in
      the output transport stream.

    - **DvbSdtSettings** *(dict) --* Inserts DVB Service Description Table (SDT) at the specified
    table repetition interval.

      - **OutputSdt** *(string) --* Selects method of inserting SDT information into output stream.
      The sdtFollow setting copies SDT information from input stream to output stream. The
      sdtFollowIfPresent setting copies SDT information from input stream to output stream if SDT
      information is present in the input, otherwise it will fall back on the user-defined values.
      The sdtManual setting means user will enter the SDT information. The sdtNone setting means
      output stream will not contain SDT information.

      - **RepInterval** *(integer) --* The number of milliseconds between instances of this table in
      the output transport stream.

      - **ServiceName** *(string) --* The service name placed in the serviceDescriptor in the
      Service Description Table. Maximum length is 256 characters.

      - **ServiceProviderName** *(string) --* The service provider name placed in the
      serviceDescriptor in the Service Description Table. Maximum length is 256 characters.

    - **DvbSubPids** *(string) --* Packet Identifier (PID) for input source DVB Subtitle data to
    this output. Multiple values are accepted, and can be entered in ranges and/or by comma
    separation. Can be entered as decimal or hexadecimal values. Each PID specified must be in the
    range of 32 (or 0x20)..8182 (or 0x1ff6).

    - **DvbTdtSettings** *(dict) --* Inserts DVB Time and Date Table (TDT) at the specified table
    repetition interval.

      - **RepInterval** *(integer) --* The number of milliseconds between instances of this table in
      the output transport stream.

    - **DvbTeletextPid** *(string) --* Packet Identifier (PID) for input source DVB Teletext data to
    this output. Can be entered as a decimal or hexadecimal value. Valid values are 32 (or
    0x20)..8182 (or 0x1ff6).

    - **Ebif** *(string) --* If set to passthrough, passes any EBIF data from the input source to
    this output.

    - **EbpAudioInterval** *(string) --* When videoAndFixedIntervals is selected, audio EBP markers
    will be added to partitions 3 and 4. The interval between these additional markers will be
    fixed, and will be slightly shorter than the video EBP marker interval. Only available when EBP
    Cablelabs segmentation markers are selected. Partitions 1 and 2 will always follow the video
    interval.

    - **EbpLookaheadMs** *(integer) --* When set, enforces that Encoder Boundary Points do not come
    within the specified time interval of each other by looking ahead at input video. If another EBP
    is going to come in within the specified time interval, the current EBP is not emitted, and the
    segment is "stretched" to the next marker. The lookahead value does not add latency to the
    system. The Live Event must be configured elsewhere to create sufficient latency to make the
    lookahead accurate.

    - **EbpPlacement** *(string) --* Controls placement of EBP on Audio PIDs. If set to
    videoAndAudioPids, EBP markers will be placed on the video PID and all audio PIDs. If set to
    videoPid, EBP markers will be placed on only the video PID.

    - **EcmPid** *(string) --* This field is unused and deprecated.

    - **EsRateInPes** *(string) --* Include or exclude the ES Rate field in the PES header.

    - **EtvPlatformPid** *(string) --* Packet Identifier (PID) for input source ETV Platform data to
    this output. Can be entered as a decimal or hexadecimal value. Valid values are 32 (or
    0x20)..8182 (or 0x1ff6).

    - **EtvSignalPid** *(string) --* Packet Identifier (PID) for input source ETV Signal data to
    this output. Can be entered as a decimal or hexadecimal value. Valid values are 32 (or
    0x20)..8182 (or 0x1ff6).

    - **FragmentTime** *(float) --* The length in seconds of each fragment. Only used with EBP
    markers.

    - **Klv** *(string) --* If set to passthrough, passes any KLV data from the input source to this
    output.

    - **KlvDataPids** *(string) --* Packet Identifier (PID) for input source KLV data to this
    output. Multiple values are accepted, and can be entered in ranges and/or by comma separation.
    Can be entered as decimal or hexadecimal values. Each PID specified must be in the range of 32
    (or 0x20)..8182 (or 0x1ff6).

    - **NielsenId3Behavior** *(string) --* If set to passthrough, Nielsen inaudible tones for media
    tracking will be detected in the input audio and an equivalent ID3 tag will be inserted in the
    output.

    - **NullPacketBitrate** *(float) --* Value in bits per second of extra null packets to insert
    into the transport stream. This can be used if a downstream encryption system requires periodic
    null packets.

    - **PatInterval** *(integer) --* The number of milliseconds between instances of this table in
    the output transport stream. Valid values are 0, 10..1000.

    - **PcrControl** *(string) --* When set to pcrEveryPesPacket, a Program Clock Reference value is
    inserted for every Packetized Elementary Stream (PES) header. This parameter is effective only
    when the PCR PID is the same as the video or audio elementary stream.

    - **PcrPeriod** *(integer) --* Maximum time in milliseconds between Program Clock Reference
    (PCRs) inserted into the transport stream.

    - **PcrPid** *(string) --* Packet Identifier (PID) of the Program Clock Reference (PCR) in the
    transport stream. When no value is given, the encoder will assign the same value as the Video
    PID. Can be entered as a decimal or hexadecimal value. Valid values are 32 (or 0x20)..8182 (or
    0x1ff6).

    - **PmtInterval** *(integer) --* The number of milliseconds between instances of this table in
    the output transport stream. Valid values are 0, 10..1000.

    - **PmtPid** *(string) --* Packet Identifier (PID) for the Program Map Table (PMT) in the
    transport stream. Can be entered as a decimal or hexadecimal value. Valid values are 32 (or
    0x20)..8182 (or 0x1ff6).

    - **ProgramNum** *(integer) --* The value of the program number field in the Program Map Table.

    - **RateMode** *(string) --* When vbr, does not insert null packets into transport stream to
    fill specified bitrate. The bitrate setting acts as the maximum bitrate when vbr is set.

    - **Scte27Pids** *(string) --* Packet Identifier (PID) for input source SCTE-27 data to this
    output. Multiple values are accepted, and can be entered in ranges and/or by comma separation.
    Can be entered as decimal or hexadecimal values. Each PID specified must be in the range of 32
    (or 0x20)..8182 (or 0x1ff6).

    - **Scte35Control** *(string) --* Optionally pass SCTE-35 signals from the input source to this
    output.

    - **Scte35Pid** *(string) --* Packet Identifier (PID) of the SCTE-35 stream in the transport
    stream. Can be entered as a decimal or hexadecimal value. Valid values are 32 (or 0x20)..8182
    (or 0x1ff6).

    - **SegmentationMarkers** *(string) --* Inserts segmentation markers at each segmentationTime
    period. raiSegstart sets the Random Access Indicator bit in the adaptation field. raiAdapt sets
    the RAI bit and adds the current timecode in the private data bytes. psiSegstart inserts PAT and
    PMT tables at the start of segments. ebp adds Encoder Boundary Point information to the
    adaptation field as per OpenCable specification OC-SP-EBP-I01-130118. ebpLegacy adds Encoder
    Boundary Point information to the adaptation field using a legacy proprietary format.

    - **SegmentationStyle** *(string) --* The segmentation style parameter controls how segmentation
    markers are inserted into the transport stream. With avails, it is possible that segments may be
    truncated, which can influence where future segmentation markers are inserted. When a
    segmentation style of "resetCadence" is selected and a segment is truncated due to an avail, we
    will reset the segmentation cadence. This means the subsequent segment will have a duration of
    $segmentationTime seconds. When a segmentation style of "maintainCadence" is selected and a
    segment is truncated due to an avail, we will not reset the segmentation cadence. This means the
    subsequent segment will likely be truncated as well. However, all segments after that will have
    a duration of $segmentationTime seconds. Note that EBP lookahead is a slight exception to this
    rule.

    - **SegmentationTime** *(float) --* The length in seconds of each segment. Required unless
    markers is set to None_.

    - **TimedMetadataBehavior** *(string) --* When set to passthrough, timed metadata will be passed
    through from input to output.

    - **TimedMetadataPid** *(string) --* Packet Identifier (PID) of the timed metadata stream in the
    transport stream. Can be entered as a decimal or hexadecimal value. Valid values are 32 (or
    0x20)..8182 (or 0x1ff6).

    - **TransportStreamId** *(integer) --* The value of the transport stream ID field in the Program
    Map Table.

    - **VideoPid** *(string) --* Packet Identifier (PID) of the elementary video stream in the
    transport stream. Can be entered as a decimal or hexadecimal value. Valid values are 32 (or
    0x20)..8182 (or 0x1ff6).
    """


_ClientCreateChannelEncoderSettingsOutputGroupsOutputsOutputSettingsArchiveOutputSettingsContainerSettingsTypeDef = TypedDict(
    "_ClientCreateChannelEncoderSettingsOutputGroupsOutputsOutputSettingsArchiveOutputSettingsContainerSettingsTypeDef",
    {
        "M2tsSettings": ClientCreateChannelEncoderSettingsOutputGroupsOutputsOutputSettingsArchiveOutputSettingsContainerSettingsM2tsSettingsTypeDef
    },
    total=False,
)


class ClientCreateChannelEncoderSettingsOutputGroupsOutputsOutputSettingsArchiveOutputSettingsContainerSettingsTypeDef(
    _ClientCreateChannelEncoderSettingsOutputGroupsOutputsOutputSettingsArchiveOutputSettingsContainerSettingsTypeDef
):
    """
    Type definition for
    `ClientCreateChannelEncoderSettingsOutputGroupsOutputsOutputSettingsArchiveOutputSettings`
    `ContainerSettings`

    - **M2tsSettings** *(dict) --* M2ts Settings

      - **AbsentInputAudioBehavior** *(string) --* When set to drop, output audio streams will be
      removed from the program if the selected input audio stream is removed from the input. This
      allows the output audio configuration to dynamically change based on input configuration. If
      this is set to encodeSilence, all output audio streams will output encoded silence when not
      connected to an active input stream.

      - **Arib** *(string) --* When set to enabled, uses ARIB-compliant field muxing and removes
      video descriptor.

      - **AribCaptionsPid** *(string) --* Packet Identifier (PID) for ARIB Captions in the transport
      stream. Can be entered as a decimal or hexadecimal value. Valid values are 32 (or 0x20)..8182
      (or 0x1ff6).

      - **AribCaptionsPidControl** *(string) --* If set to auto, pid number used for ARIB Captions
      will be auto-selected from unused pids. If set to useConfigured, ARIB Captions will be on the
      configured pid number.

      - **AudioBufferModel** *(string) --* When set to dvb, uses DVB buffer model for Dolby Digital
      audio. When set to atsc, the ATSC model is used.

      - **AudioFramesPerPes** *(integer) --* The number of audio frames to insert for each PES
      packet.

      - **AudioPids** *(string) --* Packet Identifier (PID) of the elementary audio stream(s) in the
      transport stream. Multiple values are accepted, and can be entered in ranges and/or by comma
      separation. Can be entered as decimal or hexadecimal values. Each PID specified must be in the
      range of 32 (or 0x20)..8182 (or 0x1ff6).

      - **AudioStreamType** *(string) --* When set to atsc, uses stream type = 0x81 for AC3 and
      stream type = 0x87 for EAC3. When set to dvb, uses stream type = 0x06.

      - **Bitrate** *(integer) --* The output bitrate of the transport stream in bits per second.
      Setting to 0 lets the muxer automatically determine the appropriate bitrate.

      - **BufferModel** *(string) --* If set to multiplex, use multiplex buffer model for accurate
      interleaving. Setting to bufferModel to none can lead to lower latency, but low-memory devices
      may not be able to play back the stream without interruptions.

      - **CcDescriptor** *(string) --* When set to enabled, generates captionServiceDescriptor in
      PMT.

      - **DvbNitSettings** *(dict) --* Inserts DVB Network Information Table (NIT) at the specified
      table repetition interval.

        - **NetworkId** *(integer) --* **[REQUIRED]** The numeric value placed in the Network
        Information Table (NIT).

        - **NetworkName** *(string) --* **[REQUIRED]** The network name text placed in the
        networkNameDescriptor inside the Network Information Table. Maximum length is 256
        characters.

        - **RepInterval** *(integer) --* The number of milliseconds between instances of this table
        in the output transport stream.

      - **DvbSdtSettings** *(dict) --* Inserts DVB Service Description Table (SDT) at the specified
      table repetition interval.

        - **OutputSdt** *(string) --* Selects method of inserting SDT information into output
        stream. The sdtFollow setting copies SDT information from input stream to output stream. The
        sdtFollowIfPresent setting copies SDT information from input stream to output stream if SDT
        information is present in the input, otherwise it will fall back on the user-defined values.
        The sdtManual setting means user will enter the SDT information. The sdtNone setting means
        output stream will not contain SDT information.

        - **RepInterval** *(integer) --* The number of milliseconds between instances of this table
        in the output transport stream.

        - **ServiceName** *(string) --* The service name placed in the serviceDescriptor in the
        Service Description Table. Maximum length is 256 characters.

        - **ServiceProviderName** *(string) --* The service provider name placed in the
        serviceDescriptor in the Service Description Table. Maximum length is 256 characters.

      - **DvbSubPids** *(string) --* Packet Identifier (PID) for input source DVB Subtitle data to
      this output. Multiple values are accepted, and can be entered in ranges and/or by comma
      separation. Can be entered as decimal or hexadecimal values. Each PID specified must be in the
      range of 32 (or 0x20)..8182 (or 0x1ff6).

      - **DvbTdtSettings** *(dict) --* Inserts DVB Time and Date Table (TDT) at the specified table
      repetition interval.

        - **RepInterval** *(integer) --* The number of milliseconds between instances of this table
        in the output transport stream.

      - **DvbTeletextPid** *(string) --* Packet Identifier (PID) for input source DVB Teletext data
      to this output. Can be entered as a decimal or hexadecimal value. Valid values are 32 (or
      0x20)..8182 (or 0x1ff6).

      - **Ebif** *(string) --* If set to passthrough, passes any EBIF data from the input source to
      this output.

      - **EbpAudioInterval** *(string) --* When videoAndFixedIntervals is selected, audio EBP
      markers will be added to partitions 3 and 4. The interval between these additional markers
      will be fixed, and will be slightly shorter than the video EBP marker interval. Only available
      when EBP Cablelabs segmentation markers are selected. Partitions 1 and 2 will always follow
      the video interval.

      - **EbpLookaheadMs** *(integer) --* When set, enforces that Encoder Boundary Points do not
      come within the specified time interval of each other by looking ahead at input video. If
      another EBP is going to come in within the specified time interval, the current EBP is not
      emitted, and the segment is "stretched" to the next marker. The lookahead value does not add
      latency to the system. The Live Event must be configured elsewhere to create sufficient
      latency to make the lookahead accurate.

      - **EbpPlacement** *(string) --* Controls placement of EBP on Audio PIDs. If set to
      videoAndAudioPids, EBP markers will be placed on the video PID and all audio PIDs. If set to
      videoPid, EBP markers will be placed on only the video PID.

      - **EcmPid** *(string) --* This field is unused and deprecated.

      - **EsRateInPes** *(string) --* Include or exclude the ES Rate field in the PES header.

      - **EtvPlatformPid** *(string) --* Packet Identifier (PID) for input source ETV Platform data
      to this output. Can be entered as a decimal or hexadecimal value. Valid values are 32 (or
      0x20)..8182 (or 0x1ff6).

      - **EtvSignalPid** *(string) --* Packet Identifier (PID) for input source ETV Signal data to
      this output. Can be entered as a decimal or hexadecimal value. Valid values are 32 (or
      0x20)..8182 (or 0x1ff6).

      - **FragmentTime** *(float) --* The length in seconds of each fragment. Only used with EBP
      markers.

      - **Klv** *(string) --* If set to passthrough, passes any KLV data from the input source to
      this output.

      - **KlvDataPids** *(string) --* Packet Identifier (PID) for input source KLV data to this
      output. Multiple values are accepted, and can be entered in ranges and/or by comma separation.
      Can be entered as decimal or hexadecimal values. Each PID specified must be in the range of 32
      (or 0x20)..8182 (or 0x1ff6).

      - **NielsenId3Behavior** *(string) --* If set to passthrough, Nielsen inaudible tones for
      media tracking will be detected in the input audio and an equivalent ID3 tag will be inserted
      in the output.

      - **NullPacketBitrate** *(float) --* Value in bits per second of extra null packets to insert
      into the transport stream. This can be used if a downstream encryption system requires
      periodic null packets.

      - **PatInterval** *(integer) --* The number of milliseconds between instances of this table in
      the output transport stream. Valid values are 0, 10..1000.

      - **PcrControl** *(string) --* When set to pcrEveryPesPacket, a Program Clock Reference value
      is inserted for every Packetized Elementary Stream (PES) header. This parameter is effective
      only when the PCR PID is the same as the video or audio elementary stream.

      - **PcrPeriod** *(integer) --* Maximum time in milliseconds between Program Clock Reference
      (PCRs) inserted into the transport stream.

      - **PcrPid** *(string) --* Packet Identifier (PID) of the Program Clock Reference (PCR) in the
      transport stream. When no value is given, the encoder will assign the same value as the Video
      PID. Can be entered as a decimal or hexadecimal value. Valid values are 32 (or 0x20)..8182 (or
      0x1ff6).

      - **PmtInterval** *(integer) --* The number of milliseconds between instances of this table in
      the output transport stream. Valid values are 0, 10..1000.

      - **PmtPid** *(string) --* Packet Identifier (PID) for the Program Map Table (PMT) in the
      transport stream. Can be entered as a decimal or hexadecimal value. Valid values are 32 (or
      0x20)..8182 (or 0x1ff6).

      - **ProgramNum** *(integer) --* The value of the program number field in the Program Map
      Table.

      - **RateMode** *(string) --* When vbr, does not insert null packets into transport stream to
      fill specified bitrate. The bitrate setting acts as the maximum bitrate when vbr is set.

      - **Scte27Pids** *(string) --* Packet Identifier (PID) for input source SCTE-27 data to this
      output. Multiple values are accepted, and can be entered in ranges and/or by comma separation.
      Can be entered as decimal or hexadecimal values. Each PID specified must be in the range of 32
      (or 0x20)..8182 (or 0x1ff6).

      - **Scte35Control** *(string) --* Optionally pass SCTE-35 signals from the input source to
      this output.

      - **Scte35Pid** *(string) --* Packet Identifier (PID) of the SCTE-35 stream in the transport
      stream. Can be entered as a decimal or hexadecimal value. Valid values are 32 (or 0x20)..8182
      (or 0x1ff6).

      - **SegmentationMarkers** *(string) --* Inserts segmentation markers at each segmentationTime
      period. raiSegstart sets the Random Access Indicator bit in the adaptation field. raiAdapt
      sets the RAI bit and adds the current timecode in the private data bytes. psiSegstart inserts
      PAT and PMT tables at the start of segments. ebp adds Encoder Boundary Point information to
      the adaptation field as per OpenCable specification OC-SP-EBP-I01-130118. ebpLegacy adds
      Encoder Boundary Point information to the adaptation field using a legacy proprietary format.

      - **SegmentationStyle** *(string) --* The segmentation style parameter controls how
      segmentation markers are inserted into the transport stream. With avails, it is possible that
      segments may be truncated, which can influence where future segmentation markers are inserted.
      When a segmentation style of "resetCadence" is selected and a segment is truncated due to an
      avail, we will reset the segmentation cadence. This means the subsequent segment will have a
      duration of $segmentationTime seconds. When a segmentation style of "maintainCadence" is
      selected and a segment is truncated due to an avail, we will not reset the segmentation
      cadence. This means the subsequent segment will likely be truncated as well. However, all
      segments after that will have a duration of $segmentationTime seconds. Note that EBP lookahead
      is a slight exception to this rule.

      - **SegmentationTime** *(float) --* The length in seconds of each segment. Required unless
      markers is set to None_.

      - **TimedMetadataBehavior** *(string) --* When set to passthrough, timed metadata will be
      passed through from input to output.

      - **TimedMetadataPid** *(string) --* Packet Identifier (PID) of the timed metadata stream in
      the transport stream. Can be entered as a decimal or hexadecimal value. Valid values are 32
      (or 0x20)..8182 (or 0x1ff6).

      - **TransportStreamId** *(integer) --* The value of the transport stream ID field in the
      Program Map Table.

      - **VideoPid** *(string) --* Packet Identifier (PID) of the elementary video stream in the
      transport stream. Can be entered as a decimal or hexadecimal value. Valid values are 32 (or
      0x20)..8182 (or 0x1ff6).
    """


_RequiredClientCreateChannelEncoderSettingsOutputGroupsOutputsOutputSettingsArchiveOutputSettingsTypeDef = TypedDict(
    "_RequiredClientCreateChannelEncoderSettingsOutputGroupsOutputsOutputSettingsArchiveOutputSettingsTypeDef",
    {
        "ContainerSettings": ClientCreateChannelEncoderSettingsOutputGroupsOutputsOutputSettingsArchiveOutputSettingsContainerSettingsTypeDef
    },
)
_OptionalClientCreateChannelEncoderSettingsOutputGroupsOutputsOutputSettingsArchiveOutputSettingsTypeDef = TypedDict(
    "_OptionalClientCreateChannelEncoderSettingsOutputGroupsOutputsOutputSettingsArchiveOutputSettingsTypeDef",
    {"Extension": str, "NameModifier": str},
    total=False,
)


class ClientCreateChannelEncoderSettingsOutputGroupsOutputsOutputSettingsArchiveOutputSettingsTypeDef(
    _RequiredClientCreateChannelEncoderSettingsOutputGroupsOutputsOutputSettingsArchiveOutputSettingsTypeDef,
    _OptionalClientCreateChannelEncoderSettingsOutputGroupsOutputsOutputSettingsArchiveOutputSettingsTypeDef,
):
    """
    Type definition for `ClientCreateChannelEncoderSettingsOutputGroupsOutputsOutputSettings`
    `ArchiveOutputSettings`

    - **ContainerSettings** *(dict) --* **[REQUIRED]** Settings specific to the container type of
    the file.

      - **M2tsSettings** *(dict) --* M2ts Settings

        - **AbsentInputAudioBehavior** *(string) --* When set to drop, output audio streams will be
        removed from the program if the selected input audio stream is removed from the input. This
        allows the output audio configuration to dynamically change based on input configuration. If
        this is set to encodeSilence, all output audio streams will output encoded silence when not
        connected to an active input stream.

        - **Arib** *(string) --* When set to enabled, uses ARIB-compliant field muxing and removes
        video descriptor.

        - **AribCaptionsPid** *(string) --* Packet Identifier (PID) for ARIB Captions in the
        transport stream. Can be entered as a decimal or hexadecimal value. Valid values are 32 (or
        0x20)..8182 (or 0x1ff6).

        - **AribCaptionsPidControl** *(string) --* If set to auto, pid number used for ARIB Captions
        will be auto-selected from unused pids. If set to useConfigured, ARIB Captions will be on
        the configured pid number.

        - **AudioBufferModel** *(string) --* When set to dvb, uses DVB buffer model for Dolby
        Digital audio. When set to atsc, the ATSC model is used.

        - **AudioFramesPerPes** *(integer) --* The number of audio frames to insert for each PES
        packet.

        - **AudioPids** *(string) --* Packet Identifier (PID) of the elementary audio stream(s) in
        the transport stream. Multiple values are accepted, and can be entered in ranges and/or by
        comma separation. Can be entered as decimal or hexadecimal values. Each PID specified must
        be in the range of 32 (or 0x20)..8182 (or 0x1ff6).

        - **AudioStreamType** *(string) --* When set to atsc, uses stream type =
             0x81 for AC3 and
        stream type = 0x87 for EAC3. When set to dvb, uses stream type = 0x06.

        - **Bitrate** *(integer) --* The output bitrate of the transport stream in bits per second.
        Setting to 0 lets the muxer automatically determine the appropriate bitrate.

        - **BufferModel** *(string) --* If set to multiplex, use multiplex buffer model for accurate
        interleaving. Setting to bufferModel to none can lead to lower latency, but low-memory
        devices may not be able to play back the stream without interruptions.

        - **CcDescriptor** *(string) --* When set to enabled, generates captionServiceDescriptor in
        PMT.

        - **DvbNitSettings** *(dict) --* Inserts DVB Network Information Table (NIT) at the
        specified table repetition interval.

          - **NetworkId** *(integer) --* **[REQUIRED]** The numeric value placed in the Network
          Information Table (NIT).

          - **NetworkName** *(string) --* **[REQUIRED]** The network name text placed in the
          networkNameDescriptor inside the Network Information Table. Maximum length is 256
          characters.

          - **RepInterval** *(integer) --* The number of milliseconds between instances of this
          table in the output transport stream.

        - **DvbSdtSettings** *(dict) --* Inserts DVB Service Description Table (SDT) at the
        specified table repetition interval.

          - **OutputSdt** *(string) --* Selects method of inserting SDT information into output
          stream. The sdtFollow setting copies SDT information from input stream to output stream.
          The sdtFollowIfPresent setting copies SDT information from input stream to output stream
          if SDT information is present in the input, otherwise it will fall back on the
          user-defined values. The sdtManual setting means user will enter the SDT information. The
          sdtNone setting means output stream will not contain SDT information.

          - **RepInterval** *(integer) --* The number of milliseconds between instances of this
          table in the output transport stream.

          - **ServiceName** *(string) --* The service name placed in the serviceDescriptor in the
          Service Description Table. Maximum length is 256 characters.

          - **ServiceProviderName** *(string) --* The service provider name placed in the
          serviceDescriptor in the Service Description Table. Maximum length is 256 characters.

        - **DvbSubPids** *(string) --* Packet Identifier (PID) for input source DVB Subtitle data to
        this output. Multiple values are accepted, and can be entered in ranges and/or by comma
        separation. Can be entered as decimal or hexadecimal values. Each PID specified must be in
        the range of 32 (or 0x20)..8182 (or 0x1ff6).

        - **DvbTdtSettings** *(dict) --* Inserts DVB Time and Date Table (TDT) at the specified
        table repetition interval.

          - **RepInterval** *(integer) --* The number of milliseconds between instances of this
          table in the output transport stream.

        - **DvbTeletextPid** *(string) --* Packet Identifier (PID) for input source DVB Teletext
        data to this output. Can be entered as a decimal or hexadecimal value. Valid values are 32
        (or 0x20)..8182 (or 0x1ff6).

        - **Ebif** *(string) --* If set to passthrough, passes any EBIF data from the input source
        to this output.

        - **EbpAudioInterval** *(string) --* When videoAndFixedIntervals is selected, audio EBP
        markers will be added to partitions 3 and 4. The interval between these additional markers
        will be fixed, and will be slightly shorter than the video EBP marker interval. Only
        available when EBP Cablelabs segmentation markers are selected. Partitions 1 and 2 will
        always follow the video interval.

        - **EbpLookaheadMs** *(integer) --* When set, enforces that Encoder Boundary Points do not
        come within the specified time interval of each other by looking ahead at input video. If
        another EBP is going to come in within the specified time interval, the current EBP is not
        emitted, and the segment is "stretched" to the next marker. The lookahead value does not add
        latency to the system. The Live Event must be configured elsewhere to create sufficient
        latency to make the lookahead accurate.

        - **EbpPlacement** *(string) --* Controls placement of EBP on Audio PIDs. If set to
        videoAndAudioPids, EBP markers will be placed on the video PID and all audio PIDs. If set to
        videoPid, EBP markers will be placed on only the video PID.

        - **EcmPid** *(string) --* This field is unused and deprecated.

        - **EsRateInPes** *(string) --* Include or exclude the ES Rate field in the PES header.

        - **EtvPlatformPid** *(string) --* Packet Identifier (PID) for input source ETV Platform
        data to this output. Can be entered as a decimal or hexadecimal value. Valid values are 32
        (or 0x20)..8182 (or 0x1ff6).

        - **EtvSignalPid** *(string) --* Packet Identifier (PID) for input source ETV Signal data to
        this output. Can be entered as a decimal or hexadecimal value. Valid values are 32 (or
        0x20)..8182 (or 0x1ff6).

        - **FragmentTime** *(float) --* The length in seconds of each fragment. Only used with EBP
        markers.

        - **Klv** *(string) --* If set to passthrough, passes any KLV data from the input source to
        this output.

        - **KlvDataPids** *(string) --* Packet Identifier (PID) for input source KLV data to this
        output. Multiple values are accepted, and can be entered in ranges and/or by comma
        separation. Can be entered as decimal or hexadecimal values. Each PID specified must be in
        the range of 32 (or 0x20)..8182 (or 0x1ff6).

        - **NielsenId3Behavior** *(string) --* If set to passthrough, Nielsen inaudible tones for
        media tracking will be detected in the input audio and an equivalent ID3 tag will be
        inserted in the output.

        - **NullPacketBitrate** *(float) --* Value in bits per second of extra null packets to
        insert into the transport stream. This can be used if a downstream encryption system
        requires periodic null packets.

        - **PatInterval** *(integer) --* The number of milliseconds between instances of this table
        in the output transport stream. Valid values are 0, 10..1000.

        - **PcrControl** *(string) --* When set to pcrEveryPesPacket, a Program Clock Reference
        value is inserted for every Packetized Elementary Stream (PES) header. This parameter is
        effective only when the PCR PID is the same as the video or audio elementary stream.

        - **PcrPeriod** *(integer) --* Maximum time in milliseconds between Program Clock Reference
        (PCRs) inserted into the transport stream.

        - **PcrPid** *(string) --* Packet Identifier (PID) of the Program Clock Reference (PCR) in
        the transport stream. When no value is given, the encoder will assign the same value as the
        Video PID. Can be entered as a decimal or hexadecimal value. Valid values are 32 (or
        0x20)..8182 (or 0x1ff6).

        - **PmtInterval** *(integer) --* The number of milliseconds between instances of this table
        in the output transport stream. Valid values are 0, 10..1000.

        - **PmtPid** *(string) --* Packet Identifier (PID) for the Program Map Table (PMT) in the
        transport stream. Can be entered as a decimal or hexadecimal value. Valid values are 32 (or
        0x20)..8182 (or 0x1ff6).

        - **ProgramNum** *(integer) --* The value of the program number field in the Program Map
        Table.

        - **RateMode** *(string) --* When vbr, does not insert null packets into transport stream to
        fill specified bitrate. The bitrate setting acts as the maximum bitrate when vbr is set.

        - **Scte27Pids** *(string) --* Packet Identifier (PID) for input source SCTE-27 data to this
        output. Multiple values are accepted, and can be entered in ranges and/or by comma
        separation. Can be entered as decimal or hexadecimal values. Each PID specified must be in
        the range of 32 (or 0x20)..8182 (or 0x1ff6).

        - **Scte35Control** *(string) --* Optionally pass SCTE-35 signals from the input source to
        this output.

        - **Scte35Pid** *(string) --* Packet Identifier (PID) of the SCTE-35 stream in the transport
        stream. Can be entered as a decimal or hexadecimal value. Valid values are 32 (or
        0x20)..8182 (or 0x1ff6).

        - **SegmentationMarkers** *(string) --* Inserts segmentation markers at each
        segmentationTime period. raiSegstart sets the Random Access Indicator bit in the adaptation
        field. raiAdapt sets the RAI bit and adds the current timecode in the private data bytes.
        psiSegstart inserts PAT and PMT tables at the start of segments. ebp adds Encoder Boundary
        Point information to the adaptation field as per OpenCable specification
        OC-SP-EBP-I01-130118. ebpLegacy adds Encoder Boundary Point information to the adaptation
        field using a legacy proprietary format.

        - **SegmentationStyle** *(string) --* The segmentation style parameter controls how
        segmentation markers are inserted into the transport stream. With avails, it is possible
        that segments may be truncated, which can influence where future segmentation markers are
        inserted. When a segmentation style of "resetCadence" is selected and a segment is truncated
        due to an avail, we will reset the segmentation cadence. This means the subsequent segment
        will have a duration of $segmentationTime seconds. When a segmentation style of
        "maintainCadence" is selected and a segment is truncated due to an avail, we will not reset
        the segmentation cadence. This means the subsequent segment will likely be truncated as
        well. However, all segments after that will have a duration of $segmentationTime seconds.
        Note that EBP lookahead is a slight exception to this rule.

        - **SegmentationTime** *(float) --* The length in seconds of each segment. Required unless
        markers is set to None_.

        - **TimedMetadataBehavior** *(string) --* When set to passthrough, timed metadata will be
        passed through from input to output.

        - **TimedMetadataPid** *(string) --* Packet Identifier (PID) of the timed metadata stream in
        the transport stream. Can be entered as a decimal or hexadecimal value. Valid values are 32
        (or 0x20)..8182 (or 0x1ff6).

        - **TransportStreamId** *(integer) --* The value of the transport stream ID field in the
        Program Map Table.

        - **VideoPid** *(string) --* Packet Identifier (PID) of the elementary video stream in the
        transport stream. Can be entered as a decimal or hexadecimal value. Valid values are 32 (or
        0x20)..8182 (or 0x1ff6).

    - **Extension** *(string) --* Output file extension. If excluded, this will be auto-selected
    from the container type.

    - **NameModifier** *(string) --* String concatenated to the end of the destination filename.
    Required for multiple outputs of the same type.
    """


_ClientCreateChannelEncoderSettingsOutputGroupsOutputsOutputSettingsFrameCaptureOutputSettingsTypeDef = TypedDict(
    "_ClientCreateChannelEncoderSettingsOutputGroupsOutputsOutputSettingsFrameCaptureOutputSettingsTypeDef",
    {"NameModifier": str},
    total=False,
)


class ClientCreateChannelEncoderSettingsOutputGroupsOutputsOutputSettingsFrameCaptureOutputSettingsTypeDef(
    _ClientCreateChannelEncoderSettingsOutputGroupsOutputsOutputSettingsFrameCaptureOutputSettingsTypeDef
):
    """
    Type definition for `ClientCreateChannelEncoderSettingsOutputGroupsOutputsOutputSettings`
    `FrameCaptureOutputSettings`

    - **NameModifier** *(string) --* Required if the output group contains more than one output.
    This modifier forms part of the output file name.
    """


_RequiredClientCreateChannelEncoderSettingsOutputGroupsOutputsOutputSettingsHlsOutputSettingsHlsSettingsAudioOnlyHlsSettingsAudioOnlyImageTypeDef = TypedDict(
    "_RequiredClientCreateChannelEncoderSettingsOutputGroupsOutputsOutputSettingsHlsOutputSettingsHlsSettingsAudioOnlyHlsSettingsAudioOnlyImageTypeDef",
    {"Uri": str},
)
_OptionalClientCreateChannelEncoderSettingsOutputGroupsOutputsOutputSettingsHlsOutputSettingsHlsSettingsAudioOnlyHlsSettingsAudioOnlyImageTypeDef = TypedDict(
    "_OptionalClientCreateChannelEncoderSettingsOutputGroupsOutputsOutputSettingsHlsOutputSettingsHlsSettingsAudioOnlyHlsSettingsAudioOnlyImageTypeDef",
    {"PasswordParam": str, "Username": str},
    total=False,
)


class ClientCreateChannelEncoderSettingsOutputGroupsOutputsOutputSettingsHlsOutputSettingsHlsSettingsAudioOnlyHlsSettingsAudioOnlyImageTypeDef(
    _RequiredClientCreateChannelEncoderSettingsOutputGroupsOutputsOutputSettingsHlsOutputSettingsHlsSettingsAudioOnlyHlsSettingsAudioOnlyImageTypeDef,
    _OptionalClientCreateChannelEncoderSettingsOutputGroupsOutputsOutputSettingsHlsOutputSettingsHlsSettingsAudioOnlyHlsSettingsAudioOnlyImageTypeDef,
):
    """
    Type definition for
    `ClientCreateChannelEncoderSettingsOutputGroupsOutputsOutputSettingsHlsOutputSettingsHlsSettingsAudioOnlyHlsSettings`
    `AudioOnlyImage`

    - **PasswordParam** *(string) --* key used to extract the password from EC2 Parameter store

    - **Uri** *(string) --* **[REQUIRED]** Uniform Resource Identifier - This should be a path to a
    file accessible to the Live system (eg. a http:// URI) depending on the output type. For
    example, a RTMP destination should have a uri simliar to: "rtmp://fmsserver/live".

    - **Username** *(string) --* Documentation update needed
    """


_ClientCreateChannelEncoderSettingsOutputGroupsOutputsOutputSettingsHlsOutputSettingsHlsSettingsAudioOnlyHlsSettingsTypeDef = TypedDict(
    "_ClientCreateChannelEncoderSettingsOutputGroupsOutputsOutputSettingsHlsOutputSettingsHlsSettingsAudioOnlyHlsSettingsTypeDef",
    {
        "AudioGroupId": str,
        "AudioOnlyImage": ClientCreateChannelEncoderSettingsOutputGroupsOutputsOutputSettingsHlsOutputSettingsHlsSettingsAudioOnlyHlsSettingsAudioOnlyImageTypeDef,
        "AudioTrackType": str,
    },
    total=False,
)


class ClientCreateChannelEncoderSettingsOutputGroupsOutputsOutputSettingsHlsOutputSettingsHlsSettingsAudioOnlyHlsSettingsTypeDef(
    _ClientCreateChannelEncoderSettingsOutputGroupsOutputsOutputSettingsHlsOutputSettingsHlsSettingsAudioOnlyHlsSettingsTypeDef
):
    """
    Type definition for
    `ClientCreateChannelEncoderSettingsOutputGroupsOutputsOutputSettingsHlsOutputSettingsHlsSettings`
    `AudioOnlyHlsSettings`

    - **AudioGroupId** *(string) --* Specifies the group to which the audio Rendition belongs.

    - **AudioOnlyImage** *(dict) --* Optional. Specifies the .jpg or .png image to use as the cover
    art for an audio-only output. We recommend a low bit-size file because the image increases the
    output audio bandwidth. The image is attached to the audio as an ID3 tag, frame type APIC,
    picture type 0x10, as per the "ID3 tag version 2.4.0 - Native Frames" standard.

      - **PasswordParam** *(string) --* key used to extract the password from EC2 Parameter store

      - **Uri** *(string) --* **[REQUIRED]** Uniform Resource Identifier - This should be a path to
      a file accessible to the Live system (eg. a http:// URI) depending on the output type. For
      example, a RTMP destination should have a uri simliar to: "rtmp://fmsserver/live".

      - **Username** *(string) --* Documentation update needed

    - **AudioTrackType** *(string) --* Four types of audio-only tracks are supported: Audio-Only
    Variant Stream The client can play back this audio-only stream instead of video in low-bandwidth
    scenarios. Represented as an EXT-X-STREAM-INF in the HLS manifest. Alternate Audio, Auto Select,
    Default Alternate rendition that the client should try to play back by default. Represented as
    an EXT-X-MEDIA in the HLS manifest with DEFAULT=YES, AUTOSELECT=YES Alternate Audio, Auto
    Select, Not Default Alternate rendition that the client may try to play back by default.
    Represented as an EXT-X-MEDIA in the HLS manifest with DEFAULT=NO, AUTOSELECT=YES Alternate
    Audio, not Auto Select Alternate rendition that the client will not try to play back by default.
    Represented as an EXT-X-MEDIA in the HLS manifest with DEFAULT=NO, AUTOSELECT=NO
    """


_ClientCreateChannelEncoderSettingsOutputGroupsOutputsOutputSettingsHlsOutputSettingsHlsSettingsStandardHlsSettingsM3u8SettingsTypeDef = TypedDict(
    "_ClientCreateChannelEncoderSettingsOutputGroupsOutputsOutputSettingsHlsOutputSettingsHlsSettingsStandardHlsSettingsM3u8SettingsTypeDef",
    {
        "AudioFramesPerPes": int,
        "AudioPids": str,
        "EcmPid": str,
        "NielsenId3Behavior": str,
        "PatInterval": int,
        "PcrControl": str,
        "PcrPeriod": int,
        "PcrPid": str,
        "PmtInterval": int,
        "PmtPid": str,
        "ProgramNum": int,
        "Scte35Behavior": str,
        "Scte35Pid": str,
        "TimedMetadataBehavior": str,
        "TimedMetadataPid": str,
        "TransportStreamId": int,
        "VideoPid": str,
    },
    total=False,
)


class ClientCreateChannelEncoderSettingsOutputGroupsOutputsOutputSettingsHlsOutputSettingsHlsSettingsStandardHlsSettingsM3u8SettingsTypeDef(
    _ClientCreateChannelEncoderSettingsOutputGroupsOutputsOutputSettingsHlsOutputSettingsHlsSettingsStandardHlsSettingsM3u8SettingsTypeDef
):
    """
    Type definition for
    `ClientCreateChannelEncoderSettingsOutputGroupsOutputsOutputSettingsHlsOutputSettingsHlsSettingsStandardHlsSettings`
    `M3u8Settings`

    - **AudioFramesPerPes** *(integer) --* The number of audio frames to insert for each PES packet.

    - **AudioPids** *(string) --* Packet Identifier (PID) of the elementary audio stream(s) in the
    transport stream. Multiple values are accepted, and can be entered in ranges and/or by comma
    separation. Can be entered as decimal or hexadecimal values.

    - **EcmPid** *(string) --* This parameter is unused and deprecated.

    - **NielsenId3Behavior** *(string) --* If set to passthrough, Nielsen inaudible tones for media
    tracking will be detected in the input audio and an equivalent ID3 tag will be inserted in the
    output.

    - **PatInterval** *(integer) --* The number of milliseconds between instances of this table in
    the output transport stream. A value of \\"0\\" writes out the PMT once per segment file.

    - **PcrControl** *(string) --* When set to pcrEveryPesPacket, a Program Clock Reference value is
    inserted for every Packetized Elementary Stream (PES) header. This parameter is effective only
    when the PCR PID is the same as the video or audio elementary stream.

    - **PcrPeriod** *(integer) --* Maximum time in milliseconds between Program Clock References
    (PCRs) inserted into the transport stream.

    - **PcrPid** *(string) --* Packet Identifier (PID) of the Program Clock Reference (PCR) in the
    transport stream. When no value is given, the encoder will assign the same value as the Video
    PID. Can be entered as a decimal or hexadecimal value.

    - **PmtInterval** *(integer) --* The number of milliseconds between instances of this table in
    the output transport stream. A value of \\"0\\" writes out the PMT once per segment file.

    - **PmtPid** *(string) --* Packet Identifier (PID) for the Program Map Table (PMT) in the
    transport stream. Can be entered as a decimal or hexadecimal value.

    - **ProgramNum** *(integer) --* The value of the program number field in the Program Map Table.

    - **Scte35Behavior** *(string) --* If set to passthrough, passes any SCTE-35 signals from the
    input source to this output.

    - **Scte35Pid** *(string) --* Packet Identifier (PID) of the SCTE-35 stream in the transport
    stream. Can be entered as a decimal or hexadecimal value.

    - **TimedMetadataBehavior** *(string) --* When set to passthrough, timed metadata is passed
    through from input to output.

    - **TimedMetadataPid** *(string) --* Packet Identifier (PID) of the timed metadata stream in the
    transport stream. Can be entered as a decimal or hexadecimal value. Valid values are 32 (or
    0x20)..8182 (or 0x1ff6).

    - **TransportStreamId** *(integer) --* The value of the transport stream ID field in the Program
    Map Table.

    - **VideoPid** *(string) --* Packet Identifier (PID) of the elementary video stream in the
    transport stream. Can be entered as a decimal or hexadecimal value.
    """


_RequiredClientCreateChannelEncoderSettingsOutputGroupsOutputsOutputSettingsHlsOutputSettingsHlsSettingsStandardHlsSettingsTypeDef = TypedDict(
    "_RequiredClientCreateChannelEncoderSettingsOutputGroupsOutputsOutputSettingsHlsOutputSettingsHlsSettingsStandardHlsSettingsTypeDef",
    {
        "M3u8Settings": ClientCreateChannelEncoderSettingsOutputGroupsOutputsOutputSettingsHlsOutputSettingsHlsSettingsStandardHlsSettingsM3u8SettingsTypeDef
    },
)
_OptionalClientCreateChannelEncoderSettingsOutputGroupsOutputsOutputSettingsHlsOutputSettingsHlsSettingsStandardHlsSettingsTypeDef = TypedDict(
    "_OptionalClientCreateChannelEncoderSettingsOutputGroupsOutputsOutputSettingsHlsOutputSettingsHlsSettingsStandardHlsSettingsTypeDef",
    {"AudioRenditionSets": str},
    total=False,
)


class ClientCreateChannelEncoderSettingsOutputGroupsOutputsOutputSettingsHlsOutputSettingsHlsSettingsStandardHlsSettingsTypeDef(
    _RequiredClientCreateChannelEncoderSettingsOutputGroupsOutputsOutputSettingsHlsOutputSettingsHlsSettingsStandardHlsSettingsTypeDef,
    _OptionalClientCreateChannelEncoderSettingsOutputGroupsOutputsOutputSettingsHlsOutputSettingsHlsSettingsStandardHlsSettingsTypeDef,
):
    """
    Type definition for
    `ClientCreateChannelEncoderSettingsOutputGroupsOutputsOutputSettingsHlsOutputSettingsHlsSettings`
    `StandardHlsSettings`

    - **AudioRenditionSets** *(string) --* List all the audio groups that are used with the video
    output stream. Input all the audio GROUP-IDs that are associated to the video, separate by ','.

    - **M3u8Settings** *(dict) --* **[REQUIRED]** Settings information for the .m3u8 container

      - **AudioFramesPerPes** *(integer) --* The number of audio frames to insert for each PES
      packet.

      - **AudioPids** *(string) --* Packet Identifier (PID) of the elementary audio stream(s) in the
      transport stream. Multiple values are accepted, and can be entered in ranges and/or by comma
      separation. Can be entered as decimal or hexadecimal values.

      - **EcmPid** *(string) --* This parameter is unused and deprecated.

      - **NielsenId3Behavior** *(string) --* If set to passthrough, Nielsen inaudible tones for
      media tracking will be detected in the input audio and an equivalent ID3 tag will be inserted
      in the output.

      - **PatInterval** *(integer) --* The number of milliseconds between instances of this table in
      the output transport stream. A value of \\"0\\" writes out the PMT once per segment file.

      - **PcrControl** *(string) --* When set to pcrEveryPesPacket, a Program Clock Reference value
      is inserted for every Packetized Elementary Stream (PES) header. This parameter is effective
      only when the PCR PID is the same as the video or audio elementary stream.

      - **PcrPeriod** *(integer) --* Maximum time in milliseconds between Program Clock References
      (PCRs) inserted into the transport stream.

      - **PcrPid** *(string) --* Packet Identifier (PID) of the Program Clock Reference (PCR) in the
      transport stream. When no value is given, the encoder will assign the same value as the Video
      PID. Can be entered as a decimal or hexadecimal value.

      - **PmtInterval** *(integer) --* The number of milliseconds between instances of this table in
      the output transport stream. A value of \\"0\\" writes out the PMT once per segment file.

      - **PmtPid** *(string) --* Packet Identifier (PID) for the Program Map Table (PMT) in the
      transport stream. Can be entered as a decimal or hexadecimal value.

      - **ProgramNum** *(integer) --* The value of the program number field in the Program Map
      Table.

      - **Scte35Behavior** *(string) --* If set to passthrough, passes any SCTE-35 signals from the
      input source to this output.

      - **Scte35Pid** *(string) --* Packet Identifier (PID) of the SCTE-35 stream in the transport
      stream. Can be entered as a decimal or hexadecimal value.

      - **TimedMetadataBehavior** *(string) --* When set to passthrough, timed metadata is passed
      through from input to output.

      - **TimedMetadataPid** *(string) --* Packet Identifier (PID) of the timed metadata stream in
      the transport stream. Can be entered as a decimal or hexadecimal value. Valid values are 32
      (or 0x20)..8182 (or 0x1ff6).

      - **TransportStreamId** *(integer) --* The value of the transport stream ID field in the
      Program Map Table.

      - **VideoPid** *(string) --* Packet Identifier (PID) of the elementary video stream in the
      transport stream. Can be entered as a decimal or hexadecimal value.
    """


_ClientCreateChannelEncoderSettingsOutputGroupsOutputsOutputSettingsHlsOutputSettingsHlsSettingsTypeDef = TypedDict(
    "_ClientCreateChannelEncoderSettingsOutputGroupsOutputsOutputSettingsHlsOutputSettingsHlsSettingsTypeDef",
    {
        "AudioOnlyHlsSettings": ClientCreateChannelEncoderSettingsOutputGroupsOutputsOutputSettingsHlsOutputSettingsHlsSettingsAudioOnlyHlsSettingsTypeDef,
        "StandardHlsSettings": ClientCreateChannelEncoderSettingsOutputGroupsOutputsOutputSettingsHlsOutputSettingsHlsSettingsStandardHlsSettingsTypeDef,
    },
    total=False,
)


class ClientCreateChannelEncoderSettingsOutputGroupsOutputsOutputSettingsHlsOutputSettingsHlsSettingsTypeDef(
    _ClientCreateChannelEncoderSettingsOutputGroupsOutputsOutputSettingsHlsOutputSettingsHlsSettingsTypeDef
):
    """
    Type definition for
    `ClientCreateChannelEncoderSettingsOutputGroupsOutputsOutputSettingsHlsOutputSettings`
    `HlsSettings`

    - **AudioOnlyHlsSettings** *(dict) --* Audio Only Hls Settings

      - **AudioGroupId** *(string) --* Specifies the group to which the audio Rendition belongs.

      - **AudioOnlyImage** *(dict) --* Optional. Specifies the .jpg or .png image to use as the
      cover art for an audio-only output. We recommend a low bit-size file because the image
      increases the output audio bandwidth. The image is attached to the audio as an ID3 tag, frame
      type APIC, picture type 0x10, as per the "ID3 tag version 2.4.0 - Native Frames" standard.

        - **PasswordParam** *(string) --* key used to extract the password from EC2 Parameter store

        - **Uri** *(string) --* **[REQUIRED]** Uniform Resource Identifier - This should be a path
        to a file accessible to the Live system (eg. a http:// URI) depending on the output type.
        For example, a RTMP destination should have a uri simliar to: "rtmp://fmsserver/live".

        - **Username** *(string) --* Documentation update needed

      - **AudioTrackType** *(string) --* Four types of audio-only tracks are supported: Audio-Only
      Variant Stream The client can play back this audio-only stream instead of video in
      low-bandwidth scenarios. Represented as an EXT-X-STREAM-INF in the HLS manifest. Alternate
      Audio, Auto Select, Default Alternate rendition that the client should try to play back by
      default. Represented as an EXT-X-MEDIA in the HLS manifest with DEFAULT=YES, AUTOSELECT=YES
      Alternate Audio, Auto Select, Not Default Alternate rendition that the client may try to play
      back by default. Represented as an EXT-X-MEDIA in the HLS manifest with DEFAULT=NO,
      AUTOSELECT=YES Alternate Audio, not Auto Select Alternate rendition that the client will not
      try to play back by default. Represented as an EXT-X-MEDIA in the HLS manifest with
      DEFAULT=NO, AUTOSELECT=NO

    - **StandardHlsSettings** *(dict) --* Standard Hls Settings

      - **AudioRenditionSets** *(string) --* List all the audio groups that are used with the video
      output stream. Input all the audio GROUP-IDs that are associated to the video, separate by
      ','.

      - **M3u8Settings** *(dict) --* **[REQUIRED]** Settings information for the .m3u8 container

        - **AudioFramesPerPes** *(integer) --* The number of audio frames to insert for each PES
        packet.

        - **AudioPids** *(string) --* Packet Identifier (PID) of the elementary audio stream(s) in
        the transport stream. Multiple values are accepted, and can be entered in ranges and/or by
        comma separation. Can be entered as decimal or hexadecimal values.

        - **EcmPid** *(string) --* This parameter is unused and deprecated.

        - **NielsenId3Behavior** *(string) --* If set to passthrough, Nielsen inaudible tones for
        media tracking will be detected in the input audio and an equivalent ID3 tag will be
        inserted in the output.

        - **PatInterval** *(integer) --* The number of milliseconds between instances of this table
        in the output transport stream. A value of \\"0\\" writes out the PMT once per segment file.

        - **PcrControl** *(string) --* When set to pcrEveryPesPacket, a Program Clock Reference
        value is inserted for every Packetized Elementary Stream (PES) header. This parameter is
        effective only when the PCR PID is the same as the video or audio elementary stream.

        - **PcrPeriod** *(integer) --* Maximum time in milliseconds between Program Clock References
        (PCRs) inserted into the transport stream.

        - **PcrPid** *(string) --* Packet Identifier (PID) of the Program Clock Reference (PCR) in
        the transport stream. When no value is given, the encoder will assign the same value as the
        Video PID. Can be entered as a decimal or hexadecimal value.

        - **PmtInterval** *(integer) --* The number of milliseconds between instances of this table
        in the output transport stream. A value of \\"0\\" writes out the PMT once per segment file.

        - **PmtPid** *(string) --* Packet Identifier (PID) for the Program Map Table (PMT) in the
        transport stream. Can be entered as a decimal or hexadecimal value.

        - **ProgramNum** *(integer) --* The value of the program number field in the Program Map
        Table.

        - **Scte35Behavior** *(string) --* If set to passthrough, passes any SCTE-35 signals from
        the input source to this output.

        - **Scte35Pid** *(string) --* Packet Identifier (PID) of the SCTE-35 stream in the transport
        stream. Can be entered as a decimal or hexadecimal value.

        - **TimedMetadataBehavior** *(string) --* When set to passthrough, timed metadata is passed
        through from input to output.

        - **TimedMetadataPid** *(string) --* Packet Identifier (PID) of the timed metadata stream in
        the transport stream. Can be entered as a decimal or hexadecimal value. Valid values are 32
        (or 0x20)..8182 (or 0x1ff6).

        - **TransportStreamId** *(integer) --* The value of the transport stream ID field in the
        Program Map Table.

        - **VideoPid** *(string) --* Packet Identifier (PID) of the elementary video stream in the
        transport stream. Can be entered as a decimal or hexadecimal value.
    """


_RequiredClientCreateChannelEncoderSettingsOutputGroupsOutputsOutputSettingsHlsOutputSettingsTypeDef = TypedDict(
    "_RequiredClientCreateChannelEncoderSettingsOutputGroupsOutputsOutputSettingsHlsOutputSettingsTypeDef",
    {
        "HlsSettings": ClientCreateChannelEncoderSettingsOutputGroupsOutputsOutputSettingsHlsOutputSettingsHlsSettingsTypeDef
    },
)
_OptionalClientCreateChannelEncoderSettingsOutputGroupsOutputsOutputSettingsHlsOutputSettingsTypeDef = TypedDict(
    "_OptionalClientCreateChannelEncoderSettingsOutputGroupsOutputsOutputSettingsHlsOutputSettingsTypeDef",
    {"NameModifier": str, "SegmentModifier": str},
    total=False,
)


class ClientCreateChannelEncoderSettingsOutputGroupsOutputsOutputSettingsHlsOutputSettingsTypeDef(
    _RequiredClientCreateChannelEncoderSettingsOutputGroupsOutputsOutputSettingsHlsOutputSettingsTypeDef,
    _OptionalClientCreateChannelEncoderSettingsOutputGroupsOutputsOutputSettingsHlsOutputSettingsTypeDef,
):
    """
    Type definition for `ClientCreateChannelEncoderSettingsOutputGroupsOutputsOutputSettings`
    `HlsOutputSettings`

    - **HlsSettings** *(dict) --* **[REQUIRED]** Settings regarding the underlying stream. These
    settings are different for audio-only outputs.

      - **AudioOnlyHlsSettings** *(dict) --* Audio Only Hls Settings

        - **AudioGroupId** *(string) --* Specifies the group to which the audio Rendition belongs.

        - **AudioOnlyImage** *(dict) --* Optional. Specifies the .jpg or .png image to use as the
        cover art for an audio-only output. We recommend a low bit-size file because the image
        increases the output audio bandwidth. The image is attached to the audio as an ID3 tag,
        frame type APIC, picture type 0x10, as per the "ID3 tag version 2.4.0 - Native Frames"
        standard.

          - **PasswordParam** *(string) --* key used to extract the password from EC2 Parameter
          store

          - **Uri** *(string) --* **[REQUIRED]** Uniform Resource Identifier - This should be a path
          to a file accessible to the Live system (eg. a http:// URI) depending on the output type.
          For example, a RTMP destination should have a uri simliar to: "rtmp://fmsserver/live".

          - **Username** *(string) --* Documentation update needed

        - **AudioTrackType** *(string) --* Four types of audio-only tracks are supported: Audio-Only
        Variant Stream The client can play back this audio-only stream instead of video in
        low-bandwidth scenarios. Represented as an EXT-X-STREAM-INF in the HLS manifest. Alternate
        Audio, Auto Select, Default Alternate rendition that the client should try to play back by
        default. Represented as an EXT-X-MEDIA in the HLS manifest with DEFAULT=YES, AUTOSELECT=
            YES
        Alternate Audio, Auto Select, Not Default Alternate rendition that the client may try to
        play back by default. Represented as an EXT-X-MEDIA in the HLS manifest with DEFAULT=NO,
        AUTOSELECT=
            YES Alternate Audio, not Auto Select Alternate rendition that the client will not
        try to play back by default. Represented as an EXT-X-MEDIA in the HLS manifest with
        DEFAULT=NO, AUTOSELECT=NO

      - **StandardHlsSettings** *(dict) --* Standard Hls Settings

        - **AudioRenditionSets** *(string) --* List all the audio groups that are used with the
        video output stream. Input all the audio GROUP-IDs that are associated to the video,
        separate by ','.

        - **M3u8Settings** *(dict) --* **[REQUIRED]** Settings information for the .m3u8 container

          - **AudioFramesPerPes** *(integer) --* The number of audio frames to insert for each PES
          packet.

          - **AudioPids** *(string) --* Packet Identifier (PID) of the elementary audio stream(s) in
          the transport stream. Multiple values are accepted, and can be entered in ranges and/or by
          comma separation. Can be entered as decimal or hexadecimal values.

          - **EcmPid** *(string) --* This parameter is unused and deprecated.

          - **NielsenId3Behavior** *(string) --* If set to passthrough, Nielsen inaudible tones for
          media tracking will be detected in the input audio and an equivalent ID3 tag will be
          inserted in the output.

          - **PatInterval** *(integer) --* The number of milliseconds between instances of this
          table in the output transport stream. A value of \\"0\\" writes out the PMT once per
          segment file.

          - **PcrControl** *(string) --* When set to pcrEveryPesPacket, a Program Clock Reference
          value is inserted for every Packetized Elementary Stream (PES) header. This parameter is
          effective only when the PCR PID is the same as the video or audio elementary stream.

          - **PcrPeriod** *(integer) --* Maximum time in milliseconds between Program Clock
          References (PCRs) inserted into the transport stream.

          - **PcrPid** *(string) --* Packet Identifier (PID) of the Program Clock Reference (PCR) in
          the transport stream. When no value is given, the encoder will assign the same value as
          the Video PID. Can be entered as a decimal or hexadecimal value.

          - **PmtInterval** *(integer) --* The number of milliseconds between instances of this
          table in the output transport stream. A value of \\"0\\" writes out the PMT once per
          segment file.

          - **PmtPid** *(string) --* Packet Identifier (PID) for the Program Map Table (PMT) in the
          transport stream. Can be entered as a decimal or hexadecimal value.

          - **ProgramNum** *(integer) --* The value of the program number field in the Program Map
          Table.

          - **Scte35Behavior** *(string) --* If set to passthrough, passes any SCTE-35 signals from
          the input source to this output.

          - **Scte35Pid** *(string) --* Packet Identifier (PID) of the SCTE-35 stream in the
          transport stream. Can be entered as a decimal or hexadecimal value.

          - **TimedMetadataBehavior** *(string) --* When set to passthrough, timed metadata is
          passed through from input to output.

          - **TimedMetadataPid** *(string) --* Packet Identifier (PID) of the timed metadata stream
          in the transport stream. Can be entered as a decimal or hexadecimal value. Valid values
          are 32 (or 0x20)..8182 (or 0x1ff6).

          - **TransportStreamId** *(integer) --* The value of the transport stream ID field in the
          Program Map Table.

          - **VideoPid** *(string) --* Packet Identifier (PID) of the elementary video stream in the
          transport stream. Can be entered as a decimal or hexadecimal value.

    - **NameModifier** *(string) --* String concatenated to the end of the destination filename.
    Accepts \\"Format Identifiers\\":#formatIdentifierParameters.

    - **SegmentModifier** *(string) --* String concatenated to end of segment filenames.
    """


_ClientCreateChannelEncoderSettingsOutputGroupsOutputsOutputSettingsMsSmoothOutputSettingsTypeDef = TypedDict(
    "_ClientCreateChannelEncoderSettingsOutputGroupsOutputsOutputSettingsMsSmoothOutputSettingsTypeDef",
    {"H265PackagingType": str, "NameModifier": str},
    total=False,
)


class ClientCreateChannelEncoderSettingsOutputGroupsOutputsOutputSettingsMsSmoothOutputSettingsTypeDef(
    _ClientCreateChannelEncoderSettingsOutputGroupsOutputsOutputSettingsMsSmoothOutputSettingsTypeDef
):
    """
    Type definition for `ClientCreateChannelEncoderSettingsOutputGroupsOutputsOutputSettings`
    `MsSmoothOutputSettings`

    - **H265PackagingType** *(string) --* Only applicable when this output is referencing an H.265
    video description. Specifies whether MP4 segments should be packaged as HEV1 or HVC1.

    - **NameModifier** *(string) --* String concatenated to the end of the destination filename.
    Required for multiple outputs of the same type.
    """


_ClientCreateChannelEncoderSettingsOutputGroupsOutputsOutputSettingsMultiplexOutputSettingsDestinationTypeDef = TypedDict(
    "_ClientCreateChannelEncoderSettingsOutputGroupsOutputsOutputSettingsMultiplexOutputSettingsDestinationTypeDef",
    {"DestinationRefId": str},
    total=False,
)


class ClientCreateChannelEncoderSettingsOutputGroupsOutputsOutputSettingsMultiplexOutputSettingsDestinationTypeDef(
    _ClientCreateChannelEncoderSettingsOutputGroupsOutputsOutputSettingsMultiplexOutputSettingsDestinationTypeDef
):
    """
    Type definition for
    `ClientCreateChannelEncoderSettingsOutputGroupsOutputsOutputSettingsMultiplexOutputSettings`
    `Destination`

    - **DestinationRefId** *(string) --* Placeholder documentation for __string
    """


_ClientCreateChannelEncoderSettingsOutputGroupsOutputsOutputSettingsMultiplexOutputSettingsTypeDef = TypedDict(
    "_ClientCreateChannelEncoderSettingsOutputGroupsOutputsOutputSettingsMultiplexOutputSettingsTypeDef",
    {
        "Destination": ClientCreateChannelEncoderSettingsOutputGroupsOutputsOutputSettingsMultiplexOutputSettingsDestinationTypeDef
    },
)


class ClientCreateChannelEncoderSettingsOutputGroupsOutputsOutputSettingsMultiplexOutputSettingsTypeDef(
    _ClientCreateChannelEncoderSettingsOutputGroupsOutputsOutputSettingsMultiplexOutputSettingsTypeDef
):
    """
    Type definition for `ClientCreateChannelEncoderSettingsOutputGroupsOutputsOutputSettings`
    `MultiplexOutputSettings`

    - **Destination** *(dict) --* **[REQUIRED]** Destination is a Multiplex.

      - **DestinationRefId** *(string) --* Placeholder documentation for __string
    """


_ClientCreateChannelEncoderSettingsOutputGroupsOutputsOutputSettingsRtmpOutputSettingsDestinationTypeDef = TypedDict(
    "_ClientCreateChannelEncoderSettingsOutputGroupsOutputsOutputSettingsRtmpOutputSettingsDestinationTypeDef",
    {"DestinationRefId": str},
    total=False,
)


class ClientCreateChannelEncoderSettingsOutputGroupsOutputsOutputSettingsRtmpOutputSettingsDestinationTypeDef(
    _ClientCreateChannelEncoderSettingsOutputGroupsOutputsOutputSettingsRtmpOutputSettingsDestinationTypeDef
):
    """
    Type definition for
    `ClientCreateChannelEncoderSettingsOutputGroupsOutputsOutputSettingsRtmpOutputSettings`
    `Destination`

    - **DestinationRefId** *(string) --* Placeholder documentation for __string
    """


_RequiredClientCreateChannelEncoderSettingsOutputGroupsOutputsOutputSettingsRtmpOutputSettingsTypeDef = TypedDict(
    "_RequiredClientCreateChannelEncoderSettingsOutputGroupsOutputsOutputSettingsRtmpOutputSettingsTypeDef",
    {
        "Destination": ClientCreateChannelEncoderSettingsOutputGroupsOutputsOutputSettingsRtmpOutputSettingsDestinationTypeDef
    },
)
_OptionalClientCreateChannelEncoderSettingsOutputGroupsOutputsOutputSettingsRtmpOutputSettingsTypeDef = TypedDict(
    "_OptionalClientCreateChannelEncoderSettingsOutputGroupsOutputsOutputSettingsRtmpOutputSettingsTypeDef",
    {"CertificateMode": str, "ConnectionRetryInterval": int, "NumRetries": int},
    total=False,
)


class ClientCreateChannelEncoderSettingsOutputGroupsOutputsOutputSettingsRtmpOutputSettingsTypeDef(
    _RequiredClientCreateChannelEncoderSettingsOutputGroupsOutputsOutputSettingsRtmpOutputSettingsTypeDef,
    _OptionalClientCreateChannelEncoderSettingsOutputGroupsOutputsOutputSettingsRtmpOutputSettingsTypeDef,
):
    """
    Type definition for `ClientCreateChannelEncoderSettingsOutputGroupsOutputsOutputSettings`
    `RtmpOutputSettings`

    - **CertificateMode** *(string) --* If set to verifyAuthenticity, verify the tls certificate
    chain to a trusted Certificate Authority (CA). This will cause rtmps outputs with self-signed
    certificates to fail.

    - **ConnectionRetryInterval** *(integer) --* Number of seconds to wait before retrying a
    connection to the Flash Media server if the connection is lost.

    - **Destination** *(dict) --* **[REQUIRED]** The RTMP endpoint excluding the stream name (eg.
    rtmp://host/appname). For connection to Akamai, a username and password must be supplied. URI
    fields accept format identifiers.

      - **DestinationRefId** *(string) --* Placeholder documentation for __string

    - **NumRetries** *(integer) --* Number of retry attempts.
    """


_RequiredClientCreateChannelEncoderSettingsOutputGroupsOutputsOutputSettingsUdpOutputSettingsContainerSettingsM2tsSettingsDvbNitSettingsTypeDef = TypedDict(
    "_RequiredClientCreateChannelEncoderSettingsOutputGroupsOutputsOutputSettingsUdpOutputSettingsContainerSettingsM2tsSettingsDvbNitSettingsTypeDef",
    {"NetworkId": int, "NetworkName": str},
)
_OptionalClientCreateChannelEncoderSettingsOutputGroupsOutputsOutputSettingsUdpOutputSettingsContainerSettingsM2tsSettingsDvbNitSettingsTypeDef = TypedDict(
    "_OptionalClientCreateChannelEncoderSettingsOutputGroupsOutputsOutputSettingsUdpOutputSettingsContainerSettingsM2tsSettingsDvbNitSettingsTypeDef",
    {"RepInterval": int},
    total=False,
)


class ClientCreateChannelEncoderSettingsOutputGroupsOutputsOutputSettingsUdpOutputSettingsContainerSettingsM2tsSettingsDvbNitSettingsTypeDef(
    _RequiredClientCreateChannelEncoderSettingsOutputGroupsOutputsOutputSettingsUdpOutputSettingsContainerSettingsM2tsSettingsDvbNitSettingsTypeDef,
    _OptionalClientCreateChannelEncoderSettingsOutputGroupsOutputsOutputSettingsUdpOutputSettingsContainerSettingsM2tsSettingsDvbNitSettingsTypeDef,
):
    """
    Type definition for
    `ClientCreateChannelEncoderSettingsOutputGroupsOutputsOutputSettingsUdpOutputSettingsContainerSettingsM2tsSettings`
    `DvbNitSettings`

    - **NetworkId** *(integer) --* **[REQUIRED]** The numeric value placed in the Network
    Information Table (NIT).

    - **NetworkName** *(string) --* **[REQUIRED]** The network name text placed in the
    networkNameDescriptor inside the Network Information Table. Maximum length is 256 characters.

    - **RepInterval** *(integer) --* The number of milliseconds between instances of this table in
    the output transport stream.
    """


_ClientCreateChannelEncoderSettingsOutputGroupsOutputsOutputSettingsUdpOutputSettingsContainerSettingsM2tsSettingsDvbSdtSettingsTypeDef = TypedDict(
    "_ClientCreateChannelEncoderSettingsOutputGroupsOutputsOutputSettingsUdpOutputSettingsContainerSettingsM2tsSettingsDvbSdtSettingsTypeDef",
    {"OutputSdt": str, "RepInterval": int, "ServiceName": str, "ServiceProviderName": str},
    total=False,
)


class ClientCreateChannelEncoderSettingsOutputGroupsOutputsOutputSettingsUdpOutputSettingsContainerSettingsM2tsSettingsDvbSdtSettingsTypeDef(
    _ClientCreateChannelEncoderSettingsOutputGroupsOutputsOutputSettingsUdpOutputSettingsContainerSettingsM2tsSettingsDvbSdtSettingsTypeDef
):
    """
    Type definition for
    `ClientCreateChannelEncoderSettingsOutputGroupsOutputsOutputSettingsUdpOutputSettingsContainerSettingsM2tsSettings`
    `DvbSdtSettings`

    - **OutputSdt** *(string) --* Selects method of inserting SDT information into output stream.
    The sdtFollow setting copies SDT information from input stream to output stream. The
    sdtFollowIfPresent setting copies SDT information from input stream to output stream if SDT
    information is present in the input, otherwise it will fall back on the user-defined values. The
    sdtManual setting means user will enter the SDT information. The sdtNone setting means output
    stream will not contain SDT information.

    - **RepInterval** *(integer) --* The number of milliseconds between instances of this table in
    the output transport stream.

    - **ServiceName** *(string) --* The service name placed in the serviceDescriptor in the Service
    Description Table. Maximum length is 256 characters.

    - **ServiceProviderName** *(string) --* The service provider name placed in the
    serviceDescriptor in the Service Description Table. Maximum length is 256 characters.
    """


_ClientCreateChannelEncoderSettingsOutputGroupsOutputsOutputSettingsUdpOutputSettingsContainerSettingsM2tsSettingsDvbTdtSettingsTypeDef = TypedDict(
    "_ClientCreateChannelEncoderSettingsOutputGroupsOutputsOutputSettingsUdpOutputSettingsContainerSettingsM2tsSettingsDvbTdtSettingsTypeDef",
    {"RepInterval": int},
    total=False,
)


class ClientCreateChannelEncoderSettingsOutputGroupsOutputsOutputSettingsUdpOutputSettingsContainerSettingsM2tsSettingsDvbTdtSettingsTypeDef(
    _ClientCreateChannelEncoderSettingsOutputGroupsOutputsOutputSettingsUdpOutputSettingsContainerSettingsM2tsSettingsDvbTdtSettingsTypeDef
):
    """
    Type definition for
    `ClientCreateChannelEncoderSettingsOutputGroupsOutputsOutputSettingsUdpOutputSettingsContainerSettingsM2tsSettings`
    `DvbTdtSettings`

    - **RepInterval** *(integer) --* The number of milliseconds between instances of this table in
    the output transport stream.
    """


_ClientCreateChannelEncoderSettingsOutputGroupsOutputsOutputSettingsUdpOutputSettingsContainerSettingsM2tsSettingsTypeDef = TypedDict(
    "_ClientCreateChannelEncoderSettingsOutputGroupsOutputsOutputSettingsUdpOutputSettingsContainerSettingsM2tsSettingsTypeDef",
    {
        "AbsentInputAudioBehavior": str,
        "Arib": str,
        "AribCaptionsPid": str,
        "AribCaptionsPidControl": str,
        "AudioBufferModel": str,
        "AudioFramesPerPes": int,
        "AudioPids": str,
        "AudioStreamType": str,
        "Bitrate": int,
        "BufferModel": str,
        "CcDescriptor": str,
        "DvbNitSettings": ClientCreateChannelEncoderSettingsOutputGroupsOutputsOutputSettingsUdpOutputSettingsContainerSettingsM2tsSettingsDvbNitSettingsTypeDef,
        "DvbSdtSettings": ClientCreateChannelEncoderSettingsOutputGroupsOutputsOutputSettingsUdpOutputSettingsContainerSettingsM2tsSettingsDvbSdtSettingsTypeDef,
        "DvbSubPids": str,
        "DvbTdtSettings": ClientCreateChannelEncoderSettingsOutputGroupsOutputsOutputSettingsUdpOutputSettingsContainerSettingsM2tsSettingsDvbTdtSettingsTypeDef,
        "DvbTeletextPid": str,
        "Ebif": str,
        "EbpAudioInterval": str,
        "EbpLookaheadMs": int,
        "EbpPlacement": str,
        "EcmPid": str,
        "EsRateInPes": str,
        "EtvPlatformPid": str,
        "EtvSignalPid": str,
        "FragmentTime": float,
        "Klv": str,
        "KlvDataPids": str,
        "NielsenId3Behavior": str,
        "NullPacketBitrate": float,
        "PatInterval": int,
        "PcrControl": str,
        "PcrPeriod": int,
        "PcrPid": str,
        "PmtInterval": int,
        "PmtPid": str,
        "ProgramNum": int,
        "RateMode": str,
        "Scte27Pids": str,
        "Scte35Control": str,
        "Scte35Pid": str,
        "SegmentationMarkers": str,
        "SegmentationStyle": str,
        "SegmentationTime": float,
        "TimedMetadataBehavior": str,
        "TimedMetadataPid": str,
        "TransportStreamId": int,
        "VideoPid": str,
    },
    total=False,
)


class ClientCreateChannelEncoderSettingsOutputGroupsOutputsOutputSettingsUdpOutputSettingsContainerSettingsM2tsSettingsTypeDef(
    _ClientCreateChannelEncoderSettingsOutputGroupsOutputsOutputSettingsUdpOutputSettingsContainerSettingsM2tsSettingsTypeDef
):
    """
    Type definition for
    `ClientCreateChannelEncoderSettingsOutputGroupsOutputsOutputSettingsUdpOutputSettingsContainerSettings`
    `M2tsSettings`

    - **AbsentInputAudioBehavior** *(string) --* When set to drop, output audio streams will be
    removed from the program if the selected input audio stream is removed from the input. This
    allows the output audio configuration to dynamically change based on input configuration. If
    this is set to encodeSilence, all output audio streams will output encoded silence when not
    connected to an active input stream.

    - **Arib** *(string) --* When set to enabled, uses ARIB-compliant field muxing and removes video
    descriptor.

    - **AribCaptionsPid** *(string) --* Packet Identifier (PID) for ARIB Captions in the transport
    stream. Can be entered as a decimal or hexadecimal value. Valid values are 32 (or 0x20)..8182
    (or 0x1ff6).

    - **AribCaptionsPidControl** *(string) --* If set to auto, pid number used for ARIB Captions
    will be auto-selected from unused pids. If set to useConfigured, ARIB Captions will be on the
    configured pid number.

    - **AudioBufferModel** *(string) --* When set to dvb, uses DVB buffer model for Dolby Digital
    audio. When set to atsc, the ATSC model is used.

    - **AudioFramesPerPes** *(integer) --* The number of audio frames to insert for each PES packet.

    - **AudioPids** *(string) --* Packet Identifier (PID) of the elementary audio stream(s) in the
    transport stream. Multiple values are accepted, and can be entered in ranges and/or by comma
    separation. Can be entered as decimal or hexadecimal values. Each PID specified must be in the
    range of 32 (or 0x20)..8182 (or 0x1ff6).

    - **AudioStreamType** *(string) --* When set to atsc, uses stream type = 0x81 for AC3 and stream
    type = 0x87 for EAC3. When set to dvb, uses stream type = 0x06.

    - **Bitrate** *(integer) --* The output bitrate of the transport stream in bits per second.
    Setting to 0 lets the muxer automatically determine the appropriate bitrate.

    - **BufferModel** *(string) --* If set to multiplex, use multiplex buffer model for accurate
    interleaving. Setting to bufferModel to none can lead to lower latency, but low-memory devices
    may not be able to play back the stream without interruptions.

    - **CcDescriptor** *(string) --* When set to enabled, generates captionServiceDescriptor in PMT.

    - **DvbNitSettings** *(dict) --* Inserts DVB Network Information Table (NIT) at the specified
    table repetition interval.

      - **NetworkId** *(integer) --* **[REQUIRED]** The numeric value placed in the Network
      Information Table (NIT).

      - **NetworkName** *(string) --* **[REQUIRED]** The network name text placed in the
      networkNameDescriptor inside the Network Information Table. Maximum length is 256 characters.

      - **RepInterval** *(integer) --* The number of milliseconds between instances of this table in
      the output transport stream.

    - **DvbSdtSettings** *(dict) --* Inserts DVB Service Description Table (SDT) at the specified
    table repetition interval.

      - **OutputSdt** *(string) --* Selects method of inserting SDT information into output stream.
      The sdtFollow setting copies SDT information from input stream to output stream. The
      sdtFollowIfPresent setting copies SDT information from input stream to output stream if SDT
      information is present in the input, otherwise it will fall back on the user-defined values.
      The sdtManual setting means user will enter the SDT information. The sdtNone setting means
      output stream will not contain SDT information.

      - **RepInterval** *(integer) --* The number of milliseconds between instances of this table in
      the output transport stream.

      - **ServiceName** *(string) --* The service name placed in the serviceDescriptor in the
      Service Description Table. Maximum length is 256 characters.

      - **ServiceProviderName** *(string) --* The service provider name placed in the
      serviceDescriptor in the Service Description Table. Maximum length is 256 characters.

    - **DvbSubPids** *(string) --* Packet Identifier (PID) for input source DVB Subtitle data to
    this output. Multiple values are accepted, and can be entered in ranges and/or by comma
    separation. Can be entered as decimal or hexadecimal values. Each PID specified must be in the
    range of 32 (or 0x20)..8182 (or 0x1ff6).

    - **DvbTdtSettings** *(dict) --* Inserts DVB Time and Date Table (TDT) at the specified table
    repetition interval.

      - **RepInterval** *(integer) --* The number of milliseconds between instances of this table in
      the output transport stream.

    - **DvbTeletextPid** *(string) --* Packet Identifier (PID) for input source DVB Teletext data to
    this output. Can be entered as a decimal or hexadecimal value. Valid values are 32 (or
    0x20)..8182 (or 0x1ff6).

    - **Ebif** *(string) --* If set to passthrough, passes any EBIF data from the input source to
    this output.

    - **EbpAudioInterval** *(string) --* When videoAndFixedIntervals is selected, audio EBP markers
    will be added to partitions 3 and 4. The interval between these additional markers will be
    fixed, and will be slightly shorter than the video EBP marker interval. Only available when EBP
    Cablelabs segmentation markers are selected. Partitions 1 and 2 will always follow the video
    interval.

    - **EbpLookaheadMs** *(integer) --* When set, enforces that Encoder Boundary Points do not come
    within the specified time interval of each other by looking ahead at input video. If another EBP
    is going to come in within the specified time interval, the current EBP is not emitted, and the
    segment is "stretched" to the next marker. The lookahead value does not add latency to the
    system. The Live Event must be configured elsewhere to create sufficient latency to make the
    lookahead accurate.

    - **EbpPlacement** *(string) --* Controls placement of EBP on Audio PIDs. If set to
    videoAndAudioPids, EBP markers will be placed on the video PID and all audio PIDs. If set to
    videoPid, EBP markers will be placed on only the video PID.

    - **EcmPid** *(string) --* This field is unused and deprecated.

    - **EsRateInPes** *(string) --* Include or exclude the ES Rate field in the PES header.

    - **EtvPlatformPid** *(string) --* Packet Identifier (PID) for input source ETV Platform data to
    this output. Can be entered as a decimal or hexadecimal value. Valid values are 32 (or
    0x20)..8182 (or 0x1ff6).

    - **EtvSignalPid** *(string) --* Packet Identifier (PID) for input source ETV Signal data to
    this output. Can be entered as a decimal or hexadecimal value. Valid values are 32 (or
    0x20)..8182 (or 0x1ff6).

    - **FragmentTime** *(float) --* The length in seconds of each fragment. Only used with EBP
    markers.

    - **Klv** *(string) --* If set to passthrough, passes any KLV data from the input source to this
    output.

    - **KlvDataPids** *(string) --* Packet Identifier (PID) for input source KLV data to this
    output. Multiple values are accepted, and can be entered in ranges and/or by comma separation.
    Can be entered as decimal or hexadecimal values. Each PID specified must be in the range of 32
    (or 0x20)..8182 (or 0x1ff6).

    - **NielsenId3Behavior** *(string) --* If set to passthrough, Nielsen inaudible tones for media
    tracking will be detected in the input audio and an equivalent ID3 tag will be inserted in the
    output.

    - **NullPacketBitrate** *(float) --* Value in bits per second of extra null packets to insert
    into the transport stream. This can be used if a downstream encryption system requires periodic
    null packets.

    - **PatInterval** *(integer) --* The number of milliseconds between instances of this table in
    the output transport stream. Valid values are 0, 10..1000.

    - **PcrControl** *(string) --* When set to pcrEveryPesPacket, a Program Clock Reference value is
    inserted for every Packetized Elementary Stream (PES) header. This parameter is effective only
    when the PCR PID is the same as the video or audio elementary stream.

    - **PcrPeriod** *(integer) --* Maximum time in milliseconds between Program Clock Reference
    (PCRs) inserted into the transport stream.

    - **PcrPid** *(string) --* Packet Identifier (PID) of the Program Clock Reference (PCR) in the
    transport stream. When no value is given, the encoder will assign the same value as the Video
    PID. Can be entered as a decimal or hexadecimal value. Valid values are 32 (or 0x20)..8182 (or
    0x1ff6).

    - **PmtInterval** *(integer) --* The number of milliseconds between instances of this table in
    the output transport stream. Valid values are 0, 10..1000.

    - **PmtPid** *(string) --* Packet Identifier (PID) for the Program Map Table (PMT) in the
    transport stream. Can be entered as a decimal or hexadecimal value. Valid values are 32 (or
    0x20)..8182 (or 0x1ff6).

    - **ProgramNum** *(integer) --* The value of the program number field in the Program Map Table.

    - **RateMode** *(string) --* When vbr, does not insert null packets into transport stream to
    fill specified bitrate. The bitrate setting acts as the maximum bitrate when vbr is set.

    - **Scte27Pids** *(string) --* Packet Identifier (PID) for input source SCTE-27 data to this
    output. Multiple values are accepted, and can be entered in ranges and/or by comma separation.
    Can be entered as decimal or hexadecimal values. Each PID specified must be in the range of 32
    (or 0x20)..8182 (or 0x1ff6).

    - **Scte35Control** *(string) --* Optionally pass SCTE-35 signals from the input source to this
    output.

    - **Scte35Pid** *(string) --* Packet Identifier (PID) of the SCTE-35 stream in the transport
    stream. Can be entered as a decimal or hexadecimal value. Valid values are 32 (or 0x20)..8182
    (or 0x1ff6).

    - **SegmentationMarkers** *(string) --* Inserts segmentation markers at each segmentationTime
    period. raiSegstart sets the Random Access Indicator bit in the adaptation field. raiAdapt sets
    the RAI bit and adds the current timecode in the private data bytes. psiSegstart inserts PAT and
    PMT tables at the start of segments. ebp adds Encoder Boundary Point information to the
    adaptation field as per OpenCable specification OC-SP-EBP-I01-130118. ebpLegacy adds Encoder
    Boundary Point information to the adaptation field using a legacy proprietary format.

    - **SegmentationStyle** *(string) --* The segmentation style parameter controls how segmentation
    markers are inserted into the transport stream. With avails, it is possible that segments may be
    truncated, which can influence where future segmentation markers are inserted. When a
    segmentation style of "resetCadence" is selected and a segment is truncated due to an avail, we
    will reset the segmentation cadence. This means the subsequent segment will have a duration of
    $segmentationTime seconds. When a segmentation style of "maintainCadence" is selected and a
    segment is truncated due to an avail, we will not reset the segmentation cadence. This means the
    subsequent segment will likely be truncated as well. However, all segments after that will have
    a duration of $segmentationTime seconds. Note that EBP lookahead is a slight exception to this
    rule.

    - **SegmentationTime** *(float) --* The length in seconds of each segment. Required unless
    markers is set to None_.

    - **TimedMetadataBehavior** *(string) --* When set to passthrough, timed metadata will be passed
    through from input to output.

    - **TimedMetadataPid** *(string) --* Packet Identifier (PID) of the timed metadata stream in the
    transport stream. Can be entered as a decimal or hexadecimal value. Valid values are 32 (or
    0x20)..8182 (or 0x1ff6).

    - **TransportStreamId** *(integer) --* The value of the transport stream ID field in the Program
    Map Table.

    - **VideoPid** *(string) --* Packet Identifier (PID) of the elementary video stream in the
    transport stream. Can be entered as a decimal or hexadecimal value. Valid values are 32 (or
    0x20)..8182 (or 0x1ff6).
    """


_ClientCreateChannelEncoderSettingsOutputGroupsOutputsOutputSettingsUdpOutputSettingsContainerSettingsTypeDef = TypedDict(
    "_ClientCreateChannelEncoderSettingsOutputGroupsOutputsOutputSettingsUdpOutputSettingsContainerSettingsTypeDef",
    {
        "M2tsSettings": ClientCreateChannelEncoderSettingsOutputGroupsOutputsOutputSettingsUdpOutputSettingsContainerSettingsM2tsSettingsTypeDef
    },
    total=False,
)


class ClientCreateChannelEncoderSettingsOutputGroupsOutputsOutputSettingsUdpOutputSettingsContainerSettingsTypeDef(
    _ClientCreateChannelEncoderSettingsOutputGroupsOutputsOutputSettingsUdpOutputSettingsContainerSettingsTypeDef
):
    """
    Type definition for
    `ClientCreateChannelEncoderSettingsOutputGroupsOutputsOutputSettingsUdpOutputSettings`
    `ContainerSettings`

    - **M2tsSettings** *(dict) --* M2ts Settings

      - **AbsentInputAudioBehavior** *(string) --* When set to drop, output audio streams will be
      removed from the program if the selected input audio stream is removed from the input. This
      allows the output audio configuration to dynamically change based on input configuration. If
      this is set to encodeSilence, all output audio streams will output encoded silence when not
      connected to an active input stream.

      - **Arib** *(string) --* When set to enabled, uses ARIB-compliant field muxing and removes
      video descriptor.

      - **AribCaptionsPid** *(string) --* Packet Identifier (PID) for ARIB Captions in the transport
      stream. Can be entered as a decimal or hexadecimal value. Valid values are 32 (or 0x20)..8182
      (or 0x1ff6).

      - **AribCaptionsPidControl** *(string) --* If set to auto, pid number used for ARIB Captions
      will be auto-selected from unused pids. If set to useConfigured, ARIB Captions will be on the
      configured pid number.

      - **AudioBufferModel** *(string) --* When set to dvb, uses DVB buffer model for Dolby Digital
      audio. When set to atsc, the ATSC model is used.

      - **AudioFramesPerPes** *(integer) --* The number of audio frames to insert for each PES
      packet.

      - **AudioPids** *(string) --* Packet Identifier (PID) of the elementary audio stream(s) in the
      transport stream. Multiple values are accepted, and can be entered in ranges and/or by comma
      separation. Can be entered as decimal or hexadecimal values. Each PID specified must be in the
      range of 32 (or 0x20)..8182 (or 0x1ff6).

      - **AudioStreamType** *(string) --* When set to atsc, uses stream type = 0x81 for AC3 and
      stream type = 0x87 for EAC3. When set to dvb, uses stream type = 0x06.

      - **Bitrate** *(integer) --* The output bitrate of the transport stream in bits per second.
      Setting to 0 lets the muxer automatically determine the appropriate bitrate.

      - **BufferModel** *(string) --* If set to multiplex, use multiplex buffer model for accurate
      interleaving. Setting to bufferModel to none can lead to lower latency, but low-memory devices
      may not be able to play back the stream without interruptions.

      - **CcDescriptor** *(string) --* When set to enabled, generates captionServiceDescriptor in
      PMT.

      - **DvbNitSettings** *(dict) --* Inserts DVB Network Information Table (NIT) at the specified
      table repetition interval.

        - **NetworkId** *(integer) --* **[REQUIRED]** The numeric value placed in the Network
        Information Table (NIT).

        - **NetworkName** *(string) --* **[REQUIRED]** The network name text placed in the
        networkNameDescriptor inside the Network Information Table. Maximum length is 256
        characters.

        - **RepInterval** *(integer) --* The number of milliseconds between instances of this table
        in the output transport stream.

      - **DvbSdtSettings** *(dict) --* Inserts DVB Service Description Table (SDT) at the specified
      table repetition interval.

        - **OutputSdt** *(string) --* Selects method of inserting SDT information into output
        stream. The sdtFollow setting copies SDT information from input stream to output stream. The
        sdtFollowIfPresent setting copies SDT information from input stream to output stream if SDT
        information is present in the input, otherwise it will fall back on the user-defined values.
        The sdtManual setting means user will enter the SDT information. The sdtNone setting means
        output stream will not contain SDT information.

        - **RepInterval** *(integer) --* The number of milliseconds between instances of this table
        in the output transport stream.

        - **ServiceName** *(string) --* The service name placed in the serviceDescriptor in the
        Service Description Table. Maximum length is 256 characters.

        - **ServiceProviderName** *(string) --* The service provider name placed in the
        serviceDescriptor in the Service Description Table. Maximum length is 256 characters.

      - **DvbSubPids** *(string) --* Packet Identifier (PID) for input source DVB Subtitle data to
      this output. Multiple values are accepted, and can be entered in ranges and/or by comma
      separation. Can be entered as decimal or hexadecimal values. Each PID specified must be in the
      range of 32 (or 0x20)..8182 (or 0x1ff6).

      - **DvbTdtSettings** *(dict) --* Inserts DVB Time and Date Table (TDT) at the specified table
      repetition interval.

        - **RepInterval** *(integer) --* The number of milliseconds between instances of this table
        in the output transport stream.

      - **DvbTeletextPid** *(string) --* Packet Identifier (PID) for input source DVB Teletext data
      to this output. Can be entered as a decimal or hexadecimal value. Valid values are 32 (or
      0x20)..8182 (or 0x1ff6).

      - **Ebif** *(string) --* If set to passthrough, passes any EBIF data from the input source to
      this output.

      - **EbpAudioInterval** *(string) --* When videoAndFixedIntervals is selected, audio EBP
      markers will be added to partitions 3 and 4. The interval between these additional markers
      will be fixed, and will be slightly shorter than the video EBP marker interval. Only available
      when EBP Cablelabs segmentation markers are selected. Partitions 1 and 2 will always follow
      the video interval.

      - **EbpLookaheadMs** *(integer) --* When set, enforces that Encoder Boundary Points do not
      come within the specified time interval of each other by looking ahead at input video. If
      another EBP is going to come in within the specified time interval, the current EBP is not
      emitted, and the segment is "stretched" to the next marker. The lookahead value does not add
      latency to the system. The Live Event must be configured elsewhere to create sufficient
      latency to make the lookahead accurate.

      - **EbpPlacement** *(string) --* Controls placement of EBP on Audio PIDs. If set to
      videoAndAudioPids, EBP markers will be placed on the video PID and all audio PIDs. If set to
      videoPid, EBP markers will be placed on only the video PID.

      - **EcmPid** *(string) --* This field is unused and deprecated.

      - **EsRateInPes** *(string) --* Include or exclude the ES Rate field in the PES header.

      - **EtvPlatformPid** *(string) --* Packet Identifier (PID) for input source ETV Platform data
      to this output. Can be entered as a decimal or hexadecimal value. Valid values are 32 (or
      0x20)..8182 (or 0x1ff6).

      - **EtvSignalPid** *(string) --* Packet Identifier (PID) for input source ETV Signal data to
      this output. Can be entered as a decimal or hexadecimal value. Valid values are 32 (or
      0x20)..8182 (or 0x1ff6).

      - **FragmentTime** *(float) --* The length in seconds of each fragment. Only used with EBP
      markers.

      - **Klv** *(string) --* If set to passthrough, passes any KLV data from the input source to
      this output.

      - **KlvDataPids** *(string) --* Packet Identifier (PID) for input source KLV data to this
      output. Multiple values are accepted, and can be entered in ranges and/or by comma separation.
      Can be entered as decimal or hexadecimal values. Each PID specified must be in the range of 32
      (or 0x20)..8182 (or 0x1ff6).

      - **NielsenId3Behavior** *(string) --* If set to passthrough, Nielsen inaudible tones for
      media tracking will be detected in the input audio and an equivalent ID3 tag will be inserted
      in the output.

      - **NullPacketBitrate** *(float) --* Value in bits per second of extra null packets to insert
      into the transport stream. This can be used if a downstream encryption system requires
      periodic null packets.

      - **PatInterval** *(integer) --* The number of milliseconds between instances of this table in
      the output transport stream. Valid values are 0, 10..1000.

      - **PcrControl** *(string) --* When set to pcrEveryPesPacket, a Program Clock Reference value
      is inserted for every Packetized Elementary Stream (PES) header. This parameter is effective
      only when the PCR PID is the same as the video or audio elementary stream.

      - **PcrPeriod** *(integer) --* Maximum time in milliseconds between Program Clock Reference
      (PCRs) inserted into the transport stream.

      - **PcrPid** *(string) --* Packet Identifier (PID) of the Program Clock Reference (PCR) in the
      transport stream. When no value is given, the encoder will assign the same value as the Video
      PID. Can be entered as a decimal or hexadecimal value. Valid values are 32 (or 0x20)..8182 (or
      0x1ff6).

      - **PmtInterval** *(integer) --* The number of milliseconds between instances of this table in
      the output transport stream. Valid values are 0, 10..1000.

      - **PmtPid** *(string) --* Packet Identifier (PID) for the Program Map Table (PMT) in the
      transport stream. Can be entered as a decimal or hexadecimal value. Valid values are 32 (or
      0x20)..8182 (or 0x1ff6).

      - **ProgramNum** *(integer) --* The value of the program number field in the Program Map
      Table.

      - **RateMode** *(string) --* When vbr, does not insert null packets into transport stream to
      fill specified bitrate. The bitrate setting acts as the maximum bitrate when vbr is set.

      - **Scte27Pids** *(string) --* Packet Identifier (PID) for input source SCTE-27 data to this
      output. Multiple values are accepted, and can be entered in ranges and/or by comma separation.
      Can be entered as decimal or hexadecimal values. Each PID specified must be in the range of 32
      (or 0x20)..8182 (or 0x1ff6).

      - **Scte35Control** *(string) --* Optionally pass SCTE-35 signals from the input source to
      this output.

      - **Scte35Pid** *(string) --* Packet Identifier (PID) of the SCTE-35 stream in the transport
      stream. Can be entered as a decimal or hexadecimal value. Valid values are 32 (or 0x20)..8182
      (or 0x1ff6).

      - **SegmentationMarkers** *(string) --* Inserts segmentation markers at each segmentationTime
      period. raiSegstart sets the Random Access Indicator bit in the adaptation field. raiAdapt
      sets the RAI bit and adds the current timecode in the private data bytes. psiSegstart inserts
      PAT and PMT tables at the start of segments. ebp adds Encoder Boundary Point information to
      the adaptation field as per OpenCable specification OC-SP-EBP-I01-130118. ebpLegacy adds
      Encoder Boundary Point information to the adaptation field using a legacy proprietary format.

      - **SegmentationStyle** *(string) --* The segmentation style parameter controls how
      segmentation markers are inserted into the transport stream. With avails, it is possible that
      segments may be truncated, which can influence where future segmentation markers are inserted.
      When a segmentation style of "resetCadence" is selected and a segment is truncated due to an
      avail, we will reset the segmentation cadence. This means the subsequent segment will have a
      duration of $segmentationTime seconds. When a segmentation style of "maintainCadence" is
      selected and a segment is truncated due to an avail, we will not reset the segmentation
      cadence. This means the subsequent segment will likely be truncated as well. However, all
      segments after that will have a duration of $segmentationTime seconds. Note that EBP lookahead
      is a slight exception to this rule.

      - **SegmentationTime** *(float) --* The length in seconds of each segment. Required unless
      markers is set to None_.

      - **TimedMetadataBehavior** *(string) --* When set to passthrough, timed metadata will be
      passed through from input to output.

      - **TimedMetadataPid** *(string) --* Packet Identifier (PID) of the timed metadata stream in
      the transport stream. Can be entered as a decimal or hexadecimal value. Valid values are 32
      (or 0x20)..8182 (or 0x1ff6).

      - **TransportStreamId** *(integer) --* The value of the transport stream ID field in the
      Program Map Table.

      - **VideoPid** *(string) --* Packet Identifier (PID) of the elementary video stream in the
      transport stream. Can be entered as a decimal or hexadecimal value. Valid values are 32 (or
      0x20)..8182 (or 0x1ff6).
    """


_ClientCreateChannelEncoderSettingsOutputGroupsOutputsOutputSettingsUdpOutputSettingsDestinationTypeDef = TypedDict(
    "_ClientCreateChannelEncoderSettingsOutputGroupsOutputsOutputSettingsUdpOutputSettingsDestinationTypeDef",
    {"DestinationRefId": str},
    total=False,
)


class ClientCreateChannelEncoderSettingsOutputGroupsOutputsOutputSettingsUdpOutputSettingsDestinationTypeDef(
    _ClientCreateChannelEncoderSettingsOutputGroupsOutputsOutputSettingsUdpOutputSettingsDestinationTypeDef
):
    """
    Type definition for
    `ClientCreateChannelEncoderSettingsOutputGroupsOutputsOutputSettingsUdpOutputSettings`
    `Destination`

    - **DestinationRefId** *(string) --* Placeholder documentation for __string
    """


_ClientCreateChannelEncoderSettingsOutputGroupsOutputsOutputSettingsUdpOutputSettingsFecOutputSettingsTypeDef = TypedDict(
    "_ClientCreateChannelEncoderSettingsOutputGroupsOutputsOutputSettingsUdpOutputSettingsFecOutputSettingsTypeDef",
    {"ColumnDepth": int, "IncludeFec": str, "RowLength": int},
    total=False,
)


class ClientCreateChannelEncoderSettingsOutputGroupsOutputsOutputSettingsUdpOutputSettingsFecOutputSettingsTypeDef(
    _ClientCreateChannelEncoderSettingsOutputGroupsOutputsOutputSettingsUdpOutputSettingsFecOutputSettingsTypeDef
):
    """
    Type definition for
    `ClientCreateChannelEncoderSettingsOutputGroupsOutputsOutputSettingsUdpOutputSettings`
    `FecOutputSettings`

    - **ColumnDepth** *(integer) --* Parameter D from SMPTE 2022-1. The height of the FEC protection
    matrix. The number of transport stream packets per column error correction packet. Must be
    between 4 and 20, inclusive.

    - **IncludeFec** *(string) --* Enables column only or column and row based FEC

    - **RowLength** *(integer) --* Parameter L from SMPTE 2022-1. The width of the FEC protection
    matrix. Must be between 1 and 20, inclusive. If only Column FEC is used, then larger values
    increase robustness. If Row FEC is used, then this is the number of transport stream packets per
    row error correction packet, and the value must be between 4 and 20, inclusive, if includeFec is
    columnAndRow. If includeFec is column, this value must be 1 to 20, inclusive.
    """


_RequiredClientCreateChannelEncoderSettingsOutputGroupsOutputsOutputSettingsUdpOutputSettingsTypeDef = TypedDict(
    "_RequiredClientCreateChannelEncoderSettingsOutputGroupsOutputsOutputSettingsUdpOutputSettingsTypeDef",
    {
        "ContainerSettings": ClientCreateChannelEncoderSettingsOutputGroupsOutputsOutputSettingsUdpOutputSettingsContainerSettingsTypeDef,
        "Destination": ClientCreateChannelEncoderSettingsOutputGroupsOutputsOutputSettingsUdpOutputSettingsDestinationTypeDef,
    },
)
_OptionalClientCreateChannelEncoderSettingsOutputGroupsOutputsOutputSettingsUdpOutputSettingsTypeDef = TypedDict(
    "_OptionalClientCreateChannelEncoderSettingsOutputGroupsOutputsOutputSettingsUdpOutputSettingsTypeDef",
    {
        "BufferMsec": int,
        "FecOutputSettings": ClientCreateChannelEncoderSettingsOutputGroupsOutputsOutputSettingsUdpOutputSettingsFecOutputSettingsTypeDef,
    },
    total=False,
)


class ClientCreateChannelEncoderSettingsOutputGroupsOutputsOutputSettingsUdpOutputSettingsTypeDef(
    _RequiredClientCreateChannelEncoderSettingsOutputGroupsOutputsOutputSettingsUdpOutputSettingsTypeDef,
    _OptionalClientCreateChannelEncoderSettingsOutputGroupsOutputsOutputSettingsUdpOutputSettingsTypeDef,
):
    """
    Type definition for `ClientCreateChannelEncoderSettingsOutputGroupsOutputsOutputSettings`
    `UdpOutputSettings`

    - **BufferMsec** *(integer) --* UDP output buffering in milliseconds. Larger values increase
    latency through the transcoder but simultaneously assist the transcoder in maintaining a
    constant, low-jitter UDP/RTP output while accommodating clock recovery, input switching, input
    disruptions, picture reordering, etc.

    - **ContainerSettings** *(dict) --* **[REQUIRED]** Udp Container Settings

      - **M2tsSettings** *(dict) --* M2ts Settings

        - **AbsentInputAudioBehavior** *(string) --* When set to drop, output audio streams will be
        removed from the program if the selected input audio stream is removed from the input. This
        allows the output audio configuration to dynamically change based on input configuration. If
        this is set to encodeSilence, all output audio streams will output encoded silence when not
        connected to an active input stream.

        - **Arib** *(string) --* When set to enabled, uses ARIB-compliant field muxing and removes
        video descriptor.

        - **AribCaptionsPid** *(string) --* Packet Identifier (PID) for ARIB Captions in the
        transport stream. Can be entered as a decimal or hexadecimal value. Valid values are 32 (or
        0x20)..8182 (or 0x1ff6).

        - **AribCaptionsPidControl** *(string) --* If set to auto, pid number used for ARIB Captions
        will be auto-selected from unused pids. If set to useConfigured, ARIB Captions will be on
        the configured pid number.

        - **AudioBufferModel** *(string) --* When set to dvb, uses DVB buffer model for Dolby
        Digital audio. When set to atsc, the ATSC model is used.

        - **AudioFramesPerPes** *(integer) --* The number of audio frames to insert for each PES
        packet.

        - **AudioPids** *(string) --* Packet Identifier (PID) of the elementary audio stream(s) in
        the transport stream. Multiple values are accepted, and can be entered in ranges and/or by
        comma separation. Can be entered as decimal or hexadecimal values. Each PID specified must
        be in the range of 32 (or 0x20)..8182 (or 0x1ff6).

        - **AudioStreamType** *(string) --* When set to atsc, uses stream type =
             0x81 for AC3 and
        stream type = 0x87 for EAC3. When set to dvb, uses stream type = 0x06.

        - **Bitrate** *(integer) --* The output bitrate of the transport stream in bits per second.
        Setting to 0 lets the muxer automatically determine the appropriate bitrate.

        - **BufferModel** *(string) --* If set to multiplex, use multiplex buffer model for accurate
        interleaving. Setting to bufferModel to none can lead to lower latency, but low-memory
        devices may not be able to play back the stream without interruptions.

        - **CcDescriptor** *(string) --* When set to enabled, generates captionServiceDescriptor in
        PMT.

        - **DvbNitSettings** *(dict) --* Inserts DVB Network Information Table (NIT) at the
        specified table repetition interval.

          - **NetworkId** *(integer) --* **[REQUIRED]** The numeric value placed in the Network
          Information Table (NIT).

          - **NetworkName** *(string) --* **[REQUIRED]** The network name text placed in the
          networkNameDescriptor inside the Network Information Table. Maximum length is 256
          characters.

          - **RepInterval** *(integer) --* The number of milliseconds between instances of this
          table in the output transport stream.

        - **DvbSdtSettings** *(dict) --* Inserts DVB Service Description Table (SDT) at the
        specified table repetition interval.

          - **OutputSdt** *(string) --* Selects method of inserting SDT information into output
          stream. The sdtFollow setting copies SDT information from input stream to output stream.
          The sdtFollowIfPresent setting copies SDT information from input stream to output stream
          if SDT information is present in the input, otherwise it will fall back on the
          user-defined values. The sdtManual setting means user will enter the SDT information. The
          sdtNone setting means output stream will not contain SDT information.

          - **RepInterval** *(integer) --* The number of milliseconds between instances of this
          table in the output transport stream.

          - **ServiceName** *(string) --* The service name placed in the serviceDescriptor in the
          Service Description Table. Maximum length is 256 characters.

          - **ServiceProviderName** *(string) --* The service provider name placed in the
          serviceDescriptor in the Service Description Table. Maximum length is 256 characters.

        - **DvbSubPids** *(string) --* Packet Identifier (PID) for input source DVB Subtitle data to
        this output. Multiple values are accepted, and can be entered in ranges and/or by comma
        separation. Can be entered as decimal or hexadecimal values. Each PID specified must be in
        the range of 32 (or 0x20)..8182 (or 0x1ff6).

        - **DvbTdtSettings** *(dict) --* Inserts DVB Time and Date Table (TDT) at the specified
        table repetition interval.

          - **RepInterval** *(integer) --* The number of milliseconds between instances of this
          table in the output transport stream.

        - **DvbTeletextPid** *(string) --* Packet Identifier (PID) for input source DVB Teletext
        data to this output. Can be entered as a decimal or hexadecimal value. Valid values are 32
        (or 0x20)..8182 (or 0x1ff6).

        - **Ebif** *(string) --* If set to passthrough, passes any EBIF data from the input source
        to this output.

        - **EbpAudioInterval** *(string) --* When videoAndFixedIntervals is selected, audio EBP
        markers will be added to partitions 3 and 4. The interval between these additional markers
        will be fixed, and will be slightly shorter than the video EBP marker interval. Only
        available when EBP Cablelabs segmentation markers are selected. Partitions 1 and 2 will
        always follow the video interval.

        - **EbpLookaheadMs** *(integer) --* When set, enforces that Encoder Boundary Points do not
        come within the specified time interval of each other by looking ahead at input video. If
        another EBP is going to come in within the specified time interval, the current EBP is not
        emitted, and the segment is "stretched" to the next marker. The lookahead value does not add
        latency to the system. The Live Event must be configured elsewhere to create sufficient
        latency to make the lookahead accurate.

        - **EbpPlacement** *(string) --* Controls placement of EBP on Audio PIDs. If set to
        videoAndAudioPids, EBP markers will be placed on the video PID and all audio PIDs. If set to
        videoPid, EBP markers will be placed on only the video PID.

        - **EcmPid** *(string) --* This field is unused and deprecated.

        - **EsRateInPes** *(string) --* Include or exclude the ES Rate field in the PES header.

        - **EtvPlatformPid** *(string) --* Packet Identifier (PID) for input source ETV Platform
        data to this output. Can be entered as a decimal or hexadecimal value. Valid values are 32
        (or 0x20)..8182 (or 0x1ff6).

        - **EtvSignalPid** *(string) --* Packet Identifier (PID) for input source ETV Signal data to
        this output. Can be entered as a decimal or hexadecimal value. Valid values are 32 (or
        0x20)..8182 (or 0x1ff6).

        - **FragmentTime** *(float) --* The length in seconds of each fragment. Only used with EBP
        markers.

        - **Klv** *(string) --* If set to passthrough, passes any KLV data from the input source to
        this output.

        - **KlvDataPids** *(string) --* Packet Identifier (PID) for input source KLV data to this
        output. Multiple values are accepted, and can be entered in ranges and/or by comma
        separation. Can be entered as decimal or hexadecimal values. Each PID specified must be in
        the range of 32 (or 0x20)..8182 (or 0x1ff6).

        - **NielsenId3Behavior** *(string) --* If set to passthrough, Nielsen inaudible tones for
        media tracking will be detected in the input audio and an equivalent ID3 tag will be
        inserted in the output.

        - **NullPacketBitrate** *(float) --* Value in bits per second of extra null packets to
        insert into the transport stream. This can be used if a downstream encryption system
        requires periodic null packets.

        - **PatInterval** *(integer) --* The number of milliseconds between instances of this table
        in the output transport stream. Valid values are 0, 10..1000.

        - **PcrControl** *(string) --* When set to pcrEveryPesPacket, a Program Clock Reference
        value is inserted for every Packetized Elementary Stream (PES) header. This parameter is
        effective only when the PCR PID is the same as the video or audio elementary stream.

        - **PcrPeriod** *(integer) --* Maximum time in milliseconds between Program Clock Reference
        (PCRs) inserted into the transport stream.

        - **PcrPid** *(string) --* Packet Identifier (PID) of the Program Clock Reference (PCR) in
        the transport stream. When no value is given, the encoder will assign the same value as the
        Video PID. Can be entered as a decimal or hexadecimal value. Valid values are 32 (or
        0x20)..8182 (or 0x1ff6).

        - **PmtInterval** *(integer) --* The number of milliseconds between instances of this table
        in the output transport stream. Valid values are 0, 10..1000.

        - **PmtPid** *(string) --* Packet Identifier (PID) for the Program Map Table (PMT) in the
        transport stream. Can be entered as a decimal or hexadecimal value. Valid values are 32 (or
        0x20)..8182 (or 0x1ff6).

        - **ProgramNum** *(integer) --* The value of the program number field in the Program Map
        Table.

        - **RateMode** *(string) --* When vbr, does not insert null packets into transport stream to
        fill specified bitrate. The bitrate setting acts as the maximum bitrate when vbr is set.

        - **Scte27Pids** *(string) --* Packet Identifier (PID) for input source SCTE-27 data to this
        output. Multiple values are accepted, and can be entered in ranges and/or by comma
        separation. Can be entered as decimal or hexadecimal values. Each PID specified must be in
        the range of 32 (or 0x20)..8182 (or 0x1ff6).

        - **Scte35Control** *(string) --* Optionally pass SCTE-35 signals from the input source to
        this output.

        - **Scte35Pid** *(string) --* Packet Identifier (PID) of the SCTE-35 stream in the transport
        stream. Can be entered as a decimal or hexadecimal value. Valid values are 32 (or
        0x20)..8182 (or 0x1ff6).

        - **SegmentationMarkers** *(string) --* Inserts segmentation markers at each
        segmentationTime period. raiSegstart sets the Random Access Indicator bit in the adaptation
        field. raiAdapt sets the RAI bit and adds the current timecode in the private data bytes.
        psiSegstart inserts PAT and PMT tables at the start of segments. ebp adds Encoder Boundary
        Point information to the adaptation field as per OpenCable specification
        OC-SP-EBP-I01-130118. ebpLegacy adds Encoder Boundary Point information to the adaptation
        field using a legacy proprietary format.

        - **SegmentationStyle** *(string) --* The segmentation style parameter controls how
        segmentation markers are inserted into the transport stream. With avails, it is possible
        that segments may be truncated, which can influence where future segmentation markers are
        inserted. When a segmentation style of "resetCadence" is selected and a segment is truncated
        due to an avail, we will reset the segmentation cadence. This means the subsequent segment
        will have a duration of $segmentationTime seconds. When a segmentation style of
        "maintainCadence" is selected and a segment is truncated due to an avail, we will not reset
        the segmentation cadence. This means the subsequent segment will likely be truncated as
        well. However, all segments after that will have a duration of $segmentationTime seconds.
        Note that EBP lookahead is a slight exception to this rule.

        - **SegmentationTime** *(float) --* The length in seconds of each segment. Required unless
        markers is set to None_.

        - **TimedMetadataBehavior** *(string) --* When set to passthrough, timed metadata will be
        passed through from input to output.

        - **TimedMetadataPid** *(string) --* Packet Identifier (PID) of the timed metadata stream in
        the transport stream. Can be entered as a decimal or hexadecimal value. Valid values are 32
        (or 0x20)..8182 (or 0x1ff6).

        - **TransportStreamId** *(integer) --* The value of the transport stream ID field in the
        Program Map Table.

        - **VideoPid** *(string) --* Packet Identifier (PID) of the elementary video stream in the
        transport stream. Can be entered as a decimal or hexadecimal value. Valid values are 32 (or
        0x20)..8182 (or 0x1ff6).

    - **Destination** *(dict) --* **[REQUIRED]** Destination address and port number for RTP or UDP
    packets. Can be unicast or multicast RTP or UDP (eg. rtp://239.10.10.10:5001 or
    udp://10.100.100.100:5002).

      - **DestinationRefId** *(string) --* Placeholder documentation for __string

    - **FecOutputSettings** *(dict) --* Settings for enabling and adjusting Forward Error Correction
    on UDP outputs.

      - **ColumnDepth** *(integer) --* Parameter D from SMPTE 2022-1. The height of the FEC
      protection matrix. The number of transport stream packets per column error correction packet.
      Must be between 4 and 20, inclusive.

      - **IncludeFec** *(string) --* Enables column only or column and row based FEC

      - **RowLength** *(integer) --* Parameter L from SMPTE 2022-1. The width of the FEC protection
      matrix. Must be between 1 and 20, inclusive. If only Column FEC is used, then larger values
      increase robustness. If Row FEC is used, then this is the number of transport stream packets
      per row error correction packet, and the value must be between 4 and 20, inclusive, if
      includeFec is columnAndRow. If includeFec is column, this value must be 1 to 20, inclusive.
    """


_ClientCreateChannelEncoderSettingsOutputGroupsOutputsOutputSettingsTypeDef = TypedDict(
    "_ClientCreateChannelEncoderSettingsOutputGroupsOutputsOutputSettingsTypeDef",
    {
        "ArchiveOutputSettings": ClientCreateChannelEncoderSettingsOutputGroupsOutputsOutputSettingsArchiveOutputSettingsTypeDef,
        "FrameCaptureOutputSettings": ClientCreateChannelEncoderSettingsOutputGroupsOutputsOutputSettingsFrameCaptureOutputSettingsTypeDef,
        "HlsOutputSettings": ClientCreateChannelEncoderSettingsOutputGroupsOutputsOutputSettingsHlsOutputSettingsTypeDef,
        "MediaPackageOutputSettings": Dict,
        "MsSmoothOutputSettings": ClientCreateChannelEncoderSettingsOutputGroupsOutputsOutputSettingsMsSmoothOutputSettingsTypeDef,
        "MultiplexOutputSettings": ClientCreateChannelEncoderSettingsOutputGroupsOutputsOutputSettingsMultiplexOutputSettingsTypeDef,
        "RtmpOutputSettings": ClientCreateChannelEncoderSettingsOutputGroupsOutputsOutputSettingsRtmpOutputSettingsTypeDef,
        "UdpOutputSettings": ClientCreateChannelEncoderSettingsOutputGroupsOutputsOutputSettingsUdpOutputSettingsTypeDef,
    },
    total=False,
)


class ClientCreateChannelEncoderSettingsOutputGroupsOutputsOutputSettingsTypeDef(
    _ClientCreateChannelEncoderSettingsOutputGroupsOutputsOutputSettingsTypeDef
):
    """
    Type definition for `ClientCreateChannelEncoderSettingsOutputGroupsOutputs` `OutputSettings`

    - **ArchiveOutputSettings** *(dict) --* Archive Output Settings

      - **ContainerSettings** *(dict) --* **[REQUIRED]** Settings specific to the container type of
      the file.

        - **M2tsSettings** *(dict) --* M2ts Settings

          - **AbsentInputAudioBehavior** *(string) --* When set to drop, output audio streams will
          be removed from the program if the selected input audio stream is removed from the input.
          This allows the output audio configuration to dynamically change based on input
          configuration. If this is set to encodeSilence, all output audio streams will output
          encoded silence when not connected to an active input stream.

          - **Arib** *(string) --* When set to enabled, uses ARIB-compliant field muxing and removes
          video descriptor.

          - **AribCaptionsPid** *(string) --* Packet Identifier (PID) for ARIB Captions in the
          transport stream. Can be entered as a decimal or hexadecimal value. Valid values are 32
          (or 0x20)..8182 (or 0x1ff6).

          - **AribCaptionsPidControl** *(string) --* If set to auto, pid number used for ARIB
          Captions will be auto-selected from unused pids. If set to useConfigured, ARIB Captions
          will be on the configured pid number.

          - **AudioBufferModel** *(string) --* When set to dvb, uses DVB buffer model for Dolby
          Digital audio. When set to atsc, the ATSC model is used.

          - **AudioFramesPerPes** *(integer) --* The number of audio frames to insert for each PES
          packet.

          - **AudioPids** *(string) --* Packet Identifier (PID) of the elementary audio stream(s) in
          the transport stream. Multiple values are accepted, and can be entered in ranges and/or by
          comma separation. Can be entered as decimal or hexadecimal values. Each PID specified must
          be in the range of 32 (or 0x20)..8182 (or 0x1ff6).

          - **AudioStreamType** *(string) --* When set to atsc, uses stream type =
               0x81 for AC3 and
          stream type = 0x87 for EAC3. When set to dvb, uses stream type = 0x06.

          - **Bitrate** *(integer) --* The output bitrate of the transport stream in bits per
          second. Setting to 0 lets the muxer automatically determine the appropriate bitrate.

          - **BufferModel** *(string) --* If set to multiplex, use multiplex buffer model for
          accurate interleaving. Setting to bufferModel to none can lead to lower latency, but
          low-memory devices may not be able to play back the stream without interruptions.

          - **CcDescriptor** *(string) --* When set to enabled, generates captionServiceDescriptor
          in PMT.

          - **DvbNitSettings** *(dict) --* Inserts DVB Network Information Table (NIT) at the
          specified table repetition interval.

            - **NetworkId** *(integer) --* **[REQUIRED]** The numeric value placed in the Network
            Information Table (NIT).

            - **NetworkName** *(string) --* **[REQUIRED]** The network name text placed in the
            networkNameDescriptor inside the Network Information Table. Maximum length is 256
            characters.

            - **RepInterval** *(integer) --* The number of milliseconds between instances of this
            table in the output transport stream.

          - **DvbSdtSettings** *(dict) --* Inserts DVB Service Description Table (SDT) at the
          specified table repetition interval.

            - **OutputSdt** *(string) --* Selects method of inserting SDT information into output
            stream. The sdtFollow setting copies SDT information from input stream to output stream.
            The sdtFollowIfPresent setting copies SDT information from input stream to output stream
            if SDT information is present in the input, otherwise it will fall back on the
            user-defined values. The sdtManual setting means user will enter the SDT information.
            The sdtNone setting means output stream will not contain SDT information.

            - **RepInterval** *(integer) --* The number of milliseconds between instances of this
            table in the output transport stream.

            - **ServiceName** *(string) --* The service name placed in the serviceDescriptor in the
            Service Description Table. Maximum length is 256 characters.

            - **ServiceProviderName** *(string) --* The service provider name placed in the
            serviceDescriptor in the Service Description Table. Maximum length is 256 characters.

          - **DvbSubPids** *(string) --* Packet Identifier (PID) for input source DVB Subtitle data
          to this output. Multiple values are accepted, and can be entered in ranges and/or by comma
          separation. Can be entered as decimal or hexadecimal values. Each PID specified must be in
          the range of 32 (or 0x20)..8182 (or 0x1ff6).

          - **DvbTdtSettings** *(dict) --* Inserts DVB Time and Date Table (TDT) at the specified
          table repetition interval.

            - **RepInterval** *(integer) --* The number of milliseconds between instances of this
            table in the output transport stream.

          - **DvbTeletextPid** *(string) --* Packet Identifier (PID) for input source DVB Teletext
          data to this output. Can be entered as a decimal or hexadecimal value. Valid values are 32
          (or 0x20)..8182 (or 0x1ff6).

          - **Ebif** *(string) --* If set to passthrough, passes any EBIF data from the input source
          to this output.

          - **EbpAudioInterval** *(string) --* When videoAndFixedIntervals is selected, audio EBP
          markers will be added to partitions 3 and 4. The interval between these additional markers
          will be fixed, and will be slightly shorter than the video EBP marker interval. Only
          available when EBP Cablelabs segmentation markers are selected. Partitions 1 and 2 will
          always follow the video interval.

          - **EbpLookaheadMs** *(integer) --* When set, enforces that Encoder Boundary Points do not
          come within the specified time interval of each other by looking ahead at input video. If
          another EBP is going to come in within the specified time interval, the current EBP is not
          emitted, and the segment is "stretched" to the next marker. The lookahead value does not
          add latency to the system. The Live Event must be configured elsewhere to create
          sufficient latency to make the lookahead accurate.

          - **EbpPlacement** *(string) --* Controls placement of EBP on Audio PIDs. If set to
          videoAndAudioPids, EBP markers will be placed on the video PID and all audio PIDs. If set
          to videoPid, EBP markers will be placed on only the video PID.

          - **EcmPid** *(string) --* This field is unused and deprecated.

          - **EsRateInPes** *(string) --* Include or exclude the ES Rate field in the PES header.

          - **EtvPlatformPid** *(string) --* Packet Identifier (PID) for input source ETV Platform
          data to this output. Can be entered as a decimal or hexadecimal value. Valid values are 32
          (or 0x20)..8182 (or 0x1ff6).

          - **EtvSignalPid** *(string) --* Packet Identifier (PID) for input source ETV Signal data
          to this output. Can be entered as a decimal or hexadecimal value. Valid values are 32 (or
          0x20)..8182 (or 0x1ff6).

          - **FragmentTime** *(float) --* The length in seconds of each fragment. Only used with EBP
          markers.

          - **Klv** *(string) --* If set to passthrough, passes any KLV data from the input source
          to this output.

          - **KlvDataPids** *(string) --* Packet Identifier (PID) for input source KLV data to this
          output. Multiple values are accepted, and can be entered in ranges and/or by comma
          separation. Can be entered as decimal or hexadecimal values. Each PID specified must be in
          the range of 32 (or 0x20)..8182 (or 0x1ff6).

          - **NielsenId3Behavior** *(string) --* If set to passthrough, Nielsen inaudible tones for
          media tracking will be detected in the input audio and an equivalent ID3 tag will be
          inserted in the output.

          - **NullPacketBitrate** *(float) --* Value in bits per second of extra null packets to
          insert into the transport stream. This can be used if a downstream encryption system
          requires periodic null packets.

          - **PatInterval** *(integer) --* The number of milliseconds between instances of this
          table in the output transport stream. Valid values are 0, 10..1000.

          - **PcrControl** *(string) --* When set to pcrEveryPesPacket, a Program Clock Reference
          value is inserted for every Packetized Elementary Stream (PES) header. This parameter is
          effective only when the PCR PID is the same as the video or audio elementary stream.

          - **PcrPeriod** *(integer) --* Maximum time in milliseconds between Program Clock
          Reference (PCRs) inserted into the transport stream.

          - **PcrPid** *(string) --* Packet Identifier (PID) of the Program Clock Reference (PCR) in
          the transport stream. When no value is given, the encoder will assign the same value as
          the Video PID. Can be entered as a decimal or hexadecimal value. Valid values are 32 (or
          0x20)..8182 (or 0x1ff6).

          - **PmtInterval** *(integer) --* The number of milliseconds between instances of this
          table in the output transport stream. Valid values are 0, 10..1000.

          - **PmtPid** *(string) --* Packet Identifier (PID) for the Program Map Table (PMT) in the
          transport stream. Can be entered as a decimal or hexadecimal value. Valid values are 32
          (or 0x20)..8182 (or 0x1ff6).

          - **ProgramNum** *(integer) --* The value of the program number field in the Program Map
          Table.

          - **RateMode** *(string) --* When vbr, does not insert null packets into transport stream
          to fill specified bitrate. The bitrate setting acts as the maximum bitrate when vbr is
          set.

          - **Scte27Pids** *(string) --* Packet Identifier (PID) for input source SCTE-27 data to
          this output. Multiple values are accepted, and can be entered in ranges and/or by comma
          separation. Can be entered as decimal or hexadecimal values. Each PID specified must be in
          the range of 32 (or 0x20)..8182 (or 0x1ff6).

          - **Scte35Control** *(string) --* Optionally pass SCTE-35 signals from the input source to
          this output.

          - **Scte35Pid** *(string) --* Packet Identifier (PID) of the SCTE-35 stream in the
          transport stream. Can be entered as a decimal or hexadecimal value. Valid values are 32
          (or 0x20)..8182 (or 0x1ff6).

          - **SegmentationMarkers** *(string) --* Inserts segmentation markers at each
          segmentationTime period. raiSegstart sets the Random Access Indicator bit in the
          adaptation field. raiAdapt sets the RAI bit and adds the current timecode in the private
          data bytes. psiSegstart inserts PAT and PMT tables at the start of segments. ebp adds
          Encoder Boundary Point information to the adaptation field as per OpenCable specification
          OC-SP-EBP-I01-130118. ebpLegacy adds Encoder Boundary Point information to the adaptation
          field using a legacy proprietary format.

          - **SegmentationStyle** *(string) --* The segmentation style parameter controls how
          segmentation markers are inserted into the transport stream. With avails, it is possible
          that segments may be truncated, which can influence where future segmentation markers are
          inserted. When a segmentation style of "resetCadence" is selected and a segment is
          truncated due to an avail, we will reset the segmentation cadence. This means the
          subsequent segment will have a duration of $segmentationTime seconds. When a segmentation
          style of "maintainCadence" is selected and a segment is truncated due to an avail, we will
          not reset the segmentation cadence. This means the subsequent segment will likely be
          truncated as well. However, all segments after that will have a duration of
          $segmentationTime seconds. Note that EBP lookahead is a slight exception to this rule.

          - **SegmentationTime** *(float) --* The length in seconds of each segment. Required unless
          markers is set to None_.

          - **TimedMetadataBehavior** *(string) --* When set to passthrough, timed metadata will be
          passed through from input to output.

          - **TimedMetadataPid** *(string) --* Packet Identifier (PID) of the timed metadata stream
          in the transport stream. Can be entered as a decimal or hexadecimal value. Valid values
          are 32 (or 0x20)..8182 (or 0x1ff6).

          - **TransportStreamId** *(integer) --* The value of the transport stream ID field in the
          Program Map Table.

          - **VideoPid** *(string) --* Packet Identifier (PID) of the elementary video stream in the
          transport stream. Can be entered as a decimal or hexadecimal value. Valid values are 32
          (or 0x20)..8182 (or 0x1ff6).

      - **Extension** *(string) --* Output file extension. If excluded, this will be auto-selected
      from the container type.

      - **NameModifier** *(string) --* String concatenated to the end of the destination filename.
      Required for multiple outputs of the same type.

    - **FrameCaptureOutputSettings** *(dict) --* Frame Capture Output Settings

      - **NameModifier** *(string) --* Required if the output group contains more than one output.
      This modifier forms part of the output file name.

    - **HlsOutputSettings** *(dict) --* Hls Output Settings

      - **HlsSettings** *(dict) --* **[REQUIRED]** Settings regarding the underlying stream. These
      settings are different for audio-only outputs.

        - **AudioOnlyHlsSettings** *(dict) --* Audio Only Hls Settings

          - **AudioGroupId** *(string) --* Specifies the group to which the audio Rendition belongs.

          - **AudioOnlyImage** *(dict) --* Optional. Specifies the .jpg or .png image to use as the
          cover art for an audio-only output. We recommend a low bit-size file because the image
          increases the output audio bandwidth. The image is attached to the audio as an ID3 tag,
          frame type APIC, picture type 0x10, as per the "ID3 tag version 2.4.0 - Native Frames"
          standard.

            - **PasswordParam** *(string) --* key used to extract the password from EC2 Parameter
            store

            - **Uri** *(string) --* **[REQUIRED]** Uniform Resource Identifier - This should be a
            path to a file accessible to the Live system (eg. a http:// URI) depending on the output
            type. For example, a RTMP destination should have a uri simliar to:
            "rtmp://fmsserver/live".

            - **Username** *(string) --* Documentation update needed

          - **AudioTrackType** *(string) --* Four types of audio-only tracks are supported:
          Audio-Only Variant Stream The client can play back this audio-only stream instead of video
          in low-bandwidth scenarios. Represented as an EXT-X-STREAM-INF in the HLS manifest.
          Alternate Audio, Auto Select, Default Alternate rendition that the client should try to
          play back by default. Represented as an EXT-X-MEDIA in the HLS manifest with DEFAULT=YES,
          AUTOSELECT=
              YES Alternate Audio, Auto Select, Not Default Alternate rendition that the
          client may try to play back by default. Represented as an EXT-X-MEDIA in the HLS manifest
          with DEFAULT=NO, AUTOSELECT=
              YES Alternate Audio, not Auto Select Alternate rendition that
          the client will not try to play back by default. Represented as an EXT-X-MEDIA in the HLS
          manifest with DEFAULT=NO, AUTOSELECT=NO

        - **StandardHlsSettings** *(dict) --* Standard Hls Settings

          - **AudioRenditionSets** *(string) --* List all the audio groups that are used with the
          video output stream. Input all the audio GROUP-IDs that are associated to the video,
          separate by ','.

          - **M3u8Settings** *(dict) --* **[REQUIRED]** Settings information for the .m3u8 container

            - **AudioFramesPerPes** *(integer) --* The number of audio frames to insert for each PES
            packet.

            - **AudioPids** *(string) --* Packet Identifier (PID) of the elementary audio stream(s)
            in the transport stream. Multiple values are accepted, and can be entered in ranges
            and/or by comma separation. Can be entered as decimal or hexadecimal values.

            - **EcmPid** *(string) --* This parameter is unused and deprecated.

            - **NielsenId3Behavior** *(string) --* If set to passthrough, Nielsen inaudible tones
            for media tracking will be detected in the input audio and an equivalent ID3 tag will be
            inserted in the output.

            - **PatInterval** *(integer) --* The number of milliseconds between instances of this
            table in the output transport stream. A value of \\"0\\" writes out the PMT once per
            segment file.

            - **PcrControl** *(string) --* When set to pcrEveryPesPacket, a Program Clock Reference
            value is inserted for every Packetized Elementary Stream (PES) header. This parameter is
            effective only when the PCR PID is the same as the video or audio elementary stream.

            - **PcrPeriod** *(integer) --* Maximum time in milliseconds between Program Clock
            References (PCRs) inserted into the transport stream.

            - **PcrPid** *(string) --* Packet Identifier (PID) of the Program Clock Reference (PCR)
            in the transport stream. When no value is given, the encoder will assign the same value
            as the Video PID. Can be entered as a decimal or hexadecimal value.

            - **PmtInterval** *(integer) --* The number of milliseconds between instances of this
            table in the output transport stream. A value of \\"0\\" writes out the PMT once per
            segment file.

            - **PmtPid** *(string) --* Packet Identifier (PID) for the Program Map Table (PMT) in
            the transport stream. Can be entered as a decimal or hexadecimal value.

            - **ProgramNum** *(integer) --* The value of the program number field in the Program Map
            Table.

            - **Scte35Behavior** *(string) --* If set to passthrough, passes any SCTE-35 signals
            from the input source to this output.

            - **Scte35Pid** *(string) --* Packet Identifier (PID) of the SCTE-35 stream in the
            transport stream. Can be entered as a decimal or hexadecimal value.

            - **TimedMetadataBehavior** *(string) --* When set to passthrough, timed metadata is
            passed through from input to output.

            - **TimedMetadataPid** *(string) --* Packet Identifier (PID) of the timed metadata
            stream in the transport stream. Can be entered as a decimal or hexadecimal value. Valid
            values are 32 (or 0x20)..8182 (or 0x1ff6).

            - **TransportStreamId** *(integer) --* The value of the transport stream ID field in the
            Program Map Table.

            - **VideoPid** *(string) --* Packet Identifier (PID) of the elementary video stream in
            the transport stream. Can be entered as a decimal or hexadecimal value.

      - **NameModifier** *(string) --* String concatenated to the end of the destination filename.
      Accepts \\"Format Identifiers\\":#formatIdentifierParameters.

      - **SegmentModifier** *(string) --* String concatenated to end of segment filenames.

    - **MediaPackageOutputSettings** *(dict) --* Media Package Output Settings

    - **MsSmoothOutputSettings** *(dict) --* Ms Smooth Output Settings

      - **H265PackagingType** *(string) --* Only applicable when this output is referencing an H.265
      video description. Specifies whether MP4 segments should be packaged as HEV1 or HVC1.

      - **NameModifier** *(string) --* String concatenated to the end of the destination filename.
      Required for multiple outputs of the same type.

    - **MultiplexOutputSettings** *(dict) --* Multiplex Output Settings

      - **Destination** *(dict) --* **[REQUIRED]** Destination is a Multiplex.

        - **DestinationRefId** *(string) --* Placeholder documentation for __string

    - **RtmpOutputSettings** *(dict) --* Rtmp Output Settings

      - **CertificateMode** *(string) --* If set to verifyAuthenticity, verify the tls certificate
      chain to a trusted Certificate Authority (CA). This will cause rtmps outputs with self-signed
      certificates to fail.

      - **ConnectionRetryInterval** *(integer) --* Number of seconds to wait before retrying a
      connection to the Flash Media server if the connection is lost.

      - **Destination** *(dict) --* **[REQUIRED]** The RTMP endpoint excluding the stream name (eg.
      rtmp://host/appname). For connection to Akamai, a username and password must be supplied. URI
      fields accept format identifiers.

        - **DestinationRefId** *(string) --* Placeholder documentation for __string

      - **NumRetries** *(integer) --* Number of retry attempts.

    - **UdpOutputSettings** *(dict) --* Udp Output Settings

      - **BufferMsec** *(integer) --* UDP output buffering in milliseconds. Larger values increase
      latency through the transcoder but simultaneously assist the transcoder in maintaining a
      constant, low-jitter UDP/RTP output while accommodating clock recovery, input switching, input
      disruptions, picture reordering, etc.

      - **ContainerSettings** *(dict) --* **[REQUIRED]** Udp Container Settings

        - **M2tsSettings** *(dict) --* M2ts Settings

          - **AbsentInputAudioBehavior** *(string) --* When set to drop, output audio streams will
          be removed from the program if the selected input audio stream is removed from the input.
          This allows the output audio configuration to dynamically change based on input
          configuration. If this is set to encodeSilence, all output audio streams will output
          encoded silence when not connected to an active input stream.

          - **Arib** *(string) --* When set to enabled, uses ARIB-compliant field muxing and removes
          video descriptor.

          - **AribCaptionsPid** *(string) --* Packet Identifier (PID) for ARIB Captions in the
          transport stream. Can be entered as a decimal or hexadecimal value. Valid values are 32
          (or 0x20)..8182 (or 0x1ff6).

          - **AribCaptionsPidControl** *(string) --* If set to auto, pid number used for ARIB
          Captions will be auto-selected from unused pids. If set to useConfigured, ARIB Captions
          will be on the configured pid number.

          - **AudioBufferModel** *(string) --* When set to dvb, uses DVB buffer model for Dolby
          Digital audio. When set to atsc, the ATSC model is used.

          - **AudioFramesPerPes** *(integer) --* The number of audio frames to insert for each PES
          packet.

          - **AudioPids** *(string) --* Packet Identifier (PID) of the elementary audio stream(s) in
          the transport stream. Multiple values are accepted, and can be entered in ranges and/or by
          comma separation. Can be entered as decimal or hexadecimal values. Each PID specified must
          be in the range of 32 (or 0x20)..8182 (or 0x1ff6).

          - **AudioStreamType** *(string) --* When set to atsc, uses stream type =
               0x81 for AC3 and
          stream type = 0x87 for EAC3. When set to dvb, uses stream type = 0x06.

          - **Bitrate** *(integer) --* The output bitrate of the transport stream in bits per
          second. Setting to 0 lets the muxer automatically determine the appropriate bitrate.

          - **BufferModel** *(string) --* If set to multiplex, use multiplex buffer model for
          accurate interleaving. Setting to bufferModel to none can lead to lower latency, but
          low-memory devices may not be able to play back the stream without interruptions.

          - **CcDescriptor** *(string) --* When set to enabled, generates captionServiceDescriptor
          in PMT.

          - **DvbNitSettings** *(dict) --* Inserts DVB Network Information Table (NIT) at the
          specified table repetition interval.

            - **NetworkId** *(integer) --* **[REQUIRED]** The numeric value placed in the Network
            Information Table (NIT).

            - **NetworkName** *(string) --* **[REQUIRED]** The network name text placed in the
            networkNameDescriptor inside the Network Information Table. Maximum length is 256
            characters.

            - **RepInterval** *(integer) --* The number of milliseconds between instances of this
            table in the output transport stream.

          - **DvbSdtSettings** *(dict) --* Inserts DVB Service Description Table (SDT) at the
          specified table repetition interval.

            - **OutputSdt** *(string) --* Selects method of inserting SDT information into output
            stream. The sdtFollow setting copies SDT information from input stream to output stream.
            The sdtFollowIfPresent setting copies SDT information from input stream to output stream
            if SDT information is present in the input, otherwise it will fall back on the
            user-defined values. The sdtManual setting means user will enter the SDT information.
            The sdtNone setting means output stream will not contain SDT information.

            - **RepInterval** *(integer) --* The number of milliseconds between instances of this
            table in the output transport stream.

            - **ServiceName** *(string) --* The service name placed in the serviceDescriptor in the
            Service Description Table. Maximum length is 256 characters.

            - **ServiceProviderName** *(string) --* The service provider name placed in the
            serviceDescriptor in the Service Description Table. Maximum length is 256 characters.

          - **DvbSubPids** *(string) --* Packet Identifier (PID) for input source DVB Subtitle data
          to this output. Multiple values are accepted, and can be entered in ranges and/or by comma
          separation. Can be entered as decimal or hexadecimal values. Each PID specified must be in
          the range of 32 (or 0x20)..8182 (or 0x1ff6).

          - **DvbTdtSettings** *(dict) --* Inserts DVB Time and Date Table (TDT) at the specified
          table repetition interval.

            - **RepInterval** *(integer) --* The number of milliseconds between instances of this
            table in the output transport stream.

          - **DvbTeletextPid** *(string) --* Packet Identifier (PID) for input source DVB Teletext
          data to this output. Can be entered as a decimal or hexadecimal value. Valid values are 32
          (or 0x20)..8182 (or 0x1ff6).

          - **Ebif** *(string) --* If set to passthrough, passes any EBIF data from the input source
          to this output.

          - **EbpAudioInterval** *(string) --* When videoAndFixedIntervals is selected, audio EBP
          markers will be added to partitions 3 and 4. The interval between these additional markers
          will be fixed, and will be slightly shorter than the video EBP marker interval. Only
          available when EBP Cablelabs segmentation markers are selected. Partitions 1 and 2 will
          always follow the video interval.

          - **EbpLookaheadMs** *(integer) --* When set, enforces that Encoder Boundary Points do not
          come within the specified time interval of each other by looking ahead at input video. If
          another EBP is going to come in within the specified time interval, the current EBP is not
          emitted, and the segment is "stretched" to the next marker. The lookahead value does not
          add latency to the system. The Live Event must be configured elsewhere to create
          sufficient latency to make the lookahead accurate.

          - **EbpPlacement** *(string) --* Controls placement of EBP on Audio PIDs. If set to
          videoAndAudioPids, EBP markers will be placed on the video PID and all audio PIDs. If set
          to videoPid, EBP markers will be placed on only the video PID.

          - **EcmPid** *(string) --* This field is unused and deprecated.

          - **EsRateInPes** *(string) --* Include or exclude the ES Rate field in the PES header.

          - **EtvPlatformPid** *(string) --* Packet Identifier (PID) for input source ETV Platform
          data to this output. Can be entered as a decimal or hexadecimal value. Valid values are 32
          (or 0x20)..8182 (or 0x1ff6).

          - **EtvSignalPid** *(string) --* Packet Identifier (PID) for input source ETV Signal data
          to this output. Can be entered as a decimal or hexadecimal value. Valid values are 32 (or
          0x20)..8182 (or 0x1ff6).

          - **FragmentTime** *(float) --* The length in seconds of each fragment. Only used with EBP
          markers.

          - **Klv** *(string) --* If set to passthrough, passes any KLV data from the input source
          to this output.

          - **KlvDataPids** *(string) --* Packet Identifier (PID) for input source KLV data to this
          output. Multiple values are accepted, and can be entered in ranges and/or by comma
          separation. Can be entered as decimal or hexadecimal values. Each PID specified must be in
          the range of 32 (or 0x20)..8182 (or 0x1ff6).

          - **NielsenId3Behavior** *(string) --* If set to passthrough, Nielsen inaudible tones for
          media tracking will be detected in the input audio and an equivalent ID3 tag will be
          inserted in the output.

          - **NullPacketBitrate** *(float) --* Value in bits per second of extra null packets to
          insert into the transport stream. This can be used if a downstream encryption system
          requires periodic null packets.

          - **PatInterval** *(integer) --* The number of milliseconds between instances of this
          table in the output transport stream. Valid values are 0, 10..1000.

          - **PcrControl** *(string) --* When set to pcrEveryPesPacket, a Program Clock Reference
          value is inserted for every Packetized Elementary Stream (PES) header. This parameter is
          effective only when the PCR PID is the same as the video or audio elementary stream.

          - **PcrPeriod** *(integer) --* Maximum time in milliseconds between Program Clock
          Reference (PCRs) inserted into the transport stream.

          - **PcrPid** *(string) --* Packet Identifier (PID) of the Program Clock Reference (PCR) in
          the transport stream. When no value is given, the encoder will assign the same value as
          the Video PID. Can be entered as a decimal or hexadecimal value. Valid values are 32 (or
          0x20)..8182 (or 0x1ff6).

          - **PmtInterval** *(integer) --* The number of milliseconds between instances of this
          table in the output transport stream. Valid values are 0, 10..1000.

          - **PmtPid** *(string) --* Packet Identifier (PID) for the Program Map Table (PMT) in the
          transport stream. Can be entered as a decimal or hexadecimal value. Valid values are 32
          (or 0x20)..8182 (or 0x1ff6).

          - **ProgramNum** *(integer) --* The value of the program number field in the Program Map
          Table.

          - **RateMode** *(string) --* When vbr, does not insert null packets into transport stream
          to fill specified bitrate. The bitrate setting acts as the maximum bitrate when vbr is
          set.

          - **Scte27Pids** *(string) --* Packet Identifier (PID) for input source SCTE-27 data to
          this output. Multiple values are accepted, and can be entered in ranges and/or by comma
          separation. Can be entered as decimal or hexadecimal values. Each PID specified must be in
          the range of 32 (or 0x20)..8182 (or 0x1ff6).

          - **Scte35Control** *(string) --* Optionally pass SCTE-35 signals from the input source to
          this output.

          - **Scte35Pid** *(string) --* Packet Identifier (PID) of the SCTE-35 stream in the
          transport stream. Can be entered as a decimal or hexadecimal value. Valid values are 32
          (or 0x20)..8182 (or 0x1ff6).

          - **SegmentationMarkers** *(string) --* Inserts segmentation markers at each
          segmentationTime period. raiSegstart sets the Random Access Indicator bit in the
          adaptation field. raiAdapt sets the RAI bit and adds the current timecode in the private
          data bytes. psiSegstart inserts PAT and PMT tables at the start of segments. ebp adds
          Encoder Boundary Point information to the adaptation field as per OpenCable specification
          OC-SP-EBP-I01-130118. ebpLegacy adds Encoder Boundary Point information to the adaptation
          field using a legacy proprietary format.

          - **SegmentationStyle** *(string) --* The segmentation style parameter controls how
          segmentation markers are inserted into the transport stream. With avails, it is possible
          that segments may be truncated, which can influence where future segmentation markers are
          inserted. When a segmentation style of "resetCadence" is selected and a segment is
          truncated due to an avail, we will reset the segmentation cadence. This means the
          subsequent segment will have a duration of $segmentationTime seconds. When a segmentation
          style of "maintainCadence" is selected and a segment is truncated due to an avail, we will
          not reset the segmentation cadence. This means the subsequent segment will likely be
          truncated as well. However, all segments after that will have a duration of
          $segmentationTime seconds. Note that EBP lookahead is a slight exception to this rule.

          - **SegmentationTime** *(float) --* The length in seconds of each segment. Required unless
          markers is set to None_.

          - **TimedMetadataBehavior** *(string) --* When set to passthrough, timed metadata will be
          passed through from input to output.

          - **TimedMetadataPid** *(string) --* Packet Identifier (PID) of the timed metadata stream
          in the transport stream. Can be entered as a decimal or hexadecimal value. Valid values
          are 32 (or 0x20)..8182 (or 0x1ff6).

          - **TransportStreamId** *(integer) --* The value of the transport stream ID field in the
          Program Map Table.

          - **VideoPid** *(string) --* Packet Identifier (PID) of the elementary video stream in the
          transport stream. Can be entered as a decimal or hexadecimal value. Valid values are 32
          (or 0x20)..8182 (or 0x1ff6).

      - **Destination** *(dict) --* **[REQUIRED]** Destination address and port number for RTP or
      UDP packets. Can be unicast or multicast RTP or UDP (eg. rtp://239.10.10.10:5001 or
      udp://10.100.100.100:5002).

        - **DestinationRefId** *(string) --* Placeholder documentation for __string

      - **FecOutputSettings** *(dict) --* Settings for enabling and adjusting Forward Error
      Correction on UDP outputs.

        - **ColumnDepth** *(integer) --* Parameter D from SMPTE 2022-1. The height of the FEC
        protection matrix. The number of transport stream packets per column error correction
        packet. Must be between 4 and 20, inclusive.

        - **IncludeFec** *(string) --* Enables column only or column and row based FEC

        - **RowLength** *(integer) --* Parameter L from SMPTE 2022-1. The width of the FEC
        protection matrix. Must be between 1 and 20, inclusive. If only Column FEC is used, then
        larger values increase robustness. If Row FEC is used, then this is the number of transport
        stream packets per row error correction packet, and the value must be between 4 and 20,
        inclusive, if includeFec is columnAndRow. If includeFec is column, this value must be 1 to
        20, inclusive.
    """


_RequiredClientCreateChannelEncoderSettingsOutputGroupsOutputsTypeDef = TypedDict(
    "_RequiredClientCreateChannelEncoderSettingsOutputGroupsOutputsTypeDef",
    {"OutputSettings": ClientCreateChannelEncoderSettingsOutputGroupsOutputsOutputSettingsTypeDef},
)
_OptionalClientCreateChannelEncoderSettingsOutputGroupsOutputsTypeDef = TypedDict(
    "_OptionalClientCreateChannelEncoderSettingsOutputGroupsOutputsTypeDef",
    {
        "AudioDescriptionNames": List[str],
        "CaptionDescriptionNames": List[str],
        "OutputName": str,
        "VideoDescriptionName": str,
    },
    total=False,
)


class ClientCreateChannelEncoderSettingsOutputGroupsOutputsTypeDef(
    _RequiredClientCreateChannelEncoderSettingsOutputGroupsOutputsTypeDef,
    _OptionalClientCreateChannelEncoderSettingsOutputGroupsOutputsTypeDef,
):
    """
    Type definition for `ClientCreateChannelEncoderSettingsOutputGroups` `Outputs`

    - **AudioDescriptionNames** *(list) --* The names of the AudioDescriptions used as audio sources
    for this output.

      - *(string) --* Placeholder documentation for __string

    - **CaptionDescriptionNames** *(list) --* The names of the CaptionDescriptions used as caption
    sources for this output.

      - *(string) --* Placeholder documentation for __string

    - **OutputName** *(string) --* The name used to identify an output.

    - **OutputSettings** *(dict) --* **[REQUIRED]** Output type-specific settings.

      - **ArchiveOutputSettings** *(dict) --* Archive Output Settings

        - **ContainerSettings** *(dict) --* **[REQUIRED]** Settings specific to the container type
        of the file.

          - **M2tsSettings** *(dict) --* M2ts Settings

            - **AbsentInputAudioBehavior** *(string) --* When set to drop, output audio streams will
            be removed from the program if the selected input audio stream is removed from the
            input. This allows the output audio configuration to dynamically change based on input
            configuration. If this is set to encodeSilence, all output audio streams will output
            encoded silence when not connected to an active input stream.

            - **Arib** *(string) --* When set to enabled, uses ARIB-compliant field muxing and
            removes video descriptor.

            - **AribCaptionsPid** *(string) --* Packet Identifier (PID) for ARIB Captions in the
            transport stream. Can be entered as a decimal or hexadecimal value. Valid values are 32
            (or 0x20)..8182 (or 0x1ff6).

            - **AribCaptionsPidControl** *(string) --* If set to auto, pid number used for ARIB
            Captions will be auto-selected from unused pids. If set to useConfigured, ARIB Captions
            will be on the configured pid number.

            - **AudioBufferModel** *(string) --* When set to dvb, uses DVB buffer model for Dolby
            Digital audio. When set to atsc, the ATSC model is used.

            - **AudioFramesPerPes** *(integer) --* The number of audio frames to insert for each PES
            packet.

            - **AudioPids** *(string) --* Packet Identifier (PID) of the elementary audio stream(s)
            in the transport stream. Multiple values are accepted, and can be entered in ranges
            and/or by comma separation. Can be entered as decimal or hexadecimal values. Each PID
            specified must be in the range of 32 (or 0x20)..8182 (or 0x1ff6).

            - **AudioStreamType** *(string) --* When set to atsc, uses stream type =
                 0x81 for AC3
            and stream type = 0x87 for EAC3. When set to dvb, uses stream type = 0x06.

            - **Bitrate** *(integer) --* The output bitrate of the transport stream in bits per
            second. Setting to 0 lets the muxer automatically determine the appropriate bitrate.

            - **BufferModel** *(string) --* If set to multiplex, use multiplex buffer model for
            accurate interleaving. Setting to bufferModel to none can lead to lower latency, but
            low-memory devices may not be able to play back the stream without interruptions.

            - **CcDescriptor** *(string) --* When set to enabled, generates captionServiceDescriptor
            in PMT.

            - **DvbNitSettings** *(dict) --* Inserts DVB Network Information Table (NIT) at the
            specified table repetition interval.

              - **NetworkId** *(integer) --* **[REQUIRED]** The numeric value placed in the Network
              Information Table (NIT).

              - **NetworkName** *(string) --* **[REQUIRED]** The network name text placed in the
              networkNameDescriptor inside the Network Information Table. Maximum length is 256
              characters.

              - **RepInterval** *(integer) --* The number of milliseconds between instances of this
              table in the output transport stream.

            - **DvbSdtSettings** *(dict) --* Inserts DVB Service Description Table (SDT) at the
            specified table repetition interval.

              - **OutputSdt** *(string) --* Selects method of inserting SDT information into output
              stream. The sdtFollow setting copies SDT information from input stream to output
              stream. The sdtFollowIfPresent setting copies SDT information from input stream to
              output stream if SDT information is present in the input, otherwise it will fall back
              on the user-defined values. The sdtManual setting means user will enter the SDT
              information. The sdtNone setting means output stream will not contain SDT information.

              - **RepInterval** *(integer) --* The number of milliseconds between instances of this
              table in the output transport stream.

              - **ServiceName** *(string) --* The service name placed in the serviceDescriptor in
              the Service Description Table. Maximum length is 256 characters.

              - **ServiceProviderName** *(string) --* The service provider name placed in the
              serviceDescriptor in the Service Description Table. Maximum length is 256 characters.

            - **DvbSubPids** *(string) --* Packet Identifier (PID) for input source DVB Subtitle
            data to this output. Multiple values are accepted, and can be entered in ranges and/or
            by comma separation. Can be entered as decimal or hexadecimal values. Each PID specified
            must be in the range of 32 (or 0x20)..8182 (or 0x1ff6).

            - **DvbTdtSettings** *(dict) --* Inserts DVB Time and Date Table (TDT) at the specified
            table repetition interval.

              - **RepInterval** *(integer) --* The number of milliseconds between instances of this
              table in the output transport stream.

            - **DvbTeletextPid** *(string) --* Packet Identifier (PID) for input source DVB Teletext
            data to this output. Can be entered as a decimal or hexadecimal value. Valid values are
            32 (or 0x20)..8182 (or 0x1ff6).

            - **Ebif** *(string) --* If set to passthrough, passes any EBIF data from the input
            source to this output.

            - **EbpAudioInterval** *(string) --* When videoAndFixedIntervals is selected, audio EBP
            markers will be added to partitions 3 and 4. The interval between these additional
            markers will be fixed, and will be slightly shorter than the video EBP marker interval.
            Only available when EBP Cablelabs segmentation markers are selected. Partitions 1 and 2
            will always follow the video interval.

            - **EbpLookaheadMs** *(integer) --* When set, enforces that Encoder Boundary Points do
            not come within the specified time interval of each other by looking ahead at input
            video. If another EBP is going to come in within the specified time interval, the
            current EBP is not emitted, and the segment is "stretched" to the next marker. The
            lookahead value does not add latency to the system. The Live Event must be configured
            elsewhere to create sufficient latency to make the lookahead accurate.

            - **EbpPlacement** *(string) --* Controls placement of EBP on Audio PIDs. If set to
            videoAndAudioPids, EBP markers will be placed on the video PID and all audio PIDs. If
            set to videoPid, EBP markers will be placed on only the video PID.

            - **EcmPid** *(string) --* This field is unused and deprecated.

            - **EsRateInPes** *(string) --* Include or exclude the ES Rate field in the PES header.

            - **EtvPlatformPid** *(string) --* Packet Identifier (PID) for input source ETV Platform
            data to this output. Can be entered as a decimal or hexadecimal value. Valid values are
            32 (or 0x20)..8182 (or 0x1ff6).

            - **EtvSignalPid** *(string) --* Packet Identifier (PID) for input source ETV Signal
            data to this output. Can be entered as a decimal or hexadecimal value. Valid values are
            32 (or 0x20)..8182 (or 0x1ff6).

            - **FragmentTime** *(float) --* The length in seconds of each fragment. Only used with
            EBP markers.

            - **Klv** *(string) --* If set to passthrough, passes any KLV data from the input source
            to this output.

            - **KlvDataPids** *(string) --* Packet Identifier (PID) for input source KLV data to
            this output. Multiple values are accepted, and can be entered in ranges and/or by comma
            separation. Can be entered as decimal or hexadecimal values. Each PID specified must be
            in the range of 32 (or 0x20)..8182 (or 0x1ff6).

            - **NielsenId3Behavior** *(string) --* If set to passthrough, Nielsen inaudible tones
            for media tracking will be detected in the input audio and an equivalent ID3 tag will be
            inserted in the output.

            - **NullPacketBitrate** *(float) --* Value in bits per second of extra null packets to
            insert into the transport stream. This can be used if a downstream encryption system
            requires periodic null packets.

            - **PatInterval** *(integer) --* The number of milliseconds between instances of this
            table in the output transport stream. Valid values are 0, 10..1000.

            - **PcrControl** *(string) --* When set to pcrEveryPesPacket, a Program Clock Reference
            value is inserted for every Packetized Elementary Stream (PES) header. This parameter is
            effective only when the PCR PID is the same as the video or audio elementary stream.

            - **PcrPeriod** *(integer) --* Maximum time in milliseconds between Program Clock
            Reference (PCRs) inserted into the transport stream.

            - **PcrPid** *(string) --* Packet Identifier (PID) of the Program Clock Reference (PCR)
            in the transport stream. When no value is given, the encoder will assign the same value
            as the Video PID. Can be entered as a decimal or hexadecimal value. Valid values are 32
            (or 0x20)..8182 (or 0x1ff6).

            - **PmtInterval** *(integer) --* The number of milliseconds between instances of this
            table in the output transport stream. Valid values are 0, 10..1000.

            - **PmtPid** *(string) --* Packet Identifier (PID) for the Program Map Table (PMT) in
            the transport stream. Can be entered as a decimal or hexadecimal value. Valid values are
            32 (or 0x20)..8182 (or 0x1ff6).

            - **ProgramNum** *(integer) --* The value of the program number field in the Program Map
            Table.

            - **RateMode** *(string) --* When vbr, does not insert null packets into transport
            stream to fill specified bitrate. The bitrate setting acts as the maximum bitrate when
            vbr is set.

            - **Scte27Pids** *(string) --* Packet Identifier (PID) for input source SCTE-27 data to
            this output. Multiple values are accepted, and can be entered in ranges and/or by comma
            separation. Can be entered as decimal or hexadecimal values. Each PID specified must be
            in the range of 32 (or 0x20)..8182 (or 0x1ff6).

            - **Scte35Control** *(string) --* Optionally pass SCTE-35 signals from the input source
            to this output.

            - **Scte35Pid** *(string) --* Packet Identifier (PID) of the SCTE-35 stream in the
            transport stream. Can be entered as a decimal or hexadecimal value. Valid values are 32
            (or 0x20)..8182 (or 0x1ff6).

            - **SegmentationMarkers** *(string) --* Inserts segmentation markers at each
            segmentationTime period. raiSegstart sets the Random Access Indicator bit in the
            adaptation field. raiAdapt sets the RAI bit and adds the current timecode in the private
            data bytes. psiSegstart inserts PAT and PMT tables at the start of segments. ebp adds
            Encoder Boundary Point information to the adaptation field as per OpenCable
            specification OC-SP-EBP-I01-130118. ebpLegacy adds Encoder Boundary Point information to
            the adaptation field using a legacy proprietary format.

            - **SegmentationStyle** *(string) --* The segmentation style parameter controls how
            segmentation markers are inserted into the transport stream. With avails, it is possible
            that segments may be truncated, which can influence where future segmentation markers
            are inserted. When a segmentation style of "resetCadence" is selected and a segment is
            truncated due to an avail, we will reset the segmentation cadence. This means the
            subsequent segment will have a duration of $segmentationTime seconds. When a
            segmentation style of "maintainCadence" is selected and a segment is truncated due to an
            avail, we will not reset the segmentation cadence. This means the subsequent segment
            will likely be truncated as well. However, all segments after that will have a duration
            of $segmentationTime seconds. Note that EBP lookahead is a slight exception to this
            rule.

            - **SegmentationTime** *(float) --* The length in seconds of each segment. Required
            unless markers is set to None_.

            - **TimedMetadataBehavior** *(string) --* When set to passthrough, timed metadata will
            be passed through from input to output.

            - **TimedMetadataPid** *(string) --* Packet Identifier (PID) of the timed metadata
            stream in the transport stream. Can be entered as a decimal or hexadecimal value. Valid
            values are 32 (or 0x20)..8182 (or 0x1ff6).

            - **TransportStreamId** *(integer) --* The value of the transport stream ID field in the
            Program Map Table.

            - **VideoPid** *(string) --* Packet Identifier (PID) of the elementary video stream in
            the transport stream. Can be entered as a decimal or hexadecimal value. Valid values are
            32 (or 0x20)..8182 (or 0x1ff6).

        - **Extension** *(string) --* Output file extension. If excluded, this will be auto-selected
        from the container type.

        - **NameModifier** *(string) --* String concatenated to the end of the destination filename.
        Required for multiple outputs of the same type.

      - **FrameCaptureOutputSettings** *(dict) --* Frame Capture Output Settings

        - **NameModifier** *(string) --* Required if the output group contains more than one output.
        This modifier forms part of the output file name.

      - **HlsOutputSettings** *(dict) --* Hls Output Settings

        - **HlsSettings** *(dict) --* **[REQUIRED]** Settings regarding the underlying stream. These
        settings are different for audio-only outputs.

          - **AudioOnlyHlsSettings** *(dict) --* Audio Only Hls Settings

            - **AudioGroupId** *(string) --* Specifies the group to which the audio Rendition
            belongs.

            - **AudioOnlyImage** *(dict) --* Optional. Specifies the .jpg or .png image to use as
            the cover art for an audio-only output. We recommend a low bit-size file because the
            image increases the output audio bandwidth. The image is attached to the audio as an ID3
            tag, frame type APIC, picture type 0x10, as per the "ID3 tag version 2.4.0 - Native
            Frames" standard.

              - **PasswordParam** *(string) --* key used to extract the password from EC2 Parameter
              store

              - **Uri** *(string) --* **[REQUIRED]** Uniform Resource Identifier - This should be a
              path to a file accessible to the Live system (eg. a http:// URI) depending on the
              output type. For example, a RTMP destination should have a uri simliar to:
              "rtmp://fmsserver/live".

              - **Username** *(string) --* Documentation update needed

            - **AudioTrackType** *(string) --* Four types of audio-only tracks are supported:
            Audio-Only Variant Stream The client can play back this audio-only stream instead of
            video in low-bandwidth scenarios. Represented as an EXT-X-STREAM-INF in the HLS
            manifest. Alternate Audio, Auto Select, Default Alternate rendition that the client
            should try to play back by default. Represented as an EXT-X-MEDIA in the HLS manifest
            with DEFAULT=YES, AUTOSELECT=
                YES Alternate Audio, Auto Select, Not Default Alternate
            rendition that the client may try to play back by default. Represented as an EXT-X-MEDIA
            in the HLS manifest with DEFAULT=NO, AUTOSELECT=
                YES Alternate Audio, not Auto Select
            Alternate rendition that the client will not try to play back by default. Represented as
            an EXT-X-MEDIA in the HLS manifest with DEFAULT=NO, AUTOSELECT=NO

          - **StandardHlsSettings** *(dict) --* Standard Hls Settings

            - **AudioRenditionSets** *(string) --* List all the audio groups that are used with the
            video output stream. Input all the audio GROUP-IDs that are associated to the video,
            separate by ','.

            - **M3u8Settings** *(dict) --* **[REQUIRED]** Settings information for the .m3u8
            container

              - **AudioFramesPerPes** *(integer) --* The number of audio frames to insert for each
              PES packet.

              - **AudioPids** *(string) --* Packet Identifier (PID) of the elementary audio
              stream(s) in the transport stream. Multiple values are accepted, and can be entered in
              ranges and/or by comma separation. Can be entered as decimal or hexadecimal values.

              - **EcmPid** *(string) --* This parameter is unused and deprecated.

              - **NielsenId3Behavior** *(string) --* If set to passthrough, Nielsen inaudible tones
              for media tracking will be detected in the input audio and an equivalent ID3 tag will
              be inserted in the output.

              - **PatInterval** *(integer) --* The number of milliseconds between instances of this
              table in the output transport stream. A value of \\"0\\" writes out the PMT once per
              segment file.

              - **PcrControl** *(string) --* When set to pcrEveryPesPacket, a Program Clock
              Reference value is inserted for every Packetized Elementary Stream (PES) header. This
              parameter is effective only when the PCR PID is the same as the video or audio
              elementary stream.

              - **PcrPeriod** *(integer) --* Maximum time in milliseconds between Program Clock
              References (PCRs) inserted into the transport stream.

              - **PcrPid** *(string) --* Packet Identifier (PID) of the Program Clock Reference
              (PCR) in the transport stream. When no value is given, the encoder will assign the
              same value as the Video PID. Can be entered as a decimal or hexadecimal value.

              - **PmtInterval** *(integer) --* The number of milliseconds between instances of this
              table in the output transport stream. A value of \\"0\\" writes out the PMT once per
              segment file.

              - **PmtPid** *(string) --* Packet Identifier (PID) for the Program Map Table (PMT) in
              the transport stream. Can be entered as a decimal or hexadecimal value.

              - **ProgramNum** *(integer) --* The value of the program number field in the Program
              Map Table.

              - **Scte35Behavior** *(string) --* If set to passthrough, passes any SCTE-35 signals
              from the input source to this output.

              - **Scte35Pid** *(string) --* Packet Identifier (PID) of the SCTE-35 stream in the
              transport stream. Can be entered as a decimal or hexadecimal value.

              - **TimedMetadataBehavior** *(string) --* When set to passthrough, timed metadata is
              passed through from input to output.

              - **TimedMetadataPid** *(string) --* Packet Identifier (PID) of the timed metadata
              stream in the transport stream. Can be entered as a decimal or hexadecimal value.
              Valid values are 32 (or 0x20)..8182 (or 0x1ff6).

              - **TransportStreamId** *(integer) --* The value of the transport stream ID field in
              the Program Map Table.

              - **VideoPid** *(string) --* Packet Identifier (PID) of the elementary video stream in
              the transport stream. Can be entered as a decimal or hexadecimal value.

        - **NameModifier** *(string) --* String concatenated to the end of the destination filename.
        Accepts \\"Format Identifiers\\":#formatIdentifierParameters.

        - **SegmentModifier** *(string) --* String concatenated to end of segment filenames.

      - **MediaPackageOutputSettings** *(dict) --* Media Package Output Settings

      - **MsSmoothOutputSettings** *(dict) --* Ms Smooth Output Settings

        - **H265PackagingType** *(string) --* Only applicable when this output is referencing an
        H.265 video description. Specifies whether MP4 segments should be packaged as HEV1 or HVC1.

        - **NameModifier** *(string) --* String concatenated to the end of the destination filename.
        Required for multiple outputs of the same type.

      - **MultiplexOutputSettings** *(dict) --* Multiplex Output Settings

        - **Destination** *(dict) --* **[REQUIRED]** Destination is a Multiplex.

          - **DestinationRefId** *(string) --* Placeholder documentation for __string

      - **RtmpOutputSettings** *(dict) --* Rtmp Output Settings

        - **CertificateMode** *(string) --* If set to verifyAuthenticity, verify the tls certificate
        chain to a trusted Certificate Authority (CA). This will cause rtmps outputs with
        self-signed certificates to fail.

        - **ConnectionRetryInterval** *(integer) --* Number of seconds to wait before retrying a
        connection to the Flash Media server if the connection is lost.

        - **Destination** *(dict) --* **[REQUIRED]** The RTMP endpoint excluding the stream name
        (eg. rtmp://host/appname). For connection to Akamai, a username and password must be
        supplied. URI fields accept format identifiers.

          - **DestinationRefId** *(string) --* Placeholder documentation for __string

        - **NumRetries** *(integer) --* Number of retry attempts.

      - **UdpOutputSettings** *(dict) --* Udp Output Settings

        - **BufferMsec** *(integer) --* UDP output buffering in milliseconds. Larger values increase
        latency through the transcoder but simultaneously assist the transcoder in maintaining a
        constant, low-jitter UDP/RTP output while accommodating clock recovery, input switching,
        input disruptions, picture reordering, etc.

        - **ContainerSettings** *(dict) --* **[REQUIRED]** Udp Container Settings

          - **M2tsSettings** *(dict) --* M2ts Settings

            - **AbsentInputAudioBehavior** *(string) --* When set to drop, output audio streams will
            be removed from the program if the selected input audio stream is removed from the
            input. This allows the output audio configuration to dynamically change based on input
            configuration. If this is set to encodeSilence, all output audio streams will output
            encoded silence when not connected to an active input stream.

            - **Arib** *(string) --* When set to enabled, uses ARIB-compliant field muxing and
            removes video descriptor.

            - **AribCaptionsPid** *(string) --* Packet Identifier (PID) for ARIB Captions in the
            transport stream. Can be entered as a decimal or hexadecimal value. Valid values are 32
            (or 0x20)..8182 (or 0x1ff6).

            - **AribCaptionsPidControl** *(string) --* If set to auto, pid number used for ARIB
            Captions will be auto-selected from unused pids. If set to useConfigured, ARIB Captions
            will be on the configured pid number.

            - **AudioBufferModel** *(string) --* When set to dvb, uses DVB buffer model for Dolby
            Digital audio. When set to atsc, the ATSC model is used.

            - **AudioFramesPerPes** *(integer) --* The number of audio frames to insert for each PES
            packet.

            - **AudioPids** *(string) --* Packet Identifier (PID) of the elementary audio stream(s)
            in the transport stream. Multiple values are accepted, and can be entered in ranges
            and/or by comma separation. Can be entered as decimal or hexadecimal values. Each PID
            specified must be in the range of 32 (or 0x20)..8182 (or 0x1ff6).

            - **AudioStreamType** *(string) --* When set to atsc, uses stream type =
                 0x81 for AC3
            and stream type = 0x87 for EAC3. When set to dvb, uses stream type = 0x06.

            - **Bitrate** *(integer) --* The output bitrate of the transport stream in bits per
            second. Setting to 0 lets the muxer automatically determine the appropriate bitrate.

            - **BufferModel** *(string) --* If set to multiplex, use multiplex buffer model for
            accurate interleaving. Setting to bufferModel to none can lead to lower latency, but
            low-memory devices may not be able to play back the stream without interruptions.

            - **CcDescriptor** *(string) --* When set to enabled, generates captionServiceDescriptor
            in PMT.

            - **DvbNitSettings** *(dict) --* Inserts DVB Network Information Table (NIT) at the
            specified table repetition interval.

              - **NetworkId** *(integer) --* **[REQUIRED]** The numeric value placed in the Network
              Information Table (NIT).

              - **NetworkName** *(string) --* **[REQUIRED]** The network name text placed in the
              networkNameDescriptor inside the Network Information Table. Maximum length is 256
              characters.

              - **RepInterval** *(integer) --* The number of milliseconds between instances of this
              table in the output transport stream.

            - **DvbSdtSettings** *(dict) --* Inserts DVB Service Description Table (SDT) at the
            specified table repetition interval.

              - **OutputSdt** *(string) --* Selects method of inserting SDT information into output
              stream. The sdtFollow setting copies SDT information from input stream to output
              stream. The sdtFollowIfPresent setting copies SDT information from input stream to
              output stream if SDT information is present in the input, otherwise it will fall back
              on the user-defined values. The sdtManual setting means user will enter the SDT
              information. The sdtNone setting means output stream will not contain SDT information.

              - **RepInterval** *(integer) --* The number of milliseconds between instances of this
              table in the output transport stream.

              - **ServiceName** *(string) --* The service name placed in the serviceDescriptor in
              the Service Description Table. Maximum length is 256 characters.

              - **ServiceProviderName** *(string) --* The service provider name placed in the
              serviceDescriptor in the Service Description Table. Maximum length is 256 characters.

            - **DvbSubPids** *(string) --* Packet Identifier (PID) for input source DVB Subtitle
            data to this output. Multiple values are accepted, and can be entered in ranges and/or
            by comma separation. Can be entered as decimal or hexadecimal values. Each PID specified
            must be in the range of 32 (or 0x20)..8182 (or 0x1ff6).

            - **DvbTdtSettings** *(dict) --* Inserts DVB Time and Date Table (TDT) at the specified
            table repetition interval.

              - **RepInterval** *(integer) --* The number of milliseconds between instances of this
              table in the output transport stream.

            - **DvbTeletextPid** *(string) --* Packet Identifier (PID) for input source DVB Teletext
            data to this output. Can be entered as a decimal or hexadecimal value. Valid values are
            32 (or 0x20)..8182 (or 0x1ff6).

            - **Ebif** *(string) --* If set to passthrough, passes any EBIF data from the input
            source to this output.

            - **EbpAudioInterval** *(string) --* When videoAndFixedIntervals is selected, audio EBP
            markers will be added to partitions 3 and 4. The interval between these additional
            markers will be fixed, and will be slightly shorter than the video EBP marker interval.
            Only available when EBP Cablelabs segmentation markers are selected. Partitions 1 and 2
            will always follow the video interval.

            - **EbpLookaheadMs** *(integer) --* When set, enforces that Encoder Boundary Points do
            not come within the specified time interval of each other by looking ahead at input
            video. If another EBP is going to come in within the specified time interval, the
            current EBP is not emitted, and the segment is "stretched" to the next marker. The
            lookahead value does not add latency to the system. The Live Event must be configured
            elsewhere to create sufficient latency to make the lookahead accurate.

            - **EbpPlacement** *(string) --* Controls placement of EBP on Audio PIDs. If set to
            videoAndAudioPids, EBP markers will be placed on the video PID and all audio PIDs. If
            set to videoPid, EBP markers will be placed on only the video PID.

            - **EcmPid** *(string) --* This field is unused and deprecated.

            - **EsRateInPes** *(string) --* Include or exclude the ES Rate field in the PES header.

            - **EtvPlatformPid** *(string) --* Packet Identifier (PID) for input source ETV Platform
            data to this output. Can be entered as a decimal or hexadecimal value. Valid values are
            32 (or 0x20)..8182 (or 0x1ff6).

            - **EtvSignalPid** *(string) --* Packet Identifier (PID) for input source ETV Signal
            data to this output. Can be entered as a decimal or hexadecimal value. Valid values are
            32 (or 0x20)..8182 (or 0x1ff6).

            - **FragmentTime** *(float) --* The length in seconds of each fragment. Only used with
            EBP markers.

            - **Klv** *(string) --* If set to passthrough, passes any KLV data from the input source
            to this output.

            - **KlvDataPids** *(string) --* Packet Identifier (PID) for input source KLV data to
            this output. Multiple values are accepted, and can be entered in ranges and/or by comma
            separation. Can be entered as decimal or hexadecimal values. Each PID specified must be
            in the range of 32 (or 0x20)..8182 (or 0x1ff6).

            - **NielsenId3Behavior** *(string) --* If set to passthrough, Nielsen inaudible tones
            for media tracking will be detected in the input audio and an equivalent ID3 tag will be
            inserted in the output.

            - **NullPacketBitrate** *(float) --* Value in bits per second of extra null packets to
            insert into the transport stream. This can be used if a downstream encryption system
            requires periodic null packets.

            - **PatInterval** *(integer) --* The number of milliseconds between instances of this
            table in the output transport stream. Valid values are 0, 10..1000.

            - **PcrControl** *(string) --* When set to pcrEveryPesPacket, a Program Clock Reference
            value is inserted for every Packetized Elementary Stream (PES) header. This parameter is
            effective only when the PCR PID is the same as the video or audio elementary stream.

            - **PcrPeriod** *(integer) --* Maximum time in milliseconds between Program Clock
            Reference (PCRs) inserted into the transport stream.

            - **PcrPid** *(string) --* Packet Identifier (PID) of the Program Clock Reference (PCR)
            in the transport stream. When no value is given, the encoder will assign the same value
            as the Video PID. Can be entered as a decimal or hexadecimal value. Valid values are 32
            (or 0x20)..8182 (or 0x1ff6).

            - **PmtInterval** *(integer) --* The number of milliseconds between instances of this
            table in the output transport stream. Valid values are 0, 10..1000.

            - **PmtPid** *(string) --* Packet Identifier (PID) for the Program Map Table (PMT) in
            the transport stream. Can be entered as a decimal or hexadecimal value. Valid values are
            32 (or 0x20)..8182 (or 0x1ff6).

            - **ProgramNum** *(integer) --* The value of the program number field in the Program Map
            Table.

            - **RateMode** *(string) --* When vbr, does not insert null packets into transport
            stream to fill specified bitrate. The bitrate setting acts as the maximum bitrate when
            vbr is set.

            - **Scte27Pids** *(string) --* Packet Identifier (PID) for input source SCTE-27 data to
            this output. Multiple values are accepted, and can be entered in ranges and/or by comma
            separation. Can be entered as decimal or hexadecimal values. Each PID specified must be
            in the range of 32 (or 0x20)..8182 (or 0x1ff6).

            - **Scte35Control** *(string) --* Optionally pass SCTE-35 signals from the input source
            to this output.

            - **Scte35Pid** *(string) --* Packet Identifier (PID) of the SCTE-35 stream in the
            transport stream. Can be entered as a decimal or hexadecimal value. Valid values are 32
            (or 0x20)..8182 (or 0x1ff6).

            - **SegmentationMarkers** *(string) --* Inserts segmentation markers at each
            segmentationTime period. raiSegstart sets the Random Access Indicator bit in the
            adaptation field. raiAdapt sets the RAI bit and adds the current timecode in the private
            data bytes. psiSegstart inserts PAT and PMT tables at the start of segments. ebp adds
            Encoder Boundary Point information to the adaptation field as per OpenCable
            specification OC-SP-EBP-I01-130118. ebpLegacy adds Encoder Boundary Point information to
            the adaptation field using a legacy proprietary format.

            - **SegmentationStyle** *(string) --* The segmentation style parameter controls how
            segmentation markers are inserted into the transport stream. With avails, it is possible
            that segments may be truncated, which can influence where future segmentation markers
            are inserted. When a segmentation style of "resetCadence" is selected and a segment is
            truncated due to an avail, we will reset the segmentation cadence. This means the
            subsequent segment will have a duration of $segmentationTime seconds. When a
            segmentation style of "maintainCadence" is selected and a segment is truncated due to an
            avail, we will not reset the segmentation cadence. This means the subsequent segment
            will likely be truncated as well. However, all segments after that will have a duration
            of $segmentationTime seconds. Note that EBP lookahead is a slight exception to this
            rule.

            - **SegmentationTime** *(float) --* The length in seconds of each segment. Required
            unless markers is set to None_.

            - **TimedMetadataBehavior** *(string) --* When set to passthrough, timed metadata will
            be passed through from input to output.

            - **TimedMetadataPid** *(string) --* Packet Identifier (PID) of the timed metadata
            stream in the transport stream. Can be entered as a decimal or hexadecimal value. Valid
            values are 32 (or 0x20)..8182 (or 0x1ff6).

            - **TransportStreamId** *(integer) --* The value of the transport stream ID field in the
            Program Map Table.

            - **VideoPid** *(string) --* Packet Identifier (PID) of the elementary video stream in
            the transport stream. Can be entered as a decimal or hexadecimal value. Valid values are
            32 (or 0x20)..8182 (or 0x1ff6).

        - **Destination** *(dict) --* **[REQUIRED]** Destination address and port number for RTP or
        UDP packets. Can be unicast or multicast RTP or UDP (eg. rtp://239.10.10.10:5001 or
        udp://10.100.100.100:5002).

          - **DestinationRefId** *(string) --* Placeholder documentation for __string

        - **FecOutputSettings** *(dict) --* Settings for enabling and adjusting Forward Error
        Correction on UDP outputs.

          - **ColumnDepth** *(integer) --* Parameter D from SMPTE 2022-1. The height of the FEC
          protection matrix. The number of transport stream packets per column error correction
          packet. Must be between 4 and 20, inclusive.

          - **IncludeFec** *(string) --* Enables column only or column and row based FEC

          - **RowLength** *(integer) --* Parameter L from SMPTE 2022-1. The width of the FEC
          protection matrix. Must be between 1 and 20, inclusive. If only Column FEC is used, then
          larger values increase robustness. If Row FEC is used, then this is the number of
          transport stream packets per row error correction packet, and the value must be between 4
          and 20, inclusive, if includeFec is columnAndRow. If includeFec is column, this value must
          be 1 to 20, inclusive.

    - **VideoDescriptionName** *(string) --* The name of the VideoDescription used as the source for
    this output.
    """


_RequiredClientCreateChannelEncoderSettingsOutputGroupsTypeDef = TypedDict(
    "_RequiredClientCreateChannelEncoderSettingsOutputGroupsTypeDef",
    {
        "OutputGroupSettings": ClientCreateChannelEncoderSettingsOutputGroupsOutputGroupSettingsTypeDef,
        "Outputs": List[ClientCreateChannelEncoderSettingsOutputGroupsOutputsTypeDef],
    },
)
_OptionalClientCreateChannelEncoderSettingsOutputGroupsTypeDef = TypedDict(
    "_OptionalClientCreateChannelEncoderSettingsOutputGroupsTypeDef", {"Name": str}, total=False
)


class ClientCreateChannelEncoderSettingsOutputGroupsTypeDef(
    _RequiredClientCreateChannelEncoderSettingsOutputGroupsTypeDef,
    _OptionalClientCreateChannelEncoderSettingsOutputGroupsTypeDef,
):
    """
    Type definition for `ClientCreateChannelEncoderSettings` `OutputGroups`

    - **Name** *(string) --* Custom output group name optionally defined by the user. Only letters,
    numbers, and the underscore character allowed; only 32 characters allowed.

    - **OutputGroupSettings** *(dict) --* **[REQUIRED]** Settings associated with the output group.

      - **ArchiveGroupSettings** *(dict) --* Archive Group Settings

        - **Destination** *(dict) --* **[REQUIRED]** A directory and base filename where archive
        files should be written.

          - **DestinationRefId** *(string) --* Placeholder documentation for __string

        - **RolloverInterval** *(integer) --* Number of seconds to write to archive file before
        closing and starting a new one.

      - **FrameCaptureGroupSettings** *(dict) --* Frame Capture Group Settings

        - **Destination** *(dict) --* **[REQUIRED]** The destination for the frame capture files.
        Either the URI for an Amazon S3 bucket and object, plus a file name prefix (for example,
        s3ssl://sportsDelivery/highlights/20180820/curling_) or the URI for a MediaStore container,
        plus a file name prefix (for example, mediastoressl://sportsDelivery/20180820/curling_). The
        final file names consist of the prefix from the destination field (for example, "curling_")
        + name modifier + the counter (5 digits, starting from 00001) + extension (which is always
        .jpg). For example, curlingLow.00001.jpg

          - **DestinationRefId** *(string) --* Placeholder documentation for __string

      - **HlsGroupSettings** *(dict) --* Hls Group Settings

        - **AdMarkers** *(list) --* Choose one or more ad marker types to pass SCTE35 signals
        through to this group of Apple HLS outputs.

          - *(string) --* Hls Ad Markers

        - **BaseUrlContent** *(string) --* A partial URI prefix that will be prepended to each
        output in the media .m3u8 file. Can be used if base manifest is delivered from a different
        URL than the main .m3u8 file.

        - **BaseUrlManifest** *(string) --* A partial URI prefix that will be prepended to each
        output in the media .m3u8 file. Can be used if base manifest is delivered from a different
        URL than the main .m3u8 file.

        - **CaptionLanguageMappings** *(list) --* Mapping of up to 4 caption channels to caption
        languages. Is only meaningful if captionLanguageSetting is set to "insert".

          - *(dict) --* Maps a caption channel to an ISO 693-2 language code
          (http://www.loc.gov/standards/iso639-2), with an optional description.

            - **CaptionChannel** *(integer) --* **[REQUIRED]** The closed caption channel being
            described by this CaptionLanguageMapping. Each channel mapping must have a unique
            channel number (maximum of 4)

            - **LanguageCode** *(string) --* **[REQUIRED]** Three character ISO 639-2 language code
            (see http://www.loc.gov/standards/iso639-2)

            - **LanguageDescription** *(string) --* **[REQUIRED]** Textual description of language

        - **CaptionLanguageSetting** *(string) --* Applies only to 608 Embedded output captions.
        insert: Include CLOSED-CAPTIONS lines in the manifest. Specify at least one language in the
        CC1 Language Code field. One CLOSED-CAPTION line is added for each Language Code you
        specify. Make sure to specify the languages in the order in which they appear in the
        original source (if the source is embedded format) or the order of the caption selectors (if
        the source is other than embedded). Otherwise, languages in the manifest will not match up
        properly with the output captions. none: Include CLOSED-CAPTIONS=
            NONE line in the manifest.
        omit: Omit any CLOSED-CAPTIONS line from the manifest.

        - **ClientCache** *(string) --* When set to "disabled", sets the #EXT-X-ALLOW-CACHE:no tag
        in the manifest, which prevents clients from saving media segments for later replay.

        - **CodecSpecification** *(string) --* Specification to use (RFC-6381 or the default
        RFC-4281) during m3u8 playlist generation.

        - **ConstantIv** *(string) --* For use with encryptionType. This is a 128-bit, 16-byte hex
        value represented by a 32-character text string. If ivSource is set to "explicit" then this
        parameter is required and is used as the IV for encryption.

        - **Destination** *(dict) --* **[REQUIRED]** A directory or HTTP destination for the HLS
        segments, manifest files, and encryption keys (if enabled).

          - **DestinationRefId** *(string) --* Placeholder documentation for __string

        - **DirectoryStructure** *(string) --* Place segments in subdirectories.

        - **EncryptionType** *(string) --* Encrypts the segments with the given encryption scheme.
        Exclude this parameter if no encryption is desired.

        - **HlsCdnSettings** *(dict) --* Parameters that control interactions with the CDN.

          - **HlsAkamaiSettings** *(dict) --* Hls Akamai Settings

            - **ConnectionRetryInterval** *(integer) --* Number of seconds to wait before retrying
            connection to the CDN if the connection is lost.

            - **FilecacheDuration** *(integer) --* Size in seconds of file cache for streaming
            outputs.

            - **HttpTransferMode** *(string) --* Specify whether or not to use chunked transfer
            encoding to Akamai. User should contact Akamai to enable this feature.

            - **NumRetries** *(integer) --* Number of retry attempts that will be made before the
            Live Event is put into an error state.

            - **RestartDelay** *(integer) --* If a streaming output fails, number of seconds to wait
            until a restart is initiated. A value of 0 means never restart.

            - **Salt** *(string) --* Salt for authenticated Akamai.

            - **Token** *(string) --* Token parameter for authenticated akamai. If not specified,
            _gda_ is used.

          - **HlsBasicPutSettings** *(dict) --* Hls Basic Put Settings

            - **ConnectionRetryInterval** *(integer) --* Number of seconds to wait before retrying
            connection to the CDN if the connection is lost.

            - **FilecacheDuration** *(integer) --* Size in seconds of file cache for streaming
            outputs.

            - **NumRetries** *(integer) --* Number of retry attempts that will be made before the
            Live Event is put into an error state.

            - **RestartDelay** *(integer) --* If a streaming output fails, number of seconds to wait
            until a restart is initiated. A value of 0 means never restart.

          - **HlsMediaStoreSettings** *(dict) --* Hls Media Store Settings

            - **ConnectionRetryInterval** *(integer) --* Number of seconds to wait before retrying
            connection to the CDN if the connection is lost.

            - **FilecacheDuration** *(integer) --* Size in seconds of file cache for streaming
            outputs.

            - **MediaStoreStorageClass** *(string) --* When set to temporal, output files are stored
            in non-persistent memory for faster reading and writing.

            - **NumRetries** *(integer) --* Number of retry attempts that will be made before the
            Live Event is put into an error state.

            - **RestartDelay** *(integer) --* If a streaming output fails, number of seconds to wait
            until a restart is initiated. A value of 0 means never restart.

          - **HlsWebdavSettings** *(dict) --* Hls Webdav Settings

            - **ConnectionRetryInterval** *(integer) --* Number of seconds to wait before retrying
            connection to the CDN if the connection is lost.

            - **FilecacheDuration** *(integer) --* Size in seconds of file cache for streaming
            outputs.

            - **HttpTransferMode** *(string) --* Specify whether or not to use chunked transfer
            encoding to WebDAV.

            - **NumRetries** *(integer) --* Number of retry attempts that will be made before the
            Live Event is put into an error state.

            - **RestartDelay** *(integer) --* If a streaming output fails, number of seconds to wait
            until a restart is initiated. A value of 0 means never restart.

        - **IFrameOnlyPlaylists** *(string) --* DISABLED: Do not create an I-frame-only manifest,
        but do create the master and media manifests (according to the Output Selection field).
        STANDARD: Create an I-frame-only manifest for each output that contains video, as well as
        the other manifests (according to the Output Selection field). The I-frame manifest contains
        a #EXT-X-I-FRAMES-ONLY tag to indicate it is I-frame only, and one or more #EXT-X-BYTERANGE
        entries identifying the I-frame position. For example, #EXT-X-BYTERANGE:160364@1461888"

        - **IndexNSegments** *(integer) --* Applies only if Mode field is LIVE. Specifies the
        maximum number of segments in the media manifest file. After this maximum, older segments
        are removed from the media manifest. This number must be less than or equal to the Keep
        Segments field.

        - **InputLossAction** *(string) --* Parameter that control output group behavior on input
        loss.

        - **IvInManifest** *(string) --* For use with encryptionType. The IV (Initialization Vector)
        is a 128-bit number used in conjunction with the key for encrypting blocks. If set to
        "include", IV is listed in the manifest, otherwise the IV is not in the manifest.

        - **IvSource** *(string) --* For use with encryptionType. The IV (Initialization Vector) is
        a 128-bit number used in conjunction with the key for encrypting blocks. If this setting is
        "followsSegmentNumber", it will cause the IV to change every segment (to match the segment
        number). If this is set to "explicit", you must enter a constantIv value.

        - **KeepSegments** *(integer) --* Applies only if Mode field is LIVE. Specifies the number
        of media segments (.ts files) to retain in the destination directory.

        - **KeyFormat** *(string) --* The value specifies how the key is represented in the resource
        identified by the URI. If parameter is absent, an implicit value of "identity" is used. A
        reverse DNS string can also be given.

        - **KeyFormatVersions** *(string) --* Either a single positive integer version value or a
        slash delimited list of version values (1/2/3).

        - **KeyProviderSettings** *(dict) --* The key provider settings.

          - **StaticKeySettings** *(dict) --* Static Key Settings

            - **KeyProviderServer** *(dict) --* The URL of the license server used for protecting
            content.

              - **PasswordParam** *(string) --* key used to extract the password from EC2 Parameter
              store

              - **Uri** *(string) --* **[REQUIRED]** Uniform Resource Identifier - This should be a
              path to a file accessible to the Live system (eg. a http:// URI) depending on the
              output type. For example, a RTMP destination should have a uri simliar to:
              "rtmp://fmsserver/live".

              - **Username** *(string) --* Documentation update needed

            - **StaticKeyValue** *(string) --* **[REQUIRED]** Static key value as a 32 character
            hexadecimal string.

        - **ManifestCompression** *(string) --* When set to gzip, compresses HLS playlist.

        - **ManifestDurationFormat** *(string) --* Indicates whether the output manifest should use
        floating point or integer values for segment duration.

        - **MinSegmentLength** *(integer) --* When set, minimumSegmentLength is enforced by looking
        ahead and back within the specified range for a nearby avail and extending the segment size
        if needed.

        - **Mode** *(string) --* If "vod", all segments are indexed and kept permanently in the
        destination and manifest. If "live", only the number segments specified in keepSegments and
        indexNSegments are kept; newer segments replace older segments, which may prevent players
        from rewinding all the way to the beginning of the event. VOD mode uses HLS
        EXT-X-PLAYLIST-TYPE of EVENT while the channel is running, converting it to a "VOD" type
        manifest on completion of the stream.

        - **OutputSelection** *(string) --* MANIFESTSANDSEGMENTS: Generates manifests (master
        manifest, if applicable, and media manifests) for this output group. SEGMENTSONLY: Does not
        generate any manifests for this output group.

        - **ProgramDateTime** *(string) --* Includes or excludes EXT-X-PROGRAM-DATE-TIME tag in
        .m3u8 manifest files. The value is calculated as follows: either the program date and time
        are initialized using the input timecode source, or the time is initialized using the input
        timecode source and the date is initialized using the timestampOffset.

        - **ProgramDateTimePeriod** *(integer) --* Period of insertion of EXT-X-PROGRAM-DATE-TIME
        entry, in seconds.

        - **RedundantManifest** *(string) --* ENABLED: The master manifest (.m3u8 file) for each
        pipeline includes information about both pipelines: first its own media files, then the
        media files of the other pipeline. This feature allows playout device that support stale
        manifest detection to switch from one manifest to the other, when the current manifest seems
        to be stale. There are still two destinations and two master manifests, but both master
        manifests reference the media files from both pipelines. DISABLED: The master manifest
        (.m3u8 file) for each pipeline includes information about its own pipeline only. For an HLS
        output group with MediaPackage as the destination, the DISABLED behavior is always followed.
        MediaPackage regenerates the manifests it serves to players so a redundant manifest from
        MediaLive is irrelevant.

        - **SegmentLength** *(integer) --* Length of MPEG-2 Transport Stream segments to create (in
        seconds). Note that segments will end on the next keyframe after this number of seconds, so
        actual segment length may be longer.

        - **SegmentationMode** *(string) --* useInputSegmentation has been deprecated. The
        configured segment size is always used.

        - **SegmentsPerSubdirectory** *(integer) --* Number of segments to write to a subdirectory
        before starting a new one. directoryStructure must be subdirectoryPerStream for this setting
        to have an effect.

        - **StreamInfResolution** *(string) --* Include or exclude RESOLUTION attribute for video in
        EXT-X-STREAM-INF tag of variant manifest.

        - **TimedMetadataId3Frame** *(string) --* Indicates ID3 frame that has the timecode.

        - **TimedMetadataId3Period** *(integer) --* Timed Metadata interval in seconds.

        - **TimestampDeltaMilliseconds** *(integer) --* Provides an extra millisecond delta offset
        to fine tune the timestamps.

        - **TsFileMode** *(string) --* SEGMENTEDFILES: Emit the program as segments - multiple .ts
        media files. SINGLEFILE: Applies only if Mode field is VOD. Emit the program as a single .ts
        media file. The media manifest includes #EXT-X-BYTERANGE tags to index segments for
        playback. A typical use for this value is when sending the output to AWS Elemental
        MediaConvert, which can accept only a single media file. Playback while the channel is
        running is not guaranteed due to HTTP server caching.

      - **MediaPackageGroupSettings** *(dict) --* Media Package Group Settings

        - **Destination** *(dict) --* **[REQUIRED]** MediaPackage channel destination.

          - **DestinationRefId** *(string) --* Placeholder documentation for __string

      - **MsSmoothGroupSettings** *(dict) --* Ms Smooth Group Settings

        - **AcquisitionPointId** *(string) --* The value of the "Acquisition Point Identity" element
        used in each message placed in the sparse track. Only enabled if sparseTrackType is not
        "none".

        - **AudioOnlyTimecodeControl** *(string) --* If set to passthrough for an audio-only MS
        Smooth output, the fragment absolute time will be set to the current timecode. This option
        does not write timecodes to the audio elementary stream.

        - **CertificateMode** *(string) --* If set to verifyAuthenticity, verify the https
        certificate chain to a trusted Certificate Authority (CA). This will cause https outputs to
        self-signed certificates to fail.

        - **ConnectionRetryInterval** *(integer) --* Number of seconds to wait before retrying
        connection to the IIS server if the connection is lost. Content will be cached during this
        time and the cache will be be delivered to the IIS server once the connection is
        re-established.

        - **Destination** *(dict) --* **[REQUIRED]** Smooth Streaming publish point on an IIS
        server. Elemental Live acts as a "Push" encoder to IIS.

          - **DestinationRefId** *(string) --* Placeholder documentation for __string

        - **EventId** *(string) --* MS Smooth event ID to be sent to the IIS server. Should only be
        specified if eventIdMode is set to useConfigured.

        - **EventIdMode** *(string) --* Specifies whether or not to send an event ID to the IIS
        server. If no event ID is sent and the same Live Event is used without changing the
        publishing point, clients might see cached video from the previous run. Options: -
        "useConfigured" - use the value provided in eventId - "useTimestamp" - generate and send an
        event ID based on the current timestamp - "noEventId" - do not send an event ID to the IIS
        server.

        - **EventStopBehavior** *(string) --* When set to sendEos, send EOS signal to IIS server
        when stopping the event

        - **FilecacheDuration** *(integer) --* Size in seconds of file cache for streaming outputs.

        - **FragmentLength** *(integer) --* Length of mp4 fragments to generate (in seconds).
        Fragment length must be compatible with GOP size and framerate.

        - **InputLossAction** *(string) --* Parameter that control output group behavior on input
        loss.

        - **NumRetries** *(integer) --* Number of retry attempts.

        - **RestartDelay** *(integer) --* Number of seconds before initiating a restart due to
        output failure, due to exhausting the numRetries on one segment, or exceeding
        filecacheDuration.

        - **SegmentationMode** *(string) --* useInputSegmentation has been deprecated. The
        configured segment size is always used.

        - **SendDelayMs** *(integer) --* Number of milliseconds to delay the output from the second
        pipeline.

        - **SparseTrackType** *(string) --* If set to scte35, use incoming SCTE-35 messages to
        generate a sparse track in this group of MS-Smooth outputs.

        - **StreamManifestBehavior** *(string) --* When set to send, send stream manifest so
        publishing point doesn't start until all streams start.

        - **TimestampOffset** *(string) --* Timestamp offset for the event. Only used if
        timestampOffsetMode is set to useConfiguredOffset.

        - **TimestampOffsetMode** *(string) --* Type of timestamp date offset to use. -
        useEventStartDate: Use the date the event was started as the offset - useConfiguredOffset:
        Use an explicitly configured date as the offset

      - **MultiplexGroupSettings** *(dict) --* Multiplex Group Settings

      - **RtmpGroupSettings** *(dict) --* Rtmp Group Settings

        - **AuthenticationScheme** *(string) --* Authentication scheme to use when connecting with
        CDN

        - **CacheFullBehavior** *(string) --* Controls behavior when content cache fills up. If
        remote origin server stalls the RTMP connection and does not accept content fast enough the
        'Media Cache' will fill up. When the cache reaches the duration specified by cacheLength the
        cache will stop accepting new content. If set to disconnectImmediately, the RTMP output will
        force a disconnect. Clear the media cache, and reconnect after restartDelay seconds. If set
        to waitForServer, the RTMP output will wait up to 5 minutes to allow the origin server to
        begin accepting data again.

        - **CacheLength** *(integer) --* Cache length, in seconds, is used to calculate buffer size.

        - **CaptionData** *(string) --* Controls the types of data that passes to onCaptionInfo
        outputs. If set to 'all' then 608 and 708 carried DTVCC data will be passed. If set to
        'field1AndField2608' then DTVCC data will be stripped out, but 608 data from both fields
        will be passed. If set to 'field1608' then only the data carried in 608 from field 1 video
        will be passed.

        - **InputLossAction** *(string) --* Controls the behavior of this RTMP group if input
        becomes unavailable. - emitOutput: Emit a slate until input returns. - pauseOutput: Stop
        transmitting data until input returns. This does not close the underlying RTMP connection.

        - **RestartDelay** *(integer) --* If a streaming output fails, number of seconds to wait
        until a restart is initiated. A value of 0 means never restart.

      - **UdpGroupSettings** *(dict) --* Udp Group Settings

        - **InputLossAction** *(string) --* Specifies behavior of last resort when input video is
        lost, and no more backup inputs are available. When dropTs is selected the entire transport
        stream will stop being emitted. When dropProgram is selected the program can be dropped from
        the transport stream (and replaced with null packets to meet the TS bitrate requirement).
        Or, when emitProgram is chosen the transport stream will continue to be produced normally
        with repeat frames, black frames, or slate frames substituted for the absent input video.

        - **TimedMetadataId3Frame** *(string) --* Indicates ID3 frame that has the timecode.

        - **TimedMetadataId3Period** *(integer) --* Timed Metadata interval in seconds.

    - **Outputs** *(list) --* **[REQUIRED]** Placeholder documentation for __listOfOutput

      - *(dict) --* Output settings. There can be multiple outputs within a group.

        - **AudioDescriptionNames** *(list) --* The names of the AudioDescriptions used as audio
        sources for this output.

          - *(string) --* Placeholder documentation for __string

        - **CaptionDescriptionNames** *(list) --* The names of the CaptionDescriptions used as
        caption sources for this output.

          - *(string) --* Placeholder documentation for __string

        - **OutputName** *(string) --* The name used to identify an output.

        - **OutputSettings** *(dict) --* **[REQUIRED]** Output type-specific settings.

          - **ArchiveOutputSettings** *(dict) --* Archive Output Settings

            - **ContainerSettings** *(dict) --* **[REQUIRED]** Settings specific to the container
            type of the file.

              - **M2tsSettings** *(dict) --* M2ts Settings

                - **AbsentInputAudioBehavior** *(string) --* When set to drop, output audio streams
                will be removed from the program if the selected input audio stream is removed from
                the input. This allows the output audio configuration to dynamically change based on
                input configuration. If this is set to encodeSilence, all output audio streams will
                output encoded silence when not connected to an active input stream.

                - **Arib** *(string) --* When set to enabled, uses ARIB-compliant field muxing and
                removes video descriptor.

                - **AribCaptionsPid** *(string) --* Packet Identifier (PID) for ARIB Captions in the
                transport stream. Can be entered as a decimal or hexadecimal value. Valid values are
                32 (or 0x20)..8182 (or 0x1ff6).

                - **AribCaptionsPidControl** *(string) --* If set to auto, pid number used for ARIB
                Captions will be auto-selected from unused pids. If set to useConfigured, ARIB
                Captions will be on the configured pid number.

                - **AudioBufferModel** *(string) --* When set to dvb, uses DVB buffer model for
                Dolby Digital audio. When set to atsc, the ATSC model is used.

                - **AudioFramesPerPes** *(integer) --* The number of audio frames to insert for each
                PES packet.

                - **AudioPids** *(string) --* Packet Identifier (PID) of the elementary audio
                stream(s) in the transport stream. Multiple values are accepted, and can be entered
                in ranges and/or by comma separation. Can be entered as decimal or hexadecimal
                values. Each PID specified must be in the range of 32 (or 0x20)..8182 (or 0x1ff6).

                - **AudioStreamType** *(string) --* When set to atsc, uses stream type =
                     0x81 for
                AC3 and stream type = 0x87 for EAC3. When set to dvb, uses stream type =
                     0x06.

                - **Bitrate** *(integer) --* The output bitrate of the transport stream in bits per
                second. Setting to 0 lets the muxer automatically determine the appropriate bitrate.

                - **BufferModel** *(string) --* If set to multiplex, use multiplex buffer model for
                accurate interleaving. Setting to bufferModel to none can lead to lower latency, but
                low-memory devices may not be able to play back the stream without interruptions.

                - **CcDescriptor** *(string) --* When set to enabled, generates
                captionServiceDescriptor in PMT.

                - **DvbNitSettings** *(dict) --* Inserts DVB Network Information Table (NIT) at the
                specified table repetition interval.

                  - **NetworkId** *(integer) --* **[REQUIRED]** The numeric value placed in the
                  Network Information Table (NIT).

                  - **NetworkName** *(string) --* **[REQUIRED]** The network name text placed in the
                  networkNameDescriptor inside the Network Information Table. Maximum length is 256
                  characters.

                  - **RepInterval** *(integer) --* The number of milliseconds between instances of
                  this table in the output transport stream.

                - **DvbSdtSettings** *(dict) --* Inserts DVB Service Description Table (SDT) at the
                specified table repetition interval.

                  - **OutputSdt** *(string) --* Selects method of inserting SDT information into
                  output stream. The sdtFollow setting copies SDT information from input stream to
                  output stream. The sdtFollowIfPresent setting copies SDT information from input
                  stream to output stream if SDT information is present in the input, otherwise it
                  will fall back on the user-defined values. The sdtManual setting means user will
                  enter the SDT information. The sdtNone setting means output stream will not
                  contain SDT information.

                  - **RepInterval** *(integer) --* The number of milliseconds between instances of
                  this table in the output transport stream.

                  - **ServiceName** *(string) --* The service name placed in the serviceDescriptor
                  in the Service Description Table. Maximum length is 256 characters.

                  - **ServiceProviderName** *(string) --* The service provider name placed in the
                  serviceDescriptor in the Service Description Table. Maximum length is 256
                  characters.

                - **DvbSubPids** *(string) --* Packet Identifier (PID) for input source DVB Subtitle
                data to this output. Multiple values are accepted, and can be entered in ranges
                and/or by comma separation. Can be entered as decimal or hexadecimal values. Each
                PID specified must be in the range of 32 (or 0x20)..8182 (or 0x1ff6).

                - **DvbTdtSettings** *(dict) --* Inserts DVB Time and Date Table (TDT) at the
                specified table repetition interval.

                  - **RepInterval** *(integer) --* The number of milliseconds between instances of
                  this table in the output transport stream.

                - **DvbTeletextPid** *(string) --* Packet Identifier (PID) for input source DVB
                Teletext data to this output. Can be entered as a decimal or hexadecimal value.
                Valid values are 32 (or 0x20)..8182 (or 0x1ff6).

                - **Ebif** *(string) --* If set to passthrough, passes any EBIF data from the input
                source to this output.

                - **EbpAudioInterval** *(string) --* When videoAndFixedIntervals is selected, audio
                EBP markers will be added to partitions 3 and 4. The interval between these
                additional markers will be fixed, and will be slightly shorter than the video EBP
                marker interval. Only available when EBP Cablelabs segmentation markers are
                selected. Partitions 1 and 2 will always follow the video interval.

                - **EbpLookaheadMs** *(integer) --* When set, enforces that Encoder Boundary Points
                do not come within the specified time interval of each other by looking ahead at
                input video. If another EBP is going to come in within the specified time interval,
                the current EBP is not emitted, and the segment is "stretched" to the next marker.
                The lookahead value does not add latency to the system. The Live Event must be
                configured elsewhere to create sufficient latency to make the lookahead accurate.

                - **EbpPlacement** *(string) --* Controls placement of EBP on Audio PIDs. If set to
                videoAndAudioPids, EBP markers will be placed on the video PID and all audio PIDs.
                If set to videoPid, EBP markers will be placed on only the video PID.

                - **EcmPid** *(string) --* This field is unused and deprecated.

                - **EsRateInPes** *(string) --* Include or exclude the ES Rate field in the PES
                header.

                - **EtvPlatformPid** *(string) --* Packet Identifier (PID) for input source ETV
                Platform data to this output. Can be entered as a decimal or hexadecimal value.
                Valid values are 32 (or 0x20)..8182 (or 0x1ff6).

                - **EtvSignalPid** *(string) --* Packet Identifier (PID) for input source ETV Signal
                data to this output. Can be entered as a decimal or hexadecimal value. Valid values
                are 32 (or 0x20)..8182 (or 0x1ff6).

                - **FragmentTime** *(float) --* The length in seconds of each fragment. Only used
                with EBP markers.

                - **Klv** *(string) --* If set to passthrough, passes any KLV data from the input
                source to this output.

                - **KlvDataPids** *(string) --* Packet Identifier (PID) for input source KLV data to
                this output. Multiple values are accepted, and can be entered in ranges and/or by
                comma separation. Can be entered as decimal or hexadecimal values. Each PID
                specified must be in the range of 32 (or 0x20)..8182 (or 0x1ff6).

                - **NielsenId3Behavior** *(string) --* If set to passthrough, Nielsen inaudible
                tones for media tracking will be detected in the input audio and an equivalent ID3
                tag will be inserted in the output.

                - **NullPacketBitrate** *(float) --* Value in bits per second of extra null packets
                to insert into the transport stream. This can be used if a downstream encryption
                system requires periodic null packets.

                - **PatInterval** *(integer) --* The number of milliseconds between instances of
                this table in the output transport stream. Valid values are 0, 10..1000.

                - **PcrControl** *(string) --* When set to pcrEveryPesPacket, a Program Clock
                Reference value is inserted for every Packetized Elementary Stream (PES) header.
                This parameter is effective only when the PCR PID is the same as the video or audio
                elementary stream.

                - **PcrPeriod** *(integer) --* Maximum time in milliseconds between Program Clock
                Reference (PCRs) inserted into the transport stream.

                - **PcrPid** *(string) --* Packet Identifier (PID) of the Program Clock Reference
                (PCR) in the transport stream. When no value is given, the encoder will assign the
                same value as the Video PID. Can be entered as a decimal or hexadecimal value. Valid
                values are 32 (or 0x20)..8182 (or 0x1ff6).

                - **PmtInterval** *(integer) --* The number of milliseconds between instances of
                this table in the output transport stream. Valid values are 0, 10..1000.

                - **PmtPid** *(string) --* Packet Identifier (PID) for the Program Map Table (PMT)
                in the transport stream. Can be entered as a decimal or hexadecimal value. Valid
                values are 32 (or 0x20)..8182 (or 0x1ff6).

                - **ProgramNum** *(integer) --* The value of the program number field in the Program
                Map Table.

                - **RateMode** *(string) --* When vbr, does not insert null packets into transport
                stream to fill specified bitrate. The bitrate setting acts as the maximum bitrate
                when vbr is set.

                - **Scte27Pids** *(string) --* Packet Identifier (PID) for input source SCTE-27 data
                to this output. Multiple values are accepted, and can be entered in ranges and/or by
                comma separation. Can be entered as decimal or hexadecimal values. Each PID
                specified must be in the range of 32 (or 0x20)..8182 (or 0x1ff6).

                - **Scte35Control** *(string) --* Optionally pass SCTE-35 signals from the input
                source to this output.

                - **Scte35Pid** *(string) --* Packet Identifier (PID) of the SCTE-35 stream in the
                transport stream. Can be entered as a decimal or hexadecimal value. Valid values are
                32 (or 0x20)..8182 (or 0x1ff6).

                - **SegmentationMarkers** *(string) --* Inserts segmentation markers at each
                segmentationTime period. raiSegstart sets the Random Access Indicator bit in the
                adaptation field. raiAdapt sets the RAI bit and adds the current timecode in the
                private data bytes. psiSegstart inserts PAT and PMT tables at the start of segments.
                ebp adds Encoder Boundary Point information to the adaptation field as per OpenCable
                specification OC-SP-EBP-I01-130118. ebpLegacy adds Encoder Boundary Point
                information to the adaptation field using a legacy proprietary format.

                - **SegmentationStyle** *(string) --* The segmentation style parameter controls how
                segmentation markers are inserted into the transport stream. With avails, it is
                possible that segments may be truncated, which can influence where future
                segmentation markers are inserted. When a segmentation style of "resetCadence" is
                selected and a segment is truncated due to an avail, we will reset the segmentation
                cadence. This means the subsequent segment will have a duration of $segmentationTime
                seconds. When a segmentation style of "maintainCadence" is selected and a segment is
                truncated due to an avail, we will not reset the segmentation cadence. This means
                the subsequent segment will likely be truncated as well. However, all segments after
                that will have a duration of $segmentationTime seconds. Note that EBP lookahead is a
                slight exception to this rule.

                - **SegmentationTime** *(float) --* The length in seconds of each segment. Required
                unless markers is set to None_.

                - **TimedMetadataBehavior** *(string) --* When set to passthrough, timed metadata
                will be passed through from input to output.

                - **TimedMetadataPid** *(string) --* Packet Identifier (PID) of the timed metadata
                stream in the transport stream. Can be entered as a decimal or hexadecimal value.
                Valid values are 32 (or 0x20)..8182 (or 0x1ff6).

                - **TransportStreamId** *(integer) --* The value of the transport stream ID field in
                the Program Map Table.

                - **VideoPid** *(string) --* Packet Identifier (PID) of the elementary video stream
                in the transport stream. Can be entered as a decimal or hexadecimal value. Valid
                values are 32 (or 0x20)..8182 (or 0x1ff6).

            - **Extension** *(string) --* Output file extension. If excluded, this will be
            auto-selected from the container type.

            - **NameModifier** *(string) --* String concatenated to the end of the destination
            filename. Required for multiple outputs of the same type.

          - **FrameCaptureOutputSettings** *(dict) --* Frame Capture Output Settings

            - **NameModifier** *(string) --* Required if the output group contains more than one
            output. This modifier forms part of the output file name.

          - **HlsOutputSettings** *(dict) --* Hls Output Settings

            - **HlsSettings** *(dict) --* **[REQUIRED]** Settings regarding the underlying stream.
            These settings are different for audio-only outputs.

              - **AudioOnlyHlsSettings** *(dict) --* Audio Only Hls Settings

                - **AudioGroupId** *(string) --* Specifies the group to which the audio Rendition
                belongs.

                - **AudioOnlyImage** *(dict) --* Optional. Specifies the .jpg or .png image to use
                as the cover art for an audio-only output. We recommend a low bit-size file because
                the image increases the output audio bandwidth. The image is attached to the audio
                as an ID3 tag, frame type APIC, picture type 0x10, as per the "ID3 tag version 2.4.0
                - Native Frames" standard.

                  - **PasswordParam** *(string) --* key used to extract the password from EC2
                  Parameter store

                  - **Uri** *(string) --* **[REQUIRED]** Uniform Resource Identifier - This should
                  be a path to a file accessible to the Live system (eg. a http:// URI) depending on
                  the output type. For example, a RTMP destination should have a uri simliar to:
                  "rtmp://fmsserver/live".

                  - **Username** *(string) --* Documentation update needed

                - **AudioTrackType** *(string) --* Four types of audio-only tracks are supported:
                Audio-Only Variant Stream The client can play back this audio-only stream instead of
                video in low-bandwidth scenarios. Represented as an EXT-X-STREAM-INF in the HLS
                manifest. Alternate Audio, Auto Select, Default Alternate rendition that the client
                should try to play back by default. Represented as an EXT-X-MEDIA in the HLS
                manifest with DEFAULT=YES, AUTOSELECT=
                    YES Alternate Audio, Auto Select, Not Default
                Alternate rendition that the client may try to play back by default. Represented as
                an EXT-X-MEDIA in the HLS manifest with DEFAULT=NO, AUTOSELECT=
                    YES Alternate Audio,
                not Auto Select Alternate rendition that the client will not try to play back by
                default. Represented as an EXT-X-MEDIA in the HLS manifest with DEFAULT=
                    NO,
                AUTOSELECT=NO

              - **StandardHlsSettings** *(dict) --* Standard Hls Settings

                - **AudioRenditionSets** *(string) --* List all the audio groups that are used with
                the video output stream. Input all the audio GROUP-IDs that are associated to the
                video, separate by ','.

                - **M3u8Settings** *(dict) --* **[REQUIRED]** Settings information for the .m3u8
                container

                  - **AudioFramesPerPes** *(integer) --* The number of audio frames to insert for
                  each PES packet.

                  - **AudioPids** *(string) --* Packet Identifier (PID) of the elementary audio
                  stream(s) in the transport stream. Multiple values are accepted, and can be
                  entered in ranges and/or by comma separation. Can be entered as decimal or
                  hexadecimal values.

                  - **EcmPid** *(string) --* This parameter is unused and deprecated.

                  - **NielsenId3Behavior** *(string) --* If set to passthrough, Nielsen inaudible
                  tones for media tracking will be detected in the input audio and an equivalent ID3
                  tag will be inserted in the output.

                  - **PatInterval** *(integer) --* The number of milliseconds between instances of
                  this table in the output transport stream. A value of \\"0\\" writes out the PMT
                  once per segment file.

                  - **PcrControl** *(string) --* When set to pcrEveryPesPacket, a Program Clock
                  Reference value is inserted for every Packetized Elementary Stream (PES) header.
                  This parameter is effective only when the PCR PID is the same as the video or
                  audio elementary stream.

                  - **PcrPeriod** *(integer) --* Maximum time in milliseconds between Program Clock
                  References (PCRs) inserted into the transport stream.

                  - **PcrPid** *(string) --* Packet Identifier (PID) of the Program Clock Reference
                  (PCR) in the transport stream. When no value is given, the encoder will assign the
                  same value as the Video PID. Can be entered as a decimal or hexadecimal value.

                  - **PmtInterval** *(integer) --* The number of milliseconds between instances of
                  this table in the output transport stream. A value of \\"0\\" writes out the PMT
                  once per segment file.

                  - **PmtPid** *(string) --* Packet Identifier (PID) for the Program Map Table (PMT)
                  in the transport stream. Can be entered as a decimal or hexadecimal value.

                  - **ProgramNum** *(integer) --* The value of the program number field in the
                  Program Map Table.

                  - **Scte35Behavior** *(string) --* If set to passthrough, passes any SCTE-35
                  signals from the input source to this output.

                  - **Scte35Pid** *(string) --* Packet Identifier (PID) of the SCTE-35 stream in the
                  transport stream. Can be entered as a decimal or hexadecimal value.

                  - **TimedMetadataBehavior** *(string) --* When set to passthrough, timed metadata
                  is passed through from input to output.

                  - **TimedMetadataPid** *(string) --* Packet Identifier (PID) of the timed metadata
                  stream in the transport stream. Can be entered as a decimal or hexadecimal value.
                  Valid values are 32 (or 0x20)..8182 (or 0x1ff6).

                  - **TransportStreamId** *(integer) --* The value of the transport stream ID field
                  in the Program Map Table.

                  - **VideoPid** *(string) --* Packet Identifier (PID) of the elementary video
                  stream in the transport stream. Can be entered as a decimal or hexadecimal value.

            - **NameModifier** *(string) --* String concatenated to the end of the destination
            filename. Accepts \\"Format Identifiers\\":#formatIdentifierParameters.

            - **SegmentModifier** *(string) --* String concatenated to end of segment filenames.

          - **MediaPackageOutputSettings** *(dict) --* Media Package Output Settings

          - **MsSmoothOutputSettings** *(dict) --* Ms Smooth Output Settings

            - **H265PackagingType** *(string) --* Only applicable when this output is referencing an
            H.265 video description. Specifies whether MP4 segments should be packaged as HEV1 or
            HVC1.

            - **NameModifier** *(string) --* String concatenated to the end of the destination
            filename. Required for multiple outputs of the same type.

          - **MultiplexOutputSettings** *(dict) --* Multiplex Output Settings

            - **Destination** *(dict) --* **[REQUIRED]** Destination is a Multiplex.

              - **DestinationRefId** *(string) --* Placeholder documentation for __string

          - **RtmpOutputSettings** *(dict) --* Rtmp Output Settings

            - **CertificateMode** *(string) --* If set to verifyAuthenticity, verify the tls
            certificate chain to a trusted Certificate Authority (CA). This will cause rtmps outputs
            with self-signed certificates to fail.

            - **ConnectionRetryInterval** *(integer) --* Number of seconds to wait before retrying a
            connection to the Flash Media server if the connection is lost.

            - **Destination** *(dict) --* **[REQUIRED]** The RTMP endpoint excluding the stream name
            (eg. rtmp://host/appname). For connection to Akamai, a username and password must be
            supplied. URI fields accept format identifiers.

              - **DestinationRefId** *(string) --* Placeholder documentation for __string

            - **NumRetries** *(integer) --* Number of retry attempts.

          - **UdpOutputSettings** *(dict) --* Udp Output Settings

            - **BufferMsec** *(integer) --* UDP output buffering in milliseconds. Larger values
            increase latency through the transcoder but simultaneously assist the transcoder in
            maintaining a constant, low-jitter UDP/RTP output while accommodating clock recovery,
            input switching, input disruptions, picture reordering, etc.

            - **ContainerSettings** *(dict) --* **[REQUIRED]** Udp Container Settings

              - **M2tsSettings** *(dict) --* M2ts Settings

                - **AbsentInputAudioBehavior** *(string) --* When set to drop, output audio streams
                will be removed from the program if the selected input audio stream is removed from
                the input. This allows the output audio configuration to dynamically change based on
                input configuration. If this is set to encodeSilence, all output audio streams will
                output encoded silence when not connected to an active input stream.

                - **Arib** *(string) --* When set to enabled, uses ARIB-compliant field muxing and
                removes video descriptor.

                - **AribCaptionsPid** *(string) --* Packet Identifier (PID) for ARIB Captions in the
                transport stream. Can be entered as a decimal or hexadecimal value. Valid values are
                32 (or 0x20)..8182 (or 0x1ff6).

                - **AribCaptionsPidControl** *(string) --* If set to auto, pid number used for ARIB
                Captions will be auto-selected from unused pids. If set to useConfigured, ARIB
                Captions will be on the configured pid number.

                - **AudioBufferModel** *(string) --* When set to dvb, uses DVB buffer model for
                Dolby Digital audio. When set to atsc, the ATSC model is used.

                - **AudioFramesPerPes** *(integer) --* The number of audio frames to insert for each
                PES packet.

                - **AudioPids** *(string) --* Packet Identifier (PID) of the elementary audio
                stream(s) in the transport stream. Multiple values are accepted, and can be entered
                in ranges and/or by comma separation. Can be entered as decimal or hexadecimal
                values. Each PID specified must be in the range of 32 (or 0x20)..8182 (or 0x1ff6).

                - **AudioStreamType** *(string) --* When set to atsc, uses stream type =
                     0x81 for
                AC3 and stream type = 0x87 for EAC3. When set to dvb, uses stream type =
                     0x06.

                - **Bitrate** *(integer) --* The output bitrate of the transport stream in bits per
                second. Setting to 0 lets the muxer automatically determine the appropriate bitrate.

                - **BufferModel** *(string) --* If set to multiplex, use multiplex buffer model for
                accurate interleaving. Setting to bufferModel to none can lead to lower latency, but
                low-memory devices may not be able to play back the stream without interruptions.

                - **CcDescriptor** *(string) --* When set to enabled, generates
                captionServiceDescriptor in PMT.

                - **DvbNitSettings** *(dict) --* Inserts DVB Network Information Table (NIT) at the
                specified table repetition interval.

                  - **NetworkId** *(integer) --* **[REQUIRED]** The numeric value placed in the
                  Network Information Table (NIT).

                  - **NetworkName** *(string) --* **[REQUIRED]** The network name text placed in the
                  networkNameDescriptor inside the Network Information Table. Maximum length is 256
                  characters.

                  - **RepInterval** *(integer) --* The number of milliseconds between instances of
                  this table in the output transport stream.

                - **DvbSdtSettings** *(dict) --* Inserts DVB Service Description Table (SDT) at the
                specified table repetition interval.

                  - **OutputSdt** *(string) --* Selects method of inserting SDT information into
                  output stream. The sdtFollow setting copies SDT information from input stream to
                  output stream. The sdtFollowIfPresent setting copies SDT information from input
                  stream to output stream if SDT information is present in the input, otherwise it
                  will fall back on the user-defined values. The sdtManual setting means user will
                  enter the SDT information. The sdtNone setting means output stream will not
                  contain SDT information.

                  - **RepInterval** *(integer) --* The number of milliseconds between instances of
                  this table in the output transport stream.

                  - **ServiceName** *(string) --* The service name placed in the serviceDescriptor
                  in the Service Description Table. Maximum length is 256 characters.

                  - **ServiceProviderName** *(string) --* The service provider name placed in the
                  serviceDescriptor in the Service Description Table. Maximum length is 256
                  characters.

                - **DvbSubPids** *(string) --* Packet Identifier (PID) for input source DVB Subtitle
                data to this output. Multiple values are accepted, and can be entered in ranges
                and/or by comma separation. Can be entered as decimal or hexadecimal values. Each
                PID specified must be in the range of 32 (or 0x20)..8182 (or 0x1ff6).

                - **DvbTdtSettings** *(dict) --* Inserts DVB Time and Date Table (TDT) at the
                specified table repetition interval.

                  - **RepInterval** *(integer) --* The number of milliseconds between instances of
                  this table in the output transport stream.

                - **DvbTeletextPid** *(string) --* Packet Identifier (PID) for input source DVB
                Teletext data to this output. Can be entered as a decimal or hexadecimal value.
                Valid values are 32 (or 0x20)..8182 (or 0x1ff6).

                - **Ebif** *(string) --* If set to passthrough, passes any EBIF data from the input
                source to this output.

                - **EbpAudioInterval** *(string) --* When videoAndFixedIntervals is selected, audio
                EBP markers will be added to partitions 3 and 4. The interval between these
                additional markers will be fixed, and will be slightly shorter than the video EBP
                marker interval. Only available when EBP Cablelabs segmentation markers are
                selected. Partitions 1 and 2 will always follow the video interval.

                - **EbpLookaheadMs** *(integer) --* When set, enforces that Encoder Boundary Points
                do not come within the specified time interval of each other by looking ahead at
                input video. If another EBP is going to come in within the specified time interval,
                the current EBP is not emitted, and the segment is "stretched" to the next marker.
                The lookahead value does not add latency to the system. The Live Event must be
                configured elsewhere to create sufficient latency to make the lookahead accurate.

                - **EbpPlacement** *(string) --* Controls placement of EBP on Audio PIDs. If set to
                videoAndAudioPids, EBP markers will be placed on the video PID and all audio PIDs.
                If set to videoPid, EBP markers will be placed on only the video PID.

                - **EcmPid** *(string) --* This field is unused and deprecated.

                - **EsRateInPes** *(string) --* Include or exclude the ES Rate field in the PES
                header.

                - **EtvPlatformPid** *(string) --* Packet Identifier (PID) for input source ETV
                Platform data to this output. Can be entered as a decimal or hexadecimal value.
                Valid values are 32 (or 0x20)..8182 (or 0x1ff6).

                - **EtvSignalPid** *(string) --* Packet Identifier (PID) for input source ETV Signal
                data to this output. Can be entered as a decimal or hexadecimal value. Valid values
                are 32 (or 0x20)..8182 (or 0x1ff6).

                - **FragmentTime** *(float) --* The length in seconds of each fragment. Only used
                with EBP markers.

                - **Klv** *(string) --* If set to passthrough, passes any KLV data from the input
                source to this output.

                - **KlvDataPids** *(string) --* Packet Identifier (PID) for input source KLV data to
                this output. Multiple values are accepted, and can be entered in ranges and/or by
                comma separation. Can be entered as decimal or hexadecimal values. Each PID
                specified must be in the range of 32 (or 0x20)..8182 (or 0x1ff6).

                - **NielsenId3Behavior** *(string) --* If set to passthrough, Nielsen inaudible
                tones for media tracking will be detected in the input audio and an equivalent ID3
                tag will be inserted in the output.

                - **NullPacketBitrate** *(float) --* Value in bits per second of extra null packets
                to insert into the transport stream. This can be used if a downstream encryption
                system requires periodic null packets.

                - **PatInterval** *(integer) --* The number of milliseconds between instances of
                this table in the output transport stream. Valid values are 0, 10..1000.

                - **PcrControl** *(string) --* When set to pcrEveryPesPacket, a Program Clock
                Reference value is inserted for every Packetized Elementary Stream (PES) header.
                This parameter is effective only when the PCR PID is the same as the video or audio
                elementary stream.

                - **PcrPeriod** *(integer) --* Maximum time in milliseconds between Program Clock
                Reference (PCRs) inserted into the transport stream.

                - **PcrPid** *(string) --* Packet Identifier (PID) of the Program Clock Reference
                (PCR) in the transport stream. When no value is given, the encoder will assign the
                same value as the Video PID. Can be entered as a decimal or hexadecimal value. Valid
                values are 32 (or 0x20)..8182 (or 0x1ff6).

                - **PmtInterval** *(integer) --* The number of milliseconds between instances of
                this table in the output transport stream. Valid values are 0, 10..1000.

                - **PmtPid** *(string) --* Packet Identifier (PID) for the Program Map Table (PMT)
                in the transport stream. Can be entered as a decimal or hexadecimal value. Valid
                values are 32 (or 0x20)..8182 (or 0x1ff6).

                - **ProgramNum** *(integer) --* The value of the program number field in the Program
                Map Table.

                - **RateMode** *(string) --* When vbr, does not insert null packets into transport
                stream to fill specified bitrate. The bitrate setting acts as the maximum bitrate
                when vbr is set.

                - **Scte27Pids** *(string) --* Packet Identifier (PID) for input source SCTE-27 data
                to this output. Multiple values are accepted, and can be entered in ranges and/or by
                comma separation. Can be entered as decimal or hexadecimal values. Each PID
                specified must be in the range of 32 (or 0x20)..8182 (or 0x1ff6).

                - **Scte35Control** *(string) --* Optionally pass SCTE-35 signals from the input
                source to this output.

                - **Scte35Pid** *(string) --* Packet Identifier (PID) of the SCTE-35 stream in the
                transport stream. Can be entered as a decimal or hexadecimal value. Valid values are
                32 (or 0x20)..8182 (or 0x1ff6).

                - **SegmentationMarkers** *(string) --* Inserts segmentation markers at each
                segmentationTime period. raiSegstart sets the Random Access Indicator bit in the
                adaptation field. raiAdapt sets the RAI bit and adds the current timecode in the
                private data bytes. psiSegstart inserts PAT and PMT tables at the start of segments.
                ebp adds Encoder Boundary Point information to the adaptation field as per OpenCable
                specification OC-SP-EBP-I01-130118. ebpLegacy adds Encoder Boundary Point
                information to the adaptation field using a legacy proprietary format.

                - **SegmentationStyle** *(string) --* The segmentation style parameter controls how
                segmentation markers are inserted into the transport stream. With avails, it is
                possible that segments may be truncated, which can influence where future
                segmentation markers are inserted. When a segmentation style of "resetCadence" is
                selected and a segment is truncated due to an avail, we will reset the segmentation
                cadence. This means the subsequent segment will have a duration of $segmentationTime
                seconds. When a segmentation style of "maintainCadence" is selected and a segment is
                truncated due to an avail, we will not reset the segmentation cadence. This means
                the subsequent segment will likely be truncated as well. However, all segments after
                that will have a duration of $segmentationTime seconds. Note that EBP lookahead is a
                slight exception to this rule.

                - **SegmentationTime** *(float) --* The length in seconds of each segment. Required
                unless markers is set to None_.

                - **TimedMetadataBehavior** *(string) --* When set to passthrough, timed metadata
                will be passed through from input to output.

                - **TimedMetadataPid** *(string) --* Packet Identifier (PID) of the timed metadata
                stream in the transport stream. Can be entered as a decimal or hexadecimal value.
                Valid values are 32 (or 0x20)..8182 (or 0x1ff6).

                - **TransportStreamId** *(integer) --* The value of the transport stream ID field in
                the Program Map Table.

                - **VideoPid** *(string) --* Packet Identifier (PID) of the elementary video stream
                in the transport stream. Can be entered as a decimal or hexadecimal value. Valid
                values are 32 (or 0x20)..8182 (or 0x1ff6).

            - **Destination** *(dict) --* **[REQUIRED]** Destination address and port number for RTP
            or UDP packets. Can be unicast or multicast RTP or UDP (eg. rtp://239.10.10.10:5001 or
            udp://10.100.100.100:5002).

              - **DestinationRefId** *(string) --* Placeholder documentation for __string

            - **FecOutputSettings** *(dict) --* Settings for enabling and adjusting Forward Error
            Correction on UDP outputs.

              - **ColumnDepth** *(integer) --* Parameter D from SMPTE 2022-1. The height of the FEC
              protection matrix. The number of transport stream packets per column error correction
              packet. Must be between 4 and 20, inclusive.

              - **IncludeFec** *(string) --* Enables column only or column and row based FEC

              - **RowLength** *(integer) --* Parameter L from SMPTE 2022-1. The width of the FEC
              protection matrix. Must be between 1 and 20, inclusive. If only Column FEC is used,
              then larger values increase robustness. If Row FEC is used, then this is the number of
              transport stream packets per row error correction packet, and the value must be
              between 4 and 20, inclusive, if includeFec is columnAndRow. If includeFec is column,
              this value must be 1 to 20, inclusive.

        - **VideoDescriptionName** *(string) --* The name of the VideoDescription used as the source
        for this output.
    """


_RequiredClientCreateChannelEncoderSettingsTimecodeConfigTypeDef = TypedDict(
    "_RequiredClientCreateChannelEncoderSettingsTimecodeConfigTypeDef", {"Source": str}
)
_OptionalClientCreateChannelEncoderSettingsTimecodeConfigTypeDef = TypedDict(
    "_OptionalClientCreateChannelEncoderSettingsTimecodeConfigTypeDef",
    {"SyncThreshold": int},
    total=False,
)


class ClientCreateChannelEncoderSettingsTimecodeConfigTypeDef(
    _RequiredClientCreateChannelEncoderSettingsTimecodeConfigTypeDef,
    _OptionalClientCreateChannelEncoderSettingsTimecodeConfigTypeDef,
):
    """
    Type definition for `ClientCreateChannelEncoderSettings` `TimecodeConfig`

    - **Source** *(string) --* **[REQUIRED]** Identifies the source for the timecode that will be
    associated with the events outputs. -Embedded (embedded): Initialize the output timecode with
    timecode from the the source. If no embedded timecode is detected in the source, the system
    falls back to using "Start at 0" (zerobased). -System Clock (systemclock): Use the UTC time.
    -Start at 0 (zerobased): The time of the first frame of the event will be 00:00:00:00.

    - **SyncThreshold** *(integer) --* Threshold in frames beyond which output timecode is
    resynchronized to the input timecode. Discrepancies below this threshold are permitted to avoid
    unnecessary discontinuities in the output timecode. No timecode sync when this is not specified.
    """


_ClientCreateChannelEncoderSettingsVideoDescriptionsCodecSettingsFrameCaptureSettingsTypeDef = TypedDict(
    "_ClientCreateChannelEncoderSettingsVideoDescriptionsCodecSettingsFrameCaptureSettingsTypeDef",
    {"CaptureInterval": int},
)


class ClientCreateChannelEncoderSettingsVideoDescriptionsCodecSettingsFrameCaptureSettingsTypeDef(
    _ClientCreateChannelEncoderSettingsVideoDescriptionsCodecSettingsFrameCaptureSettingsTypeDef
):
    """
    Type definition for `ClientCreateChannelEncoderSettingsVideoDescriptionsCodecSettings`
    `FrameCaptureSettings`

    - **CaptureInterval** *(integer) --* **[REQUIRED]** The frequency at which to capture frames for
    inclusion in the output. May be specified in either seconds or milliseconds, as specified by
    captureIntervalUnits.
    """


_ClientCreateChannelEncoderSettingsVideoDescriptionsCodecSettingsH264SettingsColorSpaceSettingsTypeDef = TypedDict(
    "_ClientCreateChannelEncoderSettingsVideoDescriptionsCodecSettingsH264SettingsColorSpaceSettingsTypeDef",
    {
        "ColorSpacePassthroughSettings": Dict,
        "Rec601Settings": Dict,
        "Rec709Settings": Dict[str, Any],
    },
    total=False,
)


class ClientCreateChannelEncoderSettingsVideoDescriptionsCodecSettingsH264SettingsColorSpaceSettingsTypeDef(
    _ClientCreateChannelEncoderSettingsVideoDescriptionsCodecSettingsH264SettingsColorSpaceSettingsTypeDef
):
    """
    Type definition for
    `ClientCreateChannelEncoderSettingsVideoDescriptionsCodecSettingsH264Settings`
    `ColorSpaceSettings`

    - **ColorSpacePassthroughSettings** *(dict) --* Passthrough applies no color space conversion to
    the output

    - **Rec601Settings** *(dict) --* Rec601 Settings

    - **Rec709Settings** *(dict) --* Rec709 Settings
    """


_ClientCreateChannelEncoderSettingsVideoDescriptionsCodecSettingsH264SettingsTypeDef = TypedDict(
    "_ClientCreateChannelEncoderSettingsVideoDescriptionsCodecSettingsH264SettingsTypeDef",
    {
        "AdaptiveQuantization": str,
        "AfdSignaling": str,
        "Bitrate": int,
        "BufFillPct": int,
        "BufSize": int,
        "ColorMetadata": str,
        "ColorSpaceSettings": ClientCreateChannelEncoderSettingsVideoDescriptionsCodecSettingsH264SettingsColorSpaceSettingsTypeDef,
        "EntropyEncoding": str,
        "FixedAfd": str,
        "FlickerAq": str,
        "FramerateControl": str,
        "FramerateDenominator": int,
        "FramerateNumerator": int,
        "GopBReference": str,
        "GopClosedCadence": int,
        "GopNumBFrames": int,
        "GopSize": float,
        "GopSizeUnits": str,
        "Level": str,
        "LookAheadRateControl": str,
        "MaxBitrate": int,
        "MinIInterval": int,
        "NumRefFrames": int,
        "ParControl": str,
        "ParDenominator": int,
        "ParNumerator": int,
        "Profile": str,
        "QvbrQualityLevel": int,
        "RateControlMode": str,
        "ScanType": str,
        "SceneChangeDetect": str,
        "Slices": int,
        "Softness": int,
        "SpatialAq": str,
        "SubgopLength": str,
        "Syntax": str,
        "TemporalAq": str,
        "TimecodeInsertion": str,
    },
    total=False,
)


class ClientCreateChannelEncoderSettingsVideoDescriptionsCodecSettingsH264SettingsTypeDef(
    _ClientCreateChannelEncoderSettingsVideoDescriptionsCodecSettingsH264SettingsTypeDef
):
    """
    Type definition for `ClientCreateChannelEncoderSettingsVideoDescriptionsCodecSettings`
    `H264Settings`

    - **AdaptiveQuantization** *(string) --* Adaptive quantization. Allows intra-frame quantizers to
    vary to improve visual quality.

    - **AfdSignaling** *(string) --* Indicates that AFD values will be written into the output
    stream. If afdSignaling is "auto", the system will try to preserve the input AFD value (in cases
    where multiple AFD values are valid). If set to "fixed", the AFD value will be the value
    configured in the fixedAfd parameter.

    - **Bitrate** *(integer) --* Average bitrate in bits/second. Required when the rate control mode
    is VBR or CBR. Not used for QVBR. In an MS Smooth output group, each output must have a unique
    value when its bitrate is rounded down to the nearest multiple of 1000.

    - **BufFillPct** *(integer) --* Percentage of the buffer that should initially be filled (HRD
    buffer model).

    - **BufSize** *(integer) --* Size of buffer (HRD buffer model) in bits.

    - **ColorMetadata** *(string) --* Includes colorspace metadata in the output.

    - **ColorSpaceSettings** *(dict) --* Color Space settings

      - **ColorSpacePassthroughSettings** *(dict) --* Passthrough applies no color space conversion
      to the output

      - **Rec601Settings** *(dict) --* Rec601 Settings

      - **Rec709Settings** *(dict) --* Rec709 Settings

    - **EntropyEncoding** *(string) --* Entropy encoding mode. Use cabac (must be in Main or High
    profile) or cavlc.

    - **FixedAfd** *(string) --* Four bit AFD value to write on all frames of video in the output
    stream. Only valid when afdSignaling is set to 'Fixed'.

    - **FlickerAq** *(string) --* If set to enabled, adjust quantization within each frame to reduce
    flicker or 'pop' on I-frames.

    - **FramerateControl** *(string) --* This field indicates how the output video frame rate is
    specified. If "specified" is selected then the output video frame rate is determined by
    framerateNumerator and framerateDenominator, else if "initializeFromSource" is selected then the
    output video frame rate will be set equal to the input video frame rate of the first input.

    - **FramerateDenominator** *(integer) --* Framerate denominator.

    - **FramerateNumerator** *(integer) --* Framerate numerator - framerate is a fraction, e.g.
    24000 / 1001 = 23.976 fps.

    - **GopBReference** *(string) --* Documentation update needed

    - **GopClosedCadence** *(integer) --* Frequency of closed GOPs. In streaming applications, it is
    recommended that this be set to 1 so a decoder joining mid-stream will receive an IDR frame as
    quickly as possible. Setting this value to 0 will break output segmenting.

    - **GopNumBFrames** *(integer) --* Number of B-frames between reference frames.

    - **GopSize** *(float) --* GOP size (keyframe interval) in units of either frames or seconds per
    gopSizeUnits. If gopSizeUnits is frames, gopSize must be an integer and must be greater than or
    equal to 1. If gopSizeUnits is seconds, gopSize must be greater than 0, but need not be an
    integer.

    - **GopSizeUnits** *(string) --* Indicates if the gopSize is specified in frames or seconds. If
    seconds the system will convert the gopSize into a frame count at run time.

    - **Level** *(string) --* H.264 Level.

    - **LookAheadRateControl** *(string) --* Amount of lookahead. A value of low can decrease
    latency and memory usage, while high can produce better quality for certain content.

    - **MaxBitrate** *(integer) --* For QVBR: See the tooltip for Quality level For VBR: Set the
    maximum bitrate in order to accommodate expected spikes in the complexity of the video.

    - **MinIInterval** *(integer) --* Only meaningful if sceneChangeDetect is set to enabled.
    Defaults to 5 if multiplex rate control is used. Enforces separation between repeated (cadence)
    I-frames and I-frames inserted by Scene Change Detection. If a scene change I-frame is within
    I-interval frames of a cadence I-frame, the GOP is shrunk and/or stretched to the scene change
    I-frame. GOP stretch requires enabling lookahead as well as setting I-interval. The normal
    cadence resumes for the next GOP. Note: Maximum GOP stretch = GOP size + Min-I-interval - 1

    - **NumRefFrames** *(integer) --* Number of reference frames to use. The encoder may use more
    than requested if using B-frames and/or interlaced encoding.

    - **ParControl** *(string) --* This field indicates how the output pixel aspect ratio is
    specified. If "specified" is selected then the output video pixel aspect ratio is determined by
    parNumerator and parDenominator, else if "initializeFromSource" is selected then the output
    pixsel aspect ratio will be set equal to the input video pixel aspect ratio of the first input.

    - **ParDenominator** *(integer) --* Pixel Aspect Ratio denominator.

    - **ParNumerator** *(integer) --* Pixel Aspect Ratio numerator.

    - **Profile** *(string) --* H.264 Profile.

    - **QvbrQualityLevel** *(integer) --* Controls the target quality for the video encode. Applies
    only when the rate control mode is QVBR. Set values for the QVBR quality level field and Max
    bitrate field that suit your most important viewing devices. Recommended values are: - Primary
    screen: Quality level: 8 to 10. Max bitrate: 4M - PC or tablet: Quality level: 7. Max bitrate:
    1.5M to 3M - Smartphone: Quality level: 6. Max bitrate: 1M to 1.5M

    - **RateControlMode** *(string) --* Rate control mode. QVBR: Quality will match the specified
    quality level except when it is constrained by the maximum bitrate. Recommended if you or your
    viewers pay for bandwidth. VBR: Quality and bitrate vary, depending on the video complexity.
    Recommended instead of QVBR if you want to maintain a specific average bitrate over the duration
    of the channel. CBR: Quality varies, depending on the video complexity. Recommended only if you
    distribute your assets to devices that cannot handle variable bitrates.

    - **ScanType** *(string) --* Sets the scan type of the output to progressive or top-field-first
    interlaced.

    - **SceneChangeDetect** *(string) --* Scene change detection. - On: inserts I-frames when scene
    change is detected. - Off: does not force an I-frame when scene change is detected.

    - **Slices** *(integer) --* Number of slices per picture. Must be less than or equal to the
    number of macroblock rows for progressive pictures, and less than or equal to half the number of
    macroblock rows for interlaced pictures. This field is optional; when no value is specified the
    encoder will choose the number of slices based on encode resolution.

    - **Softness** *(integer) --* Softness. Selects quantizer matrix, larger values reduce
    high-frequency content in the encoded image.

    - **SpatialAq** *(string) --* If set to enabled, adjust quantization within each frame based on
    spatial variation of content complexity.

    - **SubgopLength** *(string) --* If set to fixed, use gopNumBFrames B-frames per sub-GOP. If set
    to dynamic, optimize the number of B-frames used for each sub-GOP to improve visual quality.

    - **Syntax** *(string) --* Produces a bitstream compliant with SMPTE RP-2027.

    - **TemporalAq** *(string) --* If set to enabled, adjust quantization within each frame based on
    temporal variation of content complexity.

    - **TimecodeInsertion** *(string) --* Determines how timecodes should be inserted into the video
    elementary stream. - 'disabled': Do not include timecodes - 'picTimingSei': Pass through picture
    timing SEI messages from the source specified in Timecode Config
    """


_ClientCreateChannelEncoderSettingsVideoDescriptionsCodecSettingsH265SettingsColorSpaceSettingsHdr10SettingsTypeDef = TypedDict(
    "_ClientCreateChannelEncoderSettingsVideoDescriptionsCodecSettingsH265SettingsColorSpaceSettingsHdr10SettingsTypeDef",
    {"MaxCll": int, "MaxFall": int},
    total=False,
)


class ClientCreateChannelEncoderSettingsVideoDescriptionsCodecSettingsH265SettingsColorSpaceSettingsHdr10SettingsTypeDef(
    _ClientCreateChannelEncoderSettingsVideoDescriptionsCodecSettingsH265SettingsColorSpaceSettingsHdr10SettingsTypeDef
):
    """
    Type definition for
    `ClientCreateChannelEncoderSettingsVideoDescriptionsCodecSettingsH265SettingsColorSpaceSettings`
    `Hdr10Settings`

    - **MaxCll** *(integer) --* Maximum Content Light Level An integer metadata value defining the
    maximum light level, in nits, of any single pixel within an encoded HDR video stream or file.

    - **MaxFall** *(integer) --* Maximum Frame Average Light Level An integer metadata value
    defining the maximum average light level, in nits, for any single frame within an encoded HDR
    video stream or file.
    """


_ClientCreateChannelEncoderSettingsVideoDescriptionsCodecSettingsH265SettingsColorSpaceSettingsTypeDef = TypedDict(
    "_ClientCreateChannelEncoderSettingsVideoDescriptionsCodecSettingsH265SettingsColorSpaceSettingsTypeDef",
    {
        "ColorSpacePassthroughSettings": Dict,
        "Hdr10Settings": ClientCreateChannelEncoderSettingsVideoDescriptionsCodecSettingsH265SettingsColorSpaceSettingsHdr10SettingsTypeDef,
        "Rec601Settings": Dict,
        "Rec709Settings": Dict[str, Any],
    },
    total=False,
)


class ClientCreateChannelEncoderSettingsVideoDescriptionsCodecSettingsH265SettingsColorSpaceSettingsTypeDef(
    _ClientCreateChannelEncoderSettingsVideoDescriptionsCodecSettingsH265SettingsColorSpaceSettingsTypeDef
):
    """
    Type definition for
    `ClientCreateChannelEncoderSettingsVideoDescriptionsCodecSettingsH265Settings`
    `ColorSpaceSettings`

    - **ColorSpacePassthroughSettings** *(dict) --* Passthrough applies no color space conversion to
    the output

    - **Hdr10Settings** *(dict) --* Hdr10 Settings

      - **MaxCll** *(integer) --* Maximum Content Light Level An integer metadata value defining the
      maximum light level, in nits, of any single pixel within an encoded HDR video stream or file.

      - **MaxFall** *(integer) --* Maximum Frame Average Light Level An integer metadata value
      defining the maximum average light level, in nits, for any single frame within an encoded HDR
      video stream or file.

    - **Rec601Settings** *(dict) --* Rec601 Settings

    - **Rec709Settings** *(dict) --* Rec709 Settings
    """


_RequiredClientCreateChannelEncoderSettingsVideoDescriptionsCodecSettingsH265SettingsTypeDef = TypedDict(
    "_RequiredClientCreateChannelEncoderSettingsVideoDescriptionsCodecSettingsH265SettingsTypeDef",
    {"FramerateDenominator": int, "FramerateNumerator": int},
)
_OptionalClientCreateChannelEncoderSettingsVideoDescriptionsCodecSettingsH265SettingsTypeDef = TypedDict(
    "_OptionalClientCreateChannelEncoderSettingsVideoDescriptionsCodecSettingsH265SettingsTypeDef",
    {
        "AdaptiveQuantization": str,
        "AfdSignaling": str,
        "AlternativeTransferFunction": str,
        "Bitrate": int,
        "BufSize": int,
        "ColorMetadata": str,
        "ColorSpaceSettings": ClientCreateChannelEncoderSettingsVideoDescriptionsCodecSettingsH265SettingsColorSpaceSettingsTypeDef,
        "FixedAfd": str,
        "FlickerAq": str,
        "GopClosedCadence": int,
        "GopSize": float,
        "GopSizeUnits": str,
        "Level": str,
        "LookAheadRateControl": str,
        "MaxBitrate": int,
        "MinIInterval": int,
        "ParDenominator": int,
        "ParNumerator": int,
        "Profile": str,
        "QvbrQualityLevel": int,
        "RateControlMode": str,
        "ScanType": str,
        "SceneChangeDetect": str,
        "Slices": int,
        "Tier": str,
        "TimecodeInsertion": str,
    },
    total=False,
)


class ClientCreateChannelEncoderSettingsVideoDescriptionsCodecSettingsH265SettingsTypeDef(
    _RequiredClientCreateChannelEncoderSettingsVideoDescriptionsCodecSettingsH265SettingsTypeDef,
    _OptionalClientCreateChannelEncoderSettingsVideoDescriptionsCodecSettingsH265SettingsTypeDef,
):
    """
    Type definition for `ClientCreateChannelEncoderSettingsVideoDescriptionsCodecSettings`
    `H265Settings`

    - **AdaptiveQuantization** *(string) --* Adaptive quantization. Allows intra-frame quantizers to
    vary to improve visual quality.

    - **AfdSignaling** *(string) --* Indicates that AFD values will be written into the output
    stream. If afdSignaling is "auto", the system will try to preserve the input AFD value (in cases
    where multiple AFD values are valid). If set to "fixed", the AFD value will be the value
    configured in the fixedAfd parameter.

    - **AlternativeTransferFunction** *(string) --* Whether or not EML should insert an Alternative
    Transfer Function SEI message to support backwards compatibility with non-HDR decoders and
    displays.

    - **Bitrate** *(integer) --* Average bitrate in bits/second. Required when the rate control mode
    is VBR or CBR. Not used for QVBR. In an MS Smooth output group, each output must have a unique
    value when its bitrate is rounded down to the nearest multiple of 1000.

    - **BufSize** *(integer) --* Size of buffer (HRD buffer model) in bits.

    - **ColorMetadata** *(string) --* Includes colorspace metadata in the output.

    - **ColorSpaceSettings** *(dict) --* Color Space settings

      - **ColorSpacePassthroughSettings** *(dict) --* Passthrough applies no color space conversion
      to the output

      - **Hdr10Settings** *(dict) --* Hdr10 Settings

        - **MaxCll** *(integer) --* Maximum Content Light Level An integer metadata value defining
        the maximum light level, in nits, of any single pixel within an encoded HDR video stream or
        file.

        - **MaxFall** *(integer) --* Maximum Frame Average Light Level An integer metadata value
        defining the maximum average light level, in nits, for any single frame within an encoded
        HDR video stream or file.

      - **Rec601Settings** *(dict) --* Rec601 Settings

      - **Rec709Settings** *(dict) --* Rec709 Settings

    - **FixedAfd** *(string) --* Four bit AFD value to write on all frames of video in the output
    stream. Only valid when afdSignaling is set to 'Fixed'.

    - **FlickerAq** *(string) --* If set to enabled, adjust quantization within each frame to reduce
    flicker or 'pop' on I-frames.

    - **FramerateDenominator** *(integer) --* **[REQUIRED]** Framerate denominator.

    - **FramerateNumerator** *(integer) --* **[REQUIRED]** Framerate numerator - framerate is a
    fraction, e.g. 24000 / 1001 = 23.976 fps.

    - **GopClosedCadence** *(integer) --* Frequency of closed GOPs. In streaming applications, it is
    recommended that this be set to 1 so a decoder joining mid-stream will receive an IDR frame as
    quickly as possible. Setting this value to 0 will break output segmenting.

    - **GopSize** *(float) --* GOP size (keyframe interval) in units of either frames or seconds per
    gopSizeUnits. If gopSizeUnits is frames, gopSize must be an integer and must be greater than or
    equal to 1. If gopSizeUnits is seconds, gopSize must be greater than 0, but need not be an
    integer.

    - **GopSizeUnits** *(string) --* Indicates if the gopSize is specified in frames or seconds. If
    seconds the system will convert the gopSize into a frame count at run time.

    - **Level** *(string) --* H.265 Level.

    - **LookAheadRateControl** *(string) --* Amount of lookahead. A value of low can decrease
    latency and memory usage, while high can produce better quality for certain content.

    - **MaxBitrate** *(integer) --* For QVBR: See the tooltip for Quality level

    - **MinIInterval** *(integer) --* Only meaningful if sceneChangeDetect is set to enabled.
    Defaults to 5 if multiplex rate control is used. Enforces separation between repeated (cadence)
    I-frames and I-frames inserted by Scene Change Detection. If a scene change I-frame is within
    I-interval frames of a cadence I-frame, the GOP is shrunk and/or stretched to the scene change
    I-frame. GOP stretch requires enabling lookahead as well as setting I-interval. The normal
    cadence resumes for the next GOP. Note: Maximum GOP stretch = GOP size + Min-I-interval - 1

    - **ParDenominator** *(integer) --* Pixel Aspect Ratio denominator.

    - **ParNumerator** *(integer) --* Pixel Aspect Ratio numerator.

    - **Profile** *(string) --* H.265 Profile.

    - **QvbrQualityLevel** *(integer) --* Controls the target quality for the video encode. Applies
    only when the rate control mode is QVBR. Set values for the QVBR quality level field and Max
    bitrate field that suit your most important viewing devices. Recommended values are: - Primary
    screen: Quality level: 8 to 10. Max bitrate: 4M - PC or tablet: Quality level: 7. Max bitrate:
    1.5M to 3M - Smartphone: Quality level: 6. Max bitrate: 1M to 1.5M

    - **RateControlMode** *(string) --* Rate control mode. QVBR: Quality will match the specified
    quality level except when it is constrained by the maximum bitrate. Recommended if you or your
    viewers pay for bandwidth. CBR: Quality varies, depending on the video complexity. Recommended
    only if you distribute your assets to devices that cannot handle variable bitrates.

    - **ScanType** *(string) --* Sets the scan type of the output to progressive or top-field-first
    interlaced.

    - **SceneChangeDetect** *(string) --* Scene change detection.

    - **Slices** *(integer) --* Number of slices per picture. Must be less than or equal to the
    number of macroblock rows for progressive pictures, and less than or equal to half the number of
    macroblock rows for interlaced pictures. This field is optional; when no value is specified the
    encoder will choose the number of slices based on encode resolution.

    - **Tier** *(string) --* H.265 Tier.

    - **TimecodeInsertion** *(string) --* Determines how timecodes should be inserted into the video
    elementary stream. - 'disabled': Do not include timecodes - 'picTimingSei': Pass through picture
    timing SEI messages from the source specified in Timecode Config
    """


_ClientCreateChannelEncoderSettingsVideoDescriptionsCodecSettingsTypeDef = TypedDict(
    "_ClientCreateChannelEncoderSettingsVideoDescriptionsCodecSettingsTypeDef",
    {
        "FrameCaptureSettings": ClientCreateChannelEncoderSettingsVideoDescriptionsCodecSettingsFrameCaptureSettingsTypeDef,
        "H264Settings": ClientCreateChannelEncoderSettingsVideoDescriptionsCodecSettingsH264SettingsTypeDef,
        "H265Settings": ClientCreateChannelEncoderSettingsVideoDescriptionsCodecSettingsH265SettingsTypeDef,
    },
    total=False,
)


class ClientCreateChannelEncoderSettingsVideoDescriptionsCodecSettingsTypeDef(
    _ClientCreateChannelEncoderSettingsVideoDescriptionsCodecSettingsTypeDef
):
    """
    Type definition for `ClientCreateChannelEncoderSettingsVideoDescriptions` `CodecSettings`

    - **FrameCaptureSettings** *(dict) --* Frame Capture Settings

      - **CaptureInterval** *(integer) --* **[REQUIRED]** The frequency at which to capture frames
      for inclusion in the output. May be specified in either seconds or milliseconds, as specified
      by captureIntervalUnits.

    - **H264Settings** *(dict) --* H264 Settings

      - **AdaptiveQuantization** *(string) --* Adaptive quantization. Allows intra-frame quantizers
      to vary to improve visual quality.

      - **AfdSignaling** *(string) --* Indicates that AFD values will be written into the output
      stream. If afdSignaling is "auto", the system will try to preserve the input AFD value (in
      cases where multiple AFD values are valid). If set to "fixed", the AFD value will be the value
      configured in the fixedAfd parameter.

      - **Bitrate** *(integer) --* Average bitrate in bits/second. Required when the rate control
      mode is VBR or CBR. Not used for QVBR. In an MS Smooth output group, each output must have a
      unique value when its bitrate is rounded down to the nearest multiple of 1000.

      - **BufFillPct** *(integer) --* Percentage of the buffer that should initially be filled (HRD
      buffer model).

      - **BufSize** *(integer) --* Size of buffer (HRD buffer model) in bits.

      - **ColorMetadata** *(string) --* Includes colorspace metadata in the output.

      - **ColorSpaceSettings** *(dict) --* Color Space settings

        - **ColorSpacePassthroughSettings** *(dict) --* Passthrough applies no color space
        conversion to the output

        - **Rec601Settings** *(dict) --* Rec601 Settings

        - **Rec709Settings** *(dict) --* Rec709 Settings

      - **EntropyEncoding** *(string) --* Entropy encoding mode. Use cabac (must be in Main or High
      profile) or cavlc.

      - **FixedAfd** *(string) --* Four bit AFD value to write on all frames of video in the output
      stream. Only valid when afdSignaling is set to 'Fixed'.

      - **FlickerAq** *(string) --* If set to enabled, adjust quantization within each frame to
      reduce flicker or 'pop' on I-frames.

      - **FramerateControl** *(string) --* This field indicates how the output video frame rate is
      specified. If "specified" is selected then the output video frame rate is determined by
      framerateNumerator and framerateDenominator, else if "initializeFromSource" is selected then
      the output video frame rate will be set equal to the input video frame rate of the first
      input.

      - **FramerateDenominator** *(integer) --* Framerate denominator.

      - **FramerateNumerator** *(integer) --* Framerate numerator - framerate is a fraction, e.g.
      24000 / 1001 = 23.976 fps.

      - **GopBReference** *(string) --* Documentation update needed

      - **GopClosedCadence** *(integer) --* Frequency of closed GOPs. In streaming applications, it
      is recommended that this be set to 1 so a decoder joining mid-stream will receive an IDR frame
      as quickly as possible. Setting this value to 0 will break output segmenting.

      - **GopNumBFrames** *(integer) --* Number of B-frames between reference frames.

      - **GopSize** *(float) --* GOP size (keyframe interval) in units of either frames or seconds
      per gopSizeUnits. If gopSizeUnits is frames, gopSize must be an integer and must be greater
      than or equal to 1. If gopSizeUnits is seconds, gopSize must be greater than 0, but need not
      be an integer.

      - **GopSizeUnits** *(string) --* Indicates if the gopSize is specified in frames or seconds.
      If seconds the system will convert the gopSize into a frame count at run time.

      - **Level** *(string) --* H.264 Level.

      - **LookAheadRateControl** *(string) --* Amount of lookahead. A value of low can decrease
      latency and memory usage, while high can produce better quality for certain content.

      - **MaxBitrate** *(integer) --* For QVBR: See the tooltip for Quality level For VBR: Set the
      maximum bitrate in order to accommodate expected spikes in the complexity of the video.

      - **MinIInterval** *(integer) --* Only meaningful if sceneChangeDetect is set to enabled.
      Defaults to 5 if multiplex rate control is used. Enforces separation between repeated
      (cadence) I-frames and I-frames inserted by Scene Change Detection. If a scene change I-frame
      is within I-interval frames of a cadence I-frame, the GOP is shrunk and/or stretched to the
      scene change I-frame. GOP stretch requires enabling lookahead as well as setting I-interval.
      The normal cadence resumes for the next GOP. Note: Maximum GOP stretch = GOP size +
      Min-I-interval - 1

      - **NumRefFrames** *(integer) --* Number of reference frames to use. The encoder may use more
      than requested if using B-frames and/or interlaced encoding.

      - **ParControl** *(string) --* This field indicates how the output pixel aspect ratio is
      specified. If "specified" is selected then the output video pixel aspect ratio is determined
      by parNumerator and parDenominator, else if "initializeFromSource" is selected then the output
      pixsel aspect ratio will be set equal to the input video pixel aspect ratio of the first
      input.

      - **ParDenominator** *(integer) --* Pixel Aspect Ratio denominator.

      - **ParNumerator** *(integer) --* Pixel Aspect Ratio numerator.

      - **Profile** *(string) --* H.264 Profile.

      - **QvbrQualityLevel** *(integer) --* Controls the target quality for the video encode.
      Applies only when the rate control mode is QVBR. Set values for the QVBR quality level field
      and Max bitrate field that suit your most important viewing devices. Recommended values are: -
      Primary screen: Quality level: 8 to 10. Max bitrate: 4M - PC or tablet: Quality level: 7. Max
      bitrate: 1.5M to 3M - Smartphone: Quality level: 6. Max bitrate: 1M to 1.5M

      - **RateControlMode** *(string) --* Rate control mode. QVBR: Quality will match the specified
      quality level except when it is constrained by the maximum bitrate. Recommended if you or your
      viewers pay for bandwidth. VBR: Quality and bitrate vary, depending on the video complexity.
      Recommended instead of QVBR if you want to maintain a specific average bitrate over the
      duration of the channel. CBR: Quality varies, depending on the video complexity. Recommended
      only if you distribute your assets to devices that cannot handle variable bitrates.

      - **ScanType** *(string) --* Sets the scan type of the output to progressive or
      top-field-first interlaced.

      - **SceneChangeDetect** *(string) --* Scene change detection. - On: inserts I-frames when
      scene change is detected. - Off: does not force an I-frame when scene change is detected.

      - **Slices** *(integer) --* Number of slices per picture. Must be less than or equal to the
      number of macroblock rows for progressive pictures, and less than or equal to half the number
      of macroblock rows for interlaced pictures. This field is optional; when no value is specified
      the encoder will choose the number of slices based on encode resolution.

      - **Softness** *(integer) --* Softness. Selects quantizer matrix, larger values reduce
      high-frequency content in the encoded image.

      - **SpatialAq** *(string) --* If set to enabled, adjust quantization within each frame based
      on spatial variation of content complexity.

      - **SubgopLength** *(string) --* If set to fixed, use gopNumBFrames B-frames per sub-GOP. If
      set to dynamic, optimize the number of B-frames used for each sub-GOP to improve visual
      quality.

      - **Syntax** *(string) --* Produces a bitstream compliant with SMPTE RP-2027.

      - **TemporalAq** *(string) --* If set to enabled, adjust quantization within each frame based
      on temporal variation of content complexity.

      - **TimecodeInsertion** *(string) --* Determines how timecodes should be inserted into the
      video elementary stream. - 'disabled': Do not include timecodes - 'picTimingSei': Pass through
      picture timing SEI messages from the source specified in Timecode Config

    - **H265Settings** *(dict) --* H265 Settings

      - **AdaptiveQuantization** *(string) --* Adaptive quantization. Allows intra-frame quantizers
      to vary to improve visual quality.

      - **AfdSignaling** *(string) --* Indicates that AFD values will be written into the output
      stream. If afdSignaling is "auto", the system will try to preserve the input AFD value (in
      cases where multiple AFD values are valid). If set to "fixed", the AFD value will be the value
      configured in the fixedAfd parameter.

      - **AlternativeTransferFunction** *(string) --* Whether or not EML should insert an
      Alternative Transfer Function SEI message to support backwards compatibility with non-HDR
      decoders and displays.

      - **Bitrate** *(integer) --* Average bitrate in bits/second. Required when the rate control
      mode is VBR or CBR. Not used for QVBR. In an MS Smooth output group, each output must have a
      unique value when its bitrate is rounded down to the nearest multiple of 1000.

      - **BufSize** *(integer) --* Size of buffer (HRD buffer model) in bits.

      - **ColorMetadata** *(string) --* Includes colorspace metadata in the output.

      - **ColorSpaceSettings** *(dict) --* Color Space settings

        - **ColorSpacePassthroughSettings** *(dict) --* Passthrough applies no color space
        conversion to the output

        - **Hdr10Settings** *(dict) --* Hdr10 Settings

          - **MaxCll** *(integer) --* Maximum Content Light Level An integer metadata value defining
          the maximum light level, in nits, of any single pixel within an encoded HDR video stream
          or file.

          - **MaxFall** *(integer) --* Maximum Frame Average Light Level An integer metadata value
          defining the maximum average light level, in nits, for any single frame within an encoded
          HDR video stream or file.

        - **Rec601Settings** *(dict) --* Rec601 Settings

        - **Rec709Settings** *(dict) --* Rec709 Settings

      - **FixedAfd** *(string) --* Four bit AFD value to write on all frames of video in the output
      stream. Only valid when afdSignaling is set to 'Fixed'.

      - **FlickerAq** *(string) --* If set to enabled, adjust quantization within each frame to
      reduce flicker or 'pop' on I-frames.

      - **FramerateDenominator** *(integer) --* **[REQUIRED]** Framerate denominator.

      - **FramerateNumerator** *(integer) --* **[REQUIRED]** Framerate numerator - framerate is a
      fraction, e.g. 24000 / 1001 = 23.976 fps.

      - **GopClosedCadence** *(integer) --* Frequency of closed GOPs. In streaming applications, it
      is recommended that this be set to 1 so a decoder joining mid-stream will receive an IDR frame
      as quickly as possible. Setting this value to 0 will break output segmenting.

      - **GopSize** *(float) --* GOP size (keyframe interval) in units of either frames or seconds
      per gopSizeUnits. If gopSizeUnits is frames, gopSize must be an integer and must be greater
      than or equal to 1. If gopSizeUnits is seconds, gopSize must be greater than 0, but need not
      be an integer.

      - **GopSizeUnits** *(string) --* Indicates if the gopSize is specified in frames or seconds.
      If seconds the system will convert the gopSize into a frame count at run time.

      - **Level** *(string) --* H.265 Level.

      - **LookAheadRateControl** *(string) --* Amount of lookahead. A value of low can decrease
      latency and memory usage, while high can produce better quality for certain content.

      - **MaxBitrate** *(integer) --* For QVBR: See the tooltip for Quality level

      - **MinIInterval** *(integer) --* Only meaningful if sceneChangeDetect is set to enabled.
      Defaults to 5 if multiplex rate control is used. Enforces separation between repeated
      (cadence) I-frames and I-frames inserted by Scene Change Detection. If a scene change I-frame
      is within I-interval frames of a cadence I-frame, the GOP is shrunk and/or stretched to the
      scene change I-frame. GOP stretch requires enabling lookahead as well as setting I-interval.
      The normal cadence resumes for the next GOP. Note: Maximum GOP stretch = GOP size +
      Min-I-interval - 1

      - **ParDenominator** *(integer) --* Pixel Aspect Ratio denominator.

      - **ParNumerator** *(integer) --* Pixel Aspect Ratio numerator.

      - **Profile** *(string) --* H.265 Profile.

      - **QvbrQualityLevel** *(integer) --* Controls the target quality for the video encode.
      Applies only when the rate control mode is QVBR. Set values for the QVBR quality level field
      and Max bitrate field that suit your most important viewing devices. Recommended values are: -
      Primary screen: Quality level: 8 to 10. Max bitrate: 4M - PC or tablet: Quality level: 7. Max
      bitrate: 1.5M to 3M - Smartphone: Quality level: 6. Max bitrate: 1M to 1.5M

      - **RateControlMode** *(string) --* Rate control mode. QVBR: Quality will match the specified
      quality level except when it is constrained by the maximum bitrate. Recommended if you or your
      viewers pay for bandwidth. CBR: Quality varies, depending on the video complexity. Recommended
      only if you distribute your assets to devices that cannot handle variable bitrates.

      - **ScanType** *(string) --* Sets the scan type of the output to progressive or
      top-field-first interlaced.

      - **SceneChangeDetect** *(string) --* Scene change detection.

      - **Slices** *(integer) --* Number of slices per picture. Must be less than or equal to the
      number of macroblock rows for progressive pictures, and less than or equal to half the number
      of macroblock rows for interlaced pictures. This field is optional; when no value is specified
      the encoder will choose the number of slices based on encode resolution.

      - **Tier** *(string) --* H.265 Tier.

      - **TimecodeInsertion** *(string) --* Determines how timecodes should be inserted into the
      video elementary stream. - 'disabled': Do not include timecodes - 'picTimingSei': Pass through
      picture timing SEI messages from the source specified in Timecode Config
    """


_RequiredClientCreateChannelEncoderSettingsVideoDescriptionsTypeDef = TypedDict(
    "_RequiredClientCreateChannelEncoderSettingsVideoDescriptionsTypeDef", {"Name": str}
)
_OptionalClientCreateChannelEncoderSettingsVideoDescriptionsTypeDef = TypedDict(
    "_OptionalClientCreateChannelEncoderSettingsVideoDescriptionsTypeDef",
    {
        "CodecSettings": ClientCreateChannelEncoderSettingsVideoDescriptionsCodecSettingsTypeDef,
        "Height": int,
        "RespondToAfd": str,
        "ScalingBehavior": str,
        "Sharpness": int,
        "Width": int,
    },
    total=False,
)


class ClientCreateChannelEncoderSettingsVideoDescriptionsTypeDef(
    _RequiredClientCreateChannelEncoderSettingsVideoDescriptionsTypeDef,
    _OptionalClientCreateChannelEncoderSettingsVideoDescriptionsTypeDef,
):
    """
    Type definition for `ClientCreateChannelEncoderSettings` `VideoDescriptions`

    - **CodecSettings** *(dict) --* Video codec settings.

      - **FrameCaptureSettings** *(dict) --* Frame Capture Settings

        - **CaptureInterval** *(integer) --* **[REQUIRED]** The frequency at which to capture frames
        for inclusion in the output. May be specified in either seconds or milliseconds, as
        specified by captureIntervalUnits.

      - **H264Settings** *(dict) --* H264 Settings

        - **AdaptiveQuantization** *(string) --* Adaptive quantization. Allows intra-frame
        quantizers to vary to improve visual quality.

        - **AfdSignaling** *(string) --* Indicates that AFD values will be written into the output
        stream. If afdSignaling is "auto", the system will try to preserve the input AFD value (in
        cases where multiple AFD values are valid). If set to "fixed", the AFD value will be the
        value configured in the fixedAfd parameter.

        - **Bitrate** *(integer) --* Average bitrate in bits/second. Required when the rate control
        mode is VBR or CBR. Not used for QVBR. In an MS Smooth output group, each output must have a
        unique value when its bitrate is rounded down to the nearest multiple of 1000.

        - **BufFillPct** *(integer) --* Percentage of the buffer that should initially be filled
        (HRD buffer model).

        - **BufSize** *(integer) --* Size of buffer (HRD buffer model) in bits.

        - **ColorMetadata** *(string) --* Includes colorspace metadata in the output.

        - **ColorSpaceSettings** *(dict) --* Color Space settings

          - **ColorSpacePassthroughSettings** *(dict) --* Passthrough applies no color space
          conversion to the output

          - **Rec601Settings** *(dict) --* Rec601 Settings

          - **Rec709Settings** *(dict) --* Rec709 Settings

        - **EntropyEncoding** *(string) --* Entropy encoding mode. Use cabac (must be in Main or
        High profile) or cavlc.

        - **FixedAfd** *(string) --* Four bit AFD value to write on all frames of video in the
        output stream. Only valid when afdSignaling is set to 'Fixed'.

        - **FlickerAq** *(string) --* If set to enabled, adjust quantization within each frame to
        reduce flicker or 'pop' on I-frames.

        - **FramerateControl** *(string) --* This field indicates how the output video frame rate is
        specified. If "specified" is selected then the output video frame rate is determined by
        framerateNumerator and framerateDenominator, else if "initializeFromSource" is selected then
        the output video frame rate will be set equal to the input video frame rate of the first
        input.

        - **FramerateDenominator** *(integer) --* Framerate denominator.

        - **FramerateNumerator** *(integer) --* Framerate numerator - framerate is a fraction, e.g.
        24000 / 1001 = 23.976 fps.

        - **GopBReference** *(string) --* Documentation update needed

        - **GopClosedCadence** *(integer) --* Frequency of closed GOPs. In streaming applications,
        it is recommended that this be set to 1 so a decoder joining mid-stream will receive an IDR
        frame as quickly as possible. Setting this value to 0 will break output segmenting.

        - **GopNumBFrames** *(integer) --* Number of B-frames between reference frames.

        - **GopSize** *(float) --* GOP size (keyframe interval) in units of either frames or seconds
        per gopSizeUnits. If gopSizeUnits is frames, gopSize must be an integer and must be greater
        than or equal to 1. If gopSizeUnits is seconds, gopSize must be greater than 0, but need not
        be an integer.

        - **GopSizeUnits** *(string) --* Indicates if the gopSize is specified in frames or seconds.
        If seconds the system will convert the gopSize into a frame count at run time.

        - **Level** *(string) --* H.264 Level.

        - **LookAheadRateControl** *(string) --* Amount of lookahead. A value of low can decrease
        latency and memory usage, while high can produce better quality for certain content.

        - **MaxBitrate** *(integer) --* For QVBR: See the tooltip for Quality level For VBR: Set the
        maximum bitrate in order to accommodate expected spikes in the complexity of the video.

        - **MinIInterval** *(integer) --* Only meaningful if sceneChangeDetect is set to enabled.
        Defaults to 5 if multiplex rate control is used. Enforces separation between repeated
        (cadence) I-frames and I-frames inserted by Scene Change Detection. If a scene change
        I-frame is within I-interval frames of a cadence I-frame, the GOP is shrunk and/or stretched
        to the scene change I-frame. GOP stretch requires enabling lookahead as well as setting
        I-interval. The normal cadence resumes for the next GOP. Note: Maximum GOP stretch = GOP
        size + Min-I-interval - 1

        - **NumRefFrames** *(integer) --* Number of reference frames to use. The encoder may use
        more than requested if using B-frames and/or interlaced encoding.

        - **ParControl** *(string) --* This field indicates how the output pixel aspect ratio is
        specified. If "specified" is selected then the output video pixel aspect ratio is determined
        by parNumerator and parDenominator, else if "initializeFromSource" is selected then the
        output pixsel aspect ratio will be set equal to the input video pixel aspect ratio of the
        first input.

        - **ParDenominator** *(integer) --* Pixel Aspect Ratio denominator.

        - **ParNumerator** *(integer) --* Pixel Aspect Ratio numerator.

        - **Profile** *(string) --* H.264 Profile.

        - **QvbrQualityLevel** *(integer) --* Controls the target quality for the video encode.
        Applies only when the rate control mode is QVBR. Set values for the QVBR quality level field
        and Max bitrate field that suit your most important viewing devices. Recommended values are:
        - Primary screen: Quality level: 8 to 10. Max bitrate: 4M - PC or tablet: Quality level: 7.
        Max bitrate: 1.5M to 3M - Smartphone: Quality level: 6. Max bitrate: 1M to 1.5M

        - **RateControlMode** *(string) --* Rate control mode. QVBR: Quality will match the
        specified quality level except when it is constrained by the maximum bitrate. Recommended if
        you or your viewers pay for bandwidth. VBR: Quality and bitrate vary, depending on the video
        complexity. Recommended instead of QVBR if you want to maintain a specific average bitrate
        over the duration of the channel. CBR: Quality varies, depending on the video complexity.
        Recommended only if you distribute your assets to devices that cannot handle variable
        bitrates.

        - **ScanType** *(string) --* Sets the scan type of the output to progressive or
        top-field-first interlaced.

        - **SceneChangeDetect** *(string) --* Scene change detection. - On: inserts I-frames when
        scene change is detected. - Off: does not force an I-frame when scene change is detected.

        - **Slices** *(integer) --* Number of slices per picture. Must be less than or equal to the
        number of macroblock rows for progressive pictures, and less than or equal to half the
        number of macroblock rows for interlaced pictures. This field is optional; when no value is
        specified the encoder will choose the number of slices based on encode resolution.

        - **Softness** *(integer) --* Softness. Selects quantizer matrix, larger values reduce
        high-frequency content in the encoded image.

        - **SpatialAq** *(string) --* If set to enabled, adjust quantization within each frame based
        on spatial variation of content complexity.

        - **SubgopLength** *(string) --* If set to fixed, use gopNumBFrames B-frames per sub-GOP. If
        set to dynamic, optimize the number of B-frames used for each sub-GOP to improve visual
        quality.

        - **Syntax** *(string) --* Produces a bitstream compliant with SMPTE RP-2027.

        - **TemporalAq** *(string) --* If set to enabled, adjust quantization within each frame
        based on temporal variation of content complexity.

        - **TimecodeInsertion** *(string) --* Determines how timecodes should be inserted into the
        video elementary stream. - 'disabled': Do not include timecodes - 'picTimingSei': Pass
        through picture timing SEI messages from the source specified in Timecode Config

      - **H265Settings** *(dict) --* H265 Settings

        - **AdaptiveQuantization** *(string) --* Adaptive quantization. Allows intra-frame
        quantizers to vary to improve visual quality.

        - **AfdSignaling** *(string) --* Indicates that AFD values will be written into the output
        stream. If afdSignaling is "auto", the system will try to preserve the input AFD value (in
        cases where multiple AFD values are valid). If set to "fixed", the AFD value will be the
        value configured in the fixedAfd parameter.

        - **AlternativeTransferFunction** *(string) --* Whether or not EML should insert an
        Alternative Transfer Function SEI message to support backwards compatibility with non-HDR
        decoders and displays.

        - **Bitrate** *(integer) --* Average bitrate in bits/second. Required when the rate control
        mode is VBR or CBR. Not used for QVBR. In an MS Smooth output group, each output must have a
        unique value when its bitrate is rounded down to the nearest multiple of 1000.

        - **BufSize** *(integer) --* Size of buffer (HRD buffer model) in bits.

        - **ColorMetadata** *(string) --* Includes colorspace metadata in the output.

        - **ColorSpaceSettings** *(dict) --* Color Space settings

          - **ColorSpacePassthroughSettings** *(dict) --* Passthrough applies no color space
          conversion to the output

          - **Hdr10Settings** *(dict) --* Hdr10 Settings

            - **MaxCll** *(integer) --* Maximum Content Light Level An integer metadata value
            defining the maximum light level, in nits, of any single pixel within an encoded HDR
            video stream or file.

            - **MaxFall** *(integer) --* Maximum Frame Average Light Level An integer metadata value
            defining the maximum average light level, in nits, for any single frame within an
            encoded HDR video stream or file.

          - **Rec601Settings** *(dict) --* Rec601 Settings

          - **Rec709Settings** *(dict) --* Rec709 Settings

        - **FixedAfd** *(string) --* Four bit AFD value to write on all frames of video in the
        output stream. Only valid when afdSignaling is set to 'Fixed'.

        - **FlickerAq** *(string) --* If set to enabled, adjust quantization within each frame to
        reduce flicker or 'pop' on I-frames.

        - **FramerateDenominator** *(integer) --* **[REQUIRED]** Framerate denominator.

        - **FramerateNumerator** *(integer) --* **[REQUIRED]** Framerate numerator - framerate is a
        fraction, e.g. 24000 / 1001 = 23.976 fps.

        - **GopClosedCadence** *(integer) --* Frequency of closed GOPs. In streaming applications,
        it is recommended that this be set to 1 so a decoder joining mid-stream will receive an IDR
        frame as quickly as possible. Setting this value to 0 will break output segmenting.

        - **GopSize** *(float) --* GOP size (keyframe interval) in units of either frames or seconds
        per gopSizeUnits. If gopSizeUnits is frames, gopSize must be an integer and must be greater
        than or equal to 1. If gopSizeUnits is seconds, gopSize must be greater than 0, but need not
        be an integer.

        - **GopSizeUnits** *(string) --* Indicates if the gopSize is specified in frames or seconds.
        If seconds the system will convert the gopSize into a frame count at run time.

        - **Level** *(string) --* H.265 Level.

        - **LookAheadRateControl** *(string) --* Amount of lookahead. A value of low can decrease
        latency and memory usage, while high can produce better quality for certain content.

        - **MaxBitrate** *(integer) --* For QVBR: See the tooltip for Quality level

        - **MinIInterval** *(integer) --* Only meaningful if sceneChangeDetect is set to enabled.
        Defaults to 5 if multiplex rate control is used. Enforces separation between repeated
        (cadence) I-frames and I-frames inserted by Scene Change Detection. If a scene change
        I-frame is within I-interval frames of a cadence I-frame, the GOP is shrunk and/or stretched
        to the scene change I-frame. GOP stretch requires enabling lookahead as well as setting
        I-interval. The normal cadence resumes for the next GOP. Note: Maximum GOP stretch = GOP
        size + Min-I-interval - 1

        - **ParDenominator** *(integer) --* Pixel Aspect Ratio denominator.

        - **ParNumerator** *(integer) --* Pixel Aspect Ratio numerator.

        - **Profile** *(string) --* H.265 Profile.

        - **QvbrQualityLevel** *(integer) --* Controls the target quality for the video encode.
        Applies only when the rate control mode is QVBR. Set values for the QVBR quality level field
        and Max bitrate field that suit your most important viewing devices. Recommended values are:
        - Primary screen: Quality level: 8 to 10. Max bitrate: 4M - PC or tablet: Quality level: 7.
        Max bitrate: 1.5M to 3M - Smartphone: Quality level: 6. Max bitrate: 1M to 1.5M

        - **RateControlMode** *(string) --* Rate control mode. QVBR: Quality will match the
        specified quality level except when it is constrained by the maximum bitrate. Recommended if
        you or your viewers pay for bandwidth. CBR: Quality varies, depending on the video
        complexity. Recommended only if you distribute your assets to devices that cannot handle
        variable bitrates.

        - **ScanType** *(string) --* Sets the scan type of the output to progressive or
        top-field-first interlaced.

        - **SceneChangeDetect** *(string) --* Scene change detection.

        - **Slices** *(integer) --* Number of slices per picture. Must be less than or equal to the
        number of macroblock rows for progressive pictures, and less than or equal to half the
        number of macroblock rows for interlaced pictures. This field is optional; when no value is
        specified the encoder will choose the number of slices based on encode resolution.

        - **Tier** *(string) --* H.265 Tier.

        - **TimecodeInsertion** *(string) --* Determines how timecodes should be inserted into the
        video elementary stream. - 'disabled': Do not include timecodes - 'picTimingSei': Pass
        through picture timing SEI messages from the source specified in Timecode Config

    - **Height** *(integer) --* Output video height, in pixels. Must be an even number. For most
    codecs, you can leave this field and width blank in order to use the height and width
    (resolution) from the source. Note, however, that leaving blank is not recommended. For the
    Frame Capture codec, height and width are required.

    - **Name** *(string) --* **[REQUIRED]** The name of this VideoDescription. Outputs will use this
    name to uniquely identify this Description. Description names should be unique within this Live
    Event.

    - **RespondToAfd** *(string) --* Indicates how to respond to the AFD values in the input stream.
    RESPOND causes input video to be clipped, depending on the AFD value, input display aspect
    ratio, and output display aspect ratio, and (except for FRAMECAPTURE codec) includes the values
    in the output. PASSTHROUGH (does not apply to FRAMECAPTURE codec) ignores the AFD values and
    includes the values in the output, so input video is not clipped. NONE ignores the AFD values
    and does not include the values through to the output, so input video is not clipped.

    - **ScalingBehavior** *(string) --* STRETCHTOOUTPUT configures the output position to stretch
    the video to the specified output resolution (height and width). This option will override any
    position value. DEFAULT may insert black boxes (pillar boxes or letter boxes) around the video
    to provide the specified output resolution.

    - **Sharpness** *(integer) --* Changes the strength of the anti-alias filter used for scaling. 0
    is the softest setting, 100 is the sharpest. A setting of 50 is recommended for most content.

    - **Width** *(integer) --* Output video width, in pixels. Must be an even number. For most
    codecs, you can leave this field and height blank in order to use the height and width
    (resolution) from the source. Note, however, that leaving blank is not recommended. For the
    Frame Capture codec, height and width are required.
    """


_RequiredClientCreateChannelEncoderSettingsTypeDef = TypedDict(
    "_RequiredClientCreateChannelEncoderSettingsTypeDef",
    {
        "AudioDescriptions": List[ClientCreateChannelEncoderSettingsAudioDescriptionsTypeDef],
        "OutputGroups": List[ClientCreateChannelEncoderSettingsOutputGroupsTypeDef],
        "TimecodeConfig": ClientCreateChannelEncoderSettingsTimecodeConfigTypeDef,
        "VideoDescriptions": List[ClientCreateChannelEncoderSettingsVideoDescriptionsTypeDef],
    },
)
_OptionalClientCreateChannelEncoderSettingsTypeDef = TypedDict(
    "_OptionalClientCreateChannelEncoderSettingsTypeDef",
    {
        "AvailBlanking": ClientCreateChannelEncoderSettingsAvailBlankingTypeDef,
        "AvailConfiguration": ClientCreateChannelEncoderSettingsAvailConfigurationTypeDef,
        "BlackoutSlate": ClientCreateChannelEncoderSettingsBlackoutSlateTypeDef,
        "CaptionDescriptions": List[ClientCreateChannelEncoderSettingsCaptionDescriptionsTypeDef],
        "GlobalConfiguration": ClientCreateChannelEncoderSettingsGlobalConfigurationTypeDef,
        "NielsenConfiguration": ClientCreateChannelEncoderSettingsNielsenConfigurationTypeDef,
    },
    total=False,
)


class ClientCreateChannelEncoderSettingsTypeDef(
    _RequiredClientCreateChannelEncoderSettingsTypeDef,
    _OptionalClientCreateChannelEncoderSettingsTypeDef,
):
    """
    Type definition for `ClientCreateChannel` `EncoderSettings`

    - **AudioDescriptions** *(list) --* **[REQUIRED]** Placeholder documentation for
    __listOfAudioDescription

      - *(dict) --* Audio Description

        - **AudioNormalizationSettings** *(dict) --* Advanced audio normalization settings.

          - **Algorithm** *(string) --* Audio normalization algorithm to use. itu17701 conforms to
          the CALM Act specification, itu17702 conforms to the EBU R-128 specification.

          - **AlgorithmControl** *(string) --* When set to correctAudio the output audio is
          corrected using the chosen algorithm. If set to measureOnly, the audio will be measured
          but not adjusted.

          - **TargetLkfs** *(float) --* Target LKFS(loudness) to adjust volume to. If no value is
          entered, a default value will be used according to the chosen algorithm. The CALM Act
          (1770-1) recommends a target of -24 LKFS. The EBU R-128 specification (1770-2) recommends
          a target of -23 LKFS.

        - **AudioSelectorName** *(string) --* **[REQUIRED]** The name of the AudioSelector used as
        the source for this AudioDescription.

        - **AudioType** *(string) --* Applies only if audioTypeControl is useConfigured. The values
        for audioType are defined in ISO-IEC 13818-1.

        - **AudioTypeControl** *(string) --* Determines how audio type is determined. followInput:
        If the input contains an ISO 639 audioType, then that value is passed through to the output.
        If the input contains no ISO 639 audioType, the value in Audio Type is included in the
        output. useConfigured: The value in Audio Type is included in the output. Note that this
        field and audioType are both ignored if inputType is broadcasterMixedAd.

        - **CodecSettings** *(dict) --* Audio codec settings.

          - **AacSettings** *(dict) --* Aac Settings

            - **Bitrate** *(float) --* Average bitrate in bits/second. Valid values depend on rate
            control mode and profile.

            - **CodingMode** *(string) --* Mono, Stereo, or 5.1 channel layout. Valid values depend
            on rate control mode and profile. The adReceiverMix setting receives a stereo
            description plus control track and emits a mono AAC encode of the description track,
            with control data emitted in the PES header as per ETSI TS 101 154 Annex E.

            - **InputType** *(string) --* Set to "broadcasterMixedAd" when input contains pre-mixed
            main audio + AD (narration) as a stereo pair. The Audio Type field (audioType) will be
            set to 3, which signals to downstream systems that this stream contains "broadcaster
            mixed AD". Note that the input received by the encoder must contain pre-mixed audio; the
            encoder does not perform the mixing. The values in audioTypeControl and audioType (in
            AudioDescription) are ignored when set to broadcasterMixedAd. Leave set to "normal" when
            input does not contain pre-mixed audio + AD.

            - **Profile** *(string) --* AAC Profile.

            - **RateControlMode** *(string) --* Rate Control Mode.

            - **RawFormat** *(string) --* Sets LATM / LOAS AAC output for raw containers.

            - **SampleRate** *(float) --* Sample rate in Hz. Valid values depend on rate control
            mode and profile.

            - **Spec** *(string) --* Use MPEG-2 AAC audio instead of MPEG-4 AAC audio for raw or
            MPEG-2 Transport Stream containers.

            - **VbrQuality** *(string) --* VBR Quality Level - Only used if rateControlMode is VBR.

          - **Ac3Settings** *(dict) --* Ac3 Settings

            - **Bitrate** *(float) --* Average bitrate in bits/second. Valid bitrates depend on the
            coding mode.

            - **BitstreamMode** *(string) --* Specifies the bitstream mode (bsmod) for the emitted
            AC-3 stream. See ATSC A/52-2012 for background on these values.

            - **CodingMode** *(string) --* Dolby Digital coding mode. Determines number of channels.

            - **Dialnorm** *(integer) --* Sets the dialnorm for the output. If excluded and input
            audio is Dolby Digital, dialnorm will be passed through.

            - **DrcProfile** *(string) --* If set to filmStandard, adds dynamic range compression
            signaling to the output bitstream as defined in the Dolby Digital specification.

            - **LfeFilter** *(string) --* When set to enabled, applies a 120Hz lowpass filter to the
            LFE channel prior to encoding. Only valid in codingMode32Lfe mode.

            - **MetadataControl** *(string) --* When set to "followInput", encoder metadata will be
            sourced from the DD, DD+, or DolbyE decoder that supplied this audio data. If audio was
            not supplied from one of these streams, then the static metadata settings will be used.

          - **Eac3Settings** *(dict) --* Eac3 Settings

            - **AttenuationControl** *(string) --* When set to attenuate3Db, applies a 3 dB
            attenuation to the surround channels. Only used for 3/2 coding mode.

            - **Bitrate** *(float) --* Average bitrate in bits/second. Valid bitrates depend on the
            coding mode.

            - **BitstreamMode** *(string) --* Specifies the bitstream mode (bsmod) for the emitted
            E-AC-3 stream. See ATSC A/52-2012 (Annex E) for background on these values.

            - **CodingMode** *(string) --* Dolby Digital Plus coding mode. Determines number of
            channels.

            - **DcFilter** *(string) --* When set to enabled, activates a DC highpass filter for all
            input channels.

            - **Dialnorm** *(integer) --* Sets the dialnorm for the output. If blank and input audio
            is Dolby Digital Plus, dialnorm will be passed through.

            - **DrcLine** *(string) --* Sets the Dolby dynamic range compression profile.

            - **DrcRf** *(string) --* Sets the profile for heavy Dolby dynamic range compression,
            ensures that the instantaneous signal peaks do not exceed specified levels.

            - **LfeControl** *(string) --* When encoding 3/2 audio, setting to lfe enables the LFE
            channel

            - **LfeFilter** *(string) --* When set to enabled, applies a 120Hz lowpass filter to the
            LFE channel prior to encoding. Only valid with codingMode32 coding mode.

            - **LoRoCenterMixLevel** *(float) --* Left only/Right only center mix level. Only used
            for 3/2 coding mode.

            - **LoRoSurroundMixLevel** *(float) --* Left only/Right only surround mix level. Only
            used for 3/2 coding mode.

            - **LtRtCenterMixLevel** *(float) --* Left total/Right total center mix level. Only used
            for 3/2 coding mode.

            - **LtRtSurroundMixLevel** *(float) --* Left total/Right total surround mix level. Only
            used for 3/2 coding mode.

            - **MetadataControl** *(string) --* When set to followInput, encoder metadata will be
            sourced from the DD, DD+, or DolbyE decoder that supplied this audio data. If audio was
            not supplied from one of these streams, then the static metadata settings will be used.

            - **PassthroughControl** *(string) --* When set to whenPossible, input DD+ audio will be
            passed through if it is present on the input. This detection is dynamic over the life of
            the transcode. Inputs that alternate between DD+ and non-DD+ content will have a
            consistent DD+ output as the system alternates between passthrough and encoding.

            - **PhaseControl** *(string) --* When set to shift90Degrees, applies a 90-degree phase
            shift to the surround channels. Only used for 3/2 coding mode.

            - **StereoDownmix** *(string) --* Stereo downmix preference. Only used for 3/2 coding
            mode.

            - **SurroundExMode** *(string) --* When encoding 3/2 audio, sets whether an extra center
            back surround channel is matrix encoded into the left and right surround channels.

            - **SurroundMode** *(string) --* When encoding 2/0 audio, sets whether Dolby Surround is
            matrix encoded into the two channels.

          - **Mp2Settings** *(dict) --* Mp2 Settings

            - **Bitrate** *(float) --* Average bitrate in bits/second.

            - **CodingMode** *(string) --* The MPEG2 Audio coding mode. Valid values are
            codingMode10 (for mono) or codingMode20 (for stereo).

            - **SampleRate** *(float) --* Sample rate in Hz.

          - **PassThroughSettings** *(dict) --* Pass Through Settings

        - **LanguageCode** *(string) --* Indicates the language of the audio output track. Only used
        if languageControlMode is useConfigured, or there is no ISO 639 language code specified in
        the input.

        - **LanguageCodeControl** *(string) --* Choosing followInput will cause the ISO 639 language
        code of the output to follow the ISO 639 language code of the input. The languageCode will
        be used when useConfigured is set, or when followInput is selected but there is no ISO 639
        language code specified by the input.

        - **Name** *(string) --* **[REQUIRED]** The name of this AudioDescription. Outputs will use
        this name to uniquely identify this AudioDescription. Description names should be unique
        within this Live Event.

        - **RemixSettings** *(dict) --* Settings that control how input audio channels are remixed
        into the output audio channels.

          - **ChannelMappings** *(list) --* **[REQUIRED]** Mapping of input channels to output
          channels, with appropriate gain adjustments.

            - *(dict) --* Audio Channel Mapping

              - **InputChannelLevels** *(list) --* **[REQUIRED]** Indices and gain values for each
              input channel that should be remixed into this output channel.

                - *(dict) --* Input Channel Level

                  - **Gain** *(integer) --* **[REQUIRED]** Remixing value. Units are in dB and
                  acceptable values are within the range from -60 (mute) and 6 dB.

                  - **InputChannel** *(integer) --* **[REQUIRED]** The index of the input channel
                  used as a source.

              - **OutputChannel** *(integer) --* **[REQUIRED]** The index of the output channel
              being produced.

          - **ChannelsIn** *(integer) --* Number of input channels to be used.

          - **ChannelsOut** *(integer) --* Number of output channels to be produced. Valid values:
          1, 2, 4, 6, 8

        - **StreamName** *(string) --* Used for MS Smooth and Apple HLS outputs. Indicates the name
        displayed by the player (eg. English, or Director Commentary).

    - **AvailBlanking** *(dict) --* Settings for ad avail blanking.

      - **AvailBlankingImage** *(dict) --* Blanking image to be used. Leave empty for solid black.
      Only bmp and png images are supported.

        - **PasswordParam** *(string) --* key used to extract the password from EC2 Parameter store

        - **Uri** *(string) --* **[REQUIRED]** Uniform Resource Identifier - This should be a path
        to a file accessible to the Live system (eg. a http:// URI) depending on the output type.
        For example, a RTMP destination should have a uri simliar to: "rtmp://fmsserver/live".

        - **Username** *(string) --* Documentation update needed

      - **State** *(string) --* When set to enabled, causes video, audio and captions to be blanked
      when insertion metadata is added.

    - **AvailConfiguration** *(dict) --* Event-wide configuration settings for ad avail insertion.

      - **AvailSettings** *(dict) --* Ad avail settings.

        - **Scte35SpliceInsert** *(dict) --* Scte35 Splice Insert

          - **AdAvailOffset** *(integer) --* When specified, this offset (in milliseconds) is added
          to the input Ad Avail PTS time. This only applies to embedded SCTE 104/35 messages and
          does not apply to OOB messages.

          - **NoRegionalBlackoutFlag** *(string) --* When set to ignore, Segment Descriptors with
          noRegionalBlackoutFlag set to 0 will no longer trigger blackouts or Ad Avail slates

          - **WebDeliveryAllowedFlag** *(string) --* When set to ignore, Segment Descriptors with
          webDeliveryAllowedFlag set to 0 will no longer trigger blackouts or Ad Avail slates

        - **Scte35TimeSignalApos** *(dict) --* Scte35 Time Signal Apos

          - **AdAvailOffset** *(integer) --* When specified, this offset (in milliseconds) is added
          to the input Ad Avail PTS time. This only applies to embedded SCTE 104/35 messages and
          does not apply to OOB messages.

          - **NoRegionalBlackoutFlag** *(string) --* When set to ignore, Segment Descriptors with
          noRegionalBlackoutFlag set to 0 will no longer trigger blackouts or Ad Avail slates

          - **WebDeliveryAllowedFlag** *(string) --* When set to ignore, Segment Descriptors with
          webDeliveryAllowedFlag set to 0 will no longer trigger blackouts or Ad Avail slates

    - **BlackoutSlate** *(dict) --* Settings for blackout slate.

      - **BlackoutSlateImage** *(dict) --* Blackout slate image to be used. Leave empty for solid
      black. Only bmp and png images are supported.

        - **PasswordParam** *(string) --* key used to extract the password from EC2 Parameter store

        - **Uri** *(string) --* **[REQUIRED]** Uniform Resource Identifier - This should be a path
        to a file accessible to the Live system (eg. a http:// URI) depending on the output type.
        For example, a RTMP destination should have a uri simliar to: "rtmp://fmsserver/live".

        - **Username** *(string) --* Documentation update needed

      - **NetworkEndBlackout** *(string) --* Setting to enabled causes the encoder to blackout the
      video, audio, and captions, and raise the "Network Blackout Image" slate when an SCTE104/35
      Network End Segmentation Descriptor is encountered. The blackout will be lifted when the
      Network Start Segmentation Descriptor is encountered. The Network End and Network Start
      descriptors must contain a network ID that matches the value entered in "Network ID".

      - **NetworkEndBlackoutImage** *(dict) --* Path to local file to use as Network End Blackout
      image. Image will be scaled to fill the entire output raster.

        - **PasswordParam** *(string) --* key used to extract the password from EC2 Parameter store

        - **Uri** *(string) --* **[REQUIRED]** Uniform Resource Identifier - This should be a path
        to a file accessible to the Live system (eg. a http:// URI) depending on the output type.
        For example, a RTMP destination should have a uri simliar to: "rtmp://fmsserver/live".

        - **Username** *(string) --* Documentation update needed

      - **NetworkId** *(string) --* Provides Network ID that matches EIDR ID format (e.g.,
      "10.XXXX/XXXX-XXXX-XXXX-XXXX-XXXX-C").

      - **State** *(string) --* When set to enabled, causes video, audio and captions to be blanked
      when indicated by program metadata.

    - **CaptionDescriptions** *(list) --* Settings for caption decriptions

      - *(dict) --* Caption Description

        - **CaptionSelectorName** *(string) --* **[REQUIRED]** Specifies which input caption
        selector to use as a caption source when generating output captions. This field should match
        a captionSelector name.

        - **DestinationSettings** *(dict) --* Additional settings for captions destination that
        depend on the destination type.

          - **AribDestinationSettings** *(dict) --* Arib Destination Settings

          - **BurnInDestinationSettings** *(dict) --* Burn In Destination Settings

            - **Alignment** *(string) --* If no explicit xPosition or yPosition is provided, setting
            alignment to centered will place the captions at the bottom center of the output.
            Similarly, setting a left alignment will align captions to the bottom left of the
            output. If x and y positions are given in conjunction with the alignment parameter, the
            font will be justified (either left or centered) relative to those coordinates.
            Selecting "smart" justification will left-justify live subtitles and center-justify
            pre-recorded subtitles. All burn-in and DVB-Sub font settings must match.

            - **BackgroundColor** *(string) --* Specifies the color of the rectangle behind the
            captions. All burn-in and DVB-Sub font settings must match.

            - **BackgroundOpacity** *(integer) --* Specifies the opacity of the background
            rectangle. 255 is opaque; 0 is transparent. Leaving this parameter out is equivalent to
            setting it to 0 (transparent). All burn-in and DVB-Sub font settings must match.

            - **Font** *(dict) --* External font file used for caption burn-in. File extension must
            be 'ttf' or 'tte'. Although the user can select output fonts for many different types of
            input captions, embedded, STL and teletext sources use a strict grid system. Using
            external fonts with these caption sources could cause unexpected display of proportional
            fonts. All burn-in and DVB-Sub font settings must match.

              - **PasswordParam** *(string) --* key used to extract the password from EC2 Parameter
              store

              - **Uri** *(string) --* **[REQUIRED]** Uniform Resource Identifier - This should be a
              path to a file accessible to the Live system (eg. a http:// URI) depending on the
              output type. For example, a RTMP destination should have a uri simliar to:
              "rtmp://fmsserver/live".

              - **Username** *(string) --* Documentation update needed

            - **FontColor** *(string) --* Specifies the color of the burned-in captions. This option
            is not valid for source captions that are STL, 608/embedded or teletext. These source
            settings are already pre-defined by the caption stream. All burn-in and DVB-Sub font
            settings must match.

            - **FontOpacity** *(integer) --* Specifies the opacity of the burned-in captions. 255 is
            opaque; 0 is transparent. All burn-in and DVB-Sub font settings must match.

            - **FontResolution** *(integer) --* Font resolution in DPI (dots per inch); default is
            96 dpi. All burn-in and DVB-Sub font settings must match.

            - **FontSize** *(string) --* When set to 'auto' fontSize will scale depending on the
            size of the output. Giving a positive integer will specify the exact font size in
            points. All burn-in and DVB-Sub font settings must match.

            - **OutlineColor** *(string) --* Specifies font outline color. This option is not valid
            for source captions that are either 608/embedded or teletext. These source settings are
            already pre-defined by the caption stream. All burn-in and DVB-Sub font settings must
            match.

            - **OutlineSize** *(integer) --* Specifies font outline size in pixels. This option is
            not valid for source captions that are either 608/embedded or teletext. These source
            settings are already pre-defined by the caption stream. All burn-in and DVB-Sub font
            settings must match.

            - **ShadowColor** *(string) --* Specifies the color of the shadow cast by the captions.
            All burn-in and DVB-Sub font settings must match.

            - **ShadowOpacity** *(integer) --* Specifies the opacity of the shadow. 255 is opaque; 0
            is transparent. Leaving this parameter out is equivalent to setting it to 0
            (transparent). All burn-in and DVB-Sub font settings must match.

            - **ShadowXOffset** *(integer) --* Specifies the horizontal offset of the shadow
            relative to the captions in pixels. A value of -2 would result in a shadow offset 2
            pixels to the left. All burn-in and DVB-Sub font settings must match.

            - **ShadowYOffset** *(integer) --* Specifies the vertical offset of the shadow relative
            to the captions in pixels. A value of -2 would result in a shadow offset 2 pixels above
            the text. All burn-in and DVB-Sub font settings must match.

            - **TeletextGridControl** *(string) --* Controls whether a fixed grid size will be used
            to generate the output subtitles bitmap. Only applicable for Teletext inputs and
            DVB-Sub/Burn-in outputs.

            - **XPosition** *(integer) --* Specifies the horizontal position of the caption relative
            to the left side of the output in pixels. A value of 10 would result in the captions
            starting 10 pixels from the left of the output. If no explicit xPosition is provided,
            the horizontal caption position will be determined by the alignment parameter. All
            burn-in and DVB-Sub font settings must match.

            - **YPosition** *(integer) --* Specifies the vertical position of the caption relative
            to the top of the output in pixels. A value of 10 would result in the captions starting
            10 pixels from the top of the output. If no explicit yPosition is provided, the caption
            will be positioned towards the bottom of the output. All burn-in and DVB-Sub font
            settings must match.

          - **DvbSubDestinationSettings** *(dict) --* Dvb Sub Destination Settings

            - **Alignment** *(string) --* If no explicit xPosition or yPosition is provided, setting
            alignment to centered will place the captions at the bottom center of the output.
            Similarly, setting a left alignment will align captions to the bottom left of the
            output. If x and y positions are given in conjunction with the alignment parameter, the
            font will be justified (either left or centered) relative to those coordinates.
            Selecting "smart" justification will left-justify live subtitles and center-justify
            pre-recorded subtitles. This option is not valid for source captions that are STL or
            608/embedded. These source settings are already pre-defined by the caption stream. All
            burn-in and DVB-Sub font settings must match.

            - **BackgroundColor** *(string) --* Specifies the color of the rectangle behind the
            captions. All burn-in and DVB-Sub font settings must match.

            - **BackgroundOpacity** *(integer) --* Specifies the opacity of the background
            rectangle. 255 is opaque; 0 is transparent. Leaving this parameter blank is equivalent
            to setting it to 0 (transparent). All burn-in and DVB-Sub font settings must match.

            - **Font** *(dict) --* External font file used for caption burn-in. File extension must
            be 'ttf' or 'tte'. Although the user can select output fonts for many different types of
            input captions, embedded, STL and teletext sources use a strict grid system. Using
            external fonts with these caption sources could cause unexpected display of proportional
            fonts. All burn-in and DVB-Sub font settings must match.

              - **PasswordParam** *(string) --* key used to extract the password from EC2 Parameter
              store

              - **Uri** *(string) --* **[REQUIRED]** Uniform Resource Identifier - This should be a
              path to a file accessible to the Live system (eg. a http:// URI) depending on the
              output type. For example, a RTMP destination should have a uri simliar to:
              "rtmp://fmsserver/live".

              - **Username** *(string) --* Documentation update needed

            - **FontColor** *(string) --* Specifies the color of the burned-in captions. This option
            is not valid for source captions that are STL, 608/embedded or teletext. These source
            settings are already pre-defined by the caption stream. All burn-in and DVB-Sub font
            settings must match.

            - **FontOpacity** *(integer) --* Specifies the opacity of the burned-in captions. 255 is
            opaque; 0 is transparent. All burn-in and DVB-Sub font settings must match.

            - **FontResolution** *(integer) --* Font resolution in DPI (dots per inch); default is
            96 dpi. All burn-in and DVB-Sub font settings must match.

            - **FontSize** *(string) --* When set to auto fontSize will scale depending on the size
            of the output. Giving a positive integer will specify the exact font size in points. All
            burn-in and DVB-Sub font settings must match.

            - **OutlineColor** *(string) --* Specifies font outline color. This option is not valid
            for source captions that are either 608/embedded or teletext. These source settings are
            already pre-defined by the caption stream. All burn-in and DVB-Sub font settings must
            match.

            - **OutlineSize** *(integer) --* Specifies font outline size in pixels. This option is
            not valid for source captions that are either 608/embedded or teletext. These source
            settings are already pre-defined by the caption stream. All burn-in and DVB-Sub font
            settings must match.

            - **ShadowColor** *(string) --* Specifies the color of the shadow cast by the captions.
            All burn-in and DVB-Sub font settings must match.

            - **ShadowOpacity** *(integer) --* Specifies the opacity of the shadow. 255 is opaque; 0
            is transparent. Leaving this parameter blank is equivalent to setting it to 0
            (transparent). All burn-in and DVB-Sub font settings must match.

            - **ShadowXOffset** *(integer) --* Specifies the horizontal offset of the shadow
            relative to the captions in pixels. A value of -2 would result in a shadow offset 2
            pixels to the left. All burn-in and DVB-Sub font settings must match.

            - **ShadowYOffset** *(integer) --* Specifies the vertical offset of the shadow relative
            to the captions in pixels. A value of -2 would result in a shadow offset 2 pixels above
            the text. All burn-in and DVB-Sub font settings must match.

            - **TeletextGridControl** *(string) --* Controls whether a fixed grid size will be used
            to generate the output subtitles bitmap. Only applicable for Teletext inputs and
            DVB-Sub/Burn-in outputs.

            - **XPosition** *(integer) --* Specifies the horizontal position of the caption relative
            to the left side of the output in pixels. A value of 10 would result in the captions
            starting 10 pixels from the left of the output. If no explicit xPosition is provided,
            the horizontal caption position will be determined by the alignment parameter. This
            option is not valid for source captions that are STL, 608/embedded or teletext. These
            source settings are already pre-defined by the caption stream. All burn-in and DVB-Sub
            font settings must match.

            - **YPosition** *(integer) --* Specifies the vertical position of the caption relative
            to the top of the output in pixels. A value of 10 would result in the captions starting
            10 pixels from the top of the output. If no explicit yPosition is provided, the caption
            will be positioned towards the bottom of the output. This option is not valid for source
            captions that are STL, 608/embedded or teletext. These source settings are already
            pre-defined by the caption stream. All burn-in and DVB-Sub font settings must match.

          - **EmbeddedDestinationSettings** *(dict) --* Embedded Destination Settings

          - **EmbeddedPlusScte20DestinationSettings** *(dict) --* Embedded Plus Scte20 Destination
          Settings

          - **RtmpCaptionInfoDestinationSettings** *(dict) --* Rtmp Caption Info Destination
          Settings

          - **Scte20PlusEmbeddedDestinationSettings** *(dict) --* Scte20 Plus Embedded Destination
          Settings

          - **Scte27DestinationSettings** *(dict) --* Scte27 Destination Settings

          - **SmpteTtDestinationSettings** *(dict) --* Smpte Tt Destination Settings

          - **TeletextDestinationSettings** *(dict) --* Teletext Destination Settings

          - **TtmlDestinationSettings** *(dict) --* Ttml Destination Settings

            - **StyleControl** *(string) --* When set to passthrough, passes through style and
            position information from a TTML-like input source (TTML, SMPTE-TT, CFF-TT) to the
            CFF-TT output or TTML output.

          - **WebvttDestinationSettings** *(dict) --* Webvtt Destination Settings

        - **LanguageCode** *(string) --* ISO 639-2 three-digit code:
        http://www.loc.gov/standards/iso639-2/

        - **LanguageDescription** *(string) --* Human readable information to indicate captions
        available for players (eg. English, or Spanish).

        - **Name** *(string) --* **[REQUIRED]** Name of the caption description. Used to associate a
        caption description with an output. Names must be unique within an event.

    - **GlobalConfiguration** *(dict) --* Configuration settings that apply to the event as a whole.

      - **InitialAudioGain** *(integer) --* Value to set the initial audio gain for the Live Event.

      - **InputEndAction** *(string) --* Indicates the action to take when the current input
      completes (e.g. end-of-file). When switchAndLoopInputs is configured the encoder will restart
      at the beginning of the first input. When "none" is configured the encoder will transcode
      either black, a solid color, or a user specified slate images per the "Input Loss Behavior"
      configuration until the next input switch occurs (which is controlled through the Channel
      Schedule API).

      - **InputLossBehavior** *(dict) --* Settings for system actions when input is lost.

        - **BlackFrameMsec** *(integer) --* Documentation update needed

        - **InputLossImageColor** *(string) --* When input loss image type is "color" this field
        specifies the color to use. Value: 6 hex characters representing the values of RGB.

        - **InputLossImageSlate** *(dict) --* When input loss image type is "slate" these fields
        specify the parameters for accessing the slate.

          - **PasswordParam** *(string) --* key used to extract the password from EC2 Parameter
          store

          - **Uri** *(string) --* **[REQUIRED]** Uniform Resource Identifier - This should be a path
          to a file accessible to the Live system (eg. a http:// URI) depending on the output type.
          For example, a RTMP destination should have a uri simliar to: "rtmp://fmsserver/live".

          - **Username** *(string) --* Documentation update needed

        - **InputLossImageType** *(string) --* Indicates whether to substitute a solid color or a
        slate into the output after input loss exceeds blackFrameMsec.

        - **RepeatFrameMsec** *(integer) --* Documentation update needed

      - **OutputLockingMode** *(string) --* Indicates how MediaLive pipelines are synchronized.
      PIPELINELOCKING - MediaLive will attempt to synchronize the output of each pipeline to the
      other. EPOCHLOCKING - MediaLive will attempt to synchronize the output of each pipeline to the
      Unix epoch.

      - **OutputTimingSource** *(string) --* Indicates whether the rate of frames emitted by the
      Live encoder should be paced by its system clock (which optionally may be locked to another
      source via NTP) or should be locked to the clock of the source that is providing the input
      stream.

      - **SupportLowFramerateInputs** *(string) --* Adjusts video input buffer for streams with very
      low video framerates. This is commonly set to enabled for music channels with less than one
      video frame per second.

    - **NielsenConfiguration** *(dict) --* Nielsen configuration settings.

      - **DistributorId** *(string) --* Enter the Distributor ID assigned to your organization by
      Nielsen.

      - **NielsenPcmToId3Tagging** *(string) --* Enables Nielsen PCM to ID3 tagging

    - **OutputGroups** *(list) --* **[REQUIRED]** Placeholder documentation for __listOfOutputGroup

      - *(dict) --* Output groups for this Live Event. Output groups contain information about where
      streams should be distributed.

        - **Name** *(string) --* Custom output group name optionally defined by the user. Only
        letters, numbers, and the underscore character allowed; only 32 characters allowed.

        - **OutputGroupSettings** *(dict) --* **[REQUIRED]** Settings associated with the output
        group.

          - **ArchiveGroupSettings** *(dict) --* Archive Group Settings

            - **Destination** *(dict) --* **[REQUIRED]** A directory and base filename where archive
            files should be written.

              - **DestinationRefId** *(string) --* Placeholder documentation for __string

            - **RolloverInterval** *(integer) --* Number of seconds to write to archive file before
            closing and starting a new one.

          - **FrameCaptureGroupSettings** *(dict) --* Frame Capture Group Settings

            - **Destination** *(dict) --* **[REQUIRED]** The destination for the frame capture
            files. Either the URI for an Amazon S3 bucket and object, plus a file name prefix (for
            example, s3ssl://sportsDelivery/highlights/20180820/curling_) or the URI for a
            MediaStore container, plus a file name prefix (for example,
            mediastoressl://sportsDelivery/20180820/curling_). The final file names consist of the
            prefix from the destination field (for example, "curling_") + name modifier + the
            counter (5 digits, starting from 00001) + extension (which is always .jpg). For example,
            curlingLow.00001.jpg

              - **DestinationRefId** *(string) --* Placeholder documentation for __string

          - **HlsGroupSettings** *(dict) --* Hls Group Settings

            - **AdMarkers** *(list) --* Choose one or more ad marker types to pass SCTE35 signals
            through to this group of Apple HLS outputs.

              - *(string) --* Hls Ad Markers

            - **BaseUrlContent** *(string) --* A partial URI prefix that will be prepended to each
            output in the media .m3u8 file. Can be used if base manifest is delivered from a
            different URL than the main .m3u8 file.

            - **BaseUrlManifest** *(string) --* A partial URI prefix that will be prepended to each
            output in the media .m3u8 file. Can be used if base manifest is delivered from a
            different URL than the main .m3u8 file.

            - **CaptionLanguageMappings** *(list) --* Mapping of up to 4 caption channels to caption
            languages. Is only meaningful if captionLanguageSetting is set to "insert".

              - *(dict) --* Maps a caption channel to an ISO 693-2 language code
              (http://www.loc.gov/standards/iso639-2), with an optional description.

                - **CaptionChannel** *(integer) --* **[REQUIRED]** The closed caption channel being
                described by this CaptionLanguageMapping. Each channel mapping must have a unique
                channel number (maximum of 4)

                - **LanguageCode** *(string) --* **[REQUIRED]** Three character ISO 639-2 language
                code (see http://www.loc.gov/standards/iso639-2)

                - **LanguageDescription** *(string) --* **[REQUIRED]** Textual description of
                language

            - **CaptionLanguageSetting** *(string) --* Applies only to 608 Embedded output captions.
            insert: Include CLOSED-CAPTIONS lines in the manifest. Specify at least one language in
            the CC1 Language Code field. One CLOSED-CAPTION line is added for each Language Code you
            specify. Make sure to specify the languages in the order in which they appear in the
            original source (if the source is embedded format) or the order of the caption selectors
            (if the source is other than embedded). Otherwise, languages in the manifest will not
            match up properly with the output captions. none: Include CLOSED-CAPTIONS=
                NONE line in
            the manifest. omit: Omit any CLOSED-CAPTIONS line from the manifest.

            - **ClientCache** *(string) --* When set to "disabled", sets the #EXT-X-ALLOW-CACHE:no
            tag in the manifest, which prevents clients from saving media segments for later replay.

            - **CodecSpecification** *(string) --* Specification to use (RFC-6381 or the default
            RFC-4281) during m3u8 playlist generation.

            - **ConstantIv** *(string) --* For use with encryptionType. This is a 128-bit, 16-byte
            hex value represented by a 32-character text string. If ivSource is set to "explicit"
            then this parameter is required and is used as the IV for encryption.

            - **Destination** *(dict) --* **[REQUIRED]** A directory or HTTP destination for the HLS
            segments, manifest files, and encryption keys (if enabled).

              - **DestinationRefId** *(string) --* Placeholder documentation for __string

            - **DirectoryStructure** *(string) --* Place segments in subdirectories.

            - **EncryptionType** *(string) --* Encrypts the segments with the given encryption
            scheme. Exclude this parameter if no encryption is desired.

            - **HlsCdnSettings** *(dict) --* Parameters that control interactions with the CDN.

              - **HlsAkamaiSettings** *(dict) --* Hls Akamai Settings

                - **ConnectionRetryInterval** *(integer) --* Number of seconds to wait before
                retrying connection to the CDN if the connection is lost.

                - **FilecacheDuration** *(integer) --* Size in seconds of file cache for streaming
                outputs.

                - **HttpTransferMode** *(string) --* Specify whether or not to use chunked transfer
                encoding to Akamai. User should contact Akamai to enable this feature.

                - **NumRetries** *(integer) --* Number of retry attempts that will be made before
                the Live Event is put into an error state.

                - **RestartDelay** *(integer) --* If a streaming output fails, number of seconds to
                wait until a restart is initiated. A value of 0 means never restart.

                - **Salt** *(string) --* Salt for authenticated Akamai.

                - **Token** *(string) --* Token parameter for authenticated akamai. If not
                specified, _gda_ is used.

              - **HlsBasicPutSettings** *(dict) --* Hls Basic Put Settings

                - **ConnectionRetryInterval** *(integer) --* Number of seconds to wait before
                retrying connection to the CDN if the connection is lost.

                - **FilecacheDuration** *(integer) --* Size in seconds of file cache for streaming
                outputs.

                - **NumRetries** *(integer) --* Number of retry attempts that will be made before
                the Live Event is put into an error state.

                - **RestartDelay** *(integer) --* If a streaming output fails, number of seconds to
                wait until a restart is initiated. A value of 0 means never restart.

              - **HlsMediaStoreSettings** *(dict) --* Hls Media Store Settings

                - **ConnectionRetryInterval** *(integer) --* Number of seconds to wait before
                retrying connection to the CDN if the connection is lost.

                - **FilecacheDuration** *(integer) --* Size in seconds of file cache for streaming
                outputs.

                - **MediaStoreStorageClass** *(string) --* When set to temporal, output files are
                stored in non-persistent memory for faster reading and writing.

                - **NumRetries** *(integer) --* Number of retry attempts that will be made before
                the Live Event is put into an error state.

                - **RestartDelay** *(integer) --* If a streaming output fails, number of seconds to
                wait until a restart is initiated. A value of 0 means never restart.

              - **HlsWebdavSettings** *(dict) --* Hls Webdav Settings

                - **ConnectionRetryInterval** *(integer) --* Number of seconds to wait before
                retrying connection to the CDN if the connection is lost.

                - **FilecacheDuration** *(integer) --* Size in seconds of file cache for streaming
                outputs.

                - **HttpTransferMode** *(string) --* Specify whether or not to use chunked transfer
                encoding to WebDAV.

                - **NumRetries** *(integer) --* Number of retry attempts that will be made before
                the Live Event is put into an error state.

                - **RestartDelay** *(integer) --* If a streaming output fails, number of seconds to
                wait until a restart is initiated. A value of 0 means never restart.

            - **IFrameOnlyPlaylists** *(string) --* DISABLED: Do not create an I-frame-only
            manifest, but do create the master and media manifests (according to the Output
            Selection field). STANDARD: Create an I-frame-only manifest for each output that
            contains video, as well as the other manifests (according to the Output Selection
            field). The I-frame manifest contains a #EXT-X-I-FRAMES-ONLY tag to indicate it is
            I-frame only, and one or more #EXT-X-BYTERANGE entries identifying the I-frame position.
            For example, #EXT-X-BYTERANGE:160364@1461888"

            - **IndexNSegments** *(integer) --* Applies only if Mode field is LIVE. Specifies the
            maximum number of segments in the media manifest file. After this maximum, older
            segments are removed from the media manifest. This number must be less than or equal to
            the Keep Segments field.

            - **InputLossAction** *(string) --* Parameter that control output group behavior on
            input loss.

            - **IvInManifest** *(string) --* For use with encryptionType. The IV (Initialization
            Vector) is a 128-bit number used in conjunction with the key for encrypting blocks. If
            set to "include", IV is listed in the manifest, otherwise the IV is not in the manifest.

            - **IvSource** *(string) --* For use with encryptionType. The IV (Initialization Vector)
            is a 128-bit number used in conjunction with the key for encrypting blocks. If this
            setting is "followsSegmentNumber", it will cause the IV to change every segment (to
            match the segment number). If this is set to "explicit", you must enter a constantIv
            value.

            - **KeepSegments** *(integer) --* Applies only if Mode field is LIVE. Specifies the
            number of media segments (.ts files) to retain in the destination directory.

            - **KeyFormat** *(string) --* The value specifies how the key is represented in the
            resource identified by the URI. If parameter is absent, an implicit value of "identity"
            is used. A reverse DNS string can also be given.

            - **KeyFormatVersions** *(string) --* Either a single positive integer version value or
            a slash delimited list of version values (1/2/3).

            - **KeyProviderSettings** *(dict) --* The key provider settings.

              - **StaticKeySettings** *(dict) --* Static Key Settings

                - **KeyProviderServer** *(dict) --* The URL of the license server used for
                protecting content.

                  - **PasswordParam** *(string) --* key used to extract the password from EC2
                  Parameter store

                  - **Uri** *(string) --* **[REQUIRED]** Uniform Resource Identifier - This should
                  be a path to a file accessible to the Live system (eg. a http:// URI) depending on
                  the output type. For example, a RTMP destination should have a uri simliar to:
                  "rtmp://fmsserver/live".

                  - **Username** *(string) --* Documentation update needed

                - **StaticKeyValue** *(string) --* **[REQUIRED]** Static key value as a 32 character
                hexadecimal string.

            - **ManifestCompression** *(string) --* When set to gzip, compresses HLS playlist.

            - **ManifestDurationFormat** *(string) --* Indicates whether the output manifest should
            use floating point or integer values for segment duration.

            - **MinSegmentLength** *(integer) --* When set, minimumSegmentLength is enforced by
            looking ahead and back within the specified range for a nearby avail and extending the
            segment size if needed.

            - **Mode** *(string) --* If "vod", all segments are indexed and kept permanently in the
            destination and manifest. If "live", only the number segments specified in keepSegments
            and indexNSegments are kept; newer segments replace older segments, which may prevent
            players from rewinding all the way to the beginning of the event. VOD mode uses HLS
            EXT-X-PLAYLIST-TYPE of EVENT while the channel is running, converting it to a "VOD" type
            manifest on completion of the stream.

            - **OutputSelection** *(string) --* MANIFESTSANDSEGMENTS: Generates manifests (master
            manifest, if applicable, and media manifests) for this output group. SEGMENTSONLY: Does
            not generate any manifests for this output group.

            - **ProgramDateTime** *(string) --* Includes or excludes EXT-X-PROGRAM-DATE-TIME tag in
            .m3u8 manifest files. The value is calculated as follows: either the program date and
            time are initialized using the input timecode source, or the time is initialized using
            the input timecode source and the date is initialized using the timestampOffset.

            - **ProgramDateTimePeriod** *(integer) --* Period of insertion of
            EXT-X-PROGRAM-DATE-TIME entry, in seconds.

            - **RedundantManifest** *(string) --* ENABLED: The master manifest (.m3u8 file) for each
            pipeline includes information about both pipelines: first its own media files, then the
            media files of the other pipeline. This feature allows playout device that support stale
            manifest detection to switch from one manifest to the other, when the current manifest
            seems to be stale. There are still two destinations and two master manifests, but both
            master manifests reference the media files from both pipelines. DISABLED: The master
            manifest (.m3u8 file) for each pipeline includes information about its own pipeline
            only. For an HLS output group with MediaPackage as the destination, the DISABLED
            behavior is always followed. MediaPackage regenerates the manifests it serves to players
            so a redundant manifest from MediaLive is irrelevant.

            - **SegmentLength** *(integer) --* Length of MPEG-2 Transport Stream segments to create
            (in seconds). Note that segments will end on the next keyframe after this number of
            seconds, so actual segment length may be longer.

            - **SegmentationMode** *(string) --* useInputSegmentation has been deprecated. The
            configured segment size is always used.

            - **SegmentsPerSubdirectory** *(integer) --* Number of segments to write to a
            subdirectory before starting a new one. directoryStructure must be subdirectoryPerStream
            for this setting to have an effect.

            - **StreamInfResolution** *(string) --* Include or exclude RESOLUTION attribute for
            video in EXT-X-STREAM-INF tag of variant manifest.

            - **TimedMetadataId3Frame** *(string) --* Indicates ID3 frame that has the timecode.

            - **TimedMetadataId3Period** *(integer) --* Timed Metadata interval in seconds.

            - **TimestampDeltaMilliseconds** *(integer) --* Provides an extra millisecond delta
            offset to fine tune the timestamps.

            - **TsFileMode** *(string) --* SEGMENTEDFILES: Emit the program as segments - multiple
            .ts media files. SINGLEFILE: Applies only if Mode field is VOD. Emit the program as a
            single .ts media file. The media manifest includes #EXT-X-BYTERANGE tags to index
            segments for playback. A typical use for this value is when sending the output to AWS
            Elemental MediaConvert, which can accept only a single media file. Playback while the
            channel is running is not guaranteed due to HTTP server caching.

          - **MediaPackageGroupSettings** *(dict) --* Media Package Group Settings

            - **Destination** *(dict) --* **[REQUIRED]** MediaPackage channel destination.

              - **DestinationRefId** *(string) --* Placeholder documentation for __string

          - **MsSmoothGroupSettings** *(dict) --* Ms Smooth Group Settings

            - **AcquisitionPointId** *(string) --* The value of the "Acquisition Point Identity"
            element used in each message placed in the sparse track. Only enabled if sparseTrackType
            is not "none".

            - **AudioOnlyTimecodeControl** *(string) --* If set to passthrough for an audio-only MS
            Smooth output, the fragment absolute time will be set to the current timecode. This
            option does not write timecodes to the audio elementary stream.

            - **CertificateMode** *(string) --* If set to verifyAuthenticity, verify the https
            certificate chain to a trusted Certificate Authority (CA). This will cause https outputs
            to self-signed certificates to fail.

            - **ConnectionRetryInterval** *(integer) --* Number of seconds to wait before retrying
            connection to the IIS server if the connection is lost. Content will be cached during
            this time and the cache will be be delivered to the IIS server once the connection is
            re-established.

            - **Destination** *(dict) --* **[REQUIRED]** Smooth Streaming publish point on an IIS
            server. Elemental Live acts as a "Push" encoder to IIS.

              - **DestinationRefId** *(string) --* Placeholder documentation for __string

            - **EventId** *(string) --* MS Smooth event ID to be sent to the IIS server. Should only
            be specified if eventIdMode is set to useConfigured.

            - **EventIdMode** *(string) --* Specifies whether or not to send an event ID to the IIS
            server. If no event ID is sent and the same Live Event is used without changing the
            publishing point, clients might see cached video from the previous run. Options: -
            "useConfigured" - use the value provided in eventId - "useTimestamp" - generate and send
            an event ID based on the current timestamp - "noEventId" - do not send an event ID to
            the IIS server.

            - **EventStopBehavior** *(string) --* When set to sendEos, send EOS signal to IIS server
            when stopping the event

            - **FilecacheDuration** *(integer) --* Size in seconds of file cache for streaming
            outputs.

            - **FragmentLength** *(integer) --* Length of mp4 fragments to generate (in seconds).
            Fragment length must be compatible with GOP size and framerate.

            - **InputLossAction** *(string) --* Parameter that control output group behavior on
            input loss.

            - **NumRetries** *(integer) --* Number of retry attempts.

            - **RestartDelay** *(integer) --* Number of seconds before initiating a restart due to
            output failure, due to exhausting the numRetries on one segment, or exceeding
            filecacheDuration.

            - **SegmentationMode** *(string) --* useInputSegmentation has been deprecated. The
            configured segment size is always used.

            - **SendDelayMs** *(integer) --* Number of milliseconds to delay the output from the
            second pipeline.

            - **SparseTrackType** *(string) --* If set to scte35, use incoming SCTE-35 messages to
            generate a sparse track in this group of MS-Smooth outputs.

            - **StreamManifestBehavior** *(string) --* When set to send, send stream manifest so
            publishing point doesn't start until all streams start.

            - **TimestampOffset** *(string) --* Timestamp offset for the event. Only used if
            timestampOffsetMode is set to useConfiguredOffset.

            - **TimestampOffsetMode** *(string) --* Type of timestamp date offset to use. -
            useEventStartDate: Use the date the event was started as the offset -
            useConfiguredOffset: Use an explicitly configured date as the offset

          - **MultiplexGroupSettings** *(dict) --* Multiplex Group Settings

          - **RtmpGroupSettings** *(dict) --* Rtmp Group Settings

            - **AuthenticationScheme** *(string) --* Authentication scheme to use when connecting
            with CDN

            - **CacheFullBehavior** *(string) --* Controls behavior when content cache fills up. If
            remote origin server stalls the RTMP connection and does not accept content fast enough
            the 'Media Cache' will fill up. When the cache reaches the duration specified by
            cacheLength the cache will stop accepting new content. If set to disconnectImmediately,
            the RTMP output will force a disconnect. Clear the media cache, and reconnect after
            restartDelay seconds. If set to waitForServer, the RTMP output will wait up to 5 minutes
            to allow the origin server to begin accepting data again.

            - **CacheLength** *(integer) --* Cache length, in seconds, is used to calculate buffer
            size.

            - **CaptionData** *(string) --* Controls the types of data that passes to onCaptionInfo
            outputs. If set to 'all' then 608 and 708 carried DTVCC data will be passed. If set to
            'field1AndField2608' then DTVCC data will be stripped out, but 608 data from both fields
            will be passed. If set to 'field1608' then only the data carried in 608 from field 1
            video will be passed.

            - **InputLossAction** *(string) --* Controls the behavior of this RTMP group if input
            becomes unavailable. - emitOutput: Emit a slate until input returns. - pauseOutput: Stop
            transmitting data until input returns. This does not close the underlying RTMP
            connection.

            - **RestartDelay** *(integer) --* If a streaming output fails, number of seconds to wait
            until a restart is initiated. A value of 0 means never restart.

          - **UdpGroupSettings** *(dict) --* Udp Group Settings

            - **InputLossAction** *(string) --* Specifies behavior of last resort when input video
            is lost, and no more backup inputs are available. When dropTs is selected the entire
            transport stream will stop being emitted. When dropProgram is selected the program can
            be dropped from the transport stream (and replaced with null packets to meet the TS
            bitrate requirement). Or, when emitProgram is chosen the transport stream will continue
            to be produced normally with repeat frames, black frames, or slate frames substituted
            for the absent input video.

            - **TimedMetadataId3Frame** *(string) --* Indicates ID3 frame that has the timecode.

            - **TimedMetadataId3Period** *(integer) --* Timed Metadata interval in seconds.

        - **Outputs** *(list) --* **[REQUIRED]** Placeholder documentation for __listOfOutput

          - *(dict) --* Output settings. There can be multiple outputs within a group.

            - **AudioDescriptionNames** *(list) --* The names of the AudioDescriptions used as audio
            sources for this output.

              - *(string) --* Placeholder documentation for __string

            - **CaptionDescriptionNames** *(list) --* The names of the CaptionDescriptions used as
            caption sources for this output.

              - *(string) --* Placeholder documentation for __string

            - **OutputName** *(string) --* The name used to identify an output.

            - **OutputSettings** *(dict) --* **[REQUIRED]** Output type-specific settings.

              - **ArchiveOutputSettings** *(dict) --* Archive Output Settings

                - **ContainerSettings** *(dict) --* **[REQUIRED]** Settings specific to the
                container type of the file.

                  - **M2tsSettings** *(dict) --* M2ts Settings

                    - **AbsentInputAudioBehavior** *(string) --* When set to drop, output audio
                    streams will be removed from the program if the selected input audio stream is
                    removed from the input. This allows the output audio configuration to
                    dynamically change based on input configuration. If this is set to
                    encodeSilence, all output audio streams will output encoded silence when not
                    connected to an active input stream.

                    - **Arib** *(string) --* When set to enabled, uses ARIB-compliant field muxing
                    and removes video descriptor.

                    - **AribCaptionsPid** *(string) --* Packet Identifier (PID) for ARIB Captions in
                    the transport stream. Can be entered as a decimal or hexadecimal value. Valid
                    values are 32 (or 0x20)..8182 (or 0x1ff6).

                    - **AribCaptionsPidControl** *(string) --* If set to auto, pid number used for
                    ARIB Captions will be auto-selected from unused pids. If set to useConfigured,
                    ARIB Captions will be on the configured pid number.

                    - **AudioBufferModel** *(string) --* When set to dvb, uses DVB buffer model for
                    Dolby Digital audio. When set to atsc, the ATSC model is used.

                    - **AudioFramesPerPes** *(integer) --* The number of audio frames to insert for
                    each PES packet.

                    - **AudioPids** *(string) --* Packet Identifier (PID) of the elementary audio
                    stream(s) in the transport stream. Multiple values are accepted, and can be
                    entered in ranges and/or by comma separation. Can be entered as decimal or
                    hexadecimal values. Each PID specified must be in the range of 32 (or
                    0x20)..8182 (or 0x1ff6).

                    - **AudioStreamType** *(string) --* When set to atsc, uses stream type = 0x81
                    for AC3 and stream type =
                         0x87 for EAC3. When set to dvb, uses stream type =
                    0x06.

                    - **Bitrate** *(integer) --* The output bitrate of the transport stream in bits
                    per second. Setting to 0 lets the muxer automatically determine the appropriate
                    bitrate.

                    - **BufferModel** *(string) --* If set to multiplex, use multiplex buffer model
                    for accurate interleaving. Setting to bufferModel to none can lead to lower
                    latency, but low-memory devices may not be able to play back the stream without
                    interruptions.

                    - **CcDescriptor** *(string) --* When set to enabled, generates
                    captionServiceDescriptor in PMT.

                    - **DvbNitSettings** *(dict) --* Inserts DVB Network Information Table (NIT) at
                    the specified table repetition interval.

                      - **NetworkId** *(integer) --* **[REQUIRED]** The numeric value placed in the
                      Network Information Table (NIT).

                      - **NetworkName** *(string) --* **[REQUIRED]** The network name text placed in
                      the networkNameDescriptor inside the Network Information Table. Maximum length
                      is 256 characters.

                      - **RepInterval** *(integer) --* The number of milliseconds between instances
                      of this table in the output transport stream.

                    - **DvbSdtSettings** *(dict) --* Inserts DVB Service Description Table (SDT) at
                    the specified table repetition interval.

                      - **OutputSdt** *(string) --* Selects method of inserting SDT information into
                      output stream. The sdtFollow setting copies SDT information from input stream
                      to output stream. The sdtFollowIfPresent setting copies SDT information from
                      input stream to output stream if SDT information is present in the input,
                      otherwise it will fall back on the user-defined values. The sdtManual setting
                      means user will enter the SDT information. The sdtNone setting means output
                      stream will not contain SDT information.

                      - **RepInterval** *(integer) --* The number of milliseconds between instances
                      of this table in the output transport stream.

                      - **ServiceName** *(string) --* The service name placed in the
                      serviceDescriptor in the Service Description Table. Maximum length is 256
                      characters.

                      - **ServiceProviderName** *(string) --* The service provider name placed in
                      the serviceDescriptor in the Service Description Table. Maximum length is 256
                      characters.

                    - **DvbSubPids** *(string) --* Packet Identifier (PID) for input source DVB
                    Subtitle data to this output. Multiple values are accepted, and can be entered
                    in ranges and/or by comma separation. Can be entered as decimal or hexadecimal
                    values. Each PID specified must be in the range of 32 (or 0x20)..8182 (or
                    0x1ff6).

                    - **DvbTdtSettings** *(dict) --* Inserts DVB Time and Date Table (TDT) at the
                    specified table repetition interval.

                      - **RepInterval** *(integer) --* The number of milliseconds between instances
                      of this table in the output transport stream.

                    - **DvbTeletextPid** *(string) --* Packet Identifier (PID) for input source DVB
                    Teletext data to this output. Can be entered as a decimal or hexadecimal value.
                    Valid values are 32 (or 0x20)..8182 (or 0x1ff6).

                    - **Ebif** *(string) --* If set to passthrough, passes any EBIF data from the
                    input source to this output.

                    - **EbpAudioInterval** *(string) --* When videoAndFixedIntervals is selected,
                    audio EBP markers will be added to partitions 3 and 4. The interval between
                    these additional markers will be fixed, and will be slightly shorter than the
                    video EBP marker interval. Only available when EBP Cablelabs segmentation
                    markers are selected. Partitions 1 and 2 will always follow the video interval.

                    - **EbpLookaheadMs** *(integer) --* When set, enforces that Encoder Boundary
                    Points do not come within the specified time interval of each other by looking
                    ahead at input video. If another EBP is going to come in within the specified
                    time interval, the current EBP is not emitted, and the segment is "stretched" to
                    the next marker. The lookahead value does not add latency to the system. The
                    Live Event must be configured elsewhere to create sufficient latency to make the
                    lookahead accurate.

                    - **EbpPlacement** *(string) --* Controls placement of EBP on Audio PIDs. If set
                    to videoAndAudioPids, EBP markers will be placed on the video PID and all audio
                    PIDs. If set to videoPid, EBP markers will be placed on only the video PID.

                    - **EcmPid** *(string) --* This field is unused and deprecated.

                    - **EsRateInPes** *(string) --* Include or exclude the ES Rate field in the PES
                    header.

                    - **EtvPlatformPid** *(string) --* Packet Identifier (PID) for input source ETV
                    Platform data to this output. Can be entered as a decimal or hexadecimal value.
                    Valid values are 32 (or 0x20)..8182 (or 0x1ff6).

                    - **EtvSignalPid** *(string) --* Packet Identifier (PID) for input source ETV
                    Signal data to this output. Can be entered as a decimal or hexadecimal value.
                    Valid values are 32 (or 0x20)..8182 (or 0x1ff6).

                    - **FragmentTime** *(float) --* The length in seconds of each fragment. Only
                    used with EBP markers.

                    - **Klv** *(string) --* If set to passthrough, passes any KLV data from the
                    input source to this output.

                    - **KlvDataPids** *(string) --* Packet Identifier (PID) for input source KLV
                    data to this output. Multiple values are accepted, and can be entered in ranges
                    and/or by comma separation. Can be entered as decimal or hexadecimal values.
                    Each PID specified must be in the range of 32 (or 0x20)..8182 (or 0x1ff6).

                    - **NielsenId3Behavior** *(string) --* If set to passthrough, Nielsen inaudible
                    tones for media tracking will be detected in the input audio and an equivalent
                    ID3 tag will be inserted in the output.

                    - **NullPacketBitrate** *(float) --* Value in bits per second of extra null
                    packets to insert into the transport stream. This can be used if a downstream
                    encryption system requires periodic null packets.

                    - **PatInterval** *(integer) --* The number of milliseconds between instances of
                    this table in the output transport stream. Valid values are 0, 10..1000.

                    - **PcrControl** *(string) --* When set to pcrEveryPesPacket, a Program Clock
                    Reference value is inserted for every Packetized Elementary Stream (PES) header.
                    This parameter is effective only when the PCR PID is the same as the video or
                    audio elementary stream.

                    - **PcrPeriod** *(integer) --* Maximum time in milliseconds between Program
                    Clock Reference (PCRs) inserted into the transport stream.

                    - **PcrPid** *(string) --* Packet Identifier (PID) of the Program Clock
                    Reference (PCR) in the transport stream. When no value is given, the encoder
                    will assign the same value as the Video PID. Can be entered as a decimal or
                    hexadecimal value. Valid values are 32 (or 0x20)..8182 (or 0x1ff6).

                    - **PmtInterval** *(integer) --* The number of milliseconds between instances of
                    this table in the output transport stream. Valid values are 0, 10..1000.

                    - **PmtPid** *(string) --* Packet Identifier (PID) for the Program Map Table
                    (PMT) in the transport stream. Can be entered as a decimal or hexadecimal value.
                    Valid values are 32 (or 0x20)..8182 (or 0x1ff6).

                    - **ProgramNum** *(integer) --* The value of the program number field in the
                    Program Map Table.

                    - **RateMode** *(string) --* When vbr, does not insert null packets into
                    transport stream to fill specified bitrate. The bitrate setting acts as the
                    maximum bitrate when vbr is set.

                    - **Scte27Pids** *(string) --* Packet Identifier (PID) for input source SCTE-27
                    data to this output. Multiple values are accepted, and can be entered in ranges
                    and/or by comma separation. Can be entered as decimal or hexadecimal values.
                    Each PID specified must be in the range of 32 (or 0x20)..8182 (or 0x1ff6).

                    - **Scte35Control** *(string) --* Optionally pass SCTE-35 signals from the input
                    source to this output.

                    - **Scte35Pid** *(string) --* Packet Identifier (PID) of the SCTE-35 stream in
                    the transport stream. Can be entered as a decimal or hexadecimal value. Valid
                    values are 32 (or 0x20)..8182 (or 0x1ff6).

                    - **SegmentationMarkers** *(string) --* Inserts segmentation markers at each
                    segmentationTime period. raiSegstart sets the Random Access Indicator bit in the
                    adaptation field. raiAdapt sets the RAI bit and adds the current timecode in the
                    private data bytes. psiSegstart inserts PAT and PMT tables at the start of
                    segments. ebp adds Encoder Boundary Point information to the adaptation field as
                    per OpenCable specification OC-SP-EBP-I01-130118. ebpLegacy adds Encoder
                    Boundary Point information to the adaptation field using a legacy proprietary
                    format.

                    - **SegmentationStyle** *(string) --* The segmentation style parameter controls
                    how segmentation markers are inserted into the transport stream. With avails, it
                    is possible that segments may be truncated, which can influence where future
                    segmentation markers are inserted. When a segmentation style of "resetCadence"
                    is selected and a segment is truncated due to an avail, we will reset the
                    segmentation cadence. This means the subsequent segment will have a duration of
                    $segmentationTime seconds. When a segmentation style of "maintainCadence" is
                    selected and a segment is truncated due to an avail, we will not reset the
                    segmentation cadence. This means the subsequent segment will likely be truncated
                    as well. However, all segments after that will have a duration of
                    $segmentationTime seconds. Note that EBP lookahead is a slight exception to this
                    rule.

                    - **SegmentationTime** *(float) --* The length in seconds of each segment.
                    Required unless markers is set to None_.

                    - **TimedMetadataBehavior** *(string) --* When set to passthrough, timed
                    metadata will be passed through from input to output.

                    - **TimedMetadataPid** *(string) --* Packet Identifier (PID) of the timed
                    metadata stream in the transport stream. Can be entered as a decimal or
                    hexadecimal value. Valid values are 32 (or 0x20)..8182 (or 0x1ff6).

                    - **TransportStreamId** *(integer) --* The value of the transport stream ID
                    field in the Program Map Table.

                    - **VideoPid** *(string) --* Packet Identifier (PID) of the elementary video
                    stream in the transport stream. Can be entered as a decimal or hexadecimal
                    value. Valid values are 32 (or 0x20)..8182 (or 0x1ff6).

                - **Extension** *(string) --* Output file extension. If excluded, this will be
                auto-selected from the container type.

                - **NameModifier** *(string) --* String concatenated to the end of the destination
                filename. Required for multiple outputs of the same type.

              - **FrameCaptureOutputSettings** *(dict) --* Frame Capture Output Settings

                - **NameModifier** *(string) --* Required if the output group contains more than one
                output. This modifier forms part of the output file name.

              - **HlsOutputSettings** *(dict) --* Hls Output Settings

                - **HlsSettings** *(dict) --* **[REQUIRED]** Settings regarding the underlying
                stream. These settings are different for audio-only outputs.

                  - **AudioOnlyHlsSettings** *(dict) --* Audio Only Hls Settings

                    - **AudioGroupId** *(string) --* Specifies the group to which the audio
                    Rendition belongs.

                    - **AudioOnlyImage** *(dict) --* Optional. Specifies the .jpg or .png image to
                    use as the cover art for an audio-only output. We recommend a low bit-size file
                    because the image increases the output audio bandwidth. The image is attached to
                    the audio as an ID3 tag, frame type APIC, picture type 0x10, as per the "ID3 tag
                    version 2.4.0 - Native Frames" standard.

                      - **PasswordParam** *(string) --* key used to extract the password from EC2
                      Parameter store

                      - **Uri** *(string) --* **[REQUIRED]** Uniform Resource Identifier - This
                      should be a path to a file accessible to the Live system (eg. a http:// URI)
                      depending on the output type. For example, a RTMP destination should have a
                      uri simliar to: "rtmp://fmsserver/live".

                      - **Username** *(string) --* Documentation update needed

                    - **AudioTrackType** *(string) --* Four types of audio-only tracks are
                    supported: Audio-Only Variant Stream The client can play back this audio-only
                    stream instead of video in low-bandwidth scenarios. Represented as an
                    EXT-X-STREAM-INF in the HLS manifest. Alternate Audio, Auto Select, Default
                    Alternate rendition that the client should try to play back by default.
                    Represented as an EXT-X-MEDIA in the HLS manifest with DEFAULT=
                        YES,
                    AUTOSELECT=
                        YES Alternate Audio, Auto Select, Not Default Alternate rendition
                    that the client may try to play back by default. Represented as an EXT-X-MEDIA
                    in the HLS manifest with DEFAULT=NO, AUTOSELECT=
                        YES Alternate Audio, not Auto
                    Select Alternate rendition that the client will not try to play back by default.
                    Represented as an EXT-X-MEDIA in the HLS manifest with DEFAULT=
                        NO, AUTOSELECT=NO

                  - **StandardHlsSettings** *(dict) --* Standard Hls Settings

                    - **AudioRenditionSets** *(string) --* List all the audio groups that are used
                    with the video output stream. Input all the audio GROUP-IDs that are associated
                    to the video, separate by ','.

                    - **M3u8Settings** *(dict) --* **[REQUIRED]** Settings information for the .m3u8
                    container

                      - **AudioFramesPerPes** *(integer) --* The number of audio frames to insert
                      for each PES packet.

                      - **AudioPids** *(string) --* Packet Identifier (PID) of the elementary audio
                      stream(s) in the transport stream. Multiple values are accepted, and can be
                      entered in ranges and/or by comma separation. Can be entered as decimal or
                      hexadecimal values.

                      - **EcmPid** *(string) --* This parameter is unused and deprecated.

                      - **NielsenId3Behavior** *(string) --* If set to passthrough, Nielsen
                      inaudible tones for media tracking will be detected in the input audio and an
                      equivalent ID3 tag will be inserted in the output.

                      - **PatInterval** *(integer) --* The number of milliseconds between instances
                      of this table in the output transport stream. A value of \\"0\\" writes out
                      the PMT once per segment file.

                      - **PcrControl** *(string) --* When set to pcrEveryPesPacket, a Program Clock
                      Reference value is inserted for every Packetized Elementary Stream (PES)
                      header. This parameter is effective only when the PCR PID is the same as the
                      video or audio elementary stream.

                      - **PcrPeriod** *(integer) --* Maximum time in milliseconds between Program
                      Clock References (PCRs) inserted into the transport stream.

                      - **PcrPid** *(string) --* Packet Identifier (PID) of the Program Clock
                      Reference (PCR) in the transport stream. When no value is given, the encoder
                      will assign the same value as the Video PID. Can be entered as a decimal or
                      hexadecimal value.

                      - **PmtInterval** *(integer) --* The number of milliseconds between instances
                      of this table in the output transport stream. A value of \\"0\\" writes out
                      the PMT once per segment file.

                      - **PmtPid** *(string) --* Packet Identifier (PID) for the Program Map Table
                      (PMT) in the transport stream. Can be entered as a decimal or hexadecimal
                      value.

                      - **ProgramNum** *(integer) --* The value of the program number field in the
                      Program Map Table.

                      - **Scte35Behavior** *(string) --* If set to passthrough, passes any SCTE-35
                      signals from the input source to this output.

                      - **Scte35Pid** *(string) --* Packet Identifier (PID) of the SCTE-35 stream in
                      the transport stream. Can be entered as a decimal or hexadecimal value.

                      - **TimedMetadataBehavior** *(string) --* When set to passthrough, timed
                      metadata is passed through from input to output.

                      - **TimedMetadataPid** *(string) --* Packet Identifier (PID) of the timed
                      metadata stream in the transport stream. Can be entered as a decimal or
                      hexadecimal value. Valid values are 32 (or 0x20)..8182 (or 0x1ff6).

                      - **TransportStreamId** *(integer) --* The value of the transport stream ID
                      field in the Program Map Table.

                      - **VideoPid** *(string) --* Packet Identifier (PID) of the elementary video
                      stream in the transport stream. Can be entered as a decimal or hexadecimal
                      value.

                - **NameModifier** *(string) --* String concatenated to the end of the destination
                filename. Accepts \\"Format Identifiers\\":#formatIdentifierParameters.

                - **SegmentModifier** *(string) --* String concatenated to end of segment filenames.

              - **MediaPackageOutputSettings** *(dict) --* Media Package Output Settings

              - **MsSmoothOutputSettings** *(dict) --* Ms Smooth Output Settings

                - **H265PackagingType** *(string) --* Only applicable when this output is
                referencing an H.265 video description. Specifies whether MP4 segments should be
                packaged as HEV1 or HVC1.

                - **NameModifier** *(string) --* String concatenated to the end of the destination
                filename. Required for multiple outputs of the same type.

              - **MultiplexOutputSettings** *(dict) --* Multiplex Output Settings

                - **Destination** *(dict) --* **[REQUIRED]** Destination is a Multiplex.

                  - **DestinationRefId** *(string) --* Placeholder documentation for __string

              - **RtmpOutputSettings** *(dict) --* Rtmp Output Settings

                - **CertificateMode** *(string) --* If set to verifyAuthenticity, verify the tls
                certificate chain to a trusted Certificate Authority (CA). This will cause rtmps
                outputs with self-signed certificates to fail.

                - **ConnectionRetryInterval** *(integer) --* Number of seconds to wait before
                retrying a connection to the Flash Media server if the connection is lost.

                - **Destination** *(dict) --* **[REQUIRED]** The RTMP endpoint excluding the stream
                name (eg. rtmp://host/appname). For connection to Akamai, a username and password
                must be supplied. URI fields accept format identifiers.

                  - **DestinationRefId** *(string) --* Placeholder documentation for __string

                - **NumRetries** *(integer) --* Number of retry attempts.

              - **UdpOutputSettings** *(dict) --* Udp Output Settings

                - **BufferMsec** *(integer) --* UDP output buffering in milliseconds. Larger values
                increase latency through the transcoder but simultaneously assist the transcoder in
                maintaining a constant, low-jitter UDP/RTP output while accommodating clock
                recovery, input switching, input disruptions, picture reordering, etc.

                - **ContainerSettings** *(dict) --* **[REQUIRED]** Udp Container Settings

                  - **M2tsSettings** *(dict) --* M2ts Settings

                    - **AbsentInputAudioBehavior** *(string) --* When set to drop, output audio
                    streams will be removed from the program if the selected input audio stream is
                    removed from the input. This allows the output audio configuration to
                    dynamically change based on input configuration. If this is set to
                    encodeSilence, all output audio streams will output encoded silence when not
                    connected to an active input stream.

                    - **Arib** *(string) --* When set to enabled, uses ARIB-compliant field muxing
                    and removes video descriptor.

                    - **AribCaptionsPid** *(string) --* Packet Identifier (PID) for ARIB Captions in
                    the transport stream. Can be entered as a decimal or hexadecimal value. Valid
                    values are 32 (or 0x20)..8182 (or 0x1ff6).

                    - **AribCaptionsPidControl** *(string) --* If set to auto, pid number used for
                    ARIB Captions will be auto-selected from unused pids. If set to useConfigured,
                    ARIB Captions will be on the configured pid number.

                    - **AudioBufferModel** *(string) --* When set to dvb, uses DVB buffer model for
                    Dolby Digital audio. When set to atsc, the ATSC model is used.

                    - **AudioFramesPerPes** *(integer) --* The number of audio frames to insert for
                    each PES packet.

                    - **AudioPids** *(string) --* Packet Identifier (PID) of the elementary audio
                    stream(s) in the transport stream. Multiple values are accepted, and can be
                    entered in ranges and/or by comma separation. Can be entered as decimal or
                    hexadecimal values. Each PID specified must be in the range of 32 (or
                    0x20)..8182 (or 0x1ff6).

                    - **AudioStreamType** *(string) --* When set to atsc, uses stream type = 0x81
                    for AC3 and stream type =
                         0x87 for EAC3. When set to dvb, uses stream type =
                    0x06.

                    - **Bitrate** *(integer) --* The output bitrate of the transport stream in bits
                    per second. Setting to 0 lets the muxer automatically determine the appropriate
                    bitrate.

                    - **BufferModel** *(string) --* If set to multiplex, use multiplex buffer model
                    for accurate interleaving. Setting to bufferModel to none can lead to lower
                    latency, but low-memory devices may not be able to play back the stream without
                    interruptions.

                    - **CcDescriptor** *(string) --* When set to enabled, generates
                    captionServiceDescriptor in PMT.

                    - **DvbNitSettings** *(dict) --* Inserts DVB Network Information Table (NIT) at
                    the specified table repetition interval.

                      - **NetworkId** *(integer) --* **[REQUIRED]** The numeric value placed in the
                      Network Information Table (NIT).

                      - **NetworkName** *(string) --* **[REQUIRED]** The network name text placed in
                      the networkNameDescriptor inside the Network Information Table. Maximum length
                      is 256 characters.

                      - **RepInterval** *(integer) --* The number of milliseconds between instances
                      of this table in the output transport stream.

                    - **DvbSdtSettings** *(dict) --* Inserts DVB Service Description Table (SDT) at
                    the specified table repetition interval.

                      - **OutputSdt** *(string) --* Selects method of inserting SDT information into
                      output stream. The sdtFollow setting copies SDT information from input stream
                      to output stream. The sdtFollowIfPresent setting copies SDT information from
                      input stream to output stream if SDT information is present in the input,
                      otherwise it will fall back on the user-defined values. The sdtManual setting
                      means user will enter the SDT information. The sdtNone setting means output
                      stream will not contain SDT information.

                      - **RepInterval** *(integer) --* The number of milliseconds between instances
                      of this table in the output transport stream.

                      - **ServiceName** *(string) --* The service name placed in the
                      serviceDescriptor in the Service Description Table. Maximum length is 256
                      characters.

                      - **ServiceProviderName** *(string) --* The service provider name placed in
                      the serviceDescriptor in the Service Description Table. Maximum length is 256
                      characters.

                    - **DvbSubPids** *(string) --* Packet Identifier (PID) for input source DVB
                    Subtitle data to this output. Multiple values are accepted, and can be entered
                    in ranges and/or by comma separation. Can be entered as decimal or hexadecimal
                    values. Each PID specified must be in the range of 32 (or 0x20)..8182 (or
                    0x1ff6).

                    - **DvbTdtSettings** *(dict) --* Inserts DVB Time and Date Table (TDT) at the
                    specified table repetition interval.

                      - **RepInterval** *(integer) --* The number of milliseconds between instances
                      of this table in the output transport stream.

                    - **DvbTeletextPid** *(string) --* Packet Identifier (PID) for input source DVB
                    Teletext data to this output. Can be entered as a decimal or hexadecimal value.
                    Valid values are 32 (or 0x20)..8182 (or 0x1ff6).

                    - **Ebif** *(string) --* If set to passthrough, passes any EBIF data from the
                    input source to this output.

                    - **EbpAudioInterval** *(string) --* When videoAndFixedIntervals is selected,
                    audio EBP markers will be added to partitions 3 and 4. The interval between
                    these additional markers will be fixed, and will be slightly shorter than the
                    video EBP marker interval. Only available when EBP Cablelabs segmentation
                    markers are selected. Partitions 1 and 2 will always follow the video interval.

                    - **EbpLookaheadMs** *(integer) --* When set, enforces that Encoder Boundary
                    Points do not come within the specified time interval of each other by looking
                    ahead at input video. If another EBP is going to come in within the specified
                    time interval, the current EBP is not emitted, and the segment is "stretched" to
                    the next marker. The lookahead value does not add latency to the system. The
                    Live Event must be configured elsewhere to create sufficient latency to make the
                    lookahead accurate.

                    - **EbpPlacement** *(string) --* Controls placement of EBP on Audio PIDs. If set
                    to videoAndAudioPids, EBP markers will be placed on the video PID and all audio
                    PIDs. If set to videoPid, EBP markers will be placed on only the video PID.

                    - **EcmPid** *(string) --* This field is unused and deprecated.

                    - **EsRateInPes** *(string) --* Include or exclude the ES Rate field in the PES
                    header.

                    - **EtvPlatformPid** *(string) --* Packet Identifier (PID) for input source ETV
                    Platform data to this output. Can be entered as a decimal or hexadecimal value.
                    Valid values are 32 (or 0x20)..8182 (or 0x1ff6).

                    - **EtvSignalPid** *(string) --* Packet Identifier (PID) for input source ETV
                    Signal data to this output. Can be entered as a decimal or hexadecimal value.
                    Valid values are 32 (or 0x20)..8182 (or 0x1ff6).

                    - **FragmentTime** *(float) --* The length in seconds of each fragment. Only
                    used with EBP markers.

                    - **Klv** *(string) --* If set to passthrough, passes any KLV data from the
                    input source to this output.

                    - **KlvDataPids** *(string) --* Packet Identifier (PID) for input source KLV
                    data to this output. Multiple values are accepted, and can be entered in ranges
                    and/or by comma separation. Can be entered as decimal or hexadecimal values.
                    Each PID specified must be in the range of 32 (or 0x20)..8182 (or 0x1ff6).

                    - **NielsenId3Behavior** *(string) --* If set to passthrough, Nielsen inaudible
                    tones for media tracking will be detected in the input audio and an equivalent
                    ID3 tag will be inserted in the output.

                    - **NullPacketBitrate** *(float) --* Value in bits per second of extra null
                    packets to insert into the transport stream. This can be used if a downstream
                    encryption system requires periodic null packets.

                    - **PatInterval** *(integer) --* The number of milliseconds between instances of
                    this table in the output transport stream. Valid values are 0, 10..1000.

                    - **PcrControl** *(string) --* When set to pcrEveryPesPacket, a Program Clock
                    Reference value is inserted for every Packetized Elementary Stream (PES) header.
                    This parameter is effective only when the PCR PID is the same as the video or
                    audio elementary stream.

                    - **PcrPeriod** *(integer) --* Maximum time in milliseconds between Program
                    Clock Reference (PCRs) inserted into the transport stream.

                    - **PcrPid** *(string) --* Packet Identifier (PID) of the Program Clock
                    Reference (PCR) in the transport stream. When no value is given, the encoder
                    will assign the same value as the Video PID. Can be entered as a decimal or
                    hexadecimal value. Valid values are 32 (or 0x20)..8182 (or 0x1ff6).

                    - **PmtInterval** *(integer) --* The number of milliseconds between instances of
                    this table in the output transport stream. Valid values are 0, 10..1000.

                    - **PmtPid** *(string) --* Packet Identifier (PID) for the Program Map Table
                    (PMT) in the transport stream. Can be entered as a decimal or hexadecimal value.
                    Valid values are 32 (or 0x20)..8182 (or 0x1ff6).

                    - **ProgramNum** *(integer) --* The value of the program number field in the
                    Program Map Table.

                    - **RateMode** *(string) --* When vbr, does not insert null packets into
                    transport stream to fill specified bitrate. The bitrate setting acts as the
                    maximum bitrate when vbr is set.

                    - **Scte27Pids** *(string) --* Packet Identifier (PID) for input source SCTE-27
                    data to this output. Multiple values are accepted, and can be entered in ranges
                    and/or by comma separation. Can be entered as decimal or hexadecimal values.
                    Each PID specified must be in the range of 32 (or 0x20)..8182 (or 0x1ff6).

                    - **Scte35Control** *(string) --* Optionally pass SCTE-35 signals from the input
                    source to this output.

                    - **Scte35Pid** *(string) --* Packet Identifier (PID) of the SCTE-35 stream in
                    the transport stream. Can be entered as a decimal or hexadecimal value. Valid
                    values are 32 (or 0x20)..8182 (or 0x1ff6).

                    - **SegmentationMarkers** *(string) --* Inserts segmentation markers at each
                    segmentationTime period. raiSegstart sets the Random Access Indicator bit in the
                    adaptation field. raiAdapt sets the RAI bit and adds the current timecode in the
                    private data bytes. psiSegstart inserts PAT and PMT tables at the start of
                    segments. ebp adds Encoder Boundary Point information to the adaptation field as
                    per OpenCable specification OC-SP-EBP-I01-130118. ebpLegacy adds Encoder
                    Boundary Point information to the adaptation field using a legacy proprietary
                    format.

                    - **SegmentationStyle** *(string) --* The segmentation style parameter controls
                    how segmentation markers are inserted into the transport stream. With avails, it
                    is possible that segments may be truncated, which can influence where future
                    segmentation markers are inserted. When a segmentation style of "resetCadence"
                    is selected and a segment is truncated due to an avail, we will reset the
                    segmentation cadence. This means the subsequent segment will have a duration of
                    $segmentationTime seconds. When a segmentation style of "maintainCadence" is
                    selected and a segment is truncated due to an avail, we will not reset the
                    segmentation cadence. This means the subsequent segment will likely be truncated
                    as well. However, all segments after that will have a duration of
                    $segmentationTime seconds. Note that EBP lookahead is a slight exception to this
                    rule.

                    - **SegmentationTime** *(float) --* The length in seconds of each segment.
                    Required unless markers is set to None_.

                    - **TimedMetadataBehavior** *(string) --* When set to passthrough, timed
                    metadata will be passed through from input to output.

                    - **TimedMetadataPid** *(string) --* Packet Identifier (PID) of the timed
                    metadata stream in the transport stream. Can be entered as a decimal or
                    hexadecimal value. Valid values are 32 (or 0x20)..8182 (or 0x1ff6).

                    - **TransportStreamId** *(integer) --* The value of the transport stream ID
                    field in the Program Map Table.

                    - **VideoPid** *(string) --* Packet Identifier (PID) of the elementary video
                    stream in the transport stream. Can be entered as a decimal or hexadecimal
                    value. Valid values are 32 (or 0x20)..8182 (or 0x1ff6).

                - **Destination** *(dict) --* **[REQUIRED]** Destination address and port number for
                RTP or UDP packets. Can be unicast or multicast RTP or UDP (eg.
                rtp://239.10.10.10:5001 or udp://10.100.100.100:5002).

                  - **DestinationRefId** *(string) --* Placeholder documentation for __string

                - **FecOutputSettings** *(dict) --* Settings for enabling and adjusting Forward
                Error Correction on UDP outputs.

                  - **ColumnDepth** *(integer) --* Parameter D from SMPTE 2022-1. The height of the
                  FEC protection matrix. The number of transport stream packets per column error
                  correction packet. Must be between 4 and 20, inclusive.

                  - **IncludeFec** *(string) --* Enables column only or column and row based FEC

                  - **RowLength** *(integer) --* Parameter L from SMPTE 2022-1. The width of the FEC
                  protection matrix. Must be between 1 and 20, inclusive. If only Column FEC is
                  used, then larger values increase robustness. If Row FEC is used, then this is the
                  number of transport stream packets per row error correction packet, and the value
                  must be between 4 and 20, inclusive, if includeFec is columnAndRow. If includeFec
                  is column, this value must be 1 to 20, inclusive.

            - **VideoDescriptionName** *(string) --* The name of the VideoDescription used as the
            source for this output.

    - **TimecodeConfig** *(dict) --* **[REQUIRED]** Contains settings used to acquire and adjust
    timecode information from inputs.

      - **Source** *(string) --* **[REQUIRED]** Identifies the source for the timecode that will be
      associated with the events outputs. -Embedded (embedded): Initialize the output timecode with
      timecode from the the source. If no embedded timecode is detected in the source, the system
      falls back to using "Start at 0" (zerobased). -System Clock (systemclock): Use the UTC time.
      -Start at 0 (zerobased): The time of the first frame of the event will be 00:00:00:00.

      - **SyncThreshold** *(integer) --* Threshold in frames beyond which output timecode is
      resynchronized to the input timecode. Discrepancies below this threshold are permitted to
      avoid unnecessary discontinuities in the output timecode. No timecode sync when this is not
      specified.

    - **VideoDescriptions** *(list) --* **[REQUIRED]** Placeholder documentation for
    __listOfVideoDescription

      - *(dict) --* Video settings for this stream.

        - **CodecSettings** *(dict) --* Video codec settings.

          - **FrameCaptureSettings** *(dict) --* Frame Capture Settings

            - **CaptureInterval** *(integer) --* **[REQUIRED]** The frequency at which to capture
            frames for inclusion in the output. May be specified in either seconds or milliseconds,
            as specified by captureIntervalUnits.

          - **H264Settings** *(dict) --* H264 Settings

            - **AdaptiveQuantization** *(string) --* Adaptive quantization. Allows intra-frame
            quantizers to vary to improve visual quality.

            - **AfdSignaling** *(string) --* Indicates that AFD values will be written into the
            output stream. If afdSignaling is "auto", the system will try to preserve the input AFD
            value (in cases where multiple AFD values are valid). If set to "fixed", the AFD value
            will be the value configured in the fixedAfd parameter.

            - **Bitrate** *(integer) --* Average bitrate in bits/second. Required when the rate
            control mode is VBR or CBR. Not used for QVBR. In an MS Smooth output group, each output
            must have a unique value when its bitrate is rounded down to the nearest multiple of
            1000.

            - **BufFillPct** *(integer) --* Percentage of the buffer that should initially be filled
            (HRD buffer model).

            - **BufSize** *(integer) --* Size of buffer (HRD buffer model) in bits.

            - **ColorMetadata** *(string) --* Includes colorspace metadata in the output.

            - **ColorSpaceSettings** *(dict) --* Color Space settings

              - **ColorSpacePassthroughSettings** *(dict) --* Passthrough applies no color space
              conversion to the output

              - **Rec601Settings** *(dict) --* Rec601 Settings

              - **Rec709Settings** *(dict) --* Rec709 Settings

            - **EntropyEncoding** *(string) --* Entropy encoding mode. Use cabac (must be in Main or
            High profile) or cavlc.

            - **FixedAfd** *(string) --* Four bit AFD value to write on all frames of video in the
            output stream. Only valid when afdSignaling is set to 'Fixed'.

            - **FlickerAq** *(string) --* If set to enabled, adjust quantization within each frame
            to reduce flicker or 'pop' on I-frames.

            - **FramerateControl** *(string) --* This field indicates how the output video frame
            rate is specified. If "specified" is selected then the output video frame rate is
            determined by framerateNumerator and framerateDenominator, else if
            "initializeFromSource" is selected then the output video frame rate will be set equal to
            the input video frame rate of the first input.

            - **FramerateDenominator** *(integer) --* Framerate denominator.

            - **FramerateNumerator** *(integer) --* Framerate numerator - framerate is a fraction,
            e.g. 24000 / 1001 = 23.976 fps.

            - **GopBReference** *(string) --* Documentation update needed

            - **GopClosedCadence** *(integer) --* Frequency of closed GOPs. In streaming
            applications, it is recommended that this be set to 1 so a decoder joining mid-stream
            will receive an IDR frame as quickly as possible. Setting this value to 0 will break
            output segmenting.

            - **GopNumBFrames** *(integer) --* Number of B-frames between reference frames.

            - **GopSize** *(float) --* GOP size (keyframe interval) in units of either frames or
            seconds per gopSizeUnits. If gopSizeUnits is frames, gopSize must be an integer and must
            be greater than or equal to 1. If gopSizeUnits is seconds, gopSize must be greater than
            0, but need not be an integer.

            - **GopSizeUnits** *(string) --* Indicates if the gopSize is specified in frames or
            seconds. If seconds the system will convert the gopSize into a frame count at run time.

            - **Level** *(string) --* H.264 Level.

            - **LookAheadRateControl** *(string) --* Amount of lookahead. A value of low can
            decrease latency and memory usage, while high can produce better quality for certain
            content.

            - **MaxBitrate** *(integer) --* For QVBR: See the tooltip for Quality level For VBR: Set
            the maximum bitrate in order to accommodate expected spikes in the complexity of the
            video.

            - **MinIInterval** *(integer) --* Only meaningful if sceneChangeDetect is set to
            enabled. Defaults to 5 if multiplex rate control is used. Enforces separation between
            repeated (cadence) I-frames and I-frames inserted by Scene Change Detection. If a scene
            change I-frame is within I-interval frames of a cadence I-frame, the GOP is shrunk
            and/or stretched to the scene change I-frame. GOP stretch requires enabling lookahead as
            well as setting I-interval. The normal cadence resumes for the next GOP. Note: Maximum
            GOP stretch = GOP size + Min-I-interval - 1

            - **NumRefFrames** *(integer) --* Number of reference frames to use. The encoder may use
            more than requested if using B-frames and/or interlaced encoding.

            - **ParControl** *(string) --* This field indicates how the output pixel aspect ratio is
            specified. If "specified" is selected then the output video pixel aspect ratio is
            determined by parNumerator and parDenominator, else if "initializeFromSource" is
            selected then the output pixsel aspect ratio will be set equal to the input video pixel
            aspect ratio of the first input.

            - **ParDenominator** *(integer) --* Pixel Aspect Ratio denominator.

            - **ParNumerator** *(integer) --* Pixel Aspect Ratio numerator.

            - **Profile** *(string) --* H.264 Profile.

            - **QvbrQualityLevel** *(integer) --* Controls the target quality for the video encode.
            Applies only when the rate control mode is QVBR. Set values for the QVBR quality level
            field and Max bitrate field that suit your most important viewing devices. Recommended
            values are: - Primary screen: Quality level: 8 to 10. Max bitrate: 4M - PC or tablet:
            Quality level: 7. Max bitrate: 1.5M to 3M - Smartphone: Quality level: 6. Max bitrate:
            1M to 1.5M

            - **RateControlMode** *(string) --* Rate control mode. QVBR: Quality will match the
            specified quality level except when it is constrained by the maximum bitrate.
            Recommended if you or your viewers pay for bandwidth. VBR: Quality and bitrate vary,
            depending on the video complexity. Recommended instead of QVBR if you want to maintain a
            specific average bitrate over the duration of the channel. CBR: Quality varies,
            depending on the video complexity. Recommended only if you distribute your assets to
            devices that cannot handle variable bitrates.

            - **ScanType** *(string) --* Sets the scan type of the output to progressive or
            top-field-first interlaced.

            - **SceneChangeDetect** *(string) --* Scene change detection. - On: inserts I-frames
            when scene change is detected. - Off: does not force an I-frame when scene change is
            detected.

            - **Slices** *(integer) --* Number of slices per picture. Must be less than or equal to
            the number of macroblock rows for progressive pictures, and less than or equal to half
            the number of macroblock rows for interlaced pictures. This field is optional; when no
            value is specified the encoder will choose the number of slices based on encode
            resolution.

            - **Softness** *(integer) --* Softness. Selects quantizer matrix, larger values reduce
            high-frequency content in the encoded image.

            - **SpatialAq** *(string) --* If set to enabled, adjust quantization within each frame
            based on spatial variation of content complexity.

            - **SubgopLength** *(string) --* If set to fixed, use gopNumBFrames B-frames per
            sub-GOP. If set to dynamic, optimize the number of B-frames used for each sub-GOP to
            improve visual quality.

            - **Syntax** *(string) --* Produces a bitstream compliant with SMPTE RP-2027.

            - **TemporalAq** *(string) --* If set to enabled, adjust quantization within each frame
            based on temporal variation of content complexity.

            - **TimecodeInsertion** *(string) --* Determines how timecodes should be inserted into
            the video elementary stream. - 'disabled': Do not include timecodes - 'picTimingSei':
            Pass through picture timing SEI messages from the source specified in Timecode Config

          - **H265Settings** *(dict) --* H265 Settings

            - **AdaptiveQuantization** *(string) --* Adaptive quantization. Allows intra-frame
            quantizers to vary to improve visual quality.

            - **AfdSignaling** *(string) --* Indicates that AFD values will be written into the
            output stream. If afdSignaling is "auto", the system will try to preserve the input AFD
            value (in cases where multiple AFD values are valid). If set to "fixed", the AFD value
            will be the value configured in the fixedAfd parameter.

            - **AlternativeTransferFunction** *(string) --* Whether or not EML should insert an
            Alternative Transfer Function SEI message to support backwards compatibility with
            non-HDR decoders and displays.

            - **Bitrate** *(integer) --* Average bitrate in bits/second. Required when the rate
            control mode is VBR or CBR. Not used for QVBR. In an MS Smooth output group, each output
            must have a unique value when its bitrate is rounded down to the nearest multiple of
            1000.

            - **BufSize** *(integer) --* Size of buffer (HRD buffer model) in bits.

            - **ColorMetadata** *(string) --* Includes colorspace metadata in the output.

            - **ColorSpaceSettings** *(dict) --* Color Space settings

              - **ColorSpacePassthroughSettings** *(dict) --* Passthrough applies no color space
              conversion to the output

              - **Hdr10Settings** *(dict) --* Hdr10 Settings

                - **MaxCll** *(integer) --* Maximum Content Light Level An integer metadata value
                defining the maximum light level, in nits, of any single pixel within an encoded HDR
                video stream or file.

                - **MaxFall** *(integer) --* Maximum Frame Average Light Level An integer metadata
                value defining the maximum average light level, in nits, for any single frame within
                an encoded HDR video stream or file.

              - **Rec601Settings** *(dict) --* Rec601 Settings

              - **Rec709Settings** *(dict) --* Rec709 Settings

            - **FixedAfd** *(string) --* Four bit AFD value to write on all frames of video in the
            output stream. Only valid when afdSignaling is set to 'Fixed'.

            - **FlickerAq** *(string) --* If set to enabled, adjust quantization within each frame
            to reduce flicker or 'pop' on I-frames.

            - **FramerateDenominator** *(integer) --* **[REQUIRED]** Framerate denominator.

            - **FramerateNumerator** *(integer) --* **[REQUIRED]** Framerate numerator - framerate
            is a fraction, e.g. 24000 / 1001 = 23.976 fps.

            - **GopClosedCadence** *(integer) --* Frequency of closed GOPs. In streaming
            applications, it is recommended that this be set to 1 so a decoder joining mid-stream
            will receive an IDR frame as quickly as possible. Setting this value to 0 will break
            output segmenting.

            - **GopSize** *(float) --* GOP size (keyframe interval) in units of either frames or
            seconds per gopSizeUnits. If gopSizeUnits is frames, gopSize must be an integer and must
            be greater than or equal to 1. If gopSizeUnits is seconds, gopSize must be greater than
            0, but need not be an integer.

            - **GopSizeUnits** *(string) --* Indicates if the gopSize is specified in frames or
            seconds. If seconds the system will convert the gopSize into a frame count at run time.

            - **Level** *(string) --* H.265 Level.

            - **LookAheadRateControl** *(string) --* Amount of lookahead. A value of low can
            decrease latency and memory usage, while high can produce better quality for certain
            content.

            - **MaxBitrate** *(integer) --* For QVBR: See the tooltip for Quality level

            - **MinIInterval** *(integer) --* Only meaningful if sceneChangeDetect is set to
            enabled. Defaults to 5 if multiplex rate control is used. Enforces separation between
            repeated (cadence) I-frames and I-frames inserted by Scene Change Detection. If a scene
            change I-frame is within I-interval frames of a cadence I-frame, the GOP is shrunk
            and/or stretched to the scene change I-frame. GOP stretch requires enabling lookahead as
            well as setting I-interval. The normal cadence resumes for the next GOP. Note: Maximum
            GOP stretch = GOP size + Min-I-interval - 1

            - **ParDenominator** *(integer) --* Pixel Aspect Ratio denominator.

            - **ParNumerator** *(integer) --* Pixel Aspect Ratio numerator.

            - **Profile** *(string) --* H.265 Profile.

            - **QvbrQualityLevel** *(integer) --* Controls the target quality for the video encode.
            Applies only when the rate control mode is QVBR. Set values for the QVBR quality level
            field and Max bitrate field that suit your most important viewing devices. Recommended
            values are: - Primary screen: Quality level: 8 to 10. Max bitrate: 4M - PC or tablet:
            Quality level: 7. Max bitrate: 1.5M to 3M - Smartphone: Quality level: 6. Max bitrate:
            1M to 1.5M

            - **RateControlMode** *(string) --* Rate control mode. QVBR: Quality will match the
            specified quality level except when it is constrained by the maximum bitrate.
            Recommended if you or your viewers pay for bandwidth. CBR: Quality varies, depending on
            the video complexity. Recommended only if you distribute your assets to devices that
            cannot handle variable bitrates.

            - **ScanType** *(string) --* Sets the scan type of the output to progressive or
            top-field-first interlaced.

            - **SceneChangeDetect** *(string) --* Scene change detection.

            - **Slices** *(integer) --* Number of slices per picture. Must be less than or equal to
            the number of macroblock rows for progressive pictures, and less than or equal to half
            the number of macroblock rows for interlaced pictures. This field is optional; when no
            value is specified the encoder will choose the number of slices based on encode
            resolution.

            - **Tier** *(string) --* H.265 Tier.

            - **TimecodeInsertion** *(string) --* Determines how timecodes should be inserted into
            the video elementary stream. - 'disabled': Do not include timecodes - 'picTimingSei':
            Pass through picture timing SEI messages from the source specified in Timecode Config

        - **Height** *(integer) --* Output video height, in pixels. Must be an even number. For most
        codecs, you can leave this field and width blank in order to use the height and width
        (resolution) from the source. Note, however, that leaving blank is not recommended. For the
        Frame Capture codec, height and width are required.

        - **Name** *(string) --* **[REQUIRED]** The name of this VideoDescription. Outputs will use
        this name to uniquely identify this Description. Description names should be unique within
        this Live Event.

        - **RespondToAfd** *(string) --* Indicates how to respond to the AFD values in the input
        stream. RESPOND causes input video to be clipped, depending on the AFD value, input display
        aspect ratio, and output display aspect ratio, and (except for FRAMECAPTURE codec) includes
        the values in the output. PASSTHROUGH (does not apply to FRAMECAPTURE codec) ignores the AFD
        values and includes the values in the output, so input video is not clipped. NONE ignores
        the AFD values and does not include the values through to the output, so input video is not
        clipped.

        - **ScalingBehavior** *(string) --* STRETCHTOOUTPUT configures the output position to
        stretch the video to the specified output resolution (height and width). This option will
        override any position value. DEFAULT may insert black boxes (pillar boxes or letter boxes)
        around the video to provide the specified output resolution.

        - **Sharpness** *(integer) --* Changes the strength of the anti-alias filter used for
        scaling. 0 is the softest setting, 100 is the sharpest. A setting of 50 is recommended for
        most content.

        - **Width** *(integer) --* Output video width, in pixels. Must be an even number. For most
        codecs, you can leave this field and height blank in order to use the height and width
        (resolution) from the source. Note, however, that leaving blank is not recommended. For the
        Frame Capture codec, height and width are required.
    """


_RequiredClientCreateChannelInputAttachmentsInputSettingsAudioSelectorsSelectorSettingsAudioLanguageSelectionTypeDef = TypedDict(
    "_RequiredClientCreateChannelInputAttachmentsInputSettingsAudioSelectorsSelectorSettingsAudioLanguageSelectionTypeDef",
    {"LanguageCode": str},
)
_OptionalClientCreateChannelInputAttachmentsInputSettingsAudioSelectorsSelectorSettingsAudioLanguageSelectionTypeDef = TypedDict(
    "_OptionalClientCreateChannelInputAttachmentsInputSettingsAudioSelectorsSelectorSettingsAudioLanguageSelectionTypeDef",
    {"LanguageSelectionPolicy": str},
    total=False,
)


class ClientCreateChannelInputAttachmentsInputSettingsAudioSelectorsSelectorSettingsAudioLanguageSelectionTypeDef(
    _RequiredClientCreateChannelInputAttachmentsInputSettingsAudioSelectorsSelectorSettingsAudioLanguageSelectionTypeDef,
    _OptionalClientCreateChannelInputAttachmentsInputSettingsAudioSelectorsSelectorSettingsAudioLanguageSelectionTypeDef,
):
    """
    Type definition for
    `ClientCreateChannelInputAttachmentsInputSettingsAudioSelectorsSelectorSettings`
    `AudioLanguageSelection`

    - **LanguageCode** *(string) --* **[REQUIRED]** Selects a specific three-letter language code
    from within an audio source.

    - **LanguageSelectionPolicy** *(string) --* When set to "strict", the transport stream demux
    strictly identifies audio streams by their language descriptor. If a PMT update occurs such that
    an audio stream matching the initially selected language is no longer present then mute will be
    encoded until the language returns. If "loose", then on a PMT update the demux will choose
    another audio stream in the program with the same stream type if it can't find one with the same
    language.
    """


_ClientCreateChannelInputAttachmentsInputSettingsAudioSelectorsSelectorSettingsAudioPidSelectionTypeDef = TypedDict(
    "_ClientCreateChannelInputAttachmentsInputSettingsAudioSelectorsSelectorSettingsAudioPidSelectionTypeDef",
    {"Pid": int},
)


class ClientCreateChannelInputAttachmentsInputSettingsAudioSelectorsSelectorSettingsAudioPidSelectionTypeDef(
    _ClientCreateChannelInputAttachmentsInputSettingsAudioSelectorsSelectorSettingsAudioPidSelectionTypeDef
):
    """
    Type definition for
    `ClientCreateChannelInputAttachmentsInputSettingsAudioSelectorsSelectorSettings`
    `AudioPidSelection`

    - **Pid** *(integer) --* **[REQUIRED]** Selects a specific PID from within a source.
    """


_ClientCreateChannelInputAttachmentsInputSettingsAudioSelectorsSelectorSettingsTypeDef = TypedDict(
    "_ClientCreateChannelInputAttachmentsInputSettingsAudioSelectorsSelectorSettingsTypeDef",
    {
        "AudioLanguageSelection": ClientCreateChannelInputAttachmentsInputSettingsAudioSelectorsSelectorSettingsAudioLanguageSelectionTypeDef,
        "AudioPidSelection": ClientCreateChannelInputAttachmentsInputSettingsAudioSelectorsSelectorSettingsAudioPidSelectionTypeDef,
    },
    total=False,
)


class ClientCreateChannelInputAttachmentsInputSettingsAudioSelectorsSelectorSettingsTypeDef(
    _ClientCreateChannelInputAttachmentsInputSettingsAudioSelectorsSelectorSettingsTypeDef
):
    """
    Type definition for `ClientCreateChannelInputAttachmentsInputSettingsAudioSelectors`
    `SelectorSettings`

    - **AudioLanguageSelection** *(dict) --* Audio Language Selection

      - **LanguageCode** *(string) --* **[REQUIRED]** Selects a specific three-letter language code
      from within an audio source.

      - **LanguageSelectionPolicy** *(string) --* When set to "strict", the transport stream demux
      strictly identifies audio streams by their language descriptor. If a PMT update occurs such
      that an audio stream matching the initially selected language is no longer present then mute
      will be encoded until the language returns. If "loose", then on a PMT update the demux will
      choose another audio stream in the program with the same stream type if it can't find one with
      the same language.

    - **AudioPidSelection** *(dict) --* Audio Pid Selection

      - **Pid** *(integer) --* **[REQUIRED]** Selects a specific PID from within a source.
    """


_RequiredClientCreateChannelInputAttachmentsInputSettingsAudioSelectorsTypeDef = TypedDict(
    "_RequiredClientCreateChannelInputAttachmentsInputSettingsAudioSelectorsTypeDef", {"Name": str}
)
_OptionalClientCreateChannelInputAttachmentsInputSettingsAudioSelectorsTypeDef = TypedDict(
    "_OptionalClientCreateChannelInputAttachmentsInputSettingsAudioSelectorsTypeDef",
    {
        "SelectorSettings": ClientCreateChannelInputAttachmentsInputSettingsAudioSelectorsSelectorSettingsTypeDef
    },
    total=False,
)


class ClientCreateChannelInputAttachmentsInputSettingsAudioSelectorsTypeDef(
    _RequiredClientCreateChannelInputAttachmentsInputSettingsAudioSelectorsTypeDef,
    _OptionalClientCreateChannelInputAttachmentsInputSettingsAudioSelectorsTypeDef,
):
    """
    Type definition for `ClientCreateChannelInputAttachmentsInputSettings` `AudioSelectors`

    - **Name** *(string) --* **[REQUIRED]** The name of this AudioSelector. AudioDescriptions will
    use this name to uniquely identify this Selector. Selector names should be unique per input.

    - **SelectorSettings** *(dict) --* The audio selector settings.

      - **AudioLanguageSelection** *(dict) --* Audio Language Selection

        - **LanguageCode** *(string) --* **[REQUIRED]** Selects a specific three-letter language
        code from within an audio source.

        - **LanguageSelectionPolicy** *(string) --* When set to "strict", the transport stream demux
        strictly identifies audio streams by their language descriptor. If a PMT update occurs such
        that an audio stream matching the initially selected language is no longer present then mute
        will be encoded until the language returns. If "loose", then on a PMT update the demux will
        choose another audio stream in the program with the same stream type if it can't find one
        with the same language.

      - **AudioPidSelection** *(dict) --* Audio Pid Selection

        - **Pid** *(integer) --* **[REQUIRED]** Selects a specific PID from within a source.
    """


_ClientCreateChannelInputAttachmentsInputSettingsCaptionSelectorsSelectorSettingsDvbSubSourceSettingsTypeDef = TypedDict(
    "_ClientCreateChannelInputAttachmentsInputSettingsCaptionSelectorsSelectorSettingsDvbSubSourceSettingsTypeDef",
    {"Pid": int},
    total=False,
)


class ClientCreateChannelInputAttachmentsInputSettingsCaptionSelectorsSelectorSettingsDvbSubSourceSettingsTypeDef(
    _ClientCreateChannelInputAttachmentsInputSettingsCaptionSelectorsSelectorSettingsDvbSubSourceSettingsTypeDef
):
    """
    Type definition for
    `ClientCreateChannelInputAttachmentsInputSettingsCaptionSelectorsSelectorSettings`
    `DvbSubSourceSettings`

    - **Pid** *(integer) --* When using DVB-Sub with Burn-In or SMPTE-TT, use this PID for the
    source content. Unused for DVB-Sub passthrough. All DVB-Sub content is passed through,
    regardless of selectors.
    """


_ClientCreateChannelInputAttachmentsInputSettingsCaptionSelectorsSelectorSettingsEmbeddedSourceSettingsTypeDef = TypedDict(
    "_ClientCreateChannelInputAttachmentsInputSettingsCaptionSelectorsSelectorSettingsEmbeddedSourceSettingsTypeDef",
    {
        "Convert608To708": str,
        "Scte20Detection": str,
        "Source608ChannelNumber": int,
        "Source608TrackNumber": int,
    },
    total=False,
)


class ClientCreateChannelInputAttachmentsInputSettingsCaptionSelectorsSelectorSettingsEmbeddedSourceSettingsTypeDef(
    _ClientCreateChannelInputAttachmentsInputSettingsCaptionSelectorsSelectorSettingsEmbeddedSourceSettingsTypeDef
):
    """
    Type definition for
    `ClientCreateChannelInputAttachmentsInputSettingsCaptionSelectorsSelectorSettings`
    `EmbeddedSourceSettings`

    - **Convert608To708** *(string) --* If upconvert, 608 data is both passed through via the "608
    compatibility bytes" fields of the 708 wrapper as well as translated into 708. 708 data present
    in the source content will be discarded.

    - **Scte20Detection** *(string) --* Set to "auto" to handle streams with intermittent and/or
    non-aligned SCTE-20 and Embedded captions.

    - **Source608ChannelNumber** *(integer) --* Specifies the 608/708 channel number within the
    video track from which to extract captions. Unused for passthrough.

    - **Source608TrackNumber** *(integer) --* This field is unused and deprecated.
    """


_ClientCreateChannelInputAttachmentsInputSettingsCaptionSelectorsSelectorSettingsScte20SourceSettingsTypeDef = TypedDict(
    "_ClientCreateChannelInputAttachmentsInputSettingsCaptionSelectorsSelectorSettingsScte20SourceSettingsTypeDef",
    {"Convert608To708": str, "Source608ChannelNumber": int},
    total=False,
)


class ClientCreateChannelInputAttachmentsInputSettingsCaptionSelectorsSelectorSettingsScte20SourceSettingsTypeDef(
    _ClientCreateChannelInputAttachmentsInputSettingsCaptionSelectorsSelectorSettingsScte20SourceSettingsTypeDef
):
    """
    Type definition for
    `ClientCreateChannelInputAttachmentsInputSettingsCaptionSelectorsSelectorSettings`
    `Scte20SourceSettings`

    - **Convert608To708** *(string) --* If upconvert, 608 data is both passed through via the "608
    compatibility bytes" fields of the 708 wrapper as well as translated into 708. 708 data present
    in the source content will be discarded.

    - **Source608ChannelNumber** *(integer) --* Specifies the 608/708 channel number within the
    video track from which to extract captions. Unused for passthrough.
    """


_ClientCreateChannelInputAttachmentsInputSettingsCaptionSelectorsSelectorSettingsScte27SourceSettingsTypeDef = TypedDict(
    "_ClientCreateChannelInputAttachmentsInputSettingsCaptionSelectorsSelectorSettingsScte27SourceSettingsTypeDef",
    {"Pid": int},
    total=False,
)


class ClientCreateChannelInputAttachmentsInputSettingsCaptionSelectorsSelectorSettingsScte27SourceSettingsTypeDef(
    _ClientCreateChannelInputAttachmentsInputSettingsCaptionSelectorsSelectorSettingsScte27SourceSettingsTypeDef
):
    """
    Type definition for
    `ClientCreateChannelInputAttachmentsInputSettingsCaptionSelectorsSelectorSettings`
    `Scte27SourceSettings`

    - **Pid** *(integer) --* The pid field is used in conjunction with the caption selector
    languageCode field as follows: - Specify PID and Language: Extracts captions from that PID; the
    language is "informational". - Specify PID and omit Language: Extracts the specified PID. - Omit
    PID and specify Language: Extracts the specified language, whichever PID that happens to be. -
    Omit PID and omit Language: Valid only if source is DVB-Sub that is being passed through; all
    languages will be passed through.
    """


_ClientCreateChannelInputAttachmentsInputSettingsCaptionSelectorsSelectorSettingsTeletextSourceSettingsTypeDef = TypedDict(
    "_ClientCreateChannelInputAttachmentsInputSettingsCaptionSelectorsSelectorSettingsTeletextSourceSettingsTypeDef",
    {"PageNumber": str},
    total=False,
)


class ClientCreateChannelInputAttachmentsInputSettingsCaptionSelectorsSelectorSettingsTeletextSourceSettingsTypeDef(
    _ClientCreateChannelInputAttachmentsInputSettingsCaptionSelectorsSelectorSettingsTeletextSourceSettingsTypeDef
):
    """
    Type definition for
    `ClientCreateChannelInputAttachmentsInputSettingsCaptionSelectorsSelectorSettings`
    `TeletextSourceSettings`

    - **PageNumber** *(string) --* Specifies the teletext page number within the data stream from
    which to extract captions. Range of 0x100 (256) to 0x8FF (2303). Unused for passthrough. Should
    be specified as a hexadecimal string with no "0x" prefix.
    """


_ClientCreateChannelInputAttachmentsInputSettingsCaptionSelectorsSelectorSettingsTypeDef = TypedDict(
    "_ClientCreateChannelInputAttachmentsInputSettingsCaptionSelectorsSelectorSettingsTypeDef",
    {
        "AribSourceSettings": Dict,
        "DvbSubSourceSettings": ClientCreateChannelInputAttachmentsInputSettingsCaptionSelectorsSelectorSettingsDvbSubSourceSettingsTypeDef,
        "EmbeddedSourceSettings": ClientCreateChannelInputAttachmentsInputSettingsCaptionSelectorsSelectorSettingsEmbeddedSourceSettingsTypeDef,
        "Scte20SourceSettings": ClientCreateChannelInputAttachmentsInputSettingsCaptionSelectorsSelectorSettingsScte20SourceSettingsTypeDef,
        "Scte27SourceSettings": ClientCreateChannelInputAttachmentsInputSettingsCaptionSelectorsSelectorSettingsScte27SourceSettingsTypeDef,
        "TeletextSourceSettings": ClientCreateChannelInputAttachmentsInputSettingsCaptionSelectorsSelectorSettingsTeletextSourceSettingsTypeDef,
    },
    total=False,
)


class ClientCreateChannelInputAttachmentsInputSettingsCaptionSelectorsSelectorSettingsTypeDef(
    _ClientCreateChannelInputAttachmentsInputSettingsCaptionSelectorsSelectorSettingsTypeDef
):
    """
    Type definition for `ClientCreateChannelInputAttachmentsInputSettingsCaptionSelectors`
    `SelectorSettings`

    - **AribSourceSettings** *(dict) --* Arib Source Settings

    - **DvbSubSourceSettings** *(dict) --* Dvb Sub Source Settings

      - **Pid** *(integer) --* When using DVB-Sub with Burn-In or SMPTE-TT, use this PID for the
      source content. Unused for DVB-Sub passthrough. All DVB-Sub content is passed through,
      regardless of selectors.

    - **EmbeddedSourceSettings** *(dict) --* Embedded Source Settings

      - **Convert608To708** *(string) --* If upconvert, 608 data is both passed through via the "608
      compatibility bytes" fields of the 708 wrapper as well as translated into 708. 708 data
      present in the source content will be discarded.

      - **Scte20Detection** *(string) --* Set to "auto" to handle streams with intermittent and/or
      non-aligned SCTE-20 and Embedded captions.

      - **Source608ChannelNumber** *(integer) --* Specifies the 608/708 channel number within the
      video track from which to extract captions. Unused for passthrough.

      - **Source608TrackNumber** *(integer) --* This field is unused and deprecated.

    - **Scte20SourceSettings** *(dict) --* Scte20 Source Settings

      - **Convert608To708** *(string) --* If upconvert, 608 data is both passed through via the "608
      compatibility bytes" fields of the 708 wrapper as well as translated into 708. 708 data
      present in the source content will be discarded.

      - **Source608ChannelNumber** *(integer) --* Specifies the 608/708 channel number within the
      video track from which to extract captions. Unused for passthrough.

    - **Scte27SourceSettings** *(dict) --* Scte27 Source Settings

      - **Pid** *(integer) --* The pid field is used in conjunction with the caption selector
      languageCode field as follows: - Specify PID and Language: Extracts captions from that PID;
      the language is "informational". - Specify PID and omit Language: Extracts the specified PID.
      - Omit PID and specify Language: Extracts the specified language, whichever PID that happens
      to be. - Omit PID and omit Language: Valid only if source is DVB-Sub that is being passed
      through; all languages will be passed through.

    - **TeletextSourceSettings** *(dict) --* Teletext Source Settings

      - **PageNumber** *(string) --* Specifies the teletext page number within the data stream from
      which to extract captions. Range of 0x100 (256) to 0x8FF (2303). Unused for passthrough.
      Should be specified as a hexadecimal string with no "0x" prefix.
    """


_RequiredClientCreateChannelInputAttachmentsInputSettingsCaptionSelectorsTypeDef = TypedDict(
    "_RequiredClientCreateChannelInputAttachmentsInputSettingsCaptionSelectorsTypeDef",
    {"Name": str},
)
_OptionalClientCreateChannelInputAttachmentsInputSettingsCaptionSelectorsTypeDef = TypedDict(
    "_OptionalClientCreateChannelInputAttachmentsInputSettingsCaptionSelectorsTypeDef",
    {
        "LanguageCode": str,
        "SelectorSettings": ClientCreateChannelInputAttachmentsInputSettingsCaptionSelectorsSelectorSettingsTypeDef,
    },
    total=False,
)


class ClientCreateChannelInputAttachmentsInputSettingsCaptionSelectorsTypeDef(
    _RequiredClientCreateChannelInputAttachmentsInputSettingsCaptionSelectorsTypeDef,
    _OptionalClientCreateChannelInputAttachmentsInputSettingsCaptionSelectorsTypeDef,
):
    """
    Type definition for `ClientCreateChannelInputAttachmentsInputSettings` `CaptionSelectors`

    - **LanguageCode** *(string) --* When specified this field indicates the three letter language
    code of the caption track to extract from the source.

    - **Name** *(string) --* **[REQUIRED]** Name identifier for a caption selector. This name is
    used to associate this caption selector with one or more caption descriptions. Names must be
    unique within an event.

    - **SelectorSettings** *(dict) --* Caption selector settings.

      - **AribSourceSettings** *(dict) --* Arib Source Settings

      - **DvbSubSourceSettings** *(dict) --* Dvb Sub Source Settings

        - **Pid** *(integer) --* When using DVB-Sub with Burn-In or SMPTE-TT, use this PID for the
        source content. Unused for DVB-Sub passthrough. All DVB-Sub content is passed through,
        regardless of selectors.

      - **EmbeddedSourceSettings** *(dict) --* Embedded Source Settings

        - **Convert608To708** *(string) --* If upconvert, 608 data is both passed through via the
        "608 compatibility bytes" fields of the 708 wrapper as well as translated into 708. 708 data
        present in the source content will be discarded.

        - **Scte20Detection** *(string) --* Set to "auto" to handle streams with intermittent and/or
        non-aligned SCTE-20 and Embedded captions.

        - **Source608ChannelNumber** *(integer) --* Specifies the 608/708 channel number within the
        video track from which to extract captions. Unused for passthrough.

        - **Source608TrackNumber** *(integer) --* This field is unused and deprecated.

      - **Scte20SourceSettings** *(dict) --* Scte20 Source Settings

        - **Convert608To708** *(string) --* If upconvert, 608 data is both passed through via the
        "608 compatibility bytes" fields of the 708 wrapper as well as translated into 708. 708 data
        present in the source content will be discarded.

        - **Source608ChannelNumber** *(integer) --* Specifies the 608/708 channel number within the
        video track from which to extract captions. Unused for passthrough.

      - **Scte27SourceSettings** *(dict) --* Scte27 Source Settings

        - **Pid** *(integer) --* The pid field is used in conjunction with the caption selector
        languageCode field as follows: - Specify PID and Language: Extracts captions from that PID;
        the language is "informational". - Specify PID and omit Language: Extracts the specified
        PID. - Omit PID and specify Language: Extracts the specified language, whichever PID that
        happens to be. - Omit PID and omit Language: Valid only if source is DVB-Sub that is being
        passed through; all languages will be passed through.

      - **TeletextSourceSettings** *(dict) --* Teletext Source Settings

        - **PageNumber** *(string) --* Specifies the teletext page number within the data stream
        from which to extract captions. Range of 0x100 (256) to 0x8FF (2303). Unused for
        passthrough. Should be specified as a hexadecimal string with no "0x" prefix.
    """


_ClientCreateChannelInputAttachmentsInputSettingsNetworkInputSettingsHlsInputSettingsTypeDef = TypedDict(
    "_ClientCreateChannelInputAttachmentsInputSettingsNetworkInputSettingsHlsInputSettingsTypeDef",
    {"Bandwidth": int, "BufferSegments": int, "Retries": int, "RetryInterval": int},
    total=False,
)


class ClientCreateChannelInputAttachmentsInputSettingsNetworkInputSettingsHlsInputSettingsTypeDef(
    _ClientCreateChannelInputAttachmentsInputSettingsNetworkInputSettingsHlsInputSettingsTypeDef
):
    """
    Type definition for `ClientCreateChannelInputAttachmentsInputSettingsNetworkInputSettings`
    `HlsInputSettings`

    - **Bandwidth** *(integer) --* When specified the HLS stream with the m3u8 BANDWIDTH that most
    closely matches this value will be chosen, otherwise the highest bandwidth stream in the m3u8
    will be chosen. The bitrate is specified in bits per second, as in an HLS manifest.

    - **BufferSegments** *(integer) --* When specified, reading of the HLS input will begin this
    many buffer segments from the end (most recently written segment). When not specified, the HLS
    input will begin with the first segment specified in the m3u8.

    - **Retries** *(integer) --* The number of consecutive times that attempts to read a manifest or
    segment must fail before the input is considered unavailable.

    - **RetryInterval** *(integer) --* The number of seconds between retries when an attempt to read
    a manifest or segment fails.
    """


_ClientCreateChannelInputAttachmentsInputSettingsNetworkInputSettingsTypeDef = TypedDict(
    "_ClientCreateChannelInputAttachmentsInputSettingsNetworkInputSettingsTypeDef",
    {
        "HlsInputSettings": ClientCreateChannelInputAttachmentsInputSettingsNetworkInputSettingsHlsInputSettingsTypeDef,
        "ServerValidation": str,
    },
    total=False,
)


class ClientCreateChannelInputAttachmentsInputSettingsNetworkInputSettingsTypeDef(
    _ClientCreateChannelInputAttachmentsInputSettingsNetworkInputSettingsTypeDef
):
    """
    Type definition for `ClientCreateChannelInputAttachmentsInputSettings` `NetworkInputSettings`

    - **HlsInputSettings** *(dict) --* Specifies HLS input settings when the uri is for a HLS
    manifest.

      - **Bandwidth** *(integer) --* When specified the HLS stream with the m3u8 BANDWIDTH that most
      closely matches this value will be chosen, otherwise the highest bandwidth stream in the m3u8
      will be chosen. The bitrate is specified in bits per second, as in an HLS manifest.

      - **BufferSegments** *(integer) --* When specified, reading of the HLS input will begin this
      many buffer segments from the end (most recently written segment). When not specified, the HLS
      input will begin with the first segment specified in the m3u8.

      - **Retries** *(integer) --* The number of consecutive times that attempts to read a manifest
      or segment must fail before the input is considered unavailable.

      - **RetryInterval** *(integer) --* The number of seconds between retries when an attempt to
      read a manifest or segment fails.

    - **ServerValidation** *(string) --* Check HTTPS server certificates. When set to
    checkCryptographyOnly, cryptography in the certificate will be checked, but not the server's
    name. Certain subdomains (notably S3 buckets that use dots in the bucket name) do not strictly
    match the corresponding certificate's wildcard pattern and would otherwise cause the event to
    error. This setting is ignored for protocols that do not use https.
    """


_ClientCreateChannelInputAttachmentsInputSettingsVideoSelectorSelectorSettingsVideoSelectorPidTypeDef = TypedDict(
    "_ClientCreateChannelInputAttachmentsInputSettingsVideoSelectorSelectorSettingsVideoSelectorPidTypeDef",
    {"Pid": int},
    total=False,
)


class ClientCreateChannelInputAttachmentsInputSettingsVideoSelectorSelectorSettingsVideoSelectorPidTypeDef(
    _ClientCreateChannelInputAttachmentsInputSettingsVideoSelectorSelectorSettingsVideoSelectorPidTypeDef
):
    """
    Type definition for
    `ClientCreateChannelInputAttachmentsInputSettingsVideoSelectorSelectorSettings`
    `VideoSelectorPid`

    - **Pid** *(integer) --* Selects a specific PID from within a video source.
    """


_ClientCreateChannelInputAttachmentsInputSettingsVideoSelectorSelectorSettingsVideoSelectorProgramIdTypeDef = TypedDict(
    "_ClientCreateChannelInputAttachmentsInputSettingsVideoSelectorSelectorSettingsVideoSelectorProgramIdTypeDef",
    {"ProgramId": int},
    total=False,
)


class ClientCreateChannelInputAttachmentsInputSettingsVideoSelectorSelectorSettingsVideoSelectorProgramIdTypeDef(
    _ClientCreateChannelInputAttachmentsInputSettingsVideoSelectorSelectorSettingsVideoSelectorProgramIdTypeDef
):
    """
    Type definition for
    `ClientCreateChannelInputAttachmentsInputSettingsVideoSelectorSelectorSettings`
    `VideoSelectorProgramId`

    - **ProgramId** *(integer) --* Selects a specific program from within a multi-program transport
    stream. If the program doesn't exist, the first program within the transport stream will be
    selected by default.
    """


_ClientCreateChannelInputAttachmentsInputSettingsVideoSelectorSelectorSettingsTypeDef = TypedDict(
    "_ClientCreateChannelInputAttachmentsInputSettingsVideoSelectorSelectorSettingsTypeDef",
    {
        "VideoSelectorPid": ClientCreateChannelInputAttachmentsInputSettingsVideoSelectorSelectorSettingsVideoSelectorPidTypeDef,
        "VideoSelectorProgramId": ClientCreateChannelInputAttachmentsInputSettingsVideoSelectorSelectorSettingsVideoSelectorProgramIdTypeDef,
    },
    total=False,
)


class ClientCreateChannelInputAttachmentsInputSettingsVideoSelectorSelectorSettingsTypeDef(
    _ClientCreateChannelInputAttachmentsInputSettingsVideoSelectorSelectorSettingsTypeDef
):
    """
    Type definition for `ClientCreateChannelInputAttachmentsInputSettingsVideoSelector`
    `SelectorSettings`

    - **VideoSelectorPid** *(dict) --* Video Selector Pid

      - **Pid** *(integer) --* Selects a specific PID from within a video source.

    - **VideoSelectorProgramId** *(dict) --* Video Selector Program Id

      - **ProgramId** *(integer) --* Selects a specific program from within a multi-program
      transport stream. If the program doesn't exist, the first program within the transport stream
      will be selected by default.
    """


_ClientCreateChannelInputAttachmentsInputSettingsVideoSelectorTypeDef = TypedDict(
    "_ClientCreateChannelInputAttachmentsInputSettingsVideoSelectorTypeDef",
    {
        "ColorSpace": str,
        "ColorSpaceUsage": str,
        "SelectorSettings": ClientCreateChannelInputAttachmentsInputSettingsVideoSelectorSelectorSettingsTypeDef,
    },
    total=False,
)


class ClientCreateChannelInputAttachmentsInputSettingsVideoSelectorTypeDef(
    _ClientCreateChannelInputAttachmentsInputSettingsVideoSelectorTypeDef
):
    """
    Type definition for `ClientCreateChannelInputAttachmentsInputSettings` `VideoSelector`

    - **ColorSpace** *(string) --* Specifies the color space of an input. This setting works in
    tandem with colorSpaceUsage and a video description's colorSpaceSettingsChoice to determine if
    any conversion will be performed.

    - **ColorSpaceUsage** *(string) --* Applies only if colorSpace is a value other than follow.
    This field controls how the value in the colorSpace field will be used. fallback means that when
    the input does include color space data, that data will be used, but when the input has no color
    space data, the value in colorSpace will be used. Choose fallback if your input is sometimes
    missing color space data, but when it does have color space data, that data is correct. force
    means to always use the value in colorSpace. Choose force if your input usually has no color
    space data or might have unreliable color space data.

    - **SelectorSettings** *(dict) --* The video selector settings.

      - **VideoSelectorPid** *(dict) --* Video Selector Pid

        - **Pid** *(integer) --* Selects a specific PID from within a video source.

      - **VideoSelectorProgramId** *(dict) --* Video Selector Program Id

        - **ProgramId** *(integer) --* Selects a specific program from within a multi-program
        transport stream. If the program doesn't exist, the first program within the transport
        stream will be selected by default.
    """


_ClientCreateChannelInputAttachmentsInputSettingsTypeDef = TypedDict(
    "_ClientCreateChannelInputAttachmentsInputSettingsTypeDef",
    {
        "AudioSelectors": List[
            ClientCreateChannelInputAttachmentsInputSettingsAudioSelectorsTypeDef
        ],
        "CaptionSelectors": List[
            ClientCreateChannelInputAttachmentsInputSettingsCaptionSelectorsTypeDef
        ],
        "DeblockFilter": str,
        "DenoiseFilter": str,
        "FilterStrength": int,
        "InputFilter": str,
        "NetworkInputSettings": ClientCreateChannelInputAttachmentsInputSettingsNetworkInputSettingsTypeDef,
        "SourceEndBehavior": str,
        "VideoSelector": ClientCreateChannelInputAttachmentsInputSettingsVideoSelectorTypeDef,
    },
    total=False,
)


class ClientCreateChannelInputAttachmentsInputSettingsTypeDef(
    _ClientCreateChannelInputAttachmentsInputSettingsTypeDef
):
    """
    Type definition for `ClientCreateChannelInputAttachments` `InputSettings`

    - **AudioSelectors** *(list) --* Used to select the audio stream to decode for inputs that have
    multiple available.

      - *(dict) --* Audio Selector

        - **Name** *(string) --* **[REQUIRED]** The name of this AudioSelector. AudioDescriptions
        will use this name to uniquely identify this Selector. Selector names should be unique per
        input.

        - **SelectorSettings** *(dict) --* The audio selector settings.

          - **AudioLanguageSelection** *(dict) --* Audio Language Selection

            - **LanguageCode** *(string) --* **[REQUIRED]** Selects a specific three-letter language
            code from within an audio source.

            - **LanguageSelectionPolicy** *(string) --* When set to "strict", the transport stream
            demux strictly identifies audio streams by their language descriptor. If a PMT update
            occurs such that an audio stream matching the initially selected language is no longer
            present then mute will be encoded until the language returns. If "loose", then on a PMT
            update the demux will choose another audio stream in the program with the same stream
            type if it can't find one with the same language.

          - **AudioPidSelection** *(dict) --* Audio Pid Selection

            - **Pid** *(integer) --* **[REQUIRED]** Selects a specific PID from within a source.

    - **CaptionSelectors** *(list) --* Used to select the caption input to use for inputs that have
    multiple available.

      - *(dict) --* Output groups for this Live Event. Output groups contain information about where
      streams should be distributed.

        - **LanguageCode** *(string) --* When specified this field indicates the three letter
        language code of the caption track to extract from the source.

        - **Name** *(string) --* **[REQUIRED]** Name identifier for a caption selector. This name is
        used to associate this caption selector with one or more caption descriptions. Names must be
        unique within an event.

        - **SelectorSettings** *(dict) --* Caption selector settings.

          - **AribSourceSettings** *(dict) --* Arib Source Settings

          - **DvbSubSourceSettings** *(dict) --* Dvb Sub Source Settings

            - **Pid** *(integer) --* When using DVB-Sub with Burn-In or SMPTE-TT, use this PID for
            the source content. Unused for DVB-Sub passthrough. All DVB-Sub content is passed
            through, regardless of selectors.

          - **EmbeddedSourceSettings** *(dict) --* Embedded Source Settings

            - **Convert608To708** *(string) --* If upconvert, 608 data is both passed through via
            the "608 compatibility bytes" fields of the 708 wrapper as well as translated into 708.
            708 data present in the source content will be discarded.

            - **Scte20Detection** *(string) --* Set to "auto" to handle streams with intermittent
            and/or non-aligned SCTE-20 and Embedded captions.

            - **Source608ChannelNumber** *(integer) --* Specifies the 608/708 channel number within
            the video track from which to extract captions. Unused for passthrough.

            - **Source608TrackNumber** *(integer) --* This field is unused and deprecated.

          - **Scte20SourceSettings** *(dict) --* Scte20 Source Settings

            - **Convert608To708** *(string) --* If upconvert, 608 data is both passed through via
            the "608 compatibility bytes" fields of the 708 wrapper as well as translated into 708.
            708 data present in the source content will be discarded.

            - **Source608ChannelNumber** *(integer) --* Specifies the 608/708 channel number within
            the video track from which to extract captions. Unused for passthrough.

          - **Scte27SourceSettings** *(dict) --* Scte27 Source Settings

            - **Pid** *(integer) --* The pid field is used in conjunction with the caption selector
            languageCode field as follows: - Specify PID and Language: Extracts captions from that
            PID; the language is "informational". - Specify PID and omit Language: Extracts the
            specified PID. - Omit PID and specify Language: Extracts the specified language,
            whichever PID that happens to be. - Omit PID and omit Language: Valid only if source is
            DVB-Sub that is being passed through; all languages will be passed through.

          - **TeletextSourceSettings** *(dict) --* Teletext Source Settings

            - **PageNumber** *(string) --* Specifies the teletext page number within the data stream
            from which to extract captions. Range of 0x100 (256) to 0x8FF (2303). Unused for
            passthrough. Should be specified as a hexadecimal string with no "0x" prefix.

    - **DeblockFilter** *(string) --* Enable or disable the deblock filter when filtering.

    - **DenoiseFilter** *(string) --* Enable or disable the denoise filter when filtering.

    - **FilterStrength** *(integer) --* Adjusts the magnitude of filtering from 1 (minimal) to 5
    (strongest).

    - **InputFilter** *(string) --* Turns on the filter for this input. MPEG-2 inputs have the
    deblocking filter enabled by default. 1) auto - filtering will be applied depending on input
    type/quality 2) disabled - no filtering will be applied to the input 3) forced - filtering will
    be applied regardless of input type

    - **NetworkInputSettings** *(dict) --* Input settings.

      - **HlsInputSettings** *(dict) --* Specifies HLS input settings when the uri is for a HLS
      manifest.

        - **Bandwidth** *(integer) --* When specified the HLS stream with the m3u8 BANDWIDTH that
        most closely matches this value will be chosen, otherwise the highest bandwidth stream in
        the m3u8 will be chosen. The bitrate is specified in bits per second, as in an HLS manifest.

        - **BufferSegments** *(integer) --* When specified, reading of the HLS input will begin this
        many buffer segments from the end (most recently written segment). When not specified, the
        HLS input will begin with the first segment specified in the m3u8.

        - **Retries** *(integer) --* The number of consecutive times that attempts to read a
        manifest or segment must fail before the input is considered unavailable.

        - **RetryInterval** *(integer) --* The number of seconds between retries when an attempt to
        read a manifest or segment fails.

      - **ServerValidation** *(string) --* Check HTTPS server certificates. When set to
      checkCryptographyOnly, cryptography in the certificate will be checked, but not the server's
      name. Certain subdomains (notably S3 buckets that use dots in the bucket name) do not strictly
      match the corresponding certificate's wildcard pattern and would otherwise cause the event to
      error. This setting is ignored for protocols that do not use https.

    - **SourceEndBehavior** *(string) --* Loop input if it is a file. This allows a file input to be
    streamed indefinitely.

    - **VideoSelector** *(dict) --* Informs which video elementary stream to decode for input types
    that have multiple available.

      - **ColorSpace** *(string) --* Specifies the color space of an input. This setting works in
      tandem with colorSpaceUsage and a video description's colorSpaceSettingsChoice to determine if
      any conversion will be performed.

      - **ColorSpaceUsage** *(string) --* Applies only if colorSpace is a value other than follow.
      This field controls how the value in the colorSpace field will be used. fallback means that
      when the input does include color space data, that data will be used, but when the input has
      no color space data, the value in colorSpace will be used. Choose fallback if your input is
      sometimes missing color space data, but when it does have color space data, that data is
      correct. force means to always use the value in colorSpace. Choose force if your input usually
      has no color space data or might have unreliable color space data.

      - **SelectorSettings** *(dict) --* The video selector settings.

        - **VideoSelectorPid** *(dict) --* Video Selector Pid

          - **Pid** *(integer) --* Selects a specific PID from within a video source.

        - **VideoSelectorProgramId** *(dict) --* Video Selector Program Id

          - **ProgramId** *(integer) --* Selects a specific program from within a multi-program
          transport stream. If the program doesn't exist, the first program within the transport
          stream will be selected by default.
    """


_ClientCreateChannelInputAttachmentsTypeDef = TypedDict(
    "_ClientCreateChannelInputAttachmentsTypeDef",
    {
        "InputAttachmentName": str,
        "InputId": str,
        "InputSettings": ClientCreateChannelInputAttachmentsInputSettingsTypeDef,
    },
    total=False,
)


class ClientCreateChannelInputAttachmentsTypeDef(_ClientCreateChannelInputAttachmentsTypeDef):
    """
    Type definition for `ClientCreateChannel` `InputAttachments`

    - **InputAttachmentName** *(string) --* User-specified name for the attachment. This is required
    if the user wants to use this input in an input switch action.

    - **InputId** *(string) --* The ID of the input

    - **InputSettings** *(dict) --* Settings of an input (caption selector, etc.)

      - **AudioSelectors** *(list) --* Used to select the audio stream to decode for inputs that
      have multiple available.

        - *(dict) --* Audio Selector

          - **Name** *(string) --* **[REQUIRED]** The name of this AudioSelector. AudioDescriptions
          will use this name to uniquely identify this Selector. Selector names should be unique per
          input.

          - **SelectorSettings** *(dict) --* The audio selector settings.

            - **AudioLanguageSelection** *(dict) --* Audio Language Selection

              - **LanguageCode** *(string) --* **[REQUIRED]** Selects a specific three-letter
              language code from within an audio source.

              - **LanguageSelectionPolicy** *(string) --* When set to "strict", the transport stream
              demux strictly identifies audio streams by their language descriptor. If a PMT update
              occurs such that an audio stream matching the initially selected language is no longer
              present then mute will be encoded until the language returns. If "loose", then on a
              PMT update the demux will choose another audio stream in the program with the same
              stream type if it can't find one with the same language.

            - **AudioPidSelection** *(dict) --* Audio Pid Selection

              - **Pid** *(integer) --* **[REQUIRED]** Selects a specific PID from within a source.

      - **CaptionSelectors** *(list) --* Used to select the caption input to use for inputs that
      have multiple available.

        - *(dict) --* Output groups for this Live Event. Output groups contain information about
        where streams should be distributed.

          - **LanguageCode** *(string) --* When specified this field indicates the three letter
          language code of the caption track to extract from the source.

          - **Name** *(string) --* **[REQUIRED]** Name identifier for a caption selector. This name
          is used to associate this caption selector with one or more caption descriptions. Names
          must be unique within an event.

          - **SelectorSettings** *(dict) --* Caption selector settings.

            - **AribSourceSettings** *(dict) --* Arib Source Settings

            - **DvbSubSourceSettings** *(dict) --* Dvb Sub Source Settings

              - **Pid** *(integer) --* When using DVB-Sub with Burn-In or SMPTE-TT, use this PID for
              the source content. Unused for DVB-Sub passthrough. All DVB-Sub content is passed
              through, regardless of selectors.

            - **EmbeddedSourceSettings** *(dict) --* Embedded Source Settings

              - **Convert608To708** *(string) --* If upconvert, 608 data is both passed through via
              the "608 compatibility bytes" fields of the 708 wrapper as well as translated into
              708. 708 data present in the source content will be discarded.

              - **Scte20Detection** *(string) --* Set to "auto" to handle streams with intermittent
              and/or non-aligned SCTE-20 and Embedded captions.

              - **Source608ChannelNumber** *(integer) --* Specifies the 608/708 channel number
              within the video track from which to extract captions. Unused for passthrough.

              - **Source608TrackNumber** *(integer) --* This field is unused and deprecated.

            - **Scte20SourceSettings** *(dict) --* Scte20 Source Settings

              - **Convert608To708** *(string) --* If upconvert, 608 data is both passed through via
              the "608 compatibility bytes" fields of the 708 wrapper as well as translated into
              708. 708 data present in the source content will be discarded.

              - **Source608ChannelNumber** *(integer) --* Specifies the 608/708 channel number
              within the video track from which to extract captions. Unused for passthrough.

            - **Scte27SourceSettings** *(dict) --* Scte27 Source Settings

              - **Pid** *(integer) --* The pid field is used in conjunction with the caption
              selector languageCode field as follows: - Specify PID and Language: Extracts captions
              from that PID; the language is "informational". - Specify PID and omit Language:
              Extracts the specified PID. - Omit PID and specify Language: Extracts the specified
              language, whichever PID that happens to be. - Omit PID and omit Language: Valid only
              if source is DVB-Sub that is being passed through; all languages will be passed
              through.

            - **TeletextSourceSettings** *(dict) --* Teletext Source Settings

              - **PageNumber** *(string) --* Specifies the teletext page number within the data
              stream from which to extract captions. Range of 0x100 (256) to 0x8FF (2303). Unused
              for passthrough. Should be specified as a hexadecimal string with no "0x" prefix.

      - **DeblockFilter** *(string) --* Enable or disable the deblock filter when filtering.

      - **DenoiseFilter** *(string) --* Enable or disable the denoise filter when filtering.

      - **FilterStrength** *(integer) --* Adjusts the magnitude of filtering from 1 (minimal) to 5
      (strongest).

      - **InputFilter** *(string) --* Turns on the filter for this input. MPEG-2 inputs have the
      deblocking filter enabled by default. 1) auto - filtering will be applied depending on input
      type/quality 2) disabled - no filtering will be applied to the input 3) forced - filtering
      will be applied regardless of input type

      - **NetworkInputSettings** *(dict) --* Input settings.

        - **HlsInputSettings** *(dict) --* Specifies HLS input settings when the uri is for a HLS
        manifest.

          - **Bandwidth** *(integer) --* When specified the HLS stream with the m3u8 BANDWIDTH that
          most closely matches this value will be chosen, otherwise the highest bandwidth stream in
          the m3u8 will be chosen. The bitrate is specified in bits per second, as in an HLS
          manifest.

          - **BufferSegments** *(integer) --* When specified, reading of the HLS input will begin
          this many buffer segments from the end (most recently written segment). When not
          specified, the HLS input will begin with the first segment specified in the m3u8.

          - **Retries** *(integer) --* The number of consecutive times that attempts to read a
          manifest or segment must fail before the input is considered unavailable.

          - **RetryInterval** *(integer) --* The number of seconds between retries when an attempt
          to read a manifest or segment fails.

        - **ServerValidation** *(string) --* Check HTTPS server certificates. When set to
        checkCryptographyOnly, cryptography in the certificate will be checked, but not the server's
        name. Certain subdomains (notably S3 buckets that use dots in the bucket name) do not
        strictly match the corresponding certificate's wildcard pattern and would otherwise cause
        the event to error. This setting is ignored for protocols that do not use https.

      - **SourceEndBehavior** *(string) --* Loop input if it is a file. This allows a file input to
      be streamed indefinitely.

      - **VideoSelector** *(dict) --* Informs which video elementary stream to decode for input
      types that have multiple available.

        - **ColorSpace** *(string) --* Specifies the color space of an input. This setting works in
        tandem with colorSpaceUsage and a video description's colorSpaceSettingsChoice to determine
        if any conversion will be performed.

        - **ColorSpaceUsage** *(string) --* Applies only if colorSpace is a value other than follow.
        This field controls how the value in the colorSpace field will be used. fallback means that
        when the input does include color space data, that data will be used, but when the input has
        no color space data, the value in colorSpace will be used. Choose fallback if your input is
        sometimes missing color space data, but when it does have color space data, that data is
        correct. force means to always use the value in colorSpace. Choose force if your input
        usually has no color space data or might have unreliable color space data.

        - **SelectorSettings** *(dict) --* The video selector settings.

          - **VideoSelectorPid** *(dict) --* Video Selector Pid

            - **Pid** *(integer) --* Selects a specific PID from within a video source.

          - **VideoSelectorProgramId** *(dict) --* Video Selector Program Id

            - **ProgramId** *(integer) --* Selects a specific program from within a multi-program
            transport stream. If the program doesn't exist, the first program within the transport
            stream will be selected by default.
    """


_ClientCreateChannelInputSpecificationTypeDef = TypedDict(
    "_ClientCreateChannelInputSpecificationTypeDef",
    {"Codec": str, "MaximumBitrate": str, "Resolution": str},
    total=False,
)


class ClientCreateChannelInputSpecificationTypeDef(_ClientCreateChannelInputSpecificationTypeDef):
    """
    Type definition for `ClientCreateChannel` `InputSpecification`

    - **Codec** *(string) --* Input codec

    - **MaximumBitrate** *(string) --* Maximum input bitrate, categorized coarsely

    - **Resolution** *(string) --* Input resolution, categorized coarsely
    """


_ClientCreateChannelResponseChannelDestinationsMediaPackageSettingsTypeDef = TypedDict(
    "_ClientCreateChannelResponseChannelDestinationsMediaPackageSettingsTypeDef",
    {"ChannelId": str},
    total=False,
)


class ClientCreateChannelResponseChannelDestinationsMediaPackageSettingsTypeDef(
    _ClientCreateChannelResponseChannelDestinationsMediaPackageSettingsTypeDef
):
    """
    Type definition for `ClientCreateChannelResponseChannelDestinations` `MediaPackageSettings`

    - **ChannelId** *(string) --* ID of the channel in MediaPackage that is the destination for this
    output group. You do not need to specify the individual inputs in MediaPackage; MediaLive will
    handle the connection of the two MediaLive pipelines to the two MediaPackage inputs. The
    MediaPackage channel and MediaLive channel must be in the same region.
    """


_ClientCreateChannelResponseChannelDestinationsMultiplexSettingsTypeDef = TypedDict(
    "_ClientCreateChannelResponseChannelDestinationsMultiplexSettingsTypeDef",
    {"MultiplexId": str, "ProgramName": str},
    total=False,
)


class ClientCreateChannelResponseChannelDestinationsMultiplexSettingsTypeDef(
    _ClientCreateChannelResponseChannelDestinationsMultiplexSettingsTypeDef
):
    """
    Type definition for `ClientCreateChannelResponseChannelDestinations` `MultiplexSettings`

    - **MultiplexId** *(string) --* The ID of the Multiplex that the encoder is providing output to.
    You do not need to specify the individual inputs to the Multiplex; MediaLive will handle the
    connection of the two MediaLive pipelines to the two Multiplex instances. The Multiplex must be
    in the same region as the Channel.

    - **ProgramName** *(string) --* The program name of the Multiplex program that the encoder is
    providing output to.
    """


_ClientCreateChannelResponseChannelDestinationsSettingsTypeDef = TypedDict(
    "_ClientCreateChannelResponseChannelDestinationsSettingsTypeDef",
    {"PasswordParam": str, "StreamName": str, "Url": str, "Username": str},
    total=False,
)


class ClientCreateChannelResponseChannelDestinationsSettingsTypeDef(
    _ClientCreateChannelResponseChannelDestinationsSettingsTypeDef
):
    """
    Type definition for `ClientCreateChannelResponseChannelDestinations` `Settings`

    - **PasswordParam** *(string) --* key used to extract the password from EC2 Parameter store

    - **StreamName** *(string) --* Stream name for RTMP destinations (URLs of type rtmp://)

    - **Url** *(string) --* A URL specifying a destination

    - **Username** *(string) --* username for destination
    """


_ClientCreateChannelResponseChannelDestinationsTypeDef = TypedDict(
    "_ClientCreateChannelResponseChannelDestinationsTypeDef",
    {
        "Id": str,
        "MediaPackageSettings": List[
            ClientCreateChannelResponseChannelDestinationsMediaPackageSettingsTypeDef
        ],
        "MultiplexSettings": ClientCreateChannelResponseChannelDestinationsMultiplexSettingsTypeDef,
        "Settings": List[ClientCreateChannelResponseChannelDestinationsSettingsTypeDef],
    },
    total=False,
)


class ClientCreateChannelResponseChannelDestinationsTypeDef(
    _ClientCreateChannelResponseChannelDestinationsTypeDef
):
    """
    Type definition for `ClientCreateChannelResponseChannel` `Destinations`

    - **Id** *(string) --* User-specified id. This is used in an output group or an output.

    - **MediaPackageSettings** *(list) --* Destination settings for a MediaPackage output; one
    destination for both encoders.

      - *(dict) --* MediaPackage Output Destination Settings

        - **ChannelId** *(string) --* ID of the channel in MediaPackage that is the destination for
        this output group. You do not need to specify the individual inputs in MediaPackage;
        MediaLive will handle the connection of the two MediaLive pipelines to the two MediaPackage
        inputs. The MediaPackage channel and MediaLive channel must be in the same region.

    - **MultiplexSettings** *(dict) --* Destination settings for a Multiplex output; one destination
    for both encoders.

      - **MultiplexId** *(string) --* The ID of the Multiplex that the encoder is providing output
      to. You do not need to specify the individual inputs to the Multiplex; MediaLive will handle
      the connection of the two MediaLive pipelines to the two Multiplex instances. The Multiplex
      must be in the same region as the Channel.

      - **ProgramName** *(string) --* The program name of the Multiplex program that the encoder is
      providing output to.

    - **Settings** *(list) --* Destination settings for a standard output; one destination for each
    redundant encoder.

      - *(dict) --* Placeholder documentation for OutputDestinationSettings

        - **PasswordParam** *(string) --* key used to extract the password from EC2 Parameter store

        - **StreamName** *(string) --* Stream name for RTMP destinations (URLs of type rtmp://)

        - **Url** *(string) --* A URL specifying a destination

        - **Username** *(string) --* username for destination
    """


_ClientCreateChannelResponseChannelEgressEndpointsTypeDef = TypedDict(
    "_ClientCreateChannelResponseChannelEgressEndpointsTypeDef", {"SourceIp": str}, total=False
)


class ClientCreateChannelResponseChannelEgressEndpointsTypeDef(
    _ClientCreateChannelResponseChannelEgressEndpointsTypeDef
):
    """
    Type definition for `ClientCreateChannelResponseChannel` `EgressEndpoints`

    - **SourceIp** *(string) --* Public IP of where a channel's output comes from
    """


_ClientCreateChannelResponseChannelEncoderSettingsAudioDescriptionsAudioNormalizationSettingsTypeDef = TypedDict(
    "_ClientCreateChannelResponseChannelEncoderSettingsAudioDescriptionsAudioNormalizationSettingsTypeDef",
    {"Algorithm": str, "AlgorithmControl": str, "TargetLkfs": float},
    total=False,
)


class ClientCreateChannelResponseChannelEncoderSettingsAudioDescriptionsAudioNormalizationSettingsTypeDef(
    _ClientCreateChannelResponseChannelEncoderSettingsAudioDescriptionsAudioNormalizationSettingsTypeDef
):
    """
    Type definition for `ClientCreateChannelResponseChannelEncoderSettingsAudioDescriptions`
    `AudioNormalizationSettings`

    - **Algorithm** *(string) --* Audio normalization algorithm to use. itu17701 conforms to the
    CALM Act specification, itu17702 conforms to the EBU R-128 specification.

    - **AlgorithmControl** *(string) --* When set to correctAudio the output audio is corrected
    using the chosen algorithm. If set to measureOnly, the audio will be measured but not adjusted.

    - **TargetLkfs** *(float) --* Target LKFS(loudness) to adjust volume to. If no value is entered,
    a default value will be used according to the chosen algorithm. The CALM Act (1770-1) recommends
    a target of -24 LKFS. The EBU R-128 specification (1770-2) recommends a target of -23 LKFS.
    """


_ClientCreateChannelResponseChannelEncoderSettingsAudioDescriptionsCodecSettingsAacSettingsTypeDef = TypedDict(
    "_ClientCreateChannelResponseChannelEncoderSettingsAudioDescriptionsCodecSettingsAacSettingsTypeDef",
    {
        "Bitrate": float,
        "CodingMode": str,
        "InputType": str,
        "Profile": str,
        "RateControlMode": str,
        "RawFormat": str,
        "SampleRate": float,
        "Spec": str,
        "VbrQuality": str,
    },
    total=False,
)


class ClientCreateChannelResponseChannelEncoderSettingsAudioDescriptionsCodecSettingsAacSettingsTypeDef(
    _ClientCreateChannelResponseChannelEncoderSettingsAudioDescriptionsCodecSettingsAacSettingsTypeDef
):
    """
    Type definition for
    `ClientCreateChannelResponseChannelEncoderSettingsAudioDescriptionsCodecSettings` `AacSettings`

    - **Bitrate** *(float) --* Average bitrate in bits/second. Valid values depend on rate control
    mode and profile.

    - **CodingMode** *(string) --* Mono, Stereo, or 5.1 channel layout. Valid values depend on rate
    control mode and profile. The adReceiverMix setting receives a stereo description plus control
    track and emits a mono AAC encode of the description track, with control data emitted in the PES
    header as per ETSI TS 101 154 Annex E.

    - **InputType** *(string) --* Set to "broadcasterMixedAd" when input contains pre-mixed main
    audio + AD (narration) as a stereo pair. The Audio Type field (audioType) will be set to 3,
    which signals to downstream systems that this stream contains "broadcaster mixed AD". Note that
    the input received by the encoder must contain pre-mixed audio; the encoder does not perform the
    mixing. The values in audioTypeControl and audioType (in AudioDescription) are ignored when set
    to broadcasterMixedAd. Leave set to "normal" when input does not contain pre-mixed audio + AD.

    - **Profile** *(string) --* AAC Profile.

    - **RateControlMode** *(string) --* Rate Control Mode.

    - **RawFormat** *(string) --* Sets LATM / LOAS AAC output for raw containers.

    - **SampleRate** *(float) --* Sample rate in Hz. Valid values depend on rate control mode and
    profile.

    - **Spec** *(string) --* Use MPEG-2 AAC audio instead of MPEG-4 AAC audio for raw or MPEG-2
    Transport Stream containers.

    - **VbrQuality** *(string) --* VBR Quality Level - Only used if rateControlMode is VBR.
    """


_ClientCreateChannelResponseChannelEncoderSettingsAudioDescriptionsCodecSettingsAc3SettingsTypeDef = TypedDict(
    "_ClientCreateChannelResponseChannelEncoderSettingsAudioDescriptionsCodecSettingsAc3SettingsTypeDef",
    {
        "Bitrate": float,
        "BitstreamMode": str,
        "CodingMode": str,
        "Dialnorm": int,
        "DrcProfile": str,
        "LfeFilter": str,
        "MetadataControl": str,
    },
    total=False,
)


class ClientCreateChannelResponseChannelEncoderSettingsAudioDescriptionsCodecSettingsAc3SettingsTypeDef(
    _ClientCreateChannelResponseChannelEncoderSettingsAudioDescriptionsCodecSettingsAc3SettingsTypeDef
):
    """
    Type definition for
    `ClientCreateChannelResponseChannelEncoderSettingsAudioDescriptionsCodecSettings` `Ac3Settings`

    - **Bitrate** *(float) --* Average bitrate in bits/second. Valid bitrates depend on the coding
    mode.

    - **BitstreamMode** *(string) --* Specifies the bitstream mode (bsmod) for the emitted AC-3
    stream. See ATSC A/52-2012 for background on these values.

    - **CodingMode** *(string) --* Dolby Digital coding mode. Determines number of channels.

    - **Dialnorm** *(integer) --* Sets the dialnorm for the output. If excluded and input audio is
    Dolby Digital, dialnorm will be passed through.

    - **DrcProfile** *(string) --* If set to filmStandard, adds dynamic range compression signaling
    to the output bitstream as defined in the Dolby Digital specification.

    - **LfeFilter** *(string) --* When set to enabled, applies a 120Hz lowpass filter to the LFE
    channel prior to encoding. Only valid in codingMode32Lfe mode.

    - **MetadataControl** *(string) --* When set to "followInput", encoder metadata will be sourced
    from the DD, DD+, or DolbyE decoder that supplied this audio data. If audio was not supplied
    from one of these streams, then the static metadata settings will be used.
    """


_ClientCreateChannelResponseChannelEncoderSettingsAudioDescriptionsCodecSettingsEac3SettingsTypeDef = TypedDict(
    "_ClientCreateChannelResponseChannelEncoderSettingsAudioDescriptionsCodecSettingsEac3SettingsTypeDef",
    {
        "AttenuationControl": str,
        "Bitrate": float,
        "BitstreamMode": str,
        "CodingMode": str,
        "DcFilter": str,
        "Dialnorm": int,
        "DrcLine": str,
        "DrcRf": str,
        "LfeControl": str,
        "LfeFilter": str,
        "LoRoCenterMixLevel": float,
        "LoRoSurroundMixLevel": float,
        "LtRtCenterMixLevel": float,
        "LtRtSurroundMixLevel": float,
        "MetadataControl": str,
        "PassthroughControl": str,
        "PhaseControl": str,
        "StereoDownmix": str,
        "SurroundExMode": str,
        "SurroundMode": str,
    },
    total=False,
)


class ClientCreateChannelResponseChannelEncoderSettingsAudioDescriptionsCodecSettingsEac3SettingsTypeDef(
    _ClientCreateChannelResponseChannelEncoderSettingsAudioDescriptionsCodecSettingsEac3SettingsTypeDef
):
    """
    Type definition for
    `ClientCreateChannelResponseChannelEncoderSettingsAudioDescriptionsCodecSettings` `Eac3Settings`

    - **AttenuationControl** *(string) --* When set to attenuate3Db, applies a 3 dB attenuation to
    the surround channels. Only used for 3/2 coding mode.

    - **Bitrate** *(float) --* Average bitrate in bits/second. Valid bitrates depend on the coding
    mode.

    - **BitstreamMode** *(string) --* Specifies the bitstream mode (bsmod) for the emitted E-AC-3
    stream. See ATSC A/52-2012 (Annex E) for background on these values.

    - **CodingMode** *(string) --* Dolby Digital Plus coding mode. Determines number of channels.

    - **DcFilter** *(string) --* When set to enabled, activates a DC highpass filter for all input
    channels.

    - **Dialnorm** *(integer) --* Sets the dialnorm for the output. If blank and input audio is
    Dolby Digital Plus, dialnorm will be passed through.

    - **DrcLine** *(string) --* Sets the Dolby dynamic range compression profile.

    - **DrcRf** *(string) --* Sets the profile for heavy Dolby dynamic range compression, ensures
    that the instantaneous signal peaks do not exceed specified levels.

    - **LfeControl** *(string) --* When encoding 3/2 audio, setting to lfe enables the LFE channel

    - **LfeFilter** *(string) --* When set to enabled, applies a 120Hz lowpass filter to the LFE
    channel prior to encoding. Only valid with codingMode32 coding mode.

    - **LoRoCenterMixLevel** *(float) --* Left only/Right only center mix level. Only used for 3/2
    coding mode.

    - **LoRoSurroundMixLevel** *(float) --* Left only/Right only surround mix level. Only used for
    3/2 coding mode.

    - **LtRtCenterMixLevel** *(float) --* Left total/Right total center mix level. Only used for 3/2
    coding mode.

    - **LtRtSurroundMixLevel** *(float) --* Left total/Right total surround mix level. Only used for
    3/2 coding mode.

    - **MetadataControl** *(string) --* When set to followInput, encoder metadata will be sourced
    from the DD, DD+, or DolbyE decoder that supplied this audio data. If audio was not supplied
    from one of these streams, then the static metadata settings will be used.

    - **PassthroughControl** *(string) --* When set to whenPossible, input DD+ audio will be passed
    through if it is present on the input. This detection is dynamic over the life of the transcode.
    Inputs that alternate between DD+ and non-DD+ content will have a consistent DD+ output as the
    system alternates between passthrough and encoding.

    - **PhaseControl** *(string) --* When set to shift90Degrees, applies a 90-degree phase shift to
    the surround channels. Only used for 3/2 coding mode.

    - **StereoDownmix** *(string) --* Stereo downmix preference. Only used for 3/2 coding mode.

    - **SurroundExMode** *(string) --* When encoding 3/2 audio, sets whether an extra center back
    surround channel is matrix encoded into the left and right surround channels.

    - **SurroundMode** *(string) --* When encoding 2/0 audio, sets whether Dolby Surround is matrix
    encoded into the two channels.
    """


_ClientCreateChannelResponseChannelEncoderSettingsAudioDescriptionsCodecSettingsMp2SettingsTypeDef = TypedDict(
    "_ClientCreateChannelResponseChannelEncoderSettingsAudioDescriptionsCodecSettingsMp2SettingsTypeDef",
    {"Bitrate": float, "CodingMode": str, "SampleRate": float},
    total=False,
)


class ClientCreateChannelResponseChannelEncoderSettingsAudioDescriptionsCodecSettingsMp2SettingsTypeDef(
    _ClientCreateChannelResponseChannelEncoderSettingsAudioDescriptionsCodecSettingsMp2SettingsTypeDef
):
    """
    Type definition for
    `ClientCreateChannelResponseChannelEncoderSettingsAudioDescriptionsCodecSettings` `Mp2Settings`

    - **Bitrate** *(float) --* Average bitrate in bits/second.

    - **CodingMode** *(string) --* The MPEG2 Audio coding mode. Valid values are codingMode10 (for
    mono) or codingMode20 (for stereo).

    - **SampleRate** *(float) --* Sample rate in Hz.
    """


_ClientCreateChannelResponseChannelEncoderSettingsAudioDescriptionsCodecSettingsTypeDef = TypedDict(
    "_ClientCreateChannelResponseChannelEncoderSettingsAudioDescriptionsCodecSettingsTypeDef",
    {
        "AacSettings": ClientCreateChannelResponseChannelEncoderSettingsAudioDescriptionsCodecSettingsAacSettingsTypeDef,
        "Ac3Settings": ClientCreateChannelResponseChannelEncoderSettingsAudioDescriptionsCodecSettingsAc3SettingsTypeDef,
        "Eac3Settings": ClientCreateChannelResponseChannelEncoderSettingsAudioDescriptionsCodecSettingsEac3SettingsTypeDef,
        "Mp2Settings": ClientCreateChannelResponseChannelEncoderSettingsAudioDescriptionsCodecSettingsMp2SettingsTypeDef,
        "PassThroughSettings": Dict[str, Any],
    },
    total=False,
)


class ClientCreateChannelResponseChannelEncoderSettingsAudioDescriptionsCodecSettingsTypeDef(
    _ClientCreateChannelResponseChannelEncoderSettingsAudioDescriptionsCodecSettingsTypeDef
):
    """
    Type definition for `ClientCreateChannelResponseChannelEncoderSettingsAudioDescriptions`
    `CodecSettings`

    - **AacSettings** *(dict) --* Aac Settings

      - **Bitrate** *(float) --* Average bitrate in bits/second. Valid values depend on rate control
      mode and profile.

      - **CodingMode** *(string) --* Mono, Stereo, or 5.1 channel layout. Valid values depend on
      rate control mode and profile. The adReceiverMix setting receives a stereo description plus
      control track and emits a mono AAC encode of the description track, with control data emitted
      in the PES header as per ETSI TS 101 154 Annex E.

      - **InputType** *(string) --* Set to "broadcasterMixedAd" when input contains pre-mixed main
      audio + AD (narration) as a stereo pair. The Audio Type field (audioType) will be set to 3,
      which signals to downstream systems that this stream contains "broadcaster mixed AD". Note
      that the input received by the encoder must contain pre-mixed audio; the encoder does not
      perform the mixing. The values in audioTypeControl and audioType (in AudioDescription) are
      ignored when set to broadcasterMixedAd. Leave set to "normal" when input does not contain
      pre-mixed audio + AD.

      - **Profile** *(string) --* AAC Profile.

      - **RateControlMode** *(string) --* Rate Control Mode.

      - **RawFormat** *(string) --* Sets LATM / LOAS AAC output for raw containers.

      - **SampleRate** *(float) --* Sample rate in Hz. Valid values depend on rate control mode and
      profile.

      - **Spec** *(string) --* Use MPEG-2 AAC audio instead of MPEG-4 AAC audio for raw or MPEG-2
      Transport Stream containers.

      - **VbrQuality** *(string) --* VBR Quality Level - Only used if rateControlMode is VBR.

    - **Ac3Settings** *(dict) --* Ac3 Settings

      - **Bitrate** *(float) --* Average bitrate in bits/second. Valid bitrates depend on the coding
      mode.

      - **BitstreamMode** *(string) --* Specifies the bitstream mode (bsmod) for the emitted AC-3
      stream. See ATSC A/52-2012 for background on these values.

      - **CodingMode** *(string) --* Dolby Digital coding mode. Determines number of channels.

      - **Dialnorm** *(integer) --* Sets the dialnorm for the output. If excluded and input audio is
      Dolby Digital, dialnorm will be passed through.

      - **DrcProfile** *(string) --* If set to filmStandard, adds dynamic range compression
      signaling to the output bitstream as defined in the Dolby Digital specification.

      - **LfeFilter** *(string) --* When set to enabled, applies a 120Hz lowpass filter to the LFE
      channel prior to encoding. Only valid in codingMode32Lfe mode.

      - **MetadataControl** *(string) --* When set to "followInput", encoder metadata will be
      sourced from the DD, DD+, or DolbyE decoder that supplied this audio data. If audio was not
      supplied from one of these streams, then the static metadata settings will be used.

    - **Eac3Settings** *(dict) --* Eac3 Settings

      - **AttenuationControl** *(string) --* When set to attenuate3Db, applies a 3 dB attenuation to
      the surround channels. Only used for 3/2 coding mode.

      - **Bitrate** *(float) --* Average bitrate in bits/second. Valid bitrates depend on the coding
      mode.

      - **BitstreamMode** *(string) --* Specifies the bitstream mode (bsmod) for the emitted E-AC-3
      stream. See ATSC A/52-2012 (Annex E) for background on these values.

      - **CodingMode** *(string) --* Dolby Digital Plus coding mode. Determines number of channels.

      - **DcFilter** *(string) --* When set to enabled, activates a DC highpass filter for all input
      channels.

      - **Dialnorm** *(integer) --* Sets the dialnorm for the output. If blank and input audio is
      Dolby Digital Plus, dialnorm will be passed through.

      - **DrcLine** *(string) --* Sets the Dolby dynamic range compression profile.

      - **DrcRf** *(string) --* Sets the profile for heavy Dolby dynamic range compression, ensures
      that the instantaneous signal peaks do not exceed specified levels.

      - **LfeControl** *(string) --* When encoding 3/2 audio, setting to lfe enables the LFE channel

      - **LfeFilter** *(string) --* When set to enabled, applies a 120Hz lowpass filter to the LFE
      channel prior to encoding. Only valid with codingMode32 coding mode.

      - **LoRoCenterMixLevel** *(float) --* Left only/Right only center mix level. Only used for 3/2
      coding mode.

      - **LoRoSurroundMixLevel** *(float) --* Left only/Right only surround mix level. Only used for
      3/2 coding mode.

      - **LtRtCenterMixLevel** *(float) --* Left total/Right total center mix level. Only used for
      3/2 coding mode.

      - **LtRtSurroundMixLevel** *(float) --* Left total/Right total surround mix level. Only used
      for 3/2 coding mode.

      - **MetadataControl** *(string) --* When set to followInput, encoder metadata will be sourced
      from the DD, DD+, or DolbyE decoder that supplied this audio data. If audio was not supplied
      from one of these streams, then the static metadata settings will be used.

      - **PassthroughControl** *(string) --* When set to whenPossible, input DD+ audio will be
      passed through if it is present on the input. This detection is dynamic over the life of the
      transcode. Inputs that alternate between DD+ and non-DD+ content will have a consistent DD+
      output as the system alternates between passthrough and encoding.

      - **PhaseControl** *(string) --* When set to shift90Degrees, applies a 90-degree phase shift
      to the surround channels. Only used for 3/2 coding mode.

      - **StereoDownmix** *(string) --* Stereo downmix preference. Only used for 3/2 coding mode.

      - **SurroundExMode** *(string) --* When encoding 3/2 audio, sets whether an extra center back
      surround channel is matrix encoded into the left and right surround channels.

      - **SurroundMode** *(string) --* When encoding 2/0 audio, sets whether Dolby Surround is
      matrix encoded into the two channels.

    - **Mp2Settings** *(dict) --* Mp2 Settings

      - **Bitrate** *(float) --* Average bitrate in bits/second.

      - **CodingMode** *(string) --* The MPEG2 Audio coding mode. Valid values are codingMode10 (for
      mono) or codingMode20 (for stereo).

      - **SampleRate** *(float) --* Sample rate in Hz.

    - **PassThroughSettings** *(dict) --* Pass Through Settings
    """


_ClientCreateChannelResponseChannelEncoderSettingsAudioDescriptionsRemixSettingsChannelMappingsInputChannelLevelsTypeDef = TypedDict(
    "_ClientCreateChannelResponseChannelEncoderSettingsAudioDescriptionsRemixSettingsChannelMappingsInputChannelLevelsTypeDef",
    {"Gain": int, "InputChannel": int},
    total=False,
)


class ClientCreateChannelResponseChannelEncoderSettingsAudioDescriptionsRemixSettingsChannelMappingsInputChannelLevelsTypeDef(
    _ClientCreateChannelResponseChannelEncoderSettingsAudioDescriptionsRemixSettingsChannelMappingsInputChannelLevelsTypeDef
):
    """
    Type definition for
    `ClientCreateChannelResponseChannelEncoderSettingsAudioDescriptionsRemixSettingsChannelMappings`
    `InputChannelLevels`

    - **Gain** *(integer) --* Remixing value. Units are in dB and acceptable values are within the
    range from -60 (mute) and 6 dB.

    - **InputChannel** *(integer) --* The index of the input channel used as a source.
    """


_ClientCreateChannelResponseChannelEncoderSettingsAudioDescriptionsRemixSettingsChannelMappingsTypeDef = TypedDict(
    "_ClientCreateChannelResponseChannelEncoderSettingsAudioDescriptionsRemixSettingsChannelMappingsTypeDef",
    {
        "InputChannelLevels": List[
            ClientCreateChannelResponseChannelEncoderSettingsAudioDescriptionsRemixSettingsChannelMappingsInputChannelLevelsTypeDef
        ],
        "OutputChannel": int,
    },
    total=False,
)


class ClientCreateChannelResponseChannelEncoderSettingsAudioDescriptionsRemixSettingsChannelMappingsTypeDef(
    _ClientCreateChannelResponseChannelEncoderSettingsAudioDescriptionsRemixSettingsChannelMappingsTypeDef
):
    """
    Type definition for
    `ClientCreateChannelResponseChannelEncoderSettingsAudioDescriptionsRemixSettings`
    `ChannelMappings`

    - **InputChannelLevels** *(list) --* Indices and gain values for each input channel that should
    be remixed into this output channel.

      - *(dict) --* Input Channel Level

        - **Gain** *(integer) --* Remixing value. Units are in dB and acceptable values are within
        the range from -60 (mute) and 6 dB.

        - **InputChannel** *(integer) --* The index of the input channel used as a source.

    - **OutputChannel** *(integer) --* The index of the output channel being produced.
    """


_ClientCreateChannelResponseChannelEncoderSettingsAudioDescriptionsRemixSettingsTypeDef = TypedDict(
    "_ClientCreateChannelResponseChannelEncoderSettingsAudioDescriptionsRemixSettingsTypeDef",
    {
        "ChannelMappings": List[
            ClientCreateChannelResponseChannelEncoderSettingsAudioDescriptionsRemixSettingsChannelMappingsTypeDef
        ],
        "ChannelsIn": int,
        "ChannelsOut": int,
    },
    total=False,
)


class ClientCreateChannelResponseChannelEncoderSettingsAudioDescriptionsRemixSettingsTypeDef(
    _ClientCreateChannelResponseChannelEncoderSettingsAudioDescriptionsRemixSettingsTypeDef
):
    """
    Type definition for `ClientCreateChannelResponseChannelEncoderSettingsAudioDescriptions`
    `RemixSettings`

    - **ChannelMappings** *(list) --* Mapping of input channels to output channels, with appropriate
    gain adjustments.

      - *(dict) --* Audio Channel Mapping

        - **InputChannelLevels** *(list) --* Indices and gain values for each input channel that
        should be remixed into this output channel.

          - *(dict) --* Input Channel Level

            - **Gain** *(integer) --* Remixing value. Units are in dB and acceptable values are
            within the range from -60 (mute) and 6 dB.

            - **InputChannel** *(integer) --* The index of the input channel used as a source.

        - **OutputChannel** *(integer) --* The index of the output channel being produced.

    - **ChannelsIn** *(integer) --* Number of input channels to be used.

    - **ChannelsOut** *(integer) --* Number of output channels to be produced. Valid values: 1, 2,
    4, 6, 8
    """


_ClientCreateChannelResponseChannelEncoderSettingsAudioDescriptionsTypeDef = TypedDict(
    "_ClientCreateChannelResponseChannelEncoderSettingsAudioDescriptionsTypeDef",
    {
        "AudioNormalizationSettings": ClientCreateChannelResponseChannelEncoderSettingsAudioDescriptionsAudioNormalizationSettingsTypeDef,
        "AudioSelectorName": str,
        "AudioType": str,
        "AudioTypeControl": str,
        "CodecSettings": ClientCreateChannelResponseChannelEncoderSettingsAudioDescriptionsCodecSettingsTypeDef,
        "LanguageCode": str,
        "LanguageCodeControl": str,
        "Name": str,
        "RemixSettings": ClientCreateChannelResponseChannelEncoderSettingsAudioDescriptionsRemixSettingsTypeDef,
        "StreamName": str,
    },
    total=False,
)


class ClientCreateChannelResponseChannelEncoderSettingsAudioDescriptionsTypeDef(
    _ClientCreateChannelResponseChannelEncoderSettingsAudioDescriptionsTypeDef
):
    """
    Type definition for `ClientCreateChannelResponseChannelEncoderSettings` `AudioDescriptions`

    - **AudioNormalizationSettings** *(dict) --* Advanced audio normalization settings.

      - **Algorithm** *(string) --* Audio normalization algorithm to use. itu17701 conforms to the
      CALM Act specification, itu17702 conforms to the EBU R-128 specification.

      - **AlgorithmControl** *(string) --* When set to correctAudio the output audio is corrected
      using the chosen algorithm. If set to measureOnly, the audio will be measured but not
      adjusted.

      - **TargetLkfs** *(float) --* Target LKFS(loudness) to adjust volume to. If no value is
      entered, a default value will be used according to the chosen algorithm. The CALM Act (1770-1)
      recommends a target of -24 LKFS. The EBU R-128 specification (1770-2) recommends a target of
      -23 LKFS.

    - **AudioSelectorName** *(string) --* The name of the AudioSelector used as the source for this
    AudioDescription.

    - **AudioType** *(string) --* Applies only if audioTypeControl is useConfigured. The values for
    audioType are defined in ISO-IEC 13818-1.

    - **AudioTypeControl** *(string) --* Determines how audio type is determined. followInput: If
    the input contains an ISO 639 audioType, then that value is passed through to the output. If the
    input contains no ISO 639 audioType, the value in Audio Type is included in the output.
    useConfigured: The value in Audio Type is included in the output. Note that this field and
    audioType are both ignored if inputType is broadcasterMixedAd.

    - **CodecSettings** *(dict) --* Audio codec settings.

      - **AacSettings** *(dict) --* Aac Settings

        - **Bitrate** *(float) --* Average bitrate in bits/second. Valid values depend on rate
        control mode and profile.

        - **CodingMode** *(string) --* Mono, Stereo, or 5.1 channel layout. Valid values depend on
        rate control mode and profile. The adReceiverMix setting receives a stereo description plus
        control track and emits a mono AAC encode of the description track, with control data
        emitted in the PES header as per ETSI TS 101 154 Annex E.

        - **InputType** *(string) --* Set to "broadcasterMixedAd" when input contains pre-mixed main
        audio + AD (narration) as a stereo pair. The Audio Type field (audioType) will be set to 3,
        which signals to downstream systems that this stream contains "broadcaster mixed AD". Note
        that the input received by the encoder must contain pre-mixed audio; the encoder does not
        perform the mixing. The values in audioTypeControl and audioType (in AudioDescription) are
        ignored when set to broadcasterMixedAd. Leave set to "normal" when input does not contain
        pre-mixed audio + AD.

        - **Profile** *(string) --* AAC Profile.

        - **RateControlMode** *(string) --* Rate Control Mode.

        - **RawFormat** *(string) --* Sets LATM / LOAS AAC output for raw containers.

        - **SampleRate** *(float) --* Sample rate in Hz. Valid values depend on rate control mode
        and profile.

        - **Spec** *(string) --* Use MPEG-2 AAC audio instead of MPEG-4 AAC audio for raw or MPEG-2
        Transport Stream containers.

        - **VbrQuality** *(string) --* VBR Quality Level - Only used if rateControlMode is VBR.

      - **Ac3Settings** *(dict) --* Ac3 Settings

        - **Bitrate** *(float) --* Average bitrate in bits/second. Valid bitrates depend on the
        coding mode.

        - **BitstreamMode** *(string) --* Specifies the bitstream mode (bsmod) for the emitted AC-3
        stream. See ATSC A/52-2012 for background on these values.

        - **CodingMode** *(string) --* Dolby Digital coding mode. Determines number of channels.

        - **Dialnorm** *(integer) --* Sets the dialnorm for the output. If excluded and input audio
        is Dolby Digital, dialnorm will be passed through.

        - **DrcProfile** *(string) --* If set to filmStandard, adds dynamic range compression
        signaling to the output bitstream as defined in the Dolby Digital specification.

        - **LfeFilter** *(string) --* When set to enabled, applies a 120Hz lowpass filter to the LFE
        channel prior to encoding. Only valid in codingMode32Lfe mode.

        - **MetadataControl** *(string) --* When set to "followInput", encoder metadata will be
        sourced from the DD, DD+, or DolbyE decoder that supplied this audio data. If audio was not
        supplied from one of these streams, then the static metadata settings will be used.

      - **Eac3Settings** *(dict) --* Eac3 Settings

        - **AttenuationControl** *(string) --* When set to attenuate3Db, applies a 3 dB attenuation
        to the surround channels. Only used for 3/2 coding mode.

        - **Bitrate** *(float) --* Average bitrate in bits/second. Valid bitrates depend on the
        coding mode.

        - **BitstreamMode** *(string) --* Specifies the bitstream mode (bsmod) for the emitted
        E-AC-3 stream. See ATSC A/52-2012 (Annex E) for background on these values.

        - **CodingMode** *(string) --* Dolby Digital Plus coding mode. Determines number of
        channels.

        - **DcFilter** *(string) --* When set to enabled, activates a DC highpass filter for all
        input channels.

        - **Dialnorm** *(integer) --* Sets the dialnorm for the output. If blank and input audio is
        Dolby Digital Plus, dialnorm will be passed through.

        - **DrcLine** *(string) --* Sets the Dolby dynamic range compression profile.

        - **DrcRf** *(string) --* Sets the profile for heavy Dolby dynamic range compression,
        ensures that the instantaneous signal peaks do not exceed specified levels.

        - **LfeControl** *(string) --* When encoding 3/2 audio, setting to lfe enables the LFE
        channel

        - **LfeFilter** *(string) --* When set to enabled, applies a 120Hz lowpass filter to the LFE
        channel prior to encoding. Only valid with codingMode32 coding mode.

        - **LoRoCenterMixLevel** *(float) --* Left only/Right only center mix level. Only used for
        3/2 coding mode.

        - **LoRoSurroundMixLevel** *(float) --* Left only/Right only surround mix level. Only used
        for 3/2 coding mode.

        - **LtRtCenterMixLevel** *(float) --* Left total/Right total center mix level. Only used for
        3/2 coding mode.

        - **LtRtSurroundMixLevel** *(float) --* Left total/Right total surround mix level. Only used
        for 3/2 coding mode.

        - **MetadataControl** *(string) --* When set to followInput, encoder metadata will be
        sourced from the DD, DD+, or DolbyE decoder that supplied this audio data. If audio was not
        supplied from one of these streams, then the static metadata settings will be used.

        - **PassthroughControl** *(string) --* When set to whenPossible, input DD+ audio will be
        passed through if it is present on the input. This detection is dynamic over the life of the
        transcode. Inputs that alternate between DD+ and non-DD+ content will have a consistent DD+
        output as the system alternates between passthrough and encoding.

        - **PhaseControl** *(string) --* When set to shift90Degrees, applies a 90-degree phase shift
        to the surround channels. Only used for 3/2 coding mode.

        - **StereoDownmix** *(string) --* Stereo downmix preference. Only used for 3/2 coding mode.

        - **SurroundExMode** *(string) --* When encoding 3/2 audio, sets whether an extra center
        back surround channel is matrix encoded into the left and right surround channels.

        - **SurroundMode** *(string) --* When encoding 2/0 audio, sets whether Dolby Surround is
        matrix encoded into the two channels.

      - **Mp2Settings** *(dict) --* Mp2 Settings

        - **Bitrate** *(float) --* Average bitrate in bits/second.

        - **CodingMode** *(string) --* The MPEG2 Audio coding mode. Valid values are codingMode10
        (for mono) or codingMode20 (for stereo).

        - **SampleRate** *(float) --* Sample rate in Hz.

      - **PassThroughSettings** *(dict) --* Pass Through Settings

    - **LanguageCode** *(string) --* Indicates the language of the audio output track. Only used if
    languageControlMode is useConfigured, or there is no ISO 639 language code specified in the
    input.

    - **LanguageCodeControl** *(string) --* Choosing followInput will cause the ISO 639 language
    code of the output to follow the ISO 639 language code of the input. The languageCode will be
    used when useConfigured is set, or when followInput is selected but there is no ISO 639 language
    code specified by the input.

    - **Name** *(string) --* The name of this AudioDescription. Outputs will use this name to
    uniquely identify this AudioDescription. Description names should be unique within this Live
    Event.

    - **RemixSettings** *(dict) --* Settings that control how input audio channels are remixed into
    the output audio channels.

      - **ChannelMappings** *(list) --* Mapping of input channels to output channels, with
      appropriate gain adjustments.

        - *(dict) --* Audio Channel Mapping

          - **InputChannelLevels** *(list) --* Indices and gain values for each input channel that
          should be remixed into this output channel.

            - *(dict) --* Input Channel Level

              - **Gain** *(integer) --* Remixing value. Units are in dB and acceptable values are
              within the range from -60 (mute) and 6 dB.

              - **InputChannel** *(integer) --* The index of the input channel used as a source.

          - **OutputChannel** *(integer) --* The index of the output channel being produced.

      - **ChannelsIn** *(integer) --* Number of input channels to be used.

      - **ChannelsOut** *(integer) --* Number of output channels to be produced. Valid values: 1, 2,
      4, 6, 8

    - **StreamName** *(string) --* Used for MS Smooth and Apple HLS outputs. Indicates the name
    displayed by the player (eg. English, or Director Commentary).
    """


_ClientCreateChannelResponseChannelEncoderSettingsAvailBlankingAvailBlankingImageTypeDef = TypedDict(
    "_ClientCreateChannelResponseChannelEncoderSettingsAvailBlankingAvailBlankingImageTypeDef",
    {"PasswordParam": str, "Uri": str, "Username": str},
    total=False,
)


class ClientCreateChannelResponseChannelEncoderSettingsAvailBlankingAvailBlankingImageTypeDef(
    _ClientCreateChannelResponseChannelEncoderSettingsAvailBlankingAvailBlankingImageTypeDef
):
    """
    Type definition for `ClientCreateChannelResponseChannelEncoderSettingsAvailBlanking`
    `AvailBlankingImage`

    - **PasswordParam** *(string) --* key used to extract the password from EC2 Parameter store

    - **Uri** *(string) --* Uniform Resource Identifier - This should be a path to a file accessible
    to the Live system (eg. a http:// URI) depending on the output type. For example, a RTMP
    destination should have a uri simliar to: "rtmp://fmsserver/live".

    - **Username** *(string) --* Documentation update needed
    """


_ClientCreateChannelResponseChannelEncoderSettingsAvailBlankingTypeDef = TypedDict(
    "_ClientCreateChannelResponseChannelEncoderSettingsAvailBlankingTypeDef",
    {
        "AvailBlankingImage": ClientCreateChannelResponseChannelEncoderSettingsAvailBlankingAvailBlankingImageTypeDef,
        "State": str,
    },
    total=False,
)


class ClientCreateChannelResponseChannelEncoderSettingsAvailBlankingTypeDef(
    _ClientCreateChannelResponseChannelEncoderSettingsAvailBlankingTypeDef
):
    """
    Type definition for `ClientCreateChannelResponseChannelEncoderSettings` `AvailBlanking`

    - **AvailBlankingImage** *(dict) --* Blanking image to be used. Leave empty for solid black.
    Only bmp and png images are supported.

      - **PasswordParam** *(string) --* key used to extract the password from EC2 Parameter store

      - **Uri** *(string) --* Uniform Resource Identifier - This should be a path to a file
      accessible to the Live system (eg. a http:// URI) depending on the output type. For example, a
      RTMP destination should have a uri simliar to: "rtmp://fmsserver/live".

      - **Username** *(string) --* Documentation update needed

    - **State** *(string) --* When set to enabled, causes video, audio and captions to be blanked
    when insertion metadata is added.
    """


_ClientCreateChannelResponseChannelEncoderSettingsAvailConfigurationAvailSettingsScte35SpliceInsertTypeDef = TypedDict(
    "_ClientCreateChannelResponseChannelEncoderSettingsAvailConfigurationAvailSettingsScte35SpliceInsertTypeDef",
    {"AdAvailOffset": int, "NoRegionalBlackoutFlag": str, "WebDeliveryAllowedFlag": str},
    total=False,
)


class ClientCreateChannelResponseChannelEncoderSettingsAvailConfigurationAvailSettingsScte35SpliceInsertTypeDef(
    _ClientCreateChannelResponseChannelEncoderSettingsAvailConfigurationAvailSettingsScte35SpliceInsertTypeDef
):
    """
    Type definition for
    `ClientCreateChannelResponseChannelEncoderSettingsAvailConfigurationAvailSettings`
    `Scte35SpliceInsert`

    - **AdAvailOffset** *(integer) --* When specified, this offset (in milliseconds) is added to the
    input Ad Avail PTS time. This only applies to embedded SCTE 104/35 messages and does not apply
    to OOB messages.

    - **NoRegionalBlackoutFlag** *(string) --* When set to ignore, Segment Descriptors with
    noRegionalBlackoutFlag set to 0 will no longer trigger blackouts or Ad Avail slates

    - **WebDeliveryAllowedFlag** *(string) --* When set to ignore, Segment Descriptors with
    webDeliveryAllowedFlag set to 0 will no longer trigger blackouts or Ad Avail slates
    """


_ClientCreateChannelResponseChannelEncoderSettingsAvailConfigurationAvailSettingsScte35TimeSignalAposTypeDef = TypedDict(
    "_ClientCreateChannelResponseChannelEncoderSettingsAvailConfigurationAvailSettingsScte35TimeSignalAposTypeDef",
    {"AdAvailOffset": int, "NoRegionalBlackoutFlag": str, "WebDeliveryAllowedFlag": str},
    total=False,
)


class ClientCreateChannelResponseChannelEncoderSettingsAvailConfigurationAvailSettingsScte35TimeSignalAposTypeDef(
    _ClientCreateChannelResponseChannelEncoderSettingsAvailConfigurationAvailSettingsScte35TimeSignalAposTypeDef
):
    """
    Type definition for
    `ClientCreateChannelResponseChannelEncoderSettingsAvailConfigurationAvailSettings`
    `Scte35TimeSignalApos`

    - **AdAvailOffset** *(integer) --* When specified, this offset (in milliseconds) is added to the
    input Ad Avail PTS time. This only applies to embedded SCTE 104/35 messages and does not apply
    to OOB messages.

    - **NoRegionalBlackoutFlag** *(string) --* When set to ignore, Segment Descriptors with
    noRegionalBlackoutFlag set to 0 will no longer trigger blackouts or Ad Avail slates

    - **WebDeliveryAllowedFlag** *(string) --* When set to ignore, Segment Descriptors with
    webDeliveryAllowedFlag set to 0 will no longer trigger blackouts or Ad Avail slates
    """


_ClientCreateChannelResponseChannelEncoderSettingsAvailConfigurationAvailSettingsTypeDef = TypedDict(
    "_ClientCreateChannelResponseChannelEncoderSettingsAvailConfigurationAvailSettingsTypeDef",
    {
        "Scte35SpliceInsert": ClientCreateChannelResponseChannelEncoderSettingsAvailConfigurationAvailSettingsScte35SpliceInsertTypeDef,
        "Scte35TimeSignalApos": ClientCreateChannelResponseChannelEncoderSettingsAvailConfigurationAvailSettingsScte35TimeSignalAposTypeDef,
    },
    total=False,
)


class ClientCreateChannelResponseChannelEncoderSettingsAvailConfigurationAvailSettingsTypeDef(
    _ClientCreateChannelResponseChannelEncoderSettingsAvailConfigurationAvailSettingsTypeDef
):
    """
    Type definition for `ClientCreateChannelResponseChannelEncoderSettingsAvailConfiguration`
    `AvailSettings`

    - **Scte35SpliceInsert** *(dict) --* Scte35 Splice Insert

      - **AdAvailOffset** *(integer) --* When specified, this offset (in milliseconds) is added to
      the input Ad Avail PTS time. This only applies to embedded SCTE 104/35 messages and does not
      apply to OOB messages.

      - **NoRegionalBlackoutFlag** *(string) --* When set to ignore, Segment Descriptors with
      noRegionalBlackoutFlag set to 0 will no longer trigger blackouts or Ad Avail slates

      - **WebDeliveryAllowedFlag** *(string) --* When set to ignore, Segment Descriptors with
      webDeliveryAllowedFlag set to 0 will no longer trigger blackouts or Ad Avail slates

    - **Scte35TimeSignalApos** *(dict) --* Scte35 Time Signal Apos

      - **AdAvailOffset** *(integer) --* When specified, this offset (in milliseconds) is added to
      the input Ad Avail PTS time. This only applies to embedded SCTE 104/35 messages and does not
      apply to OOB messages.

      - **NoRegionalBlackoutFlag** *(string) --* When set to ignore, Segment Descriptors with
      noRegionalBlackoutFlag set to 0 will no longer trigger blackouts or Ad Avail slates

      - **WebDeliveryAllowedFlag** *(string) --* When set to ignore, Segment Descriptors with
      webDeliveryAllowedFlag set to 0 will no longer trigger blackouts or Ad Avail slates
    """


_ClientCreateChannelResponseChannelEncoderSettingsAvailConfigurationTypeDef = TypedDict(
    "_ClientCreateChannelResponseChannelEncoderSettingsAvailConfigurationTypeDef",
    {
        "AvailSettings": ClientCreateChannelResponseChannelEncoderSettingsAvailConfigurationAvailSettingsTypeDef
    },
    total=False,
)


class ClientCreateChannelResponseChannelEncoderSettingsAvailConfigurationTypeDef(
    _ClientCreateChannelResponseChannelEncoderSettingsAvailConfigurationTypeDef
):
    """
    Type definition for `ClientCreateChannelResponseChannelEncoderSettings` `AvailConfiguration`

    - **AvailSettings** *(dict) --* Ad avail settings.

      - **Scte35SpliceInsert** *(dict) --* Scte35 Splice Insert

        - **AdAvailOffset** *(integer) --* When specified, this offset (in milliseconds) is added to
        the input Ad Avail PTS time. This only applies to embedded SCTE 104/35 messages and does not
        apply to OOB messages.

        - **NoRegionalBlackoutFlag** *(string) --* When set to ignore, Segment Descriptors with
        noRegionalBlackoutFlag set to 0 will no longer trigger blackouts or Ad Avail slates

        - **WebDeliveryAllowedFlag** *(string) --* When set to ignore, Segment Descriptors with
        webDeliveryAllowedFlag set to 0 will no longer trigger blackouts or Ad Avail slates

      - **Scte35TimeSignalApos** *(dict) --* Scte35 Time Signal Apos

        - **AdAvailOffset** *(integer) --* When specified, this offset (in milliseconds) is added to
        the input Ad Avail PTS time. This only applies to embedded SCTE 104/35 messages and does not
        apply to OOB messages.

        - **NoRegionalBlackoutFlag** *(string) --* When set to ignore, Segment Descriptors with
        noRegionalBlackoutFlag set to 0 will no longer trigger blackouts or Ad Avail slates

        - **WebDeliveryAllowedFlag** *(string) --* When set to ignore, Segment Descriptors with
        webDeliveryAllowedFlag set to 0 will no longer trigger blackouts or Ad Avail slates
    """


_ClientCreateChannelResponseChannelEncoderSettingsBlackoutSlateBlackoutSlateImageTypeDef = TypedDict(
    "_ClientCreateChannelResponseChannelEncoderSettingsBlackoutSlateBlackoutSlateImageTypeDef",
    {"PasswordParam": str, "Uri": str, "Username": str},
    total=False,
)


class ClientCreateChannelResponseChannelEncoderSettingsBlackoutSlateBlackoutSlateImageTypeDef(
    _ClientCreateChannelResponseChannelEncoderSettingsBlackoutSlateBlackoutSlateImageTypeDef
):
    """
    Type definition for `ClientCreateChannelResponseChannelEncoderSettingsBlackoutSlate`
    `BlackoutSlateImage`

    - **PasswordParam** *(string) --* key used to extract the password from EC2 Parameter store

    - **Uri** *(string) --* Uniform Resource Identifier - This should be a path to a file accessible
    to the Live system (eg. a http:// URI) depending on the output type. For example, a RTMP
    destination should have a uri simliar to: "rtmp://fmsserver/live".

    - **Username** *(string) --* Documentation update needed
    """


_ClientCreateChannelResponseChannelEncoderSettingsBlackoutSlateNetworkEndBlackoutImageTypeDef = TypedDict(
    "_ClientCreateChannelResponseChannelEncoderSettingsBlackoutSlateNetworkEndBlackoutImageTypeDef",
    {"PasswordParam": str, "Uri": str, "Username": str},
    total=False,
)


class ClientCreateChannelResponseChannelEncoderSettingsBlackoutSlateNetworkEndBlackoutImageTypeDef(
    _ClientCreateChannelResponseChannelEncoderSettingsBlackoutSlateNetworkEndBlackoutImageTypeDef
):
    """
    Type definition for `ClientCreateChannelResponseChannelEncoderSettingsBlackoutSlate`
    `NetworkEndBlackoutImage`

    - **PasswordParam** *(string) --* key used to extract the password from EC2 Parameter store

    - **Uri** *(string) --* Uniform Resource Identifier - This should be a path to a file accessible
    to the Live system (eg. a http:// URI) depending on the output type. For example, a RTMP
    destination should have a uri simliar to: "rtmp://fmsserver/live".

    - **Username** *(string) --* Documentation update needed
    """


_ClientCreateChannelResponseChannelEncoderSettingsBlackoutSlateTypeDef = TypedDict(
    "_ClientCreateChannelResponseChannelEncoderSettingsBlackoutSlateTypeDef",
    {
        "BlackoutSlateImage": ClientCreateChannelResponseChannelEncoderSettingsBlackoutSlateBlackoutSlateImageTypeDef,
        "NetworkEndBlackout": str,
        "NetworkEndBlackoutImage": ClientCreateChannelResponseChannelEncoderSettingsBlackoutSlateNetworkEndBlackoutImageTypeDef,
        "NetworkId": str,
        "State": str,
    },
    total=False,
)


class ClientCreateChannelResponseChannelEncoderSettingsBlackoutSlateTypeDef(
    _ClientCreateChannelResponseChannelEncoderSettingsBlackoutSlateTypeDef
):
    """
    Type definition for `ClientCreateChannelResponseChannelEncoderSettings` `BlackoutSlate`

    - **BlackoutSlateImage** *(dict) --* Blackout slate image to be used. Leave empty for solid
    black. Only bmp and png images are supported.

      - **PasswordParam** *(string) --* key used to extract the password from EC2 Parameter store

      - **Uri** *(string) --* Uniform Resource Identifier - This should be a path to a file
      accessible to the Live system (eg. a http:// URI) depending on the output type. For example, a
      RTMP destination should have a uri simliar to: "rtmp://fmsserver/live".

      - **Username** *(string) --* Documentation update needed

    - **NetworkEndBlackout** *(string) --* Setting to enabled causes the encoder to blackout the
    video, audio, and captions, and raise the "Network Blackout Image" slate when an SCTE104/35
    Network End Segmentation Descriptor is encountered. The blackout will be lifted when the Network
    Start Segmentation Descriptor is encountered. The Network End and Network Start descriptors must
    contain a network ID that matches the value entered in "Network ID".

    - **NetworkEndBlackoutImage** *(dict) --* Path to local file to use as Network End Blackout
    image. Image will be scaled to fill the entire output raster.

      - **PasswordParam** *(string) --* key used to extract the password from EC2 Parameter store

      - **Uri** *(string) --* Uniform Resource Identifier - This should be a path to a file
      accessible to the Live system (eg. a http:// URI) depending on the output type. For example, a
      RTMP destination should have a uri simliar to: "rtmp://fmsserver/live".

      - **Username** *(string) --* Documentation update needed

    - **NetworkId** *(string) --* Provides Network ID that matches EIDR ID format (e.g.,
    "10.XXXX/XXXX-XXXX-XXXX-XXXX-XXXX-C").

    - **State** *(string) --* When set to enabled, causes video, audio and captions to be blanked
    when indicated by program metadata.
    """


_ClientCreateChannelResponseChannelEncoderSettingsCaptionDescriptionsDestinationSettingsBurnInDestinationSettingsFontTypeDef = TypedDict(
    "_ClientCreateChannelResponseChannelEncoderSettingsCaptionDescriptionsDestinationSettingsBurnInDestinationSettingsFontTypeDef",
    {"PasswordParam": str, "Uri": str, "Username": str},
    total=False,
)


class ClientCreateChannelResponseChannelEncoderSettingsCaptionDescriptionsDestinationSettingsBurnInDestinationSettingsFontTypeDef(
    _ClientCreateChannelResponseChannelEncoderSettingsCaptionDescriptionsDestinationSettingsBurnInDestinationSettingsFontTypeDef
):
    """
    Type definition for
    `ClientCreateChannelResponseChannelEncoderSettingsCaptionDescriptionsDestinationSettingsBurnInDestinationSettings`
    `Font`

    - **PasswordParam** *(string) --* key used to extract the password from EC2 Parameter store

    - **Uri** *(string) --* Uniform Resource Identifier - This should be a path to a file accessible
    to the Live system (eg. a http:// URI) depending on the output type. For example, a RTMP
    destination should have a uri simliar to: "rtmp://fmsserver/live".

    - **Username** *(string) --* Documentation update needed
    """


_ClientCreateChannelResponseChannelEncoderSettingsCaptionDescriptionsDestinationSettingsBurnInDestinationSettingsTypeDef = TypedDict(
    "_ClientCreateChannelResponseChannelEncoderSettingsCaptionDescriptionsDestinationSettingsBurnInDestinationSettingsTypeDef",
    {
        "Alignment": str,
        "BackgroundColor": str,
        "BackgroundOpacity": int,
        "Font": ClientCreateChannelResponseChannelEncoderSettingsCaptionDescriptionsDestinationSettingsBurnInDestinationSettingsFontTypeDef,
        "FontColor": str,
        "FontOpacity": int,
        "FontResolution": int,
        "FontSize": str,
        "OutlineColor": str,
        "OutlineSize": int,
        "ShadowColor": str,
        "ShadowOpacity": int,
        "ShadowXOffset": int,
        "ShadowYOffset": int,
        "TeletextGridControl": str,
        "XPosition": int,
        "YPosition": int,
    },
    total=False,
)


class ClientCreateChannelResponseChannelEncoderSettingsCaptionDescriptionsDestinationSettingsBurnInDestinationSettingsTypeDef(
    _ClientCreateChannelResponseChannelEncoderSettingsCaptionDescriptionsDestinationSettingsBurnInDestinationSettingsTypeDef
):
    """
    Type definition for
    `ClientCreateChannelResponseChannelEncoderSettingsCaptionDescriptionsDestinationSettings`
    `BurnInDestinationSettings`

    - **Alignment** *(string) --* If no explicit xPosition or yPosition is provided, setting
    alignment to centered will place the captions at the bottom center of the output. Similarly,
    setting a left alignment will align captions to the bottom left of the output. If x and y
    positions are given in conjunction with the alignment parameter, the font will be justified
    (either left or centered) relative to those coordinates. Selecting "smart" justification will
    left-justify live subtitles and center-justify pre-recorded subtitles. All burn-in and DVB-Sub
    font settings must match.

    - **BackgroundColor** *(string) --* Specifies the color of the rectangle behind the captions.
    All burn-in and DVB-Sub font settings must match.

    - **BackgroundOpacity** *(integer) --* Specifies the opacity of the background rectangle. 255 is
    opaque; 0 is transparent. Leaving this parameter out is equivalent to setting it to 0
    (transparent). All burn-in and DVB-Sub font settings must match.

    - **Font** *(dict) --* External font file used for caption burn-in. File extension must be 'ttf'
    or 'tte'. Although the user can select output fonts for many different types of input captions,
    embedded, STL and teletext sources use a strict grid system. Using external fonts with these
    caption sources could cause unexpected display of proportional fonts. All burn-in and DVB-Sub
    font settings must match.

      - **PasswordParam** *(string) --* key used to extract the password from EC2 Parameter store

      - **Uri** *(string) --* Uniform Resource Identifier - This should be a path to a file
      accessible to the Live system (eg. a http:// URI) depending on the output type. For example, a
      RTMP destination should have a uri simliar to: "rtmp://fmsserver/live".

      - **Username** *(string) --* Documentation update needed

    - **FontColor** *(string) --* Specifies the color of the burned-in captions. This option is not
    valid for source captions that are STL, 608/embedded or teletext. These source settings are
    already pre-defined by the caption stream. All burn-in and DVB-Sub font settings must match.

    - **FontOpacity** *(integer) --* Specifies the opacity of the burned-in captions. 255 is opaque;
    0 is transparent. All burn-in and DVB-Sub font settings must match.

    - **FontResolution** *(integer) --* Font resolution in DPI (dots per inch); default is 96 dpi.
    All burn-in and DVB-Sub font settings must match.

    - **FontSize** *(string) --* When set to 'auto' fontSize will scale depending on the size of the
    output. Giving a positive integer will specify the exact font size in points. All burn-in and
    DVB-Sub font settings must match.

    - **OutlineColor** *(string) --* Specifies font outline color. This option is not valid for
    source captions that are either 608/embedded or teletext. These source settings are already
    pre-defined by the caption stream. All burn-in and DVB-Sub font settings must match.

    - **OutlineSize** *(integer) --* Specifies font outline size in pixels. This option is not valid
    for source captions that are either 608/embedded or teletext. These source settings are already
    pre-defined by the caption stream. All burn-in and DVB-Sub font settings must match.

    - **ShadowColor** *(string) --* Specifies the color of the shadow cast by the captions. All
    burn-in and DVB-Sub font settings must match.

    - **ShadowOpacity** *(integer) --* Specifies the opacity of the shadow. 255 is opaque; 0 is
    transparent. Leaving this parameter out is equivalent to setting it to 0 (transparent). All
    burn-in and DVB-Sub font settings must match.

    - **ShadowXOffset** *(integer) --* Specifies the horizontal offset of the shadow relative to the
    captions in pixels. A value of -2 would result in a shadow offset 2 pixels to the left. All
    burn-in and DVB-Sub font settings must match.

    - **ShadowYOffset** *(integer) --* Specifies the vertical offset of the shadow relative to the
    captions in pixels. A value of -2 would result in a shadow offset 2 pixels above the text. All
    burn-in and DVB-Sub font settings must match.

    - **TeletextGridControl** *(string) --* Controls whether a fixed grid size will be used to
    generate the output subtitles bitmap. Only applicable for Teletext inputs and DVB-Sub/Burn-in
    outputs.

    - **XPosition** *(integer) --* Specifies the horizontal position of the caption relative to the
    left side of the output in pixels. A value of 10 would result in the captions starting 10 pixels
    from the left of the output. If no explicit xPosition is provided, the horizontal caption
    position will be determined by the alignment parameter. All burn-in and DVB-Sub font settings
    must match.

    - **YPosition** *(integer) --* Specifies the vertical position of the caption relative to the
    top of the output in pixels. A value of 10 would result in the captions starting 10 pixels from
    the top of the output. If no explicit yPosition is provided, the caption will be positioned
    towards the bottom of the output. All burn-in and DVB-Sub font settings must match.
    """


_ClientCreateChannelResponseChannelEncoderSettingsCaptionDescriptionsDestinationSettingsDvbSubDestinationSettingsFontTypeDef = TypedDict(
    "_ClientCreateChannelResponseChannelEncoderSettingsCaptionDescriptionsDestinationSettingsDvbSubDestinationSettingsFontTypeDef",
    {"PasswordParam": str, "Uri": str, "Username": str},
    total=False,
)


class ClientCreateChannelResponseChannelEncoderSettingsCaptionDescriptionsDestinationSettingsDvbSubDestinationSettingsFontTypeDef(
    _ClientCreateChannelResponseChannelEncoderSettingsCaptionDescriptionsDestinationSettingsDvbSubDestinationSettingsFontTypeDef
):
    """
    Type definition for
    `ClientCreateChannelResponseChannelEncoderSettingsCaptionDescriptionsDestinationSettingsDvbSubDestinationSettings`
    `Font`

    - **PasswordParam** *(string) --* key used to extract the password from EC2 Parameter store

    - **Uri** *(string) --* Uniform Resource Identifier - This should be a path to a file accessible
    to the Live system (eg. a http:// URI) depending on the output type. For example, a RTMP
    destination should have a uri simliar to: "rtmp://fmsserver/live".

    - **Username** *(string) --* Documentation update needed
    """


_ClientCreateChannelResponseChannelEncoderSettingsCaptionDescriptionsDestinationSettingsDvbSubDestinationSettingsTypeDef = TypedDict(
    "_ClientCreateChannelResponseChannelEncoderSettingsCaptionDescriptionsDestinationSettingsDvbSubDestinationSettingsTypeDef",
    {
        "Alignment": str,
        "BackgroundColor": str,
        "BackgroundOpacity": int,
        "Font": ClientCreateChannelResponseChannelEncoderSettingsCaptionDescriptionsDestinationSettingsDvbSubDestinationSettingsFontTypeDef,
        "FontColor": str,
        "FontOpacity": int,
        "FontResolution": int,
        "FontSize": str,
        "OutlineColor": str,
        "OutlineSize": int,
        "ShadowColor": str,
        "ShadowOpacity": int,
        "ShadowXOffset": int,
        "ShadowYOffset": int,
        "TeletextGridControl": str,
        "XPosition": int,
        "YPosition": int,
    },
    total=False,
)


class ClientCreateChannelResponseChannelEncoderSettingsCaptionDescriptionsDestinationSettingsDvbSubDestinationSettingsTypeDef(
    _ClientCreateChannelResponseChannelEncoderSettingsCaptionDescriptionsDestinationSettingsDvbSubDestinationSettingsTypeDef
):
    """
    Type definition for
    `ClientCreateChannelResponseChannelEncoderSettingsCaptionDescriptionsDestinationSettings`
    `DvbSubDestinationSettings`

    - **Alignment** *(string) --* If no explicit xPosition or yPosition is provided, setting
    alignment to centered will place the captions at the bottom center of the output. Similarly,
    setting a left alignment will align captions to the bottom left of the output. If x and y
    positions are given in conjunction with the alignment parameter, the font will be justified
    (either left or centered) relative to those coordinates. Selecting "smart" justification will
    left-justify live subtitles and center-justify pre-recorded subtitles. This option is not valid
    for source captions that are STL or 608/embedded. These source settings are already pre-defined
    by the caption stream. All burn-in and DVB-Sub font settings must match.

    - **BackgroundColor** *(string) --* Specifies the color of the rectangle behind the captions.
    All burn-in and DVB-Sub font settings must match.

    - **BackgroundOpacity** *(integer) --* Specifies the opacity of the background rectangle. 255 is
    opaque; 0 is transparent. Leaving this parameter blank is equivalent to setting it to 0
    (transparent). All burn-in and DVB-Sub font settings must match.

    - **Font** *(dict) --* External font file used for caption burn-in. File extension must be 'ttf'
    or 'tte'. Although the user can select output fonts for many different types of input captions,
    embedded, STL and teletext sources use a strict grid system. Using external fonts with these
    caption sources could cause unexpected display of proportional fonts. All burn-in and DVB-Sub
    font settings must match.

      - **PasswordParam** *(string) --* key used to extract the password from EC2 Parameter store

      - **Uri** *(string) --* Uniform Resource Identifier - This should be a path to a file
      accessible to the Live system (eg. a http:// URI) depending on the output type. For example, a
      RTMP destination should have a uri simliar to: "rtmp://fmsserver/live".

      - **Username** *(string) --* Documentation update needed

    - **FontColor** *(string) --* Specifies the color of the burned-in captions. This option is not
    valid for source captions that are STL, 608/embedded or teletext. These source settings are
    already pre-defined by the caption stream. All burn-in and DVB-Sub font settings must match.

    - **FontOpacity** *(integer) --* Specifies the opacity of the burned-in captions. 255 is opaque;
    0 is transparent. All burn-in and DVB-Sub font settings must match.

    - **FontResolution** *(integer) --* Font resolution in DPI (dots per inch); default is 96 dpi.
    All burn-in and DVB-Sub font settings must match.

    - **FontSize** *(string) --* When set to auto fontSize will scale depending on the size of the
    output. Giving a positive integer will specify the exact font size in points. All burn-in and
    DVB-Sub font settings must match.

    - **OutlineColor** *(string) --* Specifies font outline color. This option is not valid for
    source captions that are either 608/embedded or teletext. These source settings are already
    pre-defined by the caption stream. All burn-in and DVB-Sub font settings must match.

    - **OutlineSize** *(integer) --* Specifies font outline size in pixels. This option is not valid
    for source captions that are either 608/embedded or teletext. These source settings are already
    pre-defined by the caption stream. All burn-in and DVB-Sub font settings must match.

    - **ShadowColor** *(string) --* Specifies the color of the shadow cast by the captions. All
    burn-in and DVB-Sub font settings must match.

    - **ShadowOpacity** *(integer) --* Specifies the opacity of the shadow. 255 is opaque; 0 is
    transparent. Leaving this parameter blank is equivalent to setting it to 0 (transparent). All
    burn-in and DVB-Sub font settings must match.

    - **ShadowXOffset** *(integer) --* Specifies the horizontal offset of the shadow relative to the
    captions in pixels. A value of -2 would result in a shadow offset 2 pixels to the left. All
    burn-in and DVB-Sub font settings must match.

    - **ShadowYOffset** *(integer) --* Specifies the vertical offset of the shadow relative to the
    captions in pixels. A value of -2 would result in a shadow offset 2 pixels above the text. All
    burn-in and DVB-Sub font settings must match.

    - **TeletextGridControl** *(string) --* Controls whether a fixed grid size will be used to
    generate the output subtitles bitmap. Only applicable for Teletext inputs and DVB-Sub/Burn-in
    outputs.

    - **XPosition** *(integer) --* Specifies the horizontal position of the caption relative to the
    left side of the output in pixels. A value of 10 would result in the captions starting 10 pixels
    from the left of the output. If no explicit xPosition is provided, the horizontal caption
    position will be determined by the alignment parameter. This option is not valid for source
    captions that are STL, 608/embedded or teletext. These source settings are already pre-defined
    by the caption stream. All burn-in and DVB-Sub font settings must match.

    - **YPosition** *(integer) --* Specifies the vertical position of the caption relative to the
    top of the output in pixels. A value of 10 would result in the captions starting 10 pixels from
    the top of the output. If no explicit yPosition is provided, the caption will be positioned
    towards the bottom of the output. This option is not valid for source captions that are STL,
    608/embedded or teletext. These source settings are already pre-defined by the caption stream.
    All burn-in and DVB-Sub font settings must match.
    """


_ClientCreateChannelResponseChannelEncoderSettingsCaptionDescriptionsDestinationSettingsTtmlDestinationSettingsTypeDef = TypedDict(
    "_ClientCreateChannelResponseChannelEncoderSettingsCaptionDescriptionsDestinationSettingsTtmlDestinationSettingsTypeDef",
    {"StyleControl": str},
    total=False,
)


class ClientCreateChannelResponseChannelEncoderSettingsCaptionDescriptionsDestinationSettingsTtmlDestinationSettingsTypeDef(
    _ClientCreateChannelResponseChannelEncoderSettingsCaptionDescriptionsDestinationSettingsTtmlDestinationSettingsTypeDef
):
    """
    Type definition for
    `ClientCreateChannelResponseChannelEncoderSettingsCaptionDescriptionsDestinationSettings`
    `TtmlDestinationSettings`

    - **StyleControl** *(string) --* When set to passthrough, passes through style and position
    information from a TTML-like input source (TTML, SMPTE-TT, CFF-TT) to the CFF-TT output or TTML
    output.
    """


_ClientCreateChannelResponseChannelEncoderSettingsCaptionDescriptionsDestinationSettingsTypeDef = TypedDict(
    "_ClientCreateChannelResponseChannelEncoderSettingsCaptionDescriptionsDestinationSettingsTypeDef",
    {
        "AribDestinationSettings": Dict,
        "BurnInDestinationSettings": ClientCreateChannelResponseChannelEncoderSettingsCaptionDescriptionsDestinationSettingsBurnInDestinationSettingsTypeDef,
        "DvbSubDestinationSettings": ClientCreateChannelResponseChannelEncoderSettingsCaptionDescriptionsDestinationSettingsDvbSubDestinationSettingsTypeDef,
        "EmbeddedDestinationSettings": Dict,
        "EmbeddedPlusScte20DestinationSettings": Dict,
        "RtmpCaptionInfoDestinationSettings": Dict,
        "Scte20PlusEmbeddedDestinationSettings": Dict,
        "Scte27DestinationSettings": Dict,
        "SmpteTtDestinationSettings": Dict,
        "TeletextDestinationSettings": Dict,
        "TtmlDestinationSettings": ClientCreateChannelResponseChannelEncoderSettingsCaptionDescriptionsDestinationSettingsTtmlDestinationSettingsTypeDef,
        "WebvttDestinationSettings": Dict[str, Any],
    },
    total=False,
)


class ClientCreateChannelResponseChannelEncoderSettingsCaptionDescriptionsDestinationSettingsTypeDef(
    _ClientCreateChannelResponseChannelEncoderSettingsCaptionDescriptionsDestinationSettingsTypeDef
):
    """
    Type definition for `ClientCreateChannelResponseChannelEncoderSettingsCaptionDescriptions`
    `DestinationSettings`

    - **AribDestinationSettings** *(dict) --* Arib Destination Settings

    - **BurnInDestinationSettings** *(dict) --* Burn In Destination Settings

      - **Alignment** *(string) --* If no explicit xPosition or yPosition is provided, setting
      alignment to centered will place the captions at the bottom center of the output. Similarly,
      setting a left alignment will align captions to the bottom left of the output. If x and y
      positions are given in conjunction with the alignment parameter, the font will be justified
      (either left or centered) relative to those coordinates. Selecting "smart" justification will
      left-justify live subtitles and center-justify pre-recorded subtitles. All burn-in and DVB-Sub
      font settings must match.

      - **BackgroundColor** *(string) --* Specifies the color of the rectangle behind the captions.
      All burn-in and DVB-Sub font settings must match.

      - **BackgroundOpacity** *(integer) --* Specifies the opacity of the background rectangle. 255
      is opaque; 0 is transparent. Leaving this parameter out is equivalent to setting it to 0
      (transparent). All burn-in and DVB-Sub font settings must match.

      - **Font** *(dict) --* External font file used for caption burn-in. File extension must be
      'ttf' or 'tte'. Although the user can select output fonts for many different types of input
      captions, embedded, STL and teletext sources use a strict grid system. Using external fonts
      with these caption sources could cause unexpected display of proportional fonts. All burn-in
      and DVB-Sub font settings must match.

        - **PasswordParam** *(string) --* key used to extract the password from EC2 Parameter store

        - **Uri** *(string) --* Uniform Resource Identifier - This should be a path to a file
        accessible to the Live system (eg. a http:// URI) depending on the output type. For example,
        a RTMP destination should have a uri simliar to: "rtmp://fmsserver/live".

        - **Username** *(string) --* Documentation update needed

      - **FontColor** *(string) --* Specifies the color of the burned-in captions. This option is
      not valid for source captions that are STL, 608/embedded or teletext. These source settings
      are already pre-defined by the caption stream. All burn-in and DVB-Sub font settings must
      match.

      - **FontOpacity** *(integer) --* Specifies the opacity of the burned-in captions. 255 is
      opaque; 0 is transparent. All burn-in and DVB-Sub font settings must match.

      - **FontResolution** *(integer) --* Font resolution in DPI (dots per inch); default is 96 dpi.
      All burn-in and DVB-Sub font settings must match.

      - **FontSize** *(string) --* When set to 'auto' fontSize will scale depending on the size of
      the output. Giving a positive integer will specify the exact font size in points. All burn-in
      and DVB-Sub font settings must match.

      - **OutlineColor** *(string) --* Specifies font outline color. This option is not valid for
      source captions that are either 608/embedded or teletext. These source settings are already
      pre-defined by the caption stream. All burn-in and DVB-Sub font settings must match.

      - **OutlineSize** *(integer) --* Specifies font outline size in pixels. This option is not
      valid for source captions that are either 608/embedded or teletext. These source settings are
      already pre-defined by the caption stream. All burn-in and DVB-Sub font settings must match.

      - **ShadowColor** *(string) --* Specifies the color of the shadow cast by the captions. All
      burn-in and DVB-Sub font settings must match.

      - **ShadowOpacity** *(integer) --* Specifies the opacity of the shadow. 255 is opaque; 0 is
      transparent. Leaving this parameter out is equivalent to setting it to 0 (transparent). All
      burn-in and DVB-Sub font settings must match.

      - **ShadowXOffset** *(integer) --* Specifies the horizontal offset of the shadow relative to
      the captions in pixels. A value of -2 would result in a shadow offset 2 pixels to the left.
      All burn-in and DVB-Sub font settings must match.

      - **ShadowYOffset** *(integer) --* Specifies the vertical offset of the shadow relative to the
      captions in pixels. A value of -2 would result in a shadow offset 2 pixels above the text. All
      burn-in and DVB-Sub font settings must match.

      - **TeletextGridControl** *(string) --* Controls whether a fixed grid size will be used to
      generate the output subtitles bitmap. Only applicable for Teletext inputs and DVB-Sub/Burn-in
      outputs.

      - **XPosition** *(integer) --* Specifies the horizontal position of the caption relative to
      the left side of the output in pixels. A value of 10 would result in the captions starting 10
      pixels from the left of the output. If no explicit xPosition is provided, the horizontal
      caption position will be determined by the alignment parameter. All burn-in and DVB-Sub font
      settings must match.

      - **YPosition** *(integer) --* Specifies the vertical position of the caption relative to the
      top of the output in pixels. A value of 10 would result in the captions starting 10 pixels
      from the top of the output. If no explicit yPosition is provided, the caption will be
      positioned towards the bottom of the output. All burn-in and DVB-Sub font settings must match.

    - **DvbSubDestinationSettings** *(dict) --* Dvb Sub Destination Settings

      - **Alignment** *(string) --* If no explicit xPosition or yPosition is provided, setting
      alignment to centered will place the captions at the bottom center of the output. Similarly,
      setting a left alignment will align captions to the bottom left of the output. If x and y
      positions are given in conjunction with the alignment parameter, the font will be justified
      (either left or centered) relative to those coordinates. Selecting "smart" justification will
      left-justify live subtitles and center-justify pre-recorded subtitles. This option is not
      valid for source captions that are STL or 608/embedded. These source settings are already
      pre-defined by the caption stream. All burn-in and DVB-Sub font settings must match.

      - **BackgroundColor** *(string) --* Specifies the color of the rectangle behind the captions.
      All burn-in and DVB-Sub font settings must match.

      - **BackgroundOpacity** *(integer) --* Specifies the opacity of the background rectangle. 255
      is opaque; 0 is transparent. Leaving this parameter blank is equivalent to setting it to 0
      (transparent). All burn-in and DVB-Sub font settings must match.

      - **Font** *(dict) --* External font file used for caption burn-in. File extension must be
      'ttf' or 'tte'. Although the user can select output fonts for many different types of input
      captions, embedded, STL and teletext sources use a strict grid system. Using external fonts
      with these caption sources could cause unexpected display of proportional fonts. All burn-in
      and DVB-Sub font settings must match.

        - **PasswordParam** *(string) --* key used to extract the password from EC2 Parameter store

        - **Uri** *(string) --* Uniform Resource Identifier - This should be a path to a file
        accessible to the Live system (eg. a http:// URI) depending on the output type. For example,
        a RTMP destination should have a uri simliar to: "rtmp://fmsserver/live".

        - **Username** *(string) --* Documentation update needed

      - **FontColor** *(string) --* Specifies the color of the burned-in captions. This option is
      not valid for source captions that are STL, 608/embedded or teletext. These source settings
      are already pre-defined by the caption stream. All burn-in and DVB-Sub font settings must
      match.

      - **FontOpacity** *(integer) --* Specifies the opacity of the burned-in captions. 255 is
      opaque; 0 is transparent. All burn-in and DVB-Sub font settings must match.

      - **FontResolution** *(integer) --* Font resolution in DPI (dots per inch); default is 96 dpi.
      All burn-in and DVB-Sub font settings must match.

      - **FontSize** *(string) --* When set to auto fontSize will scale depending on the size of the
      output. Giving a positive integer will specify the exact font size in points. All burn-in and
      DVB-Sub font settings must match.

      - **OutlineColor** *(string) --* Specifies font outline color. This option is not valid for
      source captions that are either 608/embedded or teletext. These source settings are already
      pre-defined by the caption stream. All burn-in and DVB-Sub font settings must match.

      - **OutlineSize** *(integer) --* Specifies font outline size in pixels. This option is not
      valid for source captions that are either 608/embedded or teletext. These source settings are
      already pre-defined by the caption stream. All burn-in and DVB-Sub font settings must match.

      - **ShadowColor** *(string) --* Specifies the color of the shadow cast by the captions. All
      burn-in and DVB-Sub font settings must match.

      - **ShadowOpacity** *(integer) --* Specifies the opacity of the shadow. 255 is opaque; 0 is
      transparent. Leaving this parameter blank is equivalent to setting it to 0 (transparent). All
      burn-in and DVB-Sub font settings must match.

      - **ShadowXOffset** *(integer) --* Specifies the horizontal offset of the shadow relative to
      the captions in pixels. A value of -2 would result in a shadow offset 2 pixels to the left.
      All burn-in and DVB-Sub font settings must match.

      - **ShadowYOffset** *(integer) --* Specifies the vertical offset of the shadow relative to the
      captions in pixels. A value of -2 would result in a shadow offset 2 pixels above the text. All
      burn-in and DVB-Sub font settings must match.

      - **TeletextGridControl** *(string) --* Controls whether a fixed grid size will be used to
      generate the output subtitles bitmap. Only applicable for Teletext inputs and DVB-Sub/Burn-in
      outputs.

      - **XPosition** *(integer) --* Specifies the horizontal position of the caption relative to
      the left side of the output in pixels. A value of 10 would result in the captions starting 10
      pixels from the left of the output. If no explicit xPosition is provided, the horizontal
      caption position will be determined by the alignment parameter. This option is not valid for
      source captions that are STL, 608/embedded or teletext. These source settings are already
      pre-defined by the caption stream. All burn-in and DVB-Sub font settings must match.

      - **YPosition** *(integer) --* Specifies the vertical position of the caption relative to the
      top of the output in pixels. A value of 10 would result in the captions starting 10 pixels
      from the top of the output. If no explicit yPosition is provided, the caption will be
      positioned towards the bottom of the output. This option is not valid for source captions that
      are STL, 608/embedded or teletext. These source settings are already pre-defined by the
      caption stream. All burn-in and DVB-Sub font settings must match.

    - **EmbeddedDestinationSettings** *(dict) --* Embedded Destination Settings

    - **EmbeddedPlusScte20DestinationSettings** *(dict) --* Embedded Plus Scte20 Destination
    Settings

    - **RtmpCaptionInfoDestinationSettings** *(dict) --* Rtmp Caption Info Destination Settings

    - **Scte20PlusEmbeddedDestinationSettings** *(dict) --* Scte20 Plus Embedded Destination
    Settings

    - **Scte27DestinationSettings** *(dict) --* Scte27 Destination Settings

    - **SmpteTtDestinationSettings** *(dict) --* Smpte Tt Destination Settings

    - **TeletextDestinationSettings** *(dict) --* Teletext Destination Settings

    - **TtmlDestinationSettings** *(dict) --* Ttml Destination Settings

      - **StyleControl** *(string) --* When set to passthrough, passes through style and position
      information from a TTML-like input source (TTML, SMPTE-TT, CFF-TT) to the CFF-TT output or
      TTML output.

    - **WebvttDestinationSettings** *(dict) --* Webvtt Destination Settings
    """


_ClientCreateChannelResponseChannelEncoderSettingsCaptionDescriptionsTypeDef = TypedDict(
    "_ClientCreateChannelResponseChannelEncoderSettingsCaptionDescriptionsTypeDef",
    {
        "CaptionSelectorName": str,
        "DestinationSettings": ClientCreateChannelResponseChannelEncoderSettingsCaptionDescriptionsDestinationSettingsTypeDef,
        "LanguageCode": str,
        "LanguageDescription": str,
        "Name": str,
    },
    total=False,
)


class ClientCreateChannelResponseChannelEncoderSettingsCaptionDescriptionsTypeDef(
    _ClientCreateChannelResponseChannelEncoderSettingsCaptionDescriptionsTypeDef
):
    """
    Type definition for `ClientCreateChannelResponseChannelEncoderSettings` `CaptionDescriptions`

    - **CaptionSelectorName** *(string) --* Specifies which input caption selector to use as a
    caption source when generating output captions. This field should match a captionSelector name.

    - **DestinationSettings** *(dict) --* Additional settings for captions destination that depend
    on the destination type.

      - **AribDestinationSettings** *(dict) --* Arib Destination Settings

      - **BurnInDestinationSettings** *(dict) --* Burn In Destination Settings

        - **Alignment** *(string) --* If no explicit xPosition or yPosition is provided, setting
        alignment to centered will place the captions at the bottom center of the output. Similarly,
        setting a left alignment will align captions to the bottom left of the output. If x and y
        positions are given in conjunction with the alignment parameter, the font will be justified
        (either left or centered) relative to those coordinates. Selecting "smart" justification
        will left-justify live subtitles and center-justify pre-recorded subtitles. All burn-in and
        DVB-Sub font settings must match.

        - **BackgroundColor** *(string) --* Specifies the color of the rectangle behind the
        captions. All burn-in and DVB-Sub font settings must match.

        - **BackgroundOpacity** *(integer) --* Specifies the opacity of the background rectangle.
        255 is opaque; 0 is transparent. Leaving this parameter out is equivalent to setting it to 0
        (transparent). All burn-in and DVB-Sub font settings must match.

        - **Font** *(dict) --* External font file used for caption burn-in. File extension must be
        'ttf' or 'tte'. Although the user can select output fonts for many different types of input
        captions, embedded, STL and teletext sources use a strict grid system. Using external fonts
        with these caption sources could cause unexpected display of proportional fonts. All burn-in
        and DVB-Sub font settings must match.

          - **PasswordParam** *(string) --* key used to extract the password from EC2 Parameter
          store

          - **Uri** *(string) --* Uniform Resource Identifier - This should be a path to a file
          accessible to the Live system (eg. a http:// URI) depending on the output type. For
          example, a RTMP destination should have a uri simliar to: "rtmp://fmsserver/live".

          - **Username** *(string) --* Documentation update needed

        - **FontColor** *(string) --* Specifies the color of the burned-in captions. This option is
        not valid for source captions that are STL, 608/embedded or teletext. These source settings
        are already pre-defined by the caption stream. All burn-in and DVB-Sub font settings must
        match.

        - **FontOpacity** *(integer) --* Specifies the opacity of the burned-in captions. 255 is
        opaque; 0 is transparent. All burn-in and DVB-Sub font settings must match.

        - **FontResolution** *(integer) --* Font resolution in DPI (dots per inch); default is 96
        dpi. All burn-in and DVB-Sub font settings must match.

        - **FontSize** *(string) --* When set to 'auto' fontSize will scale depending on the size of
        the output. Giving a positive integer will specify the exact font size in points. All
        burn-in and DVB-Sub font settings must match.

        - **OutlineColor** *(string) --* Specifies font outline color. This option is not valid for
        source captions that are either 608/embedded or teletext. These source settings are already
        pre-defined by the caption stream. All burn-in and DVB-Sub font settings must match.

        - **OutlineSize** *(integer) --* Specifies font outline size in pixels. This option is not
        valid for source captions that are either 608/embedded or teletext. These source settings
        are already pre-defined by the caption stream. All burn-in and DVB-Sub font settings must
        match.

        - **ShadowColor** *(string) --* Specifies the color of the shadow cast by the captions. All
        burn-in and DVB-Sub font settings must match.

        - **ShadowOpacity** *(integer) --* Specifies the opacity of the shadow. 255 is opaque; 0 is
        transparent. Leaving this parameter out is equivalent to setting it to 0 (transparent). All
        burn-in and DVB-Sub font settings must match.

        - **ShadowXOffset** *(integer) --* Specifies the horizontal offset of the shadow relative to
        the captions in pixels. A value of -2 would result in a shadow offset 2 pixels to the left.
        All burn-in and DVB-Sub font settings must match.

        - **ShadowYOffset** *(integer) --* Specifies the vertical offset of the shadow relative to
        the captions in pixels. A value of -2 would result in a shadow offset 2 pixels above the
        text. All burn-in and DVB-Sub font settings must match.

        - **TeletextGridControl** *(string) --* Controls whether a fixed grid size will be used to
        generate the output subtitles bitmap. Only applicable for Teletext inputs and
        DVB-Sub/Burn-in outputs.

        - **XPosition** *(integer) --* Specifies the horizontal position of the caption relative to
        the left side of the output in pixels. A value of 10 would result in the captions starting
        10 pixels from the left of the output. If no explicit xPosition is provided, the horizontal
        caption position will be determined by the alignment parameter. All burn-in and DVB-Sub font
        settings must match.

        - **YPosition** *(integer) --* Specifies the vertical position of the caption relative to
        the top of the output in pixels. A value of 10 would result in the captions starting 10
        pixels from the top of the output. If no explicit yPosition is provided, the caption will be
        positioned towards the bottom of the output. All burn-in and DVB-Sub font settings must
        match.

      - **DvbSubDestinationSettings** *(dict) --* Dvb Sub Destination Settings

        - **Alignment** *(string) --* If no explicit xPosition or yPosition is provided, setting
        alignment to centered will place the captions at the bottom center of the output. Similarly,
        setting a left alignment will align captions to the bottom left of the output. If x and y
        positions are given in conjunction with the alignment parameter, the font will be justified
        (either left or centered) relative to those coordinates. Selecting "smart" justification
        will left-justify live subtitles and center-justify pre-recorded subtitles. This option is
        not valid for source captions that are STL or 608/embedded. These source settings are
        already pre-defined by the caption stream. All burn-in and DVB-Sub font settings must match.

        - **BackgroundColor** *(string) --* Specifies the color of the rectangle behind the
        captions. All burn-in and DVB-Sub font settings must match.

        - **BackgroundOpacity** *(integer) --* Specifies the opacity of the background rectangle.
        255 is opaque; 0 is transparent. Leaving this parameter blank is equivalent to setting it to
        0 (transparent). All burn-in and DVB-Sub font settings must match.

        - **Font** *(dict) --* External font file used for caption burn-in. File extension must be
        'ttf' or 'tte'. Although the user can select output fonts for many different types of input
        captions, embedded, STL and teletext sources use a strict grid system. Using external fonts
        with these caption sources could cause unexpected display of proportional fonts. All burn-in
        and DVB-Sub font settings must match.

          - **PasswordParam** *(string) --* key used to extract the password from EC2 Parameter
          store

          - **Uri** *(string) --* Uniform Resource Identifier - This should be a path to a file
          accessible to the Live system (eg. a http:// URI) depending on the output type. For
          example, a RTMP destination should have a uri simliar to: "rtmp://fmsserver/live".

          - **Username** *(string) --* Documentation update needed

        - **FontColor** *(string) --* Specifies the color of the burned-in captions. This option is
        not valid for source captions that are STL, 608/embedded or teletext. These source settings
        are already pre-defined by the caption stream. All burn-in and DVB-Sub font settings must
        match.

        - **FontOpacity** *(integer) --* Specifies the opacity of the burned-in captions. 255 is
        opaque; 0 is transparent. All burn-in and DVB-Sub font settings must match.

        - **FontResolution** *(integer) --* Font resolution in DPI (dots per inch); default is 96
        dpi. All burn-in and DVB-Sub font settings must match.

        - **FontSize** *(string) --* When set to auto fontSize will scale depending on the size of
        the output. Giving a positive integer will specify the exact font size in points. All
        burn-in and DVB-Sub font settings must match.

        - **OutlineColor** *(string) --* Specifies font outline color. This option is not valid for
        source captions that are either 608/embedded or teletext. These source settings are already
        pre-defined by the caption stream. All burn-in and DVB-Sub font settings must match.

        - **OutlineSize** *(integer) --* Specifies font outline size in pixels. This option is not
        valid for source captions that are either 608/embedded or teletext. These source settings
        are already pre-defined by the caption stream. All burn-in and DVB-Sub font settings must
        match.

        - **ShadowColor** *(string) --* Specifies the color of the shadow cast by the captions. All
        burn-in and DVB-Sub font settings must match.

        - **ShadowOpacity** *(integer) --* Specifies the opacity of the shadow. 255 is opaque; 0 is
        transparent. Leaving this parameter blank is equivalent to setting it to 0 (transparent).
        All burn-in and DVB-Sub font settings must match.

        - **ShadowXOffset** *(integer) --* Specifies the horizontal offset of the shadow relative to
        the captions in pixels. A value of -2 would result in a shadow offset 2 pixels to the left.
        All burn-in and DVB-Sub font settings must match.

        - **ShadowYOffset** *(integer) --* Specifies the vertical offset of the shadow relative to
        the captions in pixels. A value of -2 would result in a shadow offset 2 pixels above the
        text. All burn-in and DVB-Sub font settings must match.

        - **TeletextGridControl** *(string) --* Controls whether a fixed grid size will be used to
        generate the output subtitles bitmap. Only applicable for Teletext inputs and
        DVB-Sub/Burn-in outputs.

        - **XPosition** *(integer) --* Specifies the horizontal position of the caption relative to
        the left side of the output in pixels. A value of 10 would result in the captions starting
        10 pixels from the left of the output. If no explicit xPosition is provided, the horizontal
        caption position will be determined by the alignment parameter. This option is not valid for
        source captions that are STL, 608/embedded or teletext. These source settings are already
        pre-defined by the caption stream. All burn-in and DVB-Sub font settings must match.

        - **YPosition** *(integer) --* Specifies the vertical position of the caption relative to
        the top of the output in pixels. A value of 10 would result in the captions starting 10
        pixels from the top of the output. If no explicit yPosition is provided, the caption will be
        positioned towards the bottom of the output. This option is not valid for source captions
        that are STL, 608/embedded or teletext. These source settings are already pre-defined by the
        caption stream. All burn-in and DVB-Sub font settings must match.

      - **EmbeddedDestinationSettings** *(dict) --* Embedded Destination Settings

      - **EmbeddedPlusScte20DestinationSettings** *(dict) --* Embedded Plus Scte20 Destination
      Settings

      - **RtmpCaptionInfoDestinationSettings** *(dict) --* Rtmp Caption Info Destination Settings

      - **Scte20PlusEmbeddedDestinationSettings** *(dict) --* Scte20 Plus Embedded Destination
      Settings

      - **Scte27DestinationSettings** *(dict) --* Scte27 Destination Settings

      - **SmpteTtDestinationSettings** *(dict) --* Smpte Tt Destination Settings

      - **TeletextDestinationSettings** *(dict) --* Teletext Destination Settings

      - **TtmlDestinationSettings** *(dict) --* Ttml Destination Settings

        - **StyleControl** *(string) --* When set to passthrough, passes through style and position
        information from a TTML-like input source (TTML, SMPTE-TT, CFF-TT) to the CFF-TT output or
        TTML output.

      - **WebvttDestinationSettings** *(dict) --* Webvtt Destination Settings

    - **LanguageCode** *(string) --* ISO 639-2 three-digit code:
    http://www.loc.gov/standards/iso639-2/

    - **LanguageDescription** *(string) --* Human readable information to indicate captions
    available for players (eg. English, or Spanish).

    - **Name** *(string) --* Name of the caption description. Used to associate a caption
    description with an output. Names must be unique within an event.
    """


_ClientCreateChannelResponseChannelEncoderSettingsGlobalConfigurationInputLossBehaviorInputLossImageSlateTypeDef = TypedDict(
    "_ClientCreateChannelResponseChannelEncoderSettingsGlobalConfigurationInputLossBehaviorInputLossImageSlateTypeDef",
    {"PasswordParam": str, "Uri": str, "Username": str},
    total=False,
)


class ClientCreateChannelResponseChannelEncoderSettingsGlobalConfigurationInputLossBehaviorInputLossImageSlateTypeDef(
    _ClientCreateChannelResponseChannelEncoderSettingsGlobalConfigurationInputLossBehaviorInputLossImageSlateTypeDef
):
    """
    Type definition for
    `ClientCreateChannelResponseChannelEncoderSettingsGlobalConfigurationInputLossBehavior`
    `InputLossImageSlate`

    - **PasswordParam** *(string) --* key used to extract the password from EC2 Parameter store

    - **Uri** *(string) --* Uniform Resource Identifier - This should be a path to a file accessible
    to the Live system (eg. a http:// URI) depending on the output type. For example, a RTMP
    destination should have a uri simliar to: "rtmp://fmsserver/live".

    - **Username** *(string) --* Documentation update needed
    """


_ClientCreateChannelResponseChannelEncoderSettingsGlobalConfigurationInputLossBehaviorTypeDef = TypedDict(
    "_ClientCreateChannelResponseChannelEncoderSettingsGlobalConfigurationInputLossBehaviorTypeDef",
    {
        "BlackFrameMsec": int,
        "InputLossImageColor": str,
        "InputLossImageSlate": ClientCreateChannelResponseChannelEncoderSettingsGlobalConfigurationInputLossBehaviorInputLossImageSlateTypeDef,
        "InputLossImageType": str,
        "RepeatFrameMsec": int,
    },
    total=False,
)


class ClientCreateChannelResponseChannelEncoderSettingsGlobalConfigurationInputLossBehaviorTypeDef(
    _ClientCreateChannelResponseChannelEncoderSettingsGlobalConfigurationInputLossBehaviorTypeDef
):
    """
    Type definition for `ClientCreateChannelResponseChannelEncoderSettingsGlobalConfiguration`
    `InputLossBehavior`

    - **BlackFrameMsec** *(integer) --* Documentation update needed

    - **InputLossImageColor** *(string) --* When input loss image type is "color" this field
    specifies the color to use. Value: 6 hex characters representing the values of RGB.

    - **InputLossImageSlate** *(dict) --* When input loss image type is "slate" these fields specify
    the parameters for accessing the slate.

      - **PasswordParam** *(string) --* key used to extract the password from EC2 Parameter store

      - **Uri** *(string) --* Uniform Resource Identifier - This should be a path to a file
      accessible to the Live system (eg. a http:// URI) depending on the output type. For example, a
      RTMP destination should have a uri simliar to: "rtmp://fmsserver/live".

      - **Username** *(string) --* Documentation update needed

    - **InputLossImageType** *(string) --* Indicates whether to substitute a solid color or a slate
    into the output after input loss exceeds blackFrameMsec.

    - **RepeatFrameMsec** *(integer) --* Documentation update needed
    """


_ClientCreateChannelResponseChannelEncoderSettingsGlobalConfigurationTypeDef = TypedDict(
    "_ClientCreateChannelResponseChannelEncoderSettingsGlobalConfigurationTypeDef",
    {
        "InitialAudioGain": int,
        "InputEndAction": str,
        "InputLossBehavior": ClientCreateChannelResponseChannelEncoderSettingsGlobalConfigurationInputLossBehaviorTypeDef,
        "OutputLockingMode": str,
        "OutputTimingSource": str,
        "SupportLowFramerateInputs": str,
    },
    total=False,
)


class ClientCreateChannelResponseChannelEncoderSettingsGlobalConfigurationTypeDef(
    _ClientCreateChannelResponseChannelEncoderSettingsGlobalConfigurationTypeDef
):
    """
    Type definition for `ClientCreateChannelResponseChannelEncoderSettings` `GlobalConfiguration`

    - **InitialAudioGain** *(integer) --* Value to set the initial audio gain for the Live Event.

    - **InputEndAction** *(string) --* Indicates the action to take when the current input completes
    (e.g. end-of-file). When switchAndLoopInputs is configured the encoder will restart at the
    beginning of the first input. When "none" is configured the encoder will transcode either black,
    a solid color, or a user specified slate images per the "Input Loss Behavior" configuration
    until the next input switch occurs (which is controlled through the Channel Schedule API).

    - **InputLossBehavior** *(dict) --* Settings for system actions when input is lost.

      - **BlackFrameMsec** *(integer) --* Documentation update needed

      - **InputLossImageColor** *(string) --* When input loss image type is "color" this field
      specifies the color to use. Value: 6 hex characters representing the values of RGB.

      - **InputLossImageSlate** *(dict) --* When input loss image type is "slate" these fields
      specify the parameters for accessing the slate.

        - **PasswordParam** *(string) --* key used to extract the password from EC2 Parameter store

        - **Uri** *(string) --* Uniform Resource Identifier - This should be a path to a file
        accessible to the Live system (eg. a http:// URI) depending on the output type. For example,
        a RTMP destination should have a uri simliar to: "rtmp://fmsserver/live".

        - **Username** *(string) --* Documentation update needed

      - **InputLossImageType** *(string) --* Indicates whether to substitute a solid color or a
      slate into the output after input loss exceeds blackFrameMsec.

      - **RepeatFrameMsec** *(integer) --* Documentation update needed

    - **OutputLockingMode** *(string) --* Indicates how MediaLive pipelines are synchronized.
    PIPELINELOCKING - MediaLive will attempt to synchronize the output of each pipeline to the
    other. EPOCHLOCKING - MediaLive will attempt to synchronize the output of each pipeline to the
    Unix epoch.

    - **OutputTimingSource** *(string) --* Indicates whether the rate of frames emitted by the Live
    encoder should be paced by its system clock (which optionally may be locked to another source
    via NTP) or should be locked to the clock of the source that is providing the input stream.

    - **SupportLowFramerateInputs** *(string) --* Adjusts video input buffer for streams with very
    low video framerates. This is commonly set to enabled for music channels with less than one
    video frame per second.
    """


_ClientCreateChannelResponseChannelEncoderSettingsNielsenConfigurationTypeDef = TypedDict(
    "_ClientCreateChannelResponseChannelEncoderSettingsNielsenConfigurationTypeDef",
    {"DistributorId": str, "NielsenPcmToId3Tagging": str},
    total=False,
)


class ClientCreateChannelResponseChannelEncoderSettingsNielsenConfigurationTypeDef(
    _ClientCreateChannelResponseChannelEncoderSettingsNielsenConfigurationTypeDef
):
    """
    Type definition for `ClientCreateChannelResponseChannelEncoderSettings` `NielsenConfiguration`

    - **DistributorId** *(string) --* Enter the Distributor ID assigned to your organization by
    Nielsen.

    - **NielsenPcmToId3Tagging** *(string) --* Enables Nielsen PCM to ID3 tagging
    """


_ClientCreateChannelResponseChannelEncoderSettingsOutputGroupsOutputGroupSettingsArchiveGroupSettingsDestinationTypeDef = TypedDict(
    "_ClientCreateChannelResponseChannelEncoderSettingsOutputGroupsOutputGroupSettingsArchiveGroupSettingsDestinationTypeDef",
    {"DestinationRefId": str},
    total=False,
)


class ClientCreateChannelResponseChannelEncoderSettingsOutputGroupsOutputGroupSettingsArchiveGroupSettingsDestinationTypeDef(
    _ClientCreateChannelResponseChannelEncoderSettingsOutputGroupsOutputGroupSettingsArchiveGroupSettingsDestinationTypeDef
):
    """
    Type definition for
    `ClientCreateChannelResponseChannelEncoderSettingsOutputGroupsOutputGroupSettingsArchiveGroupSettings`
    `Destination`

    - **DestinationRefId** *(string) --* Placeholder documentation for __string
    """


_ClientCreateChannelResponseChannelEncoderSettingsOutputGroupsOutputGroupSettingsArchiveGroupSettingsTypeDef = TypedDict(
    "_ClientCreateChannelResponseChannelEncoderSettingsOutputGroupsOutputGroupSettingsArchiveGroupSettingsTypeDef",
    {
        "Destination": ClientCreateChannelResponseChannelEncoderSettingsOutputGroupsOutputGroupSettingsArchiveGroupSettingsDestinationTypeDef,
        "RolloverInterval": int,
    },
    total=False,
)


class ClientCreateChannelResponseChannelEncoderSettingsOutputGroupsOutputGroupSettingsArchiveGroupSettingsTypeDef(
    _ClientCreateChannelResponseChannelEncoderSettingsOutputGroupsOutputGroupSettingsArchiveGroupSettingsTypeDef
):
    """
    Type definition for
    `ClientCreateChannelResponseChannelEncoderSettingsOutputGroupsOutputGroupSettings`
    `ArchiveGroupSettings`

    - **Destination** *(dict) --* A directory and base filename where archive files should be
    written.

      - **DestinationRefId** *(string) --* Placeholder documentation for __string

    - **RolloverInterval** *(integer) --* Number of seconds to write to archive file before closing
    and starting a new one.
    """


_ClientCreateChannelResponseChannelEncoderSettingsOutputGroupsOutputGroupSettingsFrameCaptureGroupSettingsDestinationTypeDef = TypedDict(
    "_ClientCreateChannelResponseChannelEncoderSettingsOutputGroupsOutputGroupSettingsFrameCaptureGroupSettingsDestinationTypeDef",
    {"DestinationRefId": str},
    total=False,
)


class ClientCreateChannelResponseChannelEncoderSettingsOutputGroupsOutputGroupSettingsFrameCaptureGroupSettingsDestinationTypeDef(
    _ClientCreateChannelResponseChannelEncoderSettingsOutputGroupsOutputGroupSettingsFrameCaptureGroupSettingsDestinationTypeDef
):
    """
    Type definition for
    `ClientCreateChannelResponseChannelEncoderSettingsOutputGroupsOutputGroupSettingsFrameCaptureGroupSettings`
    `Destination`

    - **DestinationRefId** *(string) --* Placeholder documentation for __string
    """


_ClientCreateChannelResponseChannelEncoderSettingsOutputGroupsOutputGroupSettingsFrameCaptureGroupSettingsTypeDef = TypedDict(
    "_ClientCreateChannelResponseChannelEncoderSettingsOutputGroupsOutputGroupSettingsFrameCaptureGroupSettingsTypeDef",
    {
        "Destination": ClientCreateChannelResponseChannelEncoderSettingsOutputGroupsOutputGroupSettingsFrameCaptureGroupSettingsDestinationTypeDef
    },
    total=False,
)


class ClientCreateChannelResponseChannelEncoderSettingsOutputGroupsOutputGroupSettingsFrameCaptureGroupSettingsTypeDef(
    _ClientCreateChannelResponseChannelEncoderSettingsOutputGroupsOutputGroupSettingsFrameCaptureGroupSettingsTypeDef
):
    """
    Type definition for
    `ClientCreateChannelResponseChannelEncoderSettingsOutputGroupsOutputGroupSettings`
    `FrameCaptureGroupSettings`

    - **Destination** *(dict) --* The destination for the frame capture files. Either the URI for an
    Amazon S3 bucket and object, plus a file name prefix (for example,
    s3ssl://sportsDelivery/highlights/20180820/curling_) or the URI for a MediaStore container, plus
    a file name prefix (for example, mediastoressl://sportsDelivery/20180820/curling_). The final
    file names consist of the prefix from the destination field (for example, "curling_") + name
    modifier + the counter (5 digits, starting from 00001) + extension (which is always .jpg). For
    example, curlingLow.00001.jpg

      - **DestinationRefId** *(string) --* Placeholder documentation for __string
    """


_ClientCreateChannelResponseChannelEncoderSettingsOutputGroupsOutputGroupSettingsHlsGroupSettingsCaptionLanguageMappingsTypeDef = TypedDict(
    "_ClientCreateChannelResponseChannelEncoderSettingsOutputGroupsOutputGroupSettingsHlsGroupSettingsCaptionLanguageMappingsTypeDef",
    {"CaptionChannel": int, "LanguageCode": str, "LanguageDescription": str},
    total=False,
)


class ClientCreateChannelResponseChannelEncoderSettingsOutputGroupsOutputGroupSettingsHlsGroupSettingsCaptionLanguageMappingsTypeDef(
    _ClientCreateChannelResponseChannelEncoderSettingsOutputGroupsOutputGroupSettingsHlsGroupSettingsCaptionLanguageMappingsTypeDef
):
    """
    Type definition for
    `ClientCreateChannelResponseChannelEncoderSettingsOutputGroupsOutputGroupSettingsHlsGroupSettings`
    `CaptionLanguageMappings`

    - **CaptionChannel** *(integer) --* The closed caption channel being described by this
    CaptionLanguageMapping. Each channel mapping must have a unique channel number (maximum of 4)

    - **LanguageCode** *(string) --* Three character ISO 639-2 language code (see
    http://www.loc.gov/standards/iso639-2)

    - **LanguageDescription** *(string) --* Textual description of language
    """


_ClientCreateChannelResponseChannelEncoderSettingsOutputGroupsOutputGroupSettingsHlsGroupSettingsDestinationTypeDef = TypedDict(
    "_ClientCreateChannelResponseChannelEncoderSettingsOutputGroupsOutputGroupSettingsHlsGroupSettingsDestinationTypeDef",
    {"DestinationRefId": str},
    total=False,
)


class ClientCreateChannelResponseChannelEncoderSettingsOutputGroupsOutputGroupSettingsHlsGroupSettingsDestinationTypeDef(
    _ClientCreateChannelResponseChannelEncoderSettingsOutputGroupsOutputGroupSettingsHlsGroupSettingsDestinationTypeDef
):
    """
    Type definition for
    `ClientCreateChannelResponseChannelEncoderSettingsOutputGroupsOutputGroupSettingsHlsGroupSettings`
    `Destination`

    - **DestinationRefId** *(string) --* Placeholder documentation for __string
    """


_ClientCreateChannelResponseChannelEncoderSettingsOutputGroupsOutputGroupSettingsHlsGroupSettingsHlsCdnSettingsHlsAkamaiSettingsTypeDef = TypedDict(
    "_ClientCreateChannelResponseChannelEncoderSettingsOutputGroupsOutputGroupSettingsHlsGroupSettingsHlsCdnSettingsHlsAkamaiSettingsTypeDef",
    {
        "ConnectionRetryInterval": int,
        "FilecacheDuration": int,
        "HttpTransferMode": str,
        "NumRetries": int,
        "RestartDelay": int,
        "Salt": str,
        "Token": str,
    },
    total=False,
)


class ClientCreateChannelResponseChannelEncoderSettingsOutputGroupsOutputGroupSettingsHlsGroupSettingsHlsCdnSettingsHlsAkamaiSettingsTypeDef(
    _ClientCreateChannelResponseChannelEncoderSettingsOutputGroupsOutputGroupSettingsHlsGroupSettingsHlsCdnSettingsHlsAkamaiSettingsTypeDef
):
    """
    Type definition for
    `ClientCreateChannelResponseChannelEncoderSettingsOutputGroupsOutputGroupSettingsHlsGroupSettingsHlsCdnSettings`
    `HlsAkamaiSettings`

    - **ConnectionRetryInterval** *(integer) --* Number of seconds to wait before retrying
    connection to the CDN if the connection is lost.

    - **FilecacheDuration** *(integer) --* Size in seconds of file cache for streaming outputs.

    - **HttpTransferMode** *(string) --* Specify whether or not to use chunked transfer encoding to
    Akamai. User should contact Akamai to enable this feature.

    - **NumRetries** *(integer) --* Number of retry attempts that will be made before the Live Event
    is put into an error state.

    - **RestartDelay** *(integer) --* If a streaming output fails, number of seconds to wait until a
    restart is initiated. A value of 0 means never restart.

    - **Salt** *(string) --* Salt for authenticated Akamai.

    - **Token** *(string) --* Token parameter for authenticated akamai. If not specified, _gda_ is
    used.
    """


_ClientCreateChannelResponseChannelEncoderSettingsOutputGroupsOutputGroupSettingsHlsGroupSettingsHlsCdnSettingsHlsBasicPutSettingsTypeDef = TypedDict(
    "_ClientCreateChannelResponseChannelEncoderSettingsOutputGroupsOutputGroupSettingsHlsGroupSettingsHlsCdnSettingsHlsBasicPutSettingsTypeDef",
    {
        "ConnectionRetryInterval": int,
        "FilecacheDuration": int,
        "NumRetries": int,
        "RestartDelay": int,
    },
    total=False,
)


class ClientCreateChannelResponseChannelEncoderSettingsOutputGroupsOutputGroupSettingsHlsGroupSettingsHlsCdnSettingsHlsBasicPutSettingsTypeDef(
    _ClientCreateChannelResponseChannelEncoderSettingsOutputGroupsOutputGroupSettingsHlsGroupSettingsHlsCdnSettingsHlsBasicPutSettingsTypeDef
):
    """
    Type definition for
    `ClientCreateChannelResponseChannelEncoderSettingsOutputGroupsOutputGroupSettingsHlsGroupSettingsHlsCdnSettings`
    `HlsBasicPutSettings`

    - **ConnectionRetryInterval** *(integer) --* Number of seconds to wait before retrying
    connection to the CDN if the connection is lost.

    - **FilecacheDuration** *(integer) --* Size in seconds of file cache for streaming outputs.

    - **NumRetries** *(integer) --* Number of retry attempts that will be made before the Live Event
    is put into an error state.

    - **RestartDelay** *(integer) --* If a streaming output fails, number of seconds to wait until a
    restart is initiated. A value of 0 means never restart.
    """


_ClientCreateChannelResponseChannelEncoderSettingsOutputGroupsOutputGroupSettingsHlsGroupSettingsHlsCdnSettingsHlsMediaStoreSettingsTypeDef = TypedDict(
    "_ClientCreateChannelResponseChannelEncoderSettingsOutputGroupsOutputGroupSettingsHlsGroupSettingsHlsCdnSettingsHlsMediaStoreSettingsTypeDef",
    {
        "ConnectionRetryInterval": int,
        "FilecacheDuration": int,
        "MediaStoreStorageClass": str,
        "NumRetries": int,
        "RestartDelay": int,
    },
    total=False,
)


class ClientCreateChannelResponseChannelEncoderSettingsOutputGroupsOutputGroupSettingsHlsGroupSettingsHlsCdnSettingsHlsMediaStoreSettingsTypeDef(
    _ClientCreateChannelResponseChannelEncoderSettingsOutputGroupsOutputGroupSettingsHlsGroupSettingsHlsCdnSettingsHlsMediaStoreSettingsTypeDef
):
    """
    Type definition for
    `ClientCreateChannelResponseChannelEncoderSettingsOutputGroupsOutputGroupSettingsHlsGroupSettingsHlsCdnSettings`
    `HlsMediaStoreSettings`

    - **ConnectionRetryInterval** *(integer) --* Number of seconds to wait before retrying
    connection to the CDN if the connection is lost.

    - **FilecacheDuration** *(integer) --* Size in seconds of file cache for streaming outputs.

    - **MediaStoreStorageClass** *(string) --* When set to temporal, output files are stored in
    non-persistent memory for faster reading and writing.

    - **NumRetries** *(integer) --* Number of retry attempts that will be made before the Live Event
    is put into an error state.

    - **RestartDelay** *(integer) --* If a streaming output fails, number of seconds to wait until a
    restart is initiated. A value of 0 means never restart.
    """


_ClientCreateChannelResponseChannelEncoderSettingsOutputGroupsOutputGroupSettingsHlsGroupSettingsHlsCdnSettingsHlsWebdavSettingsTypeDef = TypedDict(
    "_ClientCreateChannelResponseChannelEncoderSettingsOutputGroupsOutputGroupSettingsHlsGroupSettingsHlsCdnSettingsHlsWebdavSettingsTypeDef",
    {
        "ConnectionRetryInterval": int,
        "FilecacheDuration": int,
        "HttpTransferMode": str,
        "NumRetries": int,
        "RestartDelay": int,
    },
    total=False,
)


class ClientCreateChannelResponseChannelEncoderSettingsOutputGroupsOutputGroupSettingsHlsGroupSettingsHlsCdnSettingsHlsWebdavSettingsTypeDef(
    _ClientCreateChannelResponseChannelEncoderSettingsOutputGroupsOutputGroupSettingsHlsGroupSettingsHlsCdnSettingsHlsWebdavSettingsTypeDef
):
    """
    Type definition for
    `ClientCreateChannelResponseChannelEncoderSettingsOutputGroupsOutputGroupSettingsHlsGroupSettingsHlsCdnSettings`
    `HlsWebdavSettings`

    - **ConnectionRetryInterval** *(integer) --* Number of seconds to wait before retrying
    connection to the CDN if the connection is lost.

    - **FilecacheDuration** *(integer) --* Size in seconds of file cache for streaming outputs.

    - **HttpTransferMode** *(string) --* Specify whether or not to use chunked transfer encoding to
    WebDAV.

    - **NumRetries** *(integer) --* Number of retry attempts that will be made before the Live Event
    is put into an error state.

    - **RestartDelay** *(integer) --* If a streaming output fails, number of seconds to wait until a
    restart is initiated. A value of 0 means never restart.
    """


_ClientCreateChannelResponseChannelEncoderSettingsOutputGroupsOutputGroupSettingsHlsGroupSettingsHlsCdnSettingsTypeDef = TypedDict(
    "_ClientCreateChannelResponseChannelEncoderSettingsOutputGroupsOutputGroupSettingsHlsGroupSettingsHlsCdnSettingsTypeDef",
    {
        "HlsAkamaiSettings": ClientCreateChannelResponseChannelEncoderSettingsOutputGroupsOutputGroupSettingsHlsGroupSettingsHlsCdnSettingsHlsAkamaiSettingsTypeDef,
        "HlsBasicPutSettings": ClientCreateChannelResponseChannelEncoderSettingsOutputGroupsOutputGroupSettingsHlsGroupSettingsHlsCdnSettingsHlsBasicPutSettingsTypeDef,
        "HlsMediaStoreSettings": ClientCreateChannelResponseChannelEncoderSettingsOutputGroupsOutputGroupSettingsHlsGroupSettingsHlsCdnSettingsHlsMediaStoreSettingsTypeDef,
        "HlsWebdavSettings": ClientCreateChannelResponseChannelEncoderSettingsOutputGroupsOutputGroupSettingsHlsGroupSettingsHlsCdnSettingsHlsWebdavSettingsTypeDef,
    },
    total=False,
)


class ClientCreateChannelResponseChannelEncoderSettingsOutputGroupsOutputGroupSettingsHlsGroupSettingsHlsCdnSettingsTypeDef(
    _ClientCreateChannelResponseChannelEncoderSettingsOutputGroupsOutputGroupSettingsHlsGroupSettingsHlsCdnSettingsTypeDef
):
    """
    Type definition for
    `ClientCreateChannelResponseChannelEncoderSettingsOutputGroupsOutputGroupSettingsHlsGroupSettings`
    `HlsCdnSettings`

    - **HlsAkamaiSettings** *(dict) --* Hls Akamai Settings

      - **ConnectionRetryInterval** *(integer) --* Number of seconds to wait before retrying
      connection to the CDN if the connection is lost.

      - **FilecacheDuration** *(integer) --* Size in seconds of file cache for streaming outputs.

      - **HttpTransferMode** *(string) --* Specify whether or not to use chunked transfer encoding
      to Akamai. User should contact Akamai to enable this feature.

      - **NumRetries** *(integer) --* Number of retry attempts that will be made before the Live
      Event is put into an error state.

      - **RestartDelay** *(integer) --* If a streaming output fails, number of seconds to wait until
      a restart is initiated. A value of 0 means never restart.

      - **Salt** *(string) --* Salt for authenticated Akamai.

      - **Token** *(string) --* Token parameter for authenticated akamai. If not specified, _gda_ is
      used.

    - **HlsBasicPutSettings** *(dict) --* Hls Basic Put Settings

      - **ConnectionRetryInterval** *(integer) --* Number of seconds to wait before retrying
      connection to the CDN if the connection is lost.

      - **FilecacheDuration** *(integer) --* Size in seconds of file cache for streaming outputs.

      - **NumRetries** *(integer) --* Number of retry attempts that will be made before the Live
      Event is put into an error state.

      - **RestartDelay** *(integer) --* If a streaming output fails, number of seconds to wait until
      a restart is initiated. A value of 0 means never restart.

    - **HlsMediaStoreSettings** *(dict) --* Hls Media Store Settings

      - **ConnectionRetryInterval** *(integer) --* Number of seconds to wait before retrying
      connection to the CDN if the connection is lost.

      - **FilecacheDuration** *(integer) --* Size in seconds of file cache for streaming outputs.

      - **MediaStoreStorageClass** *(string) --* When set to temporal, output files are stored in
      non-persistent memory for faster reading and writing.

      - **NumRetries** *(integer) --* Number of retry attempts that will be made before the Live
      Event is put into an error state.

      - **RestartDelay** *(integer) --* If a streaming output fails, number of seconds to wait until
      a restart is initiated. A value of 0 means never restart.

    - **HlsWebdavSettings** *(dict) --* Hls Webdav Settings

      - **ConnectionRetryInterval** *(integer) --* Number of seconds to wait before retrying
      connection to the CDN if the connection is lost.

      - **FilecacheDuration** *(integer) --* Size in seconds of file cache for streaming outputs.

      - **HttpTransferMode** *(string) --* Specify whether or not to use chunked transfer encoding
      to WebDAV.

      - **NumRetries** *(integer) --* Number of retry attempts that will be made before the Live
      Event is put into an error state.

      - **RestartDelay** *(integer) --* If a streaming output fails, number of seconds to wait until
      a restart is initiated. A value of 0 means never restart.
    """


_ClientCreateChannelResponseChannelEncoderSettingsOutputGroupsOutputGroupSettingsHlsGroupSettingsKeyProviderSettingsStaticKeySettingsKeyProviderServerTypeDef = TypedDict(
    "_ClientCreateChannelResponseChannelEncoderSettingsOutputGroupsOutputGroupSettingsHlsGroupSettingsKeyProviderSettingsStaticKeySettingsKeyProviderServerTypeDef",
    {"PasswordParam": str, "Uri": str, "Username": str},
    total=False,
)


class ClientCreateChannelResponseChannelEncoderSettingsOutputGroupsOutputGroupSettingsHlsGroupSettingsKeyProviderSettingsStaticKeySettingsKeyProviderServerTypeDef(
    _ClientCreateChannelResponseChannelEncoderSettingsOutputGroupsOutputGroupSettingsHlsGroupSettingsKeyProviderSettingsStaticKeySettingsKeyProviderServerTypeDef
):
    """
    Type definition for
    `ClientCreateChannelResponseChannelEncoderSettingsOutputGroupsOutputGroupSettingsHlsGroupSettingsKeyProviderSettingsStaticKeySettings`
    `KeyProviderServer`

    - **PasswordParam** *(string) --* key used to extract the password from EC2 Parameter store

    - **Uri** *(string) --* Uniform Resource Identifier - This should be a path to a file accessible
    to the Live system (eg. a http:// URI) depending on the output type. For example, a RTMP
    destination should have a uri simliar to: "rtmp://fmsserver/live".

    - **Username** *(string) --* Documentation update needed
    """


_ClientCreateChannelResponseChannelEncoderSettingsOutputGroupsOutputGroupSettingsHlsGroupSettingsKeyProviderSettingsStaticKeySettingsTypeDef = TypedDict(
    "_ClientCreateChannelResponseChannelEncoderSettingsOutputGroupsOutputGroupSettingsHlsGroupSettingsKeyProviderSettingsStaticKeySettingsTypeDef",
    {
        "KeyProviderServer": ClientCreateChannelResponseChannelEncoderSettingsOutputGroupsOutputGroupSettingsHlsGroupSettingsKeyProviderSettingsStaticKeySettingsKeyProviderServerTypeDef,
        "StaticKeyValue": str,
    },
    total=False,
)


class ClientCreateChannelResponseChannelEncoderSettingsOutputGroupsOutputGroupSettingsHlsGroupSettingsKeyProviderSettingsStaticKeySettingsTypeDef(
    _ClientCreateChannelResponseChannelEncoderSettingsOutputGroupsOutputGroupSettingsHlsGroupSettingsKeyProviderSettingsStaticKeySettingsTypeDef
):
    """
    Type definition for
    `ClientCreateChannelResponseChannelEncoderSettingsOutputGroupsOutputGroupSettingsHlsGroupSettingsKeyProviderSettings`
    `StaticKeySettings`

    - **KeyProviderServer** *(dict) --* The URL of the license server used for protecting content.

      - **PasswordParam** *(string) --* key used to extract the password from EC2 Parameter store

      - **Uri** *(string) --* Uniform Resource Identifier - This should be a path to a file
      accessible to the Live system (eg. a http:// URI) depending on the output type. For example, a
      RTMP destination should have a uri simliar to: "rtmp://fmsserver/live".

      - **Username** *(string) --* Documentation update needed

    - **StaticKeyValue** *(string) --* Static key value as a 32 character hexadecimal string.
    """


_ClientCreateChannelResponseChannelEncoderSettingsOutputGroupsOutputGroupSettingsHlsGroupSettingsKeyProviderSettingsTypeDef = TypedDict(
    "_ClientCreateChannelResponseChannelEncoderSettingsOutputGroupsOutputGroupSettingsHlsGroupSettingsKeyProviderSettingsTypeDef",
    {
        "StaticKeySettings": ClientCreateChannelResponseChannelEncoderSettingsOutputGroupsOutputGroupSettingsHlsGroupSettingsKeyProviderSettingsStaticKeySettingsTypeDef
    },
    total=False,
)


class ClientCreateChannelResponseChannelEncoderSettingsOutputGroupsOutputGroupSettingsHlsGroupSettingsKeyProviderSettingsTypeDef(
    _ClientCreateChannelResponseChannelEncoderSettingsOutputGroupsOutputGroupSettingsHlsGroupSettingsKeyProviderSettingsTypeDef
):
    """
    Type definition for
    `ClientCreateChannelResponseChannelEncoderSettingsOutputGroupsOutputGroupSettingsHlsGroupSettings`
    `KeyProviderSettings`

    - **StaticKeySettings** *(dict) --* Static Key Settings

      - **KeyProviderServer** *(dict) --* The URL of the license server used for protecting content.

        - **PasswordParam** *(string) --* key used to extract the password from EC2 Parameter store

        - **Uri** *(string) --* Uniform Resource Identifier - This should be a path to a file
        accessible to the Live system (eg. a http:// URI) depending on the output type. For example,
        a RTMP destination should have a uri simliar to: "rtmp://fmsserver/live".

        - **Username** *(string) --* Documentation update needed

      - **StaticKeyValue** *(string) --* Static key value as a 32 character hexadecimal string.
    """


_ClientCreateChannelResponseChannelEncoderSettingsOutputGroupsOutputGroupSettingsHlsGroupSettingsTypeDef = TypedDict(
    "_ClientCreateChannelResponseChannelEncoderSettingsOutputGroupsOutputGroupSettingsHlsGroupSettingsTypeDef",
    {
        "AdMarkers": List[str],
        "BaseUrlContent": str,
        "BaseUrlManifest": str,
        "CaptionLanguageMappings": List[
            ClientCreateChannelResponseChannelEncoderSettingsOutputGroupsOutputGroupSettingsHlsGroupSettingsCaptionLanguageMappingsTypeDef
        ],
        "CaptionLanguageSetting": str,
        "ClientCache": str,
        "CodecSpecification": str,
        "ConstantIv": str,
        "Destination": ClientCreateChannelResponseChannelEncoderSettingsOutputGroupsOutputGroupSettingsHlsGroupSettingsDestinationTypeDef,
        "DirectoryStructure": str,
        "EncryptionType": str,
        "HlsCdnSettings": ClientCreateChannelResponseChannelEncoderSettingsOutputGroupsOutputGroupSettingsHlsGroupSettingsHlsCdnSettingsTypeDef,
        "IFrameOnlyPlaylists": str,
        "IndexNSegments": int,
        "InputLossAction": str,
        "IvInManifest": str,
        "IvSource": str,
        "KeepSegments": int,
        "KeyFormat": str,
        "KeyFormatVersions": str,
        "KeyProviderSettings": ClientCreateChannelResponseChannelEncoderSettingsOutputGroupsOutputGroupSettingsHlsGroupSettingsKeyProviderSettingsTypeDef,
        "ManifestCompression": str,
        "ManifestDurationFormat": str,
        "MinSegmentLength": int,
        "Mode": str,
        "OutputSelection": str,
        "ProgramDateTime": str,
        "ProgramDateTimePeriod": int,
        "RedundantManifest": str,
        "SegmentLength": int,
        "SegmentationMode": str,
        "SegmentsPerSubdirectory": int,
        "StreamInfResolution": str,
        "TimedMetadataId3Frame": str,
        "TimedMetadataId3Period": int,
        "TimestampDeltaMilliseconds": int,
        "TsFileMode": str,
    },
    total=False,
)


class ClientCreateChannelResponseChannelEncoderSettingsOutputGroupsOutputGroupSettingsHlsGroupSettingsTypeDef(
    _ClientCreateChannelResponseChannelEncoderSettingsOutputGroupsOutputGroupSettingsHlsGroupSettingsTypeDef
):
    """
    Type definition for
    `ClientCreateChannelResponseChannelEncoderSettingsOutputGroupsOutputGroupSettings`
    `HlsGroupSettings`

    - **AdMarkers** *(list) --* Choose one or more ad marker types to pass SCTE35 signals through to
    this group of Apple HLS outputs.

      - *(string) --* Hls Ad Markers

    - **BaseUrlContent** *(string) --* A partial URI prefix that will be prepended to each output in
    the media .m3u8 file. Can be used if base manifest is delivered from a different URL than the
    main .m3u8 file.

    - **BaseUrlManifest** *(string) --* A partial URI prefix that will be prepended to each output
    in the media .m3u8 file. Can be used if base manifest is delivered from a different URL than the
    main .m3u8 file.

    - **CaptionLanguageMappings** *(list) --* Mapping of up to 4 caption channels to caption
    languages. Is only meaningful if captionLanguageSetting is set to "insert".

      - *(dict) --* Maps a caption channel to an ISO 693-2 language code
      (http://www.loc.gov/standards/iso639-2), with an optional description.

        - **CaptionChannel** *(integer) --* The closed caption channel being described by this
        CaptionLanguageMapping. Each channel mapping must have a unique channel number (maximum of
        4)

        - **LanguageCode** *(string) --* Three character ISO 639-2 language code (see
        http://www.loc.gov/standards/iso639-2)

        - **LanguageDescription** *(string) --* Textual description of language

    - **CaptionLanguageSetting** *(string) --* Applies only to 608 Embedded output captions. insert:
    Include CLOSED-CAPTIONS lines in the manifest. Specify at least one language in the CC1 Language
    Code field. One CLOSED-CAPTION line is added for each Language Code you specify. Make sure to
    specify the languages in the order in which they appear in the original source (if the source is
    embedded format) or the order of the caption selectors (if the source is other than embedded).
    Otherwise, languages in the manifest will not match up properly with the output captions. none:
    Include CLOSED-CAPTIONS=NONE line in the manifest. omit: Omit any CLOSED-CAPTIONS line from the
    manifest.

    - **ClientCache** *(string) --* When set to "disabled", sets the #EXT-X-ALLOW-CACHE:no tag in
    the manifest, which prevents clients from saving media segments for later replay.

    - **CodecSpecification** *(string) --* Specification to use (RFC-6381 or the default RFC-4281)
    during m3u8 playlist generation.

    - **ConstantIv** *(string) --* For use with encryptionType. This is a 128-bit, 16-byte hex value
    represented by a 32-character text string. If ivSource is set to "explicit" then this parameter
    is required and is used as the IV for encryption.

    - **Destination** *(dict) --* A directory or HTTP destination for the HLS segments, manifest
    files, and encryption keys (if enabled).

      - **DestinationRefId** *(string) --* Placeholder documentation for __string

    - **DirectoryStructure** *(string) --* Place segments in subdirectories.

    - **EncryptionType** *(string) --* Encrypts the segments with the given encryption scheme.
    Exclude this parameter if no encryption is desired.

    - **HlsCdnSettings** *(dict) --* Parameters that control interactions with the CDN.

      - **HlsAkamaiSettings** *(dict) --* Hls Akamai Settings

        - **ConnectionRetryInterval** *(integer) --* Number of seconds to wait before retrying
        connection to the CDN if the connection is lost.

        - **FilecacheDuration** *(integer) --* Size in seconds of file cache for streaming outputs.

        - **HttpTransferMode** *(string) --* Specify whether or not to use chunked transfer encoding
        to Akamai. User should contact Akamai to enable this feature.

        - **NumRetries** *(integer) --* Number of retry attempts that will be made before the Live
        Event is put into an error state.

        - **RestartDelay** *(integer) --* If a streaming output fails, number of seconds to wait
        until a restart is initiated. A value of 0 means never restart.

        - **Salt** *(string) --* Salt for authenticated Akamai.

        - **Token** *(string) --* Token parameter for authenticated akamai. If not specified, _gda_
        is used.

      - **HlsBasicPutSettings** *(dict) --* Hls Basic Put Settings

        - **ConnectionRetryInterval** *(integer) --* Number of seconds to wait before retrying
        connection to the CDN if the connection is lost.

        - **FilecacheDuration** *(integer) --* Size in seconds of file cache for streaming outputs.

        - **NumRetries** *(integer) --* Number of retry attempts that will be made before the Live
        Event is put into an error state.

        - **RestartDelay** *(integer) --* If a streaming output fails, number of seconds to wait
        until a restart is initiated. A value of 0 means never restart.

      - **HlsMediaStoreSettings** *(dict) --* Hls Media Store Settings

        - **ConnectionRetryInterval** *(integer) --* Number of seconds to wait before retrying
        connection to the CDN if the connection is lost.

        - **FilecacheDuration** *(integer) --* Size in seconds of file cache for streaming outputs.

        - **MediaStoreStorageClass** *(string) --* When set to temporal, output files are stored in
        non-persistent memory for faster reading and writing.

        - **NumRetries** *(integer) --* Number of retry attempts that will be made before the Live
        Event is put into an error state.

        - **RestartDelay** *(integer) --* If a streaming output fails, number of seconds to wait
        until a restart is initiated. A value of 0 means never restart.

      - **HlsWebdavSettings** *(dict) --* Hls Webdav Settings

        - **ConnectionRetryInterval** *(integer) --* Number of seconds to wait before retrying
        connection to the CDN if the connection is lost.

        - **FilecacheDuration** *(integer) --* Size in seconds of file cache for streaming outputs.

        - **HttpTransferMode** *(string) --* Specify whether or not to use chunked transfer encoding
        to WebDAV.

        - **NumRetries** *(integer) --* Number of retry attempts that will be made before the Live
        Event is put into an error state.

        - **RestartDelay** *(integer) --* If a streaming output fails, number of seconds to wait
        until a restart is initiated. A value of 0 means never restart.

    - **IFrameOnlyPlaylists** *(string) --* DISABLED: Do not create an I-frame-only manifest, but do
    create the master and media manifests (according to the Output Selection field). STANDARD:
    Create an I-frame-only manifest for each output that contains video, as well as the other
    manifests (according to the Output Selection field). The I-frame manifest contains a
    #EXT-X-I-FRAMES-ONLY tag to indicate it is I-frame only, and one or more #EXT-X-BYTERANGE
    entries identifying the I-frame position. For example, #EXT-X-BYTERANGE:160364@1461888"

    - **IndexNSegments** *(integer) --* Applies only if Mode field is LIVE. Specifies the maximum
    number of segments in the media manifest file. After this maximum, older segments are removed
    from the media manifest. This number must be less than or equal to the Keep Segments field.

    - **InputLossAction** *(string) --* Parameter that control output group behavior on input loss.

    - **IvInManifest** *(string) --* For use with encryptionType. The IV (Initialization Vector) is
    a 128-bit number used in conjunction with the key for encrypting blocks. If set to "include", IV
    is listed in the manifest, otherwise the IV is not in the manifest.

    - **IvSource** *(string) --* For use with encryptionType. The IV (Initialization Vector) is a
    128-bit number used in conjunction with the key for encrypting blocks. If this setting is
    "followsSegmentNumber", it will cause the IV to change every segment (to match the segment
    number). If this is set to "explicit", you must enter a constantIv value.

    - **KeepSegments** *(integer) --* Applies only if Mode field is LIVE. Specifies the number of
    media segments (.ts files) to retain in the destination directory.

    - **KeyFormat** *(string) --* The value specifies how the key is represented in the resource
    identified by the URI. If parameter is absent, an implicit value of "identity" is used. A
    reverse DNS string can also be given.

    - **KeyFormatVersions** *(string) --* Either a single positive integer version value or a slash
    delimited list of version values (1/2/3).

    - **KeyProviderSettings** *(dict) --* The key provider settings.

      - **StaticKeySettings** *(dict) --* Static Key Settings

        - **KeyProviderServer** *(dict) --* The URL of the license server used for protecting
        content.

          - **PasswordParam** *(string) --* key used to extract the password from EC2 Parameter
          store

          - **Uri** *(string) --* Uniform Resource Identifier - This should be a path to a file
          accessible to the Live system (eg. a http:// URI) depending on the output type. For
          example, a RTMP destination should have a uri simliar to: "rtmp://fmsserver/live".

          - **Username** *(string) --* Documentation update needed

        - **StaticKeyValue** *(string) --* Static key value as a 32 character hexadecimal string.

    - **ManifestCompression** *(string) --* When set to gzip, compresses HLS playlist.

    - **ManifestDurationFormat** *(string) --* Indicates whether the output manifest should use
    floating point or integer values for segment duration.

    - **MinSegmentLength** *(integer) --* When set, minimumSegmentLength is enforced by looking
    ahead and back within the specified range for a nearby avail and extending the segment size if
    needed.

    - **Mode** *(string) --* If "vod", all segments are indexed and kept permanently in the
    destination and manifest. If "live", only the number segments specified in keepSegments and
    indexNSegments are kept; newer segments replace older segments, which may prevent players from
    rewinding all the way to the beginning of the event. VOD mode uses HLS EXT-X-PLAYLIST-TYPE of
    EVENT while the channel is running, converting it to a "VOD" type manifest on completion of the
    stream.

    - **OutputSelection** *(string) --* MANIFESTSANDSEGMENTS: Generates manifests (master manifest,
    if applicable, and media manifests) for this output group. SEGMENTSONLY: Does not generate any
    manifests for this output group.

    - **ProgramDateTime** *(string) --* Includes or excludes EXT-X-PROGRAM-DATE-TIME tag in .m3u8
    manifest files. The value is calculated as follows: either the program date and time are
    initialized using the input timecode source, or the time is initialized using the input timecode
    source and the date is initialized using the timestampOffset.

    - **ProgramDateTimePeriod** *(integer) --* Period of insertion of EXT-X-PROGRAM-DATE-TIME entry,
    in seconds.

    - **RedundantManifest** *(string) --* ENABLED: The master manifest (.m3u8 file) for each
    pipeline includes information about both pipelines: first its own media files, then the media
    files of the other pipeline. This feature allows playout device that support stale manifest
    detection to switch from one manifest to the other, when the current manifest seems to be stale.
    There are still two destinations and two master manifests, but both master manifests reference
    the media files from both pipelines. DISABLED: The master manifest (.m3u8 file) for each
    pipeline includes information about its own pipeline only. For an HLS output group with
    MediaPackage as the destination, the DISABLED behavior is always followed. MediaPackage
    regenerates the manifests it serves to players so a redundant manifest from MediaLive is
    irrelevant.

    - **SegmentLength** *(integer) --* Length of MPEG-2 Transport Stream segments to create (in
    seconds). Note that segments will end on the next keyframe after this number of seconds, so
    actual segment length may be longer.

    - **SegmentationMode** *(string) --* useInputSegmentation has been deprecated. The configured
    segment size is always used.

    - **SegmentsPerSubdirectory** *(integer) --* Number of segments to write to a subdirectory
    before starting a new one. directoryStructure must be subdirectoryPerStream for this setting to
    have an effect.

    - **StreamInfResolution** *(string) --* Include or exclude RESOLUTION attribute for video in
    EXT-X-STREAM-INF tag of variant manifest.

    - **TimedMetadataId3Frame** *(string) --* Indicates ID3 frame that has the timecode.

    - **TimedMetadataId3Period** *(integer) --* Timed Metadata interval in seconds.

    - **TimestampDeltaMilliseconds** *(integer) --* Provides an extra millisecond delta offset to
    fine tune the timestamps.

    - **TsFileMode** *(string) --* SEGMENTEDFILES: Emit the program as segments - multiple .ts media
    files. SINGLEFILE: Applies only if Mode field is VOD. Emit the program as a single .ts media
    file. The media manifest includes #EXT-X-BYTERANGE tags to index segments for playback. A
    typical use for this value is when sending the output to AWS Elemental MediaConvert, which can
    accept only a single media file. Playback while the channel is running is not guaranteed due to
    HTTP server caching.
    """


_ClientCreateChannelResponseChannelEncoderSettingsOutputGroupsOutputGroupSettingsMediaPackageGroupSettingsDestinationTypeDef = TypedDict(
    "_ClientCreateChannelResponseChannelEncoderSettingsOutputGroupsOutputGroupSettingsMediaPackageGroupSettingsDestinationTypeDef",
    {"DestinationRefId": str},
    total=False,
)


class ClientCreateChannelResponseChannelEncoderSettingsOutputGroupsOutputGroupSettingsMediaPackageGroupSettingsDestinationTypeDef(
    _ClientCreateChannelResponseChannelEncoderSettingsOutputGroupsOutputGroupSettingsMediaPackageGroupSettingsDestinationTypeDef
):
    """
    Type definition for
    `ClientCreateChannelResponseChannelEncoderSettingsOutputGroupsOutputGroupSettingsMediaPackageGroupSettings`
    `Destination`

    - **DestinationRefId** *(string) --* Placeholder documentation for __string
    """


_ClientCreateChannelResponseChannelEncoderSettingsOutputGroupsOutputGroupSettingsMediaPackageGroupSettingsTypeDef = TypedDict(
    "_ClientCreateChannelResponseChannelEncoderSettingsOutputGroupsOutputGroupSettingsMediaPackageGroupSettingsTypeDef",
    {
        "Destination": ClientCreateChannelResponseChannelEncoderSettingsOutputGroupsOutputGroupSettingsMediaPackageGroupSettingsDestinationTypeDef
    },
    total=False,
)


class ClientCreateChannelResponseChannelEncoderSettingsOutputGroupsOutputGroupSettingsMediaPackageGroupSettingsTypeDef(
    _ClientCreateChannelResponseChannelEncoderSettingsOutputGroupsOutputGroupSettingsMediaPackageGroupSettingsTypeDef
):
    """
    Type definition for
    `ClientCreateChannelResponseChannelEncoderSettingsOutputGroupsOutputGroupSettings`
    `MediaPackageGroupSettings`

    - **Destination** *(dict) --* MediaPackage channel destination.

      - **DestinationRefId** *(string) --* Placeholder documentation for __string
    """


_ClientCreateChannelResponseChannelEncoderSettingsOutputGroupsOutputGroupSettingsMsSmoothGroupSettingsDestinationTypeDef = TypedDict(
    "_ClientCreateChannelResponseChannelEncoderSettingsOutputGroupsOutputGroupSettingsMsSmoothGroupSettingsDestinationTypeDef",
    {"DestinationRefId": str},
    total=False,
)


class ClientCreateChannelResponseChannelEncoderSettingsOutputGroupsOutputGroupSettingsMsSmoothGroupSettingsDestinationTypeDef(
    _ClientCreateChannelResponseChannelEncoderSettingsOutputGroupsOutputGroupSettingsMsSmoothGroupSettingsDestinationTypeDef
):
    """
    Type definition for
    `ClientCreateChannelResponseChannelEncoderSettingsOutputGroupsOutputGroupSettingsMsSmoothGroupSettings`
    `Destination`

    - **DestinationRefId** *(string) --* Placeholder documentation for __string
    """


_ClientCreateChannelResponseChannelEncoderSettingsOutputGroupsOutputGroupSettingsMsSmoothGroupSettingsTypeDef = TypedDict(
    "_ClientCreateChannelResponseChannelEncoderSettingsOutputGroupsOutputGroupSettingsMsSmoothGroupSettingsTypeDef",
    {
        "AcquisitionPointId": str,
        "AudioOnlyTimecodeControl": str,
        "CertificateMode": str,
        "ConnectionRetryInterval": int,
        "Destination": ClientCreateChannelResponseChannelEncoderSettingsOutputGroupsOutputGroupSettingsMsSmoothGroupSettingsDestinationTypeDef,
        "EventId": str,
        "EventIdMode": str,
        "EventStopBehavior": str,
        "FilecacheDuration": int,
        "FragmentLength": int,
        "InputLossAction": str,
        "NumRetries": int,
        "RestartDelay": int,
        "SegmentationMode": str,
        "SendDelayMs": int,
        "SparseTrackType": str,
        "StreamManifestBehavior": str,
        "TimestampOffset": str,
        "TimestampOffsetMode": str,
    },
    total=False,
)


class ClientCreateChannelResponseChannelEncoderSettingsOutputGroupsOutputGroupSettingsMsSmoothGroupSettingsTypeDef(
    _ClientCreateChannelResponseChannelEncoderSettingsOutputGroupsOutputGroupSettingsMsSmoothGroupSettingsTypeDef
):
    """
    Type definition for
    `ClientCreateChannelResponseChannelEncoderSettingsOutputGroupsOutputGroupSettings`
    `MsSmoothGroupSettings`

    - **AcquisitionPointId** *(string) --* The value of the "Acquisition Point Identity" element
    used in each message placed in the sparse track. Only enabled if sparseTrackType is not "none".

    - **AudioOnlyTimecodeControl** *(string) --* If set to passthrough for an audio-only MS Smooth
    output, the fragment absolute time will be set to the current timecode. This option does not
    write timecodes to the audio elementary stream.

    - **CertificateMode** *(string) --* If set to verifyAuthenticity, verify the https certificate
    chain to a trusted Certificate Authority (CA). This will cause https outputs to self-signed
    certificates to fail.

    - **ConnectionRetryInterval** *(integer) --* Number of seconds to wait before retrying
    connection to the IIS server if the connection is lost. Content will be cached during this time
    and the cache will be be delivered to the IIS server once the connection is re-established.

    - **Destination** *(dict) --* Smooth Streaming publish point on an IIS server. Elemental Live
    acts as a "Push" encoder to IIS.

      - **DestinationRefId** *(string) --* Placeholder documentation for __string

    - **EventId** *(string) --* MS Smooth event ID to be sent to the IIS server. Should only be
    specified if eventIdMode is set to useConfigured.

    - **EventIdMode** *(string) --* Specifies whether or not to send an event ID to the IIS server.
    If no event ID is sent and the same Live Event is used without changing the publishing point,
    clients might see cached video from the previous run. Options: - "useConfigured" - use the value
    provided in eventId - "useTimestamp" - generate and send an event ID based on the current
    timestamp - "noEventId" - do not send an event ID to the IIS server.

    - **EventStopBehavior** *(string) --* When set to sendEos, send EOS signal to IIS server when
    stopping the event

    - **FilecacheDuration** *(integer) --* Size in seconds of file cache for streaming outputs.

    - **FragmentLength** *(integer) --* Length of mp4 fragments to generate (in seconds). Fragment
    length must be compatible with GOP size and framerate.

    - **InputLossAction** *(string) --* Parameter that control output group behavior on input loss.

    - **NumRetries** *(integer) --* Number of retry attempts.

    - **RestartDelay** *(integer) --* Number of seconds before initiating a restart due to output
    failure, due to exhausting the numRetries on one segment, or exceeding filecacheDuration.

    - **SegmentationMode** *(string) --* useInputSegmentation has been deprecated. The configured
    segment size is always used.

    - **SendDelayMs** *(integer) --* Number of milliseconds to delay the output from the second
    pipeline.

    - **SparseTrackType** *(string) --* If set to scte35, use incoming SCTE-35 messages to generate
    a sparse track in this group of MS-Smooth outputs.

    - **StreamManifestBehavior** *(string) --* When set to send, send stream manifest so publishing
    point doesn't start until all streams start.

    - **TimestampOffset** *(string) --* Timestamp offset for the event. Only used if
    timestampOffsetMode is set to useConfiguredOffset.

    - **TimestampOffsetMode** *(string) --* Type of timestamp date offset to use. -
    useEventStartDate: Use the date the event was started as the offset - useConfiguredOffset: Use
    an explicitly configured date as the offset
    """


_ClientCreateChannelResponseChannelEncoderSettingsOutputGroupsOutputGroupSettingsRtmpGroupSettingsTypeDef = TypedDict(
    "_ClientCreateChannelResponseChannelEncoderSettingsOutputGroupsOutputGroupSettingsRtmpGroupSettingsTypeDef",
    {
        "AuthenticationScheme": str,
        "CacheFullBehavior": str,
        "CacheLength": int,
        "CaptionData": str,
        "InputLossAction": str,
        "RestartDelay": int,
    },
    total=False,
)


class ClientCreateChannelResponseChannelEncoderSettingsOutputGroupsOutputGroupSettingsRtmpGroupSettingsTypeDef(
    _ClientCreateChannelResponseChannelEncoderSettingsOutputGroupsOutputGroupSettingsRtmpGroupSettingsTypeDef
):
    """
    Type definition for
    `ClientCreateChannelResponseChannelEncoderSettingsOutputGroupsOutputGroupSettings`
    `RtmpGroupSettings`

    - **AuthenticationScheme** *(string) --* Authentication scheme to use when connecting with CDN

    - **CacheFullBehavior** *(string) --* Controls behavior when content cache fills up. If remote
    origin server stalls the RTMP connection and does not accept content fast enough the 'Media
    Cache' will fill up. When the cache reaches the duration specified by cacheLength the cache will
    stop accepting new content. If set to disconnectImmediately, the RTMP output will force a
    disconnect. Clear the media cache, and reconnect after restartDelay seconds. If set to
    waitForServer, the RTMP output will wait up to 5 minutes to allow the origin server to begin
    accepting data again.

    - **CacheLength** *(integer) --* Cache length, in seconds, is used to calculate buffer size.

    - **CaptionData** *(string) --* Controls the types of data that passes to onCaptionInfo outputs.
    If set to 'all' then 608 and 708 carried DTVCC data will be passed. If set to
    'field1AndField2608' then DTVCC data will be stripped out, but 608 data from both fields will be
    passed. If set to 'field1608' then only the data carried in 608 from field 1 video will be
    passed.

    - **InputLossAction** *(string) --* Controls the behavior of this RTMP group if input becomes
    unavailable. - emitOutput: Emit a slate until input returns. - pauseOutput: Stop transmitting
    data until input returns. This does not close the underlying RTMP connection.

    - **RestartDelay** *(integer) --* If a streaming output fails, number of seconds to wait until a
    restart is initiated. A value of 0 means never restart.
    """


_ClientCreateChannelResponseChannelEncoderSettingsOutputGroupsOutputGroupSettingsUdpGroupSettingsTypeDef = TypedDict(
    "_ClientCreateChannelResponseChannelEncoderSettingsOutputGroupsOutputGroupSettingsUdpGroupSettingsTypeDef",
    {"InputLossAction": str, "TimedMetadataId3Frame": str, "TimedMetadataId3Period": int},
    total=False,
)


class ClientCreateChannelResponseChannelEncoderSettingsOutputGroupsOutputGroupSettingsUdpGroupSettingsTypeDef(
    _ClientCreateChannelResponseChannelEncoderSettingsOutputGroupsOutputGroupSettingsUdpGroupSettingsTypeDef
):
    """
    Type definition for
    `ClientCreateChannelResponseChannelEncoderSettingsOutputGroupsOutputGroupSettings`
    `UdpGroupSettings`

    - **InputLossAction** *(string) --* Specifies behavior of last resort when input video is lost,
    and no more backup inputs are available. When dropTs is selected the entire transport stream
    will stop being emitted. When dropProgram is selected the program can be dropped from the
    transport stream (and replaced with null packets to meet the TS bitrate requirement). Or, when
    emitProgram is chosen the transport stream will continue to be produced normally with repeat
    frames, black frames, or slate frames substituted for the absent input video.

    - **TimedMetadataId3Frame** *(string) --* Indicates ID3 frame that has the timecode.

    - **TimedMetadataId3Period** *(integer) --* Timed Metadata interval in seconds.
    """


_ClientCreateChannelResponseChannelEncoderSettingsOutputGroupsOutputGroupSettingsTypeDef = TypedDict(
    "_ClientCreateChannelResponseChannelEncoderSettingsOutputGroupsOutputGroupSettingsTypeDef",
    {
        "ArchiveGroupSettings": ClientCreateChannelResponseChannelEncoderSettingsOutputGroupsOutputGroupSettingsArchiveGroupSettingsTypeDef,
        "FrameCaptureGroupSettings": ClientCreateChannelResponseChannelEncoderSettingsOutputGroupsOutputGroupSettingsFrameCaptureGroupSettingsTypeDef,
        "HlsGroupSettings": ClientCreateChannelResponseChannelEncoderSettingsOutputGroupsOutputGroupSettingsHlsGroupSettingsTypeDef,
        "MediaPackageGroupSettings": ClientCreateChannelResponseChannelEncoderSettingsOutputGroupsOutputGroupSettingsMediaPackageGroupSettingsTypeDef,
        "MsSmoothGroupSettings": ClientCreateChannelResponseChannelEncoderSettingsOutputGroupsOutputGroupSettingsMsSmoothGroupSettingsTypeDef,
        "MultiplexGroupSettings": Dict,
        "RtmpGroupSettings": ClientCreateChannelResponseChannelEncoderSettingsOutputGroupsOutputGroupSettingsRtmpGroupSettingsTypeDef,
        "UdpGroupSettings": ClientCreateChannelResponseChannelEncoderSettingsOutputGroupsOutputGroupSettingsUdpGroupSettingsTypeDef,
    },
    total=False,
)


class ClientCreateChannelResponseChannelEncoderSettingsOutputGroupsOutputGroupSettingsTypeDef(
    _ClientCreateChannelResponseChannelEncoderSettingsOutputGroupsOutputGroupSettingsTypeDef
):
    """
    Type definition for `ClientCreateChannelResponseChannelEncoderSettingsOutputGroups`
    `OutputGroupSettings`

    - **ArchiveGroupSettings** *(dict) --* Archive Group Settings

      - **Destination** *(dict) --* A directory and base filename where archive files should be
      written.

        - **DestinationRefId** *(string) --* Placeholder documentation for __string

      - **RolloverInterval** *(integer) --* Number of seconds to write to archive file before
      closing and starting a new one.

    - **FrameCaptureGroupSettings** *(dict) --* Frame Capture Group Settings

      - **Destination** *(dict) --* The destination for the frame capture files. Either the URI for
      an Amazon S3 bucket and object, plus a file name prefix (for example,
      s3ssl://sportsDelivery/highlights/20180820/curling_) or the URI for a MediaStore container,
      plus a file name prefix (for example, mediastoressl://sportsDelivery/20180820/curling_). The
      final file names consist of the prefix from the destination field (for example, "curling_") +
      name modifier + the counter (5 digits, starting from 00001) + extension (which is always
      .jpg). For example, curlingLow.00001.jpg

        - **DestinationRefId** *(string) --* Placeholder documentation for __string

    - **HlsGroupSettings** *(dict) --* Hls Group Settings

      - **AdMarkers** *(list) --* Choose one or more ad marker types to pass SCTE35 signals through
      to this group of Apple HLS outputs.

        - *(string) --* Hls Ad Markers

      - **BaseUrlContent** *(string) --* A partial URI prefix that will be prepended to each output
      in the media .m3u8 file. Can be used if base manifest is delivered from a different URL than
      the main .m3u8 file.

      - **BaseUrlManifest** *(string) --* A partial URI prefix that will be prepended to each output
      in the media .m3u8 file. Can be used if base manifest is delivered from a different URL than
      the main .m3u8 file.

      - **CaptionLanguageMappings** *(list) --* Mapping of up to 4 caption channels to caption
      languages. Is only meaningful if captionLanguageSetting is set to "insert".

        - *(dict) --* Maps a caption channel to an ISO 693-2 language code
        (http://www.loc.gov/standards/iso639-2), with an optional description.

          - **CaptionChannel** *(integer) --* The closed caption channel being described by this
          CaptionLanguageMapping. Each channel mapping must have a unique channel number (maximum of
          4)

          - **LanguageCode** *(string) --* Three character ISO 639-2 language code (see
          http://www.loc.gov/standards/iso639-2)

          - **LanguageDescription** *(string) --* Textual description of language

      - **CaptionLanguageSetting** *(string) --* Applies only to 608 Embedded output captions.
      insert: Include CLOSED-CAPTIONS lines in the manifest. Specify at least one language in the
      CC1 Language Code field. One CLOSED-CAPTION line is added for each Language Code you specify.
      Make sure to specify the languages in the order in which they appear in the original source
      (if the source is embedded format) or the order of the caption selectors (if the source is
      other than embedded). Otherwise, languages in the manifest will not match up properly with the
      output captions. none: Include CLOSED-CAPTIONS=NONE line in the manifest. omit: Omit any
      CLOSED-CAPTIONS line from the manifest.

      - **ClientCache** *(string) --* When set to "disabled", sets the #EXT-X-ALLOW-CACHE:no tag in
      the manifest, which prevents clients from saving media segments for later replay.

      - **CodecSpecification** *(string) --* Specification to use (RFC-6381 or the default RFC-4281)
      during m3u8 playlist generation.

      - **ConstantIv** *(string) --* For use with encryptionType. This is a 128-bit, 16-byte hex
      value represented by a 32-character text string. If ivSource is set to "explicit" then this
      parameter is required and is used as the IV for encryption.

      - **Destination** *(dict) --* A directory or HTTP destination for the HLS segments, manifest
      files, and encryption keys (if enabled).

        - **DestinationRefId** *(string) --* Placeholder documentation for __string

      - **DirectoryStructure** *(string) --* Place segments in subdirectories.

      - **EncryptionType** *(string) --* Encrypts the segments with the given encryption scheme.
      Exclude this parameter if no encryption is desired.

      - **HlsCdnSettings** *(dict) --* Parameters that control interactions with the CDN.

        - **HlsAkamaiSettings** *(dict) --* Hls Akamai Settings

          - **ConnectionRetryInterval** *(integer) --* Number of seconds to wait before retrying
          connection to the CDN if the connection is lost.

          - **FilecacheDuration** *(integer) --* Size in seconds of file cache for streaming
          outputs.

          - **HttpTransferMode** *(string) --* Specify whether or not to use chunked transfer
          encoding to Akamai. User should contact Akamai to enable this feature.

          - **NumRetries** *(integer) --* Number of retry attempts that will be made before the Live
          Event is put into an error state.

          - **RestartDelay** *(integer) --* If a streaming output fails, number of seconds to wait
          until a restart is initiated. A value of 0 means never restart.

          - **Salt** *(string) --* Salt for authenticated Akamai.

          - **Token** *(string) --* Token parameter for authenticated akamai. If not specified,
          _gda_ is used.

        - **HlsBasicPutSettings** *(dict) --* Hls Basic Put Settings

          - **ConnectionRetryInterval** *(integer) --* Number of seconds to wait before retrying
          connection to the CDN if the connection is lost.

          - **FilecacheDuration** *(integer) --* Size in seconds of file cache for streaming
          outputs.

          - **NumRetries** *(integer) --* Number of retry attempts that will be made before the Live
          Event is put into an error state.

          - **RestartDelay** *(integer) --* If a streaming output fails, number of seconds to wait
          until a restart is initiated. A value of 0 means never restart.

        - **HlsMediaStoreSettings** *(dict) --* Hls Media Store Settings

          - **ConnectionRetryInterval** *(integer) --* Number of seconds to wait before retrying
          connection to the CDN if the connection is lost.

          - **FilecacheDuration** *(integer) --* Size in seconds of file cache for streaming
          outputs.

          - **MediaStoreStorageClass** *(string) --* When set to temporal, output files are stored
          in non-persistent memory for faster reading and writing.

          - **NumRetries** *(integer) --* Number of retry attempts that will be made before the Live
          Event is put into an error state.

          - **RestartDelay** *(integer) --* If a streaming output fails, number of seconds to wait
          until a restart is initiated. A value of 0 means never restart.

        - **HlsWebdavSettings** *(dict) --* Hls Webdav Settings

          - **ConnectionRetryInterval** *(integer) --* Number of seconds to wait before retrying
          connection to the CDN if the connection is lost.

          - **FilecacheDuration** *(integer) --* Size in seconds of file cache for streaming
          outputs.

          - **HttpTransferMode** *(string) --* Specify whether or not to use chunked transfer
          encoding to WebDAV.

          - **NumRetries** *(integer) --* Number of retry attempts that will be made before the Live
          Event is put into an error state.

          - **RestartDelay** *(integer) --* If a streaming output fails, number of seconds to wait
          until a restart is initiated. A value of 0 means never restart.

      - **IFrameOnlyPlaylists** *(string) --* DISABLED: Do not create an I-frame-only manifest, but
      do create the master and media manifests (according to the Output Selection field). STANDARD:
      Create an I-frame-only manifest for each output that contains video, as well as the other
      manifests (according to the Output Selection field). The I-frame manifest contains a
      #EXT-X-I-FRAMES-ONLY tag to indicate it is I-frame only, and one or more #EXT-X-BYTERANGE
      entries identifying the I-frame position. For example, #EXT-X-BYTERANGE:160364@1461888"

      - **IndexNSegments** *(integer) --* Applies only if Mode field is LIVE. Specifies the maximum
      number of segments in the media manifest file. After this maximum, older segments are removed
      from the media manifest. This number must be less than or equal to the Keep Segments field.

      - **InputLossAction** *(string) --* Parameter that control output group behavior on input
      loss.

      - **IvInManifest** *(string) --* For use with encryptionType. The IV (Initialization Vector)
      is a 128-bit number used in conjunction with the key for encrypting blocks. If set to
      "include", IV is listed in the manifest, otherwise the IV is not in the manifest.

      - **IvSource** *(string) --* For use with encryptionType. The IV (Initialization Vector) is a
      128-bit number used in conjunction with the key for encrypting blocks. If this setting is
      "followsSegmentNumber", it will cause the IV to change every segment (to match the segment
      number). If this is set to "explicit", you must enter a constantIv value.

      - **KeepSegments** *(integer) --* Applies only if Mode field is LIVE. Specifies the number of
      media segments (.ts files) to retain in the destination directory.

      - **KeyFormat** *(string) --* The value specifies how the key is represented in the resource
      identified by the URI. If parameter is absent, an implicit value of "identity" is used. A
      reverse DNS string can also be given.

      - **KeyFormatVersions** *(string) --* Either a single positive integer version value or a
      slash delimited list of version values (1/2/3).

      - **KeyProviderSettings** *(dict) --* The key provider settings.

        - **StaticKeySettings** *(dict) --* Static Key Settings

          - **KeyProviderServer** *(dict) --* The URL of the license server used for protecting
          content.

            - **PasswordParam** *(string) --* key used to extract the password from EC2 Parameter
            store

            - **Uri** *(string) --* Uniform Resource Identifier - This should be a path to a file
            accessible to the Live system (eg. a http:// URI) depending on the output type. For
            example, a RTMP destination should have a uri simliar to: "rtmp://fmsserver/live".

            - **Username** *(string) --* Documentation update needed

          - **StaticKeyValue** *(string) --* Static key value as a 32 character hexadecimal string.

      - **ManifestCompression** *(string) --* When set to gzip, compresses HLS playlist.

      - **ManifestDurationFormat** *(string) --* Indicates whether the output manifest should use
      floating point or integer values for segment duration.

      - **MinSegmentLength** *(integer) --* When set, minimumSegmentLength is enforced by looking
      ahead and back within the specified range for a nearby avail and extending the segment size if
      needed.

      - **Mode** *(string) --* If "vod", all segments are indexed and kept permanently in the
      destination and manifest. If "live", only the number segments specified in keepSegments and
      indexNSegments are kept; newer segments replace older segments, which may prevent players from
      rewinding all the way to the beginning of the event. VOD mode uses HLS EXT-X-PLAYLIST-TYPE of
      EVENT while the channel is running, converting it to a "VOD" type manifest on completion of
      the stream.

      - **OutputSelection** *(string) --* MANIFESTSANDSEGMENTS: Generates manifests (master
      manifest, if applicable, and media manifests) for this output group. SEGMENTSONLY: Does not
      generate any manifests for this output group.

      - **ProgramDateTime** *(string) --* Includes or excludes EXT-X-PROGRAM-DATE-TIME tag in .m3u8
      manifest files. The value is calculated as follows: either the program date and time are
      initialized using the input timecode source, or the time is initialized using the input
      timecode source and the date is initialized using the timestampOffset.

      - **ProgramDateTimePeriod** *(integer) --* Period of insertion of EXT-X-PROGRAM-DATE-TIME
      entry, in seconds.

      - **RedundantManifest** *(string) --* ENABLED: The master manifest (.m3u8 file) for each
      pipeline includes information about both pipelines: first its own media files, then the media
      files of the other pipeline. This feature allows playout device that support stale manifest
      detection to switch from one manifest to the other, when the current manifest seems to be
      stale. There are still two destinations and two master manifests, but both master manifests
      reference the media files from both pipelines. DISABLED: The master manifest (.m3u8 file) for
      each pipeline includes information about its own pipeline only. For an HLS output group with
      MediaPackage as the destination, the DISABLED behavior is always followed. MediaPackage
      regenerates the manifests it serves to players so a redundant manifest from MediaLive is
      irrelevant.

      - **SegmentLength** *(integer) --* Length of MPEG-2 Transport Stream segments to create (in
      seconds). Note that segments will end on the next keyframe after this number of seconds, so
      actual segment length may be longer.

      - **SegmentationMode** *(string) --* useInputSegmentation has been deprecated. The configured
      segment size is always used.

      - **SegmentsPerSubdirectory** *(integer) --* Number of segments to write to a subdirectory
      before starting a new one. directoryStructure must be subdirectoryPerStream for this setting
      to have an effect.

      - **StreamInfResolution** *(string) --* Include or exclude RESOLUTION attribute for video in
      EXT-X-STREAM-INF tag of variant manifest.

      - **TimedMetadataId3Frame** *(string) --* Indicates ID3 frame that has the timecode.

      - **TimedMetadataId3Period** *(integer) --* Timed Metadata interval in seconds.

      - **TimestampDeltaMilliseconds** *(integer) --* Provides an extra millisecond delta offset to
      fine tune the timestamps.

      - **TsFileMode** *(string) --* SEGMENTEDFILES: Emit the program as segments - multiple .ts
      media files. SINGLEFILE: Applies only if Mode field is VOD. Emit the program as a single .ts
      media file. The media manifest includes #EXT-X-BYTERANGE tags to index segments for playback.
      A typical use for this value is when sending the output to AWS Elemental MediaConvert, which
      can accept only a single media file. Playback while the channel is running is not guaranteed
      due to HTTP server caching.

    - **MediaPackageGroupSettings** *(dict) --* Media Package Group Settings

      - **Destination** *(dict) --* MediaPackage channel destination.

        - **DestinationRefId** *(string) --* Placeholder documentation for __string

    - **MsSmoothGroupSettings** *(dict) --* Ms Smooth Group Settings

      - **AcquisitionPointId** *(string) --* The value of the "Acquisition Point Identity" element
      used in each message placed in the sparse track. Only enabled if sparseTrackType is not
      "none".

      - **AudioOnlyTimecodeControl** *(string) --* If set to passthrough for an audio-only MS Smooth
      output, the fragment absolute time will be set to the current timecode. This option does not
      write timecodes to the audio elementary stream.

      - **CertificateMode** *(string) --* If set to verifyAuthenticity, verify the https certificate
      chain to a trusted Certificate Authority (CA). This will cause https outputs to self-signed
      certificates to fail.

      - **ConnectionRetryInterval** *(integer) --* Number of seconds to wait before retrying
      connection to the IIS server if the connection is lost. Content will be cached during this
      time and the cache will be be delivered to the IIS server once the connection is
      re-established.

      - **Destination** *(dict) --* Smooth Streaming publish point on an IIS server. Elemental Live
      acts as a "Push" encoder to IIS.

        - **DestinationRefId** *(string) --* Placeholder documentation for __string

      - **EventId** *(string) --* MS Smooth event ID to be sent to the IIS server. Should only be
      specified if eventIdMode is set to useConfigured.

      - **EventIdMode** *(string) --* Specifies whether or not to send an event ID to the IIS
      server. If no event ID is sent and the same Live Event is used without changing the publishing
      point, clients might see cached video from the previous run. Options: - "useConfigured" - use
      the value provided in eventId - "useTimestamp" - generate and send an event ID based on the
      current timestamp - "noEventId" - do not send an event ID to the IIS server.

      - **EventStopBehavior** *(string) --* When set to sendEos, send EOS signal to IIS server when
      stopping the event

      - **FilecacheDuration** *(integer) --* Size in seconds of file cache for streaming outputs.

      - **FragmentLength** *(integer) --* Length of mp4 fragments to generate (in seconds). Fragment
      length must be compatible with GOP size and framerate.

      - **InputLossAction** *(string) --* Parameter that control output group behavior on input
      loss.

      - **NumRetries** *(integer) --* Number of retry attempts.

      - **RestartDelay** *(integer) --* Number of seconds before initiating a restart due to output
      failure, due to exhausting the numRetries on one segment, or exceeding filecacheDuration.

      - **SegmentationMode** *(string) --* useInputSegmentation has been deprecated. The configured
      segment size is always used.

      - **SendDelayMs** *(integer) --* Number of milliseconds to delay the output from the second
      pipeline.

      - **SparseTrackType** *(string) --* If set to scte35, use incoming SCTE-35 messages to
      generate a sparse track in this group of MS-Smooth outputs.

      - **StreamManifestBehavior** *(string) --* When set to send, send stream manifest so
      publishing point doesn't start until all streams start.

      - **TimestampOffset** *(string) --* Timestamp offset for the event. Only used if
      timestampOffsetMode is set to useConfiguredOffset.

      - **TimestampOffsetMode** *(string) --* Type of timestamp date offset to use. -
      useEventStartDate: Use the date the event was started as the offset - useConfiguredOffset: Use
      an explicitly configured date as the offset

    - **MultiplexGroupSettings** *(dict) --* Multiplex Group Settings

    - **RtmpGroupSettings** *(dict) --* Rtmp Group Settings

      - **AuthenticationScheme** *(string) --* Authentication scheme to use when connecting with CDN

      - **CacheFullBehavior** *(string) --* Controls behavior when content cache fills up. If remote
      origin server stalls the RTMP connection and does not accept content fast enough the 'Media
      Cache' will fill up. When the cache reaches the duration specified by cacheLength the cache
      will stop accepting new content. If set to disconnectImmediately, the RTMP output will force a
      disconnect. Clear the media cache, and reconnect after restartDelay seconds. If set to
      waitForServer, the RTMP output will wait up to 5 minutes to allow the origin server to begin
      accepting data again.

      - **CacheLength** *(integer) --* Cache length, in seconds, is used to calculate buffer size.

      - **CaptionData** *(string) --* Controls the types of data that passes to onCaptionInfo
      outputs. If set to 'all' then 608 and 708 carried DTVCC data will be passed. If set to
      'field1AndField2608' then DTVCC data will be stripped out, but 608 data from both fields will
      be passed. If set to 'field1608' then only the data carried in 608 from field 1 video will be
      passed.

      - **InputLossAction** *(string) --* Controls the behavior of this RTMP group if input becomes
      unavailable. - emitOutput: Emit a slate until input returns. - pauseOutput: Stop transmitting
      data until input returns. This does not close the underlying RTMP connection.

      - **RestartDelay** *(integer) --* If a streaming output fails, number of seconds to wait until
      a restart is initiated. A value of 0 means never restart.

    - **UdpGroupSettings** *(dict) --* Udp Group Settings

      - **InputLossAction** *(string) --* Specifies behavior of last resort when input video is
      lost, and no more backup inputs are available. When dropTs is selected the entire transport
      stream will stop being emitted. When dropProgram is selected the program can be dropped from
      the transport stream (and replaced with null packets to meet the TS bitrate requirement). Or,
      when emitProgram is chosen the transport stream will continue to be produced normally with
      repeat frames, black frames, or slate frames substituted for the absent input video.

      - **TimedMetadataId3Frame** *(string) --* Indicates ID3 frame that has the timecode.

      - **TimedMetadataId3Period** *(integer) --* Timed Metadata interval in seconds.
    """


_ClientCreateChannelResponseChannelEncoderSettingsOutputGroupsOutputsOutputSettingsArchiveOutputSettingsContainerSettingsM2tsSettingsDvbNitSettingsTypeDef = TypedDict(
    "_ClientCreateChannelResponseChannelEncoderSettingsOutputGroupsOutputsOutputSettingsArchiveOutputSettingsContainerSettingsM2tsSettingsDvbNitSettingsTypeDef",
    {"NetworkId": int, "NetworkName": str, "RepInterval": int},
    total=False,
)


class ClientCreateChannelResponseChannelEncoderSettingsOutputGroupsOutputsOutputSettingsArchiveOutputSettingsContainerSettingsM2tsSettingsDvbNitSettingsTypeDef(
    _ClientCreateChannelResponseChannelEncoderSettingsOutputGroupsOutputsOutputSettingsArchiveOutputSettingsContainerSettingsM2tsSettingsDvbNitSettingsTypeDef
):
    """
    Type definition for
    `ClientCreateChannelResponseChannelEncoderSettingsOutputGroupsOutputsOutputSettingsArchiveOutputSettingsContainerSettingsM2tsSettings`
    `DvbNitSettings`

    - **NetworkId** *(integer) --* The numeric value placed in the Network Information Table (NIT).

    - **NetworkName** *(string) --* The network name text placed in the networkNameDescriptor inside
    the Network Information Table. Maximum length is 256 characters.

    - **RepInterval** *(integer) --* The number of milliseconds between instances of this table in
    the output transport stream.
    """


_ClientCreateChannelResponseChannelEncoderSettingsOutputGroupsOutputsOutputSettingsArchiveOutputSettingsContainerSettingsM2tsSettingsDvbSdtSettingsTypeDef = TypedDict(
    "_ClientCreateChannelResponseChannelEncoderSettingsOutputGroupsOutputsOutputSettingsArchiveOutputSettingsContainerSettingsM2tsSettingsDvbSdtSettingsTypeDef",
    {"OutputSdt": str, "RepInterval": int, "ServiceName": str, "ServiceProviderName": str},
    total=False,
)


class ClientCreateChannelResponseChannelEncoderSettingsOutputGroupsOutputsOutputSettingsArchiveOutputSettingsContainerSettingsM2tsSettingsDvbSdtSettingsTypeDef(
    _ClientCreateChannelResponseChannelEncoderSettingsOutputGroupsOutputsOutputSettingsArchiveOutputSettingsContainerSettingsM2tsSettingsDvbSdtSettingsTypeDef
):
    """
    Type definition for
    `ClientCreateChannelResponseChannelEncoderSettingsOutputGroupsOutputsOutputSettingsArchiveOutputSettingsContainerSettingsM2tsSettings`
    `DvbSdtSettings`

    - **OutputSdt** *(string) --* Selects method of inserting SDT information into output stream.
    The sdtFollow setting copies SDT information from input stream to output stream. The
    sdtFollowIfPresent setting copies SDT information from input stream to output stream if SDT
    information is present in the input, otherwise it will fall back on the user-defined values. The
    sdtManual setting means user will enter the SDT information. The sdtNone setting means output
    stream will not contain SDT information.

    - **RepInterval** *(integer) --* The number of milliseconds between instances of this table in
    the output transport stream.

    - **ServiceName** *(string) --* The service name placed in the serviceDescriptor in the Service
    Description Table. Maximum length is 256 characters.

    - **ServiceProviderName** *(string) --* The service provider name placed in the
    serviceDescriptor in the Service Description Table. Maximum length is 256 characters.
    """


_ClientCreateChannelResponseChannelEncoderSettingsOutputGroupsOutputsOutputSettingsArchiveOutputSettingsContainerSettingsM2tsSettingsDvbTdtSettingsTypeDef = TypedDict(
    "_ClientCreateChannelResponseChannelEncoderSettingsOutputGroupsOutputsOutputSettingsArchiveOutputSettingsContainerSettingsM2tsSettingsDvbTdtSettingsTypeDef",
    {"RepInterval": int},
    total=False,
)


class ClientCreateChannelResponseChannelEncoderSettingsOutputGroupsOutputsOutputSettingsArchiveOutputSettingsContainerSettingsM2tsSettingsDvbTdtSettingsTypeDef(
    _ClientCreateChannelResponseChannelEncoderSettingsOutputGroupsOutputsOutputSettingsArchiveOutputSettingsContainerSettingsM2tsSettingsDvbTdtSettingsTypeDef
):
    """
    Type definition for
    `ClientCreateChannelResponseChannelEncoderSettingsOutputGroupsOutputsOutputSettingsArchiveOutputSettingsContainerSettingsM2tsSettings`
    `DvbTdtSettings`

    - **RepInterval** *(integer) --* The number of milliseconds between instances of this table in
    the output transport stream.
    """


_ClientCreateChannelResponseChannelEncoderSettingsOutputGroupsOutputsOutputSettingsArchiveOutputSettingsContainerSettingsM2tsSettingsTypeDef = TypedDict(
    "_ClientCreateChannelResponseChannelEncoderSettingsOutputGroupsOutputsOutputSettingsArchiveOutputSettingsContainerSettingsM2tsSettingsTypeDef",
    {
        "AbsentInputAudioBehavior": str,
        "Arib": str,
        "AribCaptionsPid": str,
        "AribCaptionsPidControl": str,
        "AudioBufferModel": str,
        "AudioFramesPerPes": int,
        "AudioPids": str,
        "AudioStreamType": str,
        "Bitrate": int,
        "BufferModel": str,
        "CcDescriptor": str,
        "DvbNitSettings": ClientCreateChannelResponseChannelEncoderSettingsOutputGroupsOutputsOutputSettingsArchiveOutputSettingsContainerSettingsM2tsSettingsDvbNitSettingsTypeDef,
        "DvbSdtSettings": ClientCreateChannelResponseChannelEncoderSettingsOutputGroupsOutputsOutputSettingsArchiveOutputSettingsContainerSettingsM2tsSettingsDvbSdtSettingsTypeDef,
        "DvbSubPids": str,
        "DvbTdtSettings": ClientCreateChannelResponseChannelEncoderSettingsOutputGroupsOutputsOutputSettingsArchiveOutputSettingsContainerSettingsM2tsSettingsDvbTdtSettingsTypeDef,
        "DvbTeletextPid": str,
        "Ebif": str,
        "EbpAudioInterval": str,
        "EbpLookaheadMs": int,
        "EbpPlacement": str,
        "EcmPid": str,
        "EsRateInPes": str,
        "EtvPlatformPid": str,
        "EtvSignalPid": str,
        "FragmentTime": float,
        "Klv": str,
        "KlvDataPids": str,
        "NielsenId3Behavior": str,
        "NullPacketBitrate": float,
        "PatInterval": int,
        "PcrControl": str,
        "PcrPeriod": int,
        "PcrPid": str,
        "PmtInterval": int,
        "PmtPid": str,
        "ProgramNum": int,
        "RateMode": str,
        "Scte27Pids": str,
        "Scte35Control": str,
        "Scte35Pid": str,
        "SegmentationMarkers": str,
        "SegmentationStyle": str,
        "SegmentationTime": float,
        "TimedMetadataBehavior": str,
        "TimedMetadataPid": str,
        "TransportStreamId": int,
        "VideoPid": str,
    },
    total=False,
)


class ClientCreateChannelResponseChannelEncoderSettingsOutputGroupsOutputsOutputSettingsArchiveOutputSettingsContainerSettingsM2tsSettingsTypeDef(
    _ClientCreateChannelResponseChannelEncoderSettingsOutputGroupsOutputsOutputSettingsArchiveOutputSettingsContainerSettingsM2tsSettingsTypeDef
):
    """
    Type definition for
    `ClientCreateChannelResponseChannelEncoderSettingsOutputGroupsOutputsOutputSettingsArchiveOutputSettingsContainerSettings`
    `M2tsSettings`

    - **AbsentInputAudioBehavior** *(string) --* When set to drop, output audio streams will be
    removed from the program if the selected input audio stream is removed from the input. This
    allows the output audio configuration to dynamically change based on input configuration. If
    this is set to encodeSilence, all output audio streams will output encoded silence when not
    connected to an active input stream.

    - **Arib** *(string) --* When set to enabled, uses ARIB-compliant field muxing and removes video
    descriptor.

    - **AribCaptionsPid** *(string) --* Packet Identifier (PID) for ARIB Captions in the transport
    stream. Can be entered as a decimal or hexadecimal value. Valid values are 32 (or 0x20)..8182
    (or 0x1ff6).

    - **AribCaptionsPidControl** *(string) --* If set to auto, pid number used for ARIB Captions
    will be auto-selected from unused pids. If set to useConfigured, ARIB Captions will be on the
    configured pid number.

    - **AudioBufferModel** *(string) --* When set to dvb, uses DVB buffer model for Dolby Digital
    audio. When set to atsc, the ATSC model is used.

    - **AudioFramesPerPes** *(integer) --* The number of audio frames to insert for each PES packet.

    - **AudioPids** *(string) --* Packet Identifier (PID) of the elementary audio stream(s) in the
    transport stream. Multiple values are accepted, and can be entered in ranges and/or by comma
    separation. Can be entered as decimal or hexadecimal values. Each PID specified must be in the
    range of 32 (or 0x20)..8182 (or 0x1ff6).

    - **AudioStreamType** *(string) --* When set to atsc, uses stream type = 0x81 for AC3 and stream
    type = 0x87 for EAC3. When set to dvb, uses stream type = 0x06.

    - **Bitrate** *(integer) --* The output bitrate of the transport stream in bits per second.
    Setting to 0 lets the muxer automatically determine the appropriate bitrate.

    - **BufferModel** *(string) --* If set to multiplex, use multiplex buffer model for accurate
    interleaving. Setting to bufferModel to none can lead to lower latency, but low-memory devices
    may not be able to play back the stream without interruptions.

    - **CcDescriptor** *(string) --* When set to enabled, generates captionServiceDescriptor in PMT.

    - **DvbNitSettings** *(dict) --* Inserts DVB Network Information Table (NIT) at the specified
    table repetition interval.

      - **NetworkId** *(integer) --* The numeric value placed in the Network Information Table
      (NIT).

      - **NetworkName** *(string) --* The network name text placed in the networkNameDescriptor
      inside the Network Information Table. Maximum length is 256 characters.

      - **RepInterval** *(integer) --* The number of milliseconds between instances of this table in
      the output transport stream.

    - **DvbSdtSettings** *(dict) --* Inserts DVB Service Description Table (SDT) at the specified
    table repetition interval.

      - **OutputSdt** *(string) --* Selects method of inserting SDT information into output stream.
      The sdtFollow setting copies SDT information from input stream to output stream. The
      sdtFollowIfPresent setting copies SDT information from input stream to output stream if SDT
      information is present in the input, otherwise it will fall back on the user-defined values.
      The sdtManual setting means user will enter the SDT information. The sdtNone setting means
      output stream will not contain SDT information.

      - **RepInterval** *(integer) --* The number of milliseconds between instances of this table in
      the output transport stream.

      - **ServiceName** *(string) --* The service name placed in the serviceDescriptor in the
      Service Description Table. Maximum length is 256 characters.

      - **ServiceProviderName** *(string) --* The service provider name placed in the
      serviceDescriptor in the Service Description Table. Maximum length is 256 characters.

    - **DvbSubPids** *(string) --* Packet Identifier (PID) for input source DVB Subtitle data to
    this output. Multiple values are accepted, and can be entered in ranges and/or by comma
    separation. Can be entered as decimal or hexadecimal values. Each PID specified must be in the
    range of 32 (or 0x20)..8182 (or 0x1ff6).

    - **DvbTdtSettings** *(dict) --* Inserts DVB Time and Date Table (TDT) at the specified table
    repetition interval.

      - **RepInterval** *(integer) --* The number of milliseconds between instances of this table in
      the output transport stream.

    - **DvbTeletextPid** *(string) --* Packet Identifier (PID) for input source DVB Teletext data to
    this output. Can be entered as a decimal or hexadecimal value. Valid values are 32 (or
    0x20)..8182 (or 0x1ff6).

    - **Ebif** *(string) --* If set to passthrough, passes any EBIF data from the input source to
    this output.

    - **EbpAudioInterval** *(string) --* When videoAndFixedIntervals is selected, audio EBP markers
    will be added to partitions 3 and 4. The interval between these additional markers will be
    fixed, and will be slightly shorter than the video EBP marker interval. Only available when EBP
    Cablelabs segmentation markers are selected. Partitions 1 and 2 will always follow the video
    interval.

    - **EbpLookaheadMs** *(integer) --* When set, enforces that Encoder Boundary Points do not come
    within the specified time interval of each other by looking ahead at input video. If another EBP
    is going to come in within the specified time interval, the current EBP is not emitted, and the
    segment is "stretched" to the next marker. The lookahead value does not add latency to the
    system. The Live Event must be configured elsewhere to create sufficient latency to make the
    lookahead accurate.

    - **EbpPlacement** *(string) --* Controls placement of EBP on Audio PIDs. If set to
    videoAndAudioPids, EBP markers will be placed on the video PID and all audio PIDs. If set to
    videoPid, EBP markers will be placed on only the video PID.

    - **EcmPid** *(string) --* This field is unused and deprecated.

    - **EsRateInPes** *(string) --* Include or exclude the ES Rate field in the PES header.

    - **EtvPlatformPid** *(string) --* Packet Identifier (PID) for input source ETV Platform data to
    this output. Can be entered as a decimal or hexadecimal value. Valid values are 32 (or
    0x20)..8182 (or 0x1ff6).

    - **EtvSignalPid** *(string) --* Packet Identifier (PID) for input source ETV Signal data to
    this output. Can be entered as a decimal or hexadecimal value. Valid values are 32 (or
    0x20)..8182 (or 0x1ff6).

    - **FragmentTime** *(float) --* The length in seconds of each fragment. Only used with EBP
    markers.

    - **Klv** *(string) --* If set to passthrough, passes any KLV data from the input source to this
    output.

    - **KlvDataPids** *(string) --* Packet Identifier (PID) for input source KLV data to this
    output. Multiple values are accepted, and can be entered in ranges and/or by comma separation.
    Can be entered as decimal or hexadecimal values. Each PID specified must be in the range of 32
    (or 0x20)..8182 (or 0x1ff6).

    - **NielsenId3Behavior** *(string) --* If set to passthrough, Nielsen inaudible tones for media
    tracking will be detected in the input audio and an equivalent ID3 tag will be inserted in the
    output.

    - **NullPacketBitrate** *(float) --* Value in bits per second of extra null packets to insert
    into the transport stream. This can be used if a downstream encryption system requires periodic
    null packets.

    - **PatInterval** *(integer) --* The number of milliseconds between instances of this table in
    the output transport stream. Valid values are 0, 10..1000.

    - **PcrControl** *(string) --* When set to pcrEveryPesPacket, a Program Clock Reference value is
    inserted for every Packetized Elementary Stream (PES) header. This parameter is effective only
    when the PCR PID is the same as the video or audio elementary stream.

    - **PcrPeriod** *(integer) --* Maximum time in milliseconds between Program Clock Reference
    (PCRs) inserted into the transport stream.

    - **PcrPid** *(string) --* Packet Identifier (PID) of the Program Clock Reference (PCR) in the
    transport stream. When no value is given, the encoder will assign the same value as the Video
    PID. Can be entered as a decimal or hexadecimal value. Valid values are 32 (or 0x20)..8182 (or
    0x1ff6).

    - **PmtInterval** *(integer) --* The number of milliseconds between instances of this table in
    the output transport stream. Valid values are 0, 10..1000.

    - **PmtPid** *(string) --* Packet Identifier (PID) for the Program Map Table (PMT) in the
    transport stream. Can be entered as a decimal or hexadecimal value. Valid values are 32 (or
    0x20)..8182 (or 0x1ff6).

    - **ProgramNum** *(integer) --* The value of the program number field in the Program Map Table.

    - **RateMode** *(string) --* When vbr, does not insert null packets into transport stream to
    fill specified bitrate. The bitrate setting acts as the maximum bitrate when vbr is set.

    - **Scte27Pids** *(string) --* Packet Identifier (PID) for input source SCTE-27 data to this
    output. Multiple values are accepted, and can be entered in ranges and/or by comma separation.
    Can be entered as decimal or hexadecimal values. Each PID specified must be in the range of 32
    (or 0x20)..8182 (or 0x1ff6).

    - **Scte35Control** *(string) --* Optionally pass SCTE-35 signals from the input source to this
    output.

    - **Scte35Pid** *(string) --* Packet Identifier (PID) of the SCTE-35 stream in the transport
    stream. Can be entered as a decimal or hexadecimal value. Valid values are 32 (or 0x20)..8182
    (or 0x1ff6).

    - **SegmentationMarkers** *(string) --* Inserts segmentation markers at each segmentationTime
    period. raiSegstart sets the Random Access Indicator bit in the adaptation field. raiAdapt sets
    the RAI bit and adds the current timecode in the private data bytes. psiSegstart inserts PAT and
    PMT tables at the start of segments. ebp adds Encoder Boundary Point information to the
    adaptation field as per OpenCable specification OC-SP-EBP-I01-130118. ebpLegacy adds Encoder
    Boundary Point information to the adaptation field using a legacy proprietary format.

    - **SegmentationStyle** *(string) --* The segmentation style parameter controls how segmentation
    markers are inserted into the transport stream. With avails, it is possible that segments may be
    truncated, which can influence where future segmentation markers are inserted. When a
    segmentation style of "resetCadence" is selected and a segment is truncated due to an avail, we
    will reset the segmentation cadence. This means the subsequent segment will have a duration of
    $segmentationTime seconds. When a segmentation style of "maintainCadence" is selected and a
    segment is truncated due to an avail, we will not reset the segmentation cadence. This means the
    subsequent segment will likely be truncated as well. However, all segments after that will have
    a duration of $segmentationTime seconds. Note that EBP lookahead is a slight exception to this
    rule.

    - **SegmentationTime** *(float) --* The length in seconds of each segment. Required unless
    markers is set to None_.

    - **TimedMetadataBehavior** *(string) --* When set to passthrough, timed metadata will be passed
    through from input to output.

    - **TimedMetadataPid** *(string) --* Packet Identifier (PID) of the timed metadata stream in the
    transport stream. Can be entered as a decimal or hexadecimal value. Valid values are 32 (or
    0x20)..8182 (or 0x1ff6).

    - **TransportStreamId** *(integer) --* The value of the transport stream ID field in the Program
    Map Table.

    - **VideoPid** *(string) --* Packet Identifier (PID) of the elementary video stream in the
    transport stream. Can be entered as a decimal or hexadecimal value. Valid values are 32 (or
    0x20)..8182 (or 0x1ff6).
    """


_ClientCreateChannelResponseChannelEncoderSettingsOutputGroupsOutputsOutputSettingsArchiveOutputSettingsContainerSettingsTypeDef = TypedDict(
    "_ClientCreateChannelResponseChannelEncoderSettingsOutputGroupsOutputsOutputSettingsArchiveOutputSettingsContainerSettingsTypeDef",
    {
        "M2tsSettings": ClientCreateChannelResponseChannelEncoderSettingsOutputGroupsOutputsOutputSettingsArchiveOutputSettingsContainerSettingsM2tsSettingsTypeDef
    },
    total=False,
)


class ClientCreateChannelResponseChannelEncoderSettingsOutputGroupsOutputsOutputSettingsArchiveOutputSettingsContainerSettingsTypeDef(
    _ClientCreateChannelResponseChannelEncoderSettingsOutputGroupsOutputsOutputSettingsArchiveOutputSettingsContainerSettingsTypeDef
):
    """
    Type definition for
    `ClientCreateChannelResponseChannelEncoderSettingsOutputGroupsOutputsOutputSettingsArchiveOutputSettings`
    `ContainerSettings`

    - **M2tsSettings** *(dict) --* M2ts Settings

      - **AbsentInputAudioBehavior** *(string) --* When set to drop, output audio streams will be
      removed from the program if the selected input audio stream is removed from the input. This
      allows the output audio configuration to dynamically change based on input configuration. If
      this is set to encodeSilence, all output audio streams will output encoded silence when not
      connected to an active input stream.

      - **Arib** *(string) --* When set to enabled, uses ARIB-compliant field muxing and removes
      video descriptor.

      - **AribCaptionsPid** *(string) --* Packet Identifier (PID) for ARIB Captions in the transport
      stream. Can be entered as a decimal or hexadecimal value. Valid values are 32 (or 0x20)..8182
      (or 0x1ff6).

      - **AribCaptionsPidControl** *(string) --* If set to auto, pid number used for ARIB Captions
      will be auto-selected from unused pids. If set to useConfigured, ARIB Captions will be on the
      configured pid number.

      - **AudioBufferModel** *(string) --* When set to dvb, uses DVB buffer model for Dolby Digital
      audio. When set to atsc, the ATSC model is used.

      - **AudioFramesPerPes** *(integer) --* The number of audio frames to insert for each PES
      packet.

      - **AudioPids** *(string) --* Packet Identifier (PID) of the elementary audio stream(s) in the
      transport stream. Multiple values are accepted, and can be entered in ranges and/or by comma
      separation. Can be entered as decimal or hexadecimal values. Each PID specified must be in the
      range of 32 (or 0x20)..8182 (or 0x1ff6).

      - **AudioStreamType** *(string) --* When set to atsc, uses stream type = 0x81 for AC3 and
      stream type = 0x87 for EAC3. When set to dvb, uses stream type = 0x06.

      - **Bitrate** *(integer) --* The output bitrate of the transport stream in bits per second.
      Setting to 0 lets the muxer automatically determine the appropriate bitrate.

      - **BufferModel** *(string) --* If set to multiplex, use multiplex buffer model for accurate
      interleaving. Setting to bufferModel to none can lead to lower latency, but low-memory devices
      may not be able to play back the stream without interruptions.

      - **CcDescriptor** *(string) --* When set to enabled, generates captionServiceDescriptor in
      PMT.

      - **DvbNitSettings** *(dict) --* Inserts DVB Network Information Table (NIT) at the specified
      table repetition interval.

        - **NetworkId** *(integer) --* The numeric value placed in the Network Information Table
        (NIT).

        - **NetworkName** *(string) --* The network name text placed in the networkNameDescriptor
        inside the Network Information Table. Maximum length is 256 characters.

        - **RepInterval** *(integer) --* The number of milliseconds between instances of this table
        in the output transport stream.

      - **DvbSdtSettings** *(dict) --* Inserts DVB Service Description Table (SDT) at the specified
      table repetition interval.

        - **OutputSdt** *(string) --* Selects method of inserting SDT information into output
        stream. The sdtFollow setting copies SDT information from input stream to output stream. The
        sdtFollowIfPresent setting copies SDT information from input stream to output stream if SDT
        information is present in the input, otherwise it will fall back on the user-defined values.
        The sdtManual setting means user will enter the SDT information. The sdtNone setting means
        output stream will not contain SDT information.

        - **RepInterval** *(integer) --* The number of milliseconds between instances of this table
        in the output transport stream.

        - **ServiceName** *(string) --* The service name placed in the serviceDescriptor in the
        Service Description Table. Maximum length is 256 characters.

        - **ServiceProviderName** *(string) --* The service provider name placed in the
        serviceDescriptor in the Service Description Table. Maximum length is 256 characters.

      - **DvbSubPids** *(string) --* Packet Identifier (PID) for input source DVB Subtitle data to
      this output. Multiple values are accepted, and can be entered in ranges and/or by comma
      separation. Can be entered as decimal or hexadecimal values. Each PID specified must be in the
      range of 32 (or 0x20)..8182 (or 0x1ff6).

      - **DvbTdtSettings** *(dict) --* Inserts DVB Time and Date Table (TDT) at the specified table
      repetition interval.

        - **RepInterval** *(integer) --* The number of milliseconds between instances of this table
        in the output transport stream.

      - **DvbTeletextPid** *(string) --* Packet Identifier (PID) for input source DVB Teletext data
      to this output. Can be entered as a decimal or hexadecimal value. Valid values are 32 (or
      0x20)..8182 (or 0x1ff6).

      - **Ebif** *(string) --* If set to passthrough, passes any EBIF data from the input source to
      this output.

      - **EbpAudioInterval** *(string) --* When videoAndFixedIntervals is selected, audio EBP
      markers will be added to partitions 3 and 4. The interval between these additional markers
      will be fixed, and will be slightly shorter than the video EBP marker interval. Only available
      when EBP Cablelabs segmentation markers are selected. Partitions 1 and 2 will always follow
      the video interval.

      - **EbpLookaheadMs** *(integer) --* When set, enforces that Encoder Boundary Points do not
      come within the specified time interval of each other by looking ahead at input video. If
      another EBP is going to come in within the specified time interval, the current EBP is not
      emitted, and the segment is "stretched" to the next marker. The lookahead value does not add
      latency to the system. The Live Event must be configured elsewhere to create sufficient
      latency to make the lookahead accurate.

      - **EbpPlacement** *(string) --* Controls placement of EBP on Audio PIDs. If set to
      videoAndAudioPids, EBP markers will be placed on the video PID and all audio PIDs. If set to
      videoPid, EBP markers will be placed on only the video PID.

      - **EcmPid** *(string) --* This field is unused and deprecated.

      - **EsRateInPes** *(string) --* Include or exclude the ES Rate field in the PES header.

      - **EtvPlatformPid** *(string) --* Packet Identifier (PID) for input source ETV Platform data
      to this output. Can be entered as a decimal or hexadecimal value. Valid values are 32 (or
      0x20)..8182 (or 0x1ff6).

      - **EtvSignalPid** *(string) --* Packet Identifier (PID) for input source ETV Signal data to
      this output. Can be entered as a decimal or hexadecimal value. Valid values are 32 (or
      0x20)..8182 (or 0x1ff6).

      - **FragmentTime** *(float) --* The length in seconds of each fragment. Only used with EBP
      markers.

      - **Klv** *(string) --* If set to passthrough, passes any KLV data from the input source to
      this output.

      - **KlvDataPids** *(string) --* Packet Identifier (PID) for input source KLV data to this
      output. Multiple values are accepted, and can be entered in ranges and/or by comma separation.
      Can be entered as decimal or hexadecimal values. Each PID specified must be in the range of 32
      (or 0x20)..8182 (or 0x1ff6).

      - **NielsenId3Behavior** *(string) --* If set to passthrough, Nielsen inaudible tones for
      media tracking will be detected in the input audio and an equivalent ID3 tag will be inserted
      in the output.

      - **NullPacketBitrate** *(float) --* Value in bits per second of extra null packets to insert
      into the transport stream. This can be used if a downstream encryption system requires
      periodic null packets.

      - **PatInterval** *(integer) --* The number of milliseconds between instances of this table in
      the output transport stream. Valid values are 0, 10..1000.

      - **PcrControl** *(string) --* When set to pcrEveryPesPacket, a Program Clock Reference value
      is inserted for every Packetized Elementary Stream (PES) header. This parameter is effective
      only when the PCR PID is the same as the video or audio elementary stream.

      - **PcrPeriod** *(integer) --* Maximum time in milliseconds between Program Clock Reference
      (PCRs) inserted into the transport stream.

      - **PcrPid** *(string) --* Packet Identifier (PID) of the Program Clock Reference (PCR) in the
      transport stream. When no value is given, the encoder will assign the same value as the Video
      PID. Can be entered as a decimal or hexadecimal value. Valid values are 32 (or 0x20)..8182 (or
      0x1ff6).

      - **PmtInterval** *(integer) --* The number of milliseconds between instances of this table in
      the output transport stream. Valid values are 0, 10..1000.

      - **PmtPid** *(string) --* Packet Identifier (PID) for the Program Map Table (PMT) in the
      transport stream. Can be entered as a decimal or hexadecimal value. Valid values are 32 (or
      0x20)..8182 (or 0x1ff6).

      - **ProgramNum** *(integer) --* The value of the program number field in the Program Map
      Table.

      - **RateMode** *(string) --* When vbr, does not insert null packets into transport stream to
      fill specified bitrate. The bitrate setting acts as the maximum bitrate when vbr is set.

      - **Scte27Pids** *(string) --* Packet Identifier (PID) for input source SCTE-27 data to this
      output. Multiple values are accepted, and can be entered in ranges and/or by comma separation.
      Can be entered as decimal or hexadecimal values. Each PID specified must be in the range of 32
      (or 0x20)..8182 (or 0x1ff6).

      - **Scte35Control** *(string) --* Optionally pass SCTE-35 signals from the input source to
      this output.

      - **Scte35Pid** *(string) --* Packet Identifier (PID) of the SCTE-35 stream in the transport
      stream. Can be entered as a decimal or hexadecimal value. Valid values are 32 (or 0x20)..8182
      (or 0x1ff6).

      - **SegmentationMarkers** *(string) --* Inserts segmentation markers at each segmentationTime
      period. raiSegstart sets the Random Access Indicator bit in the adaptation field. raiAdapt
      sets the RAI bit and adds the current timecode in the private data bytes. psiSegstart inserts
      PAT and PMT tables at the start of segments. ebp adds Encoder Boundary Point information to
      the adaptation field as per OpenCable specification OC-SP-EBP-I01-130118. ebpLegacy adds
      Encoder Boundary Point information to the adaptation field using a legacy proprietary format.

      - **SegmentationStyle** *(string) --* The segmentation style parameter controls how
      segmentation markers are inserted into the transport stream. With avails, it is possible that
      segments may be truncated, which can influence where future segmentation markers are inserted.
      When a segmentation style of "resetCadence" is selected and a segment is truncated due to an
      avail, we will reset the segmentation cadence. This means the subsequent segment will have a
      duration of $segmentationTime seconds. When a segmentation style of "maintainCadence" is
      selected and a segment is truncated due to an avail, we will not reset the segmentation
      cadence. This means the subsequent segment will likely be truncated as well. However, all
      segments after that will have a duration of $segmentationTime seconds. Note that EBP lookahead
      is a slight exception to this rule.

      - **SegmentationTime** *(float) --* The length in seconds of each segment. Required unless
      markers is set to None_.

      - **TimedMetadataBehavior** *(string) --* When set to passthrough, timed metadata will be
      passed through from input to output.

      - **TimedMetadataPid** *(string) --* Packet Identifier (PID) of the timed metadata stream in
      the transport stream. Can be entered as a decimal or hexadecimal value. Valid values are 32
      (or 0x20)..8182 (or 0x1ff6).

      - **TransportStreamId** *(integer) --* The value of the transport stream ID field in the
      Program Map Table.

      - **VideoPid** *(string) --* Packet Identifier (PID) of the elementary video stream in the
      transport stream. Can be entered as a decimal or hexadecimal value. Valid values are 32 (or
      0x20)..8182 (or 0x1ff6).
    """


_ClientCreateChannelResponseChannelEncoderSettingsOutputGroupsOutputsOutputSettingsArchiveOutputSettingsTypeDef = TypedDict(
    "_ClientCreateChannelResponseChannelEncoderSettingsOutputGroupsOutputsOutputSettingsArchiveOutputSettingsTypeDef",
    {
        "ContainerSettings": ClientCreateChannelResponseChannelEncoderSettingsOutputGroupsOutputsOutputSettingsArchiveOutputSettingsContainerSettingsTypeDef,
        "Extension": str,
        "NameModifier": str,
    },
    total=False,
)


class ClientCreateChannelResponseChannelEncoderSettingsOutputGroupsOutputsOutputSettingsArchiveOutputSettingsTypeDef(
    _ClientCreateChannelResponseChannelEncoderSettingsOutputGroupsOutputsOutputSettingsArchiveOutputSettingsTypeDef
):
    """
    Type definition for
    `ClientCreateChannelResponseChannelEncoderSettingsOutputGroupsOutputsOutputSettings`
    `ArchiveOutputSettings`

    - **ContainerSettings** *(dict) --* Settings specific to the container type of the file.

      - **M2tsSettings** *(dict) --* M2ts Settings

        - **AbsentInputAudioBehavior** *(string) --* When set to drop, output audio streams will be
        removed from the program if the selected input audio stream is removed from the input. This
        allows the output audio configuration to dynamically change based on input configuration. If
        this is set to encodeSilence, all output audio streams will output encoded silence when not
        connected to an active input stream.

        - **Arib** *(string) --* When set to enabled, uses ARIB-compliant field muxing and removes
        video descriptor.

        - **AribCaptionsPid** *(string) --* Packet Identifier (PID) for ARIB Captions in the
        transport stream. Can be entered as a decimal or hexadecimal value. Valid values are 32 (or
        0x20)..8182 (or 0x1ff6).

        - **AribCaptionsPidControl** *(string) --* If set to auto, pid number used for ARIB Captions
        will be auto-selected from unused pids. If set to useConfigured, ARIB Captions will be on
        the configured pid number.

        - **AudioBufferModel** *(string) --* When set to dvb, uses DVB buffer model for Dolby
        Digital audio. When set to atsc, the ATSC model is used.

        - **AudioFramesPerPes** *(integer) --* The number of audio frames to insert for each PES
        packet.

        - **AudioPids** *(string) --* Packet Identifier (PID) of the elementary audio stream(s) in
        the transport stream. Multiple values are accepted, and can be entered in ranges and/or by
        comma separation. Can be entered as decimal or hexadecimal values. Each PID specified must
        be in the range of 32 (or 0x20)..8182 (or 0x1ff6).

        - **AudioStreamType** *(string) --* When set to atsc, uses stream type =
             0x81 for AC3 and
        stream type = 0x87 for EAC3. When set to dvb, uses stream type = 0x06.

        - **Bitrate** *(integer) --* The output bitrate of the transport stream in bits per second.
        Setting to 0 lets the muxer automatically determine the appropriate bitrate.

        - **BufferModel** *(string) --* If set to multiplex, use multiplex buffer model for accurate
        interleaving. Setting to bufferModel to none can lead to lower latency, but low-memory
        devices may not be able to play back the stream without interruptions.

        - **CcDescriptor** *(string) --* When set to enabled, generates captionServiceDescriptor in
        PMT.

        - **DvbNitSettings** *(dict) --* Inserts DVB Network Information Table (NIT) at the
        specified table repetition interval.

          - **NetworkId** *(integer) --* The numeric value placed in the Network Information Table
          (NIT).

          - **NetworkName** *(string) --* The network name text placed in the networkNameDescriptor
          inside the Network Information Table. Maximum length is 256 characters.

          - **RepInterval** *(integer) --* The number of milliseconds between instances of this
          table in the output transport stream.

        - **DvbSdtSettings** *(dict) --* Inserts DVB Service Description Table (SDT) at the
        specified table repetition interval.

          - **OutputSdt** *(string) --* Selects method of inserting SDT information into output
          stream. The sdtFollow setting copies SDT information from input stream to output stream.
          The sdtFollowIfPresent setting copies SDT information from input stream to output stream
          if SDT information is present in the input, otherwise it will fall back on the
          user-defined values. The sdtManual setting means user will enter the SDT information. The
          sdtNone setting means output stream will not contain SDT information.

          - **RepInterval** *(integer) --* The number of milliseconds between instances of this
          table in the output transport stream.

          - **ServiceName** *(string) --* The service name placed in the serviceDescriptor in the
          Service Description Table. Maximum length is 256 characters.

          - **ServiceProviderName** *(string) --* The service provider name placed in the
          serviceDescriptor in the Service Description Table. Maximum length is 256 characters.

        - **DvbSubPids** *(string) --* Packet Identifier (PID) for input source DVB Subtitle data to
        this output. Multiple values are accepted, and can be entered in ranges and/or by comma
        separation. Can be entered as decimal or hexadecimal values. Each PID specified must be in
        the range of 32 (or 0x20)..8182 (or 0x1ff6).

        - **DvbTdtSettings** *(dict) --* Inserts DVB Time and Date Table (TDT) at the specified
        table repetition interval.

          - **RepInterval** *(integer) --* The number of milliseconds between instances of this
          table in the output transport stream.

        - **DvbTeletextPid** *(string) --* Packet Identifier (PID) for input source DVB Teletext
        data to this output. Can be entered as a decimal or hexadecimal value. Valid values are 32
        (or 0x20)..8182 (or 0x1ff6).

        - **Ebif** *(string) --* If set to passthrough, passes any EBIF data from the input source
        to this output.

        - **EbpAudioInterval** *(string) --* When videoAndFixedIntervals is selected, audio EBP
        markers will be added to partitions 3 and 4. The interval between these additional markers
        will be fixed, and will be slightly shorter than the video EBP marker interval. Only
        available when EBP Cablelabs segmentation markers are selected. Partitions 1 and 2 will
        always follow the video interval.

        - **EbpLookaheadMs** *(integer) --* When set, enforces that Encoder Boundary Points do not
        come within the specified time interval of each other by looking ahead at input video. If
        another EBP is going to come in within the specified time interval, the current EBP is not
        emitted, and the segment is "stretched" to the next marker. The lookahead value does not add
        latency to the system. The Live Event must be configured elsewhere to create sufficient
        latency to make the lookahead accurate.

        - **EbpPlacement** *(string) --* Controls placement of EBP on Audio PIDs. If set to
        videoAndAudioPids, EBP markers will be placed on the video PID and all audio PIDs. If set to
        videoPid, EBP markers will be placed on only the video PID.

        - **EcmPid** *(string) --* This field is unused and deprecated.

        - **EsRateInPes** *(string) --* Include or exclude the ES Rate field in the PES header.

        - **EtvPlatformPid** *(string) --* Packet Identifier (PID) for input source ETV Platform
        data to this output. Can be entered as a decimal or hexadecimal value. Valid values are 32
        (or 0x20)..8182 (or 0x1ff6).

        - **EtvSignalPid** *(string) --* Packet Identifier (PID) for input source ETV Signal data to
        this output. Can be entered as a decimal or hexadecimal value. Valid values are 32 (or
        0x20)..8182 (or 0x1ff6).

        - **FragmentTime** *(float) --* The length in seconds of each fragment. Only used with EBP
        markers.

        - **Klv** *(string) --* If set to passthrough, passes any KLV data from the input source to
        this output.

        - **KlvDataPids** *(string) --* Packet Identifier (PID) for input source KLV data to this
        output. Multiple values are accepted, and can be entered in ranges and/or by comma
        separation. Can be entered as decimal or hexadecimal values. Each PID specified must be in
        the range of 32 (or 0x20)..8182 (or 0x1ff6).

        - **NielsenId3Behavior** *(string) --* If set to passthrough, Nielsen inaudible tones for
        media tracking will be detected in the input audio and an equivalent ID3 tag will be
        inserted in the output.

        - **NullPacketBitrate** *(float) --* Value in bits per second of extra null packets to
        insert into the transport stream. This can be used if a downstream encryption system
        requires periodic null packets.

        - **PatInterval** *(integer) --* The number of milliseconds between instances of this table
        in the output transport stream. Valid values are 0, 10..1000.

        - **PcrControl** *(string) --* When set to pcrEveryPesPacket, a Program Clock Reference
        value is inserted for every Packetized Elementary Stream (PES) header. This parameter is
        effective only when the PCR PID is the same as the video or audio elementary stream.

        - **PcrPeriod** *(integer) --* Maximum time in milliseconds between Program Clock Reference
        (PCRs) inserted into the transport stream.

        - **PcrPid** *(string) --* Packet Identifier (PID) of the Program Clock Reference (PCR) in
        the transport stream. When no value is given, the encoder will assign the same value as the
        Video PID. Can be entered as a decimal or hexadecimal value. Valid values are 32 (or
        0x20)..8182 (or 0x1ff6).

        - **PmtInterval** *(integer) --* The number of milliseconds between instances of this table
        in the output transport stream. Valid values are 0, 10..1000.

        - **PmtPid** *(string) --* Packet Identifier (PID) for the Program Map Table (PMT) in the
        transport stream. Can be entered as a decimal or hexadecimal value. Valid values are 32 (or
        0x20)..8182 (or 0x1ff6).

        - **ProgramNum** *(integer) --* The value of the program number field in the Program Map
        Table.

        - **RateMode** *(string) --* When vbr, does not insert null packets into transport stream to
        fill specified bitrate. The bitrate setting acts as the maximum bitrate when vbr is set.

        - **Scte27Pids** *(string) --* Packet Identifier (PID) for input source SCTE-27 data to this
        output. Multiple values are accepted, and can be entered in ranges and/or by comma
        separation. Can be entered as decimal or hexadecimal values. Each PID specified must be in
        the range of 32 (or 0x20)..8182 (or 0x1ff6).

        - **Scte35Control** *(string) --* Optionally pass SCTE-35 signals from the input source to
        this output.

        - **Scte35Pid** *(string) --* Packet Identifier (PID) of the SCTE-35 stream in the transport
        stream. Can be entered as a decimal or hexadecimal value. Valid values are 32 (or
        0x20)..8182 (or 0x1ff6).

        - **SegmentationMarkers** *(string) --* Inserts segmentation markers at each
        segmentationTime period. raiSegstart sets the Random Access Indicator bit in the adaptation
        field. raiAdapt sets the RAI bit and adds the current timecode in the private data bytes.
        psiSegstart inserts PAT and PMT tables at the start of segments. ebp adds Encoder Boundary
        Point information to the adaptation field as per OpenCable specification
        OC-SP-EBP-I01-130118. ebpLegacy adds Encoder Boundary Point information to the adaptation
        field using a legacy proprietary format.

        - **SegmentationStyle** *(string) --* The segmentation style parameter controls how
        segmentation markers are inserted into the transport stream. With avails, it is possible
        that segments may be truncated, which can influence where future segmentation markers are
        inserted. When a segmentation style of "resetCadence" is selected and a segment is truncated
        due to an avail, we will reset the segmentation cadence. This means the subsequent segment
        will have a duration of $segmentationTime seconds. When a segmentation style of
        "maintainCadence" is selected and a segment is truncated due to an avail, we will not reset
        the segmentation cadence. This means the subsequent segment will likely be truncated as
        well. However, all segments after that will have a duration of $segmentationTime seconds.
        Note that EBP lookahead is a slight exception to this rule.

        - **SegmentationTime** *(float) --* The length in seconds of each segment. Required unless
        markers is set to None_.

        - **TimedMetadataBehavior** *(string) --* When set to passthrough, timed metadata will be
        passed through from input to output.

        - **TimedMetadataPid** *(string) --* Packet Identifier (PID) of the timed metadata stream in
        the transport stream. Can be entered as a decimal or hexadecimal value. Valid values are 32
        (or 0x20)..8182 (or 0x1ff6).

        - **TransportStreamId** *(integer) --* The value of the transport stream ID field in the
        Program Map Table.

        - **VideoPid** *(string) --* Packet Identifier (PID) of the elementary video stream in the
        transport stream. Can be entered as a decimal or hexadecimal value. Valid values are 32 (or
        0x20)..8182 (or 0x1ff6).

    - **Extension** *(string) --* Output file extension. If excluded, this will be auto-selected
    from the container type.

    - **NameModifier** *(string) --* String concatenated to the end of the destination filename.
    Required for multiple outputs of the same type.
    """


_ClientCreateChannelResponseChannelEncoderSettingsOutputGroupsOutputsOutputSettingsFrameCaptureOutputSettingsTypeDef = TypedDict(
    "_ClientCreateChannelResponseChannelEncoderSettingsOutputGroupsOutputsOutputSettingsFrameCaptureOutputSettingsTypeDef",
    {"NameModifier": str},
    total=False,
)


class ClientCreateChannelResponseChannelEncoderSettingsOutputGroupsOutputsOutputSettingsFrameCaptureOutputSettingsTypeDef(
    _ClientCreateChannelResponseChannelEncoderSettingsOutputGroupsOutputsOutputSettingsFrameCaptureOutputSettingsTypeDef
):
    """
    Type definition for
    `ClientCreateChannelResponseChannelEncoderSettingsOutputGroupsOutputsOutputSettings`
    `FrameCaptureOutputSettings`

    - **NameModifier** *(string) --* Required if the output group contains more than one output.
    This modifier forms part of the output file name.
    """


_ClientCreateChannelResponseChannelEncoderSettingsOutputGroupsOutputsOutputSettingsHlsOutputSettingsHlsSettingsAudioOnlyHlsSettingsAudioOnlyImageTypeDef = TypedDict(
    "_ClientCreateChannelResponseChannelEncoderSettingsOutputGroupsOutputsOutputSettingsHlsOutputSettingsHlsSettingsAudioOnlyHlsSettingsAudioOnlyImageTypeDef",
    {"PasswordParam": str, "Uri": str, "Username": str},
    total=False,
)


class ClientCreateChannelResponseChannelEncoderSettingsOutputGroupsOutputsOutputSettingsHlsOutputSettingsHlsSettingsAudioOnlyHlsSettingsAudioOnlyImageTypeDef(
    _ClientCreateChannelResponseChannelEncoderSettingsOutputGroupsOutputsOutputSettingsHlsOutputSettingsHlsSettingsAudioOnlyHlsSettingsAudioOnlyImageTypeDef
):
    """
    Type definition for
    `ClientCreateChannelResponseChannelEncoderSettingsOutputGroupsOutputsOutputSettingsHlsOutputSettingsHlsSettingsAudioOnlyHlsSettings`
    `AudioOnlyImage`

    - **PasswordParam** *(string) --* key used to extract the password from EC2 Parameter store

    - **Uri** *(string) --* Uniform Resource Identifier - This should be a path to a file accessible
    to the Live system (eg. a http:// URI) depending on the output type. For example, a RTMP
    destination should have a uri simliar to: "rtmp://fmsserver/live".

    - **Username** *(string) --* Documentation update needed
    """


_ClientCreateChannelResponseChannelEncoderSettingsOutputGroupsOutputsOutputSettingsHlsOutputSettingsHlsSettingsAudioOnlyHlsSettingsTypeDef = TypedDict(
    "_ClientCreateChannelResponseChannelEncoderSettingsOutputGroupsOutputsOutputSettingsHlsOutputSettingsHlsSettingsAudioOnlyHlsSettingsTypeDef",
    {
        "AudioGroupId": str,
        "AudioOnlyImage": ClientCreateChannelResponseChannelEncoderSettingsOutputGroupsOutputsOutputSettingsHlsOutputSettingsHlsSettingsAudioOnlyHlsSettingsAudioOnlyImageTypeDef,
        "AudioTrackType": str,
    },
    total=False,
)


class ClientCreateChannelResponseChannelEncoderSettingsOutputGroupsOutputsOutputSettingsHlsOutputSettingsHlsSettingsAudioOnlyHlsSettingsTypeDef(
    _ClientCreateChannelResponseChannelEncoderSettingsOutputGroupsOutputsOutputSettingsHlsOutputSettingsHlsSettingsAudioOnlyHlsSettingsTypeDef
):
    """
    Type definition for
    `ClientCreateChannelResponseChannelEncoderSettingsOutputGroupsOutputsOutputSettingsHlsOutputSettingsHlsSettings`
    `AudioOnlyHlsSettings`

    - **AudioGroupId** *(string) --* Specifies the group to which the audio Rendition belongs.

    - **AudioOnlyImage** *(dict) --* Optional. Specifies the .jpg or .png image to use as the cover
    art for an audio-only output. We recommend a low bit-size file because the image increases the
    output audio bandwidth. The image is attached to the audio as an ID3 tag, frame type APIC,
    picture type 0x10, as per the "ID3 tag version 2.4.0 - Native Frames" standard.

      - **PasswordParam** *(string) --* key used to extract the password from EC2 Parameter store

      - **Uri** *(string) --* Uniform Resource Identifier - This should be a path to a file
      accessible to the Live system (eg. a http:// URI) depending on the output type. For example, a
      RTMP destination should have a uri simliar to: "rtmp://fmsserver/live".

      - **Username** *(string) --* Documentation update needed

    - **AudioTrackType** *(string) --* Four types of audio-only tracks are supported: Audio-Only
    Variant Stream The client can play back this audio-only stream instead of video in low-bandwidth
    scenarios. Represented as an EXT-X-STREAM-INF in the HLS manifest. Alternate Audio, Auto Select,
    Default Alternate rendition that the client should try to play back by default. Represented as
    an EXT-X-MEDIA in the HLS manifest with DEFAULT=YES, AUTOSELECT=YES Alternate Audio, Auto
    Select, Not Default Alternate rendition that the client may try to play back by default.
    Represented as an EXT-X-MEDIA in the HLS manifest with DEFAULT=NO, AUTOSELECT=YES Alternate
    Audio, not Auto Select Alternate rendition that the client will not try to play back by default.
    Represented as an EXT-X-MEDIA in the HLS manifest with DEFAULT=NO, AUTOSELECT=NO
    """


_ClientCreateChannelResponseChannelEncoderSettingsOutputGroupsOutputsOutputSettingsHlsOutputSettingsHlsSettingsStandardHlsSettingsM3u8SettingsTypeDef = TypedDict(
    "_ClientCreateChannelResponseChannelEncoderSettingsOutputGroupsOutputsOutputSettingsHlsOutputSettingsHlsSettingsStandardHlsSettingsM3u8SettingsTypeDef",
    {
        "AudioFramesPerPes": int,
        "AudioPids": str,
        "EcmPid": str,
        "NielsenId3Behavior": str,
        "PatInterval": int,
        "PcrControl": str,
        "PcrPeriod": int,
        "PcrPid": str,
        "PmtInterval": int,
        "PmtPid": str,
        "ProgramNum": int,
        "Scte35Behavior": str,
        "Scte35Pid": str,
        "TimedMetadataBehavior": str,
        "TimedMetadataPid": str,
        "TransportStreamId": int,
        "VideoPid": str,
    },
    total=False,
)


class ClientCreateChannelResponseChannelEncoderSettingsOutputGroupsOutputsOutputSettingsHlsOutputSettingsHlsSettingsStandardHlsSettingsM3u8SettingsTypeDef(
    _ClientCreateChannelResponseChannelEncoderSettingsOutputGroupsOutputsOutputSettingsHlsOutputSettingsHlsSettingsStandardHlsSettingsM3u8SettingsTypeDef
):
    """
    Type definition for
    `ClientCreateChannelResponseChannelEncoderSettingsOutputGroupsOutputsOutputSettingsHlsOutputSettingsHlsSettingsStandardHlsSettings`
    `M3u8Settings`

    - **AudioFramesPerPes** *(integer) --* The number of audio frames to insert for each PES packet.

    - **AudioPids** *(string) --* Packet Identifier (PID) of the elementary audio stream(s) in the
    transport stream. Multiple values are accepted, and can be entered in ranges and/or by comma
    separation. Can be entered as decimal or hexadecimal values.

    - **EcmPid** *(string) --* This parameter is unused and deprecated.

    - **NielsenId3Behavior** *(string) --* If set to passthrough, Nielsen inaudible tones for media
    tracking will be detected in the input audio and an equivalent ID3 tag will be inserted in the
    output.

    - **PatInterval** *(integer) --* The number of milliseconds between instances of this table in
    the output transport stream. A value of \\"0\\" writes out the PMT once per segment file.

    - **PcrControl** *(string) --* When set to pcrEveryPesPacket, a Program Clock Reference value is
    inserted for every Packetized Elementary Stream (PES) header. This parameter is effective only
    when the PCR PID is the same as the video or audio elementary stream.

    - **PcrPeriod** *(integer) --* Maximum time in milliseconds between Program Clock References
    (PCRs) inserted into the transport stream.

    - **PcrPid** *(string) --* Packet Identifier (PID) of the Program Clock Reference (PCR) in the
    transport stream. When no value is given, the encoder will assign the same value as the Video
    PID. Can be entered as a decimal or hexadecimal value.

    - **PmtInterval** *(integer) --* The number of milliseconds between instances of this table in
    the output transport stream. A value of \\"0\\" writes out the PMT once per segment file.

    - **PmtPid** *(string) --* Packet Identifier (PID) for the Program Map Table (PMT) in the
    transport stream. Can be entered as a decimal or hexadecimal value.

    - **ProgramNum** *(integer) --* The value of the program number field in the Program Map Table.

    - **Scte35Behavior** *(string) --* If set to passthrough, passes any SCTE-35 signals from the
    input source to this output.

    - **Scte35Pid** *(string) --* Packet Identifier (PID) of the SCTE-35 stream in the transport
    stream. Can be entered as a decimal or hexadecimal value.

    - **TimedMetadataBehavior** *(string) --* When set to passthrough, timed metadata is passed
    through from input to output.

    - **TimedMetadataPid** *(string) --* Packet Identifier (PID) of the timed metadata stream in the
    transport stream. Can be entered as a decimal or hexadecimal value. Valid values are 32 (or
    0x20)..8182 (or 0x1ff6).

    - **TransportStreamId** *(integer) --* The value of the transport stream ID field in the Program
    Map Table.

    - **VideoPid** *(string) --* Packet Identifier (PID) of the elementary video stream in the
    transport stream. Can be entered as a decimal or hexadecimal value.
    """


_ClientCreateChannelResponseChannelEncoderSettingsOutputGroupsOutputsOutputSettingsHlsOutputSettingsHlsSettingsStandardHlsSettingsTypeDef = TypedDict(
    "_ClientCreateChannelResponseChannelEncoderSettingsOutputGroupsOutputsOutputSettingsHlsOutputSettingsHlsSettingsStandardHlsSettingsTypeDef",
    {
        "AudioRenditionSets": str,
        "M3u8Settings": ClientCreateChannelResponseChannelEncoderSettingsOutputGroupsOutputsOutputSettingsHlsOutputSettingsHlsSettingsStandardHlsSettingsM3u8SettingsTypeDef,
    },
    total=False,
)


class ClientCreateChannelResponseChannelEncoderSettingsOutputGroupsOutputsOutputSettingsHlsOutputSettingsHlsSettingsStandardHlsSettingsTypeDef(
    _ClientCreateChannelResponseChannelEncoderSettingsOutputGroupsOutputsOutputSettingsHlsOutputSettingsHlsSettingsStandardHlsSettingsTypeDef
):
    """
    Type definition for
    `ClientCreateChannelResponseChannelEncoderSettingsOutputGroupsOutputsOutputSettingsHlsOutputSettingsHlsSettings`
    `StandardHlsSettings`

    - **AudioRenditionSets** *(string) --* List all the audio groups that are used with the video
    output stream. Input all the audio GROUP-IDs that are associated to the video, separate by ','.

    - **M3u8Settings** *(dict) --* Settings information for the .m3u8 container

      - **AudioFramesPerPes** *(integer) --* The number of audio frames to insert for each PES
      packet.

      - **AudioPids** *(string) --* Packet Identifier (PID) of the elementary audio stream(s) in the
      transport stream. Multiple values are accepted, and can be entered in ranges and/or by comma
      separation. Can be entered as decimal or hexadecimal values.

      - **EcmPid** *(string) --* This parameter is unused and deprecated.

      - **NielsenId3Behavior** *(string) --* If set to passthrough, Nielsen inaudible tones for
      media tracking will be detected in the input audio and an equivalent ID3 tag will be inserted
      in the output.

      - **PatInterval** *(integer) --* The number of milliseconds between instances of this table in
      the output transport stream. A value of \\"0\\" writes out the PMT once per segment file.

      - **PcrControl** *(string) --* When set to pcrEveryPesPacket, a Program Clock Reference value
      is inserted for every Packetized Elementary Stream (PES) header. This parameter is effective
      only when the PCR PID is the same as the video or audio elementary stream.

      - **PcrPeriod** *(integer) --* Maximum time in milliseconds between Program Clock References
      (PCRs) inserted into the transport stream.

      - **PcrPid** *(string) --* Packet Identifier (PID) of the Program Clock Reference (PCR) in the
      transport stream. When no value is given, the encoder will assign the same value as the Video
      PID. Can be entered as a decimal or hexadecimal value.

      - **PmtInterval** *(integer) --* The number of milliseconds between instances of this table in
      the output transport stream. A value of \\"0\\" writes out the PMT once per segment file.

      - **PmtPid** *(string) --* Packet Identifier (PID) for the Program Map Table (PMT) in the
      transport stream. Can be entered as a decimal or hexadecimal value.

      - **ProgramNum** *(integer) --* The value of the program number field in the Program Map
      Table.

      - **Scte35Behavior** *(string) --* If set to passthrough, passes any SCTE-35 signals from the
      input source to this output.

      - **Scte35Pid** *(string) --* Packet Identifier (PID) of the SCTE-35 stream in the transport
      stream. Can be entered as a decimal or hexadecimal value.

      - **TimedMetadataBehavior** *(string) --* When set to passthrough, timed metadata is passed
      through from input to output.

      - **TimedMetadataPid** *(string) --* Packet Identifier (PID) of the timed metadata stream in
      the transport stream. Can be entered as a decimal or hexadecimal value. Valid values are 32
      (or 0x20)..8182 (or 0x1ff6).

      - **TransportStreamId** *(integer) --* The value of the transport stream ID field in the
      Program Map Table.

      - **VideoPid** *(string) --* Packet Identifier (PID) of the elementary video stream in the
      transport stream. Can be entered as a decimal or hexadecimal value.
    """


_ClientCreateChannelResponseChannelEncoderSettingsOutputGroupsOutputsOutputSettingsHlsOutputSettingsHlsSettingsTypeDef = TypedDict(
    "_ClientCreateChannelResponseChannelEncoderSettingsOutputGroupsOutputsOutputSettingsHlsOutputSettingsHlsSettingsTypeDef",
    {
        "AudioOnlyHlsSettings": ClientCreateChannelResponseChannelEncoderSettingsOutputGroupsOutputsOutputSettingsHlsOutputSettingsHlsSettingsAudioOnlyHlsSettingsTypeDef,
        "StandardHlsSettings": ClientCreateChannelResponseChannelEncoderSettingsOutputGroupsOutputsOutputSettingsHlsOutputSettingsHlsSettingsStandardHlsSettingsTypeDef,
    },
    total=False,
)


class ClientCreateChannelResponseChannelEncoderSettingsOutputGroupsOutputsOutputSettingsHlsOutputSettingsHlsSettingsTypeDef(
    _ClientCreateChannelResponseChannelEncoderSettingsOutputGroupsOutputsOutputSettingsHlsOutputSettingsHlsSettingsTypeDef
):
    """
    Type definition for
    `ClientCreateChannelResponseChannelEncoderSettingsOutputGroupsOutputsOutputSettingsHlsOutputSettings`
    `HlsSettings`

    - **AudioOnlyHlsSettings** *(dict) --* Audio Only Hls Settings

      - **AudioGroupId** *(string) --* Specifies the group to which the audio Rendition belongs.

      - **AudioOnlyImage** *(dict) --* Optional. Specifies the .jpg or .png image to use as the
      cover art for an audio-only output. We recommend a low bit-size file because the image
      increases the output audio bandwidth. The image is attached to the audio as an ID3 tag, frame
      type APIC, picture type 0x10, as per the "ID3 tag version 2.4.0 - Native Frames" standard.

        - **PasswordParam** *(string) --* key used to extract the password from EC2 Parameter store

        - **Uri** *(string) --* Uniform Resource Identifier - This should be a path to a file
        accessible to the Live system (eg. a http:// URI) depending on the output type. For example,
        a RTMP destination should have a uri simliar to: "rtmp://fmsserver/live".

        - **Username** *(string) --* Documentation update needed

      - **AudioTrackType** *(string) --* Four types of audio-only tracks are supported: Audio-Only
      Variant Stream The client can play back this audio-only stream instead of video in
      low-bandwidth scenarios. Represented as an EXT-X-STREAM-INF in the HLS manifest. Alternate
      Audio, Auto Select, Default Alternate rendition that the client should try to play back by
      default. Represented as an EXT-X-MEDIA in the HLS manifest with DEFAULT=YES, AUTOSELECT=YES
      Alternate Audio, Auto Select, Not Default Alternate rendition that the client may try to play
      back by default. Represented as an EXT-X-MEDIA in the HLS manifest with DEFAULT=NO,
      AUTOSELECT=YES Alternate Audio, not Auto Select Alternate rendition that the client will not
      try to play back by default. Represented as an EXT-X-MEDIA in the HLS manifest with
      DEFAULT=NO, AUTOSELECT=NO

    - **StandardHlsSettings** *(dict) --* Standard Hls Settings

      - **AudioRenditionSets** *(string) --* List all the audio groups that are used with the video
      output stream. Input all the audio GROUP-IDs that are associated to the video, separate by
      ','.

      - **M3u8Settings** *(dict) --* Settings information for the .m3u8 container

        - **AudioFramesPerPes** *(integer) --* The number of audio frames to insert for each PES
        packet.

        - **AudioPids** *(string) --* Packet Identifier (PID) of the elementary audio stream(s) in
        the transport stream. Multiple values are accepted, and can be entered in ranges and/or by
        comma separation. Can be entered as decimal or hexadecimal values.

        - **EcmPid** *(string) --* This parameter is unused and deprecated.

        - **NielsenId3Behavior** *(string) --* If set to passthrough, Nielsen inaudible tones for
        media tracking will be detected in the input audio and an equivalent ID3 tag will be
        inserted in the output.

        - **PatInterval** *(integer) --* The number of milliseconds between instances of this table
        in the output transport stream. A value of \\"0\\" writes out the PMT once per segment file.

        - **PcrControl** *(string) --* When set to pcrEveryPesPacket, a Program Clock Reference
        value is inserted for every Packetized Elementary Stream (PES) header. This parameter is
        effective only when the PCR PID is the same as the video or audio elementary stream.

        - **PcrPeriod** *(integer) --* Maximum time in milliseconds between Program Clock References
        (PCRs) inserted into the transport stream.

        - **PcrPid** *(string) --* Packet Identifier (PID) of the Program Clock Reference (PCR) in
        the transport stream. When no value is given, the encoder will assign the same value as the
        Video PID. Can be entered as a decimal or hexadecimal value.

        - **PmtInterval** *(integer) --* The number of milliseconds between instances of this table
        in the output transport stream. A value of \\"0\\" writes out the PMT once per segment file.

        - **PmtPid** *(string) --* Packet Identifier (PID) for the Program Map Table (PMT) in the
        transport stream. Can be entered as a decimal or hexadecimal value.

        - **ProgramNum** *(integer) --* The value of the program number field in the Program Map
        Table.

        - **Scte35Behavior** *(string) --* If set to passthrough, passes any SCTE-35 signals from
        the input source to this output.

        - **Scte35Pid** *(string) --* Packet Identifier (PID) of the SCTE-35 stream in the transport
        stream. Can be entered as a decimal or hexadecimal value.

        - **TimedMetadataBehavior** *(string) --* When set to passthrough, timed metadata is passed
        through from input to output.

        - **TimedMetadataPid** *(string) --* Packet Identifier (PID) of the timed metadata stream in
        the transport stream. Can be entered as a decimal or hexadecimal value. Valid values are 32
        (or 0x20)..8182 (or 0x1ff6).

        - **TransportStreamId** *(integer) --* The value of the transport stream ID field in the
        Program Map Table.

        - **VideoPid** *(string) --* Packet Identifier (PID) of the elementary video stream in the
        transport stream. Can be entered as a decimal or hexadecimal value.
    """


_ClientCreateChannelResponseChannelEncoderSettingsOutputGroupsOutputsOutputSettingsHlsOutputSettingsTypeDef = TypedDict(
    "_ClientCreateChannelResponseChannelEncoderSettingsOutputGroupsOutputsOutputSettingsHlsOutputSettingsTypeDef",
    {
        "HlsSettings": ClientCreateChannelResponseChannelEncoderSettingsOutputGroupsOutputsOutputSettingsHlsOutputSettingsHlsSettingsTypeDef,
        "NameModifier": str,
        "SegmentModifier": str,
    },
    total=False,
)


class ClientCreateChannelResponseChannelEncoderSettingsOutputGroupsOutputsOutputSettingsHlsOutputSettingsTypeDef(
    _ClientCreateChannelResponseChannelEncoderSettingsOutputGroupsOutputsOutputSettingsHlsOutputSettingsTypeDef
):
    """
    Type definition for
    `ClientCreateChannelResponseChannelEncoderSettingsOutputGroupsOutputsOutputSettings`
    `HlsOutputSettings`

    - **HlsSettings** *(dict) --* Settings regarding the underlying stream. These settings are
    different for audio-only outputs.

      - **AudioOnlyHlsSettings** *(dict) --* Audio Only Hls Settings

        - **AudioGroupId** *(string) --* Specifies the group to which the audio Rendition belongs.

        - **AudioOnlyImage** *(dict) --* Optional. Specifies the .jpg or .png image to use as the
        cover art for an audio-only output. We recommend a low bit-size file because the image
        increases the output audio bandwidth. The image is attached to the audio as an ID3 tag,
        frame type APIC, picture type 0x10, as per the "ID3 tag version 2.4.0 - Native Frames"
        standard.

          - **PasswordParam** *(string) --* key used to extract the password from EC2 Parameter
          store

          - **Uri** *(string) --* Uniform Resource Identifier - This should be a path to a file
          accessible to the Live system (eg. a http:// URI) depending on the output type. For
          example, a RTMP destination should have a uri simliar to: "rtmp://fmsserver/live".

          - **Username** *(string) --* Documentation update needed

        - **AudioTrackType** *(string) --* Four types of audio-only tracks are supported: Audio-Only
        Variant Stream The client can play back this audio-only stream instead of video in
        low-bandwidth scenarios. Represented as an EXT-X-STREAM-INF in the HLS manifest. Alternate
        Audio, Auto Select, Default Alternate rendition that the client should try to play back by
        default. Represented as an EXT-X-MEDIA in the HLS manifest with DEFAULT=YES, AUTOSELECT=
            YES
        Alternate Audio, Auto Select, Not Default Alternate rendition that the client may try to
        play back by default. Represented as an EXT-X-MEDIA in the HLS manifest with DEFAULT=NO,
        AUTOSELECT=
            YES Alternate Audio, not Auto Select Alternate rendition that the client will not
        try to play back by default. Represented as an EXT-X-MEDIA in the HLS manifest with
        DEFAULT=NO, AUTOSELECT=NO

      - **StandardHlsSettings** *(dict) --* Standard Hls Settings

        - **AudioRenditionSets** *(string) --* List all the audio groups that are used with the
        video output stream. Input all the audio GROUP-IDs that are associated to the video,
        separate by ','.

        - **M3u8Settings** *(dict) --* Settings information for the .m3u8 container

          - **AudioFramesPerPes** *(integer) --* The number of audio frames to insert for each PES
          packet.

          - **AudioPids** *(string) --* Packet Identifier (PID) of the elementary audio stream(s) in
          the transport stream. Multiple values are accepted, and can be entered in ranges and/or by
          comma separation. Can be entered as decimal or hexadecimal values.

          - **EcmPid** *(string) --* This parameter is unused and deprecated.

          - **NielsenId3Behavior** *(string) --* If set to passthrough, Nielsen inaudible tones for
          media tracking will be detected in the input audio and an equivalent ID3 tag will be
          inserted in the output.

          - **PatInterval** *(integer) --* The number of milliseconds between instances of this
          table in the output transport stream. A value of \\"0\\" writes out the PMT once per
          segment file.

          - **PcrControl** *(string) --* When set to pcrEveryPesPacket, a Program Clock Reference
          value is inserted for every Packetized Elementary Stream (PES) header. This parameter is
          effective only when the PCR PID is the same as the video or audio elementary stream.

          - **PcrPeriod** *(integer) --* Maximum time in milliseconds between Program Clock
          References (PCRs) inserted into the transport stream.

          - **PcrPid** *(string) --* Packet Identifier (PID) of the Program Clock Reference (PCR) in
          the transport stream. When no value is given, the encoder will assign the same value as
          the Video PID. Can be entered as a decimal or hexadecimal value.

          - **PmtInterval** *(integer) --* The number of milliseconds between instances of this
          table in the output transport stream. A value of \\"0\\" writes out the PMT once per
          segment file.

          - **PmtPid** *(string) --* Packet Identifier (PID) for the Program Map Table (PMT) in the
          transport stream. Can be entered as a decimal or hexadecimal value.

          - **ProgramNum** *(integer) --* The value of the program number field in the Program Map
          Table.

          - **Scte35Behavior** *(string) --* If set to passthrough, passes any SCTE-35 signals from
          the input source to this output.

          - **Scte35Pid** *(string) --* Packet Identifier (PID) of the SCTE-35 stream in the
          transport stream. Can be entered as a decimal or hexadecimal value.

          - **TimedMetadataBehavior** *(string) --* When set to passthrough, timed metadata is
          passed through from input to output.

          - **TimedMetadataPid** *(string) --* Packet Identifier (PID) of the timed metadata stream
          in the transport stream. Can be entered as a decimal or hexadecimal value. Valid values
          are 32 (or 0x20)..8182 (or 0x1ff6).

          - **TransportStreamId** *(integer) --* The value of the transport stream ID field in the
          Program Map Table.

          - **VideoPid** *(string) --* Packet Identifier (PID) of the elementary video stream in the
          transport stream. Can be entered as a decimal or hexadecimal value.

    - **NameModifier** *(string) --* String concatenated to the end of the destination filename.
    Accepts \\"Format Identifiers\\":#formatIdentifierParameters.

    - **SegmentModifier** *(string) --* String concatenated to end of segment filenames.
    """


_ClientCreateChannelResponseChannelEncoderSettingsOutputGroupsOutputsOutputSettingsMsSmoothOutputSettingsTypeDef = TypedDict(
    "_ClientCreateChannelResponseChannelEncoderSettingsOutputGroupsOutputsOutputSettingsMsSmoothOutputSettingsTypeDef",
    {"H265PackagingType": str, "NameModifier": str},
    total=False,
)


class ClientCreateChannelResponseChannelEncoderSettingsOutputGroupsOutputsOutputSettingsMsSmoothOutputSettingsTypeDef(
    _ClientCreateChannelResponseChannelEncoderSettingsOutputGroupsOutputsOutputSettingsMsSmoothOutputSettingsTypeDef
):
    """
    Type definition for
    `ClientCreateChannelResponseChannelEncoderSettingsOutputGroupsOutputsOutputSettings`
    `MsSmoothOutputSettings`

    - **H265PackagingType** *(string) --* Only applicable when this output is referencing an H.265
    video description. Specifies whether MP4 segments should be packaged as HEV1 or HVC1.

    - **NameModifier** *(string) --* String concatenated to the end of the destination filename.
    Required for multiple outputs of the same type.
    """


_ClientCreateChannelResponseChannelEncoderSettingsOutputGroupsOutputsOutputSettingsMultiplexOutputSettingsDestinationTypeDef = TypedDict(
    "_ClientCreateChannelResponseChannelEncoderSettingsOutputGroupsOutputsOutputSettingsMultiplexOutputSettingsDestinationTypeDef",
    {"DestinationRefId": str},
    total=False,
)


class ClientCreateChannelResponseChannelEncoderSettingsOutputGroupsOutputsOutputSettingsMultiplexOutputSettingsDestinationTypeDef(
    _ClientCreateChannelResponseChannelEncoderSettingsOutputGroupsOutputsOutputSettingsMultiplexOutputSettingsDestinationTypeDef
):
    """
    Type definition for
    `ClientCreateChannelResponseChannelEncoderSettingsOutputGroupsOutputsOutputSettingsMultiplexOutputSettings`
    `Destination`

    - **DestinationRefId** *(string) --* Placeholder documentation for __string
    """


_ClientCreateChannelResponseChannelEncoderSettingsOutputGroupsOutputsOutputSettingsMultiplexOutputSettingsTypeDef = TypedDict(
    "_ClientCreateChannelResponseChannelEncoderSettingsOutputGroupsOutputsOutputSettingsMultiplexOutputSettingsTypeDef",
    {
        "Destination": ClientCreateChannelResponseChannelEncoderSettingsOutputGroupsOutputsOutputSettingsMultiplexOutputSettingsDestinationTypeDef
    },
    total=False,
)


class ClientCreateChannelResponseChannelEncoderSettingsOutputGroupsOutputsOutputSettingsMultiplexOutputSettingsTypeDef(
    _ClientCreateChannelResponseChannelEncoderSettingsOutputGroupsOutputsOutputSettingsMultiplexOutputSettingsTypeDef
):
    """
    Type definition for
    `ClientCreateChannelResponseChannelEncoderSettingsOutputGroupsOutputsOutputSettings`
    `MultiplexOutputSettings`

    - **Destination** *(dict) --* Destination is a Multiplex.

      - **DestinationRefId** *(string) --* Placeholder documentation for __string
    """


_ClientCreateChannelResponseChannelEncoderSettingsOutputGroupsOutputsOutputSettingsRtmpOutputSettingsDestinationTypeDef = TypedDict(
    "_ClientCreateChannelResponseChannelEncoderSettingsOutputGroupsOutputsOutputSettingsRtmpOutputSettingsDestinationTypeDef",
    {"DestinationRefId": str},
    total=False,
)


class ClientCreateChannelResponseChannelEncoderSettingsOutputGroupsOutputsOutputSettingsRtmpOutputSettingsDestinationTypeDef(
    _ClientCreateChannelResponseChannelEncoderSettingsOutputGroupsOutputsOutputSettingsRtmpOutputSettingsDestinationTypeDef
):
    """
    Type definition for
    `ClientCreateChannelResponseChannelEncoderSettingsOutputGroupsOutputsOutputSettingsRtmpOutputSettings`
    `Destination`

    - **DestinationRefId** *(string) --* Placeholder documentation for __string
    """


_ClientCreateChannelResponseChannelEncoderSettingsOutputGroupsOutputsOutputSettingsRtmpOutputSettingsTypeDef = TypedDict(
    "_ClientCreateChannelResponseChannelEncoderSettingsOutputGroupsOutputsOutputSettingsRtmpOutputSettingsTypeDef",
    {
        "CertificateMode": str,
        "ConnectionRetryInterval": int,
        "Destination": ClientCreateChannelResponseChannelEncoderSettingsOutputGroupsOutputsOutputSettingsRtmpOutputSettingsDestinationTypeDef,
        "NumRetries": int,
    },
    total=False,
)


class ClientCreateChannelResponseChannelEncoderSettingsOutputGroupsOutputsOutputSettingsRtmpOutputSettingsTypeDef(
    _ClientCreateChannelResponseChannelEncoderSettingsOutputGroupsOutputsOutputSettingsRtmpOutputSettingsTypeDef
):
    """
    Type definition for
    `ClientCreateChannelResponseChannelEncoderSettingsOutputGroupsOutputsOutputSettings`
    `RtmpOutputSettings`

    - **CertificateMode** *(string) --* If set to verifyAuthenticity, verify the tls certificate
    chain to a trusted Certificate Authority (CA). This will cause rtmps outputs with self-signed
    certificates to fail.

    - **ConnectionRetryInterval** *(integer) --* Number of seconds to wait before retrying a
    connection to the Flash Media server if the connection is lost.

    - **Destination** *(dict) --* The RTMP endpoint excluding the stream name (eg.
    rtmp://host/appname). For connection to Akamai, a username and password must be supplied. URI
    fields accept format identifiers.

      - **DestinationRefId** *(string) --* Placeholder documentation for __string

    - **NumRetries** *(integer) --* Number of retry attempts.
    """


_ClientCreateChannelResponseChannelEncoderSettingsOutputGroupsOutputsOutputSettingsUdpOutputSettingsContainerSettingsM2tsSettingsDvbNitSettingsTypeDef = TypedDict(
    "_ClientCreateChannelResponseChannelEncoderSettingsOutputGroupsOutputsOutputSettingsUdpOutputSettingsContainerSettingsM2tsSettingsDvbNitSettingsTypeDef",
    {"NetworkId": int, "NetworkName": str, "RepInterval": int},
    total=False,
)


class ClientCreateChannelResponseChannelEncoderSettingsOutputGroupsOutputsOutputSettingsUdpOutputSettingsContainerSettingsM2tsSettingsDvbNitSettingsTypeDef(
    _ClientCreateChannelResponseChannelEncoderSettingsOutputGroupsOutputsOutputSettingsUdpOutputSettingsContainerSettingsM2tsSettingsDvbNitSettingsTypeDef
):
    """
    Type definition for
    `ClientCreateChannelResponseChannelEncoderSettingsOutputGroupsOutputsOutputSettingsUdpOutputSettingsContainerSettingsM2tsSettings`
    `DvbNitSettings`

    - **NetworkId** *(integer) --* The numeric value placed in the Network Information Table (NIT).

    - **NetworkName** *(string) --* The network name text placed in the networkNameDescriptor inside
    the Network Information Table. Maximum length is 256 characters.

    - **RepInterval** *(integer) --* The number of milliseconds between instances of this table in
    the output transport stream.
    """


_ClientCreateChannelResponseChannelEncoderSettingsOutputGroupsOutputsOutputSettingsUdpOutputSettingsContainerSettingsM2tsSettingsDvbSdtSettingsTypeDef = TypedDict(
    "_ClientCreateChannelResponseChannelEncoderSettingsOutputGroupsOutputsOutputSettingsUdpOutputSettingsContainerSettingsM2tsSettingsDvbSdtSettingsTypeDef",
    {"OutputSdt": str, "RepInterval": int, "ServiceName": str, "ServiceProviderName": str},
    total=False,
)


class ClientCreateChannelResponseChannelEncoderSettingsOutputGroupsOutputsOutputSettingsUdpOutputSettingsContainerSettingsM2tsSettingsDvbSdtSettingsTypeDef(
    _ClientCreateChannelResponseChannelEncoderSettingsOutputGroupsOutputsOutputSettingsUdpOutputSettingsContainerSettingsM2tsSettingsDvbSdtSettingsTypeDef
):
    """
    Type definition for
    `ClientCreateChannelResponseChannelEncoderSettingsOutputGroupsOutputsOutputSettingsUdpOutputSettingsContainerSettingsM2tsSettings`
    `DvbSdtSettings`

    - **OutputSdt** *(string) --* Selects method of inserting SDT information into output stream.
    The sdtFollow setting copies SDT information from input stream to output stream. The
    sdtFollowIfPresent setting copies SDT information from input stream to output stream if SDT
    information is present in the input, otherwise it will fall back on the user-defined values. The
    sdtManual setting means user will enter the SDT information. The sdtNone setting means output
    stream will not contain SDT information.

    - **RepInterval** *(integer) --* The number of milliseconds between instances of this table in
    the output transport stream.

    - **ServiceName** *(string) --* The service name placed in the serviceDescriptor in the Service
    Description Table. Maximum length is 256 characters.

    - **ServiceProviderName** *(string) --* The service provider name placed in the
    serviceDescriptor in the Service Description Table. Maximum length is 256 characters.
    """


_ClientCreateChannelResponseChannelEncoderSettingsOutputGroupsOutputsOutputSettingsUdpOutputSettingsContainerSettingsM2tsSettingsDvbTdtSettingsTypeDef = TypedDict(
    "_ClientCreateChannelResponseChannelEncoderSettingsOutputGroupsOutputsOutputSettingsUdpOutputSettingsContainerSettingsM2tsSettingsDvbTdtSettingsTypeDef",
    {"RepInterval": int},
    total=False,
)


class ClientCreateChannelResponseChannelEncoderSettingsOutputGroupsOutputsOutputSettingsUdpOutputSettingsContainerSettingsM2tsSettingsDvbTdtSettingsTypeDef(
    _ClientCreateChannelResponseChannelEncoderSettingsOutputGroupsOutputsOutputSettingsUdpOutputSettingsContainerSettingsM2tsSettingsDvbTdtSettingsTypeDef
):
    """
    Type definition for
    `ClientCreateChannelResponseChannelEncoderSettingsOutputGroupsOutputsOutputSettingsUdpOutputSettingsContainerSettingsM2tsSettings`
    `DvbTdtSettings`

    - **RepInterval** *(integer) --* The number of milliseconds between instances of this table in
    the output transport stream.
    """


_ClientCreateChannelResponseChannelEncoderSettingsOutputGroupsOutputsOutputSettingsUdpOutputSettingsContainerSettingsM2tsSettingsTypeDef = TypedDict(
    "_ClientCreateChannelResponseChannelEncoderSettingsOutputGroupsOutputsOutputSettingsUdpOutputSettingsContainerSettingsM2tsSettingsTypeDef",
    {
        "AbsentInputAudioBehavior": str,
        "Arib": str,
        "AribCaptionsPid": str,
        "AribCaptionsPidControl": str,
        "AudioBufferModel": str,
        "AudioFramesPerPes": int,
        "AudioPids": str,
        "AudioStreamType": str,
        "Bitrate": int,
        "BufferModel": str,
        "CcDescriptor": str,
        "DvbNitSettings": ClientCreateChannelResponseChannelEncoderSettingsOutputGroupsOutputsOutputSettingsUdpOutputSettingsContainerSettingsM2tsSettingsDvbNitSettingsTypeDef,
        "DvbSdtSettings": ClientCreateChannelResponseChannelEncoderSettingsOutputGroupsOutputsOutputSettingsUdpOutputSettingsContainerSettingsM2tsSettingsDvbSdtSettingsTypeDef,
        "DvbSubPids": str,
        "DvbTdtSettings": ClientCreateChannelResponseChannelEncoderSettingsOutputGroupsOutputsOutputSettingsUdpOutputSettingsContainerSettingsM2tsSettingsDvbTdtSettingsTypeDef,
        "DvbTeletextPid": str,
        "Ebif": str,
        "EbpAudioInterval": str,
        "EbpLookaheadMs": int,
        "EbpPlacement": str,
        "EcmPid": str,
        "EsRateInPes": str,
        "EtvPlatformPid": str,
        "EtvSignalPid": str,
        "FragmentTime": float,
        "Klv": str,
        "KlvDataPids": str,
        "NielsenId3Behavior": str,
        "NullPacketBitrate": float,
        "PatInterval": int,
        "PcrControl": str,
        "PcrPeriod": int,
        "PcrPid": str,
        "PmtInterval": int,
        "PmtPid": str,
        "ProgramNum": int,
        "RateMode": str,
        "Scte27Pids": str,
        "Scte35Control": str,
        "Scte35Pid": str,
        "SegmentationMarkers": str,
        "SegmentationStyle": str,
        "SegmentationTime": float,
        "TimedMetadataBehavior": str,
        "TimedMetadataPid": str,
        "TransportStreamId": int,
        "VideoPid": str,
    },
    total=False,
)


class ClientCreateChannelResponseChannelEncoderSettingsOutputGroupsOutputsOutputSettingsUdpOutputSettingsContainerSettingsM2tsSettingsTypeDef(
    _ClientCreateChannelResponseChannelEncoderSettingsOutputGroupsOutputsOutputSettingsUdpOutputSettingsContainerSettingsM2tsSettingsTypeDef
):
    """
    Type definition for
    `ClientCreateChannelResponseChannelEncoderSettingsOutputGroupsOutputsOutputSettingsUdpOutputSettingsContainerSettings`
    `M2tsSettings`

    - **AbsentInputAudioBehavior** *(string) --* When set to drop, output audio streams will be
    removed from the program if the selected input audio stream is removed from the input. This
    allows the output audio configuration to dynamically change based on input configuration. If
    this is set to encodeSilence, all output audio streams will output encoded silence when not
    connected to an active input stream.

    - **Arib** *(string) --* When set to enabled, uses ARIB-compliant field muxing and removes video
    descriptor.

    - **AribCaptionsPid** *(string) --* Packet Identifier (PID) for ARIB Captions in the transport
    stream. Can be entered as a decimal or hexadecimal value. Valid values are 32 (or 0x20)..8182
    (or 0x1ff6).

    - **AribCaptionsPidControl** *(string) --* If set to auto, pid number used for ARIB Captions
    will be auto-selected from unused pids. If set to useConfigured, ARIB Captions will be on the
    configured pid number.

    - **AudioBufferModel** *(string) --* When set to dvb, uses DVB buffer model for Dolby Digital
    audio. When set to atsc, the ATSC model is used.

    - **AudioFramesPerPes** *(integer) --* The number of audio frames to insert for each PES packet.

    - **AudioPids** *(string) --* Packet Identifier (PID) of the elementary audio stream(s) in the
    transport stream. Multiple values are accepted, and can be entered in ranges and/or by comma
    separation. Can be entered as decimal or hexadecimal values. Each PID specified must be in the
    range of 32 (or 0x20)..8182 (or 0x1ff6).

    - **AudioStreamType** *(string) --* When set to atsc, uses stream type = 0x81 for AC3 and stream
    type = 0x87 for EAC3. When set to dvb, uses stream type = 0x06.

    - **Bitrate** *(integer) --* The output bitrate of the transport stream in bits per second.
    Setting to 0 lets the muxer automatically determine the appropriate bitrate.

    - **BufferModel** *(string) --* If set to multiplex, use multiplex buffer model for accurate
    interleaving. Setting to bufferModel to none can lead to lower latency, but low-memory devices
    may not be able to play back the stream without interruptions.

    - **CcDescriptor** *(string) --* When set to enabled, generates captionServiceDescriptor in PMT.

    - **DvbNitSettings** *(dict) --* Inserts DVB Network Information Table (NIT) at the specified
    table repetition interval.

      - **NetworkId** *(integer) --* The numeric value placed in the Network Information Table
      (NIT).

      - **NetworkName** *(string) --* The network name text placed in the networkNameDescriptor
      inside the Network Information Table. Maximum length is 256 characters.

      - **RepInterval** *(integer) --* The number of milliseconds between instances of this table in
      the output transport stream.

    - **DvbSdtSettings** *(dict) --* Inserts DVB Service Description Table (SDT) at the specified
    table repetition interval.

      - **OutputSdt** *(string) --* Selects method of inserting SDT information into output stream.
      The sdtFollow setting copies SDT information from input stream to output stream. The
      sdtFollowIfPresent setting copies SDT information from input stream to output stream if SDT
      information is present in the input, otherwise it will fall back on the user-defined values.
      The sdtManual setting means user will enter the SDT information. The sdtNone setting means
      output stream will not contain SDT information.

      - **RepInterval** *(integer) --* The number of milliseconds between instances of this table in
      the output transport stream.

      - **ServiceName** *(string) --* The service name placed in the serviceDescriptor in the
      Service Description Table. Maximum length is 256 characters.

      - **ServiceProviderName** *(string) --* The service provider name placed in the
      serviceDescriptor in the Service Description Table. Maximum length is 256 characters.

    - **DvbSubPids** *(string) --* Packet Identifier (PID) for input source DVB Subtitle data to
    this output. Multiple values are accepted, and can be entered in ranges and/or by comma
    separation. Can be entered as decimal or hexadecimal values. Each PID specified must be in the
    range of 32 (or 0x20)..8182 (or 0x1ff6).

    - **DvbTdtSettings** *(dict) --* Inserts DVB Time and Date Table (TDT) at the specified table
    repetition interval.

      - **RepInterval** *(integer) --* The number of milliseconds between instances of this table in
      the output transport stream.

    - **DvbTeletextPid** *(string) --* Packet Identifier (PID) for input source DVB Teletext data to
    this output. Can be entered as a decimal or hexadecimal value. Valid values are 32 (or
    0x20)..8182 (or 0x1ff6).

    - **Ebif** *(string) --* If set to passthrough, passes any EBIF data from the input source to
    this output.

    - **EbpAudioInterval** *(string) --* When videoAndFixedIntervals is selected, audio EBP markers
    will be added to partitions 3 and 4. The interval between these additional markers will be
    fixed, and will be slightly shorter than the video EBP marker interval. Only available when EBP
    Cablelabs segmentation markers are selected. Partitions 1 and 2 will always follow the video
    interval.

    - **EbpLookaheadMs** *(integer) --* When set, enforces that Encoder Boundary Points do not come
    within the specified time interval of each other by looking ahead at input video. If another EBP
    is going to come in within the specified time interval, the current EBP is not emitted, and the
    segment is "stretched" to the next marker. The lookahead value does not add latency to the
    system. The Live Event must be configured elsewhere to create sufficient latency to make the
    lookahead accurate.

    - **EbpPlacement** *(string) --* Controls placement of EBP on Audio PIDs. If set to
    videoAndAudioPids, EBP markers will be placed on the video PID and all audio PIDs. If set to
    videoPid, EBP markers will be placed on only the video PID.

    - **EcmPid** *(string) --* This field is unused and deprecated.

    - **EsRateInPes** *(string) --* Include or exclude the ES Rate field in the PES header.

    - **EtvPlatformPid** *(string) --* Packet Identifier (PID) for input source ETV Platform data to
    this output. Can be entered as a decimal or hexadecimal value. Valid values are 32 (or
    0x20)..8182 (or 0x1ff6).

    - **EtvSignalPid** *(string) --* Packet Identifier (PID) for input source ETV Signal data to
    this output. Can be entered as a decimal or hexadecimal value. Valid values are 32 (or
    0x20)..8182 (or 0x1ff6).

    - **FragmentTime** *(float) --* The length in seconds of each fragment. Only used with EBP
    markers.

    - **Klv** *(string) --* If set to passthrough, passes any KLV data from the input source to this
    output.

    - **KlvDataPids** *(string) --* Packet Identifier (PID) for input source KLV data to this
    output. Multiple values are accepted, and can be entered in ranges and/or by comma separation.
    Can be entered as decimal or hexadecimal values. Each PID specified must be in the range of 32
    (or 0x20)..8182 (or 0x1ff6).

    - **NielsenId3Behavior** *(string) --* If set to passthrough, Nielsen inaudible tones for media
    tracking will be detected in the input audio and an equivalent ID3 tag will be inserted in the
    output.

    - **NullPacketBitrate** *(float) --* Value in bits per second of extra null packets to insert
    into the transport stream. This can be used if a downstream encryption system requires periodic
    null packets.

    - **PatInterval** *(integer) --* The number of milliseconds between instances of this table in
    the output transport stream. Valid values are 0, 10..1000.

    - **PcrControl** *(string) --* When set to pcrEveryPesPacket, a Program Clock Reference value is
    inserted for every Packetized Elementary Stream (PES) header. This parameter is effective only
    when the PCR PID is the same as the video or audio elementary stream.

    - **PcrPeriod** *(integer) --* Maximum time in milliseconds between Program Clock Reference
    (PCRs) inserted into the transport stream.

    - **PcrPid** *(string) --* Packet Identifier (PID) of the Program Clock Reference (PCR) in the
    transport stream. When no value is given, the encoder will assign the same value as the Video
    PID. Can be entered as a decimal or hexadecimal value. Valid values are 32 (or 0x20)..8182 (or
    0x1ff6).

    - **PmtInterval** *(integer) --* The number of milliseconds between instances of this table in
    the output transport stream. Valid values are 0, 10..1000.

    - **PmtPid** *(string) --* Packet Identifier (PID) for the Program Map Table (PMT) in the
    transport stream. Can be entered as a decimal or hexadecimal value. Valid values are 32 (or
    0x20)..8182 (or 0x1ff6).

    - **ProgramNum** *(integer) --* The value of the program number field in the Program Map Table.

    - **RateMode** *(string) --* When vbr, does not insert null packets into transport stream to
    fill specified bitrate. The bitrate setting acts as the maximum bitrate when vbr is set.

    - **Scte27Pids** *(string) --* Packet Identifier (PID) for input source SCTE-27 data to this
    output. Multiple values are accepted, and can be entered in ranges and/or by comma separation.
    Can be entered as decimal or hexadecimal values. Each PID specified must be in the range of 32
    (or 0x20)..8182 (or 0x1ff6).

    - **Scte35Control** *(string) --* Optionally pass SCTE-35 signals from the input source to this
    output.

    - **Scte35Pid** *(string) --* Packet Identifier (PID) of the SCTE-35 stream in the transport
    stream. Can be entered as a decimal or hexadecimal value. Valid values are 32 (or 0x20)..8182
    (or 0x1ff6).

    - **SegmentationMarkers** *(string) --* Inserts segmentation markers at each segmentationTime
    period. raiSegstart sets the Random Access Indicator bit in the adaptation field. raiAdapt sets
    the RAI bit and adds the current timecode in the private data bytes. psiSegstart inserts PAT and
    PMT tables at the start of segments. ebp adds Encoder Boundary Point information to the
    adaptation field as per OpenCable specification OC-SP-EBP-I01-130118. ebpLegacy adds Encoder
    Boundary Point information to the adaptation field using a legacy proprietary format.

    - **SegmentationStyle** *(string) --* The segmentation style parameter controls how segmentation
    markers are inserted into the transport stream. With avails, it is possible that segments may be
    truncated, which can influence where future segmentation markers are inserted. When a
    segmentation style of "resetCadence" is selected and a segment is truncated due to an avail, we
    will reset the segmentation cadence. This means the subsequent segment will have a duration of
    $segmentationTime seconds. When a segmentation style of "maintainCadence" is selected and a
    segment is truncated due to an avail, we will not reset the segmentation cadence. This means the
    subsequent segment will likely be truncated as well. However, all segments after that will have
    a duration of $segmentationTime seconds. Note that EBP lookahead is a slight exception to this
    rule.

    - **SegmentationTime** *(float) --* The length in seconds of each segment. Required unless
    markers is set to None_.

    - **TimedMetadataBehavior** *(string) --* When set to passthrough, timed metadata will be passed
    through from input to output.

    - **TimedMetadataPid** *(string) --* Packet Identifier (PID) of the timed metadata stream in the
    transport stream. Can be entered as a decimal or hexadecimal value. Valid values are 32 (or
    0x20)..8182 (or 0x1ff6).

    - **TransportStreamId** *(integer) --* The value of the transport stream ID field in the Program
    Map Table.

    - **VideoPid** *(string) --* Packet Identifier (PID) of the elementary video stream in the
    transport stream. Can be entered as a decimal or hexadecimal value. Valid values are 32 (or
    0x20)..8182 (or 0x1ff6).
    """


_ClientCreateChannelResponseChannelEncoderSettingsOutputGroupsOutputsOutputSettingsUdpOutputSettingsContainerSettingsTypeDef = TypedDict(
    "_ClientCreateChannelResponseChannelEncoderSettingsOutputGroupsOutputsOutputSettingsUdpOutputSettingsContainerSettingsTypeDef",
    {
        "M2tsSettings": ClientCreateChannelResponseChannelEncoderSettingsOutputGroupsOutputsOutputSettingsUdpOutputSettingsContainerSettingsM2tsSettingsTypeDef
    },
    total=False,
)


class ClientCreateChannelResponseChannelEncoderSettingsOutputGroupsOutputsOutputSettingsUdpOutputSettingsContainerSettingsTypeDef(
    _ClientCreateChannelResponseChannelEncoderSettingsOutputGroupsOutputsOutputSettingsUdpOutputSettingsContainerSettingsTypeDef
):
    """
    Type definition for
    `ClientCreateChannelResponseChannelEncoderSettingsOutputGroupsOutputsOutputSettingsUdpOutputSettings`
    `ContainerSettings`

    - **M2tsSettings** *(dict) --* M2ts Settings

      - **AbsentInputAudioBehavior** *(string) --* When set to drop, output audio streams will be
      removed from the program if the selected input audio stream is removed from the input. This
      allows the output audio configuration to dynamically change based on input configuration. If
      this is set to encodeSilence, all output audio streams will output encoded silence when not
      connected to an active input stream.

      - **Arib** *(string) --* When set to enabled, uses ARIB-compliant field muxing and removes
      video descriptor.

      - **AribCaptionsPid** *(string) --* Packet Identifier (PID) for ARIB Captions in the transport
      stream. Can be entered as a decimal or hexadecimal value. Valid values are 32 (or 0x20)..8182
      (or 0x1ff6).

      - **AribCaptionsPidControl** *(string) --* If set to auto, pid number used for ARIB Captions
      will be auto-selected from unused pids. If set to useConfigured, ARIB Captions will be on the
      configured pid number.

      - **AudioBufferModel** *(string) --* When set to dvb, uses DVB buffer model for Dolby Digital
      audio. When set to atsc, the ATSC model is used.

      - **AudioFramesPerPes** *(integer) --* The number of audio frames to insert for each PES
      packet.

      - **AudioPids** *(string) --* Packet Identifier (PID) of the elementary audio stream(s) in the
      transport stream. Multiple values are accepted, and can be entered in ranges and/or by comma
      separation. Can be entered as decimal or hexadecimal values. Each PID specified must be in the
      range of 32 (or 0x20)..8182 (or 0x1ff6).

      - **AudioStreamType** *(string) --* When set to atsc, uses stream type = 0x81 for AC3 and
      stream type = 0x87 for EAC3. When set to dvb, uses stream type = 0x06.

      - **Bitrate** *(integer) --* The output bitrate of the transport stream in bits per second.
      Setting to 0 lets the muxer automatically determine the appropriate bitrate.

      - **BufferModel** *(string) --* If set to multiplex, use multiplex buffer model for accurate
      interleaving. Setting to bufferModel to none can lead to lower latency, but low-memory devices
      may not be able to play back the stream without interruptions.

      - **CcDescriptor** *(string) --* When set to enabled, generates captionServiceDescriptor in
      PMT.

      - **DvbNitSettings** *(dict) --* Inserts DVB Network Information Table (NIT) at the specified
      table repetition interval.

        - **NetworkId** *(integer) --* The numeric value placed in the Network Information Table
        (NIT).

        - **NetworkName** *(string) --* The network name text placed in the networkNameDescriptor
        inside the Network Information Table. Maximum length is 256 characters.

        - **RepInterval** *(integer) --* The number of milliseconds between instances of this table
        in the output transport stream.

      - **DvbSdtSettings** *(dict) --* Inserts DVB Service Description Table (SDT) at the specified
      table repetition interval.

        - **OutputSdt** *(string) --* Selects method of inserting SDT information into output
        stream. The sdtFollow setting copies SDT information from input stream to output stream. The
        sdtFollowIfPresent setting copies SDT information from input stream to output stream if SDT
        information is present in the input, otherwise it will fall back on the user-defined values.
        The sdtManual setting means user will enter the SDT information. The sdtNone setting means
        output stream will not contain SDT information.

        - **RepInterval** *(integer) --* The number of milliseconds between instances of this table
        in the output transport stream.

        - **ServiceName** *(string) --* The service name placed in the serviceDescriptor in the
        Service Description Table. Maximum length is 256 characters.

        - **ServiceProviderName** *(string) --* The service provider name placed in the
        serviceDescriptor in the Service Description Table. Maximum length is 256 characters.

      - **DvbSubPids** *(string) --* Packet Identifier (PID) for input source DVB Subtitle data to
      this output. Multiple values are accepted, and can be entered in ranges and/or by comma
      separation. Can be entered as decimal or hexadecimal values. Each PID specified must be in the
      range of 32 (or 0x20)..8182 (or 0x1ff6).

      - **DvbTdtSettings** *(dict) --* Inserts DVB Time and Date Table (TDT) at the specified table
      repetition interval.

        - **RepInterval** *(integer) --* The number of milliseconds between instances of this table
        in the output transport stream.

      - **DvbTeletextPid** *(string) --* Packet Identifier (PID) for input source DVB Teletext data
      to this output. Can be entered as a decimal or hexadecimal value. Valid values are 32 (or
      0x20)..8182 (or 0x1ff6).

      - **Ebif** *(string) --* If set to passthrough, passes any EBIF data from the input source to
      this output.

      - **EbpAudioInterval** *(string) --* When videoAndFixedIntervals is selected, audio EBP
      markers will be added to partitions 3 and 4. The interval between these additional markers
      will be fixed, and will be slightly shorter than the video EBP marker interval. Only available
      when EBP Cablelabs segmentation markers are selected. Partitions 1 and 2 will always follow
      the video interval.

      - **EbpLookaheadMs** *(integer) --* When set, enforces that Encoder Boundary Points do not
      come within the specified time interval of each other by looking ahead at input video. If
      another EBP is going to come in within the specified time interval, the current EBP is not
      emitted, and the segment is "stretched" to the next marker. The lookahead value does not add
      latency to the system. The Live Event must be configured elsewhere to create sufficient
      latency to make the lookahead accurate.

      - **EbpPlacement** *(string) --* Controls placement of EBP on Audio PIDs. If set to
      videoAndAudioPids, EBP markers will be placed on the video PID and all audio PIDs. If set to
      videoPid, EBP markers will be placed on only the video PID.

      - **EcmPid** *(string) --* This field is unused and deprecated.

      - **EsRateInPes** *(string) --* Include or exclude the ES Rate field in the PES header.

      - **EtvPlatformPid** *(string) --* Packet Identifier (PID) for input source ETV Platform data
      to this output. Can be entered as a decimal or hexadecimal value. Valid values are 32 (or
      0x20)..8182 (or 0x1ff6).

      - **EtvSignalPid** *(string) --* Packet Identifier (PID) for input source ETV Signal data to
      this output. Can be entered as a decimal or hexadecimal value. Valid values are 32 (or
      0x20)..8182 (or 0x1ff6).

      - **FragmentTime** *(float) --* The length in seconds of each fragment. Only used with EBP
      markers.

      - **Klv** *(string) --* If set to passthrough, passes any KLV data from the input source to
      this output.

      - **KlvDataPids** *(string) --* Packet Identifier (PID) for input source KLV data to this
      output. Multiple values are accepted, and can be entered in ranges and/or by comma separation.
      Can be entered as decimal or hexadecimal values. Each PID specified must be in the range of 32
      (or 0x20)..8182 (or 0x1ff6).

      - **NielsenId3Behavior** *(string) --* If set to passthrough, Nielsen inaudible tones for
      media tracking will be detected in the input audio and an equivalent ID3 tag will be inserted
      in the output.

      - **NullPacketBitrate** *(float) --* Value in bits per second of extra null packets to insert
      into the transport stream. This can be used if a downstream encryption system requires
      periodic null packets.

      - **PatInterval** *(integer) --* The number of milliseconds between instances of this table in
      the output transport stream. Valid values are 0, 10..1000.

      - **PcrControl** *(string) --* When set to pcrEveryPesPacket, a Program Clock Reference value
      is inserted for every Packetized Elementary Stream (PES) header. This parameter is effective
      only when the PCR PID is the same as the video or audio elementary stream.

      - **PcrPeriod** *(integer) --* Maximum time in milliseconds between Program Clock Reference
      (PCRs) inserted into the transport stream.

      - **PcrPid** *(string) --* Packet Identifier (PID) of the Program Clock Reference (PCR) in the
      transport stream. When no value is given, the encoder will assign the same value as the Video
      PID. Can be entered as a decimal or hexadecimal value. Valid values are 32 (or 0x20)..8182 (or
      0x1ff6).

      - **PmtInterval** *(integer) --* The number of milliseconds between instances of this table in
      the output transport stream. Valid values are 0, 10..1000.

      - **PmtPid** *(string) --* Packet Identifier (PID) for the Program Map Table (PMT) in the
      transport stream. Can be entered as a decimal or hexadecimal value. Valid values are 32 (or
      0x20)..8182 (or 0x1ff6).

      - **ProgramNum** *(integer) --* The value of the program number field in the Program Map
      Table.

      - **RateMode** *(string) --* When vbr, does not insert null packets into transport stream to
      fill specified bitrate. The bitrate setting acts as the maximum bitrate when vbr is set.

      - **Scte27Pids** *(string) --* Packet Identifier (PID) for input source SCTE-27 data to this
      output. Multiple values are accepted, and can be entered in ranges and/or by comma separation.
      Can be entered as decimal or hexadecimal values. Each PID specified must be in the range of 32
      (or 0x20)..8182 (or 0x1ff6).

      - **Scte35Control** *(string) --* Optionally pass SCTE-35 signals from the input source to
      this output.

      - **Scte35Pid** *(string) --* Packet Identifier (PID) of the SCTE-35 stream in the transport
      stream. Can be entered as a decimal or hexadecimal value. Valid values are 32 (or 0x20)..8182
      (or 0x1ff6).

      - **SegmentationMarkers** *(string) --* Inserts segmentation markers at each segmentationTime
      period. raiSegstart sets the Random Access Indicator bit in the adaptation field. raiAdapt
      sets the RAI bit and adds the current timecode in the private data bytes. psiSegstart inserts
      PAT and PMT tables at the start of segments. ebp adds Encoder Boundary Point information to
      the adaptation field as per OpenCable specification OC-SP-EBP-I01-130118. ebpLegacy adds
      Encoder Boundary Point information to the adaptation field using a legacy proprietary format.

      - **SegmentationStyle** *(string) --* The segmentation style parameter controls how
      segmentation markers are inserted into the transport stream. With avails, it is possible that
      segments may be truncated, which can influence where future segmentation markers are inserted.
      When a segmentation style of "resetCadence" is selected and a segment is truncated due to an
      avail, we will reset the segmentation cadence. This means the subsequent segment will have a
      duration of $segmentationTime seconds. When a segmentation style of "maintainCadence" is
      selected and a segment is truncated due to an avail, we will not reset the segmentation
      cadence. This means the subsequent segment will likely be truncated as well. However, all
      segments after that will have a duration of $segmentationTime seconds. Note that EBP lookahead
      is a slight exception to this rule.

      - **SegmentationTime** *(float) --* The length in seconds of each segment. Required unless
      markers is set to None_.

      - **TimedMetadataBehavior** *(string) --* When set to passthrough, timed metadata will be
      passed through from input to output.

      - **TimedMetadataPid** *(string) --* Packet Identifier (PID) of the timed metadata stream in
      the transport stream. Can be entered as a decimal or hexadecimal value. Valid values are 32
      (or 0x20)..8182 (or 0x1ff6).

      - **TransportStreamId** *(integer) --* The value of the transport stream ID field in the
      Program Map Table.

      - **VideoPid** *(string) --* Packet Identifier (PID) of the elementary video stream in the
      transport stream. Can be entered as a decimal or hexadecimal value. Valid values are 32 (or
      0x20)..8182 (or 0x1ff6).
    """


_ClientCreateChannelResponseChannelEncoderSettingsOutputGroupsOutputsOutputSettingsUdpOutputSettingsDestinationTypeDef = TypedDict(
    "_ClientCreateChannelResponseChannelEncoderSettingsOutputGroupsOutputsOutputSettingsUdpOutputSettingsDestinationTypeDef",
    {"DestinationRefId": str},
    total=False,
)


class ClientCreateChannelResponseChannelEncoderSettingsOutputGroupsOutputsOutputSettingsUdpOutputSettingsDestinationTypeDef(
    _ClientCreateChannelResponseChannelEncoderSettingsOutputGroupsOutputsOutputSettingsUdpOutputSettingsDestinationTypeDef
):
    """
    Type definition for
    `ClientCreateChannelResponseChannelEncoderSettingsOutputGroupsOutputsOutputSettingsUdpOutputSettings`
    `Destination`

    - **DestinationRefId** *(string) --* Placeholder documentation for __string
    """


_ClientCreateChannelResponseChannelEncoderSettingsOutputGroupsOutputsOutputSettingsUdpOutputSettingsFecOutputSettingsTypeDef = TypedDict(
    "_ClientCreateChannelResponseChannelEncoderSettingsOutputGroupsOutputsOutputSettingsUdpOutputSettingsFecOutputSettingsTypeDef",
    {"ColumnDepth": int, "IncludeFec": str, "RowLength": int},
    total=False,
)


class ClientCreateChannelResponseChannelEncoderSettingsOutputGroupsOutputsOutputSettingsUdpOutputSettingsFecOutputSettingsTypeDef(
    _ClientCreateChannelResponseChannelEncoderSettingsOutputGroupsOutputsOutputSettingsUdpOutputSettingsFecOutputSettingsTypeDef
):
    """
    Type definition for
    `ClientCreateChannelResponseChannelEncoderSettingsOutputGroupsOutputsOutputSettingsUdpOutputSettings`
    `FecOutputSettings`

    - **ColumnDepth** *(integer) --* Parameter D from SMPTE 2022-1. The height of the FEC protection
    matrix. The number of transport stream packets per column error correction packet. Must be
    between 4 and 20, inclusive.

    - **IncludeFec** *(string) --* Enables column only or column and row based FEC

    - **RowLength** *(integer) --* Parameter L from SMPTE 2022-1. The width of the FEC protection
    matrix. Must be between 1 and 20, inclusive. If only Column FEC is used, then larger values
    increase robustness. If Row FEC is used, then this is the number of transport stream packets per
    row error correction packet, and the value must be between 4 and 20, inclusive, if includeFec is
    columnAndRow. If includeFec is column, this value must be 1 to 20, inclusive.
    """


_ClientCreateChannelResponseChannelEncoderSettingsOutputGroupsOutputsOutputSettingsUdpOutputSettingsTypeDef = TypedDict(
    "_ClientCreateChannelResponseChannelEncoderSettingsOutputGroupsOutputsOutputSettingsUdpOutputSettingsTypeDef",
    {
        "BufferMsec": int,
        "ContainerSettings": ClientCreateChannelResponseChannelEncoderSettingsOutputGroupsOutputsOutputSettingsUdpOutputSettingsContainerSettingsTypeDef,
        "Destination": ClientCreateChannelResponseChannelEncoderSettingsOutputGroupsOutputsOutputSettingsUdpOutputSettingsDestinationTypeDef,
        "FecOutputSettings": ClientCreateChannelResponseChannelEncoderSettingsOutputGroupsOutputsOutputSettingsUdpOutputSettingsFecOutputSettingsTypeDef,
    },
    total=False,
)


class ClientCreateChannelResponseChannelEncoderSettingsOutputGroupsOutputsOutputSettingsUdpOutputSettingsTypeDef(
    _ClientCreateChannelResponseChannelEncoderSettingsOutputGroupsOutputsOutputSettingsUdpOutputSettingsTypeDef
):
    """
    Type definition for
    `ClientCreateChannelResponseChannelEncoderSettingsOutputGroupsOutputsOutputSettings`
    `UdpOutputSettings`

    - **BufferMsec** *(integer) --* UDP output buffering in milliseconds. Larger values increase
    latency through the transcoder but simultaneously assist the transcoder in maintaining a
    constant, low-jitter UDP/RTP output while accommodating clock recovery, input switching, input
    disruptions, picture reordering, etc.

    - **ContainerSettings** *(dict) --* Udp Container Settings

      - **M2tsSettings** *(dict) --* M2ts Settings

        - **AbsentInputAudioBehavior** *(string) --* When set to drop, output audio streams will be
        removed from the program if the selected input audio stream is removed from the input. This
        allows the output audio configuration to dynamically change based on input configuration. If
        this is set to encodeSilence, all output audio streams will output encoded silence when not
        connected to an active input stream.

        - **Arib** *(string) --* When set to enabled, uses ARIB-compliant field muxing and removes
        video descriptor.

        - **AribCaptionsPid** *(string) --* Packet Identifier (PID) for ARIB Captions in the
        transport stream. Can be entered as a decimal or hexadecimal value. Valid values are 32 (or
        0x20)..8182 (or 0x1ff6).

        - **AribCaptionsPidControl** *(string) --* If set to auto, pid number used for ARIB Captions
        will be auto-selected from unused pids. If set to useConfigured, ARIB Captions will be on
        the configured pid number.

        - **AudioBufferModel** *(string) --* When set to dvb, uses DVB buffer model for Dolby
        Digital audio. When set to atsc, the ATSC model is used.

        - **AudioFramesPerPes** *(integer) --* The number of audio frames to insert for each PES
        packet.

        - **AudioPids** *(string) --* Packet Identifier (PID) of the elementary audio stream(s) in
        the transport stream. Multiple values are accepted, and can be entered in ranges and/or by
        comma separation. Can be entered as decimal or hexadecimal values. Each PID specified must
        be in the range of 32 (or 0x20)..8182 (or 0x1ff6).

        - **AudioStreamType** *(string) --* When set to atsc, uses stream type =
             0x81 for AC3 and
        stream type = 0x87 for EAC3. When set to dvb, uses stream type = 0x06.

        - **Bitrate** *(integer) --* The output bitrate of the transport stream in bits per second.
        Setting to 0 lets the muxer automatically determine the appropriate bitrate.

        - **BufferModel** *(string) --* If set to multiplex, use multiplex buffer model for accurate
        interleaving. Setting to bufferModel to none can lead to lower latency, but low-memory
        devices may not be able to play back the stream without interruptions.

        - **CcDescriptor** *(string) --* When set to enabled, generates captionServiceDescriptor in
        PMT.

        - **DvbNitSettings** *(dict) --* Inserts DVB Network Information Table (NIT) at the
        specified table repetition interval.

          - **NetworkId** *(integer) --* The numeric value placed in the Network Information Table
          (NIT).

          - **NetworkName** *(string) --* The network name text placed in the networkNameDescriptor
          inside the Network Information Table. Maximum length is 256 characters.

          - **RepInterval** *(integer) --* The number of milliseconds between instances of this
          table in the output transport stream.

        - **DvbSdtSettings** *(dict) --* Inserts DVB Service Description Table (SDT) at the
        specified table repetition interval.

          - **OutputSdt** *(string) --* Selects method of inserting SDT information into output
          stream. The sdtFollow setting copies SDT information from input stream to output stream.
          The sdtFollowIfPresent setting copies SDT information from input stream to output stream
          if SDT information is present in the input, otherwise it will fall back on the
          user-defined values. The sdtManual setting means user will enter the SDT information. The
          sdtNone setting means output stream will not contain SDT information.

          - **RepInterval** *(integer) --* The number of milliseconds between instances of this
          table in the output transport stream.

          - **ServiceName** *(string) --* The service name placed in the serviceDescriptor in the
          Service Description Table. Maximum length is 256 characters.

          - **ServiceProviderName** *(string) --* The service provider name placed in the
          serviceDescriptor in the Service Description Table. Maximum length is 256 characters.

        - **DvbSubPids** *(string) --* Packet Identifier (PID) for input source DVB Subtitle data to
        this output. Multiple values are accepted, and can be entered in ranges and/or by comma
        separation. Can be entered as decimal or hexadecimal values. Each PID specified must be in
        the range of 32 (or 0x20)..8182 (or 0x1ff6).

        - **DvbTdtSettings** *(dict) --* Inserts DVB Time and Date Table (TDT) at the specified
        table repetition interval.

          - **RepInterval** *(integer) --* The number of milliseconds between instances of this
          table in the output transport stream.

        - **DvbTeletextPid** *(string) --* Packet Identifier (PID) for input source DVB Teletext
        data to this output. Can be entered as a decimal or hexadecimal value. Valid values are 32
        (or 0x20)..8182 (or 0x1ff6).

        - **Ebif** *(string) --* If set to passthrough, passes any EBIF data from the input source
        to this output.

        - **EbpAudioInterval** *(string) --* When videoAndFixedIntervals is selected, audio EBP
        markers will be added to partitions 3 and 4. The interval between these additional markers
        will be fixed, and will be slightly shorter than the video EBP marker interval. Only
        available when EBP Cablelabs segmentation markers are selected. Partitions 1 and 2 will
        always follow the video interval.

        - **EbpLookaheadMs** *(integer) --* When set, enforces that Encoder Boundary Points do not
        come within the specified time interval of each other by looking ahead at input video. If
        another EBP is going to come in within the specified time interval, the current EBP is not
        emitted, and the segment is "stretched" to the next marker. The lookahead value does not add
        latency to the system. The Live Event must be configured elsewhere to create sufficient
        latency to make the lookahead accurate.

        - **EbpPlacement** *(string) --* Controls placement of EBP on Audio PIDs. If set to
        videoAndAudioPids, EBP markers will be placed on the video PID and all audio PIDs. If set to
        videoPid, EBP markers will be placed on only the video PID.

        - **EcmPid** *(string) --* This field is unused and deprecated.

        - **EsRateInPes** *(string) --* Include or exclude the ES Rate field in the PES header.

        - **EtvPlatformPid** *(string) --* Packet Identifier (PID) for input source ETV Platform
        data to this output. Can be entered as a decimal or hexadecimal value. Valid values are 32
        (or 0x20)..8182 (or 0x1ff6).

        - **EtvSignalPid** *(string) --* Packet Identifier (PID) for input source ETV Signal data to
        this output. Can be entered as a decimal or hexadecimal value. Valid values are 32 (or
        0x20)..8182 (or 0x1ff6).

        - **FragmentTime** *(float) --* The length in seconds of each fragment. Only used with EBP
        markers.

        - **Klv** *(string) --* If set to passthrough, passes any KLV data from the input source to
        this output.

        - **KlvDataPids** *(string) --* Packet Identifier (PID) for input source KLV data to this
        output. Multiple values are accepted, and can be entered in ranges and/or by comma
        separation. Can be entered as decimal or hexadecimal values. Each PID specified must be in
        the range of 32 (or 0x20)..8182 (or 0x1ff6).

        - **NielsenId3Behavior** *(string) --* If set to passthrough, Nielsen inaudible tones for
        media tracking will be detected in the input audio and an equivalent ID3 tag will be
        inserted in the output.

        - **NullPacketBitrate** *(float) --* Value in bits per second of extra null packets to
        insert into the transport stream. This can be used if a downstream encryption system
        requires periodic null packets.

        - **PatInterval** *(integer) --* The number of milliseconds between instances of this table
        in the output transport stream. Valid values are 0, 10..1000.

        - **PcrControl** *(string) --* When set to pcrEveryPesPacket, a Program Clock Reference
        value is inserted for every Packetized Elementary Stream (PES) header. This parameter is
        effective only when the PCR PID is the same as the video or audio elementary stream.

        - **PcrPeriod** *(integer) --* Maximum time in milliseconds between Program Clock Reference
        (PCRs) inserted into the transport stream.

        - **PcrPid** *(string) --* Packet Identifier (PID) of the Program Clock Reference (PCR) in
        the transport stream. When no value is given, the encoder will assign the same value as the
        Video PID. Can be entered as a decimal or hexadecimal value. Valid values are 32 (or
        0x20)..8182 (or 0x1ff6).

        - **PmtInterval** *(integer) --* The number of milliseconds between instances of this table
        in the output transport stream. Valid values are 0, 10..1000.

        - **PmtPid** *(string) --* Packet Identifier (PID) for the Program Map Table (PMT) in the
        transport stream. Can be entered as a decimal or hexadecimal value. Valid values are 32 (or
        0x20)..8182 (or 0x1ff6).

        - **ProgramNum** *(integer) --* The value of the program number field in the Program Map
        Table.

        - **RateMode** *(string) --* When vbr, does not insert null packets into transport stream to
        fill specified bitrate. The bitrate setting acts as the maximum bitrate when vbr is set.

        - **Scte27Pids** *(string) --* Packet Identifier (PID) for input source SCTE-27 data to this
        output. Multiple values are accepted, and can be entered in ranges and/or by comma
        separation. Can be entered as decimal or hexadecimal values. Each PID specified must be in
        the range of 32 (or 0x20)..8182 (or 0x1ff6).

        - **Scte35Control** *(string) --* Optionally pass SCTE-35 signals from the input source to
        this output.

        - **Scte35Pid** *(string) --* Packet Identifier (PID) of the SCTE-35 stream in the transport
        stream. Can be entered as a decimal or hexadecimal value. Valid values are 32 (or
        0x20)..8182 (or 0x1ff6).

        - **SegmentationMarkers** *(string) --* Inserts segmentation markers at each
        segmentationTime period. raiSegstart sets the Random Access Indicator bit in the adaptation
        field. raiAdapt sets the RAI bit and adds the current timecode in the private data bytes.
        psiSegstart inserts PAT and PMT tables at the start of segments. ebp adds Encoder Boundary
        Point information to the adaptation field as per OpenCable specification
        OC-SP-EBP-I01-130118. ebpLegacy adds Encoder Boundary Point information to the adaptation
        field using a legacy proprietary format.

        - **SegmentationStyle** *(string) --* The segmentation style parameter controls how
        segmentation markers are inserted into the transport stream. With avails, it is possible
        that segments may be truncated, which can influence where future segmentation markers are
        inserted. When a segmentation style of "resetCadence" is selected and a segment is truncated
        due to an avail, we will reset the segmentation cadence. This means the subsequent segment
        will have a duration of $segmentationTime seconds. When a segmentation style of
        "maintainCadence" is selected and a segment is truncated due to an avail, we will not reset
        the segmentation cadence. This means the subsequent segment will likely be truncated as
        well. However, all segments after that will have a duration of $segmentationTime seconds.
        Note that EBP lookahead is a slight exception to this rule.

        - **SegmentationTime** *(float) --* The length in seconds of each segment. Required unless
        markers is set to None_.

        - **TimedMetadataBehavior** *(string) --* When set to passthrough, timed metadata will be
        passed through from input to output.

        - **TimedMetadataPid** *(string) --* Packet Identifier (PID) of the timed metadata stream in
        the transport stream. Can be entered as a decimal or hexadecimal value. Valid values are 32
        (or 0x20)..8182 (or 0x1ff6).

        - **TransportStreamId** *(integer) --* The value of the transport stream ID field in the
        Program Map Table.

        - **VideoPid** *(string) --* Packet Identifier (PID) of the elementary video stream in the
        transport stream. Can be entered as a decimal or hexadecimal value. Valid values are 32 (or
        0x20)..8182 (or 0x1ff6).

    - **Destination** *(dict) --* Destination address and port number for RTP or UDP packets. Can be
    unicast or multicast RTP or UDP (eg. rtp://239.10.10.10:5001 or udp://10.100.100.100:5002).

      - **DestinationRefId** *(string) --* Placeholder documentation for __string

    - **FecOutputSettings** *(dict) --* Settings for enabling and adjusting Forward Error Correction
    on UDP outputs.

      - **ColumnDepth** *(integer) --* Parameter D from SMPTE 2022-1. The height of the FEC
      protection matrix. The number of transport stream packets per column error correction packet.
      Must be between 4 and 20, inclusive.

      - **IncludeFec** *(string) --* Enables column only or column and row based FEC

      - **RowLength** *(integer) --* Parameter L from SMPTE 2022-1. The width of the FEC protection
      matrix. Must be between 1 and 20, inclusive. If only Column FEC is used, then larger values
      increase robustness. If Row FEC is used, then this is the number of transport stream packets
      per row error correction packet, and the value must be between 4 and 20, inclusive, if
      includeFec is columnAndRow. If includeFec is column, this value must be 1 to 20, inclusive.
    """


_ClientCreateChannelResponseChannelEncoderSettingsOutputGroupsOutputsOutputSettingsTypeDef = TypedDict(
    "_ClientCreateChannelResponseChannelEncoderSettingsOutputGroupsOutputsOutputSettingsTypeDef",
    {
        "ArchiveOutputSettings": ClientCreateChannelResponseChannelEncoderSettingsOutputGroupsOutputsOutputSettingsArchiveOutputSettingsTypeDef,
        "FrameCaptureOutputSettings": ClientCreateChannelResponseChannelEncoderSettingsOutputGroupsOutputsOutputSettingsFrameCaptureOutputSettingsTypeDef,
        "HlsOutputSettings": ClientCreateChannelResponseChannelEncoderSettingsOutputGroupsOutputsOutputSettingsHlsOutputSettingsTypeDef,
        "MediaPackageOutputSettings": Dict,
        "MsSmoothOutputSettings": ClientCreateChannelResponseChannelEncoderSettingsOutputGroupsOutputsOutputSettingsMsSmoothOutputSettingsTypeDef,
        "MultiplexOutputSettings": ClientCreateChannelResponseChannelEncoderSettingsOutputGroupsOutputsOutputSettingsMultiplexOutputSettingsTypeDef,
        "RtmpOutputSettings": ClientCreateChannelResponseChannelEncoderSettingsOutputGroupsOutputsOutputSettingsRtmpOutputSettingsTypeDef,
        "UdpOutputSettings": ClientCreateChannelResponseChannelEncoderSettingsOutputGroupsOutputsOutputSettingsUdpOutputSettingsTypeDef,
    },
    total=False,
)


class ClientCreateChannelResponseChannelEncoderSettingsOutputGroupsOutputsOutputSettingsTypeDef(
    _ClientCreateChannelResponseChannelEncoderSettingsOutputGroupsOutputsOutputSettingsTypeDef
):
    """
    Type definition for `ClientCreateChannelResponseChannelEncoderSettingsOutputGroupsOutputs`
    `OutputSettings`

    - **ArchiveOutputSettings** *(dict) --* Archive Output Settings

      - **ContainerSettings** *(dict) --* Settings specific to the container type of the file.

        - **M2tsSettings** *(dict) --* M2ts Settings

          - **AbsentInputAudioBehavior** *(string) --* When set to drop, output audio streams will
          be removed from the program if the selected input audio stream is removed from the input.
          This allows the output audio configuration to dynamically change based on input
          configuration. If this is set to encodeSilence, all output audio streams will output
          encoded silence when not connected to an active input stream.

          - **Arib** *(string) --* When set to enabled, uses ARIB-compliant field muxing and removes
          video descriptor.

          - **AribCaptionsPid** *(string) --* Packet Identifier (PID) for ARIB Captions in the
          transport stream. Can be entered as a decimal or hexadecimal value. Valid values are 32
          (or 0x20)..8182 (or 0x1ff6).

          - **AribCaptionsPidControl** *(string) --* If set to auto, pid number used for ARIB
          Captions will be auto-selected from unused pids. If set to useConfigured, ARIB Captions
          will be on the configured pid number.

          - **AudioBufferModel** *(string) --* When set to dvb, uses DVB buffer model for Dolby
          Digital audio. When set to atsc, the ATSC model is used.

          - **AudioFramesPerPes** *(integer) --* The number of audio frames to insert for each PES
          packet.

          - **AudioPids** *(string) --* Packet Identifier (PID) of the elementary audio stream(s) in
          the transport stream. Multiple values are accepted, and can be entered in ranges and/or by
          comma separation. Can be entered as decimal or hexadecimal values. Each PID specified must
          be in the range of 32 (or 0x20)..8182 (or 0x1ff6).

          - **AudioStreamType** *(string) --* When set to atsc, uses stream type =
               0x81 for AC3 and
          stream type = 0x87 for EAC3. When set to dvb, uses stream type = 0x06.

          - **Bitrate** *(integer) --* The output bitrate of the transport stream in bits per
          second. Setting to 0 lets the muxer automatically determine the appropriate bitrate.

          - **BufferModel** *(string) --* If set to multiplex, use multiplex buffer model for
          accurate interleaving. Setting to bufferModel to none can lead to lower latency, but
          low-memory devices may not be able to play back the stream without interruptions.

          - **CcDescriptor** *(string) --* When set to enabled, generates captionServiceDescriptor
          in PMT.

          - **DvbNitSettings** *(dict) --* Inserts DVB Network Information Table (NIT) at the
          specified table repetition interval.

            - **NetworkId** *(integer) --* The numeric value placed in the Network Information Table
            (NIT).

            - **NetworkName** *(string) --* The network name text placed in the
            networkNameDescriptor inside the Network Information Table. Maximum length is 256
            characters.

            - **RepInterval** *(integer) --* The number of milliseconds between instances of this
            table in the output transport stream.

          - **DvbSdtSettings** *(dict) --* Inserts DVB Service Description Table (SDT) at the
          specified table repetition interval.

            - **OutputSdt** *(string) --* Selects method of inserting SDT information into output
            stream. The sdtFollow setting copies SDT information from input stream to output stream.
            The sdtFollowIfPresent setting copies SDT information from input stream to output stream
            if SDT information is present in the input, otherwise it will fall back on the
            user-defined values. The sdtManual setting means user will enter the SDT information.
            The sdtNone setting means output stream will not contain SDT information.

            - **RepInterval** *(integer) --* The number of milliseconds between instances of this
            table in the output transport stream.

            - **ServiceName** *(string) --* The service name placed in the serviceDescriptor in the
            Service Description Table. Maximum length is 256 characters.

            - **ServiceProviderName** *(string) --* The service provider name placed in the
            serviceDescriptor in the Service Description Table. Maximum length is 256 characters.

          - **DvbSubPids** *(string) --* Packet Identifier (PID) for input source DVB Subtitle data
          to this output. Multiple values are accepted, and can be entered in ranges and/or by comma
          separation. Can be entered as decimal or hexadecimal values. Each PID specified must be in
          the range of 32 (or 0x20)..8182 (or 0x1ff6).

          - **DvbTdtSettings** *(dict) --* Inserts DVB Time and Date Table (TDT) at the specified
          table repetition interval.

            - **RepInterval** *(integer) --* The number of milliseconds between instances of this
            table in the output transport stream.

          - **DvbTeletextPid** *(string) --* Packet Identifier (PID) for input source DVB Teletext
          data to this output. Can be entered as a decimal or hexadecimal value. Valid values are 32
          (or 0x20)..8182 (or 0x1ff6).

          - **Ebif** *(string) --* If set to passthrough, passes any EBIF data from the input source
          to this output.

          - **EbpAudioInterval** *(string) --* When videoAndFixedIntervals is selected, audio EBP
          markers will be added to partitions 3 and 4. The interval between these additional markers
          will be fixed, and will be slightly shorter than the video EBP marker interval. Only
          available when EBP Cablelabs segmentation markers are selected. Partitions 1 and 2 will
          always follow the video interval.

          - **EbpLookaheadMs** *(integer) --* When set, enforces that Encoder Boundary Points do not
          come within the specified time interval of each other by looking ahead at input video. If
          another EBP is going to come in within the specified time interval, the current EBP is not
          emitted, and the segment is "stretched" to the next marker. The lookahead value does not
          add latency to the system. The Live Event must be configured elsewhere to create
          sufficient latency to make the lookahead accurate.

          - **EbpPlacement** *(string) --* Controls placement of EBP on Audio PIDs. If set to
          videoAndAudioPids, EBP markers will be placed on the video PID and all audio PIDs. If set
          to videoPid, EBP markers will be placed on only the video PID.

          - **EcmPid** *(string) --* This field is unused and deprecated.

          - **EsRateInPes** *(string) --* Include or exclude the ES Rate field in the PES header.

          - **EtvPlatformPid** *(string) --* Packet Identifier (PID) for input source ETV Platform
          data to this output. Can be entered as a decimal or hexadecimal value. Valid values are 32
          (or 0x20)..8182 (or 0x1ff6).

          - **EtvSignalPid** *(string) --* Packet Identifier (PID) for input source ETV Signal data
          to this output. Can be entered as a decimal or hexadecimal value. Valid values are 32 (or
          0x20)..8182 (or 0x1ff6).

          - **FragmentTime** *(float) --* The length in seconds of each fragment. Only used with EBP
          markers.

          - **Klv** *(string) --* If set to passthrough, passes any KLV data from the input source
          to this output.

          - **KlvDataPids** *(string) --* Packet Identifier (PID) for input source KLV data to this
          output. Multiple values are accepted, and can be entered in ranges and/or by comma
          separation. Can be entered as decimal or hexadecimal values. Each PID specified must be in
          the range of 32 (or 0x20)..8182 (or 0x1ff6).

          - **NielsenId3Behavior** *(string) --* If set to passthrough, Nielsen inaudible tones for
          media tracking will be detected in the input audio and an equivalent ID3 tag will be
          inserted in the output.

          - **NullPacketBitrate** *(float) --* Value in bits per second of extra null packets to
          insert into the transport stream. This can be used if a downstream encryption system
          requires periodic null packets.

          - **PatInterval** *(integer) --* The number of milliseconds between instances of this
          table in the output transport stream. Valid values are 0, 10..1000.

          - **PcrControl** *(string) --* When set to pcrEveryPesPacket, a Program Clock Reference
          value is inserted for every Packetized Elementary Stream (PES) header. This parameter is
          effective only when the PCR PID is the same as the video or audio elementary stream.

          - **PcrPeriod** *(integer) --* Maximum time in milliseconds between Program Clock
          Reference (PCRs) inserted into the transport stream.

          - **PcrPid** *(string) --* Packet Identifier (PID) of the Program Clock Reference (PCR) in
          the transport stream. When no value is given, the encoder will assign the same value as
          the Video PID. Can be entered as a decimal or hexadecimal value. Valid values are 32 (or
          0x20)..8182 (or 0x1ff6).

          - **PmtInterval** *(integer) --* The number of milliseconds between instances of this
          table in the output transport stream. Valid values are 0, 10..1000.

          - **PmtPid** *(string) --* Packet Identifier (PID) for the Program Map Table (PMT) in the
          transport stream. Can be entered as a decimal or hexadecimal value. Valid values are 32
          (or 0x20)..8182 (or 0x1ff6).

          - **ProgramNum** *(integer) --* The value of the program number field in the Program Map
          Table.

          - **RateMode** *(string) --* When vbr, does not insert null packets into transport stream
          to fill specified bitrate. The bitrate setting acts as the maximum bitrate when vbr is
          set.

          - **Scte27Pids** *(string) --* Packet Identifier (PID) for input source SCTE-27 data to
          this output. Multiple values are accepted, and can be entered in ranges and/or by comma
          separation. Can be entered as decimal or hexadecimal values. Each PID specified must be in
          the range of 32 (or 0x20)..8182 (or 0x1ff6).

          - **Scte35Control** *(string) --* Optionally pass SCTE-35 signals from the input source to
          this output.

          - **Scte35Pid** *(string) --* Packet Identifier (PID) of the SCTE-35 stream in the
          transport stream. Can be entered as a decimal or hexadecimal value. Valid values are 32
          (or 0x20)..8182 (or 0x1ff6).

          - **SegmentationMarkers** *(string) --* Inserts segmentation markers at each
          segmentationTime period. raiSegstart sets the Random Access Indicator bit in the
          adaptation field. raiAdapt sets the RAI bit and adds the current timecode in the private
          data bytes. psiSegstart inserts PAT and PMT tables at the start of segments. ebp adds
          Encoder Boundary Point information to the adaptation field as per OpenCable specification
          OC-SP-EBP-I01-130118. ebpLegacy adds Encoder Boundary Point information to the adaptation
          field using a legacy proprietary format.

          - **SegmentationStyle** *(string) --* The segmentation style parameter controls how
          segmentation markers are inserted into the transport stream. With avails, it is possible
          that segments may be truncated, which can influence where future segmentation markers are
          inserted. When a segmentation style of "resetCadence" is selected and a segment is
          truncated due to an avail, we will reset the segmentation cadence. This means the
          subsequent segment will have a duration of $segmentationTime seconds. When a segmentation
          style of "maintainCadence" is selected and a segment is truncated due to an avail, we will
          not reset the segmentation cadence. This means the subsequent segment will likely be
          truncated as well. However, all segments after that will have a duration of
          $segmentationTime seconds. Note that EBP lookahead is a slight exception to this rule.

          - **SegmentationTime** *(float) --* The length in seconds of each segment. Required unless
          markers is set to None_.

          - **TimedMetadataBehavior** *(string) --* When set to passthrough, timed metadata will be
          passed through from input to output.

          - **TimedMetadataPid** *(string) --* Packet Identifier (PID) of the timed metadata stream
          in the transport stream. Can be entered as a decimal or hexadecimal value. Valid values
          are 32 (or 0x20)..8182 (or 0x1ff6).

          - **TransportStreamId** *(integer) --* The value of the transport stream ID field in the
          Program Map Table.

          - **VideoPid** *(string) --* Packet Identifier (PID) of the elementary video stream in the
          transport stream. Can be entered as a decimal or hexadecimal value. Valid values are 32
          (or 0x20)..8182 (or 0x1ff6).

      - **Extension** *(string) --* Output file extension. If excluded, this will be auto-selected
      from the container type.

      - **NameModifier** *(string) --* String concatenated to the end of the destination filename.
      Required for multiple outputs of the same type.

    - **FrameCaptureOutputSettings** *(dict) --* Frame Capture Output Settings

      - **NameModifier** *(string) --* Required if the output group contains more than one output.
      This modifier forms part of the output file name.

    - **HlsOutputSettings** *(dict) --* Hls Output Settings

      - **HlsSettings** *(dict) --* Settings regarding the underlying stream. These settings are
      different for audio-only outputs.

        - **AudioOnlyHlsSettings** *(dict) --* Audio Only Hls Settings

          - **AudioGroupId** *(string) --* Specifies the group to which the audio Rendition belongs.

          - **AudioOnlyImage** *(dict) --* Optional. Specifies the .jpg or .png image to use as the
          cover art for an audio-only output. We recommend a low bit-size file because the image
          increases the output audio bandwidth. The image is attached to the audio as an ID3 tag,
          frame type APIC, picture type 0x10, as per the "ID3 tag version 2.4.0 - Native Frames"
          standard.

            - **PasswordParam** *(string) --* key used to extract the password from EC2 Parameter
            store

            - **Uri** *(string) --* Uniform Resource Identifier - This should be a path to a file
            accessible to the Live system (eg. a http:// URI) depending on the output type. For
            example, a RTMP destination should have a uri simliar to: "rtmp://fmsserver/live".

            - **Username** *(string) --* Documentation update needed

          - **AudioTrackType** *(string) --* Four types of audio-only tracks are supported:
          Audio-Only Variant Stream The client can play back this audio-only stream instead of video
          in low-bandwidth scenarios. Represented as an EXT-X-STREAM-INF in the HLS manifest.
          Alternate Audio, Auto Select, Default Alternate rendition that the client should try to
          play back by default. Represented as an EXT-X-MEDIA in the HLS manifest with DEFAULT=YES,
          AUTOSELECT=
              YES Alternate Audio, Auto Select, Not Default Alternate rendition that the
          client may try to play back by default. Represented as an EXT-X-MEDIA in the HLS manifest
          with DEFAULT=NO, AUTOSELECT=
              YES Alternate Audio, not Auto Select Alternate rendition that
          the client will not try to play back by default. Represented as an EXT-X-MEDIA in the HLS
          manifest with DEFAULT=NO, AUTOSELECT=NO

        - **StandardHlsSettings** *(dict) --* Standard Hls Settings

          - **AudioRenditionSets** *(string) --* List all the audio groups that are used with the
          video output stream. Input all the audio GROUP-IDs that are associated to the video,
          separate by ','.

          - **M3u8Settings** *(dict) --* Settings information for the .m3u8 container

            - **AudioFramesPerPes** *(integer) --* The number of audio frames to insert for each PES
            packet.

            - **AudioPids** *(string) --* Packet Identifier (PID) of the elementary audio stream(s)
            in the transport stream. Multiple values are accepted, and can be entered in ranges
            and/or by comma separation. Can be entered as decimal or hexadecimal values.

            - **EcmPid** *(string) --* This parameter is unused and deprecated.

            - **NielsenId3Behavior** *(string) --* If set to passthrough, Nielsen inaudible tones
            for media tracking will be detected in the input audio and an equivalent ID3 tag will be
            inserted in the output.

            - **PatInterval** *(integer) --* The number of milliseconds between instances of this
            table in the output transport stream. A value of \\"0\\" writes out the PMT once per
            segment file.

            - **PcrControl** *(string) --* When set to pcrEveryPesPacket, a Program Clock Reference
            value is inserted for every Packetized Elementary Stream (PES) header. This parameter is
            effective only when the PCR PID is the same as the video or audio elementary stream.

            - **PcrPeriod** *(integer) --* Maximum time in milliseconds between Program Clock
            References (PCRs) inserted into the transport stream.

            - **PcrPid** *(string) --* Packet Identifier (PID) of the Program Clock Reference (PCR)
            in the transport stream. When no value is given, the encoder will assign the same value
            as the Video PID. Can be entered as a decimal or hexadecimal value.

            - **PmtInterval** *(integer) --* The number of milliseconds between instances of this
            table in the output transport stream. A value of \\"0\\" writes out the PMT once per
            segment file.

            - **PmtPid** *(string) --* Packet Identifier (PID) for the Program Map Table (PMT) in
            the transport stream. Can be entered as a decimal or hexadecimal value.

            - **ProgramNum** *(integer) --* The value of the program number field in the Program Map
            Table.

            - **Scte35Behavior** *(string) --* If set to passthrough, passes any SCTE-35 signals
            from the input source to this output.

            - **Scte35Pid** *(string) --* Packet Identifier (PID) of the SCTE-35 stream in the
            transport stream. Can be entered as a decimal or hexadecimal value.

            - **TimedMetadataBehavior** *(string) --* When set to passthrough, timed metadata is
            passed through from input to output.

            - **TimedMetadataPid** *(string) --* Packet Identifier (PID) of the timed metadata
            stream in the transport stream. Can be entered as a decimal or hexadecimal value. Valid
            values are 32 (or 0x20)..8182 (or 0x1ff6).

            - **TransportStreamId** *(integer) --* The value of the transport stream ID field in the
            Program Map Table.

            - **VideoPid** *(string) --* Packet Identifier (PID) of the elementary video stream in
            the transport stream. Can be entered as a decimal or hexadecimal value.

      - **NameModifier** *(string) --* String concatenated to the end of the destination filename.
      Accepts \\"Format Identifiers\\":#formatIdentifierParameters.

      - **SegmentModifier** *(string) --* String concatenated to end of segment filenames.

    - **MediaPackageOutputSettings** *(dict) --* Media Package Output Settings

    - **MsSmoothOutputSettings** *(dict) --* Ms Smooth Output Settings

      - **H265PackagingType** *(string) --* Only applicable when this output is referencing an H.265
      video description. Specifies whether MP4 segments should be packaged as HEV1 or HVC1.

      - **NameModifier** *(string) --* String concatenated to the end of the destination filename.
      Required for multiple outputs of the same type.

    - **MultiplexOutputSettings** *(dict) --* Multiplex Output Settings

      - **Destination** *(dict) --* Destination is a Multiplex.

        - **DestinationRefId** *(string) --* Placeholder documentation for __string

    - **RtmpOutputSettings** *(dict) --* Rtmp Output Settings

      - **CertificateMode** *(string) --* If set to verifyAuthenticity, verify the tls certificate
      chain to a trusted Certificate Authority (CA). This will cause rtmps outputs with self-signed
      certificates to fail.

      - **ConnectionRetryInterval** *(integer) --* Number of seconds to wait before retrying a
      connection to the Flash Media server if the connection is lost.

      - **Destination** *(dict) --* The RTMP endpoint excluding the stream name (eg.
      rtmp://host/appname). For connection to Akamai, a username and password must be supplied. URI
      fields accept format identifiers.

        - **DestinationRefId** *(string) --* Placeholder documentation for __string

      - **NumRetries** *(integer) --* Number of retry attempts.

    - **UdpOutputSettings** *(dict) --* Udp Output Settings

      - **BufferMsec** *(integer) --* UDP output buffering in milliseconds. Larger values increase
      latency through the transcoder but simultaneously assist the transcoder in maintaining a
      constant, low-jitter UDP/RTP output while accommodating clock recovery, input switching, input
      disruptions, picture reordering, etc.

      - **ContainerSettings** *(dict) --* Udp Container Settings

        - **M2tsSettings** *(dict) --* M2ts Settings

          - **AbsentInputAudioBehavior** *(string) --* When set to drop, output audio streams will
          be removed from the program if the selected input audio stream is removed from the input.
          This allows the output audio configuration to dynamically change based on input
          configuration. If this is set to encodeSilence, all output audio streams will output
          encoded silence when not connected to an active input stream.

          - **Arib** *(string) --* When set to enabled, uses ARIB-compliant field muxing and removes
          video descriptor.

          - **AribCaptionsPid** *(string) --* Packet Identifier (PID) for ARIB Captions in the
          transport stream. Can be entered as a decimal or hexadecimal value. Valid values are 32
          (or 0x20)..8182 (or 0x1ff6).

          - **AribCaptionsPidControl** *(string) --* If set to auto, pid number used for ARIB
          Captions will be auto-selected from unused pids. If set to useConfigured, ARIB Captions
          will be on the configured pid number.

          - **AudioBufferModel** *(string) --* When set to dvb, uses DVB buffer model for Dolby
          Digital audio. When set to atsc, the ATSC model is used.

          - **AudioFramesPerPes** *(integer) --* The number of audio frames to insert for each PES
          packet.

          - **AudioPids** *(string) --* Packet Identifier (PID) of the elementary audio stream(s) in
          the transport stream. Multiple values are accepted, and can be entered in ranges and/or by
          comma separation. Can be entered as decimal or hexadecimal values. Each PID specified must
          be in the range of 32 (or 0x20)..8182 (or 0x1ff6).

          - **AudioStreamType** *(string) --* When set to atsc, uses stream type =
               0x81 for AC3 and
          stream type = 0x87 for EAC3. When set to dvb, uses stream type = 0x06.

          - **Bitrate** *(integer) --* The output bitrate of the transport stream in bits per
          second. Setting to 0 lets the muxer automatically determine the appropriate bitrate.

          - **BufferModel** *(string) --* If set to multiplex, use multiplex buffer model for
          accurate interleaving. Setting to bufferModel to none can lead to lower latency, but
          low-memory devices may not be able to play back the stream without interruptions.

          - **CcDescriptor** *(string) --* When set to enabled, generates captionServiceDescriptor
          in PMT.

          - **DvbNitSettings** *(dict) --* Inserts DVB Network Information Table (NIT) at the
          specified table repetition interval.

            - **NetworkId** *(integer) --* The numeric value placed in the Network Information Table
            (NIT).

            - **NetworkName** *(string) --* The network name text placed in the
            networkNameDescriptor inside the Network Information Table. Maximum length is 256
            characters.

            - **RepInterval** *(integer) --* The number of milliseconds between instances of this
            table in the output transport stream.

          - **DvbSdtSettings** *(dict) --* Inserts DVB Service Description Table (SDT) at the
          specified table repetition interval.

            - **OutputSdt** *(string) --* Selects method of inserting SDT information into output
            stream. The sdtFollow setting copies SDT information from input stream to output stream.
            The sdtFollowIfPresent setting copies SDT information from input stream to output stream
            if SDT information is present in the input, otherwise it will fall back on the
            user-defined values. The sdtManual setting means user will enter the SDT information.
            The sdtNone setting means output stream will not contain SDT information.

            - **RepInterval** *(integer) --* The number of milliseconds between instances of this
            table in the output transport stream.

            - **ServiceName** *(string) --* The service name placed in the serviceDescriptor in the
            Service Description Table. Maximum length is 256 characters.

            - **ServiceProviderName** *(string) --* The service provider name placed in the
            serviceDescriptor in the Service Description Table. Maximum length is 256 characters.

          - **DvbSubPids** *(string) --* Packet Identifier (PID) for input source DVB Subtitle data
          to this output. Multiple values are accepted, and can be entered in ranges and/or by comma
          separation. Can be entered as decimal or hexadecimal values. Each PID specified must be in
          the range of 32 (or 0x20)..8182 (or 0x1ff6).

          - **DvbTdtSettings** *(dict) --* Inserts DVB Time and Date Table (TDT) at the specified
          table repetition interval.

            - **RepInterval** *(integer) --* The number of milliseconds between instances of this
            table in the output transport stream.

          - **DvbTeletextPid** *(string) --* Packet Identifier (PID) for input source DVB Teletext
          data to this output. Can be entered as a decimal or hexadecimal value. Valid values are 32
          (or 0x20)..8182 (or 0x1ff6).

          - **Ebif** *(string) --* If set to passthrough, passes any EBIF data from the input source
          to this output.

          - **EbpAudioInterval** *(string) --* When videoAndFixedIntervals is selected, audio EBP
          markers will be added to partitions 3 and 4. The interval between these additional markers
          will be fixed, and will be slightly shorter than the video EBP marker interval. Only
          available when EBP Cablelabs segmentation markers are selected. Partitions 1 and 2 will
          always follow the video interval.

          - **EbpLookaheadMs** *(integer) --* When set, enforces that Encoder Boundary Points do not
          come within the specified time interval of each other by looking ahead at input video. If
          another EBP is going to come in within the specified time interval, the current EBP is not
          emitted, and the segment is "stretched" to the next marker. The lookahead value does not
          add latency to the system. The Live Event must be configured elsewhere to create
          sufficient latency to make the lookahead accurate.

          - **EbpPlacement** *(string) --* Controls placement of EBP on Audio PIDs. If set to
          videoAndAudioPids, EBP markers will be placed on the video PID and all audio PIDs. If set
          to videoPid, EBP markers will be placed on only the video PID.

          - **EcmPid** *(string) --* This field is unused and deprecated.

          - **EsRateInPes** *(string) --* Include or exclude the ES Rate field in the PES header.

          - **EtvPlatformPid** *(string) --* Packet Identifier (PID) for input source ETV Platform
          data to this output. Can be entered as a decimal or hexadecimal value. Valid values are 32
          (or 0x20)..8182 (or 0x1ff6).

          - **EtvSignalPid** *(string) --* Packet Identifier (PID) for input source ETV Signal data
          to this output. Can be entered as a decimal or hexadecimal value. Valid values are 32 (or
          0x20)..8182 (or 0x1ff6).

          - **FragmentTime** *(float) --* The length in seconds of each fragment. Only used with EBP
          markers.

          - **Klv** *(string) --* If set to passthrough, passes any KLV data from the input source
          to this output.

          - **KlvDataPids** *(string) --* Packet Identifier (PID) for input source KLV data to this
          output. Multiple values are accepted, and can be entered in ranges and/or by comma
          separation. Can be entered as decimal or hexadecimal values. Each PID specified must be in
          the range of 32 (or 0x20)..8182 (or 0x1ff6).

          - **NielsenId3Behavior** *(string) --* If set to passthrough, Nielsen inaudible tones for
          media tracking will be detected in the input audio and an equivalent ID3 tag will be
          inserted in the output.

          - **NullPacketBitrate** *(float) --* Value in bits per second of extra null packets to
          insert into the transport stream. This can be used if a downstream encryption system
          requires periodic null packets.

          - **PatInterval** *(integer) --* The number of milliseconds between instances of this
          table in the output transport stream. Valid values are 0, 10..1000.

          - **PcrControl** *(string) --* When set to pcrEveryPesPacket, a Program Clock Reference
          value is inserted for every Packetized Elementary Stream (PES) header. This parameter is
          effective only when the PCR PID is the same as the video or audio elementary stream.

          - **PcrPeriod** *(integer) --* Maximum time in milliseconds between Program Clock
          Reference (PCRs) inserted into the transport stream.

          - **PcrPid** *(string) --* Packet Identifier (PID) of the Program Clock Reference (PCR) in
          the transport stream. When no value is given, the encoder will assign the same value as
          the Video PID. Can be entered as a decimal or hexadecimal value. Valid values are 32 (or
          0x20)..8182 (or 0x1ff6).

          - **PmtInterval** *(integer) --* The number of milliseconds between instances of this
          table in the output transport stream. Valid values are 0, 10..1000.

          - **PmtPid** *(string) --* Packet Identifier (PID) for the Program Map Table (PMT) in the
          transport stream. Can be entered as a decimal or hexadecimal value. Valid values are 32
          (or 0x20)..8182 (or 0x1ff6).

          - **ProgramNum** *(integer) --* The value of the program number field in the Program Map
          Table.

          - **RateMode** *(string) --* When vbr, does not insert null packets into transport stream
          to fill specified bitrate. The bitrate setting acts as the maximum bitrate when vbr is
          set.

          - **Scte27Pids** *(string) --* Packet Identifier (PID) for input source SCTE-27 data to
          this output. Multiple values are accepted, and can be entered in ranges and/or by comma
          separation. Can be entered as decimal or hexadecimal values. Each PID specified must be in
          the range of 32 (or 0x20)..8182 (or 0x1ff6).

          - **Scte35Control** *(string) --* Optionally pass SCTE-35 signals from the input source to
          this output.

          - **Scte35Pid** *(string) --* Packet Identifier (PID) of the SCTE-35 stream in the
          transport stream. Can be entered as a decimal or hexadecimal value. Valid values are 32
          (or 0x20)..8182 (or 0x1ff6).

          - **SegmentationMarkers** *(string) --* Inserts segmentation markers at each
          segmentationTime period. raiSegstart sets the Random Access Indicator bit in the
          adaptation field. raiAdapt sets the RAI bit and adds the current timecode in the private
          data bytes. psiSegstart inserts PAT and PMT tables at the start of segments. ebp adds
          Encoder Boundary Point information to the adaptation field as per OpenCable specification
          OC-SP-EBP-I01-130118. ebpLegacy adds Encoder Boundary Point information to the adaptation
          field using a legacy proprietary format.

          - **SegmentationStyle** *(string) --* The segmentation style parameter controls how
          segmentation markers are inserted into the transport stream. With avails, it is possible
          that segments may be truncated, which can influence where future segmentation markers are
          inserted. When a segmentation style of "resetCadence" is selected and a segment is
          truncated due to an avail, we will reset the segmentation cadence. This means the
          subsequent segment will have a duration of $segmentationTime seconds. When a segmentation
          style of "maintainCadence" is selected and a segment is truncated due to an avail, we will
          not reset the segmentation cadence. This means the subsequent segment will likely be
          truncated as well. However, all segments after that will have a duration of
          $segmentationTime seconds. Note that EBP lookahead is a slight exception to this rule.

          - **SegmentationTime** *(float) --* The length in seconds of each segment. Required unless
          markers is set to None_.

          - **TimedMetadataBehavior** *(string) --* When set to passthrough, timed metadata will be
          passed through from input to output.

          - **TimedMetadataPid** *(string) --* Packet Identifier (PID) of the timed metadata stream
          in the transport stream. Can be entered as a decimal or hexadecimal value. Valid values
          are 32 (or 0x20)..8182 (or 0x1ff6).

          - **TransportStreamId** *(integer) --* The value of the transport stream ID field in the
          Program Map Table.

          - **VideoPid** *(string) --* Packet Identifier (PID) of the elementary video stream in the
          transport stream. Can be entered as a decimal or hexadecimal value. Valid values are 32
          (or 0x20)..8182 (or 0x1ff6).

      - **Destination** *(dict) --* Destination address and port number for RTP or UDP packets. Can
      be unicast or multicast RTP or UDP (eg. rtp://239.10.10.10:5001 or udp://10.100.100.100:5002).

        - **DestinationRefId** *(string) --* Placeholder documentation for __string

      - **FecOutputSettings** *(dict) --* Settings for enabling and adjusting Forward Error
      Correction on UDP outputs.

        - **ColumnDepth** *(integer) --* Parameter D from SMPTE 2022-1. The height of the FEC
        protection matrix. The number of transport stream packets per column error correction
        packet. Must be between 4 and 20, inclusive.

        - **IncludeFec** *(string) --* Enables column only or column and row based FEC

        - **RowLength** *(integer) --* Parameter L from SMPTE 2022-1. The width of the FEC
        protection matrix. Must be between 1 and 20, inclusive. If only Column FEC is used, then
        larger values increase robustness. If Row FEC is used, then this is the number of transport
        stream packets per row error correction packet, and the value must be between 4 and 20,
        inclusive, if includeFec is columnAndRow. If includeFec is column, this value must be 1 to
        20, inclusive.
    """


_ClientCreateChannelResponseChannelEncoderSettingsOutputGroupsOutputsTypeDef = TypedDict(
    "_ClientCreateChannelResponseChannelEncoderSettingsOutputGroupsOutputsTypeDef",
    {
        "AudioDescriptionNames": List[str],
        "CaptionDescriptionNames": List[str],
        "OutputName": str,
        "OutputSettings": ClientCreateChannelResponseChannelEncoderSettingsOutputGroupsOutputsOutputSettingsTypeDef,
        "VideoDescriptionName": str,
    },
    total=False,
)


class ClientCreateChannelResponseChannelEncoderSettingsOutputGroupsOutputsTypeDef(
    _ClientCreateChannelResponseChannelEncoderSettingsOutputGroupsOutputsTypeDef
):
    """
    Type definition for `ClientCreateChannelResponseChannelEncoderSettingsOutputGroups` `Outputs`

    - **AudioDescriptionNames** *(list) --* The names of the AudioDescriptions used as audio sources
    for this output.

      - *(string) --* Placeholder documentation for __string

    - **CaptionDescriptionNames** *(list) --* The names of the CaptionDescriptions used as caption
    sources for this output.

      - *(string) --* Placeholder documentation for __string

    - **OutputName** *(string) --* The name used to identify an output.

    - **OutputSettings** *(dict) --* Output type-specific settings.

      - **ArchiveOutputSettings** *(dict) --* Archive Output Settings

        - **ContainerSettings** *(dict) --* Settings specific to the container type of the file.

          - **M2tsSettings** *(dict) --* M2ts Settings

            - **AbsentInputAudioBehavior** *(string) --* When set to drop, output audio streams will
            be removed from the program if the selected input audio stream is removed from the
            input. This allows the output audio configuration to dynamically change based on input
            configuration. If this is set to encodeSilence, all output audio streams will output
            encoded silence when not connected to an active input stream.

            - **Arib** *(string) --* When set to enabled, uses ARIB-compliant field muxing and
            removes video descriptor.

            - **AribCaptionsPid** *(string) --* Packet Identifier (PID) for ARIB Captions in the
            transport stream. Can be entered as a decimal or hexadecimal value. Valid values are 32
            (or 0x20)..8182 (or 0x1ff6).

            - **AribCaptionsPidControl** *(string) --* If set to auto, pid number used for ARIB
            Captions will be auto-selected from unused pids. If set to useConfigured, ARIB Captions
            will be on the configured pid number.

            - **AudioBufferModel** *(string) --* When set to dvb, uses DVB buffer model for Dolby
            Digital audio. When set to atsc, the ATSC model is used.

            - **AudioFramesPerPes** *(integer) --* The number of audio frames to insert for each PES
            packet.

            - **AudioPids** *(string) --* Packet Identifier (PID) of the elementary audio stream(s)
            in the transport stream. Multiple values are accepted, and can be entered in ranges
            and/or by comma separation. Can be entered as decimal or hexadecimal values. Each PID
            specified must be in the range of 32 (or 0x20)..8182 (or 0x1ff6).

            - **AudioStreamType** *(string) --* When set to atsc, uses stream type =
                 0x81 for AC3
            and stream type = 0x87 for EAC3. When set to dvb, uses stream type = 0x06.

            - **Bitrate** *(integer) --* The output bitrate of the transport stream in bits per
            second. Setting to 0 lets the muxer automatically determine the appropriate bitrate.

            - **BufferModel** *(string) --* If set to multiplex, use multiplex buffer model for
            accurate interleaving. Setting to bufferModel to none can lead to lower latency, but
            low-memory devices may not be able to play back the stream without interruptions.

            - **CcDescriptor** *(string) --* When set to enabled, generates captionServiceDescriptor
            in PMT.

            - **DvbNitSettings** *(dict) --* Inserts DVB Network Information Table (NIT) at the
            specified table repetition interval.

              - **NetworkId** *(integer) --* The numeric value placed in the Network Information
              Table (NIT).

              - **NetworkName** *(string) --* The network name text placed in the
              networkNameDescriptor inside the Network Information Table. Maximum length is 256
              characters.

              - **RepInterval** *(integer) --* The number of milliseconds between instances of this
              table in the output transport stream.

            - **DvbSdtSettings** *(dict) --* Inserts DVB Service Description Table (SDT) at the
            specified table repetition interval.

              - **OutputSdt** *(string) --* Selects method of inserting SDT information into output
              stream. The sdtFollow setting copies SDT information from input stream to output
              stream. The sdtFollowIfPresent setting copies SDT information from input stream to
              output stream if SDT information is present in the input, otherwise it will fall back
              on the user-defined values. The sdtManual setting means user will enter the SDT
              information. The sdtNone setting means output stream will not contain SDT information.

              - **RepInterval** *(integer) --* The number of milliseconds between instances of this
              table in the output transport stream.

              - **ServiceName** *(string) --* The service name placed in the serviceDescriptor in
              the Service Description Table. Maximum length is 256 characters.

              - **ServiceProviderName** *(string) --* The service provider name placed in the
              serviceDescriptor in the Service Description Table. Maximum length is 256 characters.

            - **DvbSubPids** *(string) --* Packet Identifier (PID) for input source DVB Subtitle
            data to this output. Multiple values are accepted, and can be entered in ranges and/or
            by comma separation. Can be entered as decimal or hexadecimal values. Each PID specified
            must be in the range of 32 (or 0x20)..8182 (or 0x1ff6).

            - **DvbTdtSettings** *(dict) --* Inserts DVB Time and Date Table (TDT) at the specified
            table repetition interval.

              - **RepInterval** *(integer) --* The number of milliseconds between instances of this
              table in the output transport stream.

            - **DvbTeletextPid** *(string) --* Packet Identifier (PID) for input source DVB Teletext
            data to this output. Can be entered as a decimal or hexadecimal value. Valid values are
            32 (or 0x20)..8182 (or 0x1ff6).

            - **Ebif** *(string) --* If set to passthrough, passes any EBIF data from the input
            source to this output.

            - **EbpAudioInterval** *(string) --* When videoAndFixedIntervals is selected, audio EBP
            markers will be added to partitions 3 and 4. The interval between these additional
            markers will be fixed, and will be slightly shorter than the video EBP marker interval.
            Only available when EBP Cablelabs segmentation markers are selected. Partitions 1 and 2
            will always follow the video interval.

            - **EbpLookaheadMs** *(integer) --* When set, enforces that Encoder Boundary Points do
            not come within the specified time interval of each other by looking ahead at input
            video. If another EBP is going to come in within the specified time interval, the
            current EBP is not emitted, and the segment is "stretched" to the next marker. The
            lookahead value does not add latency to the system. The Live Event must be configured
            elsewhere to create sufficient latency to make the lookahead accurate.

            - **EbpPlacement** *(string) --* Controls placement of EBP on Audio PIDs. If set to
            videoAndAudioPids, EBP markers will be placed on the video PID and all audio PIDs. If
            set to videoPid, EBP markers will be placed on only the video PID.

            - **EcmPid** *(string) --* This field is unused and deprecated.

            - **EsRateInPes** *(string) --* Include or exclude the ES Rate field in the PES header.

            - **EtvPlatformPid** *(string) --* Packet Identifier (PID) for input source ETV Platform
            data to this output. Can be entered as a decimal or hexadecimal value. Valid values are
            32 (or 0x20)..8182 (or 0x1ff6).

            - **EtvSignalPid** *(string) --* Packet Identifier (PID) for input source ETV Signal
            data to this output. Can be entered as a decimal or hexadecimal value. Valid values are
            32 (or 0x20)..8182 (or 0x1ff6).

            - **FragmentTime** *(float) --* The length in seconds of each fragment. Only used with
            EBP markers.

            - **Klv** *(string) --* If set to passthrough, passes any KLV data from the input source
            to this output.

            - **KlvDataPids** *(string) --* Packet Identifier (PID) for input source KLV data to
            this output. Multiple values are accepted, and can be entered in ranges and/or by comma
            separation. Can be entered as decimal or hexadecimal values. Each PID specified must be
            in the range of 32 (or 0x20)..8182 (or 0x1ff6).

            - **NielsenId3Behavior** *(string) --* If set to passthrough, Nielsen inaudible tones
            for media tracking will be detected in the input audio and an equivalent ID3 tag will be
            inserted in the output.

            - **NullPacketBitrate** *(float) --* Value in bits per second of extra null packets to
            insert into the transport stream. This can be used if a downstream encryption system
            requires periodic null packets.

            - **PatInterval** *(integer) --* The number of milliseconds between instances of this
            table in the output transport stream. Valid values are 0, 10..1000.

            - **PcrControl** *(string) --* When set to pcrEveryPesPacket, a Program Clock Reference
            value is inserted for every Packetized Elementary Stream (PES) header. This parameter is
            effective only when the PCR PID is the same as the video or audio elementary stream.

            - **PcrPeriod** *(integer) --* Maximum time in milliseconds between Program Clock
            Reference (PCRs) inserted into the transport stream.

            - **PcrPid** *(string) --* Packet Identifier (PID) of the Program Clock Reference (PCR)
            in the transport stream. When no value is given, the encoder will assign the same value
            as the Video PID. Can be entered as a decimal or hexadecimal value. Valid values are 32
            (or 0x20)..8182 (or 0x1ff6).

            - **PmtInterval** *(integer) --* The number of milliseconds between instances of this
            table in the output transport stream. Valid values are 0, 10..1000.

            - **PmtPid** *(string) --* Packet Identifier (PID) for the Program Map Table (PMT) in
            the transport stream. Can be entered as a decimal or hexadecimal value. Valid values are
            32 (or 0x20)..8182 (or 0x1ff6).

            - **ProgramNum** *(integer) --* The value of the program number field in the Program Map
            Table.

            - **RateMode** *(string) --* When vbr, does not insert null packets into transport
            stream to fill specified bitrate. The bitrate setting acts as the maximum bitrate when
            vbr is set.

            - **Scte27Pids** *(string) --* Packet Identifier (PID) for input source SCTE-27 data to
            this output. Multiple values are accepted, and can be entered in ranges and/or by comma
            separation. Can be entered as decimal or hexadecimal values. Each PID specified must be
            in the range of 32 (or 0x20)..8182 (or 0x1ff6).

            - **Scte35Control** *(string) --* Optionally pass SCTE-35 signals from the input source
            to this output.

            - **Scte35Pid** *(string) --* Packet Identifier (PID) of the SCTE-35 stream in the
            transport stream. Can be entered as a decimal or hexadecimal value. Valid values are 32
            (or 0x20)..8182 (or 0x1ff6).

            - **SegmentationMarkers** *(string) --* Inserts segmentation markers at each
            segmentationTime period. raiSegstart sets the Random Access Indicator bit in the
            adaptation field. raiAdapt sets the RAI bit and adds the current timecode in the private
            data bytes. psiSegstart inserts PAT and PMT tables at the start of segments. ebp adds
            Encoder Boundary Point information to the adaptation field as per OpenCable
            specification OC-SP-EBP-I01-130118. ebpLegacy adds Encoder Boundary Point information to
            the adaptation field using a legacy proprietary format.

            - **SegmentationStyle** *(string) --* The segmentation style parameter controls how
            segmentation markers are inserted into the transport stream. With avails, it is possible
            that segments may be truncated, which can influence where future segmentation markers
            are inserted. When a segmentation style of "resetCadence" is selected and a segment is
            truncated due to an avail, we will reset the segmentation cadence. This means the
            subsequent segment will have a duration of $segmentationTime seconds. When a
            segmentation style of "maintainCadence" is selected and a segment is truncated due to an
            avail, we will not reset the segmentation cadence. This means the subsequent segment
            will likely be truncated as well. However, all segments after that will have a duration
            of $segmentationTime seconds. Note that EBP lookahead is a slight exception to this
            rule.

            - **SegmentationTime** *(float) --* The length in seconds of each segment. Required
            unless markers is set to None_.

            - **TimedMetadataBehavior** *(string) --* When set to passthrough, timed metadata will
            be passed through from input to output.

            - **TimedMetadataPid** *(string) --* Packet Identifier (PID) of the timed metadata
            stream in the transport stream. Can be entered as a decimal or hexadecimal value. Valid
            values are 32 (or 0x20)..8182 (or 0x1ff6).

            - **TransportStreamId** *(integer) --* The value of the transport stream ID field in the
            Program Map Table.

            - **VideoPid** *(string) --* Packet Identifier (PID) of the elementary video stream in
            the transport stream. Can be entered as a decimal or hexadecimal value. Valid values are
            32 (or 0x20)..8182 (or 0x1ff6).

        - **Extension** *(string) --* Output file extension. If excluded, this will be auto-selected
        from the container type.

        - **NameModifier** *(string) --* String concatenated to the end of the destination filename.
        Required for multiple outputs of the same type.

      - **FrameCaptureOutputSettings** *(dict) --* Frame Capture Output Settings

        - **NameModifier** *(string) --* Required if the output group contains more than one output.
        This modifier forms part of the output file name.

      - **HlsOutputSettings** *(dict) --* Hls Output Settings

        - **HlsSettings** *(dict) --* Settings regarding the underlying stream. These settings are
        different for audio-only outputs.

          - **AudioOnlyHlsSettings** *(dict) --* Audio Only Hls Settings

            - **AudioGroupId** *(string) --* Specifies the group to which the audio Rendition
            belongs.

            - **AudioOnlyImage** *(dict) --* Optional. Specifies the .jpg or .png image to use as
            the cover art for an audio-only output. We recommend a low bit-size file because the
            image increases the output audio bandwidth. The image is attached to the audio as an ID3
            tag, frame type APIC, picture type 0x10, as per the "ID3 tag version 2.4.0 - Native
            Frames" standard.

              - **PasswordParam** *(string) --* key used to extract the password from EC2 Parameter
              store

              - **Uri** *(string) --* Uniform Resource Identifier - This should be a path to a file
              accessible to the Live system (eg. a http:// URI) depending on the output type. For
              example, a RTMP destination should have a uri simliar to: "rtmp://fmsserver/live".

              - **Username** *(string) --* Documentation update needed

            - **AudioTrackType** *(string) --* Four types of audio-only tracks are supported:
            Audio-Only Variant Stream The client can play back this audio-only stream instead of
            video in low-bandwidth scenarios. Represented as an EXT-X-STREAM-INF in the HLS
            manifest. Alternate Audio, Auto Select, Default Alternate rendition that the client
            should try to play back by default. Represented as an EXT-X-MEDIA in the HLS manifest
            with DEFAULT=YES, AUTOSELECT=
                YES Alternate Audio, Auto Select, Not Default Alternate
            rendition that the client may try to play back by default. Represented as an EXT-X-MEDIA
            in the HLS manifest with DEFAULT=NO, AUTOSELECT=
                YES Alternate Audio, not Auto Select
            Alternate rendition that the client will not try to play back by default. Represented as
            an EXT-X-MEDIA in the HLS manifest with DEFAULT=NO, AUTOSELECT=NO

          - **StandardHlsSettings** *(dict) --* Standard Hls Settings

            - **AudioRenditionSets** *(string) --* List all the audio groups that are used with the
            video output stream. Input all the audio GROUP-IDs that are associated to the video,
            separate by ','.

            - **M3u8Settings** *(dict) --* Settings information for the .m3u8 container

              - **AudioFramesPerPes** *(integer) --* The number of audio frames to insert for each
              PES packet.

              - **AudioPids** *(string) --* Packet Identifier (PID) of the elementary audio
              stream(s) in the transport stream. Multiple values are accepted, and can be entered in
              ranges and/or by comma separation. Can be entered as decimal or hexadecimal values.

              - **EcmPid** *(string) --* This parameter is unused and deprecated.

              - **NielsenId3Behavior** *(string) --* If set to passthrough, Nielsen inaudible tones
              for media tracking will be detected in the input audio and an equivalent ID3 tag will
              be inserted in the output.

              - **PatInterval** *(integer) --* The number of milliseconds between instances of this
              table in the output transport stream. A value of \\"0\\" writes out the PMT once per
              segment file.

              - **PcrControl** *(string) --* When set to pcrEveryPesPacket, a Program Clock
              Reference value is inserted for every Packetized Elementary Stream (PES) header. This
              parameter is effective only when the PCR PID is the same as the video or audio
              elementary stream.

              - **PcrPeriod** *(integer) --* Maximum time in milliseconds between Program Clock
              References (PCRs) inserted into the transport stream.

              - **PcrPid** *(string) --* Packet Identifier (PID) of the Program Clock Reference
              (PCR) in the transport stream. When no value is given, the encoder will assign the
              same value as the Video PID. Can be entered as a decimal or hexadecimal value.

              - **PmtInterval** *(integer) --* The number of milliseconds between instances of this
              table in the output transport stream. A value of \\"0\\" writes out the PMT once per
              segment file.

              - **PmtPid** *(string) --* Packet Identifier (PID) for the Program Map Table (PMT) in
              the transport stream. Can be entered as a decimal or hexadecimal value.

              - **ProgramNum** *(integer) --* The value of the program number field in the Program
              Map Table.

              - **Scte35Behavior** *(string) --* If set to passthrough, passes any SCTE-35 signals
              from the input source to this output.

              - **Scte35Pid** *(string) --* Packet Identifier (PID) of the SCTE-35 stream in the
              transport stream. Can be entered as a decimal or hexadecimal value.

              - **TimedMetadataBehavior** *(string) --* When set to passthrough, timed metadata is
              passed through from input to output.

              - **TimedMetadataPid** *(string) --* Packet Identifier (PID) of the timed metadata
              stream in the transport stream. Can be entered as a decimal or hexadecimal value.
              Valid values are 32 (or 0x20)..8182 (or 0x1ff6).

              - **TransportStreamId** *(integer) --* The value of the transport stream ID field in
              the Program Map Table.

              - **VideoPid** *(string) --* Packet Identifier (PID) of the elementary video stream in
              the transport stream. Can be entered as a decimal or hexadecimal value.

        - **NameModifier** *(string) --* String concatenated to the end of the destination filename.
        Accepts \\"Format Identifiers\\":#formatIdentifierParameters.

        - **SegmentModifier** *(string) --* String concatenated to end of segment filenames.

      - **MediaPackageOutputSettings** *(dict) --* Media Package Output Settings

      - **MsSmoothOutputSettings** *(dict) --* Ms Smooth Output Settings

        - **H265PackagingType** *(string) --* Only applicable when this output is referencing an
        H.265 video description. Specifies whether MP4 segments should be packaged as HEV1 or HVC1.

        - **NameModifier** *(string) --* String concatenated to the end of the destination filename.
        Required for multiple outputs of the same type.

      - **MultiplexOutputSettings** *(dict) --* Multiplex Output Settings

        - **Destination** *(dict) --* Destination is a Multiplex.

          - **DestinationRefId** *(string) --* Placeholder documentation for __string

      - **RtmpOutputSettings** *(dict) --* Rtmp Output Settings

        - **CertificateMode** *(string) --* If set to verifyAuthenticity, verify the tls certificate
        chain to a trusted Certificate Authority (CA). This will cause rtmps outputs with
        self-signed certificates to fail.

        - **ConnectionRetryInterval** *(integer) --* Number of seconds to wait before retrying a
        connection to the Flash Media server if the connection is lost.

        - **Destination** *(dict) --* The RTMP endpoint excluding the stream name (eg.
        rtmp://host/appname). For connection to Akamai, a username and password must be supplied.
        URI fields accept format identifiers.

          - **DestinationRefId** *(string) --* Placeholder documentation for __string

        - **NumRetries** *(integer) --* Number of retry attempts.

      - **UdpOutputSettings** *(dict) --* Udp Output Settings

        - **BufferMsec** *(integer) --* UDP output buffering in milliseconds. Larger values increase
        latency through the transcoder but simultaneously assist the transcoder in maintaining a
        constant, low-jitter UDP/RTP output while accommodating clock recovery, input switching,
        input disruptions, picture reordering, etc.

        - **ContainerSettings** *(dict) --* Udp Container Settings

          - **M2tsSettings** *(dict) --* M2ts Settings

            - **AbsentInputAudioBehavior** *(string) --* When set to drop, output audio streams will
            be removed from the program if the selected input audio stream is removed from the
            input. This allows the output audio configuration to dynamically change based on input
            configuration. If this is set to encodeSilence, all output audio streams will output
            encoded silence when not connected to an active input stream.

            - **Arib** *(string) --* When set to enabled, uses ARIB-compliant field muxing and
            removes video descriptor.

            - **AribCaptionsPid** *(string) --* Packet Identifier (PID) for ARIB Captions in the
            transport stream. Can be entered as a decimal or hexadecimal value. Valid values are 32
            (or 0x20)..8182 (or 0x1ff6).

            - **AribCaptionsPidControl** *(string) --* If set to auto, pid number used for ARIB
            Captions will be auto-selected from unused pids. If set to useConfigured, ARIB Captions
            will be on the configured pid number.

            - **AudioBufferModel** *(string) --* When set to dvb, uses DVB buffer model for Dolby
            Digital audio. When set to atsc, the ATSC model is used.

            - **AudioFramesPerPes** *(integer) --* The number of audio frames to insert for each PES
            packet.

            - **AudioPids** *(string) --* Packet Identifier (PID) of the elementary audio stream(s)
            in the transport stream. Multiple values are accepted, and can be entered in ranges
            and/or by comma separation. Can be entered as decimal or hexadecimal values. Each PID
            specified must be in the range of 32 (or 0x20)..8182 (or 0x1ff6).

            - **AudioStreamType** *(string) --* When set to atsc, uses stream type =
                 0x81 for AC3
            and stream type = 0x87 for EAC3. When set to dvb, uses stream type = 0x06.

            - **Bitrate** *(integer) --* The output bitrate of the transport stream in bits per
            second. Setting to 0 lets the muxer automatically determine the appropriate bitrate.

            - **BufferModel** *(string) --* If set to multiplex, use multiplex buffer model for
            accurate interleaving. Setting to bufferModel to none can lead to lower latency, but
            low-memory devices may not be able to play back the stream without interruptions.

            - **CcDescriptor** *(string) --* When set to enabled, generates captionServiceDescriptor
            in PMT.

            - **DvbNitSettings** *(dict) --* Inserts DVB Network Information Table (NIT) at the
            specified table repetition interval.

              - **NetworkId** *(integer) --* The numeric value placed in the Network Information
              Table (NIT).

              - **NetworkName** *(string) --* The network name text placed in the
              networkNameDescriptor inside the Network Information Table. Maximum length is 256
              characters.

              - **RepInterval** *(integer) --* The number of milliseconds between instances of this
              table in the output transport stream.

            - **DvbSdtSettings** *(dict) --* Inserts DVB Service Description Table (SDT) at the
            specified table repetition interval.

              - **OutputSdt** *(string) --* Selects method of inserting SDT information into output
              stream. The sdtFollow setting copies SDT information from input stream to output
              stream. The sdtFollowIfPresent setting copies SDT information from input stream to
              output stream if SDT information is present in the input, otherwise it will fall back
              on the user-defined values. The sdtManual setting means user will enter the SDT
              information. The sdtNone setting means output stream will not contain SDT information.

              - **RepInterval** *(integer) --* The number of milliseconds between instances of this
              table in the output transport stream.

              - **ServiceName** *(string) --* The service name placed in the serviceDescriptor in
              the Service Description Table. Maximum length is 256 characters.

              - **ServiceProviderName** *(string) --* The service provider name placed in the
              serviceDescriptor in the Service Description Table. Maximum length is 256 characters.

            - **DvbSubPids** *(string) --* Packet Identifier (PID) for input source DVB Subtitle
            data to this output. Multiple values are accepted, and can be entered in ranges and/or
            by comma separation. Can be entered as decimal or hexadecimal values. Each PID specified
            must be in the range of 32 (or 0x20)..8182 (or 0x1ff6).

            - **DvbTdtSettings** *(dict) --* Inserts DVB Time and Date Table (TDT) at the specified
            table repetition interval.

              - **RepInterval** *(integer) --* The number of milliseconds between instances of this
              table in the output transport stream.

            - **DvbTeletextPid** *(string) --* Packet Identifier (PID) for input source DVB Teletext
            data to this output. Can be entered as a decimal or hexadecimal value. Valid values are
            32 (or 0x20)..8182 (or 0x1ff6).

            - **Ebif** *(string) --* If set to passthrough, passes any EBIF data from the input
            source to this output.

            - **EbpAudioInterval** *(string) --* When videoAndFixedIntervals is selected, audio EBP
            markers will be added to partitions 3 and 4. The interval between these additional
            markers will be fixed, and will be slightly shorter than the video EBP marker interval.
            Only available when EBP Cablelabs segmentation markers are selected. Partitions 1 and 2
            will always follow the video interval.

            - **EbpLookaheadMs** *(integer) --* When set, enforces that Encoder Boundary Points do
            not come within the specified time interval of each other by looking ahead at input
            video. If another EBP is going to come in within the specified time interval, the
            current EBP is not emitted, and the segment is "stretched" to the next marker. The
            lookahead value does not add latency to the system. The Live Event must be configured
            elsewhere to create sufficient latency to make the lookahead accurate.

            - **EbpPlacement** *(string) --* Controls placement of EBP on Audio PIDs. If set to
            videoAndAudioPids, EBP markers will be placed on the video PID and all audio PIDs. If
            set to videoPid, EBP markers will be placed on only the video PID.

            - **EcmPid** *(string) --* This field is unused and deprecated.

            - **EsRateInPes** *(string) --* Include or exclude the ES Rate field in the PES header.

            - **EtvPlatformPid** *(string) --* Packet Identifier (PID) for input source ETV Platform
            data to this output. Can be entered as a decimal or hexadecimal value. Valid values are
            32 (or 0x20)..8182 (or 0x1ff6).

            - **EtvSignalPid** *(string) --* Packet Identifier (PID) for input source ETV Signal
            data to this output. Can be entered as a decimal or hexadecimal value. Valid values are
            32 (or 0x20)..8182 (or 0x1ff6).

            - **FragmentTime** *(float) --* The length in seconds of each fragment. Only used with
            EBP markers.

            - **Klv** *(string) --* If set to passthrough, passes any KLV data from the input source
            to this output.

            - **KlvDataPids** *(string) --* Packet Identifier (PID) for input source KLV data to
            this output. Multiple values are accepted, and can be entered in ranges and/or by comma
            separation. Can be entered as decimal or hexadecimal values. Each PID specified must be
            in the range of 32 (or 0x20)..8182 (or 0x1ff6).

            - **NielsenId3Behavior** *(string) --* If set to passthrough, Nielsen inaudible tones
            for media tracking will be detected in the input audio and an equivalent ID3 tag will be
            inserted in the output.

            - **NullPacketBitrate** *(float) --* Value in bits per second of extra null packets to
            insert into the transport stream. This can be used if a downstream encryption system
            requires periodic null packets.

            - **PatInterval** *(integer) --* The number of milliseconds between instances of this
            table in the output transport stream. Valid values are 0, 10..1000.

            - **PcrControl** *(string) --* When set to pcrEveryPesPacket, a Program Clock Reference
            value is inserted for every Packetized Elementary Stream (PES) header. This parameter is
            effective only when the PCR PID is the same as the video or audio elementary stream.

            - **PcrPeriod** *(integer) --* Maximum time in milliseconds between Program Clock
            Reference (PCRs) inserted into the transport stream.

            - **PcrPid** *(string) --* Packet Identifier (PID) of the Program Clock Reference (PCR)
            in the transport stream. When no value is given, the encoder will assign the same value
            as the Video PID. Can be entered as a decimal or hexadecimal value. Valid values are 32
            (or 0x20)..8182 (or 0x1ff6).

            - **PmtInterval** *(integer) --* The number of milliseconds between instances of this
            table in the output transport stream. Valid values are 0, 10..1000.

            - **PmtPid** *(string) --* Packet Identifier (PID) for the Program Map Table (PMT) in
            the transport stream. Can be entered as a decimal or hexadecimal value. Valid values are
            32 (or 0x20)..8182 (or 0x1ff6).

            - **ProgramNum** *(integer) --* The value of the program number field in the Program Map
            Table.

            - **RateMode** *(string) --* When vbr, does not insert null packets into transport
            stream to fill specified bitrate. The bitrate setting acts as the maximum bitrate when
            vbr is set.

            - **Scte27Pids** *(string) --* Packet Identifier (PID) for input source SCTE-27 data to
            this output. Multiple values are accepted, and can be entered in ranges and/or by comma
            separation. Can be entered as decimal or hexadecimal values. Each PID specified must be
            in the range of 32 (or 0x20)..8182 (or 0x1ff6).

            - **Scte35Control** *(string) --* Optionally pass SCTE-35 signals from the input source
            to this output.

            - **Scte35Pid** *(string) --* Packet Identifier (PID) of the SCTE-35 stream in the
            transport stream. Can be entered as a decimal or hexadecimal value. Valid values are 32
            (or 0x20)..8182 (or 0x1ff6).

            - **SegmentationMarkers** *(string) --* Inserts segmentation markers at each
            segmentationTime period. raiSegstart sets the Random Access Indicator bit in the
            adaptation field. raiAdapt sets the RAI bit and adds the current timecode in the private
            data bytes. psiSegstart inserts PAT and PMT tables at the start of segments. ebp adds
            Encoder Boundary Point information to the adaptation field as per OpenCable
            specification OC-SP-EBP-I01-130118. ebpLegacy adds Encoder Boundary Point information to
            the adaptation field using a legacy proprietary format.

            - **SegmentationStyle** *(string) --* The segmentation style parameter controls how
            segmentation markers are inserted into the transport stream. With avails, it is possible
            that segments may be truncated, which can influence where future segmentation markers
            are inserted. When a segmentation style of "resetCadence" is selected and a segment is
            truncated due to an avail, we will reset the segmentation cadence. This means the
            subsequent segment will have a duration of $segmentationTime seconds. When a
            segmentation style of "maintainCadence" is selected and a segment is truncated due to an
            avail, we will not reset the segmentation cadence. This means the subsequent segment
            will likely be truncated as well. However, all segments after that will have a duration
            of $segmentationTime seconds. Note that EBP lookahead is a slight exception to this
            rule.

            - **SegmentationTime** *(float) --* The length in seconds of each segment. Required
            unless markers is set to None_.

            - **TimedMetadataBehavior** *(string) --* When set to passthrough, timed metadata will
            be passed through from input to output.

            - **TimedMetadataPid** *(string) --* Packet Identifier (PID) of the timed metadata
            stream in the transport stream. Can be entered as a decimal or hexadecimal value. Valid
            values are 32 (or 0x20)..8182 (or 0x1ff6).

            - **TransportStreamId** *(integer) --* The value of the transport stream ID field in the
            Program Map Table.

            - **VideoPid** *(string) --* Packet Identifier (PID) of the elementary video stream in
            the transport stream. Can be entered as a decimal or hexadecimal value. Valid values are
            32 (or 0x20)..8182 (or 0x1ff6).

        - **Destination** *(dict) --* Destination address and port number for RTP or UDP packets.
        Can be unicast or multicast RTP or UDP (eg. rtp://239.10.10.10:5001 or
        udp://10.100.100.100:5002).

          - **DestinationRefId** *(string) --* Placeholder documentation for __string

        - **FecOutputSettings** *(dict) --* Settings for enabling and adjusting Forward Error
        Correction on UDP outputs.

          - **ColumnDepth** *(integer) --* Parameter D from SMPTE 2022-1. The height of the FEC
          protection matrix. The number of transport stream packets per column error correction
          packet. Must be between 4 and 20, inclusive.

          - **IncludeFec** *(string) --* Enables column only or column and row based FEC

          - **RowLength** *(integer) --* Parameter L from SMPTE 2022-1. The width of the FEC
          protection matrix. Must be between 1 and 20, inclusive. If only Column FEC is used, then
          larger values increase robustness. If Row FEC is used, then this is the number of
          transport stream packets per row error correction packet, and the value must be between 4
          and 20, inclusive, if includeFec is columnAndRow. If includeFec is column, this value must
          be 1 to 20, inclusive.

    - **VideoDescriptionName** *(string) --* The name of the VideoDescription used as the source for
    this output.
    """


_ClientCreateChannelResponseChannelEncoderSettingsOutputGroupsTypeDef = TypedDict(
    "_ClientCreateChannelResponseChannelEncoderSettingsOutputGroupsTypeDef",
    {
        "Name": str,
        "OutputGroupSettings": ClientCreateChannelResponseChannelEncoderSettingsOutputGroupsOutputGroupSettingsTypeDef,
        "Outputs": List[
            ClientCreateChannelResponseChannelEncoderSettingsOutputGroupsOutputsTypeDef
        ],
    },
    total=False,
)


class ClientCreateChannelResponseChannelEncoderSettingsOutputGroupsTypeDef(
    _ClientCreateChannelResponseChannelEncoderSettingsOutputGroupsTypeDef
):
    """
    Type definition for `ClientCreateChannelResponseChannelEncoderSettings` `OutputGroups`

    - **Name** *(string) --* Custom output group name optionally defined by the user. Only letters,
    numbers, and the underscore character allowed; only 32 characters allowed.

    - **OutputGroupSettings** *(dict) --* Settings associated with the output group.

      - **ArchiveGroupSettings** *(dict) --* Archive Group Settings

        - **Destination** *(dict) --* A directory and base filename where archive files should be
        written.

          - **DestinationRefId** *(string) --* Placeholder documentation for __string

        - **RolloverInterval** *(integer) --* Number of seconds to write to archive file before
        closing and starting a new one.

      - **FrameCaptureGroupSettings** *(dict) --* Frame Capture Group Settings

        - **Destination** *(dict) --* The destination for the frame capture files. Either the URI
        for an Amazon S3 bucket and object, plus a file name prefix (for example,
        s3ssl://sportsDelivery/highlights/20180820/curling_) or the URI for a MediaStore container,
        plus a file name prefix (for example, mediastoressl://sportsDelivery/20180820/curling_). The
        final file names consist of the prefix from the destination field (for example, "curling_")
        + name modifier + the counter (5 digits, starting from 00001) + extension (which is always
        .jpg). For example, curlingLow.00001.jpg

          - **DestinationRefId** *(string) --* Placeholder documentation for __string

      - **HlsGroupSettings** *(dict) --* Hls Group Settings

        - **AdMarkers** *(list) --* Choose one or more ad marker types to pass SCTE35 signals
        through to this group of Apple HLS outputs.

          - *(string) --* Hls Ad Markers

        - **BaseUrlContent** *(string) --* A partial URI prefix that will be prepended to each
        output in the media .m3u8 file. Can be used if base manifest is delivered from a different
        URL than the main .m3u8 file.

        - **BaseUrlManifest** *(string) --* A partial URI prefix that will be prepended to each
        output in the media .m3u8 file. Can be used if base manifest is delivered from a different
        URL than the main .m3u8 file.

        - **CaptionLanguageMappings** *(list) --* Mapping of up to 4 caption channels to caption
        languages. Is only meaningful if captionLanguageSetting is set to "insert".

          - *(dict) --* Maps a caption channel to an ISO 693-2 language code
          (http://www.loc.gov/standards/iso639-2), with an optional description.

            - **CaptionChannel** *(integer) --* The closed caption channel being described by this
            CaptionLanguageMapping. Each channel mapping must have a unique channel number (maximum
            of 4)

            - **LanguageCode** *(string) --* Three character ISO 639-2 language code (see
            http://www.loc.gov/standards/iso639-2)

            - **LanguageDescription** *(string) --* Textual description of language

        - **CaptionLanguageSetting** *(string) --* Applies only to 608 Embedded output captions.
        insert: Include CLOSED-CAPTIONS lines in the manifest. Specify at least one language in the
        CC1 Language Code field. One CLOSED-CAPTION line is added for each Language Code you
        specify. Make sure to specify the languages in the order in which they appear in the
        original source (if the source is embedded format) or the order of the caption selectors (if
        the source is other than embedded). Otherwise, languages in the manifest will not match up
        properly with the output captions. none: Include CLOSED-CAPTIONS=
            NONE line in the manifest.
        omit: Omit any CLOSED-CAPTIONS line from the manifest.

        - **ClientCache** *(string) --* When set to "disabled", sets the #EXT-X-ALLOW-CACHE:no tag
        in the manifest, which prevents clients from saving media segments for later replay.

        - **CodecSpecification** *(string) --* Specification to use (RFC-6381 or the default
        RFC-4281) during m3u8 playlist generation.

        - **ConstantIv** *(string) --* For use with encryptionType. This is a 128-bit, 16-byte hex
        value represented by a 32-character text string. If ivSource is set to "explicit" then this
        parameter is required and is used as the IV for encryption.

        - **Destination** *(dict) --* A directory or HTTP destination for the HLS segments, manifest
        files, and encryption keys (if enabled).

          - **DestinationRefId** *(string) --* Placeholder documentation for __string

        - **DirectoryStructure** *(string) --* Place segments in subdirectories.

        - **EncryptionType** *(string) --* Encrypts the segments with the given encryption scheme.
        Exclude this parameter if no encryption is desired.

        - **HlsCdnSettings** *(dict) --* Parameters that control interactions with the CDN.

          - **HlsAkamaiSettings** *(dict) --* Hls Akamai Settings

            - **ConnectionRetryInterval** *(integer) --* Number of seconds to wait before retrying
            connection to the CDN if the connection is lost.

            - **FilecacheDuration** *(integer) --* Size in seconds of file cache for streaming
            outputs.

            - **HttpTransferMode** *(string) --* Specify whether or not to use chunked transfer
            encoding to Akamai. User should contact Akamai to enable this feature.

            - **NumRetries** *(integer) --* Number of retry attempts that will be made before the
            Live Event is put into an error state.

            - **RestartDelay** *(integer) --* If a streaming output fails, number of seconds to wait
            until a restart is initiated. A value of 0 means never restart.

            - **Salt** *(string) --* Salt for authenticated Akamai.

            - **Token** *(string) --* Token parameter for authenticated akamai. If not specified,
            _gda_ is used.

          - **HlsBasicPutSettings** *(dict) --* Hls Basic Put Settings

            - **ConnectionRetryInterval** *(integer) --* Number of seconds to wait before retrying
            connection to the CDN if the connection is lost.

            - **FilecacheDuration** *(integer) --* Size in seconds of file cache for streaming
            outputs.

            - **NumRetries** *(integer) --* Number of retry attempts that will be made before the
            Live Event is put into an error state.

            - **RestartDelay** *(integer) --* If a streaming output fails, number of seconds to wait
            until a restart is initiated. A value of 0 means never restart.

          - **HlsMediaStoreSettings** *(dict) --* Hls Media Store Settings

            - **ConnectionRetryInterval** *(integer) --* Number of seconds to wait before retrying
            connection to the CDN if the connection is lost.

            - **FilecacheDuration** *(integer) --* Size in seconds of file cache for streaming
            outputs.

            - **MediaStoreStorageClass** *(string) --* When set to temporal, output files are stored
            in non-persistent memory for faster reading and writing.

            - **NumRetries** *(integer) --* Number of retry attempts that will be made before the
            Live Event is put into an error state.

            - **RestartDelay** *(integer) --* If a streaming output fails, number of seconds to wait
            until a restart is initiated. A value of 0 means never restart.

          - **HlsWebdavSettings** *(dict) --* Hls Webdav Settings

            - **ConnectionRetryInterval** *(integer) --* Number of seconds to wait before retrying
            connection to the CDN if the connection is lost.

            - **FilecacheDuration** *(integer) --* Size in seconds of file cache for streaming
            outputs.

            - **HttpTransferMode** *(string) --* Specify whether or not to use chunked transfer
            encoding to WebDAV.

            - **NumRetries** *(integer) --* Number of retry attempts that will be made before the
            Live Event is put into an error state.

            - **RestartDelay** *(integer) --* If a streaming output fails, number of seconds to wait
            until a restart is initiated. A value of 0 means never restart.

        - **IFrameOnlyPlaylists** *(string) --* DISABLED: Do not create an I-frame-only manifest,
        but do create the master and media manifests (according to the Output Selection field).
        STANDARD: Create an I-frame-only manifest for each output that contains video, as well as
        the other manifests (according to the Output Selection field). The I-frame manifest contains
        a #EXT-X-I-FRAMES-ONLY tag to indicate it is I-frame only, and one or more #EXT-X-BYTERANGE
        entries identifying the I-frame position. For example, #EXT-X-BYTERANGE:160364@1461888"

        - **IndexNSegments** *(integer) --* Applies only if Mode field is LIVE. Specifies the
        maximum number of segments in the media manifest file. After this maximum, older segments
        are removed from the media manifest. This number must be less than or equal to the Keep
        Segments field.

        - **InputLossAction** *(string) --* Parameter that control output group behavior on input
        loss.

        - **IvInManifest** *(string) --* For use with encryptionType. The IV (Initialization Vector)
        is a 128-bit number used in conjunction with the key for encrypting blocks. If set to
        "include", IV is listed in the manifest, otherwise the IV is not in the manifest.

        - **IvSource** *(string) --* For use with encryptionType. The IV (Initialization Vector) is
        a 128-bit number used in conjunction with the key for encrypting blocks. If this setting is
        "followsSegmentNumber", it will cause the IV to change every segment (to match the segment
        number). If this is set to "explicit", you must enter a constantIv value.

        - **KeepSegments** *(integer) --* Applies only if Mode field is LIVE. Specifies the number
        of media segments (.ts files) to retain in the destination directory.

        - **KeyFormat** *(string) --* The value specifies how the key is represented in the resource
        identified by the URI. If parameter is absent, an implicit value of "identity" is used. A
        reverse DNS string can also be given.

        - **KeyFormatVersions** *(string) --* Either a single positive integer version value or a
        slash delimited list of version values (1/2/3).

        - **KeyProviderSettings** *(dict) --* The key provider settings.

          - **StaticKeySettings** *(dict) --* Static Key Settings

            - **KeyProviderServer** *(dict) --* The URL of the license server used for protecting
            content.

              - **PasswordParam** *(string) --* key used to extract the password from EC2 Parameter
              store

              - **Uri** *(string) --* Uniform Resource Identifier - This should be a path to a file
              accessible to the Live system (eg. a http:// URI) depending on the output type. For
              example, a RTMP destination should have a uri simliar to: "rtmp://fmsserver/live".

              - **Username** *(string) --* Documentation update needed

            - **StaticKeyValue** *(string) --* Static key value as a 32 character hexadecimal
            string.

        - **ManifestCompression** *(string) --* When set to gzip, compresses HLS playlist.

        - **ManifestDurationFormat** *(string) --* Indicates whether the output manifest should use
        floating point or integer values for segment duration.

        - **MinSegmentLength** *(integer) --* When set, minimumSegmentLength is enforced by looking
        ahead and back within the specified range for a nearby avail and extending the segment size
        if needed.

        - **Mode** *(string) --* If "vod", all segments are indexed and kept permanently in the
        destination and manifest. If "live", only the number segments specified in keepSegments and
        indexNSegments are kept; newer segments replace older segments, which may prevent players
        from rewinding all the way to the beginning of the event. VOD mode uses HLS
        EXT-X-PLAYLIST-TYPE of EVENT while the channel is running, converting it to a "VOD" type
        manifest on completion of the stream.

        - **OutputSelection** *(string) --* MANIFESTSANDSEGMENTS: Generates manifests (master
        manifest, if applicable, and media manifests) for this output group. SEGMENTSONLY: Does not
        generate any manifests for this output group.

        - **ProgramDateTime** *(string) --* Includes or excludes EXT-X-PROGRAM-DATE-TIME tag in
        .m3u8 manifest files. The value is calculated as follows: either the program date and time
        are initialized using the input timecode source, or the time is initialized using the input
        timecode source and the date is initialized using the timestampOffset.

        - **ProgramDateTimePeriod** *(integer) --* Period of insertion of EXT-X-PROGRAM-DATE-TIME
        entry, in seconds.

        - **RedundantManifest** *(string) --* ENABLED: The master manifest (.m3u8 file) for each
        pipeline includes information about both pipelines: first its own media files, then the
        media files of the other pipeline. This feature allows playout device that support stale
        manifest detection to switch from one manifest to the other, when the current manifest seems
        to be stale. There are still two destinations and two master manifests, but both master
        manifests reference the media files from both pipelines. DISABLED: The master manifest
        (.m3u8 file) for each pipeline includes information about its own pipeline only. For an HLS
        output group with MediaPackage as the destination, the DISABLED behavior is always followed.
        MediaPackage regenerates the manifests it serves to players so a redundant manifest from
        MediaLive is irrelevant.

        - **SegmentLength** *(integer) --* Length of MPEG-2 Transport Stream segments to create (in
        seconds). Note that segments will end on the next keyframe after this number of seconds, so
        actual segment length may be longer.

        - **SegmentationMode** *(string) --* useInputSegmentation has been deprecated. The
        configured segment size is always used.

        - **SegmentsPerSubdirectory** *(integer) --* Number of segments to write to a subdirectory
        before starting a new one. directoryStructure must be subdirectoryPerStream for this setting
        to have an effect.

        - **StreamInfResolution** *(string) --* Include or exclude RESOLUTION attribute for video in
        EXT-X-STREAM-INF tag of variant manifest.

        - **TimedMetadataId3Frame** *(string) --* Indicates ID3 frame that has the timecode.

        - **TimedMetadataId3Period** *(integer) --* Timed Metadata interval in seconds.

        - **TimestampDeltaMilliseconds** *(integer) --* Provides an extra millisecond delta offset
        to fine tune the timestamps.

        - **TsFileMode** *(string) --* SEGMENTEDFILES: Emit the program as segments - multiple .ts
        media files. SINGLEFILE: Applies only if Mode field is VOD. Emit the program as a single .ts
        media file. The media manifest includes #EXT-X-BYTERANGE tags to index segments for
        playback. A typical use for this value is when sending the output to AWS Elemental
        MediaConvert, which can accept only a single media file. Playback while the channel is
        running is not guaranteed due to HTTP server caching.

      - **MediaPackageGroupSettings** *(dict) --* Media Package Group Settings

        - **Destination** *(dict) --* MediaPackage channel destination.

          - **DestinationRefId** *(string) --* Placeholder documentation for __string

      - **MsSmoothGroupSettings** *(dict) --* Ms Smooth Group Settings

        - **AcquisitionPointId** *(string) --* The value of the "Acquisition Point Identity" element
        used in each message placed in the sparse track. Only enabled if sparseTrackType is not
        "none".

        - **AudioOnlyTimecodeControl** *(string) --* If set to passthrough for an audio-only MS
        Smooth output, the fragment absolute time will be set to the current timecode. This option
        does not write timecodes to the audio elementary stream.

        - **CertificateMode** *(string) --* If set to verifyAuthenticity, verify the https
        certificate chain to a trusted Certificate Authority (CA). This will cause https outputs to
        self-signed certificates to fail.

        - **ConnectionRetryInterval** *(integer) --* Number of seconds to wait before retrying
        connection to the IIS server if the connection is lost. Content will be cached during this
        time and the cache will be be delivered to the IIS server once the connection is
        re-established.

        - **Destination** *(dict) --* Smooth Streaming publish point on an IIS server. Elemental
        Live acts as a "Push" encoder to IIS.

          - **DestinationRefId** *(string) --* Placeholder documentation for __string

        - **EventId** *(string) --* MS Smooth event ID to be sent to the IIS server. Should only be
        specified if eventIdMode is set to useConfigured.

        - **EventIdMode** *(string) --* Specifies whether or not to send an event ID to the IIS
        server. If no event ID is sent and the same Live Event is used without changing the
        publishing point, clients might see cached video from the previous run. Options: -
        "useConfigured" - use the value provided in eventId - "useTimestamp" - generate and send an
        event ID based on the current timestamp - "noEventId" - do not send an event ID to the IIS
        server.

        - **EventStopBehavior** *(string) --* When set to sendEos, send EOS signal to IIS server
        when stopping the event

        - **FilecacheDuration** *(integer) --* Size in seconds of file cache for streaming outputs.

        - **FragmentLength** *(integer) --* Length of mp4 fragments to generate (in seconds).
        Fragment length must be compatible with GOP size and framerate.

        - **InputLossAction** *(string) --* Parameter that control output group behavior on input
        loss.

        - **NumRetries** *(integer) --* Number of retry attempts.

        - **RestartDelay** *(integer) --* Number of seconds before initiating a restart due to
        output failure, due to exhausting the numRetries on one segment, or exceeding
        filecacheDuration.

        - **SegmentationMode** *(string) --* useInputSegmentation has been deprecated. The
        configured segment size is always used.

        - **SendDelayMs** *(integer) --* Number of milliseconds to delay the output from the second
        pipeline.

        - **SparseTrackType** *(string) --* If set to scte35, use incoming SCTE-35 messages to
        generate a sparse track in this group of MS-Smooth outputs.

        - **StreamManifestBehavior** *(string) --* When set to send, send stream manifest so
        publishing point doesn't start until all streams start.

        - **TimestampOffset** *(string) --* Timestamp offset for the event. Only used if
        timestampOffsetMode is set to useConfiguredOffset.

        - **TimestampOffsetMode** *(string) --* Type of timestamp date offset to use. -
        useEventStartDate: Use the date the event was started as the offset - useConfiguredOffset:
        Use an explicitly configured date as the offset

      - **MultiplexGroupSettings** *(dict) --* Multiplex Group Settings

      - **RtmpGroupSettings** *(dict) --* Rtmp Group Settings

        - **AuthenticationScheme** *(string) --* Authentication scheme to use when connecting with
        CDN

        - **CacheFullBehavior** *(string) --* Controls behavior when content cache fills up. If
        remote origin server stalls the RTMP connection and does not accept content fast enough the
        'Media Cache' will fill up. When the cache reaches the duration specified by cacheLength the
        cache will stop accepting new content. If set to disconnectImmediately, the RTMP output will
        force a disconnect. Clear the media cache, and reconnect after restartDelay seconds. If set
        to waitForServer, the RTMP output will wait up to 5 minutes to allow the origin server to
        begin accepting data again.

        - **CacheLength** *(integer) --* Cache length, in seconds, is used to calculate buffer size.

        - **CaptionData** *(string) --* Controls the types of data that passes to onCaptionInfo
        outputs. If set to 'all' then 608 and 708 carried DTVCC data will be passed. If set to
        'field1AndField2608' then DTVCC data will be stripped out, but 608 data from both fields
        will be passed. If set to 'field1608' then only the data carried in 608 from field 1 video
        will be passed.

        - **InputLossAction** *(string) --* Controls the behavior of this RTMP group if input
        becomes unavailable. - emitOutput: Emit a slate until input returns. - pauseOutput: Stop
        transmitting data until input returns. This does not close the underlying RTMP connection.

        - **RestartDelay** *(integer) --* If a streaming output fails, number of seconds to wait
        until a restart is initiated. A value of 0 means never restart.

      - **UdpGroupSettings** *(dict) --* Udp Group Settings

        - **InputLossAction** *(string) --* Specifies behavior of last resort when input video is
        lost, and no more backup inputs are available. When dropTs is selected the entire transport
        stream will stop being emitted. When dropProgram is selected the program can be dropped from
        the transport stream (and replaced with null packets to meet the TS bitrate requirement).
        Or, when emitProgram is chosen the transport stream will continue to be produced normally
        with repeat frames, black frames, or slate frames substituted for the absent input video.

        - **TimedMetadataId3Frame** *(string) --* Indicates ID3 frame that has the timecode.

        - **TimedMetadataId3Period** *(integer) --* Timed Metadata interval in seconds.

    - **Outputs** *(list) --* Placeholder documentation for __listOfOutput

      - *(dict) --* Output settings. There can be multiple outputs within a group.

        - **AudioDescriptionNames** *(list) --* The names of the AudioDescriptions used as audio
        sources for this output.

          - *(string) --* Placeholder documentation for __string

        - **CaptionDescriptionNames** *(list) --* The names of the CaptionDescriptions used as
        caption sources for this output.

          - *(string) --* Placeholder documentation for __string

        - **OutputName** *(string) --* The name used to identify an output.

        - **OutputSettings** *(dict) --* Output type-specific settings.

          - **ArchiveOutputSettings** *(dict) --* Archive Output Settings

            - **ContainerSettings** *(dict) --* Settings specific to the container type of the file.

              - **M2tsSettings** *(dict) --* M2ts Settings

                - **AbsentInputAudioBehavior** *(string) --* When set to drop, output audio streams
                will be removed from the program if the selected input audio stream is removed from
                the input. This allows the output audio configuration to dynamically change based on
                input configuration. If this is set to encodeSilence, all output audio streams will
                output encoded silence when not connected to an active input stream.

                - **Arib** *(string) --* When set to enabled, uses ARIB-compliant field muxing and
                removes video descriptor.

                - **AribCaptionsPid** *(string) --* Packet Identifier (PID) for ARIB Captions in the
                transport stream. Can be entered as a decimal or hexadecimal value. Valid values are
                32 (or 0x20)..8182 (or 0x1ff6).

                - **AribCaptionsPidControl** *(string) --* If set to auto, pid number used for ARIB
                Captions will be auto-selected from unused pids. If set to useConfigured, ARIB
                Captions will be on the configured pid number.

                - **AudioBufferModel** *(string) --* When set to dvb, uses DVB buffer model for
                Dolby Digital audio. When set to atsc, the ATSC model is used.

                - **AudioFramesPerPes** *(integer) --* The number of audio frames to insert for each
                PES packet.

                - **AudioPids** *(string) --* Packet Identifier (PID) of the elementary audio
                stream(s) in the transport stream. Multiple values are accepted, and can be entered
                in ranges and/or by comma separation. Can be entered as decimal or hexadecimal
                values. Each PID specified must be in the range of 32 (or 0x20)..8182 (or 0x1ff6).

                - **AudioStreamType** *(string) --* When set to atsc, uses stream type =
                     0x81 for
                AC3 and stream type = 0x87 for EAC3. When set to dvb, uses stream type =
                     0x06.

                - **Bitrate** *(integer) --* The output bitrate of the transport stream in bits per
                second. Setting to 0 lets the muxer automatically determine the appropriate bitrate.

                - **BufferModel** *(string) --* If set to multiplex, use multiplex buffer model for
                accurate interleaving. Setting to bufferModel to none can lead to lower latency, but
                low-memory devices may not be able to play back the stream without interruptions.

                - **CcDescriptor** *(string) --* When set to enabled, generates
                captionServiceDescriptor in PMT.

                - **DvbNitSettings** *(dict) --* Inserts DVB Network Information Table (NIT) at the
                specified table repetition interval.

                  - **NetworkId** *(integer) --* The numeric value placed in the Network Information
                  Table (NIT).

                  - **NetworkName** *(string) --* The network name text placed in the
                  networkNameDescriptor inside the Network Information Table. Maximum length is 256
                  characters.

                  - **RepInterval** *(integer) --* The number of milliseconds between instances of
                  this table in the output transport stream.

                - **DvbSdtSettings** *(dict) --* Inserts DVB Service Description Table (SDT) at the
                specified table repetition interval.

                  - **OutputSdt** *(string) --* Selects method of inserting SDT information into
                  output stream. The sdtFollow setting copies SDT information from input stream to
                  output stream. The sdtFollowIfPresent setting copies SDT information from input
                  stream to output stream if SDT information is present in the input, otherwise it
                  will fall back on the user-defined values. The sdtManual setting means user will
                  enter the SDT information. The sdtNone setting means output stream will not
                  contain SDT information.

                  - **RepInterval** *(integer) --* The number of milliseconds between instances of
                  this table in the output transport stream.

                  - **ServiceName** *(string) --* The service name placed in the serviceDescriptor
                  in the Service Description Table. Maximum length is 256 characters.

                  - **ServiceProviderName** *(string) --* The service provider name placed in the
                  serviceDescriptor in the Service Description Table. Maximum length is 256
                  characters.

                - **DvbSubPids** *(string) --* Packet Identifier (PID) for input source DVB Subtitle
                data to this output. Multiple values are accepted, and can be entered in ranges
                and/or by comma separation. Can be entered as decimal or hexadecimal values. Each
                PID specified must be in the range of 32 (or 0x20)..8182 (or 0x1ff6).

                - **DvbTdtSettings** *(dict) --* Inserts DVB Time and Date Table (TDT) at the
                specified table repetition interval.

                  - **RepInterval** *(integer) --* The number of milliseconds between instances of
                  this table in the output transport stream.

                - **DvbTeletextPid** *(string) --* Packet Identifier (PID) for input source DVB
                Teletext data to this output. Can be entered as a decimal or hexadecimal value.
                Valid values are 32 (or 0x20)..8182 (or 0x1ff6).

                - **Ebif** *(string) --* If set to passthrough, passes any EBIF data from the input
                source to this output.

                - **EbpAudioInterval** *(string) --* When videoAndFixedIntervals is selected, audio
                EBP markers will be added to partitions 3 and 4. The interval between these
                additional markers will be fixed, and will be slightly shorter than the video EBP
                marker interval. Only available when EBP Cablelabs segmentation markers are
                selected. Partitions 1 and 2 will always follow the video interval.

                - **EbpLookaheadMs** *(integer) --* When set, enforces that Encoder Boundary Points
                do not come within the specified time interval of each other by looking ahead at
                input video. If another EBP is going to come in within the specified time interval,
                the current EBP is not emitted, and the segment is "stretched" to the next marker.
                The lookahead value does not add latency to the system. The Live Event must be
                configured elsewhere to create sufficient latency to make the lookahead accurate.

                - **EbpPlacement** *(string) --* Controls placement of EBP on Audio PIDs. If set to
                videoAndAudioPids, EBP markers will be placed on the video PID and all audio PIDs.
                If set to videoPid, EBP markers will be placed on only the video PID.

                - **EcmPid** *(string) --* This field is unused and deprecated.

                - **EsRateInPes** *(string) --* Include or exclude the ES Rate field in the PES
                header.

                - **EtvPlatformPid** *(string) --* Packet Identifier (PID) for input source ETV
                Platform data to this output. Can be entered as a decimal or hexadecimal value.
                Valid values are 32 (or 0x20)..8182 (or 0x1ff6).

                - **EtvSignalPid** *(string) --* Packet Identifier (PID) for input source ETV Signal
                data to this output. Can be entered as a decimal or hexadecimal value. Valid values
                are 32 (or 0x20)..8182 (or 0x1ff6).

                - **FragmentTime** *(float) --* The length in seconds of each fragment. Only used
                with EBP markers.

                - **Klv** *(string) --* If set to passthrough, passes any KLV data from the input
                source to this output.

                - **KlvDataPids** *(string) --* Packet Identifier (PID) for input source KLV data to
                this output. Multiple values are accepted, and can be entered in ranges and/or by
                comma separation. Can be entered as decimal or hexadecimal values. Each PID
                specified must be in the range of 32 (or 0x20)..8182 (or 0x1ff6).

                - **NielsenId3Behavior** *(string) --* If set to passthrough, Nielsen inaudible
                tones for media tracking will be detected in the input audio and an equivalent ID3
                tag will be inserted in the output.

                - **NullPacketBitrate** *(float) --* Value in bits per second of extra null packets
                to insert into the transport stream. This can be used if a downstream encryption
                system requires periodic null packets.

                - **PatInterval** *(integer) --* The number of milliseconds between instances of
                this table in the output transport stream. Valid values are 0, 10..1000.

                - **PcrControl** *(string) --* When set to pcrEveryPesPacket, a Program Clock
                Reference value is inserted for every Packetized Elementary Stream (PES) header.
                This parameter is effective only when the PCR PID is the same as the video or audio
                elementary stream.

                - **PcrPeriod** *(integer) --* Maximum time in milliseconds between Program Clock
                Reference (PCRs) inserted into the transport stream.

                - **PcrPid** *(string) --* Packet Identifier (PID) of the Program Clock Reference
                (PCR) in the transport stream. When no value is given, the encoder will assign the
                same value as the Video PID. Can be entered as a decimal or hexadecimal value. Valid
                values are 32 (or 0x20)..8182 (or 0x1ff6).

                - **PmtInterval** *(integer) --* The number of milliseconds between instances of
                this table in the output transport stream. Valid values are 0, 10..1000.

                - **PmtPid** *(string) --* Packet Identifier (PID) for the Program Map Table (PMT)
                in the transport stream. Can be entered as a decimal or hexadecimal value. Valid
                values are 32 (or 0x20)..8182 (or 0x1ff6).

                - **ProgramNum** *(integer) --* The value of the program number field in the Program
                Map Table.

                - **RateMode** *(string) --* When vbr, does not insert null packets into transport
                stream to fill specified bitrate. The bitrate setting acts as the maximum bitrate
                when vbr is set.

                - **Scte27Pids** *(string) --* Packet Identifier (PID) for input source SCTE-27 data
                to this output. Multiple values are accepted, and can be entered in ranges and/or by
                comma separation. Can be entered as decimal or hexadecimal values. Each PID
                specified must be in the range of 32 (or 0x20)..8182 (or 0x1ff6).

                - **Scte35Control** *(string) --* Optionally pass SCTE-35 signals from the input
                source to this output.

                - **Scte35Pid** *(string) --* Packet Identifier (PID) of the SCTE-35 stream in the
                transport stream. Can be entered as a decimal or hexadecimal value. Valid values are
                32 (or 0x20)..8182 (or 0x1ff6).

                - **SegmentationMarkers** *(string) --* Inserts segmentation markers at each
                segmentationTime period. raiSegstart sets the Random Access Indicator bit in the
                adaptation field. raiAdapt sets the RAI bit and adds the current timecode in the
                private data bytes. psiSegstart inserts PAT and PMT tables at the start of segments.
                ebp adds Encoder Boundary Point information to the adaptation field as per OpenCable
                specification OC-SP-EBP-I01-130118. ebpLegacy adds Encoder Boundary Point
                information to the adaptation field using a legacy proprietary format.

                - **SegmentationStyle** *(string) --* The segmentation style parameter controls how
                segmentation markers are inserted into the transport stream. With avails, it is
                possible that segments may be truncated, which can influence where future
                segmentation markers are inserted. When a segmentation style of "resetCadence" is
                selected and a segment is truncated due to an avail, we will reset the segmentation
                cadence. This means the subsequent segment will have a duration of $segmentationTime
                seconds. When a segmentation style of "maintainCadence" is selected and a segment is
                truncated due to an avail, we will not reset the segmentation cadence. This means
                the subsequent segment will likely be truncated as well. However, all segments after
                that will have a duration of $segmentationTime seconds. Note that EBP lookahead is a
                slight exception to this rule.

                - **SegmentationTime** *(float) --* The length in seconds of each segment. Required
                unless markers is set to None_.

                - **TimedMetadataBehavior** *(string) --* When set to passthrough, timed metadata
                will be passed through from input to output.

                - **TimedMetadataPid** *(string) --* Packet Identifier (PID) of the timed metadata
                stream in the transport stream. Can be entered as a decimal or hexadecimal value.
                Valid values are 32 (or 0x20)..8182 (or 0x1ff6).

                - **TransportStreamId** *(integer) --* The value of the transport stream ID field in
                the Program Map Table.

                - **VideoPid** *(string) --* Packet Identifier (PID) of the elementary video stream
                in the transport stream. Can be entered as a decimal or hexadecimal value. Valid
                values are 32 (or 0x20)..8182 (or 0x1ff6).

            - **Extension** *(string) --* Output file extension. If excluded, this will be
            auto-selected from the container type.

            - **NameModifier** *(string) --* String concatenated to the end of the destination
            filename. Required for multiple outputs of the same type.

          - **FrameCaptureOutputSettings** *(dict) --* Frame Capture Output Settings

            - **NameModifier** *(string) --* Required if the output group contains more than one
            output. This modifier forms part of the output file name.

          - **HlsOutputSettings** *(dict) --* Hls Output Settings

            - **HlsSettings** *(dict) --* Settings regarding the underlying stream. These settings
            are different for audio-only outputs.

              - **AudioOnlyHlsSettings** *(dict) --* Audio Only Hls Settings

                - **AudioGroupId** *(string) --* Specifies the group to which the audio Rendition
                belongs.

                - **AudioOnlyImage** *(dict) --* Optional. Specifies the .jpg or .png image to use
                as the cover art for an audio-only output. We recommend a low bit-size file because
                the image increases the output audio bandwidth. The image is attached to the audio
                as an ID3 tag, frame type APIC, picture type 0x10, as per the "ID3 tag version 2.4.0
                - Native Frames" standard.

                  - **PasswordParam** *(string) --* key used to extract the password from EC2
                  Parameter store

                  - **Uri** *(string) --* Uniform Resource Identifier - This should be a path to a
                  file accessible to the Live system (eg. a http:// URI) depending on the output
                  type. For example, a RTMP destination should have a uri simliar to:
                  "rtmp://fmsserver/live".

                  - **Username** *(string) --* Documentation update needed

                - **AudioTrackType** *(string) --* Four types of audio-only tracks are supported:
                Audio-Only Variant Stream The client can play back this audio-only stream instead of
                video in low-bandwidth scenarios. Represented as an EXT-X-STREAM-INF in the HLS
                manifest. Alternate Audio, Auto Select, Default Alternate rendition that the client
                should try to play back by default. Represented as an EXT-X-MEDIA in the HLS
                manifest with DEFAULT=YES, AUTOSELECT=
                    YES Alternate Audio, Auto Select, Not Default
                Alternate rendition that the client may try to play back by default. Represented as
                an EXT-X-MEDIA in the HLS manifest with DEFAULT=NO, AUTOSELECT=
                    YES Alternate Audio,
                not Auto Select Alternate rendition that the client will not try to play back by
                default. Represented as an EXT-X-MEDIA in the HLS manifest with DEFAULT=
                    NO,
                AUTOSELECT=NO

              - **StandardHlsSettings** *(dict) --* Standard Hls Settings

                - **AudioRenditionSets** *(string) --* List all the audio groups that are used with
                the video output stream. Input all the audio GROUP-IDs that are associated to the
                video, separate by ','.

                - **M3u8Settings** *(dict) --* Settings information for the .m3u8 container

                  - **AudioFramesPerPes** *(integer) --* The number of audio frames to insert for
                  each PES packet.

                  - **AudioPids** *(string) --* Packet Identifier (PID) of the elementary audio
                  stream(s) in the transport stream. Multiple values are accepted, and can be
                  entered in ranges and/or by comma separation. Can be entered as decimal or
                  hexadecimal values.

                  - **EcmPid** *(string) --* This parameter is unused and deprecated.

                  - **NielsenId3Behavior** *(string) --* If set to passthrough, Nielsen inaudible
                  tones for media tracking will be detected in the input audio and an equivalent ID3
                  tag will be inserted in the output.

                  - **PatInterval** *(integer) --* The number of milliseconds between instances of
                  this table in the output transport stream. A value of \\"0\\" writes out the PMT
                  once per segment file.

                  - **PcrControl** *(string) --* When set to pcrEveryPesPacket, a Program Clock
                  Reference value is inserted for every Packetized Elementary Stream (PES) header.
                  This parameter is effective only when the PCR PID is the same as the video or
                  audio elementary stream.

                  - **PcrPeriod** *(integer) --* Maximum time in milliseconds between Program Clock
                  References (PCRs) inserted into the transport stream.

                  - **PcrPid** *(string) --* Packet Identifier (PID) of the Program Clock Reference
                  (PCR) in the transport stream. When no value is given, the encoder will assign the
                  same value as the Video PID. Can be entered as a decimal or hexadecimal value.

                  - **PmtInterval** *(integer) --* The number of milliseconds between instances of
                  this table in the output transport stream. A value of \\"0\\" writes out the PMT
                  once per segment file.

                  - **PmtPid** *(string) --* Packet Identifier (PID) for the Program Map Table (PMT)
                  in the transport stream. Can be entered as a decimal or hexadecimal value.

                  - **ProgramNum** *(integer) --* The value of the program number field in the
                  Program Map Table.

                  - **Scte35Behavior** *(string) --* If set to passthrough, passes any SCTE-35
                  signals from the input source to this output.

                  - **Scte35Pid** *(string) --* Packet Identifier (PID) of the SCTE-35 stream in the
                  transport stream. Can be entered as a decimal or hexadecimal value.

                  - **TimedMetadataBehavior** *(string) --* When set to passthrough, timed metadata
                  is passed through from input to output.

                  - **TimedMetadataPid** *(string) --* Packet Identifier (PID) of the timed metadata
                  stream in the transport stream. Can be entered as a decimal or hexadecimal value.
                  Valid values are 32 (or 0x20)..8182 (or 0x1ff6).

                  - **TransportStreamId** *(integer) --* The value of the transport stream ID field
                  in the Program Map Table.

                  - **VideoPid** *(string) --* Packet Identifier (PID) of the elementary video
                  stream in the transport stream. Can be entered as a decimal or hexadecimal value.

            - **NameModifier** *(string) --* String concatenated to the end of the destination
            filename. Accepts \\"Format Identifiers\\":#formatIdentifierParameters.

            - **SegmentModifier** *(string) --* String concatenated to end of segment filenames.

          - **MediaPackageOutputSettings** *(dict) --* Media Package Output Settings

          - **MsSmoothOutputSettings** *(dict) --* Ms Smooth Output Settings

            - **H265PackagingType** *(string) --* Only applicable when this output is referencing an
            H.265 video description. Specifies whether MP4 segments should be packaged as HEV1 or
            HVC1.

            - **NameModifier** *(string) --* String concatenated to the end of the destination
            filename. Required for multiple outputs of the same type.

          - **MultiplexOutputSettings** *(dict) --* Multiplex Output Settings

            - **Destination** *(dict) --* Destination is a Multiplex.

              - **DestinationRefId** *(string) --* Placeholder documentation for __string

          - **RtmpOutputSettings** *(dict) --* Rtmp Output Settings

            - **CertificateMode** *(string) --* If set to verifyAuthenticity, verify the tls
            certificate chain to a trusted Certificate Authority (CA). This will cause rtmps outputs
            with self-signed certificates to fail.

            - **ConnectionRetryInterval** *(integer) --* Number of seconds to wait before retrying a
            connection to the Flash Media server if the connection is lost.

            - **Destination** *(dict) --* The RTMP endpoint excluding the stream name (eg.
            rtmp://host/appname). For connection to Akamai, a username and password must be
            supplied. URI fields accept format identifiers.

              - **DestinationRefId** *(string) --* Placeholder documentation for __string

            - **NumRetries** *(integer) --* Number of retry attempts.

          - **UdpOutputSettings** *(dict) --* Udp Output Settings

            - **BufferMsec** *(integer) --* UDP output buffering in milliseconds. Larger values
            increase latency through the transcoder but simultaneously assist the transcoder in
            maintaining a constant, low-jitter UDP/RTP output while accommodating clock recovery,
            input switching, input disruptions, picture reordering, etc.

            - **ContainerSettings** *(dict) --* Udp Container Settings

              - **M2tsSettings** *(dict) --* M2ts Settings

                - **AbsentInputAudioBehavior** *(string) --* When set to drop, output audio streams
                will be removed from the program if the selected input audio stream is removed from
                the input. This allows the output audio configuration to dynamically change based on
                input configuration. If this is set to encodeSilence, all output audio streams will
                output encoded silence when not connected to an active input stream.

                - **Arib** *(string) --* When set to enabled, uses ARIB-compliant field muxing and
                removes video descriptor.

                - **AribCaptionsPid** *(string) --* Packet Identifier (PID) for ARIB Captions in the
                transport stream. Can be entered as a decimal or hexadecimal value. Valid values are
                32 (or 0x20)..8182 (or 0x1ff6).

                - **AribCaptionsPidControl** *(string) --* If set to auto, pid number used for ARIB
                Captions will be auto-selected from unused pids. If set to useConfigured, ARIB
                Captions will be on the configured pid number.

                - **AudioBufferModel** *(string) --* When set to dvb, uses DVB buffer model for
                Dolby Digital audio. When set to atsc, the ATSC model is used.

                - **AudioFramesPerPes** *(integer) --* The number of audio frames to insert for each
                PES packet.

                - **AudioPids** *(string) --* Packet Identifier (PID) of the elementary audio
                stream(s) in the transport stream. Multiple values are accepted, and can be entered
                in ranges and/or by comma separation. Can be entered as decimal or hexadecimal
                values. Each PID specified must be in the range of 32 (or 0x20)..8182 (or 0x1ff6).

                - **AudioStreamType** *(string) --* When set to atsc, uses stream type =
                     0x81 for
                AC3 and stream type = 0x87 for EAC3. When set to dvb, uses stream type =
                     0x06.

                - **Bitrate** *(integer) --* The output bitrate of the transport stream in bits per
                second. Setting to 0 lets the muxer automatically determine the appropriate bitrate.

                - **BufferModel** *(string) --* If set to multiplex, use multiplex buffer model for
                accurate interleaving. Setting to bufferModel to none can lead to lower latency, but
                low-memory devices may not be able to play back the stream without interruptions.

                - **CcDescriptor** *(string) --* When set to enabled, generates
                captionServiceDescriptor in PMT.

                - **DvbNitSettings** *(dict) --* Inserts DVB Network Information Table (NIT) at the
                specified table repetition interval.

                  - **NetworkId** *(integer) --* The numeric value placed in the Network Information
                  Table (NIT).

                  - **NetworkName** *(string) --* The network name text placed in the
                  networkNameDescriptor inside the Network Information Table. Maximum length is 256
                  characters.

                  - **RepInterval** *(integer) --* The number of milliseconds between instances of
                  this table in the output transport stream.

                - **DvbSdtSettings** *(dict) --* Inserts DVB Service Description Table (SDT) at the
                specified table repetition interval.

                  - **OutputSdt** *(string) --* Selects method of inserting SDT information into
                  output stream. The sdtFollow setting copies SDT information from input stream to
                  output stream. The sdtFollowIfPresent setting copies SDT information from input
                  stream to output stream if SDT information is present in the input, otherwise it
                  will fall back on the user-defined values. The sdtManual setting means user will
                  enter the SDT information. The sdtNone setting means output stream will not
                  contain SDT information.

                  - **RepInterval** *(integer) --* The number of milliseconds between instances of
                  this table in the output transport stream.

                  - **ServiceName** *(string) --* The service name placed in the serviceDescriptor
                  in the Service Description Table. Maximum length is 256 characters.

                  - **ServiceProviderName** *(string) --* The service provider name placed in the
                  serviceDescriptor in the Service Description Table. Maximum length is 256
                  characters.

                - **DvbSubPids** *(string) --* Packet Identifier (PID) for input source DVB Subtitle
                data to this output. Multiple values are accepted, and can be entered in ranges
                and/or by comma separation. Can be entered as decimal or hexadecimal values. Each
                PID specified must be in the range of 32 (or 0x20)..8182 (or 0x1ff6).

                - **DvbTdtSettings** *(dict) --* Inserts DVB Time and Date Table (TDT) at the
                specified table repetition interval.

                  - **RepInterval** *(integer) --* The number of milliseconds between instances of
                  this table in the output transport stream.

                - **DvbTeletextPid** *(string) --* Packet Identifier (PID) for input source DVB
                Teletext data to this output. Can be entered as a decimal or hexadecimal value.
                Valid values are 32 (or 0x20)..8182 (or 0x1ff6).

                - **Ebif** *(string) --* If set to passthrough, passes any EBIF data from the input
                source to this output.

                - **EbpAudioInterval** *(string) --* When videoAndFixedIntervals is selected, audio
                EBP markers will be added to partitions 3 and 4. The interval between these
                additional markers will be fixed, and will be slightly shorter than the video EBP
                marker interval. Only available when EBP Cablelabs segmentation markers are
                selected. Partitions 1 and 2 will always follow the video interval.

                - **EbpLookaheadMs** *(integer) --* When set, enforces that Encoder Boundary Points
                do not come within the specified time interval of each other by looking ahead at
                input video. If another EBP is going to come in within the specified time interval,
                the current EBP is not emitted, and the segment is "stretched" to the next marker.
                The lookahead value does not add latency to the system. The Live Event must be
                configured elsewhere to create sufficient latency to make the lookahead accurate.

                - **EbpPlacement** *(string) --* Controls placement of EBP on Audio PIDs. If set to
                videoAndAudioPids, EBP markers will be placed on the video PID and all audio PIDs.
                If set to videoPid, EBP markers will be placed on only the video PID.

                - **EcmPid** *(string) --* This field is unused and deprecated.

                - **EsRateInPes** *(string) --* Include or exclude the ES Rate field in the PES
                header.

                - **EtvPlatformPid** *(string) --* Packet Identifier (PID) for input source ETV
                Platform data to this output. Can be entered as a decimal or hexadecimal value.
                Valid values are 32 (or 0x20)..8182 (or 0x1ff6).

                - **EtvSignalPid** *(string) --* Packet Identifier (PID) for input source ETV Signal
                data to this output. Can be entered as a decimal or hexadecimal value. Valid values
                are 32 (or 0x20)..8182 (or 0x1ff6).

                - **FragmentTime** *(float) --* The length in seconds of each fragment. Only used
                with EBP markers.

                - **Klv** *(string) --* If set to passthrough, passes any KLV data from the input
                source to this output.

                - **KlvDataPids** *(string) --* Packet Identifier (PID) for input source KLV data to
                this output. Multiple values are accepted, and can be entered in ranges and/or by
                comma separation. Can be entered as decimal or hexadecimal values. Each PID
                specified must be in the range of 32 (or 0x20)..8182 (or 0x1ff6).

                - **NielsenId3Behavior** *(string) --* If set to passthrough, Nielsen inaudible
                tones for media tracking will be detected in the input audio and an equivalent ID3
                tag will be inserted in the output.

                - **NullPacketBitrate** *(float) --* Value in bits per second of extra null packets
                to insert into the transport stream. This can be used if a downstream encryption
                system requires periodic null packets.

                - **PatInterval** *(integer) --* The number of milliseconds between instances of
                this table in the output transport stream. Valid values are 0, 10..1000.

                - **PcrControl** *(string) --* When set to pcrEveryPesPacket, a Program Clock
                Reference value is inserted for every Packetized Elementary Stream (PES) header.
                This parameter is effective only when the PCR PID is the same as the video or audio
                elementary stream.

                - **PcrPeriod** *(integer) --* Maximum time in milliseconds between Program Clock
                Reference (PCRs) inserted into the transport stream.

                - **PcrPid** *(string) --* Packet Identifier (PID) of the Program Clock Reference
                (PCR) in the transport stream. When no value is given, the encoder will assign the
                same value as the Video PID. Can be entered as a decimal or hexadecimal value. Valid
                values are 32 (or 0x20)..8182 (or 0x1ff6).

                - **PmtInterval** *(integer) --* The number of milliseconds between instances of
                this table in the output transport stream. Valid values are 0, 10..1000.

                - **PmtPid** *(string) --* Packet Identifier (PID) for the Program Map Table (PMT)
                in the transport stream. Can be entered as a decimal or hexadecimal value. Valid
                values are 32 (or 0x20)..8182 (or 0x1ff6).

                - **ProgramNum** *(integer) --* The value of the program number field in the Program
                Map Table.

                - **RateMode** *(string) --* When vbr, does not insert null packets into transport
                stream to fill specified bitrate. The bitrate setting acts as the maximum bitrate
                when vbr is set.

                - **Scte27Pids** *(string) --* Packet Identifier (PID) for input source SCTE-27 data
                to this output. Multiple values are accepted, and can be entered in ranges and/or by
                comma separation. Can be entered as decimal or hexadecimal values. Each PID
                specified must be in the range of 32 (or 0x20)..8182 (or 0x1ff6).

                - **Scte35Control** *(string) --* Optionally pass SCTE-35 signals from the input
                source to this output.

                - **Scte35Pid** *(string) --* Packet Identifier (PID) of the SCTE-35 stream in the
                transport stream. Can be entered as a decimal or hexadecimal value. Valid values are
                32 (or 0x20)..8182 (or 0x1ff6).

                - **SegmentationMarkers** *(string) --* Inserts segmentation markers at each
                segmentationTime period. raiSegstart sets the Random Access Indicator bit in the
                adaptation field. raiAdapt sets the RAI bit and adds the current timecode in the
                private data bytes. psiSegstart inserts PAT and PMT tables at the start of segments.
                ebp adds Encoder Boundary Point information to the adaptation field as per OpenCable
                specification OC-SP-EBP-I01-130118. ebpLegacy adds Encoder Boundary Point
                information to the adaptation field using a legacy proprietary format.

                - **SegmentationStyle** *(string) --* The segmentation style parameter controls how
                segmentation markers are inserted into the transport stream. With avails, it is
                possible that segments may be truncated, which can influence where future
                segmentation markers are inserted. When a segmentation style of "resetCadence" is
                selected and a segment is truncated due to an avail, we will reset the segmentation
                cadence. This means the subsequent segment will have a duration of $segmentationTime
                seconds. When a segmentation style of "maintainCadence" is selected and a segment is
                truncated due to an avail, we will not reset the segmentation cadence. This means
                the subsequent segment will likely be truncated as well. However, all segments after
                that will have a duration of $segmentationTime seconds. Note that EBP lookahead is a
                slight exception to this rule.

                - **SegmentationTime** *(float) --* The length in seconds of each segment. Required
                unless markers is set to None_.

                - **TimedMetadataBehavior** *(string) --* When set to passthrough, timed metadata
                will be passed through from input to output.

                - **TimedMetadataPid** *(string) --* Packet Identifier (PID) of the timed metadata
                stream in the transport stream. Can be entered as a decimal or hexadecimal value.
                Valid values are 32 (or 0x20)..8182 (or 0x1ff6).

                - **TransportStreamId** *(integer) --* The value of the transport stream ID field in
                the Program Map Table.

                - **VideoPid** *(string) --* Packet Identifier (PID) of the elementary video stream
                in the transport stream. Can be entered as a decimal or hexadecimal value. Valid
                values are 32 (or 0x20)..8182 (or 0x1ff6).

            - **Destination** *(dict) --* Destination address and port number for RTP or UDP
            packets. Can be unicast or multicast RTP or UDP (eg. rtp://239.10.10.10:5001 or
            udp://10.100.100.100:5002).

              - **DestinationRefId** *(string) --* Placeholder documentation for __string

            - **FecOutputSettings** *(dict) --* Settings for enabling and adjusting Forward Error
            Correction on UDP outputs.

              - **ColumnDepth** *(integer) --* Parameter D from SMPTE 2022-1. The height of the FEC
              protection matrix. The number of transport stream packets per column error correction
              packet. Must be between 4 and 20, inclusive.

              - **IncludeFec** *(string) --* Enables column only or column and row based FEC

              - **RowLength** *(integer) --* Parameter L from SMPTE 2022-1. The width of the FEC
              protection matrix. Must be between 1 and 20, inclusive. If only Column FEC is used,
              then larger values increase robustness. If Row FEC is used, then this is the number of
              transport stream packets per row error correction packet, and the value must be
              between 4 and 20, inclusive, if includeFec is columnAndRow. If includeFec is column,
              this value must be 1 to 20, inclusive.

        - **VideoDescriptionName** *(string) --* The name of the VideoDescription used as the source
        for this output.
    """


_ClientCreateChannelResponseChannelEncoderSettingsTimecodeConfigTypeDef = TypedDict(
    "_ClientCreateChannelResponseChannelEncoderSettingsTimecodeConfigTypeDef",
    {"Source": str, "SyncThreshold": int},
    total=False,
)


class ClientCreateChannelResponseChannelEncoderSettingsTimecodeConfigTypeDef(
    _ClientCreateChannelResponseChannelEncoderSettingsTimecodeConfigTypeDef
):
    """
    Type definition for `ClientCreateChannelResponseChannelEncoderSettings` `TimecodeConfig`

    - **Source** *(string) --* Identifies the source for the timecode that will be associated with
    the events outputs. -Embedded (embedded): Initialize the output timecode with timecode from the
    the source. If no embedded timecode is detected in the source, the system falls back to using
    "Start at 0" (zerobased). -System Clock (systemclock): Use the UTC time. -Start at 0
    (zerobased): The time of the first frame of the event will be 00:00:00:00.

    - **SyncThreshold** *(integer) --* Threshold in frames beyond which output timecode is
    resynchronized to the input timecode. Discrepancies below this threshold are permitted to avoid
    unnecessary discontinuities in the output timecode. No timecode sync when this is not specified.
    """


_ClientCreateChannelResponseChannelEncoderSettingsVideoDescriptionsCodecSettingsFrameCaptureSettingsTypeDef = TypedDict(
    "_ClientCreateChannelResponseChannelEncoderSettingsVideoDescriptionsCodecSettingsFrameCaptureSettingsTypeDef",
    {"CaptureInterval": int},
    total=False,
)


class ClientCreateChannelResponseChannelEncoderSettingsVideoDescriptionsCodecSettingsFrameCaptureSettingsTypeDef(
    _ClientCreateChannelResponseChannelEncoderSettingsVideoDescriptionsCodecSettingsFrameCaptureSettingsTypeDef
):
    """
    Type definition for
    `ClientCreateChannelResponseChannelEncoderSettingsVideoDescriptionsCodecSettings`
    `FrameCaptureSettings`

    - **CaptureInterval** *(integer) --* The frequency at which to capture frames for inclusion in
    the output. May be specified in either seconds or milliseconds, as specified by
    captureIntervalUnits.
    """


_ClientCreateChannelResponseChannelEncoderSettingsVideoDescriptionsCodecSettingsH264SettingsColorSpaceSettingsTypeDef = TypedDict(
    "_ClientCreateChannelResponseChannelEncoderSettingsVideoDescriptionsCodecSettingsH264SettingsColorSpaceSettingsTypeDef",
    {
        "ColorSpacePassthroughSettings": Dict,
        "Rec601Settings": Dict,
        "Rec709Settings": Dict[str, Any],
    },
    total=False,
)


class ClientCreateChannelResponseChannelEncoderSettingsVideoDescriptionsCodecSettingsH264SettingsColorSpaceSettingsTypeDef(
    _ClientCreateChannelResponseChannelEncoderSettingsVideoDescriptionsCodecSettingsH264SettingsColorSpaceSettingsTypeDef
):
    """
    Type definition for
    `ClientCreateChannelResponseChannelEncoderSettingsVideoDescriptionsCodecSettingsH264Settings`
    `ColorSpaceSettings`

    - **ColorSpacePassthroughSettings** *(dict) --* Passthrough applies no color space conversion to
    the output

    - **Rec601Settings** *(dict) --* Rec601 Settings

    - **Rec709Settings** *(dict) --* Rec709 Settings
    """


_ClientCreateChannelResponseChannelEncoderSettingsVideoDescriptionsCodecSettingsH264SettingsTypeDef = TypedDict(
    "_ClientCreateChannelResponseChannelEncoderSettingsVideoDescriptionsCodecSettingsH264SettingsTypeDef",
    {
        "AdaptiveQuantization": str,
        "AfdSignaling": str,
        "Bitrate": int,
        "BufFillPct": int,
        "BufSize": int,
        "ColorMetadata": str,
        "ColorSpaceSettings": ClientCreateChannelResponseChannelEncoderSettingsVideoDescriptionsCodecSettingsH264SettingsColorSpaceSettingsTypeDef,
        "EntropyEncoding": str,
        "FixedAfd": str,
        "FlickerAq": str,
        "FramerateControl": str,
        "FramerateDenominator": int,
        "FramerateNumerator": int,
        "GopBReference": str,
        "GopClosedCadence": int,
        "GopNumBFrames": int,
        "GopSize": float,
        "GopSizeUnits": str,
        "Level": str,
        "LookAheadRateControl": str,
        "MaxBitrate": int,
        "MinIInterval": int,
        "NumRefFrames": int,
        "ParControl": str,
        "ParDenominator": int,
        "ParNumerator": int,
        "Profile": str,
        "QvbrQualityLevel": int,
        "RateControlMode": str,
        "ScanType": str,
        "SceneChangeDetect": str,
        "Slices": int,
        "Softness": int,
        "SpatialAq": str,
        "SubgopLength": str,
        "Syntax": str,
        "TemporalAq": str,
        "TimecodeInsertion": str,
    },
    total=False,
)


class ClientCreateChannelResponseChannelEncoderSettingsVideoDescriptionsCodecSettingsH264SettingsTypeDef(
    _ClientCreateChannelResponseChannelEncoderSettingsVideoDescriptionsCodecSettingsH264SettingsTypeDef
):
    """
    Type definition for
    `ClientCreateChannelResponseChannelEncoderSettingsVideoDescriptionsCodecSettings` `H264Settings`

    - **AdaptiveQuantization** *(string) --* Adaptive quantization. Allows intra-frame quantizers to
    vary to improve visual quality.

    - **AfdSignaling** *(string) --* Indicates that AFD values will be written into the output
    stream. If afdSignaling is "auto", the system will try to preserve the input AFD value (in cases
    where multiple AFD values are valid). If set to "fixed", the AFD value will be the value
    configured in the fixedAfd parameter.

    - **Bitrate** *(integer) --* Average bitrate in bits/second. Required when the rate control mode
    is VBR or CBR. Not used for QVBR. In an MS Smooth output group, each output must have a unique
    value when its bitrate is rounded down to the nearest multiple of 1000.

    - **BufFillPct** *(integer) --* Percentage of the buffer that should initially be filled (HRD
    buffer model).

    - **BufSize** *(integer) --* Size of buffer (HRD buffer model) in bits.

    - **ColorMetadata** *(string) --* Includes colorspace metadata in the output.

    - **ColorSpaceSettings** *(dict) --* Color Space settings

      - **ColorSpacePassthroughSettings** *(dict) --* Passthrough applies no color space conversion
      to the output

      - **Rec601Settings** *(dict) --* Rec601 Settings

      - **Rec709Settings** *(dict) --* Rec709 Settings

    - **EntropyEncoding** *(string) --* Entropy encoding mode. Use cabac (must be in Main or High
    profile) or cavlc.

    - **FixedAfd** *(string) --* Four bit AFD value to write on all frames of video in the output
    stream. Only valid when afdSignaling is set to 'Fixed'.

    - **FlickerAq** *(string) --* If set to enabled, adjust quantization within each frame to reduce
    flicker or 'pop' on I-frames.

    - **FramerateControl** *(string) --* This field indicates how the output video frame rate is
    specified. If "specified" is selected then the output video frame rate is determined by
    framerateNumerator and framerateDenominator, else if "initializeFromSource" is selected then the
    output video frame rate will be set equal to the input video frame rate of the first input.

    - **FramerateDenominator** *(integer) --* Framerate denominator.

    - **FramerateNumerator** *(integer) --* Framerate numerator - framerate is a fraction, e.g.
    24000 / 1001 = 23.976 fps.

    - **GopBReference** *(string) --* Documentation update needed

    - **GopClosedCadence** *(integer) --* Frequency of closed GOPs. In streaming applications, it is
    recommended that this be set to 1 so a decoder joining mid-stream will receive an IDR frame as
    quickly as possible. Setting this value to 0 will break output segmenting.

    - **GopNumBFrames** *(integer) --* Number of B-frames between reference frames.

    - **GopSize** *(float) --* GOP size (keyframe interval) in units of either frames or seconds per
    gopSizeUnits. If gopSizeUnits is frames, gopSize must be an integer and must be greater than or
    equal to 1. If gopSizeUnits is seconds, gopSize must be greater than 0, but need not be an
    integer.

    - **GopSizeUnits** *(string) --* Indicates if the gopSize is specified in frames or seconds. If
    seconds the system will convert the gopSize into a frame count at run time.

    - **Level** *(string) --* H.264 Level.

    - **LookAheadRateControl** *(string) --* Amount of lookahead. A value of low can decrease
    latency and memory usage, while high can produce better quality for certain content.

    - **MaxBitrate** *(integer) --* For QVBR: See the tooltip for Quality level For VBR: Set the
    maximum bitrate in order to accommodate expected spikes in the complexity of the video.

    - **MinIInterval** *(integer) --* Only meaningful if sceneChangeDetect is set to enabled.
    Defaults to 5 if multiplex rate control is used. Enforces separation between repeated (cadence)
    I-frames and I-frames inserted by Scene Change Detection. If a scene change I-frame is within
    I-interval frames of a cadence I-frame, the GOP is shrunk and/or stretched to the scene change
    I-frame. GOP stretch requires enabling lookahead as well as setting I-interval. The normal
    cadence resumes for the next GOP. Note: Maximum GOP stretch = GOP size + Min-I-interval - 1

    - **NumRefFrames** *(integer) --* Number of reference frames to use. The encoder may use more
    than requested if using B-frames and/or interlaced encoding.

    - **ParControl** *(string) --* This field indicates how the output pixel aspect ratio is
    specified. If "specified" is selected then the output video pixel aspect ratio is determined by
    parNumerator and parDenominator, else if "initializeFromSource" is selected then the output
    pixsel aspect ratio will be set equal to the input video pixel aspect ratio of the first input.

    - **ParDenominator** *(integer) --* Pixel Aspect Ratio denominator.

    - **ParNumerator** *(integer) --* Pixel Aspect Ratio numerator.

    - **Profile** *(string) --* H.264 Profile.

    - **QvbrQualityLevel** *(integer) --* Controls the target quality for the video encode. Applies
    only when the rate control mode is QVBR. Set values for the QVBR quality level field and Max
    bitrate field that suit your most important viewing devices. Recommended values are: - Primary
    screen: Quality level: 8 to 10. Max bitrate: 4M - PC or tablet: Quality level: 7. Max bitrate:
    1.5M to 3M - Smartphone: Quality level: 6. Max bitrate: 1M to 1.5M

    - **RateControlMode** *(string) --* Rate control mode. QVBR: Quality will match the specified
    quality level except when it is constrained by the maximum bitrate. Recommended if you or your
    viewers pay for bandwidth. VBR: Quality and bitrate vary, depending on the video complexity.
    Recommended instead of QVBR if you want to maintain a specific average bitrate over the duration
    of the channel. CBR: Quality varies, depending on the video complexity. Recommended only if you
    distribute your assets to devices that cannot handle variable bitrates.

    - **ScanType** *(string) --* Sets the scan type of the output to progressive or top-field-first
    interlaced.

    - **SceneChangeDetect** *(string) --* Scene change detection. - On: inserts I-frames when scene
    change is detected. - Off: does not force an I-frame when scene change is detected.

    - **Slices** *(integer) --* Number of slices per picture. Must be less than or equal to the
    number of macroblock rows for progressive pictures, and less than or equal to half the number of
    macroblock rows for interlaced pictures. This field is optional; when no value is specified the
    encoder will choose the number of slices based on encode resolution.

    - **Softness** *(integer) --* Softness. Selects quantizer matrix, larger values reduce
    high-frequency content in the encoded image.

    - **SpatialAq** *(string) --* If set to enabled, adjust quantization within each frame based on
    spatial variation of content complexity.

    - **SubgopLength** *(string) --* If set to fixed, use gopNumBFrames B-frames per sub-GOP. If set
    to dynamic, optimize the number of B-frames used for each sub-GOP to improve visual quality.

    - **Syntax** *(string) --* Produces a bitstream compliant with SMPTE RP-2027.

    - **TemporalAq** *(string) --* If set to enabled, adjust quantization within each frame based on
    temporal variation of content complexity.

    - **TimecodeInsertion** *(string) --* Determines how timecodes should be inserted into the video
    elementary stream. - 'disabled': Do not include timecodes - 'picTimingSei': Pass through picture
    timing SEI messages from the source specified in Timecode Config
    """


_ClientCreateChannelResponseChannelEncoderSettingsVideoDescriptionsCodecSettingsH265SettingsColorSpaceSettingsHdr10SettingsTypeDef = TypedDict(
    "_ClientCreateChannelResponseChannelEncoderSettingsVideoDescriptionsCodecSettingsH265SettingsColorSpaceSettingsHdr10SettingsTypeDef",
    {"MaxCll": int, "MaxFall": int},
    total=False,
)


class ClientCreateChannelResponseChannelEncoderSettingsVideoDescriptionsCodecSettingsH265SettingsColorSpaceSettingsHdr10SettingsTypeDef(
    _ClientCreateChannelResponseChannelEncoderSettingsVideoDescriptionsCodecSettingsH265SettingsColorSpaceSettingsHdr10SettingsTypeDef
):
    """
    Type definition for
    `ClientCreateChannelResponseChannelEncoderSettingsVideoDescriptionsCodecSettingsH265SettingsColorSpaceSettings`
    `Hdr10Settings`

    - **MaxCll** *(integer) --* Maximum Content Light Level An integer metadata value defining the
    maximum light level, in nits, of any single pixel within an encoded HDR video stream or file.

    - **MaxFall** *(integer) --* Maximum Frame Average Light Level An integer metadata value
    defining the maximum average light level, in nits, for any single frame within an encoded HDR
    video stream or file.
    """


_ClientCreateChannelResponseChannelEncoderSettingsVideoDescriptionsCodecSettingsH265SettingsColorSpaceSettingsTypeDef = TypedDict(
    "_ClientCreateChannelResponseChannelEncoderSettingsVideoDescriptionsCodecSettingsH265SettingsColorSpaceSettingsTypeDef",
    {
        "ColorSpacePassthroughSettings": Dict,
        "Hdr10Settings": ClientCreateChannelResponseChannelEncoderSettingsVideoDescriptionsCodecSettingsH265SettingsColorSpaceSettingsHdr10SettingsTypeDef,
        "Rec601Settings": Dict,
        "Rec709Settings": Dict[str, Any],
    },
    total=False,
)


class ClientCreateChannelResponseChannelEncoderSettingsVideoDescriptionsCodecSettingsH265SettingsColorSpaceSettingsTypeDef(
    _ClientCreateChannelResponseChannelEncoderSettingsVideoDescriptionsCodecSettingsH265SettingsColorSpaceSettingsTypeDef
):
    """
    Type definition for
    `ClientCreateChannelResponseChannelEncoderSettingsVideoDescriptionsCodecSettingsH265Settings`
    `ColorSpaceSettings`

    - **ColorSpacePassthroughSettings** *(dict) --* Passthrough applies no color space conversion to
    the output

    - **Hdr10Settings** *(dict) --* Hdr10 Settings

      - **MaxCll** *(integer) --* Maximum Content Light Level An integer metadata value defining the
      maximum light level, in nits, of any single pixel within an encoded HDR video stream or file.

      - **MaxFall** *(integer) --* Maximum Frame Average Light Level An integer metadata value
      defining the maximum average light level, in nits, for any single frame within an encoded HDR
      video stream or file.

    - **Rec601Settings** *(dict) --* Rec601 Settings

    - **Rec709Settings** *(dict) --* Rec709 Settings
    """


_ClientCreateChannelResponseChannelEncoderSettingsVideoDescriptionsCodecSettingsH265SettingsTypeDef = TypedDict(
    "_ClientCreateChannelResponseChannelEncoderSettingsVideoDescriptionsCodecSettingsH265SettingsTypeDef",
    {
        "AdaptiveQuantization": str,
        "AfdSignaling": str,
        "AlternativeTransferFunction": str,
        "Bitrate": int,
        "BufSize": int,
        "ColorMetadata": str,
        "ColorSpaceSettings": ClientCreateChannelResponseChannelEncoderSettingsVideoDescriptionsCodecSettingsH265SettingsColorSpaceSettingsTypeDef,
        "FixedAfd": str,
        "FlickerAq": str,
        "FramerateDenominator": int,
        "FramerateNumerator": int,
        "GopClosedCadence": int,
        "GopSize": float,
        "GopSizeUnits": str,
        "Level": str,
        "LookAheadRateControl": str,
        "MaxBitrate": int,
        "MinIInterval": int,
        "ParDenominator": int,
        "ParNumerator": int,
        "Profile": str,
        "QvbrQualityLevel": int,
        "RateControlMode": str,
        "ScanType": str,
        "SceneChangeDetect": str,
        "Slices": int,
        "Tier": str,
        "TimecodeInsertion": str,
    },
    total=False,
)


class ClientCreateChannelResponseChannelEncoderSettingsVideoDescriptionsCodecSettingsH265SettingsTypeDef(
    _ClientCreateChannelResponseChannelEncoderSettingsVideoDescriptionsCodecSettingsH265SettingsTypeDef
):
    """
    Type definition for
    `ClientCreateChannelResponseChannelEncoderSettingsVideoDescriptionsCodecSettings` `H265Settings`

    - **AdaptiveQuantization** *(string) --* Adaptive quantization. Allows intra-frame quantizers to
    vary to improve visual quality.

    - **AfdSignaling** *(string) --* Indicates that AFD values will be written into the output
    stream. If afdSignaling is "auto", the system will try to preserve the input AFD value (in cases
    where multiple AFD values are valid). If set to "fixed", the AFD value will be the value
    configured in the fixedAfd parameter.

    - **AlternativeTransferFunction** *(string) --* Whether or not EML should insert an Alternative
    Transfer Function SEI message to support backwards compatibility with non-HDR decoders and
    displays.

    - **Bitrate** *(integer) --* Average bitrate in bits/second. Required when the rate control mode
    is VBR or CBR. Not used for QVBR. In an MS Smooth output group, each output must have a unique
    value when its bitrate is rounded down to the nearest multiple of 1000.

    - **BufSize** *(integer) --* Size of buffer (HRD buffer model) in bits.

    - **ColorMetadata** *(string) --* Includes colorspace metadata in the output.

    - **ColorSpaceSettings** *(dict) --* Color Space settings

      - **ColorSpacePassthroughSettings** *(dict) --* Passthrough applies no color space conversion
      to the output

      - **Hdr10Settings** *(dict) --* Hdr10 Settings

        - **MaxCll** *(integer) --* Maximum Content Light Level An integer metadata value defining
        the maximum light level, in nits, of any single pixel within an encoded HDR video stream or
        file.

        - **MaxFall** *(integer) --* Maximum Frame Average Light Level An integer metadata value
        defining the maximum average light level, in nits, for any single frame within an encoded
        HDR video stream or file.

      - **Rec601Settings** *(dict) --* Rec601 Settings

      - **Rec709Settings** *(dict) --* Rec709 Settings

    - **FixedAfd** *(string) --* Four bit AFD value to write on all frames of video in the output
    stream. Only valid when afdSignaling is set to 'Fixed'.

    - **FlickerAq** *(string) --* If set to enabled, adjust quantization within each frame to reduce
    flicker or 'pop' on I-frames.

    - **FramerateDenominator** *(integer) --* Framerate denominator.

    - **FramerateNumerator** *(integer) --* Framerate numerator - framerate is a fraction, e.g.
    24000 / 1001 = 23.976 fps.

    - **GopClosedCadence** *(integer) --* Frequency of closed GOPs. In streaming applications, it is
    recommended that this be set to 1 so a decoder joining mid-stream will receive an IDR frame as
    quickly as possible. Setting this value to 0 will break output segmenting.

    - **GopSize** *(float) --* GOP size (keyframe interval) in units of either frames or seconds per
    gopSizeUnits. If gopSizeUnits is frames, gopSize must be an integer and must be greater than or
    equal to 1. If gopSizeUnits is seconds, gopSize must be greater than 0, but need not be an
    integer.

    - **GopSizeUnits** *(string) --* Indicates if the gopSize is specified in frames or seconds. If
    seconds the system will convert the gopSize into a frame count at run time.

    - **Level** *(string) --* H.265 Level.

    - **LookAheadRateControl** *(string) --* Amount of lookahead. A value of low can decrease
    latency and memory usage, while high can produce better quality for certain content.

    - **MaxBitrate** *(integer) --* For QVBR: See the tooltip for Quality level

    - **MinIInterval** *(integer) --* Only meaningful if sceneChangeDetect is set to enabled.
    Defaults to 5 if multiplex rate control is used. Enforces separation between repeated (cadence)
    I-frames and I-frames inserted by Scene Change Detection. If a scene change I-frame is within
    I-interval frames of a cadence I-frame, the GOP is shrunk and/or stretched to the scene change
    I-frame. GOP stretch requires enabling lookahead as well as setting I-interval. The normal
    cadence resumes for the next GOP. Note: Maximum GOP stretch = GOP size + Min-I-interval - 1

    - **ParDenominator** *(integer) --* Pixel Aspect Ratio denominator.

    - **ParNumerator** *(integer) --* Pixel Aspect Ratio numerator.

    - **Profile** *(string) --* H.265 Profile.

    - **QvbrQualityLevel** *(integer) --* Controls the target quality for the video encode. Applies
    only when the rate control mode is QVBR. Set values for the QVBR quality level field and Max
    bitrate field that suit your most important viewing devices. Recommended values are: - Primary
    screen: Quality level: 8 to 10. Max bitrate: 4M - PC or tablet: Quality level: 7. Max bitrate:
    1.5M to 3M - Smartphone: Quality level: 6. Max bitrate: 1M to 1.5M

    - **RateControlMode** *(string) --* Rate control mode. QVBR: Quality will match the specified
    quality level except when it is constrained by the maximum bitrate. Recommended if you or your
    viewers pay for bandwidth. CBR: Quality varies, depending on the video complexity. Recommended
    only if you distribute your assets to devices that cannot handle variable bitrates.

    - **ScanType** *(string) --* Sets the scan type of the output to progressive or top-field-first
    interlaced.

    - **SceneChangeDetect** *(string) --* Scene change detection.

    - **Slices** *(integer) --* Number of slices per picture. Must be less than or equal to the
    number of macroblock rows for progressive pictures, and less than or equal to half the number of
    macroblock rows for interlaced pictures. This field is optional; when no value is specified the
    encoder will choose the number of slices based on encode resolution.

    - **Tier** *(string) --* H.265 Tier.

    - **TimecodeInsertion** *(string) --* Determines how timecodes should be inserted into the video
    elementary stream. - 'disabled': Do not include timecodes - 'picTimingSei': Pass through picture
    timing SEI messages from the source specified in Timecode Config
    """


_ClientCreateChannelResponseChannelEncoderSettingsVideoDescriptionsCodecSettingsTypeDef = TypedDict(
    "_ClientCreateChannelResponseChannelEncoderSettingsVideoDescriptionsCodecSettingsTypeDef",
    {
        "FrameCaptureSettings": ClientCreateChannelResponseChannelEncoderSettingsVideoDescriptionsCodecSettingsFrameCaptureSettingsTypeDef,
        "H264Settings": ClientCreateChannelResponseChannelEncoderSettingsVideoDescriptionsCodecSettingsH264SettingsTypeDef,
        "H265Settings": ClientCreateChannelResponseChannelEncoderSettingsVideoDescriptionsCodecSettingsH265SettingsTypeDef,
    },
    total=False,
)


class ClientCreateChannelResponseChannelEncoderSettingsVideoDescriptionsCodecSettingsTypeDef(
    _ClientCreateChannelResponseChannelEncoderSettingsVideoDescriptionsCodecSettingsTypeDef
):
    """
    Type definition for `ClientCreateChannelResponseChannelEncoderSettingsVideoDescriptions`
    `CodecSettings`

    - **FrameCaptureSettings** *(dict) --* Frame Capture Settings

      - **CaptureInterval** *(integer) --* The frequency at which to capture frames for inclusion in
      the output. May be specified in either seconds or milliseconds, as specified by
      captureIntervalUnits.

    - **H264Settings** *(dict) --* H264 Settings

      - **AdaptiveQuantization** *(string) --* Adaptive quantization. Allows intra-frame quantizers
      to vary to improve visual quality.

      - **AfdSignaling** *(string) --* Indicates that AFD values will be written into the output
      stream. If afdSignaling is "auto", the system will try to preserve the input AFD value (in
      cases where multiple AFD values are valid). If set to "fixed", the AFD value will be the value
      configured in the fixedAfd parameter.

      - **Bitrate** *(integer) --* Average bitrate in bits/second. Required when the rate control
      mode is VBR or CBR. Not used for QVBR. In an MS Smooth output group, each output must have a
      unique value when its bitrate is rounded down to the nearest multiple of 1000.

      - **BufFillPct** *(integer) --* Percentage of the buffer that should initially be filled (HRD
      buffer model).

      - **BufSize** *(integer) --* Size of buffer (HRD buffer model) in bits.

      - **ColorMetadata** *(string) --* Includes colorspace metadata in the output.

      - **ColorSpaceSettings** *(dict) --* Color Space settings

        - **ColorSpacePassthroughSettings** *(dict) --* Passthrough applies no color space
        conversion to the output

        - **Rec601Settings** *(dict) --* Rec601 Settings

        - **Rec709Settings** *(dict) --* Rec709 Settings

      - **EntropyEncoding** *(string) --* Entropy encoding mode. Use cabac (must be in Main or High
      profile) or cavlc.

      - **FixedAfd** *(string) --* Four bit AFD value to write on all frames of video in the output
      stream. Only valid when afdSignaling is set to 'Fixed'.

      - **FlickerAq** *(string) --* If set to enabled, adjust quantization within each frame to
      reduce flicker or 'pop' on I-frames.

      - **FramerateControl** *(string) --* This field indicates how the output video frame rate is
      specified. If "specified" is selected then the output video frame rate is determined by
      framerateNumerator and framerateDenominator, else if "initializeFromSource" is selected then
      the output video frame rate will be set equal to the input video frame rate of the first
      input.

      - **FramerateDenominator** *(integer) --* Framerate denominator.

      - **FramerateNumerator** *(integer) --* Framerate numerator - framerate is a fraction, e.g.
      24000 / 1001 = 23.976 fps.

      - **GopBReference** *(string) --* Documentation update needed

      - **GopClosedCadence** *(integer) --* Frequency of closed GOPs. In streaming applications, it
      is recommended that this be set to 1 so a decoder joining mid-stream will receive an IDR frame
      as quickly as possible. Setting this value to 0 will break output segmenting.

      - **GopNumBFrames** *(integer) --* Number of B-frames between reference frames.

      - **GopSize** *(float) --* GOP size (keyframe interval) in units of either frames or seconds
      per gopSizeUnits. If gopSizeUnits is frames, gopSize must be an integer and must be greater
      than or equal to 1. If gopSizeUnits is seconds, gopSize must be greater than 0, but need not
      be an integer.

      - **GopSizeUnits** *(string) --* Indicates if the gopSize is specified in frames or seconds.
      If seconds the system will convert the gopSize into a frame count at run time.

      - **Level** *(string) --* H.264 Level.

      - **LookAheadRateControl** *(string) --* Amount of lookahead. A value of low can decrease
      latency and memory usage, while high can produce better quality for certain content.

      - **MaxBitrate** *(integer) --* For QVBR: See the tooltip for Quality level For VBR: Set the
      maximum bitrate in order to accommodate expected spikes in the complexity of the video.

      - **MinIInterval** *(integer) --* Only meaningful if sceneChangeDetect is set to enabled.
      Defaults to 5 if multiplex rate control is used. Enforces separation between repeated
      (cadence) I-frames and I-frames inserted by Scene Change Detection. If a scene change I-frame
      is within I-interval frames of a cadence I-frame, the GOP is shrunk and/or stretched to the
      scene change I-frame. GOP stretch requires enabling lookahead as well as setting I-interval.
      The normal cadence resumes for the next GOP. Note: Maximum GOP stretch = GOP size +
      Min-I-interval - 1

      - **NumRefFrames** *(integer) --* Number of reference frames to use. The encoder may use more
      than requested if using B-frames and/or interlaced encoding.

      - **ParControl** *(string) --* This field indicates how the output pixel aspect ratio is
      specified. If "specified" is selected then the output video pixel aspect ratio is determined
      by parNumerator and parDenominator, else if "initializeFromSource" is selected then the output
      pixsel aspect ratio will be set equal to the input video pixel aspect ratio of the first
      input.

      - **ParDenominator** *(integer) --* Pixel Aspect Ratio denominator.

      - **ParNumerator** *(integer) --* Pixel Aspect Ratio numerator.

      - **Profile** *(string) --* H.264 Profile.

      - **QvbrQualityLevel** *(integer) --* Controls the target quality for the video encode.
      Applies only when the rate control mode is QVBR. Set values for the QVBR quality level field
      and Max bitrate field that suit your most important viewing devices. Recommended values are: -
      Primary screen: Quality level: 8 to 10. Max bitrate: 4M - PC or tablet: Quality level: 7. Max
      bitrate: 1.5M to 3M - Smartphone: Quality level: 6. Max bitrate: 1M to 1.5M

      - **RateControlMode** *(string) --* Rate control mode. QVBR: Quality will match the specified
      quality level except when it is constrained by the maximum bitrate. Recommended if you or your
      viewers pay for bandwidth. VBR: Quality and bitrate vary, depending on the video complexity.
      Recommended instead of QVBR if you want to maintain a specific average bitrate over the
      duration of the channel. CBR: Quality varies, depending on the video complexity. Recommended
      only if you distribute your assets to devices that cannot handle variable bitrates.

      - **ScanType** *(string) --* Sets the scan type of the output to progressive or
      top-field-first interlaced.

      - **SceneChangeDetect** *(string) --* Scene change detection. - On: inserts I-frames when
      scene change is detected. - Off: does not force an I-frame when scene change is detected.

      - **Slices** *(integer) --* Number of slices per picture. Must be less than or equal to the
      number of macroblock rows for progressive pictures, and less than or equal to half the number
      of macroblock rows for interlaced pictures. This field is optional; when no value is specified
      the encoder will choose the number of slices based on encode resolution.

      - **Softness** *(integer) --* Softness. Selects quantizer matrix, larger values reduce
      high-frequency content in the encoded image.

      - **SpatialAq** *(string) --* If set to enabled, adjust quantization within each frame based
      on spatial variation of content complexity.

      - **SubgopLength** *(string) --* If set to fixed, use gopNumBFrames B-frames per sub-GOP. If
      set to dynamic, optimize the number of B-frames used for each sub-GOP to improve visual
      quality.

      - **Syntax** *(string) --* Produces a bitstream compliant with SMPTE RP-2027.

      - **TemporalAq** *(string) --* If set to enabled, adjust quantization within each frame based
      on temporal variation of content complexity.

      - **TimecodeInsertion** *(string) --* Determines how timecodes should be inserted into the
      video elementary stream. - 'disabled': Do not include timecodes - 'picTimingSei': Pass through
      picture timing SEI messages from the source specified in Timecode Config

    - **H265Settings** *(dict) --* H265 Settings

      - **AdaptiveQuantization** *(string) --* Adaptive quantization. Allows intra-frame quantizers
      to vary to improve visual quality.

      - **AfdSignaling** *(string) --* Indicates that AFD values will be written into the output
      stream. If afdSignaling is "auto", the system will try to preserve the input AFD value (in
      cases where multiple AFD values are valid). If set to "fixed", the AFD value will be the value
      configured in the fixedAfd parameter.

      - **AlternativeTransferFunction** *(string) --* Whether or not EML should insert an
      Alternative Transfer Function SEI message to support backwards compatibility with non-HDR
      decoders and displays.

      - **Bitrate** *(integer) --* Average bitrate in bits/second. Required when the rate control
      mode is VBR or CBR. Not used for QVBR. In an MS Smooth output group, each output must have a
      unique value when its bitrate is rounded down to the nearest multiple of 1000.

      - **BufSize** *(integer) --* Size of buffer (HRD buffer model) in bits.

      - **ColorMetadata** *(string) --* Includes colorspace metadata in the output.

      - **ColorSpaceSettings** *(dict) --* Color Space settings

        - **ColorSpacePassthroughSettings** *(dict) --* Passthrough applies no color space
        conversion to the output

        - **Hdr10Settings** *(dict) --* Hdr10 Settings

          - **MaxCll** *(integer) --* Maximum Content Light Level An integer metadata value defining
          the maximum light level, in nits, of any single pixel within an encoded HDR video stream
          or file.

          - **MaxFall** *(integer) --* Maximum Frame Average Light Level An integer metadata value
          defining the maximum average light level, in nits, for any single frame within an encoded
          HDR video stream or file.

        - **Rec601Settings** *(dict) --* Rec601 Settings

        - **Rec709Settings** *(dict) --* Rec709 Settings

      - **FixedAfd** *(string) --* Four bit AFD value to write on all frames of video in the output
      stream. Only valid when afdSignaling is set to 'Fixed'.

      - **FlickerAq** *(string) --* If set to enabled, adjust quantization within each frame to
      reduce flicker or 'pop' on I-frames.

      - **FramerateDenominator** *(integer) --* Framerate denominator.

      - **FramerateNumerator** *(integer) --* Framerate numerator - framerate is a fraction, e.g.
      24000 / 1001 = 23.976 fps.

      - **GopClosedCadence** *(integer) --* Frequency of closed GOPs. In streaming applications, it
      is recommended that this be set to 1 so a decoder joining mid-stream will receive an IDR frame
      as quickly as possible. Setting this value to 0 will break output segmenting.

      - **GopSize** *(float) --* GOP size (keyframe interval) in units of either frames or seconds
      per gopSizeUnits. If gopSizeUnits is frames, gopSize must be an integer and must be greater
      than or equal to 1. If gopSizeUnits is seconds, gopSize must be greater than 0, but need not
      be an integer.

      - **GopSizeUnits** *(string) --* Indicates if the gopSize is specified in frames or seconds.
      If seconds the system will convert the gopSize into a frame count at run time.

      - **Level** *(string) --* H.265 Level.

      - **LookAheadRateControl** *(string) --* Amount of lookahead. A value of low can decrease
      latency and memory usage, while high can produce better quality for certain content.

      - **MaxBitrate** *(integer) --* For QVBR: See the tooltip for Quality level

      - **MinIInterval** *(integer) --* Only meaningful if sceneChangeDetect is set to enabled.
      Defaults to 5 if multiplex rate control is used. Enforces separation between repeated
      (cadence) I-frames and I-frames inserted by Scene Change Detection. If a scene change I-frame
      is within I-interval frames of a cadence I-frame, the GOP is shrunk and/or stretched to the
      scene change I-frame. GOP stretch requires enabling lookahead as well as setting I-interval.
      The normal cadence resumes for the next GOP. Note: Maximum GOP stretch = GOP size +
      Min-I-interval - 1

      - **ParDenominator** *(integer) --* Pixel Aspect Ratio denominator.

      - **ParNumerator** *(integer) --* Pixel Aspect Ratio numerator.

      - **Profile** *(string) --* H.265 Profile.

      - **QvbrQualityLevel** *(integer) --* Controls the target quality for the video encode.
      Applies only when the rate control mode is QVBR. Set values for the QVBR quality level field
      and Max bitrate field that suit your most important viewing devices. Recommended values are: -
      Primary screen: Quality level: 8 to 10. Max bitrate: 4M - PC or tablet: Quality level: 7. Max
      bitrate: 1.5M to 3M - Smartphone: Quality level: 6. Max bitrate: 1M to 1.5M

      - **RateControlMode** *(string) --* Rate control mode. QVBR: Quality will match the specified
      quality level except when it is constrained by the maximum bitrate. Recommended if you or your
      viewers pay for bandwidth. CBR: Quality varies, depending on the video complexity. Recommended
      only if you distribute your assets to devices that cannot handle variable bitrates.

      - **ScanType** *(string) --* Sets the scan type of the output to progressive or
      top-field-first interlaced.

      - **SceneChangeDetect** *(string) --* Scene change detection.

      - **Slices** *(integer) --* Number of slices per picture. Must be less than or equal to the
      number of macroblock rows for progressive pictures, and less than or equal to half the number
      of macroblock rows for interlaced pictures. This field is optional; when no value is specified
      the encoder will choose the number of slices based on encode resolution.

      - **Tier** *(string) --* H.265 Tier.

      - **TimecodeInsertion** *(string) --* Determines how timecodes should be inserted into the
      video elementary stream. - 'disabled': Do not include timecodes - 'picTimingSei': Pass through
      picture timing SEI messages from the source specified in Timecode Config
    """


_ClientCreateChannelResponseChannelEncoderSettingsVideoDescriptionsTypeDef = TypedDict(
    "_ClientCreateChannelResponseChannelEncoderSettingsVideoDescriptionsTypeDef",
    {
        "CodecSettings": ClientCreateChannelResponseChannelEncoderSettingsVideoDescriptionsCodecSettingsTypeDef,
        "Height": int,
        "Name": str,
        "RespondToAfd": str,
        "ScalingBehavior": str,
        "Sharpness": int,
        "Width": int,
    },
    total=False,
)


class ClientCreateChannelResponseChannelEncoderSettingsVideoDescriptionsTypeDef(
    _ClientCreateChannelResponseChannelEncoderSettingsVideoDescriptionsTypeDef
):
    """
    Type definition for `ClientCreateChannelResponseChannelEncoderSettings` `VideoDescriptions`

    - **CodecSettings** *(dict) --* Video codec settings.

      - **FrameCaptureSettings** *(dict) --* Frame Capture Settings

        - **CaptureInterval** *(integer) --* The frequency at which to capture frames for inclusion
        in the output. May be specified in either seconds or milliseconds, as specified by
        captureIntervalUnits.

      - **H264Settings** *(dict) --* H264 Settings

        - **AdaptiveQuantization** *(string) --* Adaptive quantization. Allows intra-frame
        quantizers to vary to improve visual quality.

        - **AfdSignaling** *(string) --* Indicates that AFD values will be written into the output
        stream. If afdSignaling is "auto", the system will try to preserve the input AFD value (in
        cases where multiple AFD values are valid). If set to "fixed", the AFD value will be the
        value configured in the fixedAfd parameter.

        - **Bitrate** *(integer) --* Average bitrate in bits/second. Required when the rate control
        mode is VBR or CBR. Not used for QVBR. In an MS Smooth output group, each output must have a
        unique value when its bitrate is rounded down to the nearest multiple of 1000.

        - **BufFillPct** *(integer) --* Percentage of the buffer that should initially be filled
        (HRD buffer model).

        - **BufSize** *(integer) --* Size of buffer (HRD buffer model) in bits.

        - **ColorMetadata** *(string) --* Includes colorspace metadata in the output.

        - **ColorSpaceSettings** *(dict) --* Color Space settings

          - **ColorSpacePassthroughSettings** *(dict) --* Passthrough applies no color space
          conversion to the output

          - **Rec601Settings** *(dict) --* Rec601 Settings

          - **Rec709Settings** *(dict) --* Rec709 Settings

        - **EntropyEncoding** *(string) --* Entropy encoding mode. Use cabac (must be in Main or
        High profile) or cavlc.

        - **FixedAfd** *(string) --* Four bit AFD value to write on all frames of video in the
        output stream. Only valid when afdSignaling is set to 'Fixed'.

        - **FlickerAq** *(string) --* If set to enabled, adjust quantization within each frame to
        reduce flicker or 'pop' on I-frames.

        - **FramerateControl** *(string) --* This field indicates how the output video frame rate is
        specified. If "specified" is selected then the output video frame rate is determined by
        framerateNumerator and framerateDenominator, else if "initializeFromSource" is selected then
        the output video frame rate will be set equal to the input video frame rate of the first
        input.

        - **FramerateDenominator** *(integer) --* Framerate denominator.

        - **FramerateNumerator** *(integer) --* Framerate numerator - framerate is a fraction, e.g.
        24000 / 1001 = 23.976 fps.

        - **GopBReference** *(string) --* Documentation update needed

        - **GopClosedCadence** *(integer) --* Frequency of closed GOPs. In streaming applications,
        it is recommended that this be set to 1 so a decoder joining mid-stream will receive an IDR
        frame as quickly as possible. Setting this value to 0 will break output segmenting.

        - **GopNumBFrames** *(integer) --* Number of B-frames between reference frames.

        - **GopSize** *(float) --* GOP size (keyframe interval) in units of either frames or seconds
        per gopSizeUnits. If gopSizeUnits is frames, gopSize must be an integer and must be greater
        than or equal to 1. If gopSizeUnits is seconds, gopSize must be greater than 0, but need not
        be an integer.

        - **GopSizeUnits** *(string) --* Indicates if the gopSize is specified in frames or seconds.
        If seconds the system will convert the gopSize into a frame count at run time.

        - **Level** *(string) --* H.264 Level.

        - **LookAheadRateControl** *(string) --* Amount of lookahead. A value of low can decrease
        latency and memory usage, while high can produce better quality for certain content.

        - **MaxBitrate** *(integer) --* For QVBR: See the tooltip for Quality level For VBR: Set the
        maximum bitrate in order to accommodate expected spikes in the complexity of the video.

        - **MinIInterval** *(integer) --* Only meaningful if sceneChangeDetect is set to enabled.
        Defaults to 5 if multiplex rate control is used. Enforces separation between repeated
        (cadence) I-frames and I-frames inserted by Scene Change Detection. If a scene change
        I-frame is within I-interval frames of a cadence I-frame, the GOP is shrunk and/or stretched
        to the scene change I-frame. GOP stretch requires enabling lookahead as well as setting
        I-interval. The normal cadence resumes for the next GOP. Note: Maximum GOP stretch = GOP
        size + Min-I-interval - 1

        - **NumRefFrames** *(integer) --* Number of reference frames to use. The encoder may use
        more than requested if using B-frames and/or interlaced encoding.

        - **ParControl** *(string) --* This field indicates how the output pixel aspect ratio is
        specified. If "specified" is selected then the output video pixel aspect ratio is determined
        by parNumerator and parDenominator, else if "initializeFromSource" is selected then the
        output pixsel aspect ratio will be set equal to the input video pixel aspect ratio of the
        first input.

        - **ParDenominator** *(integer) --* Pixel Aspect Ratio denominator.

        - **ParNumerator** *(integer) --* Pixel Aspect Ratio numerator.

        - **Profile** *(string) --* H.264 Profile.

        - **QvbrQualityLevel** *(integer) --* Controls the target quality for the video encode.
        Applies only when the rate control mode is QVBR. Set values for the QVBR quality level field
        and Max bitrate field that suit your most important viewing devices. Recommended values are:
        - Primary screen: Quality level: 8 to 10. Max bitrate: 4M - PC or tablet: Quality level: 7.
        Max bitrate: 1.5M to 3M - Smartphone: Quality level: 6. Max bitrate: 1M to 1.5M

        - **RateControlMode** *(string) --* Rate control mode. QVBR: Quality will match the
        specified quality level except when it is constrained by the maximum bitrate. Recommended if
        you or your viewers pay for bandwidth. VBR: Quality and bitrate vary, depending on the video
        complexity. Recommended instead of QVBR if you want to maintain a specific average bitrate
        over the duration of the channel. CBR: Quality varies, depending on the video complexity.
        Recommended only if you distribute your assets to devices that cannot handle variable
        bitrates.

        - **ScanType** *(string) --* Sets the scan type of the output to progressive or
        top-field-first interlaced.

        - **SceneChangeDetect** *(string) --* Scene change detection. - On: inserts I-frames when
        scene change is detected. - Off: does not force an I-frame when scene change is detected.

        - **Slices** *(integer) --* Number of slices per picture. Must be less than or equal to the
        number of macroblock rows for progressive pictures, and less than or equal to half the
        number of macroblock rows for interlaced pictures. This field is optional; when no value is
        specified the encoder will choose the number of slices based on encode resolution.

        - **Softness** *(integer) --* Softness. Selects quantizer matrix, larger values reduce
        high-frequency content in the encoded image.

        - **SpatialAq** *(string) --* If set to enabled, adjust quantization within each frame based
        on spatial variation of content complexity.

        - **SubgopLength** *(string) --* If set to fixed, use gopNumBFrames B-frames per sub-GOP. If
        set to dynamic, optimize the number of B-frames used for each sub-GOP to improve visual
        quality.

        - **Syntax** *(string) --* Produces a bitstream compliant with SMPTE RP-2027.

        - **TemporalAq** *(string) --* If set to enabled, adjust quantization within each frame
        based on temporal variation of content complexity.

        - **TimecodeInsertion** *(string) --* Determines how timecodes should be inserted into the
        video elementary stream. - 'disabled': Do not include timecodes - 'picTimingSei': Pass
        through picture timing SEI messages from the source specified in Timecode Config

      - **H265Settings** *(dict) --* H265 Settings

        - **AdaptiveQuantization** *(string) --* Adaptive quantization. Allows intra-frame
        quantizers to vary to improve visual quality.

        - **AfdSignaling** *(string) --* Indicates that AFD values will be written into the output
        stream. If afdSignaling is "auto", the system will try to preserve the input AFD value (in
        cases where multiple AFD values are valid). If set to "fixed", the AFD value will be the
        value configured in the fixedAfd parameter.

        - **AlternativeTransferFunction** *(string) --* Whether or not EML should insert an
        Alternative Transfer Function SEI message to support backwards compatibility with non-HDR
        decoders and displays.

        - **Bitrate** *(integer) --* Average bitrate in bits/second. Required when the rate control
        mode is VBR or CBR. Not used for QVBR. In an MS Smooth output group, each output must have a
        unique value when its bitrate is rounded down to the nearest multiple of 1000.

        - **BufSize** *(integer) --* Size of buffer (HRD buffer model) in bits.

        - **ColorMetadata** *(string) --* Includes colorspace metadata in the output.

        - **ColorSpaceSettings** *(dict) --* Color Space settings

          - **ColorSpacePassthroughSettings** *(dict) --* Passthrough applies no color space
          conversion to the output

          - **Hdr10Settings** *(dict) --* Hdr10 Settings

            - **MaxCll** *(integer) --* Maximum Content Light Level An integer metadata value
            defining the maximum light level, in nits, of any single pixel within an encoded HDR
            video stream or file.

            - **MaxFall** *(integer) --* Maximum Frame Average Light Level An integer metadata value
            defining the maximum average light level, in nits, for any single frame within an
            encoded HDR video stream or file.

          - **Rec601Settings** *(dict) --* Rec601 Settings

          - **Rec709Settings** *(dict) --* Rec709 Settings

        - **FixedAfd** *(string) --* Four bit AFD value to write on all frames of video in the
        output stream. Only valid when afdSignaling is set to 'Fixed'.

        - **FlickerAq** *(string) --* If set to enabled, adjust quantization within each frame to
        reduce flicker or 'pop' on I-frames.

        - **FramerateDenominator** *(integer) --* Framerate denominator.

        - **FramerateNumerator** *(integer) --* Framerate numerator - framerate is a fraction, e.g.
        24000 / 1001 = 23.976 fps.

        - **GopClosedCadence** *(integer) --* Frequency of closed GOPs. In streaming applications,
        it is recommended that this be set to 1 so a decoder joining mid-stream will receive an IDR
        frame as quickly as possible. Setting this value to 0 will break output segmenting.

        - **GopSize** *(float) --* GOP size (keyframe interval) in units of either frames or seconds
        per gopSizeUnits. If gopSizeUnits is frames, gopSize must be an integer and must be greater
        than or equal to 1. If gopSizeUnits is seconds, gopSize must be greater than 0, but need not
        be an integer.

        - **GopSizeUnits** *(string) --* Indicates if the gopSize is specified in frames or seconds.
        If seconds the system will convert the gopSize into a frame count at run time.

        - **Level** *(string) --* H.265 Level.

        - **LookAheadRateControl** *(string) --* Amount of lookahead. A value of low can decrease
        latency and memory usage, while high can produce better quality for certain content.

        - **MaxBitrate** *(integer) --* For QVBR: See the tooltip for Quality level

        - **MinIInterval** *(integer) --* Only meaningful if sceneChangeDetect is set to enabled.
        Defaults to 5 if multiplex rate control is used. Enforces separation between repeated
        (cadence) I-frames and I-frames inserted by Scene Change Detection. If a scene change
        I-frame is within I-interval frames of a cadence I-frame, the GOP is shrunk and/or stretched
        to the scene change I-frame. GOP stretch requires enabling lookahead as well as setting
        I-interval. The normal cadence resumes for the next GOP. Note: Maximum GOP stretch = GOP
        size + Min-I-interval - 1

        - **ParDenominator** *(integer) --* Pixel Aspect Ratio denominator.

        - **ParNumerator** *(integer) --* Pixel Aspect Ratio numerator.

        - **Profile** *(string) --* H.265 Profile.

        - **QvbrQualityLevel** *(integer) --* Controls the target quality for the video encode.
        Applies only when the rate control mode is QVBR. Set values for the QVBR quality level field
        and Max bitrate field that suit your most important viewing devices. Recommended values are:
        - Primary screen: Quality level: 8 to 10. Max bitrate: 4M - PC or tablet: Quality level: 7.
        Max bitrate: 1.5M to 3M - Smartphone: Quality level: 6. Max bitrate: 1M to 1.5M

        - **RateControlMode** *(string) --* Rate control mode. QVBR: Quality will match the
        specified quality level except when it is constrained by the maximum bitrate. Recommended if
        you or your viewers pay for bandwidth. CBR: Quality varies, depending on the video
        complexity. Recommended only if you distribute your assets to devices that cannot handle
        variable bitrates.

        - **ScanType** *(string) --* Sets the scan type of the output to progressive or
        top-field-first interlaced.

        - **SceneChangeDetect** *(string) --* Scene change detection.

        - **Slices** *(integer) --* Number of slices per picture. Must be less than or equal to the
        number of macroblock rows for progressive pictures, and less than or equal to half the
        number of macroblock rows for interlaced pictures. This field is optional; when no value is
        specified the encoder will choose the number of slices based on encode resolution.

        - **Tier** *(string) --* H.265 Tier.

        - **TimecodeInsertion** *(string) --* Determines how timecodes should be inserted into the
        video elementary stream. - 'disabled': Do not include timecodes - 'picTimingSei': Pass
        through picture timing SEI messages from the source specified in Timecode Config

    - **Height** *(integer) --* Output video height, in pixels. Must be an even number. For most
    codecs, you can leave this field and width blank in order to use the height and width
    (resolution) from the source. Note, however, that leaving blank is not recommended. For the
    Frame Capture codec, height and width are required.

    - **Name** *(string) --* The name of this VideoDescription. Outputs will use this name to
    uniquely identify this Description. Description names should be unique within this Live Event.

    - **RespondToAfd** *(string) --* Indicates how to respond to the AFD values in the input stream.
    RESPOND causes input video to be clipped, depending on the AFD value, input display aspect
    ratio, and output display aspect ratio, and (except for FRAMECAPTURE codec) includes the values
    in the output. PASSTHROUGH (does not apply to FRAMECAPTURE codec) ignores the AFD values and
    includes the values in the output, so input video is not clipped. NONE ignores the AFD values
    and does not include the values through to the output, so input video is not clipped.

    - **ScalingBehavior** *(string) --* STRETCHTOOUTPUT configures the output position to stretch
    the video to the specified output resolution (height and width). This option will override any
    position value. DEFAULT may insert black boxes (pillar boxes or letter boxes) around the video
    to provide the specified output resolution.

    - **Sharpness** *(integer) --* Changes the strength of the anti-alias filter used for scaling. 0
    is the softest setting, 100 is the sharpest. A setting of 50 is recommended for most content.

    - **Width** *(integer) --* Output video width, in pixels. Must be an even number. For most
    codecs, you can leave this field and height blank in order to use the height and width
    (resolution) from the source. Note, however, that leaving blank is not recommended. For the
    Frame Capture codec, height and width are required.
    """


_ClientCreateChannelResponseChannelEncoderSettingsTypeDef = TypedDict(
    "_ClientCreateChannelResponseChannelEncoderSettingsTypeDef",
    {
        "AudioDescriptions": List[
            ClientCreateChannelResponseChannelEncoderSettingsAudioDescriptionsTypeDef
        ],
        "AvailBlanking": ClientCreateChannelResponseChannelEncoderSettingsAvailBlankingTypeDef,
        "AvailConfiguration": ClientCreateChannelResponseChannelEncoderSettingsAvailConfigurationTypeDef,
        "BlackoutSlate": ClientCreateChannelResponseChannelEncoderSettingsBlackoutSlateTypeDef,
        "CaptionDescriptions": List[
            ClientCreateChannelResponseChannelEncoderSettingsCaptionDescriptionsTypeDef
        ],
        "GlobalConfiguration": ClientCreateChannelResponseChannelEncoderSettingsGlobalConfigurationTypeDef,
        "NielsenConfiguration": ClientCreateChannelResponseChannelEncoderSettingsNielsenConfigurationTypeDef,
        "OutputGroups": List[ClientCreateChannelResponseChannelEncoderSettingsOutputGroupsTypeDef],
        "TimecodeConfig": ClientCreateChannelResponseChannelEncoderSettingsTimecodeConfigTypeDef,
        "VideoDescriptions": List[
            ClientCreateChannelResponseChannelEncoderSettingsVideoDescriptionsTypeDef
        ],
    },
    total=False,
)


class ClientCreateChannelResponseChannelEncoderSettingsTypeDef(
    _ClientCreateChannelResponseChannelEncoderSettingsTypeDef
):
    """
    Type definition for `ClientCreateChannelResponseChannel` `EncoderSettings`

    - **AudioDescriptions** *(list) --* Placeholder documentation for __listOfAudioDescription

      - *(dict) --* Audio Description

        - **AudioNormalizationSettings** *(dict) --* Advanced audio normalization settings.

          - **Algorithm** *(string) --* Audio normalization algorithm to use. itu17701 conforms to
          the CALM Act specification, itu17702 conforms to the EBU R-128 specification.

          - **AlgorithmControl** *(string) --* When set to correctAudio the output audio is
          corrected using the chosen algorithm. If set to measureOnly, the audio will be measured
          but not adjusted.

          - **TargetLkfs** *(float) --* Target LKFS(loudness) to adjust volume to. If no value is
          entered, a default value will be used according to the chosen algorithm. The CALM Act
          (1770-1) recommends a target of -24 LKFS. The EBU R-128 specification (1770-2) recommends
          a target of -23 LKFS.

        - **AudioSelectorName** *(string) --* The name of the AudioSelector used as the source for
        this AudioDescription.

        - **AudioType** *(string) --* Applies only if audioTypeControl is useConfigured. The values
        for audioType are defined in ISO-IEC 13818-1.

        - **AudioTypeControl** *(string) --* Determines how audio type is determined. followInput:
        If the input contains an ISO 639 audioType, then that value is passed through to the output.
        If the input contains no ISO 639 audioType, the value in Audio Type is included in the
        output. useConfigured: The value in Audio Type is included in the output. Note that this
        field and audioType are both ignored if inputType is broadcasterMixedAd.

        - **CodecSettings** *(dict) --* Audio codec settings.

          - **AacSettings** *(dict) --* Aac Settings

            - **Bitrate** *(float) --* Average bitrate in bits/second. Valid values depend on rate
            control mode and profile.

            - **CodingMode** *(string) --* Mono, Stereo, or 5.1 channel layout. Valid values depend
            on rate control mode and profile. The adReceiverMix setting receives a stereo
            description plus control track and emits a mono AAC encode of the description track,
            with control data emitted in the PES header as per ETSI TS 101 154 Annex E.

            - **InputType** *(string) --* Set to "broadcasterMixedAd" when input contains pre-mixed
            main audio + AD (narration) as a stereo pair. The Audio Type field (audioType) will be
            set to 3, which signals to downstream systems that this stream contains "broadcaster
            mixed AD". Note that the input received by the encoder must contain pre-mixed audio; the
            encoder does not perform the mixing. The values in audioTypeControl and audioType (in
            AudioDescription) are ignored when set to broadcasterMixedAd. Leave set to "normal" when
            input does not contain pre-mixed audio + AD.

            - **Profile** *(string) --* AAC Profile.

            - **RateControlMode** *(string) --* Rate Control Mode.

            - **RawFormat** *(string) --* Sets LATM / LOAS AAC output for raw containers.

            - **SampleRate** *(float) --* Sample rate in Hz. Valid values depend on rate control
            mode and profile.

            - **Spec** *(string) --* Use MPEG-2 AAC audio instead of MPEG-4 AAC audio for raw or
            MPEG-2 Transport Stream containers.

            - **VbrQuality** *(string) --* VBR Quality Level - Only used if rateControlMode is VBR.

          - **Ac3Settings** *(dict) --* Ac3 Settings

            - **Bitrate** *(float) --* Average bitrate in bits/second. Valid bitrates depend on the
            coding mode.

            - **BitstreamMode** *(string) --* Specifies the bitstream mode (bsmod) for the emitted
            AC-3 stream. See ATSC A/52-2012 for background on these values.

            - **CodingMode** *(string) --* Dolby Digital coding mode. Determines number of channels.

            - **Dialnorm** *(integer) --* Sets the dialnorm for the output. If excluded and input
            audio is Dolby Digital, dialnorm will be passed through.

            - **DrcProfile** *(string) --* If set to filmStandard, adds dynamic range compression
            signaling to the output bitstream as defined in the Dolby Digital specification.

            - **LfeFilter** *(string) --* When set to enabled, applies a 120Hz lowpass filter to the
            LFE channel prior to encoding. Only valid in codingMode32Lfe mode.

            - **MetadataControl** *(string) --* When set to "followInput", encoder metadata will be
            sourced from the DD, DD+, or DolbyE decoder that supplied this audio data. If audio was
            not supplied from one of these streams, then the static metadata settings will be used.

          - **Eac3Settings** *(dict) --* Eac3 Settings

            - **AttenuationControl** *(string) --* When set to attenuate3Db, applies a 3 dB
            attenuation to the surround channels. Only used for 3/2 coding mode.

            - **Bitrate** *(float) --* Average bitrate in bits/second. Valid bitrates depend on the
            coding mode.

            - **BitstreamMode** *(string) --* Specifies the bitstream mode (bsmod) for the emitted
            E-AC-3 stream. See ATSC A/52-2012 (Annex E) for background on these values.

            - **CodingMode** *(string) --* Dolby Digital Plus coding mode. Determines number of
            channels.

            - **DcFilter** *(string) --* When set to enabled, activates a DC highpass filter for all
            input channels.

            - **Dialnorm** *(integer) --* Sets the dialnorm for the output. If blank and input audio
            is Dolby Digital Plus, dialnorm will be passed through.

            - **DrcLine** *(string) --* Sets the Dolby dynamic range compression profile.

            - **DrcRf** *(string) --* Sets the profile for heavy Dolby dynamic range compression,
            ensures that the instantaneous signal peaks do not exceed specified levels.

            - **LfeControl** *(string) --* When encoding 3/2 audio, setting to lfe enables the LFE
            channel

            - **LfeFilter** *(string) --* When set to enabled, applies a 120Hz lowpass filter to the
            LFE channel prior to encoding. Only valid with codingMode32 coding mode.

            - **LoRoCenterMixLevel** *(float) --* Left only/Right only center mix level. Only used
            for 3/2 coding mode.

            - **LoRoSurroundMixLevel** *(float) --* Left only/Right only surround mix level. Only
            used for 3/2 coding mode.

            - **LtRtCenterMixLevel** *(float) --* Left total/Right total center mix level. Only used
            for 3/2 coding mode.

            - **LtRtSurroundMixLevel** *(float) --* Left total/Right total surround mix level. Only
            used for 3/2 coding mode.

            - **MetadataControl** *(string) --* When set to followInput, encoder metadata will be
            sourced from the DD, DD+, or DolbyE decoder that supplied this audio data. If audio was
            not supplied from one of these streams, then the static metadata settings will be used.

            - **PassthroughControl** *(string) --* When set to whenPossible, input DD+ audio will be
            passed through if it is present on the input. This detection is dynamic over the life of
            the transcode. Inputs that alternate between DD+ and non-DD+ content will have a
            consistent DD+ output as the system alternates between passthrough and encoding.

            - **PhaseControl** *(string) --* When set to shift90Degrees, applies a 90-degree phase
            shift to the surround channels. Only used for 3/2 coding mode.

            - **StereoDownmix** *(string) --* Stereo downmix preference. Only used for 3/2 coding
            mode.

            - **SurroundExMode** *(string) --* When encoding 3/2 audio, sets whether an extra center
            back surround channel is matrix encoded into the left and right surround channels.

            - **SurroundMode** *(string) --* When encoding 2/0 audio, sets whether Dolby Surround is
            matrix encoded into the two channels.

          - **Mp2Settings** *(dict) --* Mp2 Settings

            - **Bitrate** *(float) --* Average bitrate in bits/second.

            - **CodingMode** *(string) --* The MPEG2 Audio coding mode. Valid values are
            codingMode10 (for mono) or codingMode20 (for stereo).

            - **SampleRate** *(float) --* Sample rate in Hz.

          - **PassThroughSettings** *(dict) --* Pass Through Settings

        - **LanguageCode** *(string) --* Indicates the language of the audio output track. Only used
        if languageControlMode is useConfigured, or there is no ISO 639 language code specified in
        the input.

        - **LanguageCodeControl** *(string) --* Choosing followInput will cause the ISO 639 language
        code of the output to follow the ISO 639 language code of the input. The languageCode will
        be used when useConfigured is set, or when followInput is selected but there is no ISO 639
        language code specified by the input.

        - **Name** *(string) --* The name of this AudioDescription. Outputs will use this name to
        uniquely identify this AudioDescription. Description names should be unique within this Live
        Event.

        - **RemixSettings** *(dict) --* Settings that control how input audio channels are remixed
        into the output audio channels.

          - **ChannelMappings** *(list) --* Mapping of input channels to output channels, with
          appropriate gain adjustments.

            - *(dict) --* Audio Channel Mapping

              - **InputChannelLevels** *(list) --* Indices and gain values for each input channel
              that should be remixed into this output channel.

                - *(dict) --* Input Channel Level

                  - **Gain** *(integer) --* Remixing value. Units are in dB and acceptable values
                  are within the range from -60 (mute) and 6 dB.

                  - **InputChannel** *(integer) --* The index of the input channel used as a source.

              - **OutputChannel** *(integer) --* The index of the output channel being produced.

          - **ChannelsIn** *(integer) --* Number of input channels to be used.

          - **ChannelsOut** *(integer) --* Number of output channels to be produced. Valid values:
          1, 2, 4, 6, 8

        - **StreamName** *(string) --* Used for MS Smooth and Apple HLS outputs. Indicates the name
        displayed by the player (eg. English, or Director Commentary).

    - **AvailBlanking** *(dict) --* Settings for ad avail blanking.

      - **AvailBlankingImage** *(dict) --* Blanking image to be used. Leave empty for solid black.
      Only bmp and png images are supported.

        - **PasswordParam** *(string) --* key used to extract the password from EC2 Parameter store

        - **Uri** *(string) --* Uniform Resource Identifier - This should be a path to a file
        accessible to the Live system (eg. a http:// URI) depending on the output type. For example,
        a RTMP destination should have a uri simliar to: "rtmp://fmsserver/live".

        - **Username** *(string) --* Documentation update needed

      - **State** *(string) --* When set to enabled, causes video, audio and captions to be blanked
      when insertion metadata is added.

    - **AvailConfiguration** *(dict) --* Event-wide configuration settings for ad avail insertion.

      - **AvailSettings** *(dict) --* Ad avail settings.

        - **Scte35SpliceInsert** *(dict) --* Scte35 Splice Insert

          - **AdAvailOffset** *(integer) --* When specified, this offset (in milliseconds) is added
          to the input Ad Avail PTS time. This only applies to embedded SCTE 104/35 messages and
          does not apply to OOB messages.

          - **NoRegionalBlackoutFlag** *(string) --* When set to ignore, Segment Descriptors with
          noRegionalBlackoutFlag set to 0 will no longer trigger blackouts or Ad Avail slates

          - **WebDeliveryAllowedFlag** *(string) --* When set to ignore, Segment Descriptors with
          webDeliveryAllowedFlag set to 0 will no longer trigger blackouts or Ad Avail slates

        - **Scte35TimeSignalApos** *(dict) --* Scte35 Time Signal Apos

          - **AdAvailOffset** *(integer) --* When specified, this offset (in milliseconds) is added
          to the input Ad Avail PTS time. This only applies to embedded SCTE 104/35 messages and
          does not apply to OOB messages.

          - **NoRegionalBlackoutFlag** *(string) --* When set to ignore, Segment Descriptors with
          noRegionalBlackoutFlag set to 0 will no longer trigger blackouts or Ad Avail slates

          - **WebDeliveryAllowedFlag** *(string) --* When set to ignore, Segment Descriptors with
          webDeliveryAllowedFlag set to 0 will no longer trigger blackouts or Ad Avail slates

    - **BlackoutSlate** *(dict) --* Settings for blackout slate.

      - **BlackoutSlateImage** *(dict) --* Blackout slate image to be used. Leave empty for solid
      black. Only bmp and png images are supported.

        - **PasswordParam** *(string) --* key used to extract the password from EC2 Parameter store

        - **Uri** *(string) --* Uniform Resource Identifier - This should be a path to a file
        accessible to the Live system (eg. a http:// URI) depending on the output type. For example,
        a RTMP destination should have a uri simliar to: "rtmp://fmsserver/live".

        - **Username** *(string) --* Documentation update needed

      - **NetworkEndBlackout** *(string) --* Setting to enabled causes the encoder to blackout the
      video, audio, and captions, and raise the "Network Blackout Image" slate when an SCTE104/35
      Network End Segmentation Descriptor is encountered. The blackout will be lifted when the
      Network Start Segmentation Descriptor is encountered. The Network End and Network Start
      descriptors must contain a network ID that matches the value entered in "Network ID".

      - **NetworkEndBlackoutImage** *(dict) --* Path to local file to use as Network End Blackout
      image. Image will be scaled to fill the entire output raster.

        - **PasswordParam** *(string) --* key used to extract the password from EC2 Parameter store

        - **Uri** *(string) --* Uniform Resource Identifier - This should be a path to a file
        accessible to the Live system (eg. a http:// URI) depending on the output type. For example,
        a RTMP destination should have a uri simliar to: "rtmp://fmsserver/live".

        - **Username** *(string) --* Documentation update needed

      - **NetworkId** *(string) --* Provides Network ID that matches EIDR ID format (e.g.,
      "10.XXXX/XXXX-XXXX-XXXX-XXXX-XXXX-C").

      - **State** *(string) --* When set to enabled, causes video, audio and captions to be blanked
      when indicated by program metadata.

    - **CaptionDescriptions** *(list) --* Settings for caption decriptions

      - *(dict) --* Caption Description

        - **CaptionSelectorName** *(string) --* Specifies which input caption selector to use as a
        caption source when generating output captions. This field should match a captionSelector
        name.

        - **DestinationSettings** *(dict) --* Additional settings for captions destination that
        depend on the destination type.

          - **AribDestinationSettings** *(dict) --* Arib Destination Settings

          - **BurnInDestinationSettings** *(dict) --* Burn In Destination Settings

            - **Alignment** *(string) --* If no explicit xPosition or yPosition is provided, setting
            alignment to centered will place the captions at the bottom center of the output.
            Similarly, setting a left alignment will align captions to the bottom left of the
            output. If x and y positions are given in conjunction with the alignment parameter, the
            font will be justified (either left or centered) relative to those coordinates.
            Selecting "smart" justification will left-justify live subtitles and center-justify
            pre-recorded subtitles. All burn-in and DVB-Sub font settings must match.

            - **BackgroundColor** *(string) --* Specifies the color of the rectangle behind the
            captions. All burn-in and DVB-Sub font settings must match.

            - **BackgroundOpacity** *(integer) --* Specifies the opacity of the background
            rectangle. 255 is opaque; 0 is transparent. Leaving this parameter out is equivalent to
            setting it to 0 (transparent). All burn-in and DVB-Sub font settings must match.

            - **Font** *(dict) --* External font file used for caption burn-in. File extension must
            be 'ttf' or 'tte'. Although the user can select output fonts for many different types of
            input captions, embedded, STL and teletext sources use a strict grid system. Using
            external fonts with these caption sources could cause unexpected display of proportional
            fonts. All burn-in and DVB-Sub font settings must match.

              - **PasswordParam** *(string) --* key used to extract the password from EC2 Parameter
              store

              - **Uri** *(string) --* Uniform Resource Identifier - This should be a path to a file
              accessible to the Live system (eg. a http:// URI) depending on the output type. For
              example, a RTMP destination should have a uri simliar to: "rtmp://fmsserver/live".

              - **Username** *(string) --* Documentation update needed

            - **FontColor** *(string) --* Specifies the color of the burned-in captions. This option
            is not valid for source captions that are STL, 608/embedded or teletext. These source
            settings are already pre-defined by the caption stream. All burn-in and DVB-Sub font
            settings must match.

            - **FontOpacity** *(integer) --* Specifies the opacity of the burned-in captions. 255 is
            opaque; 0 is transparent. All burn-in and DVB-Sub font settings must match.

            - **FontResolution** *(integer) --* Font resolution in DPI (dots per inch); default is
            96 dpi. All burn-in and DVB-Sub font settings must match.

            - **FontSize** *(string) --* When set to 'auto' fontSize will scale depending on the
            size of the output. Giving a positive integer will specify the exact font size in
            points. All burn-in and DVB-Sub font settings must match.

            - **OutlineColor** *(string) --* Specifies font outline color. This option is not valid
            for source captions that are either 608/embedded or teletext. These source settings are
            already pre-defined by the caption stream. All burn-in and DVB-Sub font settings must
            match.

            - **OutlineSize** *(integer) --* Specifies font outline size in pixels. This option is
            not valid for source captions that are either 608/embedded or teletext. These source
            settings are already pre-defined by the caption stream. All burn-in and DVB-Sub font
            settings must match.

            - **ShadowColor** *(string) --* Specifies the color of the shadow cast by the captions.
            All burn-in and DVB-Sub font settings must match.

            - **ShadowOpacity** *(integer) --* Specifies the opacity of the shadow. 255 is opaque; 0
            is transparent. Leaving this parameter out is equivalent to setting it to 0
            (transparent). All burn-in and DVB-Sub font settings must match.

            - **ShadowXOffset** *(integer) --* Specifies the horizontal offset of the shadow
            relative to the captions in pixels. A value of -2 would result in a shadow offset 2
            pixels to the left. All burn-in and DVB-Sub font settings must match.

            - **ShadowYOffset** *(integer) --* Specifies the vertical offset of the shadow relative
            to the captions in pixels. A value of -2 would result in a shadow offset 2 pixels above
            the text. All burn-in and DVB-Sub font settings must match.

            - **TeletextGridControl** *(string) --* Controls whether a fixed grid size will be used
            to generate the output subtitles bitmap. Only applicable for Teletext inputs and
            DVB-Sub/Burn-in outputs.

            - **XPosition** *(integer) --* Specifies the horizontal position of the caption relative
            to the left side of the output in pixels. A value of 10 would result in the captions
            starting 10 pixels from the left of the output. If no explicit xPosition is provided,
            the horizontal caption position will be determined by the alignment parameter. All
            burn-in and DVB-Sub font settings must match.

            - **YPosition** *(integer) --* Specifies the vertical position of the caption relative
            to the top of the output in pixels. A value of 10 would result in the captions starting
            10 pixels from the top of the output. If no explicit yPosition is provided, the caption
            will be positioned towards the bottom of the output. All burn-in and DVB-Sub font
            settings must match.

          - **DvbSubDestinationSettings** *(dict) --* Dvb Sub Destination Settings

            - **Alignment** *(string) --* If no explicit xPosition or yPosition is provided, setting
            alignment to centered will place the captions at the bottom center of the output.
            Similarly, setting a left alignment will align captions to the bottom left of the
            output. If x and y positions are given in conjunction with the alignment parameter, the
            font will be justified (either left or centered) relative to those coordinates.
            Selecting "smart" justification will left-justify live subtitles and center-justify
            pre-recorded subtitles. This option is not valid for source captions that are STL or
            608/embedded. These source settings are already pre-defined by the caption stream. All
            burn-in and DVB-Sub font settings must match.

            - **BackgroundColor** *(string) --* Specifies the color of the rectangle behind the
            captions. All burn-in and DVB-Sub font settings must match.

            - **BackgroundOpacity** *(integer) --* Specifies the opacity of the background
            rectangle. 255 is opaque; 0 is transparent. Leaving this parameter blank is equivalent
            to setting it to 0 (transparent). All burn-in and DVB-Sub font settings must match.

            - **Font** *(dict) --* External font file used for caption burn-in. File extension must
            be 'ttf' or 'tte'. Although the user can select output fonts for many different types of
            input captions, embedded, STL and teletext sources use a strict grid system. Using
            external fonts with these caption sources could cause unexpected display of proportional
            fonts. All burn-in and DVB-Sub font settings must match.

              - **PasswordParam** *(string) --* key used to extract the password from EC2 Parameter
              store

              - **Uri** *(string) --* Uniform Resource Identifier - This should be a path to a file
              accessible to the Live system (eg. a http:// URI) depending on the output type. For
              example, a RTMP destination should have a uri simliar to: "rtmp://fmsserver/live".

              - **Username** *(string) --* Documentation update needed

            - **FontColor** *(string) --* Specifies the color of the burned-in captions. This option
            is not valid for source captions that are STL, 608/embedded or teletext. These source
            settings are already pre-defined by the caption stream. All burn-in and DVB-Sub font
            settings must match.

            - **FontOpacity** *(integer) --* Specifies the opacity of the burned-in captions. 255 is
            opaque; 0 is transparent. All burn-in and DVB-Sub font settings must match.

            - **FontResolution** *(integer) --* Font resolution in DPI (dots per inch); default is
            96 dpi. All burn-in and DVB-Sub font settings must match.

            - **FontSize** *(string) --* When set to auto fontSize will scale depending on the size
            of the output. Giving a positive integer will specify the exact font size in points. All
            burn-in and DVB-Sub font settings must match.

            - **OutlineColor** *(string) --* Specifies font outline color. This option is not valid
            for source captions that are either 608/embedded or teletext. These source settings are
            already pre-defined by the caption stream. All burn-in and DVB-Sub font settings must
            match.

            - **OutlineSize** *(integer) --* Specifies font outline size in pixels. This option is
            not valid for source captions that are either 608/embedded or teletext. These source
            settings are already pre-defined by the caption stream. All burn-in and DVB-Sub font
            settings must match.

            - **ShadowColor** *(string) --* Specifies the color of the shadow cast by the captions.
            All burn-in and DVB-Sub font settings must match.

            - **ShadowOpacity** *(integer) --* Specifies the opacity of the shadow. 255 is opaque; 0
            is transparent. Leaving this parameter blank is equivalent to setting it to 0
            (transparent). All burn-in and DVB-Sub font settings must match.

            - **ShadowXOffset** *(integer) --* Specifies the horizontal offset of the shadow
            relative to the captions in pixels. A value of -2 would result in a shadow offset 2
            pixels to the left. All burn-in and DVB-Sub font settings must match.

            - **ShadowYOffset** *(integer) --* Specifies the vertical offset of the shadow relative
            to the captions in pixels. A value of -2 would result in a shadow offset 2 pixels above
            the text. All burn-in and DVB-Sub font settings must match.

            - **TeletextGridControl** *(string) --* Controls whether a fixed grid size will be used
            to generate the output subtitles bitmap. Only applicable for Teletext inputs and
            DVB-Sub/Burn-in outputs.

            - **XPosition** *(integer) --* Specifies the horizontal position of the caption relative
            to the left side of the output in pixels. A value of 10 would result in the captions
            starting 10 pixels from the left of the output. If no explicit xPosition is provided,
            the horizontal caption position will be determined by the alignment parameter. This
            option is not valid for source captions that are STL, 608/embedded or teletext. These
            source settings are already pre-defined by the caption stream. All burn-in and DVB-Sub
            font settings must match.

            - **YPosition** *(integer) --* Specifies the vertical position of the caption relative
            to the top of the output in pixels. A value of 10 would result in the captions starting
            10 pixels from the top of the output. If no explicit yPosition is provided, the caption
            will be positioned towards the bottom of the output. This option is not valid for source
            captions that are STL, 608/embedded or teletext. These source settings are already
            pre-defined by the caption stream. All burn-in and DVB-Sub font settings must match.

          - **EmbeddedDestinationSettings** *(dict) --* Embedded Destination Settings

          - **EmbeddedPlusScte20DestinationSettings** *(dict) --* Embedded Plus Scte20 Destination
          Settings

          - **RtmpCaptionInfoDestinationSettings** *(dict) --* Rtmp Caption Info Destination
          Settings

          - **Scte20PlusEmbeddedDestinationSettings** *(dict) --* Scte20 Plus Embedded Destination
          Settings

          - **Scte27DestinationSettings** *(dict) --* Scte27 Destination Settings

          - **SmpteTtDestinationSettings** *(dict) --* Smpte Tt Destination Settings

          - **TeletextDestinationSettings** *(dict) --* Teletext Destination Settings

          - **TtmlDestinationSettings** *(dict) --* Ttml Destination Settings

            - **StyleControl** *(string) --* When set to passthrough, passes through style and
            position information from a TTML-like input source (TTML, SMPTE-TT, CFF-TT) to the
            CFF-TT output or TTML output.

          - **WebvttDestinationSettings** *(dict) --* Webvtt Destination Settings

        - **LanguageCode** *(string) --* ISO 639-2 three-digit code:
        http://www.loc.gov/standards/iso639-2/

        - **LanguageDescription** *(string) --* Human readable information to indicate captions
        available for players (eg. English, or Spanish).

        - **Name** *(string) --* Name of the caption description. Used to associate a caption
        description with an output. Names must be unique within an event.

    - **GlobalConfiguration** *(dict) --* Configuration settings that apply to the event as a whole.

      - **InitialAudioGain** *(integer) --* Value to set the initial audio gain for the Live Event.

      - **InputEndAction** *(string) --* Indicates the action to take when the current input
      completes (e.g. end-of-file). When switchAndLoopInputs is configured the encoder will restart
      at the beginning of the first input. When "none" is configured the encoder will transcode
      either black, a solid color, or a user specified slate images per the "Input Loss Behavior"
      configuration until the next input switch occurs (which is controlled through the Channel
      Schedule API).

      - **InputLossBehavior** *(dict) --* Settings for system actions when input is lost.

        - **BlackFrameMsec** *(integer) --* Documentation update needed

        - **InputLossImageColor** *(string) --* When input loss image type is "color" this field
        specifies the color to use. Value: 6 hex characters representing the values of RGB.

        - **InputLossImageSlate** *(dict) --* When input loss image type is "slate" these fields
        specify the parameters for accessing the slate.

          - **PasswordParam** *(string) --* key used to extract the password from EC2 Parameter
          store

          - **Uri** *(string) --* Uniform Resource Identifier - This should be a path to a file
          accessible to the Live system (eg. a http:// URI) depending on the output type. For
          example, a RTMP destination should have a uri simliar to: "rtmp://fmsserver/live".

          - **Username** *(string) --* Documentation update needed

        - **InputLossImageType** *(string) --* Indicates whether to substitute a solid color or a
        slate into the output after input loss exceeds blackFrameMsec.

        - **RepeatFrameMsec** *(integer) --* Documentation update needed

      - **OutputLockingMode** *(string) --* Indicates how MediaLive pipelines are synchronized.
      PIPELINELOCKING - MediaLive will attempt to synchronize the output of each pipeline to the
      other. EPOCHLOCKING - MediaLive will attempt to synchronize the output of each pipeline to the
      Unix epoch.

      - **OutputTimingSource** *(string) --* Indicates whether the rate of frames emitted by the
      Live encoder should be paced by its system clock (which optionally may be locked to another
      source via NTP) or should be locked to the clock of the source that is providing the input
      stream.

      - **SupportLowFramerateInputs** *(string) --* Adjusts video input buffer for streams with very
      low video framerates. This is commonly set to enabled for music channels with less than one
      video frame per second.

    - **NielsenConfiguration** *(dict) --* Nielsen configuration settings.

      - **DistributorId** *(string) --* Enter the Distributor ID assigned to your organization by
      Nielsen.

      - **NielsenPcmToId3Tagging** *(string) --* Enables Nielsen PCM to ID3 tagging

    - **OutputGroups** *(list) --* Placeholder documentation for __listOfOutputGroup

      - *(dict) --* Output groups for this Live Event. Output groups contain information about where
      streams should be distributed.

        - **Name** *(string) --* Custom output group name optionally defined by the user. Only
        letters, numbers, and the underscore character allowed; only 32 characters allowed.

        - **OutputGroupSettings** *(dict) --* Settings associated with the output group.

          - **ArchiveGroupSettings** *(dict) --* Archive Group Settings

            - **Destination** *(dict) --* A directory and base filename where archive files should
            be written.

              - **DestinationRefId** *(string) --* Placeholder documentation for __string

            - **RolloverInterval** *(integer) --* Number of seconds to write to archive file before
            closing and starting a new one.

          - **FrameCaptureGroupSettings** *(dict) --* Frame Capture Group Settings

            - **Destination** *(dict) --* The destination for the frame capture files. Either the
            URI for an Amazon S3 bucket and object, plus a file name prefix (for example,
            s3ssl://sportsDelivery/highlights/20180820/curling_) or the URI for a MediaStore
            container, plus a file name prefix (for example,
            mediastoressl://sportsDelivery/20180820/curling_). The final file names consist of the
            prefix from the destination field (for example, "curling_") + name modifier + the
            counter (5 digits, starting from 00001) + extension (which is always .jpg). For example,
            curlingLow.00001.jpg

              - **DestinationRefId** *(string) --* Placeholder documentation for __string

          - **HlsGroupSettings** *(dict) --* Hls Group Settings

            - **AdMarkers** *(list) --* Choose one or more ad marker types to pass SCTE35 signals
            through to this group of Apple HLS outputs.

              - *(string) --* Hls Ad Markers

            - **BaseUrlContent** *(string) --* A partial URI prefix that will be prepended to each
            output in the media .m3u8 file. Can be used if base manifest is delivered from a
            different URL than the main .m3u8 file.

            - **BaseUrlManifest** *(string) --* A partial URI prefix that will be prepended to each
            output in the media .m3u8 file. Can be used if base manifest is delivered from a
            different URL than the main .m3u8 file.

            - **CaptionLanguageMappings** *(list) --* Mapping of up to 4 caption channels to caption
            languages. Is only meaningful if captionLanguageSetting is set to "insert".

              - *(dict) --* Maps a caption channel to an ISO 693-2 language code
              (http://www.loc.gov/standards/iso639-2), with an optional description.

                - **CaptionChannel** *(integer) --* The closed caption channel being described by
                this CaptionLanguageMapping. Each channel mapping must have a unique channel number
                (maximum of 4)

                - **LanguageCode** *(string) --* Three character ISO 639-2 language code (see
                http://www.loc.gov/standards/iso639-2)

                - **LanguageDescription** *(string) --* Textual description of language

            - **CaptionLanguageSetting** *(string) --* Applies only to 608 Embedded output captions.
            insert: Include CLOSED-CAPTIONS lines in the manifest. Specify at least one language in
            the CC1 Language Code field. One CLOSED-CAPTION line is added for each Language Code you
            specify. Make sure to specify the languages in the order in which they appear in the
            original source (if the source is embedded format) or the order of the caption selectors
            (if the source is other than embedded). Otherwise, languages in the manifest will not
            match up properly with the output captions. none: Include CLOSED-CAPTIONS=
                NONE line in
            the manifest. omit: Omit any CLOSED-CAPTIONS line from the manifest.

            - **ClientCache** *(string) --* When set to "disabled", sets the #EXT-X-ALLOW-CACHE:no
            tag in the manifest, which prevents clients from saving media segments for later replay.

            - **CodecSpecification** *(string) --* Specification to use (RFC-6381 or the default
            RFC-4281) during m3u8 playlist generation.

            - **ConstantIv** *(string) --* For use with encryptionType. This is a 128-bit, 16-byte
            hex value represented by a 32-character text string. If ivSource is set to "explicit"
            then this parameter is required and is used as the IV for encryption.

            - **Destination** *(dict) --* A directory or HTTP destination for the HLS segments,
            manifest files, and encryption keys (if enabled).

              - **DestinationRefId** *(string) --* Placeholder documentation for __string

            - **DirectoryStructure** *(string) --* Place segments in subdirectories.

            - **EncryptionType** *(string) --* Encrypts the segments with the given encryption
            scheme. Exclude this parameter if no encryption is desired.

            - **HlsCdnSettings** *(dict) --* Parameters that control interactions with the CDN.

              - **HlsAkamaiSettings** *(dict) --* Hls Akamai Settings

                - **ConnectionRetryInterval** *(integer) --* Number of seconds to wait before
                retrying connection to the CDN if the connection is lost.

                - **FilecacheDuration** *(integer) --* Size in seconds of file cache for streaming
                outputs.

                - **HttpTransferMode** *(string) --* Specify whether or not to use chunked transfer
                encoding to Akamai. User should contact Akamai to enable this feature.

                - **NumRetries** *(integer) --* Number of retry attempts that will be made before
                the Live Event is put into an error state.

                - **RestartDelay** *(integer) --* If a streaming output fails, number of seconds to
                wait until a restart is initiated. A value of 0 means never restart.

                - **Salt** *(string) --* Salt for authenticated Akamai.

                - **Token** *(string) --* Token parameter for authenticated akamai. If not
                specified, _gda_ is used.

              - **HlsBasicPutSettings** *(dict) --* Hls Basic Put Settings

                - **ConnectionRetryInterval** *(integer) --* Number of seconds to wait before
                retrying connection to the CDN if the connection is lost.

                - **FilecacheDuration** *(integer) --* Size in seconds of file cache for streaming
                outputs.

                - **NumRetries** *(integer) --* Number of retry attempts that will be made before
                the Live Event is put into an error state.

                - **RestartDelay** *(integer) --* If a streaming output fails, number of seconds to
                wait until a restart is initiated. A value of 0 means never restart.

              - **HlsMediaStoreSettings** *(dict) --* Hls Media Store Settings

                - **ConnectionRetryInterval** *(integer) --* Number of seconds to wait before
                retrying connection to the CDN if the connection is lost.

                - **FilecacheDuration** *(integer) --* Size in seconds of file cache for streaming
                outputs.

                - **MediaStoreStorageClass** *(string) --* When set to temporal, output files are
                stored in non-persistent memory for faster reading and writing.

                - **NumRetries** *(integer) --* Number of retry attempts that will be made before
                the Live Event is put into an error state.

                - **RestartDelay** *(integer) --* If a streaming output fails, number of seconds to
                wait until a restart is initiated. A value of 0 means never restart.

              - **HlsWebdavSettings** *(dict) --* Hls Webdav Settings

                - **ConnectionRetryInterval** *(integer) --* Number of seconds to wait before
                retrying connection to the CDN if the connection is lost.

                - **FilecacheDuration** *(integer) --* Size in seconds of file cache for streaming
                outputs.

                - **HttpTransferMode** *(string) --* Specify whether or not to use chunked transfer
                encoding to WebDAV.

                - **NumRetries** *(integer) --* Number of retry attempts that will be made before
                the Live Event is put into an error state.

                - **RestartDelay** *(integer) --* If a streaming output fails, number of seconds to
                wait until a restart is initiated. A value of 0 means never restart.

            - **IFrameOnlyPlaylists** *(string) --* DISABLED: Do not create an I-frame-only
            manifest, but do create the master and media manifests (according to the Output
            Selection field). STANDARD: Create an I-frame-only manifest for each output that
            contains video, as well as the other manifests (according to the Output Selection
            field). The I-frame manifest contains a #EXT-X-I-FRAMES-ONLY tag to indicate it is
            I-frame only, and one or more #EXT-X-BYTERANGE entries identifying the I-frame position.
            For example, #EXT-X-BYTERANGE:160364@1461888"

            - **IndexNSegments** *(integer) --* Applies only if Mode field is LIVE. Specifies the
            maximum number of segments in the media manifest file. After this maximum, older
            segments are removed from the media manifest. This number must be less than or equal to
            the Keep Segments field.

            - **InputLossAction** *(string) --* Parameter that control output group behavior on
            input loss.

            - **IvInManifest** *(string) --* For use with encryptionType. The IV (Initialization
            Vector) is a 128-bit number used in conjunction with the key for encrypting blocks. If
            set to "include", IV is listed in the manifest, otherwise the IV is not in the manifest.

            - **IvSource** *(string) --* For use with encryptionType. The IV (Initialization Vector)
            is a 128-bit number used in conjunction with the key for encrypting blocks. If this
            setting is "followsSegmentNumber", it will cause the IV to change every segment (to
            match the segment number). If this is set to "explicit", you must enter a constantIv
            value.

            - **KeepSegments** *(integer) --* Applies only if Mode field is LIVE. Specifies the
            number of media segments (.ts files) to retain in the destination directory.

            - **KeyFormat** *(string) --* The value specifies how the key is represented in the
            resource identified by the URI. If parameter is absent, an implicit value of "identity"
            is used. A reverse DNS string can also be given.

            - **KeyFormatVersions** *(string) --* Either a single positive integer version value or
            a slash delimited list of version values (1/2/3).

            - **KeyProviderSettings** *(dict) --* The key provider settings.

              - **StaticKeySettings** *(dict) --* Static Key Settings

                - **KeyProviderServer** *(dict) --* The URL of the license server used for
                protecting content.

                  - **PasswordParam** *(string) --* key used to extract the password from EC2
                  Parameter store

                  - **Uri** *(string) --* Uniform Resource Identifier - This should be a path to a
                  file accessible to the Live system (eg. a http:// URI) depending on the output
                  type. For example, a RTMP destination should have a uri simliar to:
                  "rtmp://fmsserver/live".

                  - **Username** *(string) --* Documentation update needed

                - **StaticKeyValue** *(string) --* Static key value as a 32 character hexadecimal
                string.

            - **ManifestCompression** *(string) --* When set to gzip, compresses HLS playlist.

            - **ManifestDurationFormat** *(string) --* Indicates whether the output manifest should
            use floating point or integer values for segment duration.

            - **MinSegmentLength** *(integer) --* When set, minimumSegmentLength is enforced by
            looking ahead and back within the specified range for a nearby avail and extending the
            segment size if needed.

            - **Mode** *(string) --* If "vod", all segments are indexed and kept permanently in the
            destination and manifest. If "live", only the number segments specified in keepSegments
            and indexNSegments are kept; newer segments replace older segments, which may prevent
            players from rewinding all the way to the beginning of the event. VOD mode uses HLS
            EXT-X-PLAYLIST-TYPE of EVENT while the channel is running, converting it to a "VOD" type
            manifest on completion of the stream.

            - **OutputSelection** *(string) --* MANIFESTSANDSEGMENTS: Generates manifests (master
            manifest, if applicable, and media manifests) for this output group. SEGMENTSONLY: Does
            not generate any manifests for this output group.

            - **ProgramDateTime** *(string) --* Includes or excludes EXT-X-PROGRAM-DATE-TIME tag in
            .m3u8 manifest files. The value is calculated as follows: either the program date and
            time are initialized using the input timecode source, or the time is initialized using
            the input timecode source and the date is initialized using the timestampOffset.

            - **ProgramDateTimePeriod** *(integer) --* Period of insertion of
            EXT-X-PROGRAM-DATE-TIME entry, in seconds.

            - **RedundantManifest** *(string) --* ENABLED: The master manifest (.m3u8 file) for each
            pipeline includes information about both pipelines: first its own media files, then the
            media files of the other pipeline. This feature allows playout device that support stale
            manifest detection to switch from one manifest to the other, when the current manifest
            seems to be stale. There are still two destinations and two master manifests, but both
            master manifests reference the media files from both pipelines. DISABLED: The master
            manifest (.m3u8 file) for each pipeline includes information about its own pipeline
            only. For an HLS output group with MediaPackage as the destination, the DISABLED
            behavior is always followed. MediaPackage regenerates the manifests it serves to players
            so a redundant manifest from MediaLive is irrelevant.

            - **SegmentLength** *(integer) --* Length of MPEG-2 Transport Stream segments to create
            (in seconds). Note that segments will end on the next keyframe after this number of
            seconds, so actual segment length may be longer.

            - **SegmentationMode** *(string) --* useInputSegmentation has been deprecated. The
            configured segment size is always used.

            - **SegmentsPerSubdirectory** *(integer) --* Number of segments to write to a
            subdirectory before starting a new one. directoryStructure must be subdirectoryPerStream
            for this setting to have an effect.

            - **StreamInfResolution** *(string) --* Include or exclude RESOLUTION attribute for
            video in EXT-X-STREAM-INF tag of variant manifest.

            - **TimedMetadataId3Frame** *(string) --* Indicates ID3 frame that has the timecode.

            - **TimedMetadataId3Period** *(integer) --* Timed Metadata interval in seconds.

            - **TimestampDeltaMilliseconds** *(integer) --* Provides an extra millisecond delta
            offset to fine tune the timestamps.

            - **TsFileMode** *(string) --* SEGMENTEDFILES: Emit the program as segments - multiple
            .ts media files. SINGLEFILE: Applies only if Mode field is VOD. Emit the program as a
            single .ts media file. The media manifest includes #EXT-X-BYTERANGE tags to index
            segments for playback. A typical use for this value is when sending the output to AWS
            Elemental MediaConvert, which can accept only a single media file. Playback while the
            channel is running is not guaranteed due to HTTP server caching.

          - **MediaPackageGroupSettings** *(dict) --* Media Package Group Settings

            - **Destination** *(dict) --* MediaPackage channel destination.

              - **DestinationRefId** *(string) --* Placeholder documentation for __string

          - **MsSmoothGroupSettings** *(dict) --* Ms Smooth Group Settings

            - **AcquisitionPointId** *(string) --* The value of the "Acquisition Point Identity"
            element used in each message placed in the sparse track. Only enabled if sparseTrackType
            is not "none".

            - **AudioOnlyTimecodeControl** *(string) --* If set to passthrough for an audio-only MS
            Smooth output, the fragment absolute time will be set to the current timecode. This
            option does not write timecodes to the audio elementary stream.

            - **CertificateMode** *(string) --* If set to verifyAuthenticity, verify the https
            certificate chain to a trusted Certificate Authority (CA). This will cause https outputs
            to self-signed certificates to fail.

            - **ConnectionRetryInterval** *(integer) --* Number of seconds to wait before retrying
            connection to the IIS server if the connection is lost. Content will be cached during
            this time and the cache will be be delivered to the IIS server once the connection is
            re-established.

            - **Destination** *(dict) --* Smooth Streaming publish point on an IIS server. Elemental
            Live acts as a "Push" encoder to IIS.

              - **DestinationRefId** *(string) --* Placeholder documentation for __string

            - **EventId** *(string) --* MS Smooth event ID to be sent to the IIS server. Should only
            be specified if eventIdMode is set to useConfigured.

            - **EventIdMode** *(string) --* Specifies whether or not to send an event ID to the IIS
            server. If no event ID is sent and the same Live Event is used without changing the
            publishing point, clients might see cached video from the previous run. Options: -
            "useConfigured" - use the value provided in eventId - "useTimestamp" - generate and send
            an event ID based on the current timestamp - "noEventId" - do not send an event ID to
            the IIS server.

            - **EventStopBehavior** *(string) --* When set to sendEos, send EOS signal to IIS server
            when stopping the event

            - **FilecacheDuration** *(integer) --* Size in seconds of file cache for streaming
            outputs.

            - **FragmentLength** *(integer) --* Length of mp4 fragments to generate (in seconds).
            Fragment length must be compatible with GOP size and framerate.

            - **InputLossAction** *(string) --* Parameter that control output group behavior on
            input loss.

            - **NumRetries** *(integer) --* Number of retry attempts.

            - **RestartDelay** *(integer) --* Number of seconds before initiating a restart due to
            output failure, due to exhausting the numRetries on one segment, or exceeding
            filecacheDuration.

            - **SegmentationMode** *(string) --* useInputSegmentation has been deprecated. The
            configured segment size is always used.

            - **SendDelayMs** *(integer) --* Number of milliseconds to delay the output from the
            second pipeline.

            - **SparseTrackType** *(string) --* If set to scte35, use incoming SCTE-35 messages to
            generate a sparse track in this group of MS-Smooth outputs.

            - **StreamManifestBehavior** *(string) --* When set to send, send stream manifest so
            publishing point doesn't start until all streams start.

            - **TimestampOffset** *(string) --* Timestamp offset for the event. Only used if
            timestampOffsetMode is set to useConfiguredOffset.

            - **TimestampOffsetMode** *(string) --* Type of timestamp date offset to use. -
            useEventStartDate: Use the date the event was started as the offset -
            useConfiguredOffset: Use an explicitly configured date as the offset

          - **MultiplexGroupSettings** *(dict) --* Multiplex Group Settings

          - **RtmpGroupSettings** *(dict) --* Rtmp Group Settings

            - **AuthenticationScheme** *(string) --* Authentication scheme to use when connecting
            with CDN

            - **CacheFullBehavior** *(string) --* Controls behavior when content cache fills up. If
            remote origin server stalls the RTMP connection and does not accept content fast enough
            the 'Media Cache' will fill up. When the cache reaches the duration specified by
            cacheLength the cache will stop accepting new content. If set to disconnectImmediately,
            the RTMP output will force a disconnect. Clear the media cache, and reconnect after
            restartDelay seconds. If set to waitForServer, the RTMP output will wait up to 5 minutes
            to allow the origin server to begin accepting data again.

            - **CacheLength** *(integer) --* Cache length, in seconds, is used to calculate buffer
            size.

            - **CaptionData** *(string) --* Controls the types of data that passes to onCaptionInfo
            outputs. If set to 'all' then 608 and 708 carried DTVCC data will be passed. If set to
            'field1AndField2608' then DTVCC data will be stripped out, but 608 data from both fields
            will be passed. If set to 'field1608' then only the data carried in 608 from field 1
            video will be passed.

            - **InputLossAction** *(string) --* Controls the behavior of this RTMP group if input
            becomes unavailable. - emitOutput: Emit a slate until input returns. - pauseOutput: Stop
            transmitting data until input returns. This does not close the underlying RTMP
            connection.

            - **RestartDelay** *(integer) --* If a streaming output fails, number of seconds to wait
            until a restart is initiated. A value of 0 means never restart.

          - **UdpGroupSettings** *(dict) --* Udp Group Settings

            - **InputLossAction** *(string) --* Specifies behavior of last resort when input video
            is lost, and no more backup inputs are available. When dropTs is selected the entire
            transport stream will stop being emitted. When dropProgram is selected the program can
            be dropped from the transport stream (and replaced with null packets to meet the TS
            bitrate requirement). Or, when emitProgram is chosen the transport stream will continue
            to be produced normally with repeat frames, black frames, or slate frames substituted
            for the absent input video.

            - **TimedMetadataId3Frame** *(string) --* Indicates ID3 frame that has the timecode.

            - **TimedMetadataId3Period** *(integer) --* Timed Metadata interval in seconds.

        - **Outputs** *(list) --* Placeholder documentation for __listOfOutput

          - *(dict) --* Output settings. There can be multiple outputs within a group.

            - **AudioDescriptionNames** *(list) --* The names of the AudioDescriptions used as audio
            sources for this output.

              - *(string) --* Placeholder documentation for __string

            - **CaptionDescriptionNames** *(list) --* The names of the CaptionDescriptions used as
            caption sources for this output.

              - *(string) --* Placeholder documentation for __string

            - **OutputName** *(string) --* The name used to identify an output.

            - **OutputSettings** *(dict) --* Output type-specific settings.

              - **ArchiveOutputSettings** *(dict) --* Archive Output Settings

                - **ContainerSettings** *(dict) --* Settings specific to the container type of the
                file.

                  - **M2tsSettings** *(dict) --* M2ts Settings

                    - **AbsentInputAudioBehavior** *(string) --* When set to drop, output audio
                    streams will be removed from the program if the selected input audio stream is
                    removed from the input. This allows the output audio configuration to
                    dynamically change based on input configuration. If this is set to
                    encodeSilence, all output audio streams will output encoded silence when not
                    connected to an active input stream.

                    - **Arib** *(string) --* When set to enabled, uses ARIB-compliant field muxing
                    and removes video descriptor.

                    - **AribCaptionsPid** *(string) --* Packet Identifier (PID) for ARIB Captions in
                    the transport stream. Can be entered as a decimal or hexadecimal value. Valid
                    values are 32 (or 0x20)..8182 (or 0x1ff6).

                    - **AribCaptionsPidControl** *(string) --* If set to auto, pid number used for
                    ARIB Captions will be auto-selected from unused pids. If set to useConfigured,
                    ARIB Captions will be on the configured pid number.

                    - **AudioBufferModel** *(string) --* When set to dvb, uses DVB buffer model for
                    Dolby Digital audio. When set to atsc, the ATSC model is used.

                    - **AudioFramesPerPes** *(integer) --* The number of audio frames to insert for
                    each PES packet.

                    - **AudioPids** *(string) --* Packet Identifier (PID) of the elementary audio
                    stream(s) in the transport stream. Multiple values are accepted, and can be
                    entered in ranges and/or by comma separation. Can be entered as decimal or
                    hexadecimal values. Each PID specified must be in the range of 32 (or
                    0x20)..8182 (or 0x1ff6).

                    - **AudioStreamType** *(string) --* When set to atsc, uses stream type = 0x81
                    for AC3 and stream type =
                         0x87 for EAC3. When set to dvb, uses stream type =
                    0x06.

                    - **Bitrate** *(integer) --* The output bitrate of the transport stream in bits
                    per second. Setting to 0 lets the muxer automatically determine the appropriate
                    bitrate.

                    - **BufferModel** *(string) --* If set to multiplex, use multiplex buffer model
                    for accurate interleaving. Setting to bufferModel to none can lead to lower
                    latency, but low-memory devices may not be able to play back the stream without
                    interruptions.

                    - **CcDescriptor** *(string) --* When set to enabled, generates
                    captionServiceDescriptor in PMT.

                    - **DvbNitSettings** *(dict) --* Inserts DVB Network Information Table (NIT) at
                    the specified table repetition interval.

                      - **NetworkId** *(integer) --* The numeric value placed in the Network
                      Information Table (NIT).

                      - **NetworkName** *(string) --* The network name text placed in the
                      networkNameDescriptor inside the Network Information Table. Maximum length is
                      256 characters.

                      - **RepInterval** *(integer) --* The number of milliseconds between instances
                      of this table in the output transport stream.

                    - **DvbSdtSettings** *(dict) --* Inserts DVB Service Description Table (SDT) at
                    the specified table repetition interval.

                      - **OutputSdt** *(string) --* Selects method of inserting SDT information into
                      output stream. The sdtFollow setting copies SDT information from input stream
                      to output stream. The sdtFollowIfPresent setting copies SDT information from
                      input stream to output stream if SDT information is present in the input,
                      otherwise it will fall back on the user-defined values. The sdtManual setting
                      means user will enter the SDT information. The sdtNone setting means output
                      stream will not contain SDT information.

                      - **RepInterval** *(integer) --* The number of milliseconds between instances
                      of this table in the output transport stream.

                      - **ServiceName** *(string) --* The service name placed in the
                      serviceDescriptor in the Service Description Table. Maximum length is 256
                      characters.

                      - **ServiceProviderName** *(string) --* The service provider name placed in
                      the serviceDescriptor in the Service Description Table. Maximum length is 256
                      characters.

                    - **DvbSubPids** *(string) --* Packet Identifier (PID) for input source DVB
                    Subtitle data to this output. Multiple values are accepted, and can be entered
                    in ranges and/or by comma separation. Can be entered as decimal or hexadecimal
                    values. Each PID specified must be in the range of 32 (or 0x20)..8182 (or
                    0x1ff6).

                    - **DvbTdtSettings** *(dict) --* Inserts DVB Time and Date Table (TDT) at the
                    specified table repetition interval.

                      - **RepInterval** *(integer) --* The number of milliseconds between instances
                      of this table in the output transport stream.

                    - **DvbTeletextPid** *(string) --* Packet Identifier (PID) for input source DVB
                    Teletext data to this output. Can be entered as a decimal or hexadecimal value.
                    Valid values are 32 (or 0x20)..8182 (or 0x1ff6).

                    - **Ebif** *(string) --* If set to passthrough, passes any EBIF data from the
                    input source to this output.

                    - **EbpAudioInterval** *(string) --* When videoAndFixedIntervals is selected,
                    audio EBP markers will be added to partitions 3 and 4. The interval between
                    these additional markers will be fixed, and will be slightly shorter than the
                    video EBP marker interval. Only available when EBP Cablelabs segmentation
                    markers are selected. Partitions 1 and 2 will always follow the video interval.

                    - **EbpLookaheadMs** *(integer) --* When set, enforces that Encoder Boundary
                    Points do not come within the specified time interval of each other by looking
                    ahead at input video. If another EBP is going to come in within the specified
                    time interval, the current EBP is not emitted, and the segment is "stretched" to
                    the next marker. The lookahead value does not add latency to the system. The
                    Live Event must be configured elsewhere to create sufficient latency to make the
                    lookahead accurate.

                    - **EbpPlacement** *(string) --* Controls placement of EBP on Audio PIDs. If set
                    to videoAndAudioPids, EBP markers will be placed on the video PID and all audio
                    PIDs. If set to videoPid, EBP markers will be placed on only the video PID.

                    - **EcmPid** *(string) --* This field is unused and deprecated.

                    - **EsRateInPes** *(string) --* Include or exclude the ES Rate field in the PES
                    header.

                    - **EtvPlatformPid** *(string) --* Packet Identifier (PID) for input source ETV
                    Platform data to this output. Can be entered as a decimal or hexadecimal value.
                    Valid values are 32 (or 0x20)..8182 (or 0x1ff6).

                    - **EtvSignalPid** *(string) --* Packet Identifier (PID) for input source ETV
                    Signal data to this output. Can be entered as a decimal or hexadecimal value.
                    Valid values are 32 (or 0x20)..8182 (or 0x1ff6).

                    - **FragmentTime** *(float) --* The length in seconds of each fragment. Only
                    used with EBP markers.

                    - **Klv** *(string) --* If set to passthrough, passes any KLV data from the
                    input source to this output.

                    - **KlvDataPids** *(string) --* Packet Identifier (PID) for input source KLV
                    data to this output. Multiple values are accepted, and can be entered in ranges
                    and/or by comma separation. Can be entered as decimal or hexadecimal values.
                    Each PID specified must be in the range of 32 (or 0x20)..8182 (or 0x1ff6).

                    - **NielsenId3Behavior** *(string) --* If set to passthrough, Nielsen inaudible
                    tones for media tracking will be detected in the input audio and an equivalent
                    ID3 tag will be inserted in the output.

                    - **NullPacketBitrate** *(float) --* Value in bits per second of extra null
                    packets to insert into the transport stream. This can be used if a downstream
                    encryption system requires periodic null packets.

                    - **PatInterval** *(integer) --* The number of milliseconds between instances of
                    this table in the output transport stream. Valid values are 0, 10..1000.

                    - **PcrControl** *(string) --* When set to pcrEveryPesPacket, a Program Clock
                    Reference value is inserted for every Packetized Elementary Stream (PES) header.
                    This parameter is effective only when the PCR PID is the same as the video or
                    audio elementary stream.

                    - **PcrPeriod** *(integer) --* Maximum time in milliseconds between Program
                    Clock Reference (PCRs) inserted into the transport stream.

                    - **PcrPid** *(string) --* Packet Identifier (PID) of the Program Clock
                    Reference (PCR) in the transport stream. When no value is given, the encoder
                    will assign the same value as the Video PID. Can be entered as a decimal or
                    hexadecimal value. Valid values are 32 (or 0x20)..8182 (or 0x1ff6).

                    - **PmtInterval** *(integer) --* The number of milliseconds between instances of
                    this table in the output transport stream. Valid values are 0, 10..1000.

                    - **PmtPid** *(string) --* Packet Identifier (PID) for the Program Map Table
                    (PMT) in the transport stream. Can be entered as a decimal or hexadecimal value.
                    Valid values are 32 (or 0x20)..8182 (or 0x1ff6).

                    - **ProgramNum** *(integer) --* The value of the program number field in the
                    Program Map Table.

                    - **RateMode** *(string) --* When vbr, does not insert null packets into
                    transport stream to fill specified bitrate. The bitrate setting acts as the
                    maximum bitrate when vbr is set.

                    - **Scte27Pids** *(string) --* Packet Identifier (PID) for input source SCTE-27
                    data to this output. Multiple values are accepted, and can be entered in ranges
                    and/or by comma separation. Can be entered as decimal or hexadecimal values.
                    Each PID specified must be in the range of 32 (or 0x20)..8182 (or 0x1ff6).

                    - **Scte35Control** *(string) --* Optionally pass SCTE-35 signals from the input
                    source to this output.

                    - **Scte35Pid** *(string) --* Packet Identifier (PID) of the SCTE-35 stream in
                    the transport stream. Can be entered as a decimal or hexadecimal value. Valid
                    values are 32 (or 0x20)..8182 (or 0x1ff6).

                    - **SegmentationMarkers** *(string) --* Inserts segmentation markers at each
                    segmentationTime period. raiSegstart sets the Random Access Indicator bit in the
                    adaptation field. raiAdapt sets the RAI bit and adds the current timecode in the
                    private data bytes. psiSegstart inserts PAT and PMT tables at the start of
                    segments. ebp adds Encoder Boundary Point information to the adaptation field as
                    per OpenCable specification OC-SP-EBP-I01-130118. ebpLegacy adds Encoder
                    Boundary Point information to the adaptation field using a legacy proprietary
                    format.

                    - **SegmentationStyle** *(string) --* The segmentation style parameter controls
                    how segmentation markers are inserted into the transport stream. With avails, it
                    is possible that segments may be truncated, which can influence where future
                    segmentation markers are inserted. When a segmentation style of "resetCadence"
                    is selected and a segment is truncated due to an avail, we will reset the
                    segmentation cadence. This means the subsequent segment will have a duration of
                    $segmentationTime seconds. When a segmentation style of "maintainCadence" is
                    selected and a segment is truncated due to an avail, we will not reset the
                    segmentation cadence. This means the subsequent segment will likely be truncated
                    as well. However, all segments after that will have a duration of
                    $segmentationTime seconds. Note that EBP lookahead is a slight exception to this
                    rule.

                    - **SegmentationTime** *(float) --* The length in seconds of each segment.
                    Required unless markers is set to None_.

                    - **TimedMetadataBehavior** *(string) --* When set to passthrough, timed
                    metadata will be passed through from input to output.

                    - **TimedMetadataPid** *(string) --* Packet Identifier (PID) of the timed
                    metadata stream in the transport stream. Can be entered as a decimal or
                    hexadecimal value. Valid values are 32 (or 0x20)..8182 (or 0x1ff6).

                    - **TransportStreamId** *(integer) --* The value of the transport stream ID
                    field in the Program Map Table.

                    - **VideoPid** *(string) --* Packet Identifier (PID) of the elementary video
                    stream in the transport stream. Can be entered as a decimal or hexadecimal
                    value. Valid values are 32 (or 0x20)..8182 (or 0x1ff6).

                - **Extension** *(string) --* Output file extension. If excluded, this will be
                auto-selected from the container type.

                - **NameModifier** *(string) --* String concatenated to the end of the destination
                filename. Required for multiple outputs of the same type.

              - **FrameCaptureOutputSettings** *(dict) --* Frame Capture Output Settings

                - **NameModifier** *(string) --* Required if the output group contains more than one
                output. This modifier forms part of the output file name.

              - **HlsOutputSettings** *(dict) --* Hls Output Settings

                - **HlsSettings** *(dict) --* Settings regarding the underlying stream. These
                settings are different for audio-only outputs.

                  - **AudioOnlyHlsSettings** *(dict) --* Audio Only Hls Settings

                    - **AudioGroupId** *(string) --* Specifies the group to which the audio
                    Rendition belongs.

                    - **AudioOnlyImage** *(dict) --* Optional. Specifies the .jpg or .png image to
                    use as the cover art for an audio-only output. We recommend a low bit-size file
                    because the image increases the output audio bandwidth. The image is attached to
                    the audio as an ID3 tag, frame type APIC, picture type 0x10, as per the "ID3 tag
                    version 2.4.0 - Native Frames" standard.

                      - **PasswordParam** *(string) --* key used to extract the password from EC2
                      Parameter store

                      - **Uri** *(string) --* Uniform Resource Identifier - This should be a path to
                      a file accessible to the Live system (eg. a http:// URI) depending on the
                      output type. For example, a RTMP destination should have a uri simliar to:
                      "rtmp://fmsserver/live".

                      - **Username** *(string) --* Documentation update needed

                    - **AudioTrackType** *(string) --* Four types of audio-only tracks are
                    supported: Audio-Only Variant Stream The client can play back this audio-only
                    stream instead of video in low-bandwidth scenarios. Represented as an
                    EXT-X-STREAM-INF in the HLS manifest. Alternate Audio, Auto Select, Default
                    Alternate rendition that the client should try to play back by default.
                    Represented as an EXT-X-MEDIA in the HLS manifest with DEFAULT=
                        YES,
                    AUTOSELECT=
                        YES Alternate Audio, Auto Select, Not Default Alternate rendition
                    that the client may try to play back by default. Represented as an EXT-X-MEDIA
                    in the HLS manifest with DEFAULT=NO, AUTOSELECT=
                        YES Alternate Audio, not Auto
                    Select Alternate rendition that the client will not try to play back by default.
                    Represented as an EXT-X-MEDIA in the HLS manifest with DEFAULT=
                        NO, AUTOSELECT=NO

                  - **StandardHlsSettings** *(dict) --* Standard Hls Settings

                    - **AudioRenditionSets** *(string) --* List all the audio groups that are used
                    with the video output stream. Input all the audio GROUP-IDs that are associated
                    to the video, separate by ','.

                    - **M3u8Settings** *(dict) --* Settings information for the .m3u8 container

                      - **AudioFramesPerPes** *(integer) --* The number of audio frames to insert
                      for each PES packet.

                      - **AudioPids** *(string) --* Packet Identifier (PID) of the elementary audio
                      stream(s) in the transport stream. Multiple values are accepted, and can be
                      entered in ranges and/or by comma separation. Can be entered as decimal or
                      hexadecimal values.

                      - **EcmPid** *(string) --* This parameter is unused and deprecated.

                      - **NielsenId3Behavior** *(string) --* If set to passthrough, Nielsen
                      inaudible tones for media tracking will be detected in the input audio and an
                      equivalent ID3 tag will be inserted in the output.

                      - **PatInterval** *(integer) --* The number of milliseconds between instances
                      of this table in the output transport stream. A value of \\"0\\" writes out
                      the PMT once per segment file.

                      - **PcrControl** *(string) --* When set to pcrEveryPesPacket, a Program Clock
                      Reference value is inserted for every Packetized Elementary Stream (PES)
                      header. This parameter is effective only when the PCR PID is the same as the
                      video or audio elementary stream.

                      - **PcrPeriod** *(integer) --* Maximum time in milliseconds between Program
                      Clock References (PCRs) inserted into the transport stream.

                      - **PcrPid** *(string) --* Packet Identifier (PID) of the Program Clock
                      Reference (PCR) in the transport stream. When no value is given, the encoder
                      will assign the same value as the Video PID. Can be entered as a decimal or
                      hexadecimal value.

                      - **PmtInterval** *(integer) --* The number of milliseconds between instances
                      of this table in the output transport stream. A value of \\"0\\" writes out
                      the PMT once per segment file.

                      - **PmtPid** *(string) --* Packet Identifier (PID) for the Program Map Table
                      (PMT) in the transport stream. Can be entered as a decimal or hexadecimal
                      value.

                      - **ProgramNum** *(integer) --* The value of the program number field in the
                      Program Map Table.

                      - **Scte35Behavior** *(string) --* If set to passthrough, passes any SCTE-35
                      signals from the input source to this output.

                      - **Scte35Pid** *(string) --* Packet Identifier (PID) of the SCTE-35 stream in
                      the transport stream. Can be entered as a decimal or hexadecimal value.

                      - **TimedMetadataBehavior** *(string) --* When set to passthrough, timed
                      metadata is passed through from input to output.

                      - **TimedMetadataPid** *(string) --* Packet Identifier (PID) of the timed
                      metadata stream in the transport stream. Can be entered as a decimal or
                      hexadecimal value. Valid values are 32 (or 0x20)..8182 (or 0x1ff6).

                      - **TransportStreamId** *(integer) --* The value of the transport stream ID
                      field in the Program Map Table.

                      - **VideoPid** *(string) --* Packet Identifier (PID) of the elementary video
                      stream in the transport stream. Can be entered as a decimal or hexadecimal
                      value.

                - **NameModifier** *(string) --* String concatenated to the end of the destination
                filename. Accepts \\"Format Identifiers\\":#formatIdentifierParameters.

                - **SegmentModifier** *(string) --* String concatenated to end of segment filenames.

              - **MediaPackageOutputSettings** *(dict) --* Media Package Output Settings

              - **MsSmoothOutputSettings** *(dict) --* Ms Smooth Output Settings

                - **H265PackagingType** *(string) --* Only applicable when this output is
                referencing an H.265 video description. Specifies whether MP4 segments should be
                packaged as HEV1 or HVC1.

                - **NameModifier** *(string) --* String concatenated to the end of the destination
                filename. Required for multiple outputs of the same type.

              - **MultiplexOutputSettings** *(dict) --* Multiplex Output Settings

                - **Destination** *(dict) --* Destination is a Multiplex.

                  - **DestinationRefId** *(string) --* Placeholder documentation for __string

              - **RtmpOutputSettings** *(dict) --* Rtmp Output Settings

                - **CertificateMode** *(string) --* If set to verifyAuthenticity, verify the tls
                certificate chain to a trusted Certificate Authority (CA). This will cause rtmps
                outputs with self-signed certificates to fail.

                - **ConnectionRetryInterval** *(integer) --* Number of seconds to wait before
                retrying a connection to the Flash Media server if the connection is lost.

                - **Destination** *(dict) --* The RTMP endpoint excluding the stream name (eg.
                rtmp://host/appname). For connection to Akamai, a username and password must be
                supplied. URI fields accept format identifiers.

                  - **DestinationRefId** *(string) --* Placeholder documentation for __string

                - **NumRetries** *(integer) --* Number of retry attempts.

              - **UdpOutputSettings** *(dict) --* Udp Output Settings

                - **BufferMsec** *(integer) --* UDP output buffering in milliseconds. Larger values
                increase latency through the transcoder but simultaneously assist the transcoder in
                maintaining a constant, low-jitter UDP/RTP output while accommodating clock
                recovery, input switching, input disruptions, picture reordering, etc.

                - **ContainerSettings** *(dict) --* Udp Container Settings

                  - **M2tsSettings** *(dict) --* M2ts Settings

                    - **AbsentInputAudioBehavior** *(string) --* When set to drop, output audio
                    streams will be removed from the program if the selected input audio stream is
                    removed from the input. This allows the output audio configuration to
                    dynamically change based on input configuration. If this is set to
                    encodeSilence, all output audio streams will output encoded silence when not
                    connected to an active input stream.

                    - **Arib** *(string) --* When set to enabled, uses ARIB-compliant field muxing
                    and removes video descriptor.

                    - **AribCaptionsPid** *(string) --* Packet Identifier (PID) for ARIB Captions in
                    the transport stream. Can be entered as a decimal or hexadecimal value. Valid
                    values are 32 (or 0x20)..8182 (or 0x1ff6).

                    - **AribCaptionsPidControl** *(string) --* If set to auto, pid number used for
                    ARIB Captions will be auto-selected from unused pids. If set to useConfigured,
                    ARIB Captions will be on the configured pid number.

                    - **AudioBufferModel** *(string) --* When set to dvb, uses DVB buffer model for
                    Dolby Digital audio. When set to atsc, the ATSC model is used.

                    - **AudioFramesPerPes** *(integer) --* The number of audio frames to insert for
                    each PES packet.

                    - **AudioPids** *(string) --* Packet Identifier (PID) of the elementary audio
                    stream(s) in the transport stream. Multiple values are accepted, and can be
                    entered in ranges and/or by comma separation. Can be entered as decimal or
                    hexadecimal values. Each PID specified must be in the range of 32 (or
                    0x20)..8182 (or 0x1ff6).

                    - **AudioStreamType** *(string) --* When set to atsc, uses stream type = 0x81
                    for AC3 and stream type =
                         0x87 for EAC3. When set to dvb, uses stream type =
                    0x06.

                    - **Bitrate** *(integer) --* The output bitrate of the transport stream in bits
                    per second. Setting to 0 lets the muxer automatically determine the appropriate
                    bitrate.

                    - **BufferModel** *(string) --* If set to multiplex, use multiplex buffer model
                    for accurate interleaving. Setting to bufferModel to none can lead to lower
                    latency, but low-memory devices may not be able to play back the stream without
                    interruptions.

                    - **CcDescriptor** *(string) --* When set to enabled, generates
                    captionServiceDescriptor in PMT.

                    - **DvbNitSettings** *(dict) --* Inserts DVB Network Information Table (NIT) at
                    the specified table repetition interval.

                      - **NetworkId** *(integer) --* The numeric value placed in the Network
                      Information Table (NIT).

                      - **NetworkName** *(string) --* The network name text placed in the
                      networkNameDescriptor inside the Network Information Table. Maximum length is
                      256 characters.

                      - **RepInterval** *(integer) --* The number of milliseconds between instances
                      of this table in the output transport stream.

                    - **DvbSdtSettings** *(dict) --* Inserts DVB Service Description Table (SDT) at
                    the specified table repetition interval.

                      - **OutputSdt** *(string) --* Selects method of inserting SDT information into
                      output stream. The sdtFollow setting copies SDT information from input stream
                      to output stream. The sdtFollowIfPresent setting copies SDT information from
                      input stream to output stream if SDT information is present in the input,
                      otherwise it will fall back on the user-defined values. The sdtManual setting
                      means user will enter the SDT information. The sdtNone setting means output
                      stream will not contain SDT information.

                      - **RepInterval** *(integer) --* The number of milliseconds between instances
                      of this table in the output transport stream.

                      - **ServiceName** *(string) --* The service name placed in the
                      serviceDescriptor in the Service Description Table. Maximum length is 256
                      characters.

                      - **ServiceProviderName** *(string) --* The service provider name placed in
                      the serviceDescriptor in the Service Description Table. Maximum length is 256
                      characters.

                    - **DvbSubPids** *(string) --* Packet Identifier (PID) for input source DVB
                    Subtitle data to this output. Multiple values are accepted, and can be entered
                    in ranges and/or by comma separation. Can be entered as decimal or hexadecimal
                    values. Each PID specified must be in the range of 32 (or 0x20)..8182 (or
                    0x1ff6).

                    - **DvbTdtSettings** *(dict) --* Inserts DVB Time and Date Table (TDT) at the
                    specified table repetition interval.

                      - **RepInterval** *(integer) --* The number of milliseconds between instances
                      of this table in the output transport stream.

                    - **DvbTeletextPid** *(string) --* Packet Identifier (PID) for input source DVB
                    Teletext data to this output. Can be entered as a decimal or hexadecimal value.
                    Valid values are 32 (or 0x20)..8182 (or 0x1ff6).

                    - **Ebif** *(string) --* If set to passthrough, passes any EBIF data from the
                    input source to this output.

                    - **EbpAudioInterval** *(string) --* When videoAndFixedIntervals is selected,
                    audio EBP markers will be added to partitions 3 and 4. The interval between
                    these additional markers will be fixed, and will be slightly shorter than the
                    video EBP marker interval. Only available when EBP Cablelabs segmentation
                    markers are selected. Partitions 1 and 2 will always follow the video interval.

                    - **EbpLookaheadMs** *(integer) --* When set, enforces that Encoder Boundary
                    Points do not come within the specified time interval of each other by looking
                    ahead at input video. If another EBP is going to come in within the specified
                    time interval, the current EBP is not emitted, and the segment is "stretched" to
                    the next marker. The lookahead value does not add latency to the system. The
                    Live Event must be configured elsewhere to create sufficient latency to make the
                    lookahead accurate.

                    - **EbpPlacement** *(string) --* Controls placement of EBP on Audio PIDs. If set
                    to videoAndAudioPids, EBP markers will be placed on the video PID and all audio
                    PIDs. If set to videoPid, EBP markers will be placed on only the video PID.

                    - **EcmPid** *(string) --* This field is unused and deprecated.

                    - **EsRateInPes** *(string) --* Include or exclude the ES Rate field in the PES
                    header.

                    - **EtvPlatformPid** *(string) --* Packet Identifier (PID) for input source ETV
                    Platform data to this output. Can be entered as a decimal or hexadecimal value.
                    Valid values are 32 (or 0x20)..8182 (or 0x1ff6).

                    - **EtvSignalPid** *(string) --* Packet Identifier (PID) for input source ETV
                    Signal data to this output. Can be entered as a decimal or hexadecimal value.
                    Valid values are 32 (or 0x20)..8182 (or 0x1ff6).

                    - **FragmentTime** *(float) --* The length in seconds of each fragment. Only
                    used with EBP markers.

                    - **Klv** *(string) --* If set to passthrough, passes any KLV data from the
                    input source to this output.

                    - **KlvDataPids** *(string) --* Packet Identifier (PID) for input source KLV
                    data to this output. Multiple values are accepted, and can be entered in ranges
                    and/or by comma separation. Can be entered as decimal or hexadecimal values.
                    Each PID specified must be in the range of 32 (or 0x20)..8182 (or 0x1ff6).

                    - **NielsenId3Behavior** *(string) --* If set to passthrough, Nielsen inaudible
                    tones for media tracking will be detected in the input audio and an equivalent
                    ID3 tag will be inserted in the output.

                    - **NullPacketBitrate** *(float) --* Value in bits per second of extra null
                    packets to insert into the transport stream. This can be used if a downstream
                    encryption system requires periodic null packets.

                    - **PatInterval** *(integer) --* The number of milliseconds between instances of
                    this table in the output transport stream. Valid values are 0, 10..1000.

                    - **PcrControl** *(string) --* When set to pcrEveryPesPacket, a Program Clock
                    Reference value is inserted for every Packetized Elementary Stream (PES) header.
                    This parameter is effective only when the PCR PID is the same as the video or
                    audio elementary stream.

                    - **PcrPeriod** *(integer) --* Maximum time in milliseconds between Program
                    Clock Reference (PCRs) inserted into the transport stream.

                    - **PcrPid** *(string) --* Packet Identifier (PID) of the Program Clock
                    Reference (PCR) in the transport stream. When no value is given, the encoder
                    will assign the same value as the Video PID. Can be entered as a decimal or
                    hexadecimal value. Valid values are 32 (or 0x20)..8182 (or 0x1ff6).

                    - **PmtInterval** *(integer) --* The number of milliseconds between instances of
                    this table in the output transport stream. Valid values are 0, 10..1000.

                    - **PmtPid** *(string) --* Packet Identifier (PID) for the Program Map Table
                    (PMT) in the transport stream. Can be entered as a decimal or hexadecimal value.
                    Valid values are 32 (or 0x20)..8182 (or 0x1ff6).

                    - **ProgramNum** *(integer) --* The value of the program number field in the
                    Program Map Table.

                    - **RateMode** *(string) --* When vbr, does not insert null packets into
                    transport stream to fill specified bitrate. The bitrate setting acts as the
                    maximum bitrate when vbr is set.

                    - **Scte27Pids** *(string) --* Packet Identifier (PID) for input source SCTE-27
                    data to this output. Multiple values are accepted, and can be entered in ranges
                    and/or by comma separation. Can be entered as decimal or hexadecimal values.
                    Each PID specified must be in the range of 32 (or 0x20)..8182 (or 0x1ff6).

                    - **Scte35Control** *(string) --* Optionally pass SCTE-35 signals from the input
                    source to this output.

                    - **Scte35Pid** *(string) --* Packet Identifier (PID) of the SCTE-35 stream in
                    the transport stream. Can be entered as a decimal or hexadecimal value. Valid
                    values are 32 (or 0x20)..8182 (or 0x1ff6).

                    - **SegmentationMarkers** *(string) --* Inserts segmentation markers at each
                    segmentationTime period. raiSegstart sets the Random Access Indicator bit in the
                    adaptation field. raiAdapt sets the RAI bit and adds the current timecode in the
                    private data bytes. psiSegstart inserts PAT and PMT tables at the start of
                    segments. ebp adds Encoder Boundary Point information to the adaptation field as
                    per OpenCable specification OC-SP-EBP-I01-130118. ebpLegacy adds Encoder
                    Boundary Point information to the adaptation field using a legacy proprietary
                    format.

                    - **SegmentationStyle** *(string) --* The segmentation style parameter controls
                    how segmentation markers are inserted into the transport stream. With avails, it
                    is possible that segments may be truncated, which can influence where future
                    segmentation markers are inserted. When a segmentation style of "resetCadence"
                    is selected and a segment is truncated due to an avail, we will reset the
                    segmentation cadence. This means the subsequent segment will have a duration of
                    $segmentationTime seconds. When a segmentation style of "maintainCadence" is
                    selected and a segment is truncated due to an avail, we will not reset the
                    segmentation cadence. This means the subsequent segment will likely be truncated
                    as well. However, all segments after that will have a duration of
                    $segmentationTime seconds. Note that EBP lookahead is a slight exception to this
                    rule.

                    - **SegmentationTime** *(float) --* The length in seconds of each segment.
                    Required unless markers is set to None_.

                    - **TimedMetadataBehavior** *(string) --* When set to passthrough, timed
                    metadata will be passed through from input to output.

                    - **TimedMetadataPid** *(string) --* Packet Identifier (PID) of the timed
                    metadata stream in the transport stream. Can be entered as a decimal or
                    hexadecimal value. Valid values are 32 (or 0x20)..8182 (or 0x1ff6).

                    - **TransportStreamId** *(integer) --* The value of the transport stream ID
                    field in the Program Map Table.

                    - **VideoPid** *(string) --* Packet Identifier (PID) of the elementary video
                    stream in the transport stream. Can be entered as a decimal or hexadecimal
                    value. Valid values are 32 (or 0x20)..8182 (or 0x1ff6).

                - **Destination** *(dict) --* Destination address and port number for RTP or UDP
                packets. Can be unicast or multicast RTP or UDP (eg. rtp://239.10.10.10:5001 or
                udp://10.100.100.100:5002).

                  - **DestinationRefId** *(string) --* Placeholder documentation for __string

                - **FecOutputSettings** *(dict) --* Settings for enabling and adjusting Forward
                Error Correction on UDP outputs.

                  - **ColumnDepth** *(integer) --* Parameter D from SMPTE 2022-1. The height of the
                  FEC protection matrix. The number of transport stream packets per column error
                  correction packet. Must be between 4 and 20, inclusive.

                  - **IncludeFec** *(string) --* Enables column only or column and row based FEC

                  - **RowLength** *(integer) --* Parameter L from SMPTE 2022-1. The width of the FEC
                  protection matrix. Must be between 1 and 20, inclusive. If only Column FEC is
                  used, then larger values increase robustness. If Row FEC is used, then this is the
                  number of transport stream packets per row error correction packet, and the value
                  must be between 4 and 20, inclusive, if includeFec is columnAndRow. If includeFec
                  is column, this value must be 1 to 20, inclusive.

            - **VideoDescriptionName** *(string) --* The name of the VideoDescription used as the
            source for this output.

    - **TimecodeConfig** *(dict) --* Contains settings used to acquire and adjust timecode
    information from inputs.

      - **Source** *(string) --* Identifies the source for the timecode that will be associated with
      the events outputs. -Embedded (embedded): Initialize the output timecode with timecode from
      the the source. If no embedded timecode is detected in the source, the system falls back to
      using "Start at 0" (zerobased). -System Clock (systemclock): Use the UTC time. -Start at 0
      (zerobased): The time of the first frame of the event will be 00:00:00:00.

      - **SyncThreshold** *(integer) --* Threshold in frames beyond which output timecode is
      resynchronized to the input timecode. Discrepancies below this threshold are permitted to
      avoid unnecessary discontinuities in the output timecode. No timecode sync when this is not
      specified.

    - **VideoDescriptions** *(list) --* Placeholder documentation for __listOfVideoDescription

      - *(dict) --* Video settings for this stream.

        - **CodecSettings** *(dict) --* Video codec settings.

          - **FrameCaptureSettings** *(dict) --* Frame Capture Settings

            - **CaptureInterval** *(integer) --* The frequency at which to capture frames for
            inclusion in the output. May be specified in either seconds or milliseconds, as
            specified by captureIntervalUnits.

          - **H264Settings** *(dict) --* H264 Settings

            - **AdaptiveQuantization** *(string) --* Adaptive quantization. Allows intra-frame
            quantizers to vary to improve visual quality.

            - **AfdSignaling** *(string) --* Indicates that AFD values will be written into the
            output stream. If afdSignaling is "auto", the system will try to preserve the input AFD
            value (in cases where multiple AFD values are valid). If set to "fixed", the AFD value
            will be the value configured in the fixedAfd parameter.

            - **Bitrate** *(integer) --* Average bitrate in bits/second. Required when the rate
            control mode is VBR or CBR. Not used for QVBR. In an MS Smooth output group, each output
            must have a unique value when its bitrate is rounded down to the nearest multiple of
            1000.

            - **BufFillPct** *(integer) --* Percentage of the buffer that should initially be filled
            (HRD buffer model).

            - **BufSize** *(integer) --* Size of buffer (HRD buffer model) in bits.

            - **ColorMetadata** *(string) --* Includes colorspace metadata in the output.

            - **ColorSpaceSettings** *(dict) --* Color Space settings

              - **ColorSpacePassthroughSettings** *(dict) --* Passthrough applies no color space
              conversion to the output

              - **Rec601Settings** *(dict) --* Rec601 Settings

              - **Rec709Settings** *(dict) --* Rec709 Settings

            - **EntropyEncoding** *(string) --* Entropy encoding mode. Use cabac (must be in Main or
            High profile) or cavlc.

            - **FixedAfd** *(string) --* Four bit AFD value to write on all frames of video in the
            output stream. Only valid when afdSignaling is set to 'Fixed'.

            - **FlickerAq** *(string) --* If set to enabled, adjust quantization within each frame
            to reduce flicker or 'pop' on I-frames.

            - **FramerateControl** *(string) --* This field indicates how the output video frame
            rate is specified. If "specified" is selected then the output video frame rate is
            determined by framerateNumerator and framerateDenominator, else if
            "initializeFromSource" is selected then the output video frame rate will be set equal to
            the input video frame rate of the first input.

            - **FramerateDenominator** *(integer) --* Framerate denominator.

            - **FramerateNumerator** *(integer) --* Framerate numerator - framerate is a fraction,
            e.g. 24000 / 1001 = 23.976 fps.

            - **GopBReference** *(string) --* Documentation update needed

            - **GopClosedCadence** *(integer) --* Frequency of closed GOPs. In streaming
            applications, it is recommended that this be set to 1 so a decoder joining mid-stream
            will receive an IDR frame as quickly as possible. Setting this value to 0 will break
            output segmenting.

            - **GopNumBFrames** *(integer) --* Number of B-frames between reference frames.

            - **GopSize** *(float) --* GOP size (keyframe interval) in units of either frames or
            seconds per gopSizeUnits. If gopSizeUnits is frames, gopSize must be an integer and must
            be greater than or equal to 1. If gopSizeUnits is seconds, gopSize must be greater than
            0, but need not be an integer.

            - **GopSizeUnits** *(string) --* Indicates if the gopSize is specified in frames or
            seconds. If seconds the system will convert the gopSize into a frame count at run time.

            - **Level** *(string) --* H.264 Level.

            - **LookAheadRateControl** *(string) --* Amount of lookahead. A value of low can
            decrease latency and memory usage, while high can produce better quality for certain
            content.

            - **MaxBitrate** *(integer) --* For QVBR: See the tooltip for Quality level For VBR: Set
            the maximum bitrate in order to accommodate expected spikes in the complexity of the
            video.

            - **MinIInterval** *(integer) --* Only meaningful if sceneChangeDetect is set to
            enabled. Defaults to 5 if multiplex rate control is used. Enforces separation between
            repeated (cadence) I-frames and I-frames inserted by Scene Change Detection. If a scene
            change I-frame is within I-interval frames of a cadence I-frame, the GOP is shrunk
            and/or stretched to the scene change I-frame. GOP stretch requires enabling lookahead as
            well as setting I-interval. The normal cadence resumes for the next GOP. Note: Maximum
            GOP stretch = GOP size + Min-I-interval - 1

            - **NumRefFrames** *(integer) --* Number of reference frames to use. The encoder may use
            more than requested if using B-frames and/or interlaced encoding.

            - **ParControl** *(string) --* This field indicates how the output pixel aspect ratio is
            specified. If "specified" is selected then the output video pixel aspect ratio is
            determined by parNumerator and parDenominator, else if "initializeFromSource" is
            selected then the output pixsel aspect ratio will be set equal to the input video pixel
            aspect ratio of the first input.

            - **ParDenominator** *(integer) --* Pixel Aspect Ratio denominator.

            - **ParNumerator** *(integer) --* Pixel Aspect Ratio numerator.

            - **Profile** *(string) --* H.264 Profile.

            - **QvbrQualityLevel** *(integer) --* Controls the target quality for the video encode.
            Applies only when the rate control mode is QVBR. Set values for the QVBR quality level
            field and Max bitrate field that suit your most important viewing devices. Recommended
            values are: - Primary screen: Quality level: 8 to 10. Max bitrate: 4M - PC or tablet:
            Quality level: 7. Max bitrate: 1.5M to 3M - Smartphone: Quality level: 6. Max bitrate:
            1M to 1.5M

            - **RateControlMode** *(string) --* Rate control mode. QVBR: Quality will match the
            specified quality level except when it is constrained by the maximum bitrate.
            Recommended if you or your viewers pay for bandwidth. VBR: Quality and bitrate vary,
            depending on the video complexity. Recommended instead of QVBR if you want to maintain a
            specific average bitrate over the duration of the channel. CBR: Quality varies,
            depending on the video complexity. Recommended only if you distribute your assets to
            devices that cannot handle variable bitrates.

            - **ScanType** *(string) --* Sets the scan type of the output to progressive or
            top-field-first interlaced.

            - **SceneChangeDetect** *(string) --* Scene change detection. - On: inserts I-frames
            when scene change is detected. - Off: does not force an I-frame when scene change is
            detected.

            - **Slices** *(integer) --* Number of slices per picture. Must be less than or equal to
            the number of macroblock rows for progressive pictures, and less than or equal to half
            the number of macroblock rows for interlaced pictures. This field is optional; when no
            value is specified the encoder will choose the number of slices based on encode
            resolution.

            - **Softness** *(integer) --* Softness. Selects quantizer matrix, larger values reduce
            high-frequency content in the encoded image.

            - **SpatialAq** *(string) --* If set to enabled, adjust quantization within each frame
            based on spatial variation of content complexity.

            - **SubgopLength** *(string) --* If set to fixed, use gopNumBFrames B-frames per
            sub-GOP. If set to dynamic, optimize the number of B-frames used for each sub-GOP to
            improve visual quality.

            - **Syntax** *(string) --* Produces a bitstream compliant with SMPTE RP-2027.

            - **TemporalAq** *(string) --* If set to enabled, adjust quantization within each frame
            based on temporal variation of content complexity.

            - **TimecodeInsertion** *(string) --* Determines how timecodes should be inserted into
            the video elementary stream. - 'disabled': Do not include timecodes - 'picTimingSei':
            Pass through picture timing SEI messages from the source specified in Timecode Config

          - **H265Settings** *(dict) --* H265 Settings

            - **AdaptiveQuantization** *(string) --* Adaptive quantization. Allows intra-frame
            quantizers to vary to improve visual quality.

            - **AfdSignaling** *(string) --* Indicates that AFD values will be written into the
            output stream. If afdSignaling is "auto", the system will try to preserve the input AFD
            value (in cases where multiple AFD values are valid). If set to "fixed", the AFD value
            will be the value configured in the fixedAfd parameter.

            - **AlternativeTransferFunction** *(string) --* Whether or not EML should insert an
            Alternative Transfer Function SEI message to support backwards compatibility with
            non-HDR decoders and displays.

            - **Bitrate** *(integer) --* Average bitrate in bits/second. Required when the rate
            control mode is VBR or CBR. Not used for QVBR. In an MS Smooth output group, each output
            must have a unique value when its bitrate is rounded down to the nearest multiple of
            1000.

            - **BufSize** *(integer) --* Size of buffer (HRD buffer model) in bits.

            - **ColorMetadata** *(string) --* Includes colorspace metadata in the output.

            - **ColorSpaceSettings** *(dict) --* Color Space settings

              - **ColorSpacePassthroughSettings** *(dict) --* Passthrough applies no color space
              conversion to the output

              - **Hdr10Settings** *(dict) --* Hdr10 Settings

                - **MaxCll** *(integer) --* Maximum Content Light Level An integer metadata value
                defining the maximum light level, in nits, of any single pixel within an encoded HDR
                video stream or file.

                - **MaxFall** *(integer) --* Maximum Frame Average Light Level An integer metadata
                value defining the maximum average light level, in nits, for any single frame within
                an encoded HDR video stream or file.

              - **Rec601Settings** *(dict) --* Rec601 Settings

              - **Rec709Settings** *(dict) --* Rec709 Settings

            - **FixedAfd** *(string) --* Four bit AFD value to write on all frames of video in the
            output stream. Only valid when afdSignaling is set to 'Fixed'.

            - **FlickerAq** *(string) --* If set to enabled, adjust quantization within each frame
            to reduce flicker or 'pop' on I-frames.

            - **FramerateDenominator** *(integer) --* Framerate denominator.

            - **FramerateNumerator** *(integer) --* Framerate numerator - framerate is a fraction,
            e.g. 24000 / 1001 = 23.976 fps.

            - **GopClosedCadence** *(integer) --* Frequency of closed GOPs. In streaming
            applications, it is recommended that this be set to 1 so a decoder joining mid-stream
            will receive an IDR frame as quickly as possible. Setting this value to 0 will break
            output segmenting.

            - **GopSize** *(float) --* GOP size (keyframe interval) in units of either frames or
            seconds per gopSizeUnits. If gopSizeUnits is frames, gopSize must be an integer and must
            be greater than or equal to 1. If gopSizeUnits is seconds, gopSize must be greater than
            0, but need not be an integer.

            - **GopSizeUnits** *(string) --* Indicates if the gopSize is specified in frames or
            seconds. If seconds the system will convert the gopSize into a frame count at run time.

            - **Level** *(string) --* H.265 Level.

            - **LookAheadRateControl** *(string) --* Amount of lookahead. A value of low can
            decrease latency and memory usage, while high can produce better quality for certain
            content.

            - **MaxBitrate** *(integer) --* For QVBR: See the tooltip for Quality level

            - **MinIInterval** *(integer) --* Only meaningful if sceneChangeDetect is set to
            enabled. Defaults to 5 if multiplex rate control is used. Enforces separation between
            repeated (cadence) I-frames and I-frames inserted by Scene Change Detection. If a scene
            change I-frame is within I-interval frames of a cadence I-frame, the GOP is shrunk
            and/or stretched to the scene change I-frame. GOP stretch requires enabling lookahead as
            well as setting I-interval. The normal cadence resumes for the next GOP. Note: Maximum
            GOP stretch = GOP size + Min-I-interval - 1

            - **ParDenominator** *(integer) --* Pixel Aspect Ratio denominator.

            - **ParNumerator** *(integer) --* Pixel Aspect Ratio numerator.

            - **Profile** *(string) --* H.265 Profile.

            - **QvbrQualityLevel** *(integer) --* Controls the target quality for the video encode.
            Applies only when the rate control mode is QVBR. Set values for the QVBR quality level
            field and Max bitrate field that suit your most important viewing devices. Recommended
            values are: - Primary screen: Quality level: 8 to 10. Max bitrate: 4M - PC or tablet:
            Quality level: 7. Max bitrate: 1.5M to 3M - Smartphone: Quality level: 6. Max bitrate:
            1M to 1.5M

            - **RateControlMode** *(string) --* Rate control mode. QVBR: Quality will match the
            specified quality level except when it is constrained by the maximum bitrate.
            Recommended if you or your viewers pay for bandwidth. CBR: Quality varies, depending on
            the video complexity. Recommended only if you distribute your assets to devices that
            cannot handle variable bitrates.

            - **ScanType** *(string) --* Sets the scan type of the output to progressive or
            top-field-first interlaced.

            - **SceneChangeDetect** *(string) --* Scene change detection.

            - **Slices** *(integer) --* Number of slices per picture. Must be less than or equal to
            the number of macroblock rows for progressive pictures, and less than or equal to half
            the number of macroblock rows for interlaced pictures. This field is optional; when no
            value is specified the encoder will choose the number of slices based on encode
            resolution.

            - **Tier** *(string) --* H.265 Tier.

            - **TimecodeInsertion** *(string) --* Determines how timecodes should be inserted into
            the video elementary stream. - 'disabled': Do not include timecodes - 'picTimingSei':
            Pass through picture timing SEI messages from the source specified in Timecode Config

        - **Height** *(integer) --* Output video height, in pixels. Must be an even number. For most
        codecs, you can leave this field and width blank in order to use the height and width
        (resolution) from the source. Note, however, that leaving blank is not recommended. For the
        Frame Capture codec, height and width are required.

        - **Name** *(string) --* The name of this VideoDescription. Outputs will use this name to
        uniquely identify this Description. Description names should be unique within this Live
        Event.

        - **RespondToAfd** *(string) --* Indicates how to respond to the AFD values in the input
        stream. RESPOND causes input video to be clipped, depending on the AFD value, input display
        aspect ratio, and output display aspect ratio, and (except for FRAMECAPTURE codec) includes
        the values in the output. PASSTHROUGH (does not apply to FRAMECAPTURE codec) ignores the AFD
        values and includes the values in the output, so input video is not clipped. NONE ignores
        the AFD values and does not include the values through to the output, so input video is not
        clipped.

        - **ScalingBehavior** *(string) --* STRETCHTOOUTPUT configures the output position to
        stretch the video to the specified output resolution (height and width). This option will
        override any position value. DEFAULT may insert black boxes (pillar boxes or letter boxes)
        around the video to provide the specified output resolution.

        - **Sharpness** *(integer) --* Changes the strength of the anti-alias filter used for
        scaling. 0 is the softest setting, 100 is the sharpest. A setting of 50 is recommended for
        most content.

        - **Width** *(integer) --* Output video width, in pixels. Must be an even number. For most
        codecs, you can leave this field and height blank in order to use the height and width
        (resolution) from the source. Note, however, that leaving blank is not recommended. For the
        Frame Capture codec, height and width are required.
    """


_ClientCreateChannelResponseChannelInputAttachmentsInputSettingsAudioSelectorsSelectorSettingsAudioLanguageSelectionTypeDef = TypedDict(
    "_ClientCreateChannelResponseChannelInputAttachmentsInputSettingsAudioSelectorsSelectorSettingsAudioLanguageSelectionTypeDef",
    {"LanguageCode": str, "LanguageSelectionPolicy": str},
    total=False,
)


class ClientCreateChannelResponseChannelInputAttachmentsInputSettingsAudioSelectorsSelectorSettingsAudioLanguageSelectionTypeDef(
    _ClientCreateChannelResponseChannelInputAttachmentsInputSettingsAudioSelectorsSelectorSettingsAudioLanguageSelectionTypeDef
):
    """
    Type definition for
    `ClientCreateChannelResponseChannelInputAttachmentsInputSettingsAudioSelectorsSelectorSettings`
    `AudioLanguageSelection`

    - **LanguageCode** *(string) --* Selects a specific three-letter language code from within an
    audio source.

    - **LanguageSelectionPolicy** *(string) --* When set to "strict", the transport stream demux
    strictly identifies audio streams by their language descriptor. If a PMT update occurs such that
    an audio stream matching the initially selected language is no longer present then mute will be
    encoded until the language returns. If "loose", then on a PMT update the demux will choose
    another audio stream in the program with the same stream type if it can't find one with the same
    language.
    """


_ClientCreateChannelResponseChannelInputAttachmentsInputSettingsAudioSelectorsSelectorSettingsAudioPidSelectionTypeDef = TypedDict(
    "_ClientCreateChannelResponseChannelInputAttachmentsInputSettingsAudioSelectorsSelectorSettingsAudioPidSelectionTypeDef",
    {"Pid": int},
    total=False,
)


class ClientCreateChannelResponseChannelInputAttachmentsInputSettingsAudioSelectorsSelectorSettingsAudioPidSelectionTypeDef(
    _ClientCreateChannelResponseChannelInputAttachmentsInputSettingsAudioSelectorsSelectorSettingsAudioPidSelectionTypeDef
):
    """
    Type definition for
    `ClientCreateChannelResponseChannelInputAttachmentsInputSettingsAudioSelectorsSelectorSettings`
    `AudioPidSelection`

    - **Pid** *(integer) --* Selects a specific PID from within a source.
    """


_ClientCreateChannelResponseChannelInputAttachmentsInputSettingsAudioSelectorsSelectorSettingsTypeDef = TypedDict(
    "_ClientCreateChannelResponseChannelInputAttachmentsInputSettingsAudioSelectorsSelectorSettingsTypeDef",
    {
        "AudioLanguageSelection": ClientCreateChannelResponseChannelInputAttachmentsInputSettingsAudioSelectorsSelectorSettingsAudioLanguageSelectionTypeDef,
        "AudioPidSelection": ClientCreateChannelResponseChannelInputAttachmentsInputSettingsAudioSelectorsSelectorSettingsAudioPidSelectionTypeDef,
    },
    total=False,
)


class ClientCreateChannelResponseChannelInputAttachmentsInputSettingsAudioSelectorsSelectorSettingsTypeDef(
    _ClientCreateChannelResponseChannelInputAttachmentsInputSettingsAudioSelectorsSelectorSettingsTypeDef
):
    """
    Type definition for
    `ClientCreateChannelResponseChannelInputAttachmentsInputSettingsAudioSelectors`
    `SelectorSettings`

    - **AudioLanguageSelection** *(dict) --* Audio Language Selection

      - **LanguageCode** *(string) --* Selects a specific three-letter language code from within an
      audio source.

      - **LanguageSelectionPolicy** *(string) --* When set to "strict", the transport stream demux
      strictly identifies audio streams by their language descriptor. If a PMT update occurs such
      that an audio stream matching the initially selected language is no longer present then mute
      will be encoded until the language returns. If "loose", then on a PMT update the demux will
      choose another audio stream in the program with the same stream type if it can't find one with
      the same language.

    - **AudioPidSelection** *(dict) --* Audio Pid Selection

      - **Pid** *(integer) --* Selects a specific PID from within a source.
    """


_ClientCreateChannelResponseChannelInputAttachmentsInputSettingsAudioSelectorsTypeDef = TypedDict(
    "_ClientCreateChannelResponseChannelInputAttachmentsInputSettingsAudioSelectorsTypeDef",
    {
        "Name": str,
        "SelectorSettings": ClientCreateChannelResponseChannelInputAttachmentsInputSettingsAudioSelectorsSelectorSettingsTypeDef,
    },
    total=False,
)


class ClientCreateChannelResponseChannelInputAttachmentsInputSettingsAudioSelectorsTypeDef(
    _ClientCreateChannelResponseChannelInputAttachmentsInputSettingsAudioSelectorsTypeDef
):
    """
    Type definition for `ClientCreateChannelResponseChannelInputAttachmentsInputSettings`
    `AudioSelectors`

    - **Name** *(string) --* The name of this AudioSelector. AudioDescriptions will use this name to
    uniquely identify this Selector. Selector names should be unique per input.

    - **SelectorSettings** *(dict) --* The audio selector settings.

      - **AudioLanguageSelection** *(dict) --* Audio Language Selection

        - **LanguageCode** *(string) --* Selects a specific three-letter language code from within
        an audio source.

        - **LanguageSelectionPolicy** *(string) --* When set to "strict", the transport stream demux
        strictly identifies audio streams by their language descriptor. If a PMT update occurs such
        that an audio stream matching the initially selected language is no longer present then mute
        will be encoded until the language returns. If "loose", then on a PMT update the demux will
        choose another audio stream in the program with the same stream type if it can't find one
        with the same language.

      - **AudioPidSelection** *(dict) --* Audio Pid Selection

        - **Pid** *(integer) --* Selects a specific PID from within a source.
    """


_ClientCreateChannelResponseChannelInputAttachmentsInputSettingsCaptionSelectorsSelectorSettingsDvbSubSourceSettingsTypeDef = TypedDict(
    "_ClientCreateChannelResponseChannelInputAttachmentsInputSettingsCaptionSelectorsSelectorSettingsDvbSubSourceSettingsTypeDef",
    {"Pid": int},
    total=False,
)


class ClientCreateChannelResponseChannelInputAttachmentsInputSettingsCaptionSelectorsSelectorSettingsDvbSubSourceSettingsTypeDef(
    _ClientCreateChannelResponseChannelInputAttachmentsInputSettingsCaptionSelectorsSelectorSettingsDvbSubSourceSettingsTypeDef
):
    """
    Type definition for
    `ClientCreateChannelResponseChannelInputAttachmentsInputSettingsCaptionSelectorsSelectorSettings`
    `DvbSubSourceSettings`

    - **Pid** *(integer) --* When using DVB-Sub with Burn-In or SMPTE-TT, use this PID for the
    source content. Unused for DVB-Sub passthrough. All DVB-Sub content is passed through,
    regardless of selectors.
    """


_ClientCreateChannelResponseChannelInputAttachmentsInputSettingsCaptionSelectorsSelectorSettingsEmbeddedSourceSettingsTypeDef = TypedDict(
    "_ClientCreateChannelResponseChannelInputAttachmentsInputSettingsCaptionSelectorsSelectorSettingsEmbeddedSourceSettingsTypeDef",
    {
        "Convert608To708": str,
        "Scte20Detection": str,
        "Source608ChannelNumber": int,
        "Source608TrackNumber": int,
    },
    total=False,
)


class ClientCreateChannelResponseChannelInputAttachmentsInputSettingsCaptionSelectorsSelectorSettingsEmbeddedSourceSettingsTypeDef(
    _ClientCreateChannelResponseChannelInputAttachmentsInputSettingsCaptionSelectorsSelectorSettingsEmbeddedSourceSettingsTypeDef
):
    """
    Type definition for
    `ClientCreateChannelResponseChannelInputAttachmentsInputSettingsCaptionSelectorsSelectorSettings`
    `EmbeddedSourceSettings`

    - **Convert608To708** *(string) --* If upconvert, 608 data is both passed through via the "608
    compatibility bytes" fields of the 708 wrapper as well as translated into 708. 708 data present
    in the source content will be discarded.

    - **Scte20Detection** *(string) --* Set to "auto" to handle streams with intermittent and/or
    non-aligned SCTE-20 and Embedded captions.

    - **Source608ChannelNumber** *(integer) --* Specifies the 608/708 channel number within the
    video track from which to extract captions. Unused for passthrough.

    - **Source608TrackNumber** *(integer) --* This field is unused and deprecated.
    """


_ClientCreateChannelResponseChannelInputAttachmentsInputSettingsCaptionSelectorsSelectorSettingsScte20SourceSettingsTypeDef = TypedDict(
    "_ClientCreateChannelResponseChannelInputAttachmentsInputSettingsCaptionSelectorsSelectorSettingsScte20SourceSettingsTypeDef",
    {"Convert608To708": str, "Source608ChannelNumber": int},
    total=False,
)


class ClientCreateChannelResponseChannelInputAttachmentsInputSettingsCaptionSelectorsSelectorSettingsScte20SourceSettingsTypeDef(
    _ClientCreateChannelResponseChannelInputAttachmentsInputSettingsCaptionSelectorsSelectorSettingsScte20SourceSettingsTypeDef
):
    """
    Type definition for
    `ClientCreateChannelResponseChannelInputAttachmentsInputSettingsCaptionSelectorsSelectorSettings`
    `Scte20SourceSettings`

    - **Convert608To708** *(string) --* If upconvert, 608 data is both passed through via the "608
    compatibility bytes" fields of the 708 wrapper as well as translated into 708. 708 data present
    in the source content will be discarded.

    - **Source608ChannelNumber** *(integer) --* Specifies the 608/708 channel number within the
    video track from which to extract captions. Unused for passthrough.
    """


_ClientCreateChannelResponseChannelInputAttachmentsInputSettingsCaptionSelectorsSelectorSettingsScte27SourceSettingsTypeDef = TypedDict(
    "_ClientCreateChannelResponseChannelInputAttachmentsInputSettingsCaptionSelectorsSelectorSettingsScte27SourceSettingsTypeDef",
    {"Pid": int},
    total=False,
)


class ClientCreateChannelResponseChannelInputAttachmentsInputSettingsCaptionSelectorsSelectorSettingsScte27SourceSettingsTypeDef(
    _ClientCreateChannelResponseChannelInputAttachmentsInputSettingsCaptionSelectorsSelectorSettingsScte27SourceSettingsTypeDef
):
    """
    Type definition for
    `ClientCreateChannelResponseChannelInputAttachmentsInputSettingsCaptionSelectorsSelectorSettings`
    `Scte27SourceSettings`

    - **Pid** *(integer) --* The pid field is used in conjunction with the caption selector
    languageCode field as follows: - Specify PID and Language: Extracts captions from that PID; the
    language is "informational". - Specify PID and omit Language: Extracts the specified PID. - Omit
    PID and specify Language: Extracts the specified language, whichever PID that happens to be. -
    Omit PID and omit Language: Valid only if source is DVB-Sub that is being passed through; all
    languages will be passed through.
    """


_ClientCreateChannelResponseChannelInputAttachmentsInputSettingsCaptionSelectorsSelectorSettingsTeletextSourceSettingsTypeDef = TypedDict(
    "_ClientCreateChannelResponseChannelInputAttachmentsInputSettingsCaptionSelectorsSelectorSettingsTeletextSourceSettingsTypeDef",
    {"PageNumber": str},
    total=False,
)


class ClientCreateChannelResponseChannelInputAttachmentsInputSettingsCaptionSelectorsSelectorSettingsTeletextSourceSettingsTypeDef(
    _ClientCreateChannelResponseChannelInputAttachmentsInputSettingsCaptionSelectorsSelectorSettingsTeletextSourceSettingsTypeDef
):
    """
    Type definition for
    `ClientCreateChannelResponseChannelInputAttachmentsInputSettingsCaptionSelectorsSelectorSettings`
    `TeletextSourceSettings`

    - **PageNumber** *(string) --* Specifies the teletext page number within the data stream from
    which to extract captions. Range of 0x100 (256) to 0x8FF (2303). Unused for passthrough. Should
    be specified as a hexadecimal string with no "0x" prefix.
    """


_ClientCreateChannelResponseChannelInputAttachmentsInputSettingsCaptionSelectorsSelectorSettingsTypeDef = TypedDict(
    "_ClientCreateChannelResponseChannelInputAttachmentsInputSettingsCaptionSelectorsSelectorSettingsTypeDef",
    {
        "AribSourceSettings": Dict,
        "DvbSubSourceSettings": ClientCreateChannelResponseChannelInputAttachmentsInputSettingsCaptionSelectorsSelectorSettingsDvbSubSourceSettingsTypeDef,
        "EmbeddedSourceSettings": ClientCreateChannelResponseChannelInputAttachmentsInputSettingsCaptionSelectorsSelectorSettingsEmbeddedSourceSettingsTypeDef,
        "Scte20SourceSettings": ClientCreateChannelResponseChannelInputAttachmentsInputSettingsCaptionSelectorsSelectorSettingsScte20SourceSettingsTypeDef,
        "Scte27SourceSettings": ClientCreateChannelResponseChannelInputAttachmentsInputSettingsCaptionSelectorsSelectorSettingsScte27SourceSettingsTypeDef,
        "TeletextSourceSettings": ClientCreateChannelResponseChannelInputAttachmentsInputSettingsCaptionSelectorsSelectorSettingsTeletextSourceSettingsTypeDef,
    },
    total=False,
)


class ClientCreateChannelResponseChannelInputAttachmentsInputSettingsCaptionSelectorsSelectorSettingsTypeDef(
    _ClientCreateChannelResponseChannelInputAttachmentsInputSettingsCaptionSelectorsSelectorSettingsTypeDef
):
    """
    Type definition for
    `ClientCreateChannelResponseChannelInputAttachmentsInputSettingsCaptionSelectors`
    `SelectorSettings`

    - **AribSourceSettings** *(dict) --* Arib Source Settings

    - **DvbSubSourceSettings** *(dict) --* Dvb Sub Source Settings

      - **Pid** *(integer) --* When using DVB-Sub with Burn-In or SMPTE-TT, use this PID for the
      source content. Unused for DVB-Sub passthrough. All DVB-Sub content is passed through,
      regardless of selectors.

    - **EmbeddedSourceSettings** *(dict) --* Embedded Source Settings

      - **Convert608To708** *(string) --* If upconvert, 608 data is both passed through via the "608
      compatibility bytes" fields of the 708 wrapper as well as translated into 708. 708 data
      present in the source content will be discarded.

      - **Scte20Detection** *(string) --* Set to "auto" to handle streams with intermittent and/or
      non-aligned SCTE-20 and Embedded captions.

      - **Source608ChannelNumber** *(integer) --* Specifies the 608/708 channel number within the
      video track from which to extract captions. Unused for passthrough.

      - **Source608TrackNumber** *(integer) --* This field is unused and deprecated.

    - **Scte20SourceSettings** *(dict) --* Scte20 Source Settings

      - **Convert608To708** *(string) --* If upconvert, 608 data is both passed through via the "608
      compatibility bytes" fields of the 708 wrapper as well as translated into 708. 708 data
      present in the source content will be discarded.

      - **Source608ChannelNumber** *(integer) --* Specifies the 608/708 channel number within the
      video track from which to extract captions. Unused for passthrough.

    - **Scte27SourceSettings** *(dict) --* Scte27 Source Settings

      - **Pid** *(integer) --* The pid field is used in conjunction with the caption selector
      languageCode field as follows: - Specify PID and Language: Extracts captions from that PID;
      the language is "informational". - Specify PID and omit Language: Extracts the specified PID.
      - Omit PID and specify Language: Extracts the specified language, whichever PID that happens
      to be. - Omit PID and omit Language: Valid only if source is DVB-Sub that is being passed
      through; all languages will be passed through.

    - **TeletextSourceSettings** *(dict) --* Teletext Source Settings

      - **PageNumber** *(string) --* Specifies the teletext page number within the data stream from
      which to extract captions. Range of 0x100 (256) to 0x8FF (2303). Unused for passthrough.
      Should be specified as a hexadecimal string with no "0x" prefix.
    """


_ClientCreateChannelResponseChannelInputAttachmentsInputSettingsCaptionSelectorsTypeDef = TypedDict(
    "_ClientCreateChannelResponseChannelInputAttachmentsInputSettingsCaptionSelectorsTypeDef",
    {
        "LanguageCode": str,
        "Name": str,
        "SelectorSettings": ClientCreateChannelResponseChannelInputAttachmentsInputSettingsCaptionSelectorsSelectorSettingsTypeDef,
    },
    total=False,
)


class ClientCreateChannelResponseChannelInputAttachmentsInputSettingsCaptionSelectorsTypeDef(
    _ClientCreateChannelResponseChannelInputAttachmentsInputSettingsCaptionSelectorsTypeDef
):
    """
    Type definition for `ClientCreateChannelResponseChannelInputAttachmentsInputSettings`
    `CaptionSelectors`

    - **LanguageCode** *(string) --* When specified this field indicates the three letter language
    code of the caption track to extract from the source.

    - **Name** *(string) --* Name identifier for a caption selector. This name is used to associate
    this caption selector with one or more caption descriptions. Names must be unique within an
    event.

    - **SelectorSettings** *(dict) --* Caption selector settings.

      - **AribSourceSettings** *(dict) --* Arib Source Settings

      - **DvbSubSourceSettings** *(dict) --* Dvb Sub Source Settings

        - **Pid** *(integer) --* When using DVB-Sub with Burn-In or SMPTE-TT, use this PID for the
        source content. Unused for DVB-Sub passthrough. All DVB-Sub content is passed through,
        regardless of selectors.

      - **EmbeddedSourceSettings** *(dict) --* Embedded Source Settings

        - **Convert608To708** *(string) --* If upconvert, 608 data is both passed through via the
        "608 compatibility bytes" fields of the 708 wrapper as well as translated into 708. 708 data
        present in the source content will be discarded.

        - **Scte20Detection** *(string) --* Set to "auto" to handle streams with intermittent and/or
        non-aligned SCTE-20 and Embedded captions.

        - **Source608ChannelNumber** *(integer) --* Specifies the 608/708 channel number within the
        video track from which to extract captions. Unused for passthrough.

        - **Source608TrackNumber** *(integer) --* This field is unused and deprecated.

      - **Scte20SourceSettings** *(dict) --* Scte20 Source Settings

        - **Convert608To708** *(string) --* If upconvert, 608 data is both passed through via the
        "608 compatibility bytes" fields of the 708 wrapper as well as translated into 708. 708 data
        present in the source content will be discarded.

        - **Source608ChannelNumber** *(integer) --* Specifies the 608/708 channel number within the
        video track from which to extract captions. Unused for passthrough.

      - **Scte27SourceSettings** *(dict) --* Scte27 Source Settings

        - **Pid** *(integer) --* The pid field is used in conjunction with the caption selector
        languageCode field as follows: - Specify PID and Language: Extracts captions from that PID;
        the language is "informational". - Specify PID and omit Language: Extracts the specified
        PID. - Omit PID and specify Language: Extracts the specified language, whichever PID that
        happens to be. - Omit PID and omit Language: Valid only if source is DVB-Sub that is being
        passed through; all languages will be passed through.

      - **TeletextSourceSettings** *(dict) --* Teletext Source Settings

        - **PageNumber** *(string) --* Specifies the teletext page number within the data stream
        from which to extract captions. Range of 0x100 (256) to 0x8FF (2303). Unused for
        passthrough. Should be specified as a hexadecimal string with no "0x" prefix.
    """


_ClientCreateChannelResponseChannelInputAttachmentsInputSettingsNetworkInputSettingsHlsInputSettingsTypeDef = TypedDict(
    "_ClientCreateChannelResponseChannelInputAttachmentsInputSettingsNetworkInputSettingsHlsInputSettingsTypeDef",
    {"Bandwidth": int, "BufferSegments": int, "Retries": int, "RetryInterval": int},
    total=False,
)


class ClientCreateChannelResponseChannelInputAttachmentsInputSettingsNetworkInputSettingsHlsInputSettingsTypeDef(
    _ClientCreateChannelResponseChannelInputAttachmentsInputSettingsNetworkInputSettingsHlsInputSettingsTypeDef
):
    """
    Type definition for
    `ClientCreateChannelResponseChannelInputAttachmentsInputSettingsNetworkInputSettings`
    `HlsInputSettings`

    - **Bandwidth** *(integer) --* When specified the HLS stream with the m3u8 BANDWIDTH that most
    closely matches this value will be chosen, otherwise the highest bandwidth stream in the m3u8
    will be chosen. The bitrate is specified in bits per second, as in an HLS manifest.

    - **BufferSegments** *(integer) --* When specified, reading of the HLS input will begin this
    many buffer segments from the end (most recently written segment). When not specified, the HLS
    input will begin with the first segment specified in the m3u8.

    - **Retries** *(integer) --* The number of consecutive times that attempts to read a manifest or
    segment must fail before the input is considered unavailable.

    - **RetryInterval** *(integer) --* The number of seconds between retries when an attempt to read
    a manifest or segment fails.
    """


_ClientCreateChannelResponseChannelInputAttachmentsInputSettingsNetworkInputSettingsTypeDef = TypedDict(
    "_ClientCreateChannelResponseChannelInputAttachmentsInputSettingsNetworkInputSettingsTypeDef",
    {
        "HlsInputSettings": ClientCreateChannelResponseChannelInputAttachmentsInputSettingsNetworkInputSettingsHlsInputSettingsTypeDef,
        "ServerValidation": str,
    },
    total=False,
)


class ClientCreateChannelResponseChannelInputAttachmentsInputSettingsNetworkInputSettingsTypeDef(
    _ClientCreateChannelResponseChannelInputAttachmentsInputSettingsNetworkInputSettingsTypeDef
):
    """
    Type definition for `ClientCreateChannelResponseChannelInputAttachmentsInputSettings`
    `NetworkInputSettings`

    - **HlsInputSettings** *(dict) --* Specifies HLS input settings when the uri is for a HLS
    manifest.

      - **Bandwidth** *(integer) --* When specified the HLS stream with the m3u8 BANDWIDTH that most
      closely matches this value will be chosen, otherwise the highest bandwidth stream in the m3u8
      will be chosen. The bitrate is specified in bits per second, as in an HLS manifest.

      - **BufferSegments** *(integer) --* When specified, reading of the HLS input will begin this
      many buffer segments from the end (most recently written segment). When not specified, the HLS
      input will begin with the first segment specified in the m3u8.

      - **Retries** *(integer) --* The number of consecutive times that attempts to read a manifest
      or segment must fail before the input is considered unavailable.

      - **RetryInterval** *(integer) --* The number of seconds between retries when an attempt to
      read a manifest or segment fails.

    - **ServerValidation** *(string) --* Check HTTPS server certificates. When set to
    checkCryptographyOnly, cryptography in the certificate will be checked, but not the server's
    name. Certain subdomains (notably S3 buckets that use dots in the bucket name) do not strictly
    match the corresponding certificate's wildcard pattern and would otherwise cause the event to
    error. This setting is ignored for protocols that do not use https.
    """


_ClientCreateChannelResponseChannelInputAttachmentsInputSettingsVideoSelectorSelectorSettingsVideoSelectorPidTypeDef = TypedDict(
    "_ClientCreateChannelResponseChannelInputAttachmentsInputSettingsVideoSelectorSelectorSettingsVideoSelectorPidTypeDef",
    {"Pid": int},
    total=False,
)


class ClientCreateChannelResponseChannelInputAttachmentsInputSettingsVideoSelectorSelectorSettingsVideoSelectorPidTypeDef(
    _ClientCreateChannelResponseChannelInputAttachmentsInputSettingsVideoSelectorSelectorSettingsVideoSelectorPidTypeDef
):
    """
    Type definition for
    `ClientCreateChannelResponseChannelInputAttachmentsInputSettingsVideoSelectorSelectorSettings`
    `VideoSelectorPid`

    - **Pid** *(integer) --* Selects a specific PID from within a video source.
    """


_ClientCreateChannelResponseChannelInputAttachmentsInputSettingsVideoSelectorSelectorSettingsVideoSelectorProgramIdTypeDef = TypedDict(
    "_ClientCreateChannelResponseChannelInputAttachmentsInputSettingsVideoSelectorSelectorSettingsVideoSelectorProgramIdTypeDef",
    {"ProgramId": int},
    total=False,
)


class ClientCreateChannelResponseChannelInputAttachmentsInputSettingsVideoSelectorSelectorSettingsVideoSelectorProgramIdTypeDef(
    _ClientCreateChannelResponseChannelInputAttachmentsInputSettingsVideoSelectorSelectorSettingsVideoSelectorProgramIdTypeDef
):
    """
    Type definition for
    `ClientCreateChannelResponseChannelInputAttachmentsInputSettingsVideoSelectorSelectorSettings`
    `VideoSelectorProgramId`

    - **ProgramId** *(integer) --* Selects a specific program from within a multi-program transport
    stream. If the program doesn't exist, the first program within the transport stream will be
    selected by default.
    """


_ClientCreateChannelResponseChannelInputAttachmentsInputSettingsVideoSelectorSelectorSettingsTypeDef = TypedDict(
    "_ClientCreateChannelResponseChannelInputAttachmentsInputSettingsVideoSelectorSelectorSettingsTypeDef",
    {
        "VideoSelectorPid": ClientCreateChannelResponseChannelInputAttachmentsInputSettingsVideoSelectorSelectorSettingsVideoSelectorPidTypeDef,
        "VideoSelectorProgramId": ClientCreateChannelResponseChannelInputAttachmentsInputSettingsVideoSelectorSelectorSettingsVideoSelectorProgramIdTypeDef,
    },
    total=False,
)


class ClientCreateChannelResponseChannelInputAttachmentsInputSettingsVideoSelectorSelectorSettingsTypeDef(
    _ClientCreateChannelResponseChannelInputAttachmentsInputSettingsVideoSelectorSelectorSettingsTypeDef
):
    """
    Type definition for
    `ClientCreateChannelResponseChannelInputAttachmentsInputSettingsVideoSelector`
    `SelectorSettings`

    - **VideoSelectorPid** *(dict) --* Video Selector Pid

      - **Pid** *(integer) --* Selects a specific PID from within a video source.

    - **VideoSelectorProgramId** *(dict) --* Video Selector Program Id

      - **ProgramId** *(integer) --* Selects a specific program from within a multi-program
      transport stream. If the program doesn't exist, the first program within the transport stream
      will be selected by default.
    """


_ClientCreateChannelResponseChannelInputAttachmentsInputSettingsVideoSelectorTypeDef = TypedDict(
    "_ClientCreateChannelResponseChannelInputAttachmentsInputSettingsVideoSelectorTypeDef",
    {
        "ColorSpace": str,
        "ColorSpaceUsage": str,
        "SelectorSettings": ClientCreateChannelResponseChannelInputAttachmentsInputSettingsVideoSelectorSelectorSettingsTypeDef,
    },
    total=False,
)


class ClientCreateChannelResponseChannelInputAttachmentsInputSettingsVideoSelectorTypeDef(
    _ClientCreateChannelResponseChannelInputAttachmentsInputSettingsVideoSelectorTypeDef
):
    """
    Type definition for `ClientCreateChannelResponseChannelInputAttachmentsInputSettings`
    `VideoSelector`

    - **ColorSpace** *(string) --* Specifies the color space of an input. This setting works in
    tandem with colorSpaceUsage and a video description's colorSpaceSettingsChoice to determine if
    any conversion will be performed.

    - **ColorSpaceUsage** *(string) --* Applies only if colorSpace is a value other than follow.
    This field controls how the value in the colorSpace field will be used. fallback means that when
    the input does include color space data, that data will be used, but when the input has no color
    space data, the value in colorSpace will be used. Choose fallback if your input is sometimes
    missing color space data, but when it does have color space data, that data is correct. force
    means to always use the value in colorSpace. Choose force if your input usually has no color
    space data or might have unreliable color space data.

    - **SelectorSettings** *(dict) --* The video selector settings.

      - **VideoSelectorPid** *(dict) --* Video Selector Pid

        - **Pid** *(integer) --* Selects a specific PID from within a video source.

      - **VideoSelectorProgramId** *(dict) --* Video Selector Program Id

        - **ProgramId** *(integer) --* Selects a specific program from within a multi-program
        transport stream. If the program doesn't exist, the first program within the transport
        stream will be selected by default.
    """


_ClientCreateChannelResponseChannelInputAttachmentsInputSettingsTypeDef = TypedDict(
    "_ClientCreateChannelResponseChannelInputAttachmentsInputSettingsTypeDef",
    {
        "AudioSelectors": List[
            ClientCreateChannelResponseChannelInputAttachmentsInputSettingsAudioSelectorsTypeDef
        ],
        "CaptionSelectors": List[
            ClientCreateChannelResponseChannelInputAttachmentsInputSettingsCaptionSelectorsTypeDef
        ],
        "DeblockFilter": str,
        "DenoiseFilter": str,
        "FilterStrength": int,
        "InputFilter": str,
        "NetworkInputSettings": ClientCreateChannelResponseChannelInputAttachmentsInputSettingsNetworkInputSettingsTypeDef,
        "SourceEndBehavior": str,
        "VideoSelector": ClientCreateChannelResponseChannelInputAttachmentsInputSettingsVideoSelectorTypeDef,
    },
    total=False,
)


class ClientCreateChannelResponseChannelInputAttachmentsInputSettingsTypeDef(
    _ClientCreateChannelResponseChannelInputAttachmentsInputSettingsTypeDef
):
    """
    Type definition for `ClientCreateChannelResponseChannelInputAttachments` `InputSettings`

    - **AudioSelectors** *(list) --* Used to select the audio stream to decode for inputs that have
    multiple available.

      - *(dict) --* Audio Selector

        - **Name** *(string) --* The name of this AudioSelector. AudioDescriptions will use this
        name to uniquely identify this Selector. Selector names should be unique per input.

        - **SelectorSettings** *(dict) --* The audio selector settings.

          - **AudioLanguageSelection** *(dict) --* Audio Language Selection

            - **LanguageCode** *(string) --* Selects a specific three-letter language code from
            within an audio source.

            - **LanguageSelectionPolicy** *(string) --* When set to "strict", the transport stream
            demux strictly identifies audio streams by their language descriptor. If a PMT update
            occurs such that an audio stream matching the initially selected language is no longer
            present then mute will be encoded until the language returns. If "loose", then on a PMT
            update the demux will choose another audio stream in the program with the same stream
            type if it can't find one with the same language.

          - **AudioPidSelection** *(dict) --* Audio Pid Selection

            - **Pid** *(integer) --* Selects a specific PID from within a source.

    - **CaptionSelectors** *(list) --* Used to select the caption input to use for inputs that have
    multiple available.

      - *(dict) --* Output groups for this Live Event. Output groups contain information about where
      streams should be distributed.

        - **LanguageCode** *(string) --* When specified this field indicates the three letter
        language code of the caption track to extract from the source.

        - **Name** *(string) --* Name identifier for a caption selector. This name is used to
        associate this caption selector with one or more caption descriptions. Names must be unique
        within an event.

        - **SelectorSettings** *(dict) --* Caption selector settings.

          - **AribSourceSettings** *(dict) --* Arib Source Settings

          - **DvbSubSourceSettings** *(dict) --* Dvb Sub Source Settings

            - **Pid** *(integer) --* When using DVB-Sub with Burn-In or SMPTE-TT, use this PID for
            the source content. Unused for DVB-Sub passthrough. All DVB-Sub content is passed
            through, regardless of selectors.

          - **EmbeddedSourceSettings** *(dict) --* Embedded Source Settings

            - **Convert608To708** *(string) --* If upconvert, 608 data is both passed through via
            the "608 compatibility bytes" fields of the 708 wrapper as well as translated into 708.
            708 data present in the source content will be discarded.

            - **Scte20Detection** *(string) --* Set to "auto" to handle streams with intermittent
            and/or non-aligned SCTE-20 and Embedded captions.

            - **Source608ChannelNumber** *(integer) --* Specifies the 608/708 channel number within
            the video track from which to extract captions. Unused for passthrough.

            - **Source608TrackNumber** *(integer) --* This field is unused and deprecated.

          - **Scte20SourceSettings** *(dict) --* Scte20 Source Settings

            - **Convert608To708** *(string) --* If upconvert, 608 data is both passed through via
            the "608 compatibility bytes" fields of the 708 wrapper as well as translated into 708.
            708 data present in the source content will be discarded.

            - **Source608ChannelNumber** *(integer) --* Specifies the 608/708 channel number within
            the video track from which to extract captions. Unused for passthrough.

          - **Scte27SourceSettings** *(dict) --* Scte27 Source Settings

            - **Pid** *(integer) --* The pid field is used in conjunction with the caption selector
            languageCode field as follows: - Specify PID and Language: Extracts captions from that
            PID; the language is "informational". - Specify PID and omit Language: Extracts the
            specified PID. - Omit PID and specify Language: Extracts the specified language,
            whichever PID that happens to be. - Omit PID and omit Language: Valid only if source is
            DVB-Sub that is being passed through; all languages will be passed through.

          - **TeletextSourceSettings** *(dict) --* Teletext Source Settings

            - **PageNumber** *(string) --* Specifies the teletext page number within the data stream
            from which to extract captions. Range of 0x100 (256) to 0x8FF (2303). Unused for
            passthrough. Should be specified as a hexadecimal string with no "0x" prefix.

    - **DeblockFilter** *(string) --* Enable or disable the deblock filter when filtering.

    - **DenoiseFilter** *(string) --* Enable or disable the denoise filter when filtering.

    - **FilterStrength** *(integer) --* Adjusts the magnitude of filtering from 1 (minimal) to 5
    (strongest).

    - **InputFilter** *(string) --* Turns on the filter for this input. MPEG-2 inputs have the
    deblocking filter enabled by default. 1) auto - filtering will be applied depending on input
    type/quality 2) disabled - no filtering will be applied to the input 3) forced - filtering will
    be applied regardless of input type

    - **NetworkInputSettings** *(dict) --* Input settings.

      - **HlsInputSettings** *(dict) --* Specifies HLS input settings when the uri is for a HLS
      manifest.

        - **Bandwidth** *(integer) --* When specified the HLS stream with the m3u8 BANDWIDTH that
        most closely matches this value will be chosen, otherwise the highest bandwidth stream in
        the m3u8 will be chosen. The bitrate is specified in bits per second, as in an HLS manifest.

        - **BufferSegments** *(integer) --* When specified, reading of the HLS input will begin this
        many buffer segments from the end (most recently written segment). When not specified, the
        HLS input will begin with the first segment specified in the m3u8.

        - **Retries** *(integer) --* The number of consecutive times that attempts to read a
        manifest or segment must fail before the input is considered unavailable.

        - **RetryInterval** *(integer) --* The number of seconds between retries when an attempt to
        read a manifest or segment fails.

      - **ServerValidation** *(string) --* Check HTTPS server certificates. When set to
      checkCryptographyOnly, cryptography in the certificate will be checked, but not the server's
      name. Certain subdomains (notably S3 buckets that use dots in the bucket name) do not strictly
      match the corresponding certificate's wildcard pattern and would otherwise cause the event to
      error. This setting is ignored for protocols that do not use https.

    - **SourceEndBehavior** *(string) --* Loop input if it is a file. This allows a file input to be
    streamed indefinitely.

    - **VideoSelector** *(dict) --* Informs which video elementary stream to decode for input types
    that have multiple available.

      - **ColorSpace** *(string) --* Specifies the color space of an input. This setting works in
      tandem with colorSpaceUsage and a video description's colorSpaceSettingsChoice to determine if
      any conversion will be performed.

      - **ColorSpaceUsage** *(string) --* Applies only if colorSpace is a value other than follow.
      This field controls how the value in the colorSpace field will be used. fallback means that
      when the input does include color space data, that data will be used, but when the input has
      no color space data, the value in colorSpace will be used. Choose fallback if your input is
      sometimes missing color space data, but when it does have color space data, that data is
      correct. force means to always use the value in colorSpace. Choose force if your input usually
      has no color space data or might have unreliable color space data.

      - **SelectorSettings** *(dict) --* The video selector settings.

        - **VideoSelectorPid** *(dict) --* Video Selector Pid

          - **Pid** *(integer) --* Selects a specific PID from within a video source.

        - **VideoSelectorProgramId** *(dict) --* Video Selector Program Id

          - **ProgramId** *(integer) --* Selects a specific program from within a multi-program
          transport stream. If the program doesn't exist, the first program within the transport
          stream will be selected by default.
    """


_ClientCreateChannelResponseChannelInputAttachmentsTypeDef = TypedDict(
    "_ClientCreateChannelResponseChannelInputAttachmentsTypeDef",
    {
        "InputAttachmentName": str,
        "InputId": str,
        "InputSettings": ClientCreateChannelResponseChannelInputAttachmentsInputSettingsTypeDef,
    },
    total=False,
)


class ClientCreateChannelResponseChannelInputAttachmentsTypeDef(
    _ClientCreateChannelResponseChannelInputAttachmentsTypeDef
):
    """
    Type definition for `ClientCreateChannelResponseChannel` `InputAttachments`

    - **InputAttachmentName** *(string) --* User-specified name for the attachment. This is required
    if the user wants to use this input in an input switch action.

    - **InputId** *(string) --* The ID of the input

    - **InputSettings** *(dict) --* Settings of an input (caption selector, etc.)

      - **AudioSelectors** *(list) --* Used to select the audio stream to decode for inputs that
      have multiple available.

        - *(dict) --* Audio Selector

          - **Name** *(string) --* The name of this AudioSelector. AudioDescriptions will use this
          name to uniquely identify this Selector. Selector names should be unique per input.

          - **SelectorSettings** *(dict) --* The audio selector settings.

            - **AudioLanguageSelection** *(dict) --* Audio Language Selection

              - **LanguageCode** *(string) --* Selects a specific three-letter language code from
              within an audio source.

              - **LanguageSelectionPolicy** *(string) --* When set to "strict", the transport stream
              demux strictly identifies audio streams by their language descriptor. If a PMT update
              occurs such that an audio stream matching the initially selected language is no longer
              present then mute will be encoded until the language returns. If "loose", then on a
              PMT update the demux will choose another audio stream in the program with the same
              stream type if it can't find one with the same language.

            - **AudioPidSelection** *(dict) --* Audio Pid Selection

              - **Pid** *(integer) --* Selects a specific PID from within a source.

      - **CaptionSelectors** *(list) --* Used to select the caption input to use for inputs that
      have multiple available.

        - *(dict) --* Output groups for this Live Event. Output groups contain information about
        where streams should be distributed.

          - **LanguageCode** *(string) --* When specified this field indicates the three letter
          language code of the caption track to extract from the source.

          - **Name** *(string) --* Name identifier for a caption selector. This name is used to
          associate this caption selector with one or more caption descriptions. Names must be
          unique within an event.

          - **SelectorSettings** *(dict) --* Caption selector settings.

            - **AribSourceSettings** *(dict) --* Arib Source Settings

            - **DvbSubSourceSettings** *(dict) --* Dvb Sub Source Settings

              - **Pid** *(integer) --* When using DVB-Sub with Burn-In or SMPTE-TT, use this PID for
              the source content. Unused for DVB-Sub passthrough. All DVB-Sub content is passed
              through, regardless of selectors.

            - **EmbeddedSourceSettings** *(dict) --* Embedded Source Settings

              - **Convert608To708** *(string) --* If upconvert, 608 data is both passed through via
              the "608 compatibility bytes" fields of the 708 wrapper as well as translated into
              708. 708 data present in the source content will be discarded.

              - **Scte20Detection** *(string) --* Set to "auto" to handle streams with intermittent
              and/or non-aligned SCTE-20 and Embedded captions.

              - **Source608ChannelNumber** *(integer) --* Specifies the 608/708 channel number
              within the video track from which to extract captions. Unused for passthrough.

              - **Source608TrackNumber** *(integer) --* This field is unused and deprecated.

            - **Scte20SourceSettings** *(dict) --* Scte20 Source Settings

              - **Convert608To708** *(string) --* If upconvert, 608 data is both passed through via
              the "608 compatibility bytes" fields of the 708 wrapper as well as translated into
              708. 708 data present in the source content will be discarded.

              - **Source608ChannelNumber** *(integer) --* Specifies the 608/708 channel number
              within the video track from which to extract captions. Unused for passthrough.

            - **Scte27SourceSettings** *(dict) --* Scte27 Source Settings

              - **Pid** *(integer) --* The pid field is used in conjunction with the caption
              selector languageCode field as follows: - Specify PID and Language: Extracts captions
              from that PID; the language is "informational". - Specify PID and omit Language:
              Extracts the specified PID. - Omit PID and specify Language: Extracts the specified
              language, whichever PID that happens to be. - Omit PID and omit Language: Valid only
              if source is DVB-Sub that is being passed through; all languages will be passed
              through.

            - **TeletextSourceSettings** *(dict) --* Teletext Source Settings

              - **PageNumber** *(string) --* Specifies the teletext page number within the data
              stream from which to extract captions. Range of 0x100 (256) to 0x8FF (2303). Unused
              for passthrough. Should be specified as a hexadecimal string with no "0x" prefix.

      - **DeblockFilter** *(string) --* Enable or disable the deblock filter when filtering.

      - **DenoiseFilter** *(string) --* Enable or disable the denoise filter when filtering.

      - **FilterStrength** *(integer) --* Adjusts the magnitude of filtering from 1 (minimal) to 5
      (strongest).

      - **InputFilter** *(string) --* Turns on the filter for this input. MPEG-2 inputs have the
      deblocking filter enabled by default. 1) auto - filtering will be applied depending on input
      type/quality 2) disabled - no filtering will be applied to the input 3) forced - filtering
      will be applied regardless of input type

      - **NetworkInputSettings** *(dict) --* Input settings.

        - **HlsInputSettings** *(dict) --* Specifies HLS input settings when the uri is for a HLS
        manifest.

          - **Bandwidth** *(integer) --* When specified the HLS stream with the m3u8 BANDWIDTH that
          most closely matches this value will be chosen, otherwise the highest bandwidth stream in
          the m3u8 will be chosen. The bitrate is specified in bits per second, as in an HLS
          manifest.

          - **BufferSegments** *(integer) --* When specified, reading of the HLS input will begin
          this many buffer segments from the end (most recently written segment). When not
          specified, the HLS input will begin with the first segment specified in the m3u8.

          - **Retries** *(integer) --* The number of consecutive times that attempts to read a
          manifest or segment must fail before the input is considered unavailable.

          - **RetryInterval** *(integer) --* The number of seconds between retries when an attempt
          to read a manifest or segment fails.

        - **ServerValidation** *(string) --* Check HTTPS server certificates. When set to
        checkCryptographyOnly, cryptography in the certificate will be checked, but not the server's
        name. Certain subdomains (notably S3 buckets that use dots in the bucket name) do not
        strictly match the corresponding certificate's wildcard pattern and would otherwise cause
        the event to error. This setting is ignored for protocols that do not use https.

      - **SourceEndBehavior** *(string) --* Loop input if it is a file. This allows a file input to
      be streamed indefinitely.

      - **VideoSelector** *(dict) --* Informs which video elementary stream to decode for input
      types that have multiple available.

        - **ColorSpace** *(string) --* Specifies the color space of an input. This setting works in
        tandem with colorSpaceUsage and a video description's colorSpaceSettingsChoice to determine
        if any conversion will be performed.

        - **ColorSpaceUsage** *(string) --* Applies only if colorSpace is a value other than follow.
        This field controls how the value in the colorSpace field will be used. fallback means that
        when the input does include color space data, that data will be used, but when the input has
        no color space data, the value in colorSpace will be used. Choose fallback if your input is
        sometimes missing color space data, but when it does have color space data, that data is
        correct. force means to always use the value in colorSpace. Choose force if your input
        usually has no color space data or might have unreliable color space data.

        - **SelectorSettings** *(dict) --* The video selector settings.

          - **VideoSelectorPid** *(dict) --* Video Selector Pid

            - **Pid** *(integer) --* Selects a specific PID from within a video source.

          - **VideoSelectorProgramId** *(dict) --* Video Selector Program Id

            - **ProgramId** *(integer) --* Selects a specific program from within a multi-program
            transport stream. If the program doesn't exist, the first program within the transport
            stream will be selected by default.
    """


_ClientCreateChannelResponseChannelInputSpecificationTypeDef = TypedDict(
    "_ClientCreateChannelResponseChannelInputSpecificationTypeDef",
    {"Codec": str, "MaximumBitrate": str, "Resolution": str},
    total=False,
)


class ClientCreateChannelResponseChannelInputSpecificationTypeDef(
    _ClientCreateChannelResponseChannelInputSpecificationTypeDef
):
    """
    Type definition for `ClientCreateChannelResponseChannel` `InputSpecification`

    - **Codec** *(string) --* Input codec

    - **MaximumBitrate** *(string) --* Maximum input bitrate, categorized coarsely

    - **Resolution** *(string) --* Input resolution, categorized coarsely
    """


_ClientCreateChannelResponseChannelPipelineDetailsTypeDef = TypedDict(
    "_ClientCreateChannelResponseChannelPipelineDetailsTypeDef",
    {"ActiveInputAttachmentName": str, "ActiveInputSwitchActionName": str, "PipelineId": str},
    total=False,
)


class ClientCreateChannelResponseChannelPipelineDetailsTypeDef(
    _ClientCreateChannelResponseChannelPipelineDetailsTypeDef
):
    """
    Type definition for `ClientCreateChannelResponseChannel` `PipelineDetails`

    - **ActiveInputAttachmentName** *(string) --* The name of the active input attachment currently
    being ingested by this pipeline.

    - **ActiveInputSwitchActionName** *(string) --* The name of the input switch schedule action
    that occurred most recently and that resulted in the switch to the current input attachment for
    this pipeline.

    - **PipelineId** *(string) --* Pipeline ID
    """


_ClientCreateChannelResponseChannelTypeDef = TypedDict(
    "_ClientCreateChannelResponseChannelTypeDef",
    {
        "Arn": str,
        "ChannelClass": str,
        "Destinations": List[ClientCreateChannelResponseChannelDestinationsTypeDef],
        "EgressEndpoints": List[ClientCreateChannelResponseChannelEgressEndpointsTypeDef],
        "EncoderSettings": ClientCreateChannelResponseChannelEncoderSettingsTypeDef,
        "Id": str,
        "InputAttachments": List[ClientCreateChannelResponseChannelInputAttachmentsTypeDef],
        "InputSpecification": ClientCreateChannelResponseChannelInputSpecificationTypeDef,
        "LogLevel": str,
        "Name": str,
        "PipelineDetails": List[ClientCreateChannelResponseChannelPipelineDetailsTypeDef],
        "PipelinesRunningCount": int,
        "RoleArn": str,
        "State": str,
        "Tags": Dict[str, str],
    },
    total=False,
)


class ClientCreateChannelResponseChannelTypeDef(_ClientCreateChannelResponseChannelTypeDef):
    """
    Type definition for `ClientCreateChannelResponse` `Channel`

    - **Arn** *(string) --* The unique arn of the channel.

    - **ChannelClass** *(string) --* The class for this channel. STANDARD for a channel with two
    pipelines or SINGLE_PIPELINE for a channel with one pipeline.

    - **Destinations** *(list) --* A list of destinations of the channel. For UDP outputs, there is
    one destination per output. For other types (HLS, for example), there is one destination per
    packager.

      - *(dict) --* Placeholder documentation for OutputDestination

        - **Id** *(string) --* User-specified id. This is used in an output group or an output.

        - **MediaPackageSettings** *(list) --* Destination settings for a MediaPackage output; one
        destination for both encoders.

          - *(dict) --* MediaPackage Output Destination Settings

            - **ChannelId** *(string) --* ID of the channel in MediaPackage that is the destination
            for this output group. You do not need to specify the individual inputs in MediaPackage;
            MediaLive will handle the connection of the two MediaLive pipelines to the two
            MediaPackage inputs. The MediaPackage channel and MediaLive channel must be in the same
            region.

        - **MultiplexSettings** *(dict) --* Destination settings for a Multiplex output; one
        destination for both encoders.

          - **MultiplexId** *(string) --* The ID of the Multiplex that the encoder is providing
          output to. You do not need to specify the individual inputs to the Multiplex; MediaLive
          will handle the connection of the two MediaLive pipelines to the two Multiplex instances.
          The Multiplex must be in the same region as the Channel.

          - **ProgramName** *(string) --* The program name of the Multiplex program that the encoder
          is providing output to.

        - **Settings** *(list) --* Destination settings for a standard output; one destination for
        each redundant encoder.

          - *(dict) --* Placeholder documentation for OutputDestinationSettings

            - **PasswordParam** *(string) --* key used to extract the password from EC2 Parameter
            store

            - **StreamName** *(string) --* Stream name for RTMP destinations (URLs of type rtmp://)

            - **Url** *(string) --* A URL specifying a destination

            - **Username** *(string) --* username for destination

    - **EgressEndpoints** *(list) --* The endpoints where outgoing connections initiate from

      - *(dict) --* Placeholder documentation for ChannelEgressEndpoint

        - **SourceIp** *(string) --* Public IP of where a channel's output comes from

    - **EncoderSettings** *(dict) --* Encoder Settings

      - **AudioDescriptions** *(list) --* Placeholder documentation for __listOfAudioDescription

        - *(dict) --* Audio Description

          - **AudioNormalizationSettings** *(dict) --* Advanced audio normalization settings.

            - **Algorithm** *(string) --* Audio normalization algorithm to use. itu17701 conforms to
            the CALM Act specification, itu17702 conforms to the EBU R-128 specification.

            - **AlgorithmControl** *(string) --* When set to correctAudio the output audio is
            corrected using the chosen algorithm. If set to measureOnly, the audio will be measured
            but not adjusted.

            - **TargetLkfs** *(float) --* Target LKFS(loudness) to adjust volume to. If no value is
            entered, a default value will be used according to the chosen algorithm. The CALM Act
            (1770-1) recommends a target of -24 LKFS. The EBU R-128 specification (1770-2)
            recommends a target of -23 LKFS.

          - **AudioSelectorName** *(string) --* The name of the AudioSelector used as the source for
          this AudioDescription.

          - **AudioType** *(string) --* Applies only if audioTypeControl is useConfigured. The
          values for audioType are defined in ISO-IEC 13818-1.

          - **AudioTypeControl** *(string) --* Determines how audio type is determined. followInput:
          If the input contains an ISO 639 audioType, then that value is passed through to the
          output. If the input contains no ISO 639 audioType, the value in Audio Type is included in
          the output. useConfigured: The value in Audio Type is included in the output. Note that
          this field and audioType are both ignored if inputType is broadcasterMixedAd.

          - **CodecSettings** *(dict) --* Audio codec settings.

            - **AacSettings** *(dict) --* Aac Settings

              - **Bitrate** *(float) --* Average bitrate in bits/second. Valid values depend on rate
              control mode and profile.

              - **CodingMode** *(string) --* Mono, Stereo, or 5.1 channel layout. Valid values
              depend on rate control mode and profile. The adReceiverMix setting receives a stereo
              description plus control track and emits a mono AAC encode of the description track,
              with control data emitted in the PES header as per ETSI TS 101 154 Annex E.

              - **InputType** *(string) --* Set to "broadcasterMixedAd" when input contains
              pre-mixed main audio + AD (narration) as a stereo pair. The Audio Type field
              (audioType) will be set to 3, which signals to downstream systems that this stream
              contains "broadcaster mixed AD". Note that the input received by the encoder must
              contain pre-mixed audio; the encoder does not perform the mixing. The values in
              audioTypeControl and audioType (in AudioDescription) are ignored when set to
              broadcasterMixedAd. Leave set to "normal" when input does not contain pre-mixed audio
              + AD.

              - **Profile** *(string) --* AAC Profile.

              - **RateControlMode** *(string) --* Rate Control Mode.

              - **RawFormat** *(string) --* Sets LATM / LOAS AAC output for raw containers.

              - **SampleRate** *(float) --* Sample rate in Hz. Valid values depend on rate control
              mode and profile.

              - **Spec** *(string) --* Use MPEG-2 AAC audio instead of MPEG-4 AAC audio for raw or
              MPEG-2 Transport Stream containers.

              - **VbrQuality** *(string) --* VBR Quality Level - Only used if rateControlMode is
              VBR.

            - **Ac3Settings** *(dict) --* Ac3 Settings

              - **Bitrate** *(float) --* Average bitrate in bits/second. Valid bitrates depend on
              the coding mode.

              - **BitstreamMode** *(string) --* Specifies the bitstream mode (bsmod) for the emitted
              AC-3 stream. See ATSC A/52-2012 for background on these values.

              - **CodingMode** *(string) --* Dolby Digital coding mode. Determines number of
              channels.

              - **Dialnorm** *(integer) --* Sets the dialnorm for the output. If excluded and input
              audio is Dolby Digital, dialnorm will be passed through.

              - **DrcProfile** *(string) --* If set to filmStandard, adds dynamic range compression
              signaling to the output bitstream as defined in the Dolby Digital specification.

              - **LfeFilter** *(string) --* When set to enabled, applies a 120Hz lowpass filter to
              the LFE channel prior to encoding. Only valid in codingMode32Lfe mode.

              - **MetadataControl** *(string) --* When set to "followInput", encoder metadata will
              be sourced from the DD, DD+, or DolbyE decoder that supplied this audio data. If audio
              was not supplied from one of these streams, then the static metadata settings will be
              used.

            - **Eac3Settings** *(dict) --* Eac3 Settings

              - **AttenuationControl** *(string) --* When set to attenuate3Db, applies a 3 dB
              attenuation to the surround channels. Only used for 3/2 coding mode.

              - **Bitrate** *(float) --* Average bitrate in bits/second. Valid bitrates depend on
              the coding mode.

              - **BitstreamMode** *(string) --* Specifies the bitstream mode (bsmod) for the emitted
              E-AC-3 stream. See ATSC A/52-2012 (Annex E) for background on these values.

              - **CodingMode** *(string) --* Dolby Digital Plus coding mode. Determines number of
              channels.

              - **DcFilter** *(string) --* When set to enabled, activates a DC highpass filter for
              all input channels.

              - **Dialnorm** *(integer) --* Sets the dialnorm for the output. If blank and input
              audio is Dolby Digital Plus, dialnorm will be passed through.

              - **DrcLine** *(string) --* Sets the Dolby dynamic range compression profile.

              - **DrcRf** *(string) --* Sets the profile for heavy Dolby dynamic range compression,
              ensures that the instantaneous signal peaks do not exceed specified levels.

              - **LfeControl** *(string) --* When encoding 3/2 audio, setting to lfe enables the LFE
              channel

              - **LfeFilter** *(string) --* When set to enabled, applies a 120Hz lowpass filter to
              the LFE channel prior to encoding. Only valid with codingMode32 coding mode.

              - **LoRoCenterMixLevel** *(float) --* Left only/Right only center mix level. Only used
              for 3/2 coding mode.

              - **LoRoSurroundMixLevel** *(float) --* Left only/Right only surround mix level. Only
              used for 3/2 coding mode.

              - **LtRtCenterMixLevel** *(float) --* Left total/Right total center mix level. Only
              used for 3/2 coding mode.

              - **LtRtSurroundMixLevel** *(float) --* Left total/Right total surround mix level.
              Only used for 3/2 coding mode.

              - **MetadataControl** *(string) --* When set to followInput, encoder metadata will be
              sourced from the DD, DD+, or DolbyE decoder that supplied this audio data. If audio
              was not supplied from one of these streams, then the static metadata settings will be
              used.

              - **PassthroughControl** *(string) --* When set to whenPossible, input DD+ audio will
              be passed through if it is present on the input. This detection is dynamic over the
              life of the transcode. Inputs that alternate between DD+ and non-DD+ content will have
              a consistent DD+ output as the system alternates between passthrough and encoding.

              - **PhaseControl** *(string) --* When set to shift90Degrees, applies a 90-degree phase
              shift to the surround channels. Only used for 3/2 coding mode.

              - **StereoDownmix** *(string) --* Stereo downmix preference. Only used for 3/2 coding
              mode.

              - **SurroundExMode** *(string) --* When encoding 3/2 audio, sets whether an extra
              center back surround channel is matrix encoded into the left and right surround
              channels.

              - **SurroundMode** *(string) --* When encoding 2/0 audio, sets whether Dolby Surround
              is matrix encoded into the two channels.

            - **Mp2Settings** *(dict) --* Mp2 Settings

              - **Bitrate** *(float) --* Average bitrate in bits/second.

              - **CodingMode** *(string) --* The MPEG2 Audio coding mode. Valid values are
              codingMode10 (for mono) or codingMode20 (for stereo).

              - **SampleRate** *(float) --* Sample rate in Hz.

            - **PassThroughSettings** *(dict) --* Pass Through Settings

          - **LanguageCode** *(string) --* Indicates the language of the audio output track. Only
          used if languageControlMode is useConfigured, or there is no ISO 639 language code
          specified in the input.

          - **LanguageCodeControl** *(string) --* Choosing followInput will cause the ISO 639
          language code of the output to follow the ISO 639 language code of the input. The
          languageCode will be used when useConfigured is set, or when followInput is selected but
          there is no ISO 639 language code specified by the input.

          - **Name** *(string) --* The name of this AudioDescription. Outputs will use this name to
          uniquely identify this AudioDescription. Description names should be unique within this
          Live Event.

          - **RemixSettings** *(dict) --* Settings that control how input audio channels are remixed
          into the output audio channels.

            - **ChannelMappings** *(list) --* Mapping of input channels to output channels, with
            appropriate gain adjustments.

              - *(dict) --* Audio Channel Mapping

                - **InputChannelLevels** *(list) --* Indices and gain values for each input channel
                that should be remixed into this output channel.

                  - *(dict) --* Input Channel Level

                    - **Gain** *(integer) --* Remixing value. Units are in dB and acceptable values
                    are within the range from -60 (mute) and 6 dB.

                    - **InputChannel** *(integer) --* The index of the input channel used as a
                    source.

                - **OutputChannel** *(integer) --* The index of the output channel being produced.

            - **ChannelsIn** *(integer) --* Number of input channels to be used.

            - **ChannelsOut** *(integer) --* Number of output channels to be produced. Valid values:
            1, 2, 4, 6, 8

          - **StreamName** *(string) --* Used for MS Smooth and Apple HLS outputs. Indicates the
          name displayed by the player (eg. English, or Director Commentary).

      - **AvailBlanking** *(dict) --* Settings for ad avail blanking.

        - **AvailBlankingImage** *(dict) --* Blanking image to be used. Leave empty for solid black.
        Only bmp and png images are supported.

          - **PasswordParam** *(string) --* key used to extract the password from EC2 Parameter
          store

          - **Uri** *(string) --* Uniform Resource Identifier - This should be a path to a file
          accessible to the Live system (eg. a http:// URI) depending on the output type. For
          example, a RTMP destination should have a uri simliar to: "rtmp://fmsserver/live".

          - **Username** *(string) --* Documentation update needed

        - **State** *(string) --* When set to enabled, causes video, audio and captions to be
        blanked when insertion metadata is added.

      - **AvailConfiguration** *(dict) --* Event-wide configuration settings for ad avail insertion.

        - **AvailSettings** *(dict) --* Ad avail settings.

          - **Scte35SpliceInsert** *(dict) --* Scte35 Splice Insert

            - **AdAvailOffset** *(integer) --* When specified, this offset (in milliseconds) is
            added to the input Ad Avail PTS time. This only applies to embedded SCTE 104/35 messages
            and does not apply to OOB messages.

            - **NoRegionalBlackoutFlag** *(string) --* When set to ignore, Segment Descriptors with
            noRegionalBlackoutFlag set to 0 will no longer trigger blackouts or Ad Avail slates

            - **WebDeliveryAllowedFlag** *(string) --* When set to ignore, Segment Descriptors with
            webDeliveryAllowedFlag set to 0 will no longer trigger blackouts or Ad Avail slates

          - **Scte35TimeSignalApos** *(dict) --* Scte35 Time Signal Apos

            - **AdAvailOffset** *(integer) --* When specified, this offset (in milliseconds) is
            added to the input Ad Avail PTS time. This only applies to embedded SCTE 104/35 messages
            and does not apply to OOB messages.

            - **NoRegionalBlackoutFlag** *(string) --* When set to ignore, Segment Descriptors with
            noRegionalBlackoutFlag set to 0 will no longer trigger blackouts or Ad Avail slates

            - **WebDeliveryAllowedFlag** *(string) --* When set to ignore, Segment Descriptors with
            webDeliveryAllowedFlag set to 0 will no longer trigger blackouts or Ad Avail slates

      - **BlackoutSlate** *(dict) --* Settings for blackout slate.

        - **BlackoutSlateImage** *(dict) --* Blackout slate image to be used. Leave empty for solid
        black. Only bmp and png images are supported.

          - **PasswordParam** *(string) --* key used to extract the password from EC2 Parameter
          store

          - **Uri** *(string) --* Uniform Resource Identifier - This should be a path to a file
          accessible to the Live system (eg. a http:// URI) depending on the output type. For
          example, a RTMP destination should have a uri simliar to: "rtmp://fmsserver/live".

          - **Username** *(string) --* Documentation update needed

        - **NetworkEndBlackout** *(string) --* Setting to enabled causes the encoder to blackout the
        video, audio, and captions, and raise the "Network Blackout Image" slate when an SCTE104/35
        Network End Segmentation Descriptor is encountered. The blackout will be lifted when the
        Network Start Segmentation Descriptor is encountered. The Network End and Network Start
        descriptors must contain a network ID that matches the value entered in "Network ID".

        - **NetworkEndBlackoutImage** *(dict) --* Path to local file to use as Network End Blackout
        image. Image will be scaled to fill the entire output raster.

          - **PasswordParam** *(string) --* key used to extract the password from EC2 Parameter
          store

          - **Uri** *(string) --* Uniform Resource Identifier - This should be a path to a file
          accessible to the Live system (eg. a http:// URI) depending on the output type. For
          example, a RTMP destination should have a uri simliar to: "rtmp://fmsserver/live".

          - **Username** *(string) --* Documentation update needed

        - **NetworkId** *(string) --* Provides Network ID that matches EIDR ID format (e.g.,
        "10.XXXX/XXXX-XXXX-XXXX-XXXX-XXXX-C").

        - **State** *(string) --* When set to enabled, causes video, audio and captions to be
        blanked when indicated by program metadata.

      - **CaptionDescriptions** *(list) --* Settings for caption decriptions

        - *(dict) --* Caption Description

          - **CaptionSelectorName** *(string) --* Specifies which input caption selector to use as a
          caption source when generating output captions. This field should match a captionSelector
          name.

          - **DestinationSettings** *(dict) --* Additional settings for captions destination that
          depend on the destination type.

            - **AribDestinationSettings** *(dict) --* Arib Destination Settings

            - **BurnInDestinationSettings** *(dict) --* Burn In Destination Settings

              - **Alignment** *(string) --* If no explicit xPosition or yPosition is provided,
              setting alignment to centered will place the captions at the bottom center of the
              output. Similarly, setting a left alignment will align captions to the bottom left of
              the output. If x and y positions are given in conjunction with the alignment
              parameter, the font will be justified (either left or centered) relative to those
              coordinates. Selecting "smart" justification will left-justify live subtitles and
              center-justify pre-recorded subtitles. All burn-in and DVB-Sub font settings must
              match.

              - **BackgroundColor** *(string) --* Specifies the color of the rectangle behind the
              captions. All burn-in and DVB-Sub font settings must match.

              - **BackgroundOpacity** *(integer) --* Specifies the opacity of the background
              rectangle. 255 is opaque; 0 is transparent. Leaving this parameter out is equivalent
              to setting it to 0 (transparent). All burn-in and DVB-Sub font settings must match.

              - **Font** *(dict) --* External font file used for caption burn-in. File extension
              must be 'ttf' or 'tte'. Although the user can select output fonts for many different
              types of input captions, embedded, STL and teletext sources use a strict grid system.
              Using external fonts with these caption sources could cause unexpected display of
              proportional fonts. All burn-in and DVB-Sub font settings must match.

                - **PasswordParam** *(string) --* key used to extract the password from EC2
                Parameter store

                - **Uri** *(string) --* Uniform Resource Identifier - This should be a path to a
                file accessible to the Live system (eg. a http:// URI) depending on the output type.
                For example, a RTMP destination should have a uri simliar to:
                "rtmp://fmsserver/live".

                - **Username** *(string) --* Documentation update needed

              - **FontColor** *(string) --* Specifies the color of the burned-in captions. This
              option is not valid for source captions that are STL, 608/embedded or teletext. These
              source settings are already pre-defined by the caption stream. All burn-in and DVB-Sub
              font settings must match.

              - **FontOpacity** *(integer) --* Specifies the opacity of the burned-in captions. 255
              is opaque; 0 is transparent. All burn-in and DVB-Sub font settings must match.

              - **FontResolution** *(integer) --* Font resolution in DPI (dots per inch); default is
              96 dpi. All burn-in and DVB-Sub font settings must match.

              - **FontSize** *(string) --* When set to 'auto' fontSize will scale depending on the
              size of the output. Giving a positive integer will specify the exact font size in
              points. All burn-in and DVB-Sub font settings must match.

              - **OutlineColor** *(string) --* Specifies font outline color. This option is not
              valid for source captions that are either 608/embedded or teletext. These source
              settings are already pre-defined by the caption stream. All burn-in and DVB-Sub font
              settings must match.

              - **OutlineSize** *(integer) --* Specifies font outline size in pixels. This option is
              not valid for source captions that are either 608/embedded or teletext. These source
              settings are already pre-defined by the caption stream. All burn-in and DVB-Sub font
              settings must match.

              - **ShadowColor** *(string) --* Specifies the color of the shadow cast by the
              captions. All burn-in and DVB-Sub font settings must match.

              - **ShadowOpacity** *(integer) --* Specifies the opacity of the shadow. 255 is opaque;
              0 is transparent. Leaving this parameter out is equivalent to setting it to 0
              (transparent). All burn-in and DVB-Sub font settings must match.

              - **ShadowXOffset** *(integer) --* Specifies the horizontal offset of the shadow
              relative to the captions in pixels. A value of -2 would result in a shadow offset 2
              pixels to the left. All burn-in and DVB-Sub font settings must match.

              - **ShadowYOffset** *(integer) --* Specifies the vertical offset of the shadow
              relative to the captions in pixels. A value of -2 would result in a shadow offset 2
              pixels above the text. All burn-in and DVB-Sub font settings must match.

              - **TeletextGridControl** *(string) --* Controls whether a fixed grid size will be
              used to generate the output subtitles bitmap. Only applicable for Teletext inputs and
              DVB-Sub/Burn-in outputs.

              - **XPosition** *(integer) --* Specifies the horizontal position of the caption
              relative to the left side of the output in pixels. A value of 10 would result in the
              captions starting 10 pixels from the left of the output. If no explicit xPosition is
              provided, the horizontal caption position will be determined by the alignment
              parameter. All burn-in and DVB-Sub font settings must match.

              - **YPosition** *(integer) --* Specifies the vertical position of the caption relative
              to the top of the output in pixels. A value of 10 would result in the captions
              starting 10 pixels from the top of the output. If no explicit yPosition is provided,
              the caption will be positioned towards the bottom of the output. All burn-in and
              DVB-Sub font settings must match.

            - **DvbSubDestinationSettings** *(dict) --* Dvb Sub Destination Settings

              - **Alignment** *(string) --* If no explicit xPosition or yPosition is provided,
              setting alignment to centered will place the captions at the bottom center of the
              output. Similarly, setting a left alignment will align captions to the bottom left of
              the output. If x and y positions are given in conjunction with the alignment
              parameter, the font will be justified (either left or centered) relative to those
              coordinates. Selecting "smart" justification will left-justify live subtitles and
              center-justify pre-recorded subtitles. This option is not valid for source captions
              that are STL or 608/embedded. These source settings are already pre-defined by the
              caption stream. All burn-in and DVB-Sub font settings must match.

              - **BackgroundColor** *(string) --* Specifies the color of the rectangle behind the
              captions. All burn-in and DVB-Sub font settings must match.

              - **BackgroundOpacity** *(integer) --* Specifies the opacity of the background
              rectangle. 255 is opaque; 0 is transparent. Leaving this parameter blank is equivalent
              to setting it to 0 (transparent). All burn-in and DVB-Sub font settings must match.

              - **Font** *(dict) --* External font file used for caption burn-in. File extension
              must be 'ttf' or 'tte'. Although the user can select output fonts for many different
              types of input captions, embedded, STL and teletext sources use a strict grid system.
              Using external fonts with these caption sources could cause unexpected display of
              proportional fonts. All burn-in and DVB-Sub font settings must match.

                - **PasswordParam** *(string) --* key used to extract the password from EC2
                Parameter store

                - **Uri** *(string) --* Uniform Resource Identifier - This should be a path to a
                file accessible to the Live system (eg. a http:// URI) depending on the output type.
                For example, a RTMP destination should have a uri simliar to:
                "rtmp://fmsserver/live".

                - **Username** *(string) --* Documentation update needed

              - **FontColor** *(string) --* Specifies the color of the burned-in captions. This
              option is not valid for source captions that are STL, 608/embedded or teletext. These
              source settings are already pre-defined by the caption stream. All burn-in and DVB-Sub
              font settings must match.

              - **FontOpacity** *(integer) --* Specifies the opacity of the burned-in captions. 255
              is opaque; 0 is transparent. All burn-in and DVB-Sub font settings must match.

              - **FontResolution** *(integer) --* Font resolution in DPI (dots per inch); default is
              96 dpi. All burn-in and DVB-Sub font settings must match.

              - **FontSize** *(string) --* When set to auto fontSize will scale depending on the
              size of the output. Giving a positive integer will specify the exact font size in
              points. All burn-in and DVB-Sub font settings must match.

              - **OutlineColor** *(string) --* Specifies font outline color. This option is not
              valid for source captions that are either 608/embedded or teletext. These source
              settings are already pre-defined by the caption stream. All burn-in and DVB-Sub font
              settings must match.

              - **OutlineSize** *(integer) --* Specifies font outline size in pixels. This option is
              not valid for source captions that are either 608/embedded or teletext. These source
              settings are already pre-defined by the caption stream. All burn-in and DVB-Sub font
              settings must match.

              - **ShadowColor** *(string) --* Specifies the color of the shadow cast by the
              captions. All burn-in and DVB-Sub font settings must match.

              - **ShadowOpacity** *(integer) --* Specifies the opacity of the shadow. 255 is opaque;
              0 is transparent. Leaving this parameter blank is equivalent to setting it to 0
              (transparent). All burn-in and DVB-Sub font settings must match.

              - **ShadowXOffset** *(integer) --* Specifies the horizontal offset of the shadow
              relative to the captions in pixels. A value of -2 would result in a shadow offset 2
              pixels to the left. All burn-in and DVB-Sub font settings must match.

              - **ShadowYOffset** *(integer) --* Specifies the vertical offset of the shadow
              relative to the captions in pixels. A value of -2 would result in a shadow offset 2
              pixels above the text. All burn-in and DVB-Sub font settings must match.

              - **TeletextGridControl** *(string) --* Controls whether a fixed grid size will be
              used to generate the output subtitles bitmap. Only applicable for Teletext inputs and
              DVB-Sub/Burn-in outputs.

              - **XPosition** *(integer) --* Specifies the horizontal position of the caption
              relative to the left side of the output in pixels. A value of 10 would result in the
              captions starting 10 pixels from the left of the output. If no explicit xPosition is
              provided, the horizontal caption position will be determined by the alignment
              parameter. This option is not valid for source captions that are STL, 608/embedded or
              teletext. These source settings are already pre-defined by the caption stream. All
              burn-in and DVB-Sub font settings must match.

              - **YPosition** *(integer) --* Specifies the vertical position of the caption relative
              to the top of the output in pixels. A value of 10 would result in the captions
              starting 10 pixels from the top of the output. If no explicit yPosition is provided,
              the caption will be positioned towards the bottom of the output. This option is not
              valid for source captions that are STL, 608/embedded or teletext. These source
              settings are already pre-defined by the caption stream. All burn-in and DVB-Sub font
              settings must match.

            - **EmbeddedDestinationSettings** *(dict) --* Embedded Destination Settings

            - **EmbeddedPlusScte20DestinationSettings** *(dict) --* Embedded Plus Scte20 Destination
            Settings

            - **RtmpCaptionInfoDestinationSettings** *(dict) --* Rtmp Caption Info Destination
            Settings

            - **Scte20PlusEmbeddedDestinationSettings** *(dict) --* Scte20 Plus Embedded Destination
            Settings

            - **Scte27DestinationSettings** *(dict) --* Scte27 Destination Settings

            - **SmpteTtDestinationSettings** *(dict) --* Smpte Tt Destination Settings

            - **TeletextDestinationSettings** *(dict) --* Teletext Destination Settings

            - **TtmlDestinationSettings** *(dict) --* Ttml Destination Settings

              - **StyleControl** *(string) --* When set to passthrough, passes through style and
              position information from a TTML-like input source (TTML, SMPTE-TT, CFF-TT) to the
              CFF-TT output or TTML output.

            - **WebvttDestinationSettings** *(dict) --* Webvtt Destination Settings

          - **LanguageCode** *(string) --* ISO 639-2 three-digit code:
          http://www.loc.gov/standards/iso639-2/

          - **LanguageDescription** *(string) --* Human readable information to indicate captions
          available for players (eg. English, or Spanish).

          - **Name** *(string) --* Name of the caption description. Used to associate a caption
          description with an output. Names must be unique within an event.

      - **GlobalConfiguration** *(dict) --* Configuration settings that apply to the event as a
      whole.

        - **InitialAudioGain** *(integer) --* Value to set the initial audio gain for the Live
        Event.

        - **InputEndAction** *(string) --* Indicates the action to take when the current input
        completes (e.g. end-of-file). When switchAndLoopInputs is configured the encoder will
        restart at the beginning of the first input. When "none" is configured the encoder will
        transcode either black, a solid color, or a user specified slate images per the "Input Loss
        Behavior" configuration until the next input switch occurs (which is controlled through the
        Channel Schedule API).

        - **InputLossBehavior** *(dict) --* Settings for system actions when input is lost.

          - **BlackFrameMsec** *(integer) --* Documentation update needed

          - **InputLossImageColor** *(string) --* When input loss image type is "color" this field
          specifies the color to use. Value: 6 hex characters representing the values of RGB.

          - **InputLossImageSlate** *(dict) --* When input loss image type is "slate" these fields
          specify the parameters for accessing the slate.

            - **PasswordParam** *(string) --* key used to extract the password from EC2 Parameter
            store

            - **Uri** *(string) --* Uniform Resource Identifier - This should be a path to a file
            accessible to the Live system (eg. a http:// URI) depending on the output type. For
            example, a RTMP destination should have a uri simliar to: "rtmp://fmsserver/live".

            - **Username** *(string) --* Documentation update needed

          - **InputLossImageType** *(string) --* Indicates whether to substitute a solid color or a
          slate into the output after input loss exceeds blackFrameMsec.

          - **RepeatFrameMsec** *(integer) --* Documentation update needed

        - **OutputLockingMode** *(string) --* Indicates how MediaLive pipelines are synchronized.
        PIPELINELOCKING - MediaLive will attempt to synchronize the output of each pipeline to the
        other. EPOCHLOCKING - MediaLive will attempt to synchronize the output of each pipeline to
        the Unix epoch.

        - **OutputTimingSource** *(string) --* Indicates whether the rate of frames emitted by the
        Live encoder should be paced by its system clock (which optionally may be locked to another
        source via NTP) or should be locked to the clock of the source that is providing the input
        stream.

        - **SupportLowFramerateInputs** *(string) --* Adjusts video input buffer for streams with
        very low video framerates. This is commonly set to enabled for music channels with less than
        one video frame per second.

      - **NielsenConfiguration** *(dict) --* Nielsen configuration settings.

        - **DistributorId** *(string) --* Enter the Distributor ID assigned to your organization by
        Nielsen.

        - **NielsenPcmToId3Tagging** *(string) --* Enables Nielsen PCM to ID3 tagging

      - **OutputGroups** *(list) --* Placeholder documentation for __listOfOutputGroup

        - *(dict) --* Output groups for this Live Event. Output groups contain information about
        where streams should be distributed.

          - **Name** *(string) --* Custom output group name optionally defined by the user. Only
          letters, numbers, and the underscore character allowed; only 32 characters allowed.

          - **OutputGroupSettings** *(dict) --* Settings associated with the output group.

            - **ArchiveGroupSettings** *(dict) --* Archive Group Settings

              - **Destination** *(dict) --* A directory and base filename where archive files should
              be written.

                - **DestinationRefId** *(string) --* Placeholder documentation for __string

              - **RolloverInterval** *(integer) --* Number of seconds to write to archive file
              before closing and starting a new one.

            - **FrameCaptureGroupSettings** *(dict) --* Frame Capture Group Settings

              - **Destination** *(dict) --* The destination for the frame capture files. Either the
              URI for an Amazon S3 bucket and object, plus a file name prefix (for example,
              s3ssl://sportsDelivery/highlights/20180820/curling_) or the URI for a MediaStore
              container, plus a file name prefix (for example,
              mediastoressl://sportsDelivery/20180820/curling_). The final file names consist of the
              prefix from the destination field (for example, "curling_") + name modifier + the
              counter (5 digits, starting from 00001) + extension (which is always .jpg). For
              example, curlingLow.00001.jpg

                - **DestinationRefId** *(string) --* Placeholder documentation for __string

            - **HlsGroupSettings** *(dict) --* Hls Group Settings

              - **AdMarkers** *(list) --* Choose one or more ad marker types to pass SCTE35 signals
              through to this group of Apple HLS outputs.

                - *(string) --* Hls Ad Markers

              - **BaseUrlContent** *(string) --* A partial URI prefix that will be prepended to each
              output in the media .m3u8 file. Can be used if base manifest is delivered from a
              different URL than the main .m3u8 file.

              - **BaseUrlManifest** *(string) --* A partial URI prefix that will be prepended to
              each output in the media .m3u8 file. Can be used if base manifest is delivered from a
              different URL than the main .m3u8 file.

              - **CaptionLanguageMappings** *(list) --* Mapping of up to 4 caption channels to
              caption languages. Is only meaningful if captionLanguageSetting is set to "insert".

                - *(dict) --* Maps a caption channel to an ISO 693-2 language code
                (http://www.loc.gov/standards/iso639-2), with an optional description.

                  - **CaptionChannel** *(integer) --* The closed caption channel being described by
                  this CaptionLanguageMapping. Each channel mapping must have a unique channel
                  number (maximum of 4)

                  - **LanguageCode** *(string) --* Three character ISO 639-2 language code (see
                  http://www.loc.gov/standards/iso639-2)

                  - **LanguageDescription** *(string) --* Textual description of language

              - **CaptionLanguageSetting** *(string) --* Applies only to 608 Embedded output
              captions. insert: Include CLOSED-CAPTIONS lines in the manifest. Specify at least one
              language in the CC1 Language Code field. One CLOSED-CAPTION line is added for each
              Language Code you specify. Make sure to specify the languages in the order in which
              they appear in the original source (if the source is embedded format) or the order of
              the caption selectors (if the source is other than embedded). Otherwise, languages in
              the manifest will not match up properly with the output captions. none: Include
              CLOSED-CAPTIONS=
                  NONE line in the manifest. omit: Omit any CLOSED-CAPTIONS line from
              the manifest.

              - **ClientCache** *(string) --* When set to "disabled", sets the #EXT-X-ALLOW-CACHE:no
              tag in the manifest, which prevents clients from saving media segments for later
              replay.

              - **CodecSpecification** *(string) --* Specification to use (RFC-6381 or the default
              RFC-4281) during m3u8 playlist generation.

              - **ConstantIv** *(string) --* For use with encryptionType. This is a 128-bit, 16-byte
              hex value represented by a 32-character text string. If ivSource is set to "explicit"
              then this parameter is required and is used as the IV for encryption.

              - **Destination** *(dict) --* A directory or HTTP destination for the HLS segments,
              manifest files, and encryption keys (if enabled).

                - **DestinationRefId** *(string) --* Placeholder documentation for __string

              - **DirectoryStructure** *(string) --* Place segments in subdirectories.

              - **EncryptionType** *(string) --* Encrypts the segments with the given encryption
              scheme. Exclude this parameter if no encryption is desired.

              - **HlsCdnSettings** *(dict) --* Parameters that control interactions with the CDN.

                - **HlsAkamaiSettings** *(dict) --* Hls Akamai Settings

                  - **ConnectionRetryInterval** *(integer) --* Number of seconds to wait before
                  retrying connection to the CDN if the connection is lost.

                  - **FilecacheDuration** *(integer) --* Size in seconds of file cache for streaming
                  outputs.

                  - **HttpTransferMode** *(string) --* Specify whether or not to use chunked
                  transfer encoding to Akamai. User should contact Akamai to enable this feature.

                  - **NumRetries** *(integer) --* Number of retry attempts that will be made before
                  the Live Event is put into an error state.

                  - **RestartDelay** *(integer) --* If a streaming output fails, number of seconds
                  to wait until a restart is initiated. A value of 0 means never restart.

                  - **Salt** *(string) --* Salt for authenticated Akamai.

                  - **Token** *(string) --* Token parameter for authenticated akamai. If not
                  specified, _gda_ is used.

                - **HlsBasicPutSettings** *(dict) --* Hls Basic Put Settings

                  - **ConnectionRetryInterval** *(integer) --* Number of seconds to wait before
                  retrying connection to the CDN if the connection is lost.

                  - **FilecacheDuration** *(integer) --* Size in seconds of file cache for streaming
                  outputs.

                  - **NumRetries** *(integer) --* Number of retry attempts that will be made before
                  the Live Event is put into an error state.

                  - **RestartDelay** *(integer) --* If a streaming output fails, number of seconds
                  to wait until a restart is initiated. A value of 0 means never restart.

                - **HlsMediaStoreSettings** *(dict) --* Hls Media Store Settings

                  - **ConnectionRetryInterval** *(integer) --* Number of seconds to wait before
                  retrying connection to the CDN if the connection is lost.

                  - **FilecacheDuration** *(integer) --* Size in seconds of file cache for streaming
                  outputs.

                  - **MediaStoreStorageClass** *(string) --* When set to temporal, output files are
                  stored in non-persistent memory for faster reading and writing.

                  - **NumRetries** *(integer) --* Number of retry attempts that will be made before
                  the Live Event is put into an error state.

                  - **RestartDelay** *(integer) --* If a streaming output fails, number of seconds
                  to wait until a restart is initiated. A value of 0 means never restart.

                - **HlsWebdavSettings** *(dict) --* Hls Webdav Settings

                  - **ConnectionRetryInterval** *(integer) --* Number of seconds to wait before
                  retrying connection to the CDN if the connection is lost.

                  - **FilecacheDuration** *(integer) --* Size in seconds of file cache for streaming
                  outputs.

                  - **HttpTransferMode** *(string) --* Specify whether or not to use chunked
                  transfer encoding to WebDAV.

                  - **NumRetries** *(integer) --* Number of retry attempts that will be made before
                  the Live Event is put into an error state.

                  - **RestartDelay** *(integer) --* If a streaming output fails, number of seconds
                  to wait until a restart is initiated. A value of 0 means never restart.

              - **IFrameOnlyPlaylists** *(string) --* DISABLED: Do not create an I-frame-only
              manifest, but do create the master and media manifests (according to the Output
              Selection field). STANDARD: Create an I-frame-only manifest for each output that
              contains video, as well as the other manifests (according to the Output Selection
              field). The I-frame manifest contains a #EXT-X-I-FRAMES-ONLY tag to indicate it is
              I-frame only, and one or more #EXT-X-BYTERANGE entries identifying the I-frame
              position. For example, #EXT-X-BYTERANGE:160364@1461888"

              - **IndexNSegments** *(integer) --* Applies only if Mode field is LIVE. Specifies the
              maximum number of segments in the media manifest file. After this maximum, older
              segments are removed from the media manifest. This number must be less than or equal
              to the Keep Segments field.

              - **InputLossAction** *(string) --* Parameter that control output group behavior on
              input loss.

              - **IvInManifest** *(string) --* For use with encryptionType. The IV (Initialization
              Vector) is a 128-bit number used in conjunction with the key for encrypting blocks. If
              set to "include", IV is listed in the manifest, otherwise the IV is not in the
              manifest.

              - **IvSource** *(string) --* For use with encryptionType. The IV (Initialization
              Vector) is a 128-bit number used in conjunction with the key for encrypting blocks. If
              this setting is "followsSegmentNumber", it will cause the IV to change every segment
              (to match the segment number). If this is set to "explicit", you must enter a
              constantIv value.

              - **KeepSegments** *(integer) --* Applies only if Mode field is LIVE. Specifies the
              number of media segments (.ts files) to retain in the destination directory.

              - **KeyFormat** *(string) --* The value specifies how the key is represented in the
              resource identified by the URI. If parameter is absent, an implicit value of
              "identity" is used. A reverse DNS string can also be given.

              - **KeyFormatVersions** *(string) --* Either a single positive integer version value
              or a slash delimited list of version values (1/2/3).

              - **KeyProviderSettings** *(dict) --* The key provider settings.

                - **StaticKeySettings** *(dict) --* Static Key Settings

                  - **KeyProviderServer** *(dict) --* The URL of the license server used for
                  protecting content.

                    - **PasswordParam** *(string) --* key used to extract the password from EC2
                    Parameter store

                    - **Uri** *(string) --* Uniform Resource Identifier - This should be a path to a
                    file accessible to the Live system (eg. a http:// URI) depending on the output
                    type. For example, a RTMP destination should have a uri simliar to:
                    "rtmp://fmsserver/live".

                    - **Username** *(string) --* Documentation update needed

                  - **StaticKeyValue** *(string) --* Static key value as a 32 character hexadecimal
                  string.

              - **ManifestCompression** *(string) --* When set to gzip, compresses HLS playlist.

              - **ManifestDurationFormat** *(string) --* Indicates whether the output manifest
              should use floating point or integer values for segment duration.

              - **MinSegmentLength** *(integer) --* When set, minimumSegmentLength is enforced by
              looking ahead and back within the specified range for a nearby avail and extending the
              segment size if needed.

              - **Mode** *(string) --* If "vod", all segments are indexed and kept permanently in
              the destination and manifest. If "live", only the number segments specified in
              keepSegments and indexNSegments are kept; newer segments replace older segments, which
              may prevent players from rewinding all the way to the beginning of the event. VOD mode
              uses HLS EXT-X-PLAYLIST-TYPE of EVENT while the channel is running, converting it to a
              "VOD" type manifest on completion of the stream.

              - **OutputSelection** *(string) --* MANIFESTSANDSEGMENTS: Generates manifests (master
              manifest, if applicable, and media manifests) for this output group. SEGMENTSONLY:
              Does not generate any manifests for this output group.

              - **ProgramDateTime** *(string) --* Includes or excludes EXT-X-PROGRAM-DATE-TIME tag
              in .m3u8 manifest files. The value is calculated as follows: either the program date
              and time are initialized using the input timecode source, or the time is initialized
              using the input timecode source and the date is initialized using the timestampOffset.

              - **ProgramDateTimePeriod** *(integer) --* Period of insertion of
              EXT-X-PROGRAM-DATE-TIME entry, in seconds.

              - **RedundantManifest** *(string) --* ENABLED: The master manifest (.m3u8 file) for
              each pipeline includes information about both pipelines: first its own media files,
              then the media files of the other pipeline. This feature allows playout device that
              support stale manifest detection to switch from one manifest to the other, when the
              current manifest seems to be stale. There are still two destinations and two master
              manifests, but both master manifests reference the media files from both pipelines.
              DISABLED: The master manifest (.m3u8 file) for each pipeline includes information
              about its own pipeline only. For an HLS output group with MediaPackage as the
              destination, the DISABLED behavior is always followed. MediaPackage regenerates the
              manifests it serves to players so a redundant manifest from MediaLive is irrelevant.

              - **SegmentLength** *(integer) --* Length of MPEG-2 Transport Stream segments to
              create (in seconds). Note that segments will end on the next keyframe after this
              number of seconds, so actual segment length may be longer.

              - **SegmentationMode** *(string) --* useInputSegmentation has been deprecated. The
              configured segment size is always used.

              - **SegmentsPerSubdirectory** *(integer) --* Number of segments to write to a
              subdirectory before starting a new one. directoryStructure must be
              subdirectoryPerStream for this setting to have an effect.

              - **StreamInfResolution** *(string) --* Include or exclude RESOLUTION attribute for
              video in EXT-X-STREAM-INF tag of variant manifest.

              - **TimedMetadataId3Frame** *(string) --* Indicates ID3 frame that has the timecode.

              - **TimedMetadataId3Period** *(integer) --* Timed Metadata interval in seconds.

              - **TimestampDeltaMilliseconds** *(integer) --* Provides an extra millisecond delta
              offset to fine tune the timestamps.

              - **TsFileMode** *(string) --* SEGMENTEDFILES: Emit the program as segments - multiple
              .ts media files. SINGLEFILE: Applies only if Mode field is VOD. Emit the program as a
              single .ts media file. The media manifest includes #EXT-X-BYTERANGE tags to index
              segments for playback. A typical use for this value is when sending the output to AWS
              Elemental MediaConvert, which can accept only a single media file. Playback while the
              channel is running is not guaranteed due to HTTP server caching.

            - **MediaPackageGroupSettings** *(dict) --* Media Package Group Settings

              - **Destination** *(dict) --* MediaPackage channel destination.

                - **DestinationRefId** *(string) --* Placeholder documentation for __string

            - **MsSmoothGroupSettings** *(dict) --* Ms Smooth Group Settings

              - **AcquisitionPointId** *(string) --* The value of the "Acquisition Point Identity"
              element used in each message placed in the sparse track. Only enabled if
              sparseTrackType is not "none".

              - **AudioOnlyTimecodeControl** *(string) --* If set to passthrough for an audio-only
              MS Smooth output, the fragment absolute time will be set to the current timecode. This
              option does not write timecodes to the audio elementary stream.

              - **CertificateMode** *(string) --* If set to verifyAuthenticity, verify the https
              certificate chain to a trusted Certificate Authority (CA). This will cause https
              outputs to self-signed certificates to fail.

              - **ConnectionRetryInterval** *(integer) --* Number of seconds to wait before retrying
              connection to the IIS server if the connection is lost. Content will be cached during
              this time and the cache will be be delivered to the IIS server once the connection is
              re-established.

              - **Destination** *(dict) --* Smooth Streaming publish point on an IIS server.
              Elemental Live acts as a "Push" encoder to IIS.

                - **DestinationRefId** *(string) --* Placeholder documentation for __string

              - **EventId** *(string) --* MS Smooth event ID to be sent to the IIS server. Should
              only be specified if eventIdMode is set to useConfigured.

              - **EventIdMode** *(string) --* Specifies whether or not to send an event ID to the
              IIS server. If no event ID is sent and the same Live Event is used without changing
              the publishing point, clients might see cached video from the previous run. Options: -
              "useConfigured" - use the value provided in eventId - "useTimestamp" - generate and
              send an event ID based on the current timestamp - "noEventId" - do not send an event
              ID to the IIS server.

              - **EventStopBehavior** *(string) --* When set to sendEos, send EOS signal to IIS
              server when stopping the event

              - **FilecacheDuration** *(integer) --* Size in seconds of file cache for streaming
              outputs.

              - **FragmentLength** *(integer) --* Length of mp4 fragments to generate (in seconds).
              Fragment length must be compatible with GOP size and framerate.

              - **InputLossAction** *(string) --* Parameter that control output group behavior on
              input loss.

              - **NumRetries** *(integer) --* Number of retry attempts.

              - **RestartDelay** *(integer) --* Number of seconds before initiating a restart due to
              output failure, due to exhausting the numRetries on one segment, or exceeding
              filecacheDuration.

              - **SegmentationMode** *(string) --* useInputSegmentation has been deprecated. The
              configured segment size is always used.

              - **SendDelayMs** *(integer) --* Number of milliseconds to delay the output from the
              second pipeline.

              - **SparseTrackType** *(string) --* If set to scte35, use incoming SCTE-35 messages to
              generate a sparse track in this group of MS-Smooth outputs.

              - **StreamManifestBehavior** *(string) --* When set to send, send stream manifest so
              publishing point doesn't start until all streams start.

              - **TimestampOffset** *(string) --* Timestamp offset for the event. Only used if
              timestampOffsetMode is set to useConfiguredOffset.

              - **TimestampOffsetMode** *(string) --* Type of timestamp date offset to use. -
              useEventStartDate: Use the date the event was started as the offset -
              useConfiguredOffset: Use an explicitly configured date as the offset

            - **MultiplexGroupSettings** *(dict) --* Multiplex Group Settings

            - **RtmpGroupSettings** *(dict) --* Rtmp Group Settings

              - **AuthenticationScheme** *(string) --* Authentication scheme to use when connecting
              with CDN

              - **CacheFullBehavior** *(string) --* Controls behavior when content cache fills up.
              If remote origin server stalls the RTMP connection and does not accept content fast
              enough the 'Media Cache' will fill up. When the cache reaches the duration specified
              by cacheLength the cache will stop accepting new content. If set to
              disconnectImmediately, the RTMP output will force a disconnect. Clear the media cache,
              and reconnect after restartDelay seconds. If set to waitForServer, the RTMP output
              will wait up to 5 minutes to allow the origin server to begin accepting data again.

              - **CacheLength** *(integer) --* Cache length, in seconds, is used to calculate buffer
              size.

              - **CaptionData** *(string) --* Controls the types of data that passes to
              onCaptionInfo outputs. If set to 'all' then 608 and 708 carried DTVCC data will be
              passed. If set to 'field1AndField2608' then DTVCC data will be stripped out, but 608
              data from both fields will be passed. If set to 'field1608' then only the data carried
              in 608 from field 1 video will be passed.

              - **InputLossAction** *(string) --* Controls the behavior of this RTMP group if input
              becomes unavailable. - emitOutput: Emit a slate until input returns. - pauseOutput:
              Stop transmitting data until input returns. This does not close the underlying RTMP
              connection.

              - **RestartDelay** *(integer) --* If a streaming output fails, number of seconds to
              wait until a restart is initiated. A value of 0 means never restart.

            - **UdpGroupSettings** *(dict) --* Udp Group Settings

              - **InputLossAction** *(string) --* Specifies behavior of last resort when input video
              is lost, and no more backup inputs are available. When dropTs is selected the entire
              transport stream will stop being emitted. When dropProgram is selected the program can
              be dropped from the transport stream (and replaced with null packets to meet the TS
              bitrate requirement). Or, when emitProgram is chosen the transport stream will
              continue to be produced normally with repeat frames, black frames, or slate frames
              substituted for the absent input video.

              - **TimedMetadataId3Frame** *(string) --* Indicates ID3 frame that has the timecode.

              - **TimedMetadataId3Period** *(integer) --* Timed Metadata interval in seconds.

          - **Outputs** *(list) --* Placeholder documentation for __listOfOutput

            - *(dict) --* Output settings. There can be multiple outputs within a group.

              - **AudioDescriptionNames** *(list) --* The names of the AudioDescriptions used as
              audio sources for this output.

                - *(string) --* Placeholder documentation for __string

              - **CaptionDescriptionNames** *(list) --* The names of the CaptionDescriptions used as
              caption sources for this output.

                - *(string) --* Placeholder documentation for __string

              - **OutputName** *(string) --* The name used to identify an output.

              - **OutputSettings** *(dict) --* Output type-specific settings.

                - **ArchiveOutputSettings** *(dict) --* Archive Output Settings

                  - **ContainerSettings** *(dict) --* Settings specific to the container type of the
                  file.

                    - **M2tsSettings** *(dict) --* M2ts Settings

                      - **AbsentInputAudioBehavior** *(string) --* When set to drop, output audio
                      streams will be removed from the program if the selected input audio stream is
                      removed from the input. This allows the output audio configuration to
                      dynamically change based on input configuration. If this is set to
                      encodeSilence, all output audio streams will output encoded silence when not
                      connected to an active input stream.

                      - **Arib** *(string) --* When set to enabled, uses ARIB-compliant field muxing
                      and removes video descriptor.

                      - **AribCaptionsPid** *(string) --* Packet Identifier (PID) for ARIB Captions
                      in the transport stream. Can be entered as a decimal or hexadecimal value.
                      Valid values are 32 (or 0x20)..8182 (or 0x1ff6).

                      - **AribCaptionsPidControl** *(string) --* If set to auto, pid number used for
                      ARIB Captions will be auto-selected from unused pids. If set to useConfigured,
                      ARIB Captions will be on the configured pid number.

                      - **AudioBufferModel** *(string) --* When set to dvb, uses DVB buffer model
                      for Dolby Digital audio. When set to atsc, the ATSC model is used.

                      - **AudioFramesPerPes** *(integer) --* The number of audio frames to insert
                      for each PES packet.

                      - **AudioPids** *(string) --* Packet Identifier (PID) of the elementary audio
                      stream(s) in the transport stream. Multiple values are accepted, and can be
                      entered in ranges and/or by comma separation. Can be entered as decimal or
                      hexadecimal values. Each PID specified must be in the range of 32 (or
                      0x20)..8182 (or 0x1ff6).

                      - **AudioStreamType** *(string) --* When set to atsc, uses stream type = 0x81
                      for AC3 and stream type =
                           0x87 for EAC3. When set to dvb, uses stream type =
                      0x06.

                      - **Bitrate** *(integer) --* The output bitrate of the transport stream in
                      bits per second. Setting to 0 lets the muxer automatically determine the
                      appropriate bitrate.

                      - **BufferModel** *(string) --* If set to multiplex, use multiplex buffer
                      model for accurate interleaving. Setting to bufferModel to none can lead to
                      lower latency, but low-memory devices may not be able to play back the stream
                      without interruptions.

                      - **CcDescriptor** *(string) --* When set to enabled, generates
                      captionServiceDescriptor in PMT.

                      - **DvbNitSettings** *(dict) --* Inserts DVB Network Information Table (NIT)
                      at the specified table repetition interval.

                        - **NetworkId** *(integer) --* The numeric value placed in the Network
                        Information Table (NIT).

                        - **NetworkName** *(string) --* The network name text placed in the
                        networkNameDescriptor inside the Network Information Table. Maximum length
                        is 256 characters.

                        - **RepInterval** *(integer) --* The number of milliseconds between
                        instances of this table in the output transport stream.

                      - **DvbSdtSettings** *(dict) --* Inserts DVB Service Description Table (SDT)
                      at the specified table repetition interval.

                        - **OutputSdt** *(string) --* Selects method of inserting SDT information
                        into output stream. The sdtFollow setting copies SDT information from input
                        stream to output stream. The sdtFollowIfPresent setting copies SDT
                        information from input stream to output stream if SDT information is present
                        in the input, otherwise it will fall back on the user-defined values. The
                        sdtManual setting means user will enter the SDT information. The sdtNone
                        setting means output stream will not contain SDT information.

                        - **RepInterval** *(integer) --* The number of milliseconds between
                        instances of this table in the output transport stream.

                        - **ServiceName** *(string) --* The service name placed in the
                        serviceDescriptor in the Service Description Table. Maximum length is 256
                        characters.

                        - **ServiceProviderName** *(string) --* The service provider name placed in
                        the serviceDescriptor in the Service Description Table. Maximum length is
                        256 characters.

                      - **DvbSubPids** *(string) --* Packet Identifier (PID) for input source DVB
                      Subtitle data to this output. Multiple values are accepted, and can be entered
                      in ranges and/or by comma separation. Can be entered as decimal or hexadecimal
                      values. Each PID specified must be in the range of 32 (or 0x20)..8182 (or
                      0x1ff6).

                      - **DvbTdtSettings** *(dict) --* Inserts DVB Time and Date Table (TDT) at the
                      specified table repetition interval.

                        - **RepInterval** *(integer) --* The number of milliseconds between
                        instances of this table in the output transport stream.

                      - **DvbTeletextPid** *(string) --* Packet Identifier (PID) for input source
                      DVB Teletext data to this output. Can be entered as a decimal or hexadecimal
                      value. Valid values are 32 (or 0x20)..8182 (or 0x1ff6).

                      - **Ebif** *(string) --* If set to passthrough, passes any EBIF data from the
                      input source to this output.

                      - **EbpAudioInterval** *(string) --* When videoAndFixedIntervals is selected,
                      audio EBP markers will be added to partitions 3 and 4. The interval between
                      these additional markers will be fixed, and will be slightly shorter than the
                      video EBP marker interval. Only available when EBP Cablelabs segmentation
                      markers are selected. Partitions 1 and 2 will always follow the video
                      interval.

                      - **EbpLookaheadMs** *(integer) --* When set, enforces that Encoder Boundary
                      Points do not come within the specified time interval of each other by looking
                      ahead at input video. If another EBP is going to come in within the specified
                      time interval, the current EBP is not emitted, and the segment is "stretched"
                      to the next marker. The lookahead value does not add latency to the system.
                      The Live Event must be configured elsewhere to create sufficient latency to
                      make the lookahead accurate.

                      - **EbpPlacement** *(string) --* Controls placement of EBP on Audio PIDs. If
                      set to videoAndAudioPids, EBP markers will be placed on the video PID and all
                      audio PIDs. If set to videoPid, EBP markers will be placed on only the video
                      PID.

                      - **EcmPid** *(string) --* This field is unused and deprecated.

                      - **EsRateInPes** *(string) --* Include or exclude the ES Rate field in the
                      PES header.

                      - **EtvPlatformPid** *(string) --* Packet Identifier (PID) for input source
                      ETV Platform data to this output. Can be entered as a decimal or hexadecimal
                      value. Valid values are 32 (or 0x20)..8182 (or 0x1ff6).

                      - **EtvSignalPid** *(string) --* Packet Identifier (PID) for input source ETV
                      Signal data to this output. Can be entered as a decimal or hexadecimal value.
                      Valid values are 32 (or 0x20)..8182 (or 0x1ff6).

                      - **FragmentTime** *(float) --* The length in seconds of each fragment. Only
                      used with EBP markers.

                      - **Klv** *(string) --* If set to passthrough, passes any KLV data from the
                      input source to this output.

                      - **KlvDataPids** *(string) --* Packet Identifier (PID) for input source KLV
                      data to this output. Multiple values are accepted, and can be entered in
                      ranges and/or by comma separation. Can be entered as decimal or hexadecimal
                      values. Each PID specified must be in the range of 32 (or 0x20)..8182 (or
                      0x1ff6).

                      - **NielsenId3Behavior** *(string) --* If set to passthrough, Nielsen
                      inaudible tones for media tracking will be detected in the input audio and an
                      equivalent ID3 tag will be inserted in the output.

                      - **NullPacketBitrate** *(float) --* Value in bits per second of extra null
                      packets to insert into the transport stream. This can be used if a downstream
                      encryption system requires periodic null packets.

                      - **PatInterval** *(integer) --* The number of milliseconds between instances
                      of this table in the output transport stream. Valid values are 0, 10..1000.

                      - **PcrControl** *(string) --* When set to pcrEveryPesPacket, a Program Clock
                      Reference value is inserted for every Packetized Elementary Stream (PES)
                      header. This parameter is effective only when the PCR PID is the same as the
                      video or audio elementary stream.

                      - **PcrPeriod** *(integer) --* Maximum time in milliseconds between Program
                      Clock Reference (PCRs) inserted into the transport stream.

                      - **PcrPid** *(string) --* Packet Identifier (PID) of the Program Clock
                      Reference (PCR) in the transport stream. When no value is given, the encoder
                      will assign the same value as the Video PID. Can be entered as a decimal or
                      hexadecimal value. Valid values are 32 (or 0x20)..8182 (or 0x1ff6).

                      - **PmtInterval** *(integer) --* The number of milliseconds between instances
                      of this table in the output transport stream. Valid values are 0, 10..1000.

                      - **PmtPid** *(string) --* Packet Identifier (PID) for the Program Map Table
                      (PMT) in the transport stream. Can be entered as a decimal or hexadecimal
                      value. Valid values are 32 (or 0x20)..8182 (or 0x1ff6).

                      - **ProgramNum** *(integer) --* The value of the program number field in the
                      Program Map Table.

                      - **RateMode** *(string) --* When vbr, does not insert null packets into
                      transport stream to fill specified bitrate. The bitrate setting acts as the
                      maximum bitrate when vbr is set.

                      - **Scte27Pids** *(string) --* Packet Identifier (PID) for input source
                      SCTE-27 data to this output. Multiple values are accepted, and can be entered
                      in ranges and/or by comma separation. Can be entered as decimal or hexadecimal
                      values. Each PID specified must be in the range of 32 (or 0x20)..8182 (or
                      0x1ff6).

                      - **Scte35Control** *(string) --* Optionally pass SCTE-35 signals from the
                      input source to this output.

                      - **Scte35Pid** *(string) --* Packet Identifier (PID) of the SCTE-35 stream in
                      the transport stream. Can be entered as a decimal or hexadecimal value. Valid
                      values are 32 (or 0x20)..8182 (or 0x1ff6).

                      - **SegmentationMarkers** *(string) --* Inserts segmentation markers at each
                      segmentationTime period. raiSegstart sets the Random Access Indicator bit in
                      the adaptation field. raiAdapt sets the RAI bit and adds the current timecode
                      in the private data bytes. psiSegstart inserts PAT and PMT tables at the start
                      of segments. ebp adds Encoder Boundary Point information to the adaptation
                      field as per OpenCable specification OC-SP-EBP-I01-130118. ebpLegacy adds
                      Encoder Boundary Point information to the adaptation field using a legacy
                      proprietary format.

                      - **SegmentationStyle** *(string) --* The segmentation style parameter
                      controls how segmentation markers are inserted into the transport stream. With
                      avails, it is possible that segments may be truncated, which can influence
                      where future segmentation markers are inserted. When a segmentation style of
                      "resetCadence" is selected and a segment is truncated due to an avail, we will
                      reset the segmentation cadence. This means the subsequent segment will have a
                      duration of $segmentationTime seconds. When a segmentation style of
                      "maintainCadence" is selected and a segment is truncated due to an avail, we
                      will not reset the segmentation cadence. This means the subsequent segment
                      will likely be truncated as well. However, all segments after that will have a
                      duration of $segmentationTime seconds. Note that EBP lookahead is a slight
                      exception to this rule.

                      - **SegmentationTime** *(float) --* The length in seconds of each segment.
                      Required unless markers is set to None_.

                      - **TimedMetadataBehavior** *(string) --* When set to passthrough, timed
                      metadata will be passed through from input to output.

                      - **TimedMetadataPid** *(string) --* Packet Identifier (PID) of the timed
                      metadata stream in the transport stream. Can be entered as a decimal or
                      hexadecimal value. Valid values are 32 (or 0x20)..8182 (or 0x1ff6).

                      - **TransportStreamId** *(integer) --* The value of the transport stream ID
                      field in the Program Map Table.

                      - **VideoPid** *(string) --* Packet Identifier (PID) of the elementary video
                      stream in the transport stream. Can be entered as a decimal or hexadecimal
                      value. Valid values are 32 (or 0x20)..8182 (or 0x1ff6).

                  - **Extension** *(string) --* Output file extension. If excluded, this will be
                  auto-selected from the container type.

                  - **NameModifier** *(string) --* String concatenated to the end of the destination
                  filename. Required for multiple outputs of the same type.

                - **FrameCaptureOutputSettings** *(dict) --* Frame Capture Output Settings

                  - **NameModifier** *(string) --* Required if the output group contains more than
                  one output. This modifier forms part of the output file name.

                - **HlsOutputSettings** *(dict) --* Hls Output Settings

                  - **HlsSettings** *(dict) --* Settings regarding the underlying stream. These
                  settings are different for audio-only outputs.

                    - **AudioOnlyHlsSettings** *(dict) --* Audio Only Hls Settings

                      - **AudioGroupId** *(string) --* Specifies the group to which the audio
                      Rendition belongs.

                      - **AudioOnlyImage** *(dict) --* Optional. Specifies the .jpg or .png image to
                      use as the cover art for an audio-only output. We recommend a low bit-size
                      file because the image increases the output audio bandwidth. The image is
                      attached to the audio as an ID3 tag, frame type APIC, picture type 0x10, as
                      per the "ID3 tag version 2.4.0 - Native Frames" standard.

                        - **PasswordParam** *(string) --* key used to extract the password from EC2
                        Parameter store

                        - **Uri** *(string) --* Uniform Resource Identifier - This should be a path
                        to a file accessible to the Live system (eg. a http:// URI) depending on the
                        output type. For example, a RTMP destination should have a uri simliar to:
                        "rtmp://fmsserver/live".

                        - **Username** *(string) --* Documentation update needed

                      - **AudioTrackType** *(string) --* Four types of audio-only tracks are
                      supported: Audio-Only Variant Stream The client can play back this audio-only
                      stream instead of video in low-bandwidth scenarios. Represented as an
                      EXT-X-STREAM-INF in the HLS manifest. Alternate Audio, Auto Select, Default
                      Alternate rendition that the client should try to play back by default.
                      Represented as an EXT-X-MEDIA in the HLS manifest with DEFAULT=YES,
                      AUTOSELECT=
                          YES Alternate Audio, Auto Select, Not Default Alternate rendition
                      that the client may try to play back by default. Represented as an EXT-X-MEDIA
                      in the HLS manifest with DEFAULT=NO, AUTOSELECT=
                          YES Alternate Audio, not Auto
                      Select Alternate rendition that the client will not try to play back by
                      default. Represented as an EXT-X-MEDIA in the HLS manifest with DEFAULT=NO,
                      AUTOSELECT=NO

                    - **StandardHlsSettings** *(dict) --* Standard Hls Settings

                      - **AudioRenditionSets** *(string) --* List all the audio groups that are used
                      with the video output stream. Input all the audio GROUP-IDs that are
                      associated to the video, separate by ','.

                      - **M3u8Settings** *(dict) --* Settings information for the .m3u8 container

                        - **AudioFramesPerPes** *(integer) --* The number of audio frames to insert
                        for each PES packet.

                        - **AudioPids** *(string) --* Packet Identifier (PID) of the elementary
                        audio stream(s) in the transport stream. Multiple values are accepted, and
                        can be entered in ranges and/or by comma separation. Can be entered as
                        decimal or hexadecimal values.

                        - **EcmPid** *(string) --* This parameter is unused and deprecated.

                        - **NielsenId3Behavior** *(string) --* If set to passthrough, Nielsen
                        inaudible tones for media tracking will be detected in the input audio and
                        an equivalent ID3 tag will be inserted in the output.

                        - **PatInterval** *(integer) --* The number of milliseconds between
                        instances of this table in the output transport stream. A value of \\"0\\"
                        writes out the PMT once per segment file.

                        - **PcrControl** *(string) --* When set to pcrEveryPesPacket, a Program
                        Clock Reference value is inserted for every Packetized Elementary Stream
                        (PES) header. This parameter is effective only when the PCR PID is the same
                        as the video or audio elementary stream.

                        - **PcrPeriod** *(integer) --* Maximum time in milliseconds between Program
                        Clock References (PCRs) inserted into the transport stream.

                        - **PcrPid** *(string) --* Packet Identifier (PID) of the Program Clock
                        Reference (PCR) in the transport stream. When no value is given, the encoder
                        will assign the same value as the Video PID. Can be entered as a decimal or
                        hexadecimal value.

                        - **PmtInterval** *(integer) --* The number of milliseconds between
                        instances of this table in the output transport stream. A value of \\"0\\"
                        writes out the PMT once per segment file.

                        - **PmtPid** *(string) --* Packet Identifier (PID) for the Program Map Table
                        (PMT) in the transport stream. Can be entered as a decimal or hexadecimal
                        value.

                        - **ProgramNum** *(integer) --* The value of the program number field in the
                        Program Map Table.

                        - **Scte35Behavior** *(string) --* If set to passthrough, passes any SCTE-35
                        signals from the input source to this output.

                        - **Scte35Pid** *(string) --* Packet Identifier (PID) of the SCTE-35 stream
                        in the transport stream. Can be entered as a decimal or hexadecimal value.

                        - **TimedMetadataBehavior** *(string) --* When set to passthrough, timed
                        metadata is passed through from input to output.

                        - **TimedMetadataPid** *(string) --* Packet Identifier (PID) of the timed
                        metadata stream in the transport stream. Can be entered as a decimal or
                        hexadecimal value. Valid values are 32 (or 0x20)..8182 (or 0x1ff6).

                        - **TransportStreamId** *(integer) --* The value of the transport stream ID
                        field in the Program Map Table.

                        - **VideoPid** *(string) --* Packet Identifier (PID) of the elementary video
                        stream in the transport stream. Can be entered as a decimal or hexadecimal
                        value.

                  - **NameModifier** *(string) --* String concatenated to the end of the destination
                  filename. Accepts \\"Format Identifiers\\":#formatIdentifierParameters.

                  - **SegmentModifier** *(string) --* String concatenated to end of segment
                  filenames.

                - **MediaPackageOutputSettings** *(dict) --* Media Package Output Settings

                - **MsSmoothOutputSettings** *(dict) --* Ms Smooth Output Settings

                  - **H265PackagingType** *(string) --* Only applicable when this output is
                  referencing an H.265 video description. Specifies whether MP4 segments should be
                  packaged as HEV1 or HVC1.

                  - **NameModifier** *(string) --* String concatenated to the end of the destination
                  filename. Required for multiple outputs of the same type.

                - **MultiplexOutputSettings** *(dict) --* Multiplex Output Settings

                  - **Destination** *(dict) --* Destination is a Multiplex.

                    - **DestinationRefId** *(string) --* Placeholder documentation for __string

                - **RtmpOutputSettings** *(dict) --* Rtmp Output Settings

                  - **CertificateMode** *(string) --* If set to verifyAuthenticity, verify the tls
                  certificate chain to a trusted Certificate Authority (CA). This will cause rtmps
                  outputs with self-signed certificates to fail.

                  - **ConnectionRetryInterval** *(integer) --* Number of seconds to wait before
                  retrying a connection to the Flash Media server if the connection is lost.

                  - **Destination** *(dict) --* The RTMP endpoint excluding the stream name (eg.
                  rtmp://host/appname). For connection to Akamai, a username and password must be
                  supplied. URI fields accept format identifiers.

                    - **DestinationRefId** *(string) --* Placeholder documentation for __string

                  - **NumRetries** *(integer) --* Number of retry attempts.

                - **UdpOutputSettings** *(dict) --* Udp Output Settings

                  - **BufferMsec** *(integer) --* UDP output buffering in milliseconds. Larger
                  values increase latency through the transcoder but simultaneously assist the
                  transcoder in maintaining a constant, low-jitter UDP/RTP output while
                  accommodating clock recovery, input switching, input disruptions, picture
                  reordering, etc.

                  - **ContainerSettings** *(dict) --* Udp Container Settings

                    - **M2tsSettings** *(dict) --* M2ts Settings

                      - **AbsentInputAudioBehavior** *(string) --* When set to drop, output audio
                      streams will be removed from the program if the selected input audio stream is
                      removed from the input. This allows the output audio configuration to
                      dynamically change based on input configuration. If this is set to
                      encodeSilence, all output audio streams will output encoded silence when not
                      connected to an active input stream.

                      - **Arib** *(string) --* When set to enabled, uses ARIB-compliant field muxing
                      and removes video descriptor.

                      - **AribCaptionsPid** *(string) --* Packet Identifier (PID) for ARIB Captions
                      in the transport stream. Can be entered as a decimal or hexadecimal value.
                      Valid values are 32 (or 0x20)..8182 (or 0x1ff6).

                      - **AribCaptionsPidControl** *(string) --* If set to auto, pid number used for
                      ARIB Captions will be auto-selected from unused pids. If set to useConfigured,
                      ARIB Captions will be on the configured pid number.

                      - **AudioBufferModel** *(string) --* When set to dvb, uses DVB buffer model
                      for Dolby Digital audio. When set to atsc, the ATSC model is used.

                      - **AudioFramesPerPes** *(integer) --* The number of audio frames to insert
                      for each PES packet.

                      - **AudioPids** *(string) --* Packet Identifier (PID) of the elementary audio
                      stream(s) in the transport stream. Multiple values are accepted, and can be
                      entered in ranges and/or by comma separation. Can be entered as decimal or
                      hexadecimal values. Each PID specified must be in the range of 32 (or
                      0x20)..8182 (or 0x1ff6).

                      - **AudioStreamType** *(string) --* When set to atsc, uses stream type = 0x81
                      for AC3 and stream type =
                           0x87 for EAC3. When set to dvb, uses stream type =
                      0x06.

                      - **Bitrate** *(integer) --* The output bitrate of the transport stream in
                      bits per second. Setting to 0 lets the muxer automatically determine the
                      appropriate bitrate.

                      - **BufferModel** *(string) --* If set to multiplex, use multiplex buffer
                      model for accurate interleaving. Setting to bufferModel to none can lead to
                      lower latency, but low-memory devices may not be able to play back the stream
                      without interruptions.

                      - **CcDescriptor** *(string) --* When set to enabled, generates
                      captionServiceDescriptor in PMT.

                      - **DvbNitSettings** *(dict) --* Inserts DVB Network Information Table (NIT)
                      at the specified table repetition interval.

                        - **NetworkId** *(integer) --* The numeric value placed in the Network
                        Information Table (NIT).

                        - **NetworkName** *(string) --* The network name text placed in the
                        networkNameDescriptor inside the Network Information Table. Maximum length
                        is 256 characters.

                        - **RepInterval** *(integer) --* The number of milliseconds between
                        instances of this table in the output transport stream.

                      - **DvbSdtSettings** *(dict) --* Inserts DVB Service Description Table (SDT)
                      at the specified table repetition interval.

                        - **OutputSdt** *(string) --* Selects method of inserting SDT information
                        into output stream. The sdtFollow setting copies SDT information from input
                        stream to output stream. The sdtFollowIfPresent setting copies SDT
                        information from input stream to output stream if SDT information is present
                        in the input, otherwise it will fall back on the user-defined values. The
                        sdtManual setting means user will enter the SDT information. The sdtNone
                        setting means output stream will not contain SDT information.

                        - **RepInterval** *(integer) --* The number of milliseconds between
                        instances of this table in the output transport stream.

                        - **ServiceName** *(string) --* The service name placed in the
                        serviceDescriptor in the Service Description Table. Maximum length is 256
                        characters.

                        - **ServiceProviderName** *(string) --* The service provider name placed in
                        the serviceDescriptor in the Service Description Table. Maximum length is
                        256 characters.

                      - **DvbSubPids** *(string) --* Packet Identifier (PID) for input source DVB
                      Subtitle data to this output. Multiple values are accepted, and can be entered
                      in ranges and/or by comma separation. Can be entered as decimal or hexadecimal
                      values. Each PID specified must be in the range of 32 (or 0x20)..8182 (or
                      0x1ff6).

                      - **DvbTdtSettings** *(dict) --* Inserts DVB Time and Date Table (TDT) at the
                      specified table repetition interval.

                        - **RepInterval** *(integer) --* The number of milliseconds between
                        instances of this table in the output transport stream.

                      - **DvbTeletextPid** *(string) --* Packet Identifier (PID) for input source
                      DVB Teletext data to this output. Can be entered as a decimal or hexadecimal
                      value. Valid values are 32 (or 0x20)..8182 (or 0x1ff6).

                      - **Ebif** *(string) --* If set to passthrough, passes any EBIF data from the
                      input source to this output.

                      - **EbpAudioInterval** *(string) --* When videoAndFixedIntervals is selected,
                      audio EBP markers will be added to partitions 3 and 4. The interval between
                      these additional markers will be fixed, and will be slightly shorter than the
                      video EBP marker interval. Only available when EBP Cablelabs segmentation
                      markers are selected. Partitions 1 and 2 will always follow the video
                      interval.

                      - **EbpLookaheadMs** *(integer) --* When set, enforces that Encoder Boundary
                      Points do not come within the specified time interval of each other by looking
                      ahead at input video. If another EBP is going to come in within the specified
                      time interval, the current EBP is not emitted, and the segment is "stretched"
                      to the next marker. The lookahead value does not add latency to the system.
                      The Live Event must be configured elsewhere to create sufficient latency to
                      make the lookahead accurate.

                      - **EbpPlacement** *(string) --* Controls placement of EBP on Audio PIDs. If
                      set to videoAndAudioPids, EBP markers will be placed on the video PID and all
                      audio PIDs. If set to videoPid, EBP markers will be placed on only the video
                      PID.

                      - **EcmPid** *(string) --* This field is unused and deprecated.

                      - **EsRateInPes** *(string) --* Include or exclude the ES Rate field in the
                      PES header.

                      - **EtvPlatformPid** *(string) --* Packet Identifier (PID) for input source
                      ETV Platform data to this output. Can be entered as a decimal or hexadecimal
                      value. Valid values are 32 (or 0x20)..8182 (or 0x1ff6).

                      - **EtvSignalPid** *(string) --* Packet Identifier (PID) for input source ETV
                      Signal data to this output. Can be entered as a decimal or hexadecimal value.
                      Valid values are 32 (or 0x20)..8182 (or 0x1ff6).

                      - **FragmentTime** *(float) --* The length in seconds of each fragment. Only
                      used with EBP markers.

                      - **Klv** *(string) --* If set to passthrough, passes any KLV data from the
                      input source to this output.

                      - **KlvDataPids** *(string) --* Packet Identifier (PID) for input source KLV
                      data to this output. Multiple values are accepted, and can be entered in
                      ranges and/or by comma separation. Can be entered as decimal or hexadecimal
                      values. Each PID specified must be in the range of 32 (or 0x20)..8182 (or
                      0x1ff6).

                      - **NielsenId3Behavior** *(string) --* If set to passthrough, Nielsen
                      inaudible tones for media tracking will be detected in the input audio and an
                      equivalent ID3 tag will be inserted in the output.

                      - **NullPacketBitrate** *(float) --* Value in bits per second of extra null
                      packets to insert into the transport stream. This can be used if a downstream
                      encryption system requires periodic null packets.

                      - **PatInterval** *(integer) --* The number of milliseconds between instances
                      of this table in the output transport stream. Valid values are 0, 10..1000.

                      - **PcrControl** *(string) --* When set to pcrEveryPesPacket, a Program Clock
                      Reference value is inserted for every Packetized Elementary Stream (PES)
                      header. This parameter is effective only when the PCR PID is the same as the
                      video or audio elementary stream.

                      - **PcrPeriod** *(integer) --* Maximum time in milliseconds between Program
                      Clock Reference (PCRs) inserted into the transport stream.

                      - **PcrPid** *(string) --* Packet Identifier (PID) of the Program Clock
                      Reference (PCR) in the transport stream. When no value is given, the encoder
                      will assign the same value as the Video PID. Can be entered as a decimal or
                      hexadecimal value. Valid values are 32 (or 0x20)..8182 (or 0x1ff6).

                      - **PmtInterval** *(integer) --* The number of milliseconds between instances
                      of this table in the output transport stream. Valid values are 0, 10..1000.

                      - **PmtPid** *(string) --* Packet Identifier (PID) for the Program Map Table
                      (PMT) in the transport stream. Can be entered as a decimal or hexadecimal
                      value. Valid values are 32 (or 0x20)..8182 (or 0x1ff6).

                      - **ProgramNum** *(integer) --* The value of the program number field in the
                      Program Map Table.

                      - **RateMode** *(string) --* When vbr, does not insert null packets into
                      transport stream to fill specified bitrate. The bitrate setting acts as the
                      maximum bitrate when vbr is set.

                      - **Scte27Pids** *(string) --* Packet Identifier (PID) for input source
                      SCTE-27 data to this output. Multiple values are accepted, and can be entered
                      in ranges and/or by comma separation. Can be entered as decimal or hexadecimal
                      values. Each PID specified must be in the range of 32 (or 0x20)..8182 (or
                      0x1ff6).

                      - **Scte35Control** *(string) --* Optionally pass SCTE-35 signals from the
                      input source to this output.

                      - **Scte35Pid** *(string) --* Packet Identifier (PID) of the SCTE-35 stream in
                      the transport stream. Can be entered as a decimal or hexadecimal value. Valid
                      values are 32 (or 0x20)..8182 (or 0x1ff6).

                      - **SegmentationMarkers** *(string) --* Inserts segmentation markers at each
                      segmentationTime period. raiSegstart sets the Random Access Indicator bit in
                      the adaptation field. raiAdapt sets the RAI bit and adds the current timecode
                      in the private data bytes. psiSegstart inserts PAT and PMT tables at the start
                      of segments. ebp adds Encoder Boundary Point information to the adaptation
                      field as per OpenCable specification OC-SP-EBP-I01-130118. ebpLegacy adds
                      Encoder Boundary Point information to the adaptation field using a legacy
                      proprietary format.

                      - **SegmentationStyle** *(string) --* The segmentation style parameter
                      controls how segmentation markers are inserted into the transport stream. With
                      avails, it is possible that segments may be truncated, which can influence
                      where future segmentation markers are inserted. When a segmentation style of
                      "resetCadence" is selected and a segment is truncated due to an avail, we will
                      reset the segmentation cadence. This means the subsequent segment will have a
                      duration of $segmentationTime seconds. When a segmentation style of
                      "maintainCadence" is selected and a segment is truncated due to an avail, we
                      will not reset the segmentation cadence. This means the subsequent segment
                      will likely be truncated as well. However, all segments after that will have a
                      duration of $segmentationTime seconds. Note that EBP lookahead is a slight
                      exception to this rule.

                      - **SegmentationTime** *(float) --* The length in seconds of each segment.
                      Required unless markers is set to None_.

                      - **TimedMetadataBehavior** *(string) --* When set to passthrough, timed
                      metadata will be passed through from input to output.

                      - **TimedMetadataPid** *(string) --* Packet Identifier (PID) of the timed
                      metadata stream in the transport stream. Can be entered as a decimal or
                      hexadecimal value. Valid values are 32 (or 0x20)..8182 (or 0x1ff6).

                      - **TransportStreamId** *(integer) --* The value of the transport stream ID
                      field in the Program Map Table.

                      - **VideoPid** *(string) --* Packet Identifier (PID) of the elementary video
                      stream in the transport stream. Can be entered as a decimal or hexadecimal
                      value. Valid values are 32 (or 0x20)..8182 (or 0x1ff6).

                  - **Destination** *(dict) --* Destination address and port number for RTP or UDP
                  packets. Can be unicast or multicast RTP or UDP (eg. rtp://239.10.10.10:5001 or
                  udp://10.100.100.100:5002).

                    - **DestinationRefId** *(string) --* Placeholder documentation for __string

                  - **FecOutputSettings** *(dict) --* Settings for enabling and adjusting Forward
                  Error Correction on UDP outputs.

                    - **ColumnDepth** *(integer) --* Parameter D from SMPTE 2022-1. The height of
                    the FEC protection matrix. The number of transport stream packets per column
                    error correction packet. Must be between 4 and 20, inclusive.

                    - **IncludeFec** *(string) --* Enables column only or column and row based FEC

                    - **RowLength** *(integer) --* Parameter L from SMPTE 2022-1. The width of the
                    FEC protection matrix. Must be between 1 and 20, inclusive. If only Column FEC
                    is used, then larger values increase robustness. If Row FEC is used, then this
                    is the number of transport stream packets per row error correction packet, and
                    the value must be between 4 and 20, inclusive, if includeFec is columnAndRow. If
                    includeFec is column, this value must be 1 to 20, inclusive.

              - **VideoDescriptionName** *(string) --* The name of the VideoDescription used as the
              source for this output.

      - **TimecodeConfig** *(dict) --* Contains settings used to acquire and adjust timecode
      information from inputs.

        - **Source** *(string) --* Identifies the source for the timecode that will be associated
        with the events outputs. -Embedded (embedded): Initialize the output timecode with timecode
        from the the source. If no embedded timecode is detected in the source, the system falls
        back to using "Start at 0" (zerobased). -System Clock (systemclock): Use the UTC time.
        -Start at 0 (zerobased): The time of the first frame of the event will be 00:00:00:00.

        - **SyncThreshold** *(integer) --* Threshold in frames beyond which output timecode is
        resynchronized to the input timecode. Discrepancies below this threshold are permitted to
        avoid unnecessary discontinuities in the output timecode. No timecode sync when this is not
        specified.

      - **VideoDescriptions** *(list) --* Placeholder documentation for __listOfVideoDescription

        - *(dict) --* Video settings for this stream.

          - **CodecSettings** *(dict) --* Video codec settings.

            - **FrameCaptureSettings** *(dict) --* Frame Capture Settings

              - **CaptureInterval** *(integer) --* The frequency at which to capture frames for
              inclusion in the output. May be specified in either seconds or milliseconds, as
              specified by captureIntervalUnits.

            - **H264Settings** *(dict) --* H264 Settings

              - **AdaptiveQuantization** *(string) --* Adaptive quantization. Allows intra-frame
              quantizers to vary to improve visual quality.

              - **AfdSignaling** *(string) --* Indicates that AFD values will be written into the
              output stream. If afdSignaling is "auto", the system will try to preserve the input
              AFD value (in cases where multiple AFD values are valid). If set to "fixed", the AFD
              value will be the value configured in the fixedAfd parameter.

              - **Bitrate** *(integer) --* Average bitrate in bits/second. Required when the rate
              control mode is VBR or CBR. Not used for QVBR. In an MS Smooth output group, each
              output must have a unique value when its bitrate is rounded down to the nearest
              multiple of 1000.

              - **BufFillPct** *(integer) --* Percentage of the buffer that should initially be
              filled (HRD buffer model).

              - **BufSize** *(integer) --* Size of buffer (HRD buffer model) in bits.

              - **ColorMetadata** *(string) --* Includes colorspace metadata in the output.

              - **ColorSpaceSettings** *(dict) --* Color Space settings

                - **ColorSpacePassthroughSettings** *(dict) --* Passthrough applies no color space
                conversion to the output

                - **Rec601Settings** *(dict) --* Rec601 Settings

                - **Rec709Settings** *(dict) --* Rec709 Settings

              - **EntropyEncoding** *(string) --* Entropy encoding mode. Use cabac (must be in Main
              or High profile) or cavlc.

              - **FixedAfd** *(string) --* Four bit AFD value to write on all frames of video in the
              output stream. Only valid when afdSignaling is set to 'Fixed'.

              - **FlickerAq** *(string) --* If set to enabled, adjust quantization within each frame
              to reduce flicker or 'pop' on I-frames.

              - **FramerateControl** *(string) --* This field indicates how the output video frame
              rate is specified. If "specified" is selected then the output video frame rate is
              determined by framerateNumerator and framerateDenominator, else if
              "initializeFromSource" is selected then the output video frame rate will be set equal
              to the input video frame rate of the first input.

              - **FramerateDenominator** *(integer) --* Framerate denominator.

              - **FramerateNumerator** *(integer) --* Framerate numerator - framerate is a fraction,
              e.g. 24000 / 1001 = 23.976 fps.

              - **GopBReference** *(string) --* Documentation update needed

              - **GopClosedCadence** *(integer) --* Frequency of closed GOPs. In streaming
              applications, it is recommended that this be set to 1 so a decoder joining mid-stream
              will receive an IDR frame as quickly as possible. Setting this value to 0 will break
              output segmenting.

              - **GopNumBFrames** *(integer) --* Number of B-frames between reference frames.

              - **GopSize** *(float) --* GOP size (keyframe interval) in units of either frames or
              seconds per gopSizeUnits. If gopSizeUnits is frames, gopSize must be an integer and
              must be greater than or equal to 1. If gopSizeUnits is seconds, gopSize must be
              greater than 0, but need not be an integer.

              - **GopSizeUnits** *(string) --* Indicates if the gopSize is specified in frames or
              seconds. If seconds the system will convert the gopSize into a frame count at run
              time.

              - **Level** *(string) --* H.264 Level.

              - **LookAheadRateControl** *(string) --* Amount of lookahead. A value of low can
              decrease latency and memory usage, while high can produce better quality for certain
              content.

              - **MaxBitrate** *(integer) --* For QVBR: See the tooltip for Quality level For VBR:
              Set the maximum bitrate in order to accommodate expected spikes in the complexity of
              the video.

              - **MinIInterval** *(integer) --* Only meaningful if sceneChangeDetect is set to
              enabled. Defaults to 5 if multiplex rate control is used. Enforces separation between
              repeated (cadence) I-frames and I-frames inserted by Scene Change Detection. If a
              scene change I-frame is within I-interval frames of a cadence I-frame, the GOP is
              shrunk and/or stretched to the scene change I-frame. GOP stretch requires enabling
              lookahead as well as setting I-interval. The normal cadence resumes for the next GOP.
              Note: Maximum GOP stretch = GOP size + Min-I-interval - 1

              - **NumRefFrames** *(integer) --* Number of reference frames to use. The encoder may
              use more than requested if using B-frames and/or interlaced encoding.

              - **ParControl** *(string) --* This field indicates how the output pixel aspect ratio
              is specified. If "specified" is selected then the output video pixel aspect ratio is
              determined by parNumerator and parDenominator, else if "initializeFromSource" is
              selected then the output pixsel aspect ratio will be set equal to the input video
              pixel aspect ratio of the first input.

              - **ParDenominator** *(integer) --* Pixel Aspect Ratio denominator.

              - **ParNumerator** *(integer) --* Pixel Aspect Ratio numerator.

              - **Profile** *(string) --* H.264 Profile.

              - **QvbrQualityLevel** *(integer) --* Controls the target quality for the video
              encode. Applies only when the rate control mode is QVBR. Set values for the QVBR
              quality level field and Max bitrate field that suit your most important viewing
              devices. Recommended values are: - Primary screen: Quality level: 8 to 10. Max
              bitrate: 4M - PC or tablet: Quality level: 7. Max bitrate: 1.5M to 3M - Smartphone:
              Quality level: 6. Max bitrate: 1M to 1.5M

              - **RateControlMode** *(string) --* Rate control mode. QVBR: Quality will match the
              specified quality level except when it is constrained by the maximum bitrate.
              Recommended if you or your viewers pay for bandwidth. VBR: Quality and bitrate vary,
              depending on the video complexity. Recommended instead of QVBR if you want to maintain
              a specific average bitrate over the duration of the channel. CBR: Quality varies,
              depending on the video complexity. Recommended only if you distribute your assets to
              devices that cannot handle variable bitrates.

              - **ScanType** *(string) --* Sets the scan type of the output to progressive or
              top-field-first interlaced.

              - **SceneChangeDetect** *(string) --* Scene change detection. - On: inserts I-frames
              when scene change is detected. - Off: does not force an I-frame when scene change is
              detected.

              - **Slices** *(integer) --* Number of slices per picture. Must be less than or equal
              to the number of macroblock rows for progressive pictures, and less than or equal to
              half the number of macroblock rows for interlaced pictures. This field is optional;
              when no value is specified the encoder will choose the number of slices based on
              encode resolution.

              - **Softness** *(integer) --* Softness. Selects quantizer matrix, larger values reduce
              high-frequency content in the encoded image.

              - **SpatialAq** *(string) --* If set to enabled, adjust quantization within each frame
              based on spatial variation of content complexity.

              - **SubgopLength** *(string) --* If set to fixed, use gopNumBFrames B-frames per
              sub-GOP. If set to dynamic, optimize the number of B-frames used for each sub-GOP to
              improve visual quality.

              - **Syntax** *(string) --* Produces a bitstream compliant with SMPTE RP-2027.

              - **TemporalAq** *(string) --* If set to enabled, adjust quantization within each
              frame based on temporal variation of content complexity.

              - **TimecodeInsertion** *(string) --* Determines how timecodes should be inserted into
              the video elementary stream. - 'disabled': Do not include timecodes - 'picTimingSei':
              Pass through picture timing SEI messages from the source specified in Timecode Config

            - **H265Settings** *(dict) --* H265 Settings

              - **AdaptiveQuantization** *(string) --* Adaptive quantization. Allows intra-frame
              quantizers to vary to improve visual quality.

              - **AfdSignaling** *(string) --* Indicates that AFD values will be written into the
              output stream. If afdSignaling is "auto", the system will try to preserve the input
              AFD value (in cases where multiple AFD values are valid). If set to "fixed", the AFD
              value will be the value configured in the fixedAfd parameter.

              - **AlternativeTransferFunction** *(string) --* Whether or not EML should insert an
              Alternative Transfer Function SEI message to support backwards compatibility with
              non-HDR decoders and displays.

              - **Bitrate** *(integer) --* Average bitrate in bits/second. Required when the rate
              control mode is VBR or CBR. Not used for QVBR. In an MS Smooth output group, each
              output must have a unique value when its bitrate is rounded down to the nearest
              multiple of 1000.

              - **BufSize** *(integer) --* Size of buffer (HRD buffer model) in bits.

              - **ColorMetadata** *(string) --* Includes colorspace metadata in the output.

              - **ColorSpaceSettings** *(dict) --* Color Space settings

                - **ColorSpacePassthroughSettings** *(dict) --* Passthrough applies no color space
                conversion to the output

                - **Hdr10Settings** *(dict) --* Hdr10 Settings

                  - **MaxCll** *(integer) --* Maximum Content Light Level An integer metadata value
                  defining the maximum light level, in nits, of any single pixel within an encoded
                  HDR video stream or file.

                  - **MaxFall** *(integer) --* Maximum Frame Average Light Level An integer metadata
                  value defining the maximum average light level, in nits, for any single frame
                  within an encoded HDR video stream or file.

                - **Rec601Settings** *(dict) --* Rec601 Settings

                - **Rec709Settings** *(dict) --* Rec709 Settings

              - **FixedAfd** *(string) --* Four bit AFD value to write on all frames of video in the
              output stream. Only valid when afdSignaling is set to 'Fixed'.

              - **FlickerAq** *(string) --* If set to enabled, adjust quantization within each frame
              to reduce flicker or 'pop' on I-frames.

              - **FramerateDenominator** *(integer) --* Framerate denominator.

              - **FramerateNumerator** *(integer) --* Framerate numerator - framerate is a fraction,
              e.g. 24000 / 1001 = 23.976 fps.

              - **GopClosedCadence** *(integer) --* Frequency of closed GOPs. In streaming
              applications, it is recommended that this be set to 1 so a decoder joining mid-stream
              will receive an IDR frame as quickly as possible. Setting this value to 0 will break
              output segmenting.

              - **GopSize** *(float) --* GOP size (keyframe interval) in units of either frames or
              seconds per gopSizeUnits. If gopSizeUnits is frames, gopSize must be an integer and
              must be greater than or equal to 1. If gopSizeUnits is seconds, gopSize must be
              greater than 0, but need not be an integer.

              - **GopSizeUnits** *(string) --* Indicates if the gopSize is specified in frames or
              seconds. If seconds the system will convert the gopSize into a frame count at run
              time.

              - **Level** *(string) --* H.265 Level.

              - **LookAheadRateControl** *(string) --* Amount of lookahead. A value of low can
              decrease latency and memory usage, while high can produce better quality for certain
              content.

              - **MaxBitrate** *(integer) --* For QVBR: See the tooltip for Quality level

              - **MinIInterval** *(integer) --* Only meaningful if sceneChangeDetect is set to
              enabled. Defaults to 5 if multiplex rate control is used. Enforces separation between
              repeated (cadence) I-frames and I-frames inserted by Scene Change Detection. If a
              scene change I-frame is within I-interval frames of a cadence I-frame, the GOP is
              shrunk and/or stretched to the scene change I-frame. GOP stretch requires enabling
              lookahead as well as setting I-interval. The normal cadence resumes for the next GOP.
              Note: Maximum GOP stretch = GOP size + Min-I-interval - 1

              - **ParDenominator** *(integer) --* Pixel Aspect Ratio denominator.

              - **ParNumerator** *(integer) --* Pixel Aspect Ratio numerator.

              - **Profile** *(string) --* H.265 Profile.

              - **QvbrQualityLevel** *(integer) --* Controls the target quality for the video
              encode. Applies only when the rate control mode is QVBR. Set values for the QVBR
              quality level field and Max bitrate field that suit your most important viewing
              devices. Recommended values are: - Primary screen: Quality level: 8 to 10. Max
              bitrate: 4M - PC or tablet: Quality level: 7. Max bitrate: 1.5M to 3M - Smartphone:
              Quality level: 6. Max bitrate: 1M to 1.5M

              - **RateControlMode** *(string) --* Rate control mode. QVBR: Quality will match the
              specified quality level except when it is constrained by the maximum bitrate.
              Recommended if you or your viewers pay for bandwidth. CBR: Quality varies, depending
              on the video complexity. Recommended only if you distribute your assets to devices
              that cannot handle variable bitrates.

              - **ScanType** *(string) --* Sets the scan type of the output to progressive or
              top-field-first interlaced.

              - **SceneChangeDetect** *(string) --* Scene change detection.

              - **Slices** *(integer) --* Number of slices per picture. Must be less than or equal
              to the number of macroblock rows for progressive pictures, and less than or equal to
              half the number of macroblock rows for interlaced pictures. This field is optional;
              when no value is specified the encoder will choose the number of slices based on
              encode resolution.

              - **Tier** *(string) --* H.265 Tier.

              - **TimecodeInsertion** *(string) --* Determines how timecodes should be inserted into
              the video elementary stream. - 'disabled': Do not include timecodes - 'picTimingSei':
              Pass through picture timing SEI messages from the source specified in Timecode Config

          - **Height** *(integer) --* Output video height, in pixels. Must be an even number. For
          most codecs, you can leave this field and width blank in order to use the height and width
          (resolution) from the source. Note, however, that leaving blank is not recommended. For
          the Frame Capture codec, height and width are required.

          - **Name** *(string) --* The name of this VideoDescription. Outputs will use this name to
          uniquely identify this Description. Description names should be unique within this Live
          Event.

          - **RespondToAfd** *(string) --* Indicates how to respond to the AFD values in the input
          stream. RESPOND causes input video to be clipped, depending on the AFD value, input
          display aspect ratio, and output display aspect ratio, and (except for FRAMECAPTURE codec)
          includes the values in the output. PASSTHROUGH (does not apply to FRAMECAPTURE codec)
          ignores the AFD values and includes the values in the output, so input video is not
          clipped. NONE ignores the AFD values and does not include the values through to the
          output, so input video is not clipped.

          - **ScalingBehavior** *(string) --* STRETCHTOOUTPUT configures the output position to
          stretch the video to the specified output resolution (height and width). This option will
          override any position value. DEFAULT may insert black boxes (pillar boxes or letter boxes)
          around the video to provide the specified output resolution.

          - **Sharpness** *(integer) --* Changes the strength of the anti-alias filter used for
          scaling. 0 is the softest setting, 100 is the sharpest. A setting of 50 is recommended for
          most content.

          - **Width** *(integer) --* Output video width, in pixels. Must be an even number. For most
          codecs, you can leave this field and height blank in order to use the height and width
          (resolution) from the source. Note, however, that leaving blank is not recommended. For
          the Frame Capture codec, height and width are required.

    - **Id** *(string) --* The unique id of the channel.

    - **InputAttachments** *(list) --* List of input attachments for channel.

      - *(dict) --* Placeholder documentation for InputAttachment

        - **InputAttachmentName** *(string) --* User-specified name for the attachment. This is
        required if the user wants to use this input in an input switch action.

        - **InputId** *(string) --* The ID of the input

        - **InputSettings** *(dict) --* Settings of an input (caption selector, etc.)

          - **AudioSelectors** *(list) --* Used to select the audio stream to decode for inputs that
          have multiple available.

            - *(dict) --* Audio Selector

              - **Name** *(string) --* The name of this AudioSelector. AudioDescriptions will use
              this name to uniquely identify this Selector. Selector names should be unique per
              input.

              - **SelectorSettings** *(dict) --* The audio selector settings.

                - **AudioLanguageSelection** *(dict) --* Audio Language Selection

                  - **LanguageCode** *(string) --* Selects a specific three-letter language code
                  from within an audio source.

                  - **LanguageSelectionPolicy** *(string) --* When set to "strict", the transport
                  stream demux strictly identifies audio streams by their language descriptor. If a
                  PMT update occurs such that an audio stream matching the initially selected
                  language is no longer present then mute will be encoded until the language
                  returns. If "loose", then on a PMT update the demux will choose another audio
                  stream in the program with the same stream type if it can't find one with the same
                  language.

                - **AudioPidSelection** *(dict) --* Audio Pid Selection

                  - **Pid** *(integer) --* Selects a specific PID from within a source.

          - **CaptionSelectors** *(list) --* Used to select the caption input to use for inputs that
          have multiple available.

            - *(dict) --* Output groups for this Live Event. Output groups contain information about
            where streams should be distributed.

              - **LanguageCode** *(string) --* When specified this field indicates the three letter
              language code of the caption track to extract from the source.

              - **Name** *(string) --* Name identifier for a caption selector. This name is used to
              associate this caption selector with one or more caption descriptions. Names must be
              unique within an event.

              - **SelectorSettings** *(dict) --* Caption selector settings.

                - **AribSourceSettings** *(dict) --* Arib Source Settings

                - **DvbSubSourceSettings** *(dict) --* Dvb Sub Source Settings

                  - **Pid** *(integer) --* When using DVB-Sub with Burn-In or SMPTE-TT, use this PID
                  for the source content. Unused for DVB-Sub passthrough. All DVB-Sub content is
                  passed through, regardless of selectors.

                - **EmbeddedSourceSettings** *(dict) --* Embedded Source Settings

                  - **Convert608To708** *(string) --* If upconvert, 608 data is both passed through
                  via the "608 compatibility bytes" fields of the 708 wrapper as well as translated
                  into 708. 708 data present in the source content will be discarded.

                  - **Scte20Detection** *(string) --* Set to "auto" to handle streams with
                  intermittent and/or non-aligned SCTE-20 and Embedded captions.

                  - **Source608ChannelNumber** *(integer) --* Specifies the 608/708 channel number
                  within the video track from which to extract captions. Unused for passthrough.

                  - **Source608TrackNumber** *(integer) --* This field is unused and deprecated.

                - **Scte20SourceSettings** *(dict) --* Scte20 Source Settings

                  - **Convert608To708** *(string) --* If upconvert, 608 data is both passed through
                  via the "608 compatibility bytes" fields of the 708 wrapper as well as translated
                  into 708. 708 data present in the source content will be discarded.

                  - **Source608ChannelNumber** *(integer) --* Specifies the 608/708 channel number
                  within the video track from which to extract captions. Unused for passthrough.

                - **Scte27SourceSettings** *(dict) --* Scte27 Source Settings

                  - **Pid** *(integer) --* The pid field is used in conjunction with the caption
                  selector languageCode field as follows: - Specify PID and Language: Extracts
                  captions from that PID; the language is "informational". - Specify PID and omit
                  Language: Extracts the specified PID. - Omit PID and specify Language: Extracts
                  the specified language, whichever PID that happens to be. - Omit PID and omit
                  Language: Valid only if source is DVB-Sub that is being passed through; all
                  languages will be passed through.

                - **TeletextSourceSettings** *(dict) --* Teletext Source Settings

                  - **PageNumber** *(string) --* Specifies the teletext page number within the data
                  stream from which to extract captions. Range of 0x100 (256) to 0x8FF (2303).
                  Unused for passthrough. Should be specified as a hexadecimal string with no "0x"
                  prefix.

          - **DeblockFilter** *(string) --* Enable or disable the deblock filter when filtering.

          - **DenoiseFilter** *(string) --* Enable or disable the denoise filter when filtering.

          - **FilterStrength** *(integer) --* Adjusts the magnitude of filtering from 1 (minimal) to
          5 (strongest).

          - **InputFilter** *(string) --* Turns on the filter for this input. MPEG-2 inputs have the
          deblocking filter enabled by default. 1) auto - filtering will be applied depending on
          input type/quality 2) disabled - no filtering will be applied to the input 3) forced -
          filtering will be applied regardless of input type

          - **NetworkInputSettings** *(dict) --* Input settings.

            - **HlsInputSettings** *(dict) --* Specifies HLS input settings when the uri is for a
            HLS manifest.

              - **Bandwidth** *(integer) --* When specified the HLS stream with the m3u8 BANDWIDTH
              that most closely matches this value will be chosen, otherwise the highest bandwidth
              stream in the m3u8 will be chosen. The bitrate is specified in bits per second, as in
              an HLS manifest.

              - **BufferSegments** *(integer) --* When specified, reading of the HLS input will
              begin this many buffer segments from the end (most recently written segment). When not
              specified, the HLS input will begin with the first segment specified in the m3u8.

              - **Retries** *(integer) --* The number of consecutive times that attempts to read a
              manifest or segment must fail before the input is considered unavailable.

              - **RetryInterval** *(integer) --* The number of seconds between retries when an
              attempt to read a manifest or segment fails.

            - **ServerValidation** *(string) --* Check HTTPS server certificates. When set to
            checkCryptographyOnly, cryptography in the certificate will be checked, but not the
            server's name. Certain subdomains (notably S3 buckets that use dots in the bucket name)
            do not strictly match the corresponding certificate's wildcard pattern and would
            otherwise cause the event to error. This setting is ignored for protocols that do not
            use https.

          - **SourceEndBehavior** *(string) --* Loop input if it is a file. This allows a file input
          to be streamed indefinitely.

          - **VideoSelector** *(dict) --* Informs which video elementary stream to decode for input
          types that have multiple available.

            - **ColorSpace** *(string) --* Specifies the color space of an input. This setting works
            in tandem with colorSpaceUsage and a video description's colorSpaceSettingsChoice to
            determine if any conversion will be performed.

            - **ColorSpaceUsage** *(string) --* Applies only if colorSpace is a value other than
            follow. This field controls how the value in the colorSpace field will be used. fallback
            means that when the input does include color space data, that data will be used, but
            when the input has no color space data, the value in colorSpace will be used. Choose
            fallback if your input is sometimes missing color space data, but when it does have
            color space data, that data is correct. force means to always use the value in
            colorSpace. Choose force if your input usually has no color space data or might have
            unreliable color space data.

            - **SelectorSettings** *(dict) --* The video selector settings.

              - **VideoSelectorPid** *(dict) --* Video Selector Pid

                - **Pid** *(integer) --* Selects a specific PID from within a video source.

              - **VideoSelectorProgramId** *(dict) --* Video Selector Program Id

                - **ProgramId** *(integer) --* Selects a specific program from within a
                multi-program transport stream. If the program doesn't exist, the first program
                within the transport stream will be selected by default.

    - **InputSpecification** *(dict) --* Placeholder documentation for InputSpecification

      - **Codec** *(string) --* Input codec

      - **MaximumBitrate** *(string) --* Maximum input bitrate, categorized coarsely

      - **Resolution** *(string) --* Input resolution, categorized coarsely

    - **LogLevel** *(string) --* The log level being written to CloudWatch Logs.

    - **Name** *(string) --* The name of the channel. (user-mutable)

    - **PipelineDetails** *(list) --* Runtime details for the pipelines of a running channel.

      - *(dict) --* Runtime details of a pipeline when a channel is running.

        - **ActiveInputAttachmentName** *(string) --* The name of the active input attachment
        currently being ingested by this pipeline.

        - **ActiveInputSwitchActionName** *(string) --* The name of the input switch schedule action
        that occurred most recently and that resulted in the switch to the current input attachment
        for this pipeline.

        - **PipelineId** *(string) --* Pipeline ID

    - **PipelinesRunningCount** *(integer) --* The number of currently healthy pipelines.

    - **RoleArn** *(string) --* The Amazon Resource Name (ARN) of the role assumed when running the
    Channel.

    - **State** *(string) --* Placeholder documentation for ChannelState

    - **Tags** *(dict) --* A collection of key-value pairs.

      - *(string) --* Placeholder documentation for __string

        - *(string) --* Placeholder documentation for __string
    """


_ClientCreateChannelResponseTypeDef = TypedDict(
    "_ClientCreateChannelResponseTypeDef",
    {"Channel": ClientCreateChannelResponseChannelTypeDef},
    total=False,
)


class ClientCreateChannelResponseTypeDef(_ClientCreateChannelResponseTypeDef):
    """
    Type definition for `ClientCreateChannel` `Response`

    - **Channel** *(dict) --* Placeholder documentation for Channel

      - **Arn** *(string) --* The unique arn of the channel.

      - **ChannelClass** *(string) --* The class for this channel. STANDARD for a channel with two
      pipelines or SINGLE_PIPELINE for a channel with one pipeline.

      - **Destinations** *(list) --* A list of destinations of the channel. For UDP outputs, there
      is one destination per output. For other types (HLS, for example), there is one destination
      per packager.

        - *(dict) --* Placeholder documentation for OutputDestination

          - **Id** *(string) --* User-specified id. This is used in an output group or an output.

          - **MediaPackageSettings** *(list) --* Destination settings for a MediaPackage output; one
          destination for both encoders.

            - *(dict) --* MediaPackage Output Destination Settings

              - **ChannelId** *(string) --* ID of the channel in MediaPackage that is the
              destination for this output group. You do not need to specify the individual inputs in
              MediaPackage; MediaLive will handle the connection of the two MediaLive pipelines to
              the two MediaPackage inputs. The MediaPackage channel and MediaLive channel must be in
              the same region.

          - **MultiplexSettings** *(dict) --* Destination settings for a Multiplex output; one
          destination for both encoders.

            - **MultiplexId** *(string) --* The ID of the Multiplex that the encoder is providing
            output to. You do not need to specify the individual inputs to the Multiplex; MediaLive
            will handle the connection of the two MediaLive pipelines to the two Multiplex
            instances. The Multiplex must be in the same region as the Channel.

            - **ProgramName** *(string) --* The program name of the Multiplex program that the
            encoder is providing output to.

          - **Settings** *(list) --* Destination settings for a standard output; one destination for
          each redundant encoder.

            - *(dict) --* Placeholder documentation for OutputDestinationSettings

              - **PasswordParam** *(string) --* key used to extract the password from EC2 Parameter
              store

              - **StreamName** *(string) --* Stream name for RTMP destinations (URLs of type
              rtmp://)

              - **Url** *(string) --* A URL specifying a destination

              - **Username** *(string) --* username for destination

      - **EgressEndpoints** *(list) --* The endpoints where outgoing connections initiate from

        - *(dict) --* Placeholder documentation for ChannelEgressEndpoint

          - **SourceIp** *(string) --* Public IP of where a channel's output comes from

      - **EncoderSettings** *(dict) --* Encoder Settings

        - **AudioDescriptions** *(list) --* Placeholder documentation for __listOfAudioDescription

          - *(dict) --* Audio Description

            - **AudioNormalizationSettings** *(dict) --* Advanced audio normalization settings.

              - **Algorithm** *(string) --* Audio normalization algorithm to use. itu17701 conforms
              to the CALM Act specification, itu17702 conforms to the EBU R-128 specification.

              - **AlgorithmControl** *(string) --* When set to correctAudio the output audio is
              corrected using the chosen algorithm. If set to measureOnly, the audio will be
              measured but not adjusted.

              - **TargetLkfs** *(float) --* Target LKFS(loudness) to adjust volume to. If no value
              is entered, a default value will be used according to the chosen algorithm. The CALM
              Act (1770-1) recommends a target of -24 LKFS. The EBU R-128 specification (1770-2)
              recommends a target of -23 LKFS.

            - **AudioSelectorName** *(string) --* The name of the AudioSelector used as the source
            for this AudioDescription.

            - **AudioType** *(string) --* Applies only if audioTypeControl is useConfigured. The
            values for audioType are defined in ISO-IEC 13818-1.

            - **AudioTypeControl** *(string) --* Determines how audio type is determined.
            followInput: If the input contains an ISO 639 audioType, then that value is passed
            through to the output. If the input contains no ISO 639 audioType, the value in Audio
            Type is included in the output. useConfigured: The value in Audio Type is included in
            the output. Note that this field and audioType are both ignored if inputType is
            broadcasterMixedAd.

            - **CodecSettings** *(dict) --* Audio codec settings.

              - **AacSettings** *(dict) --* Aac Settings

                - **Bitrate** *(float) --* Average bitrate in bits/second. Valid values depend on
                rate control mode and profile.

                - **CodingMode** *(string) --* Mono, Stereo, or 5.1 channel layout. Valid values
                depend on rate control mode and profile. The adReceiverMix setting receives a stereo
                description plus control track and emits a mono AAC encode of the description track,
                with control data emitted in the PES header as per ETSI TS 101 154 Annex E.

                - **InputType** *(string) --* Set to "broadcasterMixedAd" when input contains
                pre-mixed main audio + AD (narration) as a stereo pair. The Audio Type field
                (audioType) will be set to 3, which signals to downstream systems that this stream
                contains "broadcaster mixed AD". Note that the input received by the encoder must
                contain pre-mixed audio; the encoder does not perform the mixing. The values in
                audioTypeControl and audioType (in AudioDescription) are ignored when set to
                broadcasterMixedAd. Leave set to "normal" when input does not contain pre-mixed
                audio + AD.

                - **Profile** *(string) --* AAC Profile.

                - **RateControlMode** *(string) --* Rate Control Mode.

                - **RawFormat** *(string) --* Sets LATM / LOAS AAC output for raw containers.

                - **SampleRate** *(float) --* Sample rate in Hz. Valid values depend on rate control
                mode and profile.

                - **Spec** *(string) --* Use MPEG-2 AAC audio instead of MPEG-4 AAC audio for raw or
                MPEG-2 Transport Stream containers.

                - **VbrQuality** *(string) --* VBR Quality Level - Only used if rateControlMode is
                VBR.

              - **Ac3Settings** *(dict) --* Ac3 Settings

                - **Bitrate** *(float) --* Average bitrate in bits/second. Valid bitrates depend on
                the coding mode.

                - **BitstreamMode** *(string) --* Specifies the bitstream mode (bsmod) for the
                emitted AC-3 stream. See ATSC A/52-2012 for background on these values.

                - **CodingMode** *(string) --* Dolby Digital coding mode. Determines number of
                channels.

                - **Dialnorm** *(integer) --* Sets the dialnorm for the output. If excluded and
                input audio is Dolby Digital, dialnorm will be passed through.

                - **DrcProfile** *(string) --* If set to filmStandard, adds dynamic range
                compression signaling to the output bitstream as defined in the Dolby Digital
                specification.

                - **LfeFilter** *(string) --* When set to enabled, applies a 120Hz lowpass filter to
                the LFE channel prior to encoding. Only valid in codingMode32Lfe mode.

                - **MetadataControl** *(string) --* When set to "followInput", encoder metadata will
                be sourced from the DD, DD+, or DolbyE decoder that supplied this audio data. If
                audio was not supplied from one of these streams, then the static metadata settings
                will be used.

              - **Eac3Settings** *(dict) --* Eac3 Settings

                - **AttenuationControl** *(string) --* When set to attenuate3Db, applies a 3 dB
                attenuation to the surround channels. Only used for 3/2 coding mode.

                - **Bitrate** *(float) --* Average bitrate in bits/second. Valid bitrates depend on
                the coding mode.

                - **BitstreamMode** *(string) --* Specifies the bitstream mode (bsmod) for the
                emitted E-AC-3 stream. See ATSC A/52-2012 (Annex E) for background on these values.

                - **CodingMode** *(string) --* Dolby Digital Plus coding mode. Determines number of
                channels.

                - **DcFilter** *(string) --* When set to enabled, activates a DC highpass filter for
                all input channels.

                - **Dialnorm** *(integer) --* Sets the dialnorm for the output. If blank and input
                audio is Dolby Digital Plus, dialnorm will be passed through.

                - **DrcLine** *(string) --* Sets the Dolby dynamic range compression profile.

                - **DrcRf** *(string) --* Sets the profile for heavy Dolby dynamic range
                compression, ensures that the instantaneous signal peaks do not exceed specified
                levels.

                - **LfeControl** *(string) --* When encoding 3/2 audio, setting to lfe enables the
                LFE channel

                - **LfeFilter** *(string) --* When set to enabled, applies a 120Hz lowpass filter to
                the LFE channel prior to encoding. Only valid with codingMode32 coding mode.

                - **LoRoCenterMixLevel** *(float) --* Left only/Right only center mix level. Only
                used for 3/2 coding mode.

                - **LoRoSurroundMixLevel** *(float) --* Left only/Right only surround mix level.
                Only used for 3/2 coding mode.

                - **LtRtCenterMixLevel** *(float) --* Left total/Right total center mix level. Only
                used for 3/2 coding mode.

                - **LtRtSurroundMixLevel** *(float) --* Left total/Right total surround mix level.
                Only used for 3/2 coding mode.

                - **MetadataControl** *(string) --* When set to followInput, encoder metadata will
                be sourced from the DD, DD+, or DolbyE decoder that supplied this audio data. If
                audio was not supplied from one of these streams, then the static metadata settings
                will be used.

                - **PassthroughControl** *(string) --* When set to whenPossible, input DD+ audio
                will be passed through if it is present on the input. This detection is dynamic over
                the life of the transcode. Inputs that alternate between DD+ and non-DD+ content
                will have a consistent DD+ output as the system alternates between passthrough and
                encoding.

                - **PhaseControl** *(string) --* When set to shift90Degrees, applies a 90-degree
                phase shift to the surround channels. Only used for 3/2 coding mode.

                - **StereoDownmix** *(string) --* Stereo downmix preference. Only used for 3/2
                coding mode.

                - **SurroundExMode** *(string) --* When encoding 3/2 audio, sets whether an extra
                center back surround channel is matrix encoded into the left and right surround
                channels.

                - **SurroundMode** *(string) --* When encoding 2/0 audio, sets whether Dolby
                Surround is matrix encoded into the two channels.

              - **Mp2Settings** *(dict) --* Mp2 Settings

                - **Bitrate** *(float) --* Average bitrate in bits/second.

                - **CodingMode** *(string) --* The MPEG2 Audio coding mode. Valid values are
                codingMode10 (for mono) or codingMode20 (for stereo).

                - **SampleRate** *(float) --* Sample rate in Hz.

              - **PassThroughSettings** *(dict) --* Pass Through Settings

            - **LanguageCode** *(string) --* Indicates the language of the audio output track. Only
            used if languageControlMode is useConfigured, or there is no ISO 639 language code
            specified in the input.

            - **LanguageCodeControl** *(string) --* Choosing followInput will cause the ISO 639
            language code of the output to follow the ISO 639 language code of the input. The
            languageCode will be used when useConfigured is set, or when followInput is selected but
            there is no ISO 639 language code specified by the input.

            - **Name** *(string) --* The name of this AudioDescription. Outputs will use this name
            to uniquely identify this AudioDescription. Description names should be unique within
            this Live Event.

            - **RemixSettings** *(dict) --* Settings that control how input audio channels are
            remixed into the output audio channels.

              - **ChannelMappings** *(list) --* Mapping of input channels to output channels, with
              appropriate gain adjustments.

                - *(dict) --* Audio Channel Mapping

                  - **InputChannelLevels** *(list) --* Indices and gain values for each input
                  channel that should be remixed into this output channel.

                    - *(dict) --* Input Channel Level

                      - **Gain** *(integer) --* Remixing value. Units are in dB and acceptable
                      values are within the range from -60 (mute) and 6 dB.

                      - **InputChannel** *(integer) --* The index of the input channel used as a
                      source.

                  - **OutputChannel** *(integer) --* The index of the output channel being produced.

              - **ChannelsIn** *(integer) --* Number of input channels to be used.

              - **ChannelsOut** *(integer) --* Number of output channels to be produced. Valid
              values: 1, 2, 4, 6, 8

            - **StreamName** *(string) --* Used for MS Smooth and Apple HLS outputs. Indicates the
            name displayed by the player (eg. English, or Director Commentary).

        - **AvailBlanking** *(dict) --* Settings for ad avail blanking.

          - **AvailBlankingImage** *(dict) --* Blanking image to be used. Leave empty for solid
          black. Only bmp and png images are supported.

            - **PasswordParam** *(string) --* key used to extract the password from EC2 Parameter
            store

            - **Uri** *(string) --* Uniform Resource Identifier - This should be a path to a file
            accessible to the Live system (eg. a http:// URI) depending on the output type. For
            example, a RTMP destination should have a uri simliar to: "rtmp://fmsserver/live".

            - **Username** *(string) --* Documentation update needed

          - **State** *(string) --* When set to enabled, causes video, audio and captions to be
          blanked when insertion metadata is added.

        - **AvailConfiguration** *(dict) --* Event-wide configuration settings for ad avail
        insertion.

          - **AvailSettings** *(dict) --* Ad avail settings.

            - **Scte35SpliceInsert** *(dict) --* Scte35 Splice Insert

              - **AdAvailOffset** *(integer) --* When specified, this offset (in milliseconds) is
              added to the input Ad Avail PTS time. This only applies to embedded SCTE 104/35
              messages and does not apply to OOB messages.

              - **NoRegionalBlackoutFlag** *(string) --* When set to ignore, Segment Descriptors
              with noRegionalBlackoutFlag set to 0 will no longer trigger blackouts or Ad Avail
              slates

              - **WebDeliveryAllowedFlag** *(string) --* When set to ignore, Segment Descriptors
              with webDeliveryAllowedFlag set to 0 will no longer trigger blackouts or Ad Avail
              slates

            - **Scte35TimeSignalApos** *(dict) --* Scte35 Time Signal Apos

              - **AdAvailOffset** *(integer) --* When specified, this offset (in milliseconds) is
              added to the input Ad Avail PTS time. This only applies to embedded SCTE 104/35
              messages and does not apply to OOB messages.

              - **NoRegionalBlackoutFlag** *(string) --* When set to ignore, Segment Descriptors
              with noRegionalBlackoutFlag set to 0 will no longer trigger blackouts or Ad Avail
              slates

              - **WebDeliveryAllowedFlag** *(string) --* When set to ignore, Segment Descriptors
              with webDeliveryAllowedFlag set to 0 will no longer trigger blackouts or Ad Avail
              slates

        - **BlackoutSlate** *(dict) --* Settings for blackout slate.

          - **BlackoutSlateImage** *(dict) --* Blackout slate image to be used. Leave empty for
          solid black. Only bmp and png images are supported.

            - **PasswordParam** *(string) --* key used to extract the password from EC2 Parameter
            store

            - **Uri** *(string) --* Uniform Resource Identifier - This should be a path to a file
            accessible to the Live system (eg. a http:// URI) depending on the output type. For
            example, a RTMP destination should have a uri simliar to: "rtmp://fmsserver/live".

            - **Username** *(string) --* Documentation update needed

          - **NetworkEndBlackout** *(string) --* Setting to enabled causes the encoder to blackout
          the video, audio, and captions, and raise the "Network Blackout Image" slate when an
          SCTE104/35 Network End Segmentation Descriptor is encountered. The blackout will be lifted
          when the Network Start Segmentation Descriptor is encountered. The Network End and Network
          Start descriptors must contain a network ID that matches the value entered in "Network
          ID".

          - **NetworkEndBlackoutImage** *(dict) --* Path to local file to use as Network End
          Blackout image. Image will be scaled to fill the entire output raster.

            - **PasswordParam** *(string) --* key used to extract the password from EC2 Parameter
            store

            - **Uri** *(string) --* Uniform Resource Identifier - This should be a path to a file
            accessible to the Live system (eg. a http:// URI) depending on the output type. For
            example, a RTMP destination should have a uri simliar to: "rtmp://fmsserver/live".

            - **Username** *(string) --* Documentation update needed

          - **NetworkId** *(string) --* Provides Network ID that matches EIDR ID format (e.g.,
          "10.XXXX/XXXX-XXXX-XXXX-XXXX-XXXX-C").

          - **State** *(string) --* When set to enabled, causes video, audio and captions to be
          blanked when indicated by program metadata.

        - **CaptionDescriptions** *(list) --* Settings for caption decriptions

          - *(dict) --* Caption Description

            - **CaptionSelectorName** *(string) --* Specifies which input caption selector to use as
            a caption source when generating output captions. This field should match a
            captionSelector name.

            - **DestinationSettings** *(dict) --* Additional settings for captions destination that
            depend on the destination type.

              - **AribDestinationSettings** *(dict) --* Arib Destination Settings

              - **BurnInDestinationSettings** *(dict) --* Burn In Destination Settings

                - **Alignment** *(string) --* If no explicit xPosition or yPosition is provided,
                setting alignment to centered will place the captions at the bottom center of the
                output. Similarly, setting a left alignment will align captions to the bottom left
                of the output. If x and y positions are given in conjunction with the alignment
                parameter, the font will be justified (either left or centered) relative to those
                coordinates. Selecting "smart" justification will left-justify live subtitles and
                center-justify pre-recorded subtitles. All burn-in and DVB-Sub font settings must
                match.

                - **BackgroundColor** *(string) --* Specifies the color of the rectangle behind the
                captions. All burn-in and DVB-Sub font settings must match.

                - **BackgroundOpacity** *(integer) --* Specifies the opacity of the background
                rectangle. 255 is opaque; 0 is transparent. Leaving this parameter out is equivalent
                to setting it to 0 (transparent). All burn-in and DVB-Sub font settings must match.

                - **Font** *(dict) --* External font file used for caption burn-in. File extension
                must be 'ttf' or 'tte'. Although the user can select output fonts for many different
                types of input captions, embedded, STL and teletext sources use a strict grid
                system. Using external fonts with these caption sources could cause unexpected
                display of proportional fonts. All burn-in and DVB-Sub font settings must match.

                  - **PasswordParam** *(string) --* key used to extract the password from EC2
                  Parameter store

                  - **Uri** *(string) --* Uniform Resource Identifier - This should be a path to a
                  file accessible to the Live system (eg. a http:// URI) depending on the output
                  type. For example, a RTMP destination should have a uri simliar to:
                  "rtmp://fmsserver/live".

                  - **Username** *(string) --* Documentation update needed

                - **FontColor** *(string) --* Specifies the color of the burned-in captions. This
                option is not valid for source captions that are STL, 608/embedded or teletext.
                These source settings are already pre-defined by the caption stream. All burn-in and
                DVB-Sub font settings must match.

                - **FontOpacity** *(integer) --* Specifies the opacity of the burned-in captions.
                255 is opaque; 0 is transparent. All burn-in and DVB-Sub font settings must match.

                - **FontResolution** *(integer) --* Font resolution in DPI (dots per inch); default
                is 96 dpi. All burn-in and DVB-Sub font settings must match.

                - **FontSize** *(string) --* When set to 'auto' fontSize will scale depending on the
                size of the output. Giving a positive integer will specify the exact font size in
                points. All burn-in and DVB-Sub font settings must match.

                - **OutlineColor** *(string) --* Specifies font outline color. This option is not
                valid for source captions that are either 608/embedded or teletext. These source
                settings are already pre-defined by the caption stream. All burn-in and DVB-Sub font
                settings must match.

                - **OutlineSize** *(integer) --* Specifies font outline size in pixels. This option
                is not valid for source captions that are either 608/embedded or teletext. These
                source settings are already pre-defined by the caption stream. All burn-in and
                DVB-Sub font settings must match.

                - **ShadowColor** *(string) --* Specifies the color of the shadow cast by the
                captions. All burn-in and DVB-Sub font settings must match.

                - **ShadowOpacity** *(integer) --* Specifies the opacity of the shadow. 255 is
                opaque; 0 is transparent. Leaving this parameter out is equivalent to setting it to
                0 (transparent). All burn-in and DVB-Sub font settings must match.

                - **ShadowXOffset** *(integer) --* Specifies the horizontal offset of the shadow
                relative to the captions in pixels. A value of -2 would result in a shadow offset 2
                pixels to the left. All burn-in and DVB-Sub font settings must match.

                - **ShadowYOffset** *(integer) --* Specifies the vertical offset of the shadow
                relative to the captions in pixels. A value of -2 would result in a shadow offset 2
                pixels above the text. All burn-in and DVB-Sub font settings must match.

                - **TeletextGridControl** *(string) --* Controls whether a fixed grid size will be
                used to generate the output subtitles bitmap. Only applicable for Teletext inputs
                and DVB-Sub/Burn-in outputs.

                - **XPosition** *(integer) --* Specifies the horizontal position of the caption
                relative to the left side of the output in pixels. A value of 10 would result in the
                captions starting 10 pixels from the left of the output. If no explicit xPosition is
                provided, the horizontal caption position will be determined by the alignment
                parameter. All burn-in and DVB-Sub font settings must match.

                - **YPosition** *(integer) --* Specifies the vertical position of the caption
                relative to the top of the output in pixels. A value of 10 would result in the
                captions starting 10 pixels from the top of the output. If no explicit yPosition is
                provided, the caption will be positioned towards the bottom of the output. All
                burn-in and DVB-Sub font settings must match.

              - **DvbSubDestinationSettings** *(dict) --* Dvb Sub Destination Settings

                - **Alignment** *(string) --* If no explicit xPosition or yPosition is provided,
                setting alignment to centered will place the captions at the bottom center of the
                output. Similarly, setting a left alignment will align captions to the bottom left
                of the output. If x and y positions are given in conjunction with the alignment
                parameter, the font will be justified (either left or centered) relative to those
                coordinates. Selecting "smart" justification will left-justify live subtitles and
                center-justify pre-recorded subtitles. This option is not valid for source captions
                that are STL or 608/embedded. These source settings are already pre-defined by the
                caption stream. All burn-in and DVB-Sub font settings must match.

                - **BackgroundColor** *(string) --* Specifies the color of the rectangle behind the
                captions. All burn-in and DVB-Sub font settings must match.

                - **BackgroundOpacity** *(integer) --* Specifies the opacity of the background
                rectangle. 255 is opaque; 0 is transparent. Leaving this parameter blank is
                equivalent to setting it to 0 (transparent). All burn-in and DVB-Sub font settings
                must match.

                - **Font** *(dict) --* External font file used for caption burn-in. File extension
                must be 'ttf' or 'tte'. Although the user can select output fonts for many different
                types of input captions, embedded, STL and teletext sources use a strict grid
                system. Using external fonts with these caption sources could cause unexpected
                display of proportional fonts. All burn-in and DVB-Sub font settings must match.

                  - **PasswordParam** *(string) --* key used to extract the password from EC2
                  Parameter store

                  - **Uri** *(string) --* Uniform Resource Identifier - This should be a path to a
                  file accessible to the Live system (eg. a http:// URI) depending on the output
                  type. For example, a RTMP destination should have a uri simliar to:
                  "rtmp://fmsserver/live".

                  - **Username** *(string) --* Documentation update needed

                - **FontColor** *(string) --* Specifies the color of the burned-in captions. This
                option is not valid for source captions that are STL, 608/embedded or teletext.
                These source settings are already pre-defined by the caption stream. All burn-in and
                DVB-Sub font settings must match.

                - **FontOpacity** *(integer) --* Specifies the opacity of the burned-in captions.
                255 is opaque; 0 is transparent. All burn-in and DVB-Sub font settings must match.

                - **FontResolution** *(integer) --* Font resolution in DPI (dots per inch); default
                is 96 dpi. All burn-in and DVB-Sub font settings must match.

                - **FontSize** *(string) --* When set to auto fontSize will scale depending on the
                size of the output. Giving a positive integer will specify the exact font size in
                points. All burn-in and DVB-Sub font settings must match.

                - **OutlineColor** *(string) --* Specifies font outline color. This option is not
                valid for source captions that are either 608/embedded or teletext. These source
                settings are already pre-defined by the caption stream. All burn-in and DVB-Sub font
                settings must match.

                - **OutlineSize** *(integer) --* Specifies font outline size in pixels. This option
                is not valid for source captions that are either 608/embedded or teletext. These
                source settings are already pre-defined by the caption stream. All burn-in and
                DVB-Sub font settings must match.

                - **ShadowColor** *(string) --* Specifies the color of the shadow cast by the
                captions. All burn-in and DVB-Sub font settings must match.

                - **ShadowOpacity** *(integer) --* Specifies the opacity of the shadow. 255 is
                opaque; 0 is transparent. Leaving this parameter blank is equivalent to setting it
                to 0 (transparent). All burn-in and DVB-Sub font settings must match.

                - **ShadowXOffset** *(integer) --* Specifies the horizontal offset of the shadow
                relative to the captions in pixels. A value of -2 would result in a shadow offset 2
                pixels to the left. All burn-in and DVB-Sub font settings must match.

                - **ShadowYOffset** *(integer) --* Specifies the vertical offset of the shadow
                relative to the captions in pixels. A value of -2 would result in a shadow offset 2
                pixels above the text. All burn-in and DVB-Sub font settings must match.

                - **TeletextGridControl** *(string) --* Controls whether a fixed grid size will be
                used to generate the output subtitles bitmap. Only applicable for Teletext inputs
                and DVB-Sub/Burn-in outputs.

                - **XPosition** *(integer) --* Specifies the horizontal position of the caption
                relative to the left side of the output in pixels. A value of 10 would result in the
                captions starting 10 pixels from the left of the output. If no explicit xPosition is
                provided, the horizontal caption position will be determined by the alignment
                parameter. This option is not valid for source captions that are STL, 608/embedded
                or teletext. These source settings are already pre-defined by the caption stream.
                All burn-in and DVB-Sub font settings must match.

                - **YPosition** *(integer) --* Specifies the vertical position of the caption
                relative to the top of the output in pixels. A value of 10 would result in the
                captions starting 10 pixels from the top of the output. If no explicit yPosition is
                provided, the caption will be positioned towards the bottom of the output. This
                option is not valid for source captions that are STL, 608/embedded or teletext.
                These source settings are already pre-defined by the caption stream. All burn-in and
                DVB-Sub font settings must match.

              - **EmbeddedDestinationSettings** *(dict) --* Embedded Destination Settings

              - **EmbeddedPlusScte20DestinationSettings** *(dict) --* Embedded Plus Scte20
              Destination Settings

              - **RtmpCaptionInfoDestinationSettings** *(dict) --* Rtmp Caption Info Destination
              Settings

              - **Scte20PlusEmbeddedDestinationSettings** *(dict) --* Scte20 Plus Embedded
              Destination Settings

              - **Scte27DestinationSettings** *(dict) --* Scte27 Destination Settings

              - **SmpteTtDestinationSettings** *(dict) --* Smpte Tt Destination Settings

              - **TeletextDestinationSettings** *(dict) --* Teletext Destination Settings

              - **TtmlDestinationSettings** *(dict) --* Ttml Destination Settings

                - **StyleControl** *(string) --* When set to passthrough, passes through style and
                position information from a TTML-like input source (TTML, SMPTE-TT, CFF-TT) to the
                CFF-TT output or TTML output.

              - **WebvttDestinationSettings** *(dict) --* Webvtt Destination Settings

            - **LanguageCode** *(string) --* ISO 639-2 three-digit code:
            http://www.loc.gov/standards/iso639-2/

            - **LanguageDescription** *(string) --* Human readable information to indicate captions
            available for players (eg. English, or Spanish).

            - **Name** *(string) --* Name of the caption description. Used to associate a caption
            description with an output. Names must be unique within an event.

        - **GlobalConfiguration** *(dict) --* Configuration settings that apply to the event as a
        whole.

          - **InitialAudioGain** *(integer) --* Value to set the initial audio gain for the Live
          Event.

          - **InputEndAction** *(string) --* Indicates the action to take when the current input
          completes (e.g. end-of-file). When switchAndLoopInputs is configured the encoder will
          restart at the beginning of the first input. When "none" is configured the encoder will
          transcode either black, a solid color, or a user specified slate images per the "Input
          Loss Behavior" configuration until the next input switch occurs (which is controlled
          through the Channel Schedule API).

          - **InputLossBehavior** *(dict) --* Settings for system actions when input is lost.

            - **BlackFrameMsec** *(integer) --* Documentation update needed

            - **InputLossImageColor** *(string) --* When input loss image type is "color" this field
            specifies the color to use. Value: 6 hex characters representing the values of RGB.

            - **InputLossImageSlate** *(dict) --* When input loss image type is "slate" these fields
            specify the parameters for accessing the slate.

              - **PasswordParam** *(string) --* key used to extract the password from EC2 Parameter
              store

              - **Uri** *(string) --* Uniform Resource Identifier - This should be a path to a file
              accessible to the Live system (eg. a http:// URI) depending on the output type. For
              example, a RTMP destination should have a uri simliar to: "rtmp://fmsserver/live".

              - **Username** *(string) --* Documentation update needed

            - **InputLossImageType** *(string) --* Indicates whether to substitute a solid color or
            a slate into the output after input loss exceeds blackFrameMsec.

            - **RepeatFrameMsec** *(integer) --* Documentation update needed

          - **OutputLockingMode** *(string) --* Indicates how MediaLive pipelines are synchronized.
          PIPELINELOCKING - MediaLive will attempt to synchronize the output of each pipeline to the
          other. EPOCHLOCKING - MediaLive will attempt to synchronize the output of each pipeline to
          the Unix epoch.

          - **OutputTimingSource** *(string) --* Indicates whether the rate of frames emitted by the
          Live encoder should be paced by its system clock (which optionally may be locked to
          another source via NTP) or should be locked to the clock of the source that is providing
          the input stream.

          - **SupportLowFramerateInputs** *(string) --* Adjusts video input buffer for streams with
          very low video framerates. This is commonly set to enabled for music channels with less
          than one video frame per second.

        - **NielsenConfiguration** *(dict) --* Nielsen configuration settings.

          - **DistributorId** *(string) --* Enter the Distributor ID assigned to your organization
          by Nielsen.

          - **NielsenPcmToId3Tagging** *(string) --* Enables Nielsen PCM to ID3 tagging

        - **OutputGroups** *(list) --* Placeholder documentation for __listOfOutputGroup

          - *(dict) --* Output groups for this Live Event. Output groups contain information about
          where streams should be distributed.

            - **Name** *(string) --* Custom output group name optionally defined by the user. Only
            letters, numbers, and the underscore character allowed; only 32 characters allowed.

            - **OutputGroupSettings** *(dict) --* Settings associated with the output group.

              - **ArchiveGroupSettings** *(dict) --* Archive Group Settings

                - **Destination** *(dict) --* A directory and base filename where archive files
                should be written.

                  - **DestinationRefId** *(string) --* Placeholder documentation for __string

                - **RolloverInterval** *(integer) --* Number of seconds to write to archive file
                before closing and starting a new one.

              - **FrameCaptureGroupSettings** *(dict) --* Frame Capture Group Settings

                - **Destination** *(dict) --* The destination for the frame capture files. Either
                the URI for an Amazon S3 bucket and object, plus a file name prefix (for example,
                s3ssl://sportsDelivery/highlights/20180820/curling_) or the URI for a MediaStore
                container, plus a file name prefix (for example,
                mediastoressl://sportsDelivery/20180820/curling_). The final file names consist of
                the prefix from the destination field (for example, "curling_") + name modifier +
                the counter (5 digits, starting from 00001) + extension (which is always .jpg). For
                example, curlingLow.00001.jpg

                  - **DestinationRefId** *(string) --* Placeholder documentation for __string

              - **HlsGroupSettings** *(dict) --* Hls Group Settings

                - **AdMarkers** *(list) --* Choose one or more ad marker types to pass SCTE35
                signals through to this group of Apple HLS outputs.

                  - *(string) --* Hls Ad Markers

                - **BaseUrlContent** *(string) --* A partial URI prefix that will be prepended to
                each output in the media .m3u8 file. Can be used if base manifest is delivered from
                a different URL than the main .m3u8 file.

                - **BaseUrlManifest** *(string) --* A partial URI prefix that will be prepended to
                each output in the media .m3u8 file. Can be used if base manifest is delivered from
                a different URL than the main .m3u8 file.

                - **CaptionLanguageMappings** *(list) --* Mapping of up to 4 caption channels to
                caption languages. Is only meaningful if captionLanguageSetting is set to "insert".

                  - *(dict) --* Maps a caption channel to an ISO 693-2 language code
                  (http://www.loc.gov/standards/iso639-2), with an optional description.

                    - **CaptionChannel** *(integer) --* The closed caption channel being described
                    by this CaptionLanguageMapping. Each channel mapping must have a unique channel
                    number (maximum of 4)

                    - **LanguageCode** *(string) --* Three character ISO 639-2 language code (see
                    http://www.loc.gov/standards/iso639-2)

                    - **LanguageDescription** *(string) --* Textual description of language

                - **CaptionLanguageSetting** *(string) --* Applies only to 608 Embedded output
                captions. insert: Include CLOSED-CAPTIONS lines in the manifest. Specify at least
                one language in the CC1 Language Code field. One CLOSED-CAPTION line is added for
                each Language Code you specify. Make sure to specify the languages in the order in
                which they appear in the original source (if the source is embedded format) or the
                order of the caption selectors (if the source is other than embedded). Otherwise,
                languages in the manifest will not match up properly with the output captions. none:
                Include CLOSED-CAPTIONS=
                    NONE line in the manifest. omit: Omit any CLOSED-CAPTIONS
                line from the manifest.

                - **ClientCache** *(string) --* When set to "disabled", sets the
                #EXT-X-ALLOW-CACHE:no tag in the manifest, which prevents clients from saving media
                segments for later replay.

                - **CodecSpecification** *(string) --* Specification to use (RFC-6381 or the default
                RFC-4281) during m3u8 playlist generation.

                - **ConstantIv** *(string) --* For use with encryptionType. This is a 128-bit,
                16-byte hex value represented by a 32-character text string. If ivSource is set to
                "explicit" then this parameter is required and is used as the IV for encryption.

                - **Destination** *(dict) --* A directory or HTTP destination for the HLS segments,
                manifest files, and encryption keys (if enabled).

                  - **DestinationRefId** *(string) --* Placeholder documentation for __string

                - **DirectoryStructure** *(string) --* Place segments in subdirectories.

                - **EncryptionType** *(string) --* Encrypts the segments with the given encryption
                scheme. Exclude this parameter if no encryption is desired.

                - **HlsCdnSettings** *(dict) --* Parameters that control interactions with the CDN.

                  - **HlsAkamaiSettings** *(dict) --* Hls Akamai Settings

                    - **ConnectionRetryInterval** *(integer) --* Number of seconds to wait before
                    retrying connection to the CDN if the connection is lost.

                    - **FilecacheDuration** *(integer) --* Size in seconds of file cache for
                    streaming outputs.

                    - **HttpTransferMode** *(string) --* Specify whether or not to use chunked
                    transfer encoding to Akamai. User should contact Akamai to enable this feature.

                    - **NumRetries** *(integer) --* Number of retry attempts that will be made
                    before the Live Event is put into an error state.

                    - **RestartDelay** *(integer) --* If a streaming output fails, number of seconds
                    to wait until a restart is initiated. A value of 0 means never restart.

                    - **Salt** *(string) --* Salt for authenticated Akamai.

                    - **Token** *(string) --* Token parameter for authenticated akamai. If not
                    specified, _gda_ is used.

                  - **HlsBasicPutSettings** *(dict) --* Hls Basic Put Settings

                    - **ConnectionRetryInterval** *(integer) --* Number of seconds to wait before
                    retrying connection to the CDN if the connection is lost.

                    - **FilecacheDuration** *(integer) --* Size in seconds of file cache for
                    streaming outputs.

                    - **NumRetries** *(integer) --* Number of retry attempts that will be made
                    before the Live Event is put into an error state.

                    - **RestartDelay** *(integer) --* If a streaming output fails, number of seconds
                    to wait until a restart is initiated. A value of 0 means never restart.

                  - **HlsMediaStoreSettings** *(dict) --* Hls Media Store Settings

                    - **ConnectionRetryInterval** *(integer) --* Number of seconds to wait before
                    retrying connection to the CDN if the connection is lost.

                    - **FilecacheDuration** *(integer) --* Size in seconds of file cache for
                    streaming outputs.

                    - **MediaStoreStorageClass** *(string) --* When set to temporal, output files
                    are stored in non-persistent memory for faster reading and writing.

                    - **NumRetries** *(integer) --* Number of retry attempts that will be made
                    before the Live Event is put into an error state.

                    - **RestartDelay** *(integer) --* If a streaming output fails, number of seconds
                    to wait until a restart is initiated. A value of 0 means never restart.

                  - **HlsWebdavSettings** *(dict) --* Hls Webdav Settings

                    - **ConnectionRetryInterval** *(integer) --* Number of seconds to wait before
                    retrying connection to the CDN if the connection is lost.

                    - **FilecacheDuration** *(integer) --* Size in seconds of file cache for
                    streaming outputs.

                    - **HttpTransferMode** *(string) --* Specify whether or not to use chunked
                    transfer encoding to WebDAV.

                    - **NumRetries** *(integer) --* Number of retry attempts that will be made
                    before the Live Event is put into an error state.

                    - **RestartDelay** *(integer) --* If a streaming output fails, number of seconds
                    to wait until a restart is initiated. A value of 0 means never restart.

                - **IFrameOnlyPlaylists** *(string) --* DISABLED: Do not create an I-frame-only
                manifest, but do create the master and media manifests (according to the Output
                Selection field). STANDARD: Create an I-frame-only manifest for each output that
                contains video, as well as the other manifests (according to the Output Selection
                field). The I-frame manifest contains a #EXT-X-I-FRAMES-ONLY tag to indicate it is
                I-frame only, and one or more #EXT-X-BYTERANGE entries identifying the I-frame
                position. For example, #EXT-X-BYTERANGE:160364@1461888"

                - **IndexNSegments** *(integer) --* Applies only if Mode field is LIVE. Specifies
                the maximum number of segments in the media manifest file. After this maximum, older
                segments are removed from the media manifest. This number must be less than or equal
                to the Keep Segments field.

                - **InputLossAction** *(string) --* Parameter that control output group behavior on
                input loss.

                - **IvInManifest** *(string) --* For use with encryptionType. The IV (Initialization
                Vector) is a 128-bit number used in conjunction with the key for encrypting blocks.
                If set to "include", IV is listed in the manifest, otherwise the IV is not in the
                manifest.

                - **IvSource** *(string) --* For use with encryptionType. The IV (Initialization
                Vector) is a 128-bit number used in conjunction with the key for encrypting blocks.
                If this setting is "followsSegmentNumber", it will cause the IV to change every
                segment (to match the segment number). If this is set to "explicit", you must enter
                a constantIv value.

                - **KeepSegments** *(integer) --* Applies only if Mode field is LIVE. Specifies the
                number of media segments (.ts files) to retain in the destination directory.

                - **KeyFormat** *(string) --* The value specifies how the key is represented in the
                resource identified by the URI. If parameter is absent, an implicit value of
                "identity" is used. A reverse DNS string can also be given.

                - **KeyFormatVersions** *(string) --* Either a single positive integer version value
                or a slash delimited list of version values (1/2/3).

                - **KeyProviderSettings** *(dict) --* The key provider settings.

                  - **StaticKeySettings** *(dict) --* Static Key Settings

                    - **KeyProviderServer** *(dict) --* The URL of the license server used for
                    protecting content.

                      - **PasswordParam** *(string) --* key used to extract the password from EC2
                      Parameter store

                      - **Uri** *(string) --* Uniform Resource Identifier - This should be a path to
                      a file accessible to the Live system (eg. a http:// URI) depending on the
                      output type. For example, a RTMP destination should have a uri simliar to:
                      "rtmp://fmsserver/live".

                      - **Username** *(string) --* Documentation update needed

                    - **StaticKeyValue** *(string) --* Static key value as a 32 character
                    hexadecimal string.

                - **ManifestCompression** *(string) --* When set to gzip, compresses HLS playlist.

                - **ManifestDurationFormat** *(string) --* Indicates whether the output manifest
                should use floating point or integer values for segment duration.

                - **MinSegmentLength** *(integer) --* When set, minimumSegmentLength is enforced by
                looking ahead and back within the specified range for a nearby avail and extending
                the segment size if needed.

                - **Mode** *(string) --* If "vod", all segments are indexed and kept permanently in
                the destination and manifest. If "live", only the number segments specified in
                keepSegments and indexNSegments are kept; newer segments replace older segments,
                which may prevent players from rewinding all the way to the beginning of the event.
                VOD mode uses HLS EXT-X-PLAYLIST-TYPE of EVENT while the channel is running,
                converting it to a "VOD" type manifest on completion of the stream.

                - **OutputSelection** *(string) --* MANIFESTSANDSEGMENTS: Generates manifests
                (master manifest, if applicable, and media manifests) for this output group.
                SEGMENTSONLY: Does not generate any manifests for this output group.

                - **ProgramDateTime** *(string) --* Includes or excludes EXT-X-PROGRAM-DATE-TIME tag
                in .m3u8 manifest files. The value is calculated as follows: either the program date
                and time are initialized using the input timecode source, or the time is initialized
                using the input timecode source and the date is initialized using the
                timestampOffset.

                - **ProgramDateTimePeriod** *(integer) --* Period of insertion of
                EXT-X-PROGRAM-DATE-TIME entry, in seconds.

                - **RedundantManifest** *(string) --* ENABLED: The master manifest (.m3u8 file) for
                each pipeline includes information about both pipelines: first its own media files,
                then the media files of the other pipeline. This feature allows playout device that
                support stale manifest detection to switch from one manifest to the other, when the
                current manifest seems to be stale. There are still two destinations and two master
                manifests, but both master manifests reference the media files from both pipelines.
                DISABLED: The master manifest (.m3u8 file) for each pipeline includes information
                about its own pipeline only. For an HLS output group with MediaPackage as the
                destination, the DISABLED behavior is always followed. MediaPackage regenerates the
                manifests it serves to players so a redundant manifest from MediaLive is irrelevant.

                - **SegmentLength** *(integer) --* Length of MPEG-2 Transport Stream segments to
                create (in seconds). Note that segments will end on the next keyframe after this
                number of seconds, so actual segment length may be longer.

                - **SegmentationMode** *(string) --* useInputSegmentation has been deprecated. The
                configured segment size is always used.

                - **SegmentsPerSubdirectory** *(integer) --* Number of segments to write to a
                subdirectory before starting a new one. directoryStructure must be
                subdirectoryPerStream for this setting to have an effect.

                - **StreamInfResolution** *(string) --* Include or exclude RESOLUTION attribute for
                video in EXT-X-STREAM-INF tag of variant manifest.

                - **TimedMetadataId3Frame** *(string) --* Indicates ID3 frame that has the timecode.

                - **TimedMetadataId3Period** *(integer) --* Timed Metadata interval in seconds.

                - **TimestampDeltaMilliseconds** *(integer) --* Provides an extra millisecond delta
                offset to fine tune the timestamps.

                - **TsFileMode** *(string) --* SEGMENTEDFILES: Emit the program as segments -
                multiple .ts media files. SINGLEFILE: Applies only if Mode field is VOD. Emit the
                program as a single .ts media file. The media manifest includes #EXT-X-BYTERANGE
                tags to index segments for playback. A typical use for this value is when sending
                the output to AWS Elemental MediaConvert, which can accept only a single media file.
                Playback while the channel is running is not guaranteed due to HTTP server caching.

              - **MediaPackageGroupSettings** *(dict) --* Media Package Group Settings

                - **Destination** *(dict) --* MediaPackage channel destination.

                  - **DestinationRefId** *(string) --* Placeholder documentation for __string

              - **MsSmoothGroupSettings** *(dict) --* Ms Smooth Group Settings

                - **AcquisitionPointId** *(string) --* The value of the "Acquisition Point Identity"
                element used in each message placed in the sparse track. Only enabled if
                sparseTrackType is not "none".

                - **AudioOnlyTimecodeControl** *(string) --* If set to passthrough for an audio-only
                MS Smooth output, the fragment absolute time will be set to the current timecode.
                This option does not write timecodes to the audio elementary stream.

                - **CertificateMode** *(string) --* If set to verifyAuthenticity, verify the https
                certificate chain to a trusted Certificate Authority (CA). This will cause https
                outputs to self-signed certificates to fail.

                - **ConnectionRetryInterval** *(integer) --* Number of seconds to wait before
                retrying connection to the IIS server if the connection is lost. Content will be
                cached during this time and the cache will be be delivered to the IIS server once
                the connection is re-established.

                - **Destination** *(dict) --* Smooth Streaming publish point on an IIS server.
                Elemental Live acts as a "Push" encoder to IIS.

                  - **DestinationRefId** *(string) --* Placeholder documentation for __string

                - **EventId** *(string) --* MS Smooth event ID to be sent to the IIS server. Should
                only be specified if eventIdMode is set to useConfigured.

                - **EventIdMode** *(string) --* Specifies whether or not to send an event ID to the
                IIS server. If no event ID is sent and the same Live Event is used without changing
                the publishing point, clients might see cached video from the previous run. Options:
                - "useConfigured" - use the value provided in eventId - "useTimestamp" - generate
                and send an event ID based on the current timestamp - "noEventId" - do not send an
                event ID to the IIS server.

                - **EventStopBehavior** *(string) --* When set to sendEos, send EOS signal to IIS
                server when stopping the event

                - **FilecacheDuration** *(integer) --* Size in seconds of file cache for streaming
                outputs.

                - **FragmentLength** *(integer) --* Length of mp4 fragments to generate (in
                seconds). Fragment length must be compatible with GOP size and framerate.

                - **InputLossAction** *(string) --* Parameter that control output group behavior on
                input loss.

                - **NumRetries** *(integer) --* Number of retry attempts.

                - **RestartDelay** *(integer) --* Number of seconds before initiating a restart due
                to output failure, due to exhausting the numRetries on one segment, or exceeding
                filecacheDuration.

                - **SegmentationMode** *(string) --* useInputSegmentation has been deprecated. The
                configured segment size is always used.

                - **SendDelayMs** *(integer) --* Number of milliseconds to delay the output from the
                second pipeline.

                - **SparseTrackType** *(string) --* If set to scte35, use incoming SCTE-35 messages
                to generate a sparse track in this group of MS-Smooth outputs.

                - **StreamManifestBehavior** *(string) --* When set to send, send stream manifest so
                publishing point doesn't start until all streams start.

                - **TimestampOffset** *(string) --* Timestamp offset for the event. Only used if
                timestampOffsetMode is set to useConfiguredOffset.

                - **TimestampOffsetMode** *(string) --* Type of timestamp date offset to use. -
                useEventStartDate: Use the date the event was started as the offset -
                useConfiguredOffset: Use an explicitly configured date as the offset

              - **MultiplexGroupSettings** *(dict) --* Multiplex Group Settings

              - **RtmpGroupSettings** *(dict) --* Rtmp Group Settings

                - **AuthenticationScheme** *(string) --* Authentication scheme to use when
                connecting with CDN

                - **CacheFullBehavior** *(string) --* Controls behavior when content cache fills up.
                If remote origin server stalls the RTMP connection and does not accept content fast
                enough the 'Media Cache' will fill up. When the cache reaches the duration specified
                by cacheLength the cache will stop accepting new content. If set to
                disconnectImmediately, the RTMP output will force a disconnect. Clear the media
                cache, and reconnect after restartDelay seconds. If set to waitForServer, the RTMP
                output will wait up to 5 minutes to allow the origin server to begin accepting data
                again.

                - **CacheLength** *(integer) --* Cache length, in seconds, is used to calculate
                buffer size.

                - **CaptionData** *(string) --* Controls the types of data that passes to
                onCaptionInfo outputs. If set to 'all' then 608 and 708 carried DTVCC data will be
                passed. If set to 'field1AndField2608' then DTVCC data will be stripped out, but 608
                data from both fields will be passed. If set to 'field1608' then only the data
                carried in 608 from field 1 video will be passed.

                - **InputLossAction** *(string) --* Controls the behavior of this RTMP group if
                input becomes unavailable. - emitOutput: Emit a slate until input returns. -
                pauseOutput: Stop transmitting data until input returns. This does not close the
                underlying RTMP connection.

                - **RestartDelay** *(integer) --* If a streaming output fails, number of seconds to
                wait until a restart is initiated. A value of 0 means never restart.

              - **UdpGroupSettings** *(dict) --* Udp Group Settings

                - **InputLossAction** *(string) --* Specifies behavior of last resort when input
                video is lost, and no more backup inputs are available. When dropTs is selected the
                entire transport stream will stop being emitted. When dropProgram is selected the
                program can be dropped from the transport stream (and replaced with null packets to
                meet the TS bitrate requirement). Or, when emitProgram is chosen the transport
                stream will continue to be produced normally with repeat frames, black frames, or
                slate frames substituted for the absent input video.

                - **TimedMetadataId3Frame** *(string) --* Indicates ID3 frame that has the timecode.

                - **TimedMetadataId3Period** *(integer) --* Timed Metadata interval in seconds.

            - **Outputs** *(list) --* Placeholder documentation for __listOfOutput

              - *(dict) --* Output settings. There can be multiple outputs within a group.

                - **AudioDescriptionNames** *(list) --* The names of the AudioDescriptions used as
                audio sources for this output.

                  - *(string) --* Placeholder documentation for __string

                - **CaptionDescriptionNames** *(list) --* The names of the CaptionDescriptions used
                as caption sources for this output.

                  - *(string) --* Placeholder documentation for __string

                - **OutputName** *(string) --* The name used to identify an output.

                - **OutputSettings** *(dict) --* Output type-specific settings.

                  - **ArchiveOutputSettings** *(dict) --* Archive Output Settings

                    - **ContainerSettings** *(dict) --* Settings specific to the container type of
                    the file.

                      - **M2tsSettings** *(dict) --* M2ts Settings

                        - **AbsentInputAudioBehavior** *(string) --* When set to drop, output audio
                        streams will be removed from the program if the selected input audio stream
                        is removed from the input. This allows the output audio configuration to
                        dynamically change based on input configuration. If this is set to
                        encodeSilence, all output audio streams will output encoded silence when not
                        connected to an active input stream.

                        - **Arib** *(string) --* When set to enabled, uses ARIB-compliant field
                        muxing and removes video descriptor.

                        - **AribCaptionsPid** *(string) --* Packet Identifier (PID) for ARIB
                        Captions in the transport stream. Can be entered as a decimal or hexadecimal
                        value. Valid values are 32 (or 0x20)..8182 (or 0x1ff6).

                        - **AribCaptionsPidControl** *(string) --* If set to auto, pid number used
                        for ARIB Captions will be auto-selected from unused pids. If set to
                        useConfigured, ARIB Captions will be on the configured pid number.

                        - **AudioBufferModel** *(string) --* When set to dvb, uses DVB buffer model
                        for Dolby Digital audio. When set to atsc, the ATSC model is used.

                        - **AudioFramesPerPes** *(integer) --* The number of audio frames to insert
                        for each PES packet.

                        - **AudioPids** *(string) --* Packet Identifier (PID) of the elementary
                        audio stream(s) in the transport stream. Multiple values are accepted, and
                        can be entered in ranges and/or by comma separation. Can be entered as
                        decimal or hexadecimal values. Each PID specified must be in the range of 32
                        (or 0x20)..8182 (or 0x1ff6).

                        - **AudioStreamType** *(string) --* When set to atsc, uses stream type =
                        0x81 for AC3 and stream type =
                             0x87 for EAC3. When set to dvb, uses stream
                        type = 0x06.

                        - **Bitrate** *(integer) --* The output bitrate of the transport stream in
                        bits per second. Setting to 0 lets the muxer automatically determine the
                        appropriate bitrate.

                        - **BufferModel** *(string) --* If set to multiplex, use multiplex buffer
                        model for accurate interleaving. Setting to bufferModel to none can lead to
                        lower latency, but low-memory devices may not be able to play back the
                        stream without interruptions.

                        - **CcDescriptor** *(string) --* When set to enabled, generates
                        captionServiceDescriptor in PMT.

                        - **DvbNitSettings** *(dict) --* Inserts DVB Network Information Table (NIT)
                        at the specified table repetition interval.

                          - **NetworkId** *(integer) --* The numeric value placed in the Network
                          Information Table (NIT).

                          - **NetworkName** *(string) --* The network name text placed in the
                          networkNameDescriptor inside the Network Information Table. Maximum length
                          is 256 characters.

                          - **RepInterval** *(integer) --* The number of milliseconds between
                          instances of this table in the output transport stream.

                        - **DvbSdtSettings** *(dict) --* Inserts DVB Service Description Table (SDT)
                        at the specified table repetition interval.

                          - **OutputSdt** *(string) --* Selects method of inserting SDT information
                          into output stream. The sdtFollow setting copies SDT information from
                          input stream to output stream. The sdtFollowIfPresent setting copies SDT
                          information from input stream to output stream if SDT information is
                          present in the input, otherwise it will fall back on the user-defined
                          values. The sdtManual setting means user will enter the SDT information.
                          The sdtNone setting means output stream will not contain SDT information.

                          - **RepInterval** *(integer) --* The number of milliseconds between
                          instances of this table in the output transport stream.

                          - **ServiceName** *(string) --* The service name placed in the
                          serviceDescriptor in the Service Description Table. Maximum length is 256
                          characters.

                          - **ServiceProviderName** *(string) --* The service provider name placed
                          in the serviceDescriptor in the Service Description Table. Maximum length
                          is 256 characters.

                        - **DvbSubPids** *(string) --* Packet Identifier (PID) for input source DVB
                        Subtitle data to this output. Multiple values are accepted, and can be
                        entered in ranges and/or by comma separation. Can be entered as decimal or
                        hexadecimal values. Each PID specified must be in the range of 32 (or
                        0x20)..8182 (or 0x1ff6).

                        - **DvbTdtSettings** *(dict) --* Inserts DVB Time and Date Table (TDT) at
                        the specified table repetition interval.

                          - **RepInterval** *(integer) --* The number of milliseconds between
                          instances of this table in the output transport stream.

                        - **DvbTeletextPid** *(string) --* Packet Identifier (PID) for input source
                        DVB Teletext data to this output. Can be entered as a decimal or hexadecimal
                        value. Valid values are 32 (or 0x20)..8182 (or 0x1ff6).

                        - **Ebif** *(string) --* If set to passthrough, passes any EBIF data from
                        the input source to this output.

                        - **EbpAudioInterval** *(string) --* When videoAndFixedIntervals is
                        selected, audio EBP markers will be added to partitions 3 and 4. The
                        interval between these additional markers will be fixed, and will be
                        slightly shorter than the video EBP marker interval. Only available when EBP
                        Cablelabs segmentation markers are selected. Partitions 1 and 2 will always
                        follow the video interval.

                        - **EbpLookaheadMs** *(integer) --* When set, enforces that Encoder Boundary
                        Points do not come within the specified time interval of each other by
                        looking ahead at input video. If another EBP is going to come in within the
                        specified time interval, the current EBP is not emitted, and the segment is
                        "stretched" to the next marker. The lookahead value does not add latency to
                        the system. The Live Event must be configured elsewhere to create sufficient
                        latency to make the lookahead accurate.

                        - **EbpPlacement** *(string) --* Controls placement of EBP on Audio PIDs. If
                        set to videoAndAudioPids, EBP markers will be placed on the video PID and
                        all audio PIDs. If set to videoPid, EBP markers will be placed on only the
                        video PID.

                        - **EcmPid** *(string) --* This field is unused and deprecated.

                        - **EsRateInPes** *(string) --* Include or exclude the ES Rate field in the
                        PES header.

                        - **EtvPlatformPid** *(string) --* Packet Identifier (PID) for input source
                        ETV Platform data to this output. Can be entered as a decimal or hexadecimal
                        value. Valid values are 32 (or 0x20)..8182 (or 0x1ff6).

                        - **EtvSignalPid** *(string) --* Packet Identifier (PID) for input source
                        ETV Signal data to this output. Can be entered as a decimal or hexadecimal
                        value. Valid values are 32 (or 0x20)..8182 (or 0x1ff6).

                        - **FragmentTime** *(float) --* The length in seconds of each fragment. Only
                        used with EBP markers.

                        - **Klv** *(string) --* If set to passthrough, passes any KLV data from the
                        input source to this output.

                        - **KlvDataPids** *(string) --* Packet Identifier (PID) for input source KLV
                        data to this output. Multiple values are accepted, and can be entered in
                        ranges and/or by comma separation. Can be entered as decimal or hexadecimal
                        values. Each PID specified must be in the range of 32 (or 0x20)..8182 (or
                        0x1ff6).

                        - **NielsenId3Behavior** *(string) --* If set to passthrough, Nielsen
                        inaudible tones for media tracking will be detected in the input audio and
                        an equivalent ID3 tag will be inserted in the output.

                        - **NullPacketBitrate** *(float) --* Value in bits per second of extra null
                        packets to insert into the transport stream. This can be used if a
                        downstream encryption system requires periodic null packets.

                        - **PatInterval** *(integer) --* The number of milliseconds between
                        instances of this table in the output transport stream. Valid values are 0,
                        10..1000.

                        - **PcrControl** *(string) --* When set to pcrEveryPesPacket, a Program
                        Clock Reference value is inserted for every Packetized Elementary Stream
                        (PES) header. This parameter is effective only when the PCR PID is the same
                        as the video or audio elementary stream.

                        - **PcrPeriod** *(integer) --* Maximum time in milliseconds between Program
                        Clock Reference (PCRs) inserted into the transport stream.

                        - **PcrPid** *(string) --* Packet Identifier (PID) of the Program Clock
                        Reference (PCR) in the transport stream. When no value is given, the encoder
                        will assign the same value as the Video PID. Can be entered as a decimal or
                        hexadecimal value. Valid values are 32 (or 0x20)..8182 (or 0x1ff6).

                        - **PmtInterval** *(integer) --* The number of milliseconds between
                        instances of this table in the output transport stream. Valid values are 0,
                        10..1000.

                        - **PmtPid** *(string) --* Packet Identifier (PID) for the Program Map Table
                        (PMT) in the transport stream. Can be entered as a decimal or hexadecimal
                        value. Valid values are 32 (or 0x20)..8182 (or 0x1ff6).

                        - **ProgramNum** *(integer) --* The value of the program number field in the
                        Program Map Table.

                        - **RateMode** *(string) --* When vbr, does not insert null packets into
                        transport stream to fill specified bitrate. The bitrate setting acts as the
                        maximum bitrate when vbr is set.

                        - **Scte27Pids** *(string) --* Packet Identifier (PID) for input source
                        SCTE-27 data to this output. Multiple values are accepted, and can be
                        entered in ranges and/or by comma separation. Can be entered as decimal or
                        hexadecimal values. Each PID specified must be in the range of 32 (or
                        0x20)..8182 (or 0x1ff6).

                        - **Scte35Control** *(string) --* Optionally pass SCTE-35 signals from the
                        input source to this output.

                        - **Scte35Pid** *(string) --* Packet Identifier (PID) of the SCTE-35 stream
                        in the transport stream. Can be entered as a decimal or hexadecimal value.
                        Valid values are 32 (or 0x20)..8182 (or 0x1ff6).

                        - **SegmentationMarkers** *(string) --* Inserts segmentation markers at each
                        segmentationTime period. raiSegstart sets the Random Access Indicator bit in
                        the adaptation field. raiAdapt sets the RAI bit and adds the current
                        timecode in the private data bytes. psiSegstart inserts PAT and PMT tables
                        at the start of segments. ebp adds Encoder Boundary Point information to the
                        adaptation field as per OpenCable specification OC-SP-EBP-I01-130118.
                        ebpLegacy adds Encoder Boundary Point information to the adaptation field
                        using a legacy proprietary format.

                        - **SegmentationStyle** *(string) --* The segmentation style parameter
                        controls how segmentation markers are inserted into the transport stream.
                        With avails, it is possible that segments may be truncated, which can
                        influence where future segmentation markers are inserted. When a
                        segmentation style of "resetCadence" is selected and a segment is truncated
                        due to an avail, we will reset the segmentation cadence. This means the
                        subsequent segment will have a duration of $segmentationTime seconds. When a
                        segmentation style of "maintainCadence" is selected and a segment is
                        truncated due to an avail, we will not reset the segmentation cadence. This
                        means the subsequent segment will likely be truncated as well. However, all
                        segments after that will have a duration of $segmentationTime seconds. Note
                        that EBP lookahead is a slight exception to this rule.

                        - **SegmentationTime** *(float) --* The length in seconds of each segment.
                        Required unless markers is set to None_.

                        - **TimedMetadataBehavior** *(string) --* When set to passthrough, timed
                        metadata will be passed through from input to output.

                        - **TimedMetadataPid** *(string) --* Packet Identifier (PID) of the timed
                        metadata stream in the transport stream. Can be entered as a decimal or
                        hexadecimal value. Valid values are 32 (or 0x20)..8182 (or 0x1ff6).

                        - **TransportStreamId** *(integer) --* The value of the transport stream ID
                        field in the Program Map Table.

                        - **VideoPid** *(string) --* Packet Identifier (PID) of the elementary video
                        stream in the transport stream. Can be entered as a decimal or hexadecimal
                        value. Valid values are 32 (or 0x20)..8182 (or 0x1ff6).

                    - **Extension** *(string) --* Output file extension. If excluded, this will be
                    auto-selected from the container type.

                    - **NameModifier** *(string) --* String concatenated to the end of the
                    destination filename. Required for multiple outputs of the same type.

                  - **FrameCaptureOutputSettings** *(dict) --* Frame Capture Output Settings

                    - **NameModifier** *(string) --* Required if the output group contains more than
                    one output. This modifier forms part of the output file name.

                  - **HlsOutputSettings** *(dict) --* Hls Output Settings

                    - **HlsSettings** *(dict) --* Settings regarding the underlying stream. These
                    settings are different for audio-only outputs.

                      - **AudioOnlyHlsSettings** *(dict) --* Audio Only Hls Settings

                        - **AudioGroupId** *(string) --* Specifies the group to which the audio
                        Rendition belongs.

                        - **AudioOnlyImage** *(dict) --* Optional. Specifies the .jpg or .png image
                        to use as the cover art for an audio-only output. We recommend a low
                        bit-size file because the image increases the output audio bandwidth. The
                        image is attached to the audio as an ID3 tag, frame type APIC, picture type
                        0x10, as per the "ID3 tag version 2.4.0 - Native Frames" standard.

                          - **PasswordParam** *(string) --* key used to extract the password from
                          EC2 Parameter store

                          - **Uri** *(string) --* Uniform Resource Identifier - This should be a
                          path to a file accessible to the Live system (eg. a http:// URI) depending
                          on the output type. For example, a RTMP destination should have a uri
                          simliar to: "rtmp://fmsserver/live".

                          - **Username** *(string) --* Documentation update needed

                        - **AudioTrackType** *(string) --* Four types of audio-only tracks are
                        supported: Audio-Only Variant Stream The client can play back this
                        audio-only stream instead of video in low-bandwidth scenarios. Represented
                        as an EXT-X-STREAM-INF in the HLS manifest. Alternate Audio, Auto Select,
                        Default Alternate rendition that the client should try to play back by
                        default. Represented as an EXT-X-MEDIA in the HLS manifest with DEFAULT=YES,
                        AUTOSELECT=
                            YES Alternate Audio, Auto Select, Not Default Alternate rendition
                        that the client may try to play back by default. Represented as an
                        EXT-X-MEDIA in the HLS manifest with DEFAULT=
                            NO, AUTOSELECT=YES Alternate
                        Audio, not Auto Select Alternate rendition that the client will not try to
                        play back by default. Represented as an EXT-X-MEDIA in the HLS manifest with
                        DEFAULT=NO, AUTOSELECT=NO

                      - **StandardHlsSettings** *(dict) --* Standard Hls Settings

                        - **AudioRenditionSets** *(string) --* List all the audio groups that are
                        used with the video output stream. Input all the audio GROUP-IDs that are
                        associated to the video, separate by ','.

                        - **M3u8Settings** *(dict) --* Settings information for the .m3u8 container

                          - **AudioFramesPerPes** *(integer) --* The number of audio frames to
                          insert for each PES packet.

                          - **AudioPids** *(string) --* Packet Identifier (PID) of the elementary
                          audio stream(s) in the transport stream. Multiple values are accepted, and
                          can be entered in ranges and/or by comma separation. Can be entered as
                          decimal or hexadecimal values.

                          - **EcmPid** *(string) --* This parameter is unused and deprecated.

                          - **NielsenId3Behavior** *(string) --* If set to passthrough, Nielsen
                          inaudible tones for media tracking will be detected in the input audio and
                          an equivalent ID3 tag will be inserted in the output.

                          - **PatInterval** *(integer) --* The number of milliseconds between
                          instances of this table in the output transport stream. A value of \\"0\\"
                          writes out the PMT once per segment file.

                          - **PcrControl** *(string) --* When set to pcrEveryPesPacket, a Program
                          Clock Reference value is inserted for every Packetized Elementary Stream
                          (PES) header. This parameter is effective only when the PCR PID is the
                          same as the video or audio elementary stream.

                          - **PcrPeriod** *(integer) --* Maximum time in milliseconds between
                          Program Clock References (PCRs) inserted into the transport stream.

                          - **PcrPid** *(string) --* Packet Identifier (PID) of the Program Clock
                          Reference (PCR) in the transport stream. When no value is given, the
                          encoder will assign the same value as the Video PID. Can be entered as a
                          decimal or hexadecimal value.

                          - **PmtInterval** *(integer) --* The number of milliseconds between
                          instances of this table in the output transport stream. A value of \\"0\\"
                          writes out the PMT once per segment file.

                          - **PmtPid** *(string) --* Packet Identifier (PID) for the Program Map
                          Table (PMT) in the transport stream. Can be entered as a decimal or
                          hexadecimal value.

                          - **ProgramNum** *(integer) --* The value of the program number field in
                          the Program Map Table.

                          - **Scte35Behavior** *(string) --* If set to passthrough, passes any
                          SCTE-35 signals from the input source to this output.

                          - **Scte35Pid** *(string) --* Packet Identifier (PID) of the SCTE-35
                          stream in the transport stream. Can be entered as a decimal or hexadecimal
                          value.

                          - **TimedMetadataBehavior** *(string) --* When set to passthrough, timed
                          metadata is passed through from input to output.

                          - **TimedMetadataPid** *(string) --* Packet Identifier (PID) of the timed
                          metadata stream in the transport stream. Can be entered as a decimal or
                          hexadecimal value. Valid values are 32 (or 0x20)..8182 (or 0x1ff6).

                          - **TransportStreamId** *(integer) --* The value of the transport stream
                          ID field in the Program Map Table.

                          - **VideoPid** *(string) --* Packet Identifier (PID) of the elementary
                          video stream in the transport stream. Can be entered as a decimal or
                          hexadecimal value.

                    - **NameModifier** *(string) --* String concatenated to the end of the
                    destination filename. Accepts \\"Format
                    Identifiers\\":#formatIdentifierParameters.

                    - **SegmentModifier** *(string) --* String concatenated to end of segment
                    filenames.

                  - **MediaPackageOutputSettings** *(dict) --* Media Package Output Settings

                  - **MsSmoothOutputSettings** *(dict) --* Ms Smooth Output Settings

                    - **H265PackagingType** *(string) --* Only applicable when this output is
                    referencing an H.265 video description. Specifies whether MP4 segments should be
                    packaged as HEV1 or HVC1.

                    - **NameModifier** *(string) --* String concatenated to the end of the
                    destination filename. Required for multiple outputs of the same type.

                  - **MultiplexOutputSettings** *(dict) --* Multiplex Output Settings

                    - **Destination** *(dict) --* Destination is a Multiplex.

                      - **DestinationRefId** *(string) --* Placeholder documentation for __string

                  - **RtmpOutputSettings** *(dict) --* Rtmp Output Settings

                    - **CertificateMode** *(string) --* If set to verifyAuthenticity, verify the tls
                    certificate chain to a trusted Certificate Authority (CA). This will cause rtmps
                    outputs with self-signed certificates to fail.

                    - **ConnectionRetryInterval** *(integer) --* Number of seconds to wait before
                    retrying a connection to the Flash Media server if the connection is lost.

                    - **Destination** *(dict) --* The RTMP endpoint excluding the stream name (eg.
                    rtmp://host/appname). For connection to Akamai, a username and password must be
                    supplied. URI fields accept format identifiers.

                      - **DestinationRefId** *(string) --* Placeholder documentation for __string

                    - **NumRetries** *(integer) --* Number of retry attempts.

                  - **UdpOutputSettings** *(dict) --* Udp Output Settings

                    - **BufferMsec** *(integer) --* UDP output buffering in milliseconds. Larger
                    values increase latency through the transcoder but simultaneously assist the
                    transcoder in maintaining a constant, low-jitter UDP/RTP output while
                    accommodating clock recovery, input switching, input disruptions, picture
                    reordering, etc.

                    - **ContainerSettings** *(dict) --* Udp Container Settings

                      - **M2tsSettings** *(dict) --* M2ts Settings

                        - **AbsentInputAudioBehavior** *(string) --* When set to drop, output audio
                        streams will be removed from the program if the selected input audio stream
                        is removed from the input. This allows the output audio configuration to
                        dynamically change based on input configuration. If this is set to
                        encodeSilence, all output audio streams will output encoded silence when not
                        connected to an active input stream.

                        - **Arib** *(string) --* When set to enabled, uses ARIB-compliant field
                        muxing and removes video descriptor.

                        - **AribCaptionsPid** *(string) --* Packet Identifier (PID) for ARIB
                        Captions in the transport stream. Can be entered as a decimal or hexadecimal
                        value. Valid values are 32 (or 0x20)..8182 (or 0x1ff6).

                        - **AribCaptionsPidControl** *(string) --* If set to auto, pid number used
                        for ARIB Captions will be auto-selected from unused pids. If set to
                        useConfigured, ARIB Captions will be on the configured pid number.

                        - **AudioBufferModel** *(string) --* When set to dvb, uses DVB buffer model
                        for Dolby Digital audio. When set to atsc, the ATSC model is used.

                        - **AudioFramesPerPes** *(integer) --* The number of audio frames to insert
                        for each PES packet.

                        - **AudioPids** *(string) --* Packet Identifier (PID) of the elementary
                        audio stream(s) in the transport stream. Multiple values are accepted, and
                        can be entered in ranges and/or by comma separation. Can be entered as
                        decimal or hexadecimal values. Each PID specified must be in the range of 32
                        (or 0x20)..8182 (or 0x1ff6).

                        - **AudioStreamType** *(string) --* When set to atsc, uses stream type =
                        0x81 for AC3 and stream type =
                             0x87 for EAC3. When set to dvb, uses stream
                        type = 0x06.

                        - **Bitrate** *(integer) --* The output bitrate of the transport stream in
                        bits per second. Setting to 0 lets the muxer automatically determine the
                        appropriate bitrate.

                        - **BufferModel** *(string) --* If set to multiplex, use multiplex buffer
                        model for accurate interleaving. Setting to bufferModel to none can lead to
                        lower latency, but low-memory devices may not be able to play back the
                        stream without interruptions.

                        - **CcDescriptor** *(string) --* When set to enabled, generates
                        captionServiceDescriptor in PMT.

                        - **DvbNitSettings** *(dict) --* Inserts DVB Network Information Table (NIT)
                        at the specified table repetition interval.

                          - **NetworkId** *(integer) --* The numeric value placed in the Network
                          Information Table (NIT).

                          - **NetworkName** *(string) --* The network name text placed in the
                          networkNameDescriptor inside the Network Information Table. Maximum length
                          is 256 characters.

                          - **RepInterval** *(integer) --* The number of milliseconds between
                          instances of this table in the output transport stream.

                        - **DvbSdtSettings** *(dict) --* Inserts DVB Service Description Table (SDT)
                        at the specified table repetition interval.

                          - **OutputSdt** *(string) --* Selects method of inserting SDT information
                          into output stream. The sdtFollow setting copies SDT information from
                          input stream to output stream. The sdtFollowIfPresent setting copies SDT
                          information from input stream to output stream if SDT information is
                          present in the input, otherwise it will fall back on the user-defined
                          values. The sdtManual setting means user will enter the SDT information.
                          The sdtNone setting means output stream will not contain SDT information.

                          - **RepInterval** *(integer) --* The number of milliseconds between
                          instances of this table in the output transport stream.

                          - **ServiceName** *(string) --* The service name placed in the
                          serviceDescriptor in the Service Description Table. Maximum length is 256
                          characters.

                          - **ServiceProviderName** *(string) --* The service provider name placed
                          in the serviceDescriptor in the Service Description Table. Maximum length
                          is 256 characters.

                        - **DvbSubPids** *(string) --* Packet Identifier (PID) for input source DVB
                        Subtitle data to this output. Multiple values are accepted, and can be
                        entered in ranges and/or by comma separation. Can be entered as decimal or
                        hexadecimal values. Each PID specified must be in the range of 32 (or
                        0x20)..8182 (or 0x1ff6).

                        - **DvbTdtSettings** *(dict) --* Inserts DVB Time and Date Table (TDT) at
                        the specified table repetition interval.

                          - **RepInterval** *(integer) --* The number of milliseconds between
                          instances of this table in the output transport stream.

                        - **DvbTeletextPid** *(string) --* Packet Identifier (PID) for input source
                        DVB Teletext data to this output. Can be entered as a decimal or hexadecimal
                        value. Valid values are 32 (or 0x20)..8182 (or 0x1ff6).

                        - **Ebif** *(string) --* If set to passthrough, passes any EBIF data from
                        the input source to this output.

                        - **EbpAudioInterval** *(string) --* When videoAndFixedIntervals is
                        selected, audio EBP markers will be added to partitions 3 and 4. The
                        interval between these additional markers will be fixed, and will be
                        slightly shorter than the video EBP marker interval. Only available when EBP
                        Cablelabs segmentation markers are selected. Partitions 1 and 2 will always
                        follow the video interval.

                        - **EbpLookaheadMs** *(integer) --* When set, enforces that Encoder Boundary
                        Points do not come within the specified time interval of each other by
                        looking ahead at input video. If another EBP is going to come in within the
                        specified time interval, the current EBP is not emitted, and the segment is
                        "stretched" to the next marker. The lookahead value does not add latency to
                        the system. The Live Event must be configured elsewhere to create sufficient
                        latency to make the lookahead accurate.

                        - **EbpPlacement** *(string) --* Controls placement of EBP on Audio PIDs. If
                        set to videoAndAudioPids, EBP markers will be placed on the video PID and
                        all audio PIDs. If set to videoPid, EBP markers will be placed on only the
                        video PID.

                        - **EcmPid** *(string) --* This field is unused and deprecated.

                        - **EsRateInPes** *(string) --* Include or exclude the ES Rate field in the
                        PES header.

                        - **EtvPlatformPid** *(string) --* Packet Identifier (PID) for input source
                        ETV Platform data to this output. Can be entered as a decimal or hexadecimal
                        value. Valid values are 32 (or 0x20)..8182 (or 0x1ff6).

                        - **EtvSignalPid** *(string) --* Packet Identifier (PID) for input source
                        ETV Signal data to this output. Can be entered as a decimal or hexadecimal
                        value. Valid values are 32 (or 0x20)..8182 (or 0x1ff6).

                        - **FragmentTime** *(float) --* The length in seconds of each fragment. Only
                        used with EBP markers.

                        - **Klv** *(string) --* If set to passthrough, passes any KLV data from the
                        input source to this output.

                        - **KlvDataPids** *(string) --* Packet Identifier (PID) for input source KLV
                        data to this output. Multiple values are accepted, and can be entered in
                        ranges and/or by comma separation. Can be entered as decimal or hexadecimal
                        values. Each PID specified must be in the range of 32 (or 0x20)..8182 (or
                        0x1ff6).

                        - **NielsenId3Behavior** *(string) --* If set to passthrough, Nielsen
                        inaudible tones for media tracking will be detected in the input audio and
                        an equivalent ID3 tag will be inserted in the output.

                        - **NullPacketBitrate** *(float) --* Value in bits per second of extra null
                        packets to insert into the transport stream. This can be used if a
                        downstream encryption system requires periodic null packets.

                        - **PatInterval** *(integer) --* The number of milliseconds between
                        instances of this table in the output transport stream. Valid values are 0,
                        10..1000.

                        - **PcrControl** *(string) --* When set to pcrEveryPesPacket, a Program
                        Clock Reference value is inserted for every Packetized Elementary Stream
                        (PES) header. This parameter is effective only when the PCR PID is the same
                        as the video or audio elementary stream.

                        - **PcrPeriod** *(integer) --* Maximum time in milliseconds between Program
                        Clock Reference (PCRs) inserted into the transport stream.

                        - **PcrPid** *(string) --* Packet Identifier (PID) of the Program Clock
                        Reference (PCR) in the transport stream. When no value is given, the encoder
                        will assign the same value as the Video PID. Can be entered as a decimal or
                        hexadecimal value. Valid values are 32 (or 0x20)..8182 (or 0x1ff6).

                        - **PmtInterval** *(integer) --* The number of milliseconds between
                        instances of this table in the output transport stream. Valid values are 0,
                        10..1000.

                        - **PmtPid** *(string) --* Packet Identifier (PID) for the Program Map Table
                        (PMT) in the transport stream. Can be entered as a decimal or hexadecimal
                        value. Valid values are 32 (or 0x20)..8182 (or 0x1ff6).

                        - **ProgramNum** *(integer) --* The value of the program number field in the
                        Program Map Table.

                        - **RateMode** *(string) --* When vbr, does not insert null packets into
                        transport stream to fill specified bitrate. The bitrate setting acts as the
                        maximum bitrate when vbr is set.

                        - **Scte27Pids** *(string) --* Packet Identifier (PID) for input source
                        SCTE-27 data to this output. Multiple values are accepted, and can be
                        entered in ranges and/or by comma separation. Can be entered as decimal or
                        hexadecimal values. Each PID specified must be in the range of 32 (or
                        0x20)..8182 (or 0x1ff6).

                        - **Scte35Control** *(string) --* Optionally pass SCTE-35 signals from the
                        input source to this output.

                        - **Scte35Pid** *(string) --* Packet Identifier (PID) of the SCTE-35 stream
                        in the transport stream. Can be entered as a decimal or hexadecimal value.
                        Valid values are 32 (or 0x20)..8182 (or 0x1ff6).

                        - **SegmentationMarkers** *(string) --* Inserts segmentation markers at each
                        segmentationTime period. raiSegstart sets the Random Access Indicator bit in
                        the adaptation field. raiAdapt sets the RAI bit and adds the current
                        timecode in the private data bytes. psiSegstart inserts PAT and PMT tables
                        at the start of segments. ebp adds Encoder Boundary Point information to the
                        adaptation field as per OpenCable specification OC-SP-EBP-I01-130118.
                        ebpLegacy adds Encoder Boundary Point information to the adaptation field
                        using a legacy proprietary format.

                        - **SegmentationStyle** *(string) --* The segmentation style parameter
                        controls how segmentation markers are inserted into the transport stream.
                        With avails, it is possible that segments may be truncated, which can
                        influence where future segmentation markers are inserted. When a
                        segmentation style of "resetCadence" is selected and a segment is truncated
                        due to an avail, we will reset the segmentation cadence. This means the
                        subsequent segment will have a duration of $segmentationTime seconds. When a
                        segmentation style of "maintainCadence" is selected and a segment is
                        truncated due to an avail, we will not reset the segmentation cadence. This
                        means the subsequent segment will likely be truncated as well. However, all
                        segments after that will have a duration of $segmentationTime seconds. Note
                        that EBP lookahead is a slight exception to this rule.

                        - **SegmentationTime** *(float) --* The length in seconds of each segment.
                        Required unless markers is set to None_.

                        - **TimedMetadataBehavior** *(string) --* When set to passthrough, timed
                        metadata will be passed through from input to output.

                        - **TimedMetadataPid** *(string) --* Packet Identifier (PID) of the timed
                        metadata stream in the transport stream. Can be entered as a decimal or
                        hexadecimal value. Valid values are 32 (or 0x20)..8182 (or 0x1ff6).

                        - **TransportStreamId** *(integer) --* The value of the transport stream ID
                        field in the Program Map Table.

                        - **VideoPid** *(string) --* Packet Identifier (PID) of the elementary video
                        stream in the transport stream. Can be entered as a decimal or hexadecimal
                        value. Valid values are 32 (or 0x20)..8182 (or 0x1ff6).

                    - **Destination** *(dict) --* Destination address and port number for RTP or UDP
                    packets. Can be unicast or multicast RTP or UDP (eg. rtp://239.10.10.10:5001 or
                    udp://10.100.100.100:5002).

                      - **DestinationRefId** *(string) --* Placeholder documentation for __string

                    - **FecOutputSettings** *(dict) --* Settings for enabling and adjusting Forward
                    Error Correction on UDP outputs.

                      - **ColumnDepth** *(integer) --* Parameter D from SMPTE 2022-1. The height of
                      the FEC protection matrix. The number of transport stream packets per column
                      error correction packet. Must be between 4 and 20, inclusive.

                      - **IncludeFec** *(string) --* Enables column only or column and row based FEC

                      - **RowLength** *(integer) --* Parameter L from SMPTE 2022-1. The width of the
                      FEC protection matrix. Must be between 1 and 20, inclusive. If only Column FEC
                      is used, then larger values increase robustness. If Row FEC is used, then this
                      is the number of transport stream packets per row error correction packet, and
                      the value must be between 4 and 20, inclusive, if includeFec is columnAndRow.
                      If includeFec is column, this value must be 1 to 20, inclusive.

                - **VideoDescriptionName** *(string) --* The name of the VideoDescription used as
                the source for this output.

        - **TimecodeConfig** *(dict) --* Contains settings used to acquire and adjust timecode
        information from inputs.

          - **Source** *(string) --* Identifies the source for the timecode that will be associated
          with the events outputs. -Embedded (embedded): Initialize the output timecode with
          timecode from the the source. If no embedded timecode is detected in the source, the
          system falls back to using "Start at 0" (zerobased). -System Clock (systemclock): Use the
          UTC time. -Start at 0 (zerobased): The time of the first frame of the event will be
          00:00:00:00.

          - **SyncThreshold** *(integer) --* Threshold in frames beyond which output timecode is
          resynchronized to the input timecode. Discrepancies below this threshold are permitted to
          avoid unnecessary discontinuities in the output timecode. No timecode sync when this is
          not specified.

        - **VideoDescriptions** *(list) --* Placeholder documentation for __listOfVideoDescription

          - *(dict) --* Video settings for this stream.

            - **CodecSettings** *(dict) --* Video codec settings.

              - **FrameCaptureSettings** *(dict) --* Frame Capture Settings

                - **CaptureInterval** *(integer) --* The frequency at which to capture frames for
                inclusion in the output. May be specified in either seconds or milliseconds, as
                specified by captureIntervalUnits.

              - **H264Settings** *(dict) --* H264 Settings

                - **AdaptiveQuantization** *(string) --* Adaptive quantization. Allows intra-frame
                quantizers to vary to improve visual quality.

                - **AfdSignaling** *(string) --* Indicates that AFD values will be written into the
                output stream. If afdSignaling is "auto", the system will try to preserve the input
                AFD value (in cases where multiple AFD values are valid). If set to "fixed", the AFD
                value will be the value configured in the fixedAfd parameter.

                - **Bitrate** *(integer) --* Average bitrate in bits/second. Required when the rate
                control mode is VBR or CBR. Not used for QVBR. In an MS Smooth output group, each
                output must have a unique value when its bitrate is rounded down to the nearest
                multiple of 1000.

                - **BufFillPct** *(integer) --* Percentage of the buffer that should initially be
                filled (HRD buffer model).

                - **BufSize** *(integer) --* Size of buffer (HRD buffer model) in bits.

                - **ColorMetadata** *(string) --* Includes colorspace metadata in the output.

                - **ColorSpaceSettings** *(dict) --* Color Space settings

                  - **ColorSpacePassthroughSettings** *(dict) --* Passthrough applies no color space
                  conversion to the output

                  - **Rec601Settings** *(dict) --* Rec601 Settings

                  - **Rec709Settings** *(dict) --* Rec709 Settings

                - **EntropyEncoding** *(string) --* Entropy encoding mode. Use cabac (must be in
                Main or High profile) or cavlc.

                - **FixedAfd** *(string) --* Four bit AFD value to write on all frames of video in
                the output stream. Only valid when afdSignaling is set to 'Fixed'.

                - **FlickerAq** *(string) --* If set to enabled, adjust quantization within each
                frame to reduce flicker or 'pop' on I-frames.

                - **FramerateControl** *(string) --* This field indicates how the output video frame
                rate is specified. If "specified" is selected then the output video frame rate is
                determined by framerateNumerator and framerateDenominator, else if
                "initializeFromSource" is selected then the output video frame rate will be set
                equal to the input video frame rate of the first input.

                - **FramerateDenominator** *(integer) --* Framerate denominator.

                - **FramerateNumerator** *(integer) --* Framerate numerator - framerate is a
                fraction, e.g. 24000 / 1001 = 23.976 fps.

                - **GopBReference** *(string) --* Documentation update needed

                - **GopClosedCadence** *(integer) --* Frequency of closed GOPs. In streaming
                applications, it is recommended that this be set to 1 so a decoder joining
                mid-stream will receive an IDR frame as quickly as possible. Setting this value to 0
                will break output segmenting.

                - **GopNumBFrames** *(integer) --* Number of B-frames between reference frames.

                - **GopSize** *(float) --* GOP size (keyframe interval) in units of either frames or
                seconds per gopSizeUnits. If gopSizeUnits is frames, gopSize must be an integer and
                must be greater than or equal to 1. If gopSizeUnits is seconds, gopSize must be
                greater than 0, but need not be an integer.

                - **GopSizeUnits** *(string) --* Indicates if the gopSize is specified in frames or
                seconds. If seconds the system will convert the gopSize into a frame count at run
                time.

                - **Level** *(string) --* H.264 Level.

                - **LookAheadRateControl** *(string) --* Amount of lookahead. A value of low can
                decrease latency and memory usage, while high can produce better quality for certain
                content.

                - **MaxBitrate** *(integer) --* For QVBR: See the tooltip for Quality level For VBR:
                Set the maximum bitrate in order to accommodate expected spikes in the complexity of
                the video.

                - **MinIInterval** *(integer) --* Only meaningful if sceneChangeDetect is set to
                enabled. Defaults to 5 if multiplex rate control is used. Enforces separation
                between repeated (cadence) I-frames and I-frames inserted by Scene Change Detection.
                If a scene change I-frame is within I-interval frames of a cadence I-frame, the GOP
                is shrunk and/or stretched to the scene change I-frame. GOP stretch requires
                enabling lookahead as well as setting I-interval. The normal cadence resumes for the
                next GOP. Note: Maximum GOP stretch = GOP size + Min-I-interval - 1

                - **NumRefFrames** *(integer) --* Number of reference frames to use. The encoder may
                use more than requested if using B-frames and/or interlaced encoding.

                - **ParControl** *(string) --* This field indicates how the output pixel aspect
                ratio is specified. If "specified" is selected then the output video pixel aspect
                ratio is determined by parNumerator and parDenominator, else if
                "initializeFromSource" is selected then the output pixsel aspect ratio will be set
                equal to the input video pixel aspect ratio of the first input.

                - **ParDenominator** *(integer) --* Pixel Aspect Ratio denominator.

                - **ParNumerator** *(integer) --* Pixel Aspect Ratio numerator.

                - **Profile** *(string) --* H.264 Profile.

                - **QvbrQualityLevel** *(integer) --* Controls the target quality for the video
                encode. Applies only when the rate control mode is QVBR. Set values for the QVBR
                quality level field and Max bitrate field that suit your most important viewing
                devices. Recommended values are: - Primary screen: Quality level: 8 to 10. Max
                bitrate: 4M - PC or tablet: Quality level: 7. Max bitrate: 1.5M to 3M - Smartphone:
                Quality level: 6. Max bitrate: 1M to 1.5M

                - **RateControlMode** *(string) --* Rate control mode. QVBR: Quality will match the
                specified quality level except when it is constrained by the maximum bitrate.
                Recommended if you or your viewers pay for bandwidth. VBR: Quality and bitrate vary,
                depending on the video complexity. Recommended instead of QVBR if you want to
                maintain a specific average bitrate over the duration of the channel. CBR: Quality
                varies, depending on the video complexity. Recommended only if you distribute your
                assets to devices that cannot handle variable bitrates.

                - **ScanType** *(string) --* Sets the scan type of the output to progressive or
                top-field-first interlaced.

                - **SceneChangeDetect** *(string) --* Scene change detection. - On: inserts I-frames
                when scene change is detected. - Off: does not force an I-frame when scene change is
                detected.

                - **Slices** *(integer) --* Number of slices per picture. Must be less than or equal
                to the number of macroblock rows for progressive pictures, and less than or equal to
                half the number of macroblock rows for interlaced pictures. This field is optional;
                when no value is specified the encoder will choose the number of slices based on
                encode resolution.

                - **Softness** *(integer) --* Softness. Selects quantizer matrix, larger values
                reduce high-frequency content in the encoded image.

                - **SpatialAq** *(string) --* If set to enabled, adjust quantization within each
                frame based on spatial variation of content complexity.

                - **SubgopLength** *(string) --* If set to fixed, use gopNumBFrames B-frames per
                sub-GOP. If set to dynamic, optimize the number of B-frames used for each sub-GOP to
                improve visual quality.

                - **Syntax** *(string) --* Produces a bitstream compliant with SMPTE RP-2027.

                - **TemporalAq** *(string) --* If set to enabled, adjust quantization within each
                frame based on temporal variation of content complexity.

                - **TimecodeInsertion** *(string) --* Determines how timecodes should be inserted
                into the video elementary stream. - 'disabled': Do not include timecodes -
                'picTimingSei': Pass through picture timing SEI messages from the source specified
                in Timecode Config

              - **H265Settings** *(dict) --* H265 Settings

                - **AdaptiveQuantization** *(string) --* Adaptive quantization. Allows intra-frame
                quantizers to vary to improve visual quality.

                - **AfdSignaling** *(string) --* Indicates that AFD values will be written into the
                output stream. If afdSignaling is "auto", the system will try to preserve the input
                AFD value (in cases where multiple AFD values are valid). If set to "fixed", the AFD
                value will be the value configured in the fixedAfd parameter.

                - **AlternativeTransferFunction** *(string) --* Whether or not EML should insert an
                Alternative Transfer Function SEI message to support backwards compatibility with
                non-HDR decoders and displays.

                - **Bitrate** *(integer) --* Average bitrate in bits/second. Required when the rate
                control mode is VBR or CBR. Not used for QVBR. In an MS Smooth output group, each
                output must have a unique value when its bitrate is rounded down to the nearest
                multiple of 1000.

                - **BufSize** *(integer) --* Size of buffer (HRD buffer model) in bits.

                - **ColorMetadata** *(string) --* Includes colorspace metadata in the output.

                - **ColorSpaceSettings** *(dict) --* Color Space settings

                  - **ColorSpacePassthroughSettings** *(dict) --* Passthrough applies no color space
                  conversion to the output

                  - **Hdr10Settings** *(dict) --* Hdr10 Settings

                    - **MaxCll** *(integer) --* Maximum Content Light Level An integer metadata
                    value defining the maximum light level, in nits, of any single pixel within an
                    encoded HDR video stream or file.

                    - **MaxFall** *(integer) --* Maximum Frame Average Light Level An integer
                    metadata value defining the maximum average light level, in nits, for any single
                    frame within an encoded HDR video stream or file.

                  - **Rec601Settings** *(dict) --* Rec601 Settings

                  - **Rec709Settings** *(dict) --* Rec709 Settings

                - **FixedAfd** *(string) --* Four bit AFD value to write on all frames of video in
                the output stream. Only valid when afdSignaling is set to 'Fixed'.

                - **FlickerAq** *(string) --* If set to enabled, adjust quantization within each
                frame to reduce flicker or 'pop' on I-frames.

                - **FramerateDenominator** *(integer) --* Framerate denominator.

                - **FramerateNumerator** *(integer) --* Framerate numerator - framerate is a
                fraction, e.g. 24000 / 1001 = 23.976 fps.

                - **GopClosedCadence** *(integer) --* Frequency of closed GOPs. In streaming
                applications, it is recommended that this be set to 1 so a decoder joining
                mid-stream will receive an IDR frame as quickly as possible. Setting this value to 0
                will break output segmenting.

                - **GopSize** *(float) --* GOP size (keyframe interval) in units of either frames or
                seconds per gopSizeUnits. If gopSizeUnits is frames, gopSize must be an integer and
                must be greater than or equal to 1. If gopSizeUnits is seconds, gopSize must be
                greater than 0, but need not be an integer.

                - **GopSizeUnits** *(string) --* Indicates if the gopSize is specified in frames or
                seconds. If seconds the system will convert the gopSize into a frame count at run
                time.

                - **Level** *(string) --* H.265 Level.

                - **LookAheadRateControl** *(string) --* Amount of lookahead. A value of low can
                decrease latency and memory usage, while high can produce better quality for certain
                content.

                - **MaxBitrate** *(integer) --* For QVBR: See the tooltip for Quality level

                - **MinIInterval** *(integer) --* Only meaningful if sceneChangeDetect is set to
                enabled. Defaults to 5 if multiplex rate control is used. Enforces separation
                between repeated (cadence) I-frames and I-frames inserted by Scene Change Detection.
                If a scene change I-frame is within I-interval frames of a cadence I-frame, the GOP
                is shrunk and/or stretched to the scene change I-frame. GOP stretch requires
                enabling lookahead as well as setting I-interval. The normal cadence resumes for the
                next GOP. Note: Maximum GOP stretch = GOP size + Min-I-interval - 1

                - **ParDenominator** *(integer) --* Pixel Aspect Ratio denominator.

                - **ParNumerator** *(integer) --* Pixel Aspect Ratio numerator.

                - **Profile** *(string) --* H.265 Profile.

                - **QvbrQualityLevel** *(integer) --* Controls the target quality for the video
                encode. Applies only when the rate control mode is QVBR. Set values for the QVBR
                quality level field and Max bitrate field that suit your most important viewing
                devices. Recommended values are: - Primary screen: Quality level: 8 to 10. Max
                bitrate: 4M - PC or tablet: Quality level: 7. Max bitrate: 1.5M to 3M - Smartphone:
                Quality level: 6. Max bitrate: 1M to 1.5M

                - **RateControlMode** *(string) --* Rate control mode. QVBR: Quality will match the
                specified quality level except when it is constrained by the maximum bitrate.
                Recommended if you or your viewers pay for bandwidth. CBR: Quality varies, depending
                on the video complexity. Recommended only if you distribute your assets to devices
                that cannot handle variable bitrates.

                - **ScanType** *(string) --* Sets the scan type of the output to progressive or
                top-field-first interlaced.

                - **SceneChangeDetect** *(string) --* Scene change detection.

                - **Slices** *(integer) --* Number of slices per picture. Must be less than or equal
                to the number of macroblock rows for progressive pictures, and less than or equal to
                half the number of macroblock rows for interlaced pictures. This field is optional;
                when no value is specified the encoder will choose the number of slices based on
                encode resolution.

                - **Tier** *(string) --* H.265 Tier.

                - **TimecodeInsertion** *(string) --* Determines how timecodes should be inserted
                into the video elementary stream. - 'disabled': Do not include timecodes -
                'picTimingSei': Pass through picture timing SEI messages from the source specified
                in Timecode Config

            - **Height** *(integer) --* Output video height, in pixels. Must be an even number. For
            most codecs, you can leave this field and width blank in order to use the height and
            width (resolution) from the source. Note, however, that leaving blank is not
            recommended. For the Frame Capture codec, height and width are required.

            - **Name** *(string) --* The name of this VideoDescription. Outputs will use this name
            to uniquely identify this Description. Description names should be unique within this
            Live Event.

            - **RespondToAfd** *(string) --* Indicates how to respond to the AFD values in the input
            stream. RESPOND causes input video to be clipped, depending on the AFD value, input
            display aspect ratio, and output display aspect ratio, and (except for FRAMECAPTURE
            codec) includes the values in the output. PASSTHROUGH (does not apply to FRAMECAPTURE
            codec) ignores the AFD values and includes the values in the output, so input video is
            not clipped. NONE ignores the AFD values and does not include the values through to the
            output, so input video is not clipped.

            - **ScalingBehavior** *(string) --* STRETCHTOOUTPUT configures the output position to
            stretch the video to the specified output resolution (height and width). This option
            will override any position value. DEFAULT may insert black boxes (pillar boxes or letter
            boxes) around the video to provide the specified output resolution.

            - **Sharpness** *(integer) --* Changes the strength of the anti-alias filter used for
            scaling. 0 is the softest setting, 100 is the sharpest. A setting of 50 is recommended
            for most content.

            - **Width** *(integer) --* Output video width, in pixels. Must be an even number. For
            most codecs, you can leave this field and height blank in order to use the height and
            width (resolution) from the source. Note, however, that leaving blank is not
            recommended. For the Frame Capture codec, height and width are required.

      - **Id** *(string) --* The unique id of the channel.

      - **InputAttachments** *(list) --* List of input attachments for channel.

        - *(dict) --* Placeholder documentation for InputAttachment

          - **InputAttachmentName** *(string) --* User-specified name for the attachment. This is
          required if the user wants to use this input in an input switch action.

          - **InputId** *(string) --* The ID of the input

          - **InputSettings** *(dict) --* Settings of an input (caption selector, etc.)

            - **AudioSelectors** *(list) --* Used to select the audio stream to decode for inputs
            that have multiple available.

              - *(dict) --* Audio Selector

                - **Name** *(string) --* The name of this AudioSelector. AudioDescriptions will use
                this name to uniquely identify this Selector. Selector names should be unique per
                input.

                - **SelectorSettings** *(dict) --* The audio selector settings.

                  - **AudioLanguageSelection** *(dict) --* Audio Language Selection

                    - **LanguageCode** *(string) --* Selects a specific three-letter language code
                    from within an audio source.

                    - **LanguageSelectionPolicy** *(string) --* When set to "strict", the transport
                    stream demux strictly identifies audio streams by their language descriptor. If
                    a PMT update occurs such that an audio stream matching the initially selected
                    language is no longer present then mute will be encoded until the language
                    returns. If "loose", then on a PMT update the demux will choose another audio
                    stream in the program with the same stream type if it can't find one with the
                    same language.

                  - **AudioPidSelection** *(dict) --* Audio Pid Selection

                    - **Pid** *(integer) --* Selects a specific PID from within a source.

            - **CaptionSelectors** *(list) --* Used to select the caption input to use for inputs
            that have multiple available.

              - *(dict) --* Output groups for this Live Event. Output groups contain information
              about where streams should be distributed.

                - **LanguageCode** *(string) --* When specified this field indicates the three
                letter language code of the caption track to extract from the source.

                - **Name** *(string) --* Name identifier for a caption selector. This name is used
                to associate this caption selector with one or more caption descriptions. Names must
                be unique within an event.

                - **SelectorSettings** *(dict) --* Caption selector settings.

                  - **AribSourceSettings** *(dict) --* Arib Source Settings

                  - **DvbSubSourceSettings** *(dict) --* Dvb Sub Source Settings

                    - **Pid** *(integer) --* When using DVB-Sub with Burn-In or SMPTE-TT, use this
                    PID for the source content. Unused for DVB-Sub passthrough. All DVB-Sub content
                    is passed through, regardless of selectors.

                  - **EmbeddedSourceSettings** *(dict) --* Embedded Source Settings

                    - **Convert608To708** *(string) --* If upconvert, 608 data is both passed
                    through via the "608 compatibility bytes" fields of the 708 wrapper as well as
                    translated into 708. 708 data present in the source content will be discarded.

                    - **Scte20Detection** *(string) --* Set to "auto" to handle streams with
                    intermittent and/or non-aligned SCTE-20 and Embedded captions.

                    - **Source608ChannelNumber** *(integer) --* Specifies the 608/708 channel number
                    within the video track from which to extract captions. Unused for passthrough.

                    - **Source608TrackNumber** *(integer) --* This field is unused and deprecated.

                  - **Scte20SourceSettings** *(dict) --* Scte20 Source Settings

                    - **Convert608To708** *(string) --* If upconvert, 608 data is both passed
                    through via the "608 compatibility bytes" fields of the 708 wrapper as well as
                    translated into 708. 708 data present in the source content will be discarded.

                    - **Source608ChannelNumber** *(integer) --* Specifies the 608/708 channel number
                    within the video track from which to extract captions. Unused for passthrough.

                  - **Scte27SourceSettings** *(dict) --* Scte27 Source Settings

                    - **Pid** *(integer) --* The pid field is used in conjunction with the caption
                    selector languageCode field as follows: - Specify PID and Language: Extracts
                    captions from that PID; the language is "informational". - Specify PID and omit
                    Language: Extracts the specified PID. - Omit PID and specify Language: Extracts
                    the specified language, whichever PID that happens to be. - Omit PID and omit
                    Language: Valid only if source is DVB-Sub that is being passed through; all
                    languages will be passed through.

                  - **TeletextSourceSettings** *(dict) --* Teletext Source Settings

                    - **PageNumber** *(string) --* Specifies the teletext page number within the
                    data stream from which to extract captions. Range of 0x100 (256) to 0x8FF
                    (2303). Unused for passthrough. Should be specified as a hexadecimal string with
                    no "0x" prefix.

            - **DeblockFilter** *(string) --* Enable or disable the deblock filter when filtering.

            - **DenoiseFilter** *(string) --* Enable or disable the denoise filter when filtering.

            - **FilterStrength** *(integer) --* Adjusts the magnitude of filtering from 1 (minimal)
            to 5 (strongest).

            - **InputFilter** *(string) --* Turns on the filter for this input. MPEG-2 inputs have
            the deblocking filter enabled by default. 1) auto - filtering will be applied depending
            on input type/quality 2) disabled - no filtering will be applied to the input 3) forced
            - filtering will be applied regardless of input type

            - **NetworkInputSettings** *(dict) --* Input settings.

              - **HlsInputSettings** *(dict) --* Specifies HLS input settings when the uri is for a
              HLS manifest.

                - **Bandwidth** *(integer) --* When specified the HLS stream with the m3u8 BANDWIDTH
                that most closely matches this value will be chosen, otherwise the highest bandwidth
                stream in the m3u8 will be chosen. The bitrate is specified in bits per second, as
                in an HLS manifest.

                - **BufferSegments** *(integer) --* When specified, reading of the HLS input will
                begin this many buffer segments from the end (most recently written segment). When
                not specified, the HLS input will begin with the first segment specified in the
                m3u8.

                - **Retries** *(integer) --* The number of consecutive times that attempts to read a
                manifest or segment must fail before the input is considered unavailable.

                - **RetryInterval** *(integer) --* The number of seconds between retries when an
                attempt to read a manifest or segment fails.

              - **ServerValidation** *(string) --* Check HTTPS server certificates. When set to
              checkCryptographyOnly, cryptography in the certificate will be checked, but not the
              server's name. Certain subdomains (notably S3 buckets that use dots in the bucket
              name) do not strictly match the corresponding certificate's wildcard pattern and would
              otherwise cause the event to error. This setting is ignored for protocols that do not
              use https.

            - **SourceEndBehavior** *(string) --* Loop input if it is a file. This allows a file
            input to be streamed indefinitely.

            - **VideoSelector** *(dict) --* Informs which video elementary stream to decode for
            input types that have multiple available.

              - **ColorSpace** *(string) --* Specifies the color space of an input. This setting
              works in tandem with colorSpaceUsage and a video description's
              colorSpaceSettingsChoice to determine if any conversion will be performed.

              - **ColorSpaceUsage** *(string) --* Applies only if colorSpace is a value other than
              follow. This field controls how the value in the colorSpace field will be used.
              fallback means that when the input does include color space data, that data will be
              used, but when the input has no color space data, the value in colorSpace will be
              used. Choose fallback if your input is sometimes missing color space data, but when it
              does have color space data, that data is correct. force means to always use the value
              in colorSpace. Choose force if your input usually has no color space data or might
              have unreliable color space data.

              - **SelectorSettings** *(dict) --* The video selector settings.

                - **VideoSelectorPid** *(dict) --* Video Selector Pid

                  - **Pid** *(integer) --* Selects a specific PID from within a video source.

                - **VideoSelectorProgramId** *(dict) --* Video Selector Program Id

                  - **ProgramId** *(integer) --* Selects a specific program from within a
                  multi-program transport stream. If the program doesn't exist, the first program
                  within the transport stream will be selected by default.

      - **InputSpecification** *(dict) --* Placeholder documentation for InputSpecification

        - **Codec** *(string) --* Input codec

        - **MaximumBitrate** *(string) --* Maximum input bitrate, categorized coarsely

        - **Resolution** *(string) --* Input resolution, categorized coarsely

      - **LogLevel** *(string) --* The log level being written to CloudWatch Logs.

      - **Name** *(string) --* The name of the channel. (user-mutable)

      - **PipelineDetails** *(list) --* Runtime details for the pipelines of a running channel.

        - *(dict) --* Runtime details of a pipeline when a channel is running.

          - **ActiveInputAttachmentName** *(string) --* The name of the active input attachment
          currently being ingested by this pipeline.

          - **ActiveInputSwitchActionName** *(string) --* The name of the input switch schedule
          action that occurred most recently and that resulted in the switch to the current input
          attachment for this pipeline.

          - **PipelineId** *(string) --* Pipeline ID

      - **PipelinesRunningCount** *(integer) --* The number of currently healthy pipelines.

      - **RoleArn** *(string) --* The Amazon Resource Name (ARN) of the role assumed when running
      the Channel.

      - **State** *(string) --* Placeholder documentation for ChannelState

      - **Tags** *(dict) --* A collection of key-value pairs.

        - *(string) --* Placeholder documentation for __string

          - *(string) --* Placeholder documentation for __string
    """


_ClientCreateInputDestinationsTypeDef = TypedDict(
    "_ClientCreateInputDestinationsTypeDef", {"StreamName": str}, total=False
)


class ClientCreateInputDestinationsTypeDef(_ClientCreateInputDestinationsTypeDef):
    """
    Type definition for `ClientCreateInput` `Destinations`

    - **StreamName** *(string) --* A unique name for the location the RTMP stream is being pushed
    to.
    """


_ClientCreateInputMediaConnectFlowsTypeDef = TypedDict(
    "_ClientCreateInputMediaConnectFlowsTypeDef", {"FlowArn": str}, total=False
)


class ClientCreateInputMediaConnectFlowsTypeDef(_ClientCreateInputMediaConnectFlowsTypeDef):
    """
    Type definition for `ClientCreateInput` `MediaConnectFlows`

    - **FlowArn** *(string) --* The ARN of the MediaConnect Flow that you want to use as a source.
    """


_ClientCreateInputResponseInputDestinationsVpcTypeDef = TypedDict(
    "_ClientCreateInputResponseInputDestinationsVpcTypeDef",
    {"AvailabilityZone": str, "NetworkInterfaceId": str},
    total=False,
)


class ClientCreateInputResponseInputDestinationsVpcTypeDef(
    _ClientCreateInputResponseInputDestinationsVpcTypeDef
):
    """
    Type definition for `ClientCreateInputResponseInputDestinations` `Vpc`

    - **AvailabilityZone** *(string) --* The availability zone of the Input destination.

    - **NetworkInterfaceId** *(string) --* The network interface ID of the Input destination in the
    VPC.
    """


_ClientCreateInputResponseInputDestinationsTypeDef = TypedDict(
    "_ClientCreateInputResponseInputDestinationsTypeDef",
    {
        "Ip": str,
        "Port": str,
        "Url": str,
        "Vpc": ClientCreateInputResponseInputDestinationsVpcTypeDef,
    },
    total=False,
)


class ClientCreateInputResponseInputDestinationsTypeDef(
    _ClientCreateInputResponseInputDestinationsTypeDef
):
    """
    Type definition for `ClientCreateInputResponseInput` `Destinations`

    - **Ip** *(string) --* The system-generated static IP address of endpoint. It remains fixed for
    the lifetime of the input.

    - **Port** *(string) --* The port number for the input.

    - **Url** *(string) --* This represents the endpoint that the customer stream will be pushed to.

    - **Vpc** *(dict) --* The properties for a VPC type input destination.

      - **AvailabilityZone** *(string) --* The availability zone of the Input destination.

      - **NetworkInterfaceId** *(string) --* The network interface ID of the Input destination in
      the VPC.
    """


_ClientCreateInputResponseInputMediaConnectFlowsTypeDef = TypedDict(
    "_ClientCreateInputResponseInputMediaConnectFlowsTypeDef", {"FlowArn": str}, total=False
)


class ClientCreateInputResponseInputMediaConnectFlowsTypeDef(
    _ClientCreateInputResponseInputMediaConnectFlowsTypeDef
):
    """
    Type definition for `ClientCreateInputResponseInput` `MediaConnectFlows`

    - **FlowArn** *(string) --* The unique ARN of the MediaConnect Flow being used as a source.
    """


_ClientCreateInputResponseInputSourcesTypeDef = TypedDict(
    "_ClientCreateInputResponseInputSourcesTypeDef",
    {"PasswordParam": str, "Url": str, "Username": str},
    total=False,
)


class ClientCreateInputResponseInputSourcesTypeDef(_ClientCreateInputResponseInputSourcesTypeDef):
    """
    Type definition for `ClientCreateInputResponseInput` `Sources`

    - **PasswordParam** *(string) --* The key used to extract the password from EC2 Parameter store.

    - **Url** *(string) --* This represents the customer's source URL where stream is pulled from.

    - **Username** *(string) --* The username for the input source.
    """


_ClientCreateInputResponseInputTypeDef = TypedDict(
    "_ClientCreateInputResponseInputTypeDef",
    {
        "Arn": str,
        "AttachedChannels": List[str],
        "Destinations": List[ClientCreateInputResponseInputDestinationsTypeDef],
        "Id": str,
        "InputClass": str,
        "InputSourceType": str,
        "MediaConnectFlows": List[ClientCreateInputResponseInputMediaConnectFlowsTypeDef],
        "Name": str,
        "RoleArn": str,
        "SecurityGroups": List[str],
        "Sources": List[ClientCreateInputResponseInputSourcesTypeDef],
        "State": str,
        "Tags": Dict[str, str],
        "Type": str,
    },
    total=False,
)


class ClientCreateInputResponseInputTypeDef(_ClientCreateInputResponseInputTypeDef):
    """
    Type definition for `ClientCreateInputResponse` `Input`

    - **Arn** *(string) --* The Unique ARN of the input (generated, immutable).

    - **AttachedChannels** *(list) --* A list of channel IDs that that input is attached to
    (currently an input can only be attached to one channel).

      - *(string) --* Placeholder documentation for __string

    - **Destinations** *(list) --* A list of the destinations of the input (PUSH-type).

      - *(dict) --* The settings for a PUSH type input.

        - **Ip** *(string) --* The system-generated static IP address of endpoint. It remains fixed
        for the lifetime of the input.

        - **Port** *(string) --* The port number for the input.

        - **Url** *(string) --* This represents the endpoint that the customer stream will be pushed
        to.

        - **Vpc** *(dict) --* The properties for a VPC type input destination.

          - **AvailabilityZone** *(string) --* The availability zone of the Input destination.

          - **NetworkInterfaceId** *(string) --* The network interface ID of the Input destination
          in the VPC.

    - **Id** *(string) --* The generated ID of the input (unique for user account, immutable).

    - **InputClass** *(string) --* STANDARD - MediaLive expects two sources to be connected to this
    input. If the channel is also STANDARD, both sources will be ingested. If the channel is
    SINGLE_PIPELINE, only the first source will be ingested; the second source will always be
    ignored, even if the first source fails. SINGLE_PIPELINE - You can connect only one source to
    this input. If the ChannelClass is also SINGLE_PIPELINE, this value is valid. If the
    ChannelClass is STANDARD, this value is not valid because the channel requires two sources in
    the input.

    - **InputSourceType** *(string) --* Certain pull input sources can be dynamic, meaning that they
    can have their URL's dynamically changes during input switch actions. Presently, this
    functionality only works with MP4_FILE inputs.

    - **MediaConnectFlows** *(list) --* A list of MediaConnect Flows for this input.

      - *(dict) --* The settings for a MediaConnect Flow.

        - **FlowArn** *(string) --* The unique ARN of the MediaConnect Flow being used as a source.

    - **Name** *(string) --* The user-assigned name (This is a mutable value).

    - **RoleArn** *(string) --* The Amazon Resource Name (ARN) of the role this input assumes during
    and after creation.

    - **SecurityGroups** *(list) --* A list of IDs for all the Input Security Groups attached to the
    input.

      - *(string) --* Placeholder documentation for __string

    - **Sources** *(list) --* A list of the sources of the input (PULL-type).

      - *(dict) --* The settings for a PULL type input.

        - **PasswordParam** *(string) --* The key used to extract the password from EC2 Parameter
        store.

        - **Url** *(string) --* This represents the customer's source URL where stream is pulled
        from.

        - **Username** *(string) --* The username for the input source.

    - **State** *(string) --* Placeholder documentation for InputState

    - **Tags** *(dict) --* A collection of key-value pairs.

      - *(string) --* Placeholder documentation for __string

        - *(string) --* Placeholder documentation for __string

    - **Type** *(string) --* Placeholder documentation for InputType
    """


_ClientCreateInputResponseTypeDef = TypedDict(
    "_ClientCreateInputResponseTypeDef",
    {"Input": ClientCreateInputResponseInputTypeDef},
    total=False,
)


class ClientCreateInputResponseTypeDef(_ClientCreateInputResponseTypeDef):
    """
    Type definition for `ClientCreateInput` `Response`

    - **Input** *(dict) --* Placeholder documentation for Input

      - **Arn** *(string) --* The Unique ARN of the input (generated, immutable).

      - **AttachedChannels** *(list) --* A list of channel IDs that that input is attached to
      (currently an input can only be attached to one channel).

        - *(string) --* Placeholder documentation for __string

      - **Destinations** *(list) --* A list of the destinations of the input (PUSH-type).

        - *(dict) --* The settings for a PUSH type input.

          - **Ip** *(string) --* The system-generated static IP address of endpoint. It remains
          fixed for the lifetime of the input.

          - **Port** *(string) --* The port number for the input.

          - **Url** *(string) --* This represents the endpoint that the customer stream will be
          pushed to.

          - **Vpc** *(dict) --* The properties for a VPC type input destination.

            - **AvailabilityZone** *(string) --* The availability zone of the Input destination.

            - **NetworkInterfaceId** *(string) --* The network interface ID of the Input destination
            in the VPC.

      - **Id** *(string) --* The generated ID of the input (unique for user account, immutable).

      - **InputClass** *(string) --* STANDARD - MediaLive expects two sources to be connected to
      this input. If the channel is also STANDARD, both sources will be ingested. If the channel is
      SINGLE_PIPELINE, only the first source will be ingested; the second source will always be
      ignored, even if the first source fails. SINGLE_PIPELINE - You can connect only one source to
      this input. If the ChannelClass is also SINGLE_PIPELINE, this value is valid. If the
      ChannelClass is STANDARD, this value is not valid because the channel requires two sources in
      the input.

      - **InputSourceType** *(string) --* Certain pull input sources can be dynamic, meaning that
      they can have their URL's dynamically changes during input switch actions. Presently, this
      functionality only works with MP4_FILE inputs.

      - **MediaConnectFlows** *(list) --* A list of MediaConnect Flows for this input.

        - *(dict) --* The settings for a MediaConnect Flow.

          - **FlowArn** *(string) --* The unique ARN of the MediaConnect Flow being used as a
          source.

      - **Name** *(string) --* The user-assigned name (This is a mutable value).

      - **RoleArn** *(string) --* The Amazon Resource Name (ARN) of the role this input assumes
      during and after creation.

      - **SecurityGroups** *(list) --* A list of IDs for all the Input Security Groups attached to
      the input.

        - *(string) --* Placeholder documentation for __string

      - **Sources** *(list) --* A list of the sources of the input (PULL-type).

        - *(dict) --* The settings for a PULL type input.

          - **PasswordParam** *(string) --* The key used to extract the password from EC2 Parameter
          store.

          - **Url** *(string) --* This represents the customer's source URL where stream is pulled
          from.

          - **Username** *(string) --* The username for the input source.

      - **State** *(string) --* Placeholder documentation for InputState

      - **Tags** *(dict) --* A collection of key-value pairs.

        - *(string) --* Placeholder documentation for __string

          - *(string) --* Placeholder documentation for __string

      - **Type** *(string) --* Placeholder documentation for InputType
    """


_ClientCreateInputSecurityGroupResponseSecurityGroupWhitelistRulesTypeDef = TypedDict(
    "_ClientCreateInputSecurityGroupResponseSecurityGroupWhitelistRulesTypeDef",
    {"Cidr": str},
    total=False,
)


class ClientCreateInputSecurityGroupResponseSecurityGroupWhitelistRulesTypeDef(
    _ClientCreateInputSecurityGroupResponseSecurityGroupWhitelistRulesTypeDef
):
    """
    Type definition for `ClientCreateInputSecurityGroupResponseSecurityGroup` `WhitelistRules`

    - **Cidr** *(string) --* The IPv4 CIDR that's whitelisted.
    """


_ClientCreateInputSecurityGroupResponseSecurityGroupTypeDef = TypedDict(
    "_ClientCreateInputSecurityGroupResponseSecurityGroupTypeDef",
    {
        "Arn": str,
        "Id": str,
        "Inputs": List[str],
        "State": str,
        "Tags": Dict[str, str],
        "WhitelistRules": List[
            ClientCreateInputSecurityGroupResponseSecurityGroupWhitelistRulesTypeDef
        ],
    },
    total=False,
)


class ClientCreateInputSecurityGroupResponseSecurityGroupTypeDef(
    _ClientCreateInputSecurityGroupResponseSecurityGroupTypeDef
):
    """
    Type definition for `ClientCreateInputSecurityGroupResponse` `SecurityGroup`

    - **Arn** *(string) --* Unique ARN of Input Security Group

    - **Id** *(string) --* The Id of the Input Security Group

    - **Inputs** *(list) --* The list of inputs currently using this Input Security Group.

      - *(string) --* Placeholder documentation for __string

    - **State** *(string) --* The current state of the Input Security Group.

    - **Tags** *(dict) --* A collection of key-value pairs.

      - *(string) --* Placeholder documentation for __string

        - *(string) --* Placeholder documentation for __string

    - **WhitelistRules** *(list) --* Whitelist rules and their sync status

      - *(dict) --* Whitelist rule

        - **Cidr** *(string) --* The IPv4 CIDR that's whitelisted.
    """


_ClientCreateInputSecurityGroupResponseTypeDef = TypedDict(
    "_ClientCreateInputSecurityGroupResponseTypeDef",
    {"SecurityGroup": ClientCreateInputSecurityGroupResponseSecurityGroupTypeDef},
    total=False,
)


class ClientCreateInputSecurityGroupResponseTypeDef(_ClientCreateInputSecurityGroupResponseTypeDef):
    """
    Type definition for `ClientCreateInputSecurityGroup` `Response`

    - **SecurityGroup** *(dict) --* An Input Security Group

      - **Arn** *(string) --* Unique ARN of Input Security Group

      - **Id** *(string) --* The Id of the Input Security Group

      - **Inputs** *(list) --* The list of inputs currently using this Input Security Group.

        - *(string) --* Placeholder documentation for __string

      - **State** *(string) --* The current state of the Input Security Group.

      - **Tags** *(dict) --* A collection of key-value pairs.

        - *(string) --* Placeholder documentation for __string

          - *(string) --* Placeholder documentation for __string

      - **WhitelistRules** *(list) --* Whitelist rules and their sync status

        - *(dict) --* Whitelist rule

          - **Cidr** *(string) --* The IPv4 CIDR that's whitelisted.
    """


_ClientCreateInputSecurityGroupWhitelistRulesTypeDef = TypedDict(
    "_ClientCreateInputSecurityGroupWhitelistRulesTypeDef", {"Cidr": str}, total=False
)


class ClientCreateInputSecurityGroupWhitelistRulesTypeDef(
    _ClientCreateInputSecurityGroupWhitelistRulesTypeDef
):
    """
    Type definition for `ClientCreateInputSecurityGroup` `WhitelistRules`

    - **Cidr** *(string) --* The IPv4 CIDR to whitelist.
    """


_ClientCreateInputSourcesTypeDef = TypedDict(
    "_ClientCreateInputSourcesTypeDef",
    {"PasswordParam": str, "Url": str, "Username": str},
    total=False,
)


class ClientCreateInputSourcesTypeDef(_ClientCreateInputSourcesTypeDef):
    """
    Type definition for `ClientCreateInput` `Sources`

    - **PasswordParam** *(string) --* The key used to extract the password from EC2 Parameter store.

    - **Url** *(string) --* This represents the customer's source URL where stream is pulled from.

    - **Username** *(string) --* The username for the input source.
    """


_RequiredClientCreateInputVpcTypeDef = TypedDict(
    "_RequiredClientCreateInputVpcTypeDef", {"SubnetIds": List[str]}
)
_OptionalClientCreateInputVpcTypeDef = TypedDict(
    "_OptionalClientCreateInputVpcTypeDef", {"SecurityGroupIds": List[str]}, total=False
)


class ClientCreateInputVpcTypeDef(
    _RequiredClientCreateInputVpcTypeDef, _OptionalClientCreateInputVpcTypeDef
):
    """
    Type definition for `ClientCreateInput` `Vpc`

    - **SecurityGroupIds** *(list) --* A list of up to 5 EC2 VPC security group IDs to attach to the
    Input VPC network interfaces. Requires subnetIds. If none are specified then the VPC default
    security group will be used.

      - *(string) --* Placeholder documentation for __string

    - **SubnetIds** *(list) --* **[REQUIRED]** A list of 2 VPC subnet IDs from the same VPC. Subnet
    IDs must be mapped to two unique availability zones (AZ).

      - *(string) --* Placeholder documentation for __string
    """


_RequiredClientCreateMultiplexMultiplexSettingsTypeDef = TypedDict(
    "_RequiredClientCreateMultiplexMultiplexSettingsTypeDef",
    {"TransportStreamBitrate": int, "TransportStreamId": int},
)
_OptionalClientCreateMultiplexMultiplexSettingsTypeDef = TypedDict(
    "_OptionalClientCreateMultiplexMultiplexSettingsTypeDef",
    {"MaximumVideoBufferDelayMilliseconds": int, "TransportStreamReservedBitrate": int},
    total=False,
)


class ClientCreateMultiplexMultiplexSettingsTypeDef(
    _RequiredClientCreateMultiplexMultiplexSettingsTypeDef,
    _OptionalClientCreateMultiplexMultiplexSettingsTypeDef,
):
    """
    Type definition for `ClientCreateMultiplex` `MultiplexSettings`

    - **MaximumVideoBufferDelayMilliseconds** *(integer) --* Maximum video buffer delay in
    milliseconds.

    - **TransportStreamBitrate** *(integer) --* **[REQUIRED]** Transport stream bit rate.

    - **TransportStreamId** *(integer) --* **[REQUIRED]** Transport stream ID.

    - **TransportStreamReservedBitrate** *(integer) --* Transport stream reserved bit rate.
    """


_ClientCreateMultiplexProgramMultiplexProgramSettingsServiceDescriptorTypeDef = TypedDict(
    "_ClientCreateMultiplexProgramMultiplexProgramSettingsServiceDescriptorTypeDef",
    {"ProviderName": str, "ServiceName": str},
)


class ClientCreateMultiplexProgramMultiplexProgramSettingsServiceDescriptorTypeDef(
    _ClientCreateMultiplexProgramMultiplexProgramSettingsServiceDescriptorTypeDef
):
    """
    Type definition for `ClientCreateMultiplexProgramMultiplexProgramSettings` `ServiceDescriptor`

    - **ProviderName** *(string) --* **[REQUIRED]** Name of the provider.

    - **ServiceName** *(string) --* **[REQUIRED]** Name of the service.
    """


_ClientCreateMultiplexProgramMultiplexProgramSettingsVideoSettingsStatmuxSettingsTypeDef = TypedDict(
    "_ClientCreateMultiplexProgramMultiplexProgramSettingsVideoSettingsStatmuxSettingsTypeDef",
    {"MaximumBitrate": int, "MinimumBitrate": int},
    total=False,
)


class ClientCreateMultiplexProgramMultiplexProgramSettingsVideoSettingsStatmuxSettingsTypeDef(
    _ClientCreateMultiplexProgramMultiplexProgramSettingsVideoSettingsStatmuxSettingsTypeDef
):
    """
    Type definition for `ClientCreateMultiplexProgramMultiplexProgramSettingsVideoSettings`
    `StatmuxSettings`

    - **MaximumBitrate** *(integer) --* Maximum statmux bitrate.

    - **MinimumBitrate** *(integer) --* Minimum statmux bitrate.
    """


_ClientCreateMultiplexProgramMultiplexProgramSettingsVideoSettingsTypeDef = TypedDict(
    "_ClientCreateMultiplexProgramMultiplexProgramSettingsVideoSettingsTypeDef",
    {
        "ConstantBitrate": int,
        "StatmuxSettings": ClientCreateMultiplexProgramMultiplexProgramSettingsVideoSettingsStatmuxSettingsTypeDef,
    },
    total=False,
)


class ClientCreateMultiplexProgramMultiplexProgramSettingsVideoSettingsTypeDef(
    _ClientCreateMultiplexProgramMultiplexProgramSettingsVideoSettingsTypeDef
):
    """
    Type definition for `ClientCreateMultiplexProgramMultiplexProgramSettings` `VideoSettings`

    - **ConstantBitrate** *(integer) --* The constant bitrate configuration for the video encode.
    When this field is defined, StatmuxSettings must be undefined.

    - **StatmuxSettings** *(dict) --* Statmux rate control settings. When this field is defined,
    ConstantBitrate must be undefined.

      - **MaximumBitrate** *(integer) --* Maximum statmux bitrate.

      - **MinimumBitrate** *(integer) --* Minimum statmux bitrate.
    """


_RequiredClientCreateMultiplexProgramMultiplexProgramSettingsTypeDef = TypedDict(
    "_RequiredClientCreateMultiplexProgramMultiplexProgramSettingsTypeDef", {"ProgramNumber": int}
)
_OptionalClientCreateMultiplexProgramMultiplexProgramSettingsTypeDef = TypedDict(
    "_OptionalClientCreateMultiplexProgramMultiplexProgramSettingsTypeDef",
    {
        "ServiceDescriptor": ClientCreateMultiplexProgramMultiplexProgramSettingsServiceDescriptorTypeDef,
        "VideoSettings": ClientCreateMultiplexProgramMultiplexProgramSettingsVideoSettingsTypeDef,
    },
    total=False,
)


class ClientCreateMultiplexProgramMultiplexProgramSettingsTypeDef(
    _RequiredClientCreateMultiplexProgramMultiplexProgramSettingsTypeDef,
    _OptionalClientCreateMultiplexProgramMultiplexProgramSettingsTypeDef,
):
    """
    Type definition for `ClientCreateMultiplexProgram` `MultiplexProgramSettings`

    - **ProgramNumber** *(integer) --* **[REQUIRED]** Unique program number.

    - **ServiceDescriptor** *(dict) --* Transport stream service descriptor configuration for the
    Multiplex program.

      - **ProviderName** *(string) --* **[REQUIRED]** Name of the provider.

      - **ServiceName** *(string) --* **[REQUIRED]** Name of the service.

    - **VideoSettings** *(dict) --* Program video settings configuration.

      - **ConstantBitrate** *(integer) --* The constant bitrate configuration for the video encode.
      When this field is defined, StatmuxSettings must be undefined.

      - **StatmuxSettings** *(dict) --* Statmux rate control settings. When this field is defined,
      ConstantBitrate must be undefined.

        - **MaximumBitrate** *(integer) --* Maximum statmux bitrate.

        - **MinimumBitrate** *(integer) --* Minimum statmux bitrate.
    """


_ClientCreateMultiplexProgramResponseMultiplexProgramMultiplexProgramSettingsServiceDescriptorTypeDef = TypedDict(
    "_ClientCreateMultiplexProgramResponseMultiplexProgramMultiplexProgramSettingsServiceDescriptorTypeDef",
    {"ProviderName": str, "ServiceName": str},
    total=False,
)


class ClientCreateMultiplexProgramResponseMultiplexProgramMultiplexProgramSettingsServiceDescriptorTypeDef(
    _ClientCreateMultiplexProgramResponseMultiplexProgramMultiplexProgramSettingsServiceDescriptorTypeDef
):
    """
    Type definition for
    `ClientCreateMultiplexProgramResponseMultiplexProgramMultiplexProgramSettings`
    `ServiceDescriptor`

    - **ProviderName** *(string) --* Name of the provider.

    - **ServiceName** *(string) --* Name of the service.
    """


_ClientCreateMultiplexProgramResponseMultiplexProgramMultiplexProgramSettingsVideoSettingsStatmuxSettingsTypeDef = TypedDict(
    "_ClientCreateMultiplexProgramResponseMultiplexProgramMultiplexProgramSettingsVideoSettingsStatmuxSettingsTypeDef",
    {"MaximumBitrate": int, "MinimumBitrate": int},
    total=False,
)


class ClientCreateMultiplexProgramResponseMultiplexProgramMultiplexProgramSettingsVideoSettingsStatmuxSettingsTypeDef(
    _ClientCreateMultiplexProgramResponseMultiplexProgramMultiplexProgramSettingsVideoSettingsStatmuxSettingsTypeDef
):
    """
    Type definition for
    `ClientCreateMultiplexProgramResponseMultiplexProgramMultiplexProgramSettingsVideoSettings`
    `StatmuxSettings`

    - **MaximumBitrate** *(integer) --* Maximum statmux bitrate.

    - **MinimumBitrate** *(integer) --* Minimum statmux bitrate.
    """


_ClientCreateMultiplexProgramResponseMultiplexProgramMultiplexProgramSettingsVideoSettingsTypeDef = TypedDict(
    "_ClientCreateMultiplexProgramResponseMultiplexProgramMultiplexProgramSettingsVideoSettingsTypeDef",
    {
        "ConstantBitrate": int,
        "StatmuxSettings": ClientCreateMultiplexProgramResponseMultiplexProgramMultiplexProgramSettingsVideoSettingsStatmuxSettingsTypeDef,
    },
    total=False,
)


class ClientCreateMultiplexProgramResponseMultiplexProgramMultiplexProgramSettingsVideoSettingsTypeDef(
    _ClientCreateMultiplexProgramResponseMultiplexProgramMultiplexProgramSettingsVideoSettingsTypeDef
):
    """
    Type definition for
    `ClientCreateMultiplexProgramResponseMultiplexProgramMultiplexProgramSettings` `VideoSettings`

    - **ConstantBitrate** *(integer) --* The constant bitrate configuration for the video encode.
    When this field is defined, StatmuxSettings must be undefined.

    - **StatmuxSettings** *(dict) --* Statmux rate control settings. When this field is defined,
    ConstantBitrate must be undefined.

      - **MaximumBitrate** *(integer) --* Maximum statmux bitrate.

      - **MinimumBitrate** *(integer) --* Minimum statmux bitrate.
    """


_ClientCreateMultiplexProgramResponseMultiplexProgramMultiplexProgramSettingsTypeDef = TypedDict(
    "_ClientCreateMultiplexProgramResponseMultiplexProgramMultiplexProgramSettingsTypeDef",
    {
        "ProgramNumber": int,
        "ServiceDescriptor": ClientCreateMultiplexProgramResponseMultiplexProgramMultiplexProgramSettingsServiceDescriptorTypeDef,
        "VideoSettings": ClientCreateMultiplexProgramResponseMultiplexProgramMultiplexProgramSettingsVideoSettingsTypeDef,
    },
    total=False,
)


class ClientCreateMultiplexProgramResponseMultiplexProgramMultiplexProgramSettingsTypeDef(
    _ClientCreateMultiplexProgramResponseMultiplexProgramMultiplexProgramSettingsTypeDef
):
    """
    Type definition for `ClientCreateMultiplexProgramResponseMultiplexProgram`
    `MultiplexProgramSettings`

    - **ProgramNumber** *(integer) --* Unique program number.

    - **ServiceDescriptor** *(dict) --* Transport stream service descriptor configuration for the
    Multiplex program.

      - **ProviderName** *(string) --* Name of the provider.

      - **ServiceName** *(string) --* Name of the service.

    - **VideoSettings** *(dict) --* Program video settings configuration.

      - **ConstantBitrate** *(integer) --* The constant bitrate configuration for the video encode.
      When this field is defined, StatmuxSettings must be undefined.

      - **StatmuxSettings** *(dict) --* Statmux rate control settings. When this field is defined,
      ConstantBitrate must be undefined.

        - **MaximumBitrate** *(integer) --* Maximum statmux bitrate.

        - **MinimumBitrate** *(integer) --* Minimum statmux bitrate.
    """


_ClientCreateMultiplexProgramResponseMultiplexProgramPacketIdentifiersMapTypeDef = TypedDict(
    "_ClientCreateMultiplexProgramResponseMultiplexProgramPacketIdentifiersMapTypeDef",
    {
        "AudioPids": List[int],
        "DvbSubPids": List[int],
        "DvbTeletextPid": int,
        "EtvPlatformPid": int,
        "EtvSignalPid": int,
        "KlvDataPids": List[int],
        "PcrPid": int,
        "PmtPid": int,
        "PrivateMetadataPid": int,
        "Scte27Pids": List[int],
        "Scte35Pid": int,
        "TimedMetadataPid": int,
        "VideoPid": int,
    },
    total=False,
)


class ClientCreateMultiplexProgramResponseMultiplexProgramPacketIdentifiersMapTypeDef(
    _ClientCreateMultiplexProgramResponseMultiplexProgramPacketIdentifiersMapTypeDef
):
    """
    Type definition for `ClientCreateMultiplexProgramResponseMultiplexProgram`
    `PacketIdentifiersMap`

    - **AudioPids** *(list) --* Placeholder documentation for __listOf__integer

      - *(integer) --* Placeholder documentation for __integer

    - **DvbSubPids** *(list) --* Placeholder documentation for __listOf__integer

      - *(integer) --* Placeholder documentation for __integer

    - **DvbTeletextPid** *(integer) --* Placeholder documentation for __integer

    - **EtvPlatformPid** *(integer) --* Placeholder documentation for __integer

    - **EtvSignalPid** *(integer) --* Placeholder documentation for __integer

    - **KlvDataPids** *(list) --* Placeholder documentation for __listOf__integer

      - *(integer) --* Placeholder documentation for __integer

    - **PcrPid** *(integer) --* Placeholder documentation for __integer

    - **PmtPid** *(integer) --* Placeholder documentation for __integer

    - **PrivateMetadataPid** *(integer) --* Placeholder documentation for __integer

    - **Scte27Pids** *(list) --* Placeholder documentation for __listOf__integer

      - *(integer) --* Placeholder documentation for __integer

    - **Scte35Pid** *(integer) --* Placeholder documentation for __integer

    - **TimedMetadataPid** *(integer) --* Placeholder documentation for __integer

    - **VideoPid** *(integer) --* Placeholder documentation for __integer
    """


_ClientCreateMultiplexProgramResponseMultiplexProgramTypeDef = TypedDict(
    "_ClientCreateMultiplexProgramResponseMultiplexProgramTypeDef",
    {
        "ChannelId": str,
        "MultiplexProgramSettings": ClientCreateMultiplexProgramResponseMultiplexProgramMultiplexProgramSettingsTypeDef,
        "PacketIdentifiersMap": ClientCreateMultiplexProgramResponseMultiplexProgramPacketIdentifiersMapTypeDef,
        "ProgramName": str,
    },
    total=False,
)


class ClientCreateMultiplexProgramResponseMultiplexProgramTypeDef(
    _ClientCreateMultiplexProgramResponseMultiplexProgramTypeDef
):
    """
    Type definition for `ClientCreateMultiplexProgramResponse` `MultiplexProgram`

    - **ChannelId** *(string) --* The MediaLive channel associated with the program.

    - **MultiplexProgramSettings** *(dict) --* The settings for this multiplex program.

      - **ProgramNumber** *(integer) --* Unique program number.

      - **ServiceDescriptor** *(dict) --* Transport stream service descriptor configuration for the
      Multiplex program.

        - **ProviderName** *(string) --* Name of the provider.

        - **ServiceName** *(string) --* Name of the service.

      - **VideoSettings** *(dict) --* Program video settings configuration.

        - **ConstantBitrate** *(integer) --* The constant bitrate configuration for the video
        encode. When this field is defined, StatmuxSettings must be undefined.

        - **StatmuxSettings** *(dict) --* Statmux rate control settings. When this field is defined,
        ConstantBitrate must be undefined.

          - **MaximumBitrate** *(integer) --* Maximum statmux bitrate.

          - **MinimumBitrate** *(integer) --* Minimum statmux bitrate.

    - **PacketIdentifiersMap** *(dict) --* The packet identifier map for this multiplex program.

      - **AudioPids** *(list) --* Placeholder documentation for __listOf__integer

        - *(integer) --* Placeholder documentation for __integer

      - **DvbSubPids** *(list) --* Placeholder documentation for __listOf__integer

        - *(integer) --* Placeholder documentation for __integer

      - **DvbTeletextPid** *(integer) --* Placeholder documentation for __integer

      - **EtvPlatformPid** *(integer) --* Placeholder documentation for __integer

      - **EtvSignalPid** *(integer) --* Placeholder documentation for __integer

      - **KlvDataPids** *(list) --* Placeholder documentation for __listOf__integer

        - *(integer) --* Placeholder documentation for __integer

      - **PcrPid** *(integer) --* Placeholder documentation for __integer

      - **PmtPid** *(integer) --* Placeholder documentation for __integer

      - **PrivateMetadataPid** *(integer) --* Placeholder documentation for __integer

      - **Scte27Pids** *(list) --* Placeholder documentation for __listOf__integer

        - *(integer) --* Placeholder documentation for __integer

      - **Scte35Pid** *(integer) --* Placeholder documentation for __integer

      - **TimedMetadataPid** *(integer) --* Placeholder documentation for __integer

      - **VideoPid** *(integer) --* Placeholder documentation for __integer

    - **ProgramName** *(string) --* The name of the multiplex program.
    """


_ClientCreateMultiplexProgramResponseTypeDef = TypedDict(
    "_ClientCreateMultiplexProgramResponseTypeDef",
    {"MultiplexProgram": ClientCreateMultiplexProgramResponseMultiplexProgramTypeDef},
    total=False,
)


class ClientCreateMultiplexProgramResponseTypeDef(_ClientCreateMultiplexProgramResponseTypeDef):
    """
    Type definition for `ClientCreateMultiplexProgram` `Response`

    - **MultiplexProgram** *(dict) --* The newly created multiplex program.

      - **ChannelId** *(string) --* The MediaLive channel associated with the program.

      - **MultiplexProgramSettings** *(dict) --* The settings for this multiplex program.

        - **ProgramNumber** *(integer) --* Unique program number.

        - **ServiceDescriptor** *(dict) --* Transport stream service descriptor configuration for
        the Multiplex program.

          - **ProviderName** *(string) --* Name of the provider.

          - **ServiceName** *(string) --* Name of the service.

        - **VideoSettings** *(dict) --* Program video settings configuration.

          - **ConstantBitrate** *(integer) --* The constant bitrate configuration for the video
          encode. When this field is defined, StatmuxSettings must be undefined.

          - **StatmuxSettings** *(dict) --* Statmux rate control settings. When this field is
          defined, ConstantBitrate must be undefined.

            - **MaximumBitrate** *(integer) --* Maximum statmux bitrate.

            - **MinimumBitrate** *(integer) --* Minimum statmux bitrate.

      - **PacketIdentifiersMap** *(dict) --* The packet identifier map for this multiplex program.

        - **AudioPids** *(list) --* Placeholder documentation for __listOf__integer

          - *(integer) --* Placeholder documentation for __integer

        - **DvbSubPids** *(list) --* Placeholder documentation for __listOf__integer

          - *(integer) --* Placeholder documentation for __integer

        - **DvbTeletextPid** *(integer) --* Placeholder documentation for __integer

        - **EtvPlatformPid** *(integer) --* Placeholder documentation for __integer

        - **EtvSignalPid** *(integer) --* Placeholder documentation for __integer

        - **KlvDataPids** *(list) --* Placeholder documentation for __listOf__integer

          - *(integer) --* Placeholder documentation for __integer

        - **PcrPid** *(integer) --* Placeholder documentation for __integer

        - **PmtPid** *(integer) --* Placeholder documentation for __integer

        - **PrivateMetadataPid** *(integer) --* Placeholder documentation for __integer

        - **Scte27Pids** *(list) --* Placeholder documentation for __listOf__integer

          - *(integer) --* Placeholder documentation for __integer

        - **Scte35Pid** *(integer) --* Placeholder documentation for __integer

        - **TimedMetadataPid** *(integer) --* Placeholder documentation for __integer

        - **VideoPid** *(integer) --* Placeholder documentation for __integer

      - **ProgramName** *(string) --* The name of the multiplex program.
    """


_ClientCreateMultiplexResponseMultiplexDestinationsMediaConnectSettingsTypeDef = TypedDict(
    "_ClientCreateMultiplexResponseMultiplexDestinationsMediaConnectSettingsTypeDef",
    {"EntitlementArn": str},
    total=False,
)


class ClientCreateMultiplexResponseMultiplexDestinationsMediaConnectSettingsTypeDef(
    _ClientCreateMultiplexResponseMultiplexDestinationsMediaConnectSettingsTypeDef
):
    """
    Type definition for `ClientCreateMultiplexResponseMultiplexDestinations` `MediaConnectSettings`

    - **EntitlementArn** *(string) --* The MediaConnect entitlement ARN available as a Flow source.
    """


_ClientCreateMultiplexResponseMultiplexDestinationsTypeDef = TypedDict(
    "_ClientCreateMultiplexResponseMultiplexDestinationsTypeDef",
    {
        "MediaConnectSettings": ClientCreateMultiplexResponseMultiplexDestinationsMediaConnectSettingsTypeDef
    },
    total=False,
)


class ClientCreateMultiplexResponseMultiplexDestinationsTypeDef(
    _ClientCreateMultiplexResponseMultiplexDestinationsTypeDef
):
    """
    Type definition for `ClientCreateMultiplexResponseMultiplex` `Destinations`

    - **MediaConnectSettings** *(dict) --* Multiplex MediaConnect output destination settings.

      - **EntitlementArn** *(string) --* The MediaConnect entitlement ARN available as a Flow
      source.
    """


_ClientCreateMultiplexResponseMultiplexMultiplexSettingsTypeDef = TypedDict(
    "_ClientCreateMultiplexResponseMultiplexMultiplexSettingsTypeDef",
    {
        "MaximumVideoBufferDelayMilliseconds": int,
        "TransportStreamBitrate": int,
        "TransportStreamId": int,
        "TransportStreamReservedBitrate": int,
    },
    total=False,
)


class ClientCreateMultiplexResponseMultiplexMultiplexSettingsTypeDef(
    _ClientCreateMultiplexResponseMultiplexMultiplexSettingsTypeDef
):
    """
    Type definition for `ClientCreateMultiplexResponseMultiplex` `MultiplexSettings`

    - **MaximumVideoBufferDelayMilliseconds** *(integer) --* Maximum video buffer delay in
    milliseconds.

    - **TransportStreamBitrate** *(integer) --* Transport stream bit rate.

    - **TransportStreamId** *(integer) --* Transport stream ID.

    - **TransportStreamReservedBitrate** *(integer) --* Transport stream reserved bit rate.
    """


_ClientCreateMultiplexResponseMultiplexTypeDef = TypedDict(
    "_ClientCreateMultiplexResponseMultiplexTypeDef",
    {
        "Arn": str,
        "AvailabilityZones": List[str],
        "Destinations": List[ClientCreateMultiplexResponseMultiplexDestinationsTypeDef],
        "Id": str,
        "MultiplexSettings": ClientCreateMultiplexResponseMultiplexMultiplexSettingsTypeDef,
        "Name": str,
        "PipelinesRunningCount": int,
        "ProgramCount": int,
        "State": str,
        "Tags": Dict[str, str],
    },
    total=False,
)


class ClientCreateMultiplexResponseMultiplexTypeDef(_ClientCreateMultiplexResponseMultiplexTypeDef):
    """
    Type definition for `ClientCreateMultiplexResponse` `Multiplex`

    - **Arn** *(string) --* The unique arn of the multiplex.

    - **AvailabilityZones** *(list) --* A list of availability zones for the multiplex.

      - *(string) --* Placeholder documentation for __string

    - **Destinations** *(list) --* A list of the multiplex output destinations.

      - *(dict) --* Multiplex output destination settings

        - **MediaConnectSettings** *(dict) --* Multiplex MediaConnect output destination settings.

          - **EntitlementArn** *(string) --* The MediaConnect entitlement ARN available as a Flow
          source.

    - **Id** *(string) --* The unique id of the multiplex.

    - **MultiplexSettings** *(dict) --* Configuration for a multiplex event.

      - **MaximumVideoBufferDelayMilliseconds** *(integer) --* Maximum video buffer delay in
      milliseconds.

      - **TransportStreamBitrate** *(integer) --* Transport stream bit rate.

      - **TransportStreamId** *(integer) --* Transport stream ID.

      - **TransportStreamReservedBitrate** *(integer) --* Transport stream reserved bit rate.

    - **Name** *(string) --* The name of the multiplex.

    - **PipelinesRunningCount** *(integer) --* The number of currently healthy pipelines.

    - **ProgramCount** *(integer) --* The number of programs in the multiplex.

    - **State** *(string) --* The current state of the multiplex.

    - **Tags** *(dict) --* A collection of key-value pairs.

      - *(string) --* Placeholder documentation for __string

        - *(string) --* Placeholder documentation for __string
    """


_ClientCreateMultiplexResponseTypeDef = TypedDict(
    "_ClientCreateMultiplexResponseTypeDef",
    {"Multiplex": ClientCreateMultiplexResponseMultiplexTypeDef},
    total=False,
)


class ClientCreateMultiplexResponseTypeDef(_ClientCreateMultiplexResponseTypeDef):
    """
    Type definition for `ClientCreateMultiplex` `Response`

    - **Multiplex** *(dict) --* The newly created multiplex.

      - **Arn** *(string) --* The unique arn of the multiplex.

      - **AvailabilityZones** *(list) --* A list of availability zones for the multiplex.

        - *(string) --* Placeholder documentation for __string

      - **Destinations** *(list) --* A list of the multiplex output destinations.

        - *(dict) --* Multiplex output destination settings

          - **MediaConnectSettings** *(dict) --* Multiplex MediaConnect output destination settings.

            - **EntitlementArn** *(string) --* The MediaConnect entitlement ARN available as a Flow
            source.

      - **Id** *(string) --* The unique id of the multiplex.

      - **MultiplexSettings** *(dict) --* Configuration for a multiplex event.

        - **MaximumVideoBufferDelayMilliseconds** *(integer) --* Maximum video buffer delay in
        milliseconds.

        - **TransportStreamBitrate** *(integer) --* Transport stream bit rate.

        - **TransportStreamId** *(integer) --* Transport stream ID.

        - **TransportStreamReservedBitrate** *(integer) --* Transport stream reserved bit rate.

      - **Name** *(string) --* The name of the multiplex.

      - **PipelinesRunningCount** *(integer) --* The number of currently healthy pipelines.

      - **ProgramCount** *(integer) --* The number of programs in the multiplex.

      - **State** *(string) --* The current state of the multiplex.

      - **Tags** *(dict) --* A collection of key-value pairs.

        - *(string) --* Placeholder documentation for __string

          - *(string) --* Placeholder documentation for __string
    """


_ClientDeleteChannelResponseDestinationsMediaPackageSettingsTypeDef = TypedDict(
    "_ClientDeleteChannelResponseDestinationsMediaPackageSettingsTypeDef",
    {"ChannelId": str},
    total=False,
)


class ClientDeleteChannelResponseDestinationsMediaPackageSettingsTypeDef(
    _ClientDeleteChannelResponseDestinationsMediaPackageSettingsTypeDef
):
    """
    Type definition for `ClientDeleteChannelResponseDestinations` `MediaPackageSettings`

    - **ChannelId** *(string) --* ID of the channel in MediaPackage that is the destination for this
    output group. You do not need to specify the individual inputs in MediaPackage; MediaLive will
    handle the connection of the two MediaLive pipelines to the two MediaPackage inputs. The
    MediaPackage channel and MediaLive channel must be in the same region.
    """


_ClientDeleteChannelResponseDestinationsMultiplexSettingsTypeDef = TypedDict(
    "_ClientDeleteChannelResponseDestinationsMultiplexSettingsTypeDef",
    {"MultiplexId": str, "ProgramName": str},
    total=False,
)


class ClientDeleteChannelResponseDestinationsMultiplexSettingsTypeDef(
    _ClientDeleteChannelResponseDestinationsMultiplexSettingsTypeDef
):
    """
    Type definition for `ClientDeleteChannelResponseDestinations` `MultiplexSettings`

    - **MultiplexId** *(string) --* The ID of the Multiplex that the encoder is providing output to.
    You do not need to specify the individual inputs to the Multiplex; MediaLive will handle the
    connection of the two MediaLive pipelines to the two Multiplex instances. The Multiplex must be
    in the same region as the Channel.

    - **ProgramName** *(string) --* The program name of the Multiplex program that the encoder is
    providing output to.
    """


_ClientDeleteChannelResponseDestinationsSettingsTypeDef = TypedDict(
    "_ClientDeleteChannelResponseDestinationsSettingsTypeDef",
    {"PasswordParam": str, "StreamName": str, "Url": str, "Username": str},
    total=False,
)


class ClientDeleteChannelResponseDestinationsSettingsTypeDef(
    _ClientDeleteChannelResponseDestinationsSettingsTypeDef
):
    """
    Type definition for `ClientDeleteChannelResponseDestinations` `Settings`

    - **PasswordParam** *(string) --* key used to extract the password from EC2 Parameter store

    - **StreamName** *(string) --* Stream name for RTMP destinations (URLs of type rtmp://)

    - **Url** *(string) --* A URL specifying a destination

    - **Username** *(string) --* username for destination
    """


_ClientDeleteChannelResponseDestinationsTypeDef = TypedDict(
    "_ClientDeleteChannelResponseDestinationsTypeDef",
    {
        "Id": str,
        "MediaPackageSettings": List[
            ClientDeleteChannelResponseDestinationsMediaPackageSettingsTypeDef
        ],
        "MultiplexSettings": ClientDeleteChannelResponseDestinationsMultiplexSettingsTypeDef,
        "Settings": List[ClientDeleteChannelResponseDestinationsSettingsTypeDef],
    },
    total=False,
)


class ClientDeleteChannelResponseDestinationsTypeDef(
    _ClientDeleteChannelResponseDestinationsTypeDef
):
    """
    Type definition for `ClientDeleteChannelResponse` `Destinations`

    - **Id** *(string) --* User-specified id. This is used in an output group or an output.

    - **MediaPackageSettings** *(list) --* Destination settings for a MediaPackage output; one
    destination for both encoders.

      - *(dict) --* MediaPackage Output Destination Settings

        - **ChannelId** *(string) --* ID of the channel in MediaPackage that is the destination for
        this output group. You do not need to specify the individual inputs in MediaPackage;
        MediaLive will handle the connection of the two MediaLive pipelines to the two MediaPackage
        inputs. The MediaPackage channel and MediaLive channel must be in the same region.

    - **MultiplexSettings** *(dict) --* Destination settings for a Multiplex output; one destination
    for both encoders.

      - **MultiplexId** *(string) --* The ID of the Multiplex that the encoder is providing output
      to. You do not need to specify the individual inputs to the Multiplex; MediaLive will handle
      the connection of the two MediaLive pipelines to the two Multiplex instances. The Multiplex
      must be in the same region as the Channel.

      - **ProgramName** *(string) --* The program name of the Multiplex program that the encoder is
      providing output to.

    - **Settings** *(list) --* Destination settings for a standard output; one destination for each
    redundant encoder.

      - *(dict) --* Placeholder documentation for OutputDestinationSettings

        - **PasswordParam** *(string) --* key used to extract the password from EC2 Parameter store

        - **StreamName** *(string) --* Stream name for RTMP destinations (URLs of type rtmp://)

        - **Url** *(string) --* A URL specifying a destination

        - **Username** *(string) --* username for destination
    """


_ClientDeleteChannelResponseEgressEndpointsTypeDef = TypedDict(
    "_ClientDeleteChannelResponseEgressEndpointsTypeDef", {"SourceIp": str}, total=False
)


class ClientDeleteChannelResponseEgressEndpointsTypeDef(
    _ClientDeleteChannelResponseEgressEndpointsTypeDef
):
    """
    Type definition for `ClientDeleteChannelResponse` `EgressEndpoints`

    - **SourceIp** *(string) --* Public IP of where a channel's output comes from
    """


_ClientDeleteChannelResponseEncoderSettingsAudioDescriptionsAudioNormalizationSettingsTypeDef = TypedDict(
    "_ClientDeleteChannelResponseEncoderSettingsAudioDescriptionsAudioNormalizationSettingsTypeDef",
    {"Algorithm": str, "AlgorithmControl": str, "TargetLkfs": float},
    total=False,
)


class ClientDeleteChannelResponseEncoderSettingsAudioDescriptionsAudioNormalizationSettingsTypeDef(
    _ClientDeleteChannelResponseEncoderSettingsAudioDescriptionsAudioNormalizationSettingsTypeDef
):
    """
    Type definition for `ClientDeleteChannelResponseEncoderSettingsAudioDescriptions`
    `AudioNormalizationSettings`

    - **Algorithm** *(string) --* Audio normalization algorithm to use. itu17701 conforms to the
    CALM Act specification, itu17702 conforms to the EBU R-128 specification.

    - **AlgorithmControl** *(string) --* When set to correctAudio the output audio is corrected
    using the chosen algorithm. If set to measureOnly, the audio will be measured but not adjusted.

    - **TargetLkfs** *(float) --* Target LKFS(loudness) to adjust volume to. If no value is entered,
    a default value will be used according to the chosen algorithm. The CALM Act (1770-1) recommends
    a target of -24 LKFS. The EBU R-128 specification (1770-2) recommends a target of -23 LKFS.
    """


_ClientDeleteChannelResponseEncoderSettingsAudioDescriptionsCodecSettingsAacSettingsTypeDef = TypedDict(
    "_ClientDeleteChannelResponseEncoderSettingsAudioDescriptionsCodecSettingsAacSettingsTypeDef",
    {
        "Bitrate": float,
        "CodingMode": str,
        "InputType": str,
        "Profile": str,
        "RateControlMode": str,
        "RawFormat": str,
        "SampleRate": float,
        "Spec": str,
        "VbrQuality": str,
    },
    total=False,
)


class ClientDeleteChannelResponseEncoderSettingsAudioDescriptionsCodecSettingsAacSettingsTypeDef(
    _ClientDeleteChannelResponseEncoderSettingsAudioDescriptionsCodecSettingsAacSettingsTypeDef
):
    """
    Type definition for `ClientDeleteChannelResponseEncoderSettingsAudioDescriptionsCodecSettings`
    `AacSettings`

    - **Bitrate** *(float) --* Average bitrate in bits/second. Valid values depend on rate control
    mode and profile.

    - **CodingMode** *(string) --* Mono, Stereo, or 5.1 channel layout. Valid values depend on rate
    control mode and profile. The adReceiverMix setting receives a stereo description plus control
    track and emits a mono AAC encode of the description track, with control data emitted in the PES
    header as per ETSI TS 101 154 Annex E.

    - **InputType** *(string) --* Set to "broadcasterMixedAd" when input contains pre-mixed main
    audio + AD (narration) as a stereo pair. The Audio Type field (audioType) will be set to 3,
    which signals to downstream systems that this stream contains "broadcaster mixed AD". Note that
    the input received by the encoder must contain pre-mixed audio; the encoder does not perform the
    mixing. The values in audioTypeControl and audioType (in AudioDescription) are ignored when set
    to broadcasterMixedAd. Leave set to "normal" when input does not contain pre-mixed audio + AD.

    - **Profile** *(string) --* AAC Profile.

    - **RateControlMode** *(string) --* Rate Control Mode.

    - **RawFormat** *(string) --* Sets LATM / LOAS AAC output for raw containers.

    - **SampleRate** *(float) --* Sample rate in Hz. Valid values depend on rate control mode and
    profile.

    - **Spec** *(string) --* Use MPEG-2 AAC audio instead of MPEG-4 AAC audio for raw or MPEG-2
    Transport Stream containers.

    - **VbrQuality** *(string) --* VBR Quality Level - Only used if rateControlMode is VBR.
    """


_ClientDeleteChannelResponseEncoderSettingsAudioDescriptionsCodecSettingsAc3SettingsTypeDef = TypedDict(
    "_ClientDeleteChannelResponseEncoderSettingsAudioDescriptionsCodecSettingsAc3SettingsTypeDef",
    {
        "Bitrate": float,
        "BitstreamMode": str,
        "CodingMode": str,
        "Dialnorm": int,
        "DrcProfile": str,
        "LfeFilter": str,
        "MetadataControl": str,
    },
    total=False,
)


class ClientDeleteChannelResponseEncoderSettingsAudioDescriptionsCodecSettingsAc3SettingsTypeDef(
    _ClientDeleteChannelResponseEncoderSettingsAudioDescriptionsCodecSettingsAc3SettingsTypeDef
):
    """
    Type definition for `ClientDeleteChannelResponseEncoderSettingsAudioDescriptionsCodecSettings`
    `Ac3Settings`

    - **Bitrate** *(float) --* Average bitrate in bits/second. Valid bitrates depend on the coding
    mode.

    - **BitstreamMode** *(string) --* Specifies the bitstream mode (bsmod) for the emitted AC-3
    stream. See ATSC A/52-2012 for background on these values.

    - **CodingMode** *(string) --* Dolby Digital coding mode. Determines number of channels.

    - **Dialnorm** *(integer) --* Sets the dialnorm for the output. If excluded and input audio is
    Dolby Digital, dialnorm will be passed through.

    - **DrcProfile** *(string) --* If set to filmStandard, adds dynamic range compression signaling
    to the output bitstream as defined in the Dolby Digital specification.

    - **LfeFilter** *(string) --* When set to enabled, applies a 120Hz lowpass filter to the LFE
    channel prior to encoding. Only valid in codingMode32Lfe mode.

    - **MetadataControl** *(string) --* When set to "followInput", encoder metadata will be sourced
    from the DD, DD+, or DolbyE decoder that supplied this audio data. If audio was not supplied
    from one of these streams, then the static metadata settings will be used.
    """


_ClientDeleteChannelResponseEncoderSettingsAudioDescriptionsCodecSettingsEac3SettingsTypeDef = TypedDict(
    "_ClientDeleteChannelResponseEncoderSettingsAudioDescriptionsCodecSettingsEac3SettingsTypeDef",
    {
        "AttenuationControl": str,
        "Bitrate": float,
        "BitstreamMode": str,
        "CodingMode": str,
        "DcFilter": str,
        "Dialnorm": int,
        "DrcLine": str,
        "DrcRf": str,
        "LfeControl": str,
        "LfeFilter": str,
        "LoRoCenterMixLevel": float,
        "LoRoSurroundMixLevel": float,
        "LtRtCenterMixLevel": float,
        "LtRtSurroundMixLevel": float,
        "MetadataControl": str,
        "PassthroughControl": str,
        "PhaseControl": str,
        "StereoDownmix": str,
        "SurroundExMode": str,
        "SurroundMode": str,
    },
    total=False,
)


class ClientDeleteChannelResponseEncoderSettingsAudioDescriptionsCodecSettingsEac3SettingsTypeDef(
    _ClientDeleteChannelResponseEncoderSettingsAudioDescriptionsCodecSettingsEac3SettingsTypeDef
):
    """
    Type definition for `ClientDeleteChannelResponseEncoderSettingsAudioDescriptionsCodecSettings`
    `Eac3Settings`

    - **AttenuationControl** *(string) --* When set to attenuate3Db, applies a 3 dB attenuation to
    the surround channels. Only used for 3/2 coding mode.

    - **Bitrate** *(float) --* Average bitrate in bits/second. Valid bitrates depend on the coding
    mode.

    - **BitstreamMode** *(string) --* Specifies the bitstream mode (bsmod) for the emitted E-AC-3
    stream. See ATSC A/52-2012 (Annex E) for background on these values.

    - **CodingMode** *(string) --* Dolby Digital Plus coding mode. Determines number of channels.

    - **DcFilter** *(string) --* When set to enabled, activates a DC highpass filter for all input
    channels.

    - **Dialnorm** *(integer) --* Sets the dialnorm for the output. If blank and input audio is
    Dolby Digital Plus, dialnorm will be passed through.

    - **DrcLine** *(string) --* Sets the Dolby dynamic range compression profile.

    - **DrcRf** *(string) --* Sets the profile for heavy Dolby dynamic range compression, ensures
    that the instantaneous signal peaks do not exceed specified levels.

    - **LfeControl** *(string) --* When encoding 3/2 audio, setting to lfe enables the LFE channel

    - **LfeFilter** *(string) --* When set to enabled, applies a 120Hz lowpass filter to the LFE
    channel prior to encoding. Only valid with codingMode32 coding mode.

    - **LoRoCenterMixLevel** *(float) --* Left only/Right only center mix level. Only used for 3/2
    coding mode.

    - **LoRoSurroundMixLevel** *(float) --* Left only/Right only surround mix level. Only used for
    3/2 coding mode.

    - **LtRtCenterMixLevel** *(float) --* Left total/Right total center mix level. Only used for 3/2
    coding mode.

    - **LtRtSurroundMixLevel** *(float) --* Left total/Right total surround mix level. Only used for
    3/2 coding mode.

    - **MetadataControl** *(string) --* When set to followInput, encoder metadata will be sourced
    from the DD, DD+, or DolbyE decoder that supplied this audio data. If audio was not supplied
    from one of these streams, then the static metadata settings will be used.

    - **PassthroughControl** *(string) --* When set to whenPossible, input DD+ audio will be passed
    through if it is present on the input. This detection is dynamic over the life of the transcode.
    Inputs that alternate between DD+ and non-DD+ content will have a consistent DD+ output as the
    system alternates between passthrough and encoding.

    - **PhaseControl** *(string) --* When set to shift90Degrees, applies a 90-degree phase shift to
    the surround channels. Only used for 3/2 coding mode.

    - **StereoDownmix** *(string) --* Stereo downmix preference. Only used for 3/2 coding mode.

    - **SurroundExMode** *(string) --* When encoding 3/2 audio, sets whether an extra center back
    surround channel is matrix encoded into the left and right surround channels.

    - **SurroundMode** *(string) --* When encoding 2/0 audio, sets whether Dolby Surround is matrix
    encoded into the two channels.
    """


_ClientDeleteChannelResponseEncoderSettingsAudioDescriptionsCodecSettingsMp2SettingsTypeDef = TypedDict(
    "_ClientDeleteChannelResponseEncoderSettingsAudioDescriptionsCodecSettingsMp2SettingsTypeDef",
    {"Bitrate": float, "CodingMode": str, "SampleRate": float},
    total=False,
)


class ClientDeleteChannelResponseEncoderSettingsAudioDescriptionsCodecSettingsMp2SettingsTypeDef(
    _ClientDeleteChannelResponseEncoderSettingsAudioDescriptionsCodecSettingsMp2SettingsTypeDef
):
    """
    Type definition for `ClientDeleteChannelResponseEncoderSettingsAudioDescriptionsCodecSettings`
    `Mp2Settings`

    - **Bitrate** *(float) --* Average bitrate in bits/second.

    - **CodingMode** *(string) --* The MPEG2 Audio coding mode. Valid values are codingMode10 (for
    mono) or codingMode20 (for stereo).

    - **SampleRate** *(float) --* Sample rate in Hz.
    """


_ClientDeleteChannelResponseEncoderSettingsAudioDescriptionsCodecSettingsTypeDef = TypedDict(
    "_ClientDeleteChannelResponseEncoderSettingsAudioDescriptionsCodecSettingsTypeDef",
    {
        "AacSettings": ClientDeleteChannelResponseEncoderSettingsAudioDescriptionsCodecSettingsAacSettingsTypeDef,
        "Ac3Settings": ClientDeleteChannelResponseEncoderSettingsAudioDescriptionsCodecSettingsAc3SettingsTypeDef,
        "Eac3Settings": ClientDeleteChannelResponseEncoderSettingsAudioDescriptionsCodecSettingsEac3SettingsTypeDef,
        "Mp2Settings": ClientDeleteChannelResponseEncoderSettingsAudioDescriptionsCodecSettingsMp2SettingsTypeDef,
        "PassThroughSettings": Dict[str, Any],
    },
    total=False,
)


class ClientDeleteChannelResponseEncoderSettingsAudioDescriptionsCodecSettingsTypeDef(
    _ClientDeleteChannelResponseEncoderSettingsAudioDescriptionsCodecSettingsTypeDef
):
    """
    Type definition for `ClientDeleteChannelResponseEncoderSettingsAudioDescriptions`
    `CodecSettings`

    - **AacSettings** *(dict) --* Aac Settings

      - **Bitrate** *(float) --* Average bitrate in bits/second. Valid values depend on rate control
      mode and profile.

      - **CodingMode** *(string) --* Mono, Stereo, or 5.1 channel layout. Valid values depend on
      rate control mode and profile. The adReceiverMix setting receives a stereo description plus
      control track and emits a mono AAC encode of the description track, with control data emitted
      in the PES header as per ETSI TS 101 154 Annex E.

      - **InputType** *(string) --* Set to "broadcasterMixedAd" when input contains pre-mixed main
      audio + AD (narration) as a stereo pair. The Audio Type field (audioType) will be set to 3,
      which signals to downstream systems that this stream contains "broadcaster mixed AD". Note
      that the input received by the encoder must contain pre-mixed audio; the encoder does not
      perform the mixing. The values in audioTypeControl and audioType (in AudioDescription) are
      ignored when set to broadcasterMixedAd. Leave set to "normal" when input does not contain
      pre-mixed audio + AD.

      - **Profile** *(string) --* AAC Profile.

      - **RateControlMode** *(string) --* Rate Control Mode.

      - **RawFormat** *(string) --* Sets LATM / LOAS AAC output for raw containers.

      - **SampleRate** *(float) --* Sample rate in Hz. Valid values depend on rate control mode and
      profile.

      - **Spec** *(string) --* Use MPEG-2 AAC audio instead of MPEG-4 AAC audio for raw or MPEG-2
      Transport Stream containers.

      - **VbrQuality** *(string) --* VBR Quality Level - Only used if rateControlMode is VBR.

    - **Ac3Settings** *(dict) --* Ac3 Settings

      - **Bitrate** *(float) --* Average bitrate in bits/second. Valid bitrates depend on the coding
      mode.

      - **BitstreamMode** *(string) --* Specifies the bitstream mode (bsmod) for the emitted AC-3
      stream. See ATSC A/52-2012 for background on these values.

      - **CodingMode** *(string) --* Dolby Digital coding mode. Determines number of channels.

      - **Dialnorm** *(integer) --* Sets the dialnorm for the output. If excluded and input audio is
      Dolby Digital, dialnorm will be passed through.

      - **DrcProfile** *(string) --* If set to filmStandard, adds dynamic range compression
      signaling to the output bitstream as defined in the Dolby Digital specification.

      - **LfeFilter** *(string) --* When set to enabled, applies a 120Hz lowpass filter to the LFE
      channel prior to encoding. Only valid in codingMode32Lfe mode.

      - **MetadataControl** *(string) --* When set to "followInput", encoder metadata will be
      sourced from the DD, DD+, or DolbyE decoder that supplied this audio data. If audio was not
      supplied from one of these streams, then the static metadata settings will be used.

    - **Eac3Settings** *(dict) --* Eac3 Settings

      - **AttenuationControl** *(string) --* When set to attenuate3Db, applies a 3 dB attenuation to
      the surround channels. Only used for 3/2 coding mode.

      - **Bitrate** *(float) --* Average bitrate in bits/second. Valid bitrates depend on the coding
      mode.

      - **BitstreamMode** *(string) --* Specifies the bitstream mode (bsmod) for the emitted E-AC-3
      stream. See ATSC A/52-2012 (Annex E) for background on these values.

      - **CodingMode** *(string) --* Dolby Digital Plus coding mode. Determines number of channels.

      - **DcFilter** *(string) --* When set to enabled, activates a DC highpass filter for all input
      channels.

      - **Dialnorm** *(integer) --* Sets the dialnorm for the output. If blank and input audio is
      Dolby Digital Plus, dialnorm will be passed through.

      - **DrcLine** *(string) --* Sets the Dolby dynamic range compression profile.

      - **DrcRf** *(string) --* Sets the profile for heavy Dolby dynamic range compression, ensures
      that the instantaneous signal peaks do not exceed specified levels.

      - **LfeControl** *(string) --* When encoding 3/2 audio, setting to lfe enables the LFE channel

      - **LfeFilter** *(string) --* When set to enabled, applies a 120Hz lowpass filter to the LFE
      channel prior to encoding. Only valid with codingMode32 coding mode.

      - **LoRoCenterMixLevel** *(float) --* Left only/Right only center mix level. Only used for 3/2
      coding mode.

      - **LoRoSurroundMixLevel** *(float) --* Left only/Right only surround mix level. Only used for
      3/2 coding mode.

      - **LtRtCenterMixLevel** *(float) --* Left total/Right total center mix level. Only used for
      3/2 coding mode.

      - **LtRtSurroundMixLevel** *(float) --* Left total/Right total surround mix level. Only used
      for 3/2 coding mode.

      - **MetadataControl** *(string) --* When set to followInput, encoder metadata will be sourced
      from the DD, DD+, or DolbyE decoder that supplied this audio data. If audio was not supplied
      from one of these streams, then the static metadata settings will be used.

      - **PassthroughControl** *(string) --* When set to whenPossible, input DD+ audio will be
      passed through if it is present on the input. This detection is dynamic over the life of the
      transcode. Inputs that alternate between DD+ and non-DD+ content will have a consistent DD+
      output as the system alternates between passthrough and encoding.

      - **PhaseControl** *(string) --* When set to shift90Degrees, applies a 90-degree phase shift
      to the surround channels. Only used for 3/2 coding mode.

      - **StereoDownmix** *(string) --* Stereo downmix preference. Only used for 3/2 coding mode.

      - **SurroundExMode** *(string) --* When encoding 3/2 audio, sets whether an extra center back
      surround channel is matrix encoded into the left and right surround channels.

      - **SurroundMode** *(string) --* When encoding 2/0 audio, sets whether Dolby Surround is
      matrix encoded into the two channels.

    - **Mp2Settings** *(dict) --* Mp2 Settings

      - **Bitrate** *(float) --* Average bitrate in bits/second.

      - **CodingMode** *(string) --* The MPEG2 Audio coding mode. Valid values are codingMode10 (for
      mono) or codingMode20 (for stereo).

      - **SampleRate** *(float) --* Sample rate in Hz.

    - **PassThroughSettings** *(dict) --* Pass Through Settings
    """


_ClientDeleteChannelResponseEncoderSettingsAudioDescriptionsRemixSettingsChannelMappingsInputChannelLevelsTypeDef = TypedDict(
    "_ClientDeleteChannelResponseEncoderSettingsAudioDescriptionsRemixSettingsChannelMappingsInputChannelLevelsTypeDef",
    {"Gain": int, "InputChannel": int},
    total=False,
)


class ClientDeleteChannelResponseEncoderSettingsAudioDescriptionsRemixSettingsChannelMappingsInputChannelLevelsTypeDef(
    _ClientDeleteChannelResponseEncoderSettingsAudioDescriptionsRemixSettingsChannelMappingsInputChannelLevelsTypeDef
):
    """
    Type definition for
    `ClientDeleteChannelResponseEncoderSettingsAudioDescriptionsRemixSettingsChannelMappings`
    `InputChannelLevels`

    - **Gain** *(integer) --* Remixing value. Units are in dB and acceptable values are within the
    range from -60 (mute) and 6 dB.

    - **InputChannel** *(integer) --* The index of the input channel used as a source.
    """


_ClientDeleteChannelResponseEncoderSettingsAudioDescriptionsRemixSettingsChannelMappingsTypeDef = TypedDict(
    "_ClientDeleteChannelResponseEncoderSettingsAudioDescriptionsRemixSettingsChannelMappingsTypeDef",
    {
        "InputChannelLevels": List[
            ClientDeleteChannelResponseEncoderSettingsAudioDescriptionsRemixSettingsChannelMappingsInputChannelLevelsTypeDef
        ],
        "OutputChannel": int,
    },
    total=False,
)


class ClientDeleteChannelResponseEncoderSettingsAudioDescriptionsRemixSettingsChannelMappingsTypeDef(
    _ClientDeleteChannelResponseEncoderSettingsAudioDescriptionsRemixSettingsChannelMappingsTypeDef
):
    """
    Type definition for `ClientDeleteChannelResponseEncoderSettingsAudioDescriptionsRemixSettings`
    `ChannelMappings`

    - **InputChannelLevels** *(list) --* Indices and gain values for each input channel that should
    be remixed into this output channel.

      - *(dict) --* Input Channel Level

        - **Gain** *(integer) --* Remixing value. Units are in dB and acceptable values are within
        the range from -60 (mute) and 6 dB.

        - **InputChannel** *(integer) --* The index of the input channel used as a source.

    - **OutputChannel** *(integer) --* The index of the output channel being produced.
    """


_ClientDeleteChannelResponseEncoderSettingsAudioDescriptionsRemixSettingsTypeDef = TypedDict(
    "_ClientDeleteChannelResponseEncoderSettingsAudioDescriptionsRemixSettingsTypeDef",
    {
        "ChannelMappings": List[
            ClientDeleteChannelResponseEncoderSettingsAudioDescriptionsRemixSettingsChannelMappingsTypeDef
        ],
        "ChannelsIn": int,
        "ChannelsOut": int,
    },
    total=False,
)


class ClientDeleteChannelResponseEncoderSettingsAudioDescriptionsRemixSettingsTypeDef(
    _ClientDeleteChannelResponseEncoderSettingsAudioDescriptionsRemixSettingsTypeDef
):
    """
    Type definition for `ClientDeleteChannelResponseEncoderSettingsAudioDescriptions`
    `RemixSettings`

    - **ChannelMappings** *(list) --* Mapping of input channels to output channels, with appropriate
    gain adjustments.

      - *(dict) --* Audio Channel Mapping

        - **InputChannelLevels** *(list) --* Indices and gain values for each input channel that
        should be remixed into this output channel.

          - *(dict) --* Input Channel Level

            - **Gain** *(integer) --* Remixing value. Units are in dB and acceptable values are
            within the range from -60 (mute) and 6 dB.

            - **InputChannel** *(integer) --* The index of the input channel used as a source.

        - **OutputChannel** *(integer) --* The index of the output channel being produced.

    - **ChannelsIn** *(integer) --* Number of input channels to be used.

    - **ChannelsOut** *(integer) --* Number of output channels to be produced. Valid values: 1, 2,
    4, 6, 8
    """


_ClientDeleteChannelResponseEncoderSettingsAudioDescriptionsTypeDef = TypedDict(
    "_ClientDeleteChannelResponseEncoderSettingsAudioDescriptionsTypeDef",
    {
        "AudioNormalizationSettings": ClientDeleteChannelResponseEncoderSettingsAudioDescriptionsAudioNormalizationSettingsTypeDef,
        "AudioSelectorName": str,
        "AudioType": str,
        "AudioTypeControl": str,
        "CodecSettings": ClientDeleteChannelResponseEncoderSettingsAudioDescriptionsCodecSettingsTypeDef,
        "LanguageCode": str,
        "LanguageCodeControl": str,
        "Name": str,
        "RemixSettings": ClientDeleteChannelResponseEncoderSettingsAudioDescriptionsRemixSettingsTypeDef,
        "StreamName": str,
    },
    total=False,
)


class ClientDeleteChannelResponseEncoderSettingsAudioDescriptionsTypeDef(
    _ClientDeleteChannelResponseEncoderSettingsAudioDescriptionsTypeDef
):
    """
    Type definition for `ClientDeleteChannelResponseEncoderSettings` `AudioDescriptions`

    - **AudioNormalizationSettings** *(dict) --* Advanced audio normalization settings.

      - **Algorithm** *(string) --* Audio normalization algorithm to use. itu17701 conforms to the
      CALM Act specification, itu17702 conforms to the EBU R-128 specification.

      - **AlgorithmControl** *(string) --* When set to correctAudio the output audio is corrected
      using the chosen algorithm. If set to measureOnly, the audio will be measured but not
      adjusted.

      - **TargetLkfs** *(float) --* Target LKFS(loudness) to adjust volume to. If no value is
      entered, a default value will be used according to the chosen algorithm. The CALM Act (1770-1)
      recommends a target of -24 LKFS. The EBU R-128 specification (1770-2) recommends a target of
      -23 LKFS.

    - **AudioSelectorName** *(string) --* The name of the AudioSelector used as the source for this
    AudioDescription.

    - **AudioType** *(string) --* Applies only if audioTypeControl is useConfigured. The values for
    audioType are defined in ISO-IEC 13818-1.

    - **AudioTypeControl** *(string) --* Determines how audio type is determined. followInput: If
    the input contains an ISO 639 audioType, then that value is passed through to the output. If the
    input contains no ISO 639 audioType, the value in Audio Type is included in the output.
    useConfigured: The value in Audio Type is included in the output. Note that this field and
    audioType are both ignored if inputType is broadcasterMixedAd.

    - **CodecSettings** *(dict) --* Audio codec settings.

      - **AacSettings** *(dict) --* Aac Settings

        - **Bitrate** *(float) --* Average bitrate in bits/second. Valid values depend on rate
        control mode and profile.

        - **CodingMode** *(string) --* Mono, Stereo, or 5.1 channel layout. Valid values depend on
        rate control mode and profile. The adReceiverMix setting receives a stereo description plus
        control track and emits a mono AAC encode of the description track, with control data
        emitted in the PES header as per ETSI TS 101 154 Annex E.

        - **InputType** *(string) --* Set to "broadcasterMixedAd" when input contains pre-mixed main
        audio + AD (narration) as a stereo pair. The Audio Type field (audioType) will be set to 3,
        which signals to downstream systems that this stream contains "broadcaster mixed AD". Note
        that the input received by the encoder must contain pre-mixed audio; the encoder does not
        perform the mixing. The values in audioTypeControl and audioType (in AudioDescription) are
        ignored when set to broadcasterMixedAd. Leave set to "normal" when input does not contain
        pre-mixed audio + AD.

        - **Profile** *(string) --* AAC Profile.

        - **RateControlMode** *(string) --* Rate Control Mode.

        - **RawFormat** *(string) --* Sets LATM / LOAS AAC output for raw containers.

        - **SampleRate** *(float) --* Sample rate in Hz. Valid values depend on rate control mode
        and profile.

        - **Spec** *(string) --* Use MPEG-2 AAC audio instead of MPEG-4 AAC audio for raw or MPEG-2
        Transport Stream containers.

        - **VbrQuality** *(string) --* VBR Quality Level - Only used if rateControlMode is VBR.

      - **Ac3Settings** *(dict) --* Ac3 Settings

        - **Bitrate** *(float) --* Average bitrate in bits/second. Valid bitrates depend on the
        coding mode.

        - **BitstreamMode** *(string) --* Specifies the bitstream mode (bsmod) for the emitted AC-3
        stream. See ATSC A/52-2012 for background on these values.

        - **CodingMode** *(string) --* Dolby Digital coding mode. Determines number of channels.

        - **Dialnorm** *(integer) --* Sets the dialnorm for the output. If excluded and input audio
        is Dolby Digital, dialnorm will be passed through.

        - **DrcProfile** *(string) --* If set to filmStandard, adds dynamic range compression
        signaling to the output bitstream as defined in the Dolby Digital specification.

        - **LfeFilter** *(string) --* When set to enabled, applies a 120Hz lowpass filter to the LFE
        channel prior to encoding. Only valid in codingMode32Lfe mode.

        - **MetadataControl** *(string) --* When set to "followInput", encoder metadata will be
        sourced from the DD, DD+, or DolbyE decoder that supplied this audio data. If audio was not
        supplied from one of these streams, then the static metadata settings will be used.

      - **Eac3Settings** *(dict) --* Eac3 Settings

        - **AttenuationControl** *(string) --* When set to attenuate3Db, applies a 3 dB attenuation
        to the surround channels. Only used for 3/2 coding mode.

        - **Bitrate** *(float) --* Average bitrate in bits/second. Valid bitrates depend on the
        coding mode.

        - **BitstreamMode** *(string) --* Specifies the bitstream mode (bsmod) for the emitted
        E-AC-3 stream. See ATSC A/52-2012 (Annex E) for background on these values.

        - **CodingMode** *(string) --* Dolby Digital Plus coding mode. Determines number of
        channels.

        - **DcFilter** *(string) --* When set to enabled, activates a DC highpass filter for all
        input channels.

        - **Dialnorm** *(integer) --* Sets the dialnorm for the output. If blank and input audio is
        Dolby Digital Plus, dialnorm will be passed through.

        - **DrcLine** *(string) --* Sets the Dolby dynamic range compression profile.

        - **DrcRf** *(string) --* Sets the profile for heavy Dolby dynamic range compression,
        ensures that the instantaneous signal peaks do not exceed specified levels.

        - **LfeControl** *(string) --* When encoding 3/2 audio, setting to lfe enables the LFE
        channel

        - **LfeFilter** *(string) --* When set to enabled, applies a 120Hz lowpass filter to the LFE
        channel prior to encoding. Only valid with codingMode32 coding mode.

        - **LoRoCenterMixLevel** *(float) --* Left only/Right only center mix level. Only used for
        3/2 coding mode.

        - **LoRoSurroundMixLevel** *(float) --* Left only/Right only surround mix level. Only used
        for 3/2 coding mode.

        - **LtRtCenterMixLevel** *(float) --* Left total/Right total center mix level. Only used for
        3/2 coding mode.

        - **LtRtSurroundMixLevel** *(float) --* Left total/Right total surround mix level. Only used
        for 3/2 coding mode.

        - **MetadataControl** *(string) --* When set to followInput, encoder metadata will be
        sourced from the DD, DD+, or DolbyE decoder that supplied this audio data. If audio was not
        supplied from one of these streams, then the static metadata settings will be used.

        - **PassthroughControl** *(string) --* When set to whenPossible, input DD+ audio will be
        passed through if it is present on the input. This detection is dynamic over the life of the
        transcode. Inputs that alternate between DD+ and non-DD+ content will have a consistent DD+
        output as the system alternates between passthrough and encoding.

        - **PhaseControl** *(string) --* When set to shift90Degrees, applies a 90-degree phase shift
        to the surround channels. Only used for 3/2 coding mode.

        - **StereoDownmix** *(string) --* Stereo downmix preference. Only used for 3/2 coding mode.

        - **SurroundExMode** *(string) --* When encoding 3/2 audio, sets whether an extra center
        back surround channel is matrix encoded into the left and right surround channels.

        - **SurroundMode** *(string) --* When encoding 2/0 audio, sets whether Dolby Surround is
        matrix encoded into the two channels.

      - **Mp2Settings** *(dict) --* Mp2 Settings

        - **Bitrate** *(float) --* Average bitrate in bits/second.

        - **CodingMode** *(string) --* The MPEG2 Audio coding mode. Valid values are codingMode10
        (for mono) or codingMode20 (for stereo).

        - **SampleRate** *(float) --* Sample rate in Hz.

      - **PassThroughSettings** *(dict) --* Pass Through Settings

    - **LanguageCode** *(string) --* Indicates the language of the audio output track. Only used if
    languageControlMode is useConfigured, or there is no ISO 639 language code specified in the
    input.

    - **LanguageCodeControl** *(string) --* Choosing followInput will cause the ISO 639 language
    code of the output to follow the ISO 639 language code of the input. The languageCode will be
    used when useConfigured is set, or when followInput is selected but there is no ISO 639 language
    code specified by the input.

    - **Name** *(string) --* The name of this AudioDescription. Outputs will use this name to
    uniquely identify this AudioDescription. Description names should be unique within this Live
    Event.

    - **RemixSettings** *(dict) --* Settings that control how input audio channels are remixed into
    the output audio channels.

      - **ChannelMappings** *(list) --* Mapping of input channels to output channels, with
      appropriate gain adjustments.

        - *(dict) --* Audio Channel Mapping

          - **InputChannelLevels** *(list) --* Indices and gain values for each input channel that
          should be remixed into this output channel.

            - *(dict) --* Input Channel Level

              - **Gain** *(integer) --* Remixing value. Units are in dB and acceptable values are
              within the range from -60 (mute) and 6 dB.

              - **InputChannel** *(integer) --* The index of the input channel used as a source.

          - **OutputChannel** *(integer) --* The index of the output channel being produced.

      - **ChannelsIn** *(integer) --* Number of input channels to be used.

      - **ChannelsOut** *(integer) --* Number of output channels to be produced. Valid values: 1, 2,
      4, 6, 8

    - **StreamName** *(string) --* Used for MS Smooth and Apple HLS outputs. Indicates the name
    displayed by the player (eg. English, or Director Commentary).
    """


_ClientDeleteChannelResponseEncoderSettingsAvailBlankingAvailBlankingImageTypeDef = TypedDict(
    "_ClientDeleteChannelResponseEncoderSettingsAvailBlankingAvailBlankingImageTypeDef",
    {"PasswordParam": str, "Uri": str, "Username": str},
    total=False,
)


class ClientDeleteChannelResponseEncoderSettingsAvailBlankingAvailBlankingImageTypeDef(
    _ClientDeleteChannelResponseEncoderSettingsAvailBlankingAvailBlankingImageTypeDef
):
    """
    Type definition for `ClientDeleteChannelResponseEncoderSettingsAvailBlanking`
    `AvailBlankingImage`

    - **PasswordParam** *(string) --* key used to extract the password from EC2 Parameter store

    - **Uri** *(string) --* Uniform Resource Identifier - This should be a path to a file accessible
    to the Live system (eg. a http:// URI) depending on the output type. For example, a RTMP
    destination should have a uri simliar to: "rtmp://fmsserver/live".

    - **Username** *(string) --* Documentation update needed
    """


_ClientDeleteChannelResponseEncoderSettingsAvailBlankingTypeDef = TypedDict(
    "_ClientDeleteChannelResponseEncoderSettingsAvailBlankingTypeDef",
    {
        "AvailBlankingImage": ClientDeleteChannelResponseEncoderSettingsAvailBlankingAvailBlankingImageTypeDef,
        "State": str,
    },
    total=False,
)


class ClientDeleteChannelResponseEncoderSettingsAvailBlankingTypeDef(
    _ClientDeleteChannelResponseEncoderSettingsAvailBlankingTypeDef
):
    """
    Type definition for `ClientDeleteChannelResponseEncoderSettings` `AvailBlanking`

    - **AvailBlankingImage** *(dict) --* Blanking image to be used. Leave empty for solid black.
    Only bmp and png images are supported.

      - **PasswordParam** *(string) --* key used to extract the password from EC2 Parameter store

      - **Uri** *(string) --* Uniform Resource Identifier - This should be a path to a file
      accessible to the Live system (eg. a http:// URI) depending on the output type. For example, a
      RTMP destination should have a uri simliar to: "rtmp://fmsserver/live".

      - **Username** *(string) --* Documentation update needed

    - **State** *(string) --* When set to enabled, causes video, audio and captions to be blanked
    when insertion metadata is added.
    """


_ClientDeleteChannelResponseEncoderSettingsAvailConfigurationAvailSettingsScte35SpliceInsertTypeDef = TypedDict(
    "_ClientDeleteChannelResponseEncoderSettingsAvailConfigurationAvailSettingsScte35SpliceInsertTypeDef",
    {"AdAvailOffset": int, "NoRegionalBlackoutFlag": str, "WebDeliveryAllowedFlag": str},
    total=False,
)


class ClientDeleteChannelResponseEncoderSettingsAvailConfigurationAvailSettingsScte35SpliceInsertTypeDef(
    _ClientDeleteChannelResponseEncoderSettingsAvailConfigurationAvailSettingsScte35SpliceInsertTypeDef
):
    """
    Type definition for `ClientDeleteChannelResponseEncoderSettingsAvailConfigurationAvailSettings`
    `Scte35SpliceInsert`

    - **AdAvailOffset** *(integer) --* When specified, this offset (in milliseconds) is added to the
    input Ad Avail PTS time. This only applies to embedded SCTE 104/35 messages and does not apply
    to OOB messages.

    - **NoRegionalBlackoutFlag** *(string) --* When set to ignore, Segment Descriptors with
    noRegionalBlackoutFlag set to 0 will no longer trigger blackouts or Ad Avail slates

    - **WebDeliveryAllowedFlag** *(string) --* When set to ignore, Segment Descriptors with
    webDeliveryAllowedFlag set to 0 will no longer trigger blackouts or Ad Avail slates
    """


_ClientDeleteChannelResponseEncoderSettingsAvailConfigurationAvailSettingsScte35TimeSignalAposTypeDef = TypedDict(
    "_ClientDeleteChannelResponseEncoderSettingsAvailConfigurationAvailSettingsScte35TimeSignalAposTypeDef",
    {"AdAvailOffset": int, "NoRegionalBlackoutFlag": str, "WebDeliveryAllowedFlag": str},
    total=False,
)


class ClientDeleteChannelResponseEncoderSettingsAvailConfigurationAvailSettingsScte35TimeSignalAposTypeDef(
    _ClientDeleteChannelResponseEncoderSettingsAvailConfigurationAvailSettingsScte35TimeSignalAposTypeDef
):
    """
    Type definition for `ClientDeleteChannelResponseEncoderSettingsAvailConfigurationAvailSettings`
    `Scte35TimeSignalApos`

    - **AdAvailOffset** *(integer) --* When specified, this offset (in milliseconds) is added to the
    input Ad Avail PTS time. This only applies to embedded SCTE 104/35 messages and does not apply
    to OOB messages.

    - **NoRegionalBlackoutFlag** *(string) --* When set to ignore, Segment Descriptors with
    noRegionalBlackoutFlag set to 0 will no longer trigger blackouts or Ad Avail slates

    - **WebDeliveryAllowedFlag** *(string) --* When set to ignore, Segment Descriptors with
    webDeliveryAllowedFlag set to 0 will no longer trigger blackouts or Ad Avail slates
    """


_ClientDeleteChannelResponseEncoderSettingsAvailConfigurationAvailSettingsTypeDef = TypedDict(
    "_ClientDeleteChannelResponseEncoderSettingsAvailConfigurationAvailSettingsTypeDef",
    {
        "Scte35SpliceInsert": ClientDeleteChannelResponseEncoderSettingsAvailConfigurationAvailSettingsScte35SpliceInsertTypeDef,
        "Scte35TimeSignalApos": ClientDeleteChannelResponseEncoderSettingsAvailConfigurationAvailSettingsScte35TimeSignalAposTypeDef,
    },
    total=False,
)


class ClientDeleteChannelResponseEncoderSettingsAvailConfigurationAvailSettingsTypeDef(
    _ClientDeleteChannelResponseEncoderSettingsAvailConfigurationAvailSettingsTypeDef
):
    """
    Type definition for `ClientDeleteChannelResponseEncoderSettingsAvailConfiguration`
    `AvailSettings`

    - **Scte35SpliceInsert** *(dict) --* Scte35 Splice Insert

      - **AdAvailOffset** *(integer) --* When specified, this offset (in milliseconds) is added to
      the input Ad Avail PTS time. This only applies to embedded SCTE 104/35 messages and does not
      apply to OOB messages.

      - **NoRegionalBlackoutFlag** *(string) --* When set to ignore, Segment Descriptors with
      noRegionalBlackoutFlag set to 0 will no longer trigger blackouts or Ad Avail slates

      - **WebDeliveryAllowedFlag** *(string) --* When set to ignore, Segment Descriptors with
      webDeliveryAllowedFlag set to 0 will no longer trigger blackouts or Ad Avail slates

    - **Scte35TimeSignalApos** *(dict) --* Scte35 Time Signal Apos

      - **AdAvailOffset** *(integer) --* When specified, this offset (in milliseconds) is added to
      the input Ad Avail PTS time. This only applies to embedded SCTE 104/35 messages and does not
      apply to OOB messages.

      - **NoRegionalBlackoutFlag** *(string) --* When set to ignore, Segment Descriptors with
      noRegionalBlackoutFlag set to 0 will no longer trigger blackouts or Ad Avail slates

      - **WebDeliveryAllowedFlag** *(string) --* When set to ignore, Segment Descriptors with
      webDeliveryAllowedFlag set to 0 will no longer trigger blackouts or Ad Avail slates
    """


_ClientDeleteChannelResponseEncoderSettingsAvailConfigurationTypeDef = TypedDict(
    "_ClientDeleteChannelResponseEncoderSettingsAvailConfigurationTypeDef",
    {
        "AvailSettings": ClientDeleteChannelResponseEncoderSettingsAvailConfigurationAvailSettingsTypeDef
    },
    total=False,
)


class ClientDeleteChannelResponseEncoderSettingsAvailConfigurationTypeDef(
    _ClientDeleteChannelResponseEncoderSettingsAvailConfigurationTypeDef
):
    """
    Type definition for `ClientDeleteChannelResponseEncoderSettings` `AvailConfiguration`

    - **AvailSettings** *(dict) --* Ad avail settings.

      - **Scte35SpliceInsert** *(dict) --* Scte35 Splice Insert

        - **AdAvailOffset** *(integer) --* When specified, this offset (in milliseconds) is added to
        the input Ad Avail PTS time. This only applies to embedded SCTE 104/35 messages and does not
        apply to OOB messages.

        - **NoRegionalBlackoutFlag** *(string) --* When set to ignore, Segment Descriptors with
        noRegionalBlackoutFlag set to 0 will no longer trigger blackouts or Ad Avail slates

        - **WebDeliveryAllowedFlag** *(string) --* When set to ignore, Segment Descriptors with
        webDeliveryAllowedFlag set to 0 will no longer trigger blackouts or Ad Avail slates

      - **Scte35TimeSignalApos** *(dict) --* Scte35 Time Signal Apos

        - **AdAvailOffset** *(integer) --* When specified, this offset (in milliseconds) is added to
        the input Ad Avail PTS time. This only applies to embedded SCTE 104/35 messages and does not
        apply to OOB messages.

        - **NoRegionalBlackoutFlag** *(string) --* When set to ignore, Segment Descriptors with
        noRegionalBlackoutFlag set to 0 will no longer trigger blackouts or Ad Avail slates

        - **WebDeliveryAllowedFlag** *(string) --* When set to ignore, Segment Descriptors with
        webDeliveryAllowedFlag set to 0 will no longer trigger blackouts or Ad Avail slates
    """


_ClientDeleteChannelResponseEncoderSettingsBlackoutSlateBlackoutSlateImageTypeDef = TypedDict(
    "_ClientDeleteChannelResponseEncoderSettingsBlackoutSlateBlackoutSlateImageTypeDef",
    {"PasswordParam": str, "Uri": str, "Username": str},
    total=False,
)


class ClientDeleteChannelResponseEncoderSettingsBlackoutSlateBlackoutSlateImageTypeDef(
    _ClientDeleteChannelResponseEncoderSettingsBlackoutSlateBlackoutSlateImageTypeDef
):
    """
    Type definition for `ClientDeleteChannelResponseEncoderSettingsBlackoutSlate`
    `BlackoutSlateImage`

    - **PasswordParam** *(string) --* key used to extract the password from EC2 Parameter store

    - **Uri** *(string) --* Uniform Resource Identifier - This should be a path to a file accessible
    to the Live system (eg. a http:// URI) depending on the output type. For example, a RTMP
    destination should have a uri simliar to: "rtmp://fmsserver/live".

    - **Username** *(string) --* Documentation update needed
    """


_ClientDeleteChannelResponseEncoderSettingsBlackoutSlateNetworkEndBlackoutImageTypeDef = TypedDict(
    "_ClientDeleteChannelResponseEncoderSettingsBlackoutSlateNetworkEndBlackoutImageTypeDef",
    {"PasswordParam": str, "Uri": str, "Username": str},
    total=False,
)


class ClientDeleteChannelResponseEncoderSettingsBlackoutSlateNetworkEndBlackoutImageTypeDef(
    _ClientDeleteChannelResponseEncoderSettingsBlackoutSlateNetworkEndBlackoutImageTypeDef
):
    """
    Type definition for `ClientDeleteChannelResponseEncoderSettingsBlackoutSlate`
    `NetworkEndBlackoutImage`

    - **PasswordParam** *(string) --* key used to extract the password from EC2 Parameter store

    - **Uri** *(string) --* Uniform Resource Identifier - This should be a path to a file accessible
    to the Live system (eg. a http:// URI) depending on the output type. For example, a RTMP
    destination should have a uri simliar to: "rtmp://fmsserver/live".

    - **Username** *(string) --* Documentation update needed
    """


_ClientDeleteChannelResponseEncoderSettingsBlackoutSlateTypeDef = TypedDict(
    "_ClientDeleteChannelResponseEncoderSettingsBlackoutSlateTypeDef",
    {
        "BlackoutSlateImage": ClientDeleteChannelResponseEncoderSettingsBlackoutSlateBlackoutSlateImageTypeDef,
        "NetworkEndBlackout": str,
        "NetworkEndBlackoutImage": ClientDeleteChannelResponseEncoderSettingsBlackoutSlateNetworkEndBlackoutImageTypeDef,
        "NetworkId": str,
        "State": str,
    },
    total=False,
)


class ClientDeleteChannelResponseEncoderSettingsBlackoutSlateTypeDef(
    _ClientDeleteChannelResponseEncoderSettingsBlackoutSlateTypeDef
):
    """
    Type definition for `ClientDeleteChannelResponseEncoderSettings` `BlackoutSlate`

    - **BlackoutSlateImage** *(dict) --* Blackout slate image to be used. Leave empty for solid
    black. Only bmp and png images are supported.

      - **PasswordParam** *(string) --* key used to extract the password from EC2 Parameter store

      - **Uri** *(string) --* Uniform Resource Identifier - This should be a path to a file
      accessible to the Live system (eg. a http:// URI) depending on the output type. For example, a
      RTMP destination should have a uri simliar to: "rtmp://fmsserver/live".

      - **Username** *(string) --* Documentation update needed

    - **NetworkEndBlackout** *(string) --* Setting to enabled causes the encoder to blackout the
    video, audio, and captions, and raise the "Network Blackout Image" slate when an SCTE104/35
    Network End Segmentation Descriptor is encountered. The blackout will be lifted when the Network
    Start Segmentation Descriptor is encountered. The Network End and Network Start descriptors must
    contain a network ID that matches the value entered in "Network ID".

    - **NetworkEndBlackoutImage** *(dict) --* Path to local file to use as Network End Blackout
    image. Image will be scaled to fill the entire output raster.

      - **PasswordParam** *(string) --* key used to extract the password from EC2 Parameter store

      - **Uri** *(string) --* Uniform Resource Identifier - This should be a path to a file
      accessible to the Live system (eg. a http:// URI) depending on the output type. For example, a
      RTMP destination should have a uri simliar to: "rtmp://fmsserver/live".

      - **Username** *(string) --* Documentation update needed

    - **NetworkId** *(string) --* Provides Network ID that matches EIDR ID format (e.g.,
    "10.XXXX/XXXX-XXXX-XXXX-XXXX-XXXX-C").

    - **State** *(string) --* When set to enabled, causes video, audio and captions to be blanked
    when indicated by program metadata.
    """


_ClientDeleteChannelResponseEncoderSettingsCaptionDescriptionsDestinationSettingsBurnInDestinationSettingsFontTypeDef = TypedDict(
    "_ClientDeleteChannelResponseEncoderSettingsCaptionDescriptionsDestinationSettingsBurnInDestinationSettingsFontTypeDef",
    {"PasswordParam": str, "Uri": str, "Username": str},
    total=False,
)


class ClientDeleteChannelResponseEncoderSettingsCaptionDescriptionsDestinationSettingsBurnInDestinationSettingsFontTypeDef(
    _ClientDeleteChannelResponseEncoderSettingsCaptionDescriptionsDestinationSettingsBurnInDestinationSettingsFontTypeDef
):
    """
    Type definition for
    `ClientDeleteChannelResponseEncoderSettingsCaptionDescriptionsDestinationSettingsBurnInDestinationSettings`
    `Font`

    - **PasswordParam** *(string) --* key used to extract the password from EC2 Parameter store

    - **Uri** *(string) --* Uniform Resource Identifier - This should be a path to a file accessible
    to the Live system (eg. a http:// URI) depending on the output type. For example, a RTMP
    destination should have a uri simliar to: "rtmp://fmsserver/live".

    - **Username** *(string) --* Documentation update needed
    """


_ClientDeleteChannelResponseEncoderSettingsCaptionDescriptionsDestinationSettingsBurnInDestinationSettingsTypeDef = TypedDict(
    "_ClientDeleteChannelResponseEncoderSettingsCaptionDescriptionsDestinationSettingsBurnInDestinationSettingsTypeDef",
    {
        "Alignment": str,
        "BackgroundColor": str,
        "BackgroundOpacity": int,
        "Font": ClientDeleteChannelResponseEncoderSettingsCaptionDescriptionsDestinationSettingsBurnInDestinationSettingsFontTypeDef,
        "FontColor": str,
        "FontOpacity": int,
        "FontResolution": int,
        "FontSize": str,
        "OutlineColor": str,
        "OutlineSize": int,
        "ShadowColor": str,
        "ShadowOpacity": int,
        "ShadowXOffset": int,
        "ShadowYOffset": int,
        "TeletextGridControl": str,
        "XPosition": int,
        "YPosition": int,
    },
    total=False,
)


class ClientDeleteChannelResponseEncoderSettingsCaptionDescriptionsDestinationSettingsBurnInDestinationSettingsTypeDef(
    _ClientDeleteChannelResponseEncoderSettingsCaptionDescriptionsDestinationSettingsBurnInDestinationSettingsTypeDef
):
    """
    Type definition for
    `ClientDeleteChannelResponseEncoderSettingsCaptionDescriptionsDestinationSettings`
    `BurnInDestinationSettings`

    - **Alignment** *(string) --* If no explicit xPosition or yPosition is provided, setting
    alignment to centered will place the captions at the bottom center of the output. Similarly,
    setting a left alignment will align captions to the bottom left of the output. If x and y
    positions are given in conjunction with the alignment parameter, the font will be justified
    (either left or centered) relative to those coordinates. Selecting "smart" justification will
    left-justify live subtitles and center-justify pre-recorded subtitles. All burn-in and DVB-Sub
    font settings must match.

    - **BackgroundColor** *(string) --* Specifies the color of the rectangle behind the captions.
    All burn-in and DVB-Sub font settings must match.

    - **BackgroundOpacity** *(integer) --* Specifies the opacity of the background rectangle. 255 is
    opaque; 0 is transparent. Leaving this parameter out is equivalent to setting it to 0
    (transparent). All burn-in and DVB-Sub font settings must match.

    - **Font** *(dict) --* External font file used for caption burn-in. File extension must be 'ttf'
    or 'tte'. Although the user can select output fonts for many different types of input captions,
    embedded, STL and teletext sources use a strict grid system. Using external fonts with these
    caption sources could cause unexpected display of proportional fonts. All burn-in and DVB-Sub
    font settings must match.

      - **PasswordParam** *(string) --* key used to extract the password from EC2 Parameter store

      - **Uri** *(string) --* Uniform Resource Identifier - This should be a path to a file
      accessible to the Live system (eg. a http:// URI) depending on the output type. For example, a
      RTMP destination should have a uri simliar to: "rtmp://fmsserver/live".

      - **Username** *(string) --* Documentation update needed

    - **FontColor** *(string) --* Specifies the color of the burned-in captions. This option is not
    valid for source captions that are STL, 608/embedded or teletext. These source settings are
    already pre-defined by the caption stream. All burn-in and DVB-Sub font settings must match.

    - **FontOpacity** *(integer) --* Specifies the opacity of the burned-in captions. 255 is opaque;
    0 is transparent. All burn-in and DVB-Sub font settings must match.

    - **FontResolution** *(integer) --* Font resolution in DPI (dots per inch); default is 96 dpi.
    All burn-in and DVB-Sub font settings must match.

    - **FontSize** *(string) --* When set to 'auto' fontSize will scale depending on the size of the
    output. Giving a positive integer will specify the exact font size in points. All burn-in and
    DVB-Sub font settings must match.

    - **OutlineColor** *(string) --* Specifies font outline color. This option is not valid for
    source captions that are either 608/embedded or teletext. These source settings are already
    pre-defined by the caption stream. All burn-in and DVB-Sub font settings must match.

    - **OutlineSize** *(integer) --* Specifies font outline size in pixels. This option is not valid
    for source captions that are either 608/embedded or teletext. These source settings are already
    pre-defined by the caption stream. All burn-in and DVB-Sub font settings must match.

    - **ShadowColor** *(string) --* Specifies the color of the shadow cast by the captions. All
    burn-in and DVB-Sub font settings must match.

    - **ShadowOpacity** *(integer) --* Specifies the opacity of the shadow. 255 is opaque; 0 is
    transparent. Leaving this parameter out is equivalent to setting it to 0 (transparent). All
    burn-in and DVB-Sub font settings must match.

    - **ShadowXOffset** *(integer) --* Specifies the horizontal offset of the shadow relative to the
    captions in pixels. A value of -2 would result in a shadow offset 2 pixels to the left. All
    burn-in and DVB-Sub font settings must match.

    - **ShadowYOffset** *(integer) --* Specifies the vertical offset of the shadow relative to the
    captions in pixels. A value of -2 would result in a shadow offset 2 pixels above the text. All
    burn-in and DVB-Sub font settings must match.

    - **TeletextGridControl** *(string) --* Controls whether a fixed grid size will be used to
    generate the output subtitles bitmap. Only applicable for Teletext inputs and DVB-Sub/Burn-in
    outputs.

    - **XPosition** *(integer) --* Specifies the horizontal position of the caption relative to the
    left side of the output in pixels. A value of 10 would result in the captions starting 10 pixels
    from the left of the output. If no explicit xPosition is provided, the horizontal caption
    position will be determined by the alignment parameter. All burn-in and DVB-Sub font settings
    must match.

    - **YPosition** *(integer) --* Specifies the vertical position of the caption relative to the
    top of the output in pixels. A value of 10 would result in the captions starting 10 pixels from
    the top of the output. If no explicit yPosition is provided, the caption will be positioned
    towards the bottom of the output. All burn-in and DVB-Sub font settings must match.
    """


_ClientDeleteChannelResponseEncoderSettingsCaptionDescriptionsDestinationSettingsDvbSubDestinationSettingsFontTypeDef = TypedDict(
    "_ClientDeleteChannelResponseEncoderSettingsCaptionDescriptionsDestinationSettingsDvbSubDestinationSettingsFontTypeDef",
    {"PasswordParam": str, "Uri": str, "Username": str},
    total=False,
)


class ClientDeleteChannelResponseEncoderSettingsCaptionDescriptionsDestinationSettingsDvbSubDestinationSettingsFontTypeDef(
    _ClientDeleteChannelResponseEncoderSettingsCaptionDescriptionsDestinationSettingsDvbSubDestinationSettingsFontTypeDef
):
    """
    Type definition for
    `ClientDeleteChannelResponseEncoderSettingsCaptionDescriptionsDestinationSettingsDvbSubDestinationSettings`
    `Font`

    - **PasswordParam** *(string) --* key used to extract the password from EC2 Parameter store

    - **Uri** *(string) --* Uniform Resource Identifier - This should be a path to a file accessible
    to the Live system (eg. a http:// URI) depending on the output type. For example, a RTMP
    destination should have a uri simliar to: "rtmp://fmsserver/live".

    - **Username** *(string) --* Documentation update needed
    """


_ClientDeleteChannelResponseEncoderSettingsCaptionDescriptionsDestinationSettingsDvbSubDestinationSettingsTypeDef = TypedDict(
    "_ClientDeleteChannelResponseEncoderSettingsCaptionDescriptionsDestinationSettingsDvbSubDestinationSettingsTypeDef",
    {
        "Alignment": str,
        "BackgroundColor": str,
        "BackgroundOpacity": int,
        "Font": ClientDeleteChannelResponseEncoderSettingsCaptionDescriptionsDestinationSettingsDvbSubDestinationSettingsFontTypeDef,
        "FontColor": str,
        "FontOpacity": int,
        "FontResolution": int,
        "FontSize": str,
        "OutlineColor": str,
        "OutlineSize": int,
        "ShadowColor": str,
        "ShadowOpacity": int,
        "ShadowXOffset": int,
        "ShadowYOffset": int,
        "TeletextGridControl": str,
        "XPosition": int,
        "YPosition": int,
    },
    total=False,
)


class ClientDeleteChannelResponseEncoderSettingsCaptionDescriptionsDestinationSettingsDvbSubDestinationSettingsTypeDef(
    _ClientDeleteChannelResponseEncoderSettingsCaptionDescriptionsDestinationSettingsDvbSubDestinationSettingsTypeDef
):
    """
    Type definition for
    `ClientDeleteChannelResponseEncoderSettingsCaptionDescriptionsDestinationSettings`
    `DvbSubDestinationSettings`

    - **Alignment** *(string) --* If no explicit xPosition or yPosition is provided, setting
    alignment to centered will place the captions at the bottom center of the output. Similarly,
    setting a left alignment will align captions to the bottom left of the output. If x and y
    positions are given in conjunction with the alignment parameter, the font will be justified
    (either left or centered) relative to those coordinates. Selecting "smart" justification will
    left-justify live subtitles and center-justify pre-recorded subtitles. This option is not valid
    for source captions that are STL or 608/embedded. These source settings are already pre-defined
    by the caption stream. All burn-in and DVB-Sub font settings must match.

    - **BackgroundColor** *(string) --* Specifies the color of the rectangle behind the captions.
    All burn-in and DVB-Sub font settings must match.

    - **BackgroundOpacity** *(integer) --* Specifies the opacity of the background rectangle. 255 is
    opaque; 0 is transparent. Leaving this parameter blank is equivalent to setting it to 0
    (transparent). All burn-in and DVB-Sub font settings must match.

    - **Font** *(dict) --* External font file used for caption burn-in. File extension must be 'ttf'
    or 'tte'. Although the user can select output fonts for many different types of input captions,
    embedded, STL and teletext sources use a strict grid system. Using external fonts with these
    caption sources could cause unexpected display of proportional fonts. All burn-in and DVB-Sub
    font settings must match.

      - **PasswordParam** *(string) --* key used to extract the password from EC2 Parameter store

      - **Uri** *(string) --* Uniform Resource Identifier - This should be a path to a file
      accessible to the Live system (eg. a http:// URI) depending on the output type. For example, a
      RTMP destination should have a uri simliar to: "rtmp://fmsserver/live".

      - **Username** *(string) --* Documentation update needed

    - **FontColor** *(string) --* Specifies the color of the burned-in captions. This option is not
    valid for source captions that are STL, 608/embedded or teletext. These source settings are
    already pre-defined by the caption stream. All burn-in and DVB-Sub font settings must match.

    - **FontOpacity** *(integer) --* Specifies the opacity of the burned-in captions. 255 is opaque;
    0 is transparent. All burn-in and DVB-Sub font settings must match.

    - **FontResolution** *(integer) --* Font resolution in DPI (dots per inch); default is 96 dpi.
    All burn-in and DVB-Sub font settings must match.

    - **FontSize** *(string) --* When set to auto fontSize will scale depending on the size of the
    output. Giving a positive integer will specify the exact font size in points. All burn-in and
    DVB-Sub font settings must match.

    - **OutlineColor** *(string) --* Specifies font outline color. This option is not valid for
    source captions that are either 608/embedded or teletext. These source settings are already
    pre-defined by the caption stream. All burn-in and DVB-Sub font settings must match.

    - **OutlineSize** *(integer) --* Specifies font outline size in pixels. This option is not valid
    for source captions that are either 608/embedded or teletext. These source settings are already
    pre-defined by the caption stream. All burn-in and DVB-Sub font settings must match.

    - **ShadowColor** *(string) --* Specifies the color of the shadow cast by the captions. All
    burn-in and DVB-Sub font settings must match.

    - **ShadowOpacity** *(integer) --* Specifies the opacity of the shadow. 255 is opaque; 0 is
    transparent. Leaving this parameter blank is equivalent to setting it to 0 (transparent). All
    burn-in and DVB-Sub font settings must match.

    - **ShadowXOffset** *(integer) --* Specifies the horizontal offset of the shadow relative to the
    captions in pixels. A value of -2 would result in a shadow offset 2 pixels to the left. All
    burn-in and DVB-Sub font settings must match.

    - **ShadowYOffset** *(integer) --* Specifies the vertical offset of the shadow relative to the
    captions in pixels. A value of -2 would result in a shadow offset 2 pixels above the text. All
    burn-in and DVB-Sub font settings must match.

    - **TeletextGridControl** *(string) --* Controls whether a fixed grid size will be used to
    generate the output subtitles bitmap. Only applicable for Teletext inputs and DVB-Sub/Burn-in
    outputs.

    - **XPosition** *(integer) --* Specifies the horizontal position of the caption relative to the
    left side of the output in pixels. A value of 10 would result in the captions starting 10 pixels
    from the left of the output. If no explicit xPosition is provided, the horizontal caption
    position will be determined by the alignment parameter. This option is not valid for source
    captions that are STL, 608/embedded or teletext. These source settings are already pre-defined
    by the caption stream. All burn-in and DVB-Sub font settings must match.

    - **YPosition** *(integer) --* Specifies the vertical position of the caption relative to the
    top of the output in pixels. A value of 10 would result in the captions starting 10 pixels from
    the top of the output. If no explicit yPosition is provided, the caption will be positioned
    towards the bottom of the output. This option is not valid for source captions that are STL,
    608/embedded or teletext. These source settings are already pre-defined by the caption stream.
    All burn-in and DVB-Sub font settings must match.
    """


_ClientDeleteChannelResponseEncoderSettingsCaptionDescriptionsDestinationSettingsTtmlDestinationSettingsTypeDef = TypedDict(
    "_ClientDeleteChannelResponseEncoderSettingsCaptionDescriptionsDestinationSettingsTtmlDestinationSettingsTypeDef",
    {"StyleControl": str},
    total=False,
)


class ClientDeleteChannelResponseEncoderSettingsCaptionDescriptionsDestinationSettingsTtmlDestinationSettingsTypeDef(
    _ClientDeleteChannelResponseEncoderSettingsCaptionDescriptionsDestinationSettingsTtmlDestinationSettingsTypeDef
):
    """
    Type definition for
    `ClientDeleteChannelResponseEncoderSettingsCaptionDescriptionsDestinationSettings`
    `TtmlDestinationSettings`

    - **StyleControl** *(string) --* When set to passthrough, passes through style and position
    information from a TTML-like input source (TTML, SMPTE-TT, CFF-TT) to the CFF-TT output or TTML
    output.
    """


_ClientDeleteChannelResponseEncoderSettingsCaptionDescriptionsDestinationSettingsTypeDef = TypedDict(
    "_ClientDeleteChannelResponseEncoderSettingsCaptionDescriptionsDestinationSettingsTypeDef",
    {
        "AribDestinationSettings": Dict,
        "BurnInDestinationSettings": ClientDeleteChannelResponseEncoderSettingsCaptionDescriptionsDestinationSettingsBurnInDestinationSettingsTypeDef,
        "DvbSubDestinationSettings": ClientDeleteChannelResponseEncoderSettingsCaptionDescriptionsDestinationSettingsDvbSubDestinationSettingsTypeDef,
        "EmbeddedDestinationSettings": Dict,
        "EmbeddedPlusScte20DestinationSettings": Dict,
        "RtmpCaptionInfoDestinationSettings": Dict,
        "Scte20PlusEmbeddedDestinationSettings": Dict,
        "Scte27DestinationSettings": Dict,
        "SmpteTtDestinationSettings": Dict,
        "TeletextDestinationSettings": Dict,
        "TtmlDestinationSettings": ClientDeleteChannelResponseEncoderSettingsCaptionDescriptionsDestinationSettingsTtmlDestinationSettingsTypeDef,
        "WebvttDestinationSettings": Dict[str, Any],
    },
    total=False,
)


class ClientDeleteChannelResponseEncoderSettingsCaptionDescriptionsDestinationSettingsTypeDef(
    _ClientDeleteChannelResponseEncoderSettingsCaptionDescriptionsDestinationSettingsTypeDef
):
    """
    Type definition for `ClientDeleteChannelResponseEncoderSettingsCaptionDescriptions`
    `DestinationSettings`

    - **AribDestinationSettings** *(dict) --* Arib Destination Settings

    - **BurnInDestinationSettings** *(dict) --* Burn In Destination Settings

      - **Alignment** *(string) --* If no explicit xPosition or yPosition is provided, setting
      alignment to centered will place the captions at the bottom center of the output. Similarly,
      setting a left alignment will align captions to the bottom left of the output. If x and y
      positions are given in conjunction with the alignment parameter, the font will be justified
      (either left or centered) relative to those coordinates. Selecting "smart" justification will
      left-justify live subtitles and center-justify pre-recorded subtitles. All burn-in and DVB-Sub
      font settings must match.

      - **BackgroundColor** *(string) --* Specifies the color of the rectangle behind the captions.
      All burn-in and DVB-Sub font settings must match.

      - **BackgroundOpacity** *(integer) --* Specifies the opacity of the background rectangle. 255
      is opaque; 0 is transparent. Leaving this parameter out is equivalent to setting it to 0
      (transparent). All burn-in and DVB-Sub font settings must match.

      - **Font** *(dict) --* External font file used for caption burn-in. File extension must be
      'ttf' or 'tte'. Although the user can select output fonts for many different types of input
      captions, embedded, STL and teletext sources use a strict grid system. Using external fonts
      with these caption sources could cause unexpected display of proportional fonts. All burn-in
      and DVB-Sub font settings must match.

        - **PasswordParam** *(string) --* key used to extract the password from EC2 Parameter store

        - **Uri** *(string) --* Uniform Resource Identifier - This should be a path to a file
        accessible to the Live system (eg. a http:// URI) depending on the output type. For example,
        a RTMP destination should have a uri simliar to: "rtmp://fmsserver/live".

        - **Username** *(string) --* Documentation update needed

      - **FontColor** *(string) --* Specifies the color of the burned-in captions. This option is
      not valid for source captions that are STL, 608/embedded or teletext. These source settings
      are already pre-defined by the caption stream. All burn-in and DVB-Sub font settings must
      match.

      - **FontOpacity** *(integer) --* Specifies the opacity of the burned-in captions. 255 is
      opaque; 0 is transparent. All burn-in and DVB-Sub font settings must match.

      - **FontResolution** *(integer) --* Font resolution in DPI (dots per inch); default is 96 dpi.
      All burn-in and DVB-Sub font settings must match.

      - **FontSize** *(string) --* When set to 'auto' fontSize will scale depending on the size of
      the output. Giving a positive integer will specify the exact font size in points. All burn-in
      and DVB-Sub font settings must match.

      - **OutlineColor** *(string) --* Specifies font outline color. This option is not valid for
      source captions that are either 608/embedded or teletext. These source settings are already
      pre-defined by the caption stream. All burn-in and DVB-Sub font settings must match.

      - **OutlineSize** *(integer) --* Specifies font outline size in pixels. This option is not
      valid for source captions that are either 608/embedded or teletext. These source settings are
      already pre-defined by the caption stream. All burn-in and DVB-Sub font settings must match.

      - **ShadowColor** *(string) --* Specifies the color of the shadow cast by the captions. All
      burn-in and DVB-Sub font settings must match.

      - **ShadowOpacity** *(integer) --* Specifies the opacity of the shadow. 255 is opaque; 0 is
      transparent. Leaving this parameter out is equivalent to setting it to 0 (transparent). All
      burn-in and DVB-Sub font settings must match.

      - **ShadowXOffset** *(integer) --* Specifies the horizontal offset of the shadow relative to
      the captions in pixels. A value of -2 would result in a shadow offset 2 pixels to the left.
      All burn-in and DVB-Sub font settings must match.

      - **ShadowYOffset** *(integer) --* Specifies the vertical offset of the shadow relative to the
      captions in pixels. A value of -2 would result in a shadow offset 2 pixels above the text. All
      burn-in and DVB-Sub font settings must match.

      - **TeletextGridControl** *(string) --* Controls whether a fixed grid size will be used to
      generate the output subtitles bitmap. Only applicable for Teletext inputs and DVB-Sub/Burn-in
      outputs.

      - **XPosition** *(integer) --* Specifies the horizontal position of the caption relative to
      the left side of the output in pixels. A value of 10 would result in the captions starting 10
      pixels from the left of the output. If no explicit xPosition is provided, the horizontal
      caption position will be determined by the alignment parameter. All burn-in and DVB-Sub font
      settings must match.

      - **YPosition** *(integer) --* Specifies the vertical position of the caption relative to the
      top of the output in pixels. A value of 10 would result in the captions starting 10 pixels
      from the top of the output. If no explicit yPosition is provided, the caption will be
      positioned towards the bottom of the output. All burn-in and DVB-Sub font settings must match.

    - **DvbSubDestinationSettings** *(dict) --* Dvb Sub Destination Settings

      - **Alignment** *(string) --* If no explicit xPosition or yPosition is provided, setting
      alignment to centered will place the captions at the bottom center of the output. Similarly,
      setting a left alignment will align captions to the bottom left of the output. If x and y
      positions are given in conjunction with the alignment parameter, the font will be justified
      (either left or centered) relative to those coordinates. Selecting "smart" justification will
      left-justify live subtitles and center-justify pre-recorded subtitles. This option is not
      valid for source captions that are STL or 608/embedded. These source settings are already
      pre-defined by the caption stream. All burn-in and DVB-Sub font settings must match.

      - **BackgroundColor** *(string) --* Specifies the color of the rectangle behind the captions.
      All burn-in and DVB-Sub font settings must match.

      - **BackgroundOpacity** *(integer) --* Specifies the opacity of the background rectangle. 255
      is opaque; 0 is transparent. Leaving this parameter blank is equivalent to setting it to 0
      (transparent). All burn-in and DVB-Sub font settings must match.

      - **Font** *(dict) --* External font file used for caption burn-in. File extension must be
      'ttf' or 'tte'. Although the user can select output fonts for many different types of input
      captions, embedded, STL and teletext sources use a strict grid system. Using external fonts
      with these caption sources could cause unexpected display of proportional fonts. All burn-in
      and DVB-Sub font settings must match.

        - **PasswordParam** *(string) --* key used to extract the password from EC2 Parameter store

        - **Uri** *(string) --* Uniform Resource Identifier - This should be a path to a file
        accessible to the Live system (eg. a http:// URI) depending on the output type. For example,
        a RTMP destination should have a uri simliar to: "rtmp://fmsserver/live".

        - **Username** *(string) --* Documentation update needed

      - **FontColor** *(string) --* Specifies the color of the burned-in captions. This option is
      not valid for source captions that are STL, 608/embedded or teletext. These source settings
      are already pre-defined by the caption stream. All burn-in and DVB-Sub font settings must
      match.

      - **FontOpacity** *(integer) --* Specifies the opacity of the burned-in captions. 255 is
      opaque; 0 is transparent. All burn-in and DVB-Sub font settings must match.

      - **FontResolution** *(integer) --* Font resolution in DPI (dots per inch); default is 96 dpi.
      All burn-in and DVB-Sub font settings must match.

      - **FontSize** *(string) --* When set to auto fontSize will scale depending on the size of the
      output. Giving a positive integer will specify the exact font size in points. All burn-in and
      DVB-Sub font settings must match.

      - **OutlineColor** *(string) --* Specifies font outline color. This option is not valid for
      source captions that are either 608/embedded or teletext. These source settings are already
      pre-defined by the caption stream. All burn-in and DVB-Sub font settings must match.

      - **OutlineSize** *(integer) --* Specifies font outline size in pixels. This option is not
      valid for source captions that are either 608/embedded or teletext. These source settings are
      already pre-defined by the caption stream. All burn-in and DVB-Sub font settings must match.

      - **ShadowColor** *(string) --* Specifies the color of the shadow cast by the captions. All
      burn-in and DVB-Sub font settings must match.

      - **ShadowOpacity** *(integer) --* Specifies the opacity of the shadow. 255 is opaque; 0 is
      transparent. Leaving this parameter blank is equivalent to setting it to 0 (transparent). All
      burn-in and DVB-Sub font settings must match.

      - **ShadowXOffset** *(integer) --* Specifies the horizontal offset of the shadow relative to
      the captions in pixels. A value of -2 would result in a shadow offset 2 pixels to the left.
      All burn-in and DVB-Sub font settings must match.

      - **ShadowYOffset** *(integer) --* Specifies the vertical offset of the shadow relative to the
      captions in pixels. A value of -2 would result in a shadow offset 2 pixels above the text. All
      burn-in and DVB-Sub font settings must match.

      - **TeletextGridControl** *(string) --* Controls whether a fixed grid size will be used to
      generate the output subtitles bitmap. Only applicable for Teletext inputs and DVB-Sub/Burn-in
      outputs.

      - **XPosition** *(integer) --* Specifies the horizontal position of the caption relative to
      the left side of the output in pixels. A value of 10 would result in the captions starting 10
      pixels from the left of the output. If no explicit xPosition is provided, the horizontal
      caption position will be determined by the alignment parameter. This option is not valid for
      source captions that are STL, 608/embedded or teletext. These source settings are already
      pre-defined by the caption stream. All burn-in and DVB-Sub font settings must match.

      - **YPosition** *(integer) --* Specifies the vertical position of the caption relative to the
      top of the output in pixels. A value of 10 would result in the captions starting 10 pixels
      from the top of the output. If no explicit yPosition is provided, the caption will be
      positioned towards the bottom of the output. This option is not valid for source captions that
      are STL, 608/embedded or teletext. These source settings are already pre-defined by the
      caption stream. All burn-in and DVB-Sub font settings must match.

    - **EmbeddedDestinationSettings** *(dict) --* Embedded Destination Settings

    - **EmbeddedPlusScte20DestinationSettings** *(dict) --* Embedded Plus Scte20 Destination
    Settings

    - **RtmpCaptionInfoDestinationSettings** *(dict) --* Rtmp Caption Info Destination Settings

    - **Scte20PlusEmbeddedDestinationSettings** *(dict) --* Scte20 Plus Embedded Destination
    Settings

    - **Scte27DestinationSettings** *(dict) --* Scte27 Destination Settings

    - **SmpteTtDestinationSettings** *(dict) --* Smpte Tt Destination Settings

    - **TeletextDestinationSettings** *(dict) --* Teletext Destination Settings

    - **TtmlDestinationSettings** *(dict) --* Ttml Destination Settings

      - **StyleControl** *(string) --* When set to passthrough, passes through style and position
      information from a TTML-like input source (TTML, SMPTE-TT, CFF-TT) to the CFF-TT output or
      TTML output.

    - **WebvttDestinationSettings** *(dict) --* Webvtt Destination Settings
    """


_ClientDeleteChannelResponseEncoderSettingsCaptionDescriptionsTypeDef = TypedDict(
    "_ClientDeleteChannelResponseEncoderSettingsCaptionDescriptionsTypeDef",
    {
        "CaptionSelectorName": str,
        "DestinationSettings": ClientDeleteChannelResponseEncoderSettingsCaptionDescriptionsDestinationSettingsTypeDef,
        "LanguageCode": str,
        "LanguageDescription": str,
        "Name": str,
    },
    total=False,
)


class ClientDeleteChannelResponseEncoderSettingsCaptionDescriptionsTypeDef(
    _ClientDeleteChannelResponseEncoderSettingsCaptionDescriptionsTypeDef
):
    """
    Type definition for `ClientDeleteChannelResponseEncoderSettings` `CaptionDescriptions`

    - **CaptionSelectorName** *(string) --* Specifies which input caption selector to use as a
    caption source when generating output captions. This field should match a captionSelector name.

    - **DestinationSettings** *(dict) --* Additional settings for captions destination that depend
    on the destination type.

      - **AribDestinationSettings** *(dict) --* Arib Destination Settings

      - **BurnInDestinationSettings** *(dict) --* Burn In Destination Settings

        - **Alignment** *(string) --* If no explicit xPosition or yPosition is provided, setting
        alignment to centered will place the captions at the bottom center of the output. Similarly,
        setting a left alignment will align captions to the bottom left of the output. If x and y
        positions are given in conjunction with the alignment parameter, the font will be justified
        (either left or centered) relative to those coordinates. Selecting "smart" justification
        will left-justify live subtitles and center-justify pre-recorded subtitles. All burn-in and
        DVB-Sub font settings must match.

        - **BackgroundColor** *(string) --* Specifies the color of the rectangle behind the
        captions. All burn-in and DVB-Sub font settings must match.

        - **BackgroundOpacity** *(integer) --* Specifies the opacity of the background rectangle.
        255 is opaque; 0 is transparent. Leaving this parameter out is equivalent to setting it to 0
        (transparent). All burn-in and DVB-Sub font settings must match.

        - **Font** *(dict) --* External font file used for caption burn-in. File extension must be
        'ttf' or 'tte'. Although the user can select output fonts for many different types of input
        captions, embedded, STL and teletext sources use a strict grid system. Using external fonts
        with these caption sources could cause unexpected display of proportional fonts. All burn-in
        and DVB-Sub font settings must match.

          - **PasswordParam** *(string) --* key used to extract the password from EC2 Parameter
          store

          - **Uri** *(string) --* Uniform Resource Identifier - This should be a path to a file
          accessible to the Live system (eg. a http:// URI) depending on the output type. For
          example, a RTMP destination should have a uri simliar to: "rtmp://fmsserver/live".

          - **Username** *(string) --* Documentation update needed

        - **FontColor** *(string) --* Specifies the color of the burned-in captions. This option is
        not valid for source captions that are STL, 608/embedded or teletext. These source settings
        are already pre-defined by the caption stream. All burn-in and DVB-Sub font settings must
        match.

        - **FontOpacity** *(integer) --* Specifies the opacity of the burned-in captions. 255 is
        opaque; 0 is transparent. All burn-in and DVB-Sub font settings must match.

        - **FontResolution** *(integer) --* Font resolution in DPI (dots per inch); default is 96
        dpi. All burn-in and DVB-Sub font settings must match.

        - **FontSize** *(string) --* When set to 'auto' fontSize will scale depending on the size of
        the output. Giving a positive integer will specify the exact font size in points. All
        burn-in and DVB-Sub font settings must match.

        - **OutlineColor** *(string) --* Specifies font outline color. This option is not valid for
        source captions that are either 608/embedded or teletext. These source settings are already
        pre-defined by the caption stream. All burn-in and DVB-Sub font settings must match.

        - **OutlineSize** *(integer) --* Specifies font outline size in pixels. This option is not
        valid for source captions that are either 608/embedded or teletext. These source settings
        are already pre-defined by the caption stream. All burn-in and DVB-Sub font settings must
        match.

        - **ShadowColor** *(string) --* Specifies the color of the shadow cast by the captions. All
        burn-in and DVB-Sub font settings must match.

        - **ShadowOpacity** *(integer) --* Specifies the opacity of the shadow. 255 is opaque; 0 is
        transparent. Leaving this parameter out is equivalent to setting it to 0 (transparent). All
        burn-in and DVB-Sub font settings must match.

        - **ShadowXOffset** *(integer) --* Specifies the horizontal offset of the shadow relative to
        the captions in pixels. A value of -2 would result in a shadow offset 2 pixels to the left.
        All burn-in and DVB-Sub font settings must match.

        - **ShadowYOffset** *(integer) --* Specifies the vertical offset of the shadow relative to
        the captions in pixels. A value of -2 would result in a shadow offset 2 pixels above the
        text. All burn-in and DVB-Sub font settings must match.

        - **TeletextGridControl** *(string) --* Controls whether a fixed grid size will be used to
        generate the output subtitles bitmap. Only applicable for Teletext inputs and
        DVB-Sub/Burn-in outputs.

        - **XPosition** *(integer) --* Specifies the horizontal position of the caption relative to
        the left side of the output in pixels. A value of 10 would result in the captions starting
        10 pixels from the left of the output. If no explicit xPosition is provided, the horizontal
        caption position will be determined by the alignment parameter. All burn-in and DVB-Sub font
        settings must match.

        - **YPosition** *(integer) --* Specifies the vertical position of the caption relative to
        the top of the output in pixels. A value of 10 would result in the captions starting 10
        pixels from the top of the output. If no explicit yPosition is provided, the caption will be
        positioned towards the bottom of the output. All burn-in and DVB-Sub font settings must
        match.

      - **DvbSubDestinationSettings** *(dict) --* Dvb Sub Destination Settings

        - **Alignment** *(string) --* If no explicit xPosition or yPosition is provided, setting
        alignment to centered will place the captions at the bottom center of the output. Similarly,
        setting a left alignment will align captions to the bottom left of the output. If x and y
        positions are given in conjunction with the alignment parameter, the font will be justified
        (either left or centered) relative to those coordinates. Selecting "smart" justification
        will left-justify live subtitles and center-justify pre-recorded subtitles. This option is
        not valid for source captions that are STL or 608/embedded. These source settings are
        already pre-defined by the caption stream. All burn-in and DVB-Sub font settings must match.

        - **BackgroundColor** *(string) --* Specifies the color of the rectangle behind the
        captions. All burn-in and DVB-Sub font settings must match.

        - **BackgroundOpacity** *(integer) --* Specifies the opacity of the background rectangle.
        255 is opaque; 0 is transparent. Leaving this parameter blank is equivalent to setting it to
        0 (transparent). All burn-in and DVB-Sub font settings must match.

        - **Font** *(dict) --* External font file used for caption burn-in. File extension must be
        'ttf' or 'tte'. Although the user can select output fonts for many different types of input
        captions, embedded, STL and teletext sources use a strict grid system. Using external fonts
        with these caption sources could cause unexpected display of proportional fonts. All burn-in
        and DVB-Sub font settings must match.

          - **PasswordParam** *(string) --* key used to extract the password from EC2 Parameter
          store

          - **Uri** *(string) --* Uniform Resource Identifier - This should be a path to a file
          accessible to the Live system (eg. a http:// URI) depending on the output type. For
          example, a RTMP destination should have a uri simliar to: "rtmp://fmsserver/live".

          - **Username** *(string) --* Documentation update needed

        - **FontColor** *(string) --* Specifies the color of the burned-in captions. This option is
        not valid for source captions that are STL, 608/embedded or teletext. These source settings
        are already pre-defined by the caption stream. All burn-in and DVB-Sub font settings must
        match.

        - **FontOpacity** *(integer) --* Specifies the opacity of the burned-in captions. 255 is
        opaque; 0 is transparent. All burn-in and DVB-Sub font settings must match.

        - **FontResolution** *(integer) --* Font resolution in DPI (dots per inch); default is 96
        dpi. All burn-in and DVB-Sub font settings must match.

        - **FontSize** *(string) --* When set to auto fontSize will scale depending on the size of
        the output. Giving a positive integer will specify the exact font size in points. All
        burn-in and DVB-Sub font settings must match.

        - **OutlineColor** *(string) --* Specifies font outline color. This option is not valid for
        source captions that are either 608/embedded or teletext. These source settings are already
        pre-defined by the caption stream. All burn-in and DVB-Sub font settings must match.

        - **OutlineSize** *(integer) --* Specifies font outline size in pixels. This option is not
        valid for source captions that are either 608/embedded or teletext. These source settings
        are already pre-defined by the caption stream. All burn-in and DVB-Sub font settings must
        match.

        - **ShadowColor** *(string) --* Specifies the color of the shadow cast by the captions. All
        burn-in and DVB-Sub font settings must match.

        - **ShadowOpacity** *(integer) --* Specifies the opacity of the shadow. 255 is opaque; 0 is
        transparent. Leaving this parameter blank is equivalent to setting it to 0 (transparent).
        All burn-in and DVB-Sub font settings must match.

        - **ShadowXOffset** *(integer) --* Specifies the horizontal offset of the shadow relative to
        the captions in pixels. A value of -2 would result in a shadow offset 2 pixels to the left.
        All burn-in and DVB-Sub font settings must match.

        - **ShadowYOffset** *(integer) --* Specifies the vertical offset of the shadow relative to
        the captions in pixels. A value of -2 would result in a shadow offset 2 pixels above the
        text. All burn-in and DVB-Sub font settings must match.

        - **TeletextGridControl** *(string) --* Controls whether a fixed grid size will be used to
        generate the output subtitles bitmap. Only applicable for Teletext inputs and
        DVB-Sub/Burn-in outputs.

        - **XPosition** *(integer) --* Specifies the horizontal position of the caption relative to
        the left side of the output in pixels. A value of 10 would result in the captions starting
        10 pixels from the left of the output. If no explicit xPosition is provided, the horizontal
        caption position will be determined by the alignment parameter. This option is not valid for
        source captions that are STL, 608/embedded or teletext. These source settings are already
        pre-defined by the caption stream. All burn-in and DVB-Sub font settings must match.

        - **YPosition** *(integer) --* Specifies the vertical position of the caption relative to
        the top of the output in pixels. A value of 10 would result in the captions starting 10
        pixels from the top of the output. If no explicit yPosition is provided, the caption will be
        positioned towards the bottom of the output. This option is not valid for source captions
        that are STL, 608/embedded or teletext. These source settings are already pre-defined by the
        caption stream. All burn-in and DVB-Sub font settings must match.

      - **EmbeddedDestinationSettings** *(dict) --* Embedded Destination Settings

      - **EmbeddedPlusScte20DestinationSettings** *(dict) --* Embedded Plus Scte20 Destination
      Settings

      - **RtmpCaptionInfoDestinationSettings** *(dict) --* Rtmp Caption Info Destination Settings

      - **Scte20PlusEmbeddedDestinationSettings** *(dict) --* Scte20 Plus Embedded Destination
      Settings

      - **Scte27DestinationSettings** *(dict) --* Scte27 Destination Settings

      - **SmpteTtDestinationSettings** *(dict) --* Smpte Tt Destination Settings

      - **TeletextDestinationSettings** *(dict) --* Teletext Destination Settings

      - **TtmlDestinationSettings** *(dict) --* Ttml Destination Settings

        - **StyleControl** *(string) --* When set to passthrough, passes through style and position
        information from a TTML-like input source (TTML, SMPTE-TT, CFF-TT) to the CFF-TT output or
        TTML output.

      - **WebvttDestinationSettings** *(dict) --* Webvtt Destination Settings

    - **LanguageCode** *(string) --* ISO 639-2 three-digit code:
    http://www.loc.gov/standards/iso639-2/

    - **LanguageDescription** *(string) --* Human readable information to indicate captions
    available for players (eg. English, or Spanish).

    - **Name** *(string) --* Name of the caption description. Used to associate a caption
    description with an output. Names must be unique within an event.
    """


_ClientDeleteChannelResponseEncoderSettingsGlobalConfigurationInputLossBehaviorInputLossImageSlateTypeDef = TypedDict(
    "_ClientDeleteChannelResponseEncoderSettingsGlobalConfigurationInputLossBehaviorInputLossImageSlateTypeDef",
    {"PasswordParam": str, "Uri": str, "Username": str},
    total=False,
)


class ClientDeleteChannelResponseEncoderSettingsGlobalConfigurationInputLossBehaviorInputLossImageSlateTypeDef(
    _ClientDeleteChannelResponseEncoderSettingsGlobalConfigurationInputLossBehaviorInputLossImageSlateTypeDef
):
    """
    Type definition for
    `ClientDeleteChannelResponseEncoderSettingsGlobalConfigurationInputLossBehavior`
    `InputLossImageSlate`

    - **PasswordParam** *(string) --* key used to extract the password from EC2 Parameter store

    - **Uri** *(string) --* Uniform Resource Identifier - This should be a path to a file accessible
    to the Live system (eg. a http:// URI) depending on the output type. For example, a RTMP
    destination should have a uri simliar to: "rtmp://fmsserver/live".

    - **Username** *(string) --* Documentation update needed
    """


_ClientDeleteChannelResponseEncoderSettingsGlobalConfigurationInputLossBehaviorTypeDef = TypedDict(
    "_ClientDeleteChannelResponseEncoderSettingsGlobalConfigurationInputLossBehaviorTypeDef",
    {
        "BlackFrameMsec": int,
        "InputLossImageColor": str,
        "InputLossImageSlate": ClientDeleteChannelResponseEncoderSettingsGlobalConfigurationInputLossBehaviorInputLossImageSlateTypeDef,
        "InputLossImageType": str,
        "RepeatFrameMsec": int,
    },
    total=False,
)


class ClientDeleteChannelResponseEncoderSettingsGlobalConfigurationInputLossBehaviorTypeDef(
    _ClientDeleteChannelResponseEncoderSettingsGlobalConfigurationInputLossBehaviorTypeDef
):
    """
    Type definition for `ClientDeleteChannelResponseEncoderSettingsGlobalConfiguration`
    `InputLossBehavior`

    - **BlackFrameMsec** *(integer) --* Documentation update needed

    - **InputLossImageColor** *(string) --* When input loss image type is "color" this field
    specifies the color to use. Value: 6 hex characters representing the values of RGB.

    - **InputLossImageSlate** *(dict) --* When input loss image type is "slate" these fields specify
    the parameters for accessing the slate.

      - **PasswordParam** *(string) --* key used to extract the password from EC2 Parameter store

      - **Uri** *(string) --* Uniform Resource Identifier - This should be a path to a file
      accessible to the Live system (eg. a http:// URI) depending on the output type. For example, a
      RTMP destination should have a uri simliar to: "rtmp://fmsserver/live".

      - **Username** *(string) --* Documentation update needed

    - **InputLossImageType** *(string) --* Indicates whether to substitute a solid color or a slate
    into the output after input loss exceeds blackFrameMsec.

    - **RepeatFrameMsec** *(integer) --* Documentation update needed
    """


_ClientDeleteChannelResponseEncoderSettingsGlobalConfigurationTypeDef = TypedDict(
    "_ClientDeleteChannelResponseEncoderSettingsGlobalConfigurationTypeDef",
    {
        "InitialAudioGain": int,
        "InputEndAction": str,
        "InputLossBehavior": ClientDeleteChannelResponseEncoderSettingsGlobalConfigurationInputLossBehaviorTypeDef,
        "OutputLockingMode": str,
        "OutputTimingSource": str,
        "SupportLowFramerateInputs": str,
    },
    total=False,
)


class ClientDeleteChannelResponseEncoderSettingsGlobalConfigurationTypeDef(
    _ClientDeleteChannelResponseEncoderSettingsGlobalConfigurationTypeDef
):
    """
    Type definition for `ClientDeleteChannelResponseEncoderSettings` `GlobalConfiguration`

    - **InitialAudioGain** *(integer) --* Value to set the initial audio gain for the Live Event.

    - **InputEndAction** *(string) --* Indicates the action to take when the current input completes
    (e.g. end-of-file). When switchAndLoopInputs is configured the encoder will restart at the
    beginning of the first input. When "none" is configured the encoder will transcode either black,
    a solid color, or a user specified slate images per the "Input Loss Behavior" configuration
    until the next input switch occurs (which is controlled through the Channel Schedule API).

    - **InputLossBehavior** *(dict) --* Settings for system actions when input is lost.

      - **BlackFrameMsec** *(integer) --* Documentation update needed

      - **InputLossImageColor** *(string) --* When input loss image type is "color" this field
      specifies the color to use. Value: 6 hex characters representing the values of RGB.

      - **InputLossImageSlate** *(dict) --* When input loss image type is "slate" these fields
      specify the parameters for accessing the slate.

        - **PasswordParam** *(string) --* key used to extract the password from EC2 Parameter store

        - **Uri** *(string) --* Uniform Resource Identifier - This should be a path to a file
        accessible to the Live system (eg. a http:// URI) depending on the output type. For example,
        a RTMP destination should have a uri simliar to: "rtmp://fmsserver/live".

        - **Username** *(string) --* Documentation update needed

      - **InputLossImageType** *(string) --* Indicates whether to substitute a solid color or a
      slate into the output after input loss exceeds blackFrameMsec.

      - **RepeatFrameMsec** *(integer) --* Documentation update needed

    - **OutputLockingMode** *(string) --* Indicates how MediaLive pipelines are synchronized.
    PIPELINELOCKING - MediaLive will attempt to synchronize the output of each pipeline to the
    other. EPOCHLOCKING - MediaLive will attempt to synchronize the output of each pipeline to the
    Unix epoch.

    - **OutputTimingSource** *(string) --* Indicates whether the rate of frames emitted by the Live
    encoder should be paced by its system clock (which optionally may be locked to another source
    via NTP) or should be locked to the clock of the source that is providing the input stream.

    - **SupportLowFramerateInputs** *(string) --* Adjusts video input buffer for streams with very
    low video framerates. This is commonly set to enabled for music channels with less than one
    video frame per second.
    """


_ClientDeleteChannelResponseEncoderSettingsNielsenConfigurationTypeDef = TypedDict(
    "_ClientDeleteChannelResponseEncoderSettingsNielsenConfigurationTypeDef",
    {"DistributorId": str, "NielsenPcmToId3Tagging": str},
    total=False,
)


class ClientDeleteChannelResponseEncoderSettingsNielsenConfigurationTypeDef(
    _ClientDeleteChannelResponseEncoderSettingsNielsenConfigurationTypeDef
):
    """
    Type definition for `ClientDeleteChannelResponseEncoderSettings` `NielsenConfiguration`

    - **DistributorId** *(string) --* Enter the Distributor ID assigned to your organization by
    Nielsen.

    - **NielsenPcmToId3Tagging** *(string) --* Enables Nielsen PCM to ID3 tagging
    """


_ClientDeleteChannelResponseEncoderSettingsOutputGroupsOutputGroupSettingsArchiveGroupSettingsDestinationTypeDef = TypedDict(
    "_ClientDeleteChannelResponseEncoderSettingsOutputGroupsOutputGroupSettingsArchiveGroupSettingsDestinationTypeDef",
    {"DestinationRefId": str},
    total=False,
)


class ClientDeleteChannelResponseEncoderSettingsOutputGroupsOutputGroupSettingsArchiveGroupSettingsDestinationTypeDef(
    _ClientDeleteChannelResponseEncoderSettingsOutputGroupsOutputGroupSettingsArchiveGroupSettingsDestinationTypeDef
):
    """
    Type definition for
    `ClientDeleteChannelResponseEncoderSettingsOutputGroupsOutputGroupSettingsArchiveGroupSettings`
    `Destination`

    - **DestinationRefId** *(string) --* Placeholder documentation for __string
    """


_ClientDeleteChannelResponseEncoderSettingsOutputGroupsOutputGroupSettingsArchiveGroupSettingsTypeDef = TypedDict(
    "_ClientDeleteChannelResponseEncoderSettingsOutputGroupsOutputGroupSettingsArchiveGroupSettingsTypeDef",
    {
        "Destination": ClientDeleteChannelResponseEncoderSettingsOutputGroupsOutputGroupSettingsArchiveGroupSettingsDestinationTypeDef,
        "RolloverInterval": int,
    },
    total=False,
)


class ClientDeleteChannelResponseEncoderSettingsOutputGroupsOutputGroupSettingsArchiveGroupSettingsTypeDef(
    _ClientDeleteChannelResponseEncoderSettingsOutputGroupsOutputGroupSettingsArchiveGroupSettingsTypeDef
):
    """
    Type definition for `ClientDeleteChannelResponseEncoderSettingsOutputGroupsOutputGroupSettings`
    `ArchiveGroupSettings`

    - **Destination** *(dict) --* A directory and base filename where archive files should be
    written.

      - **DestinationRefId** *(string) --* Placeholder documentation for __string

    - **RolloverInterval** *(integer) --* Number of seconds to write to archive file before closing
    and starting a new one.
    """


_ClientDeleteChannelResponseEncoderSettingsOutputGroupsOutputGroupSettingsFrameCaptureGroupSettingsDestinationTypeDef = TypedDict(
    "_ClientDeleteChannelResponseEncoderSettingsOutputGroupsOutputGroupSettingsFrameCaptureGroupSettingsDestinationTypeDef",
    {"DestinationRefId": str},
    total=False,
)


class ClientDeleteChannelResponseEncoderSettingsOutputGroupsOutputGroupSettingsFrameCaptureGroupSettingsDestinationTypeDef(
    _ClientDeleteChannelResponseEncoderSettingsOutputGroupsOutputGroupSettingsFrameCaptureGroupSettingsDestinationTypeDef
):
    """
    Type definition for
    `ClientDeleteChannelResponseEncoderSettingsOutputGroupsOutputGroupSettingsFrameCaptureGroupSettings`
    `Destination`

    - **DestinationRefId** *(string) --* Placeholder documentation for __string
    """


_ClientDeleteChannelResponseEncoderSettingsOutputGroupsOutputGroupSettingsFrameCaptureGroupSettingsTypeDef = TypedDict(
    "_ClientDeleteChannelResponseEncoderSettingsOutputGroupsOutputGroupSettingsFrameCaptureGroupSettingsTypeDef",
    {
        "Destination": ClientDeleteChannelResponseEncoderSettingsOutputGroupsOutputGroupSettingsFrameCaptureGroupSettingsDestinationTypeDef
    },
    total=False,
)


class ClientDeleteChannelResponseEncoderSettingsOutputGroupsOutputGroupSettingsFrameCaptureGroupSettingsTypeDef(
    _ClientDeleteChannelResponseEncoderSettingsOutputGroupsOutputGroupSettingsFrameCaptureGroupSettingsTypeDef
):
    """
    Type definition for `ClientDeleteChannelResponseEncoderSettingsOutputGroupsOutputGroupSettings`
    `FrameCaptureGroupSettings`

    - **Destination** *(dict) --* The destination for the frame capture files. Either the URI for an
    Amazon S3 bucket and object, plus a file name prefix (for example,
    s3ssl://sportsDelivery/highlights/20180820/curling_) or the URI for a MediaStore container, plus
    a file name prefix (for example, mediastoressl://sportsDelivery/20180820/curling_). The final
    file names consist of the prefix from the destination field (for example, "curling_") + name
    modifier + the counter (5 digits, starting from 00001) + extension (which is always .jpg). For
    example, curlingLow.00001.jpg

      - **DestinationRefId** *(string) --* Placeholder documentation for __string
    """


_ClientDeleteChannelResponseEncoderSettingsOutputGroupsOutputGroupSettingsHlsGroupSettingsCaptionLanguageMappingsTypeDef = TypedDict(
    "_ClientDeleteChannelResponseEncoderSettingsOutputGroupsOutputGroupSettingsHlsGroupSettingsCaptionLanguageMappingsTypeDef",
    {"CaptionChannel": int, "LanguageCode": str, "LanguageDescription": str},
    total=False,
)


class ClientDeleteChannelResponseEncoderSettingsOutputGroupsOutputGroupSettingsHlsGroupSettingsCaptionLanguageMappingsTypeDef(
    _ClientDeleteChannelResponseEncoderSettingsOutputGroupsOutputGroupSettingsHlsGroupSettingsCaptionLanguageMappingsTypeDef
):
    """
    Type definition for
    `ClientDeleteChannelResponseEncoderSettingsOutputGroupsOutputGroupSettingsHlsGroupSettings`
    `CaptionLanguageMappings`

    - **CaptionChannel** *(integer) --* The closed caption channel being described by this
    CaptionLanguageMapping. Each channel mapping must have a unique channel number (maximum of 4)

    - **LanguageCode** *(string) --* Three character ISO 639-2 language code (see
    http://www.loc.gov/standards/iso639-2)

    - **LanguageDescription** *(string) --* Textual description of language
    """


_ClientDeleteChannelResponseEncoderSettingsOutputGroupsOutputGroupSettingsHlsGroupSettingsDestinationTypeDef = TypedDict(
    "_ClientDeleteChannelResponseEncoderSettingsOutputGroupsOutputGroupSettingsHlsGroupSettingsDestinationTypeDef",
    {"DestinationRefId": str},
    total=False,
)


class ClientDeleteChannelResponseEncoderSettingsOutputGroupsOutputGroupSettingsHlsGroupSettingsDestinationTypeDef(
    _ClientDeleteChannelResponseEncoderSettingsOutputGroupsOutputGroupSettingsHlsGroupSettingsDestinationTypeDef
):
    """
    Type definition for
    `ClientDeleteChannelResponseEncoderSettingsOutputGroupsOutputGroupSettingsHlsGroupSettings`
    `Destination`

    - **DestinationRefId** *(string) --* Placeholder documentation for __string
    """


_ClientDeleteChannelResponseEncoderSettingsOutputGroupsOutputGroupSettingsHlsGroupSettingsHlsCdnSettingsHlsAkamaiSettingsTypeDef = TypedDict(
    "_ClientDeleteChannelResponseEncoderSettingsOutputGroupsOutputGroupSettingsHlsGroupSettingsHlsCdnSettingsHlsAkamaiSettingsTypeDef",
    {
        "ConnectionRetryInterval": int,
        "FilecacheDuration": int,
        "HttpTransferMode": str,
        "NumRetries": int,
        "RestartDelay": int,
        "Salt": str,
        "Token": str,
    },
    total=False,
)


class ClientDeleteChannelResponseEncoderSettingsOutputGroupsOutputGroupSettingsHlsGroupSettingsHlsCdnSettingsHlsAkamaiSettingsTypeDef(
    _ClientDeleteChannelResponseEncoderSettingsOutputGroupsOutputGroupSettingsHlsGroupSettingsHlsCdnSettingsHlsAkamaiSettingsTypeDef
):
    """
    Type definition for
    `ClientDeleteChannelResponseEncoderSettingsOutputGroupsOutputGroupSettingsHlsGroupSettingsHlsCdnSettings`
    `HlsAkamaiSettings`

    - **ConnectionRetryInterval** *(integer) --* Number of seconds to wait before retrying
    connection to the CDN if the connection is lost.

    - **FilecacheDuration** *(integer) --* Size in seconds of file cache for streaming outputs.

    - **HttpTransferMode** *(string) --* Specify whether or not to use chunked transfer encoding to
    Akamai. User should contact Akamai to enable this feature.

    - **NumRetries** *(integer) --* Number of retry attempts that will be made before the Live Event
    is put into an error state.

    - **RestartDelay** *(integer) --* If a streaming output fails, number of seconds to wait until a
    restart is initiated. A value of 0 means never restart.

    - **Salt** *(string) --* Salt for authenticated Akamai.

    - **Token** *(string) --* Token parameter for authenticated akamai. If not specified, _gda_ is
    used.
    """


_ClientDeleteChannelResponseEncoderSettingsOutputGroupsOutputGroupSettingsHlsGroupSettingsHlsCdnSettingsHlsBasicPutSettingsTypeDef = TypedDict(
    "_ClientDeleteChannelResponseEncoderSettingsOutputGroupsOutputGroupSettingsHlsGroupSettingsHlsCdnSettingsHlsBasicPutSettingsTypeDef",
    {
        "ConnectionRetryInterval": int,
        "FilecacheDuration": int,
        "NumRetries": int,
        "RestartDelay": int,
    },
    total=False,
)


class ClientDeleteChannelResponseEncoderSettingsOutputGroupsOutputGroupSettingsHlsGroupSettingsHlsCdnSettingsHlsBasicPutSettingsTypeDef(
    _ClientDeleteChannelResponseEncoderSettingsOutputGroupsOutputGroupSettingsHlsGroupSettingsHlsCdnSettingsHlsBasicPutSettingsTypeDef
):
    """
    Type definition for
    `ClientDeleteChannelResponseEncoderSettingsOutputGroupsOutputGroupSettingsHlsGroupSettingsHlsCdnSettings`
    `HlsBasicPutSettings`

    - **ConnectionRetryInterval** *(integer) --* Number of seconds to wait before retrying
    connection to the CDN if the connection is lost.

    - **FilecacheDuration** *(integer) --* Size in seconds of file cache for streaming outputs.

    - **NumRetries** *(integer) --* Number of retry attempts that will be made before the Live Event
    is put into an error state.

    - **RestartDelay** *(integer) --* If a streaming output fails, number of seconds to wait until a
    restart is initiated. A value of 0 means never restart.
    """


_ClientDeleteChannelResponseEncoderSettingsOutputGroupsOutputGroupSettingsHlsGroupSettingsHlsCdnSettingsHlsMediaStoreSettingsTypeDef = TypedDict(
    "_ClientDeleteChannelResponseEncoderSettingsOutputGroupsOutputGroupSettingsHlsGroupSettingsHlsCdnSettingsHlsMediaStoreSettingsTypeDef",
    {
        "ConnectionRetryInterval": int,
        "FilecacheDuration": int,
        "MediaStoreStorageClass": str,
        "NumRetries": int,
        "RestartDelay": int,
    },
    total=False,
)


class ClientDeleteChannelResponseEncoderSettingsOutputGroupsOutputGroupSettingsHlsGroupSettingsHlsCdnSettingsHlsMediaStoreSettingsTypeDef(
    _ClientDeleteChannelResponseEncoderSettingsOutputGroupsOutputGroupSettingsHlsGroupSettingsHlsCdnSettingsHlsMediaStoreSettingsTypeDef
):
    """
    Type definition for
    `ClientDeleteChannelResponseEncoderSettingsOutputGroupsOutputGroupSettingsHlsGroupSettingsHlsCdnSettings`
    `HlsMediaStoreSettings`

    - **ConnectionRetryInterval** *(integer) --* Number of seconds to wait before retrying
    connection to the CDN if the connection is lost.

    - **FilecacheDuration** *(integer) --* Size in seconds of file cache for streaming outputs.

    - **MediaStoreStorageClass** *(string) --* When set to temporal, output files are stored in
    non-persistent memory for faster reading and writing.

    - **NumRetries** *(integer) --* Number of retry attempts that will be made before the Live Event
    is put into an error state.

    - **RestartDelay** *(integer) --* If a streaming output fails, number of seconds to wait until a
    restart is initiated. A value of 0 means never restart.
    """


_ClientDeleteChannelResponseEncoderSettingsOutputGroupsOutputGroupSettingsHlsGroupSettingsHlsCdnSettingsHlsWebdavSettingsTypeDef = TypedDict(
    "_ClientDeleteChannelResponseEncoderSettingsOutputGroupsOutputGroupSettingsHlsGroupSettingsHlsCdnSettingsHlsWebdavSettingsTypeDef",
    {
        "ConnectionRetryInterval": int,
        "FilecacheDuration": int,
        "HttpTransferMode": str,
        "NumRetries": int,
        "RestartDelay": int,
    },
    total=False,
)


class ClientDeleteChannelResponseEncoderSettingsOutputGroupsOutputGroupSettingsHlsGroupSettingsHlsCdnSettingsHlsWebdavSettingsTypeDef(
    _ClientDeleteChannelResponseEncoderSettingsOutputGroupsOutputGroupSettingsHlsGroupSettingsHlsCdnSettingsHlsWebdavSettingsTypeDef
):
    """
    Type definition for
    `ClientDeleteChannelResponseEncoderSettingsOutputGroupsOutputGroupSettingsHlsGroupSettingsHlsCdnSettings`
    `HlsWebdavSettings`

    - **ConnectionRetryInterval** *(integer) --* Number of seconds to wait before retrying
    connection to the CDN if the connection is lost.

    - **FilecacheDuration** *(integer) --* Size in seconds of file cache for streaming outputs.

    - **HttpTransferMode** *(string) --* Specify whether or not to use chunked transfer encoding to
    WebDAV.

    - **NumRetries** *(integer) --* Number of retry attempts that will be made before the Live Event
    is put into an error state.

    - **RestartDelay** *(integer) --* If a streaming output fails, number of seconds to wait until a
    restart is initiated. A value of 0 means never restart.
    """


_ClientDeleteChannelResponseEncoderSettingsOutputGroupsOutputGroupSettingsHlsGroupSettingsHlsCdnSettingsTypeDef = TypedDict(
    "_ClientDeleteChannelResponseEncoderSettingsOutputGroupsOutputGroupSettingsHlsGroupSettingsHlsCdnSettingsTypeDef",
    {
        "HlsAkamaiSettings": ClientDeleteChannelResponseEncoderSettingsOutputGroupsOutputGroupSettingsHlsGroupSettingsHlsCdnSettingsHlsAkamaiSettingsTypeDef,
        "HlsBasicPutSettings": ClientDeleteChannelResponseEncoderSettingsOutputGroupsOutputGroupSettingsHlsGroupSettingsHlsCdnSettingsHlsBasicPutSettingsTypeDef,
        "HlsMediaStoreSettings": ClientDeleteChannelResponseEncoderSettingsOutputGroupsOutputGroupSettingsHlsGroupSettingsHlsCdnSettingsHlsMediaStoreSettingsTypeDef,
        "HlsWebdavSettings": ClientDeleteChannelResponseEncoderSettingsOutputGroupsOutputGroupSettingsHlsGroupSettingsHlsCdnSettingsHlsWebdavSettingsTypeDef,
    },
    total=False,
)


class ClientDeleteChannelResponseEncoderSettingsOutputGroupsOutputGroupSettingsHlsGroupSettingsHlsCdnSettingsTypeDef(
    _ClientDeleteChannelResponseEncoderSettingsOutputGroupsOutputGroupSettingsHlsGroupSettingsHlsCdnSettingsTypeDef
):
    """
    Type definition for
    `ClientDeleteChannelResponseEncoderSettingsOutputGroupsOutputGroupSettingsHlsGroupSettings`
    `HlsCdnSettings`

    - **HlsAkamaiSettings** *(dict) --* Hls Akamai Settings

      - **ConnectionRetryInterval** *(integer) --* Number of seconds to wait before retrying
      connection to the CDN if the connection is lost.

      - **FilecacheDuration** *(integer) --* Size in seconds of file cache for streaming outputs.

      - **HttpTransferMode** *(string) --* Specify whether or not to use chunked transfer encoding
      to Akamai. User should contact Akamai to enable this feature.

      - **NumRetries** *(integer) --* Number of retry attempts that will be made before the Live
      Event is put into an error state.

      - **RestartDelay** *(integer) --* If a streaming output fails, number of seconds to wait until
      a restart is initiated. A value of 0 means never restart.

      - **Salt** *(string) --* Salt for authenticated Akamai.

      - **Token** *(string) --* Token parameter for authenticated akamai. If not specified, _gda_ is
      used.

    - **HlsBasicPutSettings** *(dict) --* Hls Basic Put Settings

      - **ConnectionRetryInterval** *(integer) --* Number of seconds to wait before retrying
      connection to the CDN if the connection is lost.

      - **FilecacheDuration** *(integer) --* Size in seconds of file cache for streaming outputs.

      - **NumRetries** *(integer) --* Number of retry attempts that will be made before the Live
      Event is put into an error state.

      - **RestartDelay** *(integer) --* If a streaming output fails, number of seconds to wait until
      a restart is initiated. A value of 0 means never restart.

    - **HlsMediaStoreSettings** *(dict) --* Hls Media Store Settings

      - **ConnectionRetryInterval** *(integer) --* Number of seconds to wait before retrying
      connection to the CDN if the connection is lost.

      - **FilecacheDuration** *(integer) --* Size in seconds of file cache for streaming outputs.

      - **MediaStoreStorageClass** *(string) --* When set to temporal, output files are stored in
      non-persistent memory for faster reading and writing.

      - **NumRetries** *(integer) --* Number of retry attempts that will be made before the Live
      Event is put into an error state.

      - **RestartDelay** *(integer) --* If a streaming output fails, number of seconds to wait until
      a restart is initiated. A value of 0 means never restart.

    - **HlsWebdavSettings** *(dict) --* Hls Webdav Settings

      - **ConnectionRetryInterval** *(integer) --* Number of seconds to wait before retrying
      connection to the CDN if the connection is lost.

      - **FilecacheDuration** *(integer) --* Size in seconds of file cache for streaming outputs.

      - **HttpTransferMode** *(string) --* Specify whether or not to use chunked transfer encoding
      to WebDAV.

      - **NumRetries** *(integer) --* Number of retry attempts that will be made before the Live
      Event is put into an error state.

      - **RestartDelay** *(integer) --* If a streaming output fails, number of seconds to wait until
      a restart is initiated. A value of 0 means never restart.
    """


_ClientDeleteChannelResponseEncoderSettingsOutputGroupsOutputGroupSettingsHlsGroupSettingsKeyProviderSettingsStaticKeySettingsKeyProviderServerTypeDef = TypedDict(
    "_ClientDeleteChannelResponseEncoderSettingsOutputGroupsOutputGroupSettingsHlsGroupSettingsKeyProviderSettingsStaticKeySettingsKeyProviderServerTypeDef",
    {"PasswordParam": str, "Uri": str, "Username": str},
    total=False,
)


class ClientDeleteChannelResponseEncoderSettingsOutputGroupsOutputGroupSettingsHlsGroupSettingsKeyProviderSettingsStaticKeySettingsKeyProviderServerTypeDef(
    _ClientDeleteChannelResponseEncoderSettingsOutputGroupsOutputGroupSettingsHlsGroupSettingsKeyProviderSettingsStaticKeySettingsKeyProviderServerTypeDef
):
    """
    Type definition for
    `ClientDeleteChannelResponseEncoderSettingsOutputGroupsOutputGroupSettingsHlsGroupSettingsKeyProviderSettingsStaticKeySettings`
    `KeyProviderServer`

    - **PasswordParam** *(string) --* key used to extract the password from EC2 Parameter store

    - **Uri** *(string) --* Uniform Resource Identifier - This should be a path to a file accessible
    to the Live system (eg. a http:// URI) depending on the output type. For example, a RTMP
    destination should have a uri simliar to: "rtmp://fmsserver/live".

    - **Username** *(string) --* Documentation update needed
    """


_ClientDeleteChannelResponseEncoderSettingsOutputGroupsOutputGroupSettingsHlsGroupSettingsKeyProviderSettingsStaticKeySettingsTypeDef = TypedDict(
    "_ClientDeleteChannelResponseEncoderSettingsOutputGroupsOutputGroupSettingsHlsGroupSettingsKeyProviderSettingsStaticKeySettingsTypeDef",
    {
        "KeyProviderServer": ClientDeleteChannelResponseEncoderSettingsOutputGroupsOutputGroupSettingsHlsGroupSettingsKeyProviderSettingsStaticKeySettingsKeyProviderServerTypeDef,
        "StaticKeyValue": str,
    },
    total=False,
)


class ClientDeleteChannelResponseEncoderSettingsOutputGroupsOutputGroupSettingsHlsGroupSettingsKeyProviderSettingsStaticKeySettingsTypeDef(
    _ClientDeleteChannelResponseEncoderSettingsOutputGroupsOutputGroupSettingsHlsGroupSettingsKeyProviderSettingsStaticKeySettingsTypeDef
):
    """
    Type definition for
    `ClientDeleteChannelResponseEncoderSettingsOutputGroupsOutputGroupSettingsHlsGroupSettingsKeyProviderSettings`
    `StaticKeySettings`

    - **KeyProviderServer** *(dict) --* The URL of the license server used for protecting content.

      - **PasswordParam** *(string) --* key used to extract the password from EC2 Parameter store

      - **Uri** *(string) --* Uniform Resource Identifier - This should be a path to a file
      accessible to the Live system (eg. a http:// URI) depending on the output type. For example, a
      RTMP destination should have a uri simliar to: "rtmp://fmsserver/live".

      - **Username** *(string) --* Documentation update needed

    - **StaticKeyValue** *(string) --* Static key value as a 32 character hexadecimal string.
    """


_ClientDeleteChannelResponseEncoderSettingsOutputGroupsOutputGroupSettingsHlsGroupSettingsKeyProviderSettingsTypeDef = TypedDict(
    "_ClientDeleteChannelResponseEncoderSettingsOutputGroupsOutputGroupSettingsHlsGroupSettingsKeyProviderSettingsTypeDef",
    {
        "StaticKeySettings": ClientDeleteChannelResponseEncoderSettingsOutputGroupsOutputGroupSettingsHlsGroupSettingsKeyProviderSettingsStaticKeySettingsTypeDef
    },
    total=False,
)


class ClientDeleteChannelResponseEncoderSettingsOutputGroupsOutputGroupSettingsHlsGroupSettingsKeyProviderSettingsTypeDef(
    _ClientDeleteChannelResponseEncoderSettingsOutputGroupsOutputGroupSettingsHlsGroupSettingsKeyProviderSettingsTypeDef
):
    """
    Type definition for
    `ClientDeleteChannelResponseEncoderSettingsOutputGroupsOutputGroupSettingsHlsGroupSettings`
    `KeyProviderSettings`

    - **StaticKeySettings** *(dict) --* Static Key Settings

      - **KeyProviderServer** *(dict) --* The URL of the license server used for protecting content.

        - **PasswordParam** *(string) --* key used to extract the password from EC2 Parameter store

        - **Uri** *(string) --* Uniform Resource Identifier - This should be a path to a file
        accessible to the Live system (eg. a http:// URI) depending on the output type. For example,
        a RTMP destination should have a uri simliar to: "rtmp://fmsserver/live".

        - **Username** *(string) --* Documentation update needed

      - **StaticKeyValue** *(string) --* Static key value as a 32 character hexadecimal string.
    """


_ClientDeleteChannelResponseEncoderSettingsOutputGroupsOutputGroupSettingsHlsGroupSettingsTypeDef = TypedDict(
    "_ClientDeleteChannelResponseEncoderSettingsOutputGroupsOutputGroupSettingsHlsGroupSettingsTypeDef",
    {
        "AdMarkers": List[str],
        "BaseUrlContent": str,
        "BaseUrlManifest": str,
        "CaptionLanguageMappings": List[
            ClientDeleteChannelResponseEncoderSettingsOutputGroupsOutputGroupSettingsHlsGroupSettingsCaptionLanguageMappingsTypeDef
        ],
        "CaptionLanguageSetting": str,
        "ClientCache": str,
        "CodecSpecification": str,
        "ConstantIv": str,
        "Destination": ClientDeleteChannelResponseEncoderSettingsOutputGroupsOutputGroupSettingsHlsGroupSettingsDestinationTypeDef,
        "DirectoryStructure": str,
        "EncryptionType": str,
        "HlsCdnSettings": ClientDeleteChannelResponseEncoderSettingsOutputGroupsOutputGroupSettingsHlsGroupSettingsHlsCdnSettingsTypeDef,
        "IFrameOnlyPlaylists": str,
        "IndexNSegments": int,
        "InputLossAction": str,
        "IvInManifest": str,
        "IvSource": str,
        "KeepSegments": int,
        "KeyFormat": str,
        "KeyFormatVersions": str,
        "KeyProviderSettings": ClientDeleteChannelResponseEncoderSettingsOutputGroupsOutputGroupSettingsHlsGroupSettingsKeyProviderSettingsTypeDef,
        "ManifestCompression": str,
        "ManifestDurationFormat": str,
        "MinSegmentLength": int,
        "Mode": str,
        "OutputSelection": str,
        "ProgramDateTime": str,
        "ProgramDateTimePeriod": int,
        "RedundantManifest": str,
        "SegmentLength": int,
        "SegmentationMode": str,
        "SegmentsPerSubdirectory": int,
        "StreamInfResolution": str,
        "TimedMetadataId3Frame": str,
        "TimedMetadataId3Period": int,
        "TimestampDeltaMilliseconds": int,
        "TsFileMode": str,
    },
    total=False,
)


class ClientDeleteChannelResponseEncoderSettingsOutputGroupsOutputGroupSettingsHlsGroupSettingsTypeDef(
    _ClientDeleteChannelResponseEncoderSettingsOutputGroupsOutputGroupSettingsHlsGroupSettingsTypeDef
):
    """
    Type definition for `ClientDeleteChannelResponseEncoderSettingsOutputGroupsOutputGroupSettings`
    `HlsGroupSettings`

    - **AdMarkers** *(list) --* Choose one or more ad marker types to pass SCTE35 signals through to
    this group of Apple HLS outputs.

      - *(string) --* Hls Ad Markers

    - **BaseUrlContent** *(string) --* A partial URI prefix that will be prepended to each output in
    the media .m3u8 file. Can be used if base manifest is delivered from a different URL than the
    main .m3u8 file.

    - **BaseUrlManifest** *(string) --* A partial URI prefix that will be prepended to each output
    in the media .m3u8 file. Can be used if base manifest is delivered from a different URL than the
    main .m3u8 file.

    - **CaptionLanguageMappings** *(list) --* Mapping of up to 4 caption channels to caption
    languages. Is only meaningful if captionLanguageSetting is set to "insert".

      - *(dict) --* Maps a caption channel to an ISO 693-2 language code
      (http://www.loc.gov/standards/iso639-2), with an optional description.

        - **CaptionChannel** *(integer) --* The closed caption channel being described by this
        CaptionLanguageMapping. Each channel mapping must have a unique channel number (maximum of
        4)

        - **LanguageCode** *(string) --* Three character ISO 639-2 language code (see
        http://www.loc.gov/standards/iso639-2)

        - **LanguageDescription** *(string) --* Textual description of language

    - **CaptionLanguageSetting** *(string) --* Applies only to 608 Embedded output captions. insert:
    Include CLOSED-CAPTIONS lines in the manifest. Specify at least one language in the CC1 Language
    Code field. One CLOSED-CAPTION line is added for each Language Code you specify. Make sure to
    specify the languages in the order in which they appear in the original source (if the source is
    embedded format) or the order of the caption selectors (if the source is other than embedded).
    Otherwise, languages in the manifest will not match up properly with the output captions. none:
    Include CLOSED-CAPTIONS=NONE line in the manifest. omit: Omit any CLOSED-CAPTIONS line from the
    manifest.

    - **ClientCache** *(string) --* When set to "disabled", sets the #EXT-X-ALLOW-CACHE:no tag in
    the manifest, which prevents clients from saving media segments for later replay.

    - **CodecSpecification** *(string) --* Specification to use (RFC-6381 or the default RFC-4281)
    during m3u8 playlist generation.

    - **ConstantIv** *(string) --* For use with encryptionType. This is a 128-bit, 16-byte hex value
    represented by a 32-character text string. If ivSource is set to "explicit" then this parameter
    is required and is used as the IV for encryption.

    - **Destination** *(dict) --* A directory or HTTP destination for the HLS segments, manifest
    files, and encryption keys (if enabled).

      - **DestinationRefId** *(string) --* Placeholder documentation for __string

    - **DirectoryStructure** *(string) --* Place segments in subdirectories.

    - **EncryptionType** *(string) --* Encrypts the segments with the given encryption scheme.
    Exclude this parameter if no encryption is desired.

    - **HlsCdnSettings** *(dict) --* Parameters that control interactions with the CDN.

      - **HlsAkamaiSettings** *(dict) --* Hls Akamai Settings

        - **ConnectionRetryInterval** *(integer) --* Number of seconds to wait before retrying
        connection to the CDN if the connection is lost.

        - **FilecacheDuration** *(integer) --* Size in seconds of file cache for streaming outputs.

        - **HttpTransferMode** *(string) --* Specify whether or not to use chunked transfer encoding
        to Akamai. User should contact Akamai to enable this feature.

        - **NumRetries** *(integer) --* Number of retry attempts that will be made before the Live
        Event is put into an error state.

        - **RestartDelay** *(integer) --* If a streaming output fails, number of seconds to wait
        until a restart is initiated. A value of 0 means never restart.

        - **Salt** *(string) --* Salt for authenticated Akamai.

        - **Token** *(string) --* Token parameter for authenticated akamai. If not specified, _gda_
        is used.

      - **HlsBasicPutSettings** *(dict) --* Hls Basic Put Settings

        - **ConnectionRetryInterval** *(integer) --* Number of seconds to wait before retrying
        connection to the CDN if the connection is lost.

        - **FilecacheDuration** *(integer) --* Size in seconds of file cache for streaming outputs.

        - **NumRetries** *(integer) --* Number of retry attempts that will be made before the Live
        Event is put into an error state.

        - **RestartDelay** *(integer) --* If a streaming output fails, number of seconds to wait
        until a restart is initiated. A value of 0 means never restart.

      - **HlsMediaStoreSettings** *(dict) --* Hls Media Store Settings

        - **ConnectionRetryInterval** *(integer) --* Number of seconds to wait before retrying
        connection to the CDN if the connection is lost.

        - **FilecacheDuration** *(integer) --* Size in seconds of file cache for streaming outputs.

        - **MediaStoreStorageClass** *(string) --* When set to temporal, output files are stored in
        non-persistent memory for faster reading and writing.

        - **NumRetries** *(integer) --* Number of retry attempts that will be made before the Live
        Event is put into an error state.

        - **RestartDelay** *(integer) --* If a streaming output fails, number of seconds to wait
        until a restart is initiated. A value of 0 means never restart.

      - **HlsWebdavSettings** *(dict) --* Hls Webdav Settings

        - **ConnectionRetryInterval** *(integer) --* Number of seconds to wait before retrying
        connection to the CDN if the connection is lost.

        - **FilecacheDuration** *(integer) --* Size in seconds of file cache for streaming outputs.

        - **HttpTransferMode** *(string) --* Specify whether or not to use chunked transfer encoding
        to WebDAV.

        - **NumRetries** *(integer) --* Number of retry attempts that will be made before the Live
        Event is put into an error state.

        - **RestartDelay** *(integer) --* If a streaming output fails, number of seconds to wait
        until a restart is initiated. A value of 0 means never restart.

    - **IFrameOnlyPlaylists** *(string) --* DISABLED: Do not create an I-frame-only manifest, but do
    create the master and media manifests (according to the Output Selection field). STANDARD:
    Create an I-frame-only manifest for each output that contains video, as well as the other
    manifests (according to the Output Selection field). The I-frame manifest contains a
    #EXT-X-I-FRAMES-ONLY tag to indicate it is I-frame only, and one or more #EXT-X-BYTERANGE
    entries identifying the I-frame position. For example, #EXT-X-BYTERANGE:160364@1461888"

    - **IndexNSegments** *(integer) --* Applies only if Mode field is LIVE. Specifies the maximum
    number of segments in the media manifest file. After this maximum, older segments are removed
    from the media manifest. This number must be less than or equal to the Keep Segments field.

    - **InputLossAction** *(string) --* Parameter that control output group behavior on input loss.

    - **IvInManifest** *(string) --* For use with encryptionType. The IV (Initialization Vector) is
    a 128-bit number used in conjunction with the key for encrypting blocks. If set to "include", IV
    is listed in the manifest, otherwise the IV is not in the manifest.

    - **IvSource** *(string) --* For use with encryptionType. The IV (Initialization Vector) is a
    128-bit number used in conjunction with the key for encrypting blocks. If this setting is
    "followsSegmentNumber", it will cause the IV to change every segment (to match the segment
    number). If this is set to "explicit", you must enter a constantIv value.

    - **KeepSegments** *(integer) --* Applies only if Mode field is LIVE. Specifies the number of
    media segments (.ts files) to retain in the destination directory.

    - **KeyFormat** *(string) --* The value specifies how the key is represented in the resource
    identified by the URI. If parameter is absent, an implicit value of "identity" is used. A
    reverse DNS string can also be given.

    - **KeyFormatVersions** *(string) --* Either a single positive integer version value or a slash
    delimited list of version values (1/2/3).

    - **KeyProviderSettings** *(dict) --* The key provider settings.

      - **StaticKeySettings** *(dict) --* Static Key Settings

        - **KeyProviderServer** *(dict) --* The URL of the license server used for protecting
        content.

          - **PasswordParam** *(string) --* key used to extract the password from EC2 Parameter
          store

          - **Uri** *(string) --* Uniform Resource Identifier - This should be a path to a file
          accessible to the Live system (eg. a http:// URI) depending on the output type. For
          example, a RTMP destination should have a uri simliar to: "rtmp://fmsserver/live".

          - **Username** *(string) --* Documentation update needed

        - **StaticKeyValue** *(string) --* Static key value as a 32 character hexadecimal string.

    - **ManifestCompression** *(string) --* When set to gzip, compresses HLS playlist.

    - **ManifestDurationFormat** *(string) --* Indicates whether the output manifest should use
    floating point or integer values for segment duration.

    - **MinSegmentLength** *(integer) --* When set, minimumSegmentLength is enforced by looking
    ahead and back within the specified range for a nearby avail and extending the segment size if
    needed.

    - **Mode** *(string) --* If "vod", all segments are indexed and kept permanently in the
    destination and manifest. If "live", only the number segments specified in keepSegments and
    indexNSegments are kept; newer segments replace older segments, which may prevent players from
    rewinding all the way to the beginning of the event. VOD mode uses HLS EXT-X-PLAYLIST-TYPE of
    EVENT while the channel is running, converting it to a "VOD" type manifest on completion of the
    stream.

    - **OutputSelection** *(string) --* MANIFESTSANDSEGMENTS: Generates manifests (master manifest,
    if applicable, and media manifests) for this output group. SEGMENTSONLY: Does not generate any
    manifests for this output group.

    - **ProgramDateTime** *(string) --* Includes or excludes EXT-X-PROGRAM-DATE-TIME tag in .m3u8
    manifest files. The value is calculated as follows: either the program date and time are
    initialized using the input timecode source, or the time is initialized using the input timecode
    source and the date is initialized using the timestampOffset.

    - **ProgramDateTimePeriod** *(integer) --* Period of insertion of EXT-X-PROGRAM-DATE-TIME entry,
    in seconds.

    - **RedundantManifest** *(string) --* ENABLED: The master manifest (.m3u8 file) for each
    pipeline includes information about both pipelines: first its own media files, then the media
    files of the other pipeline. This feature allows playout device that support stale manifest
    detection to switch from one manifest to the other, when the current manifest seems to be stale.
    There are still two destinations and two master manifests, but both master manifests reference
    the media files from both pipelines. DISABLED: The master manifest (.m3u8 file) for each
    pipeline includes information about its own pipeline only. For an HLS output group with
    MediaPackage as the destination, the DISABLED behavior is always followed. MediaPackage
    regenerates the manifests it serves to players so a redundant manifest from MediaLive is
    irrelevant.

    - **SegmentLength** *(integer) --* Length of MPEG-2 Transport Stream segments to create (in
    seconds). Note that segments will end on the next keyframe after this number of seconds, so
    actual segment length may be longer.

    - **SegmentationMode** *(string) --* useInputSegmentation has been deprecated. The configured
    segment size is always used.

    - **SegmentsPerSubdirectory** *(integer) --* Number of segments to write to a subdirectory
    before starting a new one. directoryStructure must be subdirectoryPerStream for this setting to
    have an effect.

    - **StreamInfResolution** *(string) --* Include or exclude RESOLUTION attribute for video in
    EXT-X-STREAM-INF tag of variant manifest.

    - **TimedMetadataId3Frame** *(string) --* Indicates ID3 frame that has the timecode.

    - **TimedMetadataId3Period** *(integer) --* Timed Metadata interval in seconds.

    - **TimestampDeltaMilliseconds** *(integer) --* Provides an extra millisecond delta offset to
    fine tune the timestamps.

    - **TsFileMode** *(string) --* SEGMENTEDFILES: Emit the program as segments - multiple .ts media
    files. SINGLEFILE: Applies only if Mode field is VOD. Emit the program as a single .ts media
    file. The media manifest includes #EXT-X-BYTERANGE tags to index segments for playback. A
    typical use for this value is when sending the output to AWS Elemental MediaConvert, which can
    accept only a single media file. Playback while the channel is running is not guaranteed due to
    HTTP server caching.
    """


_ClientDeleteChannelResponseEncoderSettingsOutputGroupsOutputGroupSettingsMediaPackageGroupSettingsDestinationTypeDef = TypedDict(
    "_ClientDeleteChannelResponseEncoderSettingsOutputGroupsOutputGroupSettingsMediaPackageGroupSettingsDestinationTypeDef",
    {"DestinationRefId": str},
    total=False,
)


class ClientDeleteChannelResponseEncoderSettingsOutputGroupsOutputGroupSettingsMediaPackageGroupSettingsDestinationTypeDef(
    _ClientDeleteChannelResponseEncoderSettingsOutputGroupsOutputGroupSettingsMediaPackageGroupSettingsDestinationTypeDef
):
    """
    Type definition for
    `ClientDeleteChannelResponseEncoderSettingsOutputGroupsOutputGroupSettingsMediaPackageGroupSettings`
    `Destination`

    - **DestinationRefId** *(string) --* Placeholder documentation for __string
    """


_ClientDeleteChannelResponseEncoderSettingsOutputGroupsOutputGroupSettingsMediaPackageGroupSettingsTypeDef = TypedDict(
    "_ClientDeleteChannelResponseEncoderSettingsOutputGroupsOutputGroupSettingsMediaPackageGroupSettingsTypeDef",
    {
        "Destination": ClientDeleteChannelResponseEncoderSettingsOutputGroupsOutputGroupSettingsMediaPackageGroupSettingsDestinationTypeDef
    },
    total=False,
)


class ClientDeleteChannelResponseEncoderSettingsOutputGroupsOutputGroupSettingsMediaPackageGroupSettingsTypeDef(
    _ClientDeleteChannelResponseEncoderSettingsOutputGroupsOutputGroupSettingsMediaPackageGroupSettingsTypeDef
):
    """
    Type definition for `ClientDeleteChannelResponseEncoderSettingsOutputGroupsOutputGroupSettings`
    `MediaPackageGroupSettings`

    - **Destination** *(dict) --* MediaPackage channel destination.

      - **DestinationRefId** *(string) --* Placeholder documentation for __string
    """


_ClientDeleteChannelResponseEncoderSettingsOutputGroupsOutputGroupSettingsMsSmoothGroupSettingsDestinationTypeDef = TypedDict(
    "_ClientDeleteChannelResponseEncoderSettingsOutputGroupsOutputGroupSettingsMsSmoothGroupSettingsDestinationTypeDef",
    {"DestinationRefId": str},
    total=False,
)


class ClientDeleteChannelResponseEncoderSettingsOutputGroupsOutputGroupSettingsMsSmoothGroupSettingsDestinationTypeDef(
    _ClientDeleteChannelResponseEncoderSettingsOutputGroupsOutputGroupSettingsMsSmoothGroupSettingsDestinationTypeDef
):
    """
    Type definition for
    `ClientDeleteChannelResponseEncoderSettingsOutputGroupsOutputGroupSettingsMsSmoothGroupSettings`
    `Destination`

    - **DestinationRefId** *(string) --* Placeholder documentation for __string
    """


_ClientDeleteChannelResponseEncoderSettingsOutputGroupsOutputGroupSettingsMsSmoothGroupSettingsTypeDef = TypedDict(
    "_ClientDeleteChannelResponseEncoderSettingsOutputGroupsOutputGroupSettingsMsSmoothGroupSettingsTypeDef",
    {
        "AcquisitionPointId": str,
        "AudioOnlyTimecodeControl": str,
        "CertificateMode": str,
        "ConnectionRetryInterval": int,
        "Destination": ClientDeleteChannelResponseEncoderSettingsOutputGroupsOutputGroupSettingsMsSmoothGroupSettingsDestinationTypeDef,
        "EventId": str,
        "EventIdMode": str,
        "EventStopBehavior": str,
        "FilecacheDuration": int,
        "FragmentLength": int,
        "InputLossAction": str,
        "NumRetries": int,
        "RestartDelay": int,
        "SegmentationMode": str,
        "SendDelayMs": int,
        "SparseTrackType": str,
        "StreamManifestBehavior": str,
        "TimestampOffset": str,
        "TimestampOffsetMode": str,
    },
    total=False,
)


class ClientDeleteChannelResponseEncoderSettingsOutputGroupsOutputGroupSettingsMsSmoothGroupSettingsTypeDef(
    _ClientDeleteChannelResponseEncoderSettingsOutputGroupsOutputGroupSettingsMsSmoothGroupSettingsTypeDef
):
    """
    Type definition for `ClientDeleteChannelResponseEncoderSettingsOutputGroupsOutputGroupSettings`
    `MsSmoothGroupSettings`

    - **AcquisitionPointId** *(string) --* The value of the "Acquisition Point Identity" element
    used in each message placed in the sparse track. Only enabled if sparseTrackType is not "none".

    - **AudioOnlyTimecodeControl** *(string) --* If set to passthrough for an audio-only MS Smooth
    output, the fragment absolute time will be set to the current timecode. This option does not
    write timecodes to the audio elementary stream.

    - **CertificateMode** *(string) --* If set to verifyAuthenticity, verify the https certificate
    chain to a trusted Certificate Authority (CA). This will cause https outputs to self-signed
    certificates to fail.

    - **ConnectionRetryInterval** *(integer) --* Number of seconds to wait before retrying
    connection to the IIS server if the connection is lost. Content will be cached during this time
    and the cache will be be delivered to the IIS server once the connection is re-established.

    - **Destination** *(dict) --* Smooth Streaming publish point on an IIS server. Elemental Live
    acts as a "Push" encoder to IIS.

      - **DestinationRefId** *(string) --* Placeholder documentation for __string

    - **EventId** *(string) --* MS Smooth event ID to be sent to the IIS server. Should only be
    specified if eventIdMode is set to useConfigured.

    - **EventIdMode** *(string) --* Specifies whether or not to send an event ID to the IIS server.
    If no event ID is sent and the same Live Event is used without changing the publishing point,
    clients might see cached video from the previous run. Options: - "useConfigured" - use the value
    provided in eventId - "useTimestamp" - generate and send an event ID based on the current
    timestamp - "noEventId" - do not send an event ID to the IIS server.

    - **EventStopBehavior** *(string) --* When set to sendEos, send EOS signal to IIS server when
    stopping the event

    - **FilecacheDuration** *(integer) --* Size in seconds of file cache for streaming outputs.

    - **FragmentLength** *(integer) --* Length of mp4 fragments to generate (in seconds). Fragment
    length must be compatible with GOP size and framerate.

    - **InputLossAction** *(string) --* Parameter that control output group behavior on input loss.

    - **NumRetries** *(integer) --* Number of retry attempts.

    - **RestartDelay** *(integer) --* Number of seconds before initiating a restart due to output
    failure, due to exhausting the numRetries on one segment, or exceeding filecacheDuration.

    - **SegmentationMode** *(string) --* useInputSegmentation has been deprecated. The configured
    segment size is always used.

    - **SendDelayMs** *(integer) --* Number of milliseconds to delay the output from the second
    pipeline.

    - **SparseTrackType** *(string) --* If set to scte35, use incoming SCTE-35 messages to generate
    a sparse track in this group of MS-Smooth outputs.

    - **StreamManifestBehavior** *(string) --* When set to send, send stream manifest so publishing
    point doesn't start until all streams start.

    - **TimestampOffset** *(string) --* Timestamp offset for the event. Only used if
    timestampOffsetMode is set to useConfiguredOffset.

    - **TimestampOffsetMode** *(string) --* Type of timestamp date offset to use. -
    useEventStartDate: Use the date the event was started as the offset - useConfiguredOffset: Use
    an explicitly configured date as the offset
    """


_ClientDeleteChannelResponseEncoderSettingsOutputGroupsOutputGroupSettingsRtmpGroupSettingsTypeDef = TypedDict(
    "_ClientDeleteChannelResponseEncoderSettingsOutputGroupsOutputGroupSettingsRtmpGroupSettingsTypeDef",
    {
        "AuthenticationScheme": str,
        "CacheFullBehavior": str,
        "CacheLength": int,
        "CaptionData": str,
        "InputLossAction": str,
        "RestartDelay": int,
    },
    total=False,
)


class ClientDeleteChannelResponseEncoderSettingsOutputGroupsOutputGroupSettingsRtmpGroupSettingsTypeDef(
    _ClientDeleteChannelResponseEncoderSettingsOutputGroupsOutputGroupSettingsRtmpGroupSettingsTypeDef
):
    """
    Type definition for `ClientDeleteChannelResponseEncoderSettingsOutputGroupsOutputGroupSettings`
    `RtmpGroupSettings`

    - **AuthenticationScheme** *(string) --* Authentication scheme to use when connecting with CDN

    - **CacheFullBehavior** *(string) --* Controls behavior when content cache fills up. If remote
    origin server stalls the RTMP connection and does not accept content fast enough the 'Media
    Cache' will fill up. When the cache reaches the duration specified by cacheLength the cache will
    stop accepting new content. If set to disconnectImmediately, the RTMP output will force a
    disconnect. Clear the media cache, and reconnect after restartDelay seconds. If set to
    waitForServer, the RTMP output will wait up to 5 minutes to allow the origin server to begin
    accepting data again.

    - **CacheLength** *(integer) --* Cache length, in seconds, is used to calculate buffer size.

    - **CaptionData** *(string) --* Controls the types of data that passes to onCaptionInfo outputs.
    If set to 'all' then 608 and 708 carried DTVCC data will be passed. If set to
    'field1AndField2608' then DTVCC data will be stripped out, but 608 data from both fields will be
    passed. If set to 'field1608' then only the data carried in 608 from field 1 video will be
    passed.

    - **InputLossAction** *(string) --* Controls the behavior of this RTMP group if input becomes
    unavailable. - emitOutput: Emit a slate until input returns. - pauseOutput: Stop transmitting
    data until input returns. This does not close the underlying RTMP connection.

    - **RestartDelay** *(integer) --* If a streaming output fails, number of seconds to wait until a
    restart is initiated. A value of 0 means never restart.
    """


_ClientDeleteChannelResponseEncoderSettingsOutputGroupsOutputGroupSettingsUdpGroupSettingsTypeDef = TypedDict(
    "_ClientDeleteChannelResponseEncoderSettingsOutputGroupsOutputGroupSettingsUdpGroupSettingsTypeDef",
    {"InputLossAction": str, "TimedMetadataId3Frame": str, "TimedMetadataId3Period": int},
    total=False,
)


class ClientDeleteChannelResponseEncoderSettingsOutputGroupsOutputGroupSettingsUdpGroupSettingsTypeDef(
    _ClientDeleteChannelResponseEncoderSettingsOutputGroupsOutputGroupSettingsUdpGroupSettingsTypeDef
):
    """
    Type definition for `ClientDeleteChannelResponseEncoderSettingsOutputGroupsOutputGroupSettings`
    `UdpGroupSettings`

    - **InputLossAction** *(string) --* Specifies behavior of last resort when input video is lost,
    and no more backup inputs are available. When dropTs is selected the entire transport stream
    will stop being emitted. When dropProgram is selected the program can be dropped from the
    transport stream (and replaced with null packets to meet the TS bitrate requirement). Or, when
    emitProgram is chosen the transport stream will continue to be produced normally with repeat
    frames, black frames, or slate frames substituted for the absent input video.

    - **TimedMetadataId3Frame** *(string) --* Indicates ID3 frame that has the timecode.

    - **TimedMetadataId3Period** *(integer) --* Timed Metadata interval in seconds.
    """


_ClientDeleteChannelResponseEncoderSettingsOutputGroupsOutputGroupSettingsTypeDef = TypedDict(
    "_ClientDeleteChannelResponseEncoderSettingsOutputGroupsOutputGroupSettingsTypeDef",
    {
        "ArchiveGroupSettings": ClientDeleteChannelResponseEncoderSettingsOutputGroupsOutputGroupSettingsArchiveGroupSettingsTypeDef,
        "FrameCaptureGroupSettings": ClientDeleteChannelResponseEncoderSettingsOutputGroupsOutputGroupSettingsFrameCaptureGroupSettingsTypeDef,
        "HlsGroupSettings": ClientDeleteChannelResponseEncoderSettingsOutputGroupsOutputGroupSettingsHlsGroupSettingsTypeDef,
        "MediaPackageGroupSettings": ClientDeleteChannelResponseEncoderSettingsOutputGroupsOutputGroupSettingsMediaPackageGroupSettingsTypeDef,
        "MsSmoothGroupSettings": ClientDeleteChannelResponseEncoderSettingsOutputGroupsOutputGroupSettingsMsSmoothGroupSettingsTypeDef,
        "MultiplexGroupSettings": Dict,
        "RtmpGroupSettings": ClientDeleteChannelResponseEncoderSettingsOutputGroupsOutputGroupSettingsRtmpGroupSettingsTypeDef,
        "UdpGroupSettings": ClientDeleteChannelResponseEncoderSettingsOutputGroupsOutputGroupSettingsUdpGroupSettingsTypeDef,
    },
    total=False,
)


class ClientDeleteChannelResponseEncoderSettingsOutputGroupsOutputGroupSettingsTypeDef(
    _ClientDeleteChannelResponseEncoderSettingsOutputGroupsOutputGroupSettingsTypeDef
):
    """
    Type definition for `ClientDeleteChannelResponseEncoderSettingsOutputGroups`
    `OutputGroupSettings`

    - **ArchiveGroupSettings** *(dict) --* Archive Group Settings

      - **Destination** *(dict) --* A directory and base filename where archive files should be
      written.

        - **DestinationRefId** *(string) --* Placeholder documentation for __string

      - **RolloverInterval** *(integer) --* Number of seconds to write to archive file before
      closing and starting a new one.

    - **FrameCaptureGroupSettings** *(dict) --* Frame Capture Group Settings

      - **Destination** *(dict) --* The destination for the frame capture files. Either the URI for
      an Amazon S3 bucket and object, plus a file name prefix (for example,
      s3ssl://sportsDelivery/highlights/20180820/curling_) or the URI for a MediaStore container,
      plus a file name prefix (for example, mediastoressl://sportsDelivery/20180820/curling_). The
      final file names consist of the prefix from the destination field (for example, "curling_") +
      name modifier + the counter (5 digits, starting from 00001) + extension (which is always
      .jpg). For example, curlingLow.00001.jpg

        - **DestinationRefId** *(string) --* Placeholder documentation for __string

    - **HlsGroupSettings** *(dict) --* Hls Group Settings

      - **AdMarkers** *(list) --* Choose one or more ad marker types to pass SCTE35 signals through
      to this group of Apple HLS outputs.

        - *(string) --* Hls Ad Markers

      - **BaseUrlContent** *(string) --* A partial URI prefix that will be prepended to each output
      in the media .m3u8 file. Can be used if base manifest is delivered from a different URL than
      the main .m3u8 file.

      - **BaseUrlManifest** *(string) --* A partial URI prefix that will be prepended to each output
      in the media .m3u8 file. Can be used if base manifest is delivered from a different URL than
      the main .m3u8 file.

      - **CaptionLanguageMappings** *(list) --* Mapping of up to 4 caption channels to caption
      languages. Is only meaningful if captionLanguageSetting is set to "insert".

        - *(dict) --* Maps a caption channel to an ISO 693-2 language code
        (http://www.loc.gov/standards/iso639-2), with an optional description.

          - **CaptionChannel** *(integer) --* The closed caption channel being described by this
          CaptionLanguageMapping. Each channel mapping must have a unique channel number (maximum of
          4)

          - **LanguageCode** *(string) --* Three character ISO 639-2 language code (see
          http://www.loc.gov/standards/iso639-2)

          - **LanguageDescription** *(string) --* Textual description of language

      - **CaptionLanguageSetting** *(string) --* Applies only to 608 Embedded output captions.
      insert: Include CLOSED-CAPTIONS lines in the manifest. Specify at least one language in the
      CC1 Language Code field. One CLOSED-CAPTION line is added for each Language Code you specify.
      Make sure to specify the languages in the order in which they appear in the original source
      (if the source is embedded format) or the order of the caption selectors (if the source is
      other than embedded). Otherwise, languages in the manifest will not match up properly with the
      output captions. none: Include CLOSED-CAPTIONS=NONE line in the manifest. omit: Omit any
      CLOSED-CAPTIONS line from the manifest.

      - **ClientCache** *(string) --* When set to "disabled", sets the #EXT-X-ALLOW-CACHE:no tag in
      the manifest, which prevents clients from saving media segments for later replay.

      - **CodecSpecification** *(string) --* Specification to use (RFC-6381 or the default RFC-4281)
      during m3u8 playlist generation.

      - **ConstantIv** *(string) --* For use with encryptionType. This is a 128-bit, 16-byte hex
      value represented by a 32-character text string. If ivSource is set to "explicit" then this
      parameter is required and is used as the IV for encryption.

      - **Destination** *(dict) --* A directory or HTTP destination for the HLS segments, manifest
      files, and encryption keys (if enabled).

        - **DestinationRefId** *(string) --* Placeholder documentation for __string

      - **DirectoryStructure** *(string) --* Place segments in subdirectories.

      - **EncryptionType** *(string) --* Encrypts the segments with the given encryption scheme.
      Exclude this parameter if no encryption is desired.

      - **HlsCdnSettings** *(dict) --* Parameters that control interactions with the CDN.

        - **HlsAkamaiSettings** *(dict) --* Hls Akamai Settings

          - **ConnectionRetryInterval** *(integer) --* Number of seconds to wait before retrying
          connection to the CDN if the connection is lost.

          - **FilecacheDuration** *(integer) --* Size in seconds of file cache for streaming
          outputs.

          - **HttpTransferMode** *(string) --* Specify whether or not to use chunked transfer
          encoding to Akamai. User should contact Akamai to enable this feature.

          - **NumRetries** *(integer) --* Number of retry attempts that will be made before the Live
          Event is put into an error state.

          - **RestartDelay** *(integer) --* If a streaming output fails, number of seconds to wait
          until a restart is initiated. A value of 0 means never restart.

          - **Salt** *(string) --* Salt for authenticated Akamai.

          - **Token** *(string) --* Token parameter for authenticated akamai. If not specified,
          _gda_ is used.

        - **HlsBasicPutSettings** *(dict) --* Hls Basic Put Settings

          - **ConnectionRetryInterval** *(integer) --* Number of seconds to wait before retrying
          connection to the CDN if the connection is lost.

          - **FilecacheDuration** *(integer) --* Size in seconds of file cache for streaming
          outputs.

          - **NumRetries** *(integer) --* Number of retry attempts that will be made before the Live
          Event is put into an error state.

          - **RestartDelay** *(integer) --* If a streaming output fails, number of seconds to wait
          until a restart is initiated. A value of 0 means never restart.

        - **HlsMediaStoreSettings** *(dict) --* Hls Media Store Settings

          - **ConnectionRetryInterval** *(integer) --* Number of seconds to wait before retrying
          connection to the CDN if the connection is lost.

          - **FilecacheDuration** *(integer) --* Size in seconds of file cache for streaming
          outputs.

          - **MediaStoreStorageClass** *(string) --* When set to temporal, output files are stored
          in non-persistent memory for faster reading and writing.

          - **NumRetries** *(integer) --* Number of retry attempts that will be made before the Live
          Event is put into an error state.

          - **RestartDelay** *(integer) --* If a streaming output fails, number of seconds to wait
          until a restart is initiated. A value of 0 means never restart.

        - **HlsWebdavSettings** *(dict) --* Hls Webdav Settings

          - **ConnectionRetryInterval** *(integer) --* Number of seconds to wait before retrying
          connection to the CDN if the connection is lost.

          - **FilecacheDuration** *(integer) --* Size in seconds of file cache for streaming
          outputs.

          - **HttpTransferMode** *(string) --* Specify whether or not to use chunked transfer
          encoding to WebDAV.

          - **NumRetries** *(integer) --* Number of retry attempts that will be made before the Live
          Event is put into an error state.

          - **RestartDelay** *(integer) --* If a streaming output fails, number of seconds to wait
          until a restart is initiated. A value of 0 means never restart.

      - **IFrameOnlyPlaylists** *(string) --* DISABLED: Do not create an I-frame-only manifest, but
      do create the master and media manifests (according to the Output Selection field). STANDARD:
      Create an I-frame-only manifest for each output that contains video, as well as the other
      manifests (according to the Output Selection field). The I-frame manifest contains a
      #EXT-X-I-FRAMES-ONLY tag to indicate it is I-frame only, and one or more #EXT-X-BYTERANGE
      entries identifying the I-frame position. For example, #EXT-X-BYTERANGE:160364@1461888"

      - **IndexNSegments** *(integer) --* Applies only if Mode field is LIVE. Specifies the maximum
      number of segments in the media manifest file. After this maximum, older segments are removed
      from the media manifest. This number must be less than or equal to the Keep Segments field.

      - **InputLossAction** *(string) --* Parameter that control output group behavior on input
      loss.

      - **IvInManifest** *(string) --* For use with encryptionType. The IV (Initialization Vector)
      is a 128-bit number used in conjunction with the key for encrypting blocks. If set to
      "include", IV is listed in the manifest, otherwise the IV is not in the manifest.

      - **IvSource** *(string) --* For use with encryptionType. The IV (Initialization Vector) is a
      128-bit number used in conjunction with the key for encrypting blocks. If this setting is
      "followsSegmentNumber", it will cause the IV to change every segment (to match the segment
      number). If this is set to "explicit", you must enter a constantIv value.

      - **KeepSegments** *(integer) --* Applies only if Mode field is LIVE. Specifies the number of
      media segments (.ts files) to retain in the destination directory.

      - **KeyFormat** *(string) --* The value specifies how the key is represented in the resource
      identified by the URI. If parameter is absent, an implicit value of "identity" is used. A
      reverse DNS string can also be given.

      - **KeyFormatVersions** *(string) --* Either a single positive integer version value or a
      slash delimited list of version values (1/2/3).

      - **KeyProviderSettings** *(dict) --* The key provider settings.

        - **StaticKeySettings** *(dict) --* Static Key Settings

          - **KeyProviderServer** *(dict) --* The URL of the license server used for protecting
          content.

            - **PasswordParam** *(string) --* key used to extract the password from EC2 Parameter
            store

            - **Uri** *(string) --* Uniform Resource Identifier - This should be a path to a file
            accessible to the Live system (eg. a http:// URI) depending on the output type. For
            example, a RTMP destination should have a uri simliar to: "rtmp://fmsserver/live".

            - **Username** *(string) --* Documentation update needed

          - **StaticKeyValue** *(string) --* Static key value as a 32 character hexadecimal string.

      - **ManifestCompression** *(string) --* When set to gzip, compresses HLS playlist.

      - **ManifestDurationFormat** *(string) --* Indicates whether the output manifest should use
      floating point or integer values for segment duration.

      - **MinSegmentLength** *(integer) --* When set, minimumSegmentLength is enforced by looking
      ahead and back within the specified range for a nearby avail and extending the segment size if
      needed.

      - **Mode** *(string) --* If "vod", all segments are indexed and kept permanently in the
      destination and manifest. If "live", only the number segments specified in keepSegments and
      indexNSegments are kept; newer segments replace older segments, which may prevent players from
      rewinding all the way to the beginning of the event. VOD mode uses HLS EXT-X-PLAYLIST-TYPE of
      EVENT while the channel is running, converting it to a "VOD" type manifest on completion of
      the stream.

      - **OutputSelection** *(string) --* MANIFESTSANDSEGMENTS: Generates manifests (master
      manifest, if applicable, and media manifests) for this output group. SEGMENTSONLY: Does not
      generate any manifests for this output group.

      - **ProgramDateTime** *(string) --* Includes or excludes EXT-X-PROGRAM-DATE-TIME tag in .m3u8
      manifest files. The value is calculated as follows: either the program date and time are
      initialized using the input timecode source, or the time is initialized using the input
      timecode source and the date is initialized using the timestampOffset.

      - **ProgramDateTimePeriod** *(integer) --* Period of insertion of EXT-X-PROGRAM-DATE-TIME
      entry, in seconds.

      - **RedundantManifest** *(string) --* ENABLED: The master manifest (.m3u8 file) for each
      pipeline includes information about both pipelines: first its own media files, then the media
      files of the other pipeline. This feature allows playout device that support stale manifest
      detection to switch from one manifest to the other, when the current manifest seems to be
      stale. There are still two destinations and two master manifests, but both master manifests
      reference the media files from both pipelines. DISABLED: The master manifest (.m3u8 file) for
      each pipeline includes information about its own pipeline only. For an HLS output group with
      MediaPackage as the destination, the DISABLED behavior is always followed. MediaPackage
      regenerates the manifests it serves to players so a redundant manifest from MediaLive is
      irrelevant.

      - **SegmentLength** *(integer) --* Length of MPEG-2 Transport Stream segments to create (in
      seconds). Note that segments will end on the next keyframe after this number of seconds, so
      actual segment length may be longer.

      - **SegmentationMode** *(string) --* useInputSegmentation has been deprecated. The configured
      segment size is always used.

      - **SegmentsPerSubdirectory** *(integer) --* Number of segments to write to a subdirectory
      before starting a new one. directoryStructure must be subdirectoryPerStream for this setting
      to have an effect.

      - **StreamInfResolution** *(string) --* Include or exclude RESOLUTION attribute for video in
      EXT-X-STREAM-INF tag of variant manifest.

      - **TimedMetadataId3Frame** *(string) --* Indicates ID3 frame that has the timecode.

      - **TimedMetadataId3Period** *(integer) --* Timed Metadata interval in seconds.

      - **TimestampDeltaMilliseconds** *(integer) --* Provides an extra millisecond delta offset to
      fine tune the timestamps.

      - **TsFileMode** *(string) --* SEGMENTEDFILES: Emit the program as segments - multiple .ts
      media files. SINGLEFILE: Applies only if Mode field is VOD. Emit the program as a single .ts
      media file. The media manifest includes #EXT-X-BYTERANGE tags to index segments for playback.
      A typical use for this value is when sending the output to AWS Elemental MediaConvert, which
      can accept only a single media file. Playback while the channel is running is not guaranteed
      due to HTTP server caching.

    - **MediaPackageGroupSettings** *(dict) --* Media Package Group Settings

      - **Destination** *(dict) --* MediaPackage channel destination.

        - **DestinationRefId** *(string) --* Placeholder documentation for __string

    - **MsSmoothGroupSettings** *(dict) --* Ms Smooth Group Settings

      - **AcquisitionPointId** *(string) --* The value of the "Acquisition Point Identity" element
      used in each message placed in the sparse track. Only enabled if sparseTrackType is not
      "none".

      - **AudioOnlyTimecodeControl** *(string) --* If set to passthrough for an audio-only MS Smooth
      output, the fragment absolute time will be set to the current timecode. This option does not
      write timecodes to the audio elementary stream.

      - **CertificateMode** *(string) --* If set to verifyAuthenticity, verify the https certificate
      chain to a trusted Certificate Authority (CA). This will cause https outputs to self-signed
      certificates to fail.

      - **ConnectionRetryInterval** *(integer) --* Number of seconds to wait before retrying
      connection to the IIS server if the connection is lost. Content will be cached during this
      time and the cache will be be delivered to the IIS server once the connection is
      re-established.

      - **Destination** *(dict) --* Smooth Streaming publish point on an IIS server. Elemental Live
      acts as a "Push" encoder to IIS.

        - **DestinationRefId** *(string) --* Placeholder documentation for __string

      - **EventId** *(string) --* MS Smooth event ID to be sent to the IIS server. Should only be
      specified if eventIdMode is set to useConfigured.

      - **EventIdMode** *(string) --* Specifies whether or not to send an event ID to the IIS
      server. If no event ID is sent and the same Live Event is used without changing the publishing
      point, clients might see cached video from the previous run. Options: - "useConfigured" - use
      the value provided in eventId - "useTimestamp" - generate and send an event ID based on the
      current timestamp - "noEventId" - do not send an event ID to the IIS server.

      - **EventStopBehavior** *(string) --* When set to sendEos, send EOS signal to IIS server when
      stopping the event

      - **FilecacheDuration** *(integer) --* Size in seconds of file cache for streaming outputs.

      - **FragmentLength** *(integer) --* Length of mp4 fragments to generate (in seconds). Fragment
      length must be compatible with GOP size and framerate.

      - **InputLossAction** *(string) --* Parameter that control output group behavior on input
      loss.

      - **NumRetries** *(integer) --* Number of retry attempts.

      - **RestartDelay** *(integer) --* Number of seconds before initiating a restart due to output
      failure, due to exhausting the numRetries on one segment, or exceeding filecacheDuration.

      - **SegmentationMode** *(string) --* useInputSegmentation has been deprecated. The configured
      segment size is always used.

      - **SendDelayMs** *(integer) --* Number of milliseconds to delay the output from the second
      pipeline.

      - **SparseTrackType** *(string) --* If set to scte35, use incoming SCTE-35 messages to
      generate a sparse track in this group of MS-Smooth outputs.

      - **StreamManifestBehavior** *(string) --* When set to send, send stream manifest so
      publishing point doesn't start until all streams start.

      - **TimestampOffset** *(string) --* Timestamp offset for the event. Only used if
      timestampOffsetMode is set to useConfiguredOffset.

      - **TimestampOffsetMode** *(string) --* Type of timestamp date offset to use. -
      useEventStartDate: Use the date the event was started as the offset - useConfiguredOffset: Use
      an explicitly configured date as the offset

    - **MultiplexGroupSettings** *(dict) --* Multiplex Group Settings

    - **RtmpGroupSettings** *(dict) --* Rtmp Group Settings

      - **AuthenticationScheme** *(string) --* Authentication scheme to use when connecting with CDN

      - **CacheFullBehavior** *(string) --* Controls behavior when content cache fills up. If remote
      origin server stalls the RTMP connection and does not accept content fast enough the 'Media
      Cache' will fill up. When the cache reaches the duration specified by cacheLength the cache
      will stop accepting new content. If set to disconnectImmediately, the RTMP output will force a
      disconnect. Clear the media cache, and reconnect after restartDelay seconds. If set to
      waitForServer, the RTMP output will wait up to 5 minutes to allow the origin server to begin
      accepting data again.

      - **CacheLength** *(integer) --* Cache length, in seconds, is used to calculate buffer size.

      - **CaptionData** *(string) --* Controls the types of data that passes to onCaptionInfo
      outputs. If set to 'all' then 608 and 708 carried DTVCC data will be passed. If set to
      'field1AndField2608' then DTVCC data will be stripped out, but 608 data from both fields will
      be passed. If set to 'field1608' then only the data carried in 608 from field 1 video will be
      passed.

      - **InputLossAction** *(string) --* Controls the behavior of this RTMP group if input becomes
      unavailable. - emitOutput: Emit a slate until input returns. - pauseOutput: Stop transmitting
      data until input returns. This does not close the underlying RTMP connection.

      - **RestartDelay** *(integer) --* If a streaming output fails, number of seconds to wait until
      a restart is initiated. A value of 0 means never restart.

    - **UdpGroupSettings** *(dict) --* Udp Group Settings

      - **InputLossAction** *(string) --* Specifies behavior of last resort when input video is
      lost, and no more backup inputs are available. When dropTs is selected the entire transport
      stream will stop being emitted. When dropProgram is selected the program can be dropped from
      the transport stream (and replaced with null packets to meet the TS bitrate requirement). Or,
      when emitProgram is chosen the transport stream will continue to be produced normally with
      repeat frames, black frames, or slate frames substituted for the absent input video.

      - **TimedMetadataId3Frame** *(string) --* Indicates ID3 frame that has the timecode.

      - **TimedMetadataId3Period** *(integer) --* Timed Metadata interval in seconds.
    """


_ClientDeleteChannelResponseEncoderSettingsOutputGroupsOutputsOutputSettingsArchiveOutputSettingsContainerSettingsM2tsSettingsDvbNitSettingsTypeDef = TypedDict(
    "_ClientDeleteChannelResponseEncoderSettingsOutputGroupsOutputsOutputSettingsArchiveOutputSettingsContainerSettingsM2tsSettingsDvbNitSettingsTypeDef",
    {"NetworkId": int, "NetworkName": str, "RepInterval": int},
    total=False,
)


class ClientDeleteChannelResponseEncoderSettingsOutputGroupsOutputsOutputSettingsArchiveOutputSettingsContainerSettingsM2tsSettingsDvbNitSettingsTypeDef(
    _ClientDeleteChannelResponseEncoderSettingsOutputGroupsOutputsOutputSettingsArchiveOutputSettingsContainerSettingsM2tsSettingsDvbNitSettingsTypeDef
):
    """
    Type definition for
    `ClientDeleteChannelResponseEncoderSettingsOutputGroupsOutputsOutputSettingsArchiveOutputSettingsContainerSettingsM2tsSettings`
    `DvbNitSettings`

    - **NetworkId** *(integer) --* The numeric value placed in the Network Information Table (NIT).

    - **NetworkName** *(string) --* The network name text placed in the networkNameDescriptor inside
    the Network Information Table. Maximum length is 256 characters.

    - **RepInterval** *(integer) --* The number of milliseconds between instances of this table in
    the output transport stream.
    """


_ClientDeleteChannelResponseEncoderSettingsOutputGroupsOutputsOutputSettingsArchiveOutputSettingsContainerSettingsM2tsSettingsDvbSdtSettingsTypeDef = TypedDict(
    "_ClientDeleteChannelResponseEncoderSettingsOutputGroupsOutputsOutputSettingsArchiveOutputSettingsContainerSettingsM2tsSettingsDvbSdtSettingsTypeDef",
    {"OutputSdt": str, "RepInterval": int, "ServiceName": str, "ServiceProviderName": str},
    total=False,
)


class ClientDeleteChannelResponseEncoderSettingsOutputGroupsOutputsOutputSettingsArchiveOutputSettingsContainerSettingsM2tsSettingsDvbSdtSettingsTypeDef(
    _ClientDeleteChannelResponseEncoderSettingsOutputGroupsOutputsOutputSettingsArchiveOutputSettingsContainerSettingsM2tsSettingsDvbSdtSettingsTypeDef
):
    """
    Type definition for
    `ClientDeleteChannelResponseEncoderSettingsOutputGroupsOutputsOutputSettingsArchiveOutputSettingsContainerSettingsM2tsSettings`
    `DvbSdtSettings`

    - **OutputSdt** *(string) --* Selects method of inserting SDT information into output stream.
    The sdtFollow setting copies SDT information from input stream to output stream. The
    sdtFollowIfPresent setting copies SDT information from input stream to output stream if SDT
    information is present in the input, otherwise it will fall back on the user-defined values. The
    sdtManual setting means user will enter the SDT information. The sdtNone setting means output
    stream will not contain SDT information.

    - **RepInterval** *(integer) --* The number of milliseconds between instances of this table in
    the output transport stream.

    - **ServiceName** *(string) --* The service name placed in the serviceDescriptor in the Service
    Description Table. Maximum length is 256 characters.

    - **ServiceProviderName** *(string) --* The service provider name placed in the
    serviceDescriptor in the Service Description Table. Maximum length is 256 characters.
    """


_ClientDeleteChannelResponseEncoderSettingsOutputGroupsOutputsOutputSettingsArchiveOutputSettingsContainerSettingsM2tsSettingsDvbTdtSettingsTypeDef = TypedDict(
    "_ClientDeleteChannelResponseEncoderSettingsOutputGroupsOutputsOutputSettingsArchiveOutputSettingsContainerSettingsM2tsSettingsDvbTdtSettingsTypeDef",
    {"RepInterval": int},
    total=False,
)


class ClientDeleteChannelResponseEncoderSettingsOutputGroupsOutputsOutputSettingsArchiveOutputSettingsContainerSettingsM2tsSettingsDvbTdtSettingsTypeDef(
    _ClientDeleteChannelResponseEncoderSettingsOutputGroupsOutputsOutputSettingsArchiveOutputSettingsContainerSettingsM2tsSettingsDvbTdtSettingsTypeDef
):
    """
    Type definition for
    `ClientDeleteChannelResponseEncoderSettingsOutputGroupsOutputsOutputSettingsArchiveOutputSettingsContainerSettingsM2tsSettings`
    `DvbTdtSettings`

    - **RepInterval** *(integer) --* The number of milliseconds between instances of this table in
    the output transport stream.
    """


_ClientDeleteChannelResponseEncoderSettingsOutputGroupsOutputsOutputSettingsArchiveOutputSettingsContainerSettingsM2tsSettingsTypeDef = TypedDict(
    "_ClientDeleteChannelResponseEncoderSettingsOutputGroupsOutputsOutputSettingsArchiveOutputSettingsContainerSettingsM2tsSettingsTypeDef",
    {
        "AbsentInputAudioBehavior": str,
        "Arib": str,
        "AribCaptionsPid": str,
        "AribCaptionsPidControl": str,
        "AudioBufferModel": str,
        "AudioFramesPerPes": int,
        "AudioPids": str,
        "AudioStreamType": str,
        "Bitrate": int,
        "BufferModel": str,
        "CcDescriptor": str,
        "DvbNitSettings": ClientDeleteChannelResponseEncoderSettingsOutputGroupsOutputsOutputSettingsArchiveOutputSettingsContainerSettingsM2tsSettingsDvbNitSettingsTypeDef,
        "DvbSdtSettings": ClientDeleteChannelResponseEncoderSettingsOutputGroupsOutputsOutputSettingsArchiveOutputSettingsContainerSettingsM2tsSettingsDvbSdtSettingsTypeDef,
        "DvbSubPids": str,
        "DvbTdtSettings": ClientDeleteChannelResponseEncoderSettingsOutputGroupsOutputsOutputSettingsArchiveOutputSettingsContainerSettingsM2tsSettingsDvbTdtSettingsTypeDef,
        "DvbTeletextPid": str,
        "Ebif": str,
        "EbpAudioInterval": str,
        "EbpLookaheadMs": int,
        "EbpPlacement": str,
        "EcmPid": str,
        "EsRateInPes": str,
        "EtvPlatformPid": str,
        "EtvSignalPid": str,
        "FragmentTime": float,
        "Klv": str,
        "KlvDataPids": str,
        "NielsenId3Behavior": str,
        "NullPacketBitrate": float,
        "PatInterval": int,
        "PcrControl": str,
        "PcrPeriod": int,
        "PcrPid": str,
        "PmtInterval": int,
        "PmtPid": str,
        "ProgramNum": int,
        "RateMode": str,
        "Scte27Pids": str,
        "Scte35Control": str,
        "Scte35Pid": str,
        "SegmentationMarkers": str,
        "SegmentationStyle": str,
        "SegmentationTime": float,
        "TimedMetadataBehavior": str,
        "TimedMetadataPid": str,
        "TransportStreamId": int,
        "VideoPid": str,
    },
    total=False,
)


class ClientDeleteChannelResponseEncoderSettingsOutputGroupsOutputsOutputSettingsArchiveOutputSettingsContainerSettingsM2tsSettingsTypeDef(
    _ClientDeleteChannelResponseEncoderSettingsOutputGroupsOutputsOutputSettingsArchiveOutputSettingsContainerSettingsM2tsSettingsTypeDef
):
    """
    Type definition for
    `ClientDeleteChannelResponseEncoderSettingsOutputGroupsOutputsOutputSettingsArchiveOutputSettingsContainerSettings`
    `M2tsSettings`

    - **AbsentInputAudioBehavior** *(string) --* When set to drop, output audio streams will be
    removed from the program if the selected input audio stream is removed from the input. This
    allows the output audio configuration to dynamically change based on input configuration. If
    this is set to encodeSilence, all output audio streams will output encoded silence when not
    connected to an active input stream.

    - **Arib** *(string) --* When set to enabled, uses ARIB-compliant field muxing and removes video
    descriptor.

    - **AribCaptionsPid** *(string) --* Packet Identifier (PID) for ARIB Captions in the transport
    stream. Can be entered as a decimal or hexadecimal value. Valid values are 32 (or 0x20)..8182
    (or 0x1ff6).

    - **AribCaptionsPidControl** *(string) --* If set to auto, pid number used for ARIB Captions
    will be auto-selected from unused pids. If set to useConfigured, ARIB Captions will be on the
    configured pid number.

    - **AudioBufferModel** *(string) --* When set to dvb, uses DVB buffer model for Dolby Digital
    audio. When set to atsc, the ATSC model is used.

    - **AudioFramesPerPes** *(integer) --* The number of audio frames to insert for each PES packet.

    - **AudioPids** *(string) --* Packet Identifier (PID) of the elementary audio stream(s) in the
    transport stream. Multiple values are accepted, and can be entered in ranges and/or by comma
    separation. Can be entered as decimal or hexadecimal values. Each PID specified must be in the
    range of 32 (or 0x20)..8182 (or 0x1ff6).

    - **AudioStreamType** *(string) --* When set to atsc, uses stream type = 0x81 for AC3 and stream
    type = 0x87 for EAC3. When set to dvb, uses stream type = 0x06.

    - **Bitrate** *(integer) --* The output bitrate of the transport stream in bits per second.
    Setting to 0 lets the muxer automatically determine the appropriate bitrate.

    - **BufferModel** *(string) --* If set to multiplex, use multiplex buffer model for accurate
    interleaving. Setting to bufferModel to none can lead to lower latency, but low-memory devices
    may not be able to play back the stream without interruptions.

    - **CcDescriptor** *(string) --* When set to enabled, generates captionServiceDescriptor in PMT.

    - **DvbNitSettings** *(dict) --* Inserts DVB Network Information Table (NIT) at the specified
    table repetition interval.

      - **NetworkId** *(integer) --* The numeric value placed in the Network Information Table
      (NIT).

      - **NetworkName** *(string) --* The network name text placed in the networkNameDescriptor
      inside the Network Information Table. Maximum length is 256 characters.

      - **RepInterval** *(integer) --* The number of milliseconds between instances of this table in
      the output transport stream.

    - **DvbSdtSettings** *(dict) --* Inserts DVB Service Description Table (SDT) at the specified
    table repetition interval.

      - **OutputSdt** *(string) --* Selects method of inserting SDT information into output stream.
      The sdtFollow setting copies SDT information from input stream to output stream. The
      sdtFollowIfPresent setting copies SDT information from input stream to output stream if SDT
      information is present in the input, otherwise it will fall back on the user-defined values.
      The sdtManual setting means user will enter the SDT information. The sdtNone setting means
      output stream will not contain SDT information.

      - **RepInterval** *(integer) --* The number of milliseconds between instances of this table in
      the output transport stream.

      - **ServiceName** *(string) --* The service name placed in the serviceDescriptor in the
      Service Description Table. Maximum length is 256 characters.

      - **ServiceProviderName** *(string) --* The service provider name placed in the
      serviceDescriptor in the Service Description Table. Maximum length is 256 characters.

    - **DvbSubPids** *(string) --* Packet Identifier (PID) for input source DVB Subtitle data to
    this output. Multiple values are accepted, and can be entered in ranges and/or by comma
    separation. Can be entered as decimal or hexadecimal values. Each PID specified must be in the
    range of 32 (or 0x20)..8182 (or 0x1ff6).

    - **DvbTdtSettings** *(dict) --* Inserts DVB Time and Date Table (TDT) at the specified table
    repetition interval.

      - **RepInterval** *(integer) --* The number of milliseconds between instances of this table in
      the output transport stream.

    - **DvbTeletextPid** *(string) --* Packet Identifier (PID) for input source DVB Teletext data to
    this output. Can be entered as a decimal or hexadecimal value. Valid values are 32 (or
    0x20)..8182 (or 0x1ff6).

    - **Ebif** *(string) --* If set to passthrough, passes any EBIF data from the input source to
    this output.

    - **EbpAudioInterval** *(string) --* When videoAndFixedIntervals is selected, audio EBP markers
    will be added to partitions 3 and 4. The interval between these additional markers will be
    fixed, and will be slightly shorter than the video EBP marker interval. Only available when EBP
    Cablelabs segmentation markers are selected. Partitions 1 and 2 will always follow the video
    interval.

    - **EbpLookaheadMs** *(integer) --* When set, enforces that Encoder Boundary Points do not come
    within the specified time interval of each other by looking ahead at input video. If another EBP
    is going to come in within the specified time interval, the current EBP is not emitted, and the
    segment is "stretched" to the next marker. The lookahead value does not add latency to the
    system. The Live Event must be configured elsewhere to create sufficient latency to make the
    lookahead accurate.

    - **EbpPlacement** *(string) --* Controls placement of EBP on Audio PIDs. If set to
    videoAndAudioPids, EBP markers will be placed on the video PID and all audio PIDs. If set to
    videoPid, EBP markers will be placed on only the video PID.

    - **EcmPid** *(string) --* This field is unused and deprecated.

    - **EsRateInPes** *(string) --* Include or exclude the ES Rate field in the PES header.

    - **EtvPlatformPid** *(string) --* Packet Identifier (PID) for input source ETV Platform data to
    this output. Can be entered as a decimal or hexadecimal value. Valid values are 32 (or
    0x20)..8182 (or 0x1ff6).

    - **EtvSignalPid** *(string) --* Packet Identifier (PID) for input source ETV Signal data to
    this output. Can be entered as a decimal or hexadecimal value. Valid values are 32 (or
    0x20)..8182 (or 0x1ff6).

    - **FragmentTime** *(float) --* The length in seconds of each fragment. Only used with EBP
    markers.

    - **Klv** *(string) --* If set to passthrough, passes any KLV data from the input source to this
    output.

    - **KlvDataPids** *(string) --* Packet Identifier (PID) for input source KLV data to this
    output. Multiple values are accepted, and can be entered in ranges and/or by comma separation.
    Can be entered as decimal or hexadecimal values. Each PID specified must be in the range of 32
    (or 0x20)..8182 (or 0x1ff6).

    - **NielsenId3Behavior** *(string) --* If set to passthrough, Nielsen inaudible tones for media
    tracking will be detected in the input audio and an equivalent ID3 tag will be inserted in the
    output.

    - **NullPacketBitrate** *(float) --* Value in bits per second of extra null packets to insert
    into the transport stream. This can be used if a downstream encryption system requires periodic
    null packets.

    - **PatInterval** *(integer) --* The number of milliseconds between instances of this table in
    the output transport stream. Valid values are 0, 10..1000.

    - **PcrControl** *(string) --* When set to pcrEveryPesPacket, a Program Clock Reference value is
    inserted for every Packetized Elementary Stream (PES) header. This parameter is effective only
    when the PCR PID is the same as the video or audio elementary stream.

    - **PcrPeriod** *(integer) --* Maximum time in milliseconds between Program Clock Reference
    (PCRs) inserted into the transport stream.

    - **PcrPid** *(string) --* Packet Identifier (PID) of the Program Clock Reference (PCR) in the
    transport stream. When no value is given, the encoder will assign the same value as the Video
    PID. Can be entered as a decimal or hexadecimal value. Valid values are 32 (or 0x20)..8182 (or
    0x1ff6).

    - **PmtInterval** *(integer) --* The number of milliseconds between instances of this table in
    the output transport stream. Valid values are 0, 10..1000.

    - **PmtPid** *(string) --* Packet Identifier (PID) for the Program Map Table (PMT) in the
    transport stream. Can be entered as a decimal or hexadecimal value. Valid values are 32 (or
    0x20)..8182 (or 0x1ff6).

    - **ProgramNum** *(integer) --* The value of the program number field in the Program Map Table.

    - **RateMode** *(string) --* When vbr, does not insert null packets into transport stream to
    fill specified bitrate. The bitrate setting acts as the maximum bitrate when vbr is set.

    - **Scte27Pids** *(string) --* Packet Identifier (PID) for input source SCTE-27 data to this
    output. Multiple values are accepted, and can be entered in ranges and/or by comma separation.
    Can be entered as decimal or hexadecimal values. Each PID specified must be in the range of 32
    (or 0x20)..8182 (or 0x1ff6).

    - **Scte35Control** *(string) --* Optionally pass SCTE-35 signals from the input source to this
    output.

    - **Scte35Pid** *(string) --* Packet Identifier (PID) of the SCTE-35 stream in the transport
    stream. Can be entered as a decimal or hexadecimal value. Valid values are 32 (or 0x20)..8182
    (or 0x1ff6).

    - **SegmentationMarkers** *(string) --* Inserts segmentation markers at each segmentationTime
    period. raiSegstart sets the Random Access Indicator bit in the adaptation field. raiAdapt sets
    the RAI bit and adds the current timecode in the private data bytes. psiSegstart inserts PAT and
    PMT tables at the start of segments. ebp adds Encoder Boundary Point information to the
    adaptation field as per OpenCable specification OC-SP-EBP-I01-130118. ebpLegacy adds Encoder
    Boundary Point information to the adaptation field using a legacy proprietary format.

    - **SegmentationStyle** *(string) --* The segmentation style parameter controls how segmentation
    markers are inserted into the transport stream. With avails, it is possible that segments may be
    truncated, which can influence where future segmentation markers are inserted. When a
    segmentation style of "resetCadence" is selected and a segment is truncated due to an avail, we
    will reset the segmentation cadence. This means the subsequent segment will have a duration of
    $segmentationTime seconds. When a segmentation style of "maintainCadence" is selected and a
    segment is truncated due to an avail, we will not reset the segmentation cadence. This means the
    subsequent segment will likely be truncated as well. However, all segments after that will have
    a duration of $segmentationTime seconds. Note that EBP lookahead is a slight exception to this
    rule.

    - **SegmentationTime** *(float) --* The length in seconds of each segment. Required unless
    markers is set to None_.

    - **TimedMetadataBehavior** *(string) --* When set to passthrough, timed metadata will be passed
    through from input to output.

    - **TimedMetadataPid** *(string) --* Packet Identifier (PID) of the timed metadata stream in the
    transport stream. Can be entered as a decimal or hexadecimal value. Valid values are 32 (or
    0x20)..8182 (or 0x1ff6).

    - **TransportStreamId** *(integer) --* The value of the transport stream ID field in the Program
    Map Table.

    - **VideoPid** *(string) --* Packet Identifier (PID) of the elementary video stream in the
    transport stream. Can be entered as a decimal or hexadecimal value. Valid values are 32 (or
    0x20)..8182 (or 0x1ff6).
    """


_ClientDeleteChannelResponseEncoderSettingsOutputGroupsOutputsOutputSettingsArchiveOutputSettingsContainerSettingsTypeDef = TypedDict(
    "_ClientDeleteChannelResponseEncoderSettingsOutputGroupsOutputsOutputSettingsArchiveOutputSettingsContainerSettingsTypeDef",
    {
        "M2tsSettings": ClientDeleteChannelResponseEncoderSettingsOutputGroupsOutputsOutputSettingsArchiveOutputSettingsContainerSettingsM2tsSettingsTypeDef
    },
    total=False,
)


class ClientDeleteChannelResponseEncoderSettingsOutputGroupsOutputsOutputSettingsArchiveOutputSettingsContainerSettingsTypeDef(
    _ClientDeleteChannelResponseEncoderSettingsOutputGroupsOutputsOutputSettingsArchiveOutputSettingsContainerSettingsTypeDef
):
    """
    Type definition for
    `ClientDeleteChannelResponseEncoderSettingsOutputGroupsOutputsOutputSettingsArchiveOutputSettings`
    `ContainerSettings`

    - **M2tsSettings** *(dict) --* M2ts Settings

      - **AbsentInputAudioBehavior** *(string) --* When set to drop, output audio streams will be
      removed from the program if the selected input audio stream is removed from the input. This
      allows the output audio configuration to dynamically change based on input configuration. If
      this is set to encodeSilence, all output audio streams will output encoded silence when not
      connected to an active input stream.

      - **Arib** *(string) --* When set to enabled, uses ARIB-compliant field muxing and removes
      video descriptor.

      - **AribCaptionsPid** *(string) --* Packet Identifier (PID) for ARIB Captions in the transport
      stream. Can be entered as a decimal or hexadecimal value. Valid values are 32 (or 0x20)..8182
      (or 0x1ff6).

      - **AribCaptionsPidControl** *(string) --* If set to auto, pid number used for ARIB Captions
      will be auto-selected from unused pids. If set to useConfigured, ARIB Captions will be on the
      configured pid number.

      - **AudioBufferModel** *(string) --* When set to dvb, uses DVB buffer model for Dolby Digital
      audio. When set to atsc, the ATSC model is used.

      - **AudioFramesPerPes** *(integer) --* The number of audio frames to insert for each PES
      packet.

      - **AudioPids** *(string) --* Packet Identifier (PID) of the elementary audio stream(s) in the
      transport stream. Multiple values are accepted, and can be entered in ranges and/or by comma
      separation. Can be entered as decimal or hexadecimal values. Each PID specified must be in the
      range of 32 (or 0x20)..8182 (or 0x1ff6).

      - **AudioStreamType** *(string) --* When set to atsc, uses stream type = 0x81 for AC3 and
      stream type = 0x87 for EAC3. When set to dvb, uses stream type = 0x06.

      - **Bitrate** *(integer) --* The output bitrate of the transport stream in bits per second.
      Setting to 0 lets the muxer automatically determine the appropriate bitrate.

      - **BufferModel** *(string) --* If set to multiplex, use multiplex buffer model for accurate
      interleaving. Setting to bufferModel to none can lead to lower latency, but low-memory devices
      may not be able to play back the stream without interruptions.

      - **CcDescriptor** *(string) --* When set to enabled, generates captionServiceDescriptor in
      PMT.

      - **DvbNitSettings** *(dict) --* Inserts DVB Network Information Table (NIT) at the specified
      table repetition interval.

        - **NetworkId** *(integer) --* The numeric value placed in the Network Information Table
        (NIT).

        - **NetworkName** *(string) --* The network name text placed in the networkNameDescriptor
        inside the Network Information Table. Maximum length is 256 characters.

        - **RepInterval** *(integer) --* The number of milliseconds between instances of this table
        in the output transport stream.

      - **DvbSdtSettings** *(dict) --* Inserts DVB Service Description Table (SDT) at the specified
      table repetition interval.

        - **OutputSdt** *(string) --* Selects method of inserting SDT information into output
        stream. The sdtFollow setting copies SDT information from input stream to output stream. The
        sdtFollowIfPresent setting copies SDT information from input stream to output stream if SDT
        information is present in the input, otherwise it will fall back on the user-defined values.
        The sdtManual setting means user will enter the SDT information. The sdtNone setting means
        output stream will not contain SDT information.

        - **RepInterval** *(integer) --* The number of milliseconds between instances of this table
        in the output transport stream.

        - **ServiceName** *(string) --* The service name placed in the serviceDescriptor in the
        Service Description Table. Maximum length is 256 characters.

        - **ServiceProviderName** *(string) --* The service provider name placed in the
        serviceDescriptor in the Service Description Table. Maximum length is 256 characters.

      - **DvbSubPids** *(string) --* Packet Identifier (PID) for input source DVB Subtitle data to
      this output. Multiple values are accepted, and can be entered in ranges and/or by comma
      separation. Can be entered as decimal or hexadecimal values. Each PID specified must be in the
      range of 32 (or 0x20)..8182 (or 0x1ff6).

      - **DvbTdtSettings** *(dict) --* Inserts DVB Time and Date Table (TDT) at the specified table
      repetition interval.

        - **RepInterval** *(integer) --* The number of milliseconds between instances of this table
        in the output transport stream.

      - **DvbTeletextPid** *(string) --* Packet Identifier (PID) for input source DVB Teletext data
      to this output. Can be entered as a decimal or hexadecimal value. Valid values are 32 (or
      0x20)..8182 (or 0x1ff6).

      - **Ebif** *(string) --* If set to passthrough, passes any EBIF data from the input source to
      this output.

      - **EbpAudioInterval** *(string) --* When videoAndFixedIntervals is selected, audio EBP
      markers will be added to partitions 3 and 4. The interval between these additional markers
      will be fixed, and will be slightly shorter than the video EBP marker interval. Only available
      when EBP Cablelabs segmentation markers are selected. Partitions 1 and 2 will always follow
      the video interval.

      - **EbpLookaheadMs** *(integer) --* When set, enforces that Encoder Boundary Points do not
      come within the specified time interval of each other by looking ahead at input video. If
      another EBP is going to come in within the specified time interval, the current EBP is not
      emitted, and the segment is "stretched" to the next marker. The lookahead value does not add
      latency to the system. The Live Event must be configured elsewhere to create sufficient
      latency to make the lookahead accurate.

      - **EbpPlacement** *(string) --* Controls placement of EBP on Audio PIDs. If set to
      videoAndAudioPids, EBP markers will be placed on the video PID and all audio PIDs. If set to
      videoPid, EBP markers will be placed on only the video PID.

      - **EcmPid** *(string) --* This field is unused and deprecated.

      - **EsRateInPes** *(string) --* Include or exclude the ES Rate field in the PES header.

      - **EtvPlatformPid** *(string) --* Packet Identifier (PID) for input source ETV Platform data
      to this output. Can be entered as a decimal or hexadecimal value. Valid values are 32 (or
      0x20)..8182 (or 0x1ff6).

      - **EtvSignalPid** *(string) --* Packet Identifier (PID) for input source ETV Signal data to
      this output. Can be entered as a decimal or hexadecimal value. Valid values are 32 (or
      0x20)..8182 (or 0x1ff6).

      - **FragmentTime** *(float) --* The length in seconds of each fragment. Only used with EBP
      markers.

      - **Klv** *(string) --* If set to passthrough, passes any KLV data from the input source to
      this output.

      - **KlvDataPids** *(string) --* Packet Identifier (PID) for input source KLV data to this
      output. Multiple values are accepted, and can be entered in ranges and/or by comma separation.
      Can be entered as decimal or hexadecimal values. Each PID specified must be in the range of 32
      (or 0x20)..8182 (or 0x1ff6).

      - **NielsenId3Behavior** *(string) --* If set to passthrough, Nielsen inaudible tones for
      media tracking will be detected in the input audio and an equivalent ID3 tag will be inserted
      in the output.

      - **NullPacketBitrate** *(float) --* Value in bits per second of extra null packets to insert
      into the transport stream. This can be used if a downstream encryption system requires
      periodic null packets.

      - **PatInterval** *(integer) --* The number of milliseconds between instances of this table in
      the output transport stream. Valid values are 0, 10..1000.

      - **PcrControl** *(string) --* When set to pcrEveryPesPacket, a Program Clock Reference value
      is inserted for every Packetized Elementary Stream (PES) header. This parameter is effective
      only when the PCR PID is the same as the video or audio elementary stream.

      - **PcrPeriod** *(integer) --* Maximum time in milliseconds between Program Clock Reference
      (PCRs) inserted into the transport stream.

      - **PcrPid** *(string) --* Packet Identifier (PID) of the Program Clock Reference (PCR) in the
      transport stream. When no value is given, the encoder will assign the same value as the Video
      PID. Can be entered as a decimal or hexadecimal value. Valid values are 32 (or 0x20)..8182 (or
      0x1ff6).

      - **PmtInterval** *(integer) --* The number of milliseconds between instances of this table in
      the output transport stream. Valid values are 0, 10..1000.

      - **PmtPid** *(string) --* Packet Identifier (PID) for the Program Map Table (PMT) in the
      transport stream. Can be entered as a decimal or hexadecimal value. Valid values are 32 (or
      0x20)..8182 (or 0x1ff6).

      - **ProgramNum** *(integer) --* The value of the program number field in the Program Map
      Table.

      - **RateMode** *(string) --* When vbr, does not insert null packets into transport stream to
      fill specified bitrate. The bitrate setting acts as the maximum bitrate when vbr is set.

      - **Scte27Pids** *(string) --* Packet Identifier (PID) for input source SCTE-27 data to this
      output. Multiple values are accepted, and can be entered in ranges and/or by comma separation.
      Can be entered as decimal or hexadecimal values. Each PID specified must be in the range of 32
      (or 0x20)..8182 (or 0x1ff6).

      - **Scte35Control** *(string) --* Optionally pass SCTE-35 signals from the input source to
      this output.

      - **Scte35Pid** *(string) --* Packet Identifier (PID) of the SCTE-35 stream in the transport
      stream. Can be entered as a decimal or hexadecimal value. Valid values are 32 (or 0x20)..8182
      (or 0x1ff6).

      - **SegmentationMarkers** *(string) --* Inserts segmentation markers at each segmentationTime
      period. raiSegstart sets the Random Access Indicator bit in the adaptation field. raiAdapt
      sets the RAI bit and adds the current timecode in the private data bytes. psiSegstart inserts
      PAT and PMT tables at the start of segments. ebp adds Encoder Boundary Point information to
      the adaptation field as per OpenCable specification OC-SP-EBP-I01-130118. ebpLegacy adds
      Encoder Boundary Point information to the adaptation field using a legacy proprietary format.

      - **SegmentationStyle** *(string) --* The segmentation style parameter controls how
      segmentation markers are inserted into the transport stream. With avails, it is possible that
      segments may be truncated, which can influence where future segmentation markers are inserted.
      When a segmentation style of "resetCadence" is selected and a segment is truncated due to an
      avail, we will reset the segmentation cadence. This means the subsequent segment will have a
      duration of $segmentationTime seconds. When a segmentation style of "maintainCadence" is
      selected and a segment is truncated due to an avail, we will not reset the segmentation
      cadence. This means the subsequent segment will likely be truncated as well. However, all
      segments after that will have a duration of $segmentationTime seconds. Note that EBP lookahead
      is a slight exception to this rule.

      - **SegmentationTime** *(float) --* The length in seconds of each segment. Required unless
      markers is set to None_.

      - **TimedMetadataBehavior** *(string) --* When set to passthrough, timed metadata will be
      passed through from input to output.

      - **TimedMetadataPid** *(string) --* Packet Identifier (PID) of the timed metadata stream in
      the transport stream. Can be entered as a decimal or hexadecimal value. Valid values are 32
      (or 0x20)..8182 (or 0x1ff6).

      - **TransportStreamId** *(integer) --* The value of the transport stream ID field in the
      Program Map Table.

      - **VideoPid** *(string) --* Packet Identifier (PID) of the elementary video stream in the
      transport stream. Can be entered as a decimal or hexadecimal value. Valid values are 32 (or
      0x20)..8182 (or 0x1ff6).
    """


_ClientDeleteChannelResponseEncoderSettingsOutputGroupsOutputsOutputSettingsArchiveOutputSettingsTypeDef = TypedDict(
    "_ClientDeleteChannelResponseEncoderSettingsOutputGroupsOutputsOutputSettingsArchiveOutputSettingsTypeDef",
    {
        "ContainerSettings": ClientDeleteChannelResponseEncoderSettingsOutputGroupsOutputsOutputSettingsArchiveOutputSettingsContainerSettingsTypeDef,
        "Extension": str,
        "NameModifier": str,
    },
    total=False,
)


class ClientDeleteChannelResponseEncoderSettingsOutputGroupsOutputsOutputSettingsArchiveOutputSettingsTypeDef(
    _ClientDeleteChannelResponseEncoderSettingsOutputGroupsOutputsOutputSettingsArchiveOutputSettingsTypeDef
):
    """
    Type definition for
    `ClientDeleteChannelResponseEncoderSettingsOutputGroupsOutputsOutputSettings`
    `ArchiveOutputSettings`

    - **ContainerSettings** *(dict) --* Settings specific to the container type of the file.

      - **M2tsSettings** *(dict) --* M2ts Settings

        - **AbsentInputAudioBehavior** *(string) --* When set to drop, output audio streams will be
        removed from the program if the selected input audio stream is removed from the input. This
        allows the output audio configuration to dynamically change based on input configuration. If
        this is set to encodeSilence, all output audio streams will output encoded silence when not
        connected to an active input stream.

        - **Arib** *(string) --* When set to enabled, uses ARIB-compliant field muxing and removes
        video descriptor.

        - **AribCaptionsPid** *(string) --* Packet Identifier (PID) for ARIB Captions in the
        transport stream. Can be entered as a decimal or hexadecimal value. Valid values are 32 (or
        0x20)..8182 (or 0x1ff6).

        - **AribCaptionsPidControl** *(string) --* If set to auto, pid number used for ARIB Captions
        will be auto-selected from unused pids. If set to useConfigured, ARIB Captions will be on
        the configured pid number.

        - **AudioBufferModel** *(string) --* When set to dvb, uses DVB buffer model for Dolby
        Digital audio. When set to atsc, the ATSC model is used.

        - **AudioFramesPerPes** *(integer) --* The number of audio frames to insert for each PES
        packet.

        - **AudioPids** *(string) --* Packet Identifier (PID) of the elementary audio stream(s) in
        the transport stream. Multiple values are accepted, and can be entered in ranges and/or by
        comma separation. Can be entered as decimal or hexadecimal values. Each PID specified must
        be in the range of 32 (or 0x20)..8182 (or 0x1ff6).

        - **AudioStreamType** *(string) --* When set to atsc, uses stream type =
             0x81 for AC3 and
        stream type = 0x87 for EAC3. When set to dvb, uses stream type = 0x06.

        - **Bitrate** *(integer) --* The output bitrate of the transport stream in bits per second.
        Setting to 0 lets the muxer automatically determine the appropriate bitrate.

        - **BufferModel** *(string) --* If set to multiplex, use multiplex buffer model for accurate
        interleaving. Setting to bufferModel to none can lead to lower latency, but low-memory
        devices may not be able to play back the stream without interruptions.

        - **CcDescriptor** *(string) --* When set to enabled, generates captionServiceDescriptor in
        PMT.

        - **DvbNitSettings** *(dict) --* Inserts DVB Network Information Table (NIT) at the
        specified table repetition interval.

          - **NetworkId** *(integer) --* The numeric value placed in the Network Information Table
          (NIT).

          - **NetworkName** *(string) --* The network name text placed in the networkNameDescriptor
          inside the Network Information Table. Maximum length is 256 characters.

          - **RepInterval** *(integer) --* The number of milliseconds between instances of this
          table in the output transport stream.

        - **DvbSdtSettings** *(dict) --* Inserts DVB Service Description Table (SDT) at the
        specified table repetition interval.

          - **OutputSdt** *(string) --* Selects method of inserting SDT information into output
          stream. The sdtFollow setting copies SDT information from input stream to output stream.
          The sdtFollowIfPresent setting copies SDT information from input stream to output stream
          if SDT information is present in the input, otherwise it will fall back on the
          user-defined values. The sdtManual setting means user will enter the SDT information. The
          sdtNone setting means output stream will not contain SDT information.

          - **RepInterval** *(integer) --* The number of milliseconds between instances of this
          table in the output transport stream.

          - **ServiceName** *(string) --* The service name placed in the serviceDescriptor in the
          Service Description Table. Maximum length is 256 characters.

          - **ServiceProviderName** *(string) --* The service provider name placed in the
          serviceDescriptor in the Service Description Table. Maximum length is 256 characters.

        - **DvbSubPids** *(string) --* Packet Identifier (PID) for input source DVB Subtitle data to
        this output. Multiple values are accepted, and can be entered in ranges and/or by comma
        separation. Can be entered as decimal or hexadecimal values. Each PID specified must be in
        the range of 32 (or 0x20)..8182 (or 0x1ff6).

        - **DvbTdtSettings** *(dict) --* Inserts DVB Time and Date Table (TDT) at the specified
        table repetition interval.

          - **RepInterval** *(integer) --* The number of milliseconds between instances of this
          table in the output transport stream.

        - **DvbTeletextPid** *(string) --* Packet Identifier (PID) for input source DVB Teletext
        data to this output. Can be entered as a decimal or hexadecimal value. Valid values are 32
        (or 0x20)..8182 (or 0x1ff6).

        - **Ebif** *(string) --* If set to passthrough, passes any EBIF data from the input source
        to this output.

        - **EbpAudioInterval** *(string) --* When videoAndFixedIntervals is selected, audio EBP
        markers will be added to partitions 3 and 4. The interval between these additional markers
        will be fixed, and will be slightly shorter than the video EBP marker interval. Only
        available when EBP Cablelabs segmentation markers are selected. Partitions 1 and 2 will
        always follow the video interval.

        - **EbpLookaheadMs** *(integer) --* When set, enforces that Encoder Boundary Points do not
        come within the specified time interval of each other by looking ahead at input video. If
        another EBP is going to come in within the specified time interval, the current EBP is not
        emitted, and the segment is "stretched" to the next marker. The lookahead value does not add
        latency to the system. The Live Event must be configured elsewhere to create sufficient
        latency to make the lookahead accurate.

        - **EbpPlacement** *(string) --* Controls placement of EBP on Audio PIDs. If set to
        videoAndAudioPids, EBP markers will be placed on the video PID and all audio PIDs. If set to
        videoPid, EBP markers will be placed on only the video PID.

        - **EcmPid** *(string) --* This field is unused and deprecated.

        - **EsRateInPes** *(string) --* Include or exclude the ES Rate field in the PES header.

        - **EtvPlatformPid** *(string) --* Packet Identifier (PID) for input source ETV Platform
        data to this output. Can be entered as a decimal or hexadecimal value. Valid values are 32
        (or 0x20)..8182 (or 0x1ff6).

        - **EtvSignalPid** *(string) --* Packet Identifier (PID) for input source ETV Signal data to
        this output. Can be entered as a decimal or hexadecimal value. Valid values are 32 (or
        0x20)..8182 (or 0x1ff6).

        - **FragmentTime** *(float) --* The length in seconds of each fragment. Only used with EBP
        markers.

        - **Klv** *(string) --* If set to passthrough, passes any KLV data from the input source to
        this output.

        - **KlvDataPids** *(string) --* Packet Identifier (PID) for input source KLV data to this
        output. Multiple values are accepted, and can be entered in ranges and/or by comma
        separation. Can be entered as decimal or hexadecimal values. Each PID specified must be in
        the range of 32 (or 0x20)..8182 (or 0x1ff6).

        - **NielsenId3Behavior** *(string) --* If set to passthrough, Nielsen inaudible tones for
        media tracking will be detected in the input audio and an equivalent ID3 tag will be
        inserted in the output.

        - **NullPacketBitrate** *(float) --* Value in bits per second of extra null packets to
        insert into the transport stream. This can be used if a downstream encryption system
        requires periodic null packets.

        - **PatInterval** *(integer) --* The number of milliseconds between instances of this table
        in the output transport stream. Valid values are 0, 10..1000.

        - **PcrControl** *(string) --* When set to pcrEveryPesPacket, a Program Clock Reference
        value is inserted for every Packetized Elementary Stream (PES) header. This parameter is
        effective only when the PCR PID is the same as the video or audio elementary stream.

        - **PcrPeriod** *(integer) --* Maximum time in milliseconds between Program Clock Reference
        (PCRs) inserted into the transport stream.

        - **PcrPid** *(string) --* Packet Identifier (PID) of the Program Clock Reference (PCR) in
        the transport stream. When no value is given, the encoder will assign the same value as the
        Video PID. Can be entered as a decimal or hexadecimal value. Valid values are 32 (or
        0x20)..8182 (or 0x1ff6).

        - **PmtInterval** *(integer) --* The number of milliseconds between instances of this table
        in the output transport stream. Valid values are 0, 10..1000.

        - **PmtPid** *(string) --* Packet Identifier (PID) for the Program Map Table (PMT) in the
        transport stream. Can be entered as a decimal or hexadecimal value. Valid values are 32 (or
        0x20)..8182 (or 0x1ff6).

        - **ProgramNum** *(integer) --* The value of the program number field in the Program Map
        Table.

        - **RateMode** *(string) --* When vbr, does not insert null packets into transport stream to
        fill specified bitrate. The bitrate setting acts as the maximum bitrate when vbr is set.

        - **Scte27Pids** *(string) --* Packet Identifier (PID) for input source SCTE-27 data to this
        output. Multiple values are accepted, and can be entered in ranges and/or by comma
        separation. Can be entered as decimal or hexadecimal values. Each PID specified must be in
        the range of 32 (or 0x20)..8182 (or 0x1ff6).

        - **Scte35Control** *(string) --* Optionally pass SCTE-35 signals from the input source to
        this output.

        - **Scte35Pid** *(string) --* Packet Identifier (PID) of the SCTE-35 stream in the transport
        stream. Can be entered as a decimal or hexadecimal value. Valid values are 32 (or
        0x20)..8182 (or 0x1ff6).

        - **SegmentationMarkers** *(string) --* Inserts segmentation markers at each
        segmentationTime period. raiSegstart sets the Random Access Indicator bit in the adaptation
        field. raiAdapt sets the RAI bit and adds the current timecode in the private data bytes.
        psiSegstart inserts PAT and PMT tables at the start of segments. ebp adds Encoder Boundary
        Point information to the adaptation field as per OpenCable specification
        OC-SP-EBP-I01-130118. ebpLegacy adds Encoder Boundary Point information to the adaptation
        field using a legacy proprietary format.

        - **SegmentationStyle** *(string) --* The segmentation style parameter controls how
        segmentation markers are inserted into the transport stream. With avails, it is possible
        that segments may be truncated, which can influence where future segmentation markers are
        inserted. When a segmentation style of "resetCadence" is selected and a segment is truncated
        due to an avail, we will reset the segmentation cadence. This means the subsequent segment
        will have a duration of $segmentationTime seconds. When a segmentation style of
        "maintainCadence" is selected and a segment is truncated due to an avail, we will not reset
        the segmentation cadence. This means the subsequent segment will likely be truncated as
        well. However, all segments after that will have a duration of $segmentationTime seconds.
        Note that EBP lookahead is a slight exception to this rule.

        - **SegmentationTime** *(float) --* The length in seconds of each segment. Required unless
        markers is set to None_.

        - **TimedMetadataBehavior** *(string) --* When set to passthrough, timed metadata will be
        passed through from input to output.

        - **TimedMetadataPid** *(string) --* Packet Identifier (PID) of the timed metadata stream in
        the transport stream. Can be entered as a decimal or hexadecimal value. Valid values are 32
        (or 0x20)..8182 (or 0x1ff6).

        - **TransportStreamId** *(integer) --* The value of the transport stream ID field in the
        Program Map Table.

        - **VideoPid** *(string) --* Packet Identifier (PID) of the elementary video stream in the
        transport stream. Can be entered as a decimal or hexadecimal value. Valid values are 32 (or
        0x20)..8182 (or 0x1ff6).

    - **Extension** *(string) --* Output file extension. If excluded, this will be auto-selected
    from the container type.

    - **NameModifier** *(string) --* String concatenated to the end of the destination filename.
    Required for multiple outputs of the same type.
    """


_ClientDeleteChannelResponseEncoderSettingsOutputGroupsOutputsOutputSettingsFrameCaptureOutputSettingsTypeDef = TypedDict(
    "_ClientDeleteChannelResponseEncoderSettingsOutputGroupsOutputsOutputSettingsFrameCaptureOutputSettingsTypeDef",
    {"NameModifier": str},
    total=False,
)


class ClientDeleteChannelResponseEncoderSettingsOutputGroupsOutputsOutputSettingsFrameCaptureOutputSettingsTypeDef(
    _ClientDeleteChannelResponseEncoderSettingsOutputGroupsOutputsOutputSettingsFrameCaptureOutputSettingsTypeDef
):
    """
    Type definition for
    `ClientDeleteChannelResponseEncoderSettingsOutputGroupsOutputsOutputSettings`
    `FrameCaptureOutputSettings`

    - **NameModifier** *(string) --* Required if the output group contains more than one output.
    This modifier forms part of the output file name.
    """


_ClientDeleteChannelResponseEncoderSettingsOutputGroupsOutputsOutputSettingsHlsOutputSettingsHlsSettingsAudioOnlyHlsSettingsAudioOnlyImageTypeDef = TypedDict(
    "_ClientDeleteChannelResponseEncoderSettingsOutputGroupsOutputsOutputSettingsHlsOutputSettingsHlsSettingsAudioOnlyHlsSettingsAudioOnlyImageTypeDef",
    {"PasswordParam": str, "Uri": str, "Username": str},
    total=False,
)


class ClientDeleteChannelResponseEncoderSettingsOutputGroupsOutputsOutputSettingsHlsOutputSettingsHlsSettingsAudioOnlyHlsSettingsAudioOnlyImageTypeDef(
    _ClientDeleteChannelResponseEncoderSettingsOutputGroupsOutputsOutputSettingsHlsOutputSettingsHlsSettingsAudioOnlyHlsSettingsAudioOnlyImageTypeDef
):
    """
    Type definition for
    `ClientDeleteChannelResponseEncoderSettingsOutputGroupsOutputsOutputSettingsHlsOutputSettingsHlsSettingsAudioOnlyHlsSettings`
    `AudioOnlyImage`

    - **PasswordParam** *(string) --* key used to extract the password from EC2 Parameter store

    - **Uri** *(string) --* Uniform Resource Identifier - This should be a path to a file accessible
    to the Live system (eg. a http:// URI) depending on the output type. For example, a RTMP
    destination should have a uri simliar to: "rtmp://fmsserver/live".

    - **Username** *(string) --* Documentation update needed
    """


_ClientDeleteChannelResponseEncoderSettingsOutputGroupsOutputsOutputSettingsHlsOutputSettingsHlsSettingsAudioOnlyHlsSettingsTypeDef = TypedDict(
    "_ClientDeleteChannelResponseEncoderSettingsOutputGroupsOutputsOutputSettingsHlsOutputSettingsHlsSettingsAudioOnlyHlsSettingsTypeDef",
    {
        "AudioGroupId": str,
        "AudioOnlyImage": ClientDeleteChannelResponseEncoderSettingsOutputGroupsOutputsOutputSettingsHlsOutputSettingsHlsSettingsAudioOnlyHlsSettingsAudioOnlyImageTypeDef,
        "AudioTrackType": str,
    },
    total=False,
)


class ClientDeleteChannelResponseEncoderSettingsOutputGroupsOutputsOutputSettingsHlsOutputSettingsHlsSettingsAudioOnlyHlsSettingsTypeDef(
    _ClientDeleteChannelResponseEncoderSettingsOutputGroupsOutputsOutputSettingsHlsOutputSettingsHlsSettingsAudioOnlyHlsSettingsTypeDef
):
    """
    Type definition for
    `ClientDeleteChannelResponseEncoderSettingsOutputGroupsOutputsOutputSettingsHlsOutputSettingsHlsSettings`
    `AudioOnlyHlsSettings`

    - **AudioGroupId** *(string) --* Specifies the group to which the audio Rendition belongs.

    - **AudioOnlyImage** *(dict) --* Optional. Specifies the .jpg or .png image to use as the cover
    art for an audio-only output. We recommend a low bit-size file because the image increases the
    output audio bandwidth. The image is attached to the audio as an ID3 tag, frame type APIC,
    picture type 0x10, as per the "ID3 tag version 2.4.0 - Native Frames" standard.

      - **PasswordParam** *(string) --* key used to extract the password from EC2 Parameter store

      - **Uri** *(string) --* Uniform Resource Identifier - This should be a path to a file
      accessible to the Live system (eg. a http:// URI) depending on the output type. For example, a
      RTMP destination should have a uri simliar to: "rtmp://fmsserver/live".

      - **Username** *(string) --* Documentation update needed

    - **AudioTrackType** *(string) --* Four types of audio-only tracks are supported: Audio-Only
    Variant Stream The client can play back this audio-only stream instead of video in low-bandwidth
    scenarios. Represented as an EXT-X-STREAM-INF in the HLS manifest. Alternate Audio, Auto Select,
    Default Alternate rendition that the client should try to play back by default. Represented as
    an EXT-X-MEDIA in the HLS manifest with DEFAULT=YES, AUTOSELECT=YES Alternate Audio, Auto
    Select, Not Default Alternate rendition that the client may try to play back by default.
    Represented as an EXT-X-MEDIA in the HLS manifest with DEFAULT=NO, AUTOSELECT=YES Alternate
    Audio, not Auto Select Alternate rendition that the client will not try to play back by default.
    Represented as an EXT-X-MEDIA in the HLS manifest with DEFAULT=NO, AUTOSELECT=NO
    """


_ClientDeleteChannelResponseEncoderSettingsOutputGroupsOutputsOutputSettingsHlsOutputSettingsHlsSettingsStandardHlsSettingsM3u8SettingsTypeDef = TypedDict(
    "_ClientDeleteChannelResponseEncoderSettingsOutputGroupsOutputsOutputSettingsHlsOutputSettingsHlsSettingsStandardHlsSettingsM3u8SettingsTypeDef",
    {
        "AudioFramesPerPes": int,
        "AudioPids": str,
        "EcmPid": str,
        "NielsenId3Behavior": str,
        "PatInterval": int,
        "PcrControl": str,
        "PcrPeriod": int,
        "PcrPid": str,
        "PmtInterval": int,
        "PmtPid": str,
        "ProgramNum": int,
        "Scte35Behavior": str,
        "Scte35Pid": str,
        "TimedMetadataBehavior": str,
        "TimedMetadataPid": str,
        "TransportStreamId": int,
        "VideoPid": str,
    },
    total=False,
)


class ClientDeleteChannelResponseEncoderSettingsOutputGroupsOutputsOutputSettingsHlsOutputSettingsHlsSettingsStandardHlsSettingsM3u8SettingsTypeDef(
    _ClientDeleteChannelResponseEncoderSettingsOutputGroupsOutputsOutputSettingsHlsOutputSettingsHlsSettingsStandardHlsSettingsM3u8SettingsTypeDef
):
    """
    Type definition for
    `ClientDeleteChannelResponseEncoderSettingsOutputGroupsOutputsOutputSettingsHlsOutputSettingsHlsSettingsStandardHlsSettings`
    `M3u8Settings`

    - **AudioFramesPerPes** *(integer) --* The number of audio frames to insert for each PES packet.

    - **AudioPids** *(string) --* Packet Identifier (PID) of the elementary audio stream(s) in the
    transport stream. Multiple values are accepted, and can be entered in ranges and/or by comma
    separation. Can be entered as decimal or hexadecimal values.

    - **EcmPid** *(string) --* This parameter is unused and deprecated.

    - **NielsenId3Behavior** *(string) --* If set to passthrough, Nielsen inaudible tones for media
    tracking will be detected in the input audio and an equivalent ID3 tag will be inserted in the
    output.

    - **PatInterval** *(integer) --* The number of milliseconds between instances of this table in
    the output transport stream. A value of \\"0\\" writes out the PMT once per segment file.

    - **PcrControl** *(string) --* When set to pcrEveryPesPacket, a Program Clock Reference value is
    inserted for every Packetized Elementary Stream (PES) header. This parameter is effective only
    when the PCR PID is the same as the video or audio elementary stream.

    - **PcrPeriod** *(integer) --* Maximum time in milliseconds between Program Clock References
    (PCRs) inserted into the transport stream.

    - **PcrPid** *(string) --* Packet Identifier (PID) of the Program Clock Reference (PCR) in the
    transport stream. When no value is given, the encoder will assign the same value as the Video
    PID. Can be entered as a decimal or hexadecimal value.

    - **PmtInterval** *(integer) --* The number of milliseconds between instances of this table in
    the output transport stream. A value of \\"0\\" writes out the PMT once per segment file.

    - **PmtPid** *(string) --* Packet Identifier (PID) for the Program Map Table (PMT) in the
    transport stream. Can be entered as a decimal or hexadecimal value.

    - **ProgramNum** *(integer) --* The value of the program number field in the Program Map Table.

    - **Scte35Behavior** *(string) --* If set to passthrough, passes any SCTE-35 signals from the
    input source to this output.

    - **Scte35Pid** *(string) --* Packet Identifier (PID) of the SCTE-35 stream in the transport
    stream. Can be entered as a decimal or hexadecimal value.

    - **TimedMetadataBehavior** *(string) --* When set to passthrough, timed metadata is passed
    through from input to output.

    - **TimedMetadataPid** *(string) --* Packet Identifier (PID) of the timed metadata stream in the
    transport stream. Can be entered as a decimal or hexadecimal value. Valid values are 32 (or
    0x20)..8182 (or 0x1ff6).

    - **TransportStreamId** *(integer) --* The value of the transport stream ID field in the Program
    Map Table.

    - **VideoPid** *(string) --* Packet Identifier (PID) of the elementary video stream in the
    transport stream. Can be entered as a decimal or hexadecimal value.
    """


_ClientDeleteChannelResponseEncoderSettingsOutputGroupsOutputsOutputSettingsHlsOutputSettingsHlsSettingsStandardHlsSettingsTypeDef = TypedDict(
    "_ClientDeleteChannelResponseEncoderSettingsOutputGroupsOutputsOutputSettingsHlsOutputSettingsHlsSettingsStandardHlsSettingsTypeDef",
    {
        "AudioRenditionSets": str,
        "M3u8Settings": ClientDeleteChannelResponseEncoderSettingsOutputGroupsOutputsOutputSettingsHlsOutputSettingsHlsSettingsStandardHlsSettingsM3u8SettingsTypeDef,
    },
    total=False,
)


class ClientDeleteChannelResponseEncoderSettingsOutputGroupsOutputsOutputSettingsHlsOutputSettingsHlsSettingsStandardHlsSettingsTypeDef(
    _ClientDeleteChannelResponseEncoderSettingsOutputGroupsOutputsOutputSettingsHlsOutputSettingsHlsSettingsStandardHlsSettingsTypeDef
):
    """
    Type definition for
    `ClientDeleteChannelResponseEncoderSettingsOutputGroupsOutputsOutputSettingsHlsOutputSettingsHlsSettings`
    `StandardHlsSettings`

    - **AudioRenditionSets** *(string) --* List all the audio groups that are used with the video
    output stream. Input all the audio GROUP-IDs that are associated to the video, separate by ','.

    - **M3u8Settings** *(dict) --* Settings information for the .m3u8 container

      - **AudioFramesPerPes** *(integer) --* The number of audio frames to insert for each PES
      packet.

      - **AudioPids** *(string) --* Packet Identifier (PID) of the elementary audio stream(s) in the
      transport stream. Multiple values are accepted, and can be entered in ranges and/or by comma
      separation. Can be entered as decimal or hexadecimal values.

      - **EcmPid** *(string) --* This parameter is unused and deprecated.

      - **NielsenId3Behavior** *(string) --* If set to passthrough, Nielsen inaudible tones for
      media tracking will be detected in the input audio and an equivalent ID3 tag will be inserted
      in the output.

      - **PatInterval** *(integer) --* The number of milliseconds between instances of this table in
      the output transport stream. A value of \\"0\\" writes out the PMT once per segment file.

      - **PcrControl** *(string) --* When set to pcrEveryPesPacket, a Program Clock Reference value
      is inserted for every Packetized Elementary Stream (PES) header. This parameter is effective
      only when the PCR PID is the same as the video or audio elementary stream.

      - **PcrPeriod** *(integer) --* Maximum time in milliseconds between Program Clock References
      (PCRs) inserted into the transport stream.

      - **PcrPid** *(string) --* Packet Identifier (PID) of the Program Clock Reference (PCR) in the
      transport stream. When no value is given, the encoder will assign the same value as the Video
      PID. Can be entered as a decimal or hexadecimal value.

      - **PmtInterval** *(integer) --* The number of milliseconds between instances of this table in
      the output transport stream. A value of \\"0\\" writes out the PMT once per segment file.

      - **PmtPid** *(string) --* Packet Identifier (PID) for the Program Map Table (PMT) in the
      transport stream. Can be entered as a decimal or hexadecimal value.

      - **ProgramNum** *(integer) --* The value of the program number field in the Program Map
      Table.

      - **Scte35Behavior** *(string) --* If set to passthrough, passes any SCTE-35 signals from the
      input source to this output.

      - **Scte35Pid** *(string) --* Packet Identifier (PID) of the SCTE-35 stream in the transport
      stream. Can be entered as a decimal or hexadecimal value.

      - **TimedMetadataBehavior** *(string) --* When set to passthrough, timed metadata is passed
      through from input to output.

      - **TimedMetadataPid** *(string) --* Packet Identifier (PID) of the timed metadata stream in
      the transport stream. Can be entered as a decimal or hexadecimal value. Valid values are 32
      (or 0x20)..8182 (or 0x1ff6).

      - **TransportStreamId** *(integer) --* The value of the transport stream ID field in the
      Program Map Table.

      - **VideoPid** *(string) --* Packet Identifier (PID) of the elementary video stream in the
      transport stream. Can be entered as a decimal or hexadecimal value.
    """


_ClientDeleteChannelResponseEncoderSettingsOutputGroupsOutputsOutputSettingsHlsOutputSettingsHlsSettingsTypeDef = TypedDict(
    "_ClientDeleteChannelResponseEncoderSettingsOutputGroupsOutputsOutputSettingsHlsOutputSettingsHlsSettingsTypeDef",
    {
        "AudioOnlyHlsSettings": ClientDeleteChannelResponseEncoderSettingsOutputGroupsOutputsOutputSettingsHlsOutputSettingsHlsSettingsAudioOnlyHlsSettingsTypeDef,
        "StandardHlsSettings": ClientDeleteChannelResponseEncoderSettingsOutputGroupsOutputsOutputSettingsHlsOutputSettingsHlsSettingsStandardHlsSettingsTypeDef,
    },
    total=False,
)


class ClientDeleteChannelResponseEncoderSettingsOutputGroupsOutputsOutputSettingsHlsOutputSettingsHlsSettingsTypeDef(
    _ClientDeleteChannelResponseEncoderSettingsOutputGroupsOutputsOutputSettingsHlsOutputSettingsHlsSettingsTypeDef
):
    """
    Type definition for
    `ClientDeleteChannelResponseEncoderSettingsOutputGroupsOutputsOutputSettingsHlsOutputSettings`
    `HlsSettings`

    - **AudioOnlyHlsSettings** *(dict) --* Audio Only Hls Settings

      - **AudioGroupId** *(string) --* Specifies the group to which the audio Rendition belongs.

      - **AudioOnlyImage** *(dict) --* Optional. Specifies the .jpg or .png image to use as the
      cover art for an audio-only output. We recommend a low bit-size file because the image
      increases the output audio bandwidth. The image is attached to the audio as an ID3 tag, frame
      type APIC, picture type 0x10, as per the "ID3 tag version 2.4.0 - Native Frames" standard.

        - **PasswordParam** *(string) --* key used to extract the password from EC2 Parameter store

        - **Uri** *(string) --* Uniform Resource Identifier - This should be a path to a file
        accessible to the Live system (eg. a http:// URI) depending on the output type. For example,
        a RTMP destination should have a uri simliar to: "rtmp://fmsserver/live".

        - **Username** *(string) --* Documentation update needed

      - **AudioTrackType** *(string) --* Four types of audio-only tracks are supported: Audio-Only
      Variant Stream The client can play back this audio-only stream instead of video in
      low-bandwidth scenarios. Represented as an EXT-X-STREAM-INF in the HLS manifest. Alternate
      Audio, Auto Select, Default Alternate rendition that the client should try to play back by
      default. Represented as an EXT-X-MEDIA in the HLS manifest with DEFAULT=YES, AUTOSELECT=YES
      Alternate Audio, Auto Select, Not Default Alternate rendition that the client may try to play
      back by default. Represented as an EXT-X-MEDIA in the HLS manifest with DEFAULT=NO,
      AUTOSELECT=YES Alternate Audio, not Auto Select Alternate rendition that the client will not
      try to play back by default. Represented as an EXT-X-MEDIA in the HLS manifest with
      DEFAULT=NO, AUTOSELECT=NO

    - **StandardHlsSettings** *(dict) --* Standard Hls Settings

      - **AudioRenditionSets** *(string) --* List all the audio groups that are used with the video
      output stream. Input all the audio GROUP-IDs that are associated to the video, separate by
      ','.

      - **M3u8Settings** *(dict) --* Settings information for the .m3u8 container

        - **AudioFramesPerPes** *(integer) --* The number of audio frames to insert for each PES
        packet.

        - **AudioPids** *(string) --* Packet Identifier (PID) of the elementary audio stream(s) in
        the transport stream. Multiple values are accepted, and can be entered in ranges and/or by
        comma separation. Can be entered as decimal or hexadecimal values.

        - **EcmPid** *(string) --* This parameter is unused and deprecated.

        - **NielsenId3Behavior** *(string) --* If set to passthrough, Nielsen inaudible tones for
        media tracking will be detected in the input audio and an equivalent ID3 tag will be
        inserted in the output.

        - **PatInterval** *(integer) --* The number of milliseconds between instances of this table
        in the output transport stream. A value of \\"0\\" writes out the PMT once per segment file.

        - **PcrControl** *(string) --* When set to pcrEveryPesPacket, a Program Clock Reference
        value is inserted for every Packetized Elementary Stream (PES) header. This parameter is
        effective only when the PCR PID is the same as the video or audio elementary stream.

        - **PcrPeriod** *(integer) --* Maximum time in milliseconds between Program Clock References
        (PCRs) inserted into the transport stream.

        - **PcrPid** *(string) --* Packet Identifier (PID) of the Program Clock Reference (PCR) in
        the transport stream. When no value is given, the encoder will assign the same value as the
        Video PID. Can be entered as a decimal or hexadecimal value.

        - **PmtInterval** *(integer) --* The number of milliseconds between instances of this table
        in the output transport stream. A value of \\"0\\" writes out the PMT once per segment file.

        - **PmtPid** *(string) --* Packet Identifier (PID) for the Program Map Table (PMT) in the
        transport stream. Can be entered as a decimal or hexadecimal value.

        - **ProgramNum** *(integer) --* The value of the program number field in the Program Map
        Table.

        - **Scte35Behavior** *(string) --* If set to passthrough, passes any SCTE-35 signals from
        the input source to this output.

        - **Scte35Pid** *(string) --* Packet Identifier (PID) of the SCTE-35 stream in the transport
        stream. Can be entered as a decimal or hexadecimal value.

        - **TimedMetadataBehavior** *(string) --* When set to passthrough, timed metadata is passed
        through from input to output.

        - **TimedMetadataPid** *(string) --* Packet Identifier (PID) of the timed metadata stream in
        the transport stream. Can be entered as a decimal or hexadecimal value. Valid values are 32
        (or 0x20)..8182 (or 0x1ff6).

        - **TransportStreamId** *(integer) --* The value of the transport stream ID field in the
        Program Map Table.

        - **VideoPid** *(string) --* Packet Identifier (PID) of the elementary video stream in the
        transport stream. Can be entered as a decimal or hexadecimal value.
    """


_ClientDeleteChannelResponseEncoderSettingsOutputGroupsOutputsOutputSettingsHlsOutputSettingsTypeDef = TypedDict(
    "_ClientDeleteChannelResponseEncoderSettingsOutputGroupsOutputsOutputSettingsHlsOutputSettingsTypeDef",
    {
        "HlsSettings": ClientDeleteChannelResponseEncoderSettingsOutputGroupsOutputsOutputSettingsHlsOutputSettingsHlsSettingsTypeDef,
        "NameModifier": str,
        "SegmentModifier": str,
    },
    total=False,
)


class ClientDeleteChannelResponseEncoderSettingsOutputGroupsOutputsOutputSettingsHlsOutputSettingsTypeDef(
    _ClientDeleteChannelResponseEncoderSettingsOutputGroupsOutputsOutputSettingsHlsOutputSettingsTypeDef
):
    """
    Type definition for
    `ClientDeleteChannelResponseEncoderSettingsOutputGroupsOutputsOutputSettings`
    `HlsOutputSettings`

    - **HlsSettings** *(dict) --* Settings regarding the underlying stream. These settings are
    different for audio-only outputs.

      - **AudioOnlyHlsSettings** *(dict) --* Audio Only Hls Settings

        - **AudioGroupId** *(string) --* Specifies the group to which the audio Rendition belongs.

        - **AudioOnlyImage** *(dict) --* Optional. Specifies the .jpg or .png image to use as the
        cover art for an audio-only output. We recommend a low bit-size file because the image
        increases the output audio bandwidth. The image is attached to the audio as an ID3 tag,
        frame type APIC, picture type 0x10, as per the "ID3 tag version 2.4.0 - Native Frames"
        standard.

          - **PasswordParam** *(string) --* key used to extract the password from EC2 Parameter
          store

          - **Uri** *(string) --* Uniform Resource Identifier - This should be a path to a file
          accessible to the Live system (eg. a http:// URI) depending on the output type. For
          example, a RTMP destination should have a uri simliar to: "rtmp://fmsserver/live".

          - **Username** *(string) --* Documentation update needed

        - **AudioTrackType** *(string) --* Four types of audio-only tracks are supported: Audio-Only
        Variant Stream The client can play back this audio-only stream instead of video in
        low-bandwidth scenarios. Represented as an EXT-X-STREAM-INF in the HLS manifest. Alternate
        Audio, Auto Select, Default Alternate rendition that the client should try to play back by
        default. Represented as an EXT-X-MEDIA in the HLS manifest with DEFAULT=YES, AUTOSELECT=
            YES
        Alternate Audio, Auto Select, Not Default Alternate rendition that the client may try to
        play back by default. Represented as an EXT-X-MEDIA in the HLS manifest with DEFAULT=NO,
        AUTOSELECT=
            YES Alternate Audio, not Auto Select Alternate rendition that the client will not
        try to play back by default. Represented as an EXT-X-MEDIA in the HLS manifest with
        DEFAULT=NO, AUTOSELECT=NO

      - **StandardHlsSettings** *(dict) --* Standard Hls Settings

        - **AudioRenditionSets** *(string) --* List all the audio groups that are used with the
        video output stream. Input all the audio GROUP-IDs that are associated to the video,
        separate by ','.

        - **M3u8Settings** *(dict) --* Settings information for the .m3u8 container

          - **AudioFramesPerPes** *(integer) --* The number of audio frames to insert for each PES
          packet.

          - **AudioPids** *(string) --* Packet Identifier (PID) of the elementary audio stream(s) in
          the transport stream. Multiple values are accepted, and can be entered in ranges and/or by
          comma separation. Can be entered as decimal or hexadecimal values.

          - **EcmPid** *(string) --* This parameter is unused and deprecated.

          - **NielsenId3Behavior** *(string) --* If set to passthrough, Nielsen inaudible tones for
          media tracking will be detected in the input audio and an equivalent ID3 tag will be
          inserted in the output.

          - **PatInterval** *(integer) --* The number of milliseconds between instances of this
          table in the output transport stream. A value of \\"0\\" writes out the PMT once per
          segment file.

          - **PcrControl** *(string) --* When set to pcrEveryPesPacket, a Program Clock Reference
          value is inserted for every Packetized Elementary Stream (PES) header. This parameter is
          effective only when the PCR PID is the same as the video or audio elementary stream.

          - **PcrPeriod** *(integer) --* Maximum time in milliseconds between Program Clock
          References (PCRs) inserted into the transport stream.

          - **PcrPid** *(string) --* Packet Identifier (PID) of the Program Clock Reference (PCR) in
          the transport stream. When no value is given, the encoder will assign the same value as
          the Video PID. Can be entered as a decimal or hexadecimal value.

          - **PmtInterval** *(integer) --* The number of milliseconds between instances of this
          table in the output transport stream. A value of \\"0\\" writes out the PMT once per
          segment file.

          - **PmtPid** *(string) --* Packet Identifier (PID) for the Program Map Table (PMT) in the
          transport stream. Can be entered as a decimal or hexadecimal value.

          - **ProgramNum** *(integer) --* The value of the program number field in the Program Map
          Table.

          - **Scte35Behavior** *(string) --* If set to passthrough, passes any SCTE-35 signals from
          the input source to this output.

          - **Scte35Pid** *(string) --* Packet Identifier (PID) of the SCTE-35 stream in the
          transport stream. Can be entered as a decimal or hexadecimal value.

          - **TimedMetadataBehavior** *(string) --* When set to passthrough, timed metadata is
          passed through from input to output.

          - **TimedMetadataPid** *(string) --* Packet Identifier (PID) of the timed metadata stream
          in the transport stream. Can be entered as a decimal or hexadecimal value. Valid values
          are 32 (or 0x20)..8182 (or 0x1ff6).

          - **TransportStreamId** *(integer) --* The value of the transport stream ID field in the
          Program Map Table.

          - **VideoPid** *(string) --* Packet Identifier (PID) of the elementary video stream in the
          transport stream. Can be entered as a decimal or hexadecimal value.

    - **NameModifier** *(string) --* String concatenated to the end of the destination filename.
    Accepts \\"Format Identifiers\\":#formatIdentifierParameters.

    - **SegmentModifier** *(string) --* String concatenated to end of segment filenames.
    """


_ClientDeleteChannelResponseEncoderSettingsOutputGroupsOutputsOutputSettingsMsSmoothOutputSettingsTypeDef = TypedDict(
    "_ClientDeleteChannelResponseEncoderSettingsOutputGroupsOutputsOutputSettingsMsSmoothOutputSettingsTypeDef",
    {"H265PackagingType": str, "NameModifier": str},
    total=False,
)


class ClientDeleteChannelResponseEncoderSettingsOutputGroupsOutputsOutputSettingsMsSmoothOutputSettingsTypeDef(
    _ClientDeleteChannelResponseEncoderSettingsOutputGroupsOutputsOutputSettingsMsSmoothOutputSettingsTypeDef
):
    """
    Type definition for
    `ClientDeleteChannelResponseEncoderSettingsOutputGroupsOutputsOutputSettings`
    `MsSmoothOutputSettings`

    - **H265PackagingType** *(string) --* Only applicable when this output is referencing an H.265
    video description. Specifies whether MP4 segments should be packaged as HEV1 or HVC1.

    - **NameModifier** *(string) --* String concatenated to the end of the destination filename.
    Required for multiple outputs of the same type.
    """


_ClientDeleteChannelResponseEncoderSettingsOutputGroupsOutputsOutputSettingsMultiplexOutputSettingsDestinationTypeDef = TypedDict(
    "_ClientDeleteChannelResponseEncoderSettingsOutputGroupsOutputsOutputSettingsMultiplexOutputSettingsDestinationTypeDef",
    {"DestinationRefId": str},
    total=False,
)


class ClientDeleteChannelResponseEncoderSettingsOutputGroupsOutputsOutputSettingsMultiplexOutputSettingsDestinationTypeDef(
    _ClientDeleteChannelResponseEncoderSettingsOutputGroupsOutputsOutputSettingsMultiplexOutputSettingsDestinationTypeDef
):
    """
    Type definition for
    `ClientDeleteChannelResponseEncoderSettingsOutputGroupsOutputsOutputSettingsMultiplexOutputSettings`
    `Destination`

    - **DestinationRefId** *(string) --* Placeholder documentation for __string
    """


_ClientDeleteChannelResponseEncoderSettingsOutputGroupsOutputsOutputSettingsMultiplexOutputSettingsTypeDef = TypedDict(
    "_ClientDeleteChannelResponseEncoderSettingsOutputGroupsOutputsOutputSettingsMultiplexOutputSettingsTypeDef",
    {
        "Destination": ClientDeleteChannelResponseEncoderSettingsOutputGroupsOutputsOutputSettingsMultiplexOutputSettingsDestinationTypeDef
    },
    total=False,
)


class ClientDeleteChannelResponseEncoderSettingsOutputGroupsOutputsOutputSettingsMultiplexOutputSettingsTypeDef(
    _ClientDeleteChannelResponseEncoderSettingsOutputGroupsOutputsOutputSettingsMultiplexOutputSettingsTypeDef
):
    """
    Type definition for
    `ClientDeleteChannelResponseEncoderSettingsOutputGroupsOutputsOutputSettings`
    `MultiplexOutputSettings`

    - **Destination** *(dict) --* Destination is a Multiplex.

      - **DestinationRefId** *(string) --* Placeholder documentation for __string
    """


_ClientDeleteChannelResponseEncoderSettingsOutputGroupsOutputsOutputSettingsRtmpOutputSettingsDestinationTypeDef = TypedDict(
    "_ClientDeleteChannelResponseEncoderSettingsOutputGroupsOutputsOutputSettingsRtmpOutputSettingsDestinationTypeDef",
    {"DestinationRefId": str},
    total=False,
)


class ClientDeleteChannelResponseEncoderSettingsOutputGroupsOutputsOutputSettingsRtmpOutputSettingsDestinationTypeDef(
    _ClientDeleteChannelResponseEncoderSettingsOutputGroupsOutputsOutputSettingsRtmpOutputSettingsDestinationTypeDef
):
    """
    Type definition for
    `ClientDeleteChannelResponseEncoderSettingsOutputGroupsOutputsOutputSettingsRtmpOutputSettings`
    `Destination`

    - **DestinationRefId** *(string) --* Placeholder documentation for __string
    """


_ClientDeleteChannelResponseEncoderSettingsOutputGroupsOutputsOutputSettingsRtmpOutputSettingsTypeDef = TypedDict(
    "_ClientDeleteChannelResponseEncoderSettingsOutputGroupsOutputsOutputSettingsRtmpOutputSettingsTypeDef",
    {
        "CertificateMode": str,
        "ConnectionRetryInterval": int,
        "Destination": ClientDeleteChannelResponseEncoderSettingsOutputGroupsOutputsOutputSettingsRtmpOutputSettingsDestinationTypeDef,
        "NumRetries": int,
    },
    total=False,
)


class ClientDeleteChannelResponseEncoderSettingsOutputGroupsOutputsOutputSettingsRtmpOutputSettingsTypeDef(
    _ClientDeleteChannelResponseEncoderSettingsOutputGroupsOutputsOutputSettingsRtmpOutputSettingsTypeDef
):
    """
    Type definition for
    `ClientDeleteChannelResponseEncoderSettingsOutputGroupsOutputsOutputSettings`
    `RtmpOutputSettings`

    - **CertificateMode** *(string) --* If set to verifyAuthenticity, verify the tls certificate
    chain to a trusted Certificate Authority (CA). This will cause rtmps outputs with self-signed
    certificates to fail.

    - **ConnectionRetryInterval** *(integer) --* Number of seconds to wait before retrying a
    connection to the Flash Media server if the connection is lost.

    - **Destination** *(dict) --* The RTMP endpoint excluding the stream name (eg.
    rtmp://host/appname). For connection to Akamai, a username and password must be supplied. URI
    fields accept format identifiers.

      - **DestinationRefId** *(string) --* Placeholder documentation for __string

    - **NumRetries** *(integer) --* Number of retry attempts.
    """


_ClientDeleteChannelResponseEncoderSettingsOutputGroupsOutputsOutputSettingsUdpOutputSettingsContainerSettingsM2tsSettingsDvbNitSettingsTypeDef = TypedDict(
    "_ClientDeleteChannelResponseEncoderSettingsOutputGroupsOutputsOutputSettingsUdpOutputSettingsContainerSettingsM2tsSettingsDvbNitSettingsTypeDef",
    {"NetworkId": int, "NetworkName": str, "RepInterval": int},
    total=False,
)


class ClientDeleteChannelResponseEncoderSettingsOutputGroupsOutputsOutputSettingsUdpOutputSettingsContainerSettingsM2tsSettingsDvbNitSettingsTypeDef(
    _ClientDeleteChannelResponseEncoderSettingsOutputGroupsOutputsOutputSettingsUdpOutputSettingsContainerSettingsM2tsSettingsDvbNitSettingsTypeDef
):
    """
    Type definition for
    `ClientDeleteChannelResponseEncoderSettingsOutputGroupsOutputsOutputSettingsUdpOutputSettingsContainerSettingsM2tsSettings`
    `DvbNitSettings`

    - **NetworkId** *(integer) --* The numeric value placed in the Network Information Table (NIT).

    - **NetworkName** *(string) --* The network name text placed in the networkNameDescriptor inside
    the Network Information Table. Maximum length is 256 characters.

    - **RepInterval** *(integer) --* The number of milliseconds between instances of this table in
    the output transport stream.
    """


_ClientDeleteChannelResponseEncoderSettingsOutputGroupsOutputsOutputSettingsUdpOutputSettingsContainerSettingsM2tsSettingsDvbSdtSettingsTypeDef = TypedDict(
    "_ClientDeleteChannelResponseEncoderSettingsOutputGroupsOutputsOutputSettingsUdpOutputSettingsContainerSettingsM2tsSettingsDvbSdtSettingsTypeDef",
    {"OutputSdt": str, "RepInterval": int, "ServiceName": str, "ServiceProviderName": str},
    total=False,
)


class ClientDeleteChannelResponseEncoderSettingsOutputGroupsOutputsOutputSettingsUdpOutputSettingsContainerSettingsM2tsSettingsDvbSdtSettingsTypeDef(
    _ClientDeleteChannelResponseEncoderSettingsOutputGroupsOutputsOutputSettingsUdpOutputSettingsContainerSettingsM2tsSettingsDvbSdtSettingsTypeDef
):
    """
    Type definition for
    `ClientDeleteChannelResponseEncoderSettingsOutputGroupsOutputsOutputSettingsUdpOutputSettingsContainerSettingsM2tsSettings`
    `DvbSdtSettings`

    - **OutputSdt** *(string) --* Selects method of inserting SDT information into output stream.
    The sdtFollow setting copies SDT information from input stream to output stream. The
    sdtFollowIfPresent setting copies SDT information from input stream to output stream if SDT
    information is present in the input, otherwise it will fall back on the user-defined values. The
    sdtManual setting means user will enter the SDT information. The sdtNone setting means output
    stream will not contain SDT information.

    - **RepInterval** *(integer) --* The number of milliseconds between instances of this table in
    the output transport stream.

    - **ServiceName** *(string) --* The service name placed in the serviceDescriptor in the Service
    Description Table. Maximum length is 256 characters.

    - **ServiceProviderName** *(string) --* The service provider name placed in the
    serviceDescriptor in the Service Description Table. Maximum length is 256 characters.
    """


_ClientDeleteChannelResponseEncoderSettingsOutputGroupsOutputsOutputSettingsUdpOutputSettingsContainerSettingsM2tsSettingsDvbTdtSettingsTypeDef = TypedDict(
    "_ClientDeleteChannelResponseEncoderSettingsOutputGroupsOutputsOutputSettingsUdpOutputSettingsContainerSettingsM2tsSettingsDvbTdtSettingsTypeDef",
    {"RepInterval": int},
    total=False,
)


class ClientDeleteChannelResponseEncoderSettingsOutputGroupsOutputsOutputSettingsUdpOutputSettingsContainerSettingsM2tsSettingsDvbTdtSettingsTypeDef(
    _ClientDeleteChannelResponseEncoderSettingsOutputGroupsOutputsOutputSettingsUdpOutputSettingsContainerSettingsM2tsSettingsDvbTdtSettingsTypeDef
):
    """
    Type definition for
    `ClientDeleteChannelResponseEncoderSettingsOutputGroupsOutputsOutputSettingsUdpOutputSettingsContainerSettingsM2tsSettings`
    `DvbTdtSettings`

    - **RepInterval** *(integer) --* The number of milliseconds between instances of this table in
    the output transport stream.
    """


_ClientDeleteChannelResponseEncoderSettingsOutputGroupsOutputsOutputSettingsUdpOutputSettingsContainerSettingsM2tsSettingsTypeDef = TypedDict(
    "_ClientDeleteChannelResponseEncoderSettingsOutputGroupsOutputsOutputSettingsUdpOutputSettingsContainerSettingsM2tsSettingsTypeDef",
    {
        "AbsentInputAudioBehavior": str,
        "Arib": str,
        "AribCaptionsPid": str,
        "AribCaptionsPidControl": str,
        "AudioBufferModel": str,
        "AudioFramesPerPes": int,
        "AudioPids": str,
        "AudioStreamType": str,
        "Bitrate": int,
        "BufferModel": str,
        "CcDescriptor": str,
        "DvbNitSettings": ClientDeleteChannelResponseEncoderSettingsOutputGroupsOutputsOutputSettingsUdpOutputSettingsContainerSettingsM2tsSettingsDvbNitSettingsTypeDef,
        "DvbSdtSettings": ClientDeleteChannelResponseEncoderSettingsOutputGroupsOutputsOutputSettingsUdpOutputSettingsContainerSettingsM2tsSettingsDvbSdtSettingsTypeDef,
        "DvbSubPids": str,
        "DvbTdtSettings": ClientDeleteChannelResponseEncoderSettingsOutputGroupsOutputsOutputSettingsUdpOutputSettingsContainerSettingsM2tsSettingsDvbTdtSettingsTypeDef,
        "DvbTeletextPid": str,
        "Ebif": str,
        "EbpAudioInterval": str,
        "EbpLookaheadMs": int,
        "EbpPlacement": str,
        "EcmPid": str,
        "EsRateInPes": str,
        "EtvPlatformPid": str,
        "EtvSignalPid": str,
        "FragmentTime": float,
        "Klv": str,
        "KlvDataPids": str,
        "NielsenId3Behavior": str,
        "NullPacketBitrate": float,
        "PatInterval": int,
        "PcrControl": str,
        "PcrPeriod": int,
        "PcrPid": str,
        "PmtInterval": int,
        "PmtPid": str,
        "ProgramNum": int,
        "RateMode": str,
        "Scte27Pids": str,
        "Scte35Control": str,
        "Scte35Pid": str,
        "SegmentationMarkers": str,
        "SegmentationStyle": str,
        "SegmentationTime": float,
        "TimedMetadataBehavior": str,
        "TimedMetadataPid": str,
        "TransportStreamId": int,
        "VideoPid": str,
    },
    total=False,
)


class ClientDeleteChannelResponseEncoderSettingsOutputGroupsOutputsOutputSettingsUdpOutputSettingsContainerSettingsM2tsSettingsTypeDef(
    _ClientDeleteChannelResponseEncoderSettingsOutputGroupsOutputsOutputSettingsUdpOutputSettingsContainerSettingsM2tsSettingsTypeDef
):
    """
    Type definition for
    `ClientDeleteChannelResponseEncoderSettingsOutputGroupsOutputsOutputSettingsUdpOutputSettingsContainerSettings`
    `M2tsSettings`

    - **AbsentInputAudioBehavior** *(string) --* When set to drop, output audio streams will be
    removed from the program if the selected input audio stream is removed from the input. This
    allows the output audio configuration to dynamically change based on input configuration. If
    this is set to encodeSilence, all output audio streams will output encoded silence when not
    connected to an active input stream.

    - **Arib** *(string) --* When set to enabled, uses ARIB-compliant field muxing and removes video
    descriptor.

    - **AribCaptionsPid** *(string) --* Packet Identifier (PID) for ARIB Captions in the transport
    stream. Can be entered as a decimal or hexadecimal value. Valid values are 32 (or 0x20)..8182
    (or 0x1ff6).

    - **AribCaptionsPidControl** *(string) --* If set to auto, pid number used for ARIB Captions
    will be auto-selected from unused pids. If set to useConfigured, ARIB Captions will be on the
    configured pid number.

    - **AudioBufferModel** *(string) --* When set to dvb, uses DVB buffer model for Dolby Digital
    audio. When set to atsc, the ATSC model is used.

    - **AudioFramesPerPes** *(integer) --* The number of audio frames to insert for each PES packet.

    - **AudioPids** *(string) --* Packet Identifier (PID) of the elementary audio stream(s) in the
    transport stream. Multiple values are accepted, and can be entered in ranges and/or by comma
    separation. Can be entered as decimal or hexadecimal values. Each PID specified must be in the
    range of 32 (or 0x20)..8182 (or 0x1ff6).

    - **AudioStreamType** *(string) --* When set to atsc, uses stream type = 0x81 for AC3 and stream
    type = 0x87 for EAC3. When set to dvb, uses stream type = 0x06.

    - **Bitrate** *(integer) --* The output bitrate of the transport stream in bits per second.
    Setting to 0 lets the muxer automatically determine the appropriate bitrate.

    - **BufferModel** *(string) --* If set to multiplex, use multiplex buffer model for accurate
    interleaving. Setting to bufferModel to none can lead to lower latency, but low-memory devices
    may not be able to play back the stream without interruptions.

    - **CcDescriptor** *(string) --* When set to enabled, generates captionServiceDescriptor in PMT.

    - **DvbNitSettings** *(dict) --* Inserts DVB Network Information Table (NIT) at the specified
    table repetition interval.

      - **NetworkId** *(integer) --* The numeric value placed in the Network Information Table
      (NIT).

      - **NetworkName** *(string) --* The network name text placed in the networkNameDescriptor
      inside the Network Information Table. Maximum length is 256 characters.

      - **RepInterval** *(integer) --* The number of milliseconds between instances of this table in
      the output transport stream.

    - **DvbSdtSettings** *(dict) --* Inserts DVB Service Description Table (SDT) at the specified
    table repetition interval.

      - **OutputSdt** *(string) --* Selects method of inserting SDT information into output stream.
      The sdtFollow setting copies SDT information from input stream to output stream. The
      sdtFollowIfPresent setting copies SDT information from input stream to output stream if SDT
      information is present in the input, otherwise it will fall back on the user-defined values.
      The sdtManual setting means user will enter the SDT information. The sdtNone setting means
      output stream will not contain SDT information.

      - **RepInterval** *(integer) --* The number of milliseconds between instances of this table in
      the output transport stream.

      - **ServiceName** *(string) --* The service name placed in the serviceDescriptor in the
      Service Description Table. Maximum length is 256 characters.

      - **ServiceProviderName** *(string) --* The service provider name placed in the
      serviceDescriptor in the Service Description Table. Maximum length is 256 characters.

    - **DvbSubPids** *(string) --* Packet Identifier (PID) for input source DVB Subtitle data to
    this output. Multiple values are accepted, and can be entered in ranges and/or by comma
    separation. Can be entered as decimal or hexadecimal values. Each PID specified must be in the
    range of 32 (or 0x20)..8182 (or 0x1ff6).

    - **DvbTdtSettings** *(dict) --* Inserts DVB Time and Date Table (TDT) at the specified table
    repetition interval.

      - **RepInterval** *(integer) --* The number of milliseconds between instances of this table in
      the output transport stream.

    - **DvbTeletextPid** *(string) --* Packet Identifier (PID) for input source DVB Teletext data to
    this output. Can be entered as a decimal or hexadecimal value. Valid values are 32 (or
    0x20)..8182 (or 0x1ff6).

    - **Ebif** *(string) --* If set to passthrough, passes any EBIF data from the input source to
    this output.

    - **EbpAudioInterval** *(string) --* When videoAndFixedIntervals is selected, audio EBP markers
    will be added to partitions 3 and 4. The interval between these additional markers will be
    fixed, and will be slightly shorter than the video EBP marker interval. Only available when EBP
    Cablelabs segmentation markers are selected. Partitions 1 and 2 will always follow the video
    interval.

    - **EbpLookaheadMs** *(integer) --* When set, enforces that Encoder Boundary Points do not come
    within the specified time interval of each other by looking ahead at input video. If another EBP
    is going to come in within the specified time interval, the current EBP is not emitted, and the
    segment is "stretched" to the next marker. The lookahead value does not add latency to the
    system. The Live Event must be configured elsewhere to create sufficient latency to make the
    lookahead accurate.

    - **EbpPlacement** *(string) --* Controls placement of EBP on Audio PIDs. If set to
    videoAndAudioPids, EBP markers will be placed on the video PID and all audio PIDs. If set to
    videoPid, EBP markers will be placed on only the video PID.

    - **EcmPid** *(string) --* This field is unused and deprecated.

    - **EsRateInPes** *(string) --* Include or exclude the ES Rate field in the PES header.

    - **EtvPlatformPid** *(string) --* Packet Identifier (PID) for input source ETV Platform data to
    this output. Can be entered as a decimal or hexadecimal value. Valid values are 32 (or
    0x20)..8182 (or 0x1ff6).

    - **EtvSignalPid** *(string) --* Packet Identifier (PID) for input source ETV Signal data to
    this output. Can be entered as a decimal or hexadecimal value. Valid values are 32 (or
    0x20)..8182 (or 0x1ff6).

    - **FragmentTime** *(float) --* The length in seconds of each fragment. Only used with EBP
    markers.

    - **Klv** *(string) --* If set to passthrough, passes any KLV data from the input source to this
    output.

    - **KlvDataPids** *(string) --* Packet Identifier (PID) for input source KLV data to this
    output. Multiple values are accepted, and can be entered in ranges and/or by comma separation.
    Can be entered as decimal or hexadecimal values. Each PID specified must be in the range of 32
    (or 0x20)..8182 (or 0x1ff6).

    - **NielsenId3Behavior** *(string) --* If set to passthrough, Nielsen inaudible tones for media
    tracking will be detected in the input audio and an equivalent ID3 tag will be inserted in the
    output.

    - **NullPacketBitrate** *(float) --* Value in bits per second of extra null packets to insert
    into the transport stream. This can be used if a downstream encryption system requires periodic
    null packets.

    - **PatInterval** *(integer) --* The number of milliseconds between instances of this table in
    the output transport stream. Valid values are 0, 10..1000.

    - **PcrControl** *(string) --* When set to pcrEveryPesPacket, a Program Clock Reference value is
    inserted for every Packetized Elementary Stream (PES) header. This parameter is effective only
    when the PCR PID is the same as the video or audio elementary stream.

    - **PcrPeriod** *(integer) --* Maximum time in milliseconds between Program Clock Reference
    (PCRs) inserted into the transport stream.

    - **PcrPid** *(string) --* Packet Identifier (PID) of the Program Clock Reference (PCR) in the
    transport stream. When no value is given, the encoder will assign the same value as the Video
    PID. Can be entered as a decimal or hexadecimal value. Valid values are 32 (or 0x20)..8182 (or
    0x1ff6).

    - **PmtInterval** *(integer) --* The number of milliseconds between instances of this table in
    the output transport stream. Valid values are 0, 10..1000.

    - **PmtPid** *(string) --* Packet Identifier (PID) for the Program Map Table (PMT) in the
    transport stream. Can be entered as a decimal or hexadecimal value. Valid values are 32 (or
    0x20)..8182 (or 0x1ff6).

    - **ProgramNum** *(integer) --* The value of the program number field in the Program Map Table.

    - **RateMode** *(string) --* When vbr, does not insert null packets into transport stream to
    fill specified bitrate. The bitrate setting acts as the maximum bitrate when vbr is set.

    - **Scte27Pids** *(string) --* Packet Identifier (PID) for input source SCTE-27 data to this
    output. Multiple values are accepted, and can be entered in ranges and/or by comma separation.
    Can be entered as decimal or hexadecimal values. Each PID specified must be in the range of 32
    (or 0x20)..8182 (or 0x1ff6).

    - **Scte35Control** *(string) --* Optionally pass SCTE-35 signals from the input source to this
    output.

    - **Scte35Pid** *(string) --* Packet Identifier (PID) of the SCTE-35 stream in the transport
    stream. Can be entered as a decimal or hexadecimal value. Valid values are 32 (or 0x20)..8182
    (or 0x1ff6).

    - **SegmentationMarkers** *(string) --* Inserts segmentation markers at each segmentationTime
    period. raiSegstart sets the Random Access Indicator bit in the adaptation field. raiAdapt sets
    the RAI bit and adds the current timecode in the private data bytes. psiSegstart inserts PAT and
    PMT tables at the start of segments. ebp adds Encoder Boundary Point information to the
    adaptation field as per OpenCable specification OC-SP-EBP-I01-130118. ebpLegacy adds Encoder
    Boundary Point information to the adaptation field using a legacy proprietary format.

    - **SegmentationStyle** *(string) --* The segmentation style parameter controls how segmentation
    markers are inserted into the transport stream. With avails, it is possible that segments may be
    truncated, which can influence where future segmentation markers are inserted. When a
    segmentation style of "resetCadence" is selected and a segment is truncated due to an avail, we
    will reset the segmentation cadence. This means the subsequent segment will have a duration of
    $segmentationTime seconds. When a segmentation style of "maintainCadence" is selected and a
    segment is truncated due to an avail, we will not reset the segmentation cadence. This means the
    subsequent segment will likely be truncated as well. However, all segments after that will have
    a duration of $segmentationTime seconds. Note that EBP lookahead is a slight exception to this
    rule.

    - **SegmentationTime** *(float) --* The length in seconds of each segment. Required unless
    markers is set to None_.

    - **TimedMetadataBehavior** *(string) --* When set to passthrough, timed metadata will be passed
    through from input to output.

    - **TimedMetadataPid** *(string) --* Packet Identifier (PID) of the timed metadata stream in the
    transport stream. Can be entered as a decimal or hexadecimal value. Valid values are 32 (or
    0x20)..8182 (or 0x1ff6).

    - **TransportStreamId** *(integer) --* The value of the transport stream ID field in the Program
    Map Table.

    - **VideoPid** *(string) --* Packet Identifier (PID) of the elementary video stream in the
    transport stream. Can be entered as a decimal or hexadecimal value. Valid values are 32 (or
    0x20)..8182 (or 0x1ff6).
    """


_ClientDeleteChannelResponseEncoderSettingsOutputGroupsOutputsOutputSettingsUdpOutputSettingsContainerSettingsTypeDef = TypedDict(
    "_ClientDeleteChannelResponseEncoderSettingsOutputGroupsOutputsOutputSettingsUdpOutputSettingsContainerSettingsTypeDef",
    {
        "M2tsSettings": ClientDeleteChannelResponseEncoderSettingsOutputGroupsOutputsOutputSettingsUdpOutputSettingsContainerSettingsM2tsSettingsTypeDef
    },
    total=False,
)


class ClientDeleteChannelResponseEncoderSettingsOutputGroupsOutputsOutputSettingsUdpOutputSettingsContainerSettingsTypeDef(
    _ClientDeleteChannelResponseEncoderSettingsOutputGroupsOutputsOutputSettingsUdpOutputSettingsContainerSettingsTypeDef
):
    """
    Type definition for
    `ClientDeleteChannelResponseEncoderSettingsOutputGroupsOutputsOutputSettingsUdpOutputSettings`
    `ContainerSettings`

    - **M2tsSettings** *(dict) --* M2ts Settings

      - **AbsentInputAudioBehavior** *(string) --* When set to drop, output audio streams will be
      removed from the program if the selected input audio stream is removed from the input. This
      allows the output audio configuration to dynamically change based on input configuration. If
      this is set to encodeSilence, all output audio streams will output encoded silence when not
      connected to an active input stream.

      - **Arib** *(string) --* When set to enabled, uses ARIB-compliant field muxing and removes
      video descriptor.

      - **AribCaptionsPid** *(string) --* Packet Identifier (PID) for ARIB Captions in the transport
      stream. Can be entered as a decimal or hexadecimal value. Valid values are 32 (or 0x20)..8182
      (or 0x1ff6).

      - **AribCaptionsPidControl** *(string) --* If set to auto, pid number used for ARIB Captions
      will be auto-selected from unused pids. If set to useConfigured, ARIB Captions will be on the
      configured pid number.

      - **AudioBufferModel** *(string) --* When set to dvb, uses DVB buffer model for Dolby Digital
      audio. When set to atsc, the ATSC model is used.

      - **AudioFramesPerPes** *(integer) --* The number of audio frames to insert for each PES
      packet.

      - **AudioPids** *(string) --* Packet Identifier (PID) of the elementary audio stream(s) in the
      transport stream. Multiple values are accepted, and can be entered in ranges and/or by comma
      separation. Can be entered as decimal or hexadecimal values. Each PID specified must be in the
      range of 32 (or 0x20)..8182 (or 0x1ff6).

      - **AudioStreamType** *(string) --* When set to atsc, uses stream type = 0x81 for AC3 and
      stream type = 0x87 for EAC3. When set to dvb, uses stream type = 0x06.

      - **Bitrate** *(integer) --* The output bitrate of the transport stream in bits per second.
      Setting to 0 lets the muxer automatically determine the appropriate bitrate.

      - **BufferModel** *(string) --* If set to multiplex, use multiplex buffer model for accurate
      interleaving. Setting to bufferModel to none can lead to lower latency, but low-memory devices
      may not be able to play back the stream without interruptions.

      - **CcDescriptor** *(string) --* When set to enabled, generates captionServiceDescriptor in
      PMT.

      - **DvbNitSettings** *(dict) --* Inserts DVB Network Information Table (NIT) at the specified
      table repetition interval.

        - **NetworkId** *(integer) --* The numeric value placed in the Network Information Table
        (NIT).

        - **NetworkName** *(string) --* The network name text placed in the networkNameDescriptor
        inside the Network Information Table. Maximum length is 256 characters.

        - **RepInterval** *(integer) --* The number of milliseconds between instances of this table
        in the output transport stream.

      - **DvbSdtSettings** *(dict) --* Inserts DVB Service Description Table (SDT) at the specified
      table repetition interval.

        - **OutputSdt** *(string) --* Selects method of inserting SDT information into output
        stream. The sdtFollow setting copies SDT information from input stream to output stream. The
        sdtFollowIfPresent setting copies SDT information from input stream to output stream if SDT
        information is present in the input, otherwise it will fall back on the user-defined values.
        The sdtManual setting means user will enter the SDT information. The sdtNone setting means
        output stream will not contain SDT information.

        - **RepInterval** *(integer) --* The number of milliseconds between instances of this table
        in the output transport stream.

        - **ServiceName** *(string) --* The service name placed in the serviceDescriptor in the
        Service Description Table. Maximum length is 256 characters.

        - **ServiceProviderName** *(string) --* The service provider name placed in the
        serviceDescriptor in the Service Description Table. Maximum length is 256 characters.

      - **DvbSubPids** *(string) --* Packet Identifier (PID) for input source DVB Subtitle data to
      this output. Multiple values are accepted, and can be entered in ranges and/or by comma
      separation. Can be entered as decimal or hexadecimal values. Each PID specified must be in the
      range of 32 (or 0x20)..8182 (or 0x1ff6).

      - **DvbTdtSettings** *(dict) --* Inserts DVB Time and Date Table (TDT) at the specified table
      repetition interval.

        - **RepInterval** *(integer) --* The number of milliseconds between instances of this table
        in the output transport stream.

      - **DvbTeletextPid** *(string) --* Packet Identifier (PID) for input source DVB Teletext data
      to this output. Can be entered as a decimal or hexadecimal value. Valid values are 32 (or
      0x20)..8182 (or 0x1ff6).

      - **Ebif** *(string) --* If set to passthrough, passes any EBIF data from the input source to
      this output.

      - **EbpAudioInterval** *(string) --* When videoAndFixedIntervals is selected, audio EBP
      markers will be added to partitions 3 and 4. The interval between these additional markers
      will be fixed, and will be slightly shorter than the video EBP marker interval. Only available
      when EBP Cablelabs segmentation markers are selected. Partitions 1 and 2 will always follow
      the video interval.

      - **EbpLookaheadMs** *(integer) --* When set, enforces that Encoder Boundary Points do not
      come within the specified time interval of each other by looking ahead at input video. If
      another EBP is going to come in within the specified time interval, the current EBP is not
      emitted, and the segment is "stretched" to the next marker. The lookahead value does not add
      latency to the system. The Live Event must be configured elsewhere to create sufficient
      latency to make the lookahead accurate.

      - **EbpPlacement** *(string) --* Controls placement of EBP on Audio PIDs. If set to
      videoAndAudioPids, EBP markers will be placed on the video PID and all audio PIDs. If set to
      videoPid, EBP markers will be placed on only the video PID.

      - **EcmPid** *(string) --* This field is unused and deprecated.

      - **EsRateInPes** *(string) --* Include or exclude the ES Rate field in the PES header.

      - **EtvPlatformPid** *(string) --* Packet Identifier (PID) for input source ETV Platform data
      to this output. Can be entered as a decimal or hexadecimal value. Valid values are 32 (or
      0x20)..8182 (or 0x1ff6).

      - **EtvSignalPid** *(string) --* Packet Identifier (PID) for input source ETV Signal data to
      this output. Can be entered as a decimal or hexadecimal value. Valid values are 32 (or
      0x20)..8182 (or 0x1ff6).

      - **FragmentTime** *(float) --* The length in seconds of each fragment. Only used with EBP
      markers.

      - **Klv** *(string) --* If set to passthrough, passes any KLV data from the input source to
      this output.

      - **KlvDataPids** *(string) --* Packet Identifier (PID) for input source KLV data to this
      output. Multiple values are accepted, and can be entered in ranges and/or by comma separation.
      Can be entered as decimal or hexadecimal values. Each PID specified must be in the range of 32
      (or 0x20)..8182 (or 0x1ff6).

      - **NielsenId3Behavior** *(string) --* If set to passthrough, Nielsen inaudible tones for
      media tracking will be detected in the input audio and an equivalent ID3 tag will be inserted
      in the output.

      - **NullPacketBitrate** *(float) --* Value in bits per second of extra null packets to insert
      into the transport stream. This can be used if a downstream encryption system requires
      periodic null packets.

      - **PatInterval** *(integer) --* The number of milliseconds between instances of this table in
      the output transport stream. Valid values are 0, 10..1000.

      - **PcrControl** *(string) --* When set to pcrEveryPesPacket, a Program Clock Reference value
      is inserted for every Packetized Elementary Stream (PES) header. This parameter is effective
      only when the PCR PID is the same as the video or audio elementary stream.

      - **PcrPeriod** *(integer) --* Maximum time in milliseconds between Program Clock Reference
      (PCRs) inserted into the transport stream.

      - **PcrPid** *(string) --* Packet Identifier (PID) of the Program Clock Reference (PCR) in the
      transport stream. When no value is given, the encoder will assign the same value as the Video
      PID. Can be entered as a decimal or hexadecimal value. Valid values are 32 (or 0x20)..8182 (or
      0x1ff6).

      - **PmtInterval** *(integer) --* The number of milliseconds between instances of this table in
      the output transport stream. Valid values are 0, 10..1000.

      - **PmtPid** *(string) --* Packet Identifier (PID) for the Program Map Table (PMT) in the
      transport stream. Can be entered as a decimal or hexadecimal value. Valid values are 32 (or
      0x20)..8182 (or 0x1ff6).

      - **ProgramNum** *(integer) --* The value of the program number field in the Program Map
      Table.

      - **RateMode** *(string) --* When vbr, does not insert null packets into transport stream to
      fill specified bitrate. The bitrate setting acts as the maximum bitrate when vbr is set.

      - **Scte27Pids** *(string) --* Packet Identifier (PID) for input source SCTE-27 data to this
      output. Multiple values are accepted, and can be entered in ranges and/or by comma separation.
      Can be entered as decimal or hexadecimal values. Each PID specified must be in the range of 32
      (or 0x20)..8182 (or 0x1ff6).

      - **Scte35Control** *(string) --* Optionally pass SCTE-35 signals from the input source to
      this output.

      - **Scte35Pid** *(string) --* Packet Identifier (PID) of the SCTE-35 stream in the transport
      stream. Can be entered as a decimal or hexadecimal value. Valid values are 32 (or 0x20)..8182
      (or 0x1ff6).

      - **SegmentationMarkers** *(string) --* Inserts segmentation markers at each segmentationTime
      period. raiSegstart sets the Random Access Indicator bit in the adaptation field. raiAdapt
      sets the RAI bit and adds the current timecode in the private data bytes. psiSegstart inserts
      PAT and PMT tables at the start of segments. ebp adds Encoder Boundary Point information to
      the adaptation field as per OpenCable specification OC-SP-EBP-I01-130118. ebpLegacy adds
      Encoder Boundary Point information to the adaptation field using a legacy proprietary format.

      - **SegmentationStyle** *(string) --* The segmentation style parameter controls how
      segmentation markers are inserted into the transport stream. With avails, it is possible that
      segments may be truncated, which can influence where future segmentation markers are inserted.
      When a segmentation style of "resetCadence" is selected and a segment is truncated due to an
      avail, we will reset the segmentation cadence. This means the subsequent segment will have a
      duration of $segmentationTime seconds. When a segmentation style of "maintainCadence" is
      selected and a segment is truncated due to an avail, we will not reset the segmentation
      cadence. This means the subsequent segment will likely be truncated as well. However, all
      segments after that will have a duration of $segmentationTime seconds. Note that EBP lookahead
      is a slight exception to this rule.

      - **SegmentationTime** *(float) --* The length in seconds of each segment. Required unless
      markers is set to None_.

      - **TimedMetadataBehavior** *(string) --* When set to passthrough, timed metadata will be
      passed through from input to output.

      - **TimedMetadataPid** *(string) --* Packet Identifier (PID) of the timed metadata stream in
      the transport stream. Can be entered as a decimal or hexadecimal value. Valid values are 32
      (or 0x20)..8182 (or 0x1ff6).

      - **TransportStreamId** *(integer) --* The value of the transport stream ID field in the
      Program Map Table.

      - **VideoPid** *(string) --* Packet Identifier (PID) of the elementary video stream in the
      transport stream. Can be entered as a decimal or hexadecimal value. Valid values are 32 (or
      0x20)..8182 (or 0x1ff6).
    """


_ClientDeleteChannelResponseEncoderSettingsOutputGroupsOutputsOutputSettingsUdpOutputSettingsDestinationTypeDef = TypedDict(
    "_ClientDeleteChannelResponseEncoderSettingsOutputGroupsOutputsOutputSettingsUdpOutputSettingsDestinationTypeDef",
    {"DestinationRefId": str},
    total=False,
)


class ClientDeleteChannelResponseEncoderSettingsOutputGroupsOutputsOutputSettingsUdpOutputSettingsDestinationTypeDef(
    _ClientDeleteChannelResponseEncoderSettingsOutputGroupsOutputsOutputSettingsUdpOutputSettingsDestinationTypeDef
):
    """
    Type definition for
    `ClientDeleteChannelResponseEncoderSettingsOutputGroupsOutputsOutputSettingsUdpOutputSettings`
    `Destination`

    - **DestinationRefId** *(string) --* Placeholder documentation for __string
    """


_ClientDeleteChannelResponseEncoderSettingsOutputGroupsOutputsOutputSettingsUdpOutputSettingsFecOutputSettingsTypeDef = TypedDict(
    "_ClientDeleteChannelResponseEncoderSettingsOutputGroupsOutputsOutputSettingsUdpOutputSettingsFecOutputSettingsTypeDef",
    {"ColumnDepth": int, "IncludeFec": str, "RowLength": int},
    total=False,
)


class ClientDeleteChannelResponseEncoderSettingsOutputGroupsOutputsOutputSettingsUdpOutputSettingsFecOutputSettingsTypeDef(
    _ClientDeleteChannelResponseEncoderSettingsOutputGroupsOutputsOutputSettingsUdpOutputSettingsFecOutputSettingsTypeDef
):
    """
    Type definition for
    `ClientDeleteChannelResponseEncoderSettingsOutputGroupsOutputsOutputSettingsUdpOutputSettings`
    `FecOutputSettings`

    - **ColumnDepth** *(integer) --* Parameter D from SMPTE 2022-1. The height of the FEC protection
    matrix. The number of transport stream packets per column error correction packet. Must be
    between 4 and 20, inclusive.

    - **IncludeFec** *(string) --* Enables column only or column and row based FEC

    - **RowLength** *(integer) --* Parameter L from SMPTE 2022-1. The width of the FEC protection
    matrix. Must be between 1 and 20, inclusive. If only Column FEC is used, then larger values
    increase robustness. If Row FEC is used, then this is the number of transport stream packets per
    row error correction packet, and the value must be between 4 and 20, inclusive, if includeFec is
    columnAndRow. If includeFec is column, this value must be 1 to 20, inclusive.
    """


_ClientDeleteChannelResponseEncoderSettingsOutputGroupsOutputsOutputSettingsUdpOutputSettingsTypeDef = TypedDict(
    "_ClientDeleteChannelResponseEncoderSettingsOutputGroupsOutputsOutputSettingsUdpOutputSettingsTypeDef",
    {
        "BufferMsec": int,
        "ContainerSettings": ClientDeleteChannelResponseEncoderSettingsOutputGroupsOutputsOutputSettingsUdpOutputSettingsContainerSettingsTypeDef,
        "Destination": ClientDeleteChannelResponseEncoderSettingsOutputGroupsOutputsOutputSettingsUdpOutputSettingsDestinationTypeDef,
        "FecOutputSettings": ClientDeleteChannelResponseEncoderSettingsOutputGroupsOutputsOutputSettingsUdpOutputSettingsFecOutputSettingsTypeDef,
    },
    total=False,
)


class ClientDeleteChannelResponseEncoderSettingsOutputGroupsOutputsOutputSettingsUdpOutputSettingsTypeDef(
    _ClientDeleteChannelResponseEncoderSettingsOutputGroupsOutputsOutputSettingsUdpOutputSettingsTypeDef
):
    """
    Type definition for
    `ClientDeleteChannelResponseEncoderSettingsOutputGroupsOutputsOutputSettings`
    `UdpOutputSettings`

    - **BufferMsec** *(integer) --* UDP output buffering in milliseconds. Larger values increase
    latency through the transcoder but simultaneously assist the transcoder in maintaining a
    constant, low-jitter UDP/RTP output while accommodating clock recovery, input switching, input
    disruptions, picture reordering, etc.

    - **ContainerSettings** *(dict) --* Udp Container Settings

      - **M2tsSettings** *(dict) --* M2ts Settings

        - **AbsentInputAudioBehavior** *(string) --* When set to drop, output audio streams will be
        removed from the program if the selected input audio stream is removed from the input. This
        allows the output audio configuration to dynamically change based on input configuration. If
        this is set to encodeSilence, all output audio streams will output encoded silence when not
        connected to an active input stream.

        - **Arib** *(string) --* When set to enabled, uses ARIB-compliant field muxing and removes
        video descriptor.

        - **AribCaptionsPid** *(string) --* Packet Identifier (PID) for ARIB Captions in the
        transport stream. Can be entered as a decimal or hexadecimal value. Valid values are 32 (or
        0x20)..8182 (or 0x1ff6).

        - **AribCaptionsPidControl** *(string) --* If set to auto, pid number used for ARIB Captions
        will be auto-selected from unused pids. If set to useConfigured, ARIB Captions will be on
        the configured pid number.

        - **AudioBufferModel** *(string) --* When set to dvb, uses DVB buffer model for Dolby
        Digital audio. When set to atsc, the ATSC model is used.

        - **AudioFramesPerPes** *(integer) --* The number of audio frames to insert for each PES
        packet.

        - **AudioPids** *(string) --* Packet Identifier (PID) of the elementary audio stream(s) in
        the transport stream. Multiple values are accepted, and can be entered in ranges and/or by
        comma separation. Can be entered as decimal or hexadecimal values. Each PID specified must
        be in the range of 32 (or 0x20)..8182 (or 0x1ff6).

        - **AudioStreamType** *(string) --* When set to atsc, uses stream type =
             0x81 for AC3 and
        stream type = 0x87 for EAC3. When set to dvb, uses stream type = 0x06.

        - **Bitrate** *(integer) --* The output bitrate of the transport stream in bits per second.
        Setting to 0 lets the muxer automatically determine the appropriate bitrate.

        - **BufferModel** *(string) --* If set to multiplex, use multiplex buffer model for accurate
        interleaving. Setting to bufferModel to none can lead to lower latency, but low-memory
        devices may not be able to play back the stream without interruptions.

        - **CcDescriptor** *(string) --* When set to enabled, generates captionServiceDescriptor in
        PMT.

        - **DvbNitSettings** *(dict) --* Inserts DVB Network Information Table (NIT) at the
        specified table repetition interval.

          - **NetworkId** *(integer) --* The numeric value placed in the Network Information Table
          (NIT).

          - **NetworkName** *(string) --* The network name text placed in the networkNameDescriptor
          inside the Network Information Table. Maximum length is 256 characters.

          - **RepInterval** *(integer) --* The number of milliseconds between instances of this
          table in the output transport stream.

        - **DvbSdtSettings** *(dict) --* Inserts DVB Service Description Table (SDT) at the
        specified table repetition interval.

          - **OutputSdt** *(string) --* Selects method of inserting SDT information into output
          stream. The sdtFollow setting copies SDT information from input stream to output stream.
          The sdtFollowIfPresent setting copies SDT information from input stream to output stream
          if SDT information is present in the input, otherwise it will fall back on the
          user-defined values. The sdtManual setting means user will enter the SDT information. The
          sdtNone setting means output stream will not contain SDT information.

          - **RepInterval** *(integer) --* The number of milliseconds between instances of this
          table in the output transport stream.

          - **ServiceName** *(string) --* The service name placed in the serviceDescriptor in the
          Service Description Table. Maximum length is 256 characters.

          - **ServiceProviderName** *(string) --* The service provider name placed in the
          serviceDescriptor in the Service Description Table. Maximum length is 256 characters.

        - **DvbSubPids** *(string) --* Packet Identifier (PID) for input source DVB Subtitle data to
        this output. Multiple values are accepted, and can be entered in ranges and/or by comma
        separation. Can be entered as decimal or hexadecimal values. Each PID specified must be in
        the range of 32 (or 0x20)..8182 (or 0x1ff6).

        - **DvbTdtSettings** *(dict) --* Inserts DVB Time and Date Table (TDT) at the specified
        table repetition interval.

          - **RepInterval** *(integer) --* The number of milliseconds between instances of this
          table in the output transport stream.

        - **DvbTeletextPid** *(string) --* Packet Identifier (PID) for input source DVB Teletext
        data to this output. Can be entered as a decimal or hexadecimal value. Valid values are 32
        (or 0x20)..8182 (or 0x1ff6).

        - **Ebif** *(string) --* If set to passthrough, passes any EBIF data from the input source
        to this output.

        - **EbpAudioInterval** *(string) --* When videoAndFixedIntervals is selected, audio EBP
        markers will be added to partitions 3 and 4. The interval between these additional markers
        will be fixed, and will be slightly shorter than the video EBP marker interval. Only
        available when EBP Cablelabs segmentation markers are selected. Partitions 1 and 2 will
        always follow the video interval.

        - **EbpLookaheadMs** *(integer) --* When set, enforces that Encoder Boundary Points do not
        come within the specified time interval of each other by looking ahead at input video. If
        another EBP is going to come in within the specified time interval, the current EBP is not
        emitted, and the segment is "stretched" to the next marker. The lookahead value does not add
        latency to the system. The Live Event must be configured elsewhere to create sufficient
        latency to make the lookahead accurate.

        - **EbpPlacement** *(string) --* Controls placement of EBP on Audio PIDs. If set to
        videoAndAudioPids, EBP markers will be placed on the video PID and all audio PIDs. If set to
        videoPid, EBP markers will be placed on only the video PID.

        - **EcmPid** *(string) --* This field is unused and deprecated.

        - **EsRateInPes** *(string) --* Include or exclude the ES Rate field in the PES header.

        - **EtvPlatformPid** *(string) --* Packet Identifier (PID) for input source ETV Platform
        data to this output. Can be entered as a decimal or hexadecimal value. Valid values are 32
        (or 0x20)..8182 (or 0x1ff6).

        - **EtvSignalPid** *(string) --* Packet Identifier (PID) for input source ETV Signal data to
        this output. Can be entered as a decimal or hexadecimal value. Valid values are 32 (or
        0x20)..8182 (or 0x1ff6).

        - **FragmentTime** *(float) --* The length in seconds of each fragment. Only used with EBP
        markers.

        - **Klv** *(string) --* If set to passthrough, passes any KLV data from the input source to
        this output.

        - **KlvDataPids** *(string) --* Packet Identifier (PID) for input source KLV data to this
        output. Multiple values are accepted, and can be entered in ranges and/or by comma
        separation. Can be entered as decimal or hexadecimal values. Each PID specified must be in
        the range of 32 (or 0x20)..8182 (or 0x1ff6).

        - **NielsenId3Behavior** *(string) --* If set to passthrough, Nielsen inaudible tones for
        media tracking will be detected in the input audio and an equivalent ID3 tag will be
        inserted in the output.

        - **NullPacketBitrate** *(float) --* Value in bits per second of extra null packets to
        insert into the transport stream. This can be used if a downstream encryption system
        requires periodic null packets.

        - **PatInterval** *(integer) --* The number of milliseconds between instances of this table
        in the output transport stream. Valid values are 0, 10..1000.

        - **PcrControl** *(string) --* When set to pcrEveryPesPacket, a Program Clock Reference
        value is inserted for every Packetized Elementary Stream (PES) header. This parameter is
        effective only when the PCR PID is the same as the video or audio elementary stream.

        - **PcrPeriod** *(integer) --* Maximum time in milliseconds between Program Clock Reference
        (PCRs) inserted into the transport stream.

        - **PcrPid** *(string) --* Packet Identifier (PID) of the Program Clock Reference (PCR) in
        the transport stream. When no value is given, the encoder will assign the same value as the
        Video PID. Can be entered as a decimal or hexadecimal value. Valid values are 32 (or
        0x20)..8182 (or 0x1ff6).

        - **PmtInterval** *(integer) --* The number of milliseconds between instances of this table
        in the output transport stream. Valid values are 0, 10..1000.

        - **PmtPid** *(string) --* Packet Identifier (PID) for the Program Map Table (PMT) in the
        transport stream. Can be entered as a decimal or hexadecimal value. Valid values are 32 (or
        0x20)..8182 (or 0x1ff6).

        - **ProgramNum** *(integer) --* The value of the program number field in the Program Map
        Table.

        - **RateMode** *(string) --* When vbr, does not insert null packets into transport stream to
        fill specified bitrate. The bitrate setting acts as the maximum bitrate when vbr is set.

        - **Scte27Pids** *(string) --* Packet Identifier (PID) for input source SCTE-27 data to this
        output. Multiple values are accepted, and can be entered in ranges and/or by comma
        separation. Can be entered as decimal or hexadecimal values. Each PID specified must be in
        the range of 32 (or 0x20)..8182 (or 0x1ff6).

        - **Scte35Control** *(string) --* Optionally pass SCTE-35 signals from the input source to
        this output.

        - **Scte35Pid** *(string) --* Packet Identifier (PID) of the SCTE-35 stream in the transport
        stream. Can be entered as a decimal or hexadecimal value. Valid values are 32 (or
        0x20)..8182 (or 0x1ff6).

        - **SegmentationMarkers** *(string) --* Inserts segmentation markers at each
        segmentationTime period. raiSegstart sets the Random Access Indicator bit in the adaptation
        field. raiAdapt sets the RAI bit and adds the current timecode in the private data bytes.
        psiSegstart inserts PAT and PMT tables at the start of segments. ebp adds Encoder Boundary
        Point information to the adaptation field as per OpenCable specification
        OC-SP-EBP-I01-130118. ebpLegacy adds Encoder Boundary Point information to the adaptation
        field using a legacy proprietary format.

        - **SegmentationStyle** *(string) --* The segmentation style parameter controls how
        segmentation markers are inserted into the transport stream. With avails, it is possible
        that segments may be truncated, which can influence where future segmentation markers are
        inserted. When a segmentation style of "resetCadence" is selected and a segment is truncated
        due to an avail, we will reset the segmentation cadence. This means the subsequent segment
        will have a duration of $segmentationTime seconds. When a segmentation style of
        "maintainCadence" is selected and a segment is truncated due to an avail, we will not reset
        the segmentation cadence. This means the subsequent segment will likely be truncated as
        well. However, all segments after that will have a duration of $segmentationTime seconds.
        Note that EBP lookahead is a slight exception to this rule.

        - **SegmentationTime** *(float) --* The length in seconds of each segment. Required unless
        markers is set to None_.

        - **TimedMetadataBehavior** *(string) --* When set to passthrough, timed metadata will be
        passed through from input to output.

        - **TimedMetadataPid** *(string) --* Packet Identifier (PID) of the timed metadata stream in
        the transport stream. Can be entered as a decimal or hexadecimal value. Valid values are 32
        (or 0x20)..8182 (or 0x1ff6).

        - **TransportStreamId** *(integer) --* The value of the transport stream ID field in the
        Program Map Table.

        - **VideoPid** *(string) --* Packet Identifier (PID) of the elementary video stream in the
        transport stream. Can be entered as a decimal or hexadecimal value. Valid values are 32 (or
        0x20)..8182 (or 0x1ff6).

    - **Destination** *(dict) --* Destination address and port number for RTP or UDP packets. Can be
    unicast or multicast RTP or UDP (eg. rtp://239.10.10.10:5001 or udp://10.100.100.100:5002).

      - **DestinationRefId** *(string) --* Placeholder documentation for __string

    - **FecOutputSettings** *(dict) --* Settings for enabling and adjusting Forward Error Correction
    on UDP outputs.

      - **ColumnDepth** *(integer) --* Parameter D from SMPTE 2022-1. The height of the FEC
      protection matrix. The number of transport stream packets per column error correction packet.
      Must be between 4 and 20, inclusive.

      - **IncludeFec** *(string) --* Enables column only or column and row based FEC

      - **RowLength** *(integer) --* Parameter L from SMPTE 2022-1. The width of the FEC protection
      matrix. Must be between 1 and 20, inclusive. If only Column FEC is used, then larger values
      increase robustness. If Row FEC is used, then this is the number of transport stream packets
      per row error correction packet, and the value must be between 4 and 20, inclusive, if
      includeFec is columnAndRow. If includeFec is column, this value must be 1 to 20, inclusive.
    """


_ClientDeleteChannelResponseEncoderSettingsOutputGroupsOutputsOutputSettingsTypeDef = TypedDict(
    "_ClientDeleteChannelResponseEncoderSettingsOutputGroupsOutputsOutputSettingsTypeDef",
    {
        "ArchiveOutputSettings": ClientDeleteChannelResponseEncoderSettingsOutputGroupsOutputsOutputSettingsArchiveOutputSettingsTypeDef,
        "FrameCaptureOutputSettings": ClientDeleteChannelResponseEncoderSettingsOutputGroupsOutputsOutputSettingsFrameCaptureOutputSettingsTypeDef,
        "HlsOutputSettings": ClientDeleteChannelResponseEncoderSettingsOutputGroupsOutputsOutputSettingsHlsOutputSettingsTypeDef,
        "MediaPackageOutputSettings": Dict,
        "MsSmoothOutputSettings": ClientDeleteChannelResponseEncoderSettingsOutputGroupsOutputsOutputSettingsMsSmoothOutputSettingsTypeDef,
        "MultiplexOutputSettings": ClientDeleteChannelResponseEncoderSettingsOutputGroupsOutputsOutputSettingsMultiplexOutputSettingsTypeDef,
        "RtmpOutputSettings": ClientDeleteChannelResponseEncoderSettingsOutputGroupsOutputsOutputSettingsRtmpOutputSettingsTypeDef,
        "UdpOutputSettings": ClientDeleteChannelResponseEncoderSettingsOutputGroupsOutputsOutputSettingsUdpOutputSettingsTypeDef,
    },
    total=False,
)


class ClientDeleteChannelResponseEncoderSettingsOutputGroupsOutputsOutputSettingsTypeDef(
    _ClientDeleteChannelResponseEncoderSettingsOutputGroupsOutputsOutputSettingsTypeDef
):
    """
    Type definition for `ClientDeleteChannelResponseEncoderSettingsOutputGroupsOutputs`
    `OutputSettings`

    - **ArchiveOutputSettings** *(dict) --* Archive Output Settings

      - **ContainerSettings** *(dict) --* Settings specific to the container type of the file.

        - **M2tsSettings** *(dict) --* M2ts Settings

          - **AbsentInputAudioBehavior** *(string) --* When set to drop, output audio streams will
          be removed from the program if the selected input audio stream is removed from the input.
          This allows the output audio configuration to dynamically change based on input
          configuration. If this is set to encodeSilence, all output audio streams will output
          encoded silence when not connected to an active input stream.

          - **Arib** *(string) --* When set to enabled, uses ARIB-compliant field muxing and removes
          video descriptor.

          - **AribCaptionsPid** *(string) --* Packet Identifier (PID) for ARIB Captions in the
          transport stream. Can be entered as a decimal or hexadecimal value. Valid values are 32
          (or 0x20)..8182 (or 0x1ff6).

          - **AribCaptionsPidControl** *(string) --* If set to auto, pid number used for ARIB
          Captions will be auto-selected from unused pids. If set to useConfigured, ARIB Captions
          will be on the configured pid number.

          - **AudioBufferModel** *(string) --* When set to dvb, uses DVB buffer model for Dolby
          Digital audio. When set to atsc, the ATSC model is used.

          - **AudioFramesPerPes** *(integer) --* The number of audio frames to insert for each PES
          packet.

          - **AudioPids** *(string) --* Packet Identifier (PID) of the elementary audio stream(s) in
          the transport stream. Multiple values are accepted, and can be entered in ranges and/or by
          comma separation. Can be entered as decimal or hexadecimal values. Each PID specified must
          be in the range of 32 (or 0x20)..8182 (or 0x1ff6).

          - **AudioStreamType** *(string) --* When set to atsc, uses stream type =
               0x81 for AC3 and
          stream type = 0x87 for EAC3. When set to dvb, uses stream type = 0x06.

          - **Bitrate** *(integer) --* The output bitrate of the transport stream in bits per
          second. Setting to 0 lets the muxer automatically determine the appropriate bitrate.

          - **BufferModel** *(string) --* If set to multiplex, use multiplex buffer model for
          accurate interleaving. Setting to bufferModel to none can lead to lower latency, but
          low-memory devices may not be able to play back the stream without interruptions.

          - **CcDescriptor** *(string) --* When set to enabled, generates captionServiceDescriptor
          in PMT.

          - **DvbNitSettings** *(dict) --* Inserts DVB Network Information Table (NIT) at the
          specified table repetition interval.

            - **NetworkId** *(integer) --* The numeric value placed in the Network Information Table
            (NIT).

            - **NetworkName** *(string) --* The network name text placed in the
            networkNameDescriptor inside the Network Information Table. Maximum length is 256
            characters.

            - **RepInterval** *(integer) --* The number of milliseconds between instances of this
            table in the output transport stream.

          - **DvbSdtSettings** *(dict) --* Inserts DVB Service Description Table (SDT) at the
          specified table repetition interval.

            - **OutputSdt** *(string) --* Selects method of inserting SDT information into output
            stream. The sdtFollow setting copies SDT information from input stream to output stream.
            The sdtFollowIfPresent setting copies SDT information from input stream to output stream
            if SDT information is present in the input, otherwise it will fall back on the
            user-defined values. The sdtManual setting means user will enter the SDT information.
            The sdtNone setting means output stream will not contain SDT information.

            - **RepInterval** *(integer) --* The number of milliseconds between instances of this
            table in the output transport stream.

            - **ServiceName** *(string) --* The service name placed in the serviceDescriptor in the
            Service Description Table. Maximum length is 256 characters.

            - **ServiceProviderName** *(string) --* The service provider name placed in the
            serviceDescriptor in the Service Description Table. Maximum length is 256 characters.

          - **DvbSubPids** *(string) --* Packet Identifier (PID) for input source DVB Subtitle data
          to this output. Multiple values are accepted, and can be entered in ranges and/or by comma
          separation. Can be entered as decimal or hexadecimal values. Each PID specified must be in
          the range of 32 (or 0x20)..8182 (or 0x1ff6).

          - **DvbTdtSettings** *(dict) --* Inserts DVB Time and Date Table (TDT) at the specified
          table repetition interval.

            - **RepInterval** *(integer) --* The number of milliseconds between instances of this
            table in the output transport stream.

          - **DvbTeletextPid** *(string) --* Packet Identifier (PID) for input source DVB Teletext
          data to this output. Can be entered as a decimal or hexadecimal value. Valid values are 32
          (or 0x20)..8182 (or 0x1ff6).

          - **Ebif** *(string) --* If set to passthrough, passes any EBIF data from the input source
          to this output.

          - **EbpAudioInterval** *(string) --* When videoAndFixedIntervals is selected, audio EBP
          markers will be added to partitions 3 and 4. The interval between these additional markers
          will be fixed, and will be slightly shorter than the video EBP marker interval. Only
          available when EBP Cablelabs segmentation markers are selected. Partitions 1 and 2 will
          always follow the video interval.

          - **EbpLookaheadMs** *(integer) --* When set, enforces that Encoder Boundary Points do not
          come within the specified time interval of each other by looking ahead at input video. If
          another EBP is going to come in within the specified time interval, the current EBP is not
          emitted, and the segment is "stretched" to the next marker. The lookahead value does not
          add latency to the system. The Live Event must be configured elsewhere to create
          sufficient latency to make the lookahead accurate.

          - **EbpPlacement** *(string) --* Controls placement of EBP on Audio PIDs. If set to
          videoAndAudioPids, EBP markers will be placed on the video PID and all audio PIDs. If set
          to videoPid, EBP markers will be placed on only the video PID.

          - **EcmPid** *(string) --* This field is unused and deprecated.

          - **EsRateInPes** *(string) --* Include or exclude the ES Rate field in the PES header.

          - **EtvPlatformPid** *(string) --* Packet Identifier (PID) for input source ETV Platform
          data to this output. Can be entered as a decimal or hexadecimal value. Valid values are 32
          (or 0x20)..8182 (or 0x1ff6).

          - **EtvSignalPid** *(string) --* Packet Identifier (PID) for input source ETV Signal data
          to this output. Can be entered as a decimal or hexadecimal value. Valid values are 32 (or
          0x20)..8182 (or 0x1ff6).

          - **FragmentTime** *(float) --* The length in seconds of each fragment. Only used with EBP
          markers.

          - **Klv** *(string) --* If set to passthrough, passes any KLV data from the input source
          to this output.

          - **KlvDataPids** *(string) --* Packet Identifier (PID) for input source KLV data to this
          output. Multiple values are accepted, and can be entered in ranges and/or by comma
          separation. Can be entered as decimal or hexadecimal values. Each PID specified must be in
          the range of 32 (or 0x20)..8182 (or 0x1ff6).

          - **NielsenId3Behavior** *(string) --* If set to passthrough, Nielsen inaudible tones for
          media tracking will be detected in the input audio and an equivalent ID3 tag will be
          inserted in the output.

          - **NullPacketBitrate** *(float) --* Value in bits per second of extra null packets to
          insert into the transport stream. This can be used if a downstream encryption system
          requires periodic null packets.

          - **PatInterval** *(integer) --* The number of milliseconds between instances of this
          table in the output transport stream. Valid values are 0, 10..1000.

          - **PcrControl** *(string) --* When set to pcrEveryPesPacket, a Program Clock Reference
          value is inserted for every Packetized Elementary Stream (PES) header. This parameter is
          effective only when the PCR PID is the same as the video or audio elementary stream.

          - **PcrPeriod** *(integer) --* Maximum time in milliseconds between Program Clock
          Reference (PCRs) inserted into the transport stream.

          - **PcrPid** *(string) --* Packet Identifier (PID) of the Program Clock Reference (PCR) in
          the transport stream. When no value is given, the encoder will assign the same value as
          the Video PID. Can be entered as a decimal or hexadecimal value. Valid values are 32 (or
          0x20)..8182 (or 0x1ff6).

          - **PmtInterval** *(integer) --* The number of milliseconds between instances of this
          table in the output transport stream. Valid values are 0, 10..1000.

          - **PmtPid** *(string) --* Packet Identifier (PID) for the Program Map Table (PMT) in the
          transport stream. Can be entered as a decimal or hexadecimal value. Valid values are 32
          (or 0x20)..8182 (or 0x1ff6).

          - **ProgramNum** *(integer) --* The value of the program number field in the Program Map
          Table.

          - **RateMode** *(string) --* When vbr, does not insert null packets into transport stream
          to fill specified bitrate. The bitrate setting acts as the maximum bitrate when vbr is
          set.

          - **Scte27Pids** *(string) --* Packet Identifier (PID) for input source SCTE-27 data to
          this output. Multiple values are accepted, and can be entered in ranges and/or by comma
          separation. Can be entered as decimal or hexadecimal values. Each PID specified must be in
          the range of 32 (or 0x20)..8182 (or 0x1ff6).

          - **Scte35Control** *(string) --* Optionally pass SCTE-35 signals from the input source to
          this output.

          - **Scte35Pid** *(string) --* Packet Identifier (PID) of the SCTE-35 stream in the
          transport stream. Can be entered as a decimal or hexadecimal value. Valid values are 32
          (or 0x20)..8182 (or 0x1ff6).

          - **SegmentationMarkers** *(string) --* Inserts segmentation markers at each
          segmentationTime period. raiSegstart sets the Random Access Indicator bit in the
          adaptation field. raiAdapt sets the RAI bit and adds the current timecode in the private
          data bytes. psiSegstart inserts PAT and PMT tables at the start of segments. ebp adds
          Encoder Boundary Point information to the adaptation field as per OpenCable specification
          OC-SP-EBP-I01-130118. ebpLegacy adds Encoder Boundary Point information to the adaptation
          field using a legacy proprietary format.

          - **SegmentationStyle** *(string) --* The segmentation style parameter controls how
          segmentation markers are inserted into the transport stream. With avails, it is possible
          that segments may be truncated, which can influence where future segmentation markers are
          inserted. When a segmentation style of "resetCadence" is selected and a segment is
          truncated due to an avail, we will reset the segmentation cadence. This means the
          subsequent segment will have a duration of $segmentationTime seconds. When a segmentation
          style of "maintainCadence" is selected and a segment is truncated due to an avail, we will
          not reset the segmentation cadence. This means the subsequent segment will likely be
          truncated as well. However, all segments after that will have a duration of
          $segmentationTime seconds. Note that EBP lookahead is a slight exception to this rule.

          - **SegmentationTime** *(float) --* The length in seconds of each segment. Required unless
          markers is set to None_.

          - **TimedMetadataBehavior** *(string) --* When set to passthrough, timed metadata will be
          passed through from input to output.

          - **TimedMetadataPid** *(string) --* Packet Identifier (PID) of the timed metadata stream
          in the transport stream. Can be entered as a decimal or hexadecimal value. Valid values
          are 32 (or 0x20)..8182 (or 0x1ff6).

          - **TransportStreamId** *(integer) --* The value of the transport stream ID field in the
          Program Map Table.

          - **VideoPid** *(string) --* Packet Identifier (PID) of the elementary video stream in the
          transport stream. Can be entered as a decimal or hexadecimal value. Valid values are 32
          (or 0x20)..8182 (or 0x1ff6).

      - **Extension** *(string) --* Output file extension. If excluded, this will be auto-selected
      from the container type.

      - **NameModifier** *(string) --* String concatenated to the end of the destination filename.
      Required for multiple outputs of the same type.

    - **FrameCaptureOutputSettings** *(dict) --* Frame Capture Output Settings

      - **NameModifier** *(string) --* Required if the output group contains more than one output.
      This modifier forms part of the output file name.

    - **HlsOutputSettings** *(dict) --* Hls Output Settings

      - **HlsSettings** *(dict) --* Settings regarding the underlying stream. These settings are
      different for audio-only outputs.

        - **AudioOnlyHlsSettings** *(dict) --* Audio Only Hls Settings

          - **AudioGroupId** *(string) --* Specifies the group to which the audio Rendition belongs.

          - **AudioOnlyImage** *(dict) --* Optional. Specifies the .jpg or .png image to use as the
          cover art for an audio-only output. We recommend a low bit-size file because the image
          increases the output audio bandwidth. The image is attached to the audio as an ID3 tag,
          frame type APIC, picture type 0x10, as per the "ID3 tag version 2.4.0 - Native Frames"
          standard.

            - **PasswordParam** *(string) --* key used to extract the password from EC2 Parameter
            store

            - **Uri** *(string) --* Uniform Resource Identifier - This should be a path to a file
            accessible to the Live system (eg. a http:// URI) depending on the output type. For
            example, a RTMP destination should have a uri simliar to: "rtmp://fmsserver/live".

            - **Username** *(string) --* Documentation update needed

          - **AudioTrackType** *(string) --* Four types of audio-only tracks are supported:
          Audio-Only Variant Stream The client can play back this audio-only stream instead of video
          in low-bandwidth scenarios. Represented as an EXT-X-STREAM-INF in the HLS manifest.
          Alternate Audio, Auto Select, Default Alternate rendition that the client should try to
          play back by default. Represented as an EXT-X-MEDIA in the HLS manifest with DEFAULT=YES,
          AUTOSELECT=
              YES Alternate Audio, Auto Select, Not Default Alternate rendition that the
          client may try to play back by default. Represented as an EXT-X-MEDIA in the HLS manifest
          with DEFAULT=NO, AUTOSELECT=
              YES Alternate Audio, not Auto Select Alternate rendition that
          the client will not try to play back by default. Represented as an EXT-X-MEDIA in the HLS
          manifest with DEFAULT=NO, AUTOSELECT=NO

        - **StandardHlsSettings** *(dict) --* Standard Hls Settings

          - **AudioRenditionSets** *(string) --* List all the audio groups that are used with the
          video output stream. Input all the audio GROUP-IDs that are associated to the video,
          separate by ','.

          - **M3u8Settings** *(dict) --* Settings information for the .m3u8 container

            - **AudioFramesPerPes** *(integer) --* The number of audio frames to insert for each PES
            packet.

            - **AudioPids** *(string) --* Packet Identifier (PID) of the elementary audio stream(s)
            in the transport stream. Multiple values are accepted, and can be entered in ranges
            and/or by comma separation. Can be entered as decimal or hexadecimal values.

            - **EcmPid** *(string) --* This parameter is unused and deprecated.

            - **NielsenId3Behavior** *(string) --* If set to passthrough, Nielsen inaudible tones
            for media tracking will be detected in the input audio and an equivalent ID3 tag will be
            inserted in the output.

            - **PatInterval** *(integer) --* The number of milliseconds between instances of this
            table in the output transport stream. A value of \\"0\\" writes out the PMT once per
            segment file.

            - **PcrControl** *(string) --* When set to pcrEveryPesPacket, a Program Clock Reference
            value is inserted for every Packetized Elementary Stream (PES) header. This parameter is
            effective only when the PCR PID is the same as the video or audio elementary stream.

            - **PcrPeriod** *(integer) --* Maximum time in milliseconds between Program Clock
            References (PCRs) inserted into the transport stream.

            - **PcrPid** *(string) --* Packet Identifier (PID) of the Program Clock Reference (PCR)
            in the transport stream. When no value is given, the encoder will assign the same value
            as the Video PID. Can be entered as a decimal or hexadecimal value.

            - **PmtInterval** *(integer) --* The number of milliseconds between instances of this
            table in the output transport stream. A value of \\"0\\" writes out the PMT once per
            segment file.

            - **PmtPid** *(string) --* Packet Identifier (PID) for the Program Map Table (PMT) in
            the transport stream. Can be entered as a decimal or hexadecimal value.

            - **ProgramNum** *(integer) --* The value of the program number field in the Program Map
            Table.

            - **Scte35Behavior** *(string) --* If set to passthrough, passes any SCTE-35 signals
            from the input source to this output.

            - **Scte35Pid** *(string) --* Packet Identifier (PID) of the SCTE-35 stream in the
            transport stream. Can be entered as a decimal or hexadecimal value.

            - **TimedMetadataBehavior** *(string) --* When set to passthrough, timed metadata is
            passed through from input to output.

            - **TimedMetadataPid** *(string) --* Packet Identifier (PID) of the timed metadata
            stream in the transport stream. Can be entered as a decimal or hexadecimal value. Valid
            values are 32 (or 0x20)..8182 (or 0x1ff6).

            - **TransportStreamId** *(integer) --* The value of the transport stream ID field in the
            Program Map Table.

            - **VideoPid** *(string) --* Packet Identifier (PID) of the elementary video stream in
            the transport stream. Can be entered as a decimal or hexadecimal value.

      - **NameModifier** *(string) --* String concatenated to the end of the destination filename.
      Accepts \\"Format Identifiers\\":#formatIdentifierParameters.

      - **SegmentModifier** *(string) --* String concatenated to end of segment filenames.

    - **MediaPackageOutputSettings** *(dict) --* Media Package Output Settings

    - **MsSmoothOutputSettings** *(dict) --* Ms Smooth Output Settings

      - **H265PackagingType** *(string) --* Only applicable when this output is referencing an H.265
      video description. Specifies whether MP4 segments should be packaged as HEV1 or HVC1.

      - **NameModifier** *(string) --* String concatenated to the end of the destination filename.
      Required for multiple outputs of the same type.

    - **MultiplexOutputSettings** *(dict) --* Multiplex Output Settings

      - **Destination** *(dict) --* Destination is a Multiplex.

        - **DestinationRefId** *(string) --* Placeholder documentation for __string

    - **RtmpOutputSettings** *(dict) --* Rtmp Output Settings

      - **CertificateMode** *(string) --* If set to verifyAuthenticity, verify the tls certificate
      chain to a trusted Certificate Authority (CA). This will cause rtmps outputs with self-signed
      certificates to fail.

      - **ConnectionRetryInterval** *(integer) --* Number of seconds to wait before retrying a
      connection to the Flash Media server if the connection is lost.

      - **Destination** *(dict) --* The RTMP endpoint excluding the stream name (eg.
      rtmp://host/appname). For connection to Akamai, a username and password must be supplied. URI
      fields accept format identifiers.

        - **DestinationRefId** *(string) --* Placeholder documentation for __string

      - **NumRetries** *(integer) --* Number of retry attempts.

    - **UdpOutputSettings** *(dict) --* Udp Output Settings

      - **BufferMsec** *(integer) --* UDP output buffering in milliseconds. Larger values increase
      latency through the transcoder but simultaneously assist the transcoder in maintaining a
      constant, low-jitter UDP/RTP output while accommodating clock recovery, input switching, input
      disruptions, picture reordering, etc.

      - **ContainerSettings** *(dict) --* Udp Container Settings

        - **M2tsSettings** *(dict) --* M2ts Settings

          - **AbsentInputAudioBehavior** *(string) --* When set to drop, output audio streams will
          be removed from the program if the selected input audio stream is removed from the input.
          This allows the output audio configuration to dynamically change based on input
          configuration. If this is set to encodeSilence, all output audio streams will output
          encoded silence when not connected to an active input stream.

          - **Arib** *(string) --* When set to enabled, uses ARIB-compliant field muxing and removes
          video descriptor.

          - **AribCaptionsPid** *(string) --* Packet Identifier (PID) for ARIB Captions in the
          transport stream. Can be entered as a decimal or hexadecimal value. Valid values are 32
          (or 0x20)..8182 (or 0x1ff6).

          - **AribCaptionsPidControl** *(string) --* If set to auto, pid number used for ARIB
          Captions will be auto-selected from unused pids. If set to useConfigured, ARIB Captions
          will be on the configured pid number.

          - **AudioBufferModel** *(string) --* When set to dvb, uses DVB buffer model for Dolby
          Digital audio. When set to atsc, the ATSC model is used.

          - **AudioFramesPerPes** *(integer) --* The number of audio frames to insert for each PES
          packet.

          - **AudioPids** *(string) --* Packet Identifier (PID) of the elementary audio stream(s) in
          the transport stream. Multiple values are accepted, and can be entered in ranges and/or by
          comma separation. Can be entered as decimal or hexadecimal values. Each PID specified must
          be in the range of 32 (or 0x20)..8182 (or 0x1ff6).

          - **AudioStreamType** *(string) --* When set to atsc, uses stream type =
               0x81 for AC3 and
          stream type = 0x87 for EAC3. When set to dvb, uses stream type = 0x06.

          - **Bitrate** *(integer) --* The output bitrate of the transport stream in bits per
          second. Setting to 0 lets the muxer automatically determine the appropriate bitrate.

          - **BufferModel** *(string) --* If set to multiplex, use multiplex buffer model for
          accurate interleaving. Setting to bufferModel to none can lead to lower latency, but
          low-memory devices may not be able to play back the stream without interruptions.

          - **CcDescriptor** *(string) --* When set to enabled, generates captionServiceDescriptor
          in PMT.

          - **DvbNitSettings** *(dict) --* Inserts DVB Network Information Table (NIT) at the
          specified table repetition interval.

            - **NetworkId** *(integer) --* The numeric value placed in the Network Information Table
            (NIT).

            - **NetworkName** *(string) --* The network name text placed in the
            networkNameDescriptor inside the Network Information Table. Maximum length is 256
            characters.

            - **RepInterval** *(integer) --* The number of milliseconds between instances of this
            table in the output transport stream.

          - **DvbSdtSettings** *(dict) --* Inserts DVB Service Description Table (SDT) at the
          specified table repetition interval.

            - **OutputSdt** *(string) --* Selects method of inserting SDT information into output
            stream. The sdtFollow setting copies SDT information from input stream to output stream.
            The sdtFollowIfPresent setting copies SDT information from input stream to output stream
            if SDT information is present in the input, otherwise it will fall back on the
            user-defined values. The sdtManual setting means user will enter the SDT information.
            The sdtNone setting means output stream will not contain SDT information.

            - **RepInterval** *(integer) --* The number of milliseconds between instances of this
            table in the output transport stream.

            - **ServiceName** *(string) --* The service name placed in the serviceDescriptor in the
            Service Description Table. Maximum length is 256 characters.

            - **ServiceProviderName** *(string) --* The service provider name placed in the
            serviceDescriptor in the Service Description Table. Maximum length is 256 characters.

          - **DvbSubPids** *(string) --* Packet Identifier (PID) for input source DVB Subtitle data
          to this output. Multiple values are accepted, and can be entered in ranges and/or by comma
          separation. Can be entered as decimal or hexadecimal values. Each PID specified must be in
          the range of 32 (or 0x20)..8182 (or 0x1ff6).

          - **DvbTdtSettings** *(dict) --* Inserts DVB Time and Date Table (TDT) at the specified
          table repetition interval.

            - **RepInterval** *(integer) --* The number of milliseconds between instances of this
            table in the output transport stream.

          - **DvbTeletextPid** *(string) --* Packet Identifier (PID) for input source DVB Teletext
          data to this output. Can be entered as a decimal or hexadecimal value. Valid values are 32
          (or 0x20)..8182 (or 0x1ff6).

          - **Ebif** *(string) --* If set to passthrough, passes any EBIF data from the input source
          to this output.

          - **EbpAudioInterval** *(string) --* When videoAndFixedIntervals is selected, audio EBP
          markers will be added to partitions 3 and 4. The interval between these additional markers
          will be fixed, and will be slightly shorter than the video EBP marker interval. Only
          available when EBP Cablelabs segmentation markers are selected. Partitions 1 and 2 will
          always follow the video interval.

          - **EbpLookaheadMs** *(integer) --* When set, enforces that Encoder Boundary Points do not
          come within the specified time interval of each other by looking ahead at input video. If
          another EBP is going to come in within the specified time interval, the current EBP is not
          emitted, and the segment is "stretched" to the next marker. The lookahead value does not
          add latency to the system. The Live Event must be configured elsewhere to create
          sufficient latency to make the lookahead accurate.

          - **EbpPlacement** *(string) --* Controls placement of EBP on Audio PIDs. If set to
          videoAndAudioPids, EBP markers will be placed on the video PID and all audio PIDs. If set
          to videoPid, EBP markers will be placed on only the video PID.

          - **EcmPid** *(string) --* This field is unused and deprecated.

          - **EsRateInPes** *(string) --* Include or exclude the ES Rate field in the PES header.

          - **EtvPlatformPid** *(string) --* Packet Identifier (PID) for input source ETV Platform
          data to this output. Can be entered as a decimal or hexadecimal value. Valid values are 32
          (or 0x20)..8182 (or 0x1ff6).

          - **EtvSignalPid** *(string) --* Packet Identifier (PID) for input source ETV Signal data
          to this output. Can be entered as a decimal or hexadecimal value. Valid values are 32 (or
          0x20)..8182 (or 0x1ff6).

          - **FragmentTime** *(float) --* The length in seconds of each fragment. Only used with EBP
          markers.

          - **Klv** *(string) --* If set to passthrough, passes any KLV data from the input source
          to this output.

          - **KlvDataPids** *(string) --* Packet Identifier (PID) for input source KLV data to this
          output. Multiple values are accepted, and can be entered in ranges and/or by comma
          separation. Can be entered as decimal or hexadecimal values. Each PID specified must be in
          the range of 32 (or 0x20)..8182 (or 0x1ff6).

          - **NielsenId3Behavior** *(string) --* If set to passthrough, Nielsen inaudible tones for
          media tracking will be detected in the input audio and an equivalent ID3 tag will be
          inserted in the output.

          - **NullPacketBitrate** *(float) --* Value in bits per second of extra null packets to
          insert into the transport stream. This can be used if a downstream encryption system
          requires periodic null packets.

          - **PatInterval** *(integer) --* The number of milliseconds between instances of this
          table in the output transport stream. Valid values are 0, 10..1000.

          - **PcrControl** *(string) --* When set to pcrEveryPesPacket, a Program Clock Reference
          value is inserted for every Packetized Elementary Stream (PES) header. This parameter is
          effective only when the PCR PID is the same as the video or audio elementary stream.

          - **PcrPeriod** *(integer) --* Maximum time in milliseconds between Program Clock
          Reference (PCRs) inserted into the transport stream.

          - **PcrPid** *(string) --* Packet Identifier (PID) of the Program Clock Reference (PCR) in
          the transport stream. When no value is given, the encoder will assign the same value as
          the Video PID. Can be entered as a decimal or hexadecimal value. Valid values are 32 (or
          0x20)..8182 (or 0x1ff6).

          - **PmtInterval** *(integer) --* The number of milliseconds between instances of this
          table in the output transport stream. Valid values are 0, 10..1000.

          - **PmtPid** *(string) --* Packet Identifier (PID) for the Program Map Table (PMT) in the
          transport stream. Can be entered as a decimal or hexadecimal value. Valid values are 32
          (or 0x20)..8182 (or 0x1ff6).

          - **ProgramNum** *(integer) --* The value of the program number field in the Program Map
          Table.

          - **RateMode** *(string) --* When vbr, does not insert null packets into transport stream
          to fill specified bitrate. The bitrate setting acts as the maximum bitrate when vbr is
          set.

          - **Scte27Pids** *(string) --* Packet Identifier (PID) for input source SCTE-27 data to
          this output. Multiple values are accepted, and can be entered in ranges and/or by comma
          separation. Can be entered as decimal or hexadecimal values. Each PID specified must be in
          the range of 32 (or 0x20)..8182 (or 0x1ff6).

          - **Scte35Control** *(string) --* Optionally pass SCTE-35 signals from the input source to
          this output.

          - **Scte35Pid** *(string) --* Packet Identifier (PID) of the SCTE-35 stream in the
          transport stream. Can be entered as a decimal or hexadecimal value. Valid values are 32
          (or 0x20)..8182 (or 0x1ff6).

          - **SegmentationMarkers** *(string) --* Inserts segmentation markers at each
          segmentationTime period. raiSegstart sets the Random Access Indicator bit in the
          adaptation field. raiAdapt sets the RAI bit and adds the current timecode in the private
          data bytes. psiSegstart inserts PAT and PMT tables at the start of segments. ebp adds
          Encoder Boundary Point information to the adaptation field as per OpenCable specification
          OC-SP-EBP-I01-130118. ebpLegacy adds Encoder Boundary Point information to the adaptation
          field using a legacy proprietary format.

          - **SegmentationStyle** *(string) --* The segmentation style parameter controls how
          segmentation markers are inserted into the transport stream. With avails, it is possible
          that segments may be truncated, which can influence where future segmentation markers are
          inserted. When a segmentation style of "resetCadence" is selected and a segment is
          truncated due to an avail, we will reset the segmentation cadence. This means the
          subsequent segment will have a duration of $segmentationTime seconds. When a segmentation
          style of "maintainCadence" is selected and a segment is truncated due to an avail, we will
          not reset the segmentation cadence. This means the subsequent segment will likely be
          truncated as well. However, all segments after that will have a duration of
          $segmentationTime seconds. Note that EBP lookahead is a slight exception to this rule.

          - **SegmentationTime** *(float) --* The length in seconds of each segment. Required unless
          markers is set to None_.

          - **TimedMetadataBehavior** *(string) --* When set to passthrough, timed metadata will be
          passed through from input to output.

          - **TimedMetadataPid** *(string) --* Packet Identifier (PID) of the timed metadata stream
          in the transport stream. Can be entered as a decimal or hexadecimal value. Valid values
          are 32 (or 0x20)..8182 (or 0x1ff6).

          - **TransportStreamId** *(integer) --* The value of the transport stream ID field in the
          Program Map Table.

          - **VideoPid** *(string) --* Packet Identifier (PID) of the elementary video stream in the
          transport stream. Can be entered as a decimal or hexadecimal value. Valid values are 32
          (or 0x20)..8182 (or 0x1ff6).

      - **Destination** *(dict) --* Destination address and port number for RTP or UDP packets. Can
      be unicast or multicast RTP or UDP (eg. rtp://239.10.10.10:5001 or udp://10.100.100.100:5002).

        - **DestinationRefId** *(string) --* Placeholder documentation for __string

      - **FecOutputSettings** *(dict) --* Settings for enabling and adjusting Forward Error
      Correction on UDP outputs.

        - **ColumnDepth** *(integer) --* Parameter D from SMPTE 2022-1. The height of the FEC
        protection matrix. The number of transport stream packets per column error correction
        packet. Must be between 4 and 20, inclusive.

        - **IncludeFec** *(string) --* Enables column only or column and row based FEC

        - **RowLength** *(integer) --* Parameter L from SMPTE 2022-1. The width of the FEC
        protection matrix. Must be between 1 and 20, inclusive. If only Column FEC is used, then
        larger values increase robustness. If Row FEC is used, then this is the number of transport
        stream packets per row error correction packet, and the value must be between 4 and 20,
        inclusive, if includeFec is columnAndRow. If includeFec is column, this value must be 1 to
        20, inclusive.
    """


_ClientDeleteChannelResponseEncoderSettingsOutputGroupsOutputsTypeDef = TypedDict(
    "_ClientDeleteChannelResponseEncoderSettingsOutputGroupsOutputsTypeDef",
    {
        "AudioDescriptionNames": List[str],
        "CaptionDescriptionNames": List[str],
        "OutputName": str,
        "OutputSettings": ClientDeleteChannelResponseEncoderSettingsOutputGroupsOutputsOutputSettingsTypeDef,
        "VideoDescriptionName": str,
    },
    total=False,
)


class ClientDeleteChannelResponseEncoderSettingsOutputGroupsOutputsTypeDef(
    _ClientDeleteChannelResponseEncoderSettingsOutputGroupsOutputsTypeDef
):
    """
    Type definition for `ClientDeleteChannelResponseEncoderSettingsOutputGroups` `Outputs`

    - **AudioDescriptionNames** *(list) --* The names of the AudioDescriptions used as audio sources
    for this output.

      - *(string) --* Placeholder documentation for __string

    - **CaptionDescriptionNames** *(list) --* The names of the CaptionDescriptions used as caption
    sources for this output.

      - *(string) --* Placeholder documentation for __string

    - **OutputName** *(string) --* The name used to identify an output.

    - **OutputSettings** *(dict) --* Output type-specific settings.

      - **ArchiveOutputSettings** *(dict) --* Archive Output Settings

        - **ContainerSettings** *(dict) --* Settings specific to the container type of the file.

          - **M2tsSettings** *(dict) --* M2ts Settings

            - **AbsentInputAudioBehavior** *(string) --* When set to drop, output audio streams will
            be removed from the program if the selected input audio stream is removed from the
            input. This allows the output audio configuration to dynamically change based on input
            configuration. If this is set to encodeSilence, all output audio streams will output
            encoded silence when not connected to an active input stream.

            - **Arib** *(string) --* When set to enabled, uses ARIB-compliant field muxing and
            removes video descriptor.

            - **AribCaptionsPid** *(string) --* Packet Identifier (PID) for ARIB Captions in the
            transport stream. Can be entered as a decimal or hexadecimal value. Valid values are 32
            (or 0x20)..8182 (or 0x1ff6).

            - **AribCaptionsPidControl** *(string) --* If set to auto, pid number used for ARIB
            Captions will be auto-selected from unused pids. If set to useConfigured, ARIB Captions
            will be on the configured pid number.

            - **AudioBufferModel** *(string) --* When set to dvb, uses DVB buffer model for Dolby
            Digital audio. When set to atsc, the ATSC model is used.

            - **AudioFramesPerPes** *(integer) --* The number of audio frames to insert for each PES
            packet.

            - **AudioPids** *(string) --* Packet Identifier (PID) of the elementary audio stream(s)
            in the transport stream. Multiple values are accepted, and can be entered in ranges
            and/or by comma separation. Can be entered as decimal or hexadecimal values. Each PID
            specified must be in the range of 32 (or 0x20)..8182 (or 0x1ff6).

            - **AudioStreamType** *(string) --* When set to atsc, uses stream type =
                 0x81 for AC3
            and stream type = 0x87 for EAC3. When set to dvb, uses stream type = 0x06.

            - **Bitrate** *(integer) --* The output bitrate of the transport stream in bits per
            second. Setting to 0 lets the muxer automatically determine the appropriate bitrate.

            - **BufferModel** *(string) --* If set to multiplex, use multiplex buffer model for
            accurate interleaving. Setting to bufferModel to none can lead to lower latency, but
            low-memory devices may not be able to play back the stream without interruptions.

            - **CcDescriptor** *(string) --* When set to enabled, generates captionServiceDescriptor
            in PMT.

            - **DvbNitSettings** *(dict) --* Inserts DVB Network Information Table (NIT) at the
            specified table repetition interval.

              - **NetworkId** *(integer) --* The numeric value placed in the Network Information
              Table (NIT).

              - **NetworkName** *(string) --* The network name text placed in the
              networkNameDescriptor inside the Network Information Table. Maximum length is 256
              characters.

              - **RepInterval** *(integer) --* The number of milliseconds between instances of this
              table in the output transport stream.

            - **DvbSdtSettings** *(dict) --* Inserts DVB Service Description Table (SDT) at the
            specified table repetition interval.

              - **OutputSdt** *(string) --* Selects method of inserting SDT information into output
              stream. The sdtFollow setting copies SDT information from input stream to output
              stream. The sdtFollowIfPresent setting copies SDT information from input stream to
              output stream if SDT information is present in the input, otherwise it will fall back
              on the user-defined values. The sdtManual setting means user will enter the SDT
              information. The sdtNone setting means output stream will not contain SDT information.

              - **RepInterval** *(integer) --* The number of milliseconds between instances of this
              table in the output transport stream.

              - **ServiceName** *(string) --* The service name placed in the serviceDescriptor in
              the Service Description Table. Maximum length is 256 characters.

              - **ServiceProviderName** *(string) --* The service provider name placed in the
              serviceDescriptor in the Service Description Table. Maximum length is 256 characters.

            - **DvbSubPids** *(string) --* Packet Identifier (PID) for input source DVB Subtitle
            data to this output. Multiple values are accepted, and can be entered in ranges and/or
            by comma separation. Can be entered as decimal or hexadecimal values. Each PID specified
            must be in the range of 32 (or 0x20)..8182 (or 0x1ff6).

            - **DvbTdtSettings** *(dict) --* Inserts DVB Time and Date Table (TDT) at the specified
            table repetition interval.

              - **RepInterval** *(integer) --* The number of milliseconds between instances of this
              table in the output transport stream.

            - **DvbTeletextPid** *(string) --* Packet Identifier (PID) for input source DVB Teletext
            data to this output. Can be entered as a decimal or hexadecimal value. Valid values are
            32 (or 0x20)..8182 (or 0x1ff6).

            - **Ebif** *(string) --* If set to passthrough, passes any EBIF data from the input
            source to this output.

            - **EbpAudioInterval** *(string) --* When videoAndFixedIntervals is selected, audio EBP
            markers will be added to partitions 3 and 4. The interval between these additional
            markers will be fixed, and will be slightly shorter than the video EBP marker interval.
            Only available when EBP Cablelabs segmentation markers are selected. Partitions 1 and 2
            will always follow the video interval.

            - **EbpLookaheadMs** *(integer) --* When set, enforces that Encoder Boundary Points do
            not come within the specified time interval of each other by looking ahead at input
            video. If another EBP is going to come in within the specified time interval, the
            current EBP is not emitted, and the segment is "stretched" to the next marker. The
            lookahead value does not add latency to the system. The Live Event must be configured
            elsewhere to create sufficient latency to make the lookahead accurate.

            - **EbpPlacement** *(string) --* Controls placement of EBP on Audio PIDs. If set to
            videoAndAudioPids, EBP markers will be placed on the video PID and all audio PIDs. If
            set to videoPid, EBP markers will be placed on only the video PID.

            - **EcmPid** *(string) --* This field is unused and deprecated.

            - **EsRateInPes** *(string) --* Include or exclude the ES Rate field in the PES header.

            - **EtvPlatformPid** *(string) --* Packet Identifier (PID) for input source ETV Platform
            data to this output. Can be entered as a decimal or hexadecimal value. Valid values are
            32 (or 0x20)..8182 (or 0x1ff6).

            - **EtvSignalPid** *(string) --* Packet Identifier (PID) for input source ETV Signal
            data to this output. Can be entered as a decimal or hexadecimal value. Valid values are
            32 (or 0x20)..8182 (or 0x1ff6).

            - **FragmentTime** *(float) --* The length in seconds of each fragment. Only used with
            EBP markers.

            - **Klv** *(string) --* If set to passthrough, passes any KLV data from the input source
            to this output.

            - **KlvDataPids** *(string) --* Packet Identifier (PID) for input source KLV data to
            this output. Multiple values are accepted, and can be entered in ranges and/or by comma
            separation. Can be entered as decimal or hexadecimal values. Each PID specified must be
            in the range of 32 (or 0x20)..8182 (or 0x1ff6).

            - **NielsenId3Behavior** *(string) --* If set to passthrough, Nielsen inaudible tones
            for media tracking will be detected in the input audio and an equivalent ID3 tag will be
            inserted in the output.

            - **NullPacketBitrate** *(float) --* Value in bits per second of extra null packets to
            insert into the transport stream. This can be used if a downstream encryption system
            requires periodic null packets.

            - **PatInterval** *(integer) --* The number of milliseconds between instances of this
            table in the output transport stream. Valid values are 0, 10..1000.

            - **PcrControl** *(string) --* When set to pcrEveryPesPacket, a Program Clock Reference
            value is inserted for every Packetized Elementary Stream (PES) header. This parameter is
            effective only when the PCR PID is the same as the video or audio elementary stream.

            - **PcrPeriod** *(integer) --* Maximum time in milliseconds between Program Clock
            Reference (PCRs) inserted into the transport stream.

            - **PcrPid** *(string) --* Packet Identifier (PID) of the Program Clock Reference (PCR)
            in the transport stream. When no value is given, the encoder will assign the same value
            as the Video PID. Can be entered as a decimal or hexadecimal value. Valid values are 32
            (or 0x20)..8182 (or 0x1ff6).

            - **PmtInterval** *(integer) --* The number of milliseconds between instances of this
            table in the output transport stream. Valid values are 0, 10..1000.

            - **PmtPid** *(string) --* Packet Identifier (PID) for the Program Map Table (PMT) in
            the transport stream. Can be entered as a decimal or hexadecimal value. Valid values are
            32 (or 0x20)..8182 (or 0x1ff6).

            - **ProgramNum** *(integer) --* The value of the program number field in the Program Map
            Table.

            - **RateMode** *(string) --* When vbr, does not insert null packets into transport
            stream to fill specified bitrate. The bitrate setting acts as the maximum bitrate when
            vbr is set.

            - **Scte27Pids** *(string) --* Packet Identifier (PID) for input source SCTE-27 data to
            this output. Multiple values are accepted, and can be entered in ranges and/or by comma
            separation. Can be entered as decimal or hexadecimal values. Each PID specified must be
            in the range of 32 (or 0x20)..8182 (or 0x1ff6).

            - **Scte35Control** *(string) --* Optionally pass SCTE-35 signals from the input source
            to this output.

            - **Scte35Pid** *(string) --* Packet Identifier (PID) of the SCTE-35 stream in the
            transport stream. Can be entered as a decimal or hexadecimal value. Valid values are 32
            (or 0x20)..8182 (or 0x1ff6).

            - **SegmentationMarkers** *(string) --* Inserts segmentation markers at each
            segmentationTime period. raiSegstart sets the Random Access Indicator bit in the
            adaptation field. raiAdapt sets the RAI bit and adds the current timecode in the private
            data bytes. psiSegstart inserts PAT and PMT tables at the start of segments. ebp adds
            Encoder Boundary Point information to the adaptation field as per OpenCable
            specification OC-SP-EBP-I01-130118. ebpLegacy adds Encoder Boundary Point information to
            the adaptation field using a legacy proprietary format.

            - **SegmentationStyle** *(string) --* The segmentation style parameter controls how
            segmentation markers are inserted into the transport stream. With avails, it is possible
            that segments may be truncated, which can influence where future segmentation markers
            are inserted. When a segmentation style of "resetCadence" is selected and a segment is
            truncated due to an avail, we will reset the segmentation cadence. This means the
            subsequent segment will have a duration of $segmentationTime seconds. When a
            segmentation style of "maintainCadence" is selected and a segment is truncated due to an
            avail, we will not reset the segmentation cadence. This means the subsequent segment
            will likely be truncated as well. However, all segments after that will have a duration
            of $segmentationTime seconds. Note that EBP lookahead is a slight exception to this
            rule.

            - **SegmentationTime** *(float) --* The length in seconds of each segment. Required
            unless markers is set to None_.

            - **TimedMetadataBehavior** *(string) --* When set to passthrough, timed metadata will
            be passed through from input to output.

            - **TimedMetadataPid** *(string) --* Packet Identifier (PID) of the timed metadata
            stream in the transport stream. Can be entered as a decimal or hexadecimal value. Valid
            values are 32 (or 0x20)..8182 (or 0x1ff6).

            - **TransportStreamId** *(integer) --* The value of the transport stream ID field in the
            Program Map Table.

            - **VideoPid** *(string) --* Packet Identifier (PID) of the elementary video stream in
            the transport stream. Can be entered as a decimal or hexadecimal value. Valid values are
            32 (or 0x20)..8182 (or 0x1ff6).

        - **Extension** *(string) --* Output file extension. If excluded, this will be auto-selected
        from the container type.

        - **NameModifier** *(string) --* String concatenated to the end of the destination filename.
        Required for multiple outputs of the same type.

      - **FrameCaptureOutputSettings** *(dict) --* Frame Capture Output Settings

        - **NameModifier** *(string) --* Required if the output group contains more than one output.
        This modifier forms part of the output file name.

      - **HlsOutputSettings** *(dict) --* Hls Output Settings

        - **HlsSettings** *(dict) --* Settings regarding the underlying stream. These settings are
        different for audio-only outputs.

          - **AudioOnlyHlsSettings** *(dict) --* Audio Only Hls Settings

            - **AudioGroupId** *(string) --* Specifies the group to which the audio Rendition
            belongs.

            - **AudioOnlyImage** *(dict) --* Optional. Specifies the .jpg or .png image to use as
            the cover art for an audio-only output. We recommend a low bit-size file because the
            image increases the output audio bandwidth. The image is attached to the audio as an ID3
            tag, frame type APIC, picture type 0x10, as per the "ID3 tag version 2.4.0 - Native
            Frames" standard.

              - **PasswordParam** *(string) --* key used to extract the password from EC2 Parameter
              store

              - **Uri** *(string) --* Uniform Resource Identifier - This should be a path to a file
              accessible to the Live system (eg. a http:// URI) depending on the output type. For
              example, a RTMP destination should have a uri simliar to: "rtmp://fmsserver/live".

              - **Username** *(string) --* Documentation update needed

            - **AudioTrackType** *(string) --* Four types of audio-only tracks are supported:
            Audio-Only Variant Stream The client can play back this audio-only stream instead of
            video in low-bandwidth scenarios. Represented as an EXT-X-STREAM-INF in the HLS
            manifest. Alternate Audio, Auto Select, Default Alternate rendition that the client
            should try to play back by default. Represented as an EXT-X-MEDIA in the HLS manifest
            with DEFAULT=YES, AUTOSELECT=
                YES Alternate Audio, Auto Select, Not Default Alternate
            rendition that the client may try to play back by default. Represented as an EXT-X-MEDIA
            in the HLS manifest with DEFAULT=NO, AUTOSELECT=
                YES Alternate Audio, not Auto Select
            Alternate rendition that the client will not try to play back by default. Represented as
            an EXT-X-MEDIA in the HLS manifest with DEFAULT=NO, AUTOSELECT=NO

          - **StandardHlsSettings** *(dict) --* Standard Hls Settings

            - **AudioRenditionSets** *(string) --* List all the audio groups that are used with the
            video output stream. Input all the audio GROUP-IDs that are associated to the video,
            separate by ','.

            - **M3u8Settings** *(dict) --* Settings information for the .m3u8 container

              - **AudioFramesPerPes** *(integer) --* The number of audio frames to insert for each
              PES packet.

              - **AudioPids** *(string) --* Packet Identifier (PID) of the elementary audio
              stream(s) in the transport stream. Multiple values are accepted, and can be entered in
              ranges and/or by comma separation. Can be entered as decimal or hexadecimal values.

              - **EcmPid** *(string) --* This parameter is unused and deprecated.

              - **NielsenId3Behavior** *(string) --* If set to passthrough, Nielsen inaudible tones
              for media tracking will be detected in the input audio and an equivalent ID3 tag will
              be inserted in the output.

              - **PatInterval** *(integer) --* The number of milliseconds between instances of this
              table in the output transport stream. A value of \\"0\\" writes out the PMT once per
              segment file.

              - **PcrControl** *(string) --* When set to pcrEveryPesPacket, a Program Clock
              Reference value is inserted for every Packetized Elementary Stream (PES) header. This
              parameter is effective only when the PCR PID is the same as the video or audio
              elementary stream.

              - **PcrPeriod** *(integer) --* Maximum time in milliseconds between Program Clock
              References (PCRs) inserted into the transport stream.

              - **PcrPid** *(string) --* Packet Identifier (PID) of the Program Clock Reference
              (PCR) in the transport stream. When no value is given, the encoder will assign the
              same value as the Video PID. Can be entered as a decimal or hexadecimal value.

              - **PmtInterval** *(integer) --* The number of milliseconds between instances of this
              table in the output transport stream. A value of \\"0\\" writes out the PMT once per
              segment file.

              - **PmtPid** *(string) --* Packet Identifier (PID) for the Program Map Table (PMT) in
              the transport stream. Can be entered as a decimal or hexadecimal value.

              - **ProgramNum** *(integer) --* The value of the program number field in the Program
              Map Table.

              - **Scte35Behavior** *(string) --* If set to passthrough, passes any SCTE-35 signals
              from the input source to this output.

              - **Scte35Pid** *(string) --* Packet Identifier (PID) of the SCTE-35 stream in the
              transport stream. Can be entered as a decimal or hexadecimal value.

              - **TimedMetadataBehavior** *(string) --* When set to passthrough, timed metadata is
              passed through from input to output.

              - **TimedMetadataPid** *(string) --* Packet Identifier (PID) of the timed metadata
              stream in the transport stream. Can be entered as a decimal or hexadecimal value.
              Valid values are 32 (or 0x20)..8182 (or 0x1ff6).

              - **TransportStreamId** *(integer) --* The value of the transport stream ID field in
              the Program Map Table.

              - **VideoPid** *(string) --* Packet Identifier (PID) of the elementary video stream in
              the transport stream. Can be entered as a decimal or hexadecimal value.

        - **NameModifier** *(string) --* String concatenated to the end of the destination filename.
        Accepts \\"Format Identifiers\\":#formatIdentifierParameters.

        - **SegmentModifier** *(string) --* String concatenated to end of segment filenames.

      - **MediaPackageOutputSettings** *(dict) --* Media Package Output Settings

      - **MsSmoothOutputSettings** *(dict) --* Ms Smooth Output Settings

        - **H265PackagingType** *(string) --* Only applicable when this output is referencing an
        H.265 video description. Specifies whether MP4 segments should be packaged as HEV1 or HVC1.

        - **NameModifier** *(string) --* String concatenated to the end of the destination filename.
        Required for multiple outputs of the same type.

      - **MultiplexOutputSettings** *(dict) --* Multiplex Output Settings

        - **Destination** *(dict) --* Destination is a Multiplex.

          - **DestinationRefId** *(string) --* Placeholder documentation for __string

      - **RtmpOutputSettings** *(dict) --* Rtmp Output Settings

        - **CertificateMode** *(string) --* If set to verifyAuthenticity, verify the tls certificate
        chain to a trusted Certificate Authority (CA). This will cause rtmps outputs with
        self-signed certificates to fail.

        - **ConnectionRetryInterval** *(integer) --* Number of seconds to wait before retrying a
        connection to the Flash Media server if the connection is lost.

        - **Destination** *(dict) --* The RTMP endpoint excluding the stream name (eg.
        rtmp://host/appname). For connection to Akamai, a username and password must be supplied.
        URI fields accept format identifiers.

          - **DestinationRefId** *(string) --* Placeholder documentation for __string

        - **NumRetries** *(integer) --* Number of retry attempts.

      - **UdpOutputSettings** *(dict) --* Udp Output Settings

        - **BufferMsec** *(integer) --* UDP output buffering in milliseconds. Larger values increase
        latency through the transcoder but simultaneously assist the transcoder in maintaining a
        constant, low-jitter UDP/RTP output while accommodating clock recovery, input switching,
        input disruptions, picture reordering, etc.

        - **ContainerSettings** *(dict) --* Udp Container Settings

          - **M2tsSettings** *(dict) --* M2ts Settings

            - **AbsentInputAudioBehavior** *(string) --* When set to drop, output audio streams will
            be removed from the program if the selected input audio stream is removed from the
            input. This allows the output audio configuration to dynamically change based on input
            configuration. If this is set to encodeSilence, all output audio streams will output
            encoded silence when not connected to an active input stream.

            - **Arib** *(string) --* When set to enabled, uses ARIB-compliant field muxing and
            removes video descriptor.

            - **AribCaptionsPid** *(string) --* Packet Identifier (PID) for ARIB Captions in the
            transport stream. Can be entered as a decimal or hexadecimal value. Valid values are 32
            (or 0x20)..8182 (or 0x1ff6).

            - **AribCaptionsPidControl** *(string) --* If set to auto, pid number used for ARIB
            Captions will be auto-selected from unused pids. If set to useConfigured, ARIB Captions
            will be on the configured pid number.

            - **AudioBufferModel** *(string) --* When set to dvb, uses DVB buffer model for Dolby
            Digital audio. When set to atsc, the ATSC model is used.

            - **AudioFramesPerPes** *(integer) --* The number of audio frames to insert for each PES
            packet.

            - **AudioPids** *(string) --* Packet Identifier (PID) of the elementary audio stream(s)
            in the transport stream. Multiple values are accepted, and can be entered in ranges
            and/or by comma separation. Can be entered as decimal or hexadecimal values. Each PID
            specified must be in the range of 32 (or 0x20)..8182 (or 0x1ff6).

            - **AudioStreamType** *(string) --* When set to atsc, uses stream type =
                 0x81 for AC3
            and stream type = 0x87 for EAC3. When set to dvb, uses stream type = 0x06.

            - **Bitrate** *(integer) --* The output bitrate of the transport stream in bits per
            second. Setting to 0 lets the muxer automatically determine the appropriate bitrate.

            - **BufferModel** *(string) --* If set to multiplex, use multiplex buffer model for
            accurate interleaving. Setting to bufferModel to none can lead to lower latency, but
            low-memory devices may not be able to play back the stream without interruptions.

            - **CcDescriptor** *(string) --* When set to enabled, generates captionServiceDescriptor
            in PMT.

            - **DvbNitSettings** *(dict) --* Inserts DVB Network Information Table (NIT) at the
            specified table repetition interval.

              - **NetworkId** *(integer) --* The numeric value placed in the Network Information
              Table (NIT).

              - **NetworkName** *(string) --* The network name text placed in the
              networkNameDescriptor inside the Network Information Table. Maximum length is 256
              characters.

              - **RepInterval** *(integer) --* The number of milliseconds between instances of this
              table in the output transport stream.

            - **DvbSdtSettings** *(dict) --* Inserts DVB Service Description Table (SDT) at the
            specified table repetition interval.

              - **OutputSdt** *(string) --* Selects method of inserting SDT information into output
              stream. The sdtFollow setting copies SDT information from input stream to output
              stream. The sdtFollowIfPresent setting copies SDT information from input stream to
              output stream if SDT information is present in the input, otherwise it will fall back
              on the user-defined values. The sdtManual setting means user will enter the SDT
              information. The sdtNone setting means output stream will not contain SDT information.

              - **RepInterval** *(integer) --* The number of milliseconds between instances of this
              table in the output transport stream.

              - **ServiceName** *(string) --* The service name placed in the serviceDescriptor in
              the Service Description Table. Maximum length is 256 characters.

              - **ServiceProviderName** *(string) --* The service provider name placed in the
              serviceDescriptor in the Service Description Table. Maximum length is 256 characters.

            - **DvbSubPids** *(string) --* Packet Identifier (PID) for input source DVB Subtitle
            data to this output. Multiple values are accepted, and can be entered in ranges and/or
            by comma separation. Can be entered as decimal or hexadecimal values. Each PID specified
            must be in the range of 32 (or 0x20)..8182 (or 0x1ff6).

            - **DvbTdtSettings** *(dict) --* Inserts DVB Time and Date Table (TDT) at the specified
            table repetition interval.

              - **RepInterval** *(integer) --* The number of milliseconds between instances of this
              table in the output transport stream.

            - **DvbTeletextPid** *(string) --* Packet Identifier (PID) for input source DVB Teletext
            data to this output. Can be entered as a decimal or hexadecimal value. Valid values are
            32 (or 0x20)..8182 (or 0x1ff6).

            - **Ebif** *(string) --* If set to passthrough, passes any EBIF data from the input
            source to this output.

            - **EbpAudioInterval** *(string) --* When videoAndFixedIntervals is selected, audio EBP
            markers will be added to partitions 3 and 4. The interval between these additional
            markers will be fixed, and will be slightly shorter than the video EBP marker interval.
            Only available when EBP Cablelabs segmentation markers are selected. Partitions 1 and 2
            will always follow the video interval.

            - **EbpLookaheadMs** *(integer) --* When set, enforces that Encoder Boundary Points do
            not come within the specified time interval of each other by looking ahead at input
            video. If another EBP is going to come in within the specified time interval, the
            current EBP is not emitted, and the segment is "stretched" to the next marker. The
            lookahead value does not add latency to the system. The Live Event must be configured
            elsewhere to create sufficient latency to make the lookahead accurate.

            - **EbpPlacement** *(string) --* Controls placement of EBP on Audio PIDs. If set to
            videoAndAudioPids, EBP markers will be placed on the video PID and all audio PIDs. If
            set to videoPid, EBP markers will be placed on only the video PID.

            - **EcmPid** *(string) --* This field is unused and deprecated.

            - **EsRateInPes** *(string) --* Include or exclude the ES Rate field in the PES header.

            - **EtvPlatformPid** *(string) --* Packet Identifier (PID) for input source ETV Platform
            data to this output. Can be entered as a decimal or hexadecimal value. Valid values are
            32 (or 0x20)..8182 (or 0x1ff6).

            - **EtvSignalPid** *(string) --* Packet Identifier (PID) for input source ETV Signal
            data to this output. Can be entered as a decimal or hexadecimal value. Valid values are
            32 (or 0x20)..8182 (or 0x1ff6).

            - **FragmentTime** *(float) --* The length in seconds of each fragment. Only used with
            EBP markers.

            - **Klv** *(string) --* If set to passthrough, passes any KLV data from the input source
            to this output.

            - **KlvDataPids** *(string) --* Packet Identifier (PID) for input source KLV data to
            this output. Multiple values are accepted, and can be entered in ranges and/or by comma
            separation. Can be entered as decimal or hexadecimal values. Each PID specified must be
            in the range of 32 (or 0x20)..8182 (or 0x1ff6).

            - **NielsenId3Behavior** *(string) --* If set to passthrough, Nielsen inaudible tones
            for media tracking will be detected in the input audio and an equivalent ID3 tag will be
            inserted in the output.

            - **NullPacketBitrate** *(float) --* Value in bits per second of extra null packets to
            insert into the transport stream. This can be used if a downstream encryption system
            requires periodic null packets.

            - **PatInterval** *(integer) --* The number of milliseconds between instances of this
            table in the output transport stream. Valid values are 0, 10..1000.

            - **PcrControl** *(string) --* When set to pcrEveryPesPacket, a Program Clock Reference
            value is inserted for every Packetized Elementary Stream (PES) header. This parameter is
            effective only when the PCR PID is the same as the video or audio elementary stream.

            - **PcrPeriod** *(integer) --* Maximum time in milliseconds between Program Clock
            Reference (PCRs) inserted into the transport stream.

            - **PcrPid** *(string) --* Packet Identifier (PID) of the Program Clock Reference (PCR)
            in the transport stream. When no value is given, the encoder will assign the same value
            as the Video PID. Can be entered as a decimal or hexadecimal value. Valid values are 32
            (or 0x20)..8182 (or 0x1ff6).

            - **PmtInterval** *(integer) --* The number of milliseconds between instances of this
            table in the output transport stream. Valid values are 0, 10..1000.

            - **PmtPid** *(string) --* Packet Identifier (PID) for the Program Map Table (PMT) in
            the transport stream. Can be entered as a decimal or hexadecimal value. Valid values are
            32 (or 0x20)..8182 (or 0x1ff6).

            - **ProgramNum** *(integer) --* The value of the program number field in the Program Map
            Table.

            - **RateMode** *(string) --* When vbr, does not insert null packets into transport
            stream to fill specified bitrate. The bitrate setting acts as the maximum bitrate when
            vbr is set.

            - **Scte27Pids** *(string) --* Packet Identifier (PID) for input source SCTE-27 data to
            this output. Multiple values are accepted, and can be entered in ranges and/or by comma
            separation. Can be entered as decimal or hexadecimal values. Each PID specified must be
            in the range of 32 (or 0x20)..8182 (or 0x1ff6).

            - **Scte35Control** *(string) --* Optionally pass SCTE-35 signals from the input source
            to this output.

            - **Scte35Pid** *(string) --* Packet Identifier (PID) of the SCTE-35 stream in the
            transport stream. Can be entered as a decimal or hexadecimal value. Valid values are 32
            (or 0x20)..8182 (or 0x1ff6).

            - **SegmentationMarkers** *(string) --* Inserts segmentation markers at each
            segmentationTime period. raiSegstart sets the Random Access Indicator bit in the
            adaptation field. raiAdapt sets the RAI bit and adds the current timecode in the private
            data bytes. psiSegstart inserts PAT and PMT tables at the start of segments. ebp adds
            Encoder Boundary Point information to the adaptation field as per OpenCable
            specification OC-SP-EBP-I01-130118. ebpLegacy adds Encoder Boundary Point information to
            the adaptation field using a legacy proprietary format.

            - **SegmentationStyle** *(string) --* The segmentation style parameter controls how
            segmentation markers are inserted into the transport stream. With avails, it is possible
            that segments may be truncated, which can influence where future segmentation markers
            are inserted. When a segmentation style of "resetCadence" is selected and a segment is
            truncated due to an avail, we will reset the segmentation cadence. This means the
            subsequent segment will have a duration of $segmentationTime seconds. When a
            segmentation style of "maintainCadence" is selected and a segment is truncated due to an
            avail, we will not reset the segmentation cadence. This means the subsequent segment
            will likely be truncated as well. However, all segments after that will have a duration
            of $segmentationTime seconds. Note that EBP lookahead is a slight exception to this
            rule.

            - **SegmentationTime** *(float) --* The length in seconds of each segment. Required
            unless markers is set to None_.

            - **TimedMetadataBehavior** *(string) --* When set to passthrough, timed metadata will
            be passed through from input to output.

            - **TimedMetadataPid** *(string) --* Packet Identifier (PID) of the timed metadata
            stream in the transport stream. Can be entered as a decimal or hexadecimal value. Valid
            values are 32 (or 0x20)..8182 (or 0x1ff6).

            - **TransportStreamId** *(integer) --* The value of the transport stream ID field in the
            Program Map Table.

            - **VideoPid** *(string) --* Packet Identifier (PID) of the elementary video stream in
            the transport stream. Can be entered as a decimal or hexadecimal value. Valid values are
            32 (or 0x20)..8182 (or 0x1ff6).

        - **Destination** *(dict) --* Destination address and port number for RTP or UDP packets.
        Can be unicast or multicast RTP or UDP (eg. rtp://239.10.10.10:5001 or
        udp://10.100.100.100:5002).

          - **DestinationRefId** *(string) --* Placeholder documentation for __string

        - **FecOutputSettings** *(dict) --* Settings for enabling and adjusting Forward Error
        Correction on UDP outputs.

          - **ColumnDepth** *(integer) --* Parameter D from SMPTE 2022-1. The height of the FEC
          protection matrix. The number of transport stream packets per column error correction
          packet. Must be between 4 and 20, inclusive.

          - **IncludeFec** *(string) --* Enables column only or column and row based FEC

          - **RowLength** *(integer) --* Parameter L from SMPTE 2022-1. The width of the FEC
          protection matrix. Must be between 1 and 20, inclusive. If only Column FEC is used, then
          larger values increase robustness. If Row FEC is used, then this is the number of
          transport stream packets per row error correction packet, and the value must be between 4
          and 20, inclusive, if includeFec is columnAndRow. If includeFec is column, this value must
          be 1 to 20, inclusive.

    - **VideoDescriptionName** *(string) --* The name of the VideoDescription used as the source for
    this output.
    """


_ClientDeleteChannelResponseEncoderSettingsOutputGroupsTypeDef = TypedDict(
    "_ClientDeleteChannelResponseEncoderSettingsOutputGroupsTypeDef",
    {
        "Name": str,
        "OutputGroupSettings": ClientDeleteChannelResponseEncoderSettingsOutputGroupsOutputGroupSettingsTypeDef,
        "Outputs": List[ClientDeleteChannelResponseEncoderSettingsOutputGroupsOutputsTypeDef],
    },
    total=False,
)


class ClientDeleteChannelResponseEncoderSettingsOutputGroupsTypeDef(
    _ClientDeleteChannelResponseEncoderSettingsOutputGroupsTypeDef
):
    """
    Type definition for `ClientDeleteChannelResponseEncoderSettings` `OutputGroups`

    - **Name** *(string) --* Custom output group name optionally defined by the user. Only letters,
    numbers, and the underscore character allowed; only 32 characters allowed.

    - **OutputGroupSettings** *(dict) --* Settings associated with the output group.

      - **ArchiveGroupSettings** *(dict) --* Archive Group Settings

        - **Destination** *(dict) --* A directory and base filename where archive files should be
        written.

          - **DestinationRefId** *(string) --* Placeholder documentation for __string

        - **RolloverInterval** *(integer) --* Number of seconds to write to archive file before
        closing and starting a new one.

      - **FrameCaptureGroupSettings** *(dict) --* Frame Capture Group Settings

        - **Destination** *(dict) --* The destination for the frame capture files. Either the URI
        for an Amazon S3 bucket and object, plus a file name prefix (for example,
        s3ssl://sportsDelivery/highlights/20180820/curling_) or the URI for a MediaStore container,
        plus a file name prefix (for example, mediastoressl://sportsDelivery/20180820/curling_). The
        final file names consist of the prefix from the destination field (for example, "curling_")
        + name modifier + the counter (5 digits, starting from 00001) + extension (which is always
        .jpg). For example, curlingLow.00001.jpg

          - **DestinationRefId** *(string) --* Placeholder documentation for __string

      - **HlsGroupSettings** *(dict) --* Hls Group Settings

        - **AdMarkers** *(list) --* Choose one or more ad marker types to pass SCTE35 signals
        through to this group of Apple HLS outputs.

          - *(string) --* Hls Ad Markers

        - **BaseUrlContent** *(string) --* A partial URI prefix that will be prepended to each
        output in the media .m3u8 file. Can be used if base manifest is delivered from a different
        URL than the main .m3u8 file.

        - **BaseUrlManifest** *(string) --* A partial URI prefix that will be prepended to each
        output in the media .m3u8 file. Can be used if base manifest is delivered from a different
        URL than the main .m3u8 file.

        - **CaptionLanguageMappings** *(list) --* Mapping of up to 4 caption channels to caption
        languages. Is only meaningful if captionLanguageSetting is set to "insert".

          - *(dict) --* Maps a caption channel to an ISO 693-2 language code
          (http://www.loc.gov/standards/iso639-2), with an optional description.

            - **CaptionChannel** *(integer) --* The closed caption channel being described by this
            CaptionLanguageMapping. Each channel mapping must have a unique channel number (maximum
            of 4)

            - **LanguageCode** *(string) --* Three character ISO 639-2 language code (see
            http://www.loc.gov/standards/iso639-2)

            - **LanguageDescription** *(string) --* Textual description of language

        - **CaptionLanguageSetting** *(string) --* Applies only to 608 Embedded output captions.
        insert: Include CLOSED-CAPTIONS lines in the manifest. Specify at least one language in the
        CC1 Language Code field. One CLOSED-CAPTION line is added for each Language Code you
        specify. Make sure to specify the languages in the order in which they appear in the
        original source (if the source is embedded format) or the order of the caption selectors (if
        the source is other than embedded). Otherwise, languages in the manifest will not match up
        properly with the output captions. none: Include CLOSED-CAPTIONS=
            NONE line in the manifest.
        omit: Omit any CLOSED-CAPTIONS line from the manifest.

        - **ClientCache** *(string) --* When set to "disabled", sets the #EXT-X-ALLOW-CACHE:no tag
        in the manifest, which prevents clients from saving media segments for later replay.

        - **CodecSpecification** *(string) --* Specification to use (RFC-6381 or the default
        RFC-4281) during m3u8 playlist generation.

        - **ConstantIv** *(string) --* For use with encryptionType. This is a 128-bit, 16-byte hex
        value represented by a 32-character text string. If ivSource is set to "explicit" then this
        parameter is required and is used as the IV for encryption.

        - **Destination** *(dict) --* A directory or HTTP destination for the HLS segments, manifest
        files, and encryption keys (if enabled).

          - **DestinationRefId** *(string) --* Placeholder documentation for __string

        - **DirectoryStructure** *(string) --* Place segments in subdirectories.

        - **EncryptionType** *(string) --* Encrypts the segments with the given encryption scheme.
        Exclude this parameter if no encryption is desired.

        - **HlsCdnSettings** *(dict) --* Parameters that control interactions with the CDN.

          - **HlsAkamaiSettings** *(dict) --* Hls Akamai Settings

            - **ConnectionRetryInterval** *(integer) --* Number of seconds to wait before retrying
            connection to the CDN if the connection is lost.

            - **FilecacheDuration** *(integer) --* Size in seconds of file cache for streaming
            outputs.

            - **HttpTransferMode** *(string) --* Specify whether or not to use chunked transfer
            encoding to Akamai. User should contact Akamai to enable this feature.

            - **NumRetries** *(integer) --* Number of retry attempts that will be made before the
            Live Event is put into an error state.

            - **RestartDelay** *(integer) --* If a streaming output fails, number of seconds to wait
            until a restart is initiated. A value of 0 means never restart.

            - **Salt** *(string) --* Salt for authenticated Akamai.

            - **Token** *(string) --* Token parameter for authenticated akamai. If not specified,
            _gda_ is used.

          - **HlsBasicPutSettings** *(dict) --* Hls Basic Put Settings

            - **ConnectionRetryInterval** *(integer) --* Number of seconds to wait before retrying
            connection to the CDN if the connection is lost.

            - **FilecacheDuration** *(integer) --* Size in seconds of file cache for streaming
            outputs.

            - **NumRetries** *(integer) --* Number of retry attempts that will be made before the
            Live Event is put into an error state.

            - **RestartDelay** *(integer) --* If a streaming output fails, number of seconds to wait
            until a restart is initiated. A value of 0 means never restart.

          - **HlsMediaStoreSettings** *(dict) --* Hls Media Store Settings

            - **ConnectionRetryInterval** *(integer) --* Number of seconds to wait before retrying
            connection to the CDN if the connection is lost.

            - **FilecacheDuration** *(integer) --* Size in seconds of file cache for streaming
            outputs.

            - **MediaStoreStorageClass** *(string) --* When set to temporal, output files are stored
            in non-persistent memory for faster reading and writing.

            - **NumRetries** *(integer) --* Number of retry attempts that will be made before the
            Live Event is put into an error state.

            - **RestartDelay** *(integer) --* If a streaming output fails, number of seconds to wait
            until a restart is initiated. A value of 0 means never restart.

          - **HlsWebdavSettings** *(dict) --* Hls Webdav Settings

            - **ConnectionRetryInterval** *(integer) --* Number of seconds to wait before retrying
            connection to the CDN if the connection is lost.

            - **FilecacheDuration** *(integer) --* Size in seconds of file cache for streaming
            outputs.

            - **HttpTransferMode** *(string) --* Specify whether or not to use chunked transfer
            encoding to WebDAV.

            - **NumRetries** *(integer) --* Number of retry attempts that will be made before the
            Live Event is put into an error state.

            - **RestartDelay** *(integer) --* If a streaming output fails, number of seconds to wait
            until a restart is initiated. A value of 0 means never restart.

        - **IFrameOnlyPlaylists** *(string) --* DISABLED: Do not create an I-frame-only manifest,
        but do create the master and media manifests (according to the Output Selection field).
        STANDARD: Create an I-frame-only manifest for each output that contains video, as well as
        the other manifests (according to the Output Selection field). The I-frame manifest contains
        a #EXT-X-I-FRAMES-ONLY tag to indicate it is I-frame only, and one or more #EXT-X-BYTERANGE
        entries identifying the I-frame position. For example, #EXT-X-BYTERANGE:160364@1461888"

        - **IndexNSegments** *(integer) --* Applies only if Mode field is LIVE. Specifies the
        maximum number of segments in the media manifest file. After this maximum, older segments
        are removed from the media manifest. This number must be less than or equal to the Keep
        Segments field.

        - **InputLossAction** *(string) --* Parameter that control output group behavior on input
        loss.

        - **IvInManifest** *(string) --* For use with encryptionType. The IV (Initialization Vector)
        is a 128-bit number used in conjunction with the key for encrypting blocks. If set to
        "include", IV is listed in the manifest, otherwise the IV is not in the manifest.

        - **IvSource** *(string) --* For use with encryptionType. The IV (Initialization Vector) is
        a 128-bit number used in conjunction with the key for encrypting blocks. If this setting is
        "followsSegmentNumber", it will cause the IV to change every segment (to match the segment
        number). If this is set to "explicit", you must enter a constantIv value.

        - **KeepSegments** *(integer) --* Applies only if Mode field is LIVE. Specifies the number
        of media segments (.ts files) to retain in the destination directory.

        - **KeyFormat** *(string) --* The value specifies how the key is represented in the resource
        identified by the URI. If parameter is absent, an implicit value of "identity" is used. A
        reverse DNS string can also be given.

        - **KeyFormatVersions** *(string) --* Either a single positive integer version value or a
        slash delimited list of version values (1/2/3).

        - **KeyProviderSettings** *(dict) --* The key provider settings.

          - **StaticKeySettings** *(dict) --* Static Key Settings

            - **KeyProviderServer** *(dict) --* The URL of the license server used for protecting
            content.

              - **PasswordParam** *(string) --* key used to extract the password from EC2 Parameter
              store

              - **Uri** *(string) --* Uniform Resource Identifier - This should be a path to a file
              accessible to the Live system (eg. a http:// URI) depending on the output type. For
              example, a RTMP destination should have a uri simliar to: "rtmp://fmsserver/live".

              - **Username** *(string) --* Documentation update needed

            - **StaticKeyValue** *(string) --* Static key value as a 32 character hexadecimal
            string.

        - **ManifestCompression** *(string) --* When set to gzip, compresses HLS playlist.

        - **ManifestDurationFormat** *(string) --* Indicates whether the output manifest should use
        floating point or integer values for segment duration.

        - **MinSegmentLength** *(integer) --* When set, minimumSegmentLength is enforced by looking
        ahead and back within the specified range for a nearby avail and extending the segment size
        if needed.

        - **Mode** *(string) --* If "vod", all segments are indexed and kept permanently in the
        destination and manifest. If "live", only the number segments specified in keepSegments and
        indexNSegments are kept; newer segments replace older segments, which may prevent players
        from rewinding all the way to the beginning of the event. VOD mode uses HLS
        EXT-X-PLAYLIST-TYPE of EVENT while the channel is running, converting it to a "VOD" type
        manifest on completion of the stream.

        - **OutputSelection** *(string) --* MANIFESTSANDSEGMENTS: Generates manifests (master
        manifest, if applicable, and media manifests) for this output group. SEGMENTSONLY: Does not
        generate any manifests for this output group.

        - **ProgramDateTime** *(string) --* Includes or excludes EXT-X-PROGRAM-DATE-TIME tag in
        .m3u8 manifest files. The value is calculated as follows: either the program date and time
        are initialized using the input timecode source, or the time is initialized using the input
        timecode source and the date is initialized using the timestampOffset.

        - **ProgramDateTimePeriod** *(integer) --* Period of insertion of EXT-X-PROGRAM-DATE-TIME
        entry, in seconds.

        - **RedundantManifest** *(string) --* ENABLED: The master manifest (.m3u8 file) for each
        pipeline includes information about both pipelines: first its own media files, then the
        media files of the other pipeline. This feature allows playout device that support stale
        manifest detection to switch from one manifest to the other, when the current manifest seems
        to be stale. There are still two destinations and two master manifests, but both master
        manifests reference the media files from both pipelines. DISABLED: The master manifest
        (.m3u8 file) for each pipeline includes information about its own pipeline only. For an HLS
        output group with MediaPackage as the destination, the DISABLED behavior is always followed.
        MediaPackage regenerates the manifests it serves to players so a redundant manifest from
        MediaLive is irrelevant.

        - **SegmentLength** *(integer) --* Length of MPEG-2 Transport Stream segments to create (in
        seconds). Note that segments will end on the next keyframe after this number of seconds, so
        actual segment length may be longer.

        - **SegmentationMode** *(string) --* useInputSegmentation has been deprecated. The
        configured segment size is always used.

        - **SegmentsPerSubdirectory** *(integer) --* Number of segments to write to a subdirectory
        before starting a new one. directoryStructure must be subdirectoryPerStream for this setting
        to have an effect.

        - **StreamInfResolution** *(string) --* Include or exclude RESOLUTION attribute for video in
        EXT-X-STREAM-INF tag of variant manifest.

        - **TimedMetadataId3Frame** *(string) --* Indicates ID3 frame that has the timecode.

        - **TimedMetadataId3Period** *(integer) --* Timed Metadata interval in seconds.

        - **TimestampDeltaMilliseconds** *(integer) --* Provides an extra millisecond delta offset
        to fine tune the timestamps.

        - **TsFileMode** *(string) --* SEGMENTEDFILES: Emit the program as segments - multiple .ts
        media files. SINGLEFILE: Applies only if Mode field is VOD. Emit the program as a single .ts
        media file. The media manifest includes #EXT-X-BYTERANGE tags to index segments for
        playback. A typical use for this value is when sending the output to AWS Elemental
        MediaConvert, which can accept only a single media file. Playback while the channel is
        running is not guaranteed due to HTTP server caching.

      - **MediaPackageGroupSettings** *(dict) --* Media Package Group Settings

        - **Destination** *(dict) --* MediaPackage channel destination.

          - **DestinationRefId** *(string) --* Placeholder documentation for __string

      - **MsSmoothGroupSettings** *(dict) --* Ms Smooth Group Settings

        - **AcquisitionPointId** *(string) --* The value of the "Acquisition Point Identity" element
        used in each message placed in the sparse track. Only enabled if sparseTrackType is not
        "none".

        - **AudioOnlyTimecodeControl** *(string) --* If set to passthrough for an audio-only MS
        Smooth output, the fragment absolute time will be set to the current timecode. This option
        does not write timecodes to the audio elementary stream.

        - **CertificateMode** *(string) --* If set to verifyAuthenticity, verify the https
        certificate chain to a trusted Certificate Authority (CA). This will cause https outputs to
        self-signed certificates to fail.

        - **ConnectionRetryInterval** *(integer) --* Number of seconds to wait before retrying
        connection to the IIS server if the connection is lost. Content will be cached during this
        time and the cache will be be delivered to the IIS server once the connection is
        re-established.

        - **Destination** *(dict) --* Smooth Streaming publish point on an IIS server. Elemental
        Live acts as a "Push" encoder to IIS.

          - **DestinationRefId** *(string) --* Placeholder documentation for __string

        - **EventId** *(string) --* MS Smooth event ID to be sent to the IIS server. Should only be
        specified if eventIdMode is set to useConfigured.

        - **EventIdMode** *(string) --* Specifies whether or not to send an event ID to the IIS
        server. If no event ID is sent and the same Live Event is used without changing the
        publishing point, clients might see cached video from the previous run. Options: -
        "useConfigured" - use the value provided in eventId - "useTimestamp" - generate and send an
        event ID based on the current timestamp - "noEventId" - do not send an event ID to the IIS
        server.

        - **EventStopBehavior** *(string) --* When set to sendEos, send EOS signal to IIS server
        when stopping the event

        - **FilecacheDuration** *(integer) --* Size in seconds of file cache for streaming outputs.

        - **FragmentLength** *(integer) --* Length of mp4 fragments to generate (in seconds).
        Fragment length must be compatible with GOP size and framerate.

        - **InputLossAction** *(string) --* Parameter that control output group behavior on input
        loss.

        - **NumRetries** *(integer) --* Number of retry attempts.

        - **RestartDelay** *(integer) --* Number of seconds before initiating a restart due to
        output failure, due to exhausting the numRetries on one segment, or exceeding
        filecacheDuration.

        - **SegmentationMode** *(string) --* useInputSegmentation has been deprecated. The
        configured segment size is always used.

        - **SendDelayMs** *(integer) --* Number of milliseconds to delay the output from the second
        pipeline.

        - **SparseTrackType** *(string) --* If set to scte35, use incoming SCTE-35 messages to
        generate a sparse track in this group of MS-Smooth outputs.

        - **StreamManifestBehavior** *(string) --* When set to send, send stream manifest so
        publishing point doesn't start until all streams start.

        - **TimestampOffset** *(string) --* Timestamp offset for the event. Only used if
        timestampOffsetMode is set to useConfiguredOffset.

        - **TimestampOffsetMode** *(string) --* Type of timestamp date offset to use. -
        useEventStartDate: Use the date the event was started as the offset - useConfiguredOffset:
        Use an explicitly configured date as the offset

      - **MultiplexGroupSettings** *(dict) --* Multiplex Group Settings

      - **RtmpGroupSettings** *(dict) --* Rtmp Group Settings

        - **AuthenticationScheme** *(string) --* Authentication scheme to use when connecting with
        CDN

        - **CacheFullBehavior** *(string) --* Controls behavior when content cache fills up. If
        remote origin server stalls the RTMP connection and does not accept content fast enough the
        'Media Cache' will fill up. When the cache reaches the duration specified by cacheLength the
        cache will stop accepting new content. If set to disconnectImmediately, the RTMP output will
        force a disconnect. Clear the media cache, and reconnect after restartDelay seconds. If set
        to waitForServer, the RTMP output will wait up to 5 minutes to allow the origin server to
        begin accepting data again.

        - **CacheLength** *(integer) --* Cache length, in seconds, is used to calculate buffer size.

        - **CaptionData** *(string) --* Controls the types of data that passes to onCaptionInfo
        outputs. If set to 'all' then 608 and 708 carried DTVCC data will be passed. If set to
        'field1AndField2608' then DTVCC data will be stripped out, but 608 data from both fields
        will be passed. If set to 'field1608' then only the data carried in 608 from field 1 video
        will be passed.

        - **InputLossAction** *(string) --* Controls the behavior of this RTMP group if input
        becomes unavailable. - emitOutput: Emit a slate until input returns. - pauseOutput: Stop
        transmitting data until input returns. This does not close the underlying RTMP connection.

        - **RestartDelay** *(integer) --* If a streaming output fails, number of seconds to wait
        until a restart is initiated. A value of 0 means never restart.

      - **UdpGroupSettings** *(dict) --* Udp Group Settings

        - **InputLossAction** *(string) --* Specifies behavior of last resort when input video is
        lost, and no more backup inputs are available. When dropTs is selected the entire transport
        stream will stop being emitted. When dropProgram is selected the program can be dropped from
        the transport stream (and replaced with null packets to meet the TS bitrate requirement).
        Or, when emitProgram is chosen the transport stream will continue to be produced normally
        with repeat frames, black frames, or slate frames substituted for the absent input video.

        - **TimedMetadataId3Frame** *(string) --* Indicates ID3 frame that has the timecode.

        - **TimedMetadataId3Period** *(integer) --* Timed Metadata interval in seconds.

    - **Outputs** *(list) --* Placeholder documentation for __listOfOutput

      - *(dict) --* Output settings. There can be multiple outputs within a group.

        - **AudioDescriptionNames** *(list) --* The names of the AudioDescriptions used as audio
        sources for this output.

          - *(string) --* Placeholder documentation for __string

        - **CaptionDescriptionNames** *(list) --* The names of the CaptionDescriptions used as
        caption sources for this output.

          - *(string) --* Placeholder documentation for __string

        - **OutputName** *(string) --* The name used to identify an output.

        - **OutputSettings** *(dict) --* Output type-specific settings.

          - **ArchiveOutputSettings** *(dict) --* Archive Output Settings

            - **ContainerSettings** *(dict) --* Settings specific to the container type of the file.

              - **M2tsSettings** *(dict) --* M2ts Settings

                - **AbsentInputAudioBehavior** *(string) --* When set to drop, output audio streams
                will be removed from the program if the selected input audio stream is removed from
                the input. This allows the output audio configuration to dynamically change based on
                input configuration. If this is set to encodeSilence, all output audio streams will
                output encoded silence when not connected to an active input stream.

                - **Arib** *(string) --* When set to enabled, uses ARIB-compliant field muxing and
                removes video descriptor.

                - **AribCaptionsPid** *(string) --* Packet Identifier (PID) for ARIB Captions in the
                transport stream. Can be entered as a decimal or hexadecimal value. Valid values are
                32 (or 0x20)..8182 (or 0x1ff6).

                - **AribCaptionsPidControl** *(string) --* If set to auto, pid number used for ARIB
                Captions will be auto-selected from unused pids. If set to useConfigured, ARIB
                Captions will be on the configured pid number.

                - **AudioBufferModel** *(string) --* When set to dvb, uses DVB buffer model for
                Dolby Digital audio. When set to atsc, the ATSC model is used.

                - **AudioFramesPerPes** *(integer) --* The number of audio frames to insert for each
                PES packet.

                - **AudioPids** *(string) --* Packet Identifier (PID) of the elementary audio
                stream(s) in the transport stream. Multiple values are accepted, and can be entered
                in ranges and/or by comma separation. Can be entered as decimal or hexadecimal
                values. Each PID specified must be in the range of 32 (or 0x20)..8182 (or 0x1ff6).

                - **AudioStreamType** *(string) --* When set to atsc, uses stream type =
                     0x81 for
                AC3 and stream type = 0x87 for EAC3. When set to dvb, uses stream type =
                     0x06.

                - **Bitrate** *(integer) --* The output bitrate of the transport stream in bits per
                second. Setting to 0 lets the muxer automatically determine the appropriate bitrate.

                - **BufferModel** *(string) --* If set to multiplex, use multiplex buffer model for
                accurate interleaving. Setting to bufferModel to none can lead to lower latency, but
                low-memory devices may not be able to play back the stream without interruptions.

                - **CcDescriptor** *(string) --* When set to enabled, generates
                captionServiceDescriptor in PMT.

                - **DvbNitSettings** *(dict) --* Inserts DVB Network Information Table (NIT) at the
                specified table repetition interval.

                  - **NetworkId** *(integer) --* The numeric value placed in the Network Information
                  Table (NIT).

                  - **NetworkName** *(string) --* The network name text placed in the
                  networkNameDescriptor inside the Network Information Table. Maximum length is 256
                  characters.

                  - **RepInterval** *(integer) --* The number of milliseconds between instances of
                  this table in the output transport stream.

                - **DvbSdtSettings** *(dict) --* Inserts DVB Service Description Table (SDT) at the
                specified table repetition interval.

                  - **OutputSdt** *(string) --* Selects method of inserting SDT information into
                  output stream. The sdtFollow setting copies SDT information from input stream to
                  output stream. The sdtFollowIfPresent setting copies SDT information from input
                  stream to output stream if SDT information is present in the input, otherwise it
                  will fall back on the user-defined values. The sdtManual setting means user will
                  enter the SDT information. The sdtNone setting means output stream will not
                  contain SDT information.

                  - **RepInterval** *(integer) --* The number of milliseconds between instances of
                  this table in the output transport stream.

                  - **ServiceName** *(string) --* The service name placed in the serviceDescriptor
                  in the Service Description Table. Maximum length is 256 characters.

                  - **ServiceProviderName** *(string) --* The service provider name placed in the
                  serviceDescriptor in the Service Description Table. Maximum length is 256
                  characters.

                - **DvbSubPids** *(string) --* Packet Identifier (PID) for input source DVB Subtitle
                data to this output. Multiple values are accepted, and can be entered in ranges
                and/or by comma separation. Can be entered as decimal or hexadecimal values. Each
                PID specified must be in the range of 32 (or 0x20)..8182 (or 0x1ff6).

                - **DvbTdtSettings** *(dict) --* Inserts DVB Time and Date Table (TDT) at the
                specified table repetition interval.

                  - **RepInterval** *(integer) --* The number of milliseconds between instances of
                  this table in the output transport stream.

                - **DvbTeletextPid** *(string) --* Packet Identifier (PID) for input source DVB
                Teletext data to this output. Can be entered as a decimal or hexadecimal value.
                Valid values are 32 (or 0x20)..8182 (or 0x1ff6).

                - **Ebif** *(string) --* If set to passthrough, passes any EBIF data from the input
                source to this output.

                - **EbpAudioInterval** *(string) --* When videoAndFixedIntervals is selected, audio
                EBP markers will be added to partitions 3 and 4. The interval between these
                additional markers will be fixed, and will be slightly shorter than the video EBP
                marker interval. Only available when EBP Cablelabs segmentation markers are
                selected. Partitions 1 and 2 will always follow the video interval.

                - **EbpLookaheadMs** *(integer) --* When set, enforces that Encoder Boundary Points
                do not come within the specified time interval of each other by looking ahead at
                input video. If another EBP is going to come in within the specified time interval,
                the current EBP is not emitted, and the segment is "stretched" to the next marker.
                The lookahead value does not add latency to the system. The Live Event must be
                configured elsewhere to create sufficient latency to make the lookahead accurate.

                - **EbpPlacement** *(string) --* Controls placement of EBP on Audio PIDs. If set to
                videoAndAudioPids, EBP markers will be placed on the video PID and all audio PIDs.
                If set to videoPid, EBP markers will be placed on only the video PID.

                - **EcmPid** *(string) --* This field is unused and deprecated.

                - **EsRateInPes** *(string) --* Include or exclude the ES Rate field in the PES
                header.

                - **EtvPlatformPid** *(string) --* Packet Identifier (PID) for input source ETV
                Platform data to this output. Can be entered as a decimal or hexadecimal value.
                Valid values are 32 (or 0x20)..8182 (or 0x1ff6).

                - **EtvSignalPid** *(string) --* Packet Identifier (PID) for input source ETV Signal
                data to this output. Can be entered as a decimal or hexadecimal value. Valid values
                are 32 (or 0x20)..8182 (or 0x1ff6).

                - **FragmentTime** *(float) --* The length in seconds of each fragment. Only used
                with EBP markers.

                - **Klv** *(string) --* If set to passthrough, passes any KLV data from the input
                source to this output.

                - **KlvDataPids** *(string) --* Packet Identifier (PID) for input source KLV data to
                this output. Multiple values are accepted, and can be entered in ranges and/or by
                comma separation. Can be entered as decimal or hexadecimal values. Each PID
                specified must be in the range of 32 (or 0x20)..8182 (or 0x1ff6).

                - **NielsenId3Behavior** *(string) --* If set to passthrough, Nielsen inaudible
                tones for media tracking will be detected in the input audio and an equivalent ID3
                tag will be inserted in the output.

                - **NullPacketBitrate** *(float) --* Value in bits per second of extra null packets
                to insert into the transport stream. This can be used if a downstream encryption
                system requires periodic null packets.

                - **PatInterval** *(integer) --* The number of milliseconds between instances of
                this table in the output transport stream. Valid values are 0, 10..1000.

                - **PcrControl** *(string) --* When set to pcrEveryPesPacket, a Program Clock
                Reference value is inserted for every Packetized Elementary Stream (PES) header.
                This parameter is effective only when the PCR PID is the same as the video or audio
                elementary stream.

                - **PcrPeriod** *(integer) --* Maximum time in milliseconds between Program Clock
                Reference (PCRs) inserted into the transport stream.

                - **PcrPid** *(string) --* Packet Identifier (PID) of the Program Clock Reference
                (PCR) in the transport stream. When no value is given, the encoder will assign the
                same value as the Video PID. Can be entered as a decimal or hexadecimal value. Valid
                values are 32 (or 0x20)..8182 (or 0x1ff6).

                - **PmtInterval** *(integer) --* The number of milliseconds between instances of
                this table in the output transport stream. Valid values are 0, 10..1000.

                - **PmtPid** *(string) --* Packet Identifier (PID) for the Program Map Table (PMT)
                in the transport stream. Can be entered as a decimal or hexadecimal value. Valid
                values are 32 (or 0x20)..8182 (or 0x1ff6).

                - **ProgramNum** *(integer) --* The value of the program number field in the Program
                Map Table.

                - **RateMode** *(string) --* When vbr, does not insert null packets into transport
                stream to fill specified bitrate. The bitrate setting acts as the maximum bitrate
                when vbr is set.

                - **Scte27Pids** *(string) --* Packet Identifier (PID) for input source SCTE-27 data
                to this output. Multiple values are accepted, and can be entered in ranges and/or by
                comma separation. Can be entered as decimal or hexadecimal values. Each PID
                specified must be in the range of 32 (or 0x20)..8182 (or 0x1ff6).

                - **Scte35Control** *(string) --* Optionally pass SCTE-35 signals from the input
                source to this output.

                - **Scte35Pid** *(string) --* Packet Identifier (PID) of the SCTE-35 stream in the
                transport stream. Can be entered as a decimal or hexadecimal value. Valid values are
                32 (or 0x20)..8182 (or 0x1ff6).

                - **SegmentationMarkers** *(string) --* Inserts segmentation markers at each
                segmentationTime period. raiSegstart sets the Random Access Indicator bit in the
                adaptation field. raiAdapt sets the RAI bit and adds the current timecode in the
                private data bytes. psiSegstart inserts PAT and PMT tables at the start of segments.
                ebp adds Encoder Boundary Point information to the adaptation field as per OpenCable
                specification OC-SP-EBP-I01-130118. ebpLegacy adds Encoder Boundary Point
                information to the adaptation field using a legacy proprietary format.

                - **SegmentationStyle** *(string) --* The segmentation style parameter controls how
                segmentation markers are inserted into the transport stream. With avails, it is
                possible that segments may be truncated, which can influence where future
                segmentation markers are inserted. When a segmentation style of "resetCadence" is
                selected and a segment is truncated due to an avail, we will reset the segmentation
                cadence. This means the subsequent segment will have a duration of $segmentationTime
                seconds. When a segmentation style of "maintainCadence" is selected and a segment is
                truncated due to an avail, we will not reset the segmentation cadence. This means
                the subsequent segment will likely be truncated as well. However, all segments after
                that will have a duration of $segmentationTime seconds. Note that EBP lookahead is a
                slight exception to this rule.

                - **SegmentationTime** *(float) --* The length in seconds of each segment. Required
                unless markers is set to None_.

                - **TimedMetadataBehavior** *(string) --* When set to passthrough, timed metadata
                will be passed through from input to output.

                - **TimedMetadataPid** *(string) --* Packet Identifier (PID) of the timed metadata
                stream in the transport stream. Can be entered as a decimal or hexadecimal value.
                Valid values are 32 (or 0x20)..8182 (or 0x1ff6).

                - **TransportStreamId** *(integer) --* The value of the transport stream ID field in
                the Program Map Table.

                - **VideoPid** *(string) --* Packet Identifier (PID) of the elementary video stream
                in the transport stream. Can be entered as a decimal or hexadecimal value. Valid
                values are 32 (or 0x20)..8182 (or 0x1ff6).

            - **Extension** *(string) --* Output file extension. If excluded, this will be
            auto-selected from the container type.

            - **NameModifier** *(string) --* String concatenated to the end of the destination
            filename. Required for multiple outputs of the same type.

          - **FrameCaptureOutputSettings** *(dict) --* Frame Capture Output Settings

            - **NameModifier** *(string) --* Required if the output group contains more than one
            output. This modifier forms part of the output file name.

          - **HlsOutputSettings** *(dict) --* Hls Output Settings

            - **HlsSettings** *(dict) --* Settings regarding the underlying stream. These settings
            are different for audio-only outputs.

              - **AudioOnlyHlsSettings** *(dict) --* Audio Only Hls Settings

                - **AudioGroupId** *(string) --* Specifies the group to which the audio Rendition
                belongs.

                - **AudioOnlyImage** *(dict) --* Optional. Specifies the .jpg or .png image to use
                as the cover art for an audio-only output. We recommend a low bit-size file because
                the image increases the output audio bandwidth. The image is attached to the audio
                as an ID3 tag, frame type APIC, picture type 0x10, as per the "ID3 tag version 2.4.0
                - Native Frames" standard.

                  - **PasswordParam** *(string) --* key used to extract the password from EC2
                  Parameter store

                  - **Uri** *(string) --* Uniform Resource Identifier - This should be a path to a
                  file accessible to the Live system (eg. a http:// URI) depending on the output
                  type. For example, a RTMP destination should have a uri simliar to:
                  "rtmp://fmsserver/live".

                  - **Username** *(string) --* Documentation update needed

                - **AudioTrackType** *(string) --* Four types of audio-only tracks are supported:
                Audio-Only Variant Stream The client can play back this audio-only stream instead of
                video in low-bandwidth scenarios. Represented as an EXT-X-STREAM-INF in the HLS
                manifest. Alternate Audio, Auto Select, Default Alternate rendition that the client
                should try to play back by default. Represented as an EXT-X-MEDIA in the HLS
                manifest with DEFAULT=YES, AUTOSELECT=
                    YES Alternate Audio, Auto Select, Not Default
                Alternate rendition that the client may try to play back by default. Represented as
                an EXT-X-MEDIA in the HLS manifest with DEFAULT=NO, AUTOSELECT=
                    YES Alternate Audio,
                not Auto Select Alternate rendition that the client will not try to play back by
                default. Represented as an EXT-X-MEDIA in the HLS manifest with DEFAULT=
                    NO,
                AUTOSELECT=NO

              - **StandardHlsSettings** *(dict) --* Standard Hls Settings

                - **AudioRenditionSets** *(string) --* List all the audio groups that are used with
                the video output stream. Input all the audio GROUP-IDs that are associated to the
                video, separate by ','.

                - **M3u8Settings** *(dict) --* Settings information for the .m3u8 container

                  - **AudioFramesPerPes** *(integer) --* The number of audio frames to insert for
                  each PES packet.

                  - **AudioPids** *(string) --* Packet Identifier (PID) of the elementary audio
                  stream(s) in the transport stream. Multiple values are accepted, and can be
                  entered in ranges and/or by comma separation. Can be entered as decimal or
                  hexadecimal values.

                  - **EcmPid** *(string) --* This parameter is unused and deprecated.

                  - **NielsenId3Behavior** *(string) --* If set to passthrough, Nielsen inaudible
                  tones for media tracking will be detected in the input audio and an equivalent ID3
                  tag will be inserted in the output.

                  - **PatInterval** *(integer) --* The number of milliseconds between instances of
                  this table in the output transport stream. A value of \\"0\\" writes out the PMT
                  once per segment file.

                  - **PcrControl** *(string) --* When set to pcrEveryPesPacket, a Program Clock
                  Reference value is inserted for every Packetized Elementary Stream (PES) header.
                  This parameter is effective only when the PCR PID is the same as the video or
                  audio elementary stream.

                  - **PcrPeriod** *(integer) --* Maximum time in milliseconds between Program Clock
                  References (PCRs) inserted into the transport stream.

                  - **PcrPid** *(string) --* Packet Identifier (PID) of the Program Clock Reference
                  (PCR) in the transport stream. When no value is given, the encoder will assign the
                  same value as the Video PID. Can be entered as a decimal or hexadecimal value.

                  - **PmtInterval** *(integer) --* The number of milliseconds between instances of
                  this table in the output transport stream. A value of \\"0\\" writes out the PMT
                  once per segment file.

                  - **PmtPid** *(string) --* Packet Identifier (PID) for the Program Map Table (PMT)
                  in the transport stream. Can be entered as a decimal or hexadecimal value.

                  - **ProgramNum** *(integer) --* The value of the program number field in the
                  Program Map Table.

                  - **Scte35Behavior** *(string) --* If set to passthrough, passes any SCTE-35
                  signals from the input source to this output.

                  - **Scte35Pid** *(string) --* Packet Identifier (PID) of the SCTE-35 stream in the
                  transport stream. Can be entered as a decimal or hexadecimal value.

                  - **TimedMetadataBehavior** *(string) --* When set to passthrough, timed metadata
                  is passed through from input to output.

                  - **TimedMetadataPid** *(string) --* Packet Identifier (PID) of the timed metadata
                  stream in the transport stream. Can be entered as a decimal or hexadecimal value.
                  Valid values are 32 (or 0x20)..8182 (or 0x1ff6).

                  - **TransportStreamId** *(integer) --* The value of the transport stream ID field
                  in the Program Map Table.

                  - **VideoPid** *(string) --* Packet Identifier (PID) of the elementary video
                  stream in the transport stream. Can be entered as a decimal or hexadecimal value.

            - **NameModifier** *(string) --* String concatenated to the end of the destination
            filename. Accepts \\"Format Identifiers\\":#formatIdentifierParameters.

            - **SegmentModifier** *(string) --* String concatenated to end of segment filenames.

          - **MediaPackageOutputSettings** *(dict) --* Media Package Output Settings

          - **MsSmoothOutputSettings** *(dict) --* Ms Smooth Output Settings

            - **H265PackagingType** *(string) --* Only applicable when this output is referencing an
            H.265 video description. Specifies whether MP4 segments should be packaged as HEV1 or
            HVC1.

            - **NameModifier** *(string) --* String concatenated to the end of the destination
            filename. Required for multiple outputs of the same type.

          - **MultiplexOutputSettings** *(dict) --* Multiplex Output Settings

            - **Destination** *(dict) --* Destination is a Multiplex.

              - **DestinationRefId** *(string) --* Placeholder documentation for __string

          - **RtmpOutputSettings** *(dict) --* Rtmp Output Settings

            - **CertificateMode** *(string) --* If set to verifyAuthenticity, verify the tls
            certificate chain to a trusted Certificate Authority (CA). This will cause rtmps outputs
            with self-signed certificates to fail.

            - **ConnectionRetryInterval** *(integer) --* Number of seconds to wait before retrying a
            connection to the Flash Media server if the connection is lost.

            - **Destination** *(dict) --* The RTMP endpoint excluding the stream name (eg.
            rtmp://host/appname). For connection to Akamai, a username and password must be
            supplied. URI fields accept format identifiers.

              - **DestinationRefId** *(string) --* Placeholder documentation for __string

            - **NumRetries** *(integer) --* Number of retry attempts.

          - **UdpOutputSettings** *(dict) --* Udp Output Settings

            - **BufferMsec** *(integer) --* UDP output buffering in milliseconds. Larger values
            increase latency through the transcoder but simultaneously assist the transcoder in
            maintaining a constant, low-jitter UDP/RTP output while accommodating clock recovery,
            input switching, input disruptions, picture reordering, etc.

            - **ContainerSettings** *(dict) --* Udp Container Settings

              - **M2tsSettings** *(dict) --* M2ts Settings

                - **AbsentInputAudioBehavior** *(string) --* When set to drop, output audio streams
                will be removed from the program if the selected input audio stream is removed from
                the input. This allows the output audio configuration to dynamically change based on
                input configuration. If this is set to encodeSilence, all output audio streams will
                output encoded silence when not connected to an active input stream.

                - **Arib** *(string) --* When set to enabled, uses ARIB-compliant field muxing and
                removes video descriptor.

                - **AribCaptionsPid** *(string) --* Packet Identifier (PID) for ARIB Captions in the
                transport stream. Can be entered as a decimal or hexadecimal value. Valid values are
                32 (or 0x20)..8182 (or 0x1ff6).

                - **AribCaptionsPidControl** *(string) --* If set to auto, pid number used for ARIB
                Captions will be auto-selected from unused pids. If set to useConfigured, ARIB
                Captions will be on the configured pid number.

                - **AudioBufferModel** *(string) --* When set to dvb, uses DVB buffer model for
                Dolby Digital audio. When set to atsc, the ATSC model is used.

                - **AudioFramesPerPes** *(integer) --* The number of audio frames to insert for each
                PES packet.

                - **AudioPids** *(string) --* Packet Identifier (PID) of the elementary audio
                stream(s) in the transport stream. Multiple values are accepted, and can be entered
                in ranges and/or by comma separation. Can be entered as decimal or hexadecimal
                values. Each PID specified must be in the range of 32 (or 0x20)..8182 (or 0x1ff6).

                - **AudioStreamType** *(string) --* When set to atsc, uses stream type =
                     0x81 for
                AC3 and stream type = 0x87 for EAC3. When set to dvb, uses stream type =
                     0x06.

                - **Bitrate** *(integer) --* The output bitrate of the transport stream in bits per
                second. Setting to 0 lets the muxer automatically determine the appropriate bitrate.

                - **BufferModel** *(string) --* If set to multiplex, use multiplex buffer model for
                accurate interleaving. Setting to bufferModel to none can lead to lower latency, but
                low-memory devices may not be able to play back the stream without interruptions.

                - **CcDescriptor** *(string) --* When set to enabled, generates
                captionServiceDescriptor in PMT.

                - **DvbNitSettings** *(dict) --* Inserts DVB Network Information Table (NIT) at the
                specified table repetition interval.

                  - **NetworkId** *(integer) --* The numeric value placed in the Network Information
                  Table (NIT).

                  - **NetworkName** *(string) --* The network name text placed in the
                  networkNameDescriptor inside the Network Information Table. Maximum length is 256
                  characters.

                  - **RepInterval** *(integer) --* The number of milliseconds between instances of
                  this table in the output transport stream.

                - **DvbSdtSettings** *(dict) --* Inserts DVB Service Description Table (SDT) at the
                specified table repetition interval.

                  - **OutputSdt** *(string) --* Selects method of inserting SDT information into
                  output stream. The sdtFollow setting copies SDT information from input stream to
                  output stream. The sdtFollowIfPresent setting copies SDT information from input
                  stream to output stream if SDT information is present in the input, otherwise it
                  will fall back on the user-defined values. The sdtManual setting means user will
                  enter the SDT information. The sdtNone setting means output stream will not
                  contain SDT information.

                  - **RepInterval** *(integer) --* The number of milliseconds between instances of
                  this table in the output transport stream.

                  - **ServiceName** *(string) --* The service name placed in the serviceDescriptor
                  in the Service Description Table. Maximum length is 256 characters.

                  - **ServiceProviderName** *(string) --* The service provider name placed in the
                  serviceDescriptor in the Service Description Table. Maximum length is 256
                  characters.

                - **DvbSubPids** *(string) --* Packet Identifier (PID) for input source DVB Subtitle
                data to this output. Multiple values are accepted, and can be entered in ranges
                and/or by comma separation. Can be entered as decimal or hexadecimal values. Each
                PID specified must be in the range of 32 (or 0x20)..8182 (or 0x1ff6).

                - **DvbTdtSettings** *(dict) --* Inserts DVB Time and Date Table (TDT) at the
                specified table repetition interval.

                  - **RepInterval** *(integer) --* The number of milliseconds between instances of
                  this table in the output transport stream.

                - **DvbTeletextPid** *(string) --* Packet Identifier (PID) for input source DVB
                Teletext data to this output. Can be entered as a decimal or hexadecimal value.
                Valid values are 32 (or 0x20)..8182 (or 0x1ff6).

                - **Ebif** *(string) --* If set to passthrough, passes any EBIF data from the input
                source to this output.

                - **EbpAudioInterval** *(string) --* When videoAndFixedIntervals is selected, audio
                EBP markers will be added to partitions 3 and 4. The interval between these
                additional markers will be fixed, and will be slightly shorter than the video EBP
                marker interval. Only available when EBP Cablelabs segmentation markers are
                selected. Partitions 1 and 2 will always follow the video interval.

                - **EbpLookaheadMs** *(integer) --* When set, enforces that Encoder Boundary Points
                do not come within the specified time interval of each other by looking ahead at
                input video. If another EBP is going to come in within the specified time interval,
                the current EBP is not emitted, and the segment is "stretched" to the next marker.
                The lookahead value does not add latency to the system. The Live Event must be
                configured elsewhere to create sufficient latency to make the lookahead accurate.

                - **EbpPlacement** *(string) --* Controls placement of EBP on Audio PIDs. If set to
                videoAndAudioPids, EBP markers will be placed on the video PID and all audio PIDs.
                If set to videoPid, EBP markers will be placed on only the video PID.

                - **EcmPid** *(string) --* This field is unused and deprecated.

                - **EsRateInPes** *(string) --* Include or exclude the ES Rate field in the PES
                header.

                - **EtvPlatformPid** *(string) --* Packet Identifier (PID) for input source ETV
                Platform data to this output. Can be entered as a decimal or hexadecimal value.
                Valid values are 32 (or 0x20)..8182 (or 0x1ff6).

                - **EtvSignalPid** *(string) --* Packet Identifier (PID) for input source ETV Signal
                data to this output. Can be entered as a decimal or hexadecimal value. Valid values
                are 32 (or 0x20)..8182 (or 0x1ff6).

                - **FragmentTime** *(float) --* The length in seconds of each fragment. Only used
                with EBP markers.

                - **Klv** *(string) --* If set to passthrough, passes any KLV data from the input
                source to this output.

                - **KlvDataPids** *(string) --* Packet Identifier (PID) for input source KLV data to
                this output. Multiple values are accepted, and can be entered in ranges and/or by
                comma separation. Can be entered as decimal or hexadecimal values. Each PID
                specified must be in the range of 32 (or 0x20)..8182 (or 0x1ff6).

                - **NielsenId3Behavior** *(string) --* If set to passthrough, Nielsen inaudible
                tones for media tracking will be detected in the input audio and an equivalent ID3
                tag will be inserted in the output.

                - **NullPacketBitrate** *(float) --* Value in bits per second of extra null packets
                to insert into the transport stream. This can be used if a downstream encryption
                system requires periodic null packets.

                - **PatInterval** *(integer) --* The number of milliseconds between instances of
                this table in the output transport stream. Valid values are 0, 10..1000.

                - **PcrControl** *(string) --* When set to pcrEveryPesPacket, a Program Clock
                Reference value is inserted for every Packetized Elementary Stream (PES) header.
                This parameter is effective only when the PCR PID is the same as the video or audio
                elementary stream.

                - **PcrPeriod** *(integer) --* Maximum time in milliseconds between Program Clock
                Reference (PCRs) inserted into the transport stream.

                - **PcrPid** *(string) --* Packet Identifier (PID) of the Program Clock Reference
                (PCR) in the transport stream. When no value is given, the encoder will assign the
                same value as the Video PID. Can be entered as a decimal or hexadecimal value. Valid
                values are 32 (or 0x20)..8182 (or 0x1ff6).

                - **PmtInterval** *(integer) --* The number of milliseconds between instances of
                this table in the output transport stream. Valid values are 0, 10..1000.

                - **PmtPid** *(string) --* Packet Identifier (PID) for the Program Map Table (PMT)
                in the transport stream. Can be entered as a decimal or hexadecimal value. Valid
                values are 32 (or 0x20)..8182 (or 0x1ff6).

                - **ProgramNum** *(integer) --* The value of the program number field in the Program
                Map Table.

                - **RateMode** *(string) --* When vbr, does not insert null packets into transport
                stream to fill specified bitrate. The bitrate setting acts as the maximum bitrate
                when vbr is set.

                - **Scte27Pids** *(string) --* Packet Identifier (PID) for input source SCTE-27 data
                to this output. Multiple values are accepted, and can be entered in ranges and/or by
                comma separation. Can be entered as decimal or hexadecimal values. Each PID
                specified must be in the range of 32 (or 0x20)..8182 (or 0x1ff6).

                - **Scte35Control** *(string) --* Optionally pass SCTE-35 signals from the input
                source to this output.

                - **Scte35Pid** *(string) --* Packet Identifier (PID) of the SCTE-35 stream in the
                transport stream. Can be entered as a decimal or hexadecimal value. Valid values are
                32 (or 0x20)..8182 (or 0x1ff6).

                - **SegmentationMarkers** *(string) --* Inserts segmentation markers at each
                segmentationTime period. raiSegstart sets the Random Access Indicator bit in the
                adaptation field. raiAdapt sets the RAI bit and adds the current timecode in the
                private data bytes. psiSegstart inserts PAT and PMT tables at the start of segments.
                ebp adds Encoder Boundary Point information to the adaptation field as per OpenCable
                specification OC-SP-EBP-I01-130118. ebpLegacy adds Encoder Boundary Point
                information to the adaptation field using a legacy proprietary format.

                - **SegmentationStyle** *(string) --* The segmentation style parameter controls how
                segmentation markers are inserted into the transport stream. With avails, it is
                possible that segments may be truncated, which can influence where future
                segmentation markers are inserted. When a segmentation style of "resetCadence" is
                selected and a segment is truncated due to an avail, we will reset the segmentation
                cadence. This means the subsequent segment will have a duration of $segmentationTime
                seconds. When a segmentation style of "maintainCadence" is selected and a segment is
                truncated due to an avail, we will not reset the segmentation cadence. This means
                the subsequent segment will likely be truncated as well. However, all segments after
                that will have a duration of $segmentationTime seconds. Note that EBP lookahead is a
                slight exception to this rule.

                - **SegmentationTime** *(float) --* The length in seconds of each segment. Required
                unless markers is set to None_.

                - **TimedMetadataBehavior** *(string) --* When set to passthrough, timed metadata
                will be passed through from input to output.

                - **TimedMetadataPid** *(string) --* Packet Identifier (PID) of the timed metadata
                stream in the transport stream. Can be entered as a decimal or hexadecimal value.
                Valid values are 32 (or 0x20)..8182 (or 0x1ff6).

                - **TransportStreamId** *(integer) --* The value of the transport stream ID field in
                the Program Map Table.

                - **VideoPid** *(string) --* Packet Identifier (PID) of the elementary video stream
                in the transport stream. Can be entered as a decimal or hexadecimal value. Valid
                values are 32 (or 0x20)..8182 (or 0x1ff6).

            - **Destination** *(dict) --* Destination address and port number for RTP or UDP
            packets. Can be unicast or multicast RTP or UDP (eg. rtp://239.10.10.10:5001 or
            udp://10.100.100.100:5002).

              - **DestinationRefId** *(string) --* Placeholder documentation for __string

            - **FecOutputSettings** *(dict) --* Settings for enabling and adjusting Forward Error
            Correction on UDP outputs.

              - **ColumnDepth** *(integer) --* Parameter D from SMPTE 2022-1. The height of the FEC
              protection matrix. The number of transport stream packets per column error correction
              packet. Must be between 4 and 20, inclusive.

              - **IncludeFec** *(string) --* Enables column only or column and row based FEC

              - **RowLength** *(integer) --* Parameter L from SMPTE 2022-1. The width of the FEC
              protection matrix. Must be between 1 and 20, inclusive. If only Column FEC is used,
              then larger values increase robustness. If Row FEC is used, then this is the number of
              transport stream packets per row error correction packet, and the value must be
              between 4 and 20, inclusive, if includeFec is columnAndRow. If includeFec is column,
              this value must be 1 to 20, inclusive.

        - **VideoDescriptionName** *(string) --* The name of the VideoDescription used as the source
        for this output.
    """


_ClientDeleteChannelResponseEncoderSettingsTimecodeConfigTypeDef = TypedDict(
    "_ClientDeleteChannelResponseEncoderSettingsTimecodeConfigTypeDef",
    {"Source": str, "SyncThreshold": int},
    total=False,
)


class ClientDeleteChannelResponseEncoderSettingsTimecodeConfigTypeDef(
    _ClientDeleteChannelResponseEncoderSettingsTimecodeConfigTypeDef
):
    """
    Type definition for `ClientDeleteChannelResponseEncoderSettings` `TimecodeConfig`

    - **Source** *(string) --* Identifies the source for the timecode that will be associated with
    the events outputs. -Embedded (embedded): Initialize the output timecode with timecode from the
    the source. If no embedded timecode is detected in the source, the system falls back to using
    "Start at 0" (zerobased). -System Clock (systemclock): Use the UTC time. -Start at 0
    (zerobased): The time of the first frame of the event will be 00:00:00:00.

    - **SyncThreshold** *(integer) --* Threshold in frames beyond which output timecode is
    resynchronized to the input timecode. Discrepancies below this threshold are permitted to avoid
    unnecessary discontinuities in the output timecode. No timecode sync when this is not specified.
    """


_ClientDeleteChannelResponseEncoderSettingsVideoDescriptionsCodecSettingsFrameCaptureSettingsTypeDef = TypedDict(
    "_ClientDeleteChannelResponseEncoderSettingsVideoDescriptionsCodecSettingsFrameCaptureSettingsTypeDef",
    {"CaptureInterval": int},
    total=False,
)


class ClientDeleteChannelResponseEncoderSettingsVideoDescriptionsCodecSettingsFrameCaptureSettingsTypeDef(
    _ClientDeleteChannelResponseEncoderSettingsVideoDescriptionsCodecSettingsFrameCaptureSettingsTypeDef
):
    """
    Type definition for `ClientDeleteChannelResponseEncoderSettingsVideoDescriptionsCodecSettings`
    `FrameCaptureSettings`

    - **CaptureInterval** *(integer) --* The frequency at which to capture frames for inclusion in
    the output. May be specified in either seconds or milliseconds, as specified by
    captureIntervalUnits.
    """


_ClientDeleteChannelResponseEncoderSettingsVideoDescriptionsCodecSettingsH264SettingsColorSpaceSettingsTypeDef = TypedDict(
    "_ClientDeleteChannelResponseEncoderSettingsVideoDescriptionsCodecSettingsH264SettingsColorSpaceSettingsTypeDef",
    {
        "ColorSpacePassthroughSettings": Dict,
        "Rec601Settings": Dict,
        "Rec709Settings": Dict[str, Any],
    },
    total=False,
)


class ClientDeleteChannelResponseEncoderSettingsVideoDescriptionsCodecSettingsH264SettingsColorSpaceSettingsTypeDef(
    _ClientDeleteChannelResponseEncoderSettingsVideoDescriptionsCodecSettingsH264SettingsColorSpaceSettingsTypeDef
):
    """
    Type definition for
    `ClientDeleteChannelResponseEncoderSettingsVideoDescriptionsCodecSettingsH264Settings`
    `ColorSpaceSettings`

    - **ColorSpacePassthroughSettings** *(dict) --* Passthrough applies no color space conversion to
    the output

    - **Rec601Settings** *(dict) --* Rec601 Settings

    - **Rec709Settings** *(dict) --* Rec709 Settings
    """


_ClientDeleteChannelResponseEncoderSettingsVideoDescriptionsCodecSettingsH264SettingsTypeDef = TypedDict(
    "_ClientDeleteChannelResponseEncoderSettingsVideoDescriptionsCodecSettingsH264SettingsTypeDef",
    {
        "AdaptiveQuantization": str,
        "AfdSignaling": str,
        "Bitrate": int,
        "BufFillPct": int,
        "BufSize": int,
        "ColorMetadata": str,
        "ColorSpaceSettings": ClientDeleteChannelResponseEncoderSettingsVideoDescriptionsCodecSettingsH264SettingsColorSpaceSettingsTypeDef,
        "EntropyEncoding": str,
        "FixedAfd": str,
        "FlickerAq": str,
        "FramerateControl": str,
        "FramerateDenominator": int,
        "FramerateNumerator": int,
        "GopBReference": str,
        "GopClosedCadence": int,
        "GopNumBFrames": int,
        "GopSize": float,
        "GopSizeUnits": str,
        "Level": str,
        "LookAheadRateControl": str,
        "MaxBitrate": int,
        "MinIInterval": int,
        "NumRefFrames": int,
        "ParControl": str,
        "ParDenominator": int,
        "ParNumerator": int,
        "Profile": str,
        "QvbrQualityLevel": int,
        "RateControlMode": str,
        "ScanType": str,
        "SceneChangeDetect": str,
        "Slices": int,
        "Softness": int,
        "SpatialAq": str,
        "SubgopLength": str,
        "Syntax": str,
        "TemporalAq": str,
        "TimecodeInsertion": str,
    },
    total=False,
)


class ClientDeleteChannelResponseEncoderSettingsVideoDescriptionsCodecSettingsH264SettingsTypeDef(
    _ClientDeleteChannelResponseEncoderSettingsVideoDescriptionsCodecSettingsH264SettingsTypeDef
):
    """
    Type definition for `ClientDeleteChannelResponseEncoderSettingsVideoDescriptionsCodecSettings`
    `H264Settings`

    - **AdaptiveQuantization** *(string) --* Adaptive quantization. Allows intra-frame quantizers to
    vary to improve visual quality.

    - **AfdSignaling** *(string) --* Indicates that AFD values will be written into the output
    stream. If afdSignaling is "auto", the system will try to preserve the input AFD value (in cases
    where multiple AFD values are valid). If set to "fixed", the AFD value will be the value
    configured in the fixedAfd parameter.

    - **Bitrate** *(integer) --* Average bitrate in bits/second. Required when the rate control mode
    is VBR or CBR. Not used for QVBR. In an MS Smooth output group, each output must have a unique
    value when its bitrate is rounded down to the nearest multiple of 1000.

    - **BufFillPct** *(integer) --* Percentage of the buffer that should initially be filled (HRD
    buffer model).

    - **BufSize** *(integer) --* Size of buffer (HRD buffer model) in bits.

    - **ColorMetadata** *(string) --* Includes colorspace metadata in the output.

    - **ColorSpaceSettings** *(dict) --* Color Space settings

      - **ColorSpacePassthroughSettings** *(dict) --* Passthrough applies no color space conversion
      to the output

      - **Rec601Settings** *(dict) --* Rec601 Settings

      - **Rec709Settings** *(dict) --* Rec709 Settings

    - **EntropyEncoding** *(string) --* Entropy encoding mode. Use cabac (must be in Main or High
    profile) or cavlc.

    - **FixedAfd** *(string) --* Four bit AFD value to write on all frames of video in the output
    stream. Only valid when afdSignaling is set to 'Fixed'.

    - **FlickerAq** *(string) --* If set to enabled, adjust quantization within each frame to reduce
    flicker or 'pop' on I-frames.

    - **FramerateControl** *(string) --* This field indicates how the output video frame rate is
    specified. If "specified" is selected then the output video frame rate is determined by
    framerateNumerator and framerateDenominator, else if "initializeFromSource" is selected then the
    output video frame rate will be set equal to the input video frame rate of the first input.

    - **FramerateDenominator** *(integer) --* Framerate denominator.

    - **FramerateNumerator** *(integer) --* Framerate numerator - framerate is a fraction, e.g.
    24000 / 1001 = 23.976 fps.

    - **GopBReference** *(string) --* Documentation update needed

    - **GopClosedCadence** *(integer) --* Frequency of closed GOPs. In streaming applications, it is
    recommended that this be set to 1 so a decoder joining mid-stream will receive an IDR frame as
    quickly as possible. Setting this value to 0 will break output segmenting.

    - **GopNumBFrames** *(integer) --* Number of B-frames between reference frames.

    - **GopSize** *(float) --* GOP size (keyframe interval) in units of either frames or seconds per
    gopSizeUnits. If gopSizeUnits is frames, gopSize must be an integer and must be greater than or
    equal to 1. If gopSizeUnits is seconds, gopSize must be greater than 0, but need not be an
    integer.

    - **GopSizeUnits** *(string) --* Indicates if the gopSize is specified in frames or seconds. If
    seconds the system will convert the gopSize into a frame count at run time.

    - **Level** *(string) --* H.264 Level.

    - **LookAheadRateControl** *(string) --* Amount of lookahead. A value of low can decrease
    latency and memory usage, while high can produce better quality for certain content.

    - **MaxBitrate** *(integer) --* For QVBR: See the tooltip for Quality level For VBR: Set the
    maximum bitrate in order to accommodate expected spikes in the complexity of the video.

    - **MinIInterval** *(integer) --* Only meaningful if sceneChangeDetect is set to enabled.
    Defaults to 5 if multiplex rate control is used. Enforces separation between repeated (cadence)
    I-frames and I-frames inserted by Scene Change Detection. If a scene change I-frame is within
    I-interval frames of a cadence I-frame, the GOP is shrunk and/or stretched to the scene change
    I-frame. GOP stretch requires enabling lookahead as well as setting I-interval. The normal
    cadence resumes for the next GOP. Note: Maximum GOP stretch = GOP size + Min-I-interval - 1

    - **NumRefFrames** *(integer) --* Number of reference frames to use. The encoder may use more
    than requested if using B-frames and/or interlaced encoding.

    - **ParControl** *(string) --* This field indicates how the output pixel aspect ratio is
    specified. If "specified" is selected then the output video pixel aspect ratio is determined by
    parNumerator and parDenominator, else if "initializeFromSource" is selected then the output
    pixsel aspect ratio will be set equal to the input video pixel aspect ratio of the first input.

    - **ParDenominator** *(integer) --* Pixel Aspect Ratio denominator.

    - **ParNumerator** *(integer) --* Pixel Aspect Ratio numerator.

    - **Profile** *(string) --* H.264 Profile.

    - **QvbrQualityLevel** *(integer) --* Controls the target quality for the video encode. Applies
    only when the rate control mode is QVBR. Set values for the QVBR quality level field and Max
    bitrate field that suit your most important viewing devices. Recommended values are: - Primary
    screen: Quality level: 8 to 10. Max bitrate: 4M - PC or tablet: Quality level: 7. Max bitrate:
    1.5M to 3M - Smartphone: Quality level: 6. Max bitrate: 1M to 1.5M

    - **RateControlMode** *(string) --* Rate control mode. QVBR: Quality will match the specified
    quality level except when it is constrained by the maximum bitrate. Recommended if you or your
    viewers pay for bandwidth. VBR: Quality and bitrate vary, depending on the video complexity.
    Recommended instead of QVBR if you want to maintain a specific average bitrate over the duration
    of the channel. CBR: Quality varies, depending on the video complexity. Recommended only if you
    distribute your assets to devices that cannot handle variable bitrates.

    - **ScanType** *(string) --* Sets the scan type of the output to progressive or top-field-first
    interlaced.

    - **SceneChangeDetect** *(string) --* Scene change detection. - On: inserts I-frames when scene
    change is detected. - Off: does not force an I-frame when scene change is detected.

    - **Slices** *(integer) --* Number of slices per picture. Must be less than or equal to the
    number of macroblock rows for progressive pictures, and less than or equal to half the number of
    macroblock rows for interlaced pictures. This field is optional; when no value is specified the
    encoder will choose the number of slices based on encode resolution.

    - **Softness** *(integer) --* Softness. Selects quantizer matrix, larger values reduce
    high-frequency content in the encoded image.

    - **SpatialAq** *(string) --* If set to enabled, adjust quantization within each frame based on
    spatial variation of content complexity.

    - **SubgopLength** *(string) --* If set to fixed, use gopNumBFrames B-frames per sub-GOP. If set
    to dynamic, optimize the number of B-frames used for each sub-GOP to improve visual quality.

    - **Syntax** *(string) --* Produces a bitstream compliant with SMPTE RP-2027.

    - **TemporalAq** *(string) --* If set to enabled, adjust quantization within each frame based on
    temporal variation of content complexity.

    - **TimecodeInsertion** *(string) --* Determines how timecodes should be inserted into the video
    elementary stream. - 'disabled': Do not include timecodes - 'picTimingSei': Pass through picture
    timing SEI messages from the source specified in Timecode Config
    """


_ClientDeleteChannelResponseEncoderSettingsVideoDescriptionsCodecSettingsH265SettingsColorSpaceSettingsHdr10SettingsTypeDef = TypedDict(
    "_ClientDeleteChannelResponseEncoderSettingsVideoDescriptionsCodecSettingsH265SettingsColorSpaceSettingsHdr10SettingsTypeDef",
    {"MaxCll": int, "MaxFall": int},
    total=False,
)


class ClientDeleteChannelResponseEncoderSettingsVideoDescriptionsCodecSettingsH265SettingsColorSpaceSettingsHdr10SettingsTypeDef(
    _ClientDeleteChannelResponseEncoderSettingsVideoDescriptionsCodecSettingsH265SettingsColorSpaceSettingsHdr10SettingsTypeDef
):
    """
    Type definition for
    `ClientDeleteChannelResponseEncoderSettingsVideoDescriptionsCodecSettingsH265SettingsColorSpaceSettings`
    `Hdr10Settings`

    - **MaxCll** *(integer) --* Maximum Content Light Level An integer metadata value defining the
    maximum light level, in nits, of any single pixel within an encoded HDR video stream or file.

    - **MaxFall** *(integer) --* Maximum Frame Average Light Level An integer metadata value
    defining the maximum average light level, in nits, for any single frame within an encoded HDR
    video stream or file.
    """


_ClientDeleteChannelResponseEncoderSettingsVideoDescriptionsCodecSettingsH265SettingsColorSpaceSettingsTypeDef = TypedDict(
    "_ClientDeleteChannelResponseEncoderSettingsVideoDescriptionsCodecSettingsH265SettingsColorSpaceSettingsTypeDef",
    {
        "ColorSpacePassthroughSettings": Dict,
        "Hdr10Settings": ClientDeleteChannelResponseEncoderSettingsVideoDescriptionsCodecSettingsH265SettingsColorSpaceSettingsHdr10SettingsTypeDef,
        "Rec601Settings": Dict,
        "Rec709Settings": Dict[str, Any],
    },
    total=False,
)


class ClientDeleteChannelResponseEncoderSettingsVideoDescriptionsCodecSettingsH265SettingsColorSpaceSettingsTypeDef(
    _ClientDeleteChannelResponseEncoderSettingsVideoDescriptionsCodecSettingsH265SettingsColorSpaceSettingsTypeDef
):
    """
    Type definition for
    `ClientDeleteChannelResponseEncoderSettingsVideoDescriptionsCodecSettingsH265Settings`
    `ColorSpaceSettings`

    - **ColorSpacePassthroughSettings** *(dict) --* Passthrough applies no color space conversion to
    the output

    - **Hdr10Settings** *(dict) --* Hdr10 Settings

      - **MaxCll** *(integer) --* Maximum Content Light Level An integer metadata value defining the
      maximum light level, in nits, of any single pixel within an encoded HDR video stream or file.

      - **MaxFall** *(integer) --* Maximum Frame Average Light Level An integer metadata value
      defining the maximum average light level, in nits, for any single frame within an encoded HDR
      video stream or file.

    - **Rec601Settings** *(dict) --* Rec601 Settings

    - **Rec709Settings** *(dict) --* Rec709 Settings
    """


_ClientDeleteChannelResponseEncoderSettingsVideoDescriptionsCodecSettingsH265SettingsTypeDef = TypedDict(
    "_ClientDeleteChannelResponseEncoderSettingsVideoDescriptionsCodecSettingsH265SettingsTypeDef",
    {
        "AdaptiveQuantization": str,
        "AfdSignaling": str,
        "AlternativeTransferFunction": str,
        "Bitrate": int,
        "BufSize": int,
        "ColorMetadata": str,
        "ColorSpaceSettings": ClientDeleteChannelResponseEncoderSettingsVideoDescriptionsCodecSettingsH265SettingsColorSpaceSettingsTypeDef,
        "FixedAfd": str,
        "FlickerAq": str,
        "FramerateDenominator": int,
        "FramerateNumerator": int,
        "GopClosedCadence": int,
        "GopSize": float,
        "GopSizeUnits": str,
        "Level": str,
        "LookAheadRateControl": str,
        "MaxBitrate": int,
        "MinIInterval": int,
        "ParDenominator": int,
        "ParNumerator": int,
        "Profile": str,
        "QvbrQualityLevel": int,
        "RateControlMode": str,
        "ScanType": str,
        "SceneChangeDetect": str,
        "Slices": int,
        "Tier": str,
        "TimecodeInsertion": str,
    },
    total=False,
)


class ClientDeleteChannelResponseEncoderSettingsVideoDescriptionsCodecSettingsH265SettingsTypeDef(
    _ClientDeleteChannelResponseEncoderSettingsVideoDescriptionsCodecSettingsH265SettingsTypeDef
):
    """
    Type definition for `ClientDeleteChannelResponseEncoderSettingsVideoDescriptionsCodecSettings`
    `H265Settings`

    - **AdaptiveQuantization** *(string) --* Adaptive quantization. Allows intra-frame quantizers to
    vary to improve visual quality.

    - **AfdSignaling** *(string) --* Indicates that AFD values will be written into the output
    stream. If afdSignaling is "auto", the system will try to preserve the input AFD value (in cases
    where multiple AFD values are valid). If set to "fixed", the AFD value will be the value
    configured in the fixedAfd parameter.

    - **AlternativeTransferFunction** *(string) --* Whether or not EML should insert an Alternative
    Transfer Function SEI message to support backwards compatibility with non-HDR decoders and
    displays.

    - **Bitrate** *(integer) --* Average bitrate in bits/second. Required when the rate control mode
    is VBR or CBR. Not used for QVBR. In an MS Smooth output group, each output must have a unique
    value when its bitrate is rounded down to the nearest multiple of 1000.

    - **BufSize** *(integer) --* Size of buffer (HRD buffer model) in bits.

    - **ColorMetadata** *(string) --* Includes colorspace metadata in the output.

    - **ColorSpaceSettings** *(dict) --* Color Space settings

      - **ColorSpacePassthroughSettings** *(dict) --* Passthrough applies no color space conversion
      to the output

      - **Hdr10Settings** *(dict) --* Hdr10 Settings

        - **MaxCll** *(integer) --* Maximum Content Light Level An integer metadata value defining
        the maximum light level, in nits, of any single pixel within an encoded HDR video stream or
        file.

        - **MaxFall** *(integer) --* Maximum Frame Average Light Level An integer metadata value
        defining the maximum average light level, in nits, for any single frame within an encoded
        HDR video stream or file.

      - **Rec601Settings** *(dict) --* Rec601 Settings

      - **Rec709Settings** *(dict) --* Rec709 Settings

    - **FixedAfd** *(string) --* Four bit AFD value to write on all frames of video in the output
    stream. Only valid when afdSignaling is set to 'Fixed'.

    - **FlickerAq** *(string) --* If set to enabled, adjust quantization within each frame to reduce
    flicker or 'pop' on I-frames.

    - **FramerateDenominator** *(integer) --* Framerate denominator.

    - **FramerateNumerator** *(integer) --* Framerate numerator - framerate is a fraction, e.g.
    24000 / 1001 = 23.976 fps.

    - **GopClosedCadence** *(integer) --* Frequency of closed GOPs. In streaming applications, it is
    recommended that this be set to 1 so a decoder joining mid-stream will receive an IDR frame as
    quickly as possible. Setting this value to 0 will break output segmenting.

    - **GopSize** *(float) --* GOP size (keyframe interval) in units of either frames or seconds per
    gopSizeUnits. If gopSizeUnits is frames, gopSize must be an integer and must be greater than or
    equal to 1. If gopSizeUnits is seconds, gopSize must be greater than 0, but need not be an
    integer.

    - **GopSizeUnits** *(string) --* Indicates if the gopSize is specified in frames or seconds. If
    seconds the system will convert the gopSize into a frame count at run time.

    - **Level** *(string) --* H.265 Level.

    - **LookAheadRateControl** *(string) --* Amount of lookahead. A value of low can decrease
    latency and memory usage, while high can produce better quality for certain content.

    - **MaxBitrate** *(integer) --* For QVBR: See the tooltip for Quality level

    - **MinIInterval** *(integer) --* Only meaningful if sceneChangeDetect is set to enabled.
    Defaults to 5 if multiplex rate control is used. Enforces separation between repeated (cadence)
    I-frames and I-frames inserted by Scene Change Detection. If a scene change I-frame is within
    I-interval frames of a cadence I-frame, the GOP is shrunk and/or stretched to the scene change
    I-frame. GOP stretch requires enabling lookahead as well as setting I-interval. The normal
    cadence resumes for the next GOP. Note: Maximum GOP stretch = GOP size + Min-I-interval - 1

    - **ParDenominator** *(integer) --* Pixel Aspect Ratio denominator.

    - **ParNumerator** *(integer) --* Pixel Aspect Ratio numerator.

    - **Profile** *(string) --* H.265 Profile.

    - **QvbrQualityLevel** *(integer) --* Controls the target quality for the video encode. Applies
    only when the rate control mode is QVBR. Set values for the QVBR quality level field and Max
    bitrate field that suit your most important viewing devices. Recommended values are: - Primary
    screen: Quality level: 8 to 10. Max bitrate: 4M - PC or tablet: Quality level: 7. Max bitrate:
    1.5M to 3M - Smartphone: Quality level: 6. Max bitrate: 1M to 1.5M

    - **RateControlMode** *(string) --* Rate control mode. QVBR: Quality will match the specified
    quality level except when it is constrained by the maximum bitrate. Recommended if you or your
    viewers pay for bandwidth. CBR: Quality varies, depending on the video complexity. Recommended
    only if you distribute your assets to devices that cannot handle variable bitrates.

    - **ScanType** *(string) --* Sets the scan type of the output to progressive or top-field-first
    interlaced.

    - **SceneChangeDetect** *(string) --* Scene change detection.

    - **Slices** *(integer) --* Number of slices per picture. Must be less than or equal to the
    number of macroblock rows for progressive pictures, and less than or equal to half the number of
    macroblock rows for interlaced pictures. This field is optional; when no value is specified the
    encoder will choose the number of slices based on encode resolution.

    - **Tier** *(string) --* H.265 Tier.

    - **TimecodeInsertion** *(string) --* Determines how timecodes should be inserted into the video
    elementary stream. - 'disabled': Do not include timecodes - 'picTimingSei': Pass through picture
    timing SEI messages from the source specified in Timecode Config
    """


_ClientDeleteChannelResponseEncoderSettingsVideoDescriptionsCodecSettingsTypeDef = TypedDict(
    "_ClientDeleteChannelResponseEncoderSettingsVideoDescriptionsCodecSettingsTypeDef",
    {
        "FrameCaptureSettings": ClientDeleteChannelResponseEncoderSettingsVideoDescriptionsCodecSettingsFrameCaptureSettingsTypeDef,
        "H264Settings": ClientDeleteChannelResponseEncoderSettingsVideoDescriptionsCodecSettingsH264SettingsTypeDef,
        "H265Settings": ClientDeleteChannelResponseEncoderSettingsVideoDescriptionsCodecSettingsH265SettingsTypeDef,
    },
    total=False,
)


class ClientDeleteChannelResponseEncoderSettingsVideoDescriptionsCodecSettingsTypeDef(
    _ClientDeleteChannelResponseEncoderSettingsVideoDescriptionsCodecSettingsTypeDef
):
    """
    Type definition for `ClientDeleteChannelResponseEncoderSettingsVideoDescriptions`
    `CodecSettings`

    - **FrameCaptureSettings** *(dict) --* Frame Capture Settings

      - **CaptureInterval** *(integer) --* The frequency at which to capture frames for inclusion in
      the output. May be specified in either seconds or milliseconds, as specified by
      captureIntervalUnits.

    - **H264Settings** *(dict) --* H264 Settings

      - **AdaptiveQuantization** *(string) --* Adaptive quantization. Allows intra-frame quantizers
      to vary to improve visual quality.

      - **AfdSignaling** *(string) --* Indicates that AFD values will be written into the output
      stream. If afdSignaling is "auto", the system will try to preserve the input AFD value (in
      cases where multiple AFD values are valid). If set to "fixed", the AFD value will be the value
      configured in the fixedAfd parameter.

      - **Bitrate** *(integer) --* Average bitrate in bits/second. Required when the rate control
      mode is VBR or CBR. Not used for QVBR. In an MS Smooth output group, each output must have a
      unique value when its bitrate is rounded down to the nearest multiple of 1000.

      - **BufFillPct** *(integer) --* Percentage of the buffer that should initially be filled (HRD
      buffer model).

      - **BufSize** *(integer) --* Size of buffer (HRD buffer model) in bits.

      - **ColorMetadata** *(string) --* Includes colorspace metadata in the output.

      - **ColorSpaceSettings** *(dict) --* Color Space settings

        - **ColorSpacePassthroughSettings** *(dict) --* Passthrough applies no color space
        conversion to the output

        - **Rec601Settings** *(dict) --* Rec601 Settings

        - **Rec709Settings** *(dict) --* Rec709 Settings

      - **EntropyEncoding** *(string) --* Entropy encoding mode. Use cabac (must be in Main or High
      profile) or cavlc.

      - **FixedAfd** *(string) --* Four bit AFD value to write on all frames of video in the output
      stream. Only valid when afdSignaling is set to 'Fixed'.

      - **FlickerAq** *(string) --* If set to enabled, adjust quantization within each frame to
      reduce flicker or 'pop' on I-frames.

      - **FramerateControl** *(string) --* This field indicates how the output video frame rate is
      specified. If "specified" is selected then the output video frame rate is determined by
      framerateNumerator and framerateDenominator, else if "initializeFromSource" is selected then
      the output video frame rate will be set equal to the input video frame rate of the first
      input.

      - **FramerateDenominator** *(integer) --* Framerate denominator.

      - **FramerateNumerator** *(integer) --* Framerate numerator - framerate is a fraction, e.g.
      24000 / 1001 = 23.976 fps.

      - **GopBReference** *(string) --* Documentation update needed

      - **GopClosedCadence** *(integer) --* Frequency of closed GOPs. In streaming applications, it
      is recommended that this be set to 1 so a decoder joining mid-stream will receive an IDR frame
      as quickly as possible. Setting this value to 0 will break output segmenting.

      - **GopNumBFrames** *(integer) --* Number of B-frames between reference frames.

      - **GopSize** *(float) --* GOP size (keyframe interval) in units of either frames or seconds
      per gopSizeUnits. If gopSizeUnits is frames, gopSize must be an integer and must be greater
      than or equal to 1. If gopSizeUnits is seconds, gopSize must be greater than 0, but need not
      be an integer.

      - **GopSizeUnits** *(string) --* Indicates if the gopSize is specified in frames or seconds.
      If seconds the system will convert the gopSize into a frame count at run time.

      - **Level** *(string) --* H.264 Level.

      - **LookAheadRateControl** *(string) --* Amount of lookahead. A value of low can decrease
      latency and memory usage, while high can produce better quality for certain content.

      - **MaxBitrate** *(integer) --* For QVBR: See the tooltip for Quality level For VBR: Set the
      maximum bitrate in order to accommodate expected spikes in the complexity of the video.

      - **MinIInterval** *(integer) --* Only meaningful if sceneChangeDetect is set to enabled.
      Defaults to 5 if multiplex rate control is used. Enforces separation between repeated
      (cadence) I-frames and I-frames inserted by Scene Change Detection. If a scene change I-frame
      is within I-interval frames of a cadence I-frame, the GOP is shrunk and/or stretched to the
      scene change I-frame. GOP stretch requires enabling lookahead as well as setting I-interval.
      The normal cadence resumes for the next GOP. Note: Maximum GOP stretch = GOP size +
      Min-I-interval - 1

      - **NumRefFrames** *(integer) --* Number of reference frames to use. The encoder may use more
      than requested if using B-frames and/or interlaced encoding.

      - **ParControl** *(string) --* This field indicates how the output pixel aspect ratio is
      specified. If "specified" is selected then the output video pixel aspect ratio is determined
      by parNumerator and parDenominator, else if "initializeFromSource" is selected then the output
      pixsel aspect ratio will be set equal to the input video pixel aspect ratio of the first
      input.

      - **ParDenominator** *(integer) --* Pixel Aspect Ratio denominator.

      - **ParNumerator** *(integer) --* Pixel Aspect Ratio numerator.

      - **Profile** *(string) --* H.264 Profile.

      - **QvbrQualityLevel** *(integer) --* Controls the target quality for the video encode.
      Applies only when the rate control mode is QVBR. Set values for the QVBR quality level field
      and Max bitrate field that suit your most important viewing devices. Recommended values are: -
      Primary screen: Quality level: 8 to 10. Max bitrate: 4M - PC or tablet: Quality level: 7. Max
      bitrate: 1.5M to 3M - Smartphone: Quality level: 6. Max bitrate: 1M to 1.5M

      - **RateControlMode** *(string) --* Rate control mode. QVBR: Quality will match the specified
      quality level except when it is constrained by the maximum bitrate. Recommended if you or your
      viewers pay for bandwidth. VBR: Quality and bitrate vary, depending on the video complexity.
      Recommended instead of QVBR if you want to maintain a specific average bitrate over the
      duration of the channel. CBR: Quality varies, depending on the video complexity. Recommended
      only if you distribute your assets to devices that cannot handle variable bitrates.

      - **ScanType** *(string) --* Sets the scan type of the output to progressive or
      top-field-first interlaced.

      - **SceneChangeDetect** *(string) --* Scene change detection. - On: inserts I-frames when
      scene change is detected. - Off: does not force an I-frame when scene change is detected.

      - **Slices** *(integer) --* Number of slices per picture. Must be less than or equal to the
      number of macroblock rows for progressive pictures, and less than or equal to half the number
      of macroblock rows for interlaced pictures. This field is optional; when no value is specified
      the encoder will choose the number of slices based on encode resolution.

      - **Softness** *(integer) --* Softness. Selects quantizer matrix, larger values reduce
      high-frequency content in the encoded image.

      - **SpatialAq** *(string) --* If set to enabled, adjust quantization within each frame based
      on spatial variation of content complexity.

      - **SubgopLength** *(string) --* If set to fixed, use gopNumBFrames B-frames per sub-GOP. If
      set to dynamic, optimize the number of B-frames used for each sub-GOP to improve visual
      quality.

      - **Syntax** *(string) --* Produces a bitstream compliant with SMPTE RP-2027.

      - **TemporalAq** *(string) --* If set to enabled, adjust quantization within each frame based
      on temporal variation of content complexity.

      - **TimecodeInsertion** *(string) --* Determines how timecodes should be inserted into the
      video elementary stream. - 'disabled': Do not include timecodes - 'picTimingSei': Pass through
      picture timing SEI messages from the source specified in Timecode Config

    - **H265Settings** *(dict) --* H265 Settings

      - **AdaptiveQuantization** *(string) --* Adaptive quantization. Allows intra-frame quantizers
      to vary to improve visual quality.

      - **AfdSignaling** *(string) --* Indicates that AFD values will be written into the output
      stream. If afdSignaling is "auto", the system will try to preserve the input AFD value (in
      cases where multiple AFD values are valid). If set to "fixed", the AFD value will be the value
      configured in the fixedAfd parameter.

      - **AlternativeTransferFunction** *(string) --* Whether or not EML should insert an
      Alternative Transfer Function SEI message to support backwards compatibility with non-HDR
      decoders and displays.

      - **Bitrate** *(integer) --* Average bitrate in bits/second. Required when the rate control
      mode is VBR or CBR. Not used for QVBR. In an MS Smooth output group, each output must have a
      unique value when its bitrate is rounded down to the nearest multiple of 1000.

      - **BufSize** *(integer) --* Size of buffer (HRD buffer model) in bits.

      - **ColorMetadata** *(string) --* Includes colorspace metadata in the output.

      - **ColorSpaceSettings** *(dict) --* Color Space settings

        - **ColorSpacePassthroughSettings** *(dict) --* Passthrough applies no color space
        conversion to the output

        - **Hdr10Settings** *(dict) --* Hdr10 Settings

          - **MaxCll** *(integer) --* Maximum Content Light Level An integer metadata value defining
          the maximum light level, in nits, of any single pixel within an encoded HDR video stream
          or file.

          - **MaxFall** *(integer) --* Maximum Frame Average Light Level An integer metadata value
          defining the maximum average light level, in nits, for any single frame within an encoded
          HDR video stream or file.

        - **Rec601Settings** *(dict) --* Rec601 Settings

        - **Rec709Settings** *(dict) --* Rec709 Settings

      - **FixedAfd** *(string) --* Four bit AFD value to write on all frames of video in the output
      stream. Only valid when afdSignaling is set to 'Fixed'.

      - **FlickerAq** *(string) --* If set to enabled, adjust quantization within each frame to
      reduce flicker or 'pop' on I-frames.

      - **FramerateDenominator** *(integer) --* Framerate denominator.

      - **FramerateNumerator** *(integer) --* Framerate numerator - framerate is a fraction, e.g.
      24000 / 1001 = 23.976 fps.

      - **GopClosedCadence** *(integer) --* Frequency of closed GOPs. In streaming applications, it
      is recommended that this be set to 1 so a decoder joining mid-stream will receive an IDR frame
      as quickly as possible. Setting this value to 0 will break output segmenting.

      - **GopSize** *(float) --* GOP size (keyframe interval) in units of either frames or seconds
      per gopSizeUnits. If gopSizeUnits is frames, gopSize must be an integer and must be greater
      than or equal to 1. If gopSizeUnits is seconds, gopSize must be greater than 0, but need not
      be an integer.

      - **GopSizeUnits** *(string) --* Indicates if the gopSize is specified in frames or seconds.
      If seconds the system will convert the gopSize into a frame count at run time.

      - **Level** *(string) --* H.265 Level.

      - **LookAheadRateControl** *(string) --* Amount of lookahead. A value of low can decrease
      latency and memory usage, while high can produce better quality for certain content.

      - **MaxBitrate** *(integer) --* For QVBR: See the tooltip for Quality level

      - **MinIInterval** *(integer) --* Only meaningful if sceneChangeDetect is set to enabled.
      Defaults to 5 if multiplex rate control is used. Enforces separation between repeated
      (cadence) I-frames and I-frames inserted by Scene Change Detection. If a scene change I-frame
      is within I-interval frames of a cadence I-frame, the GOP is shrunk and/or stretched to the
      scene change I-frame. GOP stretch requires enabling lookahead as well as setting I-interval.
      The normal cadence resumes for the next GOP. Note: Maximum GOP stretch = GOP size +
      Min-I-interval - 1

      - **ParDenominator** *(integer) --* Pixel Aspect Ratio denominator.

      - **ParNumerator** *(integer) --* Pixel Aspect Ratio numerator.

      - **Profile** *(string) --* H.265 Profile.

      - **QvbrQualityLevel** *(integer) --* Controls the target quality for the video encode.
      Applies only when the rate control mode is QVBR. Set values for the QVBR quality level field
      and Max bitrate field that suit your most important viewing devices. Recommended values are: -
      Primary screen: Quality level: 8 to 10. Max bitrate: 4M - PC or tablet: Quality level: 7. Max
      bitrate: 1.5M to 3M - Smartphone: Quality level: 6. Max bitrate: 1M to 1.5M

      - **RateControlMode** *(string) --* Rate control mode. QVBR: Quality will match the specified
      quality level except when it is constrained by the maximum bitrate. Recommended if you or your
      viewers pay for bandwidth. CBR: Quality varies, depending on the video complexity. Recommended
      only if you distribute your assets to devices that cannot handle variable bitrates.

      - **ScanType** *(string) --* Sets the scan type of the output to progressive or
      top-field-first interlaced.

      - **SceneChangeDetect** *(string) --* Scene change detection.

      - **Slices** *(integer) --* Number of slices per picture. Must be less than or equal to the
      number of macroblock rows for progressive pictures, and less than or equal to half the number
      of macroblock rows for interlaced pictures. This field is optional; when no value is specified
      the encoder will choose the number of slices based on encode resolution.

      - **Tier** *(string) --* H.265 Tier.

      - **TimecodeInsertion** *(string) --* Determines how timecodes should be inserted into the
      video elementary stream. - 'disabled': Do not include timecodes - 'picTimingSei': Pass through
      picture timing SEI messages from the source specified in Timecode Config
    """


_ClientDeleteChannelResponseEncoderSettingsVideoDescriptionsTypeDef = TypedDict(
    "_ClientDeleteChannelResponseEncoderSettingsVideoDescriptionsTypeDef",
    {
        "CodecSettings": ClientDeleteChannelResponseEncoderSettingsVideoDescriptionsCodecSettingsTypeDef,
        "Height": int,
        "Name": str,
        "RespondToAfd": str,
        "ScalingBehavior": str,
        "Sharpness": int,
        "Width": int,
    },
    total=False,
)


class ClientDeleteChannelResponseEncoderSettingsVideoDescriptionsTypeDef(
    _ClientDeleteChannelResponseEncoderSettingsVideoDescriptionsTypeDef
):
    """
    Type definition for `ClientDeleteChannelResponseEncoderSettings` `VideoDescriptions`

    - **CodecSettings** *(dict) --* Video codec settings.

      - **FrameCaptureSettings** *(dict) --* Frame Capture Settings

        - **CaptureInterval** *(integer) --* The frequency at which to capture frames for inclusion
        in the output. May be specified in either seconds or milliseconds, as specified by
        captureIntervalUnits.

      - **H264Settings** *(dict) --* H264 Settings

        - **AdaptiveQuantization** *(string) --* Adaptive quantization. Allows intra-frame
        quantizers to vary to improve visual quality.

        - **AfdSignaling** *(string) --* Indicates that AFD values will be written into the output
        stream. If afdSignaling is "auto", the system will try to preserve the input AFD value (in
        cases where multiple AFD values are valid). If set to "fixed", the AFD value will be the
        value configured in the fixedAfd parameter.

        - **Bitrate** *(integer) --* Average bitrate in bits/second. Required when the rate control
        mode is VBR or CBR. Not used for QVBR. In an MS Smooth output group, each output must have a
        unique value when its bitrate is rounded down to the nearest multiple of 1000.

        - **BufFillPct** *(integer) --* Percentage of the buffer that should initially be filled
        (HRD buffer model).

        - **BufSize** *(integer) --* Size of buffer (HRD buffer model) in bits.

        - **ColorMetadata** *(string) --* Includes colorspace metadata in the output.

        - **ColorSpaceSettings** *(dict) --* Color Space settings

          - **ColorSpacePassthroughSettings** *(dict) --* Passthrough applies no color space
          conversion to the output

          - **Rec601Settings** *(dict) --* Rec601 Settings

          - **Rec709Settings** *(dict) --* Rec709 Settings

        - **EntropyEncoding** *(string) --* Entropy encoding mode. Use cabac (must be in Main or
        High profile) or cavlc.

        - **FixedAfd** *(string) --* Four bit AFD value to write on all frames of video in the
        output stream. Only valid when afdSignaling is set to 'Fixed'.

        - **FlickerAq** *(string) --* If set to enabled, adjust quantization within each frame to
        reduce flicker or 'pop' on I-frames.

        - **FramerateControl** *(string) --* This field indicates how the output video frame rate is
        specified. If "specified" is selected then the output video frame rate is determined by
        framerateNumerator and framerateDenominator, else if "initializeFromSource" is selected then
        the output video frame rate will be set equal to the input video frame rate of the first
        input.

        - **FramerateDenominator** *(integer) --* Framerate denominator.

        - **FramerateNumerator** *(integer) --* Framerate numerator - framerate is a fraction, e.g.
        24000 / 1001 = 23.976 fps.

        - **GopBReference** *(string) --* Documentation update needed

        - **GopClosedCadence** *(integer) --* Frequency of closed GOPs. In streaming applications,
        it is recommended that this be set to 1 so a decoder joining mid-stream will receive an IDR
        frame as quickly as possible. Setting this value to 0 will break output segmenting.

        - **GopNumBFrames** *(integer) --* Number of B-frames between reference frames.

        - **GopSize** *(float) --* GOP size (keyframe interval) in units of either frames or seconds
        per gopSizeUnits. If gopSizeUnits is frames, gopSize must be an integer and must be greater
        than or equal to 1. If gopSizeUnits is seconds, gopSize must be greater than 0, but need not
        be an integer.

        - **GopSizeUnits** *(string) --* Indicates if the gopSize is specified in frames or seconds.
        If seconds the system will convert the gopSize into a frame count at run time.

        - **Level** *(string) --* H.264 Level.

        - **LookAheadRateControl** *(string) --* Amount of lookahead. A value of low can decrease
        latency and memory usage, while high can produce better quality for certain content.

        - **MaxBitrate** *(integer) --* For QVBR: See the tooltip for Quality level For VBR: Set the
        maximum bitrate in order to accommodate expected spikes in the complexity of the video.

        - **MinIInterval** *(integer) --* Only meaningful if sceneChangeDetect is set to enabled.
        Defaults to 5 if multiplex rate control is used. Enforces separation between repeated
        (cadence) I-frames and I-frames inserted by Scene Change Detection. If a scene change
        I-frame is within I-interval frames of a cadence I-frame, the GOP is shrunk and/or stretched
        to the scene change I-frame. GOP stretch requires enabling lookahead as well as setting
        I-interval. The normal cadence resumes for the next GOP. Note: Maximum GOP stretch = GOP
        size + Min-I-interval - 1

        - **NumRefFrames** *(integer) --* Number of reference frames to use. The encoder may use
        more than requested if using B-frames and/or interlaced encoding.

        - **ParControl** *(string) --* This field indicates how the output pixel aspect ratio is
        specified. If "specified" is selected then the output video pixel aspect ratio is determined
        by parNumerator and parDenominator, else if "initializeFromSource" is selected then the
        output pixsel aspect ratio will be set equal to the input video pixel aspect ratio of the
        first input.

        - **ParDenominator** *(integer) --* Pixel Aspect Ratio denominator.

        - **ParNumerator** *(integer) --* Pixel Aspect Ratio numerator.

        - **Profile** *(string) --* H.264 Profile.

        - **QvbrQualityLevel** *(integer) --* Controls the target quality for the video encode.
        Applies only when the rate control mode is QVBR. Set values for the QVBR quality level field
        and Max bitrate field that suit your most important viewing devices. Recommended values are:
        - Primary screen: Quality level: 8 to 10. Max bitrate: 4M - PC or tablet: Quality level: 7.
        Max bitrate: 1.5M to 3M - Smartphone: Quality level: 6. Max bitrate: 1M to 1.5M

        - **RateControlMode** *(string) --* Rate control mode. QVBR: Quality will match the
        specified quality level except when it is constrained by the maximum bitrate. Recommended if
        you or your viewers pay for bandwidth. VBR: Quality and bitrate vary, depending on the video
        complexity. Recommended instead of QVBR if you want to maintain a specific average bitrate
        over the duration of the channel. CBR: Quality varies, depending on the video complexity.
        Recommended only if you distribute your assets to devices that cannot handle variable
        bitrates.

        - **ScanType** *(string) --* Sets the scan type of the output to progressive or
        top-field-first interlaced.

        - **SceneChangeDetect** *(string) --* Scene change detection. - On: inserts I-frames when
        scene change is detected. - Off: does not force an I-frame when scene change is detected.

        - **Slices** *(integer) --* Number of slices per picture. Must be less than or equal to the
        number of macroblock rows for progressive pictures, and less than or equal to half the
        number of macroblock rows for interlaced pictures. This field is optional; when no value is
        specified the encoder will choose the number of slices based on encode resolution.

        - **Softness** *(integer) --* Softness. Selects quantizer matrix, larger values reduce
        high-frequency content in the encoded image.

        - **SpatialAq** *(string) --* If set to enabled, adjust quantization within each frame based
        on spatial variation of content complexity.

        - **SubgopLength** *(string) --* If set to fixed, use gopNumBFrames B-frames per sub-GOP. If
        set to dynamic, optimize the number of B-frames used for each sub-GOP to improve visual
        quality.

        - **Syntax** *(string) --* Produces a bitstream compliant with SMPTE RP-2027.

        - **TemporalAq** *(string) --* If set to enabled, adjust quantization within each frame
        based on temporal variation of content complexity.

        - **TimecodeInsertion** *(string) --* Determines how timecodes should be inserted into the
        video elementary stream. - 'disabled': Do not include timecodes - 'picTimingSei': Pass
        through picture timing SEI messages from the source specified in Timecode Config

      - **H265Settings** *(dict) --* H265 Settings

        - **AdaptiveQuantization** *(string) --* Adaptive quantization. Allows intra-frame
        quantizers to vary to improve visual quality.

        - **AfdSignaling** *(string) --* Indicates that AFD values will be written into the output
        stream. If afdSignaling is "auto", the system will try to preserve the input AFD value (in
        cases where multiple AFD values are valid). If set to "fixed", the AFD value will be the
        value configured in the fixedAfd parameter.

        - **AlternativeTransferFunction** *(string) --* Whether or not EML should insert an
        Alternative Transfer Function SEI message to support backwards compatibility with non-HDR
        decoders and displays.

        - **Bitrate** *(integer) --* Average bitrate in bits/second. Required when the rate control
        mode is VBR or CBR. Not used for QVBR. In an MS Smooth output group, each output must have a
        unique value when its bitrate is rounded down to the nearest multiple of 1000.

        - **BufSize** *(integer) --* Size of buffer (HRD buffer model) in bits.

        - **ColorMetadata** *(string) --* Includes colorspace metadata in the output.

        - **ColorSpaceSettings** *(dict) --* Color Space settings

          - **ColorSpacePassthroughSettings** *(dict) --* Passthrough applies no color space
          conversion to the output

          - **Hdr10Settings** *(dict) --* Hdr10 Settings

            - **MaxCll** *(integer) --* Maximum Content Light Level An integer metadata value
            defining the maximum light level, in nits, of any single pixel within an encoded HDR
            video stream or file.

            - **MaxFall** *(integer) --* Maximum Frame Average Light Level An integer metadata value
            defining the maximum average light level, in nits, for any single frame within an
            encoded HDR video stream or file.

          - **Rec601Settings** *(dict) --* Rec601 Settings

          - **Rec709Settings** *(dict) --* Rec709 Settings

        - **FixedAfd** *(string) --* Four bit AFD value to write on all frames of video in the
        output stream. Only valid when afdSignaling is set to 'Fixed'.

        - **FlickerAq** *(string) --* If set to enabled, adjust quantization within each frame to
        reduce flicker or 'pop' on I-frames.

        - **FramerateDenominator** *(integer) --* Framerate denominator.

        - **FramerateNumerator** *(integer) --* Framerate numerator - framerate is a fraction, e.g.
        24000 / 1001 = 23.976 fps.

        - **GopClosedCadence** *(integer) --* Frequency of closed GOPs. In streaming applications,
        it is recommended that this be set to 1 so a decoder joining mid-stream will receive an IDR
        frame as quickly as possible. Setting this value to 0 will break output segmenting.

        - **GopSize** *(float) --* GOP size (keyframe interval) in units of either frames or seconds
        per gopSizeUnits. If gopSizeUnits is frames, gopSize must be an integer and must be greater
        than or equal to 1. If gopSizeUnits is seconds, gopSize must be greater than 0, but need not
        be an integer.

        - **GopSizeUnits** *(string) --* Indicates if the gopSize is specified in frames or seconds.
        If seconds the system will convert the gopSize into a frame count at run time.

        - **Level** *(string) --* H.265 Level.

        - **LookAheadRateControl** *(string) --* Amount of lookahead. A value of low can decrease
        latency and memory usage, while high can produce better quality for certain content.

        - **MaxBitrate** *(integer) --* For QVBR: See the tooltip for Quality level

        - **MinIInterval** *(integer) --* Only meaningful if sceneChangeDetect is set to enabled.
        Defaults to 5 if multiplex rate control is used. Enforces separation between repeated
        (cadence) I-frames and I-frames inserted by Scene Change Detection. If a scene change
        I-frame is within I-interval frames of a cadence I-frame, the GOP is shrunk and/or stretched
        to the scene change I-frame. GOP stretch requires enabling lookahead as well as setting
        I-interval. The normal cadence resumes for the next GOP. Note: Maximum GOP stretch = GOP
        size + Min-I-interval - 1

        - **ParDenominator** *(integer) --* Pixel Aspect Ratio denominator.

        - **ParNumerator** *(integer) --* Pixel Aspect Ratio numerator.

        - **Profile** *(string) --* H.265 Profile.

        - **QvbrQualityLevel** *(integer) --* Controls the target quality for the video encode.
        Applies only when the rate control mode is QVBR. Set values for the QVBR quality level field
        and Max bitrate field that suit your most important viewing devices. Recommended values are:
        - Primary screen: Quality level: 8 to 10. Max bitrate: 4M - PC or tablet: Quality level: 7.
        Max bitrate: 1.5M to 3M - Smartphone: Quality level: 6. Max bitrate: 1M to 1.5M

        - **RateControlMode** *(string) --* Rate control mode. QVBR: Quality will match the
        specified quality level except when it is constrained by the maximum bitrate. Recommended if
        you or your viewers pay for bandwidth. CBR: Quality varies, depending on the video
        complexity. Recommended only if you distribute your assets to devices that cannot handle
        variable bitrates.

        - **ScanType** *(string) --* Sets the scan type of the output to progressive or
        top-field-first interlaced.

        - **SceneChangeDetect** *(string) --* Scene change detection.

        - **Slices** *(integer) --* Number of slices per picture. Must be less than or equal to the
        number of macroblock rows for progressive pictures, and less than or equal to half the
        number of macroblock rows for interlaced pictures. This field is optional; when no value is
        specified the encoder will choose the number of slices based on encode resolution.

        - **Tier** *(string) --* H.265 Tier.

        - **TimecodeInsertion** *(string) --* Determines how timecodes should be inserted into the
        video elementary stream. - 'disabled': Do not include timecodes - 'picTimingSei': Pass
        through picture timing SEI messages from the source specified in Timecode Config

    - **Height** *(integer) --* Output video height, in pixels. Must be an even number. For most
    codecs, you can leave this field and width blank in order to use the height and width
    (resolution) from the source. Note, however, that leaving blank is not recommended. For the
    Frame Capture codec, height and width are required.

    - **Name** *(string) --* The name of this VideoDescription. Outputs will use this name to
    uniquely identify this Description. Description names should be unique within this Live Event.

    - **RespondToAfd** *(string) --* Indicates how to respond to the AFD values in the input stream.
    RESPOND causes input video to be clipped, depending on the AFD value, input display aspect
    ratio, and output display aspect ratio, and (except for FRAMECAPTURE codec) includes the values
    in the output. PASSTHROUGH (does not apply to FRAMECAPTURE codec) ignores the AFD values and
    includes the values in the output, so input video is not clipped. NONE ignores the AFD values
    and does not include the values through to the output, so input video is not clipped.

    - **ScalingBehavior** *(string) --* STRETCHTOOUTPUT configures the output position to stretch
    the video to the specified output resolution (height and width). This option will override any
    position value. DEFAULT may insert black boxes (pillar boxes or letter boxes) around the video
    to provide the specified output resolution.

    - **Sharpness** *(integer) --* Changes the strength of the anti-alias filter used for scaling. 0
    is the softest setting, 100 is the sharpest. A setting of 50 is recommended for most content.

    - **Width** *(integer) --* Output video width, in pixels. Must be an even number. For most
    codecs, you can leave this field and height blank in order to use the height and width
    (resolution) from the source. Note, however, that leaving blank is not recommended. For the
    Frame Capture codec, height and width are required.
    """


_ClientDeleteChannelResponseEncoderSettingsTypeDef = TypedDict(
    "_ClientDeleteChannelResponseEncoderSettingsTypeDef",
    {
        "AudioDescriptions": List[
            ClientDeleteChannelResponseEncoderSettingsAudioDescriptionsTypeDef
        ],
        "AvailBlanking": ClientDeleteChannelResponseEncoderSettingsAvailBlankingTypeDef,
        "AvailConfiguration": ClientDeleteChannelResponseEncoderSettingsAvailConfigurationTypeDef,
        "BlackoutSlate": ClientDeleteChannelResponseEncoderSettingsBlackoutSlateTypeDef,
        "CaptionDescriptions": List[
            ClientDeleteChannelResponseEncoderSettingsCaptionDescriptionsTypeDef
        ],
        "GlobalConfiguration": ClientDeleteChannelResponseEncoderSettingsGlobalConfigurationTypeDef,
        "NielsenConfiguration": ClientDeleteChannelResponseEncoderSettingsNielsenConfigurationTypeDef,
        "OutputGroups": List[ClientDeleteChannelResponseEncoderSettingsOutputGroupsTypeDef],
        "TimecodeConfig": ClientDeleteChannelResponseEncoderSettingsTimecodeConfigTypeDef,
        "VideoDescriptions": List[
            ClientDeleteChannelResponseEncoderSettingsVideoDescriptionsTypeDef
        ],
    },
    total=False,
)


class ClientDeleteChannelResponseEncoderSettingsTypeDef(
    _ClientDeleteChannelResponseEncoderSettingsTypeDef
):
    """
    Type definition for `ClientDeleteChannelResponse` `EncoderSettings`

    - **AudioDescriptions** *(list) --* Placeholder documentation for __listOfAudioDescription

      - *(dict) --* Audio Description

        - **AudioNormalizationSettings** *(dict) --* Advanced audio normalization settings.

          - **Algorithm** *(string) --* Audio normalization algorithm to use. itu17701 conforms to
          the CALM Act specification, itu17702 conforms to the EBU R-128 specification.

          - **AlgorithmControl** *(string) --* When set to correctAudio the output audio is
          corrected using the chosen algorithm. If set to measureOnly, the audio will be measured
          but not adjusted.

          - **TargetLkfs** *(float) --* Target LKFS(loudness) to adjust volume to. If no value is
          entered, a default value will be used according to the chosen algorithm. The CALM Act
          (1770-1) recommends a target of -24 LKFS. The EBU R-128 specification (1770-2) recommends
          a target of -23 LKFS.

        - **AudioSelectorName** *(string) --* The name of the AudioSelector used as the source for
        this AudioDescription.

        - **AudioType** *(string) --* Applies only if audioTypeControl is useConfigured. The values
        for audioType are defined in ISO-IEC 13818-1.

        - **AudioTypeControl** *(string) --* Determines how audio type is determined. followInput:
        If the input contains an ISO 639 audioType, then that value is passed through to the output.
        If the input contains no ISO 639 audioType, the value in Audio Type is included in the
        output. useConfigured: The value in Audio Type is included in the output. Note that this
        field and audioType are both ignored if inputType is broadcasterMixedAd.

        - **CodecSettings** *(dict) --* Audio codec settings.

          - **AacSettings** *(dict) --* Aac Settings

            - **Bitrate** *(float) --* Average bitrate in bits/second. Valid values depend on rate
            control mode and profile.

            - **CodingMode** *(string) --* Mono, Stereo, or 5.1 channel layout. Valid values depend
            on rate control mode and profile. The adReceiverMix setting receives a stereo
            description plus control track and emits a mono AAC encode of the description track,
            with control data emitted in the PES header as per ETSI TS 101 154 Annex E.

            - **InputType** *(string) --* Set to "broadcasterMixedAd" when input contains pre-mixed
            main audio + AD (narration) as a stereo pair. The Audio Type field (audioType) will be
            set to 3, which signals to downstream systems that this stream contains "broadcaster
            mixed AD". Note that the input received by the encoder must contain pre-mixed audio; the
            encoder does not perform the mixing. The values in audioTypeControl and audioType (in
            AudioDescription) are ignored when set to broadcasterMixedAd. Leave set to "normal" when
            input does not contain pre-mixed audio + AD.

            - **Profile** *(string) --* AAC Profile.

            - **RateControlMode** *(string) --* Rate Control Mode.

            - **RawFormat** *(string) --* Sets LATM / LOAS AAC output for raw containers.

            - **SampleRate** *(float) --* Sample rate in Hz. Valid values depend on rate control
            mode and profile.

            - **Spec** *(string) --* Use MPEG-2 AAC audio instead of MPEG-4 AAC audio for raw or
            MPEG-2 Transport Stream containers.

            - **VbrQuality** *(string) --* VBR Quality Level - Only used if rateControlMode is VBR.

          - **Ac3Settings** *(dict) --* Ac3 Settings

            - **Bitrate** *(float) --* Average bitrate in bits/second. Valid bitrates depend on the
            coding mode.

            - **BitstreamMode** *(string) --* Specifies the bitstream mode (bsmod) for the emitted
            AC-3 stream. See ATSC A/52-2012 for background on these values.

            - **CodingMode** *(string) --* Dolby Digital coding mode. Determines number of channels.

            - **Dialnorm** *(integer) --* Sets the dialnorm for the output. If excluded and input
            audio is Dolby Digital, dialnorm will be passed through.

            - **DrcProfile** *(string) --* If set to filmStandard, adds dynamic range compression
            signaling to the output bitstream as defined in the Dolby Digital specification.

            - **LfeFilter** *(string) --* When set to enabled, applies a 120Hz lowpass filter to the
            LFE channel prior to encoding. Only valid in codingMode32Lfe mode.

            - **MetadataControl** *(string) --* When set to "followInput", encoder metadata will be
            sourced from the DD, DD+, or DolbyE decoder that supplied this audio data. If audio was
            not supplied from one of these streams, then the static metadata settings will be used.

          - **Eac3Settings** *(dict) --* Eac3 Settings

            - **AttenuationControl** *(string) --* When set to attenuate3Db, applies a 3 dB
            attenuation to the surround channels. Only used for 3/2 coding mode.

            - **Bitrate** *(float) --* Average bitrate in bits/second. Valid bitrates depend on the
            coding mode.

            - **BitstreamMode** *(string) --* Specifies the bitstream mode (bsmod) for the emitted
            E-AC-3 stream. See ATSC A/52-2012 (Annex E) for background on these values.

            - **CodingMode** *(string) --* Dolby Digital Plus coding mode. Determines number of
            channels.

            - **DcFilter** *(string) --* When set to enabled, activates a DC highpass filter for all
            input channels.

            - **Dialnorm** *(integer) --* Sets the dialnorm for the output. If blank and input audio
            is Dolby Digital Plus, dialnorm will be passed through.

            - **DrcLine** *(string) --* Sets the Dolby dynamic range compression profile.

            - **DrcRf** *(string) --* Sets the profile for heavy Dolby dynamic range compression,
            ensures that the instantaneous signal peaks do not exceed specified levels.

            - **LfeControl** *(string) --* When encoding 3/2 audio, setting to lfe enables the LFE
            channel

            - **LfeFilter** *(string) --* When set to enabled, applies a 120Hz lowpass filter to the
            LFE channel prior to encoding. Only valid with codingMode32 coding mode.

            - **LoRoCenterMixLevel** *(float) --* Left only/Right only center mix level. Only used
            for 3/2 coding mode.

            - **LoRoSurroundMixLevel** *(float) --* Left only/Right only surround mix level. Only
            used for 3/2 coding mode.

            - **LtRtCenterMixLevel** *(float) --* Left total/Right total center mix level. Only used
            for 3/2 coding mode.

            - **LtRtSurroundMixLevel** *(float) --* Left total/Right total surround mix level. Only
            used for 3/2 coding mode.

            - **MetadataControl** *(string) --* When set to followInput, encoder metadata will be
            sourced from the DD, DD+, or DolbyE decoder that supplied this audio data. If audio was
            not supplied from one of these streams, then the static metadata settings will be used.

            - **PassthroughControl** *(string) --* When set to whenPossible, input DD+ audio will be
            passed through if it is present on the input. This detection is dynamic over the life of
            the transcode. Inputs that alternate between DD+ and non-DD+ content will have a
            consistent DD+ output as the system alternates between passthrough and encoding.

            - **PhaseControl** *(string) --* When set to shift90Degrees, applies a 90-degree phase
            shift to the surround channels. Only used for 3/2 coding mode.

            - **StereoDownmix** *(string) --* Stereo downmix preference. Only used for 3/2 coding
            mode.

            - **SurroundExMode** *(string) --* When encoding 3/2 audio, sets whether an extra center
            back surround channel is matrix encoded into the left and right surround channels.

            - **SurroundMode** *(string) --* When encoding 2/0 audio, sets whether Dolby Surround is
            matrix encoded into the two channels.

          - **Mp2Settings** *(dict) --* Mp2 Settings

            - **Bitrate** *(float) --* Average bitrate in bits/second.

            - **CodingMode** *(string) --* The MPEG2 Audio coding mode. Valid values are
            codingMode10 (for mono) or codingMode20 (for stereo).

            - **SampleRate** *(float) --* Sample rate in Hz.

          - **PassThroughSettings** *(dict) --* Pass Through Settings

        - **LanguageCode** *(string) --* Indicates the language of the audio output track. Only used
        if languageControlMode is useConfigured, or there is no ISO 639 language code specified in
        the input.

        - **LanguageCodeControl** *(string) --* Choosing followInput will cause the ISO 639 language
        code of the output to follow the ISO 639 language code of the input. The languageCode will
        be used when useConfigured is set, or when followInput is selected but there is no ISO 639
        language code specified by the input.

        - **Name** *(string) --* The name of this AudioDescription. Outputs will use this name to
        uniquely identify this AudioDescription. Description names should be unique within this Live
        Event.

        - **RemixSettings** *(dict) --* Settings that control how input audio channels are remixed
        into the output audio channels.

          - **ChannelMappings** *(list) --* Mapping of input channels to output channels, with
          appropriate gain adjustments.

            - *(dict) --* Audio Channel Mapping

              - **InputChannelLevels** *(list) --* Indices and gain values for each input channel
              that should be remixed into this output channel.

                - *(dict) --* Input Channel Level

                  - **Gain** *(integer) --* Remixing value. Units are in dB and acceptable values
                  are within the range from -60 (mute) and 6 dB.

                  - **InputChannel** *(integer) --* The index of the input channel used as a source.

              - **OutputChannel** *(integer) --* The index of the output channel being produced.

          - **ChannelsIn** *(integer) --* Number of input channels to be used.

          - **ChannelsOut** *(integer) --* Number of output channels to be produced. Valid values:
          1, 2, 4, 6, 8

        - **StreamName** *(string) --* Used for MS Smooth and Apple HLS outputs. Indicates the name
        displayed by the player (eg. English, or Director Commentary).

    - **AvailBlanking** *(dict) --* Settings for ad avail blanking.

      - **AvailBlankingImage** *(dict) --* Blanking image to be used. Leave empty for solid black.
      Only bmp and png images are supported.

        - **PasswordParam** *(string) --* key used to extract the password from EC2 Parameter store

        - **Uri** *(string) --* Uniform Resource Identifier - This should be a path to a file
        accessible to the Live system (eg. a http:// URI) depending on the output type. For example,
        a RTMP destination should have a uri simliar to: "rtmp://fmsserver/live".

        - **Username** *(string) --* Documentation update needed

      - **State** *(string) --* When set to enabled, causes video, audio and captions to be blanked
      when insertion metadata is added.

    - **AvailConfiguration** *(dict) --* Event-wide configuration settings for ad avail insertion.

      - **AvailSettings** *(dict) --* Ad avail settings.

        - **Scte35SpliceInsert** *(dict) --* Scte35 Splice Insert

          - **AdAvailOffset** *(integer) --* When specified, this offset (in milliseconds) is added
          to the input Ad Avail PTS time. This only applies to embedded SCTE 104/35 messages and
          does not apply to OOB messages.

          - **NoRegionalBlackoutFlag** *(string) --* When set to ignore, Segment Descriptors with
          noRegionalBlackoutFlag set to 0 will no longer trigger blackouts or Ad Avail slates

          - **WebDeliveryAllowedFlag** *(string) --* When set to ignore, Segment Descriptors with
          webDeliveryAllowedFlag set to 0 will no longer trigger blackouts or Ad Avail slates

        - **Scte35TimeSignalApos** *(dict) --* Scte35 Time Signal Apos

          - **AdAvailOffset** *(integer) --* When specified, this offset (in milliseconds) is added
          to the input Ad Avail PTS time. This only applies to embedded SCTE 104/35 messages and
          does not apply to OOB messages.

          - **NoRegionalBlackoutFlag** *(string) --* When set to ignore, Segment Descriptors with
          noRegionalBlackoutFlag set to 0 will no longer trigger blackouts or Ad Avail slates

          - **WebDeliveryAllowedFlag** *(string) --* When set to ignore, Segment Descriptors with
          webDeliveryAllowedFlag set to 0 will no longer trigger blackouts or Ad Avail slates

    - **BlackoutSlate** *(dict) --* Settings for blackout slate.

      - **BlackoutSlateImage** *(dict) --* Blackout slate image to be used. Leave empty for solid
      black. Only bmp and png images are supported.

        - **PasswordParam** *(string) --* key used to extract the password from EC2 Parameter store

        - **Uri** *(string) --* Uniform Resource Identifier - This should be a path to a file
        accessible to the Live system (eg. a http:// URI) depending on the output type. For example,
        a RTMP destination should have a uri simliar to: "rtmp://fmsserver/live".

        - **Username** *(string) --* Documentation update needed

      - **NetworkEndBlackout** *(string) --* Setting to enabled causes the encoder to blackout the
      video, audio, and captions, and raise the "Network Blackout Image" slate when an SCTE104/35
      Network End Segmentation Descriptor is encountered. The blackout will be lifted when the
      Network Start Segmentation Descriptor is encountered. The Network End and Network Start
      descriptors must contain a network ID that matches the value entered in "Network ID".

      - **NetworkEndBlackoutImage** *(dict) --* Path to local file to use as Network End Blackout
      image. Image will be scaled to fill the entire output raster.

        - **PasswordParam** *(string) --* key used to extract the password from EC2 Parameter store

        - **Uri** *(string) --* Uniform Resource Identifier - This should be a path to a file
        accessible to the Live system (eg. a http:// URI) depending on the output type. For example,
        a RTMP destination should have a uri simliar to: "rtmp://fmsserver/live".

        - **Username** *(string) --* Documentation update needed

      - **NetworkId** *(string) --* Provides Network ID that matches EIDR ID format (e.g.,
      "10.XXXX/XXXX-XXXX-XXXX-XXXX-XXXX-C").

      - **State** *(string) --* When set to enabled, causes video, audio and captions to be blanked
      when indicated by program metadata.

    - **CaptionDescriptions** *(list) --* Settings for caption decriptions

      - *(dict) --* Caption Description

        - **CaptionSelectorName** *(string) --* Specifies which input caption selector to use as a
        caption source when generating output captions. This field should match a captionSelector
        name.

        - **DestinationSettings** *(dict) --* Additional settings for captions destination that
        depend on the destination type.

          - **AribDestinationSettings** *(dict) --* Arib Destination Settings

          - **BurnInDestinationSettings** *(dict) --* Burn In Destination Settings

            - **Alignment** *(string) --* If no explicit xPosition or yPosition is provided, setting
            alignment to centered will place the captions at the bottom center of the output.
            Similarly, setting a left alignment will align captions to the bottom left of the
            output. If x and y positions are given in conjunction with the alignment parameter, the
            font will be justified (either left or centered) relative to those coordinates.
            Selecting "smart" justification will left-justify live subtitles and center-justify
            pre-recorded subtitles. All burn-in and DVB-Sub font settings must match.

            - **BackgroundColor** *(string) --* Specifies the color of the rectangle behind the
            captions. All burn-in and DVB-Sub font settings must match.

            - **BackgroundOpacity** *(integer) --* Specifies the opacity of the background
            rectangle. 255 is opaque; 0 is transparent. Leaving this parameter out is equivalent to
            setting it to 0 (transparent). All burn-in and DVB-Sub font settings must match.

            - **Font** *(dict) --* External font file used for caption burn-in. File extension must
            be 'ttf' or 'tte'. Although the user can select output fonts for many different types of
            input captions, embedded, STL and teletext sources use a strict grid system. Using
            external fonts with these caption sources could cause unexpected display of proportional
            fonts. All burn-in and DVB-Sub font settings must match.

              - **PasswordParam** *(string) --* key used to extract the password from EC2 Parameter
              store

              - **Uri** *(string) --* Uniform Resource Identifier - This should be a path to a file
              accessible to the Live system (eg. a http:// URI) depending on the output type. For
              example, a RTMP destination should have a uri simliar to: "rtmp://fmsserver/live".

              - **Username** *(string) --* Documentation update needed

            - **FontColor** *(string) --* Specifies the color of the burned-in captions. This option
            is not valid for source captions that are STL, 608/embedded or teletext. These source
            settings are already pre-defined by the caption stream. All burn-in and DVB-Sub font
            settings must match.

            - **FontOpacity** *(integer) --* Specifies the opacity of the burned-in captions. 255 is
            opaque; 0 is transparent. All burn-in and DVB-Sub font settings must match.

            - **FontResolution** *(integer) --* Font resolution in DPI (dots per inch); default is
            96 dpi. All burn-in and DVB-Sub font settings must match.

            - **FontSize** *(string) --* When set to 'auto' fontSize will scale depending on the
            size of the output. Giving a positive integer will specify the exact font size in
            points. All burn-in and DVB-Sub font settings must match.

            - **OutlineColor** *(string) --* Specifies font outline color. This option is not valid
            for source captions that are either 608/embedded or teletext. These source settings are
            already pre-defined by the caption stream. All burn-in and DVB-Sub font settings must
            match.

            - **OutlineSize** *(integer) --* Specifies font outline size in pixels. This option is
            not valid for source captions that are either 608/embedded or teletext. These source
            settings are already pre-defined by the caption stream. All burn-in and DVB-Sub font
            settings must match.

            - **ShadowColor** *(string) --* Specifies the color of the shadow cast by the captions.
            All burn-in and DVB-Sub font settings must match.

            - **ShadowOpacity** *(integer) --* Specifies the opacity of the shadow. 255 is opaque; 0
            is transparent. Leaving this parameter out is equivalent to setting it to 0
            (transparent). All burn-in and DVB-Sub font settings must match.

            - **ShadowXOffset** *(integer) --* Specifies the horizontal offset of the shadow
            relative to the captions in pixels. A value of -2 would result in a shadow offset 2
            pixels to the left. All burn-in and DVB-Sub font settings must match.

            - **ShadowYOffset** *(integer) --* Specifies the vertical offset of the shadow relative
            to the captions in pixels. A value of -2 would result in a shadow offset 2 pixels above
            the text. All burn-in and DVB-Sub font settings must match.

            - **TeletextGridControl** *(string) --* Controls whether a fixed grid size will be used
            to generate the output subtitles bitmap. Only applicable for Teletext inputs and
            DVB-Sub/Burn-in outputs.

            - **XPosition** *(integer) --* Specifies the horizontal position of the caption relative
            to the left side of the output in pixels. A value of 10 would result in the captions
            starting 10 pixels from the left of the output. If no explicit xPosition is provided,
            the horizontal caption position will be determined by the alignment parameter. All
            burn-in and DVB-Sub font settings must match.

            - **YPosition** *(integer) --* Specifies the vertical position of the caption relative
            to the top of the output in pixels. A value of 10 would result in the captions starting
            10 pixels from the top of the output. If no explicit yPosition is provided, the caption
            will be positioned towards the bottom of the output. All burn-in and DVB-Sub font
            settings must match.

          - **DvbSubDestinationSettings** *(dict) --* Dvb Sub Destination Settings

            - **Alignment** *(string) --* If no explicit xPosition or yPosition is provided, setting
            alignment to centered will place the captions at the bottom center of the output.
            Similarly, setting a left alignment will align captions to the bottom left of the
            output. If x and y positions are given in conjunction with the alignment parameter, the
            font will be justified (either left or centered) relative to those coordinates.
            Selecting "smart" justification will left-justify live subtitles and center-justify
            pre-recorded subtitles. This option is not valid for source captions that are STL or
            608/embedded. These source settings are already pre-defined by the caption stream. All
            burn-in and DVB-Sub font settings must match.

            - **BackgroundColor** *(string) --* Specifies the color of the rectangle behind the
            captions. All burn-in and DVB-Sub font settings must match.

            - **BackgroundOpacity** *(integer) --* Specifies the opacity of the background
            rectangle. 255 is opaque; 0 is transparent. Leaving this parameter blank is equivalent
            to setting it to 0 (transparent). All burn-in and DVB-Sub font settings must match.

            - **Font** *(dict) --* External font file used for caption burn-in. File extension must
            be 'ttf' or 'tte'. Although the user can select output fonts for many different types of
            input captions, embedded, STL and teletext sources use a strict grid system. Using
            external fonts with these caption sources could cause unexpected display of proportional
            fonts. All burn-in and DVB-Sub font settings must match.

              - **PasswordParam** *(string) --* key used to extract the password from EC2 Parameter
              store

              - **Uri** *(string) --* Uniform Resource Identifier - This should be a path to a file
              accessible to the Live system (eg. a http:// URI) depending on the output type. For
              example, a RTMP destination should have a uri simliar to: "rtmp://fmsserver/live".

              - **Username** *(string) --* Documentation update needed

            - **FontColor** *(string) --* Specifies the color of the burned-in captions. This option
            is not valid for source captions that are STL, 608/embedded or teletext. These source
            settings are already pre-defined by the caption stream. All burn-in and DVB-Sub font
            settings must match.

            - **FontOpacity** *(integer) --* Specifies the opacity of the burned-in captions. 255 is
            opaque; 0 is transparent. All burn-in and DVB-Sub font settings must match.

            - **FontResolution** *(integer) --* Font resolution in DPI (dots per inch); default is
            96 dpi. All burn-in and DVB-Sub font settings must match.

            - **FontSize** *(string) --* When set to auto fontSize will scale depending on the size
            of the output. Giving a positive integer will specify the exact font size in points. All
            burn-in and DVB-Sub font settings must match.

            - **OutlineColor** *(string) --* Specifies font outline color. This option is not valid
            for source captions that are either 608/embedded or teletext. These source settings are
            already pre-defined by the caption stream. All burn-in and DVB-Sub font settings must
            match.

            - **OutlineSize** *(integer) --* Specifies font outline size in pixels. This option is
            not valid for source captions that are either 608/embedded or teletext. These source
            settings are already pre-defined by the caption stream. All burn-in and DVB-Sub font
            settings must match.

            - **ShadowColor** *(string) --* Specifies the color of the shadow cast by the captions.
            All burn-in and DVB-Sub font settings must match.

            - **ShadowOpacity** *(integer) --* Specifies the opacity of the shadow. 255 is opaque; 0
            is transparent. Leaving this parameter blank is equivalent to setting it to 0
            (transparent). All burn-in and DVB-Sub font settings must match.

            - **ShadowXOffset** *(integer) --* Specifies the horizontal offset of the shadow
            relative to the captions in pixels. A value of -2 would result in a shadow offset 2
            pixels to the left. All burn-in and DVB-Sub font settings must match.

            - **ShadowYOffset** *(integer) --* Specifies the vertical offset of the shadow relative
            to the captions in pixels. A value of -2 would result in a shadow offset 2 pixels above
            the text. All burn-in and DVB-Sub font settings must match.

            - **TeletextGridControl** *(string) --* Controls whether a fixed grid size will be used
            to generate the output subtitles bitmap. Only applicable for Teletext inputs and
            DVB-Sub/Burn-in outputs.

            - **XPosition** *(integer) --* Specifies the horizontal position of the caption relative
            to the left side of the output in pixels. A value of 10 would result in the captions
            starting 10 pixels from the left of the output. If no explicit xPosition is provided,
            the horizontal caption position will be determined by the alignment parameter. This
            option is not valid for source captions that are STL, 608/embedded or teletext. These
            source settings are already pre-defined by the caption stream. All burn-in and DVB-Sub
            font settings must match.

            - **YPosition** *(integer) --* Specifies the vertical position of the caption relative
            to the top of the output in pixels. A value of 10 would result in the captions starting
            10 pixels from the top of the output. If no explicit yPosition is provided, the caption
            will be positioned towards the bottom of the output. This option is not valid for source
            captions that are STL, 608/embedded or teletext. These source settings are already
            pre-defined by the caption stream. All burn-in and DVB-Sub font settings must match.

          - **EmbeddedDestinationSettings** *(dict) --* Embedded Destination Settings

          - **EmbeddedPlusScte20DestinationSettings** *(dict) --* Embedded Plus Scte20 Destination
          Settings

          - **RtmpCaptionInfoDestinationSettings** *(dict) --* Rtmp Caption Info Destination
          Settings

          - **Scte20PlusEmbeddedDestinationSettings** *(dict) --* Scte20 Plus Embedded Destination
          Settings

          - **Scte27DestinationSettings** *(dict) --* Scte27 Destination Settings

          - **SmpteTtDestinationSettings** *(dict) --* Smpte Tt Destination Settings

          - **TeletextDestinationSettings** *(dict) --* Teletext Destination Settings

          - **TtmlDestinationSettings** *(dict) --* Ttml Destination Settings

            - **StyleControl** *(string) --* When set to passthrough, passes through style and
            position information from a TTML-like input source (TTML, SMPTE-TT, CFF-TT) to the
            CFF-TT output or TTML output.

          - **WebvttDestinationSettings** *(dict) --* Webvtt Destination Settings

        - **LanguageCode** *(string) --* ISO 639-2 three-digit code:
        http://www.loc.gov/standards/iso639-2/

        - **LanguageDescription** *(string) --* Human readable information to indicate captions
        available for players (eg. English, or Spanish).

        - **Name** *(string) --* Name of the caption description. Used to associate a caption
        description with an output. Names must be unique within an event.

    - **GlobalConfiguration** *(dict) --* Configuration settings that apply to the event as a whole.

      - **InitialAudioGain** *(integer) --* Value to set the initial audio gain for the Live Event.

      - **InputEndAction** *(string) --* Indicates the action to take when the current input
      completes (e.g. end-of-file). When switchAndLoopInputs is configured the encoder will restart
      at the beginning of the first input. When "none" is configured the encoder will transcode
      either black, a solid color, or a user specified slate images per the "Input Loss Behavior"
      configuration until the next input switch occurs (which is controlled through the Channel
      Schedule API).

      - **InputLossBehavior** *(dict) --* Settings for system actions when input is lost.

        - **BlackFrameMsec** *(integer) --* Documentation update needed

        - **InputLossImageColor** *(string) --* When input loss image type is "color" this field
        specifies the color to use. Value: 6 hex characters representing the values of RGB.

        - **InputLossImageSlate** *(dict) --* When input loss image type is "slate" these fields
        specify the parameters for accessing the slate.

          - **PasswordParam** *(string) --* key used to extract the password from EC2 Parameter
          store

          - **Uri** *(string) --* Uniform Resource Identifier - This should be a path to a file
          accessible to the Live system (eg. a http:// URI) depending on the output type. For
          example, a RTMP destination should have a uri simliar to: "rtmp://fmsserver/live".

          - **Username** *(string) --* Documentation update needed

        - **InputLossImageType** *(string) --* Indicates whether to substitute a solid color or a
        slate into the output after input loss exceeds blackFrameMsec.

        - **RepeatFrameMsec** *(integer) --* Documentation update needed

      - **OutputLockingMode** *(string) --* Indicates how MediaLive pipelines are synchronized.
      PIPELINELOCKING - MediaLive will attempt to synchronize the output of each pipeline to the
      other. EPOCHLOCKING - MediaLive will attempt to synchronize the output of each pipeline to the
      Unix epoch.

      - **OutputTimingSource** *(string) --* Indicates whether the rate of frames emitted by the
      Live encoder should be paced by its system clock (which optionally may be locked to another
      source via NTP) or should be locked to the clock of the source that is providing the input
      stream.

      - **SupportLowFramerateInputs** *(string) --* Adjusts video input buffer for streams with very
      low video framerates. This is commonly set to enabled for music channels with less than one
      video frame per second.

    - **NielsenConfiguration** *(dict) --* Nielsen configuration settings.

      - **DistributorId** *(string) --* Enter the Distributor ID assigned to your organization by
      Nielsen.

      - **NielsenPcmToId3Tagging** *(string) --* Enables Nielsen PCM to ID3 tagging

    - **OutputGroups** *(list) --* Placeholder documentation for __listOfOutputGroup

      - *(dict) --* Output groups for this Live Event. Output groups contain information about where
      streams should be distributed.

        - **Name** *(string) --* Custom output group name optionally defined by the user. Only
        letters, numbers, and the underscore character allowed; only 32 characters allowed.

        - **OutputGroupSettings** *(dict) --* Settings associated with the output group.

          - **ArchiveGroupSettings** *(dict) --* Archive Group Settings

            - **Destination** *(dict) --* A directory and base filename where archive files should
            be written.

              - **DestinationRefId** *(string) --* Placeholder documentation for __string

            - **RolloverInterval** *(integer) --* Number of seconds to write to archive file before
            closing and starting a new one.

          - **FrameCaptureGroupSettings** *(dict) --* Frame Capture Group Settings

            - **Destination** *(dict) --* The destination for the frame capture files. Either the
            URI for an Amazon S3 bucket and object, plus a file name prefix (for example,
            s3ssl://sportsDelivery/highlights/20180820/curling_) or the URI for a MediaStore
            container, plus a file name prefix (for example,
            mediastoressl://sportsDelivery/20180820/curling_). The final file names consist of the
            prefix from the destination field (for example, "curling_") + name modifier + the
            counter (5 digits, starting from 00001) + extension (which is always .jpg). For example,
            curlingLow.00001.jpg

              - **DestinationRefId** *(string) --* Placeholder documentation for __string

          - **HlsGroupSettings** *(dict) --* Hls Group Settings

            - **AdMarkers** *(list) --* Choose one or more ad marker types to pass SCTE35 signals
            through to this group of Apple HLS outputs.

              - *(string) --* Hls Ad Markers

            - **BaseUrlContent** *(string) --* A partial URI prefix that will be prepended to each
            output in the media .m3u8 file. Can be used if base manifest is delivered from a
            different URL than the main .m3u8 file.

            - **BaseUrlManifest** *(string) --* A partial URI prefix that will be prepended to each
            output in the media .m3u8 file. Can be used if base manifest is delivered from a
            different URL than the main .m3u8 file.

            - **CaptionLanguageMappings** *(list) --* Mapping of up to 4 caption channels to caption
            languages. Is only meaningful if captionLanguageSetting is set to "insert".

              - *(dict) --* Maps a caption channel to an ISO 693-2 language code
              (http://www.loc.gov/standards/iso639-2), with an optional description.

                - **CaptionChannel** *(integer) --* The closed caption channel being described by
                this CaptionLanguageMapping. Each channel mapping must have a unique channel number
                (maximum of 4)

                - **LanguageCode** *(string) --* Three character ISO 639-2 language code (see
                http://www.loc.gov/standards/iso639-2)

                - **LanguageDescription** *(string) --* Textual description of language

            - **CaptionLanguageSetting** *(string) --* Applies only to 608 Embedded output captions.
            insert: Include CLOSED-CAPTIONS lines in the manifest. Specify at least one language in
            the CC1 Language Code field. One CLOSED-CAPTION line is added for each Language Code you
            specify. Make sure to specify the languages in the order in which they appear in the
            original source (if the source is embedded format) or the order of the caption selectors
            (if the source is other than embedded). Otherwise, languages in the manifest will not
            match up properly with the output captions. none: Include CLOSED-CAPTIONS=
                NONE line in
            the manifest. omit: Omit any CLOSED-CAPTIONS line from the manifest.

            - **ClientCache** *(string) --* When set to "disabled", sets the #EXT-X-ALLOW-CACHE:no
            tag in the manifest, which prevents clients from saving media segments for later replay.

            - **CodecSpecification** *(string) --* Specification to use (RFC-6381 or the default
            RFC-4281) during m3u8 playlist generation.

            - **ConstantIv** *(string) --* For use with encryptionType. This is a 128-bit, 16-byte
            hex value represented by a 32-character text string. If ivSource is set to "explicit"
            then this parameter is required and is used as the IV for encryption.

            - **Destination** *(dict) --* A directory or HTTP destination for the HLS segments,
            manifest files, and encryption keys (if enabled).

              - **DestinationRefId** *(string) --* Placeholder documentation for __string

            - **DirectoryStructure** *(string) --* Place segments in subdirectories.

            - **EncryptionType** *(string) --* Encrypts the segments with the given encryption
            scheme. Exclude this parameter if no encryption is desired.

            - **HlsCdnSettings** *(dict) --* Parameters that control interactions with the CDN.

              - **HlsAkamaiSettings** *(dict) --* Hls Akamai Settings

                - **ConnectionRetryInterval** *(integer) --* Number of seconds to wait before
                retrying connection to the CDN if the connection is lost.

                - **FilecacheDuration** *(integer) --* Size in seconds of file cache for streaming
                outputs.

                - **HttpTransferMode** *(string) --* Specify whether or not to use chunked transfer
                encoding to Akamai. User should contact Akamai to enable this feature.

                - **NumRetries** *(integer) --* Number of retry attempts that will be made before
                the Live Event is put into an error state.

                - **RestartDelay** *(integer) --* If a streaming output fails, number of seconds to
                wait until a restart is initiated. A value of 0 means never restart.

                - **Salt** *(string) --* Salt for authenticated Akamai.

                - **Token** *(string) --* Token parameter for authenticated akamai. If not
                specified, _gda_ is used.

              - **HlsBasicPutSettings** *(dict) --* Hls Basic Put Settings

                - **ConnectionRetryInterval** *(integer) --* Number of seconds to wait before
                retrying connection to the CDN if the connection is lost.

                - **FilecacheDuration** *(integer) --* Size in seconds of file cache for streaming
                outputs.

                - **NumRetries** *(integer) --* Number of retry attempts that will be made before
                the Live Event is put into an error state.

                - **RestartDelay** *(integer) --* If a streaming output fails, number of seconds to
                wait until a restart is initiated. A value of 0 means never restart.

              - **HlsMediaStoreSettings** *(dict) --* Hls Media Store Settings

                - **ConnectionRetryInterval** *(integer) --* Number of seconds to wait before
                retrying connection to the CDN if the connection is lost.

                - **FilecacheDuration** *(integer) --* Size in seconds of file cache for streaming
                outputs.

                - **MediaStoreStorageClass** *(string) --* When set to temporal, output files are
                stored in non-persistent memory for faster reading and writing.

                - **NumRetries** *(integer) --* Number of retry attempts that will be made before
                the Live Event is put into an error state.

                - **RestartDelay** *(integer) --* If a streaming output fails, number of seconds to
                wait until a restart is initiated. A value of 0 means never restart.

              - **HlsWebdavSettings** *(dict) --* Hls Webdav Settings

                - **ConnectionRetryInterval** *(integer) --* Number of seconds to wait before
                retrying connection to the CDN if the connection is lost.

                - **FilecacheDuration** *(integer) --* Size in seconds of file cache for streaming
                outputs.

                - **HttpTransferMode** *(string) --* Specify whether or not to use chunked transfer
                encoding to WebDAV.

                - **NumRetries** *(integer) --* Number of retry attempts that will be made before
                the Live Event is put into an error state.

                - **RestartDelay** *(integer) --* If a streaming output fails, number of seconds to
                wait until a restart is initiated. A value of 0 means never restart.

            - **IFrameOnlyPlaylists** *(string) --* DISABLED: Do not create an I-frame-only
            manifest, but do create the master and media manifests (according to the Output
            Selection field). STANDARD: Create an I-frame-only manifest for each output that
            contains video, as well as the other manifests (according to the Output Selection
            field). The I-frame manifest contains a #EXT-X-I-FRAMES-ONLY tag to indicate it is
            I-frame only, and one or more #EXT-X-BYTERANGE entries identifying the I-frame position.
            For example, #EXT-X-BYTERANGE:160364@1461888"

            - **IndexNSegments** *(integer) --* Applies only if Mode field is LIVE. Specifies the
            maximum number of segments in the media manifest file. After this maximum, older
            segments are removed from the media manifest. This number must be less than or equal to
            the Keep Segments field.

            - **InputLossAction** *(string) --* Parameter that control output group behavior on
            input loss.

            - **IvInManifest** *(string) --* For use with encryptionType. The IV (Initialization
            Vector) is a 128-bit number used in conjunction with the key for encrypting blocks. If
            set to "include", IV is listed in the manifest, otherwise the IV is not in the manifest.

            - **IvSource** *(string) --* For use with encryptionType. The IV (Initialization Vector)
            is a 128-bit number used in conjunction with the key for encrypting blocks. If this
            setting is "followsSegmentNumber", it will cause the IV to change every segment (to
            match the segment number). If this is set to "explicit", you must enter a constantIv
            value.

            - **KeepSegments** *(integer) --* Applies only if Mode field is LIVE. Specifies the
            number of media segments (.ts files) to retain in the destination directory.

            - **KeyFormat** *(string) --* The value specifies how the key is represented in the
            resource identified by the URI. If parameter is absent, an implicit value of "identity"
            is used. A reverse DNS string can also be given.

            - **KeyFormatVersions** *(string) --* Either a single positive integer version value or
            a slash delimited list of version values (1/2/3).

            - **KeyProviderSettings** *(dict) --* The key provider settings.

              - **StaticKeySettings** *(dict) --* Static Key Settings

                - **KeyProviderServer** *(dict) --* The URL of the license server used for
                protecting content.

                  - **PasswordParam** *(string) --* key used to extract the password from EC2
                  Parameter store

                  - **Uri** *(string) --* Uniform Resource Identifier - This should be a path to a
                  file accessible to the Live system (eg. a http:// URI) depending on the output
                  type. For example, a RTMP destination should have a uri simliar to:
                  "rtmp://fmsserver/live".

                  - **Username** *(string) --* Documentation update needed

                - **StaticKeyValue** *(string) --* Static key value as a 32 character hexadecimal
                string.

            - **ManifestCompression** *(string) --* When set to gzip, compresses HLS playlist.

            - **ManifestDurationFormat** *(string) --* Indicates whether the output manifest should
            use floating point or integer values for segment duration.

            - **MinSegmentLength** *(integer) --* When set, minimumSegmentLength is enforced by
            looking ahead and back within the specified range for a nearby avail and extending the
            segment size if needed.

            - **Mode** *(string) --* If "vod", all segments are indexed and kept permanently in the
            destination and manifest. If "live", only the number segments specified in keepSegments
            and indexNSegments are kept; newer segments replace older segments, which may prevent
            players from rewinding all the way to the beginning of the event. VOD mode uses HLS
            EXT-X-PLAYLIST-TYPE of EVENT while the channel is running, converting it to a "VOD" type
            manifest on completion of the stream.

            - **OutputSelection** *(string) --* MANIFESTSANDSEGMENTS: Generates manifests (master
            manifest, if applicable, and media manifests) for this output group. SEGMENTSONLY: Does
            not generate any manifests for this output group.

            - **ProgramDateTime** *(string) --* Includes or excludes EXT-X-PROGRAM-DATE-TIME tag in
            .m3u8 manifest files. The value is calculated as follows: either the program date and
            time are initialized using the input timecode source, or the time is initialized using
            the input timecode source and the date is initialized using the timestampOffset.

            - **ProgramDateTimePeriod** *(integer) --* Period of insertion of
            EXT-X-PROGRAM-DATE-TIME entry, in seconds.

            - **RedundantManifest** *(string) --* ENABLED: The master manifest (.m3u8 file) for each
            pipeline includes information about both pipelines: first its own media files, then the
            media files of the other pipeline. This feature allows playout device that support stale
            manifest detection to switch from one manifest to the other, when the current manifest
            seems to be stale. There are still two destinations and two master manifests, but both
            master manifests reference the media files from both pipelines. DISABLED: The master
            manifest (.m3u8 file) for each pipeline includes information about its own pipeline
            only. For an HLS output group with MediaPackage as the destination, the DISABLED
            behavior is always followed. MediaPackage regenerates the manifests it serves to players
            so a redundant manifest from MediaLive is irrelevant.

            - **SegmentLength** *(integer) --* Length of MPEG-2 Transport Stream segments to create
            (in seconds). Note that segments will end on the next keyframe after this number of
            seconds, so actual segment length may be longer.

            - **SegmentationMode** *(string) --* useInputSegmentation has been deprecated. The
            configured segment size is always used.

            - **SegmentsPerSubdirectory** *(integer) --* Number of segments to write to a
            subdirectory before starting a new one. directoryStructure must be subdirectoryPerStream
            for this setting to have an effect.

            - **StreamInfResolution** *(string) --* Include or exclude RESOLUTION attribute for
            video in EXT-X-STREAM-INF tag of variant manifest.

            - **TimedMetadataId3Frame** *(string) --* Indicates ID3 frame that has the timecode.

            - **TimedMetadataId3Period** *(integer) --* Timed Metadata interval in seconds.

            - **TimestampDeltaMilliseconds** *(integer) --* Provides an extra millisecond delta
            offset to fine tune the timestamps.

            - **TsFileMode** *(string) --* SEGMENTEDFILES: Emit the program as segments - multiple
            .ts media files. SINGLEFILE: Applies only if Mode field is VOD. Emit the program as a
            single .ts media file. The media manifest includes #EXT-X-BYTERANGE tags to index
            segments for playback. A typical use for this value is when sending the output to AWS
            Elemental MediaConvert, which can accept only a single media file. Playback while the
            channel is running is not guaranteed due to HTTP server caching.

          - **MediaPackageGroupSettings** *(dict) --* Media Package Group Settings

            - **Destination** *(dict) --* MediaPackage channel destination.

              - **DestinationRefId** *(string) --* Placeholder documentation for __string

          - **MsSmoothGroupSettings** *(dict) --* Ms Smooth Group Settings

            - **AcquisitionPointId** *(string) --* The value of the "Acquisition Point Identity"
            element used in each message placed in the sparse track. Only enabled if sparseTrackType
            is not "none".

            - **AudioOnlyTimecodeControl** *(string) --* If set to passthrough for an audio-only MS
            Smooth output, the fragment absolute time will be set to the current timecode. This
            option does not write timecodes to the audio elementary stream.

            - **CertificateMode** *(string) --* If set to verifyAuthenticity, verify the https
            certificate chain to a trusted Certificate Authority (CA). This will cause https outputs
            to self-signed certificates to fail.

            - **ConnectionRetryInterval** *(integer) --* Number of seconds to wait before retrying
            connection to the IIS server if the connection is lost. Content will be cached during
            this time and the cache will be be delivered to the IIS server once the connection is
            re-established.

            - **Destination** *(dict) --* Smooth Streaming publish point on an IIS server. Elemental
            Live acts as a "Push" encoder to IIS.

              - **DestinationRefId** *(string) --* Placeholder documentation for __string

            - **EventId** *(string) --* MS Smooth event ID to be sent to the IIS server. Should only
            be specified if eventIdMode is set to useConfigured.

            - **EventIdMode** *(string) --* Specifies whether or not to send an event ID to the IIS
            server. If no event ID is sent and the same Live Event is used without changing the
            publishing point, clients might see cached video from the previous run. Options: -
            "useConfigured" - use the value provided in eventId - "useTimestamp" - generate and send
            an event ID based on the current timestamp - "noEventId" - do not send an event ID to
            the IIS server.

            - **EventStopBehavior** *(string) --* When set to sendEos, send EOS signal to IIS server
            when stopping the event

            - **FilecacheDuration** *(integer) --* Size in seconds of file cache for streaming
            outputs.

            - **FragmentLength** *(integer) --* Length of mp4 fragments to generate (in seconds).
            Fragment length must be compatible with GOP size and framerate.

            - **InputLossAction** *(string) --* Parameter that control output group behavior on
            input loss.

            - **NumRetries** *(integer) --* Number of retry attempts.

            - **RestartDelay** *(integer) --* Number of seconds before initiating a restart due to
            output failure, due to exhausting the numRetries on one segment, or exceeding
            filecacheDuration.

            - **SegmentationMode** *(string) --* useInputSegmentation has been deprecated. The
            configured segment size is always used.

            - **SendDelayMs** *(integer) --* Number of milliseconds to delay the output from the
            second pipeline.

            - **SparseTrackType** *(string) --* If set to scte35, use incoming SCTE-35 messages to
            generate a sparse track in this group of MS-Smooth outputs.

            - **StreamManifestBehavior** *(string) --* When set to send, send stream manifest so
            publishing point doesn't start until all streams start.

            - **TimestampOffset** *(string) --* Timestamp offset for the event. Only used if
            timestampOffsetMode is set to useConfiguredOffset.

            - **TimestampOffsetMode** *(string) --* Type of timestamp date offset to use. -
            useEventStartDate: Use the date the event was started as the offset -
            useConfiguredOffset: Use an explicitly configured date as the offset

          - **MultiplexGroupSettings** *(dict) --* Multiplex Group Settings

          - **RtmpGroupSettings** *(dict) --* Rtmp Group Settings

            - **AuthenticationScheme** *(string) --* Authentication scheme to use when connecting
            with CDN

            - **CacheFullBehavior** *(string) --* Controls behavior when content cache fills up. If
            remote origin server stalls the RTMP connection and does not accept content fast enough
            the 'Media Cache' will fill up. When the cache reaches the duration specified by
            cacheLength the cache will stop accepting new content. If set to disconnectImmediately,
            the RTMP output will force a disconnect. Clear the media cache, and reconnect after
            restartDelay seconds. If set to waitForServer, the RTMP output will wait up to 5 minutes
            to allow the origin server to begin accepting data again.

            - **CacheLength** *(integer) --* Cache length, in seconds, is used to calculate buffer
            size.

            - **CaptionData** *(string) --* Controls the types of data that passes to onCaptionInfo
            outputs. If set to 'all' then 608 and 708 carried DTVCC data will be passed. If set to
            'field1AndField2608' then DTVCC data will be stripped out, but 608 data from both fields
            will be passed. If set to 'field1608' then only the data carried in 608 from field 1
            video will be passed.

            - **InputLossAction** *(string) --* Controls the behavior of this RTMP group if input
            becomes unavailable. - emitOutput: Emit a slate until input returns. - pauseOutput: Stop
            transmitting data until input returns. This does not close the underlying RTMP
            connection.

            - **RestartDelay** *(integer) --* If a streaming output fails, number of seconds to wait
            until a restart is initiated. A value of 0 means never restart.

          - **UdpGroupSettings** *(dict) --* Udp Group Settings

            - **InputLossAction** *(string) --* Specifies behavior of last resort when input video
            is lost, and no more backup inputs are available. When dropTs is selected the entire
            transport stream will stop being emitted. When dropProgram is selected the program can
            be dropped from the transport stream (and replaced with null packets to meet the TS
            bitrate requirement). Or, when emitProgram is chosen the transport stream will continue
            to be produced normally with repeat frames, black frames, or slate frames substituted
            for the absent input video.

            - **TimedMetadataId3Frame** *(string) --* Indicates ID3 frame that has the timecode.

            - **TimedMetadataId3Period** *(integer) --* Timed Metadata interval in seconds.

        - **Outputs** *(list) --* Placeholder documentation for __listOfOutput

          - *(dict) --* Output settings. There can be multiple outputs within a group.

            - **AudioDescriptionNames** *(list) --* The names of the AudioDescriptions used as audio
            sources for this output.

              - *(string) --* Placeholder documentation for __string

            - **CaptionDescriptionNames** *(list) --* The names of the CaptionDescriptions used as
            caption sources for this output.

              - *(string) --* Placeholder documentation for __string

            - **OutputName** *(string) --* The name used to identify an output.

            - **OutputSettings** *(dict) --* Output type-specific settings.

              - **ArchiveOutputSettings** *(dict) --* Archive Output Settings

                - **ContainerSettings** *(dict) --* Settings specific to the container type of the
                file.

                  - **M2tsSettings** *(dict) --* M2ts Settings

                    - **AbsentInputAudioBehavior** *(string) --* When set to drop, output audio
                    streams will be removed from the program if the selected input audio stream is
                    removed from the input. This allows the output audio configuration to
                    dynamically change based on input configuration. If this is set to
                    encodeSilence, all output audio streams will output encoded silence when not
                    connected to an active input stream.

                    - **Arib** *(string) --* When set to enabled, uses ARIB-compliant field muxing
                    and removes video descriptor.

                    - **AribCaptionsPid** *(string) --* Packet Identifier (PID) for ARIB Captions in
                    the transport stream. Can be entered as a decimal or hexadecimal value. Valid
                    values are 32 (or 0x20)..8182 (or 0x1ff6).

                    - **AribCaptionsPidControl** *(string) --* If set to auto, pid number used for
                    ARIB Captions will be auto-selected from unused pids. If set to useConfigured,
                    ARIB Captions will be on the configured pid number.

                    - **AudioBufferModel** *(string) --* When set to dvb, uses DVB buffer model for
                    Dolby Digital audio. When set to atsc, the ATSC model is used.

                    - **AudioFramesPerPes** *(integer) --* The number of audio frames to insert for
                    each PES packet.

                    - **AudioPids** *(string) --* Packet Identifier (PID) of the elementary audio
                    stream(s) in the transport stream. Multiple values are accepted, and can be
                    entered in ranges and/or by comma separation. Can be entered as decimal or
                    hexadecimal values. Each PID specified must be in the range of 32 (or
                    0x20)..8182 (or 0x1ff6).

                    - **AudioStreamType** *(string) --* When set to atsc, uses stream type = 0x81
                    for AC3 and stream type =
                         0x87 for EAC3. When set to dvb, uses stream type =
                    0x06.

                    - **Bitrate** *(integer) --* The output bitrate of the transport stream in bits
                    per second. Setting to 0 lets the muxer automatically determine the appropriate
                    bitrate.

                    - **BufferModel** *(string) --* If set to multiplex, use multiplex buffer model
                    for accurate interleaving. Setting to bufferModel to none can lead to lower
                    latency, but low-memory devices may not be able to play back the stream without
                    interruptions.

                    - **CcDescriptor** *(string) --* When set to enabled, generates
                    captionServiceDescriptor in PMT.

                    - **DvbNitSettings** *(dict) --* Inserts DVB Network Information Table (NIT) at
                    the specified table repetition interval.

                      - **NetworkId** *(integer) --* The numeric value placed in the Network
                      Information Table (NIT).

                      - **NetworkName** *(string) --* The network name text placed in the
                      networkNameDescriptor inside the Network Information Table. Maximum length is
                      256 characters.

                      - **RepInterval** *(integer) --* The number of milliseconds between instances
                      of this table in the output transport stream.

                    - **DvbSdtSettings** *(dict) --* Inserts DVB Service Description Table (SDT) at
                    the specified table repetition interval.

                      - **OutputSdt** *(string) --* Selects method of inserting SDT information into
                      output stream. The sdtFollow setting copies SDT information from input stream
                      to output stream. The sdtFollowIfPresent setting copies SDT information from
                      input stream to output stream if SDT information is present in the input,
                      otherwise it will fall back on the user-defined values. The sdtManual setting
                      means user will enter the SDT information. The sdtNone setting means output
                      stream will not contain SDT information.

                      - **RepInterval** *(integer) --* The number of milliseconds between instances
                      of this table in the output transport stream.

                      - **ServiceName** *(string) --* The service name placed in the
                      serviceDescriptor in the Service Description Table. Maximum length is 256
                      characters.

                      - **ServiceProviderName** *(string) --* The service provider name placed in
                      the serviceDescriptor in the Service Description Table. Maximum length is 256
                      characters.

                    - **DvbSubPids** *(string) --* Packet Identifier (PID) for input source DVB
                    Subtitle data to this output. Multiple values are accepted, and can be entered
                    in ranges and/or by comma separation. Can be entered as decimal or hexadecimal
                    values. Each PID specified must be in the range of 32 (or 0x20)..8182 (or
                    0x1ff6).

                    - **DvbTdtSettings** *(dict) --* Inserts DVB Time and Date Table (TDT) at the
                    specified table repetition interval.

                      - **RepInterval** *(integer) --* The number of milliseconds between instances
                      of this table in the output transport stream.

                    - **DvbTeletextPid** *(string) --* Packet Identifier (PID) for input source DVB
                    Teletext data to this output. Can be entered as a decimal or hexadecimal value.
                    Valid values are 32 (or 0x20)..8182 (or 0x1ff6).

                    - **Ebif** *(string) --* If set to passthrough, passes any EBIF data from the
                    input source to this output.

                    - **EbpAudioInterval** *(string) --* When videoAndFixedIntervals is selected,
                    audio EBP markers will be added to partitions 3 and 4. The interval between
                    these additional markers will be fixed, and will be slightly shorter than the
                    video EBP marker interval. Only available when EBP Cablelabs segmentation
                    markers are selected. Partitions 1 and 2 will always follow the video interval.

                    - **EbpLookaheadMs** *(integer) --* When set, enforces that Encoder Boundary
                    Points do not come within the specified time interval of each other by looking
                    ahead at input video. If another EBP is going to come in within the specified
                    time interval, the current EBP is not emitted, and the segment is "stretched" to
                    the next marker. The lookahead value does not add latency to the system. The
                    Live Event must be configured elsewhere to create sufficient latency to make the
                    lookahead accurate.

                    - **EbpPlacement** *(string) --* Controls placement of EBP on Audio PIDs. If set
                    to videoAndAudioPids, EBP markers will be placed on the video PID and all audio
                    PIDs. If set to videoPid, EBP markers will be placed on only the video PID.

                    - **EcmPid** *(string) --* This field is unused and deprecated.

                    - **EsRateInPes** *(string) --* Include or exclude the ES Rate field in the PES
                    header.

                    - **EtvPlatformPid** *(string) --* Packet Identifier (PID) for input source ETV
                    Platform data to this output. Can be entered as a decimal or hexadecimal value.
                    Valid values are 32 (or 0x20)..8182 (or 0x1ff6).

                    - **EtvSignalPid** *(string) --* Packet Identifier (PID) for input source ETV
                    Signal data to this output. Can be entered as a decimal or hexadecimal value.
                    Valid values are 32 (or 0x20)..8182 (or 0x1ff6).

                    - **FragmentTime** *(float) --* The length in seconds of each fragment. Only
                    used with EBP markers.

                    - **Klv** *(string) --* If set to passthrough, passes any KLV data from the
                    input source to this output.

                    - **KlvDataPids** *(string) --* Packet Identifier (PID) for input source KLV
                    data to this output. Multiple values are accepted, and can be entered in ranges
                    and/or by comma separation. Can be entered as decimal or hexadecimal values.
                    Each PID specified must be in the range of 32 (or 0x20)..8182 (or 0x1ff6).

                    - **NielsenId3Behavior** *(string) --* If set to passthrough, Nielsen inaudible
                    tones for media tracking will be detected in the input audio and an equivalent
                    ID3 tag will be inserted in the output.

                    - **NullPacketBitrate** *(float) --* Value in bits per second of extra null
                    packets to insert into the transport stream. This can be used if a downstream
                    encryption system requires periodic null packets.

                    - **PatInterval** *(integer) --* The number of milliseconds between instances of
                    this table in the output transport stream. Valid values are 0, 10..1000.

                    - **PcrControl** *(string) --* When set to pcrEveryPesPacket, a Program Clock
                    Reference value is inserted for every Packetized Elementary Stream (PES) header.
                    This parameter is effective only when the PCR PID is the same as the video or
                    audio elementary stream.

                    - **PcrPeriod** *(integer) --* Maximum time in milliseconds between Program
                    Clock Reference (PCRs) inserted into the transport stream.

                    - **PcrPid** *(string) --* Packet Identifier (PID) of the Program Clock
                    Reference (PCR) in the transport stream. When no value is given, the encoder
                    will assign the same value as the Video PID. Can be entered as a decimal or
                    hexadecimal value. Valid values are 32 (or 0x20)..8182 (or 0x1ff6).

                    - **PmtInterval** *(integer) --* The number of milliseconds between instances of
                    this table in the output transport stream. Valid values are 0, 10..1000.

                    - **PmtPid** *(string) --* Packet Identifier (PID) for the Program Map Table
                    (PMT) in the transport stream. Can be entered as a decimal or hexadecimal value.
                    Valid values are 32 (or 0x20)..8182 (or 0x1ff6).

                    - **ProgramNum** *(integer) --* The value of the program number field in the
                    Program Map Table.

                    - **RateMode** *(string) --* When vbr, does not insert null packets into
                    transport stream to fill specified bitrate. The bitrate setting acts as the
                    maximum bitrate when vbr is set.

                    - **Scte27Pids** *(string) --* Packet Identifier (PID) for input source SCTE-27
                    data to this output. Multiple values are accepted, and can be entered in ranges
                    and/or by comma separation. Can be entered as decimal or hexadecimal values.
                    Each PID specified must be in the range of 32 (or 0x20)..8182 (or 0x1ff6).

                    - **Scte35Control** *(string) --* Optionally pass SCTE-35 signals from the input
                    source to this output.

                    - **Scte35Pid** *(string) --* Packet Identifier (PID) of the SCTE-35 stream in
                    the transport stream. Can be entered as a decimal or hexadecimal value. Valid
                    values are 32 (or 0x20)..8182 (or 0x1ff6).

                    - **SegmentationMarkers** *(string) --* Inserts segmentation markers at each
                    segmentationTime period. raiSegstart sets the Random Access Indicator bit in the
                    adaptation field. raiAdapt sets the RAI bit and adds the current timecode in the
                    private data bytes. psiSegstart inserts PAT and PMT tables at the start of
                    segments. ebp adds Encoder Boundary Point information to the adaptation field as
                    per OpenCable specification OC-SP-EBP-I01-130118. ebpLegacy adds Encoder
                    Boundary Point information to the adaptation field using a legacy proprietary
                    format.

                    - **SegmentationStyle** *(string) --* The segmentation style parameter controls
                    how segmentation markers are inserted into the transport stream. With avails, it
                    is possible that segments may be truncated, which can influence where future
                    segmentation markers are inserted. When a segmentation style of "resetCadence"
                    is selected and a segment is truncated due to an avail, we will reset the
                    segmentation cadence. This means the subsequent segment will have a duration of
                    $segmentationTime seconds. When a segmentation style of "maintainCadence" is
                    selected and a segment is truncated due to an avail, we will not reset the
                    segmentation cadence. This means the subsequent segment will likely be truncated
                    as well. However, all segments after that will have a duration of
                    $segmentationTime seconds. Note that EBP lookahead is a slight exception to this
                    rule.

                    - **SegmentationTime** *(float) --* The length in seconds of each segment.
                    Required unless markers is set to None_.

                    - **TimedMetadataBehavior** *(string) --* When set to passthrough, timed
                    metadata will be passed through from input to output.

                    - **TimedMetadataPid** *(string) --* Packet Identifier (PID) of the timed
                    metadata stream in the transport stream. Can be entered as a decimal or
                    hexadecimal value. Valid values are 32 (or 0x20)..8182 (or 0x1ff6).

                    - **TransportStreamId** *(integer) --* The value of the transport stream ID
                    field in the Program Map Table.

                    - **VideoPid** *(string) --* Packet Identifier (PID) of the elementary video
                    stream in the transport stream. Can be entered as a decimal or hexadecimal
                    value. Valid values are 32 (or 0x20)..8182 (or 0x1ff6).

                - **Extension** *(string) --* Output file extension. If excluded, this will be
                auto-selected from the container type.

                - **NameModifier** *(string) --* String concatenated to the end of the destination
                filename. Required for multiple outputs of the same type.

              - **FrameCaptureOutputSettings** *(dict) --* Frame Capture Output Settings

                - **NameModifier** *(string) --* Required if the output group contains more than one
                output. This modifier forms part of the output file name.

              - **HlsOutputSettings** *(dict) --* Hls Output Settings

                - **HlsSettings** *(dict) --* Settings regarding the underlying stream. These
                settings are different for audio-only outputs.

                  - **AudioOnlyHlsSettings** *(dict) --* Audio Only Hls Settings

                    - **AudioGroupId** *(string) --* Specifies the group to which the audio
                    Rendition belongs.

                    - **AudioOnlyImage** *(dict) --* Optional. Specifies the .jpg or .png image to
                    use as the cover art for an audio-only output. We recommend a low bit-size file
                    because the image increases the output audio bandwidth. The image is attached to
                    the audio as an ID3 tag, frame type APIC, picture type 0x10, as per the "ID3 tag
                    version 2.4.0 - Native Frames" standard.

                      - **PasswordParam** *(string) --* key used to extract the password from EC2
                      Parameter store

                      - **Uri** *(string) --* Uniform Resource Identifier - This should be a path to
                      a file accessible to the Live system (eg. a http:// URI) depending on the
                      output type. For example, a RTMP destination should have a uri simliar to:
                      "rtmp://fmsserver/live".

                      - **Username** *(string) --* Documentation update needed

                    - **AudioTrackType** *(string) --* Four types of audio-only tracks are
                    supported: Audio-Only Variant Stream The client can play back this audio-only
                    stream instead of video in low-bandwidth scenarios. Represented as an
                    EXT-X-STREAM-INF in the HLS manifest. Alternate Audio, Auto Select, Default
                    Alternate rendition that the client should try to play back by default.
                    Represented as an EXT-X-MEDIA in the HLS manifest with DEFAULT=
                        YES,
                    AUTOSELECT=
                        YES Alternate Audio, Auto Select, Not Default Alternate rendition
                    that the client may try to play back by default. Represented as an EXT-X-MEDIA
                    in the HLS manifest with DEFAULT=NO, AUTOSELECT=
                        YES Alternate Audio, not Auto
                    Select Alternate rendition that the client will not try to play back by default.
                    Represented as an EXT-X-MEDIA in the HLS manifest with DEFAULT=
                        NO, AUTOSELECT=NO

                  - **StandardHlsSettings** *(dict) --* Standard Hls Settings

                    - **AudioRenditionSets** *(string) --* List all the audio groups that are used
                    with the video output stream. Input all the audio GROUP-IDs that are associated
                    to the video, separate by ','.

                    - **M3u8Settings** *(dict) --* Settings information for the .m3u8 container

                      - **AudioFramesPerPes** *(integer) --* The number of audio frames to insert
                      for each PES packet.

                      - **AudioPids** *(string) --* Packet Identifier (PID) of the elementary audio
                      stream(s) in the transport stream. Multiple values are accepted, and can be
                      entered in ranges and/or by comma separation. Can be entered as decimal or
                      hexadecimal values.

                      - **EcmPid** *(string) --* This parameter is unused and deprecated.

                      - **NielsenId3Behavior** *(string) --* If set to passthrough, Nielsen
                      inaudible tones for media tracking will be detected in the input audio and an
                      equivalent ID3 tag will be inserted in the output.

                      - **PatInterval** *(integer) --* The number of milliseconds between instances
                      of this table in the output transport stream. A value of \\"0\\" writes out
                      the PMT once per segment file.

                      - **PcrControl** *(string) --* When set to pcrEveryPesPacket, a Program Clock
                      Reference value is inserted for every Packetized Elementary Stream (PES)
                      header. This parameter is effective only when the PCR PID is the same as the
                      video or audio elementary stream.

                      - **PcrPeriod** *(integer) --* Maximum time in milliseconds between Program
                      Clock References (PCRs) inserted into the transport stream.

                      - **PcrPid** *(string) --* Packet Identifier (PID) of the Program Clock
                      Reference (PCR) in the transport stream. When no value is given, the encoder
                      will assign the same value as the Video PID. Can be entered as a decimal or
                      hexadecimal value.

                      - **PmtInterval** *(integer) --* The number of milliseconds between instances
                      of this table in the output transport stream. A value of \\"0\\" writes out
                      the PMT once per segment file.

                      - **PmtPid** *(string) --* Packet Identifier (PID) for the Program Map Table
                      (PMT) in the transport stream. Can be entered as a decimal or hexadecimal
                      value.

                      - **ProgramNum** *(integer) --* The value of the program number field in the
                      Program Map Table.

                      - **Scte35Behavior** *(string) --* If set to passthrough, passes any SCTE-35
                      signals from the input source to this output.

                      - **Scte35Pid** *(string) --* Packet Identifier (PID) of the SCTE-35 stream in
                      the transport stream. Can be entered as a decimal or hexadecimal value.

                      - **TimedMetadataBehavior** *(string) --* When set to passthrough, timed
                      metadata is passed through from input to output.

                      - **TimedMetadataPid** *(string) --* Packet Identifier (PID) of the timed
                      metadata stream in the transport stream. Can be entered as a decimal or
                      hexadecimal value. Valid values are 32 (or 0x20)..8182 (or 0x1ff6).

                      - **TransportStreamId** *(integer) --* The value of the transport stream ID
                      field in the Program Map Table.

                      - **VideoPid** *(string) --* Packet Identifier (PID) of the elementary video
                      stream in the transport stream. Can be entered as a decimal or hexadecimal
                      value.

                - **NameModifier** *(string) --* String concatenated to the end of the destination
                filename. Accepts \\"Format Identifiers\\":#formatIdentifierParameters.

                - **SegmentModifier** *(string) --* String concatenated to end of segment filenames.

              - **MediaPackageOutputSettings** *(dict) --* Media Package Output Settings

              - **MsSmoothOutputSettings** *(dict) --* Ms Smooth Output Settings

                - **H265PackagingType** *(string) --* Only applicable when this output is
                referencing an H.265 video description. Specifies whether MP4 segments should be
                packaged as HEV1 or HVC1.

                - **NameModifier** *(string) --* String concatenated to the end of the destination
                filename. Required for multiple outputs of the same type.

              - **MultiplexOutputSettings** *(dict) --* Multiplex Output Settings

                - **Destination** *(dict) --* Destination is a Multiplex.

                  - **DestinationRefId** *(string) --* Placeholder documentation for __string

              - **RtmpOutputSettings** *(dict) --* Rtmp Output Settings

                - **CertificateMode** *(string) --* If set to verifyAuthenticity, verify the tls
                certificate chain to a trusted Certificate Authority (CA). This will cause rtmps
                outputs with self-signed certificates to fail.

                - **ConnectionRetryInterval** *(integer) --* Number of seconds to wait before
                retrying a connection to the Flash Media server if the connection is lost.

                - **Destination** *(dict) --* The RTMP endpoint excluding the stream name (eg.
                rtmp://host/appname). For connection to Akamai, a username and password must be
                supplied. URI fields accept format identifiers.

                  - **DestinationRefId** *(string) --* Placeholder documentation for __string

                - **NumRetries** *(integer) --* Number of retry attempts.

              - **UdpOutputSettings** *(dict) --* Udp Output Settings

                - **BufferMsec** *(integer) --* UDP output buffering in milliseconds. Larger values
                increase latency through the transcoder but simultaneously assist the transcoder in
                maintaining a constant, low-jitter UDP/RTP output while accommodating clock
                recovery, input switching, input disruptions, picture reordering, etc.

                - **ContainerSettings** *(dict) --* Udp Container Settings

                  - **M2tsSettings** *(dict) --* M2ts Settings

                    - **AbsentInputAudioBehavior** *(string) --* When set to drop, output audio
                    streams will be removed from the program if the selected input audio stream is
                    removed from the input. This allows the output audio configuration to
                    dynamically change based on input configuration. If this is set to
                    encodeSilence, all output audio streams will output encoded silence when not
                    connected to an active input stream.

                    - **Arib** *(string) --* When set to enabled, uses ARIB-compliant field muxing
                    and removes video descriptor.

                    - **AribCaptionsPid** *(string) --* Packet Identifier (PID) for ARIB Captions in
                    the transport stream. Can be entered as a decimal or hexadecimal value. Valid
                    values are 32 (or 0x20)..8182 (or 0x1ff6).

                    - **AribCaptionsPidControl** *(string) --* If set to auto, pid number used for
                    ARIB Captions will be auto-selected from unused pids. If set to useConfigured,
                    ARIB Captions will be on the configured pid number.

                    - **AudioBufferModel** *(string) --* When set to dvb, uses DVB buffer model for
                    Dolby Digital audio. When set to atsc, the ATSC model is used.

                    - **AudioFramesPerPes** *(integer) --* The number of audio frames to insert for
                    each PES packet.

                    - **AudioPids** *(string) --* Packet Identifier (PID) of the elementary audio
                    stream(s) in the transport stream. Multiple values are accepted, and can be
                    entered in ranges and/or by comma separation. Can be entered as decimal or
                    hexadecimal values. Each PID specified must be in the range of 32 (or
                    0x20)..8182 (or 0x1ff6).

                    - **AudioStreamType** *(string) --* When set to atsc, uses stream type = 0x81
                    for AC3 and stream type =
                         0x87 for EAC3. When set to dvb, uses stream type =
                    0x06.

                    - **Bitrate** *(integer) --* The output bitrate of the transport stream in bits
                    per second. Setting to 0 lets the muxer automatically determine the appropriate
                    bitrate.

                    - **BufferModel** *(string) --* If set to multiplex, use multiplex buffer model
                    for accurate interleaving. Setting to bufferModel to none can lead to lower
                    latency, but low-memory devices may not be able to play back the stream without
                    interruptions.

                    - **CcDescriptor** *(string) --* When set to enabled, generates
                    captionServiceDescriptor in PMT.

                    - **DvbNitSettings** *(dict) --* Inserts DVB Network Information Table (NIT) at
                    the specified table repetition interval.

                      - **NetworkId** *(integer) --* The numeric value placed in the Network
                      Information Table (NIT).

                      - **NetworkName** *(string) --* The network name text placed in the
                      networkNameDescriptor inside the Network Information Table. Maximum length is
                      256 characters.

                      - **RepInterval** *(integer) --* The number of milliseconds between instances
                      of this table in the output transport stream.

                    - **DvbSdtSettings** *(dict) --* Inserts DVB Service Description Table (SDT) at
                    the specified table repetition interval.

                      - **OutputSdt** *(string) --* Selects method of inserting SDT information into
                      output stream. The sdtFollow setting copies SDT information from input stream
                      to output stream. The sdtFollowIfPresent setting copies SDT information from
                      input stream to output stream if SDT information is present in the input,
                      otherwise it will fall back on the user-defined values. The sdtManual setting
                      means user will enter the SDT information. The sdtNone setting means output
                      stream will not contain SDT information.

                      - **RepInterval** *(integer) --* The number of milliseconds between instances
                      of this table in the output transport stream.

                      - **ServiceName** *(string) --* The service name placed in the
                      serviceDescriptor in the Service Description Table. Maximum length is 256
                      characters.

                      - **ServiceProviderName** *(string) --* The service provider name placed in
                      the serviceDescriptor in the Service Description Table. Maximum length is 256
                      characters.

                    - **DvbSubPids** *(string) --* Packet Identifier (PID) for input source DVB
                    Subtitle data to this output. Multiple values are accepted, and can be entered
                    in ranges and/or by comma separation. Can be entered as decimal or hexadecimal
                    values. Each PID specified must be in the range of 32 (or 0x20)..8182 (or
                    0x1ff6).

                    - **DvbTdtSettings** *(dict) --* Inserts DVB Time and Date Table (TDT) at the
                    specified table repetition interval.

                      - **RepInterval** *(integer) --* The number of milliseconds between instances
                      of this table in the output transport stream.

                    - **DvbTeletextPid** *(string) --* Packet Identifier (PID) for input source DVB
                    Teletext data to this output. Can be entered as a decimal or hexadecimal value.
                    Valid values are 32 (or 0x20)..8182 (or 0x1ff6).

                    - **Ebif** *(string) --* If set to passthrough, passes any EBIF data from the
                    input source to this output.

                    - **EbpAudioInterval** *(string) --* When videoAndFixedIntervals is selected,
                    audio EBP markers will be added to partitions 3 and 4. The interval between
                    these additional markers will be fixed, and will be slightly shorter than the
                    video EBP marker interval. Only available when EBP Cablelabs segmentation
                    markers are selected. Partitions 1 and 2 will always follow the video interval.

                    - **EbpLookaheadMs** *(integer) --* When set, enforces that Encoder Boundary
                    Points do not come within the specified time interval of each other by looking
                    ahead at input video. If another EBP is going to come in within the specified
                    time interval, the current EBP is not emitted, and the segment is "stretched" to
                    the next marker. The lookahead value does not add latency to the system. The
                    Live Event must be configured elsewhere to create sufficient latency to make the
                    lookahead accurate.

                    - **EbpPlacement** *(string) --* Controls placement of EBP on Audio PIDs. If set
                    to videoAndAudioPids, EBP markers will be placed on the video PID and all audio
                    PIDs. If set to videoPid, EBP markers will be placed on only the video PID.

                    - **EcmPid** *(string) --* This field is unused and deprecated.

                    - **EsRateInPes** *(string) --* Include or exclude the ES Rate field in the PES
                    header.

                    - **EtvPlatformPid** *(string) --* Packet Identifier (PID) for input source ETV
                    Platform data to this output. Can be entered as a decimal or hexadecimal value.
                    Valid values are 32 (or 0x20)..8182 (or 0x1ff6).

                    - **EtvSignalPid** *(string) --* Packet Identifier (PID) for input source ETV
                    Signal data to this output. Can be entered as a decimal or hexadecimal value.
                    Valid values are 32 (or 0x20)..8182 (or 0x1ff6).

                    - **FragmentTime** *(float) --* The length in seconds of each fragment. Only
                    used with EBP markers.

                    - **Klv** *(string) --* If set to passthrough, passes any KLV data from the
                    input source to this output.

                    - **KlvDataPids** *(string) --* Packet Identifier (PID) for input source KLV
                    data to this output. Multiple values are accepted, and can be entered in ranges
                    and/or by comma separation. Can be entered as decimal or hexadecimal values.
                    Each PID specified must be in the range of 32 (or 0x20)..8182 (or 0x1ff6).

                    - **NielsenId3Behavior** *(string) --* If set to passthrough, Nielsen inaudible
                    tones for media tracking will be detected in the input audio and an equivalent
                    ID3 tag will be inserted in the output.

                    - **NullPacketBitrate** *(float) --* Value in bits per second of extra null
                    packets to insert into the transport stream. This can be used if a downstream
                    encryption system requires periodic null packets.

                    - **PatInterval** *(integer) --* The number of milliseconds between instances of
                    this table in the output transport stream. Valid values are 0, 10..1000.

                    - **PcrControl** *(string) --* When set to pcrEveryPesPacket, a Program Clock
                    Reference value is inserted for every Packetized Elementary Stream (PES) header.
                    This parameter is effective only when the PCR PID is the same as the video or
                    audio elementary stream.

                    - **PcrPeriod** *(integer) --* Maximum time in milliseconds between Program
                    Clock Reference (PCRs) inserted into the transport stream.

                    - **PcrPid** *(string) --* Packet Identifier (PID) of the Program Clock
                    Reference (PCR) in the transport stream. When no value is given, the encoder
                    will assign the same value as the Video PID. Can be entered as a decimal or
                    hexadecimal value. Valid values are 32 (or 0x20)..8182 (or 0x1ff6).

                    - **PmtInterval** *(integer) --* The number of milliseconds between instances of
                    this table in the output transport stream. Valid values are 0, 10..1000.

                    - **PmtPid** *(string) --* Packet Identifier (PID) for the Program Map Table
                    (PMT) in the transport stream. Can be entered as a decimal or hexadecimal value.
                    Valid values are 32 (or 0x20)..8182 (or 0x1ff6).

                    - **ProgramNum** *(integer) --* The value of the program number field in the
                    Program Map Table.

                    - **RateMode** *(string) --* When vbr, does not insert null packets into
                    transport stream to fill specified bitrate. The bitrate setting acts as the
                    maximum bitrate when vbr is set.

                    - **Scte27Pids** *(string) --* Packet Identifier (PID) for input source SCTE-27
                    data to this output. Multiple values are accepted, and can be entered in ranges
                    and/or by comma separation. Can be entered as decimal or hexadecimal values.
                    Each PID specified must be in the range of 32 (or 0x20)..8182 (or 0x1ff6).

                    - **Scte35Control** *(string) --* Optionally pass SCTE-35 signals from the input
                    source to this output.

                    - **Scte35Pid** *(string) --* Packet Identifier (PID) of the SCTE-35 stream in
                    the transport stream. Can be entered as a decimal or hexadecimal value. Valid
                    values are 32 (or 0x20)..8182 (or 0x1ff6).

                    - **SegmentationMarkers** *(string) --* Inserts segmentation markers at each
                    segmentationTime period. raiSegstart sets the Random Access Indicator bit in the
                    adaptation field. raiAdapt sets the RAI bit and adds the current timecode in the
                    private data bytes. psiSegstart inserts PAT and PMT tables at the start of
                    segments. ebp adds Encoder Boundary Point information to the adaptation field as
                    per OpenCable specification OC-SP-EBP-I01-130118. ebpLegacy adds Encoder
                    Boundary Point information to the adaptation field using a legacy proprietary
                    format.

                    - **SegmentationStyle** *(string) --* The segmentation style parameter controls
                    how segmentation markers are inserted into the transport stream. With avails, it
                    is possible that segments may be truncated, which can influence where future
                    segmentation markers are inserted. When a segmentation style of "resetCadence"
                    is selected and a segment is truncated due to an avail, we will reset the
                    segmentation cadence. This means the subsequent segment will have a duration of
                    $segmentationTime seconds. When a segmentation style of "maintainCadence" is
                    selected and a segment is truncated due to an avail, we will not reset the
                    segmentation cadence. This means the subsequent segment will likely be truncated
                    as well. However, all segments after that will have a duration of
                    $segmentationTime seconds. Note that EBP lookahead is a slight exception to this
                    rule.

                    - **SegmentationTime** *(float) --* The length in seconds of each segment.
                    Required unless markers is set to None_.

                    - **TimedMetadataBehavior** *(string) --* When set to passthrough, timed
                    metadata will be passed through from input to output.

                    - **TimedMetadataPid** *(string) --* Packet Identifier (PID) of the timed
                    metadata stream in the transport stream. Can be entered as a decimal or
                    hexadecimal value. Valid values are 32 (or 0x20)..8182 (or 0x1ff6).

                    - **TransportStreamId** *(integer) --* The value of the transport stream ID
                    field in the Program Map Table.

                    - **VideoPid** *(string) --* Packet Identifier (PID) of the elementary video
                    stream in the transport stream. Can be entered as a decimal or hexadecimal
                    value. Valid values are 32 (or 0x20)..8182 (or 0x1ff6).

                - **Destination** *(dict) --* Destination address and port number for RTP or UDP
                packets. Can be unicast or multicast RTP or UDP (eg. rtp://239.10.10.10:5001 or
                udp://10.100.100.100:5002).

                  - **DestinationRefId** *(string) --* Placeholder documentation for __string

                - **FecOutputSettings** *(dict) --* Settings for enabling and adjusting Forward
                Error Correction on UDP outputs.

                  - **ColumnDepth** *(integer) --* Parameter D from SMPTE 2022-1. The height of the
                  FEC protection matrix. The number of transport stream packets per column error
                  correction packet. Must be between 4 and 20, inclusive.

                  - **IncludeFec** *(string) --* Enables column only or column and row based FEC

                  - **RowLength** *(integer) --* Parameter L from SMPTE 2022-1. The width of the FEC
                  protection matrix. Must be between 1 and 20, inclusive. If only Column FEC is
                  used, then larger values increase robustness. If Row FEC is used, then this is the
                  number of transport stream packets per row error correction packet, and the value
                  must be between 4 and 20, inclusive, if includeFec is columnAndRow. If includeFec
                  is column, this value must be 1 to 20, inclusive.

            - **VideoDescriptionName** *(string) --* The name of the VideoDescription used as the
            source for this output.

    - **TimecodeConfig** *(dict) --* Contains settings used to acquire and adjust timecode
    information from inputs.

      - **Source** *(string) --* Identifies the source for the timecode that will be associated with
      the events outputs. -Embedded (embedded): Initialize the output timecode with timecode from
      the the source. If no embedded timecode is detected in the source, the system falls back to
      using "Start at 0" (zerobased). -System Clock (systemclock): Use the UTC time. -Start at 0
      (zerobased): The time of the first frame of the event will be 00:00:00:00.

      - **SyncThreshold** *(integer) --* Threshold in frames beyond which output timecode is
      resynchronized to the input timecode. Discrepancies below this threshold are permitted to
      avoid unnecessary discontinuities in the output timecode. No timecode sync when this is not
      specified.

    - **VideoDescriptions** *(list) --* Placeholder documentation for __listOfVideoDescription

      - *(dict) --* Video settings for this stream.

        - **CodecSettings** *(dict) --* Video codec settings.

          - **FrameCaptureSettings** *(dict) --* Frame Capture Settings

            - **CaptureInterval** *(integer) --* The frequency at which to capture frames for
            inclusion in the output. May be specified in either seconds or milliseconds, as
            specified by captureIntervalUnits.

          - **H264Settings** *(dict) --* H264 Settings

            - **AdaptiveQuantization** *(string) --* Adaptive quantization. Allows intra-frame
            quantizers to vary to improve visual quality.

            - **AfdSignaling** *(string) --* Indicates that AFD values will be written into the
            output stream. If afdSignaling is "auto", the system will try to preserve the input AFD
            value (in cases where multiple AFD values are valid). If set to "fixed", the AFD value
            will be the value configured in the fixedAfd parameter.

            - **Bitrate** *(integer) --* Average bitrate in bits/second. Required when the rate
            control mode is VBR or CBR. Not used for QVBR. In an MS Smooth output group, each output
            must have a unique value when its bitrate is rounded down to the nearest multiple of
            1000.

            - **BufFillPct** *(integer) --* Percentage of the buffer that should initially be filled
            (HRD buffer model).

            - **BufSize** *(integer) --* Size of buffer (HRD buffer model) in bits.

            - **ColorMetadata** *(string) --* Includes colorspace metadata in the output.

            - **ColorSpaceSettings** *(dict) --* Color Space settings

              - **ColorSpacePassthroughSettings** *(dict) --* Passthrough applies no color space
              conversion to the output

              - **Rec601Settings** *(dict) --* Rec601 Settings

              - **Rec709Settings** *(dict) --* Rec709 Settings

            - **EntropyEncoding** *(string) --* Entropy encoding mode. Use cabac (must be in Main or
            High profile) or cavlc.

            - **FixedAfd** *(string) --* Four bit AFD value to write on all frames of video in the
            output stream. Only valid when afdSignaling is set to 'Fixed'.

            - **FlickerAq** *(string) --* If set to enabled, adjust quantization within each frame
            to reduce flicker or 'pop' on I-frames.

            - **FramerateControl** *(string) --* This field indicates how the output video frame
            rate is specified. If "specified" is selected then the output video frame rate is
            determined by framerateNumerator and framerateDenominator, else if
            "initializeFromSource" is selected then the output video frame rate will be set equal to
            the input video frame rate of the first input.

            - **FramerateDenominator** *(integer) --* Framerate denominator.

            - **FramerateNumerator** *(integer) --* Framerate numerator - framerate is a fraction,
            e.g. 24000 / 1001 = 23.976 fps.

            - **GopBReference** *(string) --* Documentation update needed

            - **GopClosedCadence** *(integer) --* Frequency of closed GOPs. In streaming
            applications, it is recommended that this be set to 1 so a decoder joining mid-stream
            will receive an IDR frame as quickly as possible. Setting this value to 0 will break
            output segmenting.

            - **GopNumBFrames** *(integer) --* Number of B-frames between reference frames.

            - **GopSize** *(float) --* GOP size (keyframe interval) in units of either frames or
            seconds per gopSizeUnits. If gopSizeUnits is frames, gopSize must be an integer and must
            be greater than or equal to 1. If gopSizeUnits is seconds, gopSize must be greater than
            0, but need not be an integer.

            - **GopSizeUnits** *(string) --* Indicates if the gopSize is specified in frames or
            seconds. If seconds the system will convert the gopSize into a frame count at run time.

            - **Level** *(string) --* H.264 Level.

            - **LookAheadRateControl** *(string) --* Amount of lookahead. A value of low can
            decrease latency and memory usage, while high can produce better quality for certain
            content.

            - **MaxBitrate** *(integer) --* For QVBR: See the tooltip for Quality level For VBR: Set
            the maximum bitrate in order to accommodate expected spikes in the complexity of the
            video.

            - **MinIInterval** *(integer) --* Only meaningful if sceneChangeDetect is set to
            enabled. Defaults to 5 if multiplex rate control is used. Enforces separation between
            repeated (cadence) I-frames and I-frames inserted by Scene Change Detection. If a scene
            change I-frame is within I-interval frames of a cadence I-frame, the GOP is shrunk
            and/or stretched to the scene change I-frame. GOP stretch requires enabling lookahead as
            well as setting I-interval. The normal cadence resumes for the next GOP. Note: Maximum
            GOP stretch = GOP size + Min-I-interval - 1

            - **NumRefFrames** *(integer) --* Number of reference frames to use. The encoder may use
            more than requested if using B-frames and/or interlaced encoding.

            - **ParControl** *(string) --* This field indicates how the output pixel aspect ratio is
            specified. If "specified" is selected then the output video pixel aspect ratio is
            determined by parNumerator and parDenominator, else if "initializeFromSource" is
            selected then the output pixsel aspect ratio will be set equal to the input video pixel
            aspect ratio of the first input.

            - **ParDenominator** *(integer) --* Pixel Aspect Ratio denominator.

            - **ParNumerator** *(integer) --* Pixel Aspect Ratio numerator.

            - **Profile** *(string) --* H.264 Profile.

            - **QvbrQualityLevel** *(integer) --* Controls the target quality for the video encode.
            Applies only when the rate control mode is QVBR. Set values for the QVBR quality level
            field and Max bitrate field that suit your most important viewing devices. Recommended
            values are: - Primary screen: Quality level: 8 to 10. Max bitrate: 4M - PC or tablet:
            Quality level: 7. Max bitrate: 1.5M to 3M - Smartphone: Quality level: 6. Max bitrate:
            1M to 1.5M

            - **RateControlMode** *(string) --* Rate control mode. QVBR: Quality will match the
            specified quality level except when it is constrained by the maximum bitrate.
            Recommended if you or your viewers pay for bandwidth. VBR: Quality and bitrate vary,
            depending on the video complexity. Recommended instead of QVBR if you want to maintain a
            specific average bitrate over the duration of the channel. CBR: Quality varies,
            depending on the video complexity. Recommended only if you distribute your assets to
            devices that cannot handle variable bitrates.

            - **ScanType** *(string) --* Sets the scan type of the output to progressive or
            top-field-first interlaced.

            - **SceneChangeDetect** *(string) --* Scene change detection. - On: inserts I-frames
            when scene change is detected. - Off: does not force an I-frame when scene change is
            detected.

            - **Slices** *(integer) --* Number of slices per picture. Must be less than or equal to
            the number of macroblock rows for progressive pictures, and less than or equal to half
            the number of macroblock rows for interlaced pictures. This field is optional; when no
            value is specified the encoder will choose the number of slices based on encode
            resolution.

            - **Softness** *(integer) --* Softness. Selects quantizer matrix, larger values reduce
            high-frequency content in the encoded image.

            - **SpatialAq** *(string) --* If set to enabled, adjust quantization within each frame
            based on spatial variation of content complexity.

            - **SubgopLength** *(string) --* If set to fixed, use gopNumBFrames B-frames per
            sub-GOP. If set to dynamic, optimize the number of B-frames used for each sub-GOP to
            improve visual quality.

            - **Syntax** *(string) --* Produces a bitstream compliant with SMPTE RP-2027.

            - **TemporalAq** *(string) --* If set to enabled, adjust quantization within each frame
            based on temporal variation of content complexity.

            - **TimecodeInsertion** *(string) --* Determines how timecodes should be inserted into
            the video elementary stream. - 'disabled': Do not include timecodes - 'picTimingSei':
            Pass through picture timing SEI messages from the source specified in Timecode Config

          - **H265Settings** *(dict) --* H265 Settings

            - **AdaptiveQuantization** *(string) --* Adaptive quantization. Allows intra-frame
            quantizers to vary to improve visual quality.

            - **AfdSignaling** *(string) --* Indicates that AFD values will be written into the
            output stream. If afdSignaling is "auto", the system will try to preserve the input AFD
            value (in cases where multiple AFD values are valid). If set to "fixed", the AFD value
            will be the value configured in the fixedAfd parameter.

            - **AlternativeTransferFunction** *(string) --* Whether or not EML should insert an
            Alternative Transfer Function SEI message to support backwards compatibility with
            non-HDR decoders and displays.

            - **Bitrate** *(integer) --* Average bitrate in bits/second. Required when the rate
            control mode is VBR or CBR. Not used for QVBR. In an MS Smooth output group, each output
            must have a unique value when its bitrate is rounded down to the nearest multiple of
            1000.

            - **BufSize** *(integer) --* Size of buffer (HRD buffer model) in bits.

            - **ColorMetadata** *(string) --* Includes colorspace metadata in the output.

            - **ColorSpaceSettings** *(dict) --* Color Space settings

              - **ColorSpacePassthroughSettings** *(dict) --* Passthrough applies no color space
              conversion to the output

              - **Hdr10Settings** *(dict) --* Hdr10 Settings

                - **MaxCll** *(integer) --* Maximum Content Light Level An integer metadata value
                defining the maximum light level, in nits, of any single pixel within an encoded HDR
                video stream or file.

                - **MaxFall** *(integer) --* Maximum Frame Average Light Level An integer metadata
                value defining the maximum average light level, in nits, for any single frame within
                an encoded HDR video stream or file.

              - **Rec601Settings** *(dict) --* Rec601 Settings

              - **Rec709Settings** *(dict) --* Rec709 Settings

            - **FixedAfd** *(string) --* Four bit AFD value to write on all frames of video in the
            output stream. Only valid when afdSignaling is set to 'Fixed'.

            - **FlickerAq** *(string) --* If set to enabled, adjust quantization within each frame
            to reduce flicker or 'pop' on I-frames.

            - **FramerateDenominator** *(integer) --* Framerate denominator.

            - **FramerateNumerator** *(integer) --* Framerate numerator - framerate is a fraction,
            e.g. 24000 / 1001 = 23.976 fps.

            - **GopClosedCadence** *(integer) --* Frequency of closed GOPs. In streaming
            applications, it is recommended that this be set to 1 so a decoder joining mid-stream
            will receive an IDR frame as quickly as possible. Setting this value to 0 will break
            output segmenting.

            - **GopSize** *(float) --* GOP size (keyframe interval) in units of either frames or
            seconds per gopSizeUnits. If gopSizeUnits is frames, gopSize must be an integer and must
            be greater than or equal to 1. If gopSizeUnits is seconds, gopSize must be greater than
            0, but need not be an integer.

            - **GopSizeUnits** *(string) --* Indicates if the gopSize is specified in frames or
            seconds. If seconds the system will convert the gopSize into a frame count at run time.

            - **Level** *(string) --* H.265 Level.

            - **LookAheadRateControl** *(string) --* Amount of lookahead. A value of low can
            decrease latency and memory usage, while high can produce better quality for certain
            content.

            - **MaxBitrate** *(integer) --* For QVBR: See the tooltip for Quality level

            - **MinIInterval** *(integer) --* Only meaningful if sceneChangeDetect is set to
            enabled. Defaults to 5 if multiplex rate control is used. Enforces separation between
            repeated (cadence) I-frames and I-frames inserted by Scene Change Detection. If a scene
            change I-frame is within I-interval frames of a cadence I-frame, the GOP is shrunk
            and/or stretched to the scene change I-frame. GOP stretch requires enabling lookahead as
            well as setting I-interval. The normal cadence resumes for the next GOP. Note: Maximum
            GOP stretch = GOP size + Min-I-interval - 1

            - **ParDenominator** *(integer) --* Pixel Aspect Ratio denominator.

            - **ParNumerator** *(integer) --* Pixel Aspect Ratio numerator.

            - **Profile** *(string) --* H.265 Profile.

            - **QvbrQualityLevel** *(integer) --* Controls the target quality for the video encode.
            Applies only when the rate control mode is QVBR. Set values for the QVBR quality level
            field and Max bitrate field that suit your most important viewing devices. Recommended
            values are: - Primary screen: Quality level: 8 to 10. Max bitrate: 4M - PC or tablet:
            Quality level: 7. Max bitrate: 1.5M to 3M - Smartphone: Quality level: 6. Max bitrate:
            1M to 1.5M

            - **RateControlMode** *(string) --* Rate control mode. QVBR: Quality will match the
            specified quality level except when it is constrained by the maximum bitrate.
            Recommended if you or your viewers pay for bandwidth. CBR: Quality varies, depending on
            the video complexity. Recommended only if you distribute your assets to devices that
            cannot handle variable bitrates.

            - **ScanType** *(string) --* Sets the scan type of the output to progressive or
            top-field-first interlaced.

            - **SceneChangeDetect** *(string) --* Scene change detection.

            - **Slices** *(integer) --* Number of slices per picture. Must be less than or equal to
            the number of macroblock rows for progressive pictures, and less than or equal to half
            the number of macroblock rows for interlaced pictures. This field is optional; when no
            value is specified the encoder will choose the number of slices based on encode
            resolution.

            - **Tier** *(string) --* H.265 Tier.

            - **TimecodeInsertion** *(string) --* Determines how timecodes should be inserted into
            the video elementary stream. - 'disabled': Do not include timecodes - 'picTimingSei':
            Pass through picture timing SEI messages from the source specified in Timecode Config

        - **Height** *(integer) --* Output video height, in pixels. Must be an even number. For most
        codecs, you can leave this field and width blank in order to use the height and width
        (resolution) from the source. Note, however, that leaving blank is not recommended. For the
        Frame Capture codec, height and width are required.

        - **Name** *(string) --* The name of this VideoDescription. Outputs will use this name to
        uniquely identify this Description. Description names should be unique within this Live
        Event.

        - **RespondToAfd** *(string) --* Indicates how to respond to the AFD values in the input
        stream. RESPOND causes input video to be clipped, depending on the AFD value, input display
        aspect ratio, and output display aspect ratio, and (except for FRAMECAPTURE codec) includes
        the values in the output. PASSTHROUGH (does not apply to FRAMECAPTURE codec) ignores the AFD
        values and includes the values in the output, so input video is not clipped. NONE ignores
        the AFD values and does not include the values through to the output, so input video is not
        clipped.

        - **ScalingBehavior** *(string) --* STRETCHTOOUTPUT configures the output position to
        stretch the video to the specified output resolution (height and width). This option will
        override any position value. DEFAULT may insert black boxes (pillar boxes or letter boxes)
        around the video to provide the specified output resolution.

        - **Sharpness** *(integer) --* Changes the strength of the anti-alias filter used for
        scaling. 0 is the softest setting, 100 is the sharpest. A setting of 50 is recommended for
        most content.

        - **Width** *(integer) --* Output video width, in pixels. Must be an even number. For most
        codecs, you can leave this field and height blank in order to use the height and width
        (resolution) from the source. Note, however, that leaving blank is not recommended. For the
        Frame Capture codec, height and width are required.
    """


_ClientDeleteChannelResponseInputAttachmentsInputSettingsAudioSelectorsSelectorSettingsAudioLanguageSelectionTypeDef = TypedDict(
    "_ClientDeleteChannelResponseInputAttachmentsInputSettingsAudioSelectorsSelectorSettingsAudioLanguageSelectionTypeDef",
    {"LanguageCode": str, "LanguageSelectionPolicy": str},
    total=False,
)


class ClientDeleteChannelResponseInputAttachmentsInputSettingsAudioSelectorsSelectorSettingsAudioLanguageSelectionTypeDef(
    _ClientDeleteChannelResponseInputAttachmentsInputSettingsAudioSelectorsSelectorSettingsAudioLanguageSelectionTypeDef
):
    """
    Type definition for
    `ClientDeleteChannelResponseInputAttachmentsInputSettingsAudioSelectorsSelectorSettings`
    `AudioLanguageSelection`

    - **LanguageCode** *(string) --* Selects a specific three-letter language code from within an
    audio source.

    - **LanguageSelectionPolicy** *(string) --* When set to "strict", the transport stream demux
    strictly identifies audio streams by their language descriptor. If a PMT update occurs such that
    an audio stream matching the initially selected language is no longer present then mute will be
    encoded until the language returns. If "loose", then on a PMT update the demux will choose
    another audio stream in the program with the same stream type if it can't find one with the same
    language.
    """


_ClientDeleteChannelResponseInputAttachmentsInputSettingsAudioSelectorsSelectorSettingsAudioPidSelectionTypeDef = TypedDict(
    "_ClientDeleteChannelResponseInputAttachmentsInputSettingsAudioSelectorsSelectorSettingsAudioPidSelectionTypeDef",
    {"Pid": int},
    total=False,
)


class ClientDeleteChannelResponseInputAttachmentsInputSettingsAudioSelectorsSelectorSettingsAudioPidSelectionTypeDef(
    _ClientDeleteChannelResponseInputAttachmentsInputSettingsAudioSelectorsSelectorSettingsAudioPidSelectionTypeDef
):
    """
    Type definition for
    `ClientDeleteChannelResponseInputAttachmentsInputSettingsAudioSelectorsSelectorSettings`
    `AudioPidSelection`

    - **Pid** *(integer) --* Selects a specific PID from within a source.
    """


_ClientDeleteChannelResponseInputAttachmentsInputSettingsAudioSelectorsSelectorSettingsTypeDef = TypedDict(
    "_ClientDeleteChannelResponseInputAttachmentsInputSettingsAudioSelectorsSelectorSettingsTypeDef",
    {
        "AudioLanguageSelection": ClientDeleteChannelResponseInputAttachmentsInputSettingsAudioSelectorsSelectorSettingsAudioLanguageSelectionTypeDef,
        "AudioPidSelection": ClientDeleteChannelResponseInputAttachmentsInputSettingsAudioSelectorsSelectorSettingsAudioPidSelectionTypeDef,
    },
    total=False,
)


class ClientDeleteChannelResponseInputAttachmentsInputSettingsAudioSelectorsSelectorSettingsTypeDef(
    _ClientDeleteChannelResponseInputAttachmentsInputSettingsAudioSelectorsSelectorSettingsTypeDef
):
    """
    Type definition for `ClientDeleteChannelResponseInputAttachmentsInputSettingsAudioSelectors`
    `SelectorSettings`

    - **AudioLanguageSelection** *(dict) --* Audio Language Selection

      - **LanguageCode** *(string) --* Selects a specific three-letter language code from within an
      audio source.

      - **LanguageSelectionPolicy** *(string) --* When set to "strict", the transport stream demux
      strictly identifies audio streams by their language descriptor. If a PMT update occurs such
      that an audio stream matching the initially selected language is no longer present then mute
      will be encoded until the language returns. If "loose", then on a PMT update the demux will
      choose another audio stream in the program with the same stream type if it can't find one with
      the same language.

    - **AudioPidSelection** *(dict) --* Audio Pid Selection

      - **Pid** *(integer) --* Selects a specific PID from within a source.
    """


_ClientDeleteChannelResponseInputAttachmentsInputSettingsAudioSelectorsTypeDef = TypedDict(
    "_ClientDeleteChannelResponseInputAttachmentsInputSettingsAudioSelectorsTypeDef",
    {
        "Name": str,
        "SelectorSettings": ClientDeleteChannelResponseInputAttachmentsInputSettingsAudioSelectorsSelectorSettingsTypeDef,
    },
    total=False,
)


class ClientDeleteChannelResponseInputAttachmentsInputSettingsAudioSelectorsTypeDef(
    _ClientDeleteChannelResponseInputAttachmentsInputSettingsAudioSelectorsTypeDef
):
    """
    Type definition for `ClientDeleteChannelResponseInputAttachmentsInputSettings` `AudioSelectors`

    - **Name** *(string) --* The name of this AudioSelector. AudioDescriptions will use this name to
    uniquely identify this Selector. Selector names should be unique per input.

    - **SelectorSettings** *(dict) --* The audio selector settings.

      - **AudioLanguageSelection** *(dict) --* Audio Language Selection

        - **LanguageCode** *(string) --* Selects a specific three-letter language code from within
        an audio source.

        - **LanguageSelectionPolicy** *(string) --* When set to "strict", the transport stream demux
        strictly identifies audio streams by their language descriptor. If a PMT update occurs such
        that an audio stream matching the initially selected language is no longer present then mute
        will be encoded until the language returns. If "loose", then on a PMT update the demux will
        choose another audio stream in the program with the same stream type if it can't find one
        with the same language.

      - **AudioPidSelection** *(dict) --* Audio Pid Selection

        - **Pid** *(integer) --* Selects a specific PID from within a source.
    """


_ClientDeleteChannelResponseInputAttachmentsInputSettingsCaptionSelectorsSelectorSettingsDvbSubSourceSettingsTypeDef = TypedDict(
    "_ClientDeleteChannelResponseInputAttachmentsInputSettingsCaptionSelectorsSelectorSettingsDvbSubSourceSettingsTypeDef",
    {"Pid": int},
    total=False,
)


class ClientDeleteChannelResponseInputAttachmentsInputSettingsCaptionSelectorsSelectorSettingsDvbSubSourceSettingsTypeDef(
    _ClientDeleteChannelResponseInputAttachmentsInputSettingsCaptionSelectorsSelectorSettingsDvbSubSourceSettingsTypeDef
):
    """
    Type definition for
    `ClientDeleteChannelResponseInputAttachmentsInputSettingsCaptionSelectorsSelectorSettings`
    `DvbSubSourceSettings`

    - **Pid** *(integer) --* When using DVB-Sub with Burn-In or SMPTE-TT, use this PID for the
    source content. Unused for DVB-Sub passthrough. All DVB-Sub content is passed through,
    regardless of selectors.
    """


_ClientDeleteChannelResponseInputAttachmentsInputSettingsCaptionSelectorsSelectorSettingsEmbeddedSourceSettingsTypeDef = TypedDict(
    "_ClientDeleteChannelResponseInputAttachmentsInputSettingsCaptionSelectorsSelectorSettingsEmbeddedSourceSettingsTypeDef",
    {
        "Convert608To708": str,
        "Scte20Detection": str,
        "Source608ChannelNumber": int,
        "Source608TrackNumber": int,
    },
    total=False,
)


class ClientDeleteChannelResponseInputAttachmentsInputSettingsCaptionSelectorsSelectorSettingsEmbeddedSourceSettingsTypeDef(
    _ClientDeleteChannelResponseInputAttachmentsInputSettingsCaptionSelectorsSelectorSettingsEmbeddedSourceSettingsTypeDef
):
    """
    Type definition for
    `ClientDeleteChannelResponseInputAttachmentsInputSettingsCaptionSelectorsSelectorSettings`
    `EmbeddedSourceSettings`

    - **Convert608To708** *(string) --* If upconvert, 608 data is both passed through via the "608
    compatibility bytes" fields of the 708 wrapper as well as translated into 708. 708 data present
    in the source content will be discarded.

    - **Scte20Detection** *(string) --* Set to "auto" to handle streams with intermittent and/or
    non-aligned SCTE-20 and Embedded captions.

    - **Source608ChannelNumber** *(integer) --* Specifies the 608/708 channel number within the
    video track from which to extract captions. Unused for passthrough.

    - **Source608TrackNumber** *(integer) --* This field is unused and deprecated.
    """


_ClientDeleteChannelResponseInputAttachmentsInputSettingsCaptionSelectorsSelectorSettingsScte20SourceSettingsTypeDef = TypedDict(
    "_ClientDeleteChannelResponseInputAttachmentsInputSettingsCaptionSelectorsSelectorSettingsScte20SourceSettingsTypeDef",
    {"Convert608To708": str, "Source608ChannelNumber": int},
    total=False,
)


class ClientDeleteChannelResponseInputAttachmentsInputSettingsCaptionSelectorsSelectorSettingsScte20SourceSettingsTypeDef(
    _ClientDeleteChannelResponseInputAttachmentsInputSettingsCaptionSelectorsSelectorSettingsScte20SourceSettingsTypeDef
):
    """
    Type definition for
    `ClientDeleteChannelResponseInputAttachmentsInputSettingsCaptionSelectorsSelectorSettings`
    `Scte20SourceSettings`

    - **Convert608To708** *(string) --* If upconvert, 608 data is both passed through via the "608
    compatibility bytes" fields of the 708 wrapper as well as translated into 708. 708 data present
    in the source content will be discarded.

    - **Source608ChannelNumber** *(integer) --* Specifies the 608/708 channel number within the
    video track from which to extract captions. Unused for passthrough.
    """


_ClientDeleteChannelResponseInputAttachmentsInputSettingsCaptionSelectorsSelectorSettingsScte27SourceSettingsTypeDef = TypedDict(
    "_ClientDeleteChannelResponseInputAttachmentsInputSettingsCaptionSelectorsSelectorSettingsScte27SourceSettingsTypeDef",
    {"Pid": int},
    total=False,
)


class ClientDeleteChannelResponseInputAttachmentsInputSettingsCaptionSelectorsSelectorSettingsScte27SourceSettingsTypeDef(
    _ClientDeleteChannelResponseInputAttachmentsInputSettingsCaptionSelectorsSelectorSettingsScte27SourceSettingsTypeDef
):
    """
    Type definition for
    `ClientDeleteChannelResponseInputAttachmentsInputSettingsCaptionSelectorsSelectorSettings`
    `Scte27SourceSettings`

    - **Pid** *(integer) --* The pid field is used in conjunction with the caption selector
    languageCode field as follows: - Specify PID and Language: Extracts captions from that PID; the
    language is "informational". - Specify PID and omit Language: Extracts the specified PID. - Omit
    PID and specify Language: Extracts the specified language, whichever PID that happens to be. -
    Omit PID and omit Language: Valid only if source is DVB-Sub that is being passed through; all
    languages will be passed through.
    """


_ClientDeleteChannelResponseInputAttachmentsInputSettingsCaptionSelectorsSelectorSettingsTeletextSourceSettingsTypeDef = TypedDict(
    "_ClientDeleteChannelResponseInputAttachmentsInputSettingsCaptionSelectorsSelectorSettingsTeletextSourceSettingsTypeDef",
    {"PageNumber": str},
    total=False,
)


class ClientDeleteChannelResponseInputAttachmentsInputSettingsCaptionSelectorsSelectorSettingsTeletextSourceSettingsTypeDef(
    _ClientDeleteChannelResponseInputAttachmentsInputSettingsCaptionSelectorsSelectorSettingsTeletextSourceSettingsTypeDef
):
    """
    Type definition for
    `ClientDeleteChannelResponseInputAttachmentsInputSettingsCaptionSelectorsSelectorSettings`
    `TeletextSourceSettings`

    - **PageNumber** *(string) --* Specifies the teletext page number within the data stream from
    which to extract captions. Range of 0x100 (256) to 0x8FF (2303). Unused for passthrough. Should
    be specified as a hexadecimal string with no "0x" prefix.
    """


_ClientDeleteChannelResponseInputAttachmentsInputSettingsCaptionSelectorsSelectorSettingsTypeDef = TypedDict(
    "_ClientDeleteChannelResponseInputAttachmentsInputSettingsCaptionSelectorsSelectorSettingsTypeDef",
    {
        "AribSourceSettings": Dict,
        "DvbSubSourceSettings": ClientDeleteChannelResponseInputAttachmentsInputSettingsCaptionSelectorsSelectorSettingsDvbSubSourceSettingsTypeDef,
        "EmbeddedSourceSettings": ClientDeleteChannelResponseInputAttachmentsInputSettingsCaptionSelectorsSelectorSettingsEmbeddedSourceSettingsTypeDef,
        "Scte20SourceSettings": ClientDeleteChannelResponseInputAttachmentsInputSettingsCaptionSelectorsSelectorSettingsScte20SourceSettingsTypeDef,
        "Scte27SourceSettings": ClientDeleteChannelResponseInputAttachmentsInputSettingsCaptionSelectorsSelectorSettingsScte27SourceSettingsTypeDef,
        "TeletextSourceSettings": ClientDeleteChannelResponseInputAttachmentsInputSettingsCaptionSelectorsSelectorSettingsTeletextSourceSettingsTypeDef,
    },
    total=False,
)


class ClientDeleteChannelResponseInputAttachmentsInputSettingsCaptionSelectorsSelectorSettingsTypeDef(
    _ClientDeleteChannelResponseInputAttachmentsInputSettingsCaptionSelectorsSelectorSettingsTypeDef
):
    """
    Type definition for `ClientDeleteChannelResponseInputAttachmentsInputSettingsCaptionSelectors`
    `SelectorSettings`

    - **AribSourceSettings** *(dict) --* Arib Source Settings

    - **DvbSubSourceSettings** *(dict) --* Dvb Sub Source Settings

      - **Pid** *(integer) --* When using DVB-Sub with Burn-In or SMPTE-TT, use this PID for the
      source content. Unused for DVB-Sub passthrough. All DVB-Sub content is passed through,
      regardless of selectors.

    - **EmbeddedSourceSettings** *(dict) --* Embedded Source Settings

      - **Convert608To708** *(string) --* If upconvert, 608 data is both passed through via the "608
      compatibility bytes" fields of the 708 wrapper as well as translated into 708. 708 data
      present in the source content will be discarded.

      - **Scte20Detection** *(string) --* Set to "auto" to handle streams with intermittent and/or
      non-aligned SCTE-20 and Embedded captions.

      - **Source608ChannelNumber** *(integer) --* Specifies the 608/708 channel number within the
      video track from which to extract captions. Unused for passthrough.

      - **Source608TrackNumber** *(integer) --* This field is unused and deprecated.

    - **Scte20SourceSettings** *(dict) --* Scte20 Source Settings

      - **Convert608To708** *(string) --* If upconvert, 608 data is both passed through via the "608
      compatibility bytes" fields of the 708 wrapper as well as translated into 708. 708 data
      present in the source content will be discarded.

      - **Source608ChannelNumber** *(integer) --* Specifies the 608/708 channel number within the
      video track from which to extract captions. Unused for passthrough.

    - **Scte27SourceSettings** *(dict) --* Scte27 Source Settings

      - **Pid** *(integer) --* The pid field is used in conjunction with the caption selector
      languageCode field as follows: - Specify PID and Language: Extracts captions from that PID;
      the language is "informational". - Specify PID and omit Language: Extracts the specified PID.
      - Omit PID and specify Language: Extracts the specified language, whichever PID that happens
      to be. - Omit PID and omit Language: Valid only if source is DVB-Sub that is being passed
      through; all languages will be passed through.

    - **TeletextSourceSettings** *(dict) --* Teletext Source Settings

      - **PageNumber** *(string) --* Specifies the teletext page number within the data stream from
      which to extract captions. Range of 0x100 (256) to 0x8FF (2303). Unused for passthrough.
      Should be specified as a hexadecimal string with no "0x" prefix.
    """


_ClientDeleteChannelResponseInputAttachmentsInputSettingsCaptionSelectorsTypeDef = TypedDict(
    "_ClientDeleteChannelResponseInputAttachmentsInputSettingsCaptionSelectorsTypeDef",
    {
        "LanguageCode": str,
        "Name": str,
        "SelectorSettings": ClientDeleteChannelResponseInputAttachmentsInputSettingsCaptionSelectorsSelectorSettingsTypeDef,
    },
    total=False,
)


class ClientDeleteChannelResponseInputAttachmentsInputSettingsCaptionSelectorsTypeDef(
    _ClientDeleteChannelResponseInputAttachmentsInputSettingsCaptionSelectorsTypeDef
):
    """
    Type definition for `ClientDeleteChannelResponseInputAttachmentsInputSettings`
    `CaptionSelectors`

    - **LanguageCode** *(string) --* When specified this field indicates the three letter language
    code of the caption track to extract from the source.

    - **Name** *(string) --* Name identifier for a caption selector. This name is used to associate
    this caption selector with one or more caption descriptions. Names must be unique within an
    event.

    - **SelectorSettings** *(dict) --* Caption selector settings.

      - **AribSourceSettings** *(dict) --* Arib Source Settings

      - **DvbSubSourceSettings** *(dict) --* Dvb Sub Source Settings

        - **Pid** *(integer) --* When using DVB-Sub with Burn-In or SMPTE-TT, use this PID for the
        source content. Unused for DVB-Sub passthrough. All DVB-Sub content is passed through,
        regardless of selectors.

      - **EmbeddedSourceSettings** *(dict) --* Embedded Source Settings

        - **Convert608To708** *(string) --* If upconvert, 608 data is both passed through via the
        "608 compatibility bytes" fields of the 708 wrapper as well as translated into 708. 708 data
        present in the source content will be discarded.

        - **Scte20Detection** *(string) --* Set to "auto" to handle streams with intermittent and/or
        non-aligned SCTE-20 and Embedded captions.

        - **Source608ChannelNumber** *(integer) --* Specifies the 608/708 channel number within the
        video track from which to extract captions. Unused for passthrough.

        - **Source608TrackNumber** *(integer) --* This field is unused and deprecated.

      - **Scte20SourceSettings** *(dict) --* Scte20 Source Settings

        - **Convert608To708** *(string) --* If upconvert, 608 data is both passed through via the
        "608 compatibility bytes" fields of the 708 wrapper as well as translated into 708. 708 data
        present in the source content will be discarded.

        - **Source608ChannelNumber** *(integer) --* Specifies the 608/708 channel number within the
        video track from which to extract captions. Unused for passthrough.

      - **Scte27SourceSettings** *(dict) --* Scte27 Source Settings

        - **Pid** *(integer) --* The pid field is used in conjunction with the caption selector
        languageCode field as follows: - Specify PID and Language: Extracts captions from that PID;
        the language is "informational". - Specify PID and omit Language: Extracts the specified
        PID. - Omit PID and specify Language: Extracts the specified language, whichever PID that
        happens to be. - Omit PID and omit Language: Valid only if source is DVB-Sub that is being
        passed through; all languages will be passed through.

      - **TeletextSourceSettings** *(dict) --* Teletext Source Settings

        - **PageNumber** *(string) --* Specifies the teletext page number within the data stream
        from which to extract captions. Range of 0x100 (256) to 0x8FF (2303). Unused for
        passthrough. Should be specified as a hexadecimal string with no "0x" prefix.
    """


_ClientDeleteChannelResponseInputAttachmentsInputSettingsNetworkInputSettingsHlsInputSettingsTypeDef = TypedDict(
    "_ClientDeleteChannelResponseInputAttachmentsInputSettingsNetworkInputSettingsHlsInputSettingsTypeDef",
    {"Bandwidth": int, "BufferSegments": int, "Retries": int, "RetryInterval": int},
    total=False,
)


class ClientDeleteChannelResponseInputAttachmentsInputSettingsNetworkInputSettingsHlsInputSettingsTypeDef(
    _ClientDeleteChannelResponseInputAttachmentsInputSettingsNetworkInputSettingsHlsInputSettingsTypeDef
):
    """
    Type definition for
    `ClientDeleteChannelResponseInputAttachmentsInputSettingsNetworkInputSettings`
    `HlsInputSettings`

    - **Bandwidth** *(integer) --* When specified the HLS stream with the m3u8 BANDWIDTH that most
    closely matches this value will be chosen, otherwise the highest bandwidth stream in the m3u8
    will be chosen. The bitrate is specified in bits per second, as in an HLS manifest.

    - **BufferSegments** *(integer) --* When specified, reading of the HLS input will begin this
    many buffer segments from the end (most recently written segment). When not specified, the HLS
    input will begin with the first segment specified in the m3u8.

    - **Retries** *(integer) --* The number of consecutive times that attempts to read a manifest or
    segment must fail before the input is considered unavailable.

    - **RetryInterval** *(integer) --* The number of seconds between retries when an attempt to read
    a manifest or segment fails.
    """


_ClientDeleteChannelResponseInputAttachmentsInputSettingsNetworkInputSettingsTypeDef = TypedDict(
    "_ClientDeleteChannelResponseInputAttachmentsInputSettingsNetworkInputSettingsTypeDef",
    {
        "HlsInputSettings": ClientDeleteChannelResponseInputAttachmentsInputSettingsNetworkInputSettingsHlsInputSettingsTypeDef,
        "ServerValidation": str,
    },
    total=False,
)


class ClientDeleteChannelResponseInputAttachmentsInputSettingsNetworkInputSettingsTypeDef(
    _ClientDeleteChannelResponseInputAttachmentsInputSettingsNetworkInputSettingsTypeDef
):
    """
    Type definition for `ClientDeleteChannelResponseInputAttachmentsInputSettings`
    `NetworkInputSettings`

    - **HlsInputSettings** *(dict) --* Specifies HLS input settings when the uri is for a HLS
    manifest.

      - **Bandwidth** *(integer) --* When specified the HLS stream with the m3u8 BANDWIDTH that most
      closely matches this value will be chosen, otherwise the highest bandwidth stream in the m3u8
      will be chosen. The bitrate is specified in bits per second, as in an HLS manifest.

      - **BufferSegments** *(integer) --* When specified, reading of the HLS input will begin this
      many buffer segments from the end (most recently written segment). When not specified, the HLS
      input will begin with the first segment specified in the m3u8.

      - **Retries** *(integer) --* The number of consecutive times that attempts to read a manifest
      or segment must fail before the input is considered unavailable.

      - **RetryInterval** *(integer) --* The number of seconds between retries when an attempt to
      read a manifest or segment fails.

    - **ServerValidation** *(string) --* Check HTTPS server certificates. When set to
    checkCryptographyOnly, cryptography in the certificate will be checked, but not the server's
    name. Certain subdomains (notably S3 buckets that use dots in the bucket name) do not strictly
    match the corresponding certificate's wildcard pattern and would otherwise cause the event to
    error. This setting is ignored for protocols that do not use https.
    """


_ClientDeleteChannelResponseInputAttachmentsInputSettingsVideoSelectorSelectorSettingsVideoSelectorPidTypeDef = TypedDict(
    "_ClientDeleteChannelResponseInputAttachmentsInputSettingsVideoSelectorSelectorSettingsVideoSelectorPidTypeDef",
    {"Pid": int},
    total=False,
)


class ClientDeleteChannelResponseInputAttachmentsInputSettingsVideoSelectorSelectorSettingsVideoSelectorPidTypeDef(
    _ClientDeleteChannelResponseInputAttachmentsInputSettingsVideoSelectorSelectorSettingsVideoSelectorPidTypeDef
):
    """
    Type definition for
    `ClientDeleteChannelResponseInputAttachmentsInputSettingsVideoSelectorSelectorSettings`
    `VideoSelectorPid`

    - **Pid** *(integer) --* Selects a specific PID from within a video source.
    """


_ClientDeleteChannelResponseInputAttachmentsInputSettingsVideoSelectorSelectorSettingsVideoSelectorProgramIdTypeDef = TypedDict(
    "_ClientDeleteChannelResponseInputAttachmentsInputSettingsVideoSelectorSelectorSettingsVideoSelectorProgramIdTypeDef",
    {"ProgramId": int},
    total=False,
)


class ClientDeleteChannelResponseInputAttachmentsInputSettingsVideoSelectorSelectorSettingsVideoSelectorProgramIdTypeDef(
    _ClientDeleteChannelResponseInputAttachmentsInputSettingsVideoSelectorSelectorSettingsVideoSelectorProgramIdTypeDef
):
    """
    Type definition for
    `ClientDeleteChannelResponseInputAttachmentsInputSettingsVideoSelectorSelectorSettings`
    `VideoSelectorProgramId`

    - **ProgramId** *(integer) --* Selects a specific program from within a multi-program transport
    stream. If the program doesn't exist, the first program within the transport stream will be
    selected by default.
    """


_ClientDeleteChannelResponseInputAttachmentsInputSettingsVideoSelectorSelectorSettingsTypeDef = TypedDict(
    "_ClientDeleteChannelResponseInputAttachmentsInputSettingsVideoSelectorSelectorSettingsTypeDef",
    {
        "VideoSelectorPid": ClientDeleteChannelResponseInputAttachmentsInputSettingsVideoSelectorSelectorSettingsVideoSelectorPidTypeDef,
        "VideoSelectorProgramId": ClientDeleteChannelResponseInputAttachmentsInputSettingsVideoSelectorSelectorSettingsVideoSelectorProgramIdTypeDef,
    },
    total=False,
)


class ClientDeleteChannelResponseInputAttachmentsInputSettingsVideoSelectorSelectorSettingsTypeDef(
    _ClientDeleteChannelResponseInputAttachmentsInputSettingsVideoSelectorSelectorSettingsTypeDef
):
    """
    Type definition for `ClientDeleteChannelResponseInputAttachmentsInputSettingsVideoSelector`
    `SelectorSettings`

    - **VideoSelectorPid** *(dict) --* Video Selector Pid

      - **Pid** *(integer) --* Selects a specific PID from within a video source.

    - **VideoSelectorProgramId** *(dict) --* Video Selector Program Id

      - **ProgramId** *(integer) --* Selects a specific program from within a multi-program
      transport stream. If the program doesn't exist, the first program within the transport stream
      will be selected by default.
    """


_ClientDeleteChannelResponseInputAttachmentsInputSettingsVideoSelectorTypeDef = TypedDict(
    "_ClientDeleteChannelResponseInputAttachmentsInputSettingsVideoSelectorTypeDef",
    {
        "ColorSpace": str,
        "ColorSpaceUsage": str,
        "SelectorSettings": ClientDeleteChannelResponseInputAttachmentsInputSettingsVideoSelectorSelectorSettingsTypeDef,
    },
    total=False,
)


class ClientDeleteChannelResponseInputAttachmentsInputSettingsVideoSelectorTypeDef(
    _ClientDeleteChannelResponseInputAttachmentsInputSettingsVideoSelectorTypeDef
):
    """
    Type definition for `ClientDeleteChannelResponseInputAttachmentsInputSettings` `VideoSelector`

    - **ColorSpace** *(string) --* Specifies the color space of an input. This setting works in
    tandem with colorSpaceUsage and a video description's colorSpaceSettingsChoice to determine if
    any conversion will be performed.

    - **ColorSpaceUsage** *(string) --* Applies only if colorSpace is a value other than follow.
    This field controls how the value in the colorSpace field will be used. fallback means that when
    the input does include color space data, that data will be used, but when the input has no color
    space data, the value in colorSpace will be used. Choose fallback if your input is sometimes
    missing color space data, but when it does have color space data, that data is correct. force
    means to always use the value in colorSpace. Choose force if your input usually has no color
    space data or might have unreliable color space data.

    - **SelectorSettings** *(dict) --* The video selector settings.

      - **VideoSelectorPid** *(dict) --* Video Selector Pid

        - **Pid** *(integer) --* Selects a specific PID from within a video source.

      - **VideoSelectorProgramId** *(dict) --* Video Selector Program Id

        - **ProgramId** *(integer) --* Selects a specific program from within a multi-program
        transport stream. If the program doesn't exist, the first program within the transport
        stream will be selected by default.
    """


_ClientDeleteChannelResponseInputAttachmentsInputSettingsTypeDef = TypedDict(
    "_ClientDeleteChannelResponseInputAttachmentsInputSettingsTypeDef",
    {
        "AudioSelectors": List[
            ClientDeleteChannelResponseInputAttachmentsInputSettingsAudioSelectorsTypeDef
        ],
        "CaptionSelectors": List[
            ClientDeleteChannelResponseInputAttachmentsInputSettingsCaptionSelectorsTypeDef
        ],
        "DeblockFilter": str,
        "DenoiseFilter": str,
        "FilterStrength": int,
        "InputFilter": str,
        "NetworkInputSettings": ClientDeleteChannelResponseInputAttachmentsInputSettingsNetworkInputSettingsTypeDef,
        "SourceEndBehavior": str,
        "VideoSelector": ClientDeleteChannelResponseInputAttachmentsInputSettingsVideoSelectorTypeDef,
    },
    total=False,
)


class ClientDeleteChannelResponseInputAttachmentsInputSettingsTypeDef(
    _ClientDeleteChannelResponseInputAttachmentsInputSettingsTypeDef
):
    """
    Type definition for `ClientDeleteChannelResponseInputAttachments` `InputSettings`

    - **AudioSelectors** *(list) --* Used to select the audio stream to decode for inputs that have
    multiple available.

      - *(dict) --* Audio Selector

        - **Name** *(string) --* The name of this AudioSelector. AudioDescriptions will use this
        name to uniquely identify this Selector. Selector names should be unique per input.

        - **SelectorSettings** *(dict) --* The audio selector settings.

          - **AudioLanguageSelection** *(dict) --* Audio Language Selection

            - **LanguageCode** *(string) --* Selects a specific three-letter language code from
            within an audio source.

            - **LanguageSelectionPolicy** *(string) --* When set to "strict", the transport stream
            demux strictly identifies audio streams by their language descriptor. If a PMT update
            occurs such that an audio stream matching the initially selected language is no longer
            present then mute will be encoded until the language returns. If "loose", then on a PMT
            update the demux will choose another audio stream in the program with the same stream
            type if it can't find one with the same language.

          - **AudioPidSelection** *(dict) --* Audio Pid Selection

            - **Pid** *(integer) --* Selects a specific PID from within a source.

    - **CaptionSelectors** *(list) --* Used to select the caption input to use for inputs that have
    multiple available.

      - *(dict) --* Output groups for this Live Event. Output groups contain information about where
      streams should be distributed.

        - **LanguageCode** *(string) --* When specified this field indicates the three letter
        language code of the caption track to extract from the source.

        - **Name** *(string) --* Name identifier for a caption selector. This name is used to
        associate this caption selector with one or more caption descriptions. Names must be unique
        within an event.

        - **SelectorSettings** *(dict) --* Caption selector settings.

          - **AribSourceSettings** *(dict) --* Arib Source Settings

          - **DvbSubSourceSettings** *(dict) --* Dvb Sub Source Settings

            - **Pid** *(integer) --* When using DVB-Sub with Burn-In or SMPTE-TT, use this PID for
            the source content. Unused for DVB-Sub passthrough. All DVB-Sub content is passed
            through, regardless of selectors.

          - **EmbeddedSourceSettings** *(dict) --* Embedded Source Settings

            - **Convert608To708** *(string) --* If upconvert, 608 data is both passed through via
            the "608 compatibility bytes" fields of the 708 wrapper as well as translated into 708.
            708 data present in the source content will be discarded.

            - **Scte20Detection** *(string) --* Set to "auto" to handle streams with intermittent
            and/or non-aligned SCTE-20 and Embedded captions.

            - **Source608ChannelNumber** *(integer) --* Specifies the 608/708 channel number within
            the video track from which to extract captions. Unused for passthrough.

            - **Source608TrackNumber** *(integer) --* This field is unused and deprecated.

          - **Scte20SourceSettings** *(dict) --* Scte20 Source Settings

            - **Convert608To708** *(string) --* If upconvert, 608 data is both passed through via
            the "608 compatibility bytes" fields of the 708 wrapper as well as translated into 708.
            708 data present in the source content will be discarded.

            - **Source608ChannelNumber** *(integer) --* Specifies the 608/708 channel number within
            the video track from which to extract captions. Unused for passthrough.

          - **Scte27SourceSettings** *(dict) --* Scte27 Source Settings

            - **Pid** *(integer) --* The pid field is used in conjunction with the caption selector
            languageCode field as follows: - Specify PID and Language: Extracts captions from that
            PID; the language is "informational". - Specify PID and omit Language: Extracts the
            specified PID. - Omit PID and specify Language: Extracts the specified language,
            whichever PID that happens to be. - Omit PID and omit Language: Valid only if source is
            DVB-Sub that is being passed through; all languages will be passed through.

          - **TeletextSourceSettings** *(dict) --* Teletext Source Settings

            - **PageNumber** *(string) --* Specifies the teletext page number within the data stream
            from which to extract captions. Range of 0x100 (256) to 0x8FF (2303). Unused for
            passthrough. Should be specified as a hexadecimal string with no "0x" prefix.

    - **DeblockFilter** *(string) --* Enable or disable the deblock filter when filtering.

    - **DenoiseFilter** *(string) --* Enable or disable the denoise filter when filtering.

    - **FilterStrength** *(integer) --* Adjusts the magnitude of filtering from 1 (minimal) to 5
    (strongest).

    - **InputFilter** *(string) --* Turns on the filter for this input. MPEG-2 inputs have the
    deblocking filter enabled by default. 1) auto - filtering will be applied depending on input
    type/quality 2) disabled - no filtering will be applied to the input 3) forced - filtering will
    be applied regardless of input type

    - **NetworkInputSettings** *(dict) --* Input settings.

      - **HlsInputSettings** *(dict) --* Specifies HLS input settings when the uri is for a HLS
      manifest.

        - **Bandwidth** *(integer) --* When specified the HLS stream with the m3u8 BANDWIDTH that
        most closely matches this value will be chosen, otherwise the highest bandwidth stream in
        the m3u8 will be chosen. The bitrate is specified in bits per second, as in an HLS manifest.

        - **BufferSegments** *(integer) --* When specified, reading of the HLS input will begin this
        many buffer segments from the end (most recently written segment). When not specified, the
        HLS input will begin with the first segment specified in the m3u8.

        - **Retries** *(integer) --* The number of consecutive times that attempts to read a
        manifest or segment must fail before the input is considered unavailable.

        - **RetryInterval** *(integer) --* The number of seconds between retries when an attempt to
        read a manifest or segment fails.

      - **ServerValidation** *(string) --* Check HTTPS server certificates. When set to
      checkCryptographyOnly, cryptography in the certificate will be checked, but not the server's
      name. Certain subdomains (notably S3 buckets that use dots in the bucket name) do not strictly
      match the corresponding certificate's wildcard pattern and would otherwise cause the event to
      error. This setting is ignored for protocols that do not use https.

    - **SourceEndBehavior** *(string) --* Loop input if it is a file. This allows a file input to be
    streamed indefinitely.

    - **VideoSelector** *(dict) --* Informs which video elementary stream to decode for input types
    that have multiple available.

      - **ColorSpace** *(string) --* Specifies the color space of an input. This setting works in
      tandem with colorSpaceUsage and a video description's colorSpaceSettingsChoice to determine if
      any conversion will be performed.

      - **ColorSpaceUsage** *(string) --* Applies only if colorSpace is a value other than follow.
      This field controls how the value in the colorSpace field will be used. fallback means that
      when the input does include color space data, that data will be used, but when the input has
      no color space data, the value in colorSpace will be used. Choose fallback if your input is
      sometimes missing color space data, but when it does have color space data, that data is
      correct. force means to always use the value in colorSpace. Choose force if your input usually
      has no color space data or might have unreliable color space data.

      - **SelectorSettings** *(dict) --* The video selector settings.

        - **VideoSelectorPid** *(dict) --* Video Selector Pid

          - **Pid** *(integer) --* Selects a specific PID from within a video source.

        - **VideoSelectorProgramId** *(dict) --* Video Selector Program Id

          - **ProgramId** *(integer) --* Selects a specific program from within a multi-program
          transport stream. If the program doesn't exist, the first program within the transport
          stream will be selected by default.
    """


_ClientDeleteChannelResponseInputAttachmentsTypeDef = TypedDict(
    "_ClientDeleteChannelResponseInputAttachmentsTypeDef",
    {
        "InputAttachmentName": str,
        "InputId": str,
        "InputSettings": ClientDeleteChannelResponseInputAttachmentsInputSettingsTypeDef,
    },
    total=False,
)


class ClientDeleteChannelResponseInputAttachmentsTypeDef(
    _ClientDeleteChannelResponseInputAttachmentsTypeDef
):
    """
    Type definition for `ClientDeleteChannelResponse` `InputAttachments`

    - **InputAttachmentName** *(string) --* User-specified name for the attachment. This is required
    if the user wants to use this input in an input switch action.

    - **InputId** *(string) --* The ID of the input

    - **InputSettings** *(dict) --* Settings of an input (caption selector, etc.)

      - **AudioSelectors** *(list) --* Used to select the audio stream to decode for inputs that
      have multiple available.

        - *(dict) --* Audio Selector

          - **Name** *(string) --* The name of this AudioSelector. AudioDescriptions will use this
          name to uniquely identify this Selector. Selector names should be unique per input.

          - **SelectorSettings** *(dict) --* The audio selector settings.

            - **AudioLanguageSelection** *(dict) --* Audio Language Selection

              - **LanguageCode** *(string) --* Selects a specific three-letter language code from
              within an audio source.

              - **LanguageSelectionPolicy** *(string) --* When set to "strict", the transport stream
              demux strictly identifies audio streams by their language descriptor. If a PMT update
              occurs such that an audio stream matching the initially selected language is no longer
              present then mute will be encoded until the language returns. If "loose", then on a
              PMT update the demux will choose another audio stream in the program with the same
              stream type if it can't find one with the same language.

            - **AudioPidSelection** *(dict) --* Audio Pid Selection

              - **Pid** *(integer) --* Selects a specific PID from within a source.

      - **CaptionSelectors** *(list) --* Used to select the caption input to use for inputs that
      have multiple available.

        - *(dict) --* Output groups for this Live Event. Output groups contain information about
        where streams should be distributed.

          - **LanguageCode** *(string) --* When specified this field indicates the three letter
          language code of the caption track to extract from the source.

          - **Name** *(string) --* Name identifier for a caption selector. This name is used to
          associate this caption selector with one or more caption descriptions. Names must be
          unique within an event.

          - **SelectorSettings** *(dict) --* Caption selector settings.

            - **AribSourceSettings** *(dict) --* Arib Source Settings

            - **DvbSubSourceSettings** *(dict) --* Dvb Sub Source Settings

              - **Pid** *(integer) --* When using DVB-Sub with Burn-In or SMPTE-TT, use this PID for
              the source content. Unused for DVB-Sub passthrough. All DVB-Sub content is passed
              through, regardless of selectors.

            - **EmbeddedSourceSettings** *(dict) --* Embedded Source Settings

              - **Convert608To708** *(string) --* If upconvert, 608 data is both passed through via
              the "608 compatibility bytes" fields of the 708 wrapper as well as translated into
              708. 708 data present in the source content will be discarded.

              - **Scte20Detection** *(string) --* Set to "auto" to handle streams with intermittent
              and/or non-aligned SCTE-20 and Embedded captions.

              - **Source608ChannelNumber** *(integer) --* Specifies the 608/708 channel number
              within the video track from which to extract captions. Unused for passthrough.

              - **Source608TrackNumber** *(integer) --* This field is unused and deprecated.

            - **Scte20SourceSettings** *(dict) --* Scte20 Source Settings

              - **Convert608To708** *(string) --* If upconvert, 608 data is both passed through via
              the "608 compatibility bytes" fields of the 708 wrapper as well as translated into
              708. 708 data present in the source content will be discarded.

              - **Source608ChannelNumber** *(integer) --* Specifies the 608/708 channel number
              within the video track from which to extract captions. Unused for passthrough.

            - **Scte27SourceSettings** *(dict) --* Scte27 Source Settings

              - **Pid** *(integer) --* The pid field is used in conjunction with the caption
              selector languageCode field as follows: - Specify PID and Language: Extracts captions
              from that PID; the language is "informational". - Specify PID and omit Language:
              Extracts the specified PID. - Omit PID and specify Language: Extracts the specified
              language, whichever PID that happens to be. - Omit PID and omit Language: Valid only
              if source is DVB-Sub that is being passed through; all languages will be passed
              through.

            - **TeletextSourceSettings** *(dict) --* Teletext Source Settings

              - **PageNumber** *(string) --* Specifies the teletext page number within the data
              stream from which to extract captions. Range of 0x100 (256) to 0x8FF (2303). Unused
              for passthrough. Should be specified as a hexadecimal string with no "0x" prefix.

      - **DeblockFilter** *(string) --* Enable or disable the deblock filter when filtering.

      - **DenoiseFilter** *(string) --* Enable or disable the denoise filter when filtering.

      - **FilterStrength** *(integer) --* Adjusts the magnitude of filtering from 1 (minimal) to 5
      (strongest).

      - **InputFilter** *(string) --* Turns on the filter for this input. MPEG-2 inputs have the
      deblocking filter enabled by default. 1) auto - filtering will be applied depending on input
      type/quality 2) disabled - no filtering will be applied to the input 3) forced - filtering
      will be applied regardless of input type

      - **NetworkInputSettings** *(dict) --* Input settings.

        - **HlsInputSettings** *(dict) --* Specifies HLS input settings when the uri is for a HLS
        manifest.

          - **Bandwidth** *(integer) --* When specified the HLS stream with the m3u8 BANDWIDTH that
          most closely matches this value will be chosen, otherwise the highest bandwidth stream in
          the m3u8 will be chosen. The bitrate is specified in bits per second, as in an HLS
          manifest.

          - **BufferSegments** *(integer) --* When specified, reading of the HLS input will begin
          this many buffer segments from the end (most recently written segment). When not
          specified, the HLS input will begin with the first segment specified in the m3u8.

          - **Retries** *(integer) --* The number of consecutive times that attempts to read a
          manifest or segment must fail before the input is considered unavailable.

          - **RetryInterval** *(integer) --* The number of seconds between retries when an attempt
          to read a manifest or segment fails.

        - **ServerValidation** *(string) --* Check HTTPS server certificates. When set to
        checkCryptographyOnly, cryptography in the certificate will be checked, but not the server's
        name. Certain subdomains (notably S3 buckets that use dots in the bucket name) do not
        strictly match the corresponding certificate's wildcard pattern and would otherwise cause
        the event to error. This setting is ignored for protocols that do not use https.

      - **SourceEndBehavior** *(string) --* Loop input if it is a file. This allows a file input to
      be streamed indefinitely.

      - **VideoSelector** *(dict) --* Informs which video elementary stream to decode for input
      types that have multiple available.

        - **ColorSpace** *(string) --* Specifies the color space of an input. This setting works in
        tandem with colorSpaceUsage and a video description's colorSpaceSettingsChoice to determine
        if any conversion will be performed.

        - **ColorSpaceUsage** *(string) --* Applies only if colorSpace is a value other than follow.
        This field controls how the value in the colorSpace field will be used. fallback means that
        when the input does include color space data, that data will be used, but when the input has
        no color space data, the value in colorSpace will be used. Choose fallback if your input is
        sometimes missing color space data, but when it does have color space data, that data is
        correct. force means to always use the value in colorSpace. Choose force if your input
        usually has no color space data or might have unreliable color space data.

        - **SelectorSettings** *(dict) --* The video selector settings.

          - **VideoSelectorPid** *(dict) --* Video Selector Pid

            - **Pid** *(integer) --* Selects a specific PID from within a video source.

          - **VideoSelectorProgramId** *(dict) --* Video Selector Program Id

            - **ProgramId** *(integer) --* Selects a specific program from within a multi-program
            transport stream. If the program doesn't exist, the first program within the transport
            stream will be selected by default.
    """


_ClientDeleteChannelResponseInputSpecificationTypeDef = TypedDict(
    "_ClientDeleteChannelResponseInputSpecificationTypeDef",
    {"Codec": str, "MaximumBitrate": str, "Resolution": str},
    total=False,
)


class ClientDeleteChannelResponseInputSpecificationTypeDef(
    _ClientDeleteChannelResponseInputSpecificationTypeDef
):
    """
    Type definition for `ClientDeleteChannelResponse` `InputSpecification`

    - **Codec** *(string) --* Input codec

    - **MaximumBitrate** *(string) --* Maximum input bitrate, categorized coarsely

    - **Resolution** *(string) --* Input resolution, categorized coarsely
    """


_ClientDeleteChannelResponsePipelineDetailsTypeDef = TypedDict(
    "_ClientDeleteChannelResponsePipelineDetailsTypeDef",
    {"ActiveInputAttachmentName": str, "ActiveInputSwitchActionName": str, "PipelineId": str},
    total=False,
)


class ClientDeleteChannelResponsePipelineDetailsTypeDef(
    _ClientDeleteChannelResponsePipelineDetailsTypeDef
):
    """
    Type definition for `ClientDeleteChannelResponse` `PipelineDetails`

    - **ActiveInputAttachmentName** *(string) --* The name of the active input attachment currently
    being ingested by this pipeline.

    - **ActiveInputSwitchActionName** *(string) --* The name of the input switch schedule action
    that occurred most recently and that resulted in the switch to the current input attachment for
    this pipeline.

    - **PipelineId** *(string) --* Pipeline ID
    """


_ClientDeleteChannelResponseTypeDef = TypedDict(
    "_ClientDeleteChannelResponseTypeDef",
    {
        "Arn": str,
        "ChannelClass": str,
        "Destinations": List[ClientDeleteChannelResponseDestinationsTypeDef],
        "EgressEndpoints": List[ClientDeleteChannelResponseEgressEndpointsTypeDef],
        "EncoderSettings": ClientDeleteChannelResponseEncoderSettingsTypeDef,
        "Id": str,
        "InputAttachments": List[ClientDeleteChannelResponseInputAttachmentsTypeDef],
        "InputSpecification": ClientDeleteChannelResponseInputSpecificationTypeDef,
        "LogLevel": str,
        "Name": str,
        "PipelineDetails": List[ClientDeleteChannelResponsePipelineDetailsTypeDef],
        "PipelinesRunningCount": int,
        "RoleArn": str,
        "State": str,
        "Tags": Dict[str, str],
    },
    total=False,
)


class ClientDeleteChannelResponseTypeDef(_ClientDeleteChannelResponseTypeDef):
    """
    Type definition for `ClientDeleteChannel` `Response`

    - **Arn** *(string) --* The unique arn of the channel.

    - **ChannelClass** *(string) --* The class for this channel. STANDARD for a channel with two
    pipelines or SINGLE_PIPELINE for a channel with one pipeline.

    - **Destinations** *(list) --* A list of destinations of the channel. For UDP outputs, there is
    one destination per output. For other types (HLS, for example), there is one destination per
    packager.

      - *(dict) --* Placeholder documentation for OutputDestination

        - **Id** *(string) --* User-specified id. This is used in an output group or an output.

        - **MediaPackageSettings** *(list) --* Destination settings for a MediaPackage output; one
        destination for both encoders.

          - *(dict) --* MediaPackage Output Destination Settings

            - **ChannelId** *(string) --* ID of the channel in MediaPackage that is the destination
            for this output group. You do not need to specify the individual inputs in MediaPackage;
            MediaLive will handle the connection of the two MediaLive pipelines to the two
            MediaPackage inputs. The MediaPackage channel and MediaLive channel must be in the same
            region.

        - **MultiplexSettings** *(dict) --* Destination settings for a Multiplex output; one
        destination for both encoders.

          - **MultiplexId** *(string) --* The ID of the Multiplex that the encoder is providing
          output to. You do not need to specify the individual inputs to the Multiplex; MediaLive
          will handle the connection of the two MediaLive pipelines to the two Multiplex instances.
          The Multiplex must be in the same region as the Channel.

          - **ProgramName** *(string) --* The program name of the Multiplex program that the encoder
          is providing output to.

        - **Settings** *(list) --* Destination settings for a standard output; one destination for
        each redundant encoder.

          - *(dict) --* Placeholder documentation for OutputDestinationSettings

            - **PasswordParam** *(string) --* key used to extract the password from EC2 Parameter
            store

            - **StreamName** *(string) --* Stream name for RTMP destinations (URLs of type rtmp://)

            - **Url** *(string) --* A URL specifying a destination

            - **Username** *(string) --* username for destination

    - **EgressEndpoints** *(list) --* The endpoints where outgoing connections initiate from

      - *(dict) --* Placeholder documentation for ChannelEgressEndpoint

        - **SourceIp** *(string) --* Public IP of where a channel's output comes from

    - **EncoderSettings** *(dict) --* Encoder Settings

      - **AudioDescriptions** *(list) --* Placeholder documentation for __listOfAudioDescription

        - *(dict) --* Audio Description

          - **AudioNormalizationSettings** *(dict) --* Advanced audio normalization settings.

            - **Algorithm** *(string) --* Audio normalization algorithm to use. itu17701 conforms to
            the CALM Act specification, itu17702 conforms to the EBU R-128 specification.

            - **AlgorithmControl** *(string) --* When set to correctAudio the output audio is
            corrected using the chosen algorithm. If set to measureOnly, the audio will be measured
            but not adjusted.

            - **TargetLkfs** *(float) --* Target LKFS(loudness) to adjust volume to. If no value is
            entered, a default value will be used according to the chosen algorithm. The CALM Act
            (1770-1) recommends a target of -24 LKFS. The EBU R-128 specification (1770-2)
            recommends a target of -23 LKFS.

          - **AudioSelectorName** *(string) --* The name of the AudioSelector used as the source for
          this AudioDescription.

          - **AudioType** *(string) --* Applies only if audioTypeControl is useConfigured. The
          values for audioType are defined in ISO-IEC 13818-1.

          - **AudioTypeControl** *(string) --* Determines how audio type is determined. followInput:
          If the input contains an ISO 639 audioType, then that value is passed through to the
          output. If the input contains no ISO 639 audioType, the value in Audio Type is included in
          the output. useConfigured: The value in Audio Type is included in the output. Note that
          this field and audioType are both ignored if inputType is broadcasterMixedAd.

          - **CodecSettings** *(dict) --* Audio codec settings.

            - **AacSettings** *(dict) --* Aac Settings

              - **Bitrate** *(float) --* Average bitrate in bits/second. Valid values depend on rate
              control mode and profile.

              - **CodingMode** *(string) --* Mono, Stereo, or 5.1 channel layout. Valid values
              depend on rate control mode and profile. The adReceiverMix setting receives a stereo
              description plus control track and emits a mono AAC encode of the description track,
              with control data emitted in the PES header as per ETSI TS 101 154 Annex E.

              - **InputType** *(string) --* Set to "broadcasterMixedAd" when input contains
              pre-mixed main audio + AD (narration) as a stereo pair. The Audio Type field
              (audioType) will be set to 3, which signals to downstream systems that this stream
              contains "broadcaster mixed AD". Note that the input received by the encoder must
              contain pre-mixed audio; the encoder does not perform the mixing. The values in
              audioTypeControl and audioType (in AudioDescription) are ignored when set to
              broadcasterMixedAd. Leave set to "normal" when input does not contain pre-mixed audio
              + AD.

              - **Profile** *(string) --* AAC Profile.

              - **RateControlMode** *(string) --* Rate Control Mode.

              - **RawFormat** *(string) --* Sets LATM / LOAS AAC output for raw containers.

              - **SampleRate** *(float) --* Sample rate in Hz. Valid values depend on rate control
              mode and profile.

              - **Spec** *(string) --* Use MPEG-2 AAC audio instead of MPEG-4 AAC audio for raw or
              MPEG-2 Transport Stream containers.

              - **VbrQuality** *(string) --* VBR Quality Level - Only used if rateControlMode is
              VBR.

            - **Ac3Settings** *(dict) --* Ac3 Settings

              - **Bitrate** *(float) --* Average bitrate in bits/second. Valid bitrates depend on
              the coding mode.

              - **BitstreamMode** *(string) --* Specifies the bitstream mode (bsmod) for the emitted
              AC-3 stream. See ATSC A/52-2012 for background on these values.

              - **CodingMode** *(string) --* Dolby Digital coding mode. Determines number of
              channels.

              - **Dialnorm** *(integer) --* Sets the dialnorm for the output. If excluded and input
              audio is Dolby Digital, dialnorm will be passed through.

              - **DrcProfile** *(string) --* If set to filmStandard, adds dynamic range compression
              signaling to the output bitstream as defined in the Dolby Digital specification.

              - **LfeFilter** *(string) --* When set to enabled, applies a 120Hz lowpass filter to
              the LFE channel prior to encoding. Only valid in codingMode32Lfe mode.

              - **MetadataControl** *(string) --* When set to "followInput", encoder metadata will
              be sourced from the DD, DD+, or DolbyE decoder that supplied this audio data. If audio
              was not supplied from one of these streams, then the static metadata settings will be
              used.

            - **Eac3Settings** *(dict) --* Eac3 Settings

              - **AttenuationControl** *(string) --* When set to attenuate3Db, applies a 3 dB
              attenuation to the surround channels. Only used for 3/2 coding mode.

              - **Bitrate** *(float) --* Average bitrate in bits/second. Valid bitrates depend on
              the coding mode.

              - **BitstreamMode** *(string) --* Specifies the bitstream mode (bsmod) for the emitted
              E-AC-3 stream. See ATSC A/52-2012 (Annex E) for background on these values.

              - **CodingMode** *(string) --* Dolby Digital Plus coding mode. Determines number of
              channels.

              - **DcFilter** *(string) --* When set to enabled, activates a DC highpass filter for
              all input channels.

              - **Dialnorm** *(integer) --* Sets the dialnorm for the output. If blank and input
              audio is Dolby Digital Plus, dialnorm will be passed through.

              - **DrcLine** *(string) --* Sets the Dolby dynamic range compression profile.

              - **DrcRf** *(string) --* Sets the profile for heavy Dolby dynamic range compression,
              ensures that the instantaneous signal peaks do not exceed specified levels.

              - **LfeControl** *(string) --* When encoding 3/2 audio, setting to lfe enables the LFE
              channel

              - **LfeFilter** *(string) --* When set to enabled, applies a 120Hz lowpass filter to
              the LFE channel prior to encoding. Only valid with codingMode32 coding mode.

              - **LoRoCenterMixLevel** *(float) --* Left only/Right only center mix level. Only used
              for 3/2 coding mode.

              - **LoRoSurroundMixLevel** *(float) --* Left only/Right only surround mix level. Only
              used for 3/2 coding mode.

              - **LtRtCenterMixLevel** *(float) --* Left total/Right total center mix level. Only
              used for 3/2 coding mode.

              - **LtRtSurroundMixLevel** *(float) --* Left total/Right total surround mix level.
              Only used for 3/2 coding mode.

              - **MetadataControl** *(string) --* When set to followInput, encoder metadata will be
              sourced from the DD, DD+, or DolbyE decoder that supplied this audio data. If audio
              was not supplied from one of these streams, then the static metadata settings will be
              used.

              - **PassthroughControl** *(string) --* When set to whenPossible, input DD+ audio will
              be passed through if it is present on the input. This detection is dynamic over the
              life of the transcode. Inputs that alternate between DD+ and non-DD+ content will have
              a consistent DD+ output as the system alternates between passthrough and encoding.

              - **PhaseControl** *(string) --* When set to shift90Degrees, applies a 90-degree phase
              shift to the surround channels. Only used for 3/2 coding mode.

              - **StereoDownmix** *(string) --* Stereo downmix preference. Only used for 3/2 coding
              mode.

              - **SurroundExMode** *(string) --* When encoding 3/2 audio, sets whether an extra
              center back surround channel is matrix encoded into the left and right surround
              channels.

              - **SurroundMode** *(string) --* When encoding 2/0 audio, sets whether Dolby Surround
              is matrix encoded into the two channels.

            - **Mp2Settings** *(dict) --* Mp2 Settings

              - **Bitrate** *(float) --* Average bitrate in bits/second.

              - **CodingMode** *(string) --* The MPEG2 Audio coding mode. Valid values are
              codingMode10 (for mono) or codingMode20 (for stereo).

              - **SampleRate** *(float) --* Sample rate in Hz.

            - **PassThroughSettings** *(dict) --* Pass Through Settings

          - **LanguageCode** *(string) --* Indicates the language of the audio output track. Only
          used if languageControlMode is useConfigured, or there is no ISO 639 language code
          specified in the input.

          - **LanguageCodeControl** *(string) --* Choosing followInput will cause the ISO 639
          language code of the output to follow the ISO 639 language code of the input. The
          languageCode will be used when useConfigured is set, or when followInput is selected but
          there is no ISO 639 language code specified by the input.

          - **Name** *(string) --* The name of this AudioDescription. Outputs will use this name to
          uniquely identify this AudioDescription. Description names should be unique within this
          Live Event.

          - **RemixSettings** *(dict) --* Settings that control how input audio channels are remixed
          into the output audio channels.

            - **ChannelMappings** *(list) --* Mapping of input channels to output channels, with
            appropriate gain adjustments.

              - *(dict) --* Audio Channel Mapping

                - **InputChannelLevels** *(list) --* Indices and gain values for each input channel
                that should be remixed into this output channel.

                  - *(dict) --* Input Channel Level

                    - **Gain** *(integer) --* Remixing value. Units are in dB and acceptable values
                    are within the range from -60 (mute) and 6 dB.

                    - **InputChannel** *(integer) --* The index of the input channel used as a
                    source.

                - **OutputChannel** *(integer) --* The index of the output channel being produced.

            - **ChannelsIn** *(integer) --* Number of input channels to be used.

            - **ChannelsOut** *(integer) --* Number of output channels to be produced. Valid values:
            1, 2, 4, 6, 8

          - **StreamName** *(string) --* Used for MS Smooth and Apple HLS outputs. Indicates the
          name displayed by the player (eg. English, or Director Commentary).

      - **AvailBlanking** *(dict) --* Settings for ad avail blanking.

        - **AvailBlankingImage** *(dict) --* Blanking image to be used. Leave empty for solid black.
        Only bmp and png images are supported.

          - **PasswordParam** *(string) --* key used to extract the password from EC2 Parameter
          store

          - **Uri** *(string) --* Uniform Resource Identifier - This should be a path to a file
          accessible to the Live system (eg. a http:// URI) depending on the output type. For
          example, a RTMP destination should have a uri simliar to: "rtmp://fmsserver/live".

          - **Username** *(string) --* Documentation update needed

        - **State** *(string) --* When set to enabled, causes video, audio and captions to be
        blanked when insertion metadata is added.

      - **AvailConfiguration** *(dict) --* Event-wide configuration settings for ad avail insertion.

        - **AvailSettings** *(dict) --* Ad avail settings.

          - **Scte35SpliceInsert** *(dict) --* Scte35 Splice Insert

            - **AdAvailOffset** *(integer) --* When specified, this offset (in milliseconds) is
            added to the input Ad Avail PTS time. This only applies to embedded SCTE 104/35 messages
            and does not apply to OOB messages.

            - **NoRegionalBlackoutFlag** *(string) --* When set to ignore, Segment Descriptors with
            noRegionalBlackoutFlag set to 0 will no longer trigger blackouts or Ad Avail slates

            - **WebDeliveryAllowedFlag** *(string) --* When set to ignore, Segment Descriptors with
            webDeliveryAllowedFlag set to 0 will no longer trigger blackouts or Ad Avail slates

          - **Scte35TimeSignalApos** *(dict) --* Scte35 Time Signal Apos

            - **AdAvailOffset** *(integer) --* When specified, this offset (in milliseconds) is
            added to the input Ad Avail PTS time. This only applies to embedded SCTE 104/35 messages
            and does not apply to OOB messages.

            - **NoRegionalBlackoutFlag** *(string) --* When set to ignore, Segment Descriptors with
            noRegionalBlackoutFlag set to 0 will no longer trigger blackouts or Ad Avail slates

            - **WebDeliveryAllowedFlag** *(string) --* When set to ignore, Segment Descriptors with
            webDeliveryAllowedFlag set to 0 will no longer trigger blackouts or Ad Avail slates

      - **BlackoutSlate** *(dict) --* Settings for blackout slate.

        - **BlackoutSlateImage** *(dict) --* Blackout slate image to be used. Leave empty for solid
        black. Only bmp and png images are supported.

          - **PasswordParam** *(string) --* key used to extract the password from EC2 Parameter
          store

          - **Uri** *(string) --* Uniform Resource Identifier - This should be a path to a file
          accessible to the Live system (eg. a http:// URI) depending on the output type. For
          example, a RTMP destination should have a uri simliar to: "rtmp://fmsserver/live".

          - **Username** *(string) --* Documentation update needed

        - **NetworkEndBlackout** *(string) --* Setting to enabled causes the encoder to blackout the
        video, audio, and captions, and raise the "Network Blackout Image" slate when an SCTE104/35
        Network End Segmentation Descriptor is encountered. The blackout will be lifted when the
        Network Start Segmentation Descriptor is encountered. The Network End and Network Start
        descriptors must contain a network ID that matches the value entered in "Network ID".

        - **NetworkEndBlackoutImage** *(dict) --* Path to local file to use as Network End Blackout
        image. Image will be scaled to fill the entire output raster.

          - **PasswordParam** *(string) --* key used to extract the password from EC2 Parameter
          store

          - **Uri** *(string) --* Uniform Resource Identifier - This should be a path to a file
          accessible to the Live system (eg. a http:// URI) depending on the output type. For
          example, a RTMP destination should have a uri simliar to: "rtmp://fmsserver/live".

          - **Username** *(string) --* Documentation update needed

        - **NetworkId** *(string) --* Provides Network ID that matches EIDR ID format (e.g.,
        "10.XXXX/XXXX-XXXX-XXXX-XXXX-XXXX-C").

        - **State** *(string) --* When set to enabled, causes video, audio and captions to be
        blanked when indicated by program metadata.

      - **CaptionDescriptions** *(list) --* Settings for caption decriptions

        - *(dict) --* Caption Description

          - **CaptionSelectorName** *(string) --* Specifies which input caption selector to use as a
          caption source when generating output captions. This field should match a captionSelector
          name.

          - **DestinationSettings** *(dict) --* Additional settings for captions destination that
          depend on the destination type.

            - **AribDestinationSettings** *(dict) --* Arib Destination Settings

            - **BurnInDestinationSettings** *(dict) --* Burn In Destination Settings

              - **Alignment** *(string) --* If no explicit xPosition or yPosition is provided,
              setting alignment to centered will place the captions at the bottom center of the
              output. Similarly, setting a left alignment will align captions to the bottom left of
              the output. If x and y positions are given in conjunction with the alignment
              parameter, the font will be justified (either left or centered) relative to those
              coordinates. Selecting "smart" justification will left-justify live subtitles and
              center-justify pre-recorded subtitles. All burn-in and DVB-Sub font settings must
              match.

              - **BackgroundColor** *(string) --* Specifies the color of the rectangle behind the
              captions. All burn-in and DVB-Sub font settings must match.

              - **BackgroundOpacity** *(integer) --* Specifies the opacity of the background
              rectangle. 255 is opaque; 0 is transparent. Leaving this parameter out is equivalent
              to setting it to 0 (transparent). All burn-in and DVB-Sub font settings must match.

              - **Font** *(dict) --* External font file used for caption burn-in. File extension
              must be 'ttf' or 'tte'. Although the user can select output fonts for many different
              types of input captions, embedded, STL and teletext sources use a strict grid system.
              Using external fonts with these caption sources could cause unexpected display of
              proportional fonts. All burn-in and DVB-Sub font settings must match.

                - **PasswordParam** *(string) --* key used to extract the password from EC2
                Parameter store

                - **Uri** *(string) --* Uniform Resource Identifier - This should be a path to a
                file accessible to the Live system (eg. a http:// URI) depending on the output type.
                For example, a RTMP destination should have a uri simliar to:
                "rtmp://fmsserver/live".

                - **Username** *(string) --* Documentation update needed

              - **FontColor** *(string) --* Specifies the color of the burned-in captions. This
              option is not valid for source captions that are STL, 608/embedded or teletext. These
              source settings are already pre-defined by the caption stream. All burn-in and DVB-Sub
              font settings must match.

              - **FontOpacity** *(integer) --* Specifies the opacity of the burned-in captions. 255
              is opaque; 0 is transparent. All burn-in and DVB-Sub font settings must match.

              - **FontResolution** *(integer) --* Font resolution in DPI (dots per inch); default is
              96 dpi. All burn-in and DVB-Sub font settings must match.

              - **FontSize** *(string) --* When set to 'auto' fontSize will scale depending on the
              size of the output. Giving a positive integer will specify the exact font size in
              points. All burn-in and DVB-Sub font settings must match.

              - **OutlineColor** *(string) --* Specifies font outline color. This option is not
              valid for source captions that are either 608/embedded or teletext. These source
              settings are already pre-defined by the caption stream. All burn-in and DVB-Sub font
              settings must match.

              - **OutlineSize** *(integer) --* Specifies font outline size in pixels. This option is
              not valid for source captions that are either 608/embedded or teletext. These source
              settings are already pre-defined by the caption stream. All burn-in and DVB-Sub font
              settings must match.

              - **ShadowColor** *(string) --* Specifies the color of the shadow cast by the
              captions. All burn-in and DVB-Sub font settings must match.

              - **ShadowOpacity** *(integer) --* Specifies the opacity of the shadow. 255 is opaque;
              0 is transparent. Leaving this parameter out is equivalent to setting it to 0
              (transparent). All burn-in and DVB-Sub font settings must match.

              - **ShadowXOffset** *(integer) --* Specifies the horizontal offset of the shadow
              relative to the captions in pixels. A value of -2 would result in a shadow offset 2
              pixels to the left. All burn-in and DVB-Sub font settings must match.

              - **ShadowYOffset** *(integer) --* Specifies the vertical offset of the shadow
              relative to the captions in pixels. A value of -2 would result in a shadow offset 2
              pixels above the text. All burn-in and DVB-Sub font settings must match.

              - **TeletextGridControl** *(string) --* Controls whether a fixed grid size will be
              used to generate the output subtitles bitmap. Only applicable for Teletext inputs and
              DVB-Sub/Burn-in outputs.

              - **XPosition** *(integer) --* Specifies the horizontal position of the caption
              relative to the left side of the output in pixels. A value of 10 would result in the
              captions starting 10 pixels from the left of the output. If no explicit xPosition is
              provided, the horizontal caption position will be determined by the alignment
              parameter. All burn-in and DVB-Sub font settings must match.

              - **YPosition** *(integer) --* Specifies the vertical position of the caption relative
              to the top of the output in pixels. A value of 10 would result in the captions
              starting 10 pixels from the top of the output. If no explicit yPosition is provided,
              the caption will be positioned towards the bottom of the output. All burn-in and
              DVB-Sub font settings must match.

            - **DvbSubDestinationSettings** *(dict) --* Dvb Sub Destination Settings

              - **Alignment** *(string) --* If no explicit xPosition or yPosition is provided,
              setting alignment to centered will place the captions at the bottom center of the
              output. Similarly, setting a left alignment will align captions to the bottom left of
              the output. If x and y positions are given in conjunction with the alignment
              parameter, the font will be justified (either left or centered) relative to those
              coordinates. Selecting "smart" justification will left-justify live subtitles and
              center-justify pre-recorded subtitles. This option is not valid for source captions
              that are STL or 608/embedded. These source settings are already pre-defined by the
              caption stream. All burn-in and DVB-Sub font settings must match.

              - **BackgroundColor** *(string) --* Specifies the color of the rectangle behind the
              captions. All burn-in and DVB-Sub font settings must match.

              - **BackgroundOpacity** *(integer) --* Specifies the opacity of the background
              rectangle. 255 is opaque; 0 is transparent. Leaving this parameter blank is equivalent
              to setting it to 0 (transparent). All burn-in and DVB-Sub font settings must match.

              - **Font** *(dict) --* External font file used for caption burn-in. File extension
              must be 'ttf' or 'tte'. Although the user can select output fonts for many different
              types of input captions, embedded, STL and teletext sources use a strict grid system.
              Using external fonts with these caption sources could cause unexpected display of
              proportional fonts. All burn-in and DVB-Sub font settings must match.

                - **PasswordParam** *(string) --* key used to extract the password from EC2
                Parameter store

                - **Uri** *(string) --* Uniform Resource Identifier - This should be a path to a
                file accessible to the Live system (eg. a http:// URI) depending on the output type.
                For example, a RTMP destination should have a uri simliar to:
                "rtmp://fmsserver/live".

                - **Username** *(string) --* Documentation update needed

              - **FontColor** *(string) --* Specifies the color of the burned-in captions. This
              option is not valid for source captions that are STL, 608/embedded or teletext. These
              source settings are already pre-defined by the caption stream. All burn-in and DVB-Sub
              font settings must match.

              - **FontOpacity** *(integer) --* Specifies the opacity of the burned-in captions. 255
              is opaque; 0 is transparent. All burn-in and DVB-Sub font settings must match.

              - **FontResolution** *(integer) --* Font resolution in DPI (dots per inch); default is
              96 dpi. All burn-in and DVB-Sub font settings must match.

              - **FontSize** *(string) --* When set to auto fontSize will scale depending on the
              size of the output. Giving a positive integer will specify the exact font size in
              points. All burn-in and DVB-Sub font settings must match.

              - **OutlineColor** *(string) --* Specifies font outline color. This option is not
              valid for source captions that are either 608/embedded or teletext. These source
              settings are already pre-defined by the caption stream. All burn-in and DVB-Sub font
              settings must match.

              - **OutlineSize** *(integer) --* Specifies font outline size in pixels. This option is
              not valid for source captions that are either 608/embedded or teletext. These source
              settings are already pre-defined by the caption stream. All burn-in and DVB-Sub font
              settings must match.

              - **ShadowColor** *(string) --* Specifies the color of the shadow cast by the
              captions. All burn-in and DVB-Sub font settings must match.

              - **ShadowOpacity** *(integer) --* Specifies the opacity of the shadow. 255 is opaque;
              0 is transparent. Leaving this parameter blank is equivalent to setting it to 0
              (transparent). All burn-in and DVB-Sub font settings must match.

              - **ShadowXOffset** *(integer) --* Specifies the horizontal offset of the shadow
              relative to the captions in pixels. A value of -2 would result in a shadow offset 2
              pixels to the left. All burn-in and DVB-Sub font settings must match.

              - **ShadowYOffset** *(integer) --* Specifies the vertical offset of the shadow
              relative to the captions in pixels. A value of -2 would result in a shadow offset 2
              pixels above the text. All burn-in and DVB-Sub font settings must match.

              - **TeletextGridControl** *(string) --* Controls whether a fixed grid size will be
              used to generate the output subtitles bitmap. Only applicable for Teletext inputs and
              DVB-Sub/Burn-in outputs.

              - **XPosition** *(integer) --* Specifies the horizontal position of the caption
              relative to the left side of the output in pixels. A value of 10 would result in the
              captions starting 10 pixels from the left of the output. If no explicit xPosition is
              provided, the horizontal caption position will be determined by the alignment
              parameter. This option is not valid for source captions that are STL, 608/embedded or
              teletext. These source settings are already pre-defined by the caption stream. All
              burn-in and DVB-Sub font settings must match.

              - **YPosition** *(integer) --* Specifies the vertical position of the caption relative
              to the top of the output in pixels. A value of 10 would result in the captions
              starting 10 pixels from the top of the output. If no explicit yPosition is provided,
              the caption will be positioned towards the bottom of the output. This option is not
              valid for source captions that are STL, 608/embedded or teletext. These source
              settings are already pre-defined by the caption stream. All burn-in and DVB-Sub font
              settings must match.

            - **EmbeddedDestinationSettings** *(dict) --* Embedded Destination Settings

            - **EmbeddedPlusScte20DestinationSettings** *(dict) --* Embedded Plus Scte20 Destination
            Settings

            - **RtmpCaptionInfoDestinationSettings** *(dict) --* Rtmp Caption Info Destination
            Settings

            - **Scte20PlusEmbeddedDestinationSettings** *(dict) --* Scte20 Plus Embedded Destination
            Settings

            - **Scte27DestinationSettings** *(dict) --* Scte27 Destination Settings

            - **SmpteTtDestinationSettings** *(dict) --* Smpte Tt Destination Settings

            - **TeletextDestinationSettings** *(dict) --* Teletext Destination Settings

            - **TtmlDestinationSettings** *(dict) --* Ttml Destination Settings

              - **StyleControl** *(string) --* When set to passthrough, passes through style and
              position information from a TTML-like input source (TTML, SMPTE-TT, CFF-TT) to the
              CFF-TT output or TTML output.

            - **WebvttDestinationSettings** *(dict) --* Webvtt Destination Settings

          - **LanguageCode** *(string) --* ISO 639-2 three-digit code:
          http://www.loc.gov/standards/iso639-2/

          - **LanguageDescription** *(string) --* Human readable information to indicate captions
          available for players (eg. English, or Spanish).

          - **Name** *(string) --* Name of the caption description. Used to associate a caption
          description with an output. Names must be unique within an event.

      - **GlobalConfiguration** *(dict) --* Configuration settings that apply to the event as a
      whole.

        - **InitialAudioGain** *(integer) --* Value to set the initial audio gain for the Live
        Event.

        - **InputEndAction** *(string) --* Indicates the action to take when the current input
        completes (e.g. end-of-file). When switchAndLoopInputs is configured the encoder will
        restart at the beginning of the first input. When "none" is configured the encoder will
        transcode either black, a solid color, or a user specified slate images per the "Input Loss
        Behavior" configuration until the next input switch occurs (which is controlled through the
        Channel Schedule API).

        - **InputLossBehavior** *(dict) --* Settings for system actions when input is lost.

          - **BlackFrameMsec** *(integer) --* Documentation update needed

          - **InputLossImageColor** *(string) --* When input loss image type is "color" this field
          specifies the color to use. Value: 6 hex characters representing the values of RGB.

          - **InputLossImageSlate** *(dict) --* When input loss image type is "slate" these fields
          specify the parameters for accessing the slate.

            - **PasswordParam** *(string) --* key used to extract the password from EC2 Parameter
            store

            - **Uri** *(string) --* Uniform Resource Identifier - This should be a path to a file
            accessible to the Live system (eg. a http:// URI) depending on the output type. For
            example, a RTMP destination should have a uri simliar to: "rtmp://fmsserver/live".

            - **Username** *(string) --* Documentation update needed

          - **InputLossImageType** *(string) --* Indicates whether to substitute a solid color or a
          slate into the output after input loss exceeds blackFrameMsec.

          - **RepeatFrameMsec** *(integer) --* Documentation update needed

        - **OutputLockingMode** *(string) --* Indicates how MediaLive pipelines are synchronized.
        PIPELINELOCKING - MediaLive will attempt to synchronize the output of each pipeline to the
        other. EPOCHLOCKING - MediaLive will attempt to synchronize the output of each pipeline to
        the Unix epoch.

        - **OutputTimingSource** *(string) --* Indicates whether the rate of frames emitted by the
        Live encoder should be paced by its system clock (which optionally may be locked to another
        source via NTP) or should be locked to the clock of the source that is providing the input
        stream.

        - **SupportLowFramerateInputs** *(string) --* Adjusts video input buffer for streams with
        very low video framerates. This is commonly set to enabled for music channels with less than
        one video frame per second.

      - **NielsenConfiguration** *(dict) --* Nielsen configuration settings.

        - **DistributorId** *(string) --* Enter the Distributor ID assigned to your organization by
        Nielsen.

        - **NielsenPcmToId3Tagging** *(string) --* Enables Nielsen PCM to ID3 tagging

      - **OutputGroups** *(list) --* Placeholder documentation for __listOfOutputGroup

        - *(dict) --* Output groups for this Live Event. Output groups contain information about
        where streams should be distributed.

          - **Name** *(string) --* Custom output group name optionally defined by the user. Only
          letters, numbers, and the underscore character allowed; only 32 characters allowed.

          - **OutputGroupSettings** *(dict) --* Settings associated with the output group.

            - **ArchiveGroupSettings** *(dict) --* Archive Group Settings

              - **Destination** *(dict) --* A directory and base filename where archive files should
              be written.

                - **DestinationRefId** *(string) --* Placeholder documentation for __string

              - **RolloverInterval** *(integer) --* Number of seconds to write to archive file
              before closing and starting a new one.

            - **FrameCaptureGroupSettings** *(dict) --* Frame Capture Group Settings

              - **Destination** *(dict) --* The destination for the frame capture files. Either the
              URI for an Amazon S3 bucket and object, plus a file name prefix (for example,
              s3ssl://sportsDelivery/highlights/20180820/curling_) or the URI for a MediaStore
              container, plus a file name prefix (for example,
              mediastoressl://sportsDelivery/20180820/curling_). The final file names consist of the
              prefix from the destination field (for example, "curling_") + name modifier + the
              counter (5 digits, starting from 00001) + extension (which is always .jpg). For
              example, curlingLow.00001.jpg

                - **DestinationRefId** *(string) --* Placeholder documentation for __string

            - **HlsGroupSettings** *(dict) --* Hls Group Settings

              - **AdMarkers** *(list) --* Choose one or more ad marker types to pass SCTE35 signals
              through to this group of Apple HLS outputs.

                - *(string) --* Hls Ad Markers

              - **BaseUrlContent** *(string) --* A partial URI prefix that will be prepended to each
              output in the media .m3u8 file. Can be used if base manifest is delivered from a
              different URL than the main .m3u8 file.

              - **BaseUrlManifest** *(string) --* A partial URI prefix that will be prepended to
              each output in the media .m3u8 file. Can be used if base manifest is delivered from a
              different URL than the main .m3u8 file.

              - **CaptionLanguageMappings** *(list) --* Mapping of up to 4 caption channels to
              caption languages. Is only meaningful if captionLanguageSetting is set to "insert".

                - *(dict) --* Maps a caption channel to an ISO 693-2 language code
                (http://www.loc.gov/standards/iso639-2), with an optional description.

                  - **CaptionChannel** *(integer) --* The closed caption channel being described by
                  this CaptionLanguageMapping. Each channel mapping must have a unique channel
                  number (maximum of 4)

                  - **LanguageCode** *(string) --* Three character ISO 639-2 language code (see
                  http://www.loc.gov/standards/iso639-2)

                  - **LanguageDescription** *(string) --* Textual description of language

              - **CaptionLanguageSetting** *(string) --* Applies only to 608 Embedded output
              captions. insert: Include CLOSED-CAPTIONS lines in the manifest. Specify at least one
              language in the CC1 Language Code field. One CLOSED-CAPTION line is added for each
              Language Code you specify. Make sure to specify the languages in the order in which
              they appear in the original source (if the source is embedded format) or the order of
              the caption selectors (if the source is other than embedded). Otherwise, languages in
              the manifest will not match up properly with the output captions. none: Include
              CLOSED-CAPTIONS=
                  NONE line in the manifest. omit: Omit any CLOSED-CAPTIONS line from
              the manifest.

              - **ClientCache** *(string) --* When set to "disabled", sets the #EXT-X-ALLOW-CACHE:no
              tag in the manifest, which prevents clients from saving media segments for later
              replay.

              - **CodecSpecification** *(string) --* Specification to use (RFC-6381 or the default
              RFC-4281) during m3u8 playlist generation.

              - **ConstantIv** *(string) --* For use with encryptionType. This is a 128-bit, 16-byte
              hex value represented by a 32-character text string. If ivSource is set to "explicit"
              then this parameter is required and is used as the IV for encryption.

              - **Destination** *(dict) --* A directory or HTTP destination for the HLS segments,
              manifest files, and encryption keys (if enabled).

                - **DestinationRefId** *(string) --* Placeholder documentation for __string

              - **DirectoryStructure** *(string) --* Place segments in subdirectories.

              - **EncryptionType** *(string) --* Encrypts the segments with the given encryption
              scheme. Exclude this parameter if no encryption is desired.

              - **HlsCdnSettings** *(dict) --* Parameters that control interactions with the CDN.

                - **HlsAkamaiSettings** *(dict) --* Hls Akamai Settings

                  - **ConnectionRetryInterval** *(integer) --* Number of seconds to wait before
                  retrying connection to the CDN if the connection is lost.

                  - **FilecacheDuration** *(integer) --* Size in seconds of file cache for streaming
                  outputs.

                  - **HttpTransferMode** *(string) --* Specify whether or not to use chunked
                  transfer encoding to Akamai. User should contact Akamai to enable this feature.

                  - **NumRetries** *(integer) --* Number of retry attempts that will be made before
                  the Live Event is put into an error state.

                  - **RestartDelay** *(integer) --* If a streaming output fails, number of seconds
                  to wait until a restart is initiated. A value of 0 means never restart.

                  - **Salt** *(string) --* Salt for authenticated Akamai.

                  - **Token** *(string) --* Token parameter for authenticated akamai. If not
                  specified, _gda_ is used.

                - **HlsBasicPutSettings** *(dict) --* Hls Basic Put Settings

                  - **ConnectionRetryInterval** *(integer) --* Number of seconds to wait before
                  retrying connection to the CDN if the connection is lost.

                  - **FilecacheDuration** *(integer) --* Size in seconds of file cache for streaming
                  outputs.

                  - **NumRetries** *(integer) --* Number of retry attempts that will be made before
                  the Live Event is put into an error state.

                  - **RestartDelay** *(integer) --* If a streaming output fails, number of seconds
                  to wait until a restart is initiated. A value of 0 means never restart.

                - **HlsMediaStoreSettings** *(dict) --* Hls Media Store Settings

                  - **ConnectionRetryInterval** *(integer) --* Number of seconds to wait before
                  retrying connection to the CDN if the connection is lost.

                  - **FilecacheDuration** *(integer) --* Size in seconds of file cache for streaming
                  outputs.

                  - **MediaStoreStorageClass** *(string) --* When set to temporal, output files are
                  stored in non-persistent memory for faster reading and writing.

                  - **NumRetries** *(integer) --* Number of retry attempts that will be made before
                  the Live Event is put into an error state.

                  - **RestartDelay** *(integer) --* If a streaming output fails, number of seconds
                  to wait until a restart is initiated. A value of 0 means never restart.

                - **HlsWebdavSettings** *(dict) --* Hls Webdav Settings

                  - **ConnectionRetryInterval** *(integer) --* Number of seconds to wait before
                  retrying connection to the CDN if the connection is lost.

                  - **FilecacheDuration** *(integer) --* Size in seconds of file cache for streaming
                  outputs.

                  - **HttpTransferMode** *(string) --* Specify whether or not to use chunked
                  transfer encoding to WebDAV.

                  - **NumRetries** *(integer) --* Number of retry attempts that will be made before
                  the Live Event is put into an error state.

                  - **RestartDelay** *(integer) --* If a streaming output fails, number of seconds
                  to wait until a restart is initiated. A value of 0 means never restart.

              - **IFrameOnlyPlaylists** *(string) --* DISABLED: Do not create an I-frame-only
              manifest, but do create the master and media manifests (according to the Output
              Selection field). STANDARD: Create an I-frame-only manifest for each output that
              contains video, as well as the other manifests (according to the Output Selection
              field). The I-frame manifest contains a #EXT-X-I-FRAMES-ONLY tag to indicate it is
              I-frame only, and one or more #EXT-X-BYTERANGE entries identifying the I-frame
              position. For example, #EXT-X-BYTERANGE:160364@1461888"

              - **IndexNSegments** *(integer) --* Applies only if Mode field is LIVE. Specifies the
              maximum number of segments in the media manifest file. After this maximum, older
              segments are removed from the media manifest. This number must be less than or equal
              to the Keep Segments field.

              - **InputLossAction** *(string) --* Parameter that control output group behavior on
              input loss.

              - **IvInManifest** *(string) --* For use with encryptionType. The IV (Initialization
              Vector) is a 128-bit number used in conjunction with the key for encrypting blocks. If
              set to "include", IV is listed in the manifest, otherwise the IV is not in the
              manifest.

              - **IvSource** *(string) --* For use with encryptionType. The IV (Initialization
              Vector) is a 128-bit number used in conjunction with the key for encrypting blocks. If
              this setting is "followsSegmentNumber", it will cause the IV to change every segment
              (to match the segment number). If this is set to "explicit", you must enter a
              constantIv value.

              - **KeepSegments** *(integer) --* Applies only if Mode field is LIVE. Specifies the
              number of media segments (.ts files) to retain in the destination directory.

              - **KeyFormat** *(string) --* The value specifies how the key is represented in the
              resource identified by the URI. If parameter is absent, an implicit value of
              "identity" is used. A reverse DNS string can also be given.

              - **KeyFormatVersions** *(string) --* Either a single positive integer version value
              or a slash delimited list of version values (1/2/3).

              - **KeyProviderSettings** *(dict) --* The key provider settings.

                - **StaticKeySettings** *(dict) --* Static Key Settings

                  - **KeyProviderServer** *(dict) --* The URL of the license server used for
                  protecting content.

                    - **PasswordParam** *(string) --* key used to extract the password from EC2
                    Parameter store

                    - **Uri** *(string) --* Uniform Resource Identifier - This should be a path to a
                    file accessible to the Live system (eg. a http:// URI) depending on the output
                    type. For example, a RTMP destination should have a uri simliar to:
                    "rtmp://fmsserver/live".

                    - **Username** *(string) --* Documentation update needed

                  - **StaticKeyValue** *(string) --* Static key value as a 32 character hexadecimal
                  string.

              - **ManifestCompression** *(string) --* When set to gzip, compresses HLS playlist.

              - **ManifestDurationFormat** *(string) --* Indicates whether the output manifest
              should use floating point or integer values for segment duration.

              - **MinSegmentLength** *(integer) --* When set, minimumSegmentLength is enforced by
              looking ahead and back within the specified range for a nearby avail and extending the
              segment size if needed.

              - **Mode** *(string) --* If "vod", all segments are indexed and kept permanently in
              the destination and manifest. If "live", only the number segments specified in
              keepSegments and indexNSegments are kept; newer segments replace older segments, which
              may prevent players from rewinding all the way to the beginning of the event. VOD mode
              uses HLS EXT-X-PLAYLIST-TYPE of EVENT while the channel is running, converting it to a
              "VOD" type manifest on completion of the stream.

              - **OutputSelection** *(string) --* MANIFESTSANDSEGMENTS: Generates manifests (master
              manifest, if applicable, and media manifests) for this output group. SEGMENTSONLY:
              Does not generate any manifests for this output group.

              - **ProgramDateTime** *(string) --* Includes or excludes EXT-X-PROGRAM-DATE-TIME tag
              in .m3u8 manifest files. The value is calculated as follows: either the program date
              and time are initialized using the input timecode source, or the time is initialized
              using the input timecode source and the date is initialized using the timestampOffset.

              - **ProgramDateTimePeriod** *(integer) --* Period of insertion of
              EXT-X-PROGRAM-DATE-TIME entry, in seconds.

              - **RedundantManifest** *(string) --* ENABLED: The master manifest (.m3u8 file) for
              each pipeline includes information about both pipelines: first its own media files,
              then the media files of the other pipeline. This feature allows playout device that
              support stale manifest detection to switch from one manifest to the other, when the
              current manifest seems to be stale. There are still two destinations and two master
              manifests, but both master manifests reference the media files from both pipelines.
              DISABLED: The master manifest (.m3u8 file) for each pipeline includes information
              about its own pipeline only. For an HLS output group with MediaPackage as the
              destination, the DISABLED behavior is always followed. MediaPackage regenerates the
              manifests it serves to players so a redundant manifest from MediaLive is irrelevant.

              - **SegmentLength** *(integer) --* Length of MPEG-2 Transport Stream segments to
              create (in seconds). Note that segments will end on the next keyframe after this
              number of seconds, so actual segment length may be longer.

              - **SegmentationMode** *(string) --* useInputSegmentation has been deprecated. The
              configured segment size is always used.

              - **SegmentsPerSubdirectory** *(integer) --* Number of segments to write to a
              subdirectory before starting a new one. directoryStructure must be
              subdirectoryPerStream for this setting to have an effect.

              - **StreamInfResolution** *(string) --* Include or exclude RESOLUTION attribute for
              video in EXT-X-STREAM-INF tag of variant manifest.

              - **TimedMetadataId3Frame** *(string) --* Indicates ID3 frame that has the timecode.

              - **TimedMetadataId3Period** *(integer) --* Timed Metadata interval in seconds.

              - **TimestampDeltaMilliseconds** *(integer) --* Provides an extra millisecond delta
              offset to fine tune the timestamps.

              - **TsFileMode** *(string) --* SEGMENTEDFILES: Emit the program as segments - multiple
              .ts media files. SINGLEFILE: Applies only if Mode field is VOD. Emit the program as a
              single .ts media file. The media manifest includes #EXT-X-BYTERANGE tags to index
              segments for playback. A typical use for this value is when sending the output to AWS
              Elemental MediaConvert, which can accept only a single media file. Playback while the
              channel is running is not guaranteed due to HTTP server caching.

            - **MediaPackageGroupSettings** *(dict) --* Media Package Group Settings

              - **Destination** *(dict) --* MediaPackage channel destination.

                - **DestinationRefId** *(string) --* Placeholder documentation for __string

            - **MsSmoothGroupSettings** *(dict) --* Ms Smooth Group Settings

              - **AcquisitionPointId** *(string) --* The value of the "Acquisition Point Identity"
              element used in each message placed in the sparse track. Only enabled if
              sparseTrackType is not "none".

              - **AudioOnlyTimecodeControl** *(string) --* If set to passthrough for an audio-only
              MS Smooth output, the fragment absolute time will be set to the current timecode. This
              option does not write timecodes to the audio elementary stream.

              - **CertificateMode** *(string) --* If set to verifyAuthenticity, verify the https
              certificate chain to a trusted Certificate Authority (CA). This will cause https
              outputs to self-signed certificates to fail.

              - **ConnectionRetryInterval** *(integer) --* Number of seconds to wait before retrying
              connection to the IIS server if the connection is lost. Content will be cached during
              this time and the cache will be be delivered to the IIS server once the connection is
              re-established.

              - **Destination** *(dict) --* Smooth Streaming publish point on an IIS server.
              Elemental Live acts as a "Push" encoder to IIS.

                - **DestinationRefId** *(string) --* Placeholder documentation for __string

              - **EventId** *(string) --* MS Smooth event ID to be sent to the IIS server. Should
              only be specified if eventIdMode is set to useConfigured.

              - **EventIdMode** *(string) --* Specifies whether or not to send an event ID to the
              IIS server. If no event ID is sent and the same Live Event is used without changing
              the publishing point, clients might see cached video from the previous run. Options: -
              "useConfigured" - use the value provided in eventId - "useTimestamp" - generate and
              send an event ID based on the current timestamp - "noEventId" - do not send an event
              ID to the IIS server.

              - **EventStopBehavior** *(string) --* When set to sendEos, send EOS signal to IIS
              server when stopping the event

              - **FilecacheDuration** *(integer) --* Size in seconds of file cache for streaming
              outputs.

              - **FragmentLength** *(integer) --* Length of mp4 fragments to generate (in seconds).
              Fragment length must be compatible with GOP size and framerate.

              - **InputLossAction** *(string) --* Parameter that control output group behavior on
              input loss.

              - **NumRetries** *(integer) --* Number of retry attempts.

              - **RestartDelay** *(integer) --* Number of seconds before initiating a restart due to
              output failure, due to exhausting the numRetries on one segment, or exceeding
              filecacheDuration.

              - **SegmentationMode** *(string) --* useInputSegmentation has been deprecated. The
              configured segment size is always used.

              - **SendDelayMs** *(integer) --* Number of milliseconds to delay the output from the
              second pipeline.

              - **SparseTrackType** *(string) --* If set to scte35, use incoming SCTE-35 messages to
              generate a sparse track in this group of MS-Smooth outputs.

              - **StreamManifestBehavior** *(string) --* When set to send, send stream manifest so
              publishing point doesn't start until all streams start.

              - **TimestampOffset** *(string) --* Timestamp offset for the event. Only used if
              timestampOffsetMode is set to useConfiguredOffset.

              - **TimestampOffsetMode** *(string) --* Type of timestamp date offset to use. -
              useEventStartDate: Use the date the event was started as the offset -
              useConfiguredOffset: Use an explicitly configured date as the offset

            - **MultiplexGroupSettings** *(dict) --* Multiplex Group Settings

            - **RtmpGroupSettings** *(dict) --* Rtmp Group Settings

              - **AuthenticationScheme** *(string) --* Authentication scheme to use when connecting
              with CDN

              - **CacheFullBehavior** *(string) --* Controls behavior when content cache fills up.
              If remote origin server stalls the RTMP connection and does not accept content fast
              enough the 'Media Cache' will fill up. When the cache reaches the duration specified
              by cacheLength the cache will stop accepting new content. If set to
              disconnectImmediately, the RTMP output will force a disconnect. Clear the media cache,
              and reconnect after restartDelay seconds. If set to waitForServer, the RTMP output
              will wait up to 5 minutes to allow the origin server to begin accepting data again.

              - **CacheLength** *(integer) --* Cache length, in seconds, is used to calculate buffer
              size.

              - **CaptionData** *(string) --* Controls the types of data that passes to
              onCaptionInfo outputs. If set to 'all' then 608 and 708 carried DTVCC data will be
              passed. If set to 'field1AndField2608' then DTVCC data will be stripped out, but 608
              data from both fields will be passed. If set to 'field1608' then only the data carried
              in 608 from field 1 video will be passed.

              - **InputLossAction** *(string) --* Controls the behavior of this RTMP group if input
              becomes unavailable. - emitOutput: Emit a slate until input returns. - pauseOutput:
              Stop transmitting data until input returns. This does not close the underlying RTMP
              connection.

              - **RestartDelay** *(integer) --* If a streaming output fails, number of seconds to
              wait until a restart is initiated. A value of 0 means never restart.

            - **UdpGroupSettings** *(dict) --* Udp Group Settings

              - **InputLossAction** *(string) --* Specifies behavior of last resort when input video
              is lost, and no more backup inputs are available. When dropTs is selected the entire
              transport stream will stop being emitted. When dropProgram is selected the program can
              be dropped from the transport stream (and replaced with null packets to meet the TS
              bitrate requirement). Or, when emitProgram is chosen the transport stream will
              continue to be produced normally with repeat frames, black frames, or slate frames
              substituted for the absent input video.

              - **TimedMetadataId3Frame** *(string) --* Indicates ID3 frame that has the timecode.

              - **TimedMetadataId3Period** *(integer) --* Timed Metadata interval in seconds.

          - **Outputs** *(list) --* Placeholder documentation for __listOfOutput

            - *(dict) --* Output settings. There can be multiple outputs within a group.

              - **AudioDescriptionNames** *(list) --* The names of the AudioDescriptions used as
              audio sources for this output.

                - *(string) --* Placeholder documentation for __string

              - **CaptionDescriptionNames** *(list) --* The names of the CaptionDescriptions used as
              caption sources for this output.

                - *(string) --* Placeholder documentation for __string

              - **OutputName** *(string) --* The name used to identify an output.

              - **OutputSettings** *(dict) --* Output type-specific settings.

                - **ArchiveOutputSettings** *(dict) --* Archive Output Settings

                  - **ContainerSettings** *(dict) --* Settings specific to the container type of the
                  file.

                    - **M2tsSettings** *(dict) --* M2ts Settings

                      - **AbsentInputAudioBehavior** *(string) --* When set to drop, output audio
                      streams will be removed from the program if the selected input audio stream is
                      removed from the input. This allows the output audio configuration to
                      dynamically change based on input configuration. If this is set to
                      encodeSilence, all output audio streams will output encoded silence when not
                      connected to an active input stream.

                      - **Arib** *(string) --* When set to enabled, uses ARIB-compliant field muxing
                      and removes video descriptor.

                      - **AribCaptionsPid** *(string) --* Packet Identifier (PID) for ARIB Captions
                      in the transport stream. Can be entered as a decimal or hexadecimal value.
                      Valid values are 32 (or 0x20)..8182 (or 0x1ff6).

                      - **AribCaptionsPidControl** *(string) --* If set to auto, pid number used for
                      ARIB Captions will be auto-selected from unused pids. If set to useConfigured,
                      ARIB Captions will be on the configured pid number.

                      - **AudioBufferModel** *(string) --* When set to dvb, uses DVB buffer model
                      for Dolby Digital audio. When set to atsc, the ATSC model is used.

                      - **AudioFramesPerPes** *(integer) --* The number of audio frames to insert
                      for each PES packet.

                      - **AudioPids** *(string) --* Packet Identifier (PID) of the elementary audio
                      stream(s) in the transport stream. Multiple values are accepted, and can be
                      entered in ranges and/or by comma separation. Can be entered as decimal or
                      hexadecimal values. Each PID specified must be in the range of 32 (or
                      0x20)..8182 (or 0x1ff6).

                      - **AudioStreamType** *(string) --* When set to atsc, uses stream type = 0x81
                      for AC3 and stream type =
                           0x87 for EAC3. When set to dvb, uses stream type =
                      0x06.

                      - **Bitrate** *(integer) --* The output bitrate of the transport stream in
                      bits per second. Setting to 0 lets the muxer automatically determine the
                      appropriate bitrate.

                      - **BufferModel** *(string) --* If set to multiplex, use multiplex buffer
                      model for accurate interleaving. Setting to bufferModel to none can lead to
                      lower latency, but low-memory devices may not be able to play back the stream
                      without interruptions.

                      - **CcDescriptor** *(string) --* When set to enabled, generates
                      captionServiceDescriptor in PMT.

                      - **DvbNitSettings** *(dict) --* Inserts DVB Network Information Table (NIT)
                      at the specified table repetition interval.

                        - **NetworkId** *(integer) --* The numeric value placed in the Network
                        Information Table (NIT).

                        - **NetworkName** *(string) --* The network name text placed in the
                        networkNameDescriptor inside the Network Information Table. Maximum length
                        is 256 characters.

                        - **RepInterval** *(integer) --* The number of milliseconds between
                        instances of this table in the output transport stream.

                      - **DvbSdtSettings** *(dict) --* Inserts DVB Service Description Table (SDT)
                      at the specified table repetition interval.

                        - **OutputSdt** *(string) --* Selects method of inserting SDT information
                        into output stream. The sdtFollow setting copies SDT information from input
                        stream to output stream. The sdtFollowIfPresent setting copies SDT
                        information from input stream to output stream if SDT information is present
                        in the input, otherwise it will fall back on the user-defined values. The
                        sdtManual setting means user will enter the SDT information. The sdtNone
                        setting means output stream will not contain SDT information.

                        - **RepInterval** *(integer) --* The number of milliseconds between
                        instances of this table in the output transport stream.

                        - **ServiceName** *(string) --* The service name placed in the
                        serviceDescriptor in the Service Description Table. Maximum length is 256
                        characters.

                        - **ServiceProviderName** *(string) --* The service provider name placed in
                        the serviceDescriptor in the Service Description Table. Maximum length is
                        256 characters.

                      - **DvbSubPids** *(string) --* Packet Identifier (PID) for input source DVB
                      Subtitle data to this output. Multiple values are accepted, and can be entered
                      in ranges and/or by comma separation. Can be entered as decimal or hexadecimal
                      values. Each PID specified must be in the range of 32 (or 0x20)..8182 (or
                      0x1ff6).

                      - **DvbTdtSettings** *(dict) --* Inserts DVB Time and Date Table (TDT) at the
                      specified table repetition interval.

                        - **RepInterval** *(integer) --* The number of milliseconds between
                        instances of this table in the output transport stream.

                      - **DvbTeletextPid** *(string) --* Packet Identifier (PID) for input source
                      DVB Teletext data to this output. Can be entered as a decimal or hexadecimal
                      value. Valid values are 32 (or 0x20)..8182 (or 0x1ff6).

                      - **Ebif** *(string) --* If set to passthrough, passes any EBIF data from the
                      input source to this output.

                      - **EbpAudioInterval** *(string) --* When videoAndFixedIntervals is selected,
                      audio EBP markers will be added to partitions 3 and 4. The interval between
                      these additional markers will be fixed, and will be slightly shorter than the
                      video EBP marker interval. Only available when EBP Cablelabs segmentation
                      markers are selected. Partitions 1 and 2 will always follow the video
                      interval.

                      - **EbpLookaheadMs** *(integer) --* When set, enforces that Encoder Boundary
                      Points do not come within the specified time interval of each other by looking
                      ahead at input video. If another EBP is going to come in within the specified
                      time interval, the current EBP is not emitted, and the segment is "stretched"
                      to the next marker. The lookahead value does not add latency to the system.
                      The Live Event must be configured elsewhere to create sufficient latency to
                      make the lookahead accurate.

                      - **EbpPlacement** *(string) --* Controls placement of EBP on Audio PIDs. If
                      set to videoAndAudioPids, EBP markers will be placed on the video PID and all
                      audio PIDs. If set to videoPid, EBP markers will be placed on only the video
                      PID.

                      - **EcmPid** *(string) --* This field is unused and deprecated.

                      - **EsRateInPes** *(string) --* Include or exclude the ES Rate field in the
                      PES header.

                      - **EtvPlatformPid** *(string) --* Packet Identifier (PID) for input source
                      ETV Platform data to this output. Can be entered as a decimal or hexadecimal
                      value. Valid values are 32 (or 0x20)..8182 (or 0x1ff6).

                      - **EtvSignalPid** *(string) --* Packet Identifier (PID) for input source ETV
                      Signal data to this output. Can be entered as a decimal or hexadecimal value.
                      Valid values are 32 (or 0x20)..8182 (or 0x1ff6).

                      - **FragmentTime** *(float) --* The length in seconds of each fragment. Only
                      used with EBP markers.

                      - **Klv** *(string) --* If set to passthrough, passes any KLV data from the
                      input source to this output.

                      - **KlvDataPids** *(string) --* Packet Identifier (PID) for input source KLV
                      data to this output. Multiple values are accepted, and can be entered in
                      ranges and/or by comma separation. Can be entered as decimal or hexadecimal
                      values. Each PID specified must be in the range of 32 (or 0x20)..8182 (or
                      0x1ff6).

                      - **NielsenId3Behavior** *(string) --* If set to passthrough, Nielsen
                      inaudible tones for media tracking will be detected in the input audio and an
                      equivalent ID3 tag will be inserted in the output.

                      - **NullPacketBitrate** *(float) --* Value in bits per second of extra null
                      packets to insert into the transport stream. This can be used if a downstream
                      encryption system requires periodic null packets.

                      - **PatInterval** *(integer) --* The number of milliseconds between instances
                      of this table in the output transport stream. Valid values are 0, 10..1000.

                      - **PcrControl** *(string) --* When set to pcrEveryPesPacket, a Program Clock
                      Reference value is inserted for every Packetized Elementary Stream (PES)
                      header. This parameter is effective only when the PCR PID is the same as the
                      video or audio elementary stream.

                      - **PcrPeriod** *(integer) --* Maximum time in milliseconds between Program
                      Clock Reference (PCRs) inserted into the transport stream.

                      - **PcrPid** *(string) --* Packet Identifier (PID) of the Program Clock
                      Reference (PCR) in the transport stream. When no value is given, the encoder
                      will assign the same value as the Video PID. Can be entered as a decimal or
                      hexadecimal value. Valid values are 32 (or 0x20)..8182 (or 0x1ff6).

                      - **PmtInterval** *(integer) --* The number of milliseconds between instances
                      of this table in the output transport stream. Valid values are 0, 10..1000.

                      - **PmtPid** *(string) --* Packet Identifier (PID) for the Program Map Table
                      (PMT) in the transport stream. Can be entered as a decimal or hexadecimal
                      value. Valid values are 32 (or 0x20)..8182 (or 0x1ff6).

                      - **ProgramNum** *(integer) --* The value of the program number field in the
                      Program Map Table.

                      - **RateMode** *(string) --* When vbr, does not insert null packets into
                      transport stream to fill specified bitrate. The bitrate setting acts as the
                      maximum bitrate when vbr is set.

                      - **Scte27Pids** *(string) --* Packet Identifier (PID) for input source
                      SCTE-27 data to this output. Multiple values are accepted, and can be entered
                      in ranges and/or by comma separation. Can be entered as decimal or hexadecimal
                      values. Each PID specified must be in the range of 32 (or 0x20)..8182 (or
                      0x1ff6).

                      - **Scte35Control** *(string) --* Optionally pass SCTE-35 signals from the
                      input source to this output.

                      - **Scte35Pid** *(string) --* Packet Identifier (PID) of the SCTE-35 stream in
                      the transport stream. Can be entered as a decimal or hexadecimal value. Valid
                      values are 32 (or 0x20)..8182 (or 0x1ff6).

                      - **SegmentationMarkers** *(string) --* Inserts segmentation markers at each
                      segmentationTime period. raiSegstart sets the Random Access Indicator bit in
                      the adaptation field. raiAdapt sets the RAI bit and adds the current timecode
                      in the private data bytes. psiSegstart inserts PAT and PMT tables at the start
                      of segments. ebp adds Encoder Boundary Point information to the adaptation
                      field as per OpenCable specification OC-SP-EBP-I01-130118. ebpLegacy adds
                      Encoder Boundary Point information to the adaptation field using a legacy
                      proprietary format.

                      - **SegmentationStyle** *(string) --* The segmentation style parameter
                      controls how segmentation markers are inserted into the transport stream. With
                      avails, it is possible that segments may be truncated, which can influence
                      where future segmentation markers are inserted. When a segmentation style of
                      "resetCadence" is selected and a segment is truncated due to an avail, we will
                      reset the segmentation cadence. This means the subsequent segment will have a
                      duration of $segmentationTime seconds. When a segmentation style of
                      "maintainCadence" is selected and a segment is truncated due to an avail, we
                      will not reset the segmentation cadence. This means the subsequent segment
                      will likely be truncated as well. However, all segments after that will have a
                      duration of $segmentationTime seconds. Note that EBP lookahead is a slight
                      exception to this rule.

                      - **SegmentationTime** *(float) --* The length in seconds of each segment.
                      Required unless markers is set to None_.

                      - **TimedMetadataBehavior** *(string) --* When set to passthrough, timed
                      metadata will be passed through from input to output.

                      - **TimedMetadataPid** *(string) --* Packet Identifier (PID) of the timed
                      metadata stream in the transport stream. Can be entered as a decimal or
                      hexadecimal value. Valid values are 32 (or 0x20)..8182 (or 0x1ff6).

                      - **TransportStreamId** *(integer) --* The value of the transport stream ID
                      field in the Program Map Table.

                      - **VideoPid** *(string) --* Packet Identifier (PID) of the elementary video
                      stream in the transport stream. Can be entered as a decimal or hexadecimal
                      value. Valid values are 32 (or 0x20)..8182 (or 0x1ff6).

                  - **Extension** *(string) --* Output file extension. If excluded, this will be
                  auto-selected from the container type.

                  - **NameModifier** *(string) --* String concatenated to the end of the destination
                  filename. Required for multiple outputs of the same type.

                - **FrameCaptureOutputSettings** *(dict) --* Frame Capture Output Settings

                  - **NameModifier** *(string) --* Required if the output group contains more than
                  one output. This modifier forms part of the output file name.

                - **HlsOutputSettings** *(dict) --* Hls Output Settings

                  - **HlsSettings** *(dict) --* Settings regarding the underlying stream. These
                  settings are different for audio-only outputs.

                    - **AudioOnlyHlsSettings** *(dict) --* Audio Only Hls Settings

                      - **AudioGroupId** *(string) --* Specifies the group to which the audio
                      Rendition belongs.

                      - **AudioOnlyImage** *(dict) --* Optional. Specifies the .jpg or .png image to
                      use as the cover art for an audio-only output. We recommend a low bit-size
                      file because the image increases the output audio bandwidth. The image is
                      attached to the audio as an ID3 tag, frame type APIC, picture type 0x10, as
                      per the "ID3 tag version 2.4.0 - Native Frames" standard.

                        - **PasswordParam** *(string) --* key used to extract the password from EC2
                        Parameter store

                        - **Uri** *(string) --* Uniform Resource Identifier - This should be a path
                        to a file accessible to the Live system (eg. a http:// URI) depending on the
                        output type. For example, a RTMP destination should have a uri simliar to:
                        "rtmp://fmsserver/live".

                        - **Username** *(string) --* Documentation update needed

                      - **AudioTrackType** *(string) --* Four types of audio-only tracks are
                      supported: Audio-Only Variant Stream The client can play back this audio-only
                      stream instead of video in low-bandwidth scenarios. Represented as an
                      EXT-X-STREAM-INF in the HLS manifest. Alternate Audio, Auto Select, Default
                      Alternate rendition that the client should try to play back by default.
                      Represented as an EXT-X-MEDIA in the HLS manifest with DEFAULT=YES,
                      AUTOSELECT=
                          YES Alternate Audio, Auto Select, Not Default Alternate rendition
                      that the client may try to play back by default. Represented as an EXT-X-MEDIA
                      in the HLS manifest with DEFAULT=NO, AUTOSELECT=
                          YES Alternate Audio, not Auto
                      Select Alternate rendition that the client will not try to play back by
                      default. Represented as an EXT-X-MEDIA in the HLS manifest with DEFAULT=NO,
                      AUTOSELECT=NO

                    - **StandardHlsSettings** *(dict) --* Standard Hls Settings

                      - **AudioRenditionSets** *(string) --* List all the audio groups that are used
                      with the video output stream. Input all the audio GROUP-IDs that are
                      associated to the video, separate by ','.

                      - **M3u8Settings** *(dict) --* Settings information for the .m3u8 container

                        - **AudioFramesPerPes** *(integer) --* The number of audio frames to insert
                        for each PES packet.

                        - **AudioPids** *(string) --* Packet Identifier (PID) of the elementary
                        audio stream(s) in the transport stream. Multiple values are accepted, and
                        can be entered in ranges and/or by comma separation. Can be entered as
                        decimal or hexadecimal values.

                        - **EcmPid** *(string) --* This parameter is unused and deprecated.

                        - **NielsenId3Behavior** *(string) --* If set to passthrough, Nielsen
                        inaudible tones for media tracking will be detected in the input audio and
                        an equivalent ID3 tag will be inserted in the output.

                        - **PatInterval** *(integer) --* The number of milliseconds between
                        instances of this table in the output transport stream. A value of \\"0\\"
                        writes out the PMT once per segment file.

                        - **PcrControl** *(string) --* When set to pcrEveryPesPacket, a Program
                        Clock Reference value is inserted for every Packetized Elementary Stream
                        (PES) header. This parameter is effective only when the PCR PID is the same
                        as the video or audio elementary stream.

                        - **PcrPeriod** *(integer) --* Maximum time in milliseconds between Program
                        Clock References (PCRs) inserted into the transport stream.

                        - **PcrPid** *(string) --* Packet Identifier (PID) of the Program Clock
                        Reference (PCR) in the transport stream. When no value is given, the encoder
                        will assign the same value as the Video PID. Can be entered as a decimal or
                        hexadecimal value.

                        - **PmtInterval** *(integer) --* The number of milliseconds between
                        instances of this table in the output transport stream. A value of \\"0\\"
                        writes out the PMT once per segment file.

                        - **PmtPid** *(string) --* Packet Identifier (PID) for the Program Map Table
                        (PMT) in the transport stream. Can be entered as a decimal or hexadecimal
                        value.

                        - **ProgramNum** *(integer) --* The value of the program number field in the
                        Program Map Table.

                        - **Scte35Behavior** *(string) --* If set to passthrough, passes any SCTE-35
                        signals from the input source to this output.

                        - **Scte35Pid** *(string) --* Packet Identifier (PID) of the SCTE-35 stream
                        in the transport stream. Can be entered as a decimal or hexadecimal value.

                        - **TimedMetadataBehavior** *(string) --* When set to passthrough, timed
                        metadata is passed through from input to output.

                        - **TimedMetadataPid** *(string) --* Packet Identifier (PID) of the timed
                        metadata stream in the transport stream. Can be entered as a decimal or
                        hexadecimal value. Valid values are 32 (or 0x20)..8182 (or 0x1ff6).

                        - **TransportStreamId** *(integer) --* The value of the transport stream ID
                        field in the Program Map Table.

                        - **VideoPid** *(string) --* Packet Identifier (PID) of the elementary video
                        stream in the transport stream. Can be entered as a decimal or hexadecimal
                        value.

                  - **NameModifier** *(string) --* String concatenated to the end of the destination
                  filename. Accepts \\"Format Identifiers\\":#formatIdentifierParameters.

                  - **SegmentModifier** *(string) --* String concatenated to end of segment
                  filenames.

                - **MediaPackageOutputSettings** *(dict) --* Media Package Output Settings

                - **MsSmoothOutputSettings** *(dict) --* Ms Smooth Output Settings

                  - **H265PackagingType** *(string) --* Only applicable when this output is
                  referencing an H.265 video description. Specifies whether MP4 segments should be
                  packaged as HEV1 or HVC1.

                  - **NameModifier** *(string) --* String concatenated to the end of the destination
                  filename. Required for multiple outputs of the same type.

                - **MultiplexOutputSettings** *(dict) --* Multiplex Output Settings

                  - **Destination** *(dict) --* Destination is a Multiplex.

                    - **DestinationRefId** *(string) --* Placeholder documentation for __string

                - **RtmpOutputSettings** *(dict) --* Rtmp Output Settings

                  - **CertificateMode** *(string) --* If set to verifyAuthenticity, verify the tls
                  certificate chain to a trusted Certificate Authority (CA). This will cause rtmps
                  outputs with self-signed certificates to fail.

                  - **ConnectionRetryInterval** *(integer) --* Number of seconds to wait before
                  retrying a connection to the Flash Media server if the connection is lost.

                  - **Destination** *(dict) --* The RTMP endpoint excluding the stream name (eg.
                  rtmp://host/appname). For connection to Akamai, a username and password must be
                  supplied. URI fields accept format identifiers.

                    - **DestinationRefId** *(string) --* Placeholder documentation for __string

                  - **NumRetries** *(integer) --* Number of retry attempts.

                - **UdpOutputSettings** *(dict) --* Udp Output Settings

                  - **BufferMsec** *(integer) --* UDP output buffering in milliseconds. Larger
                  values increase latency through the transcoder but simultaneously assist the
                  transcoder in maintaining a constant, low-jitter UDP/RTP output while
                  accommodating clock recovery, input switching, input disruptions, picture
                  reordering, etc.

                  - **ContainerSettings** *(dict) --* Udp Container Settings

                    - **M2tsSettings** *(dict) --* M2ts Settings

                      - **AbsentInputAudioBehavior** *(string) --* When set to drop, output audio
                      streams will be removed from the program if the selected input audio stream is
                      removed from the input. This allows the output audio configuration to
                      dynamically change based on input configuration. If this is set to
                      encodeSilence, all output audio streams will output encoded silence when not
                      connected to an active input stream.

                      - **Arib** *(string) --* When set to enabled, uses ARIB-compliant field muxing
                      and removes video descriptor.

                      - **AribCaptionsPid** *(string) --* Packet Identifier (PID) for ARIB Captions
                      in the transport stream. Can be entered as a decimal or hexadecimal value.
                      Valid values are 32 (or 0x20)..8182 (or 0x1ff6).

                      - **AribCaptionsPidControl** *(string) --* If set to auto, pid number used for
                      ARIB Captions will be auto-selected from unused pids. If set to useConfigured,
                      ARIB Captions will be on the configured pid number.

                      - **AudioBufferModel** *(string) --* When set to dvb, uses DVB buffer model
                      for Dolby Digital audio. When set to atsc, the ATSC model is used.

                      - **AudioFramesPerPes** *(integer) --* The number of audio frames to insert
                      for each PES packet.

                      - **AudioPids** *(string) --* Packet Identifier (PID) of the elementary audio
                      stream(s) in the transport stream. Multiple values are accepted, and can be
                      entered in ranges and/or by comma separation. Can be entered as decimal or
                      hexadecimal values. Each PID specified must be in the range of 32 (or
                      0x20)..8182 (or 0x1ff6).

                      - **AudioStreamType** *(string) --* When set to atsc, uses stream type = 0x81
                      for AC3 and stream type =
                           0x87 for EAC3. When set to dvb, uses stream type =
                      0x06.

                      - **Bitrate** *(integer) --* The output bitrate of the transport stream in
                      bits per second. Setting to 0 lets the muxer automatically determine the
                      appropriate bitrate.

                      - **BufferModel** *(string) --* If set to multiplex, use multiplex buffer
                      model for accurate interleaving. Setting to bufferModel to none can lead to
                      lower latency, but low-memory devices may not be able to play back the stream
                      without interruptions.

                      - **CcDescriptor** *(string) --* When set to enabled, generates
                      captionServiceDescriptor in PMT.

                      - **DvbNitSettings** *(dict) --* Inserts DVB Network Information Table (NIT)
                      at the specified table repetition interval.

                        - **NetworkId** *(integer) --* The numeric value placed in the Network
                        Information Table (NIT).

                        - **NetworkName** *(string) --* The network name text placed in the
                        networkNameDescriptor inside the Network Information Table. Maximum length
                        is 256 characters.

                        - **RepInterval** *(integer) --* The number of milliseconds between
                        instances of this table in the output transport stream.

                      - **DvbSdtSettings** *(dict) --* Inserts DVB Service Description Table (SDT)
                      at the specified table repetition interval.

                        - **OutputSdt** *(string) --* Selects method of inserting SDT information
                        into output stream. The sdtFollow setting copies SDT information from input
                        stream to output stream. The sdtFollowIfPresent setting copies SDT
                        information from input stream to output stream if SDT information is present
                        in the input, otherwise it will fall back on the user-defined values. The
                        sdtManual setting means user will enter the SDT information. The sdtNone
                        setting means output stream will not contain SDT information.

                        - **RepInterval** *(integer) --* The number of milliseconds between
                        instances of this table in the output transport stream.

                        - **ServiceName** *(string) --* The service name placed in the
                        serviceDescriptor in the Service Description Table. Maximum length is 256
                        characters.

                        - **ServiceProviderName** *(string) --* The service provider name placed in
                        the serviceDescriptor in the Service Description Table. Maximum length is
                        256 characters.

                      - **DvbSubPids** *(string) --* Packet Identifier (PID) for input source DVB
                      Subtitle data to this output. Multiple values are accepted, and can be entered
                      in ranges and/or by comma separation. Can be entered as decimal or hexadecimal
                      values. Each PID specified must be in the range of 32 (or 0x20)..8182 (or
                      0x1ff6).

                      - **DvbTdtSettings** *(dict) --* Inserts DVB Time and Date Table (TDT) at the
                      specified table repetition interval.

                        - **RepInterval** *(integer) --* The number of milliseconds between
                        instances of this table in the output transport stream.

                      - **DvbTeletextPid** *(string) --* Packet Identifier (PID) for input source
                      DVB Teletext data to this output. Can be entered as a decimal or hexadecimal
                      value. Valid values are 32 (or 0x20)..8182 (or 0x1ff6).

                      - **Ebif** *(string) --* If set to passthrough, passes any EBIF data from the
                      input source to this output.

                      - **EbpAudioInterval** *(string) --* When videoAndFixedIntervals is selected,
                      audio EBP markers will be added to partitions 3 and 4. The interval between
                      these additional markers will be fixed, and will be slightly shorter than the
                      video EBP marker interval. Only available when EBP Cablelabs segmentation
                      markers are selected. Partitions 1 and 2 will always follow the video
                      interval.

                      - **EbpLookaheadMs** *(integer) --* When set, enforces that Encoder Boundary
                      Points do not come within the specified time interval of each other by looking
                      ahead at input video. If another EBP is going to come in within the specified
                      time interval, the current EBP is not emitted, and the segment is "stretched"
                      to the next marker. The lookahead value does not add latency to the system.
                      The Live Event must be configured elsewhere to create sufficient latency to
                      make the lookahead accurate.

                      - **EbpPlacement** *(string) --* Controls placement of EBP on Audio PIDs. If
                      set to videoAndAudioPids, EBP markers will be placed on the video PID and all
                      audio PIDs. If set to videoPid, EBP markers will be placed on only the video
                      PID.

                      - **EcmPid** *(string) --* This field is unused and deprecated.

                      - **EsRateInPes** *(string) --* Include or exclude the ES Rate field in the
                      PES header.

                      - **EtvPlatformPid** *(string) --* Packet Identifier (PID) for input source
                      ETV Platform data to this output. Can be entered as a decimal or hexadecimal
                      value. Valid values are 32 (or 0x20)..8182 (or 0x1ff6).

                      - **EtvSignalPid** *(string) --* Packet Identifier (PID) for input source ETV
                      Signal data to this output. Can be entered as a decimal or hexadecimal value.
                      Valid values are 32 (or 0x20)..8182 (or 0x1ff6).

                      - **FragmentTime** *(float) --* The length in seconds of each fragment. Only
                      used with EBP markers.

                      - **Klv** *(string) --* If set to passthrough, passes any KLV data from the
                      input source to this output.

                      - **KlvDataPids** *(string) --* Packet Identifier (PID) for input source KLV
                      data to this output. Multiple values are accepted, and can be entered in
                      ranges and/or by comma separation. Can be entered as decimal or hexadecimal
                      values. Each PID specified must be in the range of 32 (or 0x20)..8182 (or
                      0x1ff6).

                      - **NielsenId3Behavior** *(string) --* If set to passthrough, Nielsen
                      inaudible tones for media tracking will be detected in the input audio and an
                      equivalent ID3 tag will be inserted in the output.

                      - **NullPacketBitrate** *(float) --* Value in bits per second of extra null
                      packets to insert into the transport stream. This can be used if a downstream
                      encryption system requires periodic null packets.

                      - **PatInterval** *(integer) --* The number of milliseconds between instances
                      of this table in the output transport stream. Valid values are 0, 10..1000.

                      - **PcrControl** *(string) --* When set to pcrEveryPesPacket, a Program Clock
                      Reference value is inserted for every Packetized Elementary Stream (PES)
                      header. This parameter is effective only when the PCR PID is the same as the
                      video or audio elementary stream.

                      - **PcrPeriod** *(integer) --* Maximum time in milliseconds between Program
                      Clock Reference (PCRs) inserted into the transport stream.

                      - **PcrPid** *(string) --* Packet Identifier (PID) of the Program Clock
                      Reference (PCR) in the transport stream. When no value is given, the encoder
                      will assign the same value as the Video PID. Can be entered as a decimal or
                      hexadecimal value. Valid values are 32 (or 0x20)..8182 (or 0x1ff6).

                      - **PmtInterval** *(integer) --* The number of milliseconds between instances
                      of this table in the output transport stream. Valid values are 0, 10..1000.

                      - **PmtPid** *(string) --* Packet Identifier (PID) for the Program Map Table
                      (PMT) in the transport stream. Can be entered as a decimal or hexadecimal
                      value. Valid values are 32 (or 0x20)..8182 (or 0x1ff6).

                      - **ProgramNum** *(integer) --* The value of the program number field in the
                      Program Map Table.

                      - **RateMode** *(string) --* When vbr, does not insert null packets into
                      transport stream to fill specified bitrate. The bitrate setting acts as the
                      maximum bitrate when vbr is set.

                      - **Scte27Pids** *(string) --* Packet Identifier (PID) for input source
                      SCTE-27 data to this output. Multiple values are accepted, and can be entered
                      in ranges and/or by comma separation. Can be entered as decimal or hexadecimal
                      values. Each PID specified must be in the range of 32 (or 0x20)..8182 (or
                      0x1ff6).

                      - **Scte35Control** *(string) --* Optionally pass SCTE-35 signals from the
                      input source to this output.

                      - **Scte35Pid** *(string) --* Packet Identifier (PID) of the SCTE-35 stream in
                      the transport stream. Can be entered as a decimal or hexadecimal value. Valid
                      values are 32 (or 0x20)..8182 (or 0x1ff6).

                      - **SegmentationMarkers** *(string) --* Inserts segmentation markers at each
                      segmentationTime period. raiSegstart sets the Random Access Indicator bit in
                      the adaptation field. raiAdapt sets the RAI bit and adds the current timecode
                      in the private data bytes. psiSegstart inserts PAT and PMT tables at the start
                      of segments. ebp adds Encoder Boundary Point information to the adaptation
                      field as per OpenCable specification OC-SP-EBP-I01-130118. ebpLegacy adds
                      Encoder Boundary Point information to the adaptation field using a legacy
                      proprietary format.

                      - **SegmentationStyle** *(string) --* The segmentation style parameter
                      controls how segmentation markers are inserted into the transport stream. With
                      avails, it is possible that segments may be truncated, which can influence
                      where future segmentation markers are inserted. When a segmentation style of
                      "resetCadence" is selected and a segment is truncated due to an avail, we will
                      reset the segmentation cadence. This means the subsequent segment will have a
                      duration of $segmentationTime seconds. When a segmentation style of
                      "maintainCadence" is selected and a segment is truncated due to an avail, we
                      will not reset the segmentation cadence. This means the subsequent segment
                      will likely be truncated as well. However, all segments after that will have a
                      duration of $segmentationTime seconds. Note that EBP lookahead is a slight
                      exception to this rule.

                      - **SegmentationTime** *(float) --* The length in seconds of each segment.
                      Required unless markers is set to None_.

                      - **TimedMetadataBehavior** *(string) --* When set to passthrough, timed
                      metadata will be passed through from input to output.

                      - **TimedMetadataPid** *(string) --* Packet Identifier (PID) of the timed
                      metadata stream in the transport stream. Can be entered as a decimal or
                      hexadecimal value. Valid values are 32 (or 0x20)..8182 (or 0x1ff6).

                      - **TransportStreamId** *(integer) --* The value of the transport stream ID
                      field in the Program Map Table.

                      - **VideoPid** *(string) --* Packet Identifier (PID) of the elementary video
                      stream in the transport stream. Can be entered as a decimal or hexadecimal
                      value. Valid values are 32 (or 0x20)..8182 (or 0x1ff6).

                  - **Destination** *(dict) --* Destination address and port number for RTP or UDP
                  packets. Can be unicast or multicast RTP or UDP (eg. rtp://239.10.10.10:5001 or
                  udp://10.100.100.100:5002).

                    - **DestinationRefId** *(string) --* Placeholder documentation for __string

                  - **FecOutputSettings** *(dict) --* Settings for enabling and adjusting Forward
                  Error Correction on UDP outputs.

                    - **ColumnDepth** *(integer) --* Parameter D from SMPTE 2022-1. The height of
                    the FEC protection matrix. The number of transport stream packets per column
                    error correction packet. Must be between 4 and 20, inclusive.

                    - **IncludeFec** *(string) --* Enables column only or column and row based FEC

                    - **RowLength** *(integer) --* Parameter L from SMPTE 2022-1. The width of the
                    FEC protection matrix. Must be between 1 and 20, inclusive. If only Column FEC
                    is used, then larger values increase robustness. If Row FEC is used, then this
                    is the number of transport stream packets per row error correction packet, and
                    the value must be between 4 and 20, inclusive, if includeFec is columnAndRow. If
                    includeFec is column, this value must be 1 to 20, inclusive.

              - **VideoDescriptionName** *(string) --* The name of the VideoDescription used as the
              source for this output.

      - **TimecodeConfig** *(dict) --* Contains settings used to acquire and adjust timecode
      information from inputs.

        - **Source** *(string) --* Identifies the source for the timecode that will be associated
        with the events outputs. -Embedded (embedded): Initialize the output timecode with timecode
        from the the source. If no embedded timecode is detected in the source, the system falls
        back to using "Start at 0" (zerobased). -System Clock (systemclock): Use the UTC time.
        -Start at 0 (zerobased): The time of the first frame of the event will be 00:00:00:00.

        - **SyncThreshold** *(integer) --* Threshold in frames beyond which output timecode is
        resynchronized to the input timecode. Discrepancies below this threshold are permitted to
        avoid unnecessary discontinuities in the output timecode. No timecode sync when this is not
        specified.

      - **VideoDescriptions** *(list) --* Placeholder documentation for __listOfVideoDescription

        - *(dict) --* Video settings for this stream.

          - **CodecSettings** *(dict) --* Video codec settings.

            - **FrameCaptureSettings** *(dict) --* Frame Capture Settings

              - **CaptureInterval** *(integer) --* The frequency at which to capture frames for
              inclusion in the output. May be specified in either seconds or milliseconds, as
              specified by captureIntervalUnits.

            - **H264Settings** *(dict) --* H264 Settings

              - **AdaptiveQuantization** *(string) --* Adaptive quantization. Allows intra-frame
              quantizers to vary to improve visual quality.

              - **AfdSignaling** *(string) --* Indicates that AFD values will be written into the
              output stream. If afdSignaling is "auto", the system will try to preserve the input
              AFD value (in cases where multiple AFD values are valid). If set to "fixed", the AFD
              value will be the value configured in the fixedAfd parameter.

              - **Bitrate** *(integer) --* Average bitrate in bits/second. Required when the rate
              control mode is VBR or CBR. Not used for QVBR. In an MS Smooth output group, each
              output must have a unique value when its bitrate is rounded down to the nearest
              multiple of 1000.

              - **BufFillPct** *(integer) --* Percentage of the buffer that should initially be
              filled (HRD buffer model).

              - **BufSize** *(integer) --* Size of buffer (HRD buffer model) in bits.

              - **ColorMetadata** *(string) --* Includes colorspace metadata in the output.

              - **ColorSpaceSettings** *(dict) --* Color Space settings

                - **ColorSpacePassthroughSettings** *(dict) --* Passthrough applies no color space
                conversion to the output

                - **Rec601Settings** *(dict) --* Rec601 Settings

                - **Rec709Settings** *(dict) --* Rec709 Settings

              - **EntropyEncoding** *(string) --* Entropy encoding mode. Use cabac (must be in Main
              or High profile) or cavlc.

              - **FixedAfd** *(string) --* Four bit AFD value to write on all frames of video in the
              output stream. Only valid when afdSignaling is set to 'Fixed'.

              - **FlickerAq** *(string) --* If set to enabled, adjust quantization within each frame
              to reduce flicker or 'pop' on I-frames.

              - **FramerateControl** *(string) --* This field indicates how the output video frame
              rate is specified. If "specified" is selected then the output video frame rate is
              determined by framerateNumerator and framerateDenominator, else if
              "initializeFromSource" is selected then the output video frame rate will be set equal
              to the input video frame rate of the first input.

              - **FramerateDenominator** *(integer) --* Framerate denominator.

              - **FramerateNumerator** *(integer) --* Framerate numerator - framerate is a fraction,
              e.g. 24000 / 1001 = 23.976 fps.

              - **GopBReference** *(string) --* Documentation update needed

              - **GopClosedCadence** *(integer) --* Frequency of closed GOPs. In streaming
              applications, it is recommended that this be set to 1 so a decoder joining mid-stream
              will receive an IDR frame as quickly as possible. Setting this value to 0 will break
              output segmenting.

              - **GopNumBFrames** *(integer) --* Number of B-frames between reference frames.

              - **GopSize** *(float) --* GOP size (keyframe interval) in units of either frames or
              seconds per gopSizeUnits. If gopSizeUnits is frames, gopSize must be an integer and
              must be greater than or equal to 1. If gopSizeUnits is seconds, gopSize must be
              greater than 0, but need not be an integer.

              - **GopSizeUnits** *(string) --* Indicates if the gopSize is specified in frames or
              seconds. If seconds the system will convert the gopSize into a frame count at run
              time.

              - **Level** *(string) --* H.264 Level.

              - **LookAheadRateControl** *(string) --* Amount of lookahead. A value of low can
              decrease latency and memory usage, while high can produce better quality for certain
              content.

              - **MaxBitrate** *(integer) --* For QVBR: See the tooltip for Quality level For VBR:
              Set the maximum bitrate in order to accommodate expected spikes in the complexity of
              the video.

              - **MinIInterval** *(integer) --* Only meaningful if sceneChangeDetect is set to
              enabled. Defaults to 5 if multiplex rate control is used. Enforces separation between
              repeated (cadence) I-frames and I-frames inserted by Scene Change Detection. If a
              scene change I-frame is within I-interval frames of a cadence I-frame, the GOP is
              shrunk and/or stretched to the scene change I-frame. GOP stretch requires enabling
              lookahead as well as setting I-interval. The normal cadence resumes for the next GOP.
              Note: Maximum GOP stretch = GOP size + Min-I-interval - 1

              - **NumRefFrames** *(integer) --* Number of reference frames to use. The encoder may
              use more than requested if using B-frames and/or interlaced encoding.

              - **ParControl** *(string) --* This field indicates how the output pixel aspect ratio
              is specified. If "specified" is selected then the output video pixel aspect ratio is
              determined by parNumerator and parDenominator, else if "initializeFromSource" is
              selected then the output pixsel aspect ratio will be set equal to the input video
              pixel aspect ratio of the first input.

              - **ParDenominator** *(integer) --* Pixel Aspect Ratio denominator.

              - **ParNumerator** *(integer) --* Pixel Aspect Ratio numerator.

              - **Profile** *(string) --* H.264 Profile.

              - **QvbrQualityLevel** *(integer) --* Controls the target quality for the video
              encode. Applies only when the rate control mode is QVBR. Set values for the QVBR
              quality level field and Max bitrate field that suit your most important viewing
              devices. Recommended values are: - Primary screen: Quality level: 8 to 10. Max
              bitrate: 4M - PC or tablet: Quality level: 7. Max bitrate: 1.5M to 3M - Smartphone:
              Quality level: 6. Max bitrate: 1M to 1.5M

              - **RateControlMode** *(string) --* Rate control mode. QVBR: Quality will match the
              specified quality level except when it is constrained by the maximum bitrate.
              Recommended if you or your viewers pay for bandwidth. VBR: Quality and bitrate vary,
              depending on the video complexity. Recommended instead of QVBR if you want to maintain
              a specific average bitrate over the duration of the channel. CBR: Quality varies,
              depending on the video complexity. Recommended only if you distribute your assets to
              devices that cannot handle variable bitrates.

              - **ScanType** *(string) --* Sets the scan type of the output to progressive or
              top-field-first interlaced.

              - **SceneChangeDetect** *(string) --* Scene change detection. - On: inserts I-frames
              when scene change is detected. - Off: does not force an I-frame when scene change is
              detected.

              - **Slices** *(integer) --* Number of slices per picture. Must be less than or equal
              to the number of macroblock rows for progressive pictures, and less than or equal to
              half the number of macroblock rows for interlaced pictures. This field is optional;
              when no value is specified the encoder will choose the number of slices based on
              encode resolution.

              - **Softness** *(integer) --* Softness. Selects quantizer matrix, larger values reduce
              high-frequency content in the encoded image.

              - **SpatialAq** *(string) --* If set to enabled, adjust quantization within each frame
              based on spatial variation of content complexity.

              - **SubgopLength** *(string) --* If set to fixed, use gopNumBFrames B-frames per
              sub-GOP. If set to dynamic, optimize the number of B-frames used for each sub-GOP to
              improve visual quality.

              - **Syntax** *(string) --* Produces a bitstream compliant with SMPTE RP-2027.

              - **TemporalAq** *(string) --* If set to enabled, adjust quantization within each
              frame based on temporal variation of content complexity.

              - **TimecodeInsertion** *(string) --* Determines how timecodes should be inserted into
              the video elementary stream. - 'disabled': Do not include timecodes - 'picTimingSei':
              Pass through picture timing SEI messages from the source specified in Timecode Config

            - **H265Settings** *(dict) --* H265 Settings

              - **AdaptiveQuantization** *(string) --* Adaptive quantization. Allows intra-frame
              quantizers to vary to improve visual quality.

              - **AfdSignaling** *(string) --* Indicates that AFD values will be written into the
              output stream. If afdSignaling is "auto", the system will try to preserve the input
              AFD value (in cases where multiple AFD values are valid). If set to "fixed", the AFD
              value will be the value configured in the fixedAfd parameter.

              - **AlternativeTransferFunction** *(string) --* Whether or not EML should insert an
              Alternative Transfer Function SEI message to support backwards compatibility with
              non-HDR decoders and displays.

              - **Bitrate** *(integer) --* Average bitrate in bits/second. Required when the rate
              control mode is VBR or CBR. Not used for QVBR. In an MS Smooth output group, each
              output must have a unique value when its bitrate is rounded down to the nearest
              multiple of 1000.

              - **BufSize** *(integer) --* Size of buffer (HRD buffer model) in bits.

              - **ColorMetadata** *(string) --* Includes colorspace metadata in the output.

              - **ColorSpaceSettings** *(dict) --* Color Space settings

                - **ColorSpacePassthroughSettings** *(dict) --* Passthrough applies no color space
                conversion to the output

                - **Hdr10Settings** *(dict) --* Hdr10 Settings

                  - **MaxCll** *(integer) --* Maximum Content Light Level An integer metadata value
                  defining the maximum light level, in nits, of any single pixel within an encoded
                  HDR video stream or file.

                  - **MaxFall** *(integer) --* Maximum Frame Average Light Level An integer metadata
                  value defining the maximum average light level, in nits, for any single frame
                  within an encoded HDR video stream or file.

                - **Rec601Settings** *(dict) --* Rec601 Settings

                - **Rec709Settings** *(dict) --* Rec709 Settings

              - **FixedAfd** *(string) --* Four bit AFD value to write on all frames of video in the
              output stream. Only valid when afdSignaling is set to 'Fixed'.

              - **FlickerAq** *(string) --* If set to enabled, adjust quantization within each frame
              to reduce flicker or 'pop' on I-frames.

              - **FramerateDenominator** *(integer) --* Framerate denominator.

              - **FramerateNumerator** *(integer) --* Framerate numerator - framerate is a fraction,
              e.g. 24000 / 1001 = 23.976 fps.

              - **GopClosedCadence** *(integer) --* Frequency of closed GOPs. In streaming
              applications, it is recommended that this be set to 1 so a decoder joining mid-stream
              will receive an IDR frame as quickly as possible. Setting this value to 0 will break
              output segmenting.

              - **GopSize** *(float) --* GOP size (keyframe interval) in units of either frames or
              seconds per gopSizeUnits. If gopSizeUnits is frames, gopSize must be an integer and
              must be greater than or equal to 1. If gopSizeUnits is seconds, gopSize must be
              greater than 0, but need not be an integer.

              - **GopSizeUnits** *(string) --* Indicates if the gopSize is specified in frames or
              seconds. If seconds the system will convert the gopSize into a frame count at run
              time.

              - **Level** *(string) --* H.265 Level.

              - **LookAheadRateControl** *(string) --* Amount of lookahead. A value of low can
              decrease latency and memory usage, while high can produce better quality for certain
              content.

              - **MaxBitrate** *(integer) --* For QVBR: See the tooltip for Quality level

              - **MinIInterval** *(integer) --* Only meaningful if sceneChangeDetect is set to
              enabled. Defaults to 5 if multiplex rate control is used. Enforces separation between
              repeated (cadence) I-frames and I-frames inserted by Scene Change Detection. If a
              scene change I-frame is within I-interval frames of a cadence I-frame, the GOP is
              shrunk and/or stretched to the scene change I-frame. GOP stretch requires enabling
              lookahead as well as setting I-interval. The normal cadence resumes for the next GOP.
              Note: Maximum GOP stretch = GOP size + Min-I-interval - 1

              - **ParDenominator** *(integer) --* Pixel Aspect Ratio denominator.

              - **ParNumerator** *(integer) --* Pixel Aspect Ratio numerator.

              - **Profile** *(string) --* H.265 Profile.

              - **QvbrQualityLevel** *(integer) --* Controls the target quality for the video
              encode. Applies only when the rate control mode is QVBR. Set values for the QVBR
              quality level field and Max bitrate field that suit your most important viewing
              devices. Recommended values are: - Primary screen: Quality level: 8 to 10. Max
              bitrate: 4M - PC or tablet: Quality level: 7. Max bitrate: 1.5M to 3M - Smartphone:
              Quality level: 6. Max bitrate: 1M to 1.5M

              - **RateControlMode** *(string) --* Rate control mode. QVBR: Quality will match the
              specified quality level except when it is constrained by the maximum bitrate.
              Recommended if you or your viewers pay for bandwidth. CBR: Quality varies, depending
              on the video complexity. Recommended only if you distribute your assets to devices
              that cannot handle variable bitrates.

              - **ScanType** *(string) --* Sets the scan type of the output to progressive or
              top-field-first interlaced.

              - **SceneChangeDetect** *(string) --* Scene change detection.

              - **Slices** *(integer) --* Number of slices per picture. Must be less than or equal
              to the number of macroblock rows for progressive pictures, and less than or equal to
              half the number of macroblock rows for interlaced pictures. This field is optional;
              when no value is specified the encoder will choose the number of slices based on
              encode resolution.

              - **Tier** *(string) --* H.265 Tier.

              - **TimecodeInsertion** *(string) --* Determines how timecodes should be inserted into
              the video elementary stream. - 'disabled': Do not include timecodes - 'picTimingSei':
              Pass through picture timing SEI messages from the source specified in Timecode Config

          - **Height** *(integer) --* Output video height, in pixels. Must be an even number. For
          most codecs, you can leave this field and width blank in order to use the height and width
          (resolution) from the source. Note, however, that leaving blank is not recommended. For
          the Frame Capture codec, height and width are required.

          - **Name** *(string) --* The name of this VideoDescription. Outputs will use this name to
          uniquely identify this Description. Description names should be unique within this Live
          Event.

          - **RespondToAfd** *(string) --* Indicates how to respond to the AFD values in the input
          stream. RESPOND causes input video to be clipped, depending on the AFD value, input
          display aspect ratio, and output display aspect ratio, and (except for FRAMECAPTURE codec)
          includes the values in the output. PASSTHROUGH (does not apply to FRAMECAPTURE codec)
          ignores the AFD values and includes the values in the output, so input video is not
          clipped. NONE ignores the AFD values and does not include the values through to the
          output, so input video is not clipped.

          - **ScalingBehavior** *(string) --* STRETCHTOOUTPUT configures the output position to
          stretch the video to the specified output resolution (height and width). This option will
          override any position value. DEFAULT may insert black boxes (pillar boxes or letter boxes)
          around the video to provide the specified output resolution.

          - **Sharpness** *(integer) --* Changes the strength of the anti-alias filter used for
          scaling. 0 is the softest setting, 100 is the sharpest. A setting of 50 is recommended for
          most content.

          - **Width** *(integer) --* Output video width, in pixels. Must be an even number. For most
          codecs, you can leave this field and height blank in order to use the height and width
          (resolution) from the source. Note, however, that leaving blank is not recommended. For
          the Frame Capture codec, height and width are required.

    - **Id** *(string) --* The unique id of the channel.

    - **InputAttachments** *(list) --* List of input attachments for channel.

      - *(dict) --* Placeholder documentation for InputAttachment

        - **InputAttachmentName** *(string) --* User-specified name for the attachment. This is
        required if the user wants to use this input in an input switch action.

        - **InputId** *(string) --* The ID of the input

        - **InputSettings** *(dict) --* Settings of an input (caption selector, etc.)

          - **AudioSelectors** *(list) --* Used to select the audio stream to decode for inputs that
          have multiple available.

            - *(dict) --* Audio Selector

              - **Name** *(string) --* The name of this AudioSelector. AudioDescriptions will use
              this name to uniquely identify this Selector. Selector names should be unique per
              input.

              - **SelectorSettings** *(dict) --* The audio selector settings.

                - **AudioLanguageSelection** *(dict) --* Audio Language Selection

                  - **LanguageCode** *(string) --* Selects a specific three-letter language code
                  from within an audio source.

                  - **LanguageSelectionPolicy** *(string) --* When set to "strict", the transport
                  stream demux strictly identifies audio streams by their language descriptor. If a
                  PMT update occurs such that an audio stream matching the initially selected
                  language is no longer present then mute will be encoded until the language
                  returns. If "loose", then on a PMT update the demux will choose another audio
                  stream in the program with the same stream type if it can't find one with the same
                  language.

                - **AudioPidSelection** *(dict) --* Audio Pid Selection

                  - **Pid** *(integer) --* Selects a specific PID from within a source.

          - **CaptionSelectors** *(list) --* Used to select the caption input to use for inputs that
          have multiple available.

            - *(dict) --* Output groups for this Live Event. Output groups contain information about
            where streams should be distributed.

              - **LanguageCode** *(string) --* When specified this field indicates the three letter
              language code of the caption track to extract from the source.

              - **Name** *(string) --* Name identifier for a caption selector. This name is used to
              associate this caption selector with one or more caption descriptions. Names must be
              unique within an event.

              - **SelectorSettings** *(dict) --* Caption selector settings.

                - **AribSourceSettings** *(dict) --* Arib Source Settings

                - **DvbSubSourceSettings** *(dict) --* Dvb Sub Source Settings

                  - **Pid** *(integer) --* When using DVB-Sub with Burn-In or SMPTE-TT, use this PID
                  for the source content. Unused for DVB-Sub passthrough. All DVB-Sub content is
                  passed through, regardless of selectors.

                - **EmbeddedSourceSettings** *(dict) --* Embedded Source Settings

                  - **Convert608To708** *(string) --* If upconvert, 608 data is both passed through
                  via the "608 compatibility bytes" fields of the 708 wrapper as well as translated
                  into 708. 708 data present in the source content will be discarded.

                  - **Scte20Detection** *(string) --* Set to "auto" to handle streams with
                  intermittent and/or non-aligned SCTE-20 and Embedded captions.

                  - **Source608ChannelNumber** *(integer) --* Specifies the 608/708 channel number
                  within the video track from which to extract captions. Unused for passthrough.

                  - **Source608TrackNumber** *(integer) --* This field is unused and deprecated.

                - **Scte20SourceSettings** *(dict) --* Scte20 Source Settings

                  - **Convert608To708** *(string) --* If upconvert, 608 data is both passed through
                  via the "608 compatibility bytes" fields of the 708 wrapper as well as translated
                  into 708. 708 data present in the source content will be discarded.

                  - **Source608ChannelNumber** *(integer) --* Specifies the 608/708 channel number
                  within the video track from which to extract captions. Unused for passthrough.

                - **Scte27SourceSettings** *(dict) --* Scte27 Source Settings

                  - **Pid** *(integer) --* The pid field is used in conjunction with the caption
                  selector languageCode field as follows: - Specify PID and Language: Extracts
                  captions from that PID; the language is "informational". - Specify PID and omit
                  Language: Extracts the specified PID. - Omit PID and specify Language: Extracts
                  the specified language, whichever PID that happens to be. - Omit PID and omit
                  Language: Valid only if source is DVB-Sub that is being passed through; all
                  languages will be passed through.

                - **TeletextSourceSettings** *(dict) --* Teletext Source Settings

                  - **PageNumber** *(string) --* Specifies the teletext page number within the data
                  stream from which to extract captions. Range of 0x100 (256) to 0x8FF (2303).
                  Unused for passthrough. Should be specified as a hexadecimal string with no "0x"
                  prefix.

          - **DeblockFilter** *(string) --* Enable or disable the deblock filter when filtering.

          - **DenoiseFilter** *(string) --* Enable or disable the denoise filter when filtering.

          - **FilterStrength** *(integer) --* Adjusts the magnitude of filtering from 1 (minimal) to
          5 (strongest).

          - **InputFilter** *(string) --* Turns on the filter for this input. MPEG-2 inputs have the
          deblocking filter enabled by default. 1) auto - filtering will be applied depending on
          input type/quality 2) disabled - no filtering will be applied to the input 3) forced -
          filtering will be applied regardless of input type

          - **NetworkInputSettings** *(dict) --* Input settings.

            - **HlsInputSettings** *(dict) --* Specifies HLS input settings when the uri is for a
            HLS manifest.

              - **Bandwidth** *(integer) --* When specified the HLS stream with the m3u8 BANDWIDTH
              that most closely matches this value will be chosen, otherwise the highest bandwidth
              stream in the m3u8 will be chosen. The bitrate is specified in bits per second, as in
              an HLS manifest.

              - **BufferSegments** *(integer) --* When specified, reading of the HLS input will
              begin this many buffer segments from the end (most recently written segment). When not
              specified, the HLS input will begin with the first segment specified in the m3u8.

              - **Retries** *(integer) --* The number of consecutive times that attempts to read a
              manifest or segment must fail before the input is considered unavailable.

              - **RetryInterval** *(integer) --* The number of seconds between retries when an
              attempt to read a manifest or segment fails.

            - **ServerValidation** *(string) --* Check HTTPS server certificates. When set to
            checkCryptographyOnly, cryptography in the certificate will be checked, but not the
            server's name. Certain subdomains (notably S3 buckets that use dots in the bucket name)
            do not strictly match the corresponding certificate's wildcard pattern and would
            otherwise cause the event to error. This setting is ignored for protocols that do not
            use https.

          - **SourceEndBehavior** *(string) --* Loop input if it is a file. This allows a file input
          to be streamed indefinitely.

          - **VideoSelector** *(dict) --* Informs which video elementary stream to decode for input
          types that have multiple available.

            - **ColorSpace** *(string) --* Specifies the color space of an input. This setting works
            in tandem with colorSpaceUsage and a video description's colorSpaceSettingsChoice to
            determine if any conversion will be performed.

            - **ColorSpaceUsage** *(string) --* Applies only if colorSpace is a value other than
            follow. This field controls how the value in the colorSpace field will be used. fallback
            means that when the input does include color space data, that data will be used, but
            when the input has no color space data, the value in colorSpace will be used. Choose
            fallback if your input is sometimes missing color space data, but when it does have
            color space data, that data is correct. force means to always use the value in
            colorSpace. Choose force if your input usually has no color space data or might have
            unreliable color space data.

            - **SelectorSettings** *(dict) --* The video selector settings.

              - **VideoSelectorPid** *(dict) --* Video Selector Pid

                - **Pid** *(integer) --* Selects a specific PID from within a video source.

              - **VideoSelectorProgramId** *(dict) --* Video Selector Program Id

                - **ProgramId** *(integer) --* Selects a specific program from within a
                multi-program transport stream. If the program doesn't exist, the first program
                within the transport stream will be selected by default.

    - **InputSpecification** *(dict) --* Placeholder documentation for InputSpecification

      - **Codec** *(string) --* Input codec

      - **MaximumBitrate** *(string) --* Maximum input bitrate, categorized coarsely

      - **Resolution** *(string) --* Input resolution, categorized coarsely

    - **LogLevel** *(string) --* The log level being written to CloudWatch Logs.

    - **Name** *(string) --* The name of the channel. (user-mutable)

    - **PipelineDetails** *(list) --* Runtime details for the pipelines of a running channel.

      - *(dict) --* Runtime details of a pipeline when a channel is running.

        - **ActiveInputAttachmentName** *(string) --* The name of the active input attachment
        currently being ingested by this pipeline.

        - **ActiveInputSwitchActionName** *(string) --* The name of the input switch schedule action
        that occurred most recently and that resulted in the switch to the current input attachment
        for this pipeline.

        - **PipelineId** *(string) --* Pipeline ID

    - **PipelinesRunningCount** *(integer) --* The number of currently healthy pipelines.

    - **RoleArn** *(string) --* The Amazon Resource Name (ARN) of the role assumed when running the
    Channel.

    - **State** *(string) --* Placeholder documentation for ChannelState

    - **Tags** *(dict) --* A collection of key-value pairs.

      - *(string) --* Placeholder documentation for __string

        - *(string) --* Placeholder documentation for __string
    """


_ClientDeleteMultiplexProgramResponseMultiplexProgramSettingsServiceDescriptorTypeDef = TypedDict(
    "_ClientDeleteMultiplexProgramResponseMultiplexProgramSettingsServiceDescriptorTypeDef",
    {"ProviderName": str, "ServiceName": str},
    total=False,
)


class ClientDeleteMultiplexProgramResponseMultiplexProgramSettingsServiceDescriptorTypeDef(
    _ClientDeleteMultiplexProgramResponseMultiplexProgramSettingsServiceDescriptorTypeDef
):
    """
    Type definition for `ClientDeleteMultiplexProgramResponseMultiplexProgramSettings`
    `ServiceDescriptor`

    - **ProviderName** *(string) --* Name of the provider.

    - **ServiceName** *(string) --* Name of the service.
    """


_ClientDeleteMultiplexProgramResponseMultiplexProgramSettingsVideoSettingsStatmuxSettingsTypeDef = TypedDict(
    "_ClientDeleteMultiplexProgramResponseMultiplexProgramSettingsVideoSettingsStatmuxSettingsTypeDef",
    {"MaximumBitrate": int, "MinimumBitrate": int},
    total=False,
)


class ClientDeleteMultiplexProgramResponseMultiplexProgramSettingsVideoSettingsStatmuxSettingsTypeDef(
    _ClientDeleteMultiplexProgramResponseMultiplexProgramSettingsVideoSettingsStatmuxSettingsTypeDef
):
    """
    Type definition for `ClientDeleteMultiplexProgramResponseMultiplexProgramSettingsVideoSettings`
    `StatmuxSettings`

    - **MaximumBitrate** *(integer) --* Maximum statmux bitrate.

    - **MinimumBitrate** *(integer) --* Minimum statmux bitrate.
    """


_ClientDeleteMultiplexProgramResponseMultiplexProgramSettingsVideoSettingsTypeDef = TypedDict(
    "_ClientDeleteMultiplexProgramResponseMultiplexProgramSettingsVideoSettingsTypeDef",
    {
        "ConstantBitrate": int,
        "StatmuxSettings": ClientDeleteMultiplexProgramResponseMultiplexProgramSettingsVideoSettingsStatmuxSettingsTypeDef,
    },
    total=False,
)


class ClientDeleteMultiplexProgramResponseMultiplexProgramSettingsVideoSettingsTypeDef(
    _ClientDeleteMultiplexProgramResponseMultiplexProgramSettingsVideoSettingsTypeDef
):
    """
    Type definition for `ClientDeleteMultiplexProgramResponseMultiplexProgramSettings`
    `VideoSettings`

    - **ConstantBitrate** *(integer) --* The constant bitrate configuration for the video encode.
    When this field is defined, StatmuxSettings must be undefined.

    - **StatmuxSettings** *(dict) --* Statmux rate control settings. When this field is defined,
    ConstantBitrate must be undefined.

      - **MaximumBitrate** *(integer) --* Maximum statmux bitrate.

      - **MinimumBitrate** *(integer) --* Minimum statmux bitrate.
    """


_ClientDeleteMultiplexProgramResponseMultiplexProgramSettingsTypeDef = TypedDict(
    "_ClientDeleteMultiplexProgramResponseMultiplexProgramSettingsTypeDef",
    {
        "ProgramNumber": int,
        "ServiceDescriptor": ClientDeleteMultiplexProgramResponseMultiplexProgramSettingsServiceDescriptorTypeDef,
        "VideoSettings": ClientDeleteMultiplexProgramResponseMultiplexProgramSettingsVideoSettingsTypeDef,
    },
    total=False,
)


class ClientDeleteMultiplexProgramResponseMultiplexProgramSettingsTypeDef(
    _ClientDeleteMultiplexProgramResponseMultiplexProgramSettingsTypeDef
):
    """
    Type definition for `ClientDeleteMultiplexProgramResponse` `MultiplexProgramSettings`

    - **ProgramNumber** *(integer) --* Unique program number.

    - **ServiceDescriptor** *(dict) --* Transport stream service descriptor configuration for the
    Multiplex program.

      - **ProviderName** *(string) --* Name of the provider.

      - **ServiceName** *(string) --* Name of the service.

    - **VideoSettings** *(dict) --* Program video settings configuration.

      - **ConstantBitrate** *(integer) --* The constant bitrate configuration for the video encode.
      When this field is defined, StatmuxSettings must be undefined.

      - **StatmuxSettings** *(dict) --* Statmux rate control settings. When this field is defined,
      ConstantBitrate must be undefined.

        - **MaximumBitrate** *(integer) --* Maximum statmux bitrate.

        - **MinimumBitrate** *(integer) --* Minimum statmux bitrate.
    """


_ClientDeleteMultiplexProgramResponsePacketIdentifiersMapTypeDef = TypedDict(
    "_ClientDeleteMultiplexProgramResponsePacketIdentifiersMapTypeDef",
    {
        "AudioPids": List[int],
        "DvbSubPids": List[int],
        "DvbTeletextPid": int,
        "EtvPlatformPid": int,
        "EtvSignalPid": int,
        "KlvDataPids": List[int],
        "PcrPid": int,
        "PmtPid": int,
        "PrivateMetadataPid": int,
        "Scte27Pids": List[int],
        "Scte35Pid": int,
        "TimedMetadataPid": int,
        "VideoPid": int,
    },
    total=False,
)


class ClientDeleteMultiplexProgramResponsePacketIdentifiersMapTypeDef(
    _ClientDeleteMultiplexProgramResponsePacketIdentifiersMapTypeDef
):
    """
    Type definition for `ClientDeleteMultiplexProgramResponse` `PacketIdentifiersMap`

    - **AudioPids** *(list) --* Placeholder documentation for __listOf__integer

      - *(integer) --* Placeholder documentation for __integer

    - **DvbSubPids** *(list) --* Placeholder documentation for __listOf__integer

      - *(integer) --* Placeholder documentation for __integer

    - **DvbTeletextPid** *(integer) --* Placeholder documentation for __integer

    - **EtvPlatformPid** *(integer) --* Placeholder documentation for __integer

    - **EtvSignalPid** *(integer) --* Placeholder documentation for __integer

    - **KlvDataPids** *(list) --* Placeholder documentation for __listOf__integer

      - *(integer) --* Placeholder documentation for __integer

    - **PcrPid** *(integer) --* Placeholder documentation for __integer

    - **PmtPid** *(integer) --* Placeholder documentation for __integer

    - **PrivateMetadataPid** *(integer) --* Placeholder documentation for __integer

    - **Scte27Pids** *(list) --* Placeholder documentation for __listOf__integer

      - *(integer) --* Placeholder documentation for __integer

    - **Scte35Pid** *(integer) --* Placeholder documentation for __integer

    - **TimedMetadataPid** *(integer) --* Placeholder documentation for __integer

    - **VideoPid** *(integer) --* Placeholder documentation for __integer
    """


_ClientDeleteMultiplexProgramResponseTypeDef = TypedDict(
    "_ClientDeleteMultiplexProgramResponseTypeDef",
    {
        "ChannelId": str,
        "MultiplexProgramSettings": ClientDeleteMultiplexProgramResponseMultiplexProgramSettingsTypeDef,
        "PacketIdentifiersMap": ClientDeleteMultiplexProgramResponsePacketIdentifiersMapTypeDef,
        "ProgramName": str,
    },
    total=False,
)


class ClientDeleteMultiplexProgramResponseTypeDef(_ClientDeleteMultiplexProgramResponseTypeDef):
    """
    Type definition for `ClientDeleteMultiplexProgram` `Response`

    - **ChannelId** *(string) --* The MediaLive channel associated with the program.

    - **MultiplexProgramSettings** *(dict) --* The settings for this multiplex program.

      - **ProgramNumber** *(integer) --* Unique program number.

      - **ServiceDescriptor** *(dict) --* Transport stream service descriptor configuration for the
      Multiplex program.

        - **ProviderName** *(string) --* Name of the provider.

        - **ServiceName** *(string) --* Name of the service.

      - **VideoSettings** *(dict) --* Program video settings configuration.

        - **ConstantBitrate** *(integer) --* The constant bitrate configuration for the video
        encode. When this field is defined, StatmuxSettings must be undefined.

        - **StatmuxSettings** *(dict) --* Statmux rate control settings. When this field is defined,
        ConstantBitrate must be undefined.

          - **MaximumBitrate** *(integer) --* Maximum statmux bitrate.

          - **MinimumBitrate** *(integer) --* Minimum statmux bitrate.

    - **PacketIdentifiersMap** *(dict) --* The packet identifier map for this multiplex program.

      - **AudioPids** *(list) --* Placeholder documentation for __listOf__integer

        - *(integer) --* Placeholder documentation for __integer

      - **DvbSubPids** *(list) --* Placeholder documentation for __listOf__integer

        - *(integer) --* Placeholder documentation for __integer

      - **DvbTeletextPid** *(integer) --* Placeholder documentation for __integer

      - **EtvPlatformPid** *(integer) --* Placeholder documentation for __integer

      - **EtvSignalPid** *(integer) --* Placeholder documentation for __integer

      - **KlvDataPids** *(list) --* Placeholder documentation for __listOf__integer

        - *(integer) --* Placeholder documentation for __integer

      - **PcrPid** *(integer) --* Placeholder documentation for __integer

      - **PmtPid** *(integer) --* Placeholder documentation for __integer

      - **PrivateMetadataPid** *(integer) --* Placeholder documentation for __integer

      - **Scte27Pids** *(list) --* Placeholder documentation for __listOf__integer

        - *(integer) --* Placeholder documentation for __integer

      - **Scte35Pid** *(integer) --* Placeholder documentation for __integer

      - **TimedMetadataPid** *(integer) --* Placeholder documentation for __integer

      - **VideoPid** *(integer) --* Placeholder documentation for __integer

    - **ProgramName** *(string) --* The name of the multiplex program.
    """


_ClientDeleteMultiplexResponseDestinationsMediaConnectSettingsTypeDef = TypedDict(
    "_ClientDeleteMultiplexResponseDestinationsMediaConnectSettingsTypeDef",
    {"EntitlementArn": str},
    total=False,
)


class ClientDeleteMultiplexResponseDestinationsMediaConnectSettingsTypeDef(
    _ClientDeleteMultiplexResponseDestinationsMediaConnectSettingsTypeDef
):
    """
    Type definition for `ClientDeleteMultiplexResponseDestinations` `MediaConnectSettings`

    - **EntitlementArn** *(string) --* The MediaConnect entitlement ARN available as a Flow source.
    """


_ClientDeleteMultiplexResponseDestinationsTypeDef = TypedDict(
    "_ClientDeleteMultiplexResponseDestinationsTypeDef",
    {"MediaConnectSettings": ClientDeleteMultiplexResponseDestinationsMediaConnectSettingsTypeDef},
    total=False,
)


class ClientDeleteMultiplexResponseDestinationsTypeDef(
    _ClientDeleteMultiplexResponseDestinationsTypeDef
):
    """
    Type definition for `ClientDeleteMultiplexResponse` `Destinations`

    - **MediaConnectSettings** *(dict) --* Multiplex MediaConnect output destination settings.

      - **EntitlementArn** *(string) --* The MediaConnect entitlement ARN available as a Flow
      source.
    """


_ClientDeleteMultiplexResponseMultiplexSettingsTypeDef = TypedDict(
    "_ClientDeleteMultiplexResponseMultiplexSettingsTypeDef",
    {
        "MaximumVideoBufferDelayMilliseconds": int,
        "TransportStreamBitrate": int,
        "TransportStreamId": int,
        "TransportStreamReservedBitrate": int,
    },
    total=False,
)


class ClientDeleteMultiplexResponseMultiplexSettingsTypeDef(
    _ClientDeleteMultiplexResponseMultiplexSettingsTypeDef
):
    """
    Type definition for `ClientDeleteMultiplexResponse` `MultiplexSettings`

    - **MaximumVideoBufferDelayMilliseconds** *(integer) --* Maximum video buffer delay in
    milliseconds.

    - **TransportStreamBitrate** *(integer) --* Transport stream bit rate.

    - **TransportStreamId** *(integer) --* Transport stream ID.

    - **TransportStreamReservedBitrate** *(integer) --* Transport stream reserved bit rate.
    """


_ClientDeleteMultiplexResponseTypeDef = TypedDict(
    "_ClientDeleteMultiplexResponseTypeDef",
    {
        "Arn": str,
        "AvailabilityZones": List[str],
        "Destinations": List[ClientDeleteMultiplexResponseDestinationsTypeDef],
        "Id": str,
        "MultiplexSettings": ClientDeleteMultiplexResponseMultiplexSettingsTypeDef,
        "Name": str,
        "PipelinesRunningCount": int,
        "ProgramCount": int,
        "State": str,
        "Tags": Dict[str, str],
    },
    total=False,
)


class ClientDeleteMultiplexResponseTypeDef(_ClientDeleteMultiplexResponseTypeDef):
    """
    Type definition for `ClientDeleteMultiplex` `Response`

    - **Arn** *(string) --* The unique arn of the multiplex.

    - **AvailabilityZones** *(list) --* A list of availability zones for the multiplex.

      - *(string) --* Placeholder documentation for __string

    - **Destinations** *(list) --* A list of the multiplex output destinations.

      - *(dict) --* Multiplex output destination settings

        - **MediaConnectSettings** *(dict) --* Multiplex MediaConnect output destination settings.

          - **EntitlementArn** *(string) --* The MediaConnect entitlement ARN available as a Flow
          source.

    - **Id** *(string) --* The unique id of the multiplex.

    - **MultiplexSettings** *(dict) --* Configuration for a multiplex event.

      - **MaximumVideoBufferDelayMilliseconds** *(integer) --* Maximum video buffer delay in
      milliseconds.

      - **TransportStreamBitrate** *(integer) --* Transport stream bit rate.

      - **TransportStreamId** *(integer) --* Transport stream ID.

      - **TransportStreamReservedBitrate** *(integer) --* Transport stream reserved bit rate.

    - **Name** *(string) --* The name of the multiplex.

    - **PipelinesRunningCount** *(integer) --* The number of currently healthy pipelines.

    - **ProgramCount** *(integer) --* The number of programs in the multiplex.

    - **State** *(string) --* The current state of the multiplex.

    - **Tags** *(dict) --* A collection of key-value pairs.

      - *(string) --* Placeholder documentation for __string

        - *(string) --* Placeholder documentation for __string
    """


_ClientDeleteReservationResponseResourceSpecificationTypeDef = TypedDict(
    "_ClientDeleteReservationResponseResourceSpecificationTypeDef",
    {
        "ChannelClass": str,
        "Codec": str,
        "MaximumBitrate": str,
        "MaximumFramerate": str,
        "Resolution": str,
        "ResourceType": str,
        "SpecialFeature": str,
        "VideoQuality": str,
    },
    total=False,
)


class ClientDeleteReservationResponseResourceSpecificationTypeDef(
    _ClientDeleteReservationResponseResourceSpecificationTypeDef
):
    """
    Type definition for `ClientDeleteReservationResponse` `ResourceSpecification`

    - **ChannelClass** *(string) --* Channel class, e.g. 'STANDARD'

    - **Codec** *(string) --* Codec, e.g. 'AVC'

    - **MaximumBitrate** *(string) --* Maximum bitrate, e.g. 'MAX_20_MBPS'

    - **MaximumFramerate** *(string) --* Maximum framerate, e.g. 'MAX_30_FPS' (Outputs only)

    - **Resolution** *(string) --* Resolution, e.g. 'HD'

    - **ResourceType** *(string) --* Resource type, 'INPUT', 'OUTPUT', 'MULTIPLEX', or 'CHANNEL'

    - **SpecialFeature** *(string) --* Special feature, e.g. 'AUDIO_NORMALIZATION' (Channels only)

    - **VideoQuality** *(string) --* Video quality, e.g. 'STANDARD' (Outputs only)
    """


_ClientDeleteReservationResponseTypeDef = TypedDict(
    "_ClientDeleteReservationResponseTypeDef",
    {
        "Arn": str,
        "Count": int,
        "CurrencyCode": str,
        "Duration": int,
        "DurationUnits": str,
        "End": str,
        "FixedPrice": float,
        "Name": str,
        "OfferingDescription": str,
        "OfferingId": str,
        "OfferingType": str,
        "Region": str,
        "ReservationId": str,
        "ResourceSpecification": ClientDeleteReservationResponseResourceSpecificationTypeDef,
        "Start": str,
        "State": str,
        "Tags": Dict[str, str],
        "UsagePrice": float,
    },
    total=False,
)


class ClientDeleteReservationResponseTypeDef(_ClientDeleteReservationResponseTypeDef):
    """
    Type definition for `ClientDeleteReservation` `Response`

    - **Arn** *(string) --* Unique reservation ARN, e.g.
    'arn:aws:medialive:us-west-2:123456789012:reservation:1234567'

    - **Count** *(integer) --* Number of reserved resources

    - **CurrencyCode** *(string) --* Currency code for usagePrice and fixedPrice in ISO-4217 format,
    e.g. 'USD'

    - **Duration** *(integer) --* Lease duration, e.g. '12'

    - **DurationUnits** *(string) --* Units for duration, e.g. 'MONTHS'

    - **End** *(string) --* Reservation UTC end date and time in ISO-8601 format, e.g.
    '2019-03-01T00:00:00'

    - **FixedPrice** *(float) --* One-time charge for each reserved resource, e.g. '0.0' for a
    NO_UPFRONT offering

    - **Name** *(string) --* User specified reservation name

    - **OfferingDescription** *(string) --* Offering description, e.g. 'HD AVC output at 10-20 Mbps,
    30 fps, and standard VQ in US West (Oregon)'

    - **OfferingId** *(string) --* Unique offering ID, e.g. '87654321'

    - **OfferingType** *(string) --* Offering type, e.g. 'NO_UPFRONT'

    - **Region** *(string) --* AWS region, e.g. 'us-west-2'

    - **ReservationId** *(string) --* Unique reservation ID, e.g. '1234567'

    - **ResourceSpecification** *(dict) --* Resource configuration details

      - **ChannelClass** *(string) --* Channel class, e.g. 'STANDARD'

      - **Codec** *(string) --* Codec, e.g. 'AVC'

      - **MaximumBitrate** *(string) --* Maximum bitrate, e.g. 'MAX_20_MBPS'

      - **MaximumFramerate** *(string) --* Maximum framerate, e.g. 'MAX_30_FPS' (Outputs only)

      - **Resolution** *(string) --* Resolution, e.g. 'HD'

      - **ResourceType** *(string) --* Resource type, 'INPUT', 'OUTPUT', 'MULTIPLEX', or 'CHANNEL'

      - **SpecialFeature** *(string) --* Special feature, e.g. 'AUDIO_NORMALIZATION' (Channels only)

      - **VideoQuality** *(string) --* Video quality, e.g. 'STANDARD' (Outputs only)

    - **Start** *(string) --* Reservation UTC start date and time in ISO-8601 format, e.g.
    '2018-03-01T00:00:00'

    - **State** *(string) --* Current state of reservation, e.g. 'ACTIVE'

    - **Tags** *(dict) --* A collection of key-value pairs

      - *(string) --* Placeholder documentation for __string

        - *(string) --* Placeholder documentation for __string

    - **UsagePrice** *(float) --* Recurring usage charge for each reserved resource, e.g. '157.0'
    """


_ClientDescribeChannelResponseDestinationsMediaPackageSettingsTypeDef = TypedDict(
    "_ClientDescribeChannelResponseDestinationsMediaPackageSettingsTypeDef",
    {"ChannelId": str},
    total=False,
)


class ClientDescribeChannelResponseDestinationsMediaPackageSettingsTypeDef(
    _ClientDescribeChannelResponseDestinationsMediaPackageSettingsTypeDef
):
    """
    Type definition for `ClientDescribeChannelResponseDestinations` `MediaPackageSettings`

    - **ChannelId** *(string) --* ID of the channel in MediaPackage that is the destination for this
    output group. You do not need to specify the individual inputs in MediaPackage; MediaLive will
    handle the connection of the two MediaLive pipelines to the two MediaPackage inputs. The
    MediaPackage channel and MediaLive channel must be in the same region.
    """


_ClientDescribeChannelResponseDestinationsMultiplexSettingsTypeDef = TypedDict(
    "_ClientDescribeChannelResponseDestinationsMultiplexSettingsTypeDef",
    {"MultiplexId": str, "ProgramName": str},
    total=False,
)


class ClientDescribeChannelResponseDestinationsMultiplexSettingsTypeDef(
    _ClientDescribeChannelResponseDestinationsMultiplexSettingsTypeDef
):
    """
    Type definition for `ClientDescribeChannelResponseDestinations` `MultiplexSettings`

    - **MultiplexId** *(string) --* The ID of the Multiplex that the encoder is providing output to.
    You do not need to specify the individual inputs to the Multiplex; MediaLive will handle the
    connection of the two MediaLive pipelines to the two Multiplex instances. The Multiplex must be
    in the same region as the Channel.

    - **ProgramName** *(string) --* The program name of the Multiplex program that the encoder is
    providing output to.
    """


_ClientDescribeChannelResponseDestinationsSettingsTypeDef = TypedDict(
    "_ClientDescribeChannelResponseDestinationsSettingsTypeDef",
    {"PasswordParam": str, "StreamName": str, "Url": str, "Username": str},
    total=False,
)


class ClientDescribeChannelResponseDestinationsSettingsTypeDef(
    _ClientDescribeChannelResponseDestinationsSettingsTypeDef
):
    """
    Type definition for `ClientDescribeChannelResponseDestinations` `Settings`

    - **PasswordParam** *(string) --* key used to extract the password from EC2 Parameter store

    - **StreamName** *(string) --* Stream name for RTMP destinations (URLs of type rtmp://)

    - **Url** *(string) --* A URL specifying a destination

    - **Username** *(string) --* username for destination
    """


_ClientDescribeChannelResponseDestinationsTypeDef = TypedDict(
    "_ClientDescribeChannelResponseDestinationsTypeDef",
    {
        "Id": str,
        "MediaPackageSettings": List[
            ClientDescribeChannelResponseDestinationsMediaPackageSettingsTypeDef
        ],
        "MultiplexSettings": ClientDescribeChannelResponseDestinationsMultiplexSettingsTypeDef,
        "Settings": List[ClientDescribeChannelResponseDestinationsSettingsTypeDef],
    },
    total=False,
)


class ClientDescribeChannelResponseDestinationsTypeDef(
    _ClientDescribeChannelResponseDestinationsTypeDef
):
    """
    Type definition for `ClientDescribeChannelResponse` `Destinations`

    - **Id** *(string) --* User-specified id. This is used in an output group or an output.

    - **MediaPackageSettings** *(list) --* Destination settings for a MediaPackage output; one
    destination for both encoders.

      - *(dict) --* MediaPackage Output Destination Settings

        - **ChannelId** *(string) --* ID of the channel in MediaPackage that is the destination for
        this output group. You do not need to specify the individual inputs in MediaPackage;
        MediaLive will handle the connection of the two MediaLive pipelines to the two MediaPackage
        inputs. The MediaPackage channel and MediaLive channel must be in the same region.

    - **MultiplexSettings** *(dict) --* Destination settings for a Multiplex output; one destination
    for both encoders.

      - **MultiplexId** *(string) --* The ID of the Multiplex that the encoder is providing output
      to. You do not need to specify the individual inputs to the Multiplex; MediaLive will handle
      the connection of the two MediaLive pipelines to the two Multiplex instances. The Multiplex
      must be in the same region as the Channel.

      - **ProgramName** *(string) --* The program name of the Multiplex program that the encoder is
      providing output to.

    - **Settings** *(list) --* Destination settings for a standard output; one destination for each
    redundant encoder.

      - *(dict) --* Placeholder documentation for OutputDestinationSettings

        - **PasswordParam** *(string) --* key used to extract the password from EC2 Parameter store

        - **StreamName** *(string) --* Stream name for RTMP destinations (URLs of type rtmp://)

        - **Url** *(string) --* A URL specifying a destination

        - **Username** *(string) --* username for destination
    """


_ClientDescribeChannelResponseEgressEndpointsTypeDef = TypedDict(
    "_ClientDescribeChannelResponseEgressEndpointsTypeDef", {"SourceIp": str}, total=False
)


class ClientDescribeChannelResponseEgressEndpointsTypeDef(
    _ClientDescribeChannelResponseEgressEndpointsTypeDef
):
    """
    Type definition for `ClientDescribeChannelResponse` `EgressEndpoints`

    - **SourceIp** *(string) --* Public IP of where a channel's output comes from
    """


_ClientDescribeChannelResponseEncoderSettingsAudioDescriptionsAudioNormalizationSettingsTypeDef = TypedDict(
    "_ClientDescribeChannelResponseEncoderSettingsAudioDescriptionsAudioNormalizationSettingsTypeDef",
    {"Algorithm": str, "AlgorithmControl": str, "TargetLkfs": float},
    total=False,
)


class ClientDescribeChannelResponseEncoderSettingsAudioDescriptionsAudioNormalizationSettingsTypeDef(
    _ClientDescribeChannelResponseEncoderSettingsAudioDescriptionsAudioNormalizationSettingsTypeDef
):
    """
    Type definition for `ClientDescribeChannelResponseEncoderSettingsAudioDescriptions`
    `AudioNormalizationSettings`

    - **Algorithm** *(string) --* Audio normalization algorithm to use. itu17701 conforms to the
    CALM Act specification, itu17702 conforms to the EBU R-128 specification.

    - **AlgorithmControl** *(string) --* When set to correctAudio the output audio is corrected
    using the chosen algorithm. If set to measureOnly, the audio will be measured but not adjusted.

    - **TargetLkfs** *(float) --* Target LKFS(loudness) to adjust volume to. If no value is entered,
    a default value will be used according to the chosen algorithm. The CALM Act (1770-1) recommends
    a target of -24 LKFS. The EBU R-128 specification (1770-2) recommends a target of -23 LKFS.
    """


_ClientDescribeChannelResponseEncoderSettingsAudioDescriptionsCodecSettingsAacSettingsTypeDef = TypedDict(
    "_ClientDescribeChannelResponseEncoderSettingsAudioDescriptionsCodecSettingsAacSettingsTypeDef",
    {
        "Bitrate": float,
        "CodingMode": str,
        "InputType": str,
        "Profile": str,
        "RateControlMode": str,
        "RawFormat": str,
        "SampleRate": float,
        "Spec": str,
        "VbrQuality": str,
    },
    total=False,
)


class ClientDescribeChannelResponseEncoderSettingsAudioDescriptionsCodecSettingsAacSettingsTypeDef(
    _ClientDescribeChannelResponseEncoderSettingsAudioDescriptionsCodecSettingsAacSettingsTypeDef
):
    """
    Type definition for `ClientDescribeChannelResponseEncoderSettingsAudioDescriptionsCodecSettings`
    `AacSettings`

    - **Bitrate** *(float) --* Average bitrate in bits/second. Valid values depend on rate control
    mode and profile.

    - **CodingMode** *(string) --* Mono, Stereo, or 5.1 channel layout. Valid values depend on rate
    control mode and profile. The adReceiverMix setting receives a stereo description plus control
    track and emits a mono AAC encode of the description track, with control data emitted in the PES
    header as per ETSI TS 101 154 Annex E.

    - **InputType** *(string) --* Set to "broadcasterMixedAd" when input contains pre-mixed main
    audio + AD (narration) as a stereo pair. The Audio Type field (audioType) will be set to 3,
    which signals to downstream systems that this stream contains "broadcaster mixed AD". Note that
    the input received by the encoder must contain pre-mixed audio; the encoder does not perform the
    mixing. The values in audioTypeControl and audioType (in AudioDescription) are ignored when set
    to broadcasterMixedAd. Leave set to "normal" when input does not contain pre-mixed audio + AD.

    - **Profile** *(string) --* AAC Profile.

    - **RateControlMode** *(string) --* Rate Control Mode.

    - **RawFormat** *(string) --* Sets LATM / LOAS AAC output for raw containers.

    - **SampleRate** *(float) --* Sample rate in Hz. Valid values depend on rate control mode and
    profile.

    - **Spec** *(string) --* Use MPEG-2 AAC audio instead of MPEG-4 AAC audio for raw or MPEG-2
    Transport Stream containers.

    - **VbrQuality** *(string) --* VBR Quality Level - Only used if rateControlMode is VBR.
    """


_ClientDescribeChannelResponseEncoderSettingsAudioDescriptionsCodecSettingsAc3SettingsTypeDef = TypedDict(
    "_ClientDescribeChannelResponseEncoderSettingsAudioDescriptionsCodecSettingsAc3SettingsTypeDef",
    {
        "Bitrate": float,
        "BitstreamMode": str,
        "CodingMode": str,
        "Dialnorm": int,
        "DrcProfile": str,
        "LfeFilter": str,
        "MetadataControl": str,
    },
    total=False,
)


class ClientDescribeChannelResponseEncoderSettingsAudioDescriptionsCodecSettingsAc3SettingsTypeDef(
    _ClientDescribeChannelResponseEncoderSettingsAudioDescriptionsCodecSettingsAc3SettingsTypeDef
):
    """
    Type definition for `ClientDescribeChannelResponseEncoderSettingsAudioDescriptionsCodecSettings`
    `Ac3Settings`

    - **Bitrate** *(float) --* Average bitrate in bits/second. Valid bitrates depend on the coding
    mode.

    - **BitstreamMode** *(string) --* Specifies the bitstream mode (bsmod) for the emitted AC-3
    stream. See ATSC A/52-2012 for background on these values.

    - **CodingMode** *(string) --* Dolby Digital coding mode. Determines number of channels.

    - **Dialnorm** *(integer) --* Sets the dialnorm for the output. If excluded and input audio is
    Dolby Digital, dialnorm will be passed through.

    - **DrcProfile** *(string) --* If set to filmStandard, adds dynamic range compression signaling
    to the output bitstream as defined in the Dolby Digital specification.

    - **LfeFilter** *(string) --* When set to enabled, applies a 120Hz lowpass filter to the LFE
    channel prior to encoding. Only valid in codingMode32Lfe mode.

    - **MetadataControl** *(string) --* When set to "followInput", encoder metadata will be sourced
    from the DD, DD+, or DolbyE decoder that supplied this audio data. If audio was not supplied
    from one of these streams, then the static metadata settings will be used.
    """


_ClientDescribeChannelResponseEncoderSettingsAudioDescriptionsCodecSettingsEac3SettingsTypeDef = TypedDict(
    "_ClientDescribeChannelResponseEncoderSettingsAudioDescriptionsCodecSettingsEac3SettingsTypeDef",
    {
        "AttenuationControl": str,
        "Bitrate": float,
        "BitstreamMode": str,
        "CodingMode": str,
        "DcFilter": str,
        "Dialnorm": int,
        "DrcLine": str,
        "DrcRf": str,
        "LfeControl": str,
        "LfeFilter": str,
        "LoRoCenterMixLevel": float,
        "LoRoSurroundMixLevel": float,
        "LtRtCenterMixLevel": float,
        "LtRtSurroundMixLevel": float,
        "MetadataControl": str,
        "PassthroughControl": str,
        "PhaseControl": str,
        "StereoDownmix": str,
        "SurroundExMode": str,
        "SurroundMode": str,
    },
    total=False,
)


class ClientDescribeChannelResponseEncoderSettingsAudioDescriptionsCodecSettingsEac3SettingsTypeDef(
    _ClientDescribeChannelResponseEncoderSettingsAudioDescriptionsCodecSettingsEac3SettingsTypeDef
):
    """
    Type definition for `ClientDescribeChannelResponseEncoderSettingsAudioDescriptionsCodecSettings`
    `Eac3Settings`

    - **AttenuationControl** *(string) --* When set to attenuate3Db, applies a 3 dB attenuation to
    the surround channels. Only used for 3/2 coding mode.

    - **Bitrate** *(float) --* Average bitrate in bits/second. Valid bitrates depend on the coding
    mode.

    - **BitstreamMode** *(string) --* Specifies the bitstream mode (bsmod) for the emitted E-AC-3
    stream. See ATSC A/52-2012 (Annex E) for background on these values.

    - **CodingMode** *(string) --* Dolby Digital Plus coding mode. Determines number of channels.

    - **DcFilter** *(string) --* When set to enabled, activates a DC highpass filter for all input
    channels.

    - **Dialnorm** *(integer) --* Sets the dialnorm for the output. If blank and input audio is
    Dolby Digital Plus, dialnorm will be passed through.

    - **DrcLine** *(string) --* Sets the Dolby dynamic range compression profile.

    - **DrcRf** *(string) --* Sets the profile for heavy Dolby dynamic range compression, ensures
    that the instantaneous signal peaks do not exceed specified levels.

    - **LfeControl** *(string) --* When encoding 3/2 audio, setting to lfe enables the LFE channel

    - **LfeFilter** *(string) --* When set to enabled, applies a 120Hz lowpass filter to the LFE
    channel prior to encoding. Only valid with codingMode32 coding mode.

    - **LoRoCenterMixLevel** *(float) --* Left only/Right only center mix level. Only used for 3/2
    coding mode.

    - **LoRoSurroundMixLevel** *(float) --* Left only/Right only surround mix level. Only used for
    3/2 coding mode.

    - **LtRtCenterMixLevel** *(float) --* Left total/Right total center mix level. Only used for 3/2
    coding mode.

    - **LtRtSurroundMixLevel** *(float) --* Left total/Right total surround mix level. Only used for
    3/2 coding mode.

    - **MetadataControl** *(string) --* When set to followInput, encoder metadata will be sourced
    from the DD, DD+, or DolbyE decoder that supplied this audio data. If audio was not supplied
    from one of these streams, then the static metadata settings will be used.

    - **PassthroughControl** *(string) --* When set to whenPossible, input DD+ audio will be passed
    through if it is present on the input. This detection is dynamic over the life of the transcode.
    Inputs that alternate between DD+ and non-DD+ content will have a consistent DD+ output as the
    system alternates between passthrough and encoding.

    - **PhaseControl** *(string) --* When set to shift90Degrees, applies a 90-degree phase shift to
    the surround channels. Only used for 3/2 coding mode.

    - **StereoDownmix** *(string) --* Stereo downmix preference. Only used for 3/2 coding mode.

    - **SurroundExMode** *(string) --* When encoding 3/2 audio, sets whether an extra center back
    surround channel is matrix encoded into the left and right surround channels.

    - **SurroundMode** *(string) --* When encoding 2/0 audio, sets whether Dolby Surround is matrix
    encoded into the two channels.
    """


_ClientDescribeChannelResponseEncoderSettingsAudioDescriptionsCodecSettingsMp2SettingsTypeDef = TypedDict(
    "_ClientDescribeChannelResponseEncoderSettingsAudioDescriptionsCodecSettingsMp2SettingsTypeDef",
    {"Bitrate": float, "CodingMode": str, "SampleRate": float},
    total=False,
)


class ClientDescribeChannelResponseEncoderSettingsAudioDescriptionsCodecSettingsMp2SettingsTypeDef(
    _ClientDescribeChannelResponseEncoderSettingsAudioDescriptionsCodecSettingsMp2SettingsTypeDef
):
    """
    Type definition for `ClientDescribeChannelResponseEncoderSettingsAudioDescriptionsCodecSettings`
    `Mp2Settings`

    - **Bitrate** *(float) --* Average bitrate in bits/second.

    - **CodingMode** *(string) --* The MPEG2 Audio coding mode. Valid values are codingMode10 (for
    mono) or codingMode20 (for stereo).

    - **SampleRate** *(float) --* Sample rate in Hz.
    """


_ClientDescribeChannelResponseEncoderSettingsAudioDescriptionsCodecSettingsTypeDef = TypedDict(
    "_ClientDescribeChannelResponseEncoderSettingsAudioDescriptionsCodecSettingsTypeDef",
    {
        "AacSettings": ClientDescribeChannelResponseEncoderSettingsAudioDescriptionsCodecSettingsAacSettingsTypeDef,
        "Ac3Settings": ClientDescribeChannelResponseEncoderSettingsAudioDescriptionsCodecSettingsAc3SettingsTypeDef,
        "Eac3Settings": ClientDescribeChannelResponseEncoderSettingsAudioDescriptionsCodecSettingsEac3SettingsTypeDef,
        "Mp2Settings": ClientDescribeChannelResponseEncoderSettingsAudioDescriptionsCodecSettingsMp2SettingsTypeDef,
        "PassThroughSettings": Dict[str, Any],
    },
    total=False,
)


class ClientDescribeChannelResponseEncoderSettingsAudioDescriptionsCodecSettingsTypeDef(
    _ClientDescribeChannelResponseEncoderSettingsAudioDescriptionsCodecSettingsTypeDef
):
    """
    Type definition for `ClientDescribeChannelResponseEncoderSettingsAudioDescriptions`
    `CodecSettings`

    - **AacSettings** *(dict) --* Aac Settings

      - **Bitrate** *(float) --* Average bitrate in bits/second. Valid values depend on rate control
      mode and profile.

      - **CodingMode** *(string) --* Mono, Stereo, or 5.1 channel layout. Valid values depend on
      rate control mode and profile. The adReceiverMix setting receives a stereo description plus
      control track and emits a mono AAC encode of the description track, with control data emitted
      in the PES header as per ETSI TS 101 154 Annex E.

      - **InputType** *(string) --* Set to "broadcasterMixedAd" when input contains pre-mixed main
      audio + AD (narration) as a stereo pair. The Audio Type field (audioType) will be set to 3,
      which signals to downstream systems that this stream contains "broadcaster mixed AD". Note
      that the input received by the encoder must contain pre-mixed audio; the encoder does not
      perform the mixing. The values in audioTypeControl and audioType (in AudioDescription) are
      ignored when set to broadcasterMixedAd. Leave set to "normal" when input does not contain
      pre-mixed audio + AD.

      - **Profile** *(string) --* AAC Profile.

      - **RateControlMode** *(string) --* Rate Control Mode.

      - **RawFormat** *(string) --* Sets LATM / LOAS AAC output for raw containers.

      - **SampleRate** *(float) --* Sample rate in Hz. Valid values depend on rate control mode and
      profile.

      - **Spec** *(string) --* Use MPEG-2 AAC audio instead of MPEG-4 AAC audio for raw or MPEG-2
      Transport Stream containers.

      - **VbrQuality** *(string) --* VBR Quality Level - Only used if rateControlMode is VBR.

    - **Ac3Settings** *(dict) --* Ac3 Settings

      - **Bitrate** *(float) --* Average bitrate in bits/second. Valid bitrates depend on the coding
      mode.

      - **BitstreamMode** *(string) --* Specifies the bitstream mode (bsmod) for the emitted AC-3
      stream. See ATSC A/52-2012 for background on these values.

      - **CodingMode** *(string) --* Dolby Digital coding mode. Determines number of channels.

      - **Dialnorm** *(integer) --* Sets the dialnorm for the output. If excluded and input audio is
      Dolby Digital, dialnorm will be passed through.

      - **DrcProfile** *(string) --* If set to filmStandard, adds dynamic range compression
      signaling to the output bitstream as defined in the Dolby Digital specification.

      - **LfeFilter** *(string) --* When set to enabled, applies a 120Hz lowpass filter to the LFE
      channel prior to encoding. Only valid in codingMode32Lfe mode.

      - **MetadataControl** *(string) --* When set to "followInput", encoder metadata will be
      sourced from the DD, DD+, or DolbyE decoder that supplied this audio data. If audio was not
      supplied from one of these streams, then the static metadata settings will be used.

    - **Eac3Settings** *(dict) --* Eac3 Settings

      - **AttenuationControl** *(string) --* When set to attenuate3Db, applies a 3 dB attenuation to
      the surround channels. Only used for 3/2 coding mode.

      - **Bitrate** *(float) --* Average bitrate in bits/second. Valid bitrates depend on the coding
      mode.

      - **BitstreamMode** *(string) --* Specifies the bitstream mode (bsmod) for the emitted E-AC-3
      stream. See ATSC A/52-2012 (Annex E) for background on these values.

      - **CodingMode** *(string) --* Dolby Digital Plus coding mode. Determines number of channels.

      - **DcFilter** *(string) --* When set to enabled, activates a DC highpass filter for all input
      channels.

      - **Dialnorm** *(integer) --* Sets the dialnorm for the output. If blank and input audio is
      Dolby Digital Plus, dialnorm will be passed through.

      - **DrcLine** *(string) --* Sets the Dolby dynamic range compression profile.

      - **DrcRf** *(string) --* Sets the profile for heavy Dolby dynamic range compression, ensures
      that the instantaneous signal peaks do not exceed specified levels.

      - **LfeControl** *(string) --* When encoding 3/2 audio, setting to lfe enables the LFE channel

      - **LfeFilter** *(string) --* When set to enabled, applies a 120Hz lowpass filter to the LFE
      channel prior to encoding. Only valid with codingMode32 coding mode.

      - **LoRoCenterMixLevel** *(float) --* Left only/Right only center mix level. Only used for 3/2
      coding mode.

      - **LoRoSurroundMixLevel** *(float) --* Left only/Right only surround mix level. Only used for
      3/2 coding mode.

      - **LtRtCenterMixLevel** *(float) --* Left total/Right total center mix level. Only used for
      3/2 coding mode.

      - **LtRtSurroundMixLevel** *(float) --* Left total/Right total surround mix level. Only used
      for 3/2 coding mode.

      - **MetadataControl** *(string) --* When set to followInput, encoder metadata will be sourced
      from the DD, DD+, or DolbyE decoder that supplied this audio data. If audio was not supplied
      from one of these streams, then the static metadata settings will be used.

      - **PassthroughControl** *(string) --* When set to whenPossible, input DD+ audio will be
      passed through if it is present on the input. This detection is dynamic over the life of the
      transcode. Inputs that alternate between DD+ and non-DD+ content will have a consistent DD+
      output as the system alternates between passthrough and encoding.

      - **PhaseControl** *(string) --* When set to shift90Degrees, applies a 90-degree phase shift
      to the surround channels. Only used for 3/2 coding mode.

      - **StereoDownmix** *(string) --* Stereo downmix preference. Only used for 3/2 coding mode.

      - **SurroundExMode** *(string) --* When encoding 3/2 audio, sets whether an extra center back
      surround channel is matrix encoded into the left and right surround channels.

      - **SurroundMode** *(string) --* When encoding 2/0 audio, sets whether Dolby Surround is
      matrix encoded into the two channels.

    - **Mp2Settings** *(dict) --* Mp2 Settings

      - **Bitrate** *(float) --* Average bitrate in bits/second.

      - **CodingMode** *(string) --* The MPEG2 Audio coding mode. Valid values are codingMode10 (for
      mono) or codingMode20 (for stereo).

      - **SampleRate** *(float) --* Sample rate in Hz.

    - **PassThroughSettings** *(dict) --* Pass Through Settings
    """


_ClientDescribeChannelResponseEncoderSettingsAudioDescriptionsRemixSettingsChannelMappingsInputChannelLevelsTypeDef = TypedDict(
    "_ClientDescribeChannelResponseEncoderSettingsAudioDescriptionsRemixSettingsChannelMappingsInputChannelLevelsTypeDef",
    {"Gain": int, "InputChannel": int},
    total=False,
)


class ClientDescribeChannelResponseEncoderSettingsAudioDescriptionsRemixSettingsChannelMappingsInputChannelLevelsTypeDef(
    _ClientDescribeChannelResponseEncoderSettingsAudioDescriptionsRemixSettingsChannelMappingsInputChannelLevelsTypeDef
):
    """
    Type definition for
    `ClientDescribeChannelResponseEncoderSettingsAudioDescriptionsRemixSettingsChannelMappings`
    `InputChannelLevels`

    - **Gain** *(integer) --* Remixing value. Units are in dB and acceptable values are within the
    range from -60 (mute) and 6 dB.

    - **InputChannel** *(integer) --* The index of the input channel used as a source.
    """


_ClientDescribeChannelResponseEncoderSettingsAudioDescriptionsRemixSettingsChannelMappingsTypeDef = TypedDict(
    "_ClientDescribeChannelResponseEncoderSettingsAudioDescriptionsRemixSettingsChannelMappingsTypeDef",
    {
        "InputChannelLevels": List[
            ClientDescribeChannelResponseEncoderSettingsAudioDescriptionsRemixSettingsChannelMappingsInputChannelLevelsTypeDef
        ],
        "OutputChannel": int,
    },
    total=False,
)


class ClientDescribeChannelResponseEncoderSettingsAudioDescriptionsRemixSettingsChannelMappingsTypeDef(
    _ClientDescribeChannelResponseEncoderSettingsAudioDescriptionsRemixSettingsChannelMappingsTypeDef
):
    """
    Type definition for `ClientDescribeChannelResponseEncoderSettingsAudioDescriptionsRemixSettings`
    `ChannelMappings`

    - **InputChannelLevels** *(list) --* Indices and gain values for each input channel that should
    be remixed into this output channel.

      - *(dict) --* Input Channel Level

        - **Gain** *(integer) --* Remixing value. Units are in dB and acceptable values are within
        the range from -60 (mute) and 6 dB.

        - **InputChannel** *(integer) --* The index of the input channel used as a source.

    - **OutputChannel** *(integer) --* The index of the output channel being produced.
    """


_ClientDescribeChannelResponseEncoderSettingsAudioDescriptionsRemixSettingsTypeDef = TypedDict(
    "_ClientDescribeChannelResponseEncoderSettingsAudioDescriptionsRemixSettingsTypeDef",
    {
        "ChannelMappings": List[
            ClientDescribeChannelResponseEncoderSettingsAudioDescriptionsRemixSettingsChannelMappingsTypeDef
        ],
        "ChannelsIn": int,
        "ChannelsOut": int,
    },
    total=False,
)


class ClientDescribeChannelResponseEncoderSettingsAudioDescriptionsRemixSettingsTypeDef(
    _ClientDescribeChannelResponseEncoderSettingsAudioDescriptionsRemixSettingsTypeDef
):
    """
    Type definition for `ClientDescribeChannelResponseEncoderSettingsAudioDescriptions`
    `RemixSettings`

    - **ChannelMappings** *(list) --* Mapping of input channels to output channels, with appropriate
    gain adjustments.

      - *(dict) --* Audio Channel Mapping

        - **InputChannelLevels** *(list) --* Indices and gain values for each input channel that
        should be remixed into this output channel.

          - *(dict) --* Input Channel Level

            - **Gain** *(integer) --* Remixing value. Units are in dB and acceptable values are
            within the range from -60 (mute) and 6 dB.

            - **InputChannel** *(integer) --* The index of the input channel used as a source.

        - **OutputChannel** *(integer) --* The index of the output channel being produced.

    - **ChannelsIn** *(integer) --* Number of input channels to be used.

    - **ChannelsOut** *(integer) --* Number of output channels to be produced. Valid values: 1, 2,
    4, 6, 8
    """


_ClientDescribeChannelResponseEncoderSettingsAudioDescriptionsTypeDef = TypedDict(
    "_ClientDescribeChannelResponseEncoderSettingsAudioDescriptionsTypeDef",
    {
        "AudioNormalizationSettings": ClientDescribeChannelResponseEncoderSettingsAudioDescriptionsAudioNormalizationSettingsTypeDef,
        "AudioSelectorName": str,
        "AudioType": str,
        "AudioTypeControl": str,
        "CodecSettings": ClientDescribeChannelResponseEncoderSettingsAudioDescriptionsCodecSettingsTypeDef,
        "LanguageCode": str,
        "LanguageCodeControl": str,
        "Name": str,
        "RemixSettings": ClientDescribeChannelResponseEncoderSettingsAudioDescriptionsRemixSettingsTypeDef,
        "StreamName": str,
    },
    total=False,
)


class ClientDescribeChannelResponseEncoderSettingsAudioDescriptionsTypeDef(
    _ClientDescribeChannelResponseEncoderSettingsAudioDescriptionsTypeDef
):
    """
    Type definition for `ClientDescribeChannelResponseEncoderSettings` `AudioDescriptions`

    - **AudioNormalizationSettings** *(dict) --* Advanced audio normalization settings.

      - **Algorithm** *(string) --* Audio normalization algorithm to use. itu17701 conforms to the
      CALM Act specification, itu17702 conforms to the EBU R-128 specification.

      - **AlgorithmControl** *(string) --* When set to correctAudio the output audio is corrected
      using the chosen algorithm. If set to measureOnly, the audio will be measured but not
      adjusted.

      - **TargetLkfs** *(float) --* Target LKFS(loudness) to adjust volume to. If no value is
      entered, a default value will be used according to the chosen algorithm. The CALM Act (1770-1)
      recommends a target of -24 LKFS. The EBU R-128 specification (1770-2) recommends a target of
      -23 LKFS.

    - **AudioSelectorName** *(string) --* The name of the AudioSelector used as the source for this
    AudioDescription.

    - **AudioType** *(string) --* Applies only if audioTypeControl is useConfigured. The values for
    audioType are defined in ISO-IEC 13818-1.

    - **AudioTypeControl** *(string) --* Determines how audio type is determined. followInput: If
    the input contains an ISO 639 audioType, then that value is passed through to the output. If the
    input contains no ISO 639 audioType, the value in Audio Type is included in the output.
    useConfigured: The value in Audio Type is included in the output. Note that this field and
    audioType are both ignored if inputType is broadcasterMixedAd.

    - **CodecSettings** *(dict) --* Audio codec settings.

      - **AacSettings** *(dict) --* Aac Settings

        - **Bitrate** *(float) --* Average bitrate in bits/second. Valid values depend on rate
        control mode and profile.

        - **CodingMode** *(string) --* Mono, Stereo, or 5.1 channel layout. Valid values depend on
        rate control mode and profile. The adReceiverMix setting receives a stereo description plus
        control track and emits a mono AAC encode of the description track, with control data
        emitted in the PES header as per ETSI TS 101 154 Annex E.

        - **InputType** *(string) --* Set to "broadcasterMixedAd" when input contains pre-mixed main
        audio + AD (narration) as a stereo pair. The Audio Type field (audioType) will be set to 3,
        which signals to downstream systems that this stream contains "broadcaster mixed AD". Note
        that the input received by the encoder must contain pre-mixed audio; the encoder does not
        perform the mixing. The values in audioTypeControl and audioType (in AudioDescription) are
        ignored when set to broadcasterMixedAd. Leave set to "normal" when input does not contain
        pre-mixed audio + AD.

        - **Profile** *(string) --* AAC Profile.

        - **RateControlMode** *(string) --* Rate Control Mode.

        - **RawFormat** *(string) --* Sets LATM / LOAS AAC output for raw containers.

        - **SampleRate** *(float) --* Sample rate in Hz. Valid values depend on rate control mode
        and profile.

        - **Spec** *(string) --* Use MPEG-2 AAC audio instead of MPEG-4 AAC audio for raw or MPEG-2
        Transport Stream containers.

        - **VbrQuality** *(string) --* VBR Quality Level - Only used if rateControlMode is VBR.

      - **Ac3Settings** *(dict) --* Ac3 Settings

        - **Bitrate** *(float) --* Average bitrate in bits/second. Valid bitrates depend on the
        coding mode.

        - **BitstreamMode** *(string) --* Specifies the bitstream mode (bsmod) for the emitted AC-3
        stream. See ATSC A/52-2012 for background on these values.

        - **CodingMode** *(string) --* Dolby Digital coding mode. Determines number of channels.

        - **Dialnorm** *(integer) --* Sets the dialnorm for the output. If excluded and input audio
        is Dolby Digital, dialnorm will be passed through.

        - **DrcProfile** *(string) --* If set to filmStandard, adds dynamic range compression
        signaling to the output bitstream as defined in the Dolby Digital specification.

        - **LfeFilter** *(string) --* When set to enabled, applies a 120Hz lowpass filter to the LFE
        channel prior to encoding. Only valid in codingMode32Lfe mode.

        - **MetadataControl** *(string) --* When set to "followInput", encoder metadata will be
        sourced from the DD, DD+, or DolbyE decoder that supplied this audio data. If audio was not
        supplied from one of these streams, then the static metadata settings will be used.

      - **Eac3Settings** *(dict) --* Eac3 Settings

        - **AttenuationControl** *(string) --* When set to attenuate3Db, applies a 3 dB attenuation
        to the surround channels. Only used for 3/2 coding mode.

        - **Bitrate** *(float) --* Average bitrate in bits/second. Valid bitrates depend on the
        coding mode.

        - **BitstreamMode** *(string) --* Specifies the bitstream mode (bsmod) for the emitted
        E-AC-3 stream. See ATSC A/52-2012 (Annex E) for background on these values.

        - **CodingMode** *(string) --* Dolby Digital Plus coding mode. Determines number of
        channels.

        - **DcFilter** *(string) --* When set to enabled, activates a DC highpass filter for all
        input channels.

        - **Dialnorm** *(integer) --* Sets the dialnorm for the output. If blank and input audio is
        Dolby Digital Plus, dialnorm will be passed through.

        - **DrcLine** *(string) --* Sets the Dolby dynamic range compression profile.

        - **DrcRf** *(string) --* Sets the profile for heavy Dolby dynamic range compression,
        ensures that the instantaneous signal peaks do not exceed specified levels.

        - **LfeControl** *(string) --* When encoding 3/2 audio, setting to lfe enables the LFE
        channel

        - **LfeFilter** *(string) --* When set to enabled, applies a 120Hz lowpass filter to the LFE
        channel prior to encoding. Only valid with codingMode32 coding mode.

        - **LoRoCenterMixLevel** *(float) --* Left only/Right only center mix level. Only used for
        3/2 coding mode.

        - **LoRoSurroundMixLevel** *(float) --* Left only/Right only surround mix level. Only used
        for 3/2 coding mode.

        - **LtRtCenterMixLevel** *(float) --* Left total/Right total center mix level. Only used for
        3/2 coding mode.

        - **LtRtSurroundMixLevel** *(float) --* Left total/Right total surround mix level. Only used
        for 3/2 coding mode.

        - **MetadataControl** *(string) --* When set to followInput, encoder metadata will be
        sourced from the DD, DD+, or DolbyE decoder that supplied this audio data. If audio was not
        supplied from one of these streams, then the static metadata settings will be used.

        - **PassthroughControl** *(string) --* When set to whenPossible, input DD+ audio will be
        passed through if it is present on the input. This detection is dynamic over the life of the
        transcode. Inputs that alternate between DD+ and non-DD+ content will have a consistent DD+
        output as the system alternates between passthrough and encoding.

        - **PhaseControl** *(string) --* When set to shift90Degrees, applies a 90-degree phase shift
        to the surround channels. Only used for 3/2 coding mode.

        - **StereoDownmix** *(string) --* Stereo downmix preference. Only used for 3/2 coding mode.

        - **SurroundExMode** *(string) --* When encoding 3/2 audio, sets whether an extra center
        back surround channel is matrix encoded into the left and right surround channels.

        - **SurroundMode** *(string) --* When encoding 2/0 audio, sets whether Dolby Surround is
        matrix encoded into the two channels.

      - **Mp2Settings** *(dict) --* Mp2 Settings

        - **Bitrate** *(float) --* Average bitrate in bits/second.

        - **CodingMode** *(string) --* The MPEG2 Audio coding mode. Valid values are codingMode10
        (for mono) or codingMode20 (for stereo).

        - **SampleRate** *(float) --* Sample rate in Hz.

      - **PassThroughSettings** *(dict) --* Pass Through Settings

    - **LanguageCode** *(string) --* Indicates the language of the audio output track. Only used if
    languageControlMode is useConfigured, or there is no ISO 639 language code specified in the
    input.

    - **LanguageCodeControl** *(string) --* Choosing followInput will cause the ISO 639 language
    code of the output to follow the ISO 639 language code of the input. The languageCode will be
    used when useConfigured is set, or when followInput is selected but there is no ISO 639 language
    code specified by the input.

    - **Name** *(string) --* The name of this AudioDescription. Outputs will use this name to
    uniquely identify this AudioDescription. Description names should be unique within this Live
    Event.

    - **RemixSettings** *(dict) --* Settings that control how input audio channels are remixed into
    the output audio channels.

      - **ChannelMappings** *(list) --* Mapping of input channels to output channels, with
      appropriate gain adjustments.

        - *(dict) --* Audio Channel Mapping

          - **InputChannelLevels** *(list) --* Indices and gain values for each input channel that
          should be remixed into this output channel.

            - *(dict) --* Input Channel Level

              - **Gain** *(integer) --* Remixing value. Units are in dB and acceptable values are
              within the range from -60 (mute) and 6 dB.

              - **InputChannel** *(integer) --* The index of the input channel used as a source.

          - **OutputChannel** *(integer) --* The index of the output channel being produced.

      - **ChannelsIn** *(integer) --* Number of input channels to be used.

      - **ChannelsOut** *(integer) --* Number of output channels to be produced. Valid values: 1, 2,
      4, 6, 8

    - **StreamName** *(string) --* Used for MS Smooth and Apple HLS outputs. Indicates the name
    displayed by the player (eg. English, or Director Commentary).
    """


_ClientDescribeChannelResponseEncoderSettingsAvailBlankingAvailBlankingImageTypeDef = TypedDict(
    "_ClientDescribeChannelResponseEncoderSettingsAvailBlankingAvailBlankingImageTypeDef",
    {"PasswordParam": str, "Uri": str, "Username": str},
    total=False,
)


class ClientDescribeChannelResponseEncoderSettingsAvailBlankingAvailBlankingImageTypeDef(
    _ClientDescribeChannelResponseEncoderSettingsAvailBlankingAvailBlankingImageTypeDef
):
    """
    Type definition for `ClientDescribeChannelResponseEncoderSettingsAvailBlanking`
    `AvailBlankingImage`

    - **PasswordParam** *(string) --* key used to extract the password from EC2 Parameter store

    - **Uri** *(string) --* Uniform Resource Identifier - This should be a path to a file accessible
    to the Live system (eg. a http:// URI) depending on the output type. For example, a RTMP
    destination should have a uri simliar to: "rtmp://fmsserver/live".

    - **Username** *(string) --* Documentation update needed
    """


_ClientDescribeChannelResponseEncoderSettingsAvailBlankingTypeDef = TypedDict(
    "_ClientDescribeChannelResponseEncoderSettingsAvailBlankingTypeDef",
    {
        "AvailBlankingImage": ClientDescribeChannelResponseEncoderSettingsAvailBlankingAvailBlankingImageTypeDef,
        "State": str,
    },
    total=False,
)


class ClientDescribeChannelResponseEncoderSettingsAvailBlankingTypeDef(
    _ClientDescribeChannelResponseEncoderSettingsAvailBlankingTypeDef
):
    """
    Type definition for `ClientDescribeChannelResponseEncoderSettings` `AvailBlanking`

    - **AvailBlankingImage** *(dict) --* Blanking image to be used. Leave empty for solid black.
    Only bmp and png images are supported.

      - **PasswordParam** *(string) --* key used to extract the password from EC2 Parameter store

      - **Uri** *(string) --* Uniform Resource Identifier - This should be a path to a file
      accessible to the Live system (eg. a http:// URI) depending on the output type. For example, a
      RTMP destination should have a uri simliar to: "rtmp://fmsserver/live".

      - **Username** *(string) --* Documentation update needed

    - **State** *(string) --* When set to enabled, causes video, audio and captions to be blanked
    when insertion metadata is added.
    """


_ClientDescribeChannelResponseEncoderSettingsAvailConfigurationAvailSettingsScte35SpliceInsertTypeDef = TypedDict(
    "_ClientDescribeChannelResponseEncoderSettingsAvailConfigurationAvailSettingsScte35SpliceInsertTypeDef",
    {"AdAvailOffset": int, "NoRegionalBlackoutFlag": str, "WebDeliveryAllowedFlag": str},
    total=False,
)


class ClientDescribeChannelResponseEncoderSettingsAvailConfigurationAvailSettingsScte35SpliceInsertTypeDef(
    _ClientDescribeChannelResponseEncoderSettingsAvailConfigurationAvailSettingsScte35SpliceInsertTypeDef
):
    """
    Type definition for
    `ClientDescribeChannelResponseEncoderSettingsAvailConfigurationAvailSettings`
    `Scte35SpliceInsert`

    - **AdAvailOffset** *(integer) --* When specified, this offset (in milliseconds) is added to the
    input Ad Avail PTS time. This only applies to embedded SCTE 104/35 messages and does not apply
    to OOB messages.

    - **NoRegionalBlackoutFlag** *(string) --* When set to ignore, Segment Descriptors with
    noRegionalBlackoutFlag set to 0 will no longer trigger blackouts or Ad Avail slates

    - **WebDeliveryAllowedFlag** *(string) --* When set to ignore, Segment Descriptors with
    webDeliveryAllowedFlag set to 0 will no longer trigger blackouts or Ad Avail slates
    """


_ClientDescribeChannelResponseEncoderSettingsAvailConfigurationAvailSettingsScte35TimeSignalAposTypeDef = TypedDict(
    "_ClientDescribeChannelResponseEncoderSettingsAvailConfigurationAvailSettingsScte35TimeSignalAposTypeDef",
    {"AdAvailOffset": int, "NoRegionalBlackoutFlag": str, "WebDeliveryAllowedFlag": str},
    total=False,
)


class ClientDescribeChannelResponseEncoderSettingsAvailConfigurationAvailSettingsScte35TimeSignalAposTypeDef(
    _ClientDescribeChannelResponseEncoderSettingsAvailConfigurationAvailSettingsScte35TimeSignalAposTypeDef
):
    """
    Type definition for
    `ClientDescribeChannelResponseEncoderSettingsAvailConfigurationAvailSettings`
    `Scte35TimeSignalApos`

    - **AdAvailOffset** *(integer) --* When specified, this offset (in milliseconds) is added to the
    input Ad Avail PTS time. This only applies to embedded SCTE 104/35 messages and does not apply
    to OOB messages.

    - **NoRegionalBlackoutFlag** *(string) --* When set to ignore, Segment Descriptors with
    noRegionalBlackoutFlag set to 0 will no longer trigger blackouts or Ad Avail slates

    - **WebDeliveryAllowedFlag** *(string) --* When set to ignore, Segment Descriptors with
    webDeliveryAllowedFlag set to 0 will no longer trigger blackouts or Ad Avail slates
    """


_ClientDescribeChannelResponseEncoderSettingsAvailConfigurationAvailSettingsTypeDef = TypedDict(
    "_ClientDescribeChannelResponseEncoderSettingsAvailConfigurationAvailSettingsTypeDef",
    {
        "Scte35SpliceInsert": ClientDescribeChannelResponseEncoderSettingsAvailConfigurationAvailSettingsScte35SpliceInsertTypeDef,
        "Scte35TimeSignalApos": ClientDescribeChannelResponseEncoderSettingsAvailConfigurationAvailSettingsScte35TimeSignalAposTypeDef,
    },
    total=False,
)


class ClientDescribeChannelResponseEncoderSettingsAvailConfigurationAvailSettingsTypeDef(
    _ClientDescribeChannelResponseEncoderSettingsAvailConfigurationAvailSettingsTypeDef
):
    """
    Type definition for `ClientDescribeChannelResponseEncoderSettingsAvailConfiguration`
    `AvailSettings`

    - **Scte35SpliceInsert** *(dict) --* Scte35 Splice Insert

      - **AdAvailOffset** *(integer) --* When specified, this offset (in milliseconds) is added to
      the input Ad Avail PTS time. This only applies to embedded SCTE 104/35 messages and does not
      apply to OOB messages.

      - **NoRegionalBlackoutFlag** *(string) --* When set to ignore, Segment Descriptors with
      noRegionalBlackoutFlag set to 0 will no longer trigger blackouts or Ad Avail slates

      - **WebDeliveryAllowedFlag** *(string) --* When set to ignore, Segment Descriptors with
      webDeliveryAllowedFlag set to 0 will no longer trigger blackouts or Ad Avail slates

    - **Scte35TimeSignalApos** *(dict) --* Scte35 Time Signal Apos

      - **AdAvailOffset** *(integer) --* When specified, this offset (in milliseconds) is added to
      the input Ad Avail PTS time. This only applies to embedded SCTE 104/35 messages and does not
      apply to OOB messages.

      - **NoRegionalBlackoutFlag** *(string) --* When set to ignore, Segment Descriptors with
      noRegionalBlackoutFlag set to 0 will no longer trigger blackouts or Ad Avail slates

      - **WebDeliveryAllowedFlag** *(string) --* When set to ignore, Segment Descriptors with
      webDeliveryAllowedFlag set to 0 will no longer trigger blackouts or Ad Avail slates
    """


_ClientDescribeChannelResponseEncoderSettingsAvailConfigurationTypeDef = TypedDict(
    "_ClientDescribeChannelResponseEncoderSettingsAvailConfigurationTypeDef",
    {
        "AvailSettings": ClientDescribeChannelResponseEncoderSettingsAvailConfigurationAvailSettingsTypeDef
    },
    total=False,
)


class ClientDescribeChannelResponseEncoderSettingsAvailConfigurationTypeDef(
    _ClientDescribeChannelResponseEncoderSettingsAvailConfigurationTypeDef
):
    """
    Type definition for `ClientDescribeChannelResponseEncoderSettings` `AvailConfiguration`

    - **AvailSettings** *(dict) --* Ad avail settings.

      - **Scte35SpliceInsert** *(dict) --* Scte35 Splice Insert

        - **AdAvailOffset** *(integer) --* When specified, this offset (in milliseconds) is added to
        the input Ad Avail PTS time. This only applies to embedded SCTE 104/35 messages and does not
        apply to OOB messages.

        - **NoRegionalBlackoutFlag** *(string) --* When set to ignore, Segment Descriptors with
        noRegionalBlackoutFlag set to 0 will no longer trigger blackouts or Ad Avail slates

        - **WebDeliveryAllowedFlag** *(string) --* When set to ignore, Segment Descriptors with
        webDeliveryAllowedFlag set to 0 will no longer trigger blackouts or Ad Avail slates

      - **Scte35TimeSignalApos** *(dict) --* Scte35 Time Signal Apos

        - **AdAvailOffset** *(integer) --* When specified, this offset (in milliseconds) is added to
        the input Ad Avail PTS time. This only applies to embedded SCTE 104/35 messages and does not
        apply to OOB messages.

        - **NoRegionalBlackoutFlag** *(string) --* When set to ignore, Segment Descriptors with
        noRegionalBlackoutFlag set to 0 will no longer trigger blackouts or Ad Avail slates

        - **WebDeliveryAllowedFlag** *(string) --* When set to ignore, Segment Descriptors with
        webDeliveryAllowedFlag set to 0 will no longer trigger blackouts or Ad Avail slates
    """


_ClientDescribeChannelResponseEncoderSettingsBlackoutSlateBlackoutSlateImageTypeDef = TypedDict(
    "_ClientDescribeChannelResponseEncoderSettingsBlackoutSlateBlackoutSlateImageTypeDef",
    {"PasswordParam": str, "Uri": str, "Username": str},
    total=False,
)


class ClientDescribeChannelResponseEncoderSettingsBlackoutSlateBlackoutSlateImageTypeDef(
    _ClientDescribeChannelResponseEncoderSettingsBlackoutSlateBlackoutSlateImageTypeDef
):
    """
    Type definition for `ClientDescribeChannelResponseEncoderSettingsBlackoutSlate`
    `BlackoutSlateImage`

    - **PasswordParam** *(string) --* key used to extract the password from EC2 Parameter store

    - **Uri** *(string) --* Uniform Resource Identifier - This should be a path to a file accessible
    to the Live system (eg. a http:// URI) depending on the output type. For example, a RTMP
    destination should have a uri simliar to: "rtmp://fmsserver/live".

    - **Username** *(string) --* Documentation update needed
    """


_ClientDescribeChannelResponseEncoderSettingsBlackoutSlateNetworkEndBlackoutImageTypeDef = TypedDict(
    "_ClientDescribeChannelResponseEncoderSettingsBlackoutSlateNetworkEndBlackoutImageTypeDef",
    {"PasswordParam": str, "Uri": str, "Username": str},
    total=False,
)


class ClientDescribeChannelResponseEncoderSettingsBlackoutSlateNetworkEndBlackoutImageTypeDef(
    _ClientDescribeChannelResponseEncoderSettingsBlackoutSlateNetworkEndBlackoutImageTypeDef
):
    """
    Type definition for `ClientDescribeChannelResponseEncoderSettingsBlackoutSlate`
    `NetworkEndBlackoutImage`

    - **PasswordParam** *(string) --* key used to extract the password from EC2 Parameter store

    - **Uri** *(string) --* Uniform Resource Identifier - This should be a path to a file accessible
    to the Live system (eg. a http:// URI) depending on the output type. For example, a RTMP
    destination should have a uri simliar to: "rtmp://fmsserver/live".

    - **Username** *(string) --* Documentation update needed
    """


_ClientDescribeChannelResponseEncoderSettingsBlackoutSlateTypeDef = TypedDict(
    "_ClientDescribeChannelResponseEncoderSettingsBlackoutSlateTypeDef",
    {
        "BlackoutSlateImage": ClientDescribeChannelResponseEncoderSettingsBlackoutSlateBlackoutSlateImageTypeDef,
        "NetworkEndBlackout": str,
        "NetworkEndBlackoutImage": ClientDescribeChannelResponseEncoderSettingsBlackoutSlateNetworkEndBlackoutImageTypeDef,
        "NetworkId": str,
        "State": str,
    },
    total=False,
)


class ClientDescribeChannelResponseEncoderSettingsBlackoutSlateTypeDef(
    _ClientDescribeChannelResponseEncoderSettingsBlackoutSlateTypeDef
):
    """
    Type definition for `ClientDescribeChannelResponseEncoderSettings` `BlackoutSlate`

    - **BlackoutSlateImage** *(dict) --* Blackout slate image to be used. Leave empty for solid
    black. Only bmp and png images are supported.

      - **PasswordParam** *(string) --* key used to extract the password from EC2 Parameter store

      - **Uri** *(string) --* Uniform Resource Identifier - This should be a path to a file
      accessible to the Live system (eg. a http:// URI) depending on the output type. For example, a
      RTMP destination should have a uri simliar to: "rtmp://fmsserver/live".

      - **Username** *(string) --* Documentation update needed

    - **NetworkEndBlackout** *(string) --* Setting to enabled causes the encoder to blackout the
    video, audio, and captions, and raise the "Network Blackout Image" slate when an SCTE104/35
    Network End Segmentation Descriptor is encountered. The blackout will be lifted when the Network
    Start Segmentation Descriptor is encountered. The Network End and Network Start descriptors must
    contain a network ID that matches the value entered in "Network ID".

    - **NetworkEndBlackoutImage** *(dict) --* Path to local file to use as Network End Blackout
    image. Image will be scaled to fill the entire output raster.

      - **PasswordParam** *(string) --* key used to extract the password from EC2 Parameter store

      - **Uri** *(string) --* Uniform Resource Identifier - This should be a path to a file
      accessible to the Live system (eg. a http:// URI) depending on the output type. For example, a
      RTMP destination should have a uri simliar to: "rtmp://fmsserver/live".

      - **Username** *(string) --* Documentation update needed

    - **NetworkId** *(string) --* Provides Network ID that matches EIDR ID format (e.g.,
    "10.XXXX/XXXX-XXXX-XXXX-XXXX-XXXX-C").

    - **State** *(string) --* When set to enabled, causes video, audio and captions to be blanked
    when indicated by program metadata.
    """


_ClientDescribeChannelResponseEncoderSettingsCaptionDescriptionsDestinationSettingsBurnInDestinationSettingsFontTypeDef = TypedDict(
    "_ClientDescribeChannelResponseEncoderSettingsCaptionDescriptionsDestinationSettingsBurnInDestinationSettingsFontTypeDef",
    {"PasswordParam": str, "Uri": str, "Username": str},
    total=False,
)


class ClientDescribeChannelResponseEncoderSettingsCaptionDescriptionsDestinationSettingsBurnInDestinationSettingsFontTypeDef(
    _ClientDescribeChannelResponseEncoderSettingsCaptionDescriptionsDestinationSettingsBurnInDestinationSettingsFontTypeDef
):
    """
    Type definition for
    `ClientDescribeChannelResponseEncoderSettingsCaptionDescriptionsDestinationSettingsBurnInDestinationSettings`
    `Font`

    - **PasswordParam** *(string) --* key used to extract the password from EC2 Parameter store

    - **Uri** *(string) --* Uniform Resource Identifier - This should be a path to a file accessible
    to the Live system (eg. a http:// URI) depending on the output type. For example, a RTMP
    destination should have a uri simliar to: "rtmp://fmsserver/live".

    - **Username** *(string) --* Documentation update needed
    """


_ClientDescribeChannelResponseEncoderSettingsCaptionDescriptionsDestinationSettingsBurnInDestinationSettingsTypeDef = TypedDict(
    "_ClientDescribeChannelResponseEncoderSettingsCaptionDescriptionsDestinationSettingsBurnInDestinationSettingsTypeDef",
    {
        "Alignment": str,
        "BackgroundColor": str,
        "BackgroundOpacity": int,
        "Font": ClientDescribeChannelResponseEncoderSettingsCaptionDescriptionsDestinationSettingsBurnInDestinationSettingsFontTypeDef,
        "FontColor": str,
        "FontOpacity": int,
        "FontResolution": int,
        "FontSize": str,
        "OutlineColor": str,
        "OutlineSize": int,
        "ShadowColor": str,
        "ShadowOpacity": int,
        "ShadowXOffset": int,
        "ShadowYOffset": int,
        "TeletextGridControl": str,
        "XPosition": int,
        "YPosition": int,
    },
    total=False,
)


class ClientDescribeChannelResponseEncoderSettingsCaptionDescriptionsDestinationSettingsBurnInDestinationSettingsTypeDef(
    _ClientDescribeChannelResponseEncoderSettingsCaptionDescriptionsDestinationSettingsBurnInDestinationSettingsTypeDef
):
    """
    Type definition for
    `ClientDescribeChannelResponseEncoderSettingsCaptionDescriptionsDestinationSettings`
    `BurnInDestinationSettings`

    - **Alignment** *(string) --* If no explicit xPosition or yPosition is provided, setting
    alignment to centered will place the captions at the bottom center of the output. Similarly,
    setting a left alignment will align captions to the bottom left of the output. If x and y
    positions are given in conjunction with the alignment parameter, the font will be justified
    (either left or centered) relative to those coordinates. Selecting "smart" justification will
    left-justify live subtitles and center-justify pre-recorded subtitles. All burn-in and DVB-Sub
    font settings must match.

    - **BackgroundColor** *(string) --* Specifies the color of the rectangle behind the captions.
    All burn-in and DVB-Sub font settings must match.

    - **BackgroundOpacity** *(integer) --* Specifies the opacity of the background rectangle. 255 is
    opaque; 0 is transparent. Leaving this parameter out is equivalent to setting it to 0
    (transparent). All burn-in and DVB-Sub font settings must match.

    - **Font** *(dict) --* External font file used for caption burn-in. File extension must be 'ttf'
    or 'tte'. Although the user can select output fonts for many different types of input captions,
    embedded, STL and teletext sources use a strict grid system. Using external fonts with these
    caption sources could cause unexpected display of proportional fonts. All burn-in and DVB-Sub
    font settings must match.

      - **PasswordParam** *(string) --* key used to extract the password from EC2 Parameter store

      - **Uri** *(string) --* Uniform Resource Identifier - This should be a path to a file
      accessible to the Live system (eg. a http:// URI) depending on the output type. For example, a
      RTMP destination should have a uri simliar to: "rtmp://fmsserver/live".

      - **Username** *(string) --* Documentation update needed

    - **FontColor** *(string) --* Specifies the color of the burned-in captions. This option is not
    valid for source captions that are STL, 608/embedded or teletext. These source settings are
    already pre-defined by the caption stream. All burn-in and DVB-Sub font settings must match.

    - **FontOpacity** *(integer) --* Specifies the opacity of the burned-in captions. 255 is opaque;
    0 is transparent. All burn-in and DVB-Sub font settings must match.

    - **FontResolution** *(integer) --* Font resolution in DPI (dots per inch); default is 96 dpi.
    All burn-in and DVB-Sub font settings must match.

    - **FontSize** *(string) --* When set to 'auto' fontSize will scale depending on the size of the
    output. Giving a positive integer will specify the exact font size in points. All burn-in and
    DVB-Sub font settings must match.

    - **OutlineColor** *(string) --* Specifies font outline color. This option is not valid for
    source captions that are either 608/embedded or teletext. These source settings are already
    pre-defined by the caption stream. All burn-in and DVB-Sub font settings must match.

    - **OutlineSize** *(integer) --* Specifies font outline size in pixels. This option is not valid
    for source captions that are either 608/embedded or teletext. These source settings are already
    pre-defined by the caption stream. All burn-in and DVB-Sub font settings must match.

    - **ShadowColor** *(string) --* Specifies the color of the shadow cast by the captions. All
    burn-in and DVB-Sub font settings must match.

    - **ShadowOpacity** *(integer) --* Specifies the opacity of the shadow. 255 is opaque; 0 is
    transparent. Leaving this parameter out is equivalent to setting it to 0 (transparent). All
    burn-in and DVB-Sub font settings must match.

    - **ShadowXOffset** *(integer) --* Specifies the horizontal offset of the shadow relative to the
    captions in pixels. A value of -2 would result in a shadow offset 2 pixels to the left. All
    burn-in and DVB-Sub font settings must match.

    - **ShadowYOffset** *(integer) --* Specifies the vertical offset of the shadow relative to the
    captions in pixels. A value of -2 would result in a shadow offset 2 pixels above the text. All
    burn-in and DVB-Sub font settings must match.

    - **TeletextGridControl** *(string) --* Controls whether a fixed grid size will be used to
    generate the output subtitles bitmap. Only applicable for Teletext inputs and DVB-Sub/Burn-in
    outputs.

    - **XPosition** *(integer) --* Specifies the horizontal position of the caption relative to the
    left side of the output in pixels. A value of 10 would result in the captions starting 10 pixels
    from the left of the output. If no explicit xPosition is provided, the horizontal caption
    position will be determined by the alignment parameter. All burn-in and DVB-Sub font settings
    must match.

    - **YPosition** *(integer) --* Specifies the vertical position of the caption relative to the
    top of the output in pixels. A value of 10 would result in the captions starting 10 pixels from
    the top of the output. If no explicit yPosition is provided, the caption will be positioned
    towards the bottom of the output. All burn-in and DVB-Sub font settings must match.
    """


_ClientDescribeChannelResponseEncoderSettingsCaptionDescriptionsDestinationSettingsDvbSubDestinationSettingsFontTypeDef = TypedDict(
    "_ClientDescribeChannelResponseEncoderSettingsCaptionDescriptionsDestinationSettingsDvbSubDestinationSettingsFontTypeDef",
    {"PasswordParam": str, "Uri": str, "Username": str},
    total=False,
)


class ClientDescribeChannelResponseEncoderSettingsCaptionDescriptionsDestinationSettingsDvbSubDestinationSettingsFontTypeDef(
    _ClientDescribeChannelResponseEncoderSettingsCaptionDescriptionsDestinationSettingsDvbSubDestinationSettingsFontTypeDef
):
    """
    Type definition for
    `ClientDescribeChannelResponseEncoderSettingsCaptionDescriptionsDestinationSettingsDvbSubDestinationSettings`
    `Font`

    - **PasswordParam** *(string) --* key used to extract the password from EC2 Parameter store

    - **Uri** *(string) --* Uniform Resource Identifier - This should be a path to a file accessible
    to the Live system (eg. a http:// URI) depending on the output type. For example, a RTMP
    destination should have a uri simliar to: "rtmp://fmsserver/live".

    - **Username** *(string) --* Documentation update needed
    """


_ClientDescribeChannelResponseEncoderSettingsCaptionDescriptionsDestinationSettingsDvbSubDestinationSettingsTypeDef = TypedDict(
    "_ClientDescribeChannelResponseEncoderSettingsCaptionDescriptionsDestinationSettingsDvbSubDestinationSettingsTypeDef",
    {
        "Alignment": str,
        "BackgroundColor": str,
        "BackgroundOpacity": int,
        "Font": ClientDescribeChannelResponseEncoderSettingsCaptionDescriptionsDestinationSettingsDvbSubDestinationSettingsFontTypeDef,
        "FontColor": str,
        "FontOpacity": int,
        "FontResolution": int,
        "FontSize": str,
        "OutlineColor": str,
        "OutlineSize": int,
        "ShadowColor": str,
        "ShadowOpacity": int,
        "ShadowXOffset": int,
        "ShadowYOffset": int,
        "TeletextGridControl": str,
        "XPosition": int,
        "YPosition": int,
    },
    total=False,
)


class ClientDescribeChannelResponseEncoderSettingsCaptionDescriptionsDestinationSettingsDvbSubDestinationSettingsTypeDef(
    _ClientDescribeChannelResponseEncoderSettingsCaptionDescriptionsDestinationSettingsDvbSubDestinationSettingsTypeDef
):
    """
    Type definition for
    `ClientDescribeChannelResponseEncoderSettingsCaptionDescriptionsDestinationSettings`
    `DvbSubDestinationSettings`

    - **Alignment** *(string) --* If no explicit xPosition or yPosition is provided, setting
    alignment to centered will place the captions at the bottom center of the output. Similarly,
    setting a left alignment will align captions to the bottom left of the output. If x and y
    positions are given in conjunction with the alignment parameter, the font will be justified
    (either left or centered) relative to those coordinates. Selecting "smart" justification will
    left-justify live subtitles and center-justify pre-recorded subtitles. This option is not valid
    for source captions that are STL or 608/embedded. These source settings are already pre-defined
    by the caption stream. All burn-in and DVB-Sub font settings must match.

    - **BackgroundColor** *(string) --* Specifies the color of the rectangle behind the captions.
    All burn-in and DVB-Sub font settings must match.

    - **BackgroundOpacity** *(integer) --* Specifies the opacity of the background rectangle. 255 is
    opaque; 0 is transparent. Leaving this parameter blank is equivalent to setting it to 0
    (transparent). All burn-in and DVB-Sub font settings must match.

    - **Font** *(dict) --* External font file used for caption burn-in. File extension must be 'ttf'
    or 'tte'. Although the user can select output fonts for many different types of input captions,
    embedded, STL and teletext sources use a strict grid system. Using external fonts with these
    caption sources could cause unexpected display of proportional fonts. All burn-in and DVB-Sub
    font settings must match.

      - **PasswordParam** *(string) --* key used to extract the password from EC2 Parameter store

      - **Uri** *(string) --* Uniform Resource Identifier - This should be a path to a file
      accessible to the Live system (eg. a http:// URI) depending on the output type. For example, a
      RTMP destination should have a uri simliar to: "rtmp://fmsserver/live".

      - **Username** *(string) --* Documentation update needed

    - **FontColor** *(string) --* Specifies the color of the burned-in captions. This option is not
    valid for source captions that are STL, 608/embedded or teletext. These source settings are
    already pre-defined by the caption stream. All burn-in and DVB-Sub font settings must match.

    - **FontOpacity** *(integer) --* Specifies the opacity of the burned-in captions. 255 is opaque;
    0 is transparent. All burn-in and DVB-Sub font settings must match.

    - **FontResolution** *(integer) --* Font resolution in DPI (dots per inch); default is 96 dpi.
    All burn-in and DVB-Sub font settings must match.

    - **FontSize** *(string) --* When set to auto fontSize will scale depending on the size of the
    output. Giving a positive integer will specify the exact font size in points. All burn-in and
    DVB-Sub font settings must match.

    - **OutlineColor** *(string) --* Specifies font outline color. This option is not valid for
    source captions that are either 608/embedded or teletext. These source settings are already
    pre-defined by the caption stream. All burn-in and DVB-Sub font settings must match.

    - **OutlineSize** *(integer) --* Specifies font outline size in pixels. This option is not valid
    for source captions that are either 608/embedded or teletext. These source settings are already
    pre-defined by the caption stream. All burn-in and DVB-Sub font settings must match.

    - **ShadowColor** *(string) --* Specifies the color of the shadow cast by the captions. All
    burn-in and DVB-Sub font settings must match.

    - **ShadowOpacity** *(integer) --* Specifies the opacity of the shadow. 255 is opaque; 0 is
    transparent. Leaving this parameter blank is equivalent to setting it to 0 (transparent). All
    burn-in and DVB-Sub font settings must match.

    - **ShadowXOffset** *(integer) --* Specifies the horizontal offset of the shadow relative to the
    captions in pixels. A value of -2 would result in a shadow offset 2 pixels to the left. All
    burn-in and DVB-Sub font settings must match.

    - **ShadowYOffset** *(integer) --* Specifies the vertical offset of the shadow relative to the
    captions in pixels. A value of -2 would result in a shadow offset 2 pixels above the text. All
    burn-in and DVB-Sub font settings must match.

    - **TeletextGridControl** *(string) --* Controls whether a fixed grid size will be used to
    generate the output subtitles bitmap. Only applicable for Teletext inputs and DVB-Sub/Burn-in
    outputs.

    - **XPosition** *(integer) --* Specifies the horizontal position of the caption relative to the
    left side of the output in pixels. A value of 10 would result in the captions starting 10 pixels
    from the left of the output. If no explicit xPosition is provided, the horizontal caption
    position will be determined by the alignment parameter. This option is not valid for source
    captions that are STL, 608/embedded or teletext. These source settings are already pre-defined
    by the caption stream. All burn-in and DVB-Sub font settings must match.

    - **YPosition** *(integer) --* Specifies the vertical position of the caption relative to the
    top of the output in pixels. A value of 10 would result in the captions starting 10 pixels from
    the top of the output. If no explicit yPosition is provided, the caption will be positioned
    towards the bottom of the output. This option is not valid for source captions that are STL,
    608/embedded or teletext. These source settings are already pre-defined by the caption stream.
    All burn-in and DVB-Sub font settings must match.
    """


_ClientDescribeChannelResponseEncoderSettingsCaptionDescriptionsDestinationSettingsTtmlDestinationSettingsTypeDef = TypedDict(
    "_ClientDescribeChannelResponseEncoderSettingsCaptionDescriptionsDestinationSettingsTtmlDestinationSettingsTypeDef",
    {"StyleControl": str},
    total=False,
)


class ClientDescribeChannelResponseEncoderSettingsCaptionDescriptionsDestinationSettingsTtmlDestinationSettingsTypeDef(
    _ClientDescribeChannelResponseEncoderSettingsCaptionDescriptionsDestinationSettingsTtmlDestinationSettingsTypeDef
):
    """
    Type definition for
    `ClientDescribeChannelResponseEncoderSettingsCaptionDescriptionsDestinationSettings`
    `TtmlDestinationSettings`

    - **StyleControl** *(string) --* When set to passthrough, passes through style and position
    information from a TTML-like input source (TTML, SMPTE-TT, CFF-TT) to the CFF-TT output or TTML
    output.
    """


_ClientDescribeChannelResponseEncoderSettingsCaptionDescriptionsDestinationSettingsTypeDef = TypedDict(
    "_ClientDescribeChannelResponseEncoderSettingsCaptionDescriptionsDestinationSettingsTypeDef",
    {
        "AribDestinationSettings": Dict,
        "BurnInDestinationSettings": ClientDescribeChannelResponseEncoderSettingsCaptionDescriptionsDestinationSettingsBurnInDestinationSettingsTypeDef,
        "DvbSubDestinationSettings": ClientDescribeChannelResponseEncoderSettingsCaptionDescriptionsDestinationSettingsDvbSubDestinationSettingsTypeDef,
        "EmbeddedDestinationSettings": Dict,
        "EmbeddedPlusScte20DestinationSettings": Dict,
        "RtmpCaptionInfoDestinationSettings": Dict,
        "Scte20PlusEmbeddedDestinationSettings": Dict,
        "Scte27DestinationSettings": Dict,
        "SmpteTtDestinationSettings": Dict,
        "TeletextDestinationSettings": Dict,
        "TtmlDestinationSettings": ClientDescribeChannelResponseEncoderSettingsCaptionDescriptionsDestinationSettingsTtmlDestinationSettingsTypeDef,
        "WebvttDestinationSettings": Dict[str, Any],
    },
    total=False,
)


class ClientDescribeChannelResponseEncoderSettingsCaptionDescriptionsDestinationSettingsTypeDef(
    _ClientDescribeChannelResponseEncoderSettingsCaptionDescriptionsDestinationSettingsTypeDef
):
    """
    Type definition for `ClientDescribeChannelResponseEncoderSettingsCaptionDescriptions`
    `DestinationSettings`

    - **AribDestinationSettings** *(dict) --* Arib Destination Settings

    - **BurnInDestinationSettings** *(dict) --* Burn In Destination Settings

      - **Alignment** *(string) --* If no explicit xPosition or yPosition is provided, setting
      alignment to centered will place the captions at the bottom center of the output. Similarly,
      setting a left alignment will align captions to the bottom left of the output. If x and y
      positions are given in conjunction with the alignment parameter, the font will be justified
      (either left or centered) relative to those coordinates. Selecting "smart" justification will
      left-justify live subtitles and center-justify pre-recorded subtitles. All burn-in and DVB-Sub
      font settings must match.

      - **BackgroundColor** *(string) --* Specifies the color of the rectangle behind the captions.
      All burn-in and DVB-Sub font settings must match.

      - **BackgroundOpacity** *(integer) --* Specifies the opacity of the background rectangle. 255
      is opaque; 0 is transparent. Leaving this parameter out is equivalent to setting it to 0
      (transparent). All burn-in and DVB-Sub font settings must match.

      - **Font** *(dict) --* External font file used for caption burn-in. File extension must be
      'ttf' or 'tte'. Although the user can select output fonts for many different types of input
      captions, embedded, STL and teletext sources use a strict grid system. Using external fonts
      with these caption sources could cause unexpected display of proportional fonts. All burn-in
      and DVB-Sub font settings must match.

        - **PasswordParam** *(string) --* key used to extract the password from EC2 Parameter store

        - **Uri** *(string) --* Uniform Resource Identifier - This should be a path to a file
        accessible to the Live system (eg. a http:// URI) depending on the output type. For example,
        a RTMP destination should have a uri simliar to: "rtmp://fmsserver/live".

        - **Username** *(string) --* Documentation update needed

      - **FontColor** *(string) --* Specifies the color of the burned-in captions. This option is
      not valid for source captions that are STL, 608/embedded or teletext. These source settings
      are already pre-defined by the caption stream. All burn-in and DVB-Sub font settings must
      match.

      - **FontOpacity** *(integer) --* Specifies the opacity of the burned-in captions. 255 is
      opaque; 0 is transparent. All burn-in and DVB-Sub font settings must match.

      - **FontResolution** *(integer) --* Font resolution in DPI (dots per inch); default is 96 dpi.
      All burn-in and DVB-Sub font settings must match.

      - **FontSize** *(string) --* When set to 'auto' fontSize will scale depending on the size of
      the output. Giving a positive integer will specify the exact font size in points. All burn-in
      and DVB-Sub font settings must match.

      - **OutlineColor** *(string) --* Specifies font outline color. This option is not valid for
      source captions that are either 608/embedded or teletext. These source settings are already
      pre-defined by the caption stream. All burn-in and DVB-Sub font settings must match.

      - **OutlineSize** *(integer) --* Specifies font outline size in pixels. This option is not
      valid for source captions that are either 608/embedded or teletext. These source settings are
      already pre-defined by the caption stream. All burn-in and DVB-Sub font settings must match.

      - **ShadowColor** *(string) --* Specifies the color of the shadow cast by the captions. All
      burn-in and DVB-Sub font settings must match.

      - **ShadowOpacity** *(integer) --* Specifies the opacity of the shadow. 255 is opaque; 0 is
      transparent. Leaving this parameter out is equivalent to setting it to 0 (transparent). All
      burn-in and DVB-Sub font settings must match.

      - **ShadowXOffset** *(integer) --* Specifies the horizontal offset of the shadow relative to
      the captions in pixels. A value of -2 would result in a shadow offset 2 pixels to the left.
      All burn-in and DVB-Sub font settings must match.

      - **ShadowYOffset** *(integer) --* Specifies the vertical offset of the shadow relative to the
      captions in pixels. A value of -2 would result in a shadow offset 2 pixels above the text. All
      burn-in and DVB-Sub font settings must match.

      - **TeletextGridControl** *(string) --* Controls whether a fixed grid size will be used to
      generate the output subtitles bitmap. Only applicable for Teletext inputs and DVB-Sub/Burn-in
      outputs.

      - **XPosition** *(integer) --* Specifies the horizontal position of the caption relative to
      the left side of the output in pixels. A value of 10 would result in the captions starting 10
      pixels from the left of the output. If no explicit xPosition is provided, the horizontal
      caption position will be determined by the alignment parameter. All burn-in and DVB-Sub font
      settings must match.

      - **YPosition** *(integer) --* Specifies the vertical position of the caption relative to the
      top of the output in pixels. A value of 10 would result in the captions starting 10 pixels
      from the top of the output. If no explicit yPosition is provided, the caption will be
      positioned towards the bottom of the output. All burn-in and DVB-Sub font settings must match.

    - **DvbSubDestinationSettings** *(dict) --* Dvb Sub Destination Settings

      - **Alignment** *(string) --* If no explicit xPosition or yPosition is provided, setting
      alignment to centered will place the captions at the bottom center of the output. Similarly,
      setting a left alignment will align captions to the bottom left of the output. If x and y
      positions are given in conjunction with the alignment parameter, the font will be justified
      (either left or centered) relative to those coordinates. Selecting "smart" justification will
      left-justify live subtitles and center-justify pre-recorded subtitles. This option is not
      valid for source captions that are STL or 608/embedded. These source settings are already
      pre-defined by the caption stream. All burn-in and DVB-Sub font settings must match.

      - **BackgroundColor** *(string) --* Specifies the color of the rectangle behind the captions.
      All burn-in and DVB-Sub font settings must match.

      - **BackgroundOpacity** *(integer) --* Specifies the opacity of the background rectangle. 255
      is opaque; 0 is transparent. Leaving this parameter blank is equivalent to setting it to 0
      (transparent). All burn-in and DVB-Sub font settings must match.

      - **Font** *(dict) --* External font file used for caption burn-in. File extension must be
      'ttf' or 'tte'. Although the user can select output fonts for many different types of input
      captions, embedded, STL and teletext sources use a strict grid system. Using external fonts
      with these caption sources could cause unexpected display of proportional fonts. All burn-in
      and DVB-Sub font settings must match.

        - **PasswordParam** *(string) --* key used to extract the password from EC2 Parameter store

        - **Uri** *(string) --* Uniform Resource Identifier - This should be a path to a file
        accessible to the Live system (eg. a http:// URI) depending on the output type. For example,
        a RTMP destination should have a uri simliar to: "rtmp://fmsserver/live".

        - **Username** *(string) --* Documentation update needed

      - **FontColor** *(string) --* Specifies the color of the burned-in captions. This option is
      not valid for source captions that are STL, 608/embedded or teletext. These source settings
      are already pre-defined by the caption stream. All burn-in and DVB-Sub font settings must
      match.

      - **FontOpacity** *(integer) --* Specifies the opacity of the burned-in captions. 255 is
      opaque; 0 is transparent. All burn-in and DVB-Sub font settings must match.

      - **FontResolution** *(integer) --* Font resolution in DPI (dots per inch); default is 96 dpi.
      All burn-in and DVB-Sub font settings must match.

      - **FontSize** *(string) --* When set to auto fontSize will scale depending on the size of the
      output. Giving a positive integer will specify the exact font size in points. All burn-in and
      DVB-Sub font settings must match.

      - **OutlineColor** *(string) --* Specifies font outline color. This option is not valid for
      source captions that are either 608/embedded or teletext. These source settings are already
      pre-defined by the caption stream. All burn-in and DVB-Sub font settings must match.

      - **OutlineSize** *(integer) --* Specifies font outline size in pixels. This option is not
      valid for source captions that are either 608/embedded or teletext. These source settings are
      already pre-defined by the caption stream. All burn-in and DVB-Sub font settings must match.

      - **ShadowColor** *(string) --* Specifies the color of the shadow cast by the captions. All
      burn-in and DVB-Sub font settings must match.

      - **ShadowOpacity** *(integer) --* Specifies the opacity of the shadow. 255 is opaque; 0 is
      transparent. Leaving this parameter blank is equivalent to setting it to 0 (transparent). All
      burn-in and DVB-Sub font settings must match.

      - **ShadowXOffset** *(integer) --* Specifies the horizontal offset of the shadow relative to
      the captions in pixels. A value of -2 would result in a shadow offset 2 pixels to the left.
      All burn-in and DVB-Sub font settings must match.

      - **ShadowYOffset** *(integer) --* Specifies the vertical offset of the shadow relative to the
      captions in pixels. A value of -2 would result in a shadow offset 2 pixels above the text. All
      burn-in and DVB-Sub font settings must match.

      - **TeletextGridControl** *(string) --* Controls whether a fixed grid size will be used to
      generate the output subtitles bitmap. Only applicable for Teletext inputs and DVB-Sub/Burn-in
      outputs.

      - **XPosition** *(integer) --* Specifies the horizontal position of the caption relative to
      the left side of the output in pixels. A value of 10 would result in the captions starting 10
      pixels from the left of the output. If no explicit xPosition is provided, the horizontal
      caption position will be determined by the alignment parameter. This option is not valid for
      source captions that are STL, 608/embedded or teletext. These source settings are already
      pre-defined by the caption stream. All burn-in and DVB-Sub font settings must match.

      - **YPosition** *(integer) --* Specifies the vertical position of the caption relative to the
      top of the output in pixels. A value of 10 would result in the captions starting 10 pixels
      from the top of the output. If no explicit yPosition is provided, the caption will be
      positioned towards the bottom of the output. This option is not valid for source captions that
      are STL, 608/embedded or teletext. These source settings are already pre-defined by the
      caption stream. All burn-in and DVB-Sub font settings must match.

    - **EmbeddedDestinationSettings** *(dict) --* Embedded Destination Settings

    - **EmbeddedPlusScte20DestinationSettings** *(dict) --* Embedded Plus Scte20 Destination
    Settings

    - **RtmpCaptionInfoDestinationSettings** *(dict) --* Rtmp Caption Info Destination Settings

    - **Scte20PlusEmbeddedDestinationSettings** *(dict) --* Scte20 Plus Embedded Destination
    Settings

    - **Scte27DestinationSettings** *(dict) --* Scte27 Destination Settings

    - **SmpteTtDestinationSettings** *(dict) --* Smpte Tt Destination Settings

    - **TeletextDestinationSettings** *(dict) --* Teletext Destination Settings

    - **TtmlDestinationSettings** *(dict) --* Ttml Destination Settings

      - **StyleControl** *(string) --* When set to passthrough, passes through style and position
      information from a TTML-like input source (TTML, SMPTE-TT, CFF-TT) to the CFF-TT output or
      TTML output.

    - **WebvttDestinationSettings** *(dict) --* Webvtt Destination Settings
    """


_ClientDescribeChannelResponseEncoderSettingsCaptionDescriptionsTypeDef = TypedDict(
    "_ClientDescribeChannelResponseEncoderSettingsCaptionDescriptionsTypeDef",
    {
        "CaptionSelectorName": str,
        "DestinationSettings": ClientDescribeChannelResponseEncoderSettingsCaptionDescriptionsDestinationSettingsTypeDef,
        "LanguageCode": str,
        "LanguageDescription": str,
        "Name": str,
    },
    total=False,
)


class ClientDescribeChannelResponseEncoderSettingsCaptionDescriptionsTypeDef(
    _ClientDescribeChannelResponseEncoderSettingsCaptionDescriptionsTypeDef
):
    """
    Type definition for `ClientDescribeChannelResponseEncoderSettings` `CaptionDescriptions`

    - **CaptionSelectorName** *(string) --* Specifies which input caption selector to use as a
    caption source when generating output captions. This field should match a captionSelector name.

    - **DestinationSettings** *(dict) --* Additional settings for captions destination that depend
    on the destination type.

      - **AribDestinationSettings** *(dict) --* Arib Destination Settings

      - **BurnInDestinationSettings** *(dict) --* Burn In Destination Settings

        - **Alignment** *(string) --* If no explicit xPosition or yPosition is provided, setting
        alignment to centered will place the captions at the bottom center of the output. Similarly,
        setting a left alignment will align captions to the bottom left of the output. If x and y
        positions are given in conjunction with the alignment parameter, the font will be justified
        (either left or centered) relative to those coordinates. Selecting "smart" justification
        will left-justify live subtitles and center-justify pre-recorded subtitles. All burn-in and
        DVB-Sub font settings must match.

        - **BackgroundColor** *(string) --* Specifies the color of the rectangle behind the
        captions. All burn-in and DVB-Sub font settings must match.

        - **BackgroundOpacity** *(integer) --* Specifies the opacity of the background rectangle.
        255 is opaque; 0 is transparent. Leaving this parameter out is equivalent to setting it to 0
        (transparent). All burn-in and DVB-Sub font settings must match.

        - **Font** *(dict) --* External font file used for caption burn-in. File extension must be
        'ttf' or 'tte'. Although the user can select output fonts for many different types of input
        captions, embedded, STL and teletext sources use a strict grid system. Using external fonts
        with these caption sources could cause unexpected display of proportional fonts. All burn-in
        and DVB-Sub font settings must match.

          - **PasswordParam** *(string) --* key used to extract the password from EC2 Parameter
          store

          - **Uri** *(string) --* Uniform Resource Identifier - This should be a path to a file
          accessible to the Live system (eg. a http:// URI) depending on the output type. For
          example, a RTMP destination should have a uri simliar to: "rtmp://fmsserver/live".

          - **Username** *(string) --* Documentation update needed

        - **FontColor** *(string) --* Specifies the color of the burned-in captions. This option is
        not valid for source captions that are STL, 608/embedded or teletext. These source settings
        are already pre-defined by the caption stream. All burn-in and DVB-Sub font settings must
        match.

        - **FontOpacity** *(integer) --* Specifies the opacity of the burned-in captions. 255 is
        opaque; 0 is transparent. All burn-in and DVB-Sub font settings must match.

        - **FontResolution** *(integer) --* Font resolution in DPI (dots per inch); default is 96
        dpi. All burn-in and DVB-Sub font settings must match.

        - **FontSize** *(string) --* When set to 'auto' fontSize will scale depending on the size of
        the output. Giving a positive integer will specify the exact font size in points. All
        burn-in and DVB-Sub font settings must match.

        - **OutlineColor** *(string) --* Specifies font outline color. This option is not valid for
        source captions that are either 608/embedded or teletext. These source settings are already
        pre-defined by the caption stream. All burn-in and DVB-Sub font settings must match.

        - **OutlineSize** *(integer) --* Specifies font outline size in pixels. This option is not
        valid for source captions that are either 608/embedded or teletext. These source settings
        are already pre-defined by the caption stream. All burn-in and DVB-Sub font settings must
        match.

        - **ShadowColor** *(string) --* Specifies the color of the shadow cast by the captions. All
        burn-in and DVB-Sub font settings must match.

        - **ShadowOpacity** *(integer) --* Specifies the opacity of the shadow. 255 is opaque; 0 is
        transparent. Leaving this parameter out is equivalent to setting it to 0 (transparent). All
        burn-in and DVB-Sub font settings must match.

        - **ShadowXOffset** *(integer) --* Specifies the horizontal offset of the shadow relative to
        the captions in pixels. A value of -2 would result in a shadow offset 2 pixels to the left.
        All burn-in and DVB-Sub font settings must match.

        - **ShadowYOffset** *(integer) --* Specifies the vertical offset of the shadow relative to
        the captions in pixels. A value of -2 would result in a shadow offset 2 pixels above the
        text. All burn-in and DVB-Sub font settings must match.

        - **TeletextGridControl** *(string) --* Controls whether a fixed grid size will be used to
        generate the output subtitles bitmap. Only applicable for Teletext inputs and
        DVB-Sub/Burn-in outputs.

        - **XPosition** *(integer) --* Specifies the horizontal position of the caption relative to
        the left side of the output in pixels. A value of 10 would result in the captions starting
        10 pixels from the left of the output. If no explicit xPosition is provided, the horizontal
        caption position will be determined by the alignment parameter. All burn-in and DVB-Sub font
        settings must match.

        - **YPosition** *(integer) --* Specifies the vertical position of the caption relative to
        the top of the output in pixels. A value of 10 would result in the captions starting 10
        pixels from the top of the output. If no explicit yPosition is provided, the caption will be
        positioned towards the bottom of the output. All burn-in and DVB-Sub font settings must
        match.

      - **DvbSubDestinationSettings** *(dict) --* Dvb Sub Destination Settings

        - **Alignment** *(string) --* If no explicit xPosition or yPosition is provided, setting
        alignment to centered will place the captions at the bottom center of the output. Similarly,
        setting a left alignment will align captions to the bottom left of the output. If x and y
        positions are given in conjunction with the alignment parameter, the font will be justified
        (either left or centered) relative to those coordinates. Selecting "smart" justification
        will left-justify live subtitles and center-justify pre-recorded subtitles. This option is
        not valid for source captions that are STL or 608/embedded. These source settings are
        already pre-defined by the caption stream. All burn-in and DVB-Sub font settings must match.

        - **BackgroundColor** *(string) --* Specifies the color of the rectangle behind the
        captions. All burn-in and DVB-Sub font settings must match.

        - **BackgroundOpacity** *(integer) --* Specifies the opacity of the background rectangle.
        255 is opaque; 0 is transparent. Leaving this parameter blank is equivalent to setting it to
        0 (transparent). All burn-in and DVB-Sub font settings must match.

        - **Font** *(dict) --* External font file used for caption burn-in. File extension must be
        'ttf' or 'tte'. Although the user can select output fonts for many different types of input
        captions, embedded, STL and teletext sources use a strict grid system. Using external fonts
        with these caption sources could cause unexpected display of proportional fonts. All burn-in
        and DVB-Sub font settings must match.

          - **PasswordParam** *(string) --* key used to extract the password from EC2 Parameter
          store

          - **Uri** *(string) --* Uniform Resource Identifier - This should be a path to a file
          accessible to the Live system (eg. a http:// URI) depending on the output type. For
          example, a RTMP destination should have a uri simliar to: "rtmp://fmsserver/live".

          - **Username** *(string) --* Documentation update needed

        - **FontColor** *(string) --* Specifies the color of the burned-in captions. This option is
        not valid for source captions that are STL, 608/embedded or teletext. These source settings
        are already pre-defined by the caption stream. All burn-in and DVB-Sub font settings must
        match.

        - **FontOpacity** *(integer) --* Specifies the opacity of the burned-in captions. 255 is
        opaque; 0 is transparent. All burn-in and DVB-Sub font settings must match.

        - **FontResolution** *(integer) --* Font resolution in DPI (dots per inch); default is 96
        dpi. All burn-in and DVB-Sub font settings must match.

        - **FontSize** *(string) --* When set to auto fontSize will scale depending on the size of
        the output. Giving a positive integer will specify the exact font size in points. All
        burn-in and DVB-Sub font settings must match.

        - **OutlineColor** *(string) --* Specifies font outline color. This option is not valid for
        source captions that are either 608/embedded or teletext. These source settings are already
        pre-defined by the caption stream. All burn-in and DVB-Sub font settings must match.

        - **OutlineSize** *(integer) --* Specifies font outline size in pixels. This option is not
        valid for source captions that are either 608/embedded or teletext. These source settings
        are already pre-defined by the caption stream. All burn-in and DVB-Sub font settings must
        match.

        - **ShadowColor** *(string) --* Specifies the color of the shadow cast by the captions. All
        burn-in and DVB-Sub font settings must match.

        - **ShadowOpacity** *(integer) --* Specifies the opacity of the shadow. 255 is opaque; 0 is
        transparent. Leaving this parameter blank is equivalent to setting it to 0 (transparent).
        All burn-in and DVB-Sub font settings must match.

        - **ShadowXOffset** *(integer) --* Specifies the horizontal offset of the shadow relative to
        the captions in pixels. A value of -2 would result in a shadow offset 2 pixels to the left.
        All burn-in and DVB-Sub font settings must match.

        - **ShadowYOffset** *(integer) --* Specifies the vertical offset of the shadow relative to
        the captions in pixels. A value of -2 would result in a shadow offset 2 pixels above the
        text. All burn-in and DVB-Sub font settings must match.

        - **TeletextGridControl** *(string) --* Controls whether a fixed grid size will be used to
        generate the output subtitles bitmap. Only applicable for Teletext inputs and
        DVB-Sub/Burn-in outputs.

        - **XPosition** *(integer) --* Specifies the horizontal position of the caption relative to
        the left side of the output in pixels. A value of 10 would result in the captions starting
        10 pixels from the left of the output. If no explicit xPosition is provided, the horizontal
        caption position will be determined by the alignment parameter. This option is not valid for
        source captions that are STL, 608/embedded or teletext. These source settings are already
        pre-defined by the caption stream. All burn-in and DVB-Sub font settings must match.

        - **YPosition** *(integer) --* Specifies the vertical position of the caption relative to
        the top of the output in pixels. A value of 10 would result in the captions starting 10
        pixels from the top of the output. If no explicit yPosition is provided, the caption will be
        positioned towards the bottom of the output. This option is not valid for source captions
        that are STL, 608/embedded or teletext. These source settings are already pre-defined by the
        caption stream. All burn-in and DVB-Sub font settings must match.

      - **EmbeddedDestinationSettings** *(dict) --* Embedded Destination Settings

      - **EmbeddedPlusScte20DestinationSettings** *(dict) --* Embedded Plus Scte20 Destination
      Settings

      - **RtmpCaptionInfoDestinationSettings** *(dict) --* Rtmp Caption Info Destination Settings

      - **Scte20PlusEmbeddedDestinationSettings** *(dict) --* Scte20 Plus Embedded Destination
      Settings

      - **Scte27DestinationSettings** *(dict) --* Scte27 Destination Settings

      - **SmpteTtDestinationSettings** *(dict) --* Smpte Tt Destination Settings

      - **TeletextDestinationSettings** *(dict) --* Teletext Destination Settings

      - **TtmlDestinationSettings** *(dict) --* Ttml Destination Settings

        - **StyleControl** *(string) --* When set to passthrough, passes through style and position
        information from a TTML-like input source (TTML, SMPTE-TT, CFF-TT) to the CFF-TT output or
        TTML output.

      - **WebvttDestinationSettings** *(dict) --* Webvtt Destination Settings

    - **LanguageCode** *(string) --* ISO 639-2 three-digit code:
    http://www.loc.gov/standards/iso639-2/

    - **LanguageDescription** *(string) --* Human readable information to indicate captions
    available for players (eg. English, or Spanish).

    - **Name** *(string) --* Name of the caption description. Used to associate a caption
    description with an output. Names must be unique within an event.
    """


_ClientDescribeChannelResponseEncoderSettingsGlobalConfigurationInputLossBehaviorInputLossImageSlateTypeDef = TypedDict(
    "_ClientDescribeChannelResponseEncoderSettingsGlobalConfigurationInputLossBehaviorInputLossImageSlateTypeDef",
    {"PasswordParam": str, "Uri": str, "Username": str},
    total=False,
)


class ClientDescribeChannelResponseEncoderSettingsGlobalConfigurationInputLossBehaviorInputLossImageSlateTypeDef(
    _ClientDescribeChannelResponseEncoderSettingsGlobalConfigurationInputLossBehaviorInputLossImageSlateTypeDef
):
    """
    Type definition for
    `ClientDescribeChannelResponseEncoderSettingsGlobalConfigurationInputLossBehavior`
    `InputLossImageSlate`

    - **PasswordParam** *(string) --* key used to extract the password from EC2 Parameter store

    - **Uri** *(string) --* Uniform Resource Identifier - This should be a path to a file accessible
    to the Live system (eg. a http:// URI) depending on the output type. For example, a RTMP
    destination should have a uri simliar to: "rtmp://fmsserver/live".

    - **Username** *(string) --* Documentation update needed
    """


_ClientDescribeChannelResponseEncoderSettingsGlobalConfigurationInputLossBehaviorTypeDef = TypedDict(
    "_ClientDescribeChannelResponseEncoderSettingsGlobalConfigurationInputLossBehaviorTypeDef",
    {
        "BlackFrameMsec": int,
        "InputLossImageColor": str,
        "InputLossImageSlate": ClientDescribeChannelResponseEncoderSettingsGlobalConfigurationInputLossBehaviorInputLossImageSlateTypeDef,
        "InputLossImageType": str,
        "RepeatFrameMsec": int,
    },
    total=False,
)


class ClientDescribeChannelResponseEncoderSettingsGlobalConfigurationInputLossBehaviorTypeDef(
    _ClientDescribeChannelResponseEncoderSettingsGlobalConfigurationInputLossBehaviorTypeDef
):
    """
    Type definition for `ClientDescribeChannelResponseEncoderSettingsGlobalConfiguration`
    `InputLossBehavior`

    - **BlackFrameMsec** *(integer) --* Documentation update needed

    - **InputLossImageColor** *(string) --* When input loss image type is "color" this field
    specifies the color to use. Value: 6 hex characters representing the values of RGB.

    - **InputLossImageSlate** *(dict) --* When input loss image type is "slate" these fields specify
    the parameters for accessing the slate.

      - **PasswordParam** *(string) --* key used to extract the password from EC2 Parameter store

      - **Uri** *(string) --* Uniform Resource Identifier - This should be a path to a file
      accessible to the Live system (eg. a http:// URI) depending on the output type. For example, a
      RTMP destination should have a uri simliar to: "rtmp://fmsserver/live".

      - **Username** *(string) --* Documentation update needed

    - **InputLossImageType** *(string) --* Indicates whether to substitute a solid color or a slate
    into the output after input loss exceeds blackFrameMsec.

    - **RepeatFrameMsec** *(integer) --* Documentation update needed
    """


_ClientDescribeChannelResponseEncoderSettingsGlobalConfigurationTypeDef = TypedDict(
    "_ClientDescribeChannelResponseEncoderSettingsGlobalConfigurationTypeDef",
    {
        "InitialAudioGain": int,
        "InputEndAction": str,
        "InputLossBehavior": ClientDescribeChannelResponseEncoderSettingsGlobalConfigurationInputLossBehaviorTypeDef,
        "OutputLockingMode": str,
        "OutputTimingSource": str,
        "SupportLowFramerateInputs": str,
    },
    total=False,
)


class ClientDescribeChannelResponseEncoderSettingsGlobalConfigurationTypeDef(
    _ClientDescribeChannelResponseEncoderSettingsGlobalConfigurationTypeDef
):
    """
    Type definition for `ClientDescribeChannelResponseEncoderSettings` `GlobalConfiguration`

    - **InitialAudioGain** *(integer) --* Value to set the initial audio gain for the Live Event.

    - **InputEndAction** *(string) --* Indicates the action to take when the current input completes
    (e.g. end-of-file). When switchAndLoopInputs is configured the encoder will restart at the
    beginning of the first input. When "none" is configured the encoder will transcode either black,
    a solid color, or a user specified slate images per the "Input Loss Behavior" configuration
    until the next input switch occurs (which is controlled through the Channel Schedule API).

    - **InputLossBehavior** *(dict) --* Settings for system actions when input is lost.

      - **BlackFrameMsec** *(integer) --* Documentation update needed

      - **InputLossImageColor** *(string) --* When input loss image type is "color" this field
      specifies the color to use. Value: 6 hex characters representing the values of RGB.

      - **InputLossImageSlate** *(dict) --* When input loss image type is "slate" these fields
      specify the parameters for accessing the slate.

        - **PasswordParam** *(string) --* key used to extract the password from EC2 Parameter store

        - **Uri** *(string) --* Uniform Resource Identifier - This should be a path to a file
        accessible to the Live system (eg. a http:// URI) depending on the output type. For example,
        a RTMP destination should have a uri simliar to: "rtmp://fmsserver/live".

        - **Username** *(string) --* Documentation update needed

      - **InputLossImageType** *(string) --* Indicates whether to substitute a solid color or a
      slate into the output after input loss exceeds blackFrameMsec.

      - **RepeatFrameMsec** *(integer) --* Documentation update needed

    - **OutputLockingMode** *(string) --* Indicates how MediaLive pipelines are synchronized.
    PIPELINELOCKING - MediaLive will attempt to synchronize the output of each pipeline to the
    other. EPOCHLOCKING - MediaLive will attempt to synchronize the output of each pipeline to the
    Unix epoch.

    - **OutputTimingSource** *(string) --* Indicates whether the rate of frames emitted by the Live
    encoder should be paced by its system clock (which optionally may be locked to another source
    via NTP) or should be locked to the clock of the source that is providing the input stream.

    - **SupportLowFramerateInputs** *(string) --* Adjusts video input buffer for streams with very
    low video framerates. This is commonly set to enabled for music channels with less than one
    video frame per second.
    """


_ClientDescribeChannelResponseEncoderSettingsNielsenConfigurationTypeDef = TypedDict(
    "_ClientDescribeChannelResponseEncoderSettingsNielsenConfigurationTypeDef",
    {"DistributorId": str, "NielsenPcmToId3Tagging": str},
    total=False,
)


class ClientDescribeChannelResponseEncoderSettingsNielsenConfigurationTypeDef(
    _ClientDescribeChannelResponseEncoderSettingsNielsenConfigurationTypeDef
):
    """
    Type definition for `ClientDescribeChannelResponseEncoderSettings` `NielsenConfiguration`

    - **DistributorId** *(string) --* Enter the Distributor ID assigned to your organization by
    Nielsen.

    - **NielsenPcmToId3Tagging** *(string) --* Enables Nielsen PCM to ID3 tagging
    """


_ClientDescribeChannelResponseEncoderSettingsOutputGroupsOutputGroupSettingsArchiveGroupSettingsDestinationTypeDef = TypedDict(
    "_ClientDescribeChannelResponseEncoderSettingsOutputGroupsOutputGroupSettingsArchiveGroupSettingsDestinationTypeDef",
    {"DestinationRefId": str},
    total=False,
)


class ClientDescribeChannelResponseEncoderSettingsOutputGroupsOutputGroupSettingsArchiveGroupSettingsDestinationTypeDef(
    _ClientDescribeChannelResponseEncoderSettingsOutputGroupsOutputGroupSettingsArchiveGroupSettingsDestinationTypeDef
):
    """
    Type definition for
    `ClientDescribeChannelResponseEncoderSettingsOutputGroupsOutputGroupSettingsArchiveGroupSettings`
    `Destination`

    - **DestinationRefId** *(string) --* Placeholder documentation for __string
    """


_ClientDescribeChannelResponseEncoderSettingsOutputGroupsOutputGroupSettingsArchiveGroupSettingsTypeDef = TypedDict(
    "_ClientDescribeChannelResponseEncoderSettingsOutputGroupsOutputGroupSettingsArchiveGroupSettingsTypeDef",
    {
        "Destination": ClientDescribeChannelResponseEncoderSettingsOutputGroupsOutputGroupSettingsArchiveGroupSettingsDestinationTypeDef,
        "RolloverInterval": int,
    },
    total=False,
)


class ClientDescribeChannelResponseEncoderSettingsOutputGroupsOutputGroupSettingsArchiveGroupSettingsTypeDef(
    _ClientDescribeChannelResponseEncoderSettingsOutputGroupsOutputGroupSettingsArchiveGroupSettingsTypeDef
):
    """
    Type definition for
    `ClientDescribeChannelResponseEncoderSettingsOutputGroupsOutputGroupSettings`
    `ArchiveGroupSettings`

    - **Destination** *(dict) --* A directory and base filename where archive files should be
    written.

      - **DestinationRefId** *(string) --* Placeholder documentation for __string

    - **RolloverInterval** *(integer) --* Number of seconds to write to archive file before closing
    and starting a new one.
    """


_ClientDescribeChannelResponseEncoderSettingsOutputGroupsOutputGroupSettingsFrameCaptureGroupSettingsDestinationTypeDef = TypedDict(
    "_ClientDescribeChannelResponseEncoderSettingsOutputGroupsOutputGroupSettingsFrameCaptureGroupSettingsDestinationTypeDef",
    {"DestinationRefId": str},
    total=False,
)


class ClientDescribeChannelResponseEncoderSettingsOutputGroupsOutputGroupSettingsFrameCaptureGroupSettingsDestinationTypeDef(
    _ClientDescribeChannelResponseEncoderSettingsOutputGroupsOutputGroupSettingsFrameCaptureGroupSettingsDestinationTypeDef
):
    """
    Type definition for
    `ClientDescribeChannelResponseEncoderSettingsOutputGroupsOutputGroupSettingsFrameCaptureGroupSettings`
    `Destination`

    - **DestinationRefId** *(string) --* Placeholder documentation for __string
    """


_ClientDescribeChannelResponseEncoderSettingsOutputGroupsOutputGroupSettingsFrameCaptureGroupSettingsTypeDef = TypedDict(
    "_ClientDescribeChannelResponseEncoderSettingsOutputGroupsOutputGroupSettingsFrameCaptureGroupSettingsTypeDef",
    {
        "Destination": ClientDescribeChannelResponseEncoderSettingsOutputGroupsOutputGroupSettingsFrameCaptureGroupSettingsDestinationTypeDef
    },
    total=False,
)


class ClientDescribeChannelResponseEncoderSettingsOutputGroupsOutputGroupSettingsFrameCaptureGroupSettingsTypeDef(
    _ClientDescribeChannelResponseEncoderSettingsOutputGroupsOutputGroupSettingsFrameCaptureGroupSettingsTypeDef
):
    """
    Type definition for
    `ClientDescribeChannelResponseEncoderSettingsOutputGroupsOutputGroupSettings`
    `FrameCaptureGroupSettings`

    - **Destination** *(dict) --* The destination for the frame capture files. Either the URI for an
    Amazon S3 bucket and object, plus a file name prefix (for example,
    s3ssl://sportsDelivery/highlights/20180820/curling_) or the URI for a MediaStore container, plus
    a file name prefix (for example, mediastoressl://sportsDelivery/20180820/curling_). The final
    file names consist of the prefix from the destination field (for example, "curling_") + name
    modifier + the counter (5 digits, starting from 00001) + extension (which is always .jpg). For
    example, curlingLow.00001.jpg

      - **DestinationRefId** *(string) --* Placeholder documentation for __string
    """


_ClientDescribeChannelResponseEncoderSettingsOutputGroupsOutputGroupSettingsHlsGroupSettingsCaptionLanguageMappingsTypeDef = TypedDict(
    "_ClientDescribeChannelResponseEncoderSettingsOutputGroupsOutputGroupSettingsHlsGroupSettingsCaptionLanguageMappingsTypeDef",
    {"CaptionChannel": int, "LanguageCode": str, "LanguageDescription": str},
    total=False,
)


class ClientDescribeChannelResponseEncoderSettingsOutputGroupsOutputGroupSettingsHlsGroupSettingsCaptionLanguageMappingsTypeDef(
    _ClientDescribeChannelResponseEncoderSettingsOutputGroupsOutputGroupSettingsHlsGroupSettingsCaptionLanguageMappingsTypeDef
):
    """
    Type definition for
    `ClientDescribeChannelResponseEncoderSettingsOutputGroupsOutputGroupSettingsHlsGroupSettings`
    `CaptionLanguageMappings`

    - **CaptionChannel** *(integer) --* The closed caption channel being described by this
    CaptionLanguageMapping. Each channel mapping must have a unique channel number (maximum of 4)

    - **LanguageCode** *(string) --* Three character ISO 639-2 language code (see
    http://www.loc.gov/standards/iso639-2)

    - **LanguageDescription** *(string) --* Textual description of language
    """


_ClientDescribeChannelResponseEncoderSettingsOutputGroupsOutputGroupSettingsHlsGroupSettingsDestinationTypeDef = TypedDict(
    "_ClientDescribeChannelResponseEncoderSettingsOutputGroupsOutputGroupSettingsHlsGroupSettingsDestinationTypeDef",
    {"DestinationRefId": str},
    total=False,
)


class ClientDescribeChannelResponseEncoderSettingsOutputGroupsOutputGroupSettingsHlsGroupSettingsDestinationTypeDef(
    _ClientDescribeChannelResponseEncoderSettingsOutputGroupsOutputGroupSettingsHlsGroupSettingsDestinationTypeDef
):
    """
    Type definition for
    `ClientDescribeChannelResponseEncoderSettingsOutputGroupsOutputGroupSettingsHlsGroupSettings`
    `Destination`

    - **DestinationRefId** *(string) --* Placeholder documentation for __string
    """


_ClientDescribeChannelResponseEncoderSettingsOutputGroupsOutputGroupSettingsHlsGroupSettingsHlsCdnSettingsHlsAkamaiSettingsTypeDef = TypedDict(
    "_ClientDescribeChannelResponseEncoderSettingsOutputGroupsOutputGroupSettingsHlsGroupSettingsHlsCdnSettingsHlsAkamaiSettingsTypeDef",
    {
        "ConnectionRetryInterval": int,
        "FilecacheDuration": int,
        "HttpTransferMode": str,
        "NumRetries": int,
        "RestartDelay": int,
        "Salt": str,
        "Token": str,
    },
    total=False,
)


class ClientDescribeChannelResponseEncoderSettingsOutputGroupsOutputGroupSettingsHlsGroupSettingsHlsCdnSettingsHlsAkamaiSettingsTypeDef(
    _ClientDescribeChannelResponseEncoderSettingsOutputGroupsOutputGroupSettingsHlsGroupSettingsHlsCdnSettingsHlsAkamaiSettingsTypeDef
):
    """
    Type definition for
    `ClientDescribeChannelResponseEncoderSettingsOutputGroupsOutputGroupSettingsHlsGroupSettingsHlsCdnSettings`
    `HlsAkamaiSettings`

    - **ConnectionRetryInterval** *(integer) --* Number of seconds to wait before retrying
    connection to the CDN if the connection is lost.

    - **FilecacheDuration** *(integer) --* Size in seconds of file cache for streaming outputs.

    - **HttpTransferMode** *(string) --* Specify whether or not to use chunked transfer encoding to
    Akamai. User should contact Akamai to enable this feature.

    - **NumRetries** *(integer) --* Number of retry attempts that will be made before the Live Event
    is put into an error state.

    - **RestartDelay** *(integer) --* If a streaming output fails, number of seconds to wait until a
    restart is initiated. A value of 0 means never restart.

    - **Salt** *(string) --* Salt for authenticated Akamai.

    - **Token** *(string) --* Token parameter for authenticated akamai. If not specified, _gda_ is
    used.
    """


_ClientDescribeChannelResponseEncoderSettingsOutputGroupsOutputGroupSettingsHlsGroupSettingsHlsCdnSettingsHlsBasicPutSettingsTypeDef = TypedDict(
    "_ClientDescribeChannelResponseEncoderSettingsOutputGroupsOutputGroupSettingsHlsGroupSettingsHlsCdnSettingsHlsBasicPutSettingsTypeDef",
    {
        "ConnectionRetryInterval": int,
        "FilecacheDuration": int,
        "NumRetries": int,
        "RestartDelay": int,
    },
    total=False,
)


class ClientDescribeChannelResponseEncoderSettingsOutputGroupsOutputGroupSettingsHlsGroupSettingsHlsCdnSettingsHlsBasicPutSettingsTypeDef(
    _ClientDescribeChannelResponseEncoderSettingsOutputGroupsOutputGroupSettingsHlsGroupSettingsHlsCdnSettingsHlsBasicPutSettingsTypeDef
):
    """
    Type definition for
    `ClientDescribeChannelResponseEncoderSettingsOutputGroupsOutputGroupSettingsHlsGroupSettingsHlsCdnSettings`
    `HlsBasicPutSettings`

    - **ConnectionRetryInterval** *(integer) --* Number of seconds to wait before retrying
    connection to the CDN if the connection is lost.

    - **FilecacheDuration** *(integer) --* Size in seconds of file cache for streaming outputs.

    - **NumRetries** *(integer) --* Number of retry attempts that will be made before the Live Event
    is put into an error state.

    - **RestartDelay** *(integer) --* If a streaming output fails, number of seconds to wait until a
    restart is initiated. A value of 0 means never restart.
    """


_ClientDescribeChannelResponseEncoderSettingsOutputGroupsOutputGroupSettingsHlsGroupSettingsHlsCdnSettingsHlsMediaStoreSettingsTypeDef = TypedDict(
    "_ClientDescribeChannelResponseEncoderSettingsOutputGroupsOutputGroupSettingsHlsGroupSettingsHlsCdnSettingsHlsMediaStoreSettingsTypeDef",
    {
        "ConnectionRetryInterval": int,
        "FilecacheDuration": int,
        "MediaStoreStorageClass": str,
        "NumRetries": int,
        "RestartDelay": int,
    },
    total=False,
)


class ClientDescribeChannelResponseEncoderSettingsOutputGroupsOutputGroupSettingsHlsGroupSettingsHlsCdnSettingsHlsMediaStoreSettingsTypeDef(
    _ClientDescribeChannelResponseEncoderSettingsOutputGroupsOutputGroupSettingsHlsGroupSettingsHlsCdnSettingsHlsMediaStoreSettingsTypeDef
):
    """
    Type definition for
    `ClientDescribeChannelResponseEncoderSettingsOutputGroupsOutputGroupSettingsHlsGroupSettingsHlsCdnSettings`
    `HlsMediaStoreSettings`

    - **ConnectionRetryInterval** *(integer) --* Number of seconds to wait before retrying
    connection to the CDN if the connection is lost.

    - **FilecacheDuration** *(integer) --* Size in seconds of file cache for streaming outputs.

    - **MediaStoreStorageClass** *(string) --* When set to temporal, output files are stored in
    non-persistent memory for faster reading and writing.

    - **NumRetries** *(integer) --* Number of retry attempts that will be made before the Live Event
    is put into an error state.

    - **RestartDelay** *(integer) --* If a streaming output fails, number of seconds to wait until a
    restart is initiated. A value of 0 means never restart.
    """


_ClientDescribeChannelResponseEncoderSettingsOutputGroupsOutputGroupSettingsHlsGroupSettingsHlsCdnSettingsHlsWebdavSettingsTypeDef = TypedDict(
    "_ClientDescribeChannelResponseEncoderSettingsOutputGroupsOutputGroupSettingsHlsGroupSettingsHlsCdnSettingsHlsWebdavSettingsTypeDef",
    {
        "ConnectionRetryInterval": int,
        "FilecacheDuration": int,
        "HttpTransferMode": str,
        "NumRetries": int,
        "RestartDelay": int,
    },
    total=False,
)


class ClientDescribeChannelResponseEncoderSettingsOutputGroupsOutputGroupSettingsHlsGroupSettingsHlsCdnSettingsHlsWebdavSettingsTypeDef(
    _ClientDescribeChannelResponseEncoderSettingsOutputGroupsOutputGroupSettingsHlsGroupSettingsHlsCdnSettingsHlsWebdavSettingsTypeDef
):
    """
    Type definition for
    `ClientDescribeChannelResponseEncoderSettingsOutputGroupsOutputGroupSettingsHlsGroupSettingsHlsCdnSettings`
    `HlsWebdavSettings`

    - **ConnectionRetryInterval** *(integer) --* Number of seconds to wait before retrying
    connection to the CDN if the connection is lost.

    - **FilecacheDuration** *(integer) --* Size in seconds of file cache for streaming outputs.

    - **HttpTransferMode** *(string) --* Specify whether or not to use chunked transfer encoding to
    WebDAV.

    - **NumRetries** *(integer) --* Number of retry attempts that will be made before the Live Event
    is put into an error state.

    - **RestartDelay** *(integer) --* If a streaming output fails, number of seconds to wait until a
    restart is initiated. A value of 0 means never restart.
    """


_ClientDescribeChannelResponseEncoderSettingsOutputGroupsOutputGroupSettingsHlsGroupSettingsHlsCdnSettingsTypeDef = TypedDict(
    "_ClientDescribeChannelResponseEncoderSettingsOutputGroupsOutputGroupSettingsHlsGroupSettingsHlsCdnSettingsTypeDef",
    {
        "HlsAkamaiSettings": ClientDescribeChannelResponseEncoderSettingsOutputGroupsOutputGroupSettingsHlsGroupSettingsHlsCdnSettingsHlsAkamaiSettingsTypeDef,
        "HlsBasicPutSettings": ClientDescribeChannelResponseEncoderSettingsOutputGroupsOutputGroupSettingsHlsGroupSettingsHlsCdnSettingsHlsBasicPutSettingsTypeDef,
        "HlsMediaStoreSettings": ClientDescribeChannelResponseEncoderSettingsOutputGroupsOutputGroupSettingsHlsGroupSettingsHlsCdnSettingsHlsMediaStoreSettingsTypeDef,
        "HlsWebdavSettings": ClientDescribeChannelResponseEncoderSettingsOutputGroupsOutputGroupSettingsHlsGroupSettingsHlsCdnSettingsHlsWebdavSettingsTypeDef,
    },
    total=False,
)


class ClientDescribeChannelResponseEncoderSettingsOutputGroupsOutputGroupSettingsHlsGroupSettingsHlsCdnSettingsTypeDef(
    _ClientDescribeChannelResponseEncoderSettingsOutputGroupsOutputGroupSettingsHlsGroupSettingsHlsCdnSettingsTypeDef
):
    """
    Type definition for
    `ClientDescribeChannelResponseEncoderSettingsOutputGroupsOutputGroupSettingsHlsGroupSettings`
    `HlsCdnSettings`

    - **HlsAkamaiSettings** *(dict) --* Hls Akamai Settings

      - **ConnectionRetryInterval** *(integer) --* Number of seconds to wait before retrying
      connection to the CDN if the connection is lost.

      - **FilecacheDuration** *(integer) --* Size in seconds of file cache for streaming outputs.

      - **HttpTransferMode** *(string) --* Specify whether or not to use chunked transfer encoding
      to Akamai. User should contact Akamai to enable this feature.

      - **NumRetries** *(integer) --* Number of retry attempts that will be made before the Live
      Event is put into an error state.

      - **RestartDelay** *(integer) --* If a streaming output fails, number of seconds to wait until
      a restart is initiated. A value of 0 means never restart.

      - **Salt** *(string) --* Salt for authenticated Akamai.

      - **Token** *(string) --* Token parameter for authenticated akamai. If not specified, _gda_ is
      used.

    - **HlsBasicPutSettings** *(dict) --* Hls Basic Put Settings

      - **ConnectionRetryInterval** *(integer) --* Number of seconds to wait before retrying
      connection to the CDN if the connection is lost.

      - **FilecacheDuration** *(integer) --* Size in seconds of file cache for streaming outputs.

      - **NumRetries** *(integer) --* Number of retry attempts that will be made before the Live
      Event is put into an error state.

      - **RestartDelay** *(integer) --* If a streaming output fails, number of seconds to wait until
      a restart is initiated. A value of 0 means never restart.

    - **HlsMediaStoreSettings** *(dict) --* Hls Media Store Settings

      - **ConnectionRetryInterval** *(integer) --* Number of seconds to wait before retrying
      connection to the CDN if the connection is lost.

      - **FilecacheDuration** *(integer) --* Size in seconds of file cache for streaming outputs.

      - **MediaStoreStorageClass** *(string) --* When set to temporal, output files are stored in
      non-persistent memory for faster reading and writing.

      - **NumRetries** *(integer) --* Number of retry attempts that will be made before the Live
      Event is put into an error state.

      - **RestartDelay** *(integer) --* If a streaming output fails, number of seconds to wait until
      a restart is initiated. A value of 0 means never restart.

    - **HlsWebdavSettings** *(dict) --* Hls Webdav Settings

      - **ConnectionRetryInterval** *(integer) --* Number of seconds to wait before retrying
      connection to the CDN if the connection is lost.

      - **FilecacheDuration** *(integer) --* Size in seconds of file cache for streaming outputs.

      - **HttpTransferMode** *(string) --* Specify whether or not to use chunked transfer encoding
      to WebDAV.

      - **NumRetries** *(integer) --* Number of retry attempts that will be made before the Live
      Event is put into an error state.

      - **RestartDelay** *(integer) --* If a streaming output fails, number of seconds to wait until
      a restart is initiated. A value of 0 means never restart.
    """


_ClientDescribeChannelResponseEncoderSettingsOutputGroupsOutputGroupSettingsHlsGroupSettingsKeyProviderSettingsStaticKeySettingsKeyProviderServerTypeDef = TypedDict(
    "_ClientDescribeChannelResponseEncoderSettingsOutputGroupsOutputGroupSettingsHlsGroupSettingsKeyProviderSettingsStaticKeySettingsKeyProviderServerTypeDef",
    {"PasswordParam": str, "Uri": str, "Username": str},
    total=False,
)


class ClientDescribeChannelResponseEncoderSettingsOutputGroupsOutputGroupSettingsHlsGroupSettingsKeyProviderSettingsStaticKeySettingsKeyProviderServerTypeDef(
    _ClientDescribeChannelResponseEncoderSettingsOutputGroupsOutputGroupSettingsHlsGroupSettingsKeyProviderSettingsStaticKeySettingsKeyProviderServerTypeDef
):
    """
    Type definition for
    `ClientDescribeChannelResponseEncoderSettingsOutputGroupsOutputGroupSettingsHlsGroupSettingsKeyProviderSettingsStaticKeySettings`
    `KeyProviderServer`

    - **PasswordParam** *(string) --* key used to extract the password from EC2 Parameter store

    - **Uri** *(string) --* Uniform Resource Identifier - This should be a path to a file accessible
    to the Live system (eg. a http:// URI) depending on the output type. For example, a RTMP
    destination should have a uri simliar to: "rtmp://fmsserver/live".

    - **Username** *(string) --* Documentation update needed
    """


_ClientDescribeChannelResponseEncoderSettingsOutputGroupsOutputGroupSettingsHlsGroupSettingsKeyProviderSettingsStaticKeySettingsTypeDef = TypedDict(
    "_ClientDescribeChannelResponseEncoderSettingsOutputGroupsOutputGroupSettingsHlsGroupSettingsKeyProviderSettingsStaticKeySettingsTypeDef",
    {
        "KeyProviderServer": ClientDescribeChannelResponseEncoderSettingsOutputGroupsOutputGroupSettingsHlsGroupSettingsKeyProviderSettingsStaticKeySettingsKeyProviderServerTypeDef,
        "StaticKeyValue": str,
    },
    total=False,
)


class ClientDescribeChannelResponseEncoderSettingsOutputGroupsOutputGroupSettingsHlsGroupSettingsKeyProviderSettingsStaticKeySettingsTypeDef(
    _ClientDescribeChannelResponseEncoderSettingsOutputGroupsOutputGroupSettingsHlsGroupSettingsKeyProviderSettingsStaticKeySettingsTypeDef
):
    """
    Type definition for
    `ClientDescribeChannelResponseEncoderSettingsOutputGroupsOutputGroupSettingsHlsGroupSettingsKeyProviderSettings`
    `StaticKeySettings`

    - **KeyProviderServer** *(dict) --* The URL of the license server used for protecting content.

      - **PasswordParam** *(string) --* key used to extract the password from EC2 Parameter store

      - **Uri** *(string) --* Uniform Resource Identifier - This should be a path to a file
      accessible to the Live system (eg. a http:// URI) depending on the output type. For example, a
      RTMP destination should have a uri simliar to: "rtmp://fmsserver/live".

      - **Username** *(string) --* Documentation update needed

    - **StaticKeyValue** *(string) --* Static key value as a 32 character hexadecimal string.
    """


_ClientDescribeChannelResponseEncoderSettingsOutputGroupsOutputGroupSettingsHlsGroupSettingsKeyProviderSettingsTypeDef = TypedDict(
    "_ClientDescribeChannelResponseEncoderSettingsOutputGroupsOutputGroupSettingsHlsGroupSettingsKeyProviderSettingsTypeDef",
    {
        "StaticKeySettings": ClientDescribeChannelResponseEncoderSettingsOutputGroupsOutputGroupSettingsHlsGroupSettingsKeyProviderSettingsStaticKeySettingsTypeDef
    },
    total=False,
)


class ClientDescribeChannelResponseEncoderSettingsOutputGroupsOutputGroupSettingsHlsGroupSettingsKeyProviderSettingsTypeDef(
    _ClientDescribeChannelResponseEncoderSettingsOutputGroupsOutputGroupSettingsHlsGroupSettingsKeyProviderSettingsTypeDef
):
    """
    Type definition for
    `ClientDescribeChannelResponseEncoderSettingsOutputGroupsOutputGroupSettingsHlsGroupSettings`
    `KeyProviderSettings`

    - **StaticKeySettings** *(dict) --* Static Key Settings

      - **KeyProviderServer** *(dict) --* The URL of the license server used for protecting content.

        - **PasswordParam** *(string) --* key used to extract the password from EC2 Parameter store

        - **Uri** *(string) --* Uniform Resource Identifier - This should be a path to a file
        accessible to the Live system (eg. a http:// URI) depending on the output type. For example,
        a RTMP destination should have a uri simliar to: "rtmp://fmsserver/live".

        - **Username** *(string) --* Documentation update needed

      - **StaticKeyValue** *(string) --* Static key value as a 32 character hexadecimal string.
    """


_ClientDescribeChannelResponseEncoderSettingsOutputGroupsOutputGroupSettingsHlsGroupSettingsTypeDef = TypedDict(
    "_ClientDescribeChannelResponseEncoderSettingsOutputGroupsOutputGroupSettingsHlsGroupSettingsTypeDef",
    {
        "AdMarkers": List[str],
        "BaseUrlContent": str,
        "BaseUrlManifest": str,
        "CaptionLanguageMappings": List[
            ClientDescribeChannelResponseEncoderSettingsOutputGroupsOutputGroupSettingsHlsGroupSettingsCaptionLanguageMappingsTypeDef
        ],
        "CaptionLanguageSetting": str,
        "ClientCache": str,
        "CodecSpecification": str,
        "ConstantIv": str,
        "Destination": ClientDescribeChannelResponseEncoderSettingsOutputGroupsOutputGroupSettingsHlsGroupSettingsDestinationTypeDef,
        "DirectoryStructure": str,
        "EncryptionType": str,
        "HlsCdnSettings": ClientDescribeChannelResponseEncoderSettingsOutputGroupsOutputGroupSettingsHlsGroupSettingsHlsCdnSettingsTypeDef,
        "IFrameOnlyPlaylists": str,
        "IndexNSegments": int,
        "InputLossAction": str,
        "IvInManifest": str,
        "IvSource": str,
        "KeepSegments": int,
        "KeyFormat": str,
        "KeyFormatVersions": str,
        "KeyProviderSettings": ClientDescribeChannelResponseEncoderSettingsOutputGroupsOutputGroupSettingsHlsGroupSettingsKeyProviderSettingsTypeDef,
        "ManifestCompression": str,
        "ManifestDurationFormat": str,
        "MinSegmentLength": int,
        "Mode": str,
        "OutputSelection": str,
        "ProgramDateTime": str,
        "ProgramDateTimePeriod": int,
        "RedundantManifest": str,
        "SegmentLength": int,
        "SegmentationMode": str,
        "SegmentsPerSubdirectory": int,
        "StreamInfResolution": str,
        "TimedMetadataId3Frame": str,
        "TimedMetadataId3Period": int,
        "TimestampDeltaMilliseconds": int,
        "TsFileMode": str,
    },
    total=False,
)


class ClientDescribeChannelResponseEncoderSettingsOutputGroupsOutputGroupSettingsHlsGroupSettingsTypeDef(
    _ClientDescribeChannelResponseEncoderSettingsOutputGroupsOutputGroupSettingsHlsGroupSettingsTypeDef
):
    """
    Type definition for
    `ClientDescribeChannelResponseEncoderSettingsOutputGroupsOutputGroupSettings` `HlsGroupSettings`

    - **AdMarkers** *(list) --* Choose one or more ad marker types to pass SCTE35 signals through to
    this group of Apple HLS outputs.

      - *(string) --* Hls Ad Markers

    - **BaseUrlContent** *(string) --* A partial URI prefix that will be prepended to each output in
    the media .m3u8 file. Can be used if base manifest is delivered from a different URL than the
    main .m3u8 file.

    - **BaseUrlManifest** *(string) --* A partial URI prefix that will be prepended to each output
    in the media .m3u8 file. Can be used if base manifest is delivered from a different URL than the
    main .m3u8 file.

    - **CaptionLanguageMappings** *(list) --* Mapping of up to 4 caption channels to caption
    languages. Is only meaningful if captionLanguageSetting is set to "insert".

      - *(dict) --* Maps a caption channel to an ISO 693-2 language code
      (http://www.loc.gov/standards/iso639-2), with an optional description.

        - **CaptionChannel** *(integer) --* The closed caption channel being described by this
        CaptionLanguageMapping. Each channel mapping must have a unique channel number (maximum of
        4)

        - **LanguageCode** *(string) --* Three character ISO 639-2 language code (see
        http://www.loc.gov/standards/iso639-2)

        - **LanguageDescription** *(string) --* Textual description of language

    - **CaptionLanguageSetting** *(string) --* Applies only to 608 Embedded output captions. insert:
    Include CLOSED-CAPTIONS lines in the manifest. Specify at least one language in the CC1 Language
    Code field. One CLOSED-CAPTION line is added for each Language Code you specify. Make sure to
    specify the languages in the order in which they appear in the original source (if the source is
    embedded format) or the order of the caption selectors (if the source is other than embedded).
    Otherwise, languages in the manifest will not match up properly with the output captions. none:
    Include CLOSED-CAPTIONS=NONE line in the manifest. omit: Omit any CLOSED-CAPTIONS line from the
    manifest.

    - **ClientCache** *(string) --* When set to "disabled", sets the #EXT-X-ALLOW-CACHE:no tag in
    the manifest, which prevents clients from saving media segments for later replay.

    - **CodecSpecification** *(string) --* Specification to use (RFC-6381 or the default RFC-4281)
    during m3u8 playlist generation.

    - **ConstantIv** *(string) --* For use with encryptionType. This is a 128-bit, 16-byte hex value
    represented by a 32-character text string. If ivSource is set to "explicit" then this parameter
    is required and is used as the IV for encryption.

    - **Destination** *(dict) --* A directory or HTTP destination for the HLS segments, manifest
    files, and encryption keys (if enabled).

      - **DestinationRefId** *(string) --* Placeholder documentation for __string

    - **DirectoryStructure** *(string) --* Place segments in subdirectories.

    - **EncryptionType** *(string) --* Encrypts the segments with the given encryption scheme.
    Exclude this parameter if no encryption is desired.

    - **HlsCdnSettings** *(dict) --* Parameters that control interactions with the CDN.

      - **HlsAkamaiSettings** *(dict) --* Hls Akamai Settings

        - **ConnectionRetryInterval** *(integer) --* Number of seconds to wait before retrying
        connection to the CDN if the connection is lost.

        - **FilecacheDuration** *(integer) --* Size in seconds of file cache for streaming outputs.

        - **HttpTransferMode** *(string) --* Specify whether or not to use chunked transfer encoding
        to Akamai. User should contact Akamai to enable this feature.

        - **NumRetries** *(integer) --* Number of retry attempts that will be made before the Live
        Event is put into an error state.

        - **RestartDelay** *(integer) --* If a streaming output fails, number of seconds to wait
        until a restart is initiated. A value of 0 means never restart.

        - **Salt** *(string) --* Salt for authenticated Akamai.

        - **Token** *(string) --* Token parameter for authenticated akamai. If not specified, _gda_
        is used.

      - **HlsBasicPutSettings** *(dict) --* Hls Basic Put Settings

        - **ConnectionRetryInterval** *(integer) --* Number of seconds to wait before retrying
        connection to the CDN if the connection is lost.

        - **FilecacheDuration** *(integer) --* Size in seconds of file cache for streaming outputs.

        - **NumRetries** *(integer) --* Number of retry attempts that will be made before the Live
        Event is put into an error state.

        - **RestartDelay** *(integer) --* If a streaming output fails, number of seconds to wait
        until a restart is initiated. A value of 0 means never restart.

      - **HlsMediaStoreSettings** *(dict) --* Hls Media Store Settings

        - **ConnectionRetryInterval** *(integer) --* Number of seconds to wait before retrying
        connection to the CDN if the connection is lost.

        - **FilecacheDuration** *(integer) --* Size in seconds of file cache for streaming outputs.

        - **MediaStoreStorageClass** *(string) --* When set to temporal, output files are stored in
        non-persistent memory for faster reading and writing.

        - **NumRetries** *(integer) --* Number of retry attempts that will be made before the Live
        Event is put into an error state.

        - **RestartDelay** *(integer) --* If a streaming output fails, number of seconds to wait
        until a restart is initiated. A value of 0 means never restart.

      - **HlsWebdavSettings** *(dict) --* Hls Webdav Settings

        - **ConnectionRetryInterval** *(integer) --* Number of seconds to wait before retrying
        connection to the CDN if the connection is lost.

        - **FilecacheDuration** *(integer) --* Size in seconds of file cache for streaming outputs.

        - **HttpTransferMode** *(string) --* Specify whether or not to use chunked transfer encoding
        to WebDAV.

        - **NumRetries** *(integer) --* Number of retry attempts that will be made before the Live
        Event is put into an error state.

        - **RestartDelay** *(integer) --* If a streaming output fails, number of seconds to wait
        until a restart is initiated. A value of 0 means never restart.

    - **IFrameOnlyPlaylists** *(string) --* DISABLED: Do not create an I-frame-only manifest, but do
    create the master and media manifests (according to the Output Selection field). STANDARD:
    Create an I-frame-only manifest for each output that contains video, as well as the other
    manifests (according to the Output Selection field). The I-frame manifest contains a
    #EXT-X-I-FRAMES-ONLY tag to indicate it is I-frame only, and one or more #EXT-X-BYTERANGE
    entries identifying the I-frame position. For example, #EXT-X-BYTERANGE:160364@1461888"

    - **IndexNSegments** *(integer) --* Applies only if Mode field is LIVE. Specifies the maximum
    number of segments in the media manifest file. After this maximum, older segments are removed
    from the media manifest. This number must be less than or equal to the Keep Segments field.

    - **InputLossAction** *(string) --* Parameter that control output group behavior on input loss.

    - **IvInManifest** *(string) --* For use with encryptionType. The IV (Initialization Vector) is
    a 128-bit number used in conjunction with the key for encrypting blocks. If set to "include", IV
    is listed in the manifest, otherwise the IV is not in the manifest.

    - **IvSource** *(string) --* For use with encryptionType. The IV (Initialization Vector) is a
    128-bit number used in conjunction with the key for encrypting blocks. If this setting is
    "followsSegmentNumber", it will cause the IV to change every segment (to match the segment
    number). If this is set to "explicit", you must enter a constantIv value.

    - **KeepSegments** *(integer) --* Applies only if Mode field is LIVE. Specifies the number of
    media segments (.ts files) to retain in the destination directory.

    - **KeyFormat** *(string) --* The value specifies how the key is represented in the resource
    identified by the URI. If parameter is absent, an implicit value of "identity" is used. A
    reverse DNS string can also be given.

    - **KeyFormatVersions** *(string) --* Either a single positive integer version value or a slash
    delimited list of version values (1/2/3).

    - **KeyProviderSettings** *(dict) --* The key provider settings.

      - **StaticKeySettings** *(dict) --* Static Key Settings

        - **KeyProviderServer** *(dict) --* The URL of the license server used for protecting
        content.

          - **PasswordParam** *(string) --* key used to extract the password from EC2 Parameter
          store

          - **Uri** *(string) --* Uniform Resource Identifier - This should be a path to a file
          accessible to the Live system (eg. a http:// URI) depending on the output type. For
          example, a RTMP destination should have a uri simliar to: "rtmp://fmsserver/live".

          - **Username** *(string) --* Documentation update needed

        - **StaticKeyValue** *(string) --* Static key value as a 32 character hexadecimal string.

    - **ManifestCompression** *(string) --* When set to gzip, compresses HLS playlist.

    - **ManifestDurationFormat** *(string) --* Indicates whether the output manifest should use
    floating point or integer values for segment duration.

    - **MinSegmentLength** *(integer) --* When set, minimumSegmentLength is enforced by looking
    ahead and back within the specified range for a nearby avail and extending the segment size if
    needed.

    - **Mode** *(string) --* If "vod", all segments are indexed and kept permanently in the
    destination and manifest. If "live", only the number segments specified in keepSegments and
    indexNSegments are kept; newer segments replace older segments, which may prevent players from
    rewinding all the way to the beginning of the event. VOD mode uses HLS EXT-X-PLAYLIST-TYPE of
    EVENT while the channel is running, converting it to a "VOD" type manifest on completion of the
    stream.

    - **OutputSelection** *(string) --* MANIFESTSANDSEGMENTS: Generates manifests (master manifest,
    if applicable, and media manifests) for this output group. SEGMENTSONLY: Does not generate any
    manifests for this output group.

    - **ProgramDateTime** *(string) --* Includes or excludes EXT-X-PROGRAM-DATE-TIME tag in .m3u8
    manifest files. The value is calculated as follows: either the program date and time are
    initialized using the input timecode source, or the time is initialized using the input timecode
    source and the date is initialized using the timestampOffset.

    - **ProgramDateTimePeriod** *(integer) --* Period of insertion of EXT-X-PROGRAM-DATE-TIME entry,
    in seconds.

    - **RedundantManifest** *(string) --* ENABLED: The master manifest (.m3u8 file) for each
    pipeline includes information about both pipelines: first its own media files, then the media
    files of the other pipeline. This feature allows playout device that support stale manifest
    detection to switch from one manifest to the other, when the current manifest seems to be stale.
    There are still two destinations and two master manifests, but both master manifests reference
    the media files from both pipelines. DISABLED: The master manifest (.m3u8 file) for each
    pipeline includes information about its own pipeline only. For an HLS output group with
    MediaPackage as the destination, the DISABLED behavior is always followed. MediaPackage
    regenerates the manifests it serves to players so a redundant manifest from MediaLive is
    irrelevant.

    - **SegmentLength** *(integer) --* Length of MPEG-2 Transport Stream segments to create (in
    seconds). Note that segments will end on the next keyframe after this number of seconds, so
    actual segment length may be longer.

    - **SegmentationMode** *(string) --* useInputSegmentation has been deprecated. The configured
    segment size is always used.

    - **SegmentsPerSubdirectory** *(integer) --* Number of segments to write to a subdirectory
    before starting a new one. directoryStructure must be subdirectoryPerStream for this setting to
    have an effect.

    - **StreamInfResolution** *(string) --* Include or exclude RESOLUTION attribute for video in
    EXT-X-STREAM-INF tag of variant manifest.

    - **TimedMetadataId3Frame** *(string) --* Indicates ID3 frame that has the timecode.

    - **TimedMetadataId3Period** *(integer) --* Timed Metadata interval in seconds.

    - **TimestampDeltaMilliseconds** *(integer) --* Provides an extra millisecond delta offset to
    fine tune the timestamps.

    - **TsFileMode** *(string) --* SEGMENTEDFILES: Emit the program as segments - multiple .ts media
    files. SINGLEFILE: Applies only if Mode field is VOD. Emit the program as a single .ts media
    file. The media manifest includes #EXT-X-BYTERANGE tags to index segments for playback. A
    typical use for this value is when sending the output to AWS Elemental MediaConvert, which can
    accept only a single media file. Playback while the channel is running is not guaranteed due to
    HTTP server caching.
    """


_ClientDescribeChannelResponseEncoderSettingsOutputGroupsOutputGroupSettingsMediaPackageGroupSettingsDestinationTypeDef = TypedDict(
    "_ClientDescribeChannelResponseEncoderSettingsOutputGroupsOutputGroupSettingsMediaPackageGroupSettingsDestinationTypeDef",
    {"DestinationRefId": str},
    total=False,
)


class ClientDescribeChannelResponseEncoderSettingsOutputGroupsOutputGroupSettingsMediaPackageGroupSettingsDestinationTypeDef(
    _ClientDescribeChannelResponseEncoderSettingsOutputGroupsOutputGroupSettingsMediaPackageGroupSettingsDestinationTypeDef
):
    """
    Type definition for
    `ClientDescribeChannelResponseEncoderSettingsOutputGroupsOutputGroupSettingsMediaPackageGroupSettings`
    `Destination`

    - **DestinationRefId** *(string) --* Placeholder documentation for __string
    """


_ClientDescribeChannelResponseEncoderSettingsOutputGroupsOutputGroupSettingsMediaPackageGroupSettingsTypeDef = TypedDict(
    "_ClientDescribeChannelResponseEncoderSettingsOutputGroupsOutputGroupSettingsMediaPackageGroupSettingsTypeDef",
    {
        "Destination": ClientDescribeChannelResponseEncoderSettingsOutputGroupsOutputGroupSettingsMediaPackageGroupSettingsDestinationTypeDef
    },
    total=False,
)


class ClientDescribeChannelResponseEncoderSettingsOutputGroupsOutputGroupSettingsMediaPackageGroupSettingsTypeDef(
    _ClientDescribeChannelResponseEncoderSettingsOutputGroupsOutputGroupSettingsMediaPackageGroupSettingsTypeDef
):
    """
    Type definition for
    `ClientDescribeChannelResponseEncoderSettingsOutputGroupsOutputGroupSettings`
    `MediaPackageGroupSettings`

    - **Destination** *(dict) --* MediaPackage channel destination.

      - **DestinationRefId** *(string) --* Placeholder documentation for __string
    """


_ClientDescribeChannelResponseEncoderSettingsOutputGroupsOutputGroupSettingsMsSmoothGroupSettingsDestinationTypeDef = TypedDict(
    "_ClientDescribeChannelResponseEncoderSettingsOutputGroupsOutputGroupSettingsMsSmoothGroupSettingsDestinationTypeDef",
    {"DestinationRefId": str},
    total=False,
)


class ClientDescribeChannelResponseEncoderSettingsOutputGroupsOutputGroupSettingsMsSmoothGroupSettingsDestinationTypeDef(
    _ClientDescribeChannelResponseEncoderSettingsOutputGroupsOutputGroupSettingsMsSmoothGroupSettingsDestinationTypeDef
):
    """
    Type definition for
    `ClientDescribeChannelResponseEncoderSettingsOutputGroupsOutputGroupSettingsMsSmoothGroupSettings`
    `Destination`

    - **DestinationRefId** *(string) --* Placeholder documentation for __string
    """


_ClientDescribeChannelResponseEncoderSettingsOutputGroupsOutputGroupSettingsMsSmoothGroupSettingsTypeDef = TypedDict(
    "_ClientDescribeChannelResponseEncoderSettingsOutputGroupsOutputGroupSettingsMsSmoothGroupSettingsTypeDef",
    {
        "AcquisitionPointId": str,
        "AudioOnlyTimecodeControl": str,
        "CertificateMode": str,
        "ConnectionRetryInterval": int,
        "Destination": ClientDescribeChannelResponseEncoderSettingsOutputGroupsOutputGroupSettingsMsSmoothGroupSettingsDestinationTypeDef,
        "EventId": str,
        "EventIdMode": str,
        "EventStopBehavior": str,
        "FilecacheDuration": int,
        "FragmentLength": int,
        "InputLossAction": str,
        "NumRetries": int,
        "RestartDelay": int,
        "SegmentationMode": str,
        "SendDelayMs": int,
        "SparseTrackType": str,
        "StreamManifestBehavior": str,
        "TimestampOffset": str,
        "TimestampOffsetMode": str,
    },
    total=False,
)


class ClientDescribeChannelResponseEncoderSettingsOutputGroupsOutputGroupSettingsMsSmoothGroupSettingsTypeDef(
    _ClientDescribeChannelResponseEncoderSettingsOutputGroupsOutputGroupSettingsMsSmoothGroupSettingsTypeDef
):
    """
    Type definition for
    `ClientDescribeChannelResponseEncoderSettingsOutputGroupsOutputGroupSettings`
    `MsSmoothGroupSettings`

    - **AcquisitionPointId** *(string) --* The value of the "Acquisition Point Identity" element
    used in each message placed in the sparse track. Only enabled if sparseTrackType is not "none".

    - **AudioOnlyTimecodeControl** *(string) --* If set to passthrough for an audio-only MS Smooth
    output, the fragment absolute time will be set to the current timecode. This option does not
    write timecodes to the audio elementary stream.

    - **CertificateMode** *(string) --* If set to verifyAuthenticity, verify the https certificate
    chain to a trusted Certificate Authority (CA). This will cause https outputs to self-signed
    certificates to fail.

    - **ConnectionRetryInterval** *(integer) --* Number of seconds to wait before retrying
    connection to the IIS server if the connection is lost. Content will be cached during this time
    and the cache will be be delivered to the IIS server once the connection is re-established.

    - **Destination** *(dict) --* Smooth Streaming publish point on an IIS server. Elemental Live
    acts as a "Push" encoder to IIS.

      - **DestinationRefId** *(string) --* Placeholder documentation for __string

    - **EventId** *(string) --* MS Smooth event ID to be sent to the IIS server. Should only be
    specified if eventIdMode is set to useConfigured.

    - **EventIdMode** *(string) --* Specifies whether or not to send an event ID to the IIS server.
    If no event ID is sent and the same Live Event is used without changing the publishing point,
    clients might see cached video from the previous run. Options: - "useConfigured" - use the value
    provided in eventId - "useTimestamp" - generate and send an event ID based on the current
    timestamp - "noEventId" - do not send an event ID to the IIS server.

    - **EventStopBehavior** *(string) --* When set to sendEos, send EOS signal to IIS server when
    stopping the event

    - **FilecacheDuration** *(integer) --* Size in seconds of file cache for streaming outputs.

    - **FragmentLength** *(integer) --* Length of mp4 fragments to generate (in seconds). Fragment
    length must be compatible with GOP size and framerate.

    - **InputLossAction** *(string) --* Parameter that control output group behavior on input loss.

    - **NumRetries** *(integer) --* Number of retry attempts.

    - **RestartDelay** *(integer) --* Number of seconds before initiating a restart due to output
    failure, due to exhausting the numRetries on one segment, or exceeding filecacheDuration.

    - **SegmentationMode** *(string) --* useInputSegmentation has been deprecated. The configured
    segment size is always used.

    - **SendDelayMs** *(integer) --* Number of milliseconds to delay the output from the second
    pipeline.

    - **SparseTrackType** *(string) --* If set to scte35, use incoming SCTE-35 messages to generate
    a sparse track in this group of MS-Smooth outputs.

    - **StreamManifestBehavior** *(string) --* When set to send, send stream manifest so publishing
    point doesn't start until all streams start.

    - **TimestampOffset** *(string) --* Timestamp offset for the event. Only used if
    timestampOffsetMode is set to useConfiguredOffset.

    - **TimestampOffsetMode** *(string) --* Type of timestamp date offset to use. -
    useEventStartDate: Use the date the event was started as the offset - useConfiguredOffset: Use
    an explicitly configured date as the offset
    """


_ClientDescribeChannelResponseEncoderSettingsOutputGroupsOutputGroupSettingsRtmpGroupSettingsTypeDef = TypedDict(
    "_ClientDescribeChannelResponseEncoderSettingsOutputGroupsOutputGroupSettingsRtmpGroupSettingsTypeDef",
    {
        "AuthenticationScheme": str,
        "CacheFullBehavior": str,
        "CacheLength": int,
        "CaptionData": str,
        "InputLossAction": str,
        "RestartDelay": int,
    },
    total=False,
)


class ClientDescribeChannelResponseEncoderSettingsOutputGroupsOutputGroupSettingsRtmpGroupSettingsTypeDef(
    _ClientDescribeChannelResponseEncoderSettingsOutputGroupsOutputGroupSettingsRtmpGroupSettingsTypeDef
):
    """
    Type definition for
    `ClientDescribeChannelResponseEncoderSettingsOutputGroupsOutputGroupSettings`
    `RtmpGroupSettings`

    - **AuthenticationScheme** *(string) --* Authentication scheme to use when connecting with CDN

    - **CacheFullBehavior** *(string) --* Controls behavior when content cache fills up. If remote
    origin server stalls the RTMP connection and does not accept content fast enough the 'Media
    Cache' will fill up. When the cache reaches the duration specified by cacheLength the cache will
    stop accepting new content. If set to disconnectImmediately, the RTMP output will force a
    disconnect. Clear the media cache, and reconnect after restartDelay seconds. If set to
    waitForServer, the RTMP output will wait up to 5 minutes to allow the origin server to begin
    accepting data again.

    - **CacheLength** *(integer) --* Cache length, in seconds, is used to calculate buffer size.

    - **CaptionData** *(string) --* Controls the types of data that passes to onCaptionInfo outputs.
    If set to 'all' then 608 and 708 carried DTVCC data will be passed. If set to
    'field1AndField2608' then DTVCC data will be stripped out, but 608 data from both fields will be
    passed. If set to 'field1608' then only the data carried in 608 from field 1 video will be
    passed.

    - **InputLossAction** *(string) --* Controls the behavior of this RTMP group if input becomes
    unavailable. - emitOutput: Emit a slate until input returns. - pauseOutput: Stop transmitting
    data until input returns. This does not close the underlying RTMP connection.

    - **RestartDelay** *(integer) --* If a streaming output fails, number of seconds to wait until a
    restart is initiated. A value of 0 means never restart.
    """


_ClientDescribeChannelResponseEncoderSettingsOutputGroupsOutputGroupSettingsUdpGroupSettingsTypeDef = TypedDict(
    "_ClientDescribeChannelResponseEncoderSettingsOutputGroupsOutputGroupSettingsUdpGroupSettingsTypeDef",
    {"InputLossAction": str, "TimedMetadataId3Frame": str, "TimedMetadataId3Period": int},
    total=False,
)


class ClientDescribeChannelResponseEncoderSettingsOutputGroupsOutputGroupSettingsUdpGroupSettingsTypeDef(
    _ClientDescribeChannelResponseEncoderSettingsOutputGroupsOutputGroupSettingsUdpGroupSettingsTypeDef
):
    """
    Type definition for
    `ClientDescribeChannelResponseEncoderSettingsOutputGroupsOutputGroupSettings` `UdpGroupSettings`

    - **InputLossAction** *(string) --* Specifies behavior of last resort when input video is lost,
    and no more backup inputs are available. When dropTs is selected the entire transport stream
    will stop being emitted. When dropProgram is selected the program can be dropped from the
    transport stream (and replaced with null packets to meet the TS bitrate requirement). Or, when
    emitProgram is chosen the transport stream will continue to be produced normally with repeat
    frames, black frames, or slate frames substituted for the absent input video.

    - **TimedMetadataId3Frame** *(string) --* Indicates ID3 frame that has the timecode.

    - **TimedMetadataId3Period** *(integer) --* Timed Metadata interval in seconds.
    """


_ClientDescribeChannelResponseEncoderSettingsOutputGroupsOutputGroupSettingsTypeDef = TypedDict(
    "_ClientDescribeChannelResponseEncoderSettingsOutputGroupsOutputGroupSettingsTypeDef",
    {
        "ArchiveGroupSettings": ClientDescribeChannelResponseEncoderSettingsOutputGroupsOutputGroupSettingsArchiveGroupSettingsTypeDef,
        "FrameCaptureGroupSettings": ClientDescribeChannelResponseEncoderSettingsOutputGroupsOutputGroupSettingsFrameCaptureGroupSettingsTypeDef,
        "HlsGroupSettings": ClientDescribeChannelResponseEncoderSettingsOutputGroupsOutputGroupSettingsHlsGroupSettingsTypeDef,
        "MediaPackageGroupSettings": ClientDescribeChannelResponseEncoderSettingsOutputGroupsOutputGroupSettingsMediaPackageGroupSettingsTypeDef,
        "MsSmoothGroupSettings": ClientDescribeChannelResponseEncoderSettingsOutputGroupsOutputGroupSettingsMsSmoothGroupSettingsTypeDef,
        "MultiplexGroupSettings": Dict,
        "RtmpGroupSettings": ClientDescribeChannelResponseEncoderSettingsOutputGroupsOutputGroupSettingsRtmpGroupSettingsTypeDef,
        "UdpGroupSettings": ClientDescribeChannelResponseEncoderSettingsOutputGroupsOutputGroupSettingsUdpGroupSettingsTypeDef,
    },
    total=False,
)


class ClientDescribeChannelResponseEncoderSettingsOutputGroupsOutputGroupSettingsTypeDef(
    _ClientDescribeChannelResponseEncoderSettingsOutputGroupsOutputGroupSettingsTypeDef
):
    """
    Type definition for `ClientDescribeChannelResponseEncoderSettingsOutputGroups`
    `OutputGroupSettings`

    - **ArchiveGroupSettings** *(dict) --* Archive Group Settings

      - **Destination** *(dict) --* A directory and base filename where archive files should be
      written.

        - **DestinationRefId** *(string) --* Placeholder documentation for __string

      - **RolloverInterval** *(integer) --* Number of seconds to write to archive file before
      closing and starting a new one.

    - **FrameCaptureGroupSettings** *(dict) --* Frame Capture Group Settings

      - **Destination** *(dict) --* The destination for the frame capture files. Either the URI for
      an Amazon S3 bucket and object, plus a file name prefix (for example,
      s3ssl://sportsDelivery/highlights/20180820/curling_) or the URI for a MediaStore container,
      plus a file name prefix (for example, mediastoressl://sportsDelivery/20180820/curling_). The
      final file names consist of the prefix from the destination field (for example, "curling_") +
      name modifier + the counter (5 digits, starting from 00001) + extension (which is always
      .jpg). For example, curlingLow.00001.jpg

        - **DestinationRefId** *(string) --* Placeholder documentation for __string

    - **HlsGroupSettings** *(dict) --* Hls Group Settings

      - **AdMarkers** *(list) --* Choose one or more ad marker types to pass SCTE35 signals through
      to this group of Apple HLS outputs.

        - *(string) --* Hls Ad Markers

      - **BaseUrlContent** *(string) --* A partial URI prefix that will be prepended to each output
      in the media .m3u8 file. Can be used if base manifest is delivered from a different URL than
      the main .m3u8 file.

      - **BaseUrlManifest** *(string) --* A partial URI prefix that will be prepended to each output
      in the media .m3u8 file. Can be used if base manifest is delivered from a different URL than
      the main .m3u8 file.

      - **CaptionLanguageMappings** *(list) --* Mapping of up to 4 caption channels to caption
      languages. Is only meaningful if captionLanguageSetting is set to "insert".

        - *(dict) --* Maps a caption channel to an ISO 693-2 language code
        (http://www.loc.gov/standards/iso639-2), with an optional description.

          - **CaptionChannel** *(integer) --* The closed caption channel being described by this
          CaptionLanguageMapping. Each channel mapping must have a unique channel number (maximum of
          4)

          - **LanguageCode** *(string) --* Three character ISO 639-2 language code (see
          http://www.loc.gov/standards/iso639-2)

          - **LanguageDescription** *(string) --* Textual description of language

      - **CaptionLanguageSetting** *(string) --* Applies only to 608 Embedded output captions.
      insert: Include CLOSED-CAPTIONS lines in the manifest. Specify at least one language in the
      CC1 Language Code field. One CLOSED-CAPTION line is added for each Language Code you specify.
      Make sure to specify the languages in the order in which they appear in the original source
      (if the source is embedded format) or the order of the caption selectors (if the source is
      other than embedded). Otherwise, languages in the manifest will not match up properly with the
      output captions. none: Include CLOSED-CAPTIONS=NONE line in the manifest. omit: Omit any
      CLOSED-CAPTIONS line from the manifest.

      - **ClientCache** *(string) --* When set to "disabled", sets the #EXT-X-ALLOW-CACHE:no tag in
      the manifest, which prevents clients from saving media segments for later replay.

      - **CodecSpecification** *(string) --* Specification to use (RFC-6381 or the default RFC-4281)
      during m3u8 playlist generation.

      - **ConstantIv** *(string) --* For use with encryptionType. This is a 128-bit, 16-byte hex
      value represented by a 32-character text string. If ivSource is set to "explicit" then this
      parameter is required and is used as the IV for encryption.

      - **Destination** *(dict) --* A directory or HTTP destination for the HLS segments, manifest
      files, and encryption keys (if enabled).

        - **DestinationRefId** *(string) --* Placeholder documentation for __string

      - **DirectoryStructure** *(string) --* Place segments in subdirectories.

      - **EncryptionType** *(string) --* Encrypts the segments with the given encryption scheme.
      Exclude this parameter if no encryption is desired.

      - **HlsCdnSettings** *(dict) --* Parameters that control interactions with the CDN.

        - **HlsAkamaiSettings** *(dict) --* Hls Akamai Settings

          - **ConnectionRetryInterval** *(integer) --* Number of seconds to wait before retrying
          connection to the CDN if the connection is lost.

          - **FilecacheDuration** *(integer) --* Size in seconds of file cache for streaming
          outputs.

          - **HttpTransferMode** *(string) --* Specify whether or not to use chunked transfer
          encoding to Akamai. User should contact Akamai to enable this feature.

          - **NumRetries** *(integer) --* Number of retry attempts that will be made before the Live
          Event is put into an error state.

          - **RestartDelay** *(integer) --* If a streaming output fails, number of seconds to wait
          until a restart is initiated. A value of 0 means never restart.

          - **Salt** *(string) --* Salt for authenticated Akamai.

          - **Token** *(string) --* Token parameter for authenticated akamai. If not specified,
          _gda_ is used.

        - **HlsBasicPutSettings** *(dict) --* Hls Basic Put Settings

          - **ConnectionRetryInterval** *(integer) --* Number of seconds to wait before retrying
          connection to the CDN if the connection is lost.

          - **FilecacheDuration** *(integer) --* Size in seconds of file cache for streaming
          outputs.

          - **NumRetries** *(integer) --* Number of retry attempts that will be made before the Live
          Event is put into an error state.

          - **RestartDelay** *(integer) --* If a streaming output fails, number of seconds to wait
          until a restart is initiated. A value of 0 means never restart.

        - **HlsMediaStoreSettings** *(dict) --* Hls Media Store Settings

          - **ConnectionRetryInterval** *(integer) --* Number of seconds to wait before retrying
          connection to the CDN if the connection is lost.

          - **FilecacheDuration** *(integer) --* Size in seconds of file cache for streaming
          outputs.

          - **MediaStoreStorageClass** *(string) --* When set to temporal, output files are stored
          in non-persistent memory for faster reading and writing.

          - **NumRetries** *(integer) --* Number of retry attempts that will be made before the Live
          Event is put into an error state.

          - **RestartDelay** *(integer) --* If a streaming output fails, number of seconds to wait
          until a restart is initiated. A value of 0 means never restart.

        - **HlsWebdavSettings** *(dict) --* Hls Webdav Settings

          - **ConnectionRetryInterval** *(integer) --* Number of seconds to wait before retrying
          connection to the CDN if the connection is lost.

          - **FilecacheDuration** *(integer) --* Size in seconds of file cache for streaming
          outputs.

          - **HttpTransferMode** *(string) --* Specify whether or not to use chunked transfer
          encoding to WebDAV.

          - **NumRetries** *(integer) --* Number of retry attempts that will be made before the Live
          Event is put into an error state.

          - **RestartDelay** *(integer) --* If a streaming output fails, number of seconds to wait
          until a restart is initiated. A value of 0 means never restart.

      - **IFrameOnlyPlaylists** *(string) --* DISABLED: Do not create an I-frame-only manifest, but
      do create the master and media manifests (according to the Output Selection field). STANDARD:
      Create an I-frame-only manifest for each output that contains video, as well as the other
      manifests (according to the Output Selection field). The I-frame manifest contains a
      #EXT-X-I-FRAMES-ONLY tag to indicate it is I-frame only, and one or more #EXT-X-BYTERANGE
      entries identifying the I-frame position. For example, #EXT-X-BYTERANGE:160364@1461888"

      - **IndexNSegments** *(integer) --* Applies only if Mode field is LIVE. Specifies the maximum
      number of segments in the media manifest file. After this maximum, older segments are removed
      from the media manifest. This number must be less than or equal to the Keep Segments field.

      - **InputLossAction** *(string) --* Parameter that control output group behavior on input
      loss.

      - **IvInManifest** *(string) --* For use with encryptionType. The IV (Initialization Vector)
      is a 128-bit number used in conjunction with the key for encrypting blocks. If set to
      "include", IV is listed in the manifest, otherwise the IV is not in the manifest.

      - **IvSource** *(string) --* For use with encryptionType. The IV (Initialization Vector) is a
      128-bit number used in conjunction with the key for encrypting blocks. If this setting is
      "followsSegmentNumber", it will cause the IV to change every segment (to match the segment
      number). If this is set to "explicit", you must enter a constantIv value.

      - **KeepSegments** *(integer) --* Applies only if Mode field is LIVE. Specifies the number of
      media segments (.ts files) to retain in the destination directory.

      - **KeyFormat** *(string) --* The value specifies how the key is represented in the resource
      identified by the URI. If parameter is absent, an implicit value of "identity" is used. A
      reverse DNS string can also be given.

      - **KeyFormatVersions** *(string) --* Either a single positive integer version value or a
      slash delimited list of version values (1/2/3).

      - **KeyProviderSettings** *(dict) --* The key provider settings.

        - **StaticKeySettings** *(dict) --* Static Key Settings

          - **KeyProviderServer** *(dict) --* The URL of the license server used for protecting
          content.

            - **PasswordParam** *(string) --* key used to extract the password from EC2 Parameter
            store

            - **Uri** *(string) --* Uniform Resource Identifier - This should be a path to a file
            accessible to the Live system (eg. a http:// URI) depending on the output type. For
            example, a RTMP destination should have a uri simliar to: "rtmp://fmsserver/live".

            - **Username** *(string) --* Documentation update needed

          - **StaticKeyValue** *(string) --* Static key value as a 32 character hexadecimal string.

      - **ManifestCompression** *(string) --* When set to gzip, compresses HLS playlist.

      - **ManifestDurationFormat** *(string) --* Indicates whether the output manifest should use
      floating point or integer values for segment duration.

      - **MinSegmentLength** *(integer) --* When set, minimumSegmentLength is enforced by looking
      ahead and back within the specified range for a nearby avail and extending the segment size if
      needed.

      - **Mode** *(string) --* If "vod", all segments are indexed and kept permanently in the
      destination and manifest. If "live", only the number segments specified in keepSegments and
      indexNSegments are kept; newer segments replace older segments, which may prevent players from
      rewinding all the way to the beginning of the event. VOD mode uses HLS EXT-X-PLAYLIST-TYPE of
      EVENT while the channel is running, converting it to a "VOD" type manifest on completion of
      the stream.

      - **OutputSelection** *(string) --* MANIFESTSANDSEGMENTS: Generates manifests (master
      manifest, if applicable, and media manifests) for this output group. SEGMENTSONLY: Does not
      generate any manifests for this output group.

      - **ProgramDateTime** *(string) --* Includes or excludes EXT-X-PROGRAM-DATE-TIME tag in .m3u8
      manifest files. The value is calculated as follows: either the program date and time are
      initialized using the input timecode source, or the time is initialized using the input
      timecode source and the date is initialized using the timestampOffset.

      - **ProgramDateTimePeriod** *(integer) --* Period of insertion of EXT-X-PROGRAM-DATE-TIME
      entry, in seconds.

      - **RedundantManifest** *(string) --* ENABLED: The master manifest (.m3u8 file) for each
      pipeline includes information about both pipelines: first its own media files, then the media
      files of the other pipeline. This feature allows playout device that support stale manifest
      detection to switch from one manifest to the other, when the current manifest seems to be
      stale. There are still two destinations and two master manifests, but both master manifests
      reference the media files from both pipelines. DISABLED: The master manifest (.m3u8 file) for
      each pipeline includes information about its own pipeline only. For an HLS output group with
      MediaPackage as the destination, the DISABLED behavior is always followed. MediaPackage
      regenerates the manifests it serves to players so a redundant manifest from MediaLive is
      irrelevant.

      - **SegmentLength** *(integer) --* Length of MPEG-2 Transport Stream segments to create (in
      seconds). Note that segments will end on the next keyframe after this number of seconds, so
      actual segment length may be longer.

      - **SegmentationMode** *(string) --* useInputSegmentation has been deprecated. The configured
      segment size is always used.

      - **SegmentsPerSubdirectory** *(integer) --* Number of segments to write to a subdirectory
      before starting a new one. directoryStructure must be subdirectoryPerStream for this setting
      to have an effect.

      - **StreamInfResolution** *(string) --* Include or exclude RESOLUTION attribute for video in
      EXT-X-STREAM-INF tag of variant manifest.

      - **TimedMetadataId3Frame** *(string) --* Indicates ID3 frame that has the timecode.

      - **TimedMetadataId3Period** *(integer) --* Timed Metadata interval in seconds.

      - **TimestampDeltaMilliseconds** *(integer) --* Provides an extra millisecond delta offset to
      fine tune the timestamps.

      - **TsFileMode** *(string) --* SEGMENTEDFILES: Emit the program as segments - multiple .ts
      media files. SINGLEFILE: Applies only if Mode field is VOD. Emit the program as a single .ts
      media file. The media manifest includes #EXT-X-BYTERANGE tags to index segments for playback.
      A typical use for this value is when sending the output to AWS Elemental MediaConvert, which
      can accept only a single media file. Playback while the channel is running is not guaranteed
      due to HTTP server caching.

    - **MediaPackageGroupSettings** *(dict) --* Media Package Group Settings

      - **Destination** *(dict) --* MediaPackage channel destination.

        - **DestinationRefId** *(string) --* Placeholder documentation for __string

    - **MsSmoothGroupSettings** *(dict) --* Ms Smooth Group Settings

      - **AcquisitionPointId** *(string) --* The value of the "Acquisition Point Identity" element
      used in each message placed in the sparse track. Only enabled if sparseTrackType is not
      "none".

      - **AudioOnlyTimecodeControl** *(string) --* If set to passthrough for an audio-only MS Smooth
      output, the fragment absolute time will be set to the current timecode. This option does not
      write timecodes to the audio elementary stream.

      - **CertificateMode** *(string) --* If set to verifyAuthenticity, verify the https certificate
      chain to a trusted Certificate Authority (CA). This will cause https outputs to self-signed
      certificates to fail.

      - **ConnectionRetryInterval** *(integer) --* Number of seconds to wait before retrying
      connection to the IIS server if the connection is lost. Content will be cached during this
      time and the cache will be be delivered to the IIS server once the connection is
      re-established.

      - **Destination** *(dict) --* Smooth Streaming publish point on an IIS server. Elemental Live
      acts as a "Push" encoder to IIS.

        - **DestinationRefId** *(string) --* Placeholder documentation for __string

      - **EventId** *(string) --* MS Smooth event ID to be sent to the IIS server. Should only be
      specified if eventIdMode is set to useConfigured.

      - **EventIdMode** *(string) --* Specifies whether or not to send an event ID to the IIS
      server. If no event ID is sent and the same Live Event is used without changing the publishing
      point, clients might see cached video from the previous run. Options: - "useConfigured" - use
      the value provided in eventId - "useTimestamp" - generate and send an event ID based on the
      current timestamp - "noEventId" - do not send an event ID to the IIS server.

      - **EventStopBehavior** *(string) --* When set to sendEos, send EOS signal to IIS server when
      stopping the event

      - **FilecacheDuration** *(integer) --* Size in seconds of file cache for streaming outputs.

      - **FragmentLength** *(integer) --* Length of mp4 fragments to generate (in seconds). Fragment
      length must be compatible with GOP size and framerate.

      - **InputLossAction** *(string) --* Parameter that control output group behavior on input
      loss.

      - **NumRetries** *(integer) --* Number of retry attempts.

      - **RestartDelay** *(integer) --* Number of seconds before initiating a restart due to output
      failure, due to exhausting the numRetries on one segment, or exceeding filecacheDuration.

      - **SegmentationMode** *(string) --* useInputSegmentation has been deprecated. The configured
      segment size is always used.

      - **SendDelayMs** *(integer) --* Number of milliseconds to delay the output from the second
      pipeline.

      - **SparseTrackType** *(string) --* If set to scte35, use incoming SCTE-35 messages to
      generate a sparse track in this group of MS-Smooth outputs.

      - **StreamManifestBehavior** *(string) --* When set to send, send stream manifest so
      publishing point doesn't start until all streams start.

      - **TimestampOffset** *(string) --* Timestamp offset for the event. Only used if
      timestampOffsetMode is set to useConfiguredOffset.

      - **TimestampOffsetMode** *(string) --* Type of timestamp date offset to use. -
      useEventStartDate: Use the date the event was started as the offset - useConfiguredOffset: Use
      an explicitly configured date as the offset

    - **MultiplexGroupSettings** *(dict) --* Multiplex Group Settings

    - **RtmpGroupSettings** *(dict) --* Rtmp Group Settings

      - **AuthenticationScheme** *(string) --* Authentication scheme to use when connecting with CDN

      - **CacheFullBehavior** *(string) --* Controls behavior when content cache fills up. If remote
      origin server stalls the RTMP connection and does not accept content fast enough the 'Media
      Cache' will fill up. When the cache reaches the duration specified by cacheLength the cache
      will stop accepting new content. If set to disconnectImmediately, the RTMP output will force a
      disconnect. Clear the media cache, and reconnect after restartDelay seconds. If set to
      waitForServer, the RTMP output will wait up to 5 minutes to allow the origin server to begin
      accepting data again.

      - **CacheLength** *(integer) --* Cache length, in seconds, is used to calculate buffer size.

      - **CaptionData** *(string) --* Controls the types of data that passes to onCaptionInfo
      outputs. If set to 'all' then 608 and 708 carried DTVCC data will be passed. If set to
      'field1AndField2608' then DTVCC data will be stripped out, but 608 data from both fields will
      be passed. If set to 'field1608' then only the data carried in 608 from field 1 video will be
      passed.

      - **InputLossAction** *(string) --* Controls the behavior of this RTMP group if input becomes
      unavailable. - emitOutput: Emit a slate until input returns. - pauseOutput: Stop transmitting
      data until input returns. This does not close the underlying RTMP connection.

      - **RestartDelay** *(integer) --* If a streaming output fails, number of seconds to wait until
      a restart is initiated. A value of 0 means never restart.

    - **UdpGroupSettings** *(dict) --* Udp Group Settings

      - **InputLossAction** *(string) --* Specifies behavior of last resort when input video is
      lost, and no more backup inputs are available. When dropTs is selected the entire transport
      stream will stop being emitted. When dropProgram is selected the program can be dropped from
      the transport stream (and replaced with null packets to meet the TS bitrate requirement). Or,
      when emitProgram is chosen the transport stream will continue to be produced normally with
      repeat frames, black frames, or slate frames substituted for the absent input video.

      - **TimedMetadataId3Frame** *(string) --* Indicates ID3 frame that has the timecode.

      - **TimedMetadataId3Period** *(integer) --* Timed Metadata interval in seconds.
    """


_ClientDescribeChannelResponseEncoderSettingsOutputGroupsOutputsOutputSettingsArchiveOutputSettingsContainerSettingsM2tsSettingsDvbNitSettingsTypeDef = TypedDict(
    "_ClientDescribeChannelResponseEncoderSettingsOutputGroupsOutputsOutputSettingsArchiveOutputSettingsContainerSettingsM2tsSettingsDvbNitSettingsTypeDef",
    {"NetworkId": int, "NetworkName": str, "RepInterval": int},
    total=False,
)


class ClientDescribeChannelResponseEncoderSettingsOutputGroupsOutputsOutputSettingsArchiveOutputSettingsContainerSettingsM2tsSettingsDvbNitSettingsTypeDef(
    _ClientDescribeChannelResponseEncoderSettingsOutputGroupsOutputsOutputSettingsArchiveOutputSettingsContainerSettingsM2tsSettingsDvbNitSettingsTypeDef
):
    """
    Type definition for
    `ClientDescribeChannelResponseEncoderSettingsOutputGroupsOutputsOutputSettingsArchiveOutputSettingsContainerSettingsM2tsSettings`
    `DvbNitSettings`

    - **NetworkId** *(integer) --* The numeric value placed in the Network Information Table (NIT).

    - **NetworkName** *(string) --* The network name text placed in the networkNameDescriptor inside
    the Network Information Table. Maximum length is 256 characters.

    - **RepInterval** *(integer) --* The number of milliseconds between instances of this table in
    the output transport stream.
    """


_ClientDescribeChannelResponseEncoderSettingsOutputGroupsOutputsOutputSettingsArchiveOutputSettingsContainerSettingsM2tsSettingsDvbSdtSettingsTypeDef = TypedDict(
    "_ClientDescribeChannelResponseEncoderSettingsOutputGroupsOutputsOutputSettingsArchiveOutputSettingsContainerSettingsM2tsSettingsDvbSdtSettingsTypeDef",
    {"OutputSdt": str, "RepInterval": int, "ServiceName": str, "ServiceProviderName": str},
    total=False,
)


class ClientDescribeChannelResponseEncoderSettingsOutputGroupsOutputsOutputSettingsArchiveOutputSettingsContainerSettingsM2tsSettingsDvbSdtSettingsTypeDef(
    _ClientDescribeChannelResponseEncoderSettingsOutputGroupsOutputsOutputSettingsArchiveOutputSettingsContainerSettingsM2tsSettingsDvbSdtSettingsTypeDef
):
    """
    Type definition for
    `ClientDescribeChannelResponseEncoderSettingsOutputGroupsOutputsOutputSettingsArchiveOutputSettingsContainerSettingsM2tsSettings`
    `DvbSdtSettings`

    - **OutputSdt** *(string) --* Selects method of inserting SDT information into output stream.
    The sdtFollow setting copies SDT information from input stream to output stream. The
    sdtFollowIfPresent setting copies SDT information from input stream to output stream if SDT
    information is present in the input, otherwise it will fall back on the user-defined values. The
    sdtManual setting means user will enter the SDT information. The sdtNone setting means output
    stream will not contain SDT information.

    - **RepInterval** *(integer) --* The number of milliseconds between instances of this table in
    the output transport stream.

    - **ServiceName** *(string) --* The service name placed in the serviceDescriptor in the Service
    Description Table. Maximum length is 256 characters.

    - **ServiceProviderName** *(string) --* The service provider name placed in the
    serviceDescriptor in the Service Description Table. Maximum length is 256 characters.
    """


_ClientDescribeChannelResponseEncoderSettingsOutputGroupsOutputsOutputSettingsArchiveOutputSettingsContainerSettingsM2tsSettingsDvbTdtSettingsTypeDef = TypedDict(
    "_ClientDescribeChannelResponseEncoderSettingsOutputGroupsOutputsOutputSettingsArchiveOutputSettingsContainerSettingsM2tsSettingsDvbTdtSettingsTypeDef",
    {"RepInterval": int},
    total=False,
)


class ClientDescribeChannelResponseEncoderSettingsOutputGroupsOutputsOutputSettingsArchiveOutputSettingsContainerSettingsM2tsSettingsDvbTdtSettingsTypeDef(
    _ClientDescribeChannelResponseEncoderSettingsOutputGroupsOutputsOutputSettingsArchiveOutputSettingsContainerSettingsM2tsSettingsDvbTdtSettingsTypeDef
):
    """
    Type definition for
    `ClientDescribeChannelResponseEncoderSettingsOutputGroupsOutputsOutputSettingsArchiveOutputSettingsContainerSettingsM2tsSettings`
    `DvbTdtSettings`

    - **RepInterval** *(integer) --* The number of milliseconds between instances of this table in
    the output transport stream.
    """


_ClientDescribeChannelResponseEncoderSettingsOutputGroupsOutputsOutputSettingsArchiveOutputSettingsContainerSettingsM2tsSettingsTypeDef = TypedDict(
    "_ClientDescribeChannelResponseEncoderSettingsOutputGroupsOutputsOutputSettingsArchiveOutputSettingsContainerSettingsM2tsSettingsTypeDef",
    {
        "AbsentInputAudioBehavior": str,
        "Arib": str,
        "AribCaptionsPid": str,
        "AribCaptionsPidControl": str,
        "AudioBufferModel": str,
        "AudioFramesPerPes": int,
        "AudioPids": str,
        "AudioStreamType": str,
        "Bitrate": int,
        "BufferModel": str,
        "CcDescriptor": str,
        "DvbNitSettings": ClientDescribeChannelResponseEncoderSettingsOutputGroupsOutputsOutputSettingsArchiveOutputSettingsContainerSettingsM2tsSettingsDvbNitSettingsTypeDef,
        "DvbSdtSettings": ClientDescribeChannelResponseEncoderSettingsOutputGroupsOutputsOutputSettingsArchiveOutputSettingsContainerSettingsM2tsSettingsDvbSdtSettingsTypeDef,
        "DvbSubPids": str,
        "DvbTdtSettings": ClientDescribeChannelResponseEncoderSettingsOutputGroupsOutputsOutputSettingsArchiveOutputSettingsContainerSettingsM2tsSettingsDvbTdtSettingsTypeDef,
        "DvbTeletextPid": str,
        "Ebif": str,
        "EbpAudioInterval": str,
        "EbpLookaheadMs": int,
        "EbpPlacement": str,
        "EcmPid": str,
        "EsRateInPes": str,
        "EtvPlatformPid": str,
        "EtvSignalPid": str,
        "FragmentTime": float,
        "Klv": str,
        "KlvDataPids": str,
        "NielsenId3Behavior": str,
        "NullPacketBitrate": float,
        "PatInterval": int,
        "PcrControl": str,
        "PcrPeriod": int,
        "PcrPid": str,
        "PmtInterval": int,
        "PmtPid": str,
        "ProgramNum": int,
        "RateMode": str,
        "Scte27Pids": str,
        "Scte35Control": str,
        "Scte35Pid": str,
        "SegmentationMarkers": str,
        "SegmentationStyle": str,
        "SegmentationTime": float,
        "TimedMetadataBehavior": str,
        "TimedMetadataPid": str,
        "TransportStreamId": int,
        "VideoPid": str,
    },
    total=False,
)


class ClientDescribeChannelResponseEncoderSettingsOutputGroupsOutputsOutputSettingsArchiveOutputSettingsContainerSettingsM2tsSettingsTypeDef(
    _ClientDescribeChannelResponseEncoderSettingsOutputGroupsOutputsOutputSettingsArchiveOutputSettingsContainerSettingsM2tsSettingsTypeDef
):
    """
    Type definition for
    `ClientDescribeChannelResponseEncoderSettingsOutputGroupsOutputsOutputSettingsArchiveOutputSettingsContainerSettings`
    `M2tsSettings`

    - **AbsentInputAudioBehavior** *(string) --* When set to drop, output audio streams will be
    removed from the program if the selected input audio stream is removed from the input. This
    allows the output audio configuration to dynamically change based on input configuration. If
    this is set to encodeSilence, all output audio streams will output encoded silence when not
    connected to an active input stream.

    - **Arib** *(string) --* When set to enabled, uses ARIB-compliant field muxing and removes video
    descriptor.

    - **AribCaptionsPid** *(string) --* Packet Identifier (PID) for ARIB Captions in the transport
    stream. Can be entered as a decimal or hexadecimal value. Valid values are 32 (or 0x20)..8182
    (or 0x1ff6).

    - **AribCaptionsPidControl** *(string) --* If set to auto, pid number used for ARIB Captions
    will be auto-selected from unused pids. If set to useConfigured, ARIB Captions will be on the
    configured pid number.

    - **AudioBufferModel** *(string) --* When set to dvb, uses DVB buffer model for Dolby Digital
    audio. When set to atsc, the ATSC model is used.

    - **AudioFramesPerPes** *(integer) --* The number of audio frames to insert for each PES packet.

    - **AudioPids** *(string) --* Packet Identifier (PID) of the elementary audio stream(s) in the
    transport stream. Multiple values are accepted, and can be entered in ranges and/or by comma
    separation. Can be entered as decimal or hexadecimal values. Each PID specified must be in the
    range of 32 (or 0x20)..8182 (or 0x1ff6).

    - **AudioStreamType** *(string) --* When set to atsc, uses stream type = 0x81 for AC3 and stream
    type = 0x87 for EAC3. When set to dvb, uses stream type = 0x06.

    - **Bitrate** *(integer) --* The output bitrate of the transport stream in bits per second.
    Setting to 0 lets the muxer automatically determine the appropriate bitrate.

    - **BufferModel** *(string) --* If set to multiplex, use multiplex buffer model for accurate
    interleaving. Setting to bufferModel to none can lead to lower latency, but low-memory devices
    may not be able to play back the stream without interruptions.

    - **CcDescriptor** *(string) --* When set to enabled, generates captionServiceDescriptor in PMT.

    - **DvbNitSettings** *(dict) --* Inserts DVB Network Information Table (NIT) at the specified
    table repetition interval.

      - **NetworkId** *(integer) --* The numeric value placed in the Network Information Table
      (NIT).

      - **NetworkName** *(string) --* The network name text placed in the networkNameDescriptor
      inside the Network Information Table. Maximum length is 256 characters.

      - **RepInterval** *(integer) --* The number of milliseconds between instances of this table in
      the output transport stream.

    - **DvbSdtSettings** *(dict) --* Inserts DVB Service Description Table (SDT) at the specified
    table repetition interval.

      - **OutputSdt** *(string) --* Selects method of inserting SDT information into output stream.
      The sdtFollow setting copies SDT information from input stream to output stream. The
      sdtFollowIfPresent setting copies SDT information from input stream to output stream if SDT
      information is present in the input, otherwise it will fall back on the user-defined values.
      The sdtManual setting means user will enter the SDT information. The sdtNone setting means
      output stream will not contain SDT information.

      - **RepInterval** *(integer) --* The number of milliseconds between instances of this table in
      the output transport stream.

      - **ServiceName** *(string) --* The service name placed in the serviceDescriptor in the
      Service Description Table. Maximum length is 256 characters.

      - **ServiceProviderName** *(string) --* The service provider name placed in the
      serviceDescriptor in the Service Description Table. Maximum length is 256 characters.

    - **DvbSubPids** *(string) --* Packet Identifier (PID) for input source DVB Subtitle data to
    this output. Multiple values are accepted, and can be entered in ranges and/or by comma
    separation. Can be entered as decimal or hexadecimal values. Each PID specified must be in the
    range of 32 (or 0x20)..8182 (or 0x1ff6).

    - **DvbTdtSettings** *(dict) --* Inserts DVB Time and Date Table (TDT) at the specified table
    repetition interval.

      - **RepInterval** *(integer) --* The number of milliseconds between instances of this table in
      the output transport stream.

    - **DvbTeletextPid** *(string) --* Packet Identifier (PID) for input source DVB Teletext data to
    this output. Can be entered as a decimal or hexadecimal value. Valid values are 32 (or
    0x20)..8182 (or 0x1ff6).

    - **Ebif** *(string) --* If set to passthrough, passes any EBIF data from the input source to
    this output.

    - **EbpAudioInterval** *(string) --* When videoAndFixedIntervals is selected, audio EBP markers
    will be added to partitions 3 and 4. The interval between these additional markers will be
    fixed, and will be slightly shorter than the video EBP marker interval. Only available when EBP
    Cablelabs segmentation markers are selected. Partitions 1 and 2 will always follow the video
    interval.

    - **EbpLookaheadMs** *(integer) --* When set, enforces that Encoder Boundary Points do not come
    within the specified time interval of each other by looking ahead at input video. If another EBP
    is going to come in within the specified time interval, the current EBP is not emitted, and the
    segment is "stretched" to the next marker. The lookahead value does not add latency to the
    system. The Live Event must be configured elsewhere to create sufficient latency to make the
    lookahead accurate.

    - **EbpPlacement** *(string) --* Controls placement of EBP on Audio PIDs. If set to
    videoAndAudioPids, EBP markers will be placed on the video PID and all audio PIDs. If set to
    videoPid, EBP markers will be placed on only the video PID.

    - **EcmPid** *(string) --* This field is unused and deprecated.

    - **EsRateInPes** *(string) --* Include or exclude the ES Rate field in the PES header.

    - **EtvPlatformPid** *(string) --* Packet Identifier (PID) for input source ETV Platform data to
    this output. Can be entered as a decimal or hexadecimal value. Valid values are 32 (or
    0x20)..8182 (or 0x1ff6).

    - **EtvSignalPid** *(string) --* Packet Identifier (PID) for input source ETV Signal data to
    this output. Can be entered as a decimal or hexadecimal value. Valid values are 32 (or
    0x20)..8182 (or 0x1ff6).

    - **FragmentTime** *(float) --* The length in seconds of each fragment. Only used with EBP
    markers.

    - **Klv** *(string) --* If set to passthrough, passes any KLV data from the input source to this
    output.

    - **KlvDataPids** *(string) --* Packet Identifier (PID) for input source KLV data to this
    output. Multiple values are accepted, and can be entered in ranges and/or by comma separation.
    Can be entered as decimal or hexadecimal values. Each PID specified must be in the range of 32
    (or 0x20)..8182 (or 0x1ff6).

    - **NielsenId3Behavior** *(string) --* If set to passthrough, Nielsen inaudible tones for media
    tracking will be detected in the input audio and an equivalent ID3 tag will be inserted in the
    output.

    - **NullPacketBitrate** *(float) --* Value in bits per second of extra null packets to insert
    into the transport stream. This can be used if a downstream encryption system requires periodic
    null packets.

    - **PatInterval** *(integer) --* The number of milliseconds between instances of this table in
    the output transport stream. Valid values are 0, 10..1000.

    - **PcrControl** *(string) --* When set to pcrEveryPesPacket, a Program Clock Reference value is
    inserted for every Packetized Elementary Stream (PES) header. This parameter is effective only
    when the PCR PID is the same as the video or audio elementary stream.

    - **PcrPeriod** *(integer) --* Maximum time in milliseconds between Program Clock Reference
    (PCRs) inserted into the transport stream.

    - **PcrPid** *(string) --* Packet Identifier (PID) of the Program Clock Reference (PCR) in the
    transport stream. When no value is given, the encoder will assign the same value as the Video
    PID. Can be entered as a decimal or hexadecimal value. Valid values are 32 (or 0x20)..8182 (or
    0x1ff6).

    - **PmtInterval** *(integer) --* The number of milliseconds between instances of this table in
    the output transport stream. Valid values are 0, 10..1000.

    - **PmtPid** *(string) --* Packet Identifier (PID) for the Program Map Table (PMT) in the
    transport stream. Can be entered as a decimal or hexadecimal value. Valid values are 32 (or
    0x20)..8182 (or 0x1ff6).

    - **ProgramNum** *(integer) --* The value of the program number field in the Program Map Table.

    - **RateMode** *(string) --* When vbr, does not insert null packets into transport stream to
    fill specified bitrate. The bitrate setting acts as the maximum bitrate when vbr is set.

    - **Scte27Pids** *(string) --* Packet Identifier (PID) for input source SCTE-27 data to this
    output. Multiple values are accepted, and can be entered in ranges and/or by comma separation.
    Can be entered as decimal or hexadecimal values. Each PID specified must be in the range of 32
    (or 0x20)..8182 (or 0x1ff6).

    - **Scte35Control** *(string) --* Optionally pass SCTE-35 signals from the input source to this
    output.

    - **Scte35Pid** *(string) --* Packet Identifier (PID) of the SCTE-35 stream in the transport
    stream. Can be entered as a decimal or hexadecimal value. Valid values are 32 (or 0x20)..8182
    (or 0x1ff6).

    - **SegmentationMarkers** *(string) --* Inserts segmentation markers at each segmentationTime
    period. raiSegstart sets the Random Access Indicator bit in the adaptation field. raiAdapt sets
    the RAI bit and adds the current timecode in the private data bytes. psiSegstart inserts PAT and
    PMT tables at the start of segments. ebp adds Encoder Boundary Point information to the
    adaptation field as per OpenCable specification OC-SP-EBP-I01-130118. ebpLegacy adds Encoder
    Boundary Point information to the adaptation field using a legacy proprietary format.

    - **SegmentationStyle** *(string) --* The segmentation style parameter controls how segmentation
    markers are inserted into the transport stream. With avails, it is possible that segments may be
    truncated, which can influence where future segmentation markers are inserted. When a
    segmentation style of "resetCadence" is selected and a segment is truncated due to an avail, we
    will reset the segmentation cadence. This means the subsequent segment will have a duration of
    $segmentationTime seconds. When a segmentation style of "maintainCadence" is selected and a
    segment is truncated due to an avail, we will not reset the segmentation cadence. This means the
    subsequent segment will likely be truncated as well. However, all segments after that will have
    a duration of $segmentationTime seconds. Note that EBP lookahead is a slight exception to this
    rule.

    - **SegmentationTime** *(float) --* The length in seconds of each segment. Required unless
    markers is set to None_.

    - **TimedMetadataBehavior** *(string) --* When set to passthrough, timed metadata will be passed
    through from input to output.

    - **TimedMetadataPid** *(string) --* Packet Identifier (PID) of the timed metadata stream in the
    transport stream. Can be entered as a decimal or hexadecimal value. Valid values are 32 (or
    0x20)..8182 (or 0x1ff6).

    - **TransportStreamId** *(integer) --* The value of the transport stream ID field in the Program
    Map Table.

    - **VideoPid** *(string) --* Packet Identifier (PID) of the elementary video stream in the
    transport stream. Can be entered as a decimal or hexadecimal value. Valid values are 32 (or
    0x20)..8182 (or 0x1ff6).
    """


_ClientDescribeChannelResponseEncoderSettingsOutputGroupsOutputsOutputSettingsArchiveOutputSettingsContainerSettingsTypeDef = TypedDict(
    "_ClientDescribeChannelResponseEncoderSettingsOutputGroupsOutputsOutputSettingsArchiveOutputSettingsContainerSettingsTypeDef",
    {
        "M2tsSettings": ClientDescribeChannelResponseEncoderSettingsOutputGroupsOutputsOutputSettingsArchiveOutputSettingsContainerSettingsM2tsSettingsTypeDef
    },
    total=False,
)


class ClientDescribeChannelResponseEncoderSettingsOutputGroupsOutputsOutputSettingsArchiveOutputSettingsContainerSettingsTypeDef(
    _ClientDescribeChannelResponseEncoderSettingsOutputGroupsOutputsOutputSettingsArchiveOutputSettingsContainerSettingsTypeDef
):
    """
    Type definition for
    `ClientDescribeChannelResponseEncoderSettingsOutputGroupsOutputsOutputSettingsArchiveOutputSettings`
    `ContainerSettings`

    - **M2tsSettings** *(dict) --* M2ts Settings

      - **AbsentInputAudioBehavior** *(string) --* When set to drop, output audio streams will be
      removed from the program if the selected input audio stream is removed from the input. This
      allows the output audio configuration to dynamically change based on input configuration. If
      this is set to encodeSilence, all output audio streams will output encoded silence when not
      connected to an active input stream.

      - **Arib** *(string) --* When set to enabled, uses ARIB-compliant field muxing and removes
      video descriptor.

      - **AribCaptionsPid** *(string) --* Packet Identifier (PID) for ARIB Captions in the transport
      stream. Can be entered as a decimal or hexadecimal value. Valid values are 32 (or 0x20)..8182
      (or 0x1ff6).

      - **AribCaptionsPidControl** *(string) --* If set to auto, pid number used for ARIB Captions
      will be auto-selected from unused pids. If set to useConfigured, ARIB Captions will be on the
      configured pid number.

      - **AudioBufferModel** *(string) --* When set to dvb, uses DVB buffer model for Dolby Digital
      audio. When set to atsc, the ATSC model is used.

      - **AudioFramesPerPes** *(integer) --* The number of audio frames to insert for each PES
      packet.

      - **AudioPids** *(string) --* Packet Identifier (PID) of the elementary audio stream(s) in the
      transport stream. Multiple values are accepted, and can be entered in ranges and/or by comma
      separation. Can be entered as decimal or hexadecimal values. Each PID specified must be in the
      range of 32 (or 0x20)..8182 (or 0x1ff6).

      - **AudioStreamType** *(string) --* When set to atsc, uses stream type = 0x81 for AC3 and
      stream type = 0x87 for EAC3. When set to dvb, uses stream type = 0x06.

      - **Bitrate** *(integer) --* The output bitrate of the transport stream in bits per second.
      Setting to 0 lets the muxer automatically determine the appropriate bitrate.

      - **BufferModel** *(string) --* If set to multiplex, use multiplex buffer model for accurate
      interleaving. Setting to bufferModel to none can lead to lower latency, but low-memory devices
      may not be able to play back the stream without interruptions.

      - **CcDescriptor** *(string) --* When set to enabled, generates captionServiceDescriptor in
      PMT.

      - **DvbNitSettings** *(dict) --* Inserts DVB Network Information Table (NIT) at the specified
      table repetition interval.

        - **NetworkId** *(integer) --* The numeric value placed in the Network Information Table
        (NIT).

        - **NetworkName** *(string) --* The network name text placed in the networkNameDescriptor
        inside the Network Information Table. Maximum length is 256 characters.

        - **RepInterval** *(integer) --* The number of milliseconds between instances of this table
        in the output transport stream.

      - **DvbSdtSettings** *(dict) --* Inserts DVB Service Description Table (SDT) at the specified
      table repetition interval.

        - **OutputSdt** *(string) --* Selects method of inserting SDT information into output
        stream. The sdtFollow setting copies SDT information from input stream to output stream. The
        sdtFollowIfPresent setting copies SDT information from input stream to output stream if SDT
        information is present in the input, otherwise it will fall back on the user-defined values.
        The sdtManual setting means user will enter the SDT information. The sdtNone setting means
        output stream will not contain SDT information.

        - **RepInterval** *(integer) --* The number of milliseconds between instances of this table
        in the output transport stream.

        - **ServiceName** *(string) --* The service name placed in the serviceDescriptor in the
        Service Description Table. Maximum length is 256 characters.

        - **ServiceProviderName** *(string) --* The service provider name placed in the
        serviceDescriptor in the Service Description Table. Maximum length is 256 characters.

      - **DvbSubPids** *(string) --* Packet Identifier (PID) for input source DVB Subtitle data to
      this output. Multiple values are accepted, and can be entered in ranges and/or by comma
      separation. Can be entered as decimal or hexadecimal values. Each PID specified must be in the
      range of 32 (or 0x20)..8182 (or 0x1ff6).

      - **DvbTdtSettings** *(dict) --* Inserts DVB Time and Date Table (TDT) at the specified table
      repetition interval.

        - **RepInterval** *(integer) --* The number of milliseconds between instances of this table
        in the output transport stream.

      - **DvbTeletextPid** *(string) --* Packet Identifier (PID) for input source DVB Teletext data
      to this output. Can be entered as a decimal or hexadecimal value. Valid values are 32 (or
      0x20)..8182 (or 0x1ff6).

      - **Ebif** *(string) --* If set to passthrough, passes any EBIF data from the input source to
      this output.

      - **EbpAudioInterval** *(string) --* When videoAndFixedIntervals is selected, audio EBP
      markers will be added to partitions 3 and 4. The interval between these additional markers
      will be fixed, and will be slightly shorter than the video EBP marker interval. Only available
      when EBP Cablelabs segmentation markers are selected. Partitions 1 and 2 will always follow
      the video interval.

      - **EbpLookaheadMs** *(integer) --* When set, enforces that Encoder Boundary Points do not
      come within the specified time interval of each other by looking ahead at input video. If
      another EBP is going to come in within the specified time interval, the current EBP is not
      emitted, and the segment is "stretched" to the next marker. The lookahead value does not add
      latency to the system. The Live Event must be configured elsewhere to create sufficient
      latency to make the lookahead accurate.

      - **EbpPlacement** *(string) --* Controls placement of EBP on Audio PIDs. If set to
      videoAndAudioPids, EBP markers will be placed on the video PID and all audio PIDs. If set to
      videoPid, EBP markers will be placed on only the video PID.

      - **EcmPid** *(string) --* This field is unused and deprecated.

      - **EsRateInPes** *(string) --* Include or exclude the ES Rate field in the PES header.

      - **EtvPlatformPid** *(string) --* Packet Identifier (PID) for input source ETV Platform data
      to this output. Can be entered as a decimal or hexadecimal value. Valid values are 32 (or
      0x20)..8182 (or 0x1ff6).

      - **EtvSignalPid** *(string) --* Packet Identifier (PID) for input source ETV Signal data to
      this output. Can be entered as a decimal or hexadecimal value. Valid values are 32 (or
      0x20)..8182 (or 0x1ff6).

      - **FragmentTime** *(float) --* The length in seconds of each fragment. Only used with EBP
      markers.

      - **Klv** *(string) --* If set to passthrough, passes any KLV data from the input source to
      this output.

      - **KlvDataPids** *(string) --* Packet Identifier (PID) for input source KLV data to this
      output. Multiple values are accepted, and can be entered in ranges and/or by comma separation.
      Can be entered as decimal or hexadecimal values. Each PID specified must be in the range of 32
      (or 0x20)..8182 (or 0x1ff6).

      - **NielsenId3Behavior** *(string) --* If set to passthrough, Nielsen inaudible tones for
      media tracking will be detected in the input audio and an equivalent ID3 tag will be inserted
      in the output.

      - **NullPacketBitrate** *(float) --* Value in bits per second of extra null packets to insert
      into the transport stream. This can be used if a downstream encryption system requires
      periodic null packets.

      - **PatInterval** *(integer) --* The number of milliseconds between instances of this table in
      the output transport stream. Valid values are 0, 10..1000.

      - **PcrControl** *(string) --* When set to pcrEveryPesPacket, a Program Clock Reference value
      is inserted for every Packetized Elementary Stream (PES) header. This parameter is effective
      only when the PCR PID is the same as the video or audio elementary stream.

      - **PcrPeriod** *(integer) --* Maximum time in milliseconds between Program Clock Reference
      (PCRs) inserted into the transport stream.

      - **PcrPid** *(string) --* Packet Identifier (PID) of the Program Clock Reference (PCR) in the
      transport stream. When no value is given, the encoder will assign the same value as the Video
      PID. Can be entered as a decimal or hexadecimal value. Valid values are 32 (or 0x20)..8182 (or
      0x1ff6).

      - **PmtInterval** *(integer) --* The number of milliseconds between instances of this table in
      the output transport stream. Valid values are 0, 10..1000.

      - **PmtPid** *(string) --* Packet Identifier (PID) for the Program Map Table (PMT) in the
      transport stream. Can be entered as a decimal or hexadecimal value. Valid values are 32 (or
      0x20)..8182 (or 0x1ff6).

      - **ProgramNum** *(integer) --* The value of the program number field in the Program Map
      Table.

      - **RateMode** *(string) --* When vbr, does not insert null packets into transport stream to
      fill specified bitrate. The bitrate setting acts as the maximum bitrate when vbr is set.

      - **Scte27Pids** *(string) --* Packet Identifier (PID) for input source SCTE-27 data to this
      output. Multiple values are accepted, and can be entered in ranges and/or by comma separation.
      Can be entered as decimal or hexadecimal values. Each PID specified must be in the range of 32
      (or 0x20)..8182 (or 0x1ff6).

      - **Scte35Control** *(string) --* Optionally pass SCTE-35 signals from the input source to
      this output.

      - **Scte35Pid** *(string) --* Packet Identifier (PID) of the SCTE-35 stream in the transport
      stream. Can be entered as a decimal or hexadecimal value. Valid values are 32 (or 0x20)..8182
      (or 0x1ff6).

      - **SegmentationMarkers** *(string) --* Inserts segmentation markers at each segmentationTime
      period. raiSegstart sets the Random Access Indicator bit in the adaptation field. raiAdapt
      sets the RAI bit and adds the current timecode in the private data bytes. psiSegstart inserts
      PAT and PMT tables at the start of segments. ebp adds Encoder Boundary Point information to
      the adaptation field as per OpenCable specification OC-SP-EBP-I01-130118. ebpLegacy adds
      Encoder Boundary Point information to the adaptation field using a legacy proprietary format.

      - **SegmentationStyle** *(string) --* The segmentation style parameter controls how
      segmentation markers are inserted into the transport stream. With avails, it is possible that
      segments may be truncated, which can influence where future segmentation markers are inserted.
      When a segmentation style of "resetCadence" is selected and a segment is truncated due to an
      avail, we will reset the segmentation cadence. This means the subsequent segment will have a
      duration of $segmentationTime seconds. When a segmentation style of "maintainCadence" is
      selected and a segment is truncated due to an avail, we will not reset the segmentation
      cadence. This means the subsequent segment will likely be truncated as well. However, all
      segments after that will have a duration of $segmentationTime seconds. Note that EBP lookahead
      is a slight exception to this rule.

      - **SegmentationTime** *(float) --* The length in seconds of each segment. Required unless
      markers is set to None_.

      - **TimedMetadataBehavior** *(string) --* When set to passthrough, timed metadata will be
      passed through from input to output.

      - **TimedMetadataPid** *(string) --* Packet Identifier (PID) of the timed metadata stream in
      the transport stream. Can be entered as a decimal or hexadecimal value. Valid values are 32
      (or 0x20)..8182 (or 0x1ff6).

      - **TransportStreamId** *(integer) --* The value of the transport stream ID field in the
      Program Map Table.

      - **VideoPid** *(string) --* Packet Identifier (PID) of the elementary video stream in the
      transport stream. Can be entered as a decimal or hexadecimal value. Valid values are 32 (or
      0x20)..8182 (or 0x1ff6).
    """


_ClientDescribeChannelResponseEncoderSettingsOutputGroupsOutputsOutputSettingsArchiveOutputSettingsTypeDef = TypedDict(
    "_ClientDescribeChannelResponseEncoderSettingsOutputGroupsOutputsOutputSettingsArchiveOutputSettingsTypeDef",
    {
        "ContainerSettings": ClientDescribeChannelResponseEncoderSettingsOutputGroupsOutputsOutputSettingsArchiveOutputSettingsContainerSettingsTypeDef,
        "Extension": str,
        "NameModifier": str,
    },
    total=False,
)


class ClientDescribeChannelResponseEncoderSettingsOutputGroupsOutputsOutputSettingsArchiveOutputSettingsTypeDef(
    _ClientDescribeChannelResponseEncoderSettingsOutputGroupsOutputsOutputSettingsArchiveOutputSettingsTypeDef
):
    """
    Type definition for
    `ClientDescribeChannelResponseEncoderSettingsOutputGroupsOutputsOutputSettings`
    `ArchiveOutputSettings`

    - **ContainerSettings** *(dict) --* Settings specific to the container type of the file.

      - **M2tsSettings** *(dict) --* M2ts Settings

        - **AbsentInputAudioBehavior** *(string) --* When set to drop, output audio streams will be
        removed from the program if the selected input audio stream is removed from the input. This
        allows the output audio configuration to dynamically change based on input configuration. If
        this is set to encodeSilence, all output audio streams will output encoded silence when not
        connected to an active input stream.

        - **Arib** *(string) --* When set to enabled, uses ARIB-compliant field muxing and removes
        video descriptor.

        - **AribCaptionsPid** *(string) --* Packet Identifier (PID) for ARIB Captions in the
        transport stream. Can be entered as a decimal or hexadecimal value. Valid values are 32 (or
        0x20)..8182 (or 0x1ff6).

        - **AribCaptionsPidControl** *(string) --* If set to auto, pid number used for ARIB Captions
        will be auto-selected from unused pids. If set to useConfigured, ARIB Captions will be on
        the configured pid number.

        - **AudioBufferModel** *(string) --* When set to dvb, uses DVB buffer model for Dolby
        Digital audio. When set to atsc, the ATSC model is used.

        - **AudioFramesPerPes** *(integer) --* The number of audio frames to insert for each PES
        packet.

        - **AudioPids** *(string) --* Packet Identifier (PID) of the elementary audio stream(s) in
        the transport stream. Multiple values are accepted, and can be entered in ranges and/or by
        comma separation. Can be entered as decimal or hexadecimal values. Each PID specified must
        be in the range of 32 (or 0x20)..8182 (or 0x1ff6).

        - **AudioStreamType** *(string) --* When set to atsc, uses stream type =
             0x81 for AC3 and
        stream type = 0x87 for EAC3. When set to dvb, uses stream type = 0x06.

        - **Bitrate** *(integer) --* The output bitrate of the transport stream in bits per second.
        Setting to 0 lets the muxer automatically determine the appropriate bitrate.

        - **BufferModel** *(string) --* If set to multiplex, use multiplex buffer model for accurate
        interleaving. Setting to bufferModel to none can lead to lower latency, but low-memory
        devices may not be able to play back the stream without interruptions.

        - **CcDescriptor** *(string) --* When set to enabled, generates captionServiceDescriptor in
        PMT.

        - **DvbNitSettings** *(dict) --* Inserts DVB Network Information Table (NIT) at the
        specified table repetition interval.

          - **NetworkId** *(integer) --* The numeric value placed in the Network Information Table
          (NIT).

          - **NetworkName** *(string) --* The network name text placed in the networkNameDescriptor
          inside the Network Information Table. Maximum length is 256 characters.

          - **RepInterval** *(integer) --* The number of milliseconds between instances of this
          table in the output transport stream.

        - **DvbSdtSettings** *(dict) --* Inserts DVB Service Description Table (SDT) at the
        specified table repetition interval.

          - **OutputSdt** *(string) --* Selects method of inserting SDT information into output
          stream. The sdtFollow setting copies SDT information from input stream to output stream.
          The sdtFollowIfPresent setting copies SDT information from input stream to output stream
          if SDT information is present in the input, otherwise it will fall back on the
          user-defined values. The sdtManual setting means user will enter the SDT information. The
          sdtNone setting means output stream will not contain SDT information.

          - **RepInterval** *(integer) --* The number of milliseconds between instances of this
          table in the output transport stream.

          - **ServiceName** *(string) --* The service name placed in the serviceDescriptor in the
          Service Description Table. Maximum length is 256 characters.

          - **ServiceProviderName** *(string) --* The service provider name placed in the
          serviceDescriptor in the Service Description Table. Maximum length is 256 characters.

        - **DvbSubPids** *(string) --* Packet Identifier (PID) for input source DVB Subtitle data to
        this output. Multiple values are accepted, and can be entered in ranges and/or by comma
        separation. Can be entered as decimal or hexadecimal values. Each PID specified must be in
        the range of 32 (or 0x20)..8182 (or 0x1ff6).

        - **DvbTdtSettings** *(dict) --* Inserts DVB Time and Date Table (TDT) at the specified
        table repetition interval.

          - **RepInterval** *(integer) --* The number of milliseconds between instances of this
          table in the output transport stream.

        - **DvbTeletextPid** *(string) --* Packet Identifier (PID) for input source DVB Teletext
        data to this output. Can be entered as a decimal or hexadecimal value. Valid values are 32
        (or 0x20)..8182 (or 0x1ff6).

        - **Ebif** *(string) --* If set to passthrough, passes any EBIF data from the input source
        to this output.

        - **EbpAudioInterval** *(string) --* When videoAndFixedIntervals is selected, audio EBP
        markers will be added to partitions 3 and 4. The interval between these additional markers
        will be fixed, and will be slightly shorter than the video EBP marker interval. Only
        available when EBP Cablelabs segmentation markers are selected. Partitions 1 and 2 will
        always follow the video interval.

        - **EbpLookaheadMs** *(integer) --* When set, enforces that Encoder Boundary Points do not
        come within the specified time interval of each other by looking ahead at input video. If
        another EBP is going to come in within the specified time interval, the current EBP is not
        emitted, and the segment is "stretched" to the next marker. The lookahead value does not add
        latency to the system. The Live Event must be configured elsewhere to create sufficient
        latency to make the lookahead accurate.

        - **EbpPlacement** *(string) --* Controls placement of EBP on Audio PIDs. If set to
        videoAndAudioPids, EBP markers will be placed on the video PID and all audio PIDs. If set to
        videoPid, EBP markers will be placed on only the video PID.

        - **EcmPid** *(string) --* This field is unused and deprecated.

        - **EsRateInPes** *(string) --* Include or exclude the ES Rate field in the PES header.

        - **EtvPlatformPid** *(string) --* Packet Identifier (PID) for input source ETV Platform
        data to this output. Can be entered as a decimal or hexadecimal value. Valid values are 32
        (or 0x20)..8182 (or 0x1ff6).

        - **EtvSignalPid** *(string) --* Packet Identifier (PID) for input source ETV Signal data to
        this output. Can be entered as a decimal or hexadecimal value. Valid values are 32 (or
        0x20)..8182 (or 0x1ff6).

        - **FragmentTime** *(float) --* The length in seconds of each fragment. Only used with EBP
        markers.

        - **Klv** *(string) --* If set to passthrough, passes any KLV data from the input source to
        this output.

        - **KlvDataPids** *(string) --* Packet Identifier (PID) for input source KLV data to this
        output. Multiple values are accepted, and can be entered in ranges and/or by comma
        separation. Can be entered as decimal or hexadecimal values. Each PID specified must be in
        the range of 32 (or 0x20)..8182 (or 0x1ff6).

        - **NielsenId3Behavior** *(string) --* If set to passthrough, Nielsen inaudible tones for
        media tracking will be detected in the input audio and an equivalent ID3 tag will be
        inserted in the output.

        - **NullPacketBitrate** *(float) --* Value in bits per second of extra null packets to
        insert into the transport stream. This can be used if a downstream encryption system
        requires periodic null packets.

        - **PatInterval** *(integer) --* The number of milliseconds between instances of this table
        in the output transport stream. Valid values are 0, 10..1000.

        - **PcrControl** *(string) --* When set to pcrEveryPesPacket, a Program Clock Reference
        value is inserted for every Packetized Elementary Stream (PES) header. This parameter is
        effective only when the PCR PID is the same as the video or audio elementary stream.

        - **PcrPeriod** *(integer) --* Maximum time in milliseconds between Program Clock Reference
        (PCRs) inserted into the transport stream.

        - **PcrPid** *(string) --* Packet Identifier (PID) of the Program Clock Reference (PCR) in
        the transport stream. When no value is given, the encoder will assign the same value as the
        Video PID. Can be entered as a decimal or hexadecimal value. Valid values are 32 (or
        0x20)..8182 (or 0x1ff6).

        - **PmtInterval** *(integer) --* The number of milliseconds between instances of this table
        in the output transport stream. Valid values are 0, 10..1000.

        - **PmtPid** *(string) --* Packet Identifier (PID) for the Program Map Table (PMT) in the
        transport stream. Can be entered as a decimal or hexadecimal value. Valid values are 32 (or
        0x20)..8182 (or 0x1ff6).

        - **ProgramNum** *(integer) --* The value of the program number field in the Program Map
        Table.

        - **RateMode** *(string) --* When vbr, does not insert null packets into transport stream to
        fill specified bitrate. The bitrate setting acts as the maximum bitrate when vbr is set.

        - **Scte27Pids** *(string) --* Packet Identifier (PID) for input source SCTE-27 data to this
        output. Multiple values are accepted, and can be entered in ranges and/or by comma
        separation. Can be entered as decimal or hexadecimal values. Each PID specified must be in
        the range of 32 (or 0x20)..8182 (or 0x1ff6).

        - **Scte35Control** *(string) --* Optionally pass SCTE-35 signals from the input source to
        this output.

        - **Scte35Pid** *(string) --* Packet Identifier (PID) of the SCTE-35 stream in the transport
        stream. Can be entered as a decimal or hexadecimal value. Valid values are 32 (or
        0x20)..8182 (or 0x1ff6).

        - **SegmentationMarkers** *(string) --* Inserts segmentation markers at each
        segmentationTime period. raiSegstart sets the Random Access Indicator bit in the adaptation
        field. raiAdapt sets the RAI bit and adds the current timecode in the private data bytes.
        psiSegstart inserts PAT and PMT tables at the start of segments. ebp adds Encoder Boundary
        Point information to the adaptation field as per OpenCable specification
        OC-SP-EBP-I01-130118. ebpLegacy adds Encoder Boundary Point information to the adaptation
        field using a legacy proprietary format.

        - **SegmentationStyle** *(string) --* The segmentation style parameter controls how
        segmentation markers are inserted into the transport stream. With avails, it is possible
        that segments may be truncated, which can influence where future segmentation markers are
        inserted. When a segmentation style of "resetCadence" is selected and a segment is truncated
        due to an avail, we will reset the segmentation cadence. This means the subsequent segment
        will have a duration of $segmentationTime seconds. When a segmentation style of
        "maintainCadence" is selected and a segment is truncated due to an avail, we will not reset
        the segmentation cadence. This means the subsequent segment will likely be truncated as
        well. However, all segments after that will have a duration of $segmentationTime seconds.
        Note that EBP lookahead is a slight exception to this rule.

        - **SegmentationTime** *(float) --* The length in seconds of each segment. Required unless
        markers is set to None_.

        - **TimedMetadataBehavior** *(string) --* When set to passthrough, timed metadata will be
        passed through from input to output.

        - **TimedMetadataPid** *(string) --* Packet Identifier (PID) of the timed metadata stream in
        the transport stream. Can be entered as a decimal or hexadecimal value. Valid values are 32
        (or 0x20)..8182 (or 0x1ff6).

        - **TransportStreamId** *(integer) --* The value of the transport stream ID field in the
        Program Map Table.

        - **VideoPid** *(string) --* Packet Identifier (PID) of the elementary video stream in the
        transport stream. Can be entered as a decimal or hexadecimal value. Valid values are 32 (or
        0x20)..8182 (or 0x1ff6).

    - **Extension** *(string) --* Output file extension. If excluded, this will be auto-selected
    from the container type.

    - **NameModifier** *(string) --* String concatenated to the end of the destination filename.
    Required for multiple outputs of the same type.
    """


_ClientDescribeChannelResponseEncoderSettingsOutputGroupsOutputsOutputSettingsFrameCaptureOutputSettingsTypeDef = TypedDict(
    "_ClientDescribeChannelResponseEncoderSettingsOutputGroupsOutputsOutputSettingsFrameCaptureOutputSettingsTypeDef",
    {"NameModifier": str},
    total=False,
)


class ClientDescribeChannelResponseEncoderSettingsOutputGroupsOutputsOutputSettingsFrameCaptureOutputSettingsTypeDef(
    _ClientDescribeChannelResponseEncoderSettingsOutputGroupsOutputsOutputSettingsFrameCaptureOutputSettingsTypeDef
):
    """
    Type definition for
    `ClientDescribeChannelResponseEncoderSettingsOutputGroupsOutputsOutputSettings`
    `FrameCaptureOutputSettings`

    - **NameModifier** *(string) --* Required if the output group contains more than one output.
    This modifier forms part of the output file name.
    """


_ClientDescribeChannelResponseEncoderSettingsOutputGroupsOutputsOutputSettingsHlsOutputSettingsHlsSettingsAudioOnlyHlsSettingsAudioOnlyImageTypeDef = TypedDict(
    "_ClientDescribeChannelResponseEncoderSettingsOutputGroupsOutputsOutputSettingsHlsOutputSettingsHlsSettingsAudioOnlyHlsSettingsAudioOnlyImageTypeDef",
    {"PasswordParam": str, "Uri": str, "Username": str},
    total=False,
)


class ClientDescribeChannelResponseEncoderSettingsOutputGroupsOutputsOutputSettingsHlsOutputSettingsHlsSettingsAudioOnlyHlsSettingsAudioOnlyImageTypeDef(
    _ClientDescribeChannelResponseEncoderSettingsOutputGroupsOutputsOutputSettingsHlsOutputSettingsHlsSettingsAudioOnlyHlsSettingsAudioOnlyImageTypeDef
):
    """
    Type definition for
    `ClientDescribeChannelResponseEncoderSettingsOutputGroupsOutputsOutputSettingsHlsOutputSettingsHlsSettingsAudioOnlyHlsSettings`
    `AudioOnlyImage`

    - **PasswordParam** *(string) --* key used to extract the password from EC2 Parameter store

    - **Uri** *(string) --* Uniform Resource Identifier - This should be a path to a file accessible
    to the Live system (eg. a http:// URI) depending on the output type. For example, a RTMP
    destination should have a uri simliar to: "rtmp://fmsserver/live".

    - **Username** *(string) --* Documentation update needed
    """


_ClientDescribeChannelResponseEncoderSettingsOutputGroupsOutputsOutputSettingsHlsOutputSettingsHlsSettingsAudioOnlyHlsSettingsTypeDef = TypedDict(
    "_ClientDescribeChannelResponseEncoderSettingsOutputGroupsOutputsOutputSettingsHlsOutputSettingsHlsSettingsAudioOnlyHlsSettingsTypeDef",
    {
        "AudioGroupId": str,
        "AudioOnlyImage": ClientDescribeChannelResponseEncoderSettingsOutputGroupsOutputsOutputSettingsHlsOutputSettingsHlsSettingsAudioOnlyHlsSettingsAudioOnlyImageTypeDef,
        "AudioTrackType": str,
    },
    total=False,
)


class ClientDescribeChannelResponseEncoderSettingsOutputGroupsOutputsOutputSettingsHlsOutputSettingsHlsSettingsAudioOnlyHlsSettingsTypeDef(
    _ClientDescribeChannelResponseEncoderSettingsOutputGroupsOutputsOutputSettingsHlsOutputSettingsHlsSettingsAudioOnlyHlsSettingsTypeDef
):
    """
    Type definition for
    `ClientDescribeChannelResponseEncoderSettingsOutputGroupsOutputsOutputSettingsHlsOutputSettingsHlsSettings`
    `AudioOnlyHlsSettings`

    - **AudioGroupId** *(string) --* Specifies the group to which the audio Rendition belongs.

    - **AudioOnlyImage** *(dict) --* Optional. Specifies the .jpg or .png image to use as the cover
    art for an audio-only output. We recommend a low bit-size file because the image increases the
    output audio bandwidth. The image is attached to the audio as an ID3 tag, frame type APIC,
    picture type 0x10, as per the "ID3 tag version 2.4.0 - Native Frames" standard.

      - **PasswordParam** *(string) --* key used to extract the password from EC2 Parameter store

      - **Uri** *(string) --* Uniform Resource Identifier - This should be a path to a file
      accessible to the Live system (eg. a http:// URI) depending on the output type. For example, a
      RTMP destination should have a uri simliar to: "rtmp://fmsserver/live".

      - **Username** *(string) --* Documentation update needed

    - **AudioTrackType** *(string) --* Four types of audio-only tracks are supported: Audio-Only
    Variant Stream The client can play back this audio-only stream instead of video in low-bandwidth
    scenarios. Represented as an EXT-X-STREAM-INF in the HLS manifest. Alternate Audio, Auto Select,
    Default Alternate rendition that the client should try to play back by default. Represented as
    an EXT-X-MEDIA in the HLS manifest with DEFAULT=YES, AUTOSELECT=YES Alternate Audio, Auto
    Select, Not Default Alternate rendition that the client may try to play back by default.
    Represented as an EXT-X-MEDIA in the HLS manifest with DEFAULT=NO, AUTOSELECT=YES Alternate
    Audio, not Auto Select Alternate rendition that the client will not try to play back by default.
    Represented as an EXT-X-MEDIA in the HLS manifest with DEFAULT=NO, AUTOSELECT=NO
    """


_ClientDescribeChannelResponseEncoderSettingsOutputGroupsOutputsOutputSettingsHlsOutputSettingsHlsSettingsStandardHlsSettingsM3u8SettingsTypeDef = TypedDict(
    "_ClientDescribeChannelResponseEncoderSettingsOutputGroupsOutputsOutputSettingsHlsOutputSettingsHlsSettingsStandardHlsSettingsM3u8SettingsTypeDef",
    {
        "AudioFramesPerPes": int,
        "AudioPids": str,
        "EcmPid": str,
        "NielsenId3Behavior": str,
        "PatInterval": int,
        "PcrControl": str,
        "PcrPeriod": int,
        "PcrPid": str,
        "PmtInterval": int,
        "PmtPid": str,
        "ProgramNum": int,
        "Scte35Behavior": str,
        "Scte35Pid": str,
        "TimedMetadataBehavior": str,
        "TimedMetadataPid": str,
        "TransportStreamId": int,
        "VideoPid": str,
    },
    total=False,
)


class ClientDescribeChannelResponseEncoderSettingsOutputGroupsOutputsOutputSettingsHlsOutputSettingsHlsSettingsStandardHlsSettingsM3u8SettingsTypeDef(
    _ClientDescribeChannelResponseEncoderSettingsOutputGroupsOutputsOutputSettingsHlsOutputSettingsHlsSettingsStandardHlsSettingsM3u8SettingsTypeDef
):
    """
    Type definition for
    `ClientDescribeChannelResponseEncoderSettingsOutputGroupsOutputsOutputSettingsHlsOutputSettingsHlsSettingsStandardHlsSettings`
    `M3u8Settings`

    - **AudioFramesPerPes** *(integer) --* The number of audio frames to insert for each PES packet.

    - **AudioPids** *(string) --* Packet Identifier (PID) of the elementary audio stream(s) in the
    transport stream. Multiple values are accepted, and can be entered in ranges and/or by comma
    separation. Can be entered as decimal or hexadecimal values.

    - **EcmPid** *(string) --* This parameter is unused and deprecated.

    - **NielsenId3Behavior** *(string) --* If set to passthrough, Nielsen inaudible tones for media
    tracking will be detected in the input audio and an equivalent ID3 tag will be inserted in the
    output.

    - **PatInterval** *(integer) --* The number of milliseconds between instances of this table in
    the output transport stream. A value of \\"0\\" writes out the PMT once per segment file.

    - **PcrControl** *(string) --* When set to pcrEveryPesPacket, a Program Clock Reference value is
    inserted for every Packetized Elementary Stream (PES) header. This parameter is effective only
    when the PCR PID is the same as the video or audio elementary stream.

    - **PcrPeriod** *(integer) --* Maximum time in milliseconds between Program Clock References
    (PCRs) inserted into the transport stream.

    - **PcrPid** *(string) --* Packet Identifier (PID) of the Program Clock Reference (PCR) in the
    transport stream. When no value is given, the encoder will assign the same value as the Video
    PID. Can be entered as a decimal or hexadecimal value.

    - **PmtInterval** *(integer) --* The number of milliseconds between instances of this table in
    the output transport stream. A value of \\"0\\" writes out the PMT once per segment file.

    - **PmtPid** *(string) --* Packet Identifier (PID) for the Program Map Table (PMT) in the
    transport stream. Can be entered as a decimal or hexadecimal value.

    - **ProgramNum** *(integer) --* The value of the program number field in the Program Map Table.

    - **Scte35Behavior** *(string) --* If set to passthrough, passes any SCTE-35 signals from the
    input source to this output.

    - **Scte35Pid** *(string) --* Packet Identifier (PID) of the SCTE-35 stream in the transport
    stream. Can be entered as a decimal or hexadecimal value.

    - **TimedMetadataBehavior** *(string) --* When set to passthrough, timed metadata is passed
    through from input to output.

    - **TimedMetadataPid** *(string) --* Packet Identifier (PID) of the timed metadata stream in the
    transport stream. Can be entered as a decimal or hexadecimal value. Valid values are 32 (or
    0x20)..8182 (or 0x1ff6).

    - **TransportStreamId** *(integer) --* The value of the transport stream ID field in the Program
    Map Table.

    - **VideoPid** *(string) --* Packet Identifier (PID) of the elementary video stream in the
    transport stream. Can be entered as a decimal or hexadecimal value.
    """


_ClientDescribeChannelResponseEncoderSettingsOutputGroupsOutputsOutputSettingsHlsOutputSettingsHlsSettingsStandardHlsSettingsTypeDef = TypedDict(
    "_ClientDescribeChannelResponseEncoderSettingsOutputGroupsOutputsOutputSettingsHlsOutputSettingsHlsSettingsStandardHlsSettingsTypeDef",
    {
        "AudioRenditionSets": str,
        "M3u8Settings": ClientDescribeChannelResponseEncoderSettingsOutputGroupsOutputsOutputSettingsHlsOutputSettingsHlsSettingsStandardHlsSettingsM3u8SettingsTypeDef,
    },
    total=False,
)


class ClientDescribeChannelResponseEncoderSettingsOutputGroupsOutputsOutputSettingsHlsOutputSettingsHlsSettingsStandardHlsSettingsTypeDef(
    _ClientDescribeChannelResponseEncoderSettingsOutputGroupsOutputsOutputSettingsHlsOutputSettingsHlsSettingsStandardHlsSettingsTypeDef
):
    """
    Type definition for
    `ClientDescribeChannelResponseEncoderSettingsOutputGroupsOutputsOutputSettingsHlsOutputSettingsHlsSettings`
    `StandardHlsSettings`

    - **AudioRenditionSets** *(string) --* List all the audio groups that are used with the video
    output stream. Input all the audio GROUP-IDs that are associated to the video, separate by ','.

    - **M3u8Settings** *(dict) --* Settings information for the .m3u8 container

      - **AudioFramesPerPes** *(integer) --* The number of audio frames to insert for each PES
      packet.

      - **AudioPids** *(string) --* Packet Identifier (PID) of the elementary audio stream(s) in the
      transport stream. Multiple values are accepted, and can be entered in ranges and/or by comma
      separation. Can be entered as decimal or hexadecimal values.

      - **EcmPid** *(string) --* This parameter is unused and deprecated.

      - **NielsenId3Behavior** *(string) --* If set to passthrough, Nielsen inaudible tones for
      media tracking will be detected in the input audio and an equivalent ID3 tag will be inserted
      in the output.

      - **PatInterval** *(integer) --* The number of milliseconds between instances of this table in
      the output transport stream. A value of \\"0\\" writes out the PMT once per segment file.

      - **PcrControl** *(string) --* When set to pcrEveryPesPacket, a Program Clock Reference value
      is inserted for every Packetized Elementary Stream (PES) header. This parameter is effective
      only when the PCR PID is the same as the video or audio elementary stream.

      - **PcrPeriod** *(integer) --* Maximum time in milliseconds between Program Clock References
      (PCRs) inserted into the transport stream.

      - **PcrPid** *(string) --* Packet Identifier (PID) of the Program Clock Reference (PCR) in the
      transport stream. When no value is given, the encoder will assign the same value as the Video
      PID. Can be entered as a decimal or hexadecimal value.

      - **PmtInterval** *(integer) --* The number of milliseconds between instances of this table in
      the output transport stream. A value of \\"0\\" writes out the PMT once per segment file.

      - **PmtPid** *(string) --* Packet Identifier (PID) for the Program Map Table (PMT) in the
      transport stream. Can be entered as a decimal or hexadecimal value.

      - **ProgramNum** *(integer) --* The value of the program number field in the Program Map
      Table.

      - **Scte35Behavior** *(string) --* If set to passthrough, passes any SCTE-35 signals from the
      input source to this output.

      - **Scte35Pid** *(string) --* Packet Identifier (PID) of the SCTE-35 stream in the transport
      stream. Can be entered as a decimal or hexadecimal value.

      - **TimedMetadataBehavior** *(string) --* When set to passthrough, timed metadata is passed
      through from input to output.

      - **TimedMetadataPid** *(string) --* Packet Identifier (PID) of the timed metadata stream in
      the transport stream. Can be entered as a decimal or hexadecimal value. Valid values are 32
      (or 0x20)..8182 (or 0x1ff6).

      - **TransportStreamId** *(integer) --* The value of the transport stream ID field in the
      Program Map Table.

      - **VideoPid** *(string) --* Packet Identifier (PID) of the elementary video stream in the
      transport stream. Can be entered as a decimal or hexadecimal value.
    """


_ClientDescribeChannelResponseEncoderSettingsOutputGroupsOutputsOutputSettingsHlsOutputSettingsHlsSettingsTypeDef = TypedDict(
    "_ClientDescribeChannelResponseEncoderSettingsOutputGroupsOutputsOutputSettingsHlsOutputSettingsHlsSettingsTypeDef",
    {
        "AudioOnlyHlsSettings": ClientDescribeChannelResponseEncoderSettingsOutputGroupsOutputsOutputSettingsHlsOutputSettingsHlsSettingsAudioOnlyHlsSettingsTypeDef,
        "StandardHlsSettings": ClientDescribeChannelResponseEncoderSettingsOutputGroupsOutputsOutputSettingsHlsOutputSettingsHlsSettingsStandardHlsSettingsTypeDef,
    },
    total=False,
)


class ClientDescribeChannelResponseEncoderSettingsOutputGroupsOutputsOutputSettingsHlsOutputSettingsHlsSettingsTypeDef(
    _ClientDescribeChannelResponseEncoderSettingsOutputGroupsOutputsOutputSettingsHlsOutputSettingsHlsSettingsTypeDef
):
    """
    Type definition for
    `ClientDescribeChannelResponseEncoderSettingsOutputGroupsOutputsOutputSettingsHlsOutputSettings`
    `HlsSettings`

    - **AudioOnlyHlsSettings** *(dict) --* Audio Only Hls Settings

      - **AudioGroupId** *(string) --* Specifies the group to which the audio Rendition belongs.

      - **AudioOnlyImage** *(dict) --* Optional. Specifies the .jpg or .png image to use as the
      cover art for an audio-only output. We recommend a low bit-size file because the image
      increases the output audio bandwidth. The image is attached to the audio as an ID3 tag, frame
      type APIC, picture type 0x10, as per the "ID3 tag version 2.4.0 - Native Frames" standard.

        - **PasswordParam** *(string) --* key used to extract the password from EC2 Parameter store

        - **Uri** *(string) --* Uniform Resource Identifier - This should be a path to a file
        accessible to the Live system (eg. a http:// URI) depending on the output type. For example,
        a RTMP destination should have a uri simliar to: "rtmp://fmsserver/live".

        - **Username** *(string) --* Documentation update needed

      - **AudioTrackType** *(string) --* Four types of audio-only tracks are supported: Audio-Only
      Variant Stream The client can play back this audio-only stream instead of video in
      low-bandwidth scenarios. Represented as an EXT-X-STREAM-INF in the HLS manifest. Alternate
      Audio, Auto Select, Default Alternate rendition that the client should try to play back by
      default. Represented as an EXT-X-MEDIA in the HLS manifest with DEFAULT=YES, AUTOSELECT=YES
      Alternate Audio, Auto Select, Not Default Alternate rendition that the client may try to play
      back by default. Represented as an EXT-X-MEDIA in the HLS manifest with DEFAULT=NO,
      AUTOSELECT=YES Alternate Audio, not Auto Select Alternate rendition that the client will not
      try to play back by default. Represented as an EXT-X-MEDIA in the HLS manifest with
      DEFAULT=NO, AUTOSELECT=NO

    - **StandardHlsSettings** *(dict) --* Standard Hls Settings

      - **AudioRenditionSets** *(string) --* List all the audio groups that are used with the video
      output stream. Input all the audio GROUP-IDs that are associated to the video, separate by
      ','.

      - **M3u8Settings** *(dict) --* Settings information for the .m3u8 container

        - **AudioFramesPerPes** *(integer) --* The number of audio frames to insert for each PES
        packet.

        - **AudioPids** *(string) --* Packet Identifier (PID) of the elementary audio stream(s) in
        the transport stream. Multiple values are accepted, and can be entered in ranges and/or by
        comma separation. Can be entered as decimal or hexadecimal values.

        - **EcmPid** *(string) --* This parameter is unused and deprecated.

        - **NielsenId3Behavior** *(string) --* If set to passthrough, Nielsen inaudible tones for
        media tracking will be detected in the input audio and an equivalent ID3 tag will be
        inserted in the output.

        - **PatInterval** *(integer) --* The number of milliseconds between instances of this table
        in the output transport stream. A value of \\"0\\" writes out the PMT once per segment file.

        - **PcrControl** *(string) --* When set to pcrEveryPesPacket, a Program Clock Reference
        value is inserted for every Packetized Elementary Stream (PES) header. This parameter is
        effective only when the PCR PID is the same as the video or audio elementary stream.

        - **PcrPeriod** *(integer) --* Maximum time in milliseconds between Program Clock References
        (PCRs) inserted into the transport stream.

        - **PcrPid** *(string) --* Packet Identifier (PID) of the Program Clock Reference (PCR) in
        the transport stream. When no value is given, the encoder will assign the same value as the
        Video PID. Can be entered as a decimal or hexadecimal value.

        - **PmtInterval** *(integer) --* The number of milliseconds between instances of this table
        in the output transport stream. A value of \\"0\\" writes out the PMT once per segment file.

        - **PmtPid** *(string) --* Packet Identifier (PID) for the Program Map Table (PMT) in the
        transport stream. Can be entered as a decimal or hexadecimal value.

        - **ProgramNum** *(integer) --* The value of the program number field in the Program Map
        Table.

        - **Scte35Behavior** *(string) --* If set to passthrough, passes any SCTE-35 signals from
        the input source to this output.

        - **Scte35Pid** *(string) --* Packet Identifier (PID) of the SCTE-35 stream in the transport
        stream. Can be entered as a decimal or hexadecimal value.

        - **TimedMetadataBehavior** *(string) --* When set to passthrough, timed metadata is passed
        through from input to output.

        - **TimedMetadataPid** *(string) --* Packet Identifier (PID) of the timed metadata stream in
        the transport stream. Can be entered as a decimal or hexadecimal value. Valid values are 32
        (or 0x20)..8182 (or 0x1ff6).

        - **TransportStreamId** *(integer) --* The value of the transport stream ID field in the
        Program Map Table.

        - **VideoPid** *(string) --* Packet Identifier (PID) of the elementary video stream in the
        transport stream. Can be entered as a decimal or hexadecimal value.
    """


_ClientDescribeChannelResponseEncoderSettingsOutputGroupsOutputsOutputSettingsHlsOutputSettingsTypeDef = TypedDict(
    "_ClientDescribeChannelResponseEncoderSettingsOutputGroupsOutputsOutputSettingsHlsOutputSettingsTypeDef",
    {
        "HlsSettings": ClientDescribeChannelResponseEncoderSettingsOutputGroupsOutputsOutputSettingsHlsOutputSettingsHlsSettingsTypeDef,
        "NameModifier": str,
        "SegmentModifier": str,
    },
    total=False,
)


class ClientDescribeChannelResponseEncoderSettingsOutputGroupsOutputsOutputSettingsHlsOutputSettingsTypeDef(
    _ClientDescribeChannelResponseEncoderSettingsOutputGroupsOutputsOutputSettingsHlsOutputSettingsTypeDef
):
    """
    Type definition for
    `ClientDescribeChannelResponseEncoderSettingsOutputGroupsOutputsOutputSettings`
    `HlsOutputSettings`

    - **HlsSettings** *(dict) --* Settings regarding the underlying stream. These settings are
    different for audio-only outputs.

      - **AudioOnlyHlsSettings** *(dict) --* Audio Only Hls Settings

        - **AudioGroupId** *(string) --* Specifies the group to which the audio Rendition belongs.

        - **AudioOnlyImage** *(dict) --* Optional. Specifies the .jpg or .png image to use as the
        cover art for an audio-only output. We recommend a low bit-size file because the image
        increases the output audio bandwidth. The image is attached to the audio as an ID3 tag,
        frame type APIC, picture type 0x10, as per the "ID3 tag version 2.4.0 - Native Frames"
        standard.

          - **PasswordParam** *(string) --* key used to extract the password from EC2 Parameter
          store

          - **Uri** *(string) --* Uniform Resource Identifier - This should be a path to a file
          accessible to the Live system (eg. a http:// URI) depending on the output type. For
          example, a RTMP destination should have a uri simliar to: "rtmp://fmsserver/live".

          - **Username** *(string) --* Documentation update needed

        - **AudioTrackType** *(string) --* Four types of audio-only tracks are supported: Audio-Only
        Variant Stream The client can play back this audio-only stream instead of video in
        low-bandwidth scenarios. Represented as an EXT-X-STREAM-INF in the HLS manifest. Alternate
        Audio, Auto Select, Default Alternate rendition that the client should try to play back by
        default. Represented as an EXT-X-MEDIA in the HLS manifest with DEFAULT=YES, AUTOSELECT=
            YES
        Alternate Audio, Auto Select, Not Default Alternate rendition that the client may try to
        play back by default. Represented as an EXT-X-MEDIA in the HLS manifest with DEFAULT=NO,
        AUTOSELECT=
            YES Alternate Audio, not Auto Select Alternate rendition that the client will not
        try to play back by default. Represented as an EXT-X-MEDIA in the HLS manifest with
        DEFAULT=NO, AUTOSELECT=NO

      - **StandardHlsSettings** *(dict) --* Standard Hls Settings

        - **AudioRenditionSets** *(string) --* List all the audio groups that are used with the
        video output stream. Input all the audio GROUP-IDs that are associated to the video,
        separate by ','.

        - **M3u8Settings** *(dict) --* Settings information for the .m3u8 container

          - **AudioFramesPerPes** *(integer) --* The number of audio frames to insert for each PES
          packet.

          - **AudioPids** *(string) --* Packet Identifier (PID) of the elementary audio stream(s) in
          the transport stream. Multiple values are accepted, and can be entered in ranges and/or by
          comma separation. Can be entered as decimal or hexadecimal values.

          - **EcmPid** *(string) --* This parameter is unused and deprecated.

          - **NielsenId3Behavior** *(string) --* If set to passthrough, Nielsen inaudible tones for
          media tracking will be detected in the input audio and an equivalent ID3 tag will be
          inserted in the output.

          - **PatInterval** *(integer) --* The number of milliseconds between instances of this
          table in the output transport stream. A value of \\"0\\" writes out the PMT once per
          segment file.

          - **PcrControl** *(string) --* When set to pcrEveryPesPacket, a Program Clock Reference
          value is inserted for every Packetized Elementary Stream (PES) header. This parameter is
          effective only when the PCR PID is the same as the video or audio elementary stream.

          - **PcrPeriod** *(integer) --* Maximum time in milliseconds between Program Clock
          References (PCRs) inserted into the transport stream.

          - **PcrPid** *(string) --* Packet Identifier (PID) of the Program Clock Reference (PCR) in
          the transport stream. When no value is given, the encoder will assign the same value as
          the Video PID. Can be entered as a decimal or hexadecimal value.

          - **PmtInterval** *(integer) --* The number of milliseconds between instances of this
          table in the output transport stream. A value of \\"0\\" writes out the PMT once per
          segment file.

          - **PmtPid** *(string) --* Packet Identifier (PID) for the Program Map Table (PMT) in the
          transport stream. Can be entered as a decimal or hexadecimal value.

          - **ProgramNum** *(integer) --* The value of the program number field in the Program Map
          Table.

          - **Scte35Behavior** *(string) --* If set to passthrough, passes any SCTE-35 signals from
          the input source to this output.

          - **Scte35Pid** *(string) --* Packet Identifier (PID) of the SCTE-35 stream in the
          transport stream. Can be entered as a decimal or hexadecimal value.

          - **TimedMetadataBehavior** *(string) --* When set to passthrough, timed metadata is
          passed through from input to output.

          - **TimedMetadataPid** *(string) --* Packet Identifier (PID) of the timed metadata stream
          in the transport stream. Can be entered as a decimal or hexadecimal value. Valid values
          are 32 (or 0x20)..8182 (or 0x1ff6).

          - **TransportStreamId** *(integer) --* The value of the transport stream ID field in the
          Program Map Table.

          - **VideoPid** *(string) --* Packet Identifier (PID) of the elementary video stream in the
          transport stream. Can be entered as a decimal or hexadecimal value.

    - **NameModifier** *(string) --* String concatenated to the end of the destination filename.
    Accepts \\"Format Identifiers\\":#formatIdentifierParameters.

    - **SegmentModifier** *(string) --* String concatenated to end of segment filenames.
    """


_ClientDescribeChannelResponseEncoderSettingsOutputGroupsOutputsOutputSettingsMsSmoothOutputSettingsTypeDef = TypedDict(
    "_ClientDescribeChannelResponseEncoderSettingsOutputGroupsOutputsOutputSettingsMsSmoothOutputSettingsTypeDef",
    {"H265PackagingType": str, "NameModifier": str},
    total=False,
)


class ClientDescribeChannelResponseEncoderSettingsOutputGroupsOutputsOutputSettingsMsSmoothOutputSettingsTypeDef(
    _ClientDescribeChannelResponseEncoderSettingsOutputGroupsOutputsOutputSettingsMsSmoothOutputSettingsTypeDef
):
    """
    Type definition for
    `ClientDescribeChannelResponseEncoderSettingsOutputGroupsOutputsOutputSettings`
    `MsSmoothOutputSettings`

    - **H265PackagingType** *(string) --* Only applicable when this output is referencing an H.265
    video description. Specifies whether MP4 segments should be packaged as HEV1 or HVC1.

    - **NameModifier** *(string) --* String concatenated to the end of the destination filename.
    Required for multiple outputs of the same type.
    """


_ClientDescribeChannelResponseEncoderSettingsOutputGroupsOutputsOutputSettingsMultiplexOutputSettingsDestinationTypeDef = TypedDict(
    "_ClientDescribeChannelResponseEncoderSettingsOutputGroupsOutputsOutputSettingsMultiplexOutputSettingsDestinationTypeDef",
    {"DestinationRefId": str},
    total=False,
)


class ClientDescribeChannelResponseEncoderSettingsOutputGroupsOutputsOutputSettingsMultiplexOutputSettingsDestinationTypeDef(
    _ClientDescribeChannelResponseEncoderSettingsOutputGroupsOutputsOutputSettingsMultiplexOutputSettingsDestinationTypeDef
):
    """
    Type definition for
    `ClientDescribeChannelResponseEncoderSettingsOutputGroupsOutputsOutputSettingsMultiplexOutputSettings`
    `Destination`

    - **DestinationRefId** *(string) --* Placeholder documentation for __string
    """


_ClientDescribeChannelResponseEncoderSettingsOutputGroupsOutputsOutputSettingsMultiplexOutputSettingsTypeDef = TypedDict(
    "_ClientDescribeChannelResponseEncoderSettingsOutputGroupsOutputsOutputSettingsMultiplexOutputSettingsTypeDef",
    {
        "Destination": ClientDescribeChannelResponseEncoderSettingsOutputGroupsOutputsOutputSettingsMultiplexOutputSettingsDestinationTypeDef
    },
    total=False,
)


class ClientDescribeChannelResponseEncoderSettingsOutputGroupsOutputsOutputSettingsMultiplexOutputSettingsTypeDef(
    _ClientDescribeChannelResponseEncoderSettingsOutputGroupsOutputsOutputSettingsMultiplexOutputSettingsTypeDef
):
    """
    Type definition for
    `ClientDescribeChannelResponseEncoderSettingsOutputGroupsOutputsOutputSettings`
    `MultiplexOutputSettings`

    - **Destination** *(dict) --* Destination is a Multiplex.

      - **DestinationRefId** *(string) --* Placeholder documentation for __string
    """


_ClientDescribeChannelResponseEncoderSettingsOutputGroupsOutputsOutputSettingsRtmpOutputSettingsDestinationTypeDef = TypedDict(
    "_ClientDescribeChannelResponseEncoderSettingsOutputGroupsOutputsOutputSettingsRtmpOutputSettingsDestinationTypeDef",
    {"DestinationRefId": str},
    total=False,
)


class ClientDescribeChannelResponseEncoderSettingsOutputGroupsOutputsOutputSettingsRtmpOutputSettingsDestinationTypeDef(
    _ClientDescribeChannelResponseEncoderSettingsOutputGroupsOutputsOutputSettingsRtmpOutputSettingsDestinationTypeDef
):
    """
    Type definition for
    `ClientDescribeChannelResponseEncoderSettingsOutputGroupsOutputsOutputSettingsRtmpOutputSettings`
    `Destination`

    - **DestinationRefId** *(string) --* Placeholder documentation for __string
    """


_ClientDescribeChannelResponseEncoderSettingsOutputGroupsOutputsOutputSettingsRtmpOutputSettingsTypeDef = TypedDict(
    "_ClientDescribeChannelResponseEncoderSettingsOutputGroupsOutputsOutputSettingsRtmpOutputSettingsTypeDef",
    {
        "CertificateMode": str,
        "ConnectionRetryInterval": int,
        "Destination": ClientDescribeChannelResponseEncoderSettingsOutputGroupsOutputsOutputSettingsRtmpOutputSettingsDestinationTypeDef,
        "NumRetries": int,
    },
    total=False,
)


class ClientDescribeChannelResponseEncoderSettingsOutputGroupsOutputsOutputSettingsRtmpOutputSettingsTypeDef(
    _ClientDescribeChannelResponseEncoderSettingsOutputGroupsOutputsOutputSettingsRtmpOutputSettingsTypeDef
):
    """
    Type definition for
    `ClientDescribeChannelResponseEncoderSettingsOutputGroupsOutputsOutputSettings`
    `RtmpOutputSettings`

    - **CertificateMode** *(string) --* If set to verifyAuthenticity, verify the tls certificate
    chain to a trusted Certificate Authority (CA). This will cause rtmps outputs with self-signed
    certificates to fail.

    - **ConnectionRetryInterval** *(integer) --* Number of seconds to wait before retrying a
    connection to the Flash Media server if the connection is lost.

    - **Destination** *(dict) --* The RTMP endpoint excluding the stream name (eg.
    rtmp://host/appname). For connection to Akamai, a username and password must be supplied. URI
    fields accept format identifiers.

      - **DestinationRefId** *(string) --* Placeholder documentation for __string

    - **NumRetries** *(integer) --* Number of retry attempts.
    """


_ClientDescribeChannelResponseEncoderSettingsOutputGroupsOutputsOutputSettingsUdpOutputSettingsContainerSettingsM2tsSettingsDvbNitSettingsTypeDef = TypedDict(
    "_ClientDescribeChannelResponseEncoderSettingsOutputGroupsOutputsOutputSettingsUdpOutputSettingsContainerSettingsM2tsSettingsDvbNitSettingsTypeDef",
    {"NetworkId": int, "NetworkName": str, "RepInterval": int},
    total=False,
)


class ClientDescribeChannelResponseEncoderSettingsOutputGroupsOutputsOutputSettingsUdpOutputSettingsContainerSettingsM2tsSettingsDvbNitSettingsTypeDef(
    _ClientDescribeChannelResponseEncoderSettingsOutputGroupsOutputsOutputSettingsUdpOutputSettingsContainerSettingsM2tsSettingsDvbNitSettingsTypeDef
):
    """
    Type definition for
    `ClientDescribeChannelResponseEncoderSettingsOutputGroupsOutputsOutputSettingsUdpOutputSettingsContainerSettingsM2tsSettings`
    `DvbNitSettings`

    - **NetworkId** *(integer) --* The numeric value placed in the Network Information Table (NIT).

    - **NetworkName** *(string) --* The network name text placed in the networkNameDescriptor inside
    the Network Information Table. Maximum length is 256 characters.

    - **RepInterval** *(integer) --* The number of milliseconds between instances of this table in
    the output transport stream.
    """


_ClientDescribeChannelResponseEncoderSettingsOutputGroupsOutputsOutputSettingsUdpOutputSettingsContainerSettingsM2tsSettingsDvbSdtSettingsTypeDef = TypedDict(
    "_ClientDescribeChannelResponseEncoderSettingsOutputGroupsOutputsOutputSettingsUdpOutputSettingsContainerSettingsM2tsSettingsDvbSdtSettingsTypeDef",
    {"OutputSdt": str, "RepInterval": int, "ServiceName": str, "ServiceProviderName": str},
    total=False,
)


class ClientDescribeChannelResponseEncoderSettingsOutputGroupsOutputsOutputSettingsUdpOutputSettingsContainerSettingsM2tsSettingsDvbSdtSettingsTypeDef(
    _ClientDescribeChannelResponseEncoderSettingsOutputGroupsOutputsOutputSettingsUdpOutputSettingsContainerSettingsM2tsSettingsDvbSdtSettingsTypeDef
):
    """
    Type definition for
    `ClientDescribeChannelResponseEncoderSettingsOutputGroupsOutputsOutputSettingsUdpOutputSettingsContainerSettingsM2tsSettings`
    `DvbSdtSettings`

    - **OutputSdt** *(string) --* Selects method of inserting SDT information into output stream.
    The sdtFollow setting copies SDT information from input stream to output stream. The
    sdtFollowIfPresent setting copies SDT information from input stream to output stream if SDT
    information is present in the input, otherwise it will fall back on the user-defined values. The
    sdtManual setting means user will enter the SDT information. The sdtNone setting means output
    stream will not contain SDT information.

    - **RepInterval** *(integer) --* The number of milliseconds between instances of this table in
    the output transport stream.

    - **ServiceName** *(string) --* The service name placed in the serviceDescriptor in the Service
    Description Table. Maximum length is 256 characters.

    - **ServiceProviderName** *(string) --* The service provider name placed in the
    serviceDescriptor in the Service Description Table. Maximum length is 256 characters.
    """


_ClientDescribeChannelResponseEncoderSettingsOutputGroupsOutputsOutputSettingsUdpOutputSettingsContainerSettingsM2tsSettingsDvbTdtSettingsTypeDef = TypedDict(
    "_ClientDescribeChannelResponseEncoderSettingsOutputGroupsOutputsOutputSettingsUdpOutputSettingsContainerSettingsM2tsSettingsDvbTdtSettingsTypeDef",
    {"RepInterval": int},
    total=False,
)


class ClientDescribeChannelResponseEncoderSettingsOutputGroupsOutputsOutputSettingsUdpOutputSettingsContainerSettingsM2tsSettingsDvbTdtSettingsTypeDef(
    _ClientDescribeChannelResponseEncoderSettingsOutputGroupsOutputsOutputSettingsUdpOutputSettingsContainerSettingsM2tsSettingsDvbTdtSettingsTypeDef
):
    """
    Type definition for
    `ClientDescribeChannelResponseEncoderSettingsOutputGroupsOutputsOutputSettingsUdpOutputSettingsContainerSettingsM2tsSettings`
    `DvbTdtSettings`

    - **RepInterval** *(integer) --* The number of milliseconds between instances of this table in
    the output transport stream.
    """


_ClientDescribeChannelResponseEncoderSettingsOutputGroupsOutputsOutputSettingsUdpOutputSettingsContainerSettingsM2tsSettingsTypeDef = TypedDict(
    "_ClientDescribeChannelResponseEncoderSettingsOutputGroupsOutputsOutputSettingsUdpOutputSettingsContainerSettingsM2tsSettingsTypeDef",
    {
        "AbsentInputAudioBehavior": str,
        "Arib": str,
        "AribCaptionsPid": str,
        "AribCaptionsPidControl": str,
        "AudioBufferModel": str,
        "AudioFramesPerPes": int,
        "AudioPids": str,
        "AudioStreamType": str,
        "Bitrate": int,
        "BufferModel": str,
        "CcDescriptor": str,
        "DvbNitSettings": ClientDescribeChannelResponseEncoderSettingsOutputGroupsOutputsOutputSettingsUdpOutputSettingsContainerSettingsM2tsSettingsDvbNitSettingsTypeDef,
        "DvbSdtSettings": ClientDescribeChannelResponseEncoderSettingsOutputGroupsOutputsOutputSettingsUdpOutputSettingsContainerSettingsM2tsSettingsDvbSdtSettingsTypeDef,
        "DvbSubPids": str,
        "DvbTdtSettings": ClientDescribeChannelResponseEncoderSettingsOutputGroupsOutputsOutputSettingsUdpOutputSettingsContainerSettingsM2tsSettingsDvbTdtSettingsTypeDef,
        "DvbTeletextPid": str,
        "Ebif": str,
        "EbpAudioInterval": str,
        "EbpLookaheadMs": int,
        "EbpPlacement": str,
        "EcmPid": str,
        "EsRateInPes": str,
        "EtvPlatformPid": str,
        "EtvSignalPid": str,
        "FragmentTime": float,
        "Klv": str,
        "KlvDataPids": str,
        "NielsenId3Behavior": str,
        "NullPacketBitrate": float,
        "PatInterval": int,
        "PcrControl": str,
        "PcrPeriod": int,
        "PcrPid": str,
        "PmtInterval": int,
        "PmtPid": str,
        "ProgramNum": int,
        "RateMode": str,
        "Scte27Pids": str,
        "Scte35Control": str,
        "Scte35Pid": str,
        "SegmentationMarkers": str,
        "SegmentationStyle": str,
        "SegmentationTime": float,
        "TimedMetadataBehavior": str,
        "TimedMetadataPid": str,
        "TransportStreamId": int,
        "VideoPid": str,
    },
    total=False,
)


class ClientDescribeChannelResponseEncoderSettingsOutputGroupsOutputsOutputSettingsUdpOutputSettingsContainerSettingsM2tsSettingsTypeDef(
    _ClientDescribeChannelResponseEncoderSettingsOutputGroupsOutputsOutputSettingsUdpOutputSettingsContainerSettingsM2tsSettingsTypeDef
):
    """
    Type definition for
    `ClientDescribeChannelResponseEncoderSettingsOutputGroupsOutputsOutputSettingsUdpOutputSettingsContainerSettings`
    `M2tsSettings`

    - **AbsentInputAudioBehavior** *(string) --* When set to drop, output audio streams will be
    removed from the program if the selected input audio stream is removed from the input. This
    allows the output audio configuration to dynamically change based on input configuration. If
    this is set to encodeSilence, all output audio streams will output encoded silence when not
    connected to an active input stream.

    - **Arib** *(string) --* When set to enabled, uses ARIB-compliant field muxing and removes video
    descriptor.

    - **AribCaptionsPid** *(string) --* Packet Identifier (PID) for ARIB Captions in the transport
    stream. Can be entered as a decimal or hexadecimal value. Valid values are 32 (or 0x20)..8182
    (or 0x1ff6).

    - **AribCaptionsPidControl** *(string) --* If set to auto, pid number used for ARIB Captions
    will be auto-selected from unused pids. If set to useConfigured, ARIB Captions will be on the
    configured pid number.

    - **AudioBufferModel** *(string) --* When set to dvb, uses DVB buffer model for Dolby Digital
    audio. When set to atsc, the ATSC model is used.

    - **AudioFramesPerPes** *(integer) --* The number of audio frames to insert for each PES packet.

    - **AudioPids** *(string) --* Packet Identifier (PID) of the elementary audio stream(s) in the
    transport stream. Multiple values are accepted, and can be entered in ranges and/or by comma
    separation. Can be entered as decimal or hexadecimal values. Each PID specified must be in the
    range of 32 (or 0x20)..8182 (or 0x1ff6).

    - **AudioStreamType** *(string) --* When set to atsc, uses stream type = 0x81 for AC3 and stream
    type = 0x87 for EAC3. When set to dvb, uses stream type = 0x06.

    - **Bitrate** *(integer) --* The output bitrate of the transport stream in bits per second.
    Setting to 0 lets the muxer automatically determine the appropriate bitrate.

    - **BufferModel** *(string) --* If set to multiplex, use multiplex buffer model for accurate
    interleaving. Setting to bufferModel to none can lead to lower latency, but low-memory devices
    may not be able to play back the stream without interruptions.

    - **CcDescriptor** *(string) --* When set to enabled, generates captionServiceDescriptor in PMT.

    - **DvbNitSettings** *(dict) --* Inserts DVB Network Information Table (NIT) at the specified
    table repetition interval.

      - **NetworkId** *(integer) --* The numeric value placed in the Network Information Table
      (NIT).

      - **NetworkName** *(string) --* The network name text placed in the networkNameDescriptor
      inside the Network Information Table. Maximum length is 256 characters.

      - **RepInterval** *(integer) --* The number of milliseconds between instances of this table in
      the output transport stream.

    - **DvbSdtSettings** *(dict) --* Inserts DVB Service Description Table (SDT) at the specified
    table repetition interval.

      - **OutputSdt** *(string) --* Selects method of inserting SDT information into output stream.
      The sdtFollow setting copies SDT information from input stream to output stream. The
      sdtFollowIfPresent setting copies SDT information from input stream to output stream if SDT
      information is present in the input, otherwise it will fall back on the user-defined values.
      The sdtManual setting means user will enter the SDT information. The sdtNone setting means
      output stream will not contain SDT information.

      - **RepInterval** *(integer) --* The number of milliseconds between instances of this table in
      the output transport stream.

      - **ServiceName** *(string) --* The service name placed in the serviceDescriptor in the
      Service Description Table. Maximum length is 256 characters.

      - **ServiceProviderName** *(string) --* The service provider name placed in the
      serviceDescriptor in the Service Description Table. Maximum length is 256 characters.

    - **DvbSubPids** *(string) --* Packet Identifier (PID) for input source DVB Subtitle data to
    this output. Multiple values are accepted, and can be entered in ranges and/or by comma
    separation. Can be entered as decimal or hexadecimal values. Each PID specified must be in the
    range of 32 (or 0x20)..8182 (or 0x1ff6).

    - **DvbTdtSettings** *(dict) --* Inserts DVB Time and Date Table (TDT) at the specified table
    repetition interval.

      - **RepInterval** *(integer) --* The number of milliseconds between instances of this table in
      the output transport stream.

    - **DvbTeletextPid** *(string) --* Packet Identifier (PID) for input source DVB Teletext data to
    this output. Can be entered as a decimal or hexadecimal value. Valid values are 32 (or
    0x20)..8182 (or 0x1ff6).

    - **Ebif** *(string) --* If set to passthrough, passes any EBIF data from the input source to
    this output.

    - **EbpAudioInterval** *(string) --* When videoAndFixedIntervals is selected, audio EBP markers
    will be added to partitions 3 and 4. The interval between these additional markers will be
    fixed, and will be slightly shorter than the video EBP marker interval. Only available when EBP
    Cablelabs segmentation markers are selected. Partitions 1 and 2 will always follow the video
    interval.

    - **EbpLookaheadMs** *(integer) --* When set, enforces that Encoder Boundary Points do not come
    within the specified time interval of each other by looking ahead at input video. If another EBP
    is going to come in within the specified time interval, the current EBP is not emitted, and the
    segment is "stretched" to the next marker. The lookahead value does not add latency to the
    system. The Live Event must be configured elsewhere to create sufficient latency to make the
    lookahead accurate.

    - **EbpPlacement** *(string) --* Controls placement of EBP on Audio PIDs. If set to
    videoAndAudioPids, EBP markers will be placed on the video PID and all audio PIDs. If set to
    videoPid, EBP markers will be placed on only the video PID.

    - **EcmPid** *(string) --* This field is unused and deprecated.

    - **EsRateInPes** *(string) --* Include or exclude the ES Rate field in the PES header.

    - **EtvPlatformPid** *(string) --* Packet Identifier (PID) for input source ETV Platform data to
    this output. Can be entered as a decimal or hexadecimal value. Valid values are 32 (or
    0x20)..8182 (or 0x1ff6).

    - **EtvSignalPid** *(string) --* Packet Identifier (PID) for input source ETV Signal data to
    this output. Can be entered as a decimal or hexadecimal value. Valid values are 32 (or
    0x20)..8182 (or 0x1ff6).

    - **FragmentTime** *(float) --* The length in seconds of each fragment. Only used with EBP
    markers.

    - **Klv** *(string) --* If set to passthrough, passes any KLV data from the input source to this
    output.

    - **KlvDataPids** *(string) --* Packet Identifier (PID) for input source KLV data to this
    output. Multiple values are accepted, and can be entered in ranges and/or by comma separation.
    Can be entered as decimal or hexadecimal values. Each PID specified must be in the range of 32
    (or 0x20)..8182 (or 0x1ff6).

    - **NielsenId3Behavior** *(string) --* If set to passthrough, Nielsen inaudible tones for media
    tracking will be detected in the input audio and an equivalent ID3 tag will be inserted in the
    output.

    - **NullPacketBitrate** *(float) --* Value in bits per second of extra null packets to insert
    into the transport stream. This can be used if a downstream encryption system requires periodic
    null packets.

    - **PatInterval** *(integer) --* The number of milliseconds between instances of this table in
    the output transport stream. Valid values are 0, 10..1000.

    - **PcrControl** *(string) --* When set to pcrEveryPesPacket, a Program Clock Reference value is
    inserted for every Packetized Elementary Stream (PES) header. This parameter is effective only
    when the PCR PID is the same as the video or audio elementary stream.

    - **PcrPeriod** *(integer) --* Maximum time in milliseconds between Program Clock Reference
    (PCRs) inserted into the transport stream.

    - **PcrPid** *(string) --* Packet Identifier (PID) of the Program Clock Reference (PCR) in the
    transport stream. When no value is given, the encoder will assign the same value as the Video
    PID. Can be entered as a decimal or hexadecimal value. Valid values are 32 (or 0x20)..8182 (or
    0x1ff6).

    - **PmtInterval** *(integer) --* The number of milliseconds between instances of this table in
    the output transport stream. Valid values are 0, 10..1000.

    - **PmtPid** *(string) --* Packet Identifier (PID) for the Program Map Table (PMT) in the
    transport stream. Can be entered as a decimal or hexadecimal value. Valid values are 32 (or
    0x20)..8182 (or 0x1ff6).

    - **ProgramNum** *(integer) --* The value of the program number field in the Program Map Table.

    - **RateMode** *(string) --* When vbr, does not insert null packets into transport stream to
    fill specified bitrate. The bitrate setting acts as the maximum bitrate when vbr is set.

    - **Scte27Pids** *(string) --* Packet Identifier (PID) for input source SCTE-27 data to this
    output. Multiple values are accepted, and can be entered in ranges and/or by comma separation.
    Can be entered as decimal or hexadecimal values. Each PID specified must be in the range of 32
    (or 0x20)..8182 (or 0x1ff6).

    - **Scte35Control** *(string) --* Optionally pass SCTE-35 signals from the input source to this
    output.

    - **Scte35Pid** *(string) --* Packet Identifier (PID) of the SCTE-35 stream in the transport
    stream. Can be entered as a decimal or hexadecimal value. Valid values are 32 (or 0x20)..8182
    (or 0x1ff6).

    - **SegmentationMarkers** *(string) --* Inserts segmentation markers at each segmentationTime
    period. raiSegstart sets the Random Access Indicator bit in the adaptation field. raiAdapt sets
    the RAI bit and adds the current timecode in the private data bytes. psiSegstart inserts PAT and
    PMT tables at the start of segments. ebp adds Encoder Boundary Point information to the
    adaptation field as per OpenCable specification OC-SP-EBP-I01-130118. ebpLegacy adds Encoder
    Boundary Point information to the adaptation field using a legacy proprietary format.

    - **SegmentationStyle** *(string) --* The segmentation style parameter controls how segmentation
    markers are inserted into the transport stream. With avails, it is possible that segments may be
    truncated, which can influence where future segmentation markers are inserted. When a
    segmentation style of "resetCadence" is selected and a segment is truncated due to an avail, we
    will reset the segmentation cadence. This means the subsequent segment will have a duration of
    $segmentationTime seconds. When a segmentation style of "maintainCadence" is selected and a
    segment is truncated due to an avail, we will not reset the segmentation cadence. This means the
    subsequent segment will likely be truncated as well. However, all segments after that will have
    a duration of $segmentationTime seconds. Note that EBP lookahead is a slight exception to this
    rule.

    - **SegmentationTime** *(float) --* The length in seconds of each segment. Required unless
    markers is set to None_.

    - **TimedMetadataBehavior** *(string) --* When set to passthrough, timed metadata will be passed
    through from input to output.

    - **TimedMetadataPid** *(string) --* Packet Identifier (PID) of the timed metadata stream in the
    transport stream. Can be entered as a decimal or hexadecimal value. Valid values are 32 (or
    0x20)..8182 (or 0x1ff6).

    - **TransportStreamId** *(integer) --* The value of the transport stream ID field in the Program
    Map Table.

    - **VideoPid** *(string) --* Packet Identifier (PID) of the elementary video stream in the
    transport stream. Can be entered as a decimal or hexadecimal value. Valid values are 32 (or
    0x20)..8182 (or 0x1ff6).
    """


_ClientDescribeChannelResponseEncoderSettingsOutputGroupsOutputsOutputSettingsUdpOutputSettingsContainerSettingsTypeDef = TypedDict(
    "_ClientDescribeChannelResponseEncoderSettingsOutputGroupsOutputsOutputSettingsUdpOutputSettingsContainerSettingsTypeDef",
    {
        "M2tsSettings": ClientDescribeChannelResponseEncoderSettingsOutputGroupsOutputsOutputSettingsUdpOutputSettingsContainerSettingsM2tsSettingsTypeDef
    },
    total=False,
)


class ClientDescribeChannelResponseEncoderSettingsOutputGroupsOutputsOutputSettingsUdpOutputSettingsContainerSettingsTypeDef(
    _ClientDescribeChannelResponseEncoderSettingsOutputGroupsOutputsOutputSettingsUdpOutputSettingsContainerSettingsTypeDef
):
    """
    Type definition for
    `ClientDescribeChannelResponseEncoderSettingsOutputGroupsOutputsOutputSettingsUdpOutputSettings`
    `ContainerSettings`

    - **M2tsSettings** *(dict) --* M2ts Settings

      - **AbsentInputAudioBehavior** *(string) --* When set to drop, output audio streams will be
      removed from the program if the selected input audio stream is removed from the input. This
      allows the output audio configuration to dynamically change based on input configuration. If
      this is set to encodeSilence, all output audio streams will output encoded silence when not
      connected to an active input stream.

      - **Arib** *(string) --* When set to enabled, uses ARIB-compliant field muxing and removes
      video descriptor.

      - **AribCaptionsPid** *(string) --* Packet Identifier (PID) for ARIB Captions in the transport
      stream. Can be entered as a decimal or hexadecimal value. Valid values are 32 (or 0x20)..8182
      (or 0x1ff6).

      - **AribCaptionsPidControl** *(string) --* If set to auto, pid number used for ARIB Captions
      will be auto-selected from unused pids. If set to useConfigured, ARIB Captions will be on the
      configured pid number.

      - **AudioBufferModel** *(string) --* When set to dvb, uses DVB buffer model for Dolby Digital
      audio. When set to atsc, the ATSC model is used.

      - **AudioFramesPerPes** *(integer) --* The number of audio frames to insert for each PES
      packet.

      - **AudioPids** *(string) --* Packet Identifier (PID) of the elementary audio stream(s) in the
      transport stream. Multiple values are accepted, and can be entered in ranges and/or by comma
      separation. Can be entered as decimal or hexadecimal values. Each PID specified must be in the
      range of 32 (or 0x20)..8182 (or 0x1ff6).

      - **AudioStreamType** *(string) --* When set to atsc, uses stream type = 0x81 for AC3 and
      stream type = 0x87 for EAC3. When set to dvb, uses stream type = 0x06.

      - **Bitrate** *(integer) --* The output bitrate of the transport stream in bits per second.
      Setting to 0 lets the muxer automatically determine the appropriate bitrate.

      - **BufferModel** *(string) --* If set to multiplex, use multiplex buffer model for accurate
      interleaving. Setting to bufferModel to none can lead to lower latency, but low-memory devices
      may not be able to play back the stream without interruptions.

      - **CcDescriptor** *(string) --* When set to enabled, generates captionServiceDescriptor in
      PMT.

      - **DvbNitSettings** *(dict) --* Inserts DVB Network Information Table (NIT) at the specified
      table repetition interval.

        - **NetworkId** *(integer) --* The numeric value placed in the Network Information Table
        (NIT).

        - **NetworkName** *(string) --* The network name text placed in the networkNameDescriptor
        inside the Network Information Table. Maximum length is 256 characters.

        - **RepInterval** *(integer) --* The number of milliseconds between instances of this table
        in the output transport stream.

      - **DvbSdtSettings** *(dict) --* Inserts DVB Service Description Table (SDT) at the specified
      table repetition interval.

        - **OutputSdt** *(string) --* Selects method of inserting SDT information into output
        stream. The sdtFollow setting copies SDT information from input stream to output stream. The
        sdtFollowIfPresent setting copies SDT information from input stream to output stream if SDT
        information is present in the input, otherwise it will fall back on the user-defined values.
        The sdtManual setting means user will enter the SDT information. The sdtNone setting means
        output stream will not contain SDT information.

        - **RepInterval** *(integer) --* The number of milliseconds between instances of this table
        in the output transport stream.

        - **ServiceName** *(string) --* The service name placed in the serviceDescriptor in the
        Service Description Table. Maximum length is 256 characters.

        - **ServiceProviderName** *(string) --* The service provider name placed in the
        serviceDescriptor in the Service Description Table. Maximum length is 256 characters.

      - **DvbSubPids** *(string) --* Packet Identifier (PID) for input source DVB Subtitle data to
      this output. Multiple values are accepted, and can be entered in ranges and/or by comma
      separation. Can be entered as decimal or hexadecimal values. Each PID specified must be in the
      range of 32 (or 0x20)..8182 (or 0x1ff6).

      - **DvbTdtSettings** *(dict) --* Inserts DVB Time and Date Table (TDT) at the specified table
      repetition interval.

        - **RepInterval** *(integer) --* The number of milliseconds between instances of this table
        in the output transport stream.

      - **DvbTeletextPid** *(string) --* Packet Identifier (PID) for input source DVB Teletext data
      to this output. Can be entered as a decimal or hexadecimal value. Valid values are 32 (or
      0x20)..8182 (or 0x1ff6).

      - **Ebif** *(string) --* If set to passthrough, passes any EBIF data from the input source to
      this output.

      - **EbpAudioInterval** *(string) --* When videoAndFixedIntervals is selected, audio EBP
      markers will be added to partitions 3 and 4. The interval between these additional markers
      will be fixed, and will be slightly shorter than the video EBP marker interval. Only available
      when EBP Cablelabs segmentation markers are selected. Partitions 1 and 2 will always follow
      the video interval.

      - **EbpLookaheadMs** *(integer) --* When set, enforces that Encoder Boundary Points do not
      come within the specified time interval of each other by looking ahead at input video. If
      another EBP is going to come in within the specified time interval, the current EBP is not
      emitted, and the segment is "stretched" to the next marker. The lookahead value does not add
      latency to the system. The Live Event must be configured elsewhere to create sufficient
      latency to make the lookahead accurate.

      - **EbpPlacement** *(string) --* Controls placement of EBP on Audio PIDs. If set to
      videoAndAudioPids, EBP markers will be placed on the video PID and all audio PIDs. If set to
      videoPid, EBP markers will be placed on only the video PID.

      - **EcmPid** *(string) --* This field is unused and deprecated.

      - **EsRateInPes** *(string) --* Include or exclude the ES Rate field in the PES header.

      - **EtvPlatformPid** *(string) --* Packet Identifier (PID) for input source ETV Platform data
      to this output. Can be entered as a decimal or hexadecimal value. Valid values are 32 (or
      0x20)..8182 (or 0x1ff6).

      - **EtvSignalPid** *(string) --* Packet Identifier (PID) for input source ETV Signal data to
      this output. Can be entered as a decimal or hexadecimal value. Valid values are 32 (or
      0x20)..8182 (or 0x1ff6).

      - **FragmentTime** *(float) --* The length in seconds of each fragment. Only used with EBP
      markers.

      - **Klv** *(string) --* If set to passthrough, passes any KLV data from the input source to
      this output.

      - **KlvDataPids** *(string) --* Packet Identifier (PID) for input source KLV data to this
      output. Multiple values are accepted, and can be entered in ranges and/or by comma separation.
      Can be entered as decimal or hexadecimal values. Each PID specified must be in the range of 32
      (or 0x20)..8182 (or 0x1ff6).

      - **NielsenId3Behavior** *(string) --* If set to passthrough, Nielsen inaudible tones for
      media tracking will be detected in the input audio and an equivalent ID3 tag will be inserted
      in the output.

      - **NullPacketBitrate** *(float) --* Value in bits per second of extra null packets to insert
      into the transport stream. This can be used if a downstream encryption system requires
      periodic null packets.

      - **PatInterval** *(integer) --* The number of milliseconds between instances of this table in
      the output transport stream. Valid values are 0, 10..1000.

      - **PcrControl** *(string) --* When set to pcrEveryPesPacket, a Program Clock Reference value
      is inserted for every Packetized Elementary Stream (PES) header. This parameter is effective
      only when the PCR PID is the same as the video or audio elementary stream.

      - **PcrPeriod** *(integer) --* Maximum time in milliseconds between Program Clock Reference
      (PCRs) inserted into the transport stream.

      - **PcrPid** *(string) --* Packet Identifier (PID) of the Program Clock Reference (PCR) in the
      transport stream. When no value is given, the encoder will assign the same value as the Video
      PID. Can be entered as a decimal or hexadecimal value. Valid values are 32 (or 0x20)..8182 (or
      0x1ff6).

      - **PmtInterval** *(integer) --* The number of milliseconds between instances of this table in
      the output transport stream. Valid values are 0, 10..1000.

      - **PmtPid** *(string) --* Packet Identifier (PID) for the Program Map Table (PMT) in the
      transport stream. Can be entered as a decimal or hexadecimal value. Valid values are 32 (or
      0x20)..8182 (or 0x1ff6).

      - **ProgramNum** *(integer) --* The value of the program number field in the Program Map
      Table.

      - **RateMode** *(string) --* When vbr, does not insert null packets into transport stream to
      fill specified bitrate. The bitrate setting acts as the maximum bitrate when vbr is set.

      - **Scte27Pids** *(string) --* Packet Identifier (PID) for input source SCTE-27 data to this
      output. Multiple values are accepted, and can be entered in ranges and/or by comma separation.
      Can be entered as decimal or hexadecimal values. Each PID specified must be in the range of 32
      (or 0x20)..8182 (or 0x1ff6).

      - **Scte35Control** *(string) --* Optionally pass SCTE-35 signals from the input source to
      this output.

      - **Scte35Pid** *(string) --* Packet Identifier (PID) of the SCTE-35 stream in the transport
      stream. Can be entered as a decimal or hexadecimal value. Valid values are 32 (or 0x20)..8182
      (or 0x1ff6).

      - **SegmentationMarkers** *(string) --* Inserts segmentation markers at each segmentationTime
      period. raiSegstart sets the Random Access Indicator bit in the adaptation field. raiAdapt
      sets the RAI bit and adds the current timecode in the private data bytes. psiSegstart inserts
      PAT and PMT tables at the start of segments. ebp adds Encoder Boundary Point information to
      the adaptation field as per OpenCable specification OC-SP-EBP-I01-130118. ebpLegacy adds
      Encoder Boundary Point information to the adaptation field using a legacy proprietary format.

      - **SegmentationStyle** *(string) --* The segmentation style parameter controls how
      segmentation markers are inserted into the transport stream. With avails, it is possible that
      segments may be truncated, which can influence where future segmentation markers are inserted.
      When a segmentation style of "resetCadence" is selected and a segment is truncated due to an
      avail, we will reset the segmentation cadence. This means the subsequent segment will have a
      duration of $segmentationTime seconds. When a segmentation style of "maintainCadence" is
      selected and a segment is truncated due to an avail, we will not reset the segmentation
      cadence. This means the subsequent segment will likely be truncated as well. However, all
      segments after that will have a duration of $segmentationTime seconds. Note that EBP lookahead
      is a slight exception to this rule.

      - **SegmentationTime** *(float) --* The length in seconds of each segment. Required unless
      markers is set to None_.

      - **TimedMetadataBehavior** *(string) --* When set to passthrough, timed metadata will be
      passed through from input to output.

      - **TimedMetadataPid** *(string) --* Packet Identifier (PID) of the timed metadata stream in
      the transport stream. Can be entered as a decimal or hexadecimal value. Valid values are 32
      (or 0x20)..8182 (or 0x1ff6).

      - **TransportStreamId** *(integer) --* The value of the transport stream ID field in the
      Program Map Table.

      - **VideoPid** *(string) --* Packet Identifier (PID) of the elementary video stream in the
      transport stream. Can be entered as a decimal or hexadecimal value. Valid values are 32 (or
      0x20)..8182 (or 0x1ff6).
    """


_ClientDescribeChannelResponseEncoderSettingsOutputGroupsOutputsOutputSettingsUdpOutputSettingsDestinationTypeDef = TypedDict(
    "_ClientDescribeChannelResponseEncoderSettingsOutputGroupsOutputsOutputSettingsUdpOutputSettingsDestinationTypeDef",
    {"DestinationRefId": str},
    total=False,
)


class ClientDescribeChannelResponseEncoderSettingsOutputGroupsOutputsOutputSettingsUdpOutputSettingsDestinationTypeDef(
    _ClientDescribeChannelResponseEncoderSettingsOutputGroupsOutputsOutputSettingsUdpOutputSettingsDestinationTypeDef
):
    """
    Type definition for
    `ClientDescribeChannelResponseEncoderSettingsOutputGroupsOutputsOutputSettingsUdpOutputSettings`
    `Destination`

    - **DestinationRefId** *(string) --* Placeholder documentation for __string
    """


_ClientDescribeChannelResponseEncoderSettingsOutputGroupsOutputsOutputSettingsUdpOutputSettingsFecOutputSettingsTypeDef = TypedDict(
    "_ClientDescribeChannelResponseEncoderSettingsOutputGroupsOutputsOutputSettingsUdpOutputSettingsFecOutputSettingsTypeDef",
    {"ColumnDepth": int, "IncludeFec": str, "RowLength": int},
    total=False,
)


class ClientDescribeChannelResponseEncoderSettingsOutputGroupsOutputsOutputSettingsUdpOutputSettingsFecOutputSettingsTypeDef(
    _ClientDescribeChannelResponseEncoderSettingsOutputGroupsOutputsOutputSettingsUdpOutputSettingsFecOutputSettingsTypeDef
):
    """
    Type definition for
    `ClientDescribeChannelResponseEncoderSettingsOutputGroupsOutputsOutputSettingsUdpOutputSettings`
    `FecOutputSettings`

    - **ColumnDepth** *(integer) --* Parameter D from SMPTE 2022-1. The height of the FEC protection
    matrix. The number of transport stream packets per column error correction packet. Must be
    between 4 and 20, inclusive.

    - **IncludeFec** *(string) --* Enables column only or column and row based FEC

    - **RowLength** *(integer) --* Parameter L from SMPTE 2022-1. The width of the FEC protection
    matrix. Must be between 1 and 20, inclusive. If only Column FEC is used, then larger values
    increase robustness. If Row FEC is used, then this is the number of transport stream packets per
    row error correction packet, and the value must be between 4 and 20, inclusive, if includeFec is
    columnAndRow. If includeFec is column, this value must be 1 to 20, inclusive.
    """


_ClientDescribeChannelResponseEncoderSettingsOutputGroupsOutputsOutputSettingsUdpOutputSettingsTypeDef = TypedDict(
    "_ClientDescribeChannelResponseEncoderSettingsOutputGroupsOutputsOutputSettingsUdpOutputSettingsTypeDef",
    {
        "BufferMsec": int,
        "ContainerSettings": ClientDescribeChannelResponseEncoderSettingsOutputGroupsOutputsOutputSettingsUdpOutputSettingsContainerSettingsTypeDef,
        "Destination": ClientDescribeChannelResponseEncoderSettingsOutputGroupsOutputsOutputSettingsUdpOutputSettingsDestinationTypeDef,
        "FecOutputSettings": ClientDescribeChannelResponseEncoderSettingsOutputGroupsOutputsOutputSettingsUdpOutputSettingsFecOutputSettingsTypeDef,
    },
    total=False,
)


class ClientDescribeChannelResponseEncoderSettingsOutputGroupsOutputsOutputSettingsUdpOutputSettingsTypeDef(
    _ClientDescribeChannelResponseEncoderSettingsOutputGroupsOutputsOutputSettingsUdpOutputSettingsTypeDef
):
    """
    Type definition for
    `ClientDescribeChannelResponseEncoderSettingsOutputGroupsOutputsOutputSettings`
    `UdpOutputSettings`

    - **BufferMsec** *(integer) --* UDP output buffering in milliseconds. Larger values increase
    latency through the transcoder but simultaneously assist the transcoder in maintaining a
    constant, low-jitter UDP/RTP output while accommodating clock recovery, input switching, input
    disruptions, picture reordering, etc.

    - **ContainerSettings** *(dict) --* Udp Container Settings

      - **M2tsSettings** *(dict) --* M2ts Settings

        - **AbsentInputAudioBehavior** *(string) --* When set to drop, output audio streams will be
        removed from the program if the selected input audio stream is removed from the input. This
        allows the output audio configuration to dynamically change based on input configuration. If
        this is set to encodeSilence, all output audio streams will output encoded silence when not
        connected to an active input stream.

        - **Arib** *(string) --* When set to enabled, uses ARIB-compliant field muxing and removes
        video descriptor.

        - **AribCaptionsPid** *(string) --* Packet Identifier (PID) for ARIB Captions in the
        transport stream. Can be entered as a decimal or hexadecimal value. Valid values are 32 (or
        0x20)..8182 (or 0x1ff6).

        - **AribCaptionsPidControl** *(string) --* If set to auto, pid number used for ARIB Captions
        will be auto-selected from unused pids. If set to useConfigured, ARIB Captions will be on
        the configured pid number.

        - **AudioBufferModel** *(string) --* When set to dvb, uses DVB buffer model for Dolby
        Digital audio. When set to atsc, the ATSC model is used.

        - **AudioFramesPerPes** *(integer) --* The number of audio frames to insert for each PES
        packet.

        - **AudioPids** *(string) --* Packet Identifier (PID) of the elementary audio stream(s) in
        the transport stream. Multiple values are accepted, and can be entered in ranges and/or by
        comma separation. Can be entered as decimal or hexadecimal values. Each PID specified must
        be in the range of 32 (or 0x20)..8182 (or 0x1ff6).

        - **AudioStreamType** *(string) --* When set to atsc, uses stream type =
             0x81 for AC3 and
        stream type = 0x87 for EAC3. When set to dvb, uses stream type = 0x06.

        - **Bitrate** *(integer) --* The output bitrate of the transport stream in bits per second.
        Setting to 0 lets the muxer automatically determine the appropriate bitrate.

        - **BufferModel** *(string) --* If set to multiplex, use multiplex buffer model for accurate
        interleaving. Setting to bufferModel to none can lead to lower latency, but low-memory
        devices may not be able to play back the stream without interruptions.

        - **CcDescriptor** *(string) --* When set to enabled, generates captionServiceDescriptor in
        PMT.

        - **DvbNitSettings** *(dict) --* Inserts DVB Network Information Table (NIT) at the
        specified table repetition interval.

          - **NetworkId** *(integer) --* The numeric value placed in the Network Information Table
          (NIT).

          - **NetworkName** *(string) --* The network name text placed in the networkNameDescriptor
          inside the Network Information Table. Maximum length is 256 characters.

          - **RepInterval** *(integer) --* The number of milliseconds between instances of this
          table in the output transport stream.

        - **DvbSdtSettings** *(dict) --* Inserts DVB Service Description Table (SDT) at the
        specified table repetition interval.

          - **OutputSdt** *(string) --* Selects method of inserting SDT information into output
          stream. The sdtFollow setting copies SDT information from input stream to output stream.
          The sdtFollowIfPresent setting copies SDT information from input stream to output stream
          if SDT information is present in the input, otherwise it will fall back on the
          user-defined values. The sdtManual setting means user will enter the SDT information. The
          sdtNone setting means output stream will not contain SDT information.

          - **RepInterval** *(integer) --* The number of milliseconds between instances of this
          table in the output transport stream.

          - **ServiceName** *(string) --* The service name placed in the serviceDescriptor in the
          Service Description Table. Maximum length is 256 characters.

          - **ServiceProviderName** *(string) --* The service provider name placed in the
          serviceDescriptor in the Service Description Table. Maximum length is 256 characters.

        - **DvbSubPids** *(string) --* Packet Identifier (PID) for input source DVB Subtitle data to
        this output. Multiple values are accepted, and can be entered in ranges and/or by comma
        separation. Can be entered as decimal or hexadecimal values. Each PID specified must be in
        the range of 32 (or 0x20)..8182 (or 0x1ff6).

        - **DvbTdtSettings** *(dict) --* Inserts DVB Time and Date Table (TDT) at the specified
        table repetition interval.

          - **RepInterval** *(integer) --* The number of milliseconds between instances of this
          table in the output transport stream.

        - **DvbTeletextPid** *(string) --* Packet Identifier (PID) for input source DVB Teletext
        data to this output. Can be entered as a decimal or hexadecimal value. Valid values are 32
        (or 0x20)..8182 (or 0x1ff6).

        - **Ebif** *(string) --* If set to passthrough, passes any EBIF data from the input source
        to this output.

        - **EbpAudioInterval** *(string) --* When videoAndFixedIntervals is selected, audio EBP
        markers will be added to partitions 3 and 4. The interval between these additional markers
        will be fixed, and will be slightly shorter than the video EBP marker interval. Only
        available when EBP Cablelabs segmentation markers are selected. Partitions 1 and 2 will
        always follow the video interval.

        - **EbpLookaheadMs** *(integer) --* When set, enforces that Encoder Boundary Points do not
        come within the specified time interval of each other by looking ahead at input video. If
        another EBP is going to come in within the specified time interval, the current EBP is not
        emitted, and the segment is "stretched" to the next marker. The lookahead value does not add
        latency to the system. The Live Event must be configured elsewhere to create sufficient
        latency to make the lookahead accurate.

        - **EbpPlacement** *(string) --* Controls placement of EBP on Audio PIDs. If set to
        videoAndAudioPids, EBP markers will be placed on the video PID and all audio PIDs. If set to
        videoPid, EBP markers will be placed on only the video PID.

        - **EcmPid** *(string) --* This field is unused and deprecated.

        - **EsRateInPes** *(string) --* Include or exclude the ES Rate field in the PES header.

        - **EtvPlatformPid** *(string) --* Packet Identifier (PID) for input source ETV Platform
        data to this output. Can be entered as a decimal or hexadecimal value. Valid values are 32
        (or 0x20)..8182 (or 0x1ff6).

        - **EtvSignalPid** *(string) --* Packet Identifier (PID) for input source ETV Signal data to
        this output. Can be entered as a decimal or hexadecimal value. Valid values are 32 (or
        0x20)..8182 (or 0x1ff6).

        - **FragmentTime** *(float) --* The length in seconds of each fragment. Only used with EBP
        markers.

        - **Klv** *(string) --* If set to passthrough, passes any KLV data from the input source to
        this output.

        - **KlvDataPids** *(string) --* Packet Identifier (PID) for input source KLV data to this
        output. Multiple values are accepted, and can be entered in ranges and/or by comma
        separation. Can be entered as decimal or hexadecimal values. Each PID specified must be in
        the range of 32 (or 0x20)..8182 (or 0x1ff6).

        - **NielsenId3Behavior** *(string) --* If set to passthrough, Nielsen inaudible tones for
        media tracking will be detected in the input audio and an equivalent ID3 tag will be
        inserted in the output.

        - **NullPacketBitrate** *(float) --* Value in bits per second of extra null packets to
        insert into the transport stream. This can be used if a downstream encryption system
        requires periodic null packets.

        - **PatInterval** *(integer) --* The number of milliseconds between instances of this table
        in the output transport stream. Valid values are 0, 10..1000.

        - **PcrControl** *(string) --* When set to pcrEveryPesPacket, a Program Clock Reference
        value is inserted for every Packetized Elementary Stream (PES) header. This parameter is
        effective only when the PCR PID is the same as the video or audio elementary stream.

        - **PcrPeriod** *(integer) --* Maximum time in milliseconds between Program Clock Reference
        (PCRs) inserted into the transport stream.

        - **PcrPid** *(string) --* Packet Identifier (PID) of the Program Clock Reference (PCR) in
        the transport stream. When no value is given, the encoder will assign the same value as the
        Video PID. Can be entered as a decimal or hexadecimal value. Valid values are 32 (or
        0x20)..8182 (or 0x1ff6).

        - **PmtInterval** *(integer) --* The number of milliseconds between instances of this table
        in the output transport stream. Valid values are 0, 10..1000.

        - **PmtPid** *(string) --* Packet Identifier (PID) for the Program Map Table (PMT) in the
        transport stream. Can be entered as a decimal or hexadecimal value. Valid values are 32 (or
        0x20)..8182 (or 0x1ff6).

        - **ProgramNum** *(integer) --* The value of the program number field in the Program Map
        Table.

        - **RateMode** *(string) --* When vbr, does not insert null packets into transport stream to
        fill specified bitrate. The bitrate setting acts as the maximum bitrate when vbr is set.

        - **Scte27Pids** *(string) --* Packet Identifier (PID) for input source SCTE-27 data to this
        output. Multiple values are accepted, and can be entered in ranges and/or by comma
        separation. Can be entered as decimal or hexadecimal values. Each PID specified must be in
        the range of 32 (or 0x20)..8182 (or 0x1ff6).

        - **Scte35Control** *(string) --* Optionally pass SCTE-35 signals from the input source to
        this output.

        - **Scte35Pid** *(string) --* Packet Identifier (PID) of the SCTE-35 stream in the transport
        stream. Can be entered as a decimal or hexadecimal value. Valid values are 32 (or
        0x20)..8182 (or 0x1ff6).

        - **SegmentationMarkers** *(string) --* Inserts segmentation markers at each
        segmentationTime period. raiSegstart sets the Random Access Indicator bit in the adaptation
        field. raiAdapt sets the RAI bit and adds the current timecode in the private data bytes.
        psiSegstart inserts PAT and PMT tables at the start of segments. ebp adds Encoder Boundary
        Point information to the adaptation field as per OpenCable specification
        OC-SP-EBP-I01-130118. ebpLegacy adds Encoder Boundary Point information to the adaptation
        field using a legacy proprietary format.

        - **SegmentationStyle** *(string) --* The segmentation style parameter controls how
        segmentation markers are inserted into the transport stream. With avails, it is possible
        that segments may be truncated, which can influence where future segmentation markers are
        inserted. When a segmentation style of "resetCadence" is selected and a segment is truncated
        due to an avail, we will reset the segmentation cadence. This means the subsequent segment
        will have a duration of $segmentationTime seconds. When a segmentation style of
        "maintainCadence" is selected and a segment is truncated due to an avail, we will not reset
        the segmentation cadence. This means the subsequent segment will likely be truncated as
        well. However, all segments after that will have a duration of $segmentationTime seconds.
        Note that EBP lookahead is a slight exception to this rule.

        - **SegmentationTime** *(float) --* The length in seconds of each segment. Required unless
        markers is set to None_.

        - **TimedMetadataBehavior** *(string) --* When set to passthrough, timed metadata will be
        passed through from input to output.

        - **TimedMetadataPid** *(string) --* Packet Identifier (PID) of the timed metadata stream in
        the transport stream. Can be entered as a decimal or hexadecimal value. Valid values are 32
        (or 0x20)..8182 (or 0x1ff6).

        - **TransportStreamId** *(integer) --* The value of the transport stream ID field in the
        Program Map Table.

        - **VideoPid** *(string) --* Packet Identifier (PID) of the elementary video stream in the
        transport stream. Can be entered as a decimal or hexadecimal value. Valid values are 32 (or
        0x20)..8182 (or 0x1ff6).

    - **Destination** *(dict) --* Destination address and port number for RTP or UDP packets. Can be
    unicast or multicast RTP or UDP (eg. rtp://239.10.10.10:5001 or udp://10.100.100.100:5002).

      - **DestinationRefId** *(string) --* Placeholder documentation for __string

    - **FecOutputSettings** *(dict) --* Settings for enabling and adjusting Forward Error Correction
    on UDP outputs.

      - **ColumnDepth** *(integer) --* Parameter D from SMPTE 2022-1. The height of the FEC
      protection matrix. The number of transport stream packets per column error correction packet.
      Must be between 4 and 20, inclusive.

      - **IncludeFec** *(string) --* Enables column only or column and row based FEC

      - **RowLength** *(integer) --* Parameter L from SMPTE 2022-1. The width of the FEC protection
      matrix. Must be between 1 and 20, inclusive. If only Column FEC is used, then larger values
      increase robustness. If Row FEC is used, then this is the number of transport stream packets
      per row error correction packet, and the value must be between 4 and 20, inclusive, if
      includeFec is columnAndRow. If includeFec is column, this value must be 1 to 20, inclusive.
    """


_ClientDescribeChannelResponseEncoderSettingsOutputGroupsOutputsOutputSettingsTypeDef = TypedDict(
    "_ClientDescribeChannelResponseEncoderSettingsOutputGroupsOutputsOutputSettingsTypeDef",
    {
        "ArchiveOutputSettings": ClientDescribeChannelResponseEncoderSettingsOutputGroupsOutputsOutputSettingsArchiveOutputSettingsTypeDef,
        "FrameCaptureOutputSettings": ClientDescribeChannelResponseEncoderSettingsOutputGroupsOutputsOutputSettingsFrameCaptureOutputSettingsTypeDef,
        "HlsOutputSettings": ClientDescribeChannelResponseEncoderSettingsOutputGroupsOutputsOutputSettingsHlsOutputSettingsTypeDef,
        "MediaPackageOutputSettings": Dict,
        "MsSmoothOutputSettings": ClientDescribeChannelResponseEncoderSettingsOutputGroupsOutputsOutputSettingsMsSmoothOutputSettingsTypeDef,
        "MultiplexOutputSettings": ClientDescribeChannelResponseEncoderSettingsOutputGroupsOutputsOutputSettingsMultiplexOutputSettingsTypeDef,
        "RtmpOutputSettings": ClientDescribeChannelResponseEncoderSettingsOutputGroupsOutputsOutputSettingsRtmpOutputSettingsTypeDef,
        "UdpOutputSettings": ClientDescribeChannelResponseEncoderSettingsOutputGroupsOutputsOutputSettingsUdpOutputSettingsTypeDef,
    },
    total=False,
)


class ClientDescribeChannelResponseEncoderSettingsOutputGroupsOutputsOutputSettingsTypeDef(
    _ClientDescribeChannelResponseEncoderSettingsOutputGroupsOutputsOutputSettingsTypeDef
):
    """
    Type definition for `ClientDescribeChannelResponseEncoderSettingsOutputGroupsOutputs`
    `OutputSettings`

    - **ArchiveOutputSettings** *(dict) --* Archive Output Settings

      - **ContainerSettings** *(dict) --* Settings specific to the container type of the file.

        - **M2tsSettings** *(dict) --* M2ts Settings

          - **AbsentInputAudioBehavior** *(string) --* When set to drop, output audio streams will
          be removed from the program if the selected input audio stream is removed from the input.
          This allows the output audio configuration to dynamically change based on input
          configuration. If this is set to encodeSilence, all output audio streams will output
          encoded silence when not connected to an active input stream.

          - **Arib** *(string) --* When set to enabled, uses ARIB-compliant field muxing and removes
          video descriptor.

          - **AribCaptionsPid** *(string) --* Packet Identifier (PID) for ARIB Captions in the
          transport stream. Can be entered as a decimal or hexadecimal value. Valid values are 32
          (or 0x20)..8182 (or 0x1ff6).

          - **AribCaptionsPidControl** *(string) --* If set to auto, pid number used for ARIB
          Captions will be auto-selected from unused pids. If set to useConfigured, ARIB Captions
          will be on the configured pid number.

          - **AudioBufferModel** *(string) --* When set to dvb, uses DVB buffer model for Dolby
          Digital audio. When set to atsc, the ATSC model is used.

          - **AudioFramesPerPes** *(integer) --* The number of audio frames to insert for each PES
          packet.

          - **AudioPids** *(string) --* Packet Identifier (PID) of the elementary audio stream(s) in
          the transport stream. Multiple values are accepted, and can be entered in ranges and/or by
          comma separation. Can be entered as decimal or hexadecimal values. Each PID specified must
          be in the range of 32 (or 0x20)..8182 (or 0x1ff6).

          - **AudioStreamType** *(string) --* When set to atsc, uses stream type =
               0x81 for AC3 and
          stream type = 0x87 for EAC3. When set to dvb, uses stream type = 0x06.

          - **Bitrate** *(integer) --* The output bitrate of the transport stream in bits per
          second. Setting to 0 lets the muxer automatically determine the appropriate bitrate.

          - **BufferModel** *(string) --* If set to multiplex, use multiplex buffer model for
          accurate interleaving. Setting to bufferModel to none can lead to lower latency, but
          low-memory devices may not be able to play back the stream without interruptions.

          - **CcDescriptor** *(string) --* When set to enabled, generates captionServiceDescriptor
          in PMT.

          - **DvbNitSettings** *(dict) --* Inserts DVB Network Information Table (NIT) at the
          specified table repetition interval.

            - **NetworkId** *(integer) --* The numeric value placed in the Network Information Table
            (NIT).

            - **NetworkName** *(string) --* The network name text placed in the
            networkNameDescriptor inside the Network Information Table. Maximum length is 256
            characters.

            - **RepInterval** *(integer) --* The number of milliseconds between instances of this
            table in the output transport stream.

          - **DvbSdtSettings** *(dict) --* Inserts DVB Service Description Table (SDT) at the
          specified table repetition interval.

            - **OutputSdt** *(string) --* Selects method of inserting SDT information into output
            stream. The sdtFollow setting copies SDT information from input stream to output stream.
            The sdtFollowIfPresent setting copies SDT information from input stream to output stream
            if SDT information is present in the input, otherwise it will fall back on the
            user-defined values. The sdtManual setting means user will enter the SDT information.
            The sdtNone setting means output stream will not contain SDT information.

            - **RepInterval** *(integer) --* The number of milliseconds between instances of this
            table in the output transport stream.

            - **ServiceName** *(string) --* The service name placed in the serviceDescriptor in the
            Service Description Table. Maximum length is 256 characters.

            - **ServiceProviderName** *(string) --* The service provider name placed in the
            serviceDescriptor in the Service Description Table. Maximum length is 256 characters.

          - **DvbSubPids** *(string) --* Packet Identifier (PID) for input source DVB Subtitle data
          to this output. Multiple values are accepted, and can be entered in ranges and/or by comma
          separation. Can be entered as decimal or hexadecimal values. Each PID specified must be in
          the range of 32 (or 0x20)..8182 (or 0x1ff6).

          - **DvbTdtSettings** *(dict) --* Inserts DVB Time and Date Table (TDT) at the specified
          table repetition interval.

            - **RepInterval** *(integer) --* The number of milliseconds between instances of this
            table in the output transport stream.

          - **DvbTeletextPid** *(string) --* Packet Identifier (PID) for input source DVB Teletext
          data to this output. Can be entered as a decimal or hexadecimal value. Valid values are 32
          (or 0x20)..8182 (or 0x1ff6).

          - **Ebif** *(string) --* If set to passthrough, passes any EBIF data from the input source
          to this output.

          - **EbpAudioInterval** *(string) --* When videoAndFixedIntervals is selected, audio EBP
          markers will be added to partitions 3 and 4. The interval between these additional markers
          will be fixed, and will be slightly shorter than the video EBP marker interval. Only
          available when EBP Cablelabs segmentation markers are selected. Partitions 1 and 2 will
          always follow the video interval.

          - **EbpLookaheadMs** *(integer) --* When set, enforces that Encoder Boundary Points do not
          come within the specified time interval of each other by looking ahead at input video. If
          another EBP is going to come in within the specified time interval, the current EBP is not
          emitted, and the segment is "stretched" to the next marker. The lookahead value does not
          add latency to the system. The Live Event must be configured elsewhere to create
          sufficient latency to make the lookahead accurate.

          - **EbpPlacement** *(string) --* Controls placement of EBP on Audio PIDs. If set to
          videoAndAudioPids, EBP markers will be placed on the video PID and all audio PIDs. If set
          to videoPid, EBP markers will be placed on only the video PID.

          - **EcmPid** *(string) --* This field is unused and deprecated.

          - **EsRateInPes** *(string) --* Include or exclude the ES Rate field in the PES header.

          - **EtvPlatformPid** *(string) --* Packet Identifier (PID) for input source ETV Platform
          data to this output. Can be entered as a decimal or hexadecimal value. Valid values are 32
          (or 0x20)..8182 (or 0x1ff6).

          - **EtvSignalPid** *(string) --* Packet Identifier (PID) for input source ETV Signal data
          to this output. Can be entered as a decimal or hexadecimal value. Valid values are 32 (or
          0x20)..8182 (or 0x1ff6).

          - **FragmentTime** *(float) --* The length in seconds of each fragment. Only used with EBP
          markers.

          - **Klv** *(string) --* If set to passthrough, passes any KLV data from the input source
          to this output.

          - **KlvDataPids** *(string) --* Packet Identifier (PID) for input source KLV data to this
          output. Multiple values are accepted, and can be entered in ranges and/or by comma
          separation. Can be entered as decimal or hexadecimal values. Each PID specified must be in
          the range of 32 (or 0x20)..8182 (or 0x1ff6).

          - **NielsenId3Behavior** *(string) --* If set to passthrough, Nielsen inaudible tones for
          media tracking will be detected in the input audio and an equivalent ID3 tag will be
          inserted in the output.

          - **NullPacketBitrate** *(float) --* Value in bits per second of extra null packets to
          insert into the transport stream. This can be used if a downstream encryption system
          requires periodic null packets.

          - **PatInterval** *(integer) --* The number of milliseconds between instances of this
          table in the output transport stream. Valid values are 0, 10..1000.

          - **PcrControl** *(string) --* When set to pcrEveryPesPacket, a Program Clock Reference
          value is inserted for every Packetized Elementary Stream (PES) header. This parameter is
          effective only when the PCR PID is the same as the video or audio elementary stream.

          - **PcrPeriod** *(integer) --* Maximum time in milliseconds between Program Clock
          Reference (PCRs) inserted into the transport stream.

          - **PcrPid** *(string) --* Packet Identifier (PID) of the Program Clock Reference (PCR) in
          the transport stream. When no value is given, the encoder will assign the same value as
          the Video PID. Can be entered as a decimal or hexadecimal value. Valid values are 32 (or
          0x20)..8182 (or 0x1ff6).

          - **PmtInterval** *(integer) --* The number of milliseconds between instances of this
          table in the output transport stream. Valid values are 0, 10..1000.

          - **PmtPid** *(string) --* Packet Identifier (PID) for the Program Map Table (PMT) in the
          transport stream. Can be entered as a decimal or hexadecimal value. Valid values are 32
          (or 0x20)..8182 (or 0x1ff6).

          - **ProgramNum** *(integer) --* The value of the program number field in the Program Map
          Table.

          - **RateMode** *(string) --* When vbr, does not insert null packets into transport stream
          to fill specified bitrate. The bitrate setting acts as the maximum bitrate when vbr is
          set.

          - **Scte27Pids** *(string) --* Packet Identifier (PID) for input source SCTE-27 data to
          this output. Multiple values are accepted, and can be entered in ranges and/or by comma
          separation. Can be entered as decimal or hexadecimal values. Each PID specified must be in
          the range of 32 (or 0x20)..8182 (or 0x1ff6).

          - **Scte35Control** *(string) --* Optionally pass SCTE-35 signals from the input source to
          this output.

          - **Scte35Pid** *(string) --* Packet Identifier (PID) of the SCTE-35 stream in the
          transport stream. Can be entered as a decimal or hexadecimal value. Valid values are 32
          (or 0x20)..8182 (or 0x1ff6).

          - **SegmentationMarkers** *(string) --* Inserts segmentation markers at each
          segmentationTime period. raiSegstart sets the Random Access Indicator bit in the
          adaptation field. raiAdapt sets the RAI bit and adds the current timecode in the private
          data bytes. psiSegstart inserts PAT and PMT tables at the start of segments. ebp adds
          Encoder Boundary Point information to the adaptation field as per OpenCable specification
          OC-SP-EBP-I01-130118. ebpLegacy adds Encoder Boundary Point information to the adaptation
          field using a legacy proprietary format.

          - **SegmentationStyle** *(string) --* The segmentation style parameter controls how
          segmentation markers are inserted into the transport stream. With avails, it is possible
          that segments may be truncated, which can influence where future segmentation markers are
          inserted. When a segmentation style of "resetCadence" is selected and a segment is
          truncated due to an avail, we will reset the segmentation cadence. This means the
          subsequent segment will have a duration of $segmentationTime seconds. When a segmentation
          style of "maintainCadence" is selected and a segment is truncated due to an avail, we will
          not reset the segmentation cadence. This means the subsequent segment will likely be
          truncated as well. However, all segments after that will have a duration of
          $segmentationTime seconds. Note that EBP lookahead is a slight exception to this rule.

          - **SegmentationTime** *(float) --* The length in seconds of each segment. Required unless
          markers is set to None_.

          - **TimedMetadataBehavior** *(string) --* When set to passthrough, timed metadata will be
          passed through from input to output.

          - **TimedMetadataPid** *(string) --* Packet Identifier (PID) of the timed metadata stream
          in the transport stream. Can be entered as a decimal or hexadecimal value. Valid values
          are 32 (or 0x20)..8182 (or 0x1ff6).

          - **TransportStreamId** *(integer) --* The value of the transport stream ID field in the
          Program Map Table.

          - **VideoPid** *(string) --* Packet Identifier (PID) of the elementary video stream in the
          transport stream. Can be entered as a decimal or hexadecimal value. Valid values are 32
          (or 0x20)..8182 (or 0x1ff6).

      - **Extension** *(string) --* Output file extension. If excluded, this will be auto-selected
      from the container type.

      - **NameModifier** *(string) --* String concatenated to the end of the destination filename.
      Required for multiple outputs of the same type.

    - **FrameCaptureOutputSettings** *(dict) --* Frame Capture Output Settings

      - **NameModifier** *(string) --* Required if the output group contains more than one output.
      This modifier forms part of the output file name.

    - **HlsOutputSettings** *(dict) --* Hls Output Settings

      - **HlsSettings** *(dict) --* Settings regarding the underlying stream. These settings are
      different for audio-only outputs.

        - **AudioOnlyHlsSettings** *(dict) --* Audio Only Hls Settings

          - **AudioGroupId** *(string) --* Specifies the group to which the audio Rendition belongs.

          - **AudioOnlyImage** *(dict) --* Optional. Specifies the .jpg or .png image to use as the
          cover art for an audio-only output. We recommend a low bit-size file because the image
          increases the output audio bandwidth. The image is attached to the audio as an ID3 tag,
          frame type APIC, picture type 0x10, as per the "ID3 tag version 2.4.0 - Native Frames"
          standard.

            - **PasswordParam** *(string) --* key used to extract the password from EC2 Parameter
            store

            - **Uri** *(string) --* Uniform Resource Identifier - This should be a path to a file
            accessible to the Live system (eg. a http:// URI) depending on the output type. For
            example, a RTMP destination should have a uri simliar to: "rtmp://fmsserver/live".

            - **Username** *(string) --* Documentation update needed

          - **AudioTrackType** *(string) --* Four types of audio-only tracks are supported:
          Audio-Only Variant Stream The client can play back this audio-only stream instead of video
          in low-bandwidth scenarios. Represented as an EXT-X-STREAM-INF in the HLS manifest.
          Alternate Audio, Auto Select, Default Alternate rendition that the client should try to
          play back by default. Represented as an EXT-X-MEDIA in the HLS manifest with DEFAULT=YES,
          AUTOSELECT=
              YES Alternate Audio, Auto Select, Not Default Alternate rendition that the
          client may try to play back by default. Represented as an EXT-X-MEDIA in the HLS manifest
          with DEFAULT=NO, AUTOSELECT=
              YES Alternate Audio, not Auto Select Alternate rendition that
          the client will not try to play back by default. Represented as an EXT-X-MEDIA in the HLS
          manifest with DEFAULT=NO, AUTOSELECT=NO

        - **StandardHlsSettings** *(dict) --* Standard Hls Settings

          - **AudioRenditionSets** *(string) --* List all the audio groups that are used with the
          video output stream. Input all the audio GROUP-IDs that are associated to the video,
          separate by ','.

          - **M3u8Settings** *(dict) --* Settings information for the .m3u8 container

            - **AudioFramesPerPes** *(integer) --* The number of audio frames to insert for each PES
            packet.

            - **AudioPids** *(string) --* Packet Identifier (PID) of the elementary audio stream(s)
            in the transport stream. Multiple values are accepted, and can be entered in ranges
            and/or by comma separation. Can be entered as decimal or hexadecimal values.

            - **EcmPid** *(string) --* This parameter is unused and deprecated.

            - **NielsenId3Behavior** *(string) --* If set to passthrough, Nielsen inaudible tones
            for media tracking will be detected in the input audio and an equivalent ID3 tag will be
            inserted in the output.

            - **PatInterval** *(integer) --* The number of milliseconds between instances of this
            table in the output transport stream. A value of \\"0\\" writes out the PMT once per
            segment file.

            - **PcrControl** *(string) --* When set to pcrEveryPesPacket, a Program Clock Reference
            value is inserted for every Packetized Elementary Stream (PES) header. This parameter is
            effective only when the PCR PID is the same as the video or audio elementary stream.

            - **PcrPeriod** *(integer) --* Maximum time in milliseconds between Program Clock
            References (PCRs) inserted into the transport stream.

            - **PcrPid** *(string) --* Packet Identifier (PID) of the Program Clock Reference (PCR)
            in the transport stream. When no value is given, the encoder will assign the same value
            as the Video PID. Can be entered as a decimal or hexadecimal value.

            - **PmtInterval** *(integer) --* The number of milliseconds between instances of this
            table in the output transport stream. A value of \\"0\\" writes out the PMT once per
            segment file.

            - **PmtPid** *(string) --* Packet Identifier (PID) for the Program Map Table (PMT) in
            the transport stream. Can be entered as a decimal or hexadecimal value.

            - **ProgramNum** *(integer) --* The value of the program number field in the Program Map
            Table.

            - **Scte35Behavior** *(string) --* If set to passthrough, passes any SCTE-35 signals
            from the input source to this output.

            - **Scte35Pid** *(string) --* Packet Identifier (PID) of the SCTE-35 stream in the
            transport stream. Can be entered as a decimal or hexadecimal value.

            - **TimedMetadataBehavior** *(string) --* When set to passthrough, timed metadata is
            passed through from input to output.

            - **TimedMetadataPid** *(string) --* Packet Identifier (PID) of the timed metadata
            stream in the transport stream. Can be entered as a decimal or hexadecimal value. Valid
            values are 32 (or 0x20)..8182 (or 0x1ff6).

            - **TransportStreamId** *(integer) --* The value of the transport stream ID field in the
            Program Map Table.

            - **VideoPid** *(string) --* Packet Identifier (PID) of the elementary video stream in
            the transport stream. Can be entered as a decimal or hexadecimal value.

      - **NameModifier** *(string) --* String concatenated to the end of the destination filename.
      Accepts \\"Format Identifiers\\":#formatIdentifierParameters.

      - **SegmentModifier** *(string) --* String concatenated to end of segment filenames.

    - **MediaPackageOutputSettings** *(dict) --* Media Package Output Settings

    - **MsSmoothOutputSettings** *(dict) --* Ms Smooth Output Settings

      - **H265PackagingType** *(string) --* Only applicable when this output is referencing an H.265
      video description. Specifies whether MP4 segments should be packaged as HEV1 or HVC1.

      - **NameModifier** *(string) --* String concatenated to the end of the destination filename.
      Required for multiple outputs of the same type.

    - **MultiplexOutputSettings** *(dict) --* Multiplex Output Settings

      - **Destination** *(dict) --* Destination is a Multiplex.

        - **DestinationRefId** *(string) --* Placeholder documentation for __string

    - **RtmpOutputSettings** *(dict) --* Rtmp Output Settings

      - **CertificateMode** *(string) --* If set to verifyAuthenticity, verify the tls certificate
      chain to a trusted Certificate Authority (CA). This will cause rtmps outputs with self-signed
      certificates to fail.

      - **ConnectionRetryInterval** *(integer) --* Number of seconds to wait before retrying a
      connection to the Flash Media server if the connection is lost.

      - **Destination** *(dict) --* The RTMP endpoint excluding the stream name (eg.
      rtmp://host/appname). For connection to Akamai, a username and password must be supplied. URI
      fields accept format identifiers.

        - **DestinationRefId** *(string) --* Placeholder documentation for __string

      - **NumRetries** *(integer) --* Number of retry attempts.

    - **UdpOutputSettings** *(dict) --* Udp Output Settings

      - **BufferMsec** *(integer) --* UDP output buffering in milliseconds. Larger values increase
      latency through the transcoder but simultaneously assist the transcoder in maintaining a
      constant, low-jitter UDP/RTP output while accommodating clock recovery, input switching, input
      disruptions, picture reordering, etc.

      - **ContainerSettings** *(dict) --* Udp Container Settings

        - **M2tsSettings** *(dict) --* M2ts Settings

          - **AbsentInputAudioBehavior** *(string) --* When set to drop, output audio streams will
          be removed from the program if the selected input audio stream is removed from the input.
          This allows the output audio configuration to dynamically change based on input
          configuration. If this is set to encodeSilence, all output audio streams will output
          encoded silence when not connected to an active input stream.

          - **Arib** *(string) --* When set to enabled, uses ARIB-compliant field muxing and removes
          video descriptor.

          - **AribCaptionsPid** *(string) --* Packet Identifier (PID) for ARIB Captions in the
          transport stream. Can be entered as a decimal or hexadecimal value. Valid values are 32
          (or 0x20)..8182 (or 0x1ff6).

          - **AribCaptionsPidControl** *(string) --* If set to auto, pid number used for ARIB
          Captions will be auto-selected from unused pids. If set to useConfigured, ARIB Captions
          will be on the configured pid number.

          - **AudioBufferModel** *(string) --* When set to dvb, uses DVB buffer model for Dolby
          Digital audio. When set to atsc, the ATSC model is used.

          - **AudioFramesPerPes** *(integer) --* The number of audio frames to insert for each PES
          packet.

          - **AudioPids** *(string) --* Packet Identifier (PID) of the elementary audio stream(s) in
          the transport stream. Multiple values are accepted, and can be entered in ranges and/or by
          comma separation. Can be entered as decimal or hexadecimal values. Each PID specified must
          be in the range of 32 (or 0x20)..8182 (or 0x1ff6).

          - **AudioStreamType** *(string) --* When set to atsc, uses stream type =
               0x81 for AC3 and
          stream type = 0x87 for EAC3. When set to dvb, uses stream type = 0x06.

          - **Bitrate** *(integer) --* The output bitrate of the transport stream in bits per
          second. Setting to 0 lets the muxer automatically determine the appropriate bitrate.

          - **BufferModel** *(string) --* If set to multiplex, use multiplex buffer model for
          accurate interleaving. Setting to bufferModel to none can lead to lower latency, but
          low-memory devices may not be able to play back the stream without interruptions.

          - **CcDescriptor** *(string) --* When set to enabled, generates captionServiceDescriptor
          in PMT.

          - **DvbNitSettings** *(dict) --* Inserts DVB Network Information Table (NIT) at the
          specified table repetition interval.

            - **NetworkId** *(integer) --* The numeric value placed in the Network Information Table
            (NIT).

            - **NetworkName** *(string) --* The network name text placed in the
            networkNameDescriptor inside the Network Information Table. Maximum length is 256
            characters.

            - **RepInterval** *(integer) --* The number of milliseconds between instances of this
            table in the output transport stream.

          - **DvbSdtSettings** *(dict) --* Inserts DVB Service Description Table (SDT) at the
          specified table repetition interval.

            - **OutputSdt** *(string) --* Selects method of inserting SDT information into output
            stream. The sdtFollow setting copies SDT information from input stream to output stream.
            The sdtFollowIfPresent setting copies SDT information from input stream to output stream
            if SDT information is present in the input, otherwise it will fall back on the
            user-defined values. The sdtManual setting means user will enter the SDT information.
            The sdtNone setting means output stream will not contain SDT information.

            - **RepInterval** *(integer) --* The number of milliseconds between instances of this
            table in the output transport stream.

            - **ServiceName** *(string) --* The service name placed in the serviceDescriptor in the
            Service Description Table. Maximum length is 256 characters.

            - **ServiceProviderName** *(string) --* The service provider name placed in the
            serviceDescriptor in the Service Description Table. Maximum length is 256 characters.

          - **DvbSubPids** *(string) --* Packet Identifier (PID) for input source DVB Subtitle data
          to this output. Multiple values are accepted, and can be entered in ranges and/or by comma
          separation. Can be entered as decimal or hexadecimal values. Each PID specified must be in
          the range of 32 (or 0x20)..8182 (or 0x1ff6).

          - **DvbTdtSettings** *(dict) --* Inserts DVB Time and Date Table (TDT) at the specified
          table repetition interval.

            - **RepInterval** *(integer) --* The number of milliseconds between instances of this
            table in the output transport stream.

          - **DvbTeletextPid** *(string) --* Packet Identifier (PID) for input source DVB Teletext
          data to this output. Can be entered as a decimal or hexadecimal value. Valid values are 32
          (or 0x20)..8182 (or 0x1ff6).

          - **Ebif** *(string) --* If set to passthrough, passes any EBIF data from the input source
          to this output.

          - **EbpAudioInterval** *(string) --* When videoAndFixedIntervals is selected, audio EBP
          markers will be added to partitions 3 and 4. The interval between these additional markers
          will be fixed, and will be slightly shorter than the video EBP marker interval. Only
          available when EBP Cablelabs segmentation markers are selected. Partitions 1 and 2 will
          always follow the video interval.

          - **EbpLookaheadMs** *(integer) --* When set, enforces that Encoder Boundary Points do not
          come within the specified time interval of each other by looking ahead at input video. If
          another EBP is going to come in within the specified time interval, the current EBP is not
          emitted, and the segment is "stretched" to the next marker. The lookahead value does not
          add latency to the system. The Live Event must be configured elsewhere to create
          sufficient latency to make the lookahead accurate.

          - **EbpPlacement** *(string) --* Controls placement of EBP on Audio PIDs. If set to
          videoAndAudioPids, EBP markers will be placed on the video PID and all audio PIDs. If set
          to videoPid, EBP markers will be placed on only the video PID.

          - **EcmPid** *(string) --* This field is unused and deprecated.

          - **EsRateInPes** *(string) --* Include or exclude the ES Rate field in the PES header.

          - **EtvPlatformPid** *(string) --* Packet Identifier (PID) for input source ETV Platform
          data to this output. Can be entered as a decimal or hexadecimal value. Valid values are 32
          (or 0x20)..8182 (or 0x1ff6).

          - **EtvSignalPid** *(string) --* Packet Identifier (PID) for input source ETV Signal data
          to this output. Can be entered as a decimal or hexadecimal value. Valid values are 32 (or
          0x20)..8182 (or 0x1ff6).

          - **FragmentTime** *(float) --* The length in seconds of each fragment. Only used with EBP
          markers.

          - **Klv** *(string) --* If set to passthrough, passes any KLV data from the input source
          to this output.

          - **KlvDataPids** *(string) --* Packet Identifier (PID) for input source KLV data to this
          output. Multiple values are accepted, and can be entered in ranges and/or by comma
          separation. Can be entered as decimal or hexadecimal values. Each PID specified must be in
          the range of 32 (or 0x20)..8182 (or 0x1ff6).

          - **NielsenId3Behavior** *(string) --* If set to passthrough, Nielsen inaudible tones for
          media tracking will be detected in the input audio and an equivalent ID3 tag will be
          inserted in the output.

          - **NullPacketBitrate** *(float) --* Value in bits per second of extra null packets to
          insert into the transport stream. This can be used if a downstream encryption system
          requires periodic null packets.

          - **PatInterval** *(integer) --* The number of milliseconds between instances of this
          table in the output transport stream. Valid values are 0, 10..1000.

          - **PcrControl** *(string) --* When set to pcrEveryPesPacket, a Program Clock Reference
          value is inserted for every Packetized Elementary Stream (PES) header. This parameter is
          effective only when the PCR PID is the same as the video or audio elementary stream.

          - **PcrPeriod** *(integer) --* Maximum time in milliseconds between Program Clock
          Reference (PCRs) inserted into the transport stream.

          - **PcrPid** *(string) --* Packet Identifier (PID) of the Program Clock Reference (PCR) in
          the transport stream. When no value is given, the encoder will assign the same value as
          the Video PID. Can be entered as a decimal or hexadecimal value. Valid values are 32 (or
          0x20)..8182 (or 0x1ff6).

          - **PmtInterval** *(integer) --* The number of milliseconds between instances of this
          table in the output transport stream. Valid values are 0, 10..1000.

          - **PmtPid** *(string) --* Packet Identifier (PID) for the Program Map Table (PMT) in the
          transport stream. Can be entered as a decimal or hexadecimal value. Valid values are 32
          (or 0x20)..8182 (or 0x1ff6).

          - **ProgramNum** *(integer) --* The value of the program number field in the Program Map
          Table.

          - **RateMode** *(string) --* When vbr, does not insert null packets into transport stream
          to fill specified bitrate. The bitrate setting acts as the maximum bitrate when vbr is
          set.

          - **Scte27Pids** *(string) --* Packet Identifier (PID) for input source SCTE-27 data to
          this output. Multiple values are accepted, and can be entered in ranges and/or by comma
          separation. Can be entered as decimal or hexadecimal values. Each PID specified must be in
          the range of 32 (or 0x20)..8182 (or 0x1ff6).

          - **Scte35Control** *(string) --* Optionally pass SCTE-35 signals from the input source to
          this output.

          - **Scte35Pid** *(string) --* Packet Identifier (PID) of the SCTE-35 stream in the
          transport stream. Can be entered as a decimal or hexadecimal value. Valid values are 32
          (or 0x20)..8182 (or 0x1ff6).

          - **SegmentationMarkers** *(string) --* Inserts segmentation markers at each
          segmentationTime period. raiSegstart sets the Random Access Indicator bit in the
          adaptation field. raiAdapt sets the RAI bit and adds the current timecode in the private
          data bytes. psiSegstart inserts PAT and PMT tables at the start of segments. ebp adds
          Encoder Boundary Point information to the adaptation field as per OpenCable specification
          OC-SP-EBP-I01-130118. ebpLegacy adds Encoder Boundary Point information to the adaptation
          field using a legacy proprietary format.

          - **SegmentationStyle** *(string) --* The segmentation style parameter controls how
          segmentation markers are inserted into the transport stream. With avails, it is possible
          that segments may be truncated, which can influence where future segmentation markers are
          inserted. When a segmentation style of "resetCadence" is selected and a segment is
          truncated due to an avail, we will reset the segmentation cadence. This means the
          subsequent segment will have a duration of $segmentationTime seconds. When a segmentation
          style of "maintainCadence" is selected and a segment is truncated due to an avail, we will
          not reset the segmentation cadence. This means the subsequent segment will likely be
          truncated as well. However, all segments after that will have a duration of
          $segmentationTime seconds. Note that EBP lookahead is a slight exception to this rule.

          - **SegmentationTime** *(float) --* The length in seconds of each segment. Required unless
          markers is set to None_.

          - **TimedMetadataBehavior** *(string) --* When set to passthrough, timed metadata will be
          passed through from input to output.

          - **TimedMetadataPid** *(string) --* Packet Identifier (PID) of the timed metadata stream
          in the transport stream. Can be entered as a decimal or hexadecimal value. Valid values
          are 32 (or 0x20)..8182 (or 0x1ff6).

          - **TransportStreamId** *(integer) --* The value of the transport stream ID field in the
          Program Map Table.

          - **VideoPid** *(string) --* Packet Identifier (PID) of the elementary video stream in the
          transport stream. Can be entered as a decimal or hexadecimal value. Valid values are 32
          (or 0x20)..8182 (or 0x1ff6).

      - **Destination** *(dict) --* Destination address and port number for RTP or UDP packets. Can
      be unicast or multicast RTP or UDP (eg. rtp://239.10.10.10:5001 or udp://10.100.100.100:5002).

        - **DestinationRefId** *(string) --* Placeholder documentation for __string

      - **FecOutputSettings** *(dict) --* Settings for enabling and adjusting Forward Error
      Correction on UDP outputs.

        - **ColumnDepth** *(integer) --* Parameter D from SMPTE 2022-1. The height of the FEC
        protection matrix. The number of transport stream packets per column error correction
        packet. Must be between 4 and 20, inclusive.

        - **IncludeFec** *(string) --* Enables column only or column and row based FEC

        - **RowLength** *(integer) --* Parameter L from SMPTE 2022-1. The width of the FEC
        protection matrix. Must be between 1 and 20, inclusive. If only Column FEC is used, then
        larger values increase robustness. If Row FEC is used, then this is the number of transport
        stream packets per row error correction packet, and the value must be between 4 and 20,
        inclusive, if includeFec is columnAndRow. If includeFec is column, this value must be 1 to
        20, inclusive.
    """


_ClientDescribeChannelResponseEncoderSettingsOutputGroupsOutputsTypeDef = TypedDict(
    "_ClientDescribeChannelResponseEncoderSettingsOutputGroupsOutputsTypeDef",
    {
        "AudioDescriptionNames": List[str],
        "CaptionDescriptionNames": List[str],
        "OutputName": str,
        "OutputSettings": ClientDescribeChannelResponseEncoderSettingsOutputGroupsOutputsOutputSettingsTypeDef,
        "VideoDescriptionName": str,
    },
    total=False,
)


class ClientDescribeChannelResponseEncoderSettingsOutputGroupsOutputsTypeDef(
    _ClientDescribeChannelResponseEncoderSettingsOutputGroupsOutputsTypeDef
):
    """
    Type definition for `ClientDescribeChannelResponseEncoderSettingsOutputGroups` `Outputs`

    - **AudioDescriptionNames** *(list) --* The names of the AudioDescriptions used as audio sources
    for this output.

      - *(string) --* Placeholder documentation for __string

    - **CaptionDescriptionNames** *(list) --* The names of the CaptionDescriptions used as caption
    sources for this output.

      - *(string) --* Placeholder documentation for __string

    - **OutputName** *(string) --* The name used to identify an output.

    - **OutputSettings** *(dict) --* Output type-specific settings.

      - **ArchiveOutputSettings** *(dict) --* Archive Output Settings

        - **ContainerSettings** *(dict) --* Settings specific to the container type of the file.

          - **M2tsSettings** *(dict) --* M2ts Settings

            - **AbsentInputAudioBehavior** *(string) --* When set to drop, output audio streams will
            be removed from the program if the selected input audio stream is removed from the
            input. This allows the output audio configuration to dynamically change based on input
            configuration. If this is set to encodeSilence, all output audio streams will output
            encoded silence when not connected to an active input stream.

            - **Arib** *(string) --* When set to enabled, uses ARIB-compliant field muxing and
            removes video descriptor.

            - **AribCaptionsPid** *(string) --* Packet Identifier (PID) for ARIB Captions in the
            transport stream. Can be entered as a decimal or hexadecimal value. Valid values are 32
            (or 0x20)..8182 (or 0x1ff6).

            - **AribCaptionsPidControl** *(string) --* If set to auto, pid number used for ARIB
            Captions will be auto-selected from unused pids. If set to useConfigured, ARIB Captions
            will be on the configured pid number.

            - **AudioBufferModel** *(string) --* When set to dvb, uses DVB buffer model for Dolby
            Digital audio. When set to atsc, the ATSC model is used.

            - **AudioFramesPerPes** *(integer) --* The number of audio frames to insert for each PES
            packet.

            - **AudioPids** *(string) --* Packet Identifier (PID) of the elementary audio stream(s)
            in the transport stream. Multiple values are accepted, and can be entered in ranges
            and/or by comma separation. Can be entered as decimal or hexadecimal values. Each PID
            specified must be in the range of 32 (or 0x20)..8182 (or 0x1ff6).

            - **AudioStreamType** *(string) --* When set to atsc, uses stream type =
                 0x81 for AC3
            and stream type = 0x87 for EAC3. When set to dvb, uses stream type = 0x06.

            - **Bitrate** *(integer) --* The output bitrate of the transport stream in bits per
            second. Setting to 0 lets the muxer automatically determine the appropriate bitrate.

            - **BufferModel** *(string) --* If set to multiplex, use multiplex buffer model for
            accurate interleaving. Setting to bufferModel to none can lead to lower latency, but
            low-memory devices may not be able to play back the stream without interruptions.

            - **CcDescriptor** *(string) --* When set to enabled, generates captionServiceDescriptor
            in PMT.

            - **DvbNitSettings** *(dict) --* Inserts DVB Network Information Table (NIT) at the
            specified table repetition interval.

              - **NetworkId** *(integer) --* The numeric value placed in the Network Information
              Table (NIT).

              - **NetworkName** *(string) --* The network name text placed in the
              networkNameDescriptor inside the Network Information Table. Maximum length is 256
              characters.

              - **RepInterval** *(integer) --* The number of milliseconds between instances of this
              table in the output transport stream.

            - **DvbSdtSettings** *(dict) --* Inserts DVB Service Description Table (SDT) at the
            specified table repetition interval.

              - **OutputSdt** *(string) --* Selects method of inserting SDT information into output
              stream. The sdtFollow setting copies SDT information from input stream to output
              stream. The sdtFollowIfPresent setting copies SDT information from input stream to
              output stream if SDT information is present in the input, otherwise it will fall back
              on the user-defined values. The sdtManual setting means user will enter the SDT
              information. The sdtNone setting means output stream will not contain SDT information.

              - **RepInterval** *(integer) --* The number of milliseconds between instances of this
              table in the output transport stream.

              - **ServiceName** *(string) --* The service name placed in the serviceDescriptor in
              the Service Description Table. Maximum length is 256 characters.

              - **ServiceProviderName** *(string) --* The service provider name placed in the
              serviceDescriptor in the Service Description Table. Maximum length is 256 characters.

            - **DvbSubPids** *(string) --* Packet Identifier (PID) for input source DVB Subtitle
            data to this output. Multiple values are accepted, and can be entered in ranges and/or
            by comma separation. Can be entered as decimal or hexadecimal values. Each PID specified
            must be in the range of 32 (or 0x20)..8182 (or 0x1ff6).

            - **DvbTdtSettings** *(dict) --* Inserts DVB Time and Date Table (TDT) at the specified
            table repetition interval.

              - **RepInterval** *(integer) --* The number of milliseconds between instances of this
              table in the output transport stream.

            - **DvbTeletextPid** *(string) --* Packet Identifier (PID) for input source DVB Teletext
            data to this output. Can be entered as a decimal or hexadecimal value. Valid values are
            32 (or 0x20)..8182 (or 0x1ff6).

            - **Ebif** *(string) --* If set to passthrough, passes any EBIF data from the input
            source to this output.

            - **EbpAudioInterval** *(string) --* When videoAndFixedIntervals is selected, audio EBP
            markers will be added to partitions 3 and 4. The interval between these additional
            markers will be fixed, and will be slightly shorter than the video EBP marker interval.
            Only available when EBP Cablelabs segmentation markers are selected. Partitions 1 and 2
            will always follow the video interval.

            - **EbpLookaheadMs** *(integer) --* When set, enforces that Encoder Boundary Points do
            not come within the specified time interval of each other by looking ahead at input
            video. If another EBP is going to come in within the specified time interval, the
            current EBP is not emitted, and the segment is "stretched" to the next marker. The
            lookahead value does not add latency to the system. The Live Event must be configured
            elsewhere to create sufficient latency to make the lookahead accurate.

            - **EbpPlacement** *(string) --* Controls placement of EBP on Audio PIDs. If set to
            videoAndAudioPids, EBP markers will be placed on the video PID and all audio PIDs. If
            set to videoPid, EBP markers will be placed on only the video PID.

            - **EcmPid** *(string) --* This field is unused and deprecated.

            - **EsRateInPes** *(string) --* Include or exclude the ES Rate field in the PES header.

            - **EtvPlatformPid** *(string) --* Packet Identifier (PID) for input source ETV Platform
            data to this output. Can be entered as a decimal or hexadecimal value. Valid values are
            32 (or 0x20)..8182 (or 0x1ff6).

            - **EtvSignalPid** *(string) --* Packet Identifier (PID) for input source ETV Signal
            data to this output. Can be entered as a decimal or hexadecimal value. Valid values are
            32 (or 0x20)..8182 (or 0x1ff6).

            - **FragmentTime** *(float) --* The length in seconds of each fragment. Only used with
            EBP markers.

            - **Klv** *(string) --* If set to passthrough, passes any KLV data from the input source
            to this output.

            - **KlvDataPids** *(string) --* Packet Identifier (PID) for input source KLV data to
            this output. Multiple values are accepted, and can be entered in ranges and/or by comma
            separation. Can be entered as decimal or hexadecimal values. Each PID specified must be
            in the range of 32 (or 0x20)..8182 (or 0x1ff6).

            - **NielsenId3Behavior** *(string) --* If set to passthrough, Nielsen inaudible tones
            for media tracking will be detected in the input audio and an equivalent ID3 tag will be
            inserted in the output.

            - **NullPacketBitrate** *(float) --* Value in bits per second of extra null packets to
            insert into the transport stream. This can be used if a downstream encryption system
            requires periodic null packets.

            - **PatInterval** *(integer) --* The number of milliseconds between instances of this
            table in the output transport stream. Valid values are 0, 10..1000.

            - **PcrControl** *(string) --* When set to pcrEveryPesPacket, a Program Clock Reference
            value is inserted for every Packetized Elementary Stream (PES) header. This parameter is
            effective only when the PCR PID is the same as the video or audio elementary stream.

            - **PcrPeriod** *(integer) --* Maximum time in milliseconds between Program Clock
            Reference (PCRs) inserted into the transport stream.

            - **PcrPid** *(string) --* Packet Identifier (PID) of the Program Clock Reference (PCR)
            in the transport stream. When no value is given, the encoder will assign the same value
            as the Video PID. Can be entered as a decimal or hexadecimal value. Valid values are 32
            (or 0x20)..8182 (or 0x1ff6).

            - **PmtInterval** *(integer) --* The number of milliseconds between instances of this
            table in the output transport stream. Valid values are 0, 10..1000.

            - **PmtPid** *(string) --* Packet Identifier (PID) for the Program Map Table (PMT) in
            the transport stream. Can be entered as a decimal or hexadecimal value. Valid values are
            32 (or 0x20)..8182 (or 0x1ff6).

            - **ProgramNum** *(integer) --* The value of the program number field in the Program Map
            Table.

            - **RateMode** *(string) --* When vbr, does not insert null packets into transport
            stream to fill specified bitrate. The bitrate setting acts as the maximum bitrate when
            vbr is set.

            - **Scte27Pids** *(string) --* Packet Identifier (PID) for input source SCTE-27 data to
            this output. Multiple values are accepted, and can be entered in ranges and/or by comma
            separation. Can be entered as decimal or hexadecimal values. Each PID specified must be
            in the range of 32 (or 0x20)..8182 (or 0x1ff6).

            - **Scte35Control** *(string) --* Optionally pass SCTE-35 signals from the input source
            to this output.

            - **Scte35Pid** *(string) --* Packet Identifier (PID) of the SCTE-35 stream in the
            transport stream. Can be entered as a decimal or hexadecimal value. Valid values are 32
            (or 0x20)..8182 (or 0x1ff6).

            - **SegmentationMarkers** *(string) --* Inserts segmentation markers at each
            segmentationTime period. raiSegstart sets the Random Access Indicator bit in the
            adaptation field. raiAdapt sets the RAI bit and adds the current timecode in the private
            data bytes. psiSegstart inserts PAT and PMT tables at the start of segments. ebp adds
            Encoder Boundary Point information to the adaptation field as per OpenCable
            specification OC-SP-EBP-I01-130118. ebpLegacy adds Encoder Boundary Point information to
            the adaptation field using a legacy proprietary format.

            - **SegmentationStyle** *(string) --* The segmentation style parameter controls how
            segmentation markers are inserted into the transport stream. With avails, it is possible
            that segments may be truncated, which can influence where future segmentation markers
            are inserted. When a segmentation style of "resetCadence" is selected and a segment is
            truncated due to an avail, we will reset the segmentation cadence. This means the
            subsequent segment will have a duration of $segmentationTime seconds. When a
            segmentation style of "maintainCadence" is selected and a segment is truncated due to an
            avail, we will not reset the segmentation cadence. This means the subsequent segment
            will likely be truncated as well. However, all segments after that will have a duration
            of $segmentationTime seconds. Note that EBP lookahead is a slight exception to this
            rule.

            - **SegmentationTime** *(float) --* The length in seconds of each segment. Required
            unless markers is set to None_.

            - **TimedMetadataBehavior** *(string) --* When set to passthrough, timed metadata will
            be passed through from input to output.

            - **TimedMetadataPid** *(string) --* Packet Identifier (PID) of the timed metadata
            stream in the transport stream. Can be entered as a decimal or hexadecimal value. Valid
            values are 32 (or 0x20)..8182 (or 0x1ff6).

            - **TransportStreamId** *(integer) --* The value of the transport stream ID field in the
            Program Map Table.

            - **VideoPid** *(string) --* Packet Identifier (PID) of the elementary video stream in
            the transport stream. Can be entered as a decimal or hexadecimal value. Valid values are
            32 (or 0x20)..8182 (or 0x1ff6).

        - **Extension** *(string) --* Output file extension. If excluded, this will be auto-selected
        from the container type.

        - **NameModifier** *(string) --* String concatenated to the end of the destination filename.
        Required for multiple outputs of the same type.

      - **FrameCaptureOutputSettings** *(dict) --* Frame Capture Output Settings

        - **NameModifier** *(string) --* Required if the output group contains more than one output.
        This modifier forms part of the output file name.

      - **HlsOutputSettings** *(dict) --* Hls Output Settings

        - **HlsSettings** *(dict) --* Settings regarding the underlying stream. These settings are
        different for audio-only outputs.

          - **AudioOnlyHlsSettings** *(dict) --* Audio Only Hls Settings

            - **AudioGroupId** *(string) --* Specifies the group to which the audio Rendition
            belongs.

            - **AudioOnlyImage** *(dict) --* Optional. Specifies the .jpg or .png image to use as
            the cover art for an audio-only output. We recommend a low bit-size file because the
            image increases the output audio bandwidth. The image is attached to the audio as an ID3
            tag, frame type APIC, picture type 0x10, as per the "ID3 tag version 2.4.0 - Native
            Frames" standard.

              - **PasswordParam** *(string) --* key used to extract the password from EC2 Parameter
              store

              - **Uri** *(string) --* Uniform Resource Identifier - This should be a path to a file
              accessible to the Live system (eg. a http:// URI) depending on the output type. For
              example, a RTMP destination should have a uri simliar to: "rtmp://fmsserver/live".

              - **Username** *(string) --* Documentation update needed

            - **AudioTrackType** *(string) --* Four types of audio-only tracks are supported:
            Audio-Only Variant Stream The client can play back this audio-only stream instead of
            video in low-bandwidth scenarios. Represented as an EXT-X-STREAM-INF in the HLS
            manifest. Alternate Audio, Auto Select, Default Alternate rendition that the client
            should try to play back by default. Represented as an EXT-X-MEDIA in the HLS manifest
            with DEFAULT=YES, AUTOSELECT=
                YES Alternate Audio, Auto Select, Not Default Alternate
            rendition that the client may try to play back by default. Represented as an EXT-X-MEDIA
            in the HLS manifest with DEFAULT=NO, AUTOSELECT=
                YES Alternate Audio, not Auto Select
            Alternate rendition that the client will not try to play back by default. Represented as
            an EXT-X-MEDIA in the HLS manifest with DEFAULT=NO, AUTOSELECT=NO

          - **StandardHlsSettings** *(dict) --* Standard Hls Settings

            - **AudioRenditionSets** *(string) --* List all the audio groups that are used with the
            video output stream. Input all the audio GROUP-IDs that are associated to the video,
            separate by ','.

            - **M3u8Settings** *(dict) --* Settings information for the .m3u8 container

              - **AudioFramesPerPes** *(integer) --* The number of audio frames to insert for each
              PES packet.

              - **AudioPids** *(string) --* Packet Identifier (PID) of the elementary audio
              stream(s) in the transport stream. Multiple values are accepted, and can be entered in
              ranges and/or by comma separation. Can be entered as decimal or hexadecimal values.

              - **EcmPid** *(string) --* This parameter is unused and deprecated.

              - **NielsenId3Behavior** *(string) --* If set to passthrough, Nielsen inaudible tones
              for media tracking will be detected in the input audio and an equivalent ID3 tag will
              be inserted in the output.

              - **PatInterval** *(integer) --* The number of milliseconds between instances of this
              table in the output transport stream. A value of \\"0\\" writes out the PMT once per
              segment file.

              - **PcrControl** *(string) --* When set to pcrEveryPesPacket, a Program Clock
              Reference value is inserted for every Packetized Elementary Stream (PES) header. This
              parameter is effective only when the PCR PID is the same as the video or audio
              elementary stream.

              - **PcrPeriod** *(integer) --* Maximum time in milliseconds between Program Clock
              References (PCRs) inserted into the transport stream.

              - **PcrPid** *(string) --* Packet Identifier (PID) of the Program Clock Reference
              (PCR) in the transport stream. When no value is given, the encoder will assign the
              same value as the Video PID. Can be entered as a decimal or hexadecimal value.

              - **PmtInterval** *(integer) --* The number of milliseconds between instances of this
              table in the output transport stream. A value of \\"0\\" writes out the PMT once per
              segment file.

              - **PmtPid** *(string) --* Packet Identifier (PID) for the Program Map Table (PMT) in
              the transport stream. Can be entered as a decimal or hexadecimal value.

              - **ProgramNum** *(integer) --* The value of the program number field in the Program
              Map Table.

              - **Scte35Behavior** *(string) --* If set to passthrough, passes any SCTE-35 signals
              from the input source to this output.

              - **Scte35Pid** *(string) --* Packet Identifier (PID) of the SCTE-35 stream in the
              transport stream. Can be entered as a decimal or hexadecimal value.

              - **TimedMetadataBehavior** *(string) --* When set to passthrough, timed metadata is
              passed through from input to output.

              - **TimedMetadataPid** *(string) --* Packet Identifier (PID) of the timed metadata
              stream in the transport stream. Can be entered as a decimal or hexadecimal value.
              Valid values are 32 (or 0x20)..8182 (or 0x1ff6).

              - **TransportStreamId** *(integer) --* The value of the transport stream ID field in
              the Program Map Table.

              - **VideoPid** *(string) --* Packet Identifier (PID) of the elementary video stream in
              the transport stream. Can be entered as a decimal or hexadecimal value.

        - **NameModifier** *(string) --* String concatenated to the end of the destination filename.
        Accepts \\"Format Identifiers\\":#formatIdentifierParameters.

        - **SegmentModifier** *(string) --* String concatenated to end of segment filenames.

      - **MediaPackageOutputSettings** *(dict) --* Media Package Output Settings

      - **MsSmoothOutputSettings** *(dict) --* Ms Smooth Output Settings

        - **H265PackagingType** *(string) --* Only applicable when this output is referencing an
        H.265 video description. Specifies whether MP4 segments should be packaged as HEV1 or HVC1.

        - **NameModifier** *(string) --* String concatenated to the end of the destination filename.
        Required for multiple outputs of the same type.

      - **MultiplexOutputSettings** *(dict) --* Multiplex Output Settings

        - **Destination** *(dict) --* Destination is a Multiplex.

          - **DestinationRefId** *(string) --* Placeholder documentation for __string

      - **RtmpOutputSettings** *(dict) --* Rtmp Output Settings

        - **CertificateMode** *(string) --* If set to verifyAuthenticity, verify the tls certificate
        chain to a trusted Certificate Authority (CA). This will cause rtmps outputs with
        self-signed certificates to fail.

        - **ConnectionRetryInterval** *(integer) --* Number of seconds to wait before retrying a
        connection to the Flash Media server if the connection is lost.

        - **Destination** *(dict) --* The RTMP endpoint excluding the stream name (eg.
        rtmp://host/appname). For connection to Akamai, a username and password must be supplied.
        URI fields accept format identifiers.

          - **DestinationRefId** *(string) --* Placeholder documentation for __string

        - **NumRetries** *(integer) --* Number of retry attempts.

      - **UdpOutputSettings** *(dict) --* Udp Output Settings

        - **BufferMsec** *(integer) --* UDP output buffering in milliseconds. Larger values increase
        latency through the transcoder but simultaneously assist the transcoder in maintaining a
        constant, low-jitter UDP/RTP output while accommodating clock recovery, input switching,
        input disruptions, picture reordering, etc.

        - **ContainerSettings** *(dict) --* Udp Container Settings

          - **M2tsSettings** *(dict) --* M2ts Settings

            - **AbsentInputAudioBehavior** *(string) --* When set to drop, output audio streams will
            be removed from the program if the selected input audio stream is removed from the
            input. This allows the output audio configuration to dynamically change based on input
            configuration. If this is set to encodeSilence, all output audio streams will output
            encoded silence when not connected to an active input stream.

            - **Arib** *(string) --* When set to enabled, uses ARIB-compliant field muxing and
            removes video descriptor.

            - **AribCaptionsPid** *(string) --* Packet Identifier (PID) for ARIB Captions in the
            transport stream. Can be entered as a decimal or hexadecimal value. Valid values are 32
            (or 0x20)..8182 (or 0x1ff6).

            - **AribCaptionsPidControl** *(string) --* If set to auto, pid number used for ARIB
            Captions will be auto-selected from unused pids. If set to useConfigured, ARIB Captions
            will be on the configured pid number.

            - **AudioBufferModel** *(string) --* When set to dvb, uses DVB buffer model for Dolby
            Digital audio. When set to atsc, the ATSC model is used.

            - **AudioFramesPerPes** *(integer) --* The number of audio frames to insert for each PES
            packet.

            - **AudioPids** *(string) --* Packet Identifier (PID) of the elementary audio stream(s)
            in the transport stream. Multiple values are accepted, and can be entered in ranges
            and/or by comma separation. Can be entered as decimal or hexadecimal values. Each PID
            specified must be in the range of 32 (or 0x20)..8182 (or 0x1ff6).

            - **AudioStreamType** *(string) --* When set to atsc, uses stream type =
                 0x81 for AC3
            and stream type = 0x87 for EAC3. When set to dvb, uses stream type = 0x06.

            - **Bitrate** *(integer) --* The output bitrate of the transport stream in bits per
            second. Setting to 0 lets the muxer automatically determine the appropriate bitrate.

            - **BufferModel** *(string) --* If set to multiplex, use multiplex buffer model for
            accurate interleaving. Setting to bufferModel to none can lead to lower latency, but
            low-memory devices may not be able to play back the stream without interruptions.

            - **CcDescriptor** *(string) --* When set to enabled, generates captionServiceDescriptor
            in PMT.

            - **DvbNitSettings** *(dict) --* Inserts DVB Network Information Table (NIT) at the
            specified table repetition interval.

              - **NetworkId** *(integer) --* The numeric value placed in the Network Information
              Table (NIT).

              - **NetworkName** *(string) --* The network name text placed in the
              networkNameDescriptor inside the Network Information Table. Maximum length is 256
              characters.

              - **RepInterval** *(integer) --* The number of milliseconds between instances of this
              table in the output transport stream.

            - **DvbSdtSettings** *(dict) --* Inserts DVB Service Description Table (SDT) at the
            specified table repetition interval.

              - **OutputSdt** *(string) --* Selects method of inserting SDT information into output
              stream. The sdtFollow setting copies SDT information from input stream to output
              stream. The sdtFollowIfPresent setting copies SDT information from input stream to
              output stream if SDT information is present in the input, otherwise it will fall back
              on the user-defined values. The sdtManual setting means user will enter the SDT
              information. The sdtNone setting means output stream will not contain SDT information.

              - **RepInterval** *(integer) --* The number of milliseconds between instances of this
              table in the output transport stream.

              - **ServiceName** *(string) --* The service name placed in the serviceDescriptor in
              the Service Description Table. Maximum length is 256 characters.

              - **ServiceProviderName** *(string) --* The service provider name placed in the
              serviceDescriptor in the Service Description Table. Maximum length is 256 characters.

            - **DvbSubPids** *(string) --* Packet Identifier (PID) for input source DVB Subtitle
            data to this output. Multiple values are accepted, and can be entered in ranges and/or
            by comma separation. Can be entered as decimal or hexadecimal values. Each PID specified
            must be in the range of 32 (or 0x20)..8182 (or 0x1ff6).

            - **DvbTdtSettings** *(dict) --* Inserts DVB Time and Date Table (TDT) at the specified
            table repetition interval.

              - **RepInterval** *(integer) --* The number of milliseconds between instances of this
              table in the output transport stream.

            - **DvbTeletextPid** *(string) --* Packet Identifier (PID) for input source DVB Teletext
            data to this output. Can be entered as a decimal or hexadecimal value. Valid values are
            32 (or 0x20)..8182 (or 0x1ff6).

            - **Ebif** *(string) --* If set to passthrough, passes any EBIF data from the input
            source to this output.

            - **EbpAudioInterval** *(string) --* When videoAndFixedIntervals is selected, audio EBP
            markers will be added to partitions 3 and 4. The interval between these additional
            markers will be fixed, and will be slightly shorter than the video EBP marker interval.
            Only available when EBP Cablelabs segmentation markers are selected. Partitions 1 and 2
            will always follow the video interval.

            - **EbpLookaheadMs** *(integer) --* When set, enforces that Encoder Boundary Points do
            not come within the specified time interval of each other by looking ahead at input
            video. If another EBP is going to come in within the specified time interval, the
            current EBP is not emitted, and the segment is "stretched" to the next marker. The
            lookahead value does not add latency to the system. The Live Event must be configured
            elsewhere to create sufficient latency to make the lookahead accurate.

            - **EbpPlacement** *(string) --* Controls placement of EBP on Audio PIDs. If set to
            videoAndAudioPids, EBP markers will be placed on the video PID and all audio PIDs. If
            set to videoPid, EBP markers will be placed on only the video PID.

            - **EcmPid** *(string) --* This field is unused and deprecated.

            - **EsRateInPes** *(string) --* Include or exclude the ES Rate field in the PES header.

            - **EtvPlatformPid** *(string) --* Packet Identifier (PID) for input source ETV Platform
            data to this output. Can be entered as a decimal or hexadecimal value. Valid values are
            32 (or 0x20)..8182 (or 0x1ff6).

            - **EtvSignalPid** *(string) --* Packet Identifier (PID) for input source ETV Signal
            data to this output. Can be entered as a decimal or hexadecimal value. Valid values are
            32 (or 0x20)..8182 (or 0x1ff6).

            - **FragmentTime** *(float) --* The length in seconds of each fragment. Only used with
            EBP markers.

            - **Klv** *(string) --* If set to passthrough, passes any KLV data from the input source
            to this output.

            - **KlvDataPids** *(string) --* Packet Identifier (PID) for input source KLV data to
            this output. Multiple values are accepted, and can be entered in ranges and/or by comma
            separation. Can be entered as decimal or hexadecimal values. Each PID specified must be
            in the range of 32 (or 0x20)..8182 (or 0x1ff6).

            - **NielsenId3Behavior** *(string) --* If set to passthrough, Nielsen inaudible tones
            for media tracking will be detected in the input audio and an equivalent ID3 tag will be
            inserted in the output.

            - **NullPacketBitrate** *(float) --* Value in bits per second of extra null packets to
            insert into the transport stream. This can be used if a downstream encryption system
            requires periodic null packets.

            - **PatInterval** *(integer) --* The number of milliseconds between instances of this
            table in the output transport stream. Valid values are 0, 10..1000.

            - **PcrControl** *(string) --* When set to pcrEveryPesPacket, a Program Clock Reference
            value is inserted for every Packetized Elementary Stream (PES) header. This parameter is
            effective only when the PCR PID is the same as the video or audio elementary stream.

            - **PcrPeriod** *(integer) --* Maximum time in milliseconds between Program Clock
            Reference (PCRs) inserted into the transport stream.

            - **PcrPid** *(string) --* Packet Identifier (PID) of the Program Clock Reference (PCR)
            in the transport stream. When no value is given, the encoder will assign the same value
            as the Video PID. Can be entered as a decimal or hexadecimal value. Valid values are 32
            (or 0x20)..8182 (or 0x1ff6).

            - **PmtInterval** *(integer) --* The number of milliseconds between instances of this
            table in the output transport stream. Valid values are 0, 10..1000.

            - **PmtPid** *(string) --* Packet Identifier (PID) for the Program Map Table (PMT) in
            the transport stream. Can be entered as a decimal or hexadecimal value. Valid values are
            32 (or 0x20)..8182 (or 0x1ff6).

            - **ProgramNum** *(integer) --* The value of the program number field in the Program Map
            Table.

            - **RateMode** *(string) --* When vbr, does not insert null packets into transport
            stream to fill specified bitrate. The bitrate setting acts as the maximum bitrate when
            vbr is set.

            - **Scte27Pids** *(string) --* Packet Identifier (PID) for input source SCTE-27 data to
            this output. Multiple values are accepted, and can be entered in ranges and/or by comma
            separation. Can be entered as decimal or hexadecimal values. Each PID specified must be
            in the range of 32 (or 0x20)..8182 (or 0x1ff6).

            - **Scte35Control** *(string) --* Optionally pass SCTE-35 signals from the input source
            to this output.

            - **Scte35Pid** *(string) --* Packet Identifier (PID) of the SCTE-35 stream in the
            transport stream. Can be entered as a decimal or hexadecimal value. Valid values are 32
            (or 0x20)..8182 (or 0x1ff6).

            - **SegmentationMarkers** *(string) --* Inserts segmentation markers at each
            segmentationTime period. raiSegstart sets the Random Access Indicator bit in the
            adaptation field. raiAdapt sets the RAI bit and adds the current timecode in the private
            data bytes. psiSegstart inserts PAT and PMT tables at the start of segments. ebp adds
            Encoder Boundary Point information to the adaptation field as per OpenCable
            specification OC-SP-EBP-I01-130118. ebpLegacy adds Encoder Boundary Point information to
            the adaptation field using a legacy proprietary format.

            - **SegmentationStyle** *(string) --* The segmentation style parameter controls how
            segmentation markers are inserted into the transport stream. With avails, it is possible
            that segments may be truncated, which can influence where future segmentation markers
            are inserted. When a segmentation style of "resetCadence" is selected and a segment is
            truncated due to an avail, we will reset the segmentation cadence. This means the
            subsequent segment will have a duration of $segmentationTime seconds. When a
            segmentation style of "maintainCadence" is selected and a segment is truncated due to an
            avail, we will not reset the segmentation cadence. This means the subsequent segment
            will likely be truncated as well. However, all segments after that will have a duration
            of $segmentationTime seconds. Note that EBP lookahead is a slight exception to this
            rule.

            - **SegmentationTime** *(float) --* The length in seconds of each segment. Required
            unless markers is set to None_.

            - **TimedMetadataBehavior** *(string) --* When set to passthrough, timed metadata will
            be passed through from input to output.

            - **TimedMetadataPid** *(string) --* Packet Identifier (PID) of the timed metadata
            stream in the transport stream. Can be entered as a decimal or hexadecimal value. Valid
            values are 32 (or 0x20)..8182 (or 0x1ff6).

            - **TransportStreamId** *(integer) --* The value of the transport stream ID field in the
            Program Map Table.

            - **VideoPid** *(string) --* Packet Identifier (PID) of the elementary video stream in
            the transport stream. Can be entered as a decimal or hexadecimal value. Valid values are
            32 (or 0x20)..8182 (or 0x1ff6).

        - **Destination** *(dict) --* Destination address and port number for RTP or UDP packets.
        Can be unicast or multicast RTP or UDP (eg. rtp://239.10.10.10:5001 or
        udp://10.100.100.100:5002).

          - **DestinationRefId** *(string) --* Placeholder documentation for __string

        - **FecOutputSettings** *(dict) --* Settings for enabling and adjusting Forward Error
        Correction on UDP outputs.

          - **ColumnDepth** *(integer) --* Parameter D from SMPTE 2022-1. The height of the FEC
          protection matrix. The number of transport stream packets per column error correction
          packet. Must be between 4 and 20, inclusive.

          - **IncludeFec** *(string) --* Enables column only or column and row based FEC

          - **RowLength** *(integer) --* Parameter L from SMPTE 2022-1. The width of the FEC
          protection matrix. Must be between 1 and 20, inclusive. If only Column FEC is used, then
          larger values increase robustness. If Row FEC is used, then this is the number of
          transport stream packets per row error correction packet, and the value must be between 4
          and 20, inclusive, if includeFec is columnAndRow. If includeFec is column, this value must
          be 1 to 20, inclusive.

    - **VideoDescriptionName** *(string) --* The name of the VideoDescription used as the source for
    this output.
    """


_ClientDescribeChannelResponseEncoderSettingsOutputGroupsTypeDef = TypedDict(
    "_ClientDescribeChannelResponseEncoderSettingsOutputGroupsTypeDef",
    {
        "Name": str,
        "OutputGroupSettings": ClientDescribeChannelResponseEncoderSettingsOutputGroupsOutputGroupSettingsTypeDef,
        "Outputs": List[ClientDescribeChannelResponseEncoderSettingsOutputGroupsOutputsTypeDef],
    },
    total=False,
)


class ClientDescribeChannelResponseEncoderSettingsOutputGroupsTypeDef(
    _ClientDescribeChannelResponseEncoderSettingsOutputGroupsTypeDef
):
    """
    Type definition for `ClientDescribeChannelResponseEncoderSettings` `OutputGroups`

    - **Name** *(string) --* Custom output group name optionally defined by the user. Only letters,
    numbers, and the underscore character allowed; only 32 characters allowed.

    - **OutputGroupSettings** *(dict) --* Settings associated with the output group.

      - **ArchiveGroupSettings** *(dict) --* Archive Group Settings

        - **Destination** *(dict) --* A directory and base filename where archive files should be
        written.

          - **DestinationRefId** *(string) --* Placeholder documentation for __string

        - **RolloverInterval** *(integer) --* Number of seconds to write to archive file before
        closing and starting a new one.

      - **FrameCaptureGroupSettings** *(dict) --* Frame Capture Group Settings

        - **Destination** *(dict) --* The destination for the frame capture files. Either the URI
        for an Amazon S3 bucket and object, plus a file name prefix (for example,
        s3ssl://sportsDelivery/highlights/20180820/curling_) or the URI for a MediaStore container,
        plus a file name prefix (for example, mediastoressl://sportsDelivery/20180820/curling_). The
        final file names consist of the prefix from the destination field (for example, "curling_")
        + name modifier + the counter (5 digits, starting from 00001) + extension (which is always
        .jpg). For example, curlingLow.00001.jpg

          - **DestinationRefId** *(string) --* Placeholder documentation for __string

      - **HlsGroupSettings** *(dict) --* Hls Group Settings

        - **AdMarkers** *(list) --* Choose one or more ad marker types to pass SCTE35 signals
        through to this group of Apple HLS outputs.

          - *(string) --* Hls Ad Markers

        - **BaseUrlContent** *(string) --* A partial URI prefix that will be prepended to each
        output in the media .m3u8 file. Can be used if base manifest is delivered from a different
        URL than the main .m3u8 file.

        - **BaseUrlManifest** *(string) --* A partial URI prefix that will be prepended to each
        output in the media .m3u8 file. Can be used if base manifest is delivered from a different
        URL than the main .m3u8 file.

        - **CaptionLanguageMappings** *(list) --* Mapping of up to 4 caption channels to caption
        languages. Is only meaningful if captionLanguageSetting is set to "insert".

          - *(dict) --* Maps a caption channel to an ISO 693-2 language code
          (http://www.loc.gov/standards/iso639-2), with an optional description.

            - **CaptionChannel** *(integer) --* The closed caption channel being described by this
            CaptionLanguageMapping. Each channel mapping must have a unique channel number (maximum
            of 4)

            - **LanguageCode** *(string) --* Three character ISO 639-2 language code (see
            http://www.loc.gov/standards/iso639-2)

            - **LanguageDescription** *(string) --* Textual description of language

        - **CaptionLanguageSetting** *(string) --* Applies only to 608 Embedded output captions.
        insert: Include CLOSED-CAPTIONS lines in the manifest. Specify at least one language in the
        CC1 Language Code field. One CLOSED-CAPTION line is added for each Language Code you
        specify. Make sure to specify the languages in the order in which they appear in the
        original source (if the source is embedded format) or the order of the caption selectors (if
        the source is other than embedded). Otherwise, languages in the manifest will not match up
        properly with the output captions. none: Include CLOSED-CAPTIONS=
            NONE line in the manifest.
        omit: Omit any CLOSED-CAPTIONS line from the manifest.

        - **ClientCache** *(string) --* When set to "disabled", sets the #EXT-X-ALLOW-CACHE:no tag
        in the manifest, which prevents clients from saving media segments for later replay.

        - **CodecSpecification** *(string) --* Specification to use (RFC-6381 or the default
        RFC-4281) during m3u8 playlist generation.

        - **ConstantIv** *(string) --* For use with encryptionType. This is a 128-bit, 16-byte hex
        value represented by a 32-character text string. If ivSource is set to "explicit" then this
        parameter is required and is used as the IV for encryption.

        - **Destination** *(dict) --* A directory or HTTP destination for the HLS segments, manifest
        files, and encryption keys (if enabled).

          - **DestinationRefId** *(string) --* Placeholder documentation for __string

        - **DirectoryStructure** *(string) --* Place segments in subdirectories.

        - **EncryptionType** *(string) --* Encrypts the segments with the given encryption scheme.
        Exclude this parameter if no encryption is desired.

        - **HlsCdnSettings** *(dict) --* Parameters that control interactions with the CDN.

          - **HlsAkamaiSettings** *(dict) --* Hls Akamai Settings

            - **ConnectionRetryInterval** *(integer) --* Number of seconds to wait before retrying
            connection to the CDN if the connection is lost.

            - **FilecacheDuration** *(integer) --* Size in seconds of file cache for streaming
            outputs.

            - **HttpTransferMode** *(string) --* Specify whether or not to use chunked transfer
            encoding to Akamai. User should contact Akamai to enable this feature.

            - **NumRetries** *(integer) --* Number of retry attempts that will be made before the
            Live Event is put into an error state.

            - **RestartDelay** *(integer) --* If a streaming output fails, number of seconds to wait
            until a restart is initiated. A value of 0 means never restart.

            - **Salt** *(string) --* Salt for authenticated Akamai.

            - **Token** *(string) --* Token parameter for authenticated akamai. If not specified,
            _gda_ is used.

          - **HlsBasicPutSettings** *(dict) --* Hls Basic Put Settings

            - **ConnectionRetryInterval** *(integer) --* Number of seconds to wait before retrying
            connection to the CDN if the connection is lost.

            - **FilecacheDuration** *(integer) --* Size in seconds of file cache for streaming
            outputs.

            - **NumRetries** *(integer) --* Number of retry attempts that will be made before the
            Live Event is put into an error state.

            - **RestartDelay** *(integer) --* If a streaming output fails, number of seconds to wait
            until a restart is initiated. A value of 0 means never restart.

          - **HlsMediaStoreSettings** *(dict) --* Hls Media Store Settings

            - **ConnectionRetryInterval** *(integer) --* Number of seconds to wait before retrying
            connection to the CDN if the connection is lost.

            - **FilecacheDuration** *(integer) --* Size in seconds of file cache for streaming
            outputs.

            - **MediaStoreStorageClass** *(string) --* When set to temporal, output files are stored
            in non-persistent memory for faster reading and writing.

            - **NumRetries** *(integer) --* Number of retry attempts that will be made before the
            Live Event is put into an error state.

            - **RestartDelay** *(integer) --* If a streaming output fails, number of seconds to wait
            until a restart is initiated. A value of 0 means never restart.

          - **HlsWebdavSettings** *(dict) --* Hls Webdav Settings

            - **ConnectionRetryInterval** *(integer) --* Number of seconds to wait before retrying
            connection to the CDN if the connection is lost.

            - **FilecacheDuration** *(integer) --* Size in seconds of file cache for streaming
            outputs.

            - **HttpTransferMode** *(string) --* Specify whether or not to use chunked transfer
            encoding to WebDAV.

            - **NumRetries** *(integer) --* Number of retry attempts that will be made before the
            Live Event is put into an error state.

            - **RestartDelay** *(integer) --* If a streaming output fails, number of seconds to wait
            until a restart is initiated. A value of 0 means never restart.

        - **IFrameOnlyPlaylists** *(string) --* DISABLED: Do not create an I-frame-only manifest,
        but do create the master and media manifests (according to the Output Selection field).
        STANDARD: Create an I-frame-only manifest for each output that contains video, as well as
        the other manifests (according to the Output Selection field). The I-frame manifest contains
        a #EXT-X-I-FRAMES-ONLY tag to indicate it is I-frame only, and one or more #EXT-X-BYTERANGE
        entries identifying the I-frame position. For example, #EXT-X-BYTERANGE:160364@1461888"

        - **IndexNSegments** *(integer) --* Applies only if Mode field is LIVE. Specifies the
        maximum number of segments in the media manifest file. After this maximum, older segments
        are removed from the media manifest. This number must be less than or equal to the Keep
        Segments field.

        - **InputLossAction** *(string) --* Parameter that control output group behavior on input
        loss.

        - **IvInManifest** *(string) --* For use with encryptionType. The IV (Initialization Vector)
        is a 128-bit number used in conjunction with the key for encrypting blocks. If set to
        "include", IV is listed in the manifest, otherwise the IV is not in the manifest.

        - **IvSource** *(string) --* For use with encryptionType. The IV (Initialization Vector) is
        a 128-bit number used in conjunction with the key for encrypting blocks. If this setting is
        "followsSegmentNumber", it will cause the IV to change every segment (to match the segment
        number). If this is set to "explicit", you must enter a constantIv value.

        - **KeepSegments** *(integer) --* Applies only if Mode field is LIVE. Specifies the number
        of media segments (.ts files) to retain in the destination directory.

        - **KeyFormat** *(string) --* The value specifies how the key is represented in the resource
        identified by the URI. If parameter is absent, an implicit value of "identity" is used. A
        reverse DNS string can also be given.

        - **KeyFormatVersions** *(string) --* Either a single positive integer version value or a
        slash delimited list of version values (1/2/3).

        - **KeyProviderSettings** *(dict) --* The key provider settings.

          - **StaticKeySettings** *(dict) --* Static Key Settings

            - **KeyProviderServer** *(dict) --* The URL of the license server used for protecting
            content.

              - **PasswordParam** *(string) --* key used to extract the password from EC2 Parameter
              store

              - **Uri** *(string) --* Uniform Resource Identifier - This should be a path to a file
              accessible to the Live system (eg. a http:// URI) depending on the output type. For
              example, a RTMP destination should have a uri simliar to: "rtmp://fmsserver/live".

              - **Username** *(string) --* Documentation update needed

            - **StaticKeyValue** *(string) --* Static key value as a 32 character hexadecimal
            string.

        - **ManifestCompression** *(string) --* When set to gzip, compresses HLS playlist.

        - **ManifestDurationFormat** *(string) --* Indicates whether the output manifest should use
        floating point or integer values for segment duration.

        - **MinSegmentLength** *(integer) --* When set, minimumSegmentLength is enforced by looking
        ahead and back within the specified range for a nearby avail and extending the segment size
        if needed.

        - **Mode** *(string) --* If "vod", all segments are indexed and kept permanently in the
        destination and manifest. If "live", only the number segments specified in keepSegments and
        indexNSegments are kept; newer segments replace older segments, which may prevent players
        from rewinding all the way to the beginning of the event. VOD mode uses HLS
        EXT-X-PLAYLIST-TYPE of EVENT while the channel is running, converting it to a "VOD" type
        manifest on completion of the stream.

        - **OutputSelection** *(string) --* MANIFESTSANDSEGMENTS: Generates manifests (master
        manifest, if applicable, and media manifests) for this output group. SEGMENTSONLY: Does not
        generate any manifests for this output group.

        - **ProgramDateTime** *(string) --* Includes or excludes EXT-X-PROGRAM-DATE-TIME tag in
        .m3u8 manifest files. The value is calculated as follows: either the program date and time
        are initialized using the input timecode source, or the time is initialized using the input
        timecode source and the date is initialized using the timestampOffset.

        - **ProgramDateTimePeriod** *(integer) --* Period of insertion of EXT-X-PROGRAM-DATE-TIME
        entry, in seconds.

        - **RedundantManifest** *(string) --* ENABLED: The master manifest (.m3u8 file) for each
        pipeline includes information about both pipelines: first its own media files, then the
        media files of the other pipeline. This feature allows playout device that support stale
        manifest detection to switch from one manifest to the other, when the current manifest seems
        to be stale. There are still two destinations and two master manifests, but both master
        manifests reference the media files from both pipelines. DISABLED: The master manifest
        (.m3u8 file) for each pipeline includes information about its own pipeline only. For an HLS
        output group with MediaPackage as the destination, the DISABLED behavior is always followed.
        MediaPackage regenerates the manifests it serves to players so a redundant manifest from
        MediaLive is irrelevant.

        - **SegmentLength** *(integer) --* Length of MPEG-2 Transport Stream segments to create (in
        seconds). Note that segments will end on the next keyframe after this number of seconds, so
        actual segment length may be longer.

        - **SegmentationMode** *(string) --* useInputSegmentation has been deprecated. The
        configured segment size is always used.

        - **SegmentsPerSubdirectory** *(integer) --* Number of segments to write to a subdirectory
        before starting a new one. directoryStructure must be subdirectoryPerStream for this setting
        to have an effect.

        - **StreamInfResolution** *(string) --* Include or exclude RESOLUTION attribute for video in
        EXT-X-STREAM-INF tag of variant manifest.

        - **TimedMetadataId3Frame** *(string) --* Indicates ID3 frame that has the timecode.

        - **TimedMetadataId3Period** *(integer) --* Timed Metadata interval in seconds.

        - **TimestampDeltaMilliseconds** *(integer) --* Provides an extra millisecond delta offset
        to fine tune the timestamps.

        - **TsFileMode** *(string) --* SEGMENTEDFILES: Emit the program as segments - multiple .ts
        media files. SINGLEFILE: Applies only if Mode field is VOD. Emit the program as a single .ts
        media file. The media manifest includes #EXT-X-BYTERANGE tags to index segments for
        playback. A typical use for this value is when sending the output to AWS Elemental
        MediaConvert, which can accept only a single media file. Playback while the channel is
        running is not guaranteed due to HTTP server caching.

      - **MediaPackageGroupSettings** *(dict) --* Media Package Group Settings

        - **Destination** *(dict) --* MediaPackage channel destination.

          - **DestinationRefId** *(string) --* Placeholder documentation for __string

      - **MsSmoothGroupSettings** *(dict) --* Ms Smooth Group Settings

        - **AcquisitionPointId** *(string) --* The value of the "Acquisition Point Identity" element
        used in each message placed in the sparse track. Only enabled if sparseTrackType is not
        "none".

        - **AudioOnlyTimecodeControl** *(string) --* If set to passthrough for an audio-only MS
        Smooth output, the fragment absolute time will be set to the current timecode. This option
        does not write timecodes to the audio elementary stream.

        - **CertificateMode** *(string) --* If set to verifyAuthenticity, verify the https
        certificate chain to a trusted Certificate Authority (CA). This will cause https outputs to
        self-signed certificates to fail.

        - **ConnectionRetryInterval** *(integer) --* Number of seconds to wait before retrying
        connection to the IIS server if the connection is lost. Content will be cached during this
        time and the cache will be be delivered to the IIS server once the connection is
        re-established.

        - **Destination** *(dict) --* Smooth Streaming publish point on an IIS server. Elemental
        Live acts as a "Push" encoder to IIS.

          - **DestinationRefId** *(string) --* Placeholder documentation for __string

        - **EventId** *(string) --* MS Smooth event ID to be sent to the IIS server. Should only be
        specified if eventIdMode is set to useConfigured.

        - **EventIdMode** *(string) --* Specifies whether or not to send an event ID to the IIS
        server. If no event ID is sent and the same Live Event is used without changing the
        publishing point, clients might see cached video from the previous run. Options: -
        "useConfigured" - use the value provided in eventId - "useTimestamp" - generate and send an
        event ID based on the current timestamp - "noEventId" - do not send an event ID to the IIS
        server.

        - **EventStopBehavior** *(string) --* When set to sendEos, send EOS signal to IIS server
        when stopping the event

        - **FilecacheDuration** *(integer) --* Size in seconds of file cache for streaming outputs.

        - **FragmentLength** *(integer) --* Length of mp4 fragments to generate (in seconds).
        Fragment length must be compatible with GOP size and framerate.

        - **InputLossAction** *(string) --* Parameter that control output group behavior on input
        loss.

        - **NumRetries** *(integer) --* Number of retry attempts.

        - **RestartDelay** *(integer) --* Number of seconds before initiating a restart due to
        output failure, due to exhausting the numRetries on one segment, or exceeding
        filecacheDuration.

        - **SegmentationMode** *(string) --* useInputSegmentation has been deprecated. The
        configured segment size is always used.

        - **SendDelayMs** *(integer) --* Number of milliseconds to delay the output from the second
        pipeline.

        - **SparseTrackType** *(string) --* If set to scte35, use incoming SCTE-35 messages to
        generate a sparse track in this group of MS-Smooth outputs.

        - **StreamManifestBehavior** *(string) --* When set to send, send stream manifest so
        publishing point doesn't start until all streams start.

        - **TimestampOffset** *(string) --* Timestamp offset for the event. Only used if
        timestampOffsetMode is set to useConfiguredOffset.

        - **TimestampOffsetMode** *(string) --* Type of timestamp date offset to use. -
        useEventStartDate: Use the date the event was started as the offset - useConfiguredOffset:
        Use an explicitly configured date as the offset

      - **MultiplexGroupSettings** *(dict) --* Multiplex Group Settings

      - **RtmpGroupSettings** *(dict) --* Rtmp Group Settings

        - **AuthenticationScheme** *(string) --* Authentication scheme to use when connecting with
        CDN

        - **CacheFullBehavior** *(string) --* Controls behavior when content cache fills up. If
        remote origin server stalls the RTMP connection and does not accept content fast enough the
        'Media Cache' will fill up. When the cache reaches the duration specified by cacheLength the
        cache will stop accepting new content. If set to disconnectImmediately, the RTMP output will
        force a disconnect. Clear the media cache, and reconnect after restartDelay seconds. If set
        to waitForServer, the RTMP output will wait up to 5 minutes to allow the origin server to
        begin accepting data again.

        - **CacheLength** *(integer) --* Cache length, in seconds, is used to calculate buffer size.

        - **CaptionData** *(string) --* Controls the types of data that passes to onCaptionInfo
        outputs. If set to 'all' then 608 and 708 carried DTVCC data will be passed. If set to
        'field1AndField2608' then DTVCC data will be stripped out, but 608 data from both fields
        will be passed. If set to 'field1608' then only the data carried in 608 from field 1 video
        will be passed.

        - **InputLossAction** *(string) --* Controls the behavior of this RTMP group if input
        becomes unavailable. - emitOutput: Emit a slate until input returns. - pauseOutput: Stop
        transmitting data until input returns. This does not close the underlying RTMP connection.

        - **RestartDelay** *(integer) --* If a streaming output fails, number of seconds to wait
        until a restart is initiated. A value of 0 means never restart.

      - **UdpGroupSettings** *(dict) --* Udp Group Settings

        - **InputLossAction** *(string) --* Specifies behavior of last resort when input video is
        lost, and no more backup inputs are available. When dropTs is selected the entire transport
        stream will stop being emitted. When dropProgram is selected the program can be dropped from
        the transport stream (and replaced with null packets to meet the TS bitrate requirement).
        Or, when emitProgram is chosen the transport stream will continue to be produced normally
        with repeat frames, black frames, or slate frames substituted for the absent input video.

        - **TimedMetadataId3Frame** *(string) --* Indicates ID3 frame that has the timecode.

        - **TimedMetadataId3Period** *(integer) --* Timed Metadata interval in seconds.

    - **Outputs** *(list) --* Placeholder documentation for __listOfOutput

      - *(dict) --* Output settings. There can be multiple outputs within a group.

        - **AudioDescriptionNames** *(list) --* The names of the AudioDescriptions used as audio
        sources for this output.

          - *(string) --* Placeholder documentation for __string

        - **CaptionDescriptionNames** *(list) --* The names of the CaptionDescriptions used as
        caption sources for this output.

          - *(string) --* Placeholder documentation for __string

        - **OutputName** *(string) --* The name used to identify an output.

        - **OutputSettings** *(dict) --* Output type-specific settings.

          - **ArchiveOutputSettings** *(dict) --* Archive Output Settings

            - **ContainerSettings** *(dict) --* Settings specific to the container type of the file.

              - **M2tsSettings** *(dict) --* M2ts Settings

                - **AbsentInputAudioBehavior** *(string) --* When set to drop, output audio streams
                will be removed from the program if the selected input audio stream is removed from
                the input. This allows the output audio configuration to dynamically change based on
                input configuration. If this is set to encodeSilence, all output audio streams will
                output encoded silence when not connected to an active input stream.

                - **Arib** *(string) --* When set to enabled, uses ARIB-compliant field muxing and
                removes video descriptor.

                - **AribCaptionsPid** *(string) --* Packet Identifier (PID) for ARIB Captions in the
                transport stream. Can be entered as a decimal or hexadecimal value. Valid values are
                32 (or 0x20)..8182 (or 0x1ff6).

                - **AribCaptionsPidControl** *(string) --* If set to auto, pid number used for ARIB
                Captions will be auto-selected from unused pids. If set to useConfigured, ARIB
                Captions will be on the configured pid number.

                - **AudioBufferModel** *(string) --* When set to dvb, uses DVB buffer model for
                Dolby Digital audio. When set to atsc, the ATSC model is used.

                - **AudioFramesPerPes** *(integer) --* The number of audio frames to insert for each
                PES packet.

                - **AudioPids** *(string) --* Packet Identifier (PID) of the elementary audio
                stream(s) in the transport stream. Multiple values are accepted, and can be entered
                in ranges and/or by comma separation. Can be entered as decimal or hexadecimal
                values. Each PID specified must be in the range of 32 (or 0x20)..8182 (or 0x1ff6).

                - **AudioStreamType** *(string) --* When set to atsc, uses stream type =
                     0x81 for
                AC3 and stream type = 0x87 for EAC3. When set to dvb, uses stream type =
                     0x06.

                - **Bitrate** *(integer) --* The output bitrate of the transport stream in bits per
                second. Setting to 0 lets the muxer automatically determine the appropriate bitrate.

                - **BufferModel** *(string) --* If set to multiplex, use multiplex buffer model for
                accurate interleaving. Setting to bufferModel to none can lead to lower latency, but
                low-memory devices may not be able to play back the stream without interruptions.

                - **CcDescriptor** *(string) --* When set to enabled, generates
                captionServiceDescriptor in PMT.

                - **DvbNitSettings** *(dict) --* Inserts DVB Network Information Table (NIT) at the
                specified table repetition interval.

                  - **NetworkId** *(integer) --* The numeric value placed in the Network Information
                  Table (NIT).

                  - **NetworkName** *(string) --* The network name text placed in the
                  networkNameDescriptor inside the Network Information Table. Maximum length is 256
                  characters.

                  - **RepInterval** *(integer) --* The number of milliseconds between instances of
                  this table in the output transport stream.

                - **DvbSdtSettings** *(dict) --* Inserts DVB Service Description Table (SDT) at the
                specified table repetition interval.

                  - **OutputSdt** *(string) --* Selects method of inserting SDT information into
                  output stream. The sdtFollow setting copies SDT information from input stream to
                  output stream. The sdtFollowIfPresent setting copies SDT information from input
                  stream to output stream if SDT information is present in the input, otherwise it
                  will fall back on the user-defined values. The sdtManual setting means user will
                  enter the SDT information. The sdtNone setting means output stream will not
                  contain SDT information.

                  - **RepInterval** *(integer) --* The number of milliseconds between instances of
                  this table in the output transport stream.

                  - **ServiceName** *(string) --* The service name placed in the serviceDescriptor
                  in the Service Description Table. Maximum length is 256 characters.

                  - **ServiceProviderName** *(string) --* The service provider name placed in the
                  serviceDescriptor in the Service Description Table. Maximum length is 256
                  characters.

                - **DvbSubPids** *(string) --* Packet Identifier (PID) for input source DVB Subtitle
                data to this output. Multiple values are accepted, and can be entered in ranges
                and/or by comma separation. Can be entered as decimal or hexadecimal values. Each
                PID specified must be in the range of 32 (or 0x20)..8182 (or 0x1ff6).

                - **DvbTdtSettings** *(dict) --* Inserts DVB Time and Date Table (TDT) at the
                specified table repetition interval.

                  - **RepInterval** *(integer) --* The number of milliseconds between instances of
                  this table in the output transport stream.

                - **DvbTeletextPid** *(string) --* Packet Identifier (PID) for input source DVB
                Teletext data to this output. Can be entered as a decimal or hexadecimal value.
                Valid values are 32 (or 0x20)..8182 (or 0x1ff6).

                - **Ebif** *(string) --* If set to passthrough, passes any EBIF data from the input
                source to this output.

                - **EbpAudioInterval** *(string) --* When videoAndFixedIntervals is selected, audio
                EBP markers will be added to partitions 3 and 4. The interval between these
                additional markers will be fixed, and will be slightly shorter than the video EBP
                marker interval. Only available when EBP Cablelabs segmentation markers are
                selected. Partitions 1 and 2 will always follow the video interval.

                - **EbpLookaheadMs** *(integer) --* When set, enforces that Encoder Boundary Points
                do not come within the specified time interval of each other by looking ahead at
                input video. If another EBP is going to come in within the specified time interval,
                the current EBP is not emitted, and the segment is "stretched" to the next marker.
                The lookahead value does not add latency to the system. The Live Event must be
                configured elsewhere to create sufficient latency to make the lookahead accurate.

                - **EbpPlacement** *(string) --* Controls placement of EBP on Audio PIDs. If set to
                videoAndAudioPids, EBP markers will be placed on the video PID and all audio PIDs.
                If set to videoPid, EBP markers will be placed on only the video PID.

                - **EcmPid** *(string) --* This field is unused and deprecated.

                - **EsRateInPes** *(string) --* Include or exclude the ES Rate field in the PES
                header.

                - **EtvPlatformPid** *(string) --* Packet Identifier (PID) for input source ETV
                Platform data to this output. Can be entered as a decimal or hexadecimal value.
                Valid values are 32 (or 0x20)..8182 (or 0x1ff6).

                - **EtvSignalPid** *(string) --* Packet Identifier (PID) for input source ETV Signal
                data to this output. Can be entered as a decimal or hexadecimal value. Valid values
                are 32 (or 0x20)..8182 (or 0x1ff6).

                - **FragmentTime** *(float) --* The length in seconds of each fragment. Only used
                with EBP markers.

                - **Klv** *(string) --* If set to passthrough, passes any KLV data from the input
                source to this output.

                - **KlvDataPids** *(string) --* Packet Identifier (PID) for input source KLV data to
                this output. Multiple values are accepted, and can be entered in ranges and/or by
                comma separation. Can be entered as decimal or hexadecimal values. Each PID
                specified must be in the range of 32 (or 0x20)..8182 (or 0x1ff6).

                - **NielsenId3Behavior** *(string) --* If set to passthrough, Nielsen inaudible
                tones for media tracking will be detected in the input audio and an equivalent ID3
                tag will be inserted in the output.

                - **NullPacketBitrate** *(float) --* Value in bits per second of extra null packets
                to insert into the transport stream. This can be used if a downstream encryption
                system requires periodic null packets.

                - **PatInterval** *(integer) --* The number of milliseconds between instances of
                this table in the output transport stream. Valid values are 0, 10..1000.

                - **PcrControl** *(string) --* When set to pcrEveryPesPacket, a Program Clock
                Reference value is inserted for every Packetized Elementary Stream (PES) header.
                This parameter is effective only when the PCR PID is the same as the video or audio
                elementary stream.

                - **PcrPeriod** *(integer) --* Maximum time in milliseconds between Program Clock
                Reference (PCRs) inserted into the transport stream.

                - **PcrPid** *(string) --* Packet Identifier (PID) of the Program Clock Reference
                (PCR) in the transport stream. When no value is given, the encoder will assign the
                same value as the Video PID. Can be entered as a decimal or hexadecimal value. Valid
                values are 32 (or 0x20)..8182 (or 0x1ff6).

                - **PmtInterval** *(integer) --* The number of milliseconds between instances of
                this table in the output transport stream. Valid values are 0, 10..1000.

                - **PmtPid** *(string) --* Packet Identifier (PID) for the Program Map Table (PMT)
                in the transport stream. Can be entered as a decimal or hexadecimal value. Valid
                values are 32 (or 0x20)..8182 (or 0x1ff6).

                - **ProgramNum** *(integer) --* The value of the program number field in the Program
                Map Table.

                - **RateMode** *(string) --* When vbr, does not insert null packets into transport
                stream to fill specified bitrate. The bitrate setting acts as the maximum bitrate
                when vbr is set.

                - **Scte27Pids** *(string) --* Packet Identifier (PID) for input source SCTE-27 data
                to this output. Multiple values are accepted, and can be entered in ranges and/or by
                comma separation. Can be entered as decimal or hexadecimal values. Each PID
                specified must be in the range of 32 (or 0x20)..8182 (or 0x1ff6).

                - **Scte35Control** *(string) --* Optionally pass SCTE-35 signals from the input
                source to this output.

                - **Scte35Pid** *(string) --* Packet Identifier (PID) of the SCTE-35 stream in the
                transport stream. Can be entered as a decimal or hexadecimal value. Valid values are
                32 (or 0x20)..8182 (or 0x1ff6).

                - **SegmentationMarkers** *(string) --* Inserts segmentation markers at each
                segmentationTime period. raiSegstart sets the Random Access Indicator bit in the
                adaptation field. raiAdapt sets the RAI bit and adds the current timecode in the
                private data bytes. psiSegstart inserts PAT and PMT tables at the start of segments.
                ebp adds Encoder Boundary Point information to the adaptation field as per OpenCable
                specification OC-SP-EBP-I01-130118. ebpLegacy adds Encoder Boundary Point
                information to the adaptation field using a legacy proprietary format.

                - **SegmentationStyle** *(string) --* The segmentation style parameter controls how
                segmentation markers are inserted into the transport stream. With avails, it is
                possible that segments may be truncated, which can influence where future
                segmentation markers are inserted. When a segmentation style of "resetCadence" is
                selected and a segment is truncated due to an avail, we will reset the segmentation
                cadence. This means the subsequent segment will have a duration of $segmentationTime
                seconds. When a segmentation style of "maintainCadence" is selected and a segment is
                truncated due to an avail, we will not reset the segmentation cadence. This means
                the subsequent segment will likely be truncated as well. However, all segments after
                that will have a duration of $segmentationTime seconds. Note that EBP lookahead is a
                slight exception to this rule.

                - **SegmentationTime** *(float) --* The length in seconds of each segment. Required
                unless markers is set to None_.

                - **TimedMetadataBehavior** *(string) --* When set to passthrough, timed metadata
                will be passed through from input to output.

                - **TimedMetadataPid** *(string) --* Packet Identifier (PID) of the timed metadata
                stream in the transport stream. Can be entered as a decimal or hexadecimal value.
                Valid values are 32 (or 0x20)..8182 (or 0x1ff6).

                - **TransportStreamId** *(integer) --* The value of the transport stream ID field in
                the Program Map Table.

                - **VideoPid** *(string) --* Packet Identifier (PID) of the elementary video stream
                in the transport stream. Can be entered as a decimal or hexadecimal value. Valid
                values are 32 (or 0x20)..8182 (or 0x1ff6).

            - **Extension** *(string) --* Output file extension. If excluded, this will be
            auto-selected from the container type.

            - **NameModifier** *(string) --* String concatenated to the end of the destination
            filename. Required for multiple outputs of the same type.

          - **FrameCaptureOutputSettings** *(dict) --* Frame Capture Output Settings

            - **NameModifier** *(string) --* Required if the output group contains more than one
            output. This modifier forms part of the output file name.

          - **HlsOutputSettings** *(dict) --* Hls Output Settings

            - **HlsSettings** *(dict) --* Settings regarding the underlying stream. These settings
            are different for audio-only outputs.

              - **AudioOnlyHlsSettings** *(dict) --* Audio Only Hls Settings

                - **AudioGroupId** *(string) --* Specifies the group to which the audio Rendition
                belongs.

                - **AudioOnlyImage** *(dict) --* Optional. Specifies the .jpg or .png image to use
                as the cover art for an audio-only output. We recommend a low bit-size file because
                the image increases the output audio bandwidth. The image is attached to the audio
                as an ID3 tag, frame type APIC, picture type 0x10, as per the "ID3 tag version 2.4.0
                - Native Frames" standard.

                  - **PasswordParam** *(string) --* key used to extract the password from EC2
                  Parameter store

                  - **Uri** *(string) --* Uniform Resource Identifier - This should be a path to a
                  file accessible to the Live system (eg. a http:// URI) depending on the output
                  type. For example, a RTMP destination should have a uri simliar to:
                  "rtmp://fmsserver/live".

                  - **Username** *(string) --* Documentation update needed

                - **AudioTrackType** *(string) --* Four types of audio-only tracks are supported:
                Audio-Only Variant Stream The client can play back this audio-only stream instead of
                video in low-bandwidth scenarios. Represented as an EXT-X-STREAM-INF in the HLS
                manifest. Alternate Audio, Auto Select, Default Alternate rendition that the client
                should try to play back by default. Represented as an EXT-X-MEDIA in the HLS
                manifest with DEFAULT=YES, AUTOSELECT=
                    YES Alternate Audio, Auto Select, Not Default
                Alternate rendition that the client may try to play back by default. Represented as
                an EXT-X-MEDIA in the HLS manifest with DEFAULT=NO, AUTOSELECT=
                    YES Alternate Audio,
                not Auto Select Alternate rendition that the client will not try to play back by
                default. Represented as an EXT-X-MEDIA in the HLS manifest with DEFAULT=
                    NO,
                AUTOSELECT=NO

              - **StandardHlsSettings** *(dict) --* Standard Hls Settings

                - **AudioRenditionSets** *(string) --* List all the audio groups that are used with
                the video output stream. Input all the audio GROUP-IDs that are associated to the
                video, separate by ','.

                - **M3u8Settings** *(dict) --* Settings information for the .m3u8 container

                  - **AudioFramesPerPes** *(integer) --* The number of audio frames to insert for
                  each PES packet.

                  - **AudioPids** *(string) --* Packet Identifier (PID) of the elementary audio
                  stream(s) in the transport stream. Multiple values are accepted, and can be
                  entered in ranges and/or by comma separation. Can be entered as decimal or
                  hexadecimal values.

                  - **EcmPid** *(string) --* This parameter is unused and deprecated.

                  - **NielsenId3Behavior** *(string) --* If set to passthrough, Nielsen inaudible
                  tones for media tracking will be detected in the input audio and an equivalent ID3
                  tag will be inserted in the output.

                  - **PatInterval** *(integer) --* The number of milliseconds between instances of
                  this table in the output transport stream. A value of \\"0\\" writes out the PMT
                  once per segment file.

                  - **PcrControl** *(string) --* When set to pcrEveryPesPacket, a Program Clock
                  Reference value is inserted for every Packetized Elementary Stream (PES) header.
                  This parameter is effective only when the PCR PID is the same as the video or
                  audio elementary stream.

                  - **PcrPeriod** *(integer) --* Maximum time in milliseconds between Program Clock
                  References (PCRs) inserted into the transport stream.

                  - **PcrPid** *(string) --* Packet Identifier (PID) of the Program Clock Reference
                  (PCR) in the transport stream. When no value is given, the encoder will assign the
                  same value as the Video PID. Can be entered as a decimal or hexadecimal value.

                  - **PmtInterval** *(integer) --* The number of milliseconds between instances of
                  this table in the output transport stream. A value of \\"0\\" writes out the PMT
                  once per segment file.

                  - **PmtPid** *(string) --* Packet Identifier (PID) for the Program Map Table (PMT)
                  in the transport stream. Can be entered as a decimal or hexadecimal value.

                  - **ProgramNum** *(integer) --* The value of the program number field in the
                  Program Map Table.

                  - **Scte35Behavior** *(string) --* If set to passthrough, passes any SCTE-35
                  signals from the input source to this output.

                  - **Scte35Pid** *(string) --* Packet Identifier (PID) of the SCTE-35 stream in the
                  transport stream. Can be entered as a decimal or hexadecimal value.

                  - **TimedMetadataBehavior** *(string) --* When set to passthrough, timed metadata
                  is passed through from input to output.

                  - **TimedMetadataPid** *(string) --* Packet Identifier (PID) of the timed metadata
                  stream in the transport stream. Can be entered as a decimal or hexadecimal value.
                  Valid values are 32 (or 0x20)..8182 (or 0x1ff6).

                  - **TransportStreamId** *(integer) --* The value of the transport stream ID field
                  in the Program Map Table.

                  - **VideoPid** *(string) --* Packet Identifier (PID) of the elementary video
                  stream in the transport stream. Can be entered as a decimal or hexadecimal value.

            - **NameModifier** *(string) --* String concatenated to the end of the destination
            filename. Accepts \\"Format Identifiers\\":#formatIdentifierParameters.

            - **SegmentModifier** *(string) --* String concatenated to end of segment filenames.

          - **MediaPackageOutputSettings** *(dict) --* Media Package Output Settings

          - **MsSmoothOutputSettings** *(dict) --* Ms Smooth Output Settings

            - **H265PackagingType** *(string) --* Only applicable when this output is referencing an
            H.265 video description. Specifies whether MP4 segments should be packaged as HEV1 or
            HVC1.

            - **NameModifier** *(string) --* String concatenated to the end of the destination
            filename. Required for multiple outputs of the same type.

          - **MultiplexOutputSettings** *(dict) --* Multiplex Output Settings

            - **Destination** *(dict) --* Destination is a Multiplex.

              - **DestinationRefId** *(string) --* Placeholder documentation for __string

          - **RtmpOutputSettings** *(dict) --* Rtmp Output Settings

            - **CertificateMode** *(string) --* If set to verifyAuthenticity, verify the tls
            certificate chain to a trusted Certificate Authority (CA). This will cause rtmps outputs
            with self-signed certificates to fail.

            - **ConnectionRetryInterval** *(integer) --* Number of seconds to wait before retrying a
            connection to the Flash Media server if the connection is lost.

            - **Destination** *(dict) --* The RTMP endpoint excluding the stream name (eg.
            rtmp://host/appname). For connection to Akamai, a username and password must be
            supplied. URI fields accept format identifiers.

              - **DestinationRefId** *(string) --* Placeholder documentation for __string

            - **NumRetries** *(integer) --* Number of retry attempts.

          - **UdpOutputSettings** *(dict) --* Udp Output Settings

            - **BufferMsec** *(integer) --* UDP output buffering in milliseconds. Larger values
            increase latency through the transcoder but simultaneously assist the transcoder in
            maintaining a constant, low-jitter UDP/RTP output while accommodating clock recovery,
            input switching, input disruptions, picture reordering, etc.

            - **ContainerSettings** *(dict) --* Udp Container Settings

              - **M2tsSettings** *(dict) --* M2ts Settings

                - **AbsentInputAudioBehavior** *(string) --* When set to drop, output audio streams
                will be removed from the program if the selected input audio stream is removed from
                the input. This allows the output audio configuration to dynamically change based on
                input configuration. If this is set to encodeSilence, all output audio streams will
                output encoded silence when not connected to an active input stream.

                - **Arib** *(string) --* When set to enabled, uses ARIB-compliant field muxing and
                removes video descriptor.

                - **AribCaptionsPid** *(string) --* Packet Identifier (PID) for ARIB Captions in the
                transport stream. Can be entered as a decimal or hexadecimal value. Valid values are
                32 (or 0x20)..8182 (or 0x1ff6).

                - **AribCaptionsPidControl** *(string) --* If set to auto, pid number used for ARIB
                Captions will be auto-selected from unused pids. If set to useConfigured, ARIB
                Captions will be on the configured pid number.

                - **AudioBufferModel** *(string) --* When set to dvb, uses DVB buffer model for
                Dolby Digital audio. When set to atsc, the ATSC model is used.

                - **AudioFramesPerPes** *(integer) --* The number of audio frames to insert for each
                PES packet.

                - **AudioPids** *(string) --* Packet Identifier (PID) of the elementary audio
                stream(s) in the transport stream. Multiple values are accepted, and can be entered
                in ranges and/or by comma separation. Can be entered as decimal or hexadecimal
                values. Each PID specified must be in the range of 32 (or 0x20)..8182 (or 0x1ff6).

                - **AudioStreamType** *(string) --* When set to atsc, uses stream type =
                     0x81 for
                AC3 and stream type = 0x87 for EAC3. When set to dvb, uses stream type =
                     0x06.

                - **Bitrate** *(integer) --* The output bitrate of the transport stream in bits per
                second. Setting to 0 lets the muxer automatically determine the appropriate bitrate.

                - **BufferModel** *(string) --* If set to multiplex, use multiplex buffer model for
                accurate interleaving. Setting to bufferModel to none can lead to lower latency, but
                low-memory devices may not be able to play back the stream without interruptions.

                - **CcDescriptor** *(string) --* When set to enabled, generates
                captionServiceDescriptor in PMT.

                - **DvbNitSettings** *(dict) --* Inserts DVB Network Information Table (NIT) at the
                specified table repetition interval.

                  - **NetworkId** *(integer) --* The numeric value placed in the Network Information
                  Table (NIT).

                  - **NetworkName** *(string) --* The network name text placed in the
                  networkNameDescriptor inside the Network Information Table. Maximum length is 256
                  characters.

                  - **RepInterval** *(integer) --* The number of milliseconds between instances of
                  this table in the output transport stream.

                - **DvbSdtSettings** *(dict) --* Inserts DVB Service Description Table (SDT) at the
                specified table repetition interval.

                  - **OutputSdt** *(string) --* Selects method of inserting SDT information into
                  output stream. The sdtFollow setting copies SDT information from input stream to
                  output stream. The sdtFollowIfPresent setting copies SDT information from input
                  stream to output stream if SDT information is present in the input, otherwise it
                  will fall back on the user-defined values. The sdtManual setting means user will
                  enter the SDT information. The sdtNone setting means output stream will not
                  contain SDT information.

                  - **RepInterval** *(integer) --* The number of milliseconds between instances of
                  this table in the output transport stream.

                  - **ServiceName** *(string) --* The service name placed in the serviceDescriptor
                  in the Service Description Table. Maximum length is 256 characters.

                  - **ServiceProviderName** *(string) --* The service provider name placed in the
                  serviceDescriptor in the Service Description Table. Maximum length is 256
                  characters.

                - **DvbSubPids** *(string) --* Packet Identifier (PID) for input source DVB Subtitle
                data to this output. Multiple values are accepted, and can be entered in ranges
                and/or by comma separation. Can be entered as decimal or hexadecimal values. Each
                PID specified must be in the range of 32 (or 0x20)..8182 (or 0x1ff6).

                - **DvbTdtSettings** *(dict) --* Inserts DVB Time and Date Table (TDT) at the
                specified table repetition interval.

                  - **RepInterval** *(integer) --* The number of milliseconds between instances of
                  this table in the output transport stream.

                - **DvbTeletextPid** *(string) --* Packet Identifier (PID) for input source DVB
                Teletext data to this output. Can be entered as a decimal or hexadecimal value.
                Valid values are 32 (or 0x20)..8182 (or 0x1ff6).

                - **Ebif** *(string) --* If set to passthrough, passes any EBIF data from the input
                source to this output.

                - **EbpAudioInterval** *(string) --* When videoAndFixedIntervals is selected, audio
                EBP markers will be added to partitions 3 and 4. The interval between these
                additional markers will be fixed, and will be slightly shorter than the video EBP
                marker interval. Only available when EBP Cablelabs segmentation markers are
                selected. Partitions 1 and 2 will always follow the video interval.

                - **EbpLookaheadMs** *(integer) --* When set, enforces that Encoder Boundary Points
                do not come within the specified time interval of each other by looking ahead at
                input video. If another EBP is going to come in within the specified time interval,
                the current EBP is not emitted, and the segment is "stretched" to the next marker.
                The lookahead value does not add latency to the system. The Live Event must be
                configured elsewhere to create sufficient latency to make the lookahead accurate.

                - **EbpPlacement** *(string) --* Controls placement of EBP on Audio PIDs. If set to
                videoAndAudioPids, EBP markers will be placed on the video PID and all audio PIDs.
                If set to videoPid, EBP markers will be placed on only the video PID.

                - **EcmPid** *(string) --* This field is unused and deprecated.

                - **EsRateInPes** *(string) --* Include or exclude the ES Rate field in the PES
                header.

                - **EtvPlatformPid** *(string) --* Packet Identifier (PID) for input source ETV
                Platform data to this output. Can be entered as a decimal or hexadecimal value.
                Valid values are 32 (or 0x20)..8182 (or 0x1ff6).

                - **EtvSignalPid** *(string) --* Packet Identifier (PID) for input source ETV Signal
                data to this output. Can be entered as a decimal or hexadecimal value. Valid values
                are 32 (or 0x20)..8182 (or 0x1ff6).

                - **FragmentTime** *(float) --* The length in seconds of each fragment. Only used
                with EBP markers.

                - **Klv** *(string) --* If set to passthrough, passes any KLV data from the input
                source to this output.

                - **KlvDataPids** *(string) --* Packet Identifier (PID) for input source KLV data to
                this output. Multiple values are accepted, and can be entered in ranges and/or by
                comma separation. Can be entered as decimal or hexadecimal values. Each PID
                specified must be in the range of 32 (or 0x20)..8182 (or 0x1ff6).

                - **NielsenId3Behavior** *(string) --* If set to passthrough, Nielsen inaudible
                tones for media tracking will be detected in the input audio and an equivalent ID3
                tag will be inserted in the output.

                - **NullPacketBitrate** *(float) --* Value in bits per second of extra null packets
                to insert into the transport stream. This can be used if a downstream encryption
                system requires periodic null packets.

                - **PatInterval** *(integer) --* The number of milliseconds between instances of
                this table in the output transport stream. Valid values are 0, 10..1000.

                - **PcrControl** *(string) --* When set to pcrEveryPesPacket, a Program Clock
                Reference value is inserted for every Packetized Elementary Stream (PES) header.
                This parameter is effective only when the PCR PID is the same as the video or audio
                elementary stream.

                - **PcrPeriod** *(integer) --* Maximum time in milliseconds between Program Clock
                Reference (PCRs) inserted into the transport stream.

                - **PcrPid** *(string) --* Packet Identifier (PID) of the Program Clock Reference
                (PCR) in the transport stream. When no value is given, the encoder will assign the
                same value as the Video PID. Can be entered as a decimal or hexadecimal value. Valid
                values are 32 (or 0x20)..8182 (or 0x1ff6).

                - **PmtInterval** *(integer) --* The number of milliseconds between instances of
                this table in the output transport stream. Valid values are 0, 10..1000.

                - **PmtPid** *(string) --* Packet Identifier (PID) for the Program Map Table (PMT)
                in the transport stream. Can be entered as a decimal or hexadecimal value. Valid
                values are 32 (or 0x20)..8182 (or 0x1ff6).

                - **ProgramNum** *(integer) --* The value of the program number field in the Program
                Map Table.

                - **RateMode** *(string) --* When vbr, does not insert null packets into transport
                stream to fill specified bitrate. The bitrate setting acts as the maximum bitrate
                when vbr is set.

                - **Scte27Pids** *(string) --* Packet Identifier (PID) for input source SCTE-27 data
                to this output. Multiple values are accepted, and can be entered in ranges and/or by
                comma separation. Can be entered as decimal or hexadecimal values. Each PID
                specified must be in the range of 32 (or 0x20)..8182 (or 0x1ff6).

                - **Scte35Control** *(string) --* Optionally pass SCTE-35 signals from the input
                source to this output.

                - **Scte35Pid** *(string) --* Packet Identifier (PID) of the SCTE-35 stream in the
                transport stream. Can be entered as a decimal or hexadecimal value. Valid values are
                32 (or 0x20)..8182 (or 0x1ff6).

                - **SegmentationMarkers** *(string) --* Inserts segmentation markers at each
                segmentationTime period. raiSegstart sets the Random Access Indicator bit in the
                adaptation field. raiAdapt sets the RAI bit and adds the current timecode in the
                private data bytes. psiSegstart inserts PAT and PMT tables at the start of segments.
                ebp adds Encoder Boundary Point information to the adaptation field as per OpenCable
                specification OC-SP-EBP-I01-130118. ebpLegacy adds Encoder Boundary Point
                information to the adaptation field using a legacy proprietary format.

                - **SegmentationStyle** *(string) --* The segmentation style parameter controls how
                segmentation markers are inserted into the transport stream. With avails, it is
                possible that segments may be truncated, which can influence where future
                segmentation markers are inserted. When a segmentation style of "resetCadence" is
                selected and a segment is truncated due to an avail, we will reset the segmentation
                cadence. This means the subsequent segment will have a duration of $segmentationTime
                seconds. When a segmentation style of "maintainCadence" is selected and a segment is
                truncated due to an avail, we will not reset the segmentation cadence. This means
                the subsequent segment will likely be truncated as well. However, all segments after
                that will have a duration of $segmentationTime seconds. Note that EBP lookahead is a
                slight exception to this rule.

                - **SegmentationTime** *(float) --* The length in seconds of each segment. Required
                unless markers is set to None_.

                - **TimedMetadataBehavior** *(string) --* When set to passthrough, timed metadata
                will be passed through from input to output.

                - **TimedMetadataPid** *(string) --* Packet Identifier (PID) of the timed metadata
                stream in the transport stream. Can be entered as a decimal or hexadecimal value.
                Valid values are 32 (or 0x20)..8182 (or 0x1ff6).

                - **TransportStreamId** *(integer) --* The value of the transport stream ID field in
                the Program Map Table.

                - **VideoPid** *(string) --* Packet Identifier (PID) of the elementary video stream
                in the transport stream. Can be entered as a decimal or hexadecimal value. Valid
                values are 32 (or 0x20)..8182 (or 0x1ff6).

            - **Destination** *(dict) --* Destination address and port number for RTP or UDP
            packets. Can be unicast or multicast RTP or UDP (eg. rtp://239.10.10.10:5001 or
            udp://10.100.100.100:5002).

              - **DestinationRefId** *(string) --* Placeholder documentation for __string

            - **FecOutputSettings** *(dict) --* Settings for enabling and adjusting Forward Error
            Correction on UDP outputs.

              - **ColumnDepth** *(integer) --* Parameter D from SMPTE 2022-1. The height of the FEC
              protection matrix. The number of transport stream packets per column error correction
              packet. Must be between 4 and 20, inclusive.

              - **IncludeFec** *(string) --* Enables column only or column and row based FEC

              - **RowLength** *(integer) --* Parameter L from SMPTE 2022-1. The width of the FEC
              protection matrix. Must be between 1 and 20, inclusive. If only Column FEC is used,
              then larger values increase robustness. If Row FEC is used, then this is the number of
              transport stream packets per row error correction packet, and the value must be
              between 4 and 20, inclusive, if includeFec is columnAndRow. If includeFec is column,
              this value must be 1 to 20, inclusive.

        - **VideoDescriptionName** *(string) --* The name of the VideoDescription used as the source
        for this output.
    """


_ClientDescribeChannelResponseEncoderSettingsTimecodeConfigTypeDef = TypedDict(
    "_ClientDescribeChannelResponseEncoderSettingsTimecodeConfigTypeDef",
    {"Source": str, "SyncThreshold": int},
    total=False,
)


class ClientDescribeChannelResponseEncoderSettingsTimecodeConfigTypeDef(
    _ClientDescribeChannelResponseEncoderSettingsTimecodeConfigTypeDef
):
    """
    Type definition for `ClientDescribeChannelResponseEncoderSettings` `TimecodeConfig`

    - **Source** *(string) --* Identifies the source for the timecode that will be associated with
    the events outputs. -Embedded (embedded): Initialize the output timecode with timecode from the
    the source. If no embedded timecode is detected in the source, the system falls back to using
    "Start at 0" (zerobased). -System Clock (systemclock): Use the UTC time. -Start at 0
    (zerobased): The time of the first frame of the event will be 00:00:00:00.

    - **SyncThreshold** *(integer) --* Threshold in frames beyond which output timecode is
    resynchronized to the input timecode. Discrepancies below this threshold are permitted to avoid
    unnecessary discontinuities in the output timecode. No timecode sync when this is not specified.
    """


_ClientDescribeChannelResponseEncoderSettingsVideoDescriptionsCodecSettingsFrameCaptureSettingsTypeDef = TypedDict(
    "_ClientDescribeChannelResponseEncoderSettingsVideoDescriptionsCodecSettingsFrameCaptureSettingsTypeDef",
    {"CaptureInterval": int},
    total=False,
)


class ClientDescribeChannelResponseEncoderSettingsVideoDescriptionsCodecSettingsFrameCaptureSettingsTypeDef(
    _ClientDescribeChannelResponseEncoderSettingsVideoDescriptionsCodecSettingsFrameCaptureSettingsTypeDef
):
    """
    Type definition for `ClientDescribeChannelResponseEncoderSettingsVideoDescriptionsCodecSettings`
    `FrameCaptureSettings`

    - **CaptureInterval** *(integer) --* The frequency at which to capture frames for inclusion in
    the output. May be specified in either seconds or milliseconds, as specified by
    captureIntervalUnits.
    """


_ClientDescribeChannelResponseEncoderSettingsVideoDescriptionsCodecSettingsH264SettingsColorSpaceSettingsTypeDef = TypedDict(
    "_ClientDescribeChannelResponseEncoderSettingsVideoDescriptionsCodecSettingsH264SettingsColorSpaceSettingsTypeDef",
    {
        "ColorSpacePassthroughSettings": Dict,
        "Rec601Settings": Dict,
        "Rec709Settings": Dict[str, Any],
    },
    total=False,
)


class ClientDescribeChannelResponseEncoderSettingsVideoDescriptionsCodecSettingsH264SettingsColorSpaceSettingsTypeDef(
    _ClientDescribeChannelResponseEncoderSettingsVideoDescriptionsCodecSettingsH264SettingsColorSpaceSettingsTypeDef
):
    """
    Type definition for
    `ClientDescribeChannelResponseEncoderSettingsVideoDescriptionsCodecSettingsH264Settings`
    `ColorSpaceSettings`

    - **ColorSpacePassthroughSettings** *(dict) --* Passthrough applies no color space conversion to
    the output

    - **Rec601Settings** *(dict) --* Rec601 Settings

    - **Rec709Settings** *(dict) --* Rec709 Settings
    """


_ClientDescribeChannelResponseEncoderSettingsVideoDescriptionsCodecSettingsH264SettingsTypeDef = TypedDict(
    "_ClientDescribeChannelResponseEncoderSettingsVideoDescriptionsCodecSettingsH264SettingsTypeDef",
    {
        "AdaptiveQuantization": str,
        "AfdSignaling": str,
        "Bitrate": int,
        "BufFillPct": int,
        "BufSize": int,
        "ColorMetadata": str,
        "ColorSpaceSettings": ClientDescribeChannelResponseEncoderSettingsVideoDescriptionsCodecSettingsH264SettingsColorSpaceSettingsTypeDef,
        "EntropyEncoding": str,
        "FixedAfd": str,
        "FlickerAq": str,
        "FramerateControl": str,
        "FramerateDenominator": int,
        "FramerateNumerator": int,
        "GopBReference": str,
        "GopClosedCadence": int,
        "GopNumBFrames": int,
        "GopSize": float,
        "GopSizeUnits": str,
        "Level": str,
        "LookAheadRateControl": str,
        "MaxBitrate": int,
        "MinIInterval": int,
        "NumRefFrames": int,
        "ParControl": str,
        "ParDenominator": int,
        "ParNumerator": int,
        "Profile": str,
        "QvbrQualityLevel": int,
        "RateControlMode": str,
        "ScanType": str,
        "SceneChangeDetect": str,
        "Slices": int,
        "Softness": int,
        "SpatialAq": str,
        "SubgopLength": str,
        "Syntax": str,
        "TemporalAq": str,
        "TimecodeInsertion": str,
    },
    total=False,
)


class ClientDescribeChannelResponseEncoderSettingsVideoDescriptionsCodecSettingsH264SettingsTypeDef(
    _ClientDescribeChannelResponseEncoderSettingsVideoDescriptionsCodecSettingsH264SettingsTypeDef
):
    """
    Type definition for `ClientDescribeChannelResponseEncoderSettingsVideoDescriptionsCodecSettings`
    `H264Settings`

    - **AdaptiveQuantization** *(string) --* Adaptive quantization. Allows intra-frame quantizers to
    vary to improve visual quality.

    - **AfdSignaling** *(string) --* Indicates that AFD values will be written into the output
    stream. If afdSignaling is "auto", the system will try to preserve the input AFD value (in cases
    where multiple AFD values are valid). If set to "fixed", the AFD value will be the value
    configured in the fixedAfd parameter.

    - **Bitrate** *(integer) --* Average bitrate in bits/second. Required when the rate control mode
    is VBR or CBR. Not used for QVBR. In an MS Smooth output group, each output must have a unique
    value when its bitrate is rounded down to the nearest multiple of 1000.

    - **BufFillPct** *(integer) --* Percentage of the buffer that should initially be filled (HRD
    buffer model).

    - **BufSize** *(integer) --* Size of buffer (HRD buffer model) in bits.

    - **ColorMetadata** *(string) --* Includes colorspace metadata in the output.

    - **ColorSpaceSettings** *(dict) --* Color Space settings

      - **ColorSpacePassthroughSettings** *(dict) --* Passthrough applies no color space conversion
      to the output

      - **Rec601Settings** *(dict) --* Rec601 Settings

      - **Rec709Settings** *(dict) --* Rec709 Settings

    - **EntropyEncoding** *(string) --* Entropy encoding mode. Use cabac (must be in Main or High
    profile) or cavlc.

    - **FixedAfd** *(string) --* Four bit AFD value to write on all frames of video in the output
    stream. Only valid when afdSignaling is set to 'Fixed'.

    - **FlickerAq** *(string) --* If set to enabled, adjust quantization within each frame to reduce
    flicker or 'pop' on I-frames.

    - **FramerateControl** *(string) --* This field indicates how the output video frame rate is
    specified. If "specified" is selected then the output video frame rate is determined by
    framerateNumerator and framerateDenominator, else if "initializeFromSource" is selected then the
    output video frame rate will be set equal to the input video frame rate of the first input.

    - **FramerateDenominator** *(integer) --* Framerate denominator.

    - **FramerateNumerator** *(integer) --* Framerate numerator - framerate is a fraction, e.g.
    24000 / 1001 = 23.976 fps.

    - **GopBReference** *(string) --* Documentation update needed

    - **GopClosedCadence** *(integer) --* Frequency of closed GOPs. In streaming applications, it is
    recommended that this be set to 1 so a decoder joining mid-stream will receive an IDR frame as
    quickly as possible. Setting this value to 0 will break output segmenting.

    - **GopNumBFrames** *(integer) --* Number of B-frames between reference frames.

    - **GopSize** *(float) --* GOP size (keyframe interval) in units of either frames or seconds per
    gopSizeUnits. If gopSizeUnits is frames, gopSize must be an integer and must be greater than or
    equal to 1. If gopSizeUnits is seconds, gopSize must be greater than 0, but need not be an
    integer.

    - **GopSizeUnits** *(string) --* Indicates if the gopSize is specified in frames or seconds. If
    seconds the system will convert the gopSize into a frame count at run time.

    - **Level** *(string) --* H.264 Level.

    - **LookAheadRateControl** *(string) --* Amount of lookahead. A value of low can decrease
    latency and memory usage, while high can produce better quality for certain content.

    - **MaxBitrate** *(integer) --* For QVBR: See the tooltip for Quality level For VBR: Set the
    maximum bitrate in order to accommodate expected spikes in the complexity of the video.

    - **MinIInterval** *(integer) --* Only meaningful if sceneChangeDetect is set to enabled.
    Defaults to 5 if multiplex rate control is used. Enforces separation between repeated (cadence)
    I-frames and I-frames inserted by Scene Change Detection. If a scene change I-frame is within
    I-interval frames of a cadence I-frame, the GOP is shrunk and/or stretched to the scene change
    I-frame. GOP stretch requires enabling lookahead as well as setting I-interval. The normal
    cadence resumes for the next GOP. Note: Maximum GOP stretch = GOP size + Min-I-interval - 1

    - **NumRefFrames** *(integer) --* Number of reference frames to use. The encoder may use more
    than requested if using B-frames and/or interlaced encoding.

    - **ParControl** *(string) --* This field indicates how the output pixel aspect ratio is
    specified. If "specified" is selected then the output video pixel aspect ratio is determined by
    parNumerator and parDenominator, else if "initializeFromSource" is selected then the output
    pixsel aspect ratio will be set equal to the input video pixel aspect ratio of the first input.

    - **ParDenominator** *(integer) --* Pixel Aspect Ratio denominator.

    - **ParNumerator** *(integer) --* Pixel Aspect Ratio numerator.

    - **Profile** *(string) --* H.264 Profile.

    - **QvbrQualityLevel** *(integer) --* Controls the target quality for the video encode. Applies
    only when the rate control mode is QVBR. Set values for the QVBR quality level field and Max
    bitrate field that suit your most important viewing devices. Recommended values are: - Primary
    screen: Quality level: 8 to 10. Max bitrate: 4M - PC or tablet: Quality level: 7. Max bitrate:
    1.5M to 3M - Smartphone: Quality level: 6. Max bitrate: 1M to 1.5M

    - **RateControlMode** *(string) --* Rate control mode. QVBR: Quality will match the specified
    quality level except when it is constrained by the maximum bitrate. Recommended if you or your
    viewers pay for bandwidth. VBR: Quality and bitrate vary, depending on the video complexity.
    Recommended instead of QVBR if you want to maintain a specific average bitrate over the duration
    of the channel. CBR: Quality varies, depending on the video complexity. Recommended only if you
    distribute your assets to devices that cannot handle variable bitrates.

    - **ScanType** *(string) --* Sets the scan type of the output to progressive or top-field-first
    interlaced.

    - **SceneChangeDetect** *(string) --* Scene change detection. - On: inserts I-frames when scene
    change is detected. - Off: does not force an I-frame when scene change is detected.

    - **Slices** *(integer) --* Number of slices per picture. Must be less than or equal to the
    number of macroblock rows for progressive pictures, and less than or equal to half the number of
    macroblock rows for interlaced pictures. This field is optional; when no value is specified the
    encoder will choose the number of slices based on encode resolution.

    - **Softness** *(integer) --* Softness. Selects quantizer matrix, larger values reduce
    high-frequency content in the encoded image.

    - **SpatialAq** *(string) --* If set to enabled, adjust quantization within each frame based on
    spatial variation of content complexity.

    - **SubgopLength** *(string) --* If set to fixed, use gopNumBFrames B-frames per sub-GOP. If set
    to dynamic, optimize the number of B-frames used for each sub-GOP to improve visual quality.

    - **Syntax** *(string) --* Produces a bitstream compliant with SMPTE RP-2027.

    - **TemporalAq** *(string) --* If set to enabled, adjust quantization within each frame based on
    temporal variation of content complexity.

    - **TimecodeInsertion** *(string) --* Determines how timecodes should be inserted into the video
    elementary stream. - 'disabled': Do not include timecodes - 'picTimingSei': Pass through picture
    timing SEI messages from the source specified in Timecode Config
    """


_ClientDescribeChannelResponseEncoderSettingsVideoDescriptionsCodecSettingsH265SettingsColorSpaceSettingsHdr10SettingsTypeDef = TypedDict(
    "_ClientDescribeChannelResponseEncoderSettingsVideoDescriptionsCodecSettingsH265SettingsColorSpaceSettingsHdr10SettingsTypeDef",
    {"MaxCll": int, "MaxFall": int},
    total=False,
)


class ClientDescribeChannelResponseEncoderSettingsVideoDescriptionsCodecSettingsH265SettingsColorSpaceSettingsHdr10SettingsTypeDef(
    _ClientDescribeChannelResponseEncoderSettingsVideoDescriptionsCodecSettingsH265SettingsColorSpaceSettingsHdr10SettingsTypeDef
):
    """
    Type definition for
    `ClientDescribeChannelResponseEncoderSettingsVideoDescriptionsCodecSettingsH265SettingsColorSpaceSettings`
    `Hdr10Settings`

    - **MaxCll** *(integer) --* Maximum Content Light Level An integer metadata value defining the
    maximum light level, in nits, of any single pixel within an encoded HDR video stream or file.

    - **MaxFall** *(integer) --* Maximum Frame Average Light Level An integer metadata value
    defining the maximum average light level, in nits, for any single frame within an encoded HDR
    video stream or file.
    """


_ClientDescribeChannelResponseEncoderSettingsVideoDescriptionsCodecSettingsH265SettingsColorSpaceSettingsTypeDef = TypedDict(
    "_ClientDescribeChannelResponseEncoderSettingsVideoDescriptionsCodecSettingsH265SettingsColorSpaceSettingsTypeDef",
    {
        "ColorSpacePassthroughSettings": Dict,
        "Hdr10Settings": ClientDescribeChannelResponseEncoderSettingsVideoDescriptionsCodecSettingsH265SettingsColorSpaceSettingsHdr10SettingsTypeDef,
        "Rec601Settings": Dict,
        "Rec709Settings": Dict[str, Any],
    },
    total=False,
)


class ClientDescribeChannelResponseEncoderSettingsVideoDescriptionsCodecSettingsH265SettingsColorSpaceSettingsTypeDef(
    _ClientDescribeChannelResponseEncoderSettingsVideoDescriptionsCodecSettingsH265SettingsColorSpaceSettingsTypeDef
):
    """
    Type definition for
    `ClientDescribeChannelResponseEncoderSettingsVideoDescriptionsCodecSettingsH265Settings`
    `ColorSpaceSettings`

    - **ColorSpacePassthroughSettings** *(dict) --* Passthrough applies no color space conversion to
    the output

    - **Hdr10Settings** *(dict) --* Hdr10 Settings

      - **MaxCll** *(integer) --* Maximum Content Light Level An integer metadata value defining the
      maximum light level, in nits, of any single pixel within an encoded HDR video stream or file.

      - **MaxFall** *(integer) --* Maximum Frame Average Light Level An integer metadata value
      defining the maximum average light level, in nits, for any single frame within an encoded HDR
      video stream or file.

    - **Rec601Settings** *(dict) --* Rec601 Settings

    - **Rec709Settings** *(dict) --* Rec709 Settings
    """


_ClientDescribeChannelResponseEncoderSettingsVideoDescriptionsCodecSettingsH265SettingsTypeDef = TypedDict(
    "_ClientDescribeChannelResponseEncoderSettingsVideoDescriptionsCodecSettingsH265SettingsTypeDef",
    {
        "AdaptiveQuantization": str,
        "AfdSignaling": str,
        "AlternativeTransferFunction": str,
        "Bitrate": int,
        "BufSize": int,
        "ColorMetadata": str,
        "ColorSpaceSettings": ClientDescribeChannelResponseEncoderSettingsVideoDescriptionsCodecSettingsH265SettingsColorSpaceSettingsTypeDef,
        "FixedAfd": str,
        "FlickerAq": str,
        "FramerateDenominator": int,
        "FramerateNumerator": int,
        "GopClosedCadence": int,
        "GopSize": float,
        "GopSizeUnits": str,
        "Level": str,
        "LookAheadRateControl": str,
        "MaxBitrate": int,
        "MinIInterval": int,
        "ParDenominator": int,
        "ParNumerator": int,
        "Profile": str,
        "QvbrQualityLevel": int,
        "RateControlMode": str,
        "ScanType": str,
        "SceneChangeDetect": str,
        "Slices": int,
        "Tier": str,
        "TimecodeInsertion": str,
    },
    total=False,
)


class ClientDescribeChannelResponseEncoderSettingsVideoDescriptionsCodecSettingsH265SettingsTypeDef(
    _ClientDescribeChannelResponseEncoderSettingsVideoDescriptionsCodecSettingsH265SettingsTypeDef
):
    """
    Type definition for `ClientDescribeChannelResponseEncoderSettingsVideoDescriptionsCodecSettings`
    `H265Settings`

    - **AdaptiveQuantization** *(string) --* Adaptive quantization. Allows intra-frame quantizers to
    vary to improve visual quality.

    - **AfdSignaling** *(string) --* Indicates that AFD values will be written into the output
    stream. If afdSignaling is "auto", the system will try to preserve the input AFD value (in cases
    where multiple AFD values are valid). If set to "fixed", the AFD value will be the value
    configured in the fixedAfd parameter.

    - **AlternativeTransferFunction** *(string) --* Whether or not EML should insert an Alternative
    Transfer Function SEI message to support backwards compatibility with non-HDR decoders and
    displays.

    - **Bitrate** *(integer) --* Average bitrate in bits/second. Required when the rate control mode
    is VBR or CBR. Not used for QVBR. In an MS Smooth output group, each output must have a unique
    value when its bitrate is rounded down to the nearest multiple of 1000.

    - **BufSize** *(integer) --* Size of buffer (HRD buffer model) in bits.

    - **ColorMetadata** *(string) --* Includes colorspace metadata in the output.

    - **ColorSpaceSettings** *(dict) --* Color Space settings

      - **ColorSpacePassthroughSettings** *(dict) --* Passthrough applies no color space conversion
      to the output

      - **Hdr10Settings** *(dict) --* Hdr10 Settings

        - **MaxCll** *(integer) --* Maximum Content Light Level An integer metadata value defining
        the maximum light level, in nits, of any single pixel within an encoded HDR video stream or
        file.

        - **MaxFall** *(integer) --* Maximum Frame Average Light Level An integer metadata value
        defining the maximum average light level, in nits, for any single frame within an encoded
        HDR video stream or file.

      - **Rec601Settings** *(dict) --* Rec601 Settings

      - **Rec709Settings** *(dict) --* Rec709 Settings

    - **FixedAfd** *(string) --* Four bit AFD value to write on all frames of video in the output
    stream. Only valid when afdSignaling is set to 'Fixed'.

    - **FlickerAq** *(string) --* If set to enabled, adjust quantization within each frame to reduce
    flicker or 'pop' on I-frames.

    - **FramerateDenominator** *(integer) --* Framerate denominator.

    - **FramerateNumerator** *(integer) --* Framerate numerator - framerate is a fraction, e.g.
    24000 / 1001 = 23.976 fps.

    - **GopClosedCadence** *(integer) --* Frequency of closed GOPs. In streaming applications, it is
    recommended that this be set to 1 so a decoder joining mid-stream will receive an IDR frame as
    quickly as possible. Setting this value to 0 will break output segmenting.

    - **GopSize** *(float) --* GOP size (keyframe interval) in units of either frames or seconds per
    gopSizeUnits. If gopSizeUnits is frames, gopSize must be an integer and must be greater than or
    equal to 1. If gopSizeUnits is seconds, gopSize must be greater than 0, but need not be an
    integer.

    - **GopSizeUnits** *(string) --* Indicates if the gopSize is specified in frames or seconds. If
    seconds the system will convert the gopSize into a frame count at run time.

    - **Level** *(string) --* H.265 Level.

    - **LookAheadRateControl** *(string) --* Amount of lookahead. A value of low can decrease
    latency and memory usage, while high can produce better quality for certain content.

    - **MaxBitrate** *(integer) --* For QVBR: See the tooltip for Quality level

    - **MinIInterval** *(integer) --* Only meaningful if sceneChangeDetect is set to enabled.
    Defaults to 5 if multiplex rate control is used. Enforces separation between repeated (cadence)
    I-frames and I-frames inserted by Scene Change Detection. If a scene change I-frame is within
    I-interval frames of a cadence I-frame, the GOP is shrunk and/or stretched to the scene change
    I-frame. GOP stretch requires enabling lookahead as well as setting I-interval. The normal
    cadence resumes for the next GOP. Note: Maximum GOP stretch = GOP size + Min-I-interval - 1

    - **ParDenominator** *(integer) --* Pixel Aspect Ratio denominator.

    - **ParNumerator** *(integer) --* Pixel Aspect Ratio numerator.

    - **Profile** *(string) --* H.265 Profile.

    - **QvbrQualityLevel** *(integer) --* Controls the target quality for the video encode. Applies
    only when the rate control mode is QVBR. Set values for the QVBR quality level field and Max
    bitrate field that suit your most important viewing devices. Recommended values are: - Primary
    screen: Quality level: 8 to 10. Max bitrate: 4M - PC or tablet: Quality level: 7. Max bitrate:
    1.5M to 3M - Smartphone: Quality level: 6. Max bitrate: 1M to 1.5M

    - **RateControlMode** *(string) --* Rate control mode. QVBR: Quality will match the specified
    quality level except when it is constrained by the maximum bitrate. Recommended if you or your
    viewers pay for bandwidth. CBR: Quality varies, depending on the video complexity. Recommended
    only if you distribute your assets to devices that cannot handle variable bitrates.

    - **ScanType** *(string) --* Sets the scan type of the output to progressive or top-field-first
    interlaced.

    - **SceneChangeDetect** *(string) --* Scene change detection.

    - **Slices** *(integer) --* Number of slices per picture. Must be less than or equal to the
    number of macroblock rows for progressive pictures, and less than or equal to half the number of
    macroblock rows for interlaced pictures. This field is optional; when no value is specified the
    encoder will choose the number of slices based on encode resolution.

    - **Tier** *(string) --* H.265 Tier.

    - **TimecodeInsertion** *(string) --* Determines how timecodes should be inserted into the video
    elementary stream. - 'disabled': Do not include timecodes - 'picTimingSei': Pass through picture
    timing SEI messages from the source specified in Timecode Config
    """


_ClientDescribeChannelResponseEncoderSettingsVideoDescriptionsCodecSettingsTypeDef = TypedDict(
    "_ClientDescribeChannelResponseEncoderSettingsVideoDescriptionsCodecSettingsTypeDef",
    {
        "FrameCaptureSettings": ClientDescribeChannelResponseEncoderSettingsVideoDescriptionsCodecSettingsFrameCaptureSettingsTypeDef,
        "H264Settings": ClientDescribeChannelResponseEncoderSettingsVideoDescriptionsCodecSettingsH264SettingsTypeDef,
        "H265Settings": ClientDescribeChannelResponseEncoderSettingsVideoDescriptionsCodecSettingsH265SettingsTypeDef,
    },
    total=False,
)


class ClientDescribeChannelResponseEncoderSettingsVideoDescriptionsCodecSettingsTypeDef(
    _ClientDescribeChannelResponseEncoderSettingsVideoDescriptionsCodecSettingsTypeDef
):
    """
    Type definition for `ClientDescribeChannelResponseEncoderSettingsVideoDescriptions`
    `CodecSettings`

    - **FrameCaptureSettings** *(dict) --* Frame Capture Settings

      - **CaptureInterval** *(integer) --* The frequency at which to capture frames for inclusion in
      the output. May be specified in either seconds or milliseconds, as specified by
      captureIntervalUnits.

    - **H264Settings** *(dict) --* H264 Settings

      - **AdaptiveQuantization** *(string) --* Adaptive quantization. Allows intra-frame quantizers
      to vary to improve visual quality.

      - **AfdSignaling** *(string) --* Indicates that AFD values will be written into the output
      stream. If afdSignaling is "auto", the system will try to preserve the input AFD value (in
      cases where multiple AFD values are valid). If set to "fixed", the AFD value will be the value
      configured in the fixedAfd parameter.

      - **Bitrate** *(integer) --* Average bitrate in bits/second. Required when the rate control
      mode is VBR or CBR. Not used for QVBR. In an MS Smooth output group, each output must have a
      unique value when its bitrate is rounded down to the nearest multiple of 1000.

      - **BufFillPct** *(integer) --* Percentage of the buffer that should initially be filled (HRD
      buffer model).

      - **BufSize** *(integer) --* Size of buffer (HRD buffer model) in bits.

      - **ColorMetadata** *(string) --* Includes colorspace metadata in the output.

      - **ColorSpaceSettings** *(dict) --* Color Space settings

        - **ColorSpacePassthroughSettings** *(dict) --* Passthrough applies no color space
        conversion to the output

        - **Rec601Settings** *(dict) --* Rec601 Settings

        - **Rec709Settings** *(dict) --* Rec709 Settings

      - **EntropyEncoding** *(string) --* Entropy encoding mode. Use cabac (must be in Main or High
      profile) or cavlc.

      - **FixedAfd** *(string) --* Four bit AFD value to write on all frames of video in the output
      stream. Only valid when afdSignaling is set to 'Fixed'.

      - **FlickerAq** *(string) --* If set to enabled, adjust quantization within each frame to
      reduce flicker or 'pop' on I-frames.

      - **FramerateControl** *(string) --* This field indicates how the output video frame rate is
      specified. If "specified" is selected then the output video frame rate is determined by
      framerateNumerator and framerateDenominator, else if "initializeFromSource" is selected then
      the output video frame rate will be set equal to the input video frame rate of the first
      input.

      - **FramerateDenominator** *(integer) --* Framerate denominator.

      - **FramerateNumerator** *(integer) --* Framerate numerator - framerate is a fraction, e.g.
      24000 / 1001 = 23.976 fps.

      - **GopBReference** *(string) --* Documentation update needed

      - **GopClosedCadence** *(integer) --* Frequency of closed GOPs. In streaming applications, it
      is recommended that this be set to 1 so a decoder joining mid-stream will receive an IDR frame
      as quickly as possible. Setting this value to 0 will break output segmenting.

      - **GopNumBFrames** *(integer) --* Number of B-frames between reference frames.

      - **GopSize** *(float) --* GOP size (keyframe interval) in units of either frames or seconds
      per gopSizeUnits. If gopSizeUnits is frames, gopSize must be an integer and must be greater
      than or equal to 1. If gopSizeUnits is seconds, gopSize must be greater than 0, but need not
      be an integer.

      - **GopSizeUnits** *(string) --* Indicates if the gopSize is specified in frames or seconds.
      If seconds the system will convert the gopSize into a frame count at run time.

      - **Level** *(string) --* H.264 Level.

      - **LookAheadRateControl** *(string) --* Amount of lookahead. A value of low can decrease
      latency and memory usage, while high can produce better quality for certain content.

      - **MaxBitrate** *(integer) --* For QVBR: See the tooltip for Quality level For VBR: Set the
      maximum bitrate in order to accommodate expected spikes in the complexity of the video.

      - **MinIInterval** *(integer) --* Only meaningful if sceneChangeDetect is set to enabled.
      Defaults to 5 if multiplex rate control is used. Enforces separation between repeated
      (cadence) I-frames and I-frames inserted by Scene Change Detection. If a scene change I-frame
      is within I-interval frames of a cadence I-frame, the GOP is shrunk and/or stretched to the
      scene change I-frame. GOP stretch requires enabling lookahead as well as setting I-interval.
      The normal cadence resumes for the next GOP. Note: Maximum GOP stretch = GOP size +
      Min-I-interval - 1

      - **NumRefFrames** *(integer) --* Number of reference frames to use. The encoder may use more
      than requested if using B-frames and/or interlaced encoding.

      - **ParControl** *(string) --* This field indicates how the output pixel aspect ratio is
      specified. If "specified" is selected then the output video pixel aspect ratio is determined
      by parNumerator and parDenominator, else if "initializeFromSource" is selected then the output
      pixsel aspect ratio will be set equal to the input video pixel aspect ratio of the first
      input.

      - **ParDenominator** *(integer) --* Pixel Aspect Ratio denominator.

      - **ParNumerator** *(integer) --* Pixel Aspect Ratio numerator.

      - **Profile** *(string) --* H.264 Profile.

      - **QvbrQualityLevel** *(integer) --* Controls the target quality for the video encode.
      Applies only when the rate control mode is QVBR. Set values for the QVBR quality level field
      and Max bitrate field that suit your most important viewing devices. Recommended values are: -
      Primary screen: Quality level: 8 to 10. Max bitrate: 4M - PC or tablet: Quality level: 7. Max
      bitrate: 1.5M to 3M - Smartphone: Quality level: 6. Max bitrate: 1M to 1.5M

      - **RateControlMode** *(string) --* Rate control mode. QVBR: Quality will match the specified
      quality level except when it is constrained by the maximum bitrate. Recommended if you or your
      viewers pay for bandwidth. VBR: Quality and bitrate vary, depending on the video complexity.
      Recommended instead of QVBR if you want to maintain a specific average bitrate over the
      duration of the channel. CBR: Quality varies, depending on the video complexity. Recommended
      only if you distribute your assets to devices that cannot handle variable bitrates.

      - **ScanType** *(string) --* Sets the scan type of the output to progressive or
      top-field-first interlaced.

      - **SceneChangeDetect** *(string) --* Scene change detection. - On: inserts I-frames when
      scene change is detected. - Off: does not force an I-frame when scene change is detected.

      - **Slices** *(integer) --* Number of slices per picture. Must be less than or equal to the
      number of macroblock rows for progressive pictures, and less than or equal to half the number
      of macroblock rows for interlaced pictures. This field is optional; when no value is specified
      the encoder will choose the number of slices based on encode resolution.

      - **Softness** *(integer) --* Softness. Selects quantizer matrix, larger values reduce
      high-frequency content in the encoded image.

      - **SpatialAq** *(string) --* If set to enabled, adjust quantization within each frame based
      on spatial variation of content complexity.

      - **SubgopLength** *(string) --* If set to fixed, use gopNumBFrames B-frames per sub-GOP. If
      set to dynamic, optimize the number of B-frames used for each sub-GOP to improve visual
      quality.

      - **Syntax** *(string) --* Produces a bitstream compliant with SMPTE RP-2027.

      - **TemporalAq** *(string) --* If set to enabled, adjust quantization within each frame based
      on temporal variation of content complexity.

      - **TimecodeInsertion** *(string) --* Determines how timecodes should be inserted into the
      video elementary stream. - 'disabled': Do not include timecodes - 'picTimingSei': Pass through
      picture timing SEI messages from the source specified in Timecode Config

    - **H265Settings** *(dict) --* H265 Settings

      - **AdaptiveQuantization** *(string) --* Adaptive quantization. Allows intra-frame quantizers
      to vary to improve visual quality.

      - **AfdSignaling** *(string) --* Indicates that AFD values will be written into the output
      stream. If afdSignaling is "auto", the system will try to preserve the input AFD value (in
      cases where multiple AFD values are valid). If set to "fixed", the AFD value will be the value
      configured in the fixedAfd parameter.

      - **AlternativeTransferFunction** *(string) --* Whether or not EML should insert an
      Alternative Transfer Function SEI message to support backwards compatibility with non-HDR
      decoders and displays.

      - **Bitrate** *(integer) --* Average bitrate in bits/second. Required when the rate control
      mode is VBR or CBR. Not used for QVBR. In an MS Smooth output group, each output must have a
      unique value when its bitrate is rounded down to the nearest multiple of 1000.

      - **BufSize** *(integer) --* Size of buffer (HRD buffer model) in bits.

      - **ColorMetadata** *(string) --* Includes colorspace metadata in the output.

      - **ColorSpaceSettings** *(dict) --* Color Space settings

        - **ColorSpacePassthroughSettings** *(dict) --* Passthrough applies no color space
        conversion to the output

        - **Hdr10Settings** *(dict) --* Hdr10 Settings

          - **MaxCll** *(integer) --* Maximum Content Light Level An integer metadata value defining
          the maximum light level, in nits, of any single pixel within an encoded HDR video stream
          or file.

          - **MaxFall** *(integer) --* Maximum Frame Average Light Level An integer metadata value
          defining the maximum average light level, in nits, for any single frame within an encoded
          HDR video stream or file.

        - **Rec601Settings** *(dict) --* Rec601 Settings

        - **Rec709Settings** *(dict) --* Rec709 Settings

      - **FixedAfd** *(string) --* Four bit AFD value to write on all frames of video in the output
      stream. Only valid when afdSignaling is set to 'Fixed'.

      - **FlickerAq** *(string) --* If set to enabled, adjust quantization within each frame to
      reduce flicker or 'pop' on I-frames.

      - **FramerateDenominator** *(integer) --* Framerate denominator.

      - **FramerateNumerator** *(integer) --* Framerate numerator - framerate is a fraction, e.g.
      24000 / 1001 = 23.976 fps.

      - **GopClosedCadence** *(integer) --* Frequency of closed GOPs. In streaming applications, it
      is recommended that this be set to 1 so a decoder joining mid-stream will receive an IDR frame
      as quickly as possible. Setting this value to 0 will break output segmenting.

      - **GopSize** *(float) --* GOP size (keyframe interval) in units of either frames or seconds
      per gopSizeUnits. If gopSizeUnits is frames, gopSize must be an integer and must be greater
      than or equal to 1. If gopSizeUnits is seconds, gopSize must be greater than 0, but need not
      be an integer.

      - **GopSizeUnits** *(string) --* Indicates if the gopSize is specified in frames or seconds.
      If seconds the system will convert the gopSize into a frame count at run time.

      - **Level** *(string) --* H.265 Level.

      - **LookAheadRateControl** *(string) --* Amount of lookahead. A value of low can decrease
      latency and memory usage, while high can produce better quality for certain content.

      - **MaxBitrate** *(integer) --* For QVBR: See the tooltip for Quality level

      - **MinIInterval** *(integer) --* Only meaningful if sceneChangeDetect is set to enabled.
      Defaults to 5 if multiplex rate control is used. Enforces separation between repeated
      (cadence) I-frames and I-frames inserted by Scene Change Detection. If a scene change I-frame
      is within I-interval frames of a cadence I-frame, the GOP is shrunk and/or stretched to the
      scene change I-frame. GOP stretch requires enabling lookahead as well as setting I-interval.
      The normal cadence resumes for the next GOP. Note: Maximum GOP stretch = GOP size +
      Min-I-interval - 1

      - **ParDenominator** *(integer) --* Pixel Aspect Ratio denominator.

      - **ParNumerator** *(integer) --* Pixel Aspect Ratio numerator.

      - **Profile** *(string) --* H.265 Profile.

      - **QvbrQualityLevel** *(integer) --* Controls the target quality for the video encode.
      Applies only when the rate control mode is QVBR. Set values for the QVBR quality level field
      and Max bitrate field that suit your most important viewing devices. Recommended values are: -
      Primary screen: Quality level: 8 to 10. Max bitrate: 4M - PC or tablet: Quality level: 7. Max
      bitrate: 1.5M to 3M - Smartphone: Quality level: 6. Max bitrate: 1M to 1.5M

      - **RateControlMode** *(string) --* Rate control mode. QVBR: Quality will match the specified
      quality level except when it is constrained by the maximum bitrate. Recommended if you or your
      viewers pay for bandwidth. CBR: Quality varies, depending on the video complexity. Recommended
      only if you distribute your assets to devices that cannot handle variable bitrates.

      - **ScanType** *(string) --* Sets the scan type of the output to progressive or
      top-field-first interlaced.

      - **SceneChangeDetect** *(string) --* Scene change detection.

      - **Slices** *(integer) --* Number of slices per picture. Must be less than or equal to the
      number of macroblock rows for progressive pictures, and less than or equal to half the number
      of macroblock rows for interlaced pictures. This field is optional; when no value is specified
      the encoder will choose the number of slices based on encode resolution.

      - **Tier** *(string) --* H.265 Tier.

      - **TimecodeInsertion** *(string) --* Determines how timecodes should be inserted into the
      video elementary stream. - 'disabled': Do not include timecodes - 'picTimingSei': Pass through
      picture timing SEI messages from the source specified in Timecode Config
    """


_ClientDescribeChannelResponseEncoderSettingsVideoDescriptionsTypeDef = TypedDict(
    "_ClientDescribeChannelResponseEncoderSettingsVideoDescriptionsTypeDef",
    {
        "CodecSettings": ClientDescribeChannelResponseEncoderSettingsVideoDescriptionsCodecSettingsTypeDef,
        "Height": int,
        "Name": str,
        "RespondToAfd": str,
        "ScalingBehavior": str,
        "Sharpness": int,
        "Width": int,
    },
    total=False,
)


class ClientDescribeChannelResponseEncoderSettingsVideoDescriptionsTypeDef(
    _ClientDescribeChannelResponseEncoderSettingsVideoDescriptionsTypeDef
):
    """
    Type definition for `ClientDescribeChannelResponseEncoderSettings` `VideoDescriptions`

    - **CodecSettings** *(dict) --* Video codec settings.

      - **FrameCaptureSettings** *(dict) --* Frame Capture Settings

        - **CaptureInterval** *(integer) --* The frequency at which to capture frames for inclusion
        in the output. May be specified in either seconds or milliseconds, as specified by
        captureIntervalUnits.

      - **H264Settings** *(dict) --* H264 Settings

        - **AdaptiveQuantization** *(string) --* Adaptive quantization. Allows intra-frame
        quantizers to vary to improve visual quality.

        - **AfdSignaling** *(string) --* Indicates that AFD values will be written into the output
        stream. If afdSignaling is "auto", the system will try to preserve the input AFD value (in
        cases where multiple AFD values are valid). If set to "fixed", the AFD value will be the
        value configured in the fixedAfd parameter.

        - **Bitrate** *(integer) --* Average bitrate in bits/second. Required when the rate control
        mode is VBR or CBR. Not used for QVBR. In an MS Smooth output group, each output must have a
        unique value when its bitrate is rounded down to the nearest multiple of 1000.

        - **BufFillPct** *(integer) --* Percentage of the buffer that should initially be filled
        (HRD buffer model).

        - **BufSize** *(integer) --* Size of buffer (HRD buffer model) in bits.

        - **ColorMetadata** *(string) --* Includes colorspace metadata in the output.

        - **ColorSpaceSettings** *(dict) --* Color Space settings

          - **ColorSpacePassthroughSettings** *(dict) --* Passthrough applies no color space
          conversion to the output

          - **Rec601Settings** *(dict) --* Rec601 Settings

          - **Rec709Settings** *(dict) --* Rec709 Settings

        - **EntropyEncoding** *(string) --* Entropy encoding mode. Use cabac (must be in Main or
        High profile) or cavlc.

        - **FixedAfd** *(string) --* Four bit AFD value to write on all frames of video in the
        output stream. Only valid when afdSignaling is set to 'Fixed'.

        - **FlickerAq** *(string) --* If set to enabled, adjust quantization within each frame to
        reduce flicker or 'pop' on I-frames.

        - **FramerateControl** *(string) --* This field indicates how the output video frame rate is
        specified. If "specified" is selected then the output video frame rate is determined by
        framerateNumerator and framerateDenominator, else if "initializeFromSource" is selected then
        the output video frame rate will be set equal to the input video frame rate of the first
        input.

        - **FramerateDenominator** *(integer) --* Framerate denominator.

        - **FramerateNumerator** *(integer) --* Framerate numerator - framerate is a fraction, e.g.
        24000 / 1001 = 23.976 fps.

        - **GopBReference** *(string) --* Documentation update needed

        - **GopClosedCadence** *(integer) --* Frequency of closed GOPs. In streaming applications,
        it is recommended that this be set to 1 so a decoder joining mid-stream will receive an IDR
        frame as quickly as possible. Setting this value to 0 will break output segmenting.

        - **GopNumBFrames** *(integer) --* Number of B-frames between reference frames.

        - **GopSize** *(float) --* GOP size (keyframe interval) in units of either frames or seconds
        per gopSizeUnits. If gopSizeUnits is frames, gopSize must be an integer and must be greater
        than or equal to 1. If gopSizeUnits is seconds, gopSize must be greater than 0, but need not
        be an integer.

        - **GopSizeUnits** *(string) --* Indicates if the gopSize is specified in frames or seconds.
        If seconds the system will convert the gopSize into a frame count at run time.

        - **Level** *(string) --* H.264 Level.

        - **LookAheadRateControl** *(string) --* Amount of lookahead. A value of low can decrease
        latency and memory usage, while high can produce better quality for certain content.

        - **MaxBitrate** *(integer) --* For QVBR: See the tooltip for Quality level For VBR: Set the
        maximum bitrate in order to accommodate expected spikes in the complexity of the video.

        - **MinIInterval** *(integer) --* Only meaningful if sceneChangeDetect is set to enabled.
        Defaults to 5 if multiplex rate control is used. Enforces separation between repeated
        (cadence) I-frames and I-frames inserted by Scene Change Detection. If a scene change
        I-frame is within I-interval frames of a cadence I-frame, the GOP is shrunk and/or stretched
        to the scene change I-frame. GOP stretch requires enabling lookahead as well as setting
        I-interval. The normal cadence resumes for the next GOP. Note: Maximum GOP stretch = GOP
        size + Min-I-interval - 1

        - **NumRefFrames** *(integer) --* Number of reference frames to use. The encoder may use
        more than requested if using B-frames and/or interlaced encoding.

        - **ParControl** *(string) --* This field indicates how the output pixel aspect ratio is
        specified. If "specified" is selected then the output video pixel aspect ratio is determined
        by parNumerator and parDenominator, else if "initializeFromSource" is selected then the
        output pixsel aspect ratio will be set equal to the input video pixel aspect ratio of the
        first input.

        - **ParDenominator** *(integer) --* Pixel Aspect Ratio denominator.

        - **ParNumerator** *(integer) --* Pixel Aspect Ratio numerator.

        - **Profile** *(string) --* H.264 Profile.

        - **QvbrQualityLevel** *(integer) --* Controls the target quality for the video encode.
        Applies only when the rate control mode is QVBR. Set values for the QVBR quality level field
        and Max bitrate field that suit your most important viewing devices. Recommended values are:
        - Primary screen: Quality level: 8 to 10. Max bitrate: 4M - PC or tablet: Quality level: 7.
        Max bitrate: 1.5M to 3M - Smartphone: Quality level: 6. Max bitrate: 1M to 1.5M

        - **RateControlMode** *(string) --* Rate control mode. QVBR: Quality will match the
        specified quality level except when it is constrained by the maximum bitrate. Recommended if
        you or your viewers pay for bandwidth. VBR: Quality and bitrate vary, depending on the video
        complexity. Recommended instead of QVBR if you want to maintain a specific average bitrate
        over the duration of the channel. CBR: Quality varies, depending on the video complexity.
        Recommended only if you distribute your assets to devices that cannot handle variable
        bitrates.

        - **ScanType** *(string) --* Sets the scan type of the output to progressive or
        top-field-first interlaced.

        - **SceneChangeDetect** *(string) --* Scene change detection. - On: inserts I-frames when
        scene change is detected. - Off: does not force an I-frame when scene change is detected.

        - **Slices** *(integer) --* Number of slices per picture. Must be less than or equal to the
        number of macroblock rows for progressive pictures, and less than or equal to half the
        number of macroblock rows for interlaced pictures. This field is optional; when no value is
        specified the encoder will choose the number of slices based on encode resolution.

        - **Softness** *(integer) --* Softness. Selects quantizer matrix, larger values reduce
        high-frequency content in the encoded image.

        - **SpatialAq** *(string) --* If set to enabled, adjust quantization within each frame based
        on spatial variation of content complexity.

        - **SubgopLength** *(string) --* If set to fixed, use gopNumBFrames B-frames per sub-GOP. If
        set to dynamic, optimize the number of B-frames used for each sub-GOP to improve visual
        quality.

        - **Syntax** *(string) --* Produces a bitstream compliant with SMPTE RP-2027.

        - **TemporalAq** *(string) --* If set to enabled, adjust quantization within each frame
        based on temporal variation of content complexity.

        - **TimecodeInsertion** *(string) --* Determines how timecodes should be inserted into the
        video elementary stream. - 'disabled': Do not include timecodes - 'picTimingSei': Pass
        through picture timing SEI messages from the source specified in Timecode Config

      - **H265Settings** *(dict) --* H265 Settings

        - **AdaptiveQuantization** *(string) --* Adaptive quantization. Allows intra-frame
        quantizers to vary to improve visual quality.

        - **AfdSignaling** *(string) --* Indicates that AFD values will be written into the output
        stream. If afdSignaling is "auto", the system will try to preserve the input AFD value (in
        cases where multiple AFD values are valid). If set to "fixed", the AFD value will be the
        value configured in the fixedAfd parameter.

        - **AlternativeTransferFunction** *(string) --* Whether or not EML should insert an
        Alternative Transfer Function SEI message to support backwards compatibility with non-HDR
        decoders and displays.

        - **Bitrate** *(integer) --* Average bitrate in bits/second. Required when the rate control
        mode is VBR or CBR. Not used for QVBR. In an MS Smooth output group, each output must have a
        unique value when its bitrate is rounded down to the nearest multiple of 1000.

        - **BufSize** *(integer) --* Size of buffer (HRD buffer model) in bits.

        - **ColorMetadata** *(string) --* Includes colorspace metadata in the output.

        - **ColorSpaceSettings** *(dict) --* Color Space settings

          - **ColorSpacePassthroughSettings** *(dict) --* Passthrough applies no color space
          conversion to the output

          - **Hdr10Settings** *(dict) --* Hdr10 Settings

            - **MaxCll** *(integer) --* Maximum Content Light Level An integer metadata value
            defining the maximum light level, in nits, of any single pixel within an encoded HDR
            video stream or file.

            - **MaxFall** *(integer) --* Maximum Frame Average Light Level An integer metadata value
            defining the maximum average light level, in nits, for any single frame within an
            encoded HDR video stream or file.

          - **Rec601Settings** *(dict) --* Rec601 Settings

          - **Rec709Settings** *(dict) --* Rec709 Settings

        - **FixedAfd** *(string) --* Four bit AFD value to write on all frames of video in the
        output stream. Only valid when afdSignaling is set to 'Fixed'.

        - **FlickerAq** *(string) --* If set to enabled, adjust quantization within each frame to
        reduce flicker or 'pop' on I-frames.

        - **FramerateDenominator** *(integer) --* Framerate denominator.

        - **FramerateNumerator** *(integer) --* Framerate numerator - framerate is a fraction, e.g.
        24000 / 1001 = 23.976 fps.

        - **GopClosedCadence** *(integer) --* Frequency of closed GOPs. In streaming applications,
        it is recommended that this be set to 1 so a decoder joining mid-stream will receive an IDR
        frame as quickly as possible. Setting this value to 0 will break output segmenting.

        - **GopSize** *(float) --* GOP size (keyframe interval) in units of either frames or seconds
        per gopSizeUnits. If gopSizeUnits is frames, gopSize must be an integer and must be greater
        than or equal to 1. If gopSizeUnits is seconds, gopSize must be greater than 0, but need not
        be an integer.

        - **GopSizeUnits** *(string) --* Indicates if the gopSize is specified in frames or seconds.
        If seconds the system will convert the gopSize into a frame count at run time.

        - **Level** *(string) --* H.265 Level.

        - **LookAheadRateControl** *(string) --* Amount of lookahead. A value of low can decrease
        latency and memory usage, while high can produce better quality for certain content.

        - **MaxBitrate** *(integer) --* For QVBR: See the tooltip for Quality level

        - **MinIInterval** *(integer) --* Only meaningful if sceneChangeDetect is set to enabled.
        Defaults to 5 if multiplex rate control is used. Enforces separation between repeated
        (cadence) I-frames and I-frames inserted by Scene Change Detection. If a scene change
        I-frame is within I-interval frames of a cadence I-frame, the GOP is shrunk and/or stretched
        to the scene change I-frame. GOP stretch requires enabling lookahead as well as setting
        I-interval. The normal cadence resumes for the next GOP. Note: Maximum GOP stretch = GOP
        size + Min-I-interval - 1

        - **ParDenominator** *(integer) --* Pixel Aspect Ratio denominator.

        - **ParNumerator** *(integer) --* Pixel Aspect Ratio numerator.

        - **Profile** *(string) --* H.265 Profile.

        - **QvbrQualityLevel** *(integer) --* Controls the target quality for the video encode.
        Applies only when the rate control mode is QVBR. Set values for the QVBR quality level field
        and Max bitrate field that suit your most important viewing devices. Recommended values are:
        - Primary screen: Quality level: 8 to 10. Max bitrate: 4M - PC or tablet: Quality level: 7.
        Max bitrate: 1.5M to 3M - Smartphone: Quality level: 6. Max bitrate: 1M to 1.5M

        - **RateControlMode** *(string) --* Rate control mode. QVBR: Quality will match the
        specified quality level except when it is constrained by the maximum bitrate. Recommended if
        you or your viewers pay for bandwidth. CBR: Quality varies, depending on the video
        complexity. Recommended only if you distribute your assets to devices that cannot handle
        variable bitrates.

        - **ScanType** *(string) --* Sets the scan type of the output to progressive or
        top-field-first interlaced.

        - **SceneChangeDetect** *(string) --* Scene change detection.

        - **Slices** *(integer) --* Number of slices per picture. Must be less than or equal to the
        number of macroblock rows for progressive pictures, and less than or equal to half the
        number of macroblock rows for interlaced pictures. This field is optional; when no value is
        specified the encoder will choose the number of slices based on encode resolution.

        - **Tier** *(string) --* H.265 Tier.

        - **TimecodeInsertion** *(string) --* Determines how timecodes should be inserted into the
        video elementary stream. - 'disabled': Do not include timecodes - 'picTimingSei': Pass
        through picture timing SEI messages from the source specified in Timecode Config

    - **Height** *(integer) --* Output video height, in pixels. Must be an even number. For most
    codecs, you can leave this field and width blank in order to use the height and width
    (resolution) from the source. Note, however, that leaving blank is not recommended. For the
    Frame Capture codec, height and width are required.

    - **Name** *(string) --* The name of this VideoDescription. Outputs will use this name to
    uniquely identify this Description. Description names should be unique within this Live Event.

    - **RespondToAfd** *(string) --* Indicates how to respond to the AFD values in the input stream.
    RESPOND causes input video to be clipped, depending on the AFD value, input display aspect
    ratio, and output display aspect ratio, and (except for FRAMECAPTURE codec) includes the values
    in the output. PASSTHROUGH (does not apply to FRAMECAPTURE codec) ignores the AFD values and
    includes the values in the output, so input video is not clipped. NONE ignores the AFD values
    and does not include the values through to the output, so input video is not clipped.

    - **ScalingBehavior** *(string) --* STRETCHTOOUTPUT configures the output position to stretch
    the video to the specified output resolution (height and width). This option will override any
    position value. DEFAULT may insert black boxes (pillar boxes or letter boxes) around the video
    to provide the specified output resolution.

    - **Sharpness** *(integer) --* Changes the strength of the anti-alias filter used for scaling. 0
    is the softest setting, 100 is the sharpest. A setting of 50 is recommended for most content.

    - **Width** *(integer) --* Output video width, in pixels. Must be an even number. For most
    codecs, you can leave this field and height blank in order to use the height and width
    (resolution) from the source. Note, however, that leaving blank is not recommended. For the
    Frame Capture codec, height and width are required.
    """


_ClientDescribeChannelResponseEncoderSettingsTypeDef = TypedDict(
    "_ClientDescribeChannelResponseEncoderSettingsTypeDef",
    {
        "AudioDescriptions": List[
            ClientDescribeChannelResponseEncoderSettingsAudioDescriptionsTypeDef
        ],
        "AvailBlanking": ClientDescribeChannelResponseEncoderSettingsAvailBlankingTypeDef,
        "AvailConfiguration": ClientDescribeChannelResponseEncoderSettingsAvailConfigurationTypeDef,
        "BlackoutSlate": ClientDescribeChannelResponseEncoderSettingsBlackoutSlateTypeDef,
        "CaptionDescriptions": List[
            ClientDescribeChannelResponseEncoderSettingsCaptionDescriptionsTypeDef
        ],
        "GlobalConfiguration": ClientDescribeChannelResponseEncoderSettingsGlobalConfigurationTypeDef,
        "NielsenConfiguration": ClientDescribeChannelResponseEncoderSettingsNielsenConfigurationTypeDef,
        "OutputGroups": List[ClientDescribeChannelResponseEncoderSettingsOutputGroupsTypeDef],
        "TimecodeConfig": ClientDescribeChannelResponseEncoderSettingsTimecodeConfigTypeDef,
        "VideoDescriptions": List[
            ClientDescribeChannelResponseEncoderSettingsVideoDescriptionsTypeDef
        ],
    },
    total=False,
)


class ClientDescribeChannelResponseEncoderSettingsTypeDef(
    _ClientDescribeChannelResponseEncoderSettingsTypeDef
):
    """
    Type definition for `ClientDescribeChannelResponse` `EncoderSettings`

    - **AudioDescriptions** *(list) --* Placeholder documentation for __listOfAudioDescription

      - *(dict) --* Audio Description

        - **AudioNormalizationSettings** *(dict) --* Advanced audio normalization settings.

          - **Algorithm** *(string) --* Audio normalization algorithm to use. itu17701 conforms to
          the CALM Act specification, itu17702 conforms to the EBU R-128 specification.

          - **AlgorithmControl** *(string) --* When set to correctAudio the output audio is
          corrected using the chosen algorithm. If set to measureOnly, the audio will be measured
          but not adjusted.

          - **TargetLkfs** *(float) --* Target LKFS(loudness) to adjust volume to. If no value is
          entered, a default value will be used according to the chosen algorithm. The CALM Act
          (1770-1) recommends a target of -24 LKFS. The EBU R-128 specification (1770-2) recommends
          a target of -23 LKFS.

        - **AudioSelectorName** *(string) --* The name of the AudioSelector used as the source for
        this AudioDescription.

        - **AudioType** *(string) --* Applies only if audioTypeControl is useConfigured. The values
        for audioType are defined in ISO-IEC 13818-1.

        - **AudioTypeControl** *(string) --* Determines how audio type is determined. followInput:
        If the input contains an ISO 639 audioType, then that value is passed through to the output.
        If the input contains no ISO 639 audioType, the value in Audio Type is included in the
        output. useConfigured: The value in Audio Type is included in the output. Note that this
        field and audioType are both ignored if inputType is broadcasterMixedAd.

        - **CodecSettings** *(dict) --* Audio codec settings.

          - **AacSettings** *(dict) --* Aac Settings

            - **Bitrate** *(float) --* Average bitrate in bits/second. Valid values depend on rate
            control mode and profile.

            - **CodingMode** *(string) --* Mono, Stereo, or 5.1 channel layout. Valid values depend
            on rate control mode and profile. The adReceiverMix setting receives a stereo
            description plus control track and emits a mono AAC encode of the description track,
            with control data emitted in the PES header as per ETSI TS 101 154 Annex E.

            - **InputType** *(string) --* Set to "broadcasterMixedAd" when input contains pre-mixed
            main audio + AD (narration) as a stereo pair. The Audio Type field (audioType) will be
            set to 3, which signals to downstream systems that this stream contains "broadcaster
            mixed AD". Note that the input received by the encoder must contain pre-mixed audio; the
            encoder does not perform the mixing. The values in audioTypeControl and audioType (in
            AudioDescription) are ignored when set to broadcasterMixedAd. Leave set to "normal" when
            input does not contain pre-mixed audio + AD.

            - **Profile** *(string) --* AAC Profile.

            - **RateControlMode** *(string) --* Rate Control Mode.

            - **RawFormat** *(string) --* Sets LATM / LOAS AAC output for raw containers.

            - **SampleRate** *(float) --* Sample rate in Hz. Valid values depend on rate control
            mode and profile.

            - **Spec** *(string) --* Use MPEG-2 AAC audio instead of MPEG-4 AAC audio for raw or
            MPEG-2 Transport Stream containers.

            - **VbrQuality** *(string) --* VBR Quality Level - Only used if rateControlMode is VBR.

          - **Ac3Settings** *(dict) --* Ac3 Settings

            - **Bitrate** *(float) --* Average bitrate in bits/second. Valid bitrates depend on the
            coding mode.

            - **BitstreamMode** *(string) --* Specifies the bitstream mode (bsmod) for the emitted
            AC-3 stream. See ATSC A/52-2012 for background on these values.

            - **CodingMode** *(string) --* Dolby Digital coding mode. Determines number of channels.

            - **Dialnorm** *(integer) --* Sets the dialnorm for the output. If excluded and input
            audio is Dolby Digital, dialnorm will be passed through.

            - **DrcProfile** *(string) --* If set to filmStandard, adds dynamic range compression
            signaling to the output bitstream as defined in the Dolby Digital specification.

            - **LfeFilter** *(string) --* When set to enabled, applies a 120Hz lowpass filter to the
            LFE channel prior to encoding. Only valid in codingMode32Lfe mode.

            - **MetadataControl** *(string) --* When set to "followInput", encoder metadata will be
            sourced from the DD, DD+, or DolbyE decoder that supplied this audio data. If audio was
            not supplied from one of these streams, then the static metadata settings will be used.

          - **Eac3Settings** *(dict) --* Eac3 Settings

            - **AttenuationControl** *(string) --* When set to attenuate3Db, applies a 3 dB
            attenuation to the surround channels. Only used for 3/2 coding mode.

            - **Bitrate** *(float) --* Average bitrate in bits/second. Valid bitrates depend on the
            coding mode.

            - **BitstreamMode** *(string) --* Specifies the bitstream mode (bsmod) for the emitted
            E-AC-3 stream. See ATSC A/52-2012 (Annex E) for background on these values.

            - **CodingMode** *(string) --* Dolby Digital Plus coding mode. Determines number of
            channels.

            - **DcFilter** *(string) --* When set to enabled, activates a DC highpass filter for all
            input channels.

            - **Dialnorm** *(integer) --* Sets the dialnorm for the output. If blank and input audio
            is Dolby Digital Plus, dialnorm will be passed through.

            - **DrcLine** *(string) --* Sets the Dolby dynamic range compression profile.

            - **DrcRf** *(string) --* Sets the profile for heavy Dolby dynamic range compression,
            ensures that the instantaneous signal peaks do not exceed specified levels.

            - **LfeControl** *(string) --* When encoding 3/2 audio, setting to lfe enables the LFE
            channel

            - **LfeFilter** *(string) --* When set to enabled, applies a 120Hz lowpass filter to the
            LFE channel prior to encoding. Only valid with codingMode32 coding mode.

            - **LoRoCenterMixLevel** *(float) --* Left only/Right only center mix level. Only used
            for 3/2 coding mode.

            - **LoRoSurroundMixLevel** *(float) --* Left only/Right only surround mix level. Only
            used for 3/2 coding mode.

            - **LtRtCenterMixLevel** *(float) --* Left total/Right total center mix level. Only used
            for 3/2 coding mode.

            - **LtRtSurroundMixLevel** *(float) --* Left total/Right total surround mix level. Only
            used for 3/2 coding mode.

            - **MetadataControl** *(string) --* When set to followInput, encoder metadata will be
            sourced from the DD, DD+, or DolbyE decoder that supplied this audio data. If audio was
            not supplied from one of these streams, then the static metadata settings will be used.

            - **PassthroughControl** *(string) --* When set to whenPossible, input DD+ audio will be
            passed through if it is present on the input. This detection is dynamic over the life of
            the transcode. Inputs that alternate between DD+ and non-DD+ content will have a
            consistent DD+ output as the system alternates between passthrough and encoding.

            - **PhaseControl** *(string) --* When set to shift90Degrees, applies a 90-degree phase
            shift to the surround channels. Only used for 3/2 coding mode.

            - **StereoDownmix** *(string) --* Stereo downmix preference. Only used for 3/2 coding
            mode.

            - **SurroundExMode** *(string) --* When encoding 3/2 audio, sets whether an extra center
            back surround channel is matrix encoded into the left and right surround channels.

            - **SurroundMode** *(string) --* When encoding 2/0 audio, sets whether Dolby Surround is
            matrix encoded into the two channels.

          - **Mp2Settings** *(dict) --* Mp2 Settings

            - **Bitrate** *(float) --* Average bitrate in bits/second.

            - **CodingMode** *(string) --* The MPEG2 Audio coding mode. Valid values are
            codingMode10 (for mono) or codingMode20 (for stereo).

            - **SampleRate** *(float) --* Sample rate in Hz.

          - **PassThroughSettings** *(dict) --* Pass Through Settings

        - **LanguageCode** *(string) --* Indicates the language of the audio output track. Only used
        if languageControlMode is useConfigured, or there is no ISO 639 language code specified in
        the input.

        - **LanguageCodeControl** *(string) --* Choosing followInput will cause the ISO 639 language
        code of the output to follow the ISO 639 language code of the input. The languageCode will
        be used when useConfigured is set, or when followInput is selected but there is no ISO 639
        language code specified by the input.

        - **Name** *(string) --* The name of this AudioDescription. Outputs will use this name to
        uniquely identify this AudioDescription. Description names should be unique within this Live
        Event.

        - **RemixSettings** *(dict) --* Settings that control how input audio channels are remixed
        into the output audio channels.

          - **ChannelMappings** *(list) --* Mapping of input channels to output channels, with
          appropriate gain adjustments.

            - *(dict) --* Audio Channel Mapping

              - **InputChannelLevels** *(list) --* Indices and gain values for each input channel
              that should be remixed into this output channel.

                - *(dict) --* Input Channel Level

                  - **Gain** *(integer) --* Remixing value. Units are in dB and acceptable values
                  are within the range from -60 (mute) and 6 dB.

                  - **InputChannel** *(integer) --* The index of the input channel used as a source.

              - **OutputChannel** *(integer) --* The index of the output channel being produced.

          - **ChannelsIn** *(integer) --* Number of input channels to be used.

          - **ChannelsOut** *(integer) --* Number of output channels to be produced. Valid values:
          1, 2, 4, 6, 8

        - **StreamName** *(string) --* Used for MS Smooth and Apple HLS outputs. Indicates the name
        displayed by the player (eg. English, or Director Commentary).

    - **AvailBlanking** *(dict) --* Settings for ad avail blanking.

      - **AvailBlankingImage** *(dict) --* Blanking image to be used. Leave empty for solid black.
      Only bmp and png images are supported.

        - **PasswordParam** *(string) --* key used to extract the password from EC2 Parameter store

        - **Uri** *(string) --* Uniform Resource Identifier - This should be a path to a file
        accessible to the Live system (eg. a http:// URI) depending on the output type. For example,
        a RTMP destination should have a uri simliar to: "rtmp://fmsserver/live".

        - **Username** *(string) --* Documentation update needed

      - **State** *(string) --* When set to enabled, causes video, audio and captions to be blanked
      when insertion metadata is added.

    - **AvailConfiguration** *(dict) --* Event-wide configuration settings for ad avail insertion.

      - **AvailSettings** *(dict) --* Ad avail settings.

        - **Scte35SpliceInsert** *(dict) --* Scte35 Splice Insert

          - **AdAvailOffset** *(integer) --* When specified, this offset (in milliseconds) is added
          to the input Ad Avail PTS time. This only applies to embedded SCTE 104/35 messages and
          does not apply to OOB messages.

          - **NoRegionalBlackoutFlag** *(string) --* When set to ignore, Segment Descriptors with
          noRegionalBlackoutFlag set to 0 will no longer trigger blackouts or Ad Avail slates

          - **WebDeliveryAllowedFlag** *(string) --* When set to ignore, Segment Descriptors with
          webDeliveryAllowedFlag set to 0 will no longer trigger blackouts or Ad Avail slates

        - **Scte35TimeSignalApos** *(dict) --* Scte35 Time Signal Apos

          - **AdAvailOffset** *(integer) --* When specified, this offset (in milliseconds) is added
          to the input Ad Avail PTS time. This only applies to embedded SCTE 104/35 messages and
          does not apply to OOB messages.

          - **NoRegionalBlackoutFlag** *(string) --* When set to ignore, Segment Descriptors with
          noRegionalBlackoutFlag set to 0 will no longer trigger blackouts or Ad Avail slates

          - **WebDeliveryAllowedFlag** *(string) --* When set to ignore, Segment Descriptors with
          webDeliveryAllowedFlag set to 0 will no longer trigger blackouts or Ad Avail slates

    - **BlackoutSlate** *(dict) --* Settings for blackout slate.

      - **BlackoutSlateImage** *(dict) --* Blackout slate image to be used. Leave empty for solid
      black. Only bmp and png images are supported.

        - **PasswordParam** *(string) --* key used to extract the password from EC2 Parameter store

        - **Uri** *(string) --* Uniform Resource Identifier - This should be a path to a file
        accessible to the Live system (eg. a http:// URI) depending on the output type. For example,
        a RTMP destination should have a uri simliar to: "rtmp://fmsserver/live".

        - **Username** *(string) --* Documentation update needed

      - **NetworkEndBlackout** *(string) --* Setting to enabled causes the encoder to blackout the
      video, audio, and captions, and raise the "Network Blackout Image" slate when an SCTE104/35
      Network End Segmentation Descriptor is encountered. The blackout will be lifted when the
      Network Start Segmentation Descriptor is encountered. The Network End and Network Start
      descriptors must contain a network ID that matches the value entered in "Network ID".

      - **NetworkEndBlackoutImage** *(dict) --* Path to local file to use as Network End Blackout
      image. Image will be scaled to fill the entire output raster.

        - **PasswordParam** *(string) --* key used to extract the password from EC2 Parameter store

        - **Uri** *(string) --* Uniform Resource Identifier - This should be a path to a file
        accessible to the Live system (eg. a http:// URI) depending on the output type. For example,
        a RTMP destination should have a uri simliar to: "rtmp://fmsserver/live".

        - **Username** *(string) --* Documentation update needed

      - **NetworkId** *(string) --* Provides Network ID that matches EIDR ID format (e.g.,
      "10.XXXX/XXXX-XXXX-XXXX-XXXX-XXXX-C").

      - **State** *(string) --* When set to enabled, causes video, audio and captions to be blanked
      when indicated by program metadata.

    - **CaptionDescriptions** *(list) --* Settings for caption decriptions

      - *(dict) --* Caption Description

        - **CaptionSelectorName** *(string) --* Specifies which input caption selector to use as a
        caption source when generating output captions. This field should match a captionSelector
        name.

        - **DestinationSettings** *(dict) --* Additional settings for captions destination that
        depend on the destination type.

          - **AribDestinationSettings** *(dict) --* Arib Destination Settings

          - **BurnInDestinationSettings** *(dict) --* Burn In Destination Settings

            - **Alignment** *(string) --* If no explicit xPosition or yPosition is provided, setting
            alignment to centered will place the captions at the bottom center of the output.
            Similarly, setting a left alignment will align captions to the bottom left of the
            output. If x and y positions are given in conjunction with the alignment parameter, the
            font will be justified (either left or centered) relative to those coordinates.
            Selecting "smart" justification will left-justify live subtitles and center-justify
            pre-recorded subtitles. All burn-in and DVB-Sub font settings must match.

            - **BackgroundColor** *(string) --* Specifies the color of the rectangle behind the
            captions. All burn-in and DVB-Sub font settings must match.

            - **BackgroundOpacity** *(integer) --* Specifies the opacity of the background
            rectangle. 255 is opaque; 0 is transparent. Leaving this parameter out is equivalent to
            setting it to 0 (transparent). All burn-in and DVB-Sub font settings must match.

            - **Font** *(dict) --* External font file used for caption burn-in. File extension must
            be 'ttf' or 'tte'. Although the user can select output fonts for many different types of
            input captions, embedded, STL and teletext sources use a strict grid system. Using
            external fonts with these caption sources could cause unexpected display of proportional
            fonts. All burn-in and DVB-Sub font settings must match.

              - **PasswordParam** *(string) --* key used to extract the password from EC2 Parameter
              store

              - **Uri** *(string) --* Uniform Resource Identifier - This should be a path to a file
              accessible to the Live system (eg. a http:// URI) depending on the output type. For
              example, a RTMP destination should have a uri simliar to: "rtmp://fmsserver/live".

              - **Username** *(string) --* Documentation update needed

            - **FontColor** *(string) --* Specifies the color of the burned-in captions. This option
            is not valid for source captions that are STL, 608/embedded or teletext. These source
            settings are already pre-defined by the caption stream. All burn-in and DVB-Sub font
            settings must match.

            - **FontOpacity** *(integer) --* Specifies the opacity of the burned-in captions. 255 is
            opaque; 0 is transparent. All burn-in and DVB-Sub font settings must match.

            - **FontResolution** *(integer) --* Font resolution in DPI (dots per inch); default is
            96 dpi. All burn-in and DVB-Sub font settings must match.

            - **FontSize** *(string) --* When set to 'auto' fontSize will scale depending on the
            size of the output. Giving a positive integer will specify the exact font size in
            points. All burn-in and DVB-Sub font settings must match.

            - **OutlineColor** *(string) --* Specifies font outline color. This option is not valid
            for source captions that are either 608/embedded or teletext. These source settings are
            already pre-defined by the caption stream. All burn-in and DVB-Sub font settings must
            match.

            - **OutlineSize** *(integer) --* Specifies font outline size in pixels. This option is
            not valid for source captions that are either 608/embedded or teletext. These source
            settings are already pre-defined by the caption stream. All burn-in and DVB-Sub font
            settings must match.

            - **ShadowColor** *(string) --* Specifies the color of the shadow cast by the captions.
            All burn-in and DVB-Sub font settings must match.

            - **ShadowOpacity** *(integer) --* Specifies the opacity of the shadow. 255 is opaque; 0
            is transparent. Leaving this parameter out is equivalent to setting it to 0
            (transparent). All burn-in and DVB-Sub font settings must match.

            - **ShadowXOffset** *(integer) --* Specifies the horizontal offset of the shadow
            relative to the captions in pixels. A value of -2 would result in a shadow offset 2
            pixels to the left. All burn-in and DVB-Sub font settings must match.

            - **ShadowYOffset** *(integer) --* Specifies the vertical offset of the shadow relative
            to the captions in pixels. A value of -2 would result in a shadow offset 2 pixels above
            the text. All burn-in and DVB-Sub font settings must match.

            - **TeletextGridControl** *(string) --* Controls whether a fixed grid size will be used
            to generate the output subtitles bitmap. Only applicable for Teletext inputs and
            DVB-Sub/Burn-in outputs.

            - **XPosition** *(integer) --* Specifies the horizontal position of the caption relative
            to the left side of the output in pixels. A value of 10 would result in the captions
            starting 10 pixels from the left of the output. If no explicit xPosition is provided,
            the horizontal caption position will be determined by the alignment parameter. All
            burn-in and DVB-Sub font settings must match.

            - **YPosition** *(integer) --* Specifies the vertical position of the caption relative
            to the top of the output in pixels. A value of 10 would result in the captions starting
            10 pixels from the top of the output. If no explicit yPosition is provided, the caption
            will be positioned towards the bottom of the output. All burn-in and DVB-Sub font
            settings must match.

          - **DvbSubDestinationSettings** *(dict) --* Dvb Sub Destination Settings

            - **Alignment** *(string) --* If no explicit xPosition or yPosition is provided, setting
            alignment to centered will place the captions at the bottom center of the output.
            Similarly, setting a left alignment will align captions to the bottom left of the
            output. If x and y positions are given in conjunction with the alignment parameter, the
            font will be justified (either left or centered) relative to those coordinates.
            Selecting "smart" justification will left-justify live subtitles and center-justify
            pre-recorded subtitles. This option is not valid for source captions that are STL or
            608/embedded. These source settings are already pre-defined by the caption stream. All
            burn-in and DVB-Sub font settings must match.

            - **BackgroundColor** *(string) --* Specifies the color of the rectangle behind the
            captions. All burn-in and DVB-Sub font settings must match.

            - **BackgroundOpacity** *(integer) --* Specifies the opacity of the background
            rectangle. 255 is opaque; 0 is transparent. Leaving this parameter blank is equivalent
            to setting it to 0 (transparent). All burn-in and DVB-Sub font settings must match.

            - **Font** *(dict) --* External font file used for caption burn-in. File extension must
            be 'ttf' or 'tte'. Although the user can select output fonts for many different types of
            input captions, embedded, STL and teletext sources use a strict grid system. Using
            external fonts with these caption sources could cause unexpected display of proportional
            fonts. All burn-in and DVB-Sub font settings must match.

              - **PasswordParam** *(string) --* key used to extract the password from EC2 Parameter
              store

              - **Uri** *(string) --* Uniform Resource Identifier - This should be a path to a file
              accessible to the Live system (eg. a http:// URI) depending on the output type. For
              example, a RTMP destination should have a uri simliar to: "rtmp://fmsserver/live".

              - **Username** *(string) --* Documentation update needed

            - **FontColor** *(string) --* Specifies the color of the burned-in captions. This option
            is not valid for source captions that are STL, 608/embedded or teletext. These source
            settings are already pre-defined by the caption stream. All burn-in and DVB-Sub font
            settings must match.

            - **FontOpacity** *(integer) --* Specifies the opacity of the burned-in captions. 255 is
            opaque; 0 is transparent. All burn-in and DVB-Sub font settings must match.

            - **FontResolution** *(integer) --* Font resolution in DPI (dots per inch); default is
            96 dpi. All burn-in and DVB-Sub font settings must match.

            - **FontSize** *(string) --* When set to auto fontSize will scale depending on the size
            of the output. Giving a positive integer will specify the exact font size in points. All
            burn-in and DVB-Sub font settings must match.

            - **OutlineColor** *(string) --* Specifies font outline color. This option is not valid
            for source captions that are either 608/embedded or teletext. These source settings are
            already pre-defined by the caption stream. All burn-in and DVB-Sub font settings must
            match.

            - **OutlineSize** *(integer) --* Specifies font outline size in pixels. This option is
            not valid for source captions that are either 608/embedded or teletext. These source
            settings are already pre-defined by the caption stream. All burn-in and DVB-Sub font
            settings must match.

            - **ShadowColor** *(string) --* Specifies the color of the shadow cast by the captions.
            All burn-in and DVB-Sub font settings must match.

            - **ShadowOpacity** *(integer) --* Specifies the opacity of the shadow. 255 is opaque; 0
            is transparent. Leaving this parameter blank is equivalent to setting it to 0
            (transparent). All burn-in and DVB-Sub font settings must match.

            - **ShadowXOffset** *(integer) --* Specifies the horizontal offset of the shadow
            relative to the captions in pixels. A value of -2 would result in a shadow offset 2
            pixels to the left. All burn-in and DVB-Sub font settings must match.

            - **ShadowYOffset** *(integer) --* Specifies the vertical offset of the shadow relative
            to the captions in pixels. A value of -2 would result in a shadow offset 2 pixels above
            the text. All burn-in and DVB-Sub font settings must match.

            - **TeletextGridControl** *(string) --* Controls whether a fixed grid size will be used
            to generate the output subtitles bitmap. Only applicable for Teletext inputs and
            DVB-Sub/Burn-in outputs.

            - **XPosition** *(integer) --* Specifies the horizontal position of the caption relative
            to the left side of the output in pixels. A value of 10 would result in the captions
            starting 10 pixels from the left of the output. If no explicit xPosition is provided,
            the horizontal caption position will be determined by the alignment parameter. This
            option is not valid for source captions that are STL, 608/embedded or teletext. These
            source settings are already pre-defined by the caption stream. All burn-in and DVB-Sub
            font settings must match.

            - **YPosition** *(integer) --* Specifies the vertical position of the caption relative
            to the top of the output in pixels. A value of 10 would result in the captions starting
            10 pixels from the top of the output. If no explicit yPosition is provided, the caption
            will be positioned towards the bottom of the output. This option is not valid for source
            captions that are STL, 608/embedded or teletext. These source settings are already
            pre-defined by the caption stream. All burn-in and DVB-Sub font settings must match.

          - **EmbeddedDestinationSettings** *(dict) --* Embedded Destination Settings

          - **EmbeddedPlusScte20DestinationSettings** *(dict) --* Embedded Plus Scte20 Destination
          Settings

          - **RtmpCaptionInfoDestinationSettings** *(dict) --* Rtmp Caption Info Destination
          Settings

          - **Scte20PlusEmbeddedDestinationSettings** *(dict) --* Scte20 Plus Embedded Destination
          Settings

          - **Scte27DestinationSettings** *(dict) --* Scte27 Destination Settings

          - **SmpteTtDestinationSettings** *(dict) --* Smpte Tt Destination Settings

          - **TeletextDestinationSettings** *(dict) --* Teletext Destination Settings

          - **TtmlDestinationSettings** *(dict) --* Ttml Destination Settings

            - **StyleControl** *(string) --* When set to passthrough, passes through style and
            position information from a TTML-like input source (TTML, SMPTE-TT, CFF-TT) to the
            CFF-TT output or TTML output.

          - **WebvttDestinationSettings** *(dict) --* Webvtt Destination Settings

        - **LanguageCode** *(string) --* ISO 639-2 three-digit code:
        http://www.loc.gov/standards/iso639-2/

        - **LanguageDescription** *(string) --* Human readable information to indicate captions
        available for players (eg. English, or Spanish).

        - **Name** *(string) --* Name of the caption description. Used to associate a caption
        description with an output. Names must be unique within an event.

    - **GlobalConfiguration** *(dict) --* Configuration settings that apply to the event as a whole.

      - **InitialAudioGain** *(integer) --* Value to set the initial audio gain for the Live Event.

      - **InputEndAction** *(string) --* Indicates the action to take when the current input
      completes (e.g. end-of-file). When switchAndLoopInputs is configured the encoder will restart
      at the beginning of the first input. When "none" is configured the encoder will transcode
      either black, a solid color, or a user specified slate images per the "Input Loss Behavior"
      configuration until the next input switch occurs (which is controlled through the Channel
      Schedule API).

      - **InputLossBehavior** *(dict) --* Settings for system actions when input is lost.

        - **BlackFrameMsec** *(integer) --* Documentation update needed

        - **InputLossImageColor** *(string) --* When input loss image type is "color" this field
        specifies the color to use. Value: 6 hex characters representing the values of RGB.

        - **InputLossImageSlate** *(dict) --* When input loss image type is "slate" these fields
        specify the parameters for accessing the slate.

          - **PasswordParam** *(string) --* key used to extract the password from EC2 Parameter
          store

          - **Uri** *(string) --* Uniform Resource Identifier - This should be a path to a file
          accessible to the Live system (eg. a http:// URI) depending on the output type. For
          example, a RTMP destination should have a uri simliar to: "rtmp://fmsserver/live".

          - **Username** *(string) --* Documentation update needed

        - **InputLossImageType** *(string) --* Indicates whether to substitute a solid color or a
        slate into the output after input loss exceeds blackFrameMsec.

        - **RepeatFrameMsec** *(integer) --* Documentation update needed

      - **OutputLockingMode** *(string) --* Indicates how MediaLive pipelines are synchronized.
      PIPELINELOCKING - MediaLive will attempt to synchronize the output of each pipeline to the
      other. EPOCHLOCKING - MediaLive will attempt to synchronize the output of each pipeline to the
      Unix epoch.

      - **OutputTimingSource** *(string) --* Indicates whether the rate of frames emitted by the
      Live encoder should be paced by its system clock (which optionally may be locked to another
      source via NTP) or should be locked to the clock of the source that is providing the input
      stream.

      - **SupportLowFramerateInputs** *(string) --* Adjusts video input buffer for streams with very
      low video framerates. This is commonly set to enabled for music channels with less than one
      video frame per second.

    - **NielsenConfiguration** *(dict) --* Nielsen configuration settings.

      - **DistributorId** *(string) --* Enter the Distributor ID assigned to your organization by
      Nielsen.

      - **NielsenPcmToId3Tagging** *(string) --* Enables Nielsen PCM to ID3 tagging

    - **OutputGroups** *(list) --* Placeholder documentation for __listOfOutputGroup

      - *(dict) --* Output groups for this Live Event. Output groups contain information about where
      streams should be distributed.

        - **Name** *(string) --* Custom output group name optionally defined by the user. Only
        letters, numbers, and the underscore character allowed; only 32 characters allowed.

        - **OutputGroupSettings** *(dict) --* Settings associated with the output group.

          - **ArchiveGroupSettings** *(dict) --* Archive Group Settings

            - **Destination** *(dict) --* A directory and base filename where archive files should
            be written.

              - **DestinationRefId** *(string) --* Placeholder documentation for __string

            - **RolloverInterval** *(integer) --* Number of seconds to write to archive file before
            closing and starting a new one.

          - **FrameCaptureGroupSettings** *(dict) --* Frame Capture Group Settings

            - **Destination** *(dict) --* The destination for the frame capture files. Either the
            URI for an Amazon S3 bucket and object, plus a file name prefix (for example,
            s3ssl://sportsDelivery/highlights/20180820/curling_) or the URI for a MediaStore
            container, plus a file name prefix (for example,
            mediastoressl://sportsDelivery/20180820/curling_). The final file names consist of the
            prefix from the destination field (for example, "curling_") + name modifier + the
            counter (5 digits, starting from 00001) + extension (which is always .jpg). For example,
            curlingLow.00001.jpg

              - **DestinationRefId** *(string) --* Placeholder documentation for __string

          - **HlsGroupSettings** *(dict) --* Hls Group Settings

            - **AdMarkers** *(list) --* Choose one or more ad marker types to pass SCTE35 signals
            through to this group of Apple HLS outputs.

              - *(string) --* Hls Ad Markers

            - **BaseUrlContent** *(string) --* A partial URI prefix that will be prepended to each
            output in the media .m3u8 file. Can be used if base manifest is delivered from a
            different URL than the main .m3u8 file.

            - **BaseUrlManifest** *(string) --* A partial URI prefix that will be prepended to each
            output in the media .m3u8 file. Can be used if base manifest is delivered from a
            different URL than the main .m3u8 file.

            - **CaptionLanguageMappings** *(list) --* Mapping of up to 4 caption channels to caption
            languages. Is only meaningful if captionLanguageSetting is set to "insert".

              - *(dict) --* Maps a caption channel to an ISO 693-2 language code
              (http://www.loc.gov/standards/iso639-2), with an optional description.

                - **CaptionChannel** *(integer) --* The closed caption channel being described by
                this CaptionLanguageMapping. Each channel mapping must have a unique channel number
                (maximum of 4)

                - **LanguageCode** *(string) --* Three character ISO 639-2 language code (see
                http://www.loc.gov/standards/iso639-2)

                - **LanguageDescription** *(string) --* Textual description of language

            - **CaptionLanguageSetting** *(string) --* Applies only to 608 Embedded output captions.
            insert: Include CLOSED-CAPTIONS lines in the manifest. Specify at least one language in
            the CC1 Language Code field. One CLOSED-CAPTION line is added for each Language Code you
            specify. Make sure to specify the languages in the order in which they appear in the
            original source (if the source is embedded format) or the order of the caption selectors
            (if the source is other than embedded). Otherwise, languages in the manifest will not
            match up properly with the output captions. none: Include CLOSED-CAPTIONS=
                NONE line in
            the manifest. omit: Omit any CLOSED-CAPTIONS line from the manifest.

            - **ClientCache** *(string) --* When set to "disabled", sets the #EXT-X-ALLOW-CACHE:no
            tag in the manifest, which prevents clients from saving media segments for later replay.

            - **CodecSpecification** *(string) --* Specification to use (RFC-6381 or the default
            RFC-4281) during m3u8 playlist generation.

            - **ConstantIv** *(string) --* For use with encryptionType. This is a 128-bit, 16-byte
            hex value represented by a 32-character text string. If ivSource is set to "explicit"
            then this parameter is required and is used as the IV for encryption.

            - **Destination** *(dict) --* A directory or HTTP destination for the HLS segments,
            manifest files, and encryption keys (if enabled).

              - **DestinationRefId** *(string) --* Placeholder documentation for __string

            - **DirectoryStructure** *(string) --* Place segments in subdirectories.

            - **EncryptionType** *(string) --* Encrypts the segments with the given encryption
            scheme. Exclude this parameter if no encryption is desired.

            - **HlsCdnSettings** *(dict) --* Parameters that control interactions with the CDN.

              - **HlsAkamaiSettings** *(dict) --* Hls Akamai Settings

                - **ConnectionRetryInterval** *(integer) --* Number of seconds to wait before
                retrying connection to the CDN if the connection is lost.

                - **FilecacheDuration** *(integer) --* Size in seconds of file cache for streaming
                outputs.

                - **HttpTransferMode** *(string) --* Specify whether or not to use chunked transfer
                encoding to Akamai. User should contact Akamai to enable this feature.

                - **NumRetries** *(integer) --* Number of retry attempts that will be made before
                the Live Event is put into an error state.

                - **RestartDelay** *(integer) --* If a streaming output fails, number of seconds to
                wait until a restart is initiated. A value of 0 means never restart.

                - **Salt** *(string) --* Salt for authenticated Akamai.

                - **Token** *(string) --* Token parameter for authenticated akamai. If not
                specified, _gda_ is used.

              - **HlsBasicPutSettings** *(dict) --* Hls Basic Put Settings

                - **ConnectionRetryInterval** *(integer) --* Number of seconds to wait before
                retrying connection to the CDN if the connection is lost.

                - **FilecacheDuration** *(integer) --* Size in seconds of file cache for streaming
                outputs.

                - **NumRetries** *(integer) --* Number of retry attempts that will be made before
                the Live Event is put into an error state.

                - **RestartDelay** *(integer) --* If a streaming output fails, number of seconds to
                wait until a restart is initiated. A value of 0 means never restart.

              - **HlsMediaStoreSettings** *(dict) --* Hls Media Store Settings

                - **ConnectionRetryInterval** *(integer) --* Number of seconds to wait before
                retrying connection to the CDN if the connection is lost.

                - **FilecacheDuration** *(integer) --* Size in seconds of file cache for streaming
                outputs.

                - **MediaStoreStorageClass** *(string) --* When set to temporal, output files are
                stored in non-persistent memory for faster reading and writing.

                - **NumRetries** *(integer) --* Number of retry attempts that will be made before
                the Live Event is put into an error state.

                - **RestartDelay** *(integer) --* If a streaming output fails, number of seconds to
                wait until a restart is initiated. A value of 0 means never restart.

              - **HlsWebdavSettings** *(dict) --* Hls Webdav Settings

                - **ConnectionRetryInterval** *(integer) --* Number of seconds to wait before
                retrying connection to the CDN if the connection is lost.

                - **FilecacheDuration** *(integer) --* Size in seconds of file cache for streaming
                outputs.

                - **HttpTransferMode** *(string) --* Specify whether or not to use chunked transfer
                encoding to WebDAV.

                - **NumRetries** *(integer) --* Number of retry attempts that will be made before
                the Live Event is put into an error state.

                - **RestartDelay** *(integer) --* If a streaming output fails, number of seconds to
                wait until a restart is initiated. A value of 0 means never restart.

            - **IFrameOnlyPlaylists** *(string) --* DISABLED: Do not create an I-frame-only
            manifest, but do create the master and media manifests (according to the Output
            Selection field). STANDARD: Create an I-frame-only manifest for each output that
            contains video, as well as the other manifests (according to the Output Selection
            field). The I-frame manifest contains a #EXT-X-I-FRAMES-ONLY tag to indicate it is
            I-frame only, and one or more #EXT-X-BYTERANGE entries identifying the I-frame position.
            For example, #EXT-X-BYTERANGE:160364@1461888"

            - **IndexNSegments** *(integer) --* Applies only if Mode field is LIVE. Specifies the
            maximum number of segments in the media manifest file. After this maximum, older
            segments are removed from the media manifest. This number must be less than or equal to
            the Keep Segments field.

            - **InputLossAction** *(string) --* Parameter that control output group behavior on
            input loss.

            - **IvInManifest** *(string) --* For use with encryptionType. The IV (Initialization
            Vector) is a 128-bit number used in conjunction with the key for encrypting blocks. If
            set to "include", IV is listed in the manifest, otherwise the IV is not in the manifest.

            - **IvSource** *(string) --* For use with encryptionType. The IV (Initialization Vector)
            is a 128-bit number used in conjunction with the key for encrypting blocks. If this
            setting is "followsSegmentNumber", it will cause the IV to change every segment (to
            match the segment number). If this is set to "explicit", you must enter a constantIv
            value.

            - **KeepSegments** *(integer) --* Applies only if Mode field is LIVE. Specifies the
            number of media segments (.ts files) to retain in the destination directory.

            - **KeyFormat** *(string) --* The value specifies how the key is represented in the
            resource identified by the URI. If parameter is absent, an implicit value of "identity"
            is used. A reverse DNS string can also be given.

            - **KeyFormatVersions** *(string) --* Either a single positive integer version value or
            a slash delimited list of version values (1/2/3).

            - **KeyProviderSettings** *(dict) --* The key provider settings.

              - **StaticKeySettings** *(dict) --* Static Key Settings

                - **KeyProviderServer** *(dict) --* The URL of the license server used for
                protecting content.

                  - **PasswordParam** *(string) --* key used to extract the password from EC2
                  Parameter store

                  - **Uri** *(string) --* Uniform Resource Identifier - This should be a path to a
                  file accessible to the Live system (eg. a http:// URI) depending on the output
                  type. For example, a RTMP destination should have a uri simliar to:
                  "rtmp://fmsserver/live".

                  - **Username** *(string) --* Documentation update needed

                - **StaticKeyValue** *(string) --* Static key value as a 32 character hexadecimal
                string.

            - **ManifestCompression** *(string) --* When set to gzip, compresses HLS playlist.

            - **ManifestDurationFormat** *(string) --* Indicates whether the output manifest should
            use floating point or integer values for segment duration.

            - **MinSegmentLength** *(integer) --* When set, minimumSegmentLength is enforced by
            looking ahead and back within the specified range for a nearby avail and extending the
            segment size if needed.

            - **Mode** *(string) --* If "vod", all segments are indexed and kept permanently in the
            destination and manifest. If "live", only the number segments specified in keepSegments
            and indexNSegments are kept; newer segments replace older segments, which may prevent
            players from rewinding all the way to the beginning of the event. VOD mode uses HLS
            EXT-X-PLAYLIST-TYPE of EVENT while the channel is running, converting it to a "VOD" type
            manifest on completion of the stream.

            - **OutputSelection** *(string) --* MANIFESTSANDSEGMENTS: Generates manifests (master
            manifest, if applicable, and media manifests) for this output group. SEGMENTSONLY: Does
            not generate any manifests for this output group.

            - **ProgramDateTime** *(string) --* Includes or excludes EXT-X-PROGRAM-DATE-TIME tag in
            .m3u8 manifest files. The value is calculated as follows: either the program date and
            time are initialized using the input timecode source, or the time is initialized using
            the input timecode source and the date is initialized using the timestampOffset.

            - **ProgramDateTimePeriod** *(integer) --* Period of insertion of
            EXT-X-PROGRAM-DATE-TIME entry, in seconds.

            - **RedundantManifest** *(string) --* ENABLED: The master manifest (.m3u8 file) for each
            pipeline includes information about both pipelines: first its own media files, then the
            media files of the other pipeline. This feature allows playout device that support stale
            manifest detection to switch from one manifest to the other, when the current manifest
            seems to be stale. There are still two destinations and two master manifests, but both
            master manifests reference the media files from both pipelines. DISABLED: The master
            manifest (.m3u8 file) for each pipeline includes information about its own pipeline
            only. For an HLS output group with MediaPackage as the destination, the DISABLED
            behavior is always followed. MediaPackage regenerates the manifests it serves to players
            so a redundant manifest from MediaLive is irrelevant.

            - **SegmentLength** *(integer) --* Length of MPEG-2 Transport Stream segments to create
            (in seconds). Note that segments will end on the next keyframe after this number of
            seconds, so actual segment length may be longer.

            - **SegmentationMode** *(string) --* useInputSegmentation has been deprecated. The
            configured segment size is always used.

            - **SegmentsPerSubdirectory** *(integer) --* Number of segments to write to a
            subdirectory before starting a new one. directoryStructure must be subdirectoryPerStream
            for this setting to have an effect.

            - **StreamInfResolution** *(string) --* Include or exclude RESOLUTION attribute for
            video in EXT-X-STREAM-INF tag of variant manifest.

            - **TimedMetadataId3Frame** *(string) --* Indicates ID3 frame that has the timecode.

            - **TimedMetadataId3Period** *(integer) --* Timed Metadata interval in seconds.

            - **TimestampDeltaMilliseconds** *(integer) --* Provides an extra millisecond delta
            offset to fine tune the timestamps.

            - **TsFileMode** *(string) --* SEGMENTEDFILES: Emit the program as segments - multiple
            .ts media files. SINGLEFILE: Applies only if Mode field is VOD. Emit the program as a
            single .ts media file. The media manifest includes #EXT-X-BYTERANGE tags to index
            segments for playback. A typical use for this value is when sending the output to AWS
            Elemental MediaConvert, which can accept only a single media file. Playback while the
            channel is running is not guaranteed due to HTTP server caching.

          - **MediaPackageGroupSettings** *(dict) --* Media Package Group Settings

            - **Destination** *(dict) --* MediaPackage channel destination.

              - **DestinationRefId** *(string) --* Placeholder documentation for __string

          - **MsSmoothGroupSettings** *(dict) --* Ms Smooth Group Settings

            - **AcquisitionPointId** *(string) --* The value of the "Acquisition Point Identity"
            element used in each message placed in the sparse track. Only enabled if sparseTrackType
            is not "none".

            - **AudioOnlyTimecodeControl** *(string) --* If set to passthrough for an audio-only MS
            Smooth output, the fragment absolute time will be set to the current timecode. This
            option does not write timecodes to the audio elementary stream.

            - **CertificateMode** *(string) --* If set to verifyAuthenticity, verify the https
            certificate chain to a trusted Certificate Authority (CA). This will cause https outputs
            to self-signed certificates to fail.

            - **ConnectionRetryInterval** *(integer) --* Number of seconds to wait before retrying
            connection to the IIS server if the connection is lost. Content will be cached during
            this time and the cache will be be delivered to the IIS server once the connection is
            re-established.

            - **Destination** *(dict) --* Smooth Streaming publish point on an IIS server. Elemental
            Live acts as a "Push" encoder to IIS.

              - **DestinationRefId** *(string) --* Placeholder documentation for __string

            - **EventId** *(string) --* MS Smooth event ID to be sent to the IIS server. Should only
            be specified if eventIdMode is set to useConfigured.

            - **EventIdMode** *(string) --* Specifies whether or not to send an event ID to the IIS
            server. If no event ID is sent and the same Live Event is used without changing the
            publishing point, clients might see cached video from the previous run. Options: -
            "useConfigured" - use the value provided in eventId - "useTimestamp" - generate and send
            an event ID based on the current timestamp - "noEventId" - do not send an event ID to
            the IIS server.

            - **EventStopBehavior** *(string) --* When set to sendEos, send EOS signal to IIS server
            when stopping the event

            - **FilecacheDuration** *(integer) --* Size in seconds of file cache for streaming
            outputs.

            - **FragmentLength** *(integer) --* Length of mp4 fragments to generate (in seconds).
            Fragment length must be compatible with GOP size and framerate.

            - **InputLossAction** *(string) --* Parameter that control output group behavior on
            input loss.

            - **NumRetries** *(integer) --* Number of retry attempts.

            - **RestartDelay** *(integer) --* Number of seconds before initiating a restart due to
            output failure, due to exhausting the numRetries on one segment, or exceeding
            filecacheDuration.

            - **SegmentationMode** *(string) --* useInputSegmentation has been deprecated. The
            configured segment size is always used.

            - **SendDelayMs** *(integer) --* Number of milliseconds to delay the output from the
            second pipeline.

            - **SparseTrackType** *(string) --* If set to scte35, use incoming SCTE-35 messages to
            generate a sparse track in this group of MS-Smooth outputs.

            - **StreamManifestBehavior** *(string) --* When set to send, send stream manifest so
            publishing point doesn't start until all streams start.

            - **TimestampOffset** *(string) --* Timestamp offset for the event. Only used if
            timestampOffsetMode is set to useConfiguredOffset.

            - **TimestampOffsetMode** *(string) --* Type of timestamp date offset to use. -
            useEventStartDate: Use the date the event was started as the offset -
            useConfiguredOffset: Use an explicitly configured date as the offset

          - **MultiplexGroupSettings** *(dict) --* Multiplex Group Settings

          - **RtmpGroupSettings** *(dict) --* Rtmp Group Settings

            - **AuthenticationScheme** *(string) --* Authentication scheme to use when connecting
            with CDN

            - **CacheFullBehavior** *(string) --* Controls behavior when content cache fills up. If
            remote origin server stalls the RTMP connection and does not accept content fast enough
            the 'Media Cache' will fill up. When the cache reaches the duration specified by
            cacheLength the cache will stop accepting new content. If set to disconnectImmediately,
            the RTMP output will force a disconnect. Clear the media cache, and reconnect after
            restartDelay seconds. If set to waitForServer, the RTMP output will wait up to 5 minutes
            to allow the origin server to begin accepting data again.

            - **CacheLength** *(integer) --* Cache length, in seconds, is used to calculate buffer
            size.

            - **CaptionData** *(string) --* Controls the types of data that passes to onCaptionInfo
            outputs. If set to 'all' then 608 and 708 carried DTVCC data will be passed. If set to
            'field1AndField2608' then DTVCC data will be stripped out, but 608 data from both fields
            will be passed. If set to 'field1608' then only the data carried in 608 from field 1
            video will be passed.

            - **InputLossAction** *(string) --* Controls the behavior of this RTMP group if input
            becomes unavailable. - emitOutput: Emit a slate until input returns. - pauseOutput: Stop
            transmitting data until input returns. This does not close the underlying RTMP
            connection.

            - **RestartDelay** *(integer) --* If a streaming output fails, number of seconds to wait
            until a restart is initiated. A value of 0 means never restart.

          - **UdpGroupSettings** *(dict) --* Udp Group Settings

            - **InputLossAction** *(string) --* Specifies behavior of last resort when input video
            is lost, and no more backup inputs are available. When dropTs is selected the entire
            transport stream will stop being emitted. When dropProgram is selected the program can
            be dropped from the transport stream (and replaced with null packets to meet the TS
            bitrate requirement). Or, when emitProgram is chosen the transport stream will continue
            to be produced normally with repeat frames, black frames, or slate frames substituted
            for the absent input video.

            - **TimedMetadataId3Frame** *(string) --* Indicates ID3 frame that has the timecode.

            - **TimedMetadataId3Period** *(integer) --* Timed Metadata interval in seconds.

        - **Outputs** *(list) --* Placeholder documentation for __listOfOutput

          - *(dict) --* Output settings. There can be multiple outputs within a group.

            - **AudioDescriptionNames** *(list) --* The names of the AudioDescriptions used as audio
            sources for this output.

              - *(string) --* Placeholder documentation for __string

            - **CaptionDescriptionNames** *(list) --* The names of the CaptionDescriptions used as
            caption sources for this output.

              - *(string) --* Placeholder documentation for __string

            - **OutputName** *(string) --* The name used to identify an output.

            - **OutputSettings** *(dict) --* Output type-specific settings.

              - **ArchiveOutputSettings** *(dict) --* Archive Output Settings

                - **ContainerSettings** *(dict) --* Settings specific to the container type of the
                file.

                  - **M2tsSettings** *(dict) --* M2ts Settings

                    - **AbsentInputAudioBehavior** *(string) --* When set to drop, output audio
                    streams will be removed from the program if the selected input audio stream is
                    removed from the input. This allows the output audio configuration to
                    dynamically change based on input configuration. If this is set to
                    encodeSilence, all output audio streams will output encoded silence when not
                    connected to an active input stream.

                    - **Arib** *(string) --* When set to enabled, uses ARIB-compliant field muxing
                    and removes video descriptor.

                    - **AribCaptionsPid** *(string) --* Packet Identifier (PID) for ARIB Captions in
                    the transport stream. Can be entered as a decimal or hexadecimal value. Valid
                    values are 32 (or 0x20)..8182 (or 0x1ff6).

                    - **AribCaptionsPidControl** *(string) --* If set to auto, pid number used for
                    ARIB Captions will be auto-selected from unused pids. If set to useConfigured,
                    ARIB Captions will be on the configured pid number.

                    - **AudioBufferModel** *(string) --* When set to dvb, uses DVB buffer model for
                    Dolby Digital audio. When set to atsc, the ATSC model is used.

                    - **AudioFramesPerPes** *(integer) --* The number of audio frames to insert for
                    each PES packet.

                    - **AudioPids** *(string) --* Packet Identifier (PID) of the elementary audio
                    stream(s) in the transport stream. Multiple values are accepted, and can be
                    entered in ranges and/or by comma separation. Can be entered as decimal or
                    hexadecimal values. Each PID specified must be in the range of 32 (or
                    0x20)..8182 (or 0x1ff6).

                    - **AudioStreamType** *(string) --* When set to atsc, uses stream type = 0x81
                    for AC3 and stream type =
                         0x87 for EAC3. When set to dvb, uses stream type =
                    0x06.

                    - **Bitrate** *(integer) --* The output bitrate of the transport stream in bits
                    per second. Setting to 0 lets the muxer automatically determine the appropriate
                    bitrate.

                    - **BufferModel** *(string) --* If set to multiplex, use multiplex buffer model
                    for accurate interleaving. Setting to bufferModel to none can lead to lower
                    latency, but low-memory devices may not be able to play back the stream without
                    interruptions.

                    - **CcDescriptor** *(string) --* When set to enabled, generates
                    captionServiceDescriptor in PMT.

                    - **DvbNitSettings** *(dict) --* Inserts DVB Network Information Table (NIT) at
                    the specified table repetition interval.

                      - **NetworkId** *(integer) --* The numeric value placed in the Network
                      Information Table (NIT).

                      - **NetworkName** *(string) --* The network name text placed in the
                      networkNameDescriptor inside the Network Information Table. Maximum length is
                      256 characters.

                      - **RepInterval** *(integer) --* The number of milliseconds between instances
                      of this table in the output transport stream.

                    - **DvbSdtSettings** *(dict) --* Inserts DVB Service Description Table (SDT) at
                    the specified table repetition interval.

                      - **OutputSdt** *(string) --* Selects method of inserting SDT information into
                      output stream. The sdtFollow setting copies SDT information from input stream
                      to output stream. The sdtFollowIfPresent setting copies SDT information from
                      input stream to output stream if SDT information is present in the input,
                      otherwise it will fall back on the user-defined values. The sdtManual setting
                      means user will enter the SDT information. The sdtNone setting means output
                      stream will not contain SDT information.

                      - **RepInterval** *(integer) --* The number of milliseconds between instances
                      of this table in the output transport stream.

                      - **ServiceName** *(string) --* The service name placed in the
                      serviceDescriptor in the Service Description Table. Maximum length is 256
                      characters.

                      - **ServiceProviderName** *(string) --* The service provider name placed in
                      the serviceDescriptor in the Service Description Table. Maximum length is 256
                      characters.

                    - **DvbSubPids** *(string) --* Packet Identifier (PID) for input source DVB
                    Subtitle data to this output. Multiple values are accepted, and can be entered
                    in ranges and/or by comma separation. Can be entered as decimal or hexadecimal
                    values. Each PID specified must be in the range of 32 (or 0x20)..8182 (or
                    0x1ff6).

                    - **DvbTdtSettings** *(dict) --* Inserts DVB Time and Date Table (TDT) at the
                    specified table repetition interval.

                      - **RepInterval** *(integer) --* The number of milliseconds between instances
                      of this table in the output transport stream.

                    - **DvbTeletextPid** *(string) --* Packet Identifier (PID) for input source DVB
                    Teletext data to this output. Can be entered as a decimal or hexadecimal value.
                    Valid values are 32 (or 0x20)..8182 (or 0x1ff6).

                    - **Ebif** *(string) --* If set to passthrough, passes any EBIF data from the
                    input source to this output.

                    - **EbpAudioInterval** *(string) --* When videoAndFixedIntervals is selected,
                    audio EBP markers will be added to partitions 3 and 4. The interval between
                    these additional markers will be fixed, and will be slightly shorter than the
                    video EBP marker interval. Only available when EBP Cablelabs segmentation
                    markers are selected. Partitions 1 and 2 will always follow the video interval.

                    - **EbpLookaheadMs** *(integer) --* When set, enforces that Encoder Boundary
                    Points do not come within the specified time interval of each other by looking
                    ahead at input video. If another EBP is going to come in within the specified
                    time interval, the current EBP is not emitted, and the segment is "stretched" to
                    the next marker. The lookahead value does not add latency to the system. The
                    Live Event must be configured elsewhere to create sufficient latency to make the
                    lookahead accurate.

                    - **EbpPlacement** *(string) --* Controls placement of EBP on Audio PIDs. If set
                    to videoAndAudioPids, EBP markers will be placed on the video PID and all audio
                    PIDs. If set to videoPid, EBP markers will be placed on only the video PID.

                    - **EcmPid** *(string) --* This field is unused and deprecated.

                    - **EsRateInPes** *(string) --* Include or exclude the ES Rate field in the PES
                    header.

                    - **EtvPlatformPid** *(string) --* Packet Identifier (PID) for input source ETV
                    Platform data to this output. Can be entered as a decimal or hexadecimal value.
                    Valid values are 32 (or 0x20)..8182 (or 0x1ff6).

                    - **EtvSignalPid** *(string) --* Packet Identifier (PID) for input source ETV
                    Signal data to this output. Can be entered as a decimal or hexadecimal value.
                    Valid values are 32 (or 0x20)..8182 (or 0x1ff6).

                    - **FragmentTime** *(float) --* The length in seconds of each fragment. Only
                    used with EBP markers.

                    - **Klv** *(string) --* If set to passthrough, passes any KLV data from the
                    input source to this output.

                    - **KlvDataPids** *(string) --* Packet Identifier (PID) for input source KLV
                    data to this output. Multiple values are accepted, and can be entered in ranges
                    and/or by comma separation. Can be entered as decimal or hexadecimal values.
                    Each PID specified must be in the range of 32 (or 0x20)..8182 (or 0x1ff6).

                    - **NielsenId3Behavior** *(string) --* If set to passthrough, Nielsen inaudible
                    tones for media tracking will be detected in the input audio and an equivalent
                    ID3 tag will be inserted in the output.

                    - **NullPacketBitrate** *(float) --* Value in bits per second of extra null
                    packets to insert into the transport stream. This can be used if a downstream
                    encryption system requires periodic null packets.

                    - **PatInterval** *(integer) --* The number of milliseconds between instances of
                    this table in the output transport stream. Valid values are 0, 10..1000.

                    - **PcrControl** *(string) --* When set to pcrEveryPesPacket, a Program Clock
                    Reference value is inserted for every Packetized Elementary Stream (PES) header.
                    This parameter is effective only when the PCR PID is the same as the video or
                    audio elementary stream.

                    - **PcrPeriod** *(integer) --* Maximum time in milliseconds between Program
                    Clock Reference (PCRs) inserted into the transport stream.

                    - **PcrPid** *(string) --* Packet Identifier (PID) of the Program Clock
                    Reference (PCR) in the transport stream. When no value is given, the encoder
                    will assign the same value as the Video PID. Can be entered as a decimal or
                    hexadecimal value. Valid values are 32 (or 0x20)..8182 (or 0x1ff6).

                    - **PmtInterval** *(integer) --* The number of milliseconds between instances of
                    this table in the output transport stream. Valid values are 0, 10..1000.

                    - **PmtPid** *(string) --* Packet Identifier (PID) for the Program Map Table
                    (PMT) in the transport stream. Can be entered as a decimal or hexadecimal value.
                    Valid values are 32 (or 0x20)..8182 (or 0x1ff6).

                    - **ProgramNum** *(integer) --* The value of the program number field in the
                    Program Map Table.

                    - **RateMode** *(string) --* When vbr, does not insert null packets into
                    transport stream to fill specified bitrate. The bitrate setting acts as the
                    maximum bitrate when vbr is set.

                    - **Scte27Pids** *(string) --* Packet Identifier (PID) for input source SCTE-27
                    data to this output. Multiple values are accepted, and can be entered in ranges
                    and/or by comma separation. Can be entered as decimal or hexadecimal values.
                    Each PID specified must be in the range of 32 (or 0x20)..8182 (or 0x1ff6).

                    - **Scte35Control** *(string) --* Optionally pass SCTE-35 signals from the input
                    source to this output.

                    - **Scte35Pid** *(string) --* Packet Identifier (PID) of the SCTE-35 stream in
                    the transport stream. Can be entered as a decimal or hexadecimal value. Valid
                    values are 32 (or 0x20)..8182 (or 0x1ff6).

                    - **SegmentationMarkers** *(string) --* Inserts segmentation markers at each
                    segmentationTime period. raiSegstart sets the Random Access Indicator bit in the
                    adaptation field. raiAdapt sets the RAI bit and adds the current timecode in the
                    private data bytes. psiSegstart inserts PAT and PMT tables at the start of
                    segments. ebp adds Encoder Boundary Point information to the adaptation field as
                    per OpenCable specification OC-SP-EBP-I01-130118. ebpLegacy adds Encoder
                    Boundary Point information to the adaptation field using a legacy proprietary
                    format.

                    - **SegmentationStyle** *(string) --* The segmentation style parameter controls
                    how segmentation markers are inserted into the transport stream. With avails, it
                    is possible that segments may be truncated, which can influence where future
                    segmentation markers are inserted. When a segmentation style of "resetCadence"
                    is selected and a segment is truncated due to an avail, we will reset the
                    segmentation cadence. This means the subsequent segment will have a duration of
                    $segmentationTime seconds. When a segmentation style of "maintainCadence" is
                    selected and a segment is truncated due to an avail, we will not reset the
                    segmentation cadence. This means the subsequent segment will likely be truncated
                    as well. However, all segments after that will have a duration of
                    $segmentationTime seconds. Note that EBP lookahead is a slight exception to this
                    rule.

                    - **SegmentationTime** *(float) --* The length in seconds of each segment.
                    Required unless markers is set to None_.

                    - **TimedMetadataBehavior** *(string) --* When set to passthrough, timed
                    metadata will be passed through from input to output.

                    - **TimedMetadataPid** *(string) --* Packet Identifier (PID) of the timed
                    metadata stream in the transport stream. Can be entered as a decimal or
                    hexadecimal value. Valid values are 32 (or 0x20)..8182 (or 0x1ff6).

                    - **TransportStreamId** *(integer) --* The value of the transport stream ID
                    field in the Program Map Table.

                    - **VideoPid** *(string) --* Packet Identifier (PID) of the elementary video
                    stream in the transport stream. Can be entered as a decimal or hexadecimal
                    value. Valid values are 32 (or 0x20)..8182 (or 0x1ff6).

                - **Extension** *(string) --* Output file extension. If excluded, this will be
                auto-selected from the container type.

                - **NameModifier** *(string) --* String concatenated to the end of the destination
                filename. Required for multiple outputs of the same type.

              - **FrameCaptureOutputSettings** *(dict) --* Frame Capture Output Settings

                - **NameModifier** *(string) --* Required if the output group contains more than one
                output. This modifier forms part of the output file name.

              - **HlsOutputSettings** *(dict) --* Hls Output Settings

                - **HlsSettings** *(dict) --* Settings regarding the underlying stream. These
                settings are different for audio-only outputs.

                  - **AudioOnlyHlsSettings** *(dict) --* Audio Only Hls Settings

                    - **AudioGroupId** *(string) --* Specifies the group to which the audio
                    Rendition belongs.

                    - **AudioOnlyImage** *(dict) --* Optional. Specifies the .jpg or .png image to
                    use as the cover art for an audio-only output. We recommend a low bit-size file
                    because the image increases the output audio bandwidth. The image is attached to
                    the audio as an ID3 tag, frame type APIC, picture type 0x10, as per the "ID3 tag
                    version 2.4.0 - Native Frames" standard.

                      - **PasswordParam** *(string) --* key used to extract the password from EC2
                      Parameter store

                      - **Uri** *(string) --* Uniform Resource Identifier - This should be a path to
                      a file accessible to the Live system (eg. a http:// URI) depending on the
                      output type. For example, a RTMP destination should have a uri simliar to:
                      "rtmp://fmsserver/live".

                      - **Username** *(string) --* Documentation update needed

                    - **AudioTrackType** *(string) --* Four types of audio-only tracks are
                    supported: Audio-Only Variant Stream The client can play back this audio-only
                    stream instead of video in low-bandwidth scenarios. Represented as an
                    EXT-X-STREAM-INF in the HLS manifest. Alternate Audio, Auto Select, Default
                    Alternate rendition that the client should try to play back by default.
                    Represented as an EXT-X-MEDIA in the HLS manifest with DEFAULT=
                        YES,
                    AUTOSELECT=
                        YES Alternate Audio, Auto Select, Not Default Alternate rendition
                    that the client may try to play back by default. Represented as an EXT-X-MEDIA
                    in the HLS manifest with DEFAULT=NO, AUTOSELECT=
                        YES Alternate Audio, not Auto
                    Select Alternate rendition that the client will not try to play back by default.
                    Represented as an EXT-X-MEDIA in the HLS manifest with DEFAULT=
                        NO, AUTOSELECT=NO

                  - **StandardHlsSettings** *(dict) --* Standard Hls Settings

                    - **AudioRenditionSets** *(string) --* List all the audio groups that are used
                    with the video output stream. Input all the audio GROUP-IDs that are associated
                    to the video, separate by ','.

                    - **M3u8Settings** *(dict) --* Settings information for the .m3u8 container

                      - **AudioFramesPerPes** *(integer) --* The number of audio frames to insert
                      for each PES packet.

                      - **AudioPids** *(string) --* Packet Identifier (PID) of the elementary audio
                      stream(s) in the transport stream. Multiple values are accepted, and can be
                      entered in ranges and/or by comma separation. Can be entered as decimal or
                      hexadecimal values.

                      - **EcmPid** *(string) --* This parameter is unused and deprecated.

                      - **NielsenId3Behavior** *(string) --* If set to passthrough, Nielsen
                      inaudible tones for media tracking will be detected in the input audio and an
                      equivalent ID3 tag will be inserted in the output.

                      - **PatInterval** *(integer) --* The number of milliseconds between instances
                      of this table in the output transport stream. A value of \\"0\\" writes out
                      the PMT once per segment file.

                      - **PcrControl** *(string) --* When set to pcrEveryPesPacket, a Program Clock
                      Reference value is inserted for every Packetized Elementary Stream (PES)
                      header. This parameter is effective only when the PCR PID is the same as the
                      video or audio elementary stream.

                      - **PcrPeriod** *(integer) --* Maximum time in milliseconds between Program
                      Clock References (PCRs) inserted into the transport stream.

                      - **PcrPid** *(string) --* Packet Identifier (PID) of the Program Clock
                      Reference (PCR) in the transport stream. When no value is given, the encoder
                      will assign the same value as the Video PID. Can be entered as a decimal or
                      hexadecimal value.

                      - **PmtInterval** *(integer) --* The number of milliseconds between instances
                      of this table in the output transport stream. A value of \\"0\\" writes out
                      the PMT once per segment file.

                      - **PmtPid** *(string) --* Packet Identifier (PID) for the Program Map Table
                      (PMT) in the transport stream. Can be entered as a decimal or hexadecimal
                      value.

                      - **ProgramNum** *(integer) --* The value of the program number field in the
                      Program Map Table.

                      - **Scte35Behavior** *(string) --* If set to passthrough, passes any SCTE-35
                      signals from the input source to this output.

                      - **Scte35Pid** *(string) --* Packet Identifier (PID) of the SCTE-35 stream in
                      the transport stream. Can be entered as a decimal or hexadecimal value.

                      - **TimedMetadataBehavior** *(string) --* When set to passthrough, timed
                      metadata is passed through from input to output.

                      - **TimedMetadataPid** *(string) --* Packet Identifier (PID) of the timed
                      metadata stream in the transport stream. Can be entered as a decimal or
                      hexadecimal value. Valid values are 32 (or 0x20)..8182 (or 0x1ff6).

                      - **TransportStreamId** *(integer) --* The value of the transport stream ID
                      field in the Program Map Table.

                      - **VideoPid** *(string) --* Packet Identifier (PID) of the elementary video
                      stream in the transport stream. Can be entered as a decimal or hexadecimal
                      value.

                - **NameModifier** *(string) --* String concatenated to the end of the destination
                filename. Accepts \\"Format Identifiers\\":#formatIdentifierParameters.

                - **SegmentModifier** *(string) --* String concatenated to end of segment filenames.

              - **MediaPackageOutputSettings** *(dict) --* Media Package Output Settings

              - **MsSmoothOutputSettings** *(dict) --* Ms Smooth Output Settings

                - **H265PackagingType** *(string) --* Only applicable when this output is
                referencing an H.265 video description. Specifies whether MP4 segments should be
                packaged as HEV1 or HVC1.

                - **NameModifier** *(string) --* String concatenated to the end of the destination
                filename. Required for multiple outputs of the same type.

              - **MultiplexOutputSettings** *(dict) --* Multiplex Output Settings

                - **Destination** *(dict) --* Destination is a Multiplex.

                  - **DestinationRefId** *(string) --* Placeholder documentation for __string

              - **RtmpOutputSettings** *(dict) --* Rtmp Output Settings

                - **CertificateMode** *(string) --* If set to verifyAuthenticity, verify the tls
                certificate chain to a trusted Certificate Authority (CA). This will cause rtmps
                outputs with self-signed certificates to fail.

                - **ConnectionRetryInterval** *(integer) --* Number of seconds to wait before
                retrying a connection to the Flash Media server if the connection is lost.

                - **Destination** *(dict) --* The RTMP endpoint excluding the stream name (eg.
                rtmp://host/appname). For connection to Akamai, a username and password must be
                supplied. URI fields accept format identifiers.

                  - **DestinationRefId** *(string) --* Placeholder documentation for __string

                - **NumRetries** *(integer) --* Number of retry attempts.

              - **UdpOutputSettings** *(dict) --* Udp Output Settings

                - **BufferMsec** *(integer) --* UDP output buffering in milliseconds. Larger values
                increase latency through the transcoder but simultaneously assist the transcoder in
                maintaining a constant, low-jitter UDP/RTP output while accommodating clock
                recovery, input switching, input disruptions, picture reordering, etc.

                - **ContainerSettings** *(dict) --* Udp Container Settings

                  - **M2tsSettings** *(dict) --* M2ts Settings

                    - **AbsentInputAudioBehavior** *(string) --* When set to drop, output audio
                    streams will be removed from the program if the selected input audio stream is
                    removed from the input. This allows the output audio configuration to
                    dynamically change based on input configuration. If this is set to
                    encodeSilence, all output audio streams will output encoded silence when not
                    connected to an active input stream.

                    - **Arib** *(string) --* When set to enabled, uses ARIB-compliant field muxing
                    and removes video descriptor.

                    - **AribCaptionsPid** *(string) --* Packet Identifier (PID) for ARIB Captions in
                    the transport stream. Can be entered as a decimal or hexadecimal value. Valid
                    values are 32 (or 0x20)..8182 (or 0x1ff6).

                    - **AribCaptionsPidControl** *(string) --* If set to auto, pid number used for
                    ARIB Captions will be auto-selected from unused pids. If set to useConfigured,
                    ARIB Captions will be on the configured pid number.

                    - **AudioBufferModel** *(string) --* When set to dvb, uses DVB buffer model for
                    Dolby Digital audio. When set to atsc, the ATSC model is used.

                    - **AudioFramesPerPes** *(integer) --* The number of audio frames to insert for
                    each PES packet.

                    - **AudioPids** *(string) --* Packet Identifier (PID) of the elementary audio
                    stream(s) in the transport stream. Multiple values are accepted, and can be
                    entered in ranges and/or by comma separation. Can be entered as decimal or
                    hexadecimal values. Each PID specified must be in the range of 32 (or
                    0x20)..8182 (or 0x1ff6).

                    - **AudioStreamType** *(string) --* When set to atsc, uses stream type = 0x81
                    for AC3 and stream type =
                         0x87 for EAC3. When set to dvb, uses stream type =
                    0x06.

                    - **Bitrate** *(integer) --* The output bitrate of the transport stream in bits
                    per second. Setting to 0 lets the muxer automatically determine the appropriate
                    bitrate.

                    - **BufferModel** *(string) --* If set to multiplex, use multiplex buffer model
                    for accurate interleaving. Setting to bufferModel to none can lead to lower
                    latency, but low-memory devices may not be able to play back the stream without
                    interruptions.

                    - **CcDescriptor** *(string) --* When set to enabled, generates
                    captionServiceDescriptor in PMT.

                    - **DvbNitSettings** *(dict) --* Inserts DVB Network Information Table (NIT) at
                    the specified table repetition interval.

                      - **NetworkId** *(integer) --* The numeric value placed in the Network
                      Information Table (NIT).

                      - **NetworkName** *(string) --* The network name text placed in the
                      networkNameDescriptor inside the Network Information Table. Maximum length is
                      256 characters.

                      - **RepInterval** *(integer) --* The number of milliseconds between instances
                      of this table in the output transport stream.

                    - **DvbSdtSettings** *(dict) --* Inserts DVB Service Description Table (SDT) at
                    the specified table repetition interval.

                      - **OutputSdt** *(string) --* Selects method of inserting SDT information into
                      output stream. The sdtFollow setting copies SDT information from input stream
                      to output stream. The sdtFollowIfPresent setting copies SDT information from
                      input stream to output stream if SDT information is present in the input,
                      otherwise it will fall back on the user-defined values. The sdtManual setting
                      means user will enter the SDT information. The sdtNone setting means output
                      stream will not contain SDT information.

                      - **RepInterval** *(integer) --* The number of milliseconds between instances
                      of this table in the output transport stream.

                      - **ServiceName** *(string) --* The service name placed in the
                      serviceDescriptor in the Service Description Table. Maximum length is 256
                      characters.

                      - **ServiceProviderName** *(string) --* The service provider name placed in
                      the serviceDescriptor in the Service Description Table. Maximum length is 256
                      characters.

                    - **DvbSubPids** *(string) --* Packet Identifier (PID) for input source DVB
                    Subtitle data to this output. Multiple values are accepted, and can be entered
                    in ranges and/or by comma separation. Can be entered as decimal or hexadecimal
                    values. Each PID specified must be in the range of 32 (or 0x20)..8182 (or
                    0x1ff6).

                    - **DvbTdtSettings** *(dict) --* Inserts DVB Time and Date Table (TDT) at the
                    specified table repetition interval.

                      - **RepInterval** *(integer) --* The number of milliseconds between instances
                      of this table in the output transport stream.

                    - **DvbTeletextPid** *(string) --* Packet Identifier (PID) for input source DVB
                    Teletext data to this output. Can be entered as a decimal or hexadecimal value.
                    Valid values are 32 (or 0x20)..8182 (or 0x1ff6).

                    - **Ebif** *(string) --* If set to passthrough, passes any EBIF data from the
                    input source to this output.

                    - **EbpAudioInterval** *(string) --* When videoAndFixedIntervals is selected,
                    audio EBP markers will be added to partitions 3 and 4. The interval between
                    these additional markers will be fixed, and will be slightly shorter than the
                    video EBP marker interval. Only available when EBP Cablelabs segmentation
                    markers are selected. Partitions 1 and 2 will always follow the video interval.

                    - **EbpLookaheadMs** *(integer) --* When set, enforces that Encoder Boundary
                    Points do not come within the specified time interval of each other by looking
                    ahead at input video. If another EBP is going to come in within the specified
                    time interval, the current EBP is not emitted, and the segment is "stretched" to
                    the next marker. The lookahead value does not add latency to the system. The
                    Live Event must be configured elsewhere to create sufficient latency to make the
                    lookahead accurate.

                    - **EbpPlacement** *(string) --* Controls placement of EBP on Audio PIDs. If set
                    to videoAndAudioPids, EBP markers will be placed on the video PID and all audio
                    PIDs. If set to videoPid, EBP markers will be placed on only the video PID.

                    - **EcmPid** *(string) --* This field is unused and deprecated.

                    - **EsRateInPes** *(string) --* Include or exclude the ES Rate field in the PES
                    header.

                    - **EtvPlatformPid** *(string) --* Packet Identifier (PID) for input source ETV
                    Platform data to this output. Can be entered as a decimal or hexadecimal value.
                    Valid values are 32 (or 0x20)..8182 (or 0x1ff6).

                    - **EtvSignalPid** *(string) --* Packet Identifier (PID) for input source ETV
                    Signal data to this output. Can be entered as a decimal or hexadecimal value.
                    Valid values are 32 (or 0x20)..8182 (or 0x1ff6).

                    - **FragmentTime** *(float) --* The length in seconds of each fragment. Only
                    used with EBP markers.

                    - **Klv** *(string) --* If set to passthrough, passes any KLV data from the
                    input source to this output.

                    - **KlvDataPids** *(string) --* Packet Identifier (PID) for input source KLV
                    data to this output. Multiple values are accepted, and can be entered in ranges
                    and/or by comma separation. Can be entered as decimal or hexadecimal values.
                    Each PID specified must be in the range of 32 (or 0x20)..8182 (or 0x1ff6).

                    - **NielsenId3Behavior** *(string) --* If set to passthrough, Nielsen inaudible
                    tones for media tracking will be detected in the input audio and an equivalent
                    ID3 tag will be inserted in the output.

                    - **NullPacketBitrate** *(float) --* Value in bits per second of extra null
                    packets to insert into the transport stream. This can be used if a downstream
                    encryption system requires periodic null packets.

                    - **PatInterval** *(integer) --* The number of milliseconds between instances of
                    this table in the output transport stream. Valid values are 0, 10..1000.

                    - **PcrControl** *(string) --* When set to pcrEveryPesPacket, a Program Clock
                    Reference value is inserted for every Packetized Elementary Stream (PES) header.
                    This parameter is effective only when the PCR PID is the same as the video or
                    audio elementary stream.

                    - **PcrPeriod** *(integer) --* Maximum time in milliseconds between Program
                    Clock Reference (PCRs) inserted into the transport stream.

                    - **PcrPid** *(string) --* Packet Identifier (PID) of the Program Clock
                    Reference (PCR) in the transport stream. When no value is given, the encoder
                    will assign the same value as the Video PID. Can be entered as a decimal or
                    hexadecimal value. Valid values are 32 (or 0x20)..8182 (or 0x1ff6).

                    - **PmtInterval** *(integer) --* The number of milliseconds between instances of
                    this table in the output transport stream. Valid values are 0, 10..1000.

                    - **PmtPid** *(string) --* Packet Identifier (PID) for the Program Map Table
                    (PMT) in the transport stream. Can be entered as a decimal or hexadecimal value.
                    Valid values are 32 (or 0x20)..8182 (or 0x1ff6).

                    - **ProgramNum** *(integer) --* The value of the program number field in the
                    Program Map Table.

                    - **RateMode** *(string) --* When vbr, does not insert null packets into
                    transport stream to fill specified bitrate. The bitrate setting acts as the
                    maximum bitrate when vbr is set.

                    - **Scte27Pids** *(string) --* Packet Identifier (PID) for input source SCTE-27
                    data to this output. Multiple values are accepted, and can be entered in ranges
                    and/or by comma separation. Can be entered as decimal or hexadecimal values.
                    Each PID specified must be in the range of 32 (or 0x20)..8182 (or 0x1ff6).

                    - **Scte35Control** *(string) --* Optionally pass SCTE-35 signals from the input
                    source to this output.

                    - **Scte35Pid** *(string) --* Packet Identifier (PID) of the SCTE-35 stream in
                    the transport stream. Can be entered as a decimal or hexadecimal value. Valid
                    values are 32 (or 0x20)..8182 (or 0x1ff6).

                    - **SegmentationMarkers** *(string) --* Inserts segmentation markers at each
                    segmentationTime period. raiSegstart sets the Random Access Indicator bit in the
                    adaptation field. raiAdapt sets the RAI bit and adds the current timecode in the
                    private data bytes. psiSegstart inserts PAT and PMT tables at the start of
                    segments. ebp adds Encoder Boundary Point information to the adaptation field as
                    per OpenCable specification OC-SP-EBP-I01-130118. ebpLegacy adds Encoder
                    Boundary Point information to the adaptation field using a legacy proprietary
                    format.

                    - **SegmentationStyle** *(string) --* The segmentation style parameter controls
                    how segmentation markers are inserted into the transport stream. With avails, it
                    is possible that segments may be truncated, which can influence where future
                    segmentation markers are inserted. When a segmentation style of "resetCadence"
                    is selected and a segment is truncated due to an avail, we will reset the
                    segmentation cadence. This means the subsequent segment will have a duration of
                    $segmentationTime seconds. When a segmentation style of "maintainCadence" is
                    selected and a segment is truncated due to an avail, we will not reset the
                    segmentation cadence. This means the subsequent segment will likely be truncated
                    as well. However, all segments after that will have a duration of
                    $segmentationTime seconds. Note that EBP lookahead is a slight exception to this
                    rule.

                    - **SegmentationTime** *(float) --* The length in seconds of each segment.
                    Required unless markers is set to None_.

                    - **TimedMetadataBehavior** *(string) --* When set to passthrough, timed
                    metadata will be passed through from input to output.

                    - **TimedMetadataPid** *(string) --* Packet Identifier (PID) of the timed
                    metadata stream in the transport stream. Can be entered as a decimal or
                    hexadecimal value. Valid values are 32 (or 0x20)..8182 (or 0x1ff6).

                    - **TransportStreamId** *(integer) --* The value of the transport stream ID
                    field in the Program Map Table.

                    - **VideoPid** *(string) --* Packet Identifier (PID) of the elementary video
                    stream in the transport stream. Can be entered as a decimal or hexadecimal
                    value. Valid values are 32 (or 0x20)..8182 (or 0x1ff6).

                - **Destination** *(dict) --* Destination address and port number for RTP or UDP
                packets. Can be unicast or multicast RTP or UDP (eg. rtp://239.10.10.10:5001 or
                udp://10.100.100.100:5002).

                  - **DestinationRefId** *(string) --* Placeholder documentation for __string

                - **FecOutputSettings** *(dict) --* Settings for enabling and adjusting Forward
                Error Correction on UDP outputs.

                  - **ColumnDepth** *(integer) --* Parameter D from SMPTE 2022-1. The height of the
                  FEC protection matrix. The number of transport stream packets per column error
                  correction packet. Must be between 4 and 20, inclusive.

                  - **IncludeFec** *(string) --* Enables column only or column and row based FEC

                  - **RowLength** *(integer) --* Parameter L from SMPTE 2022-1. The width of the FEC
                  protection matrix. Must be between 1 and 20, inclusive. If only Column FEC is
                  used, then larger values increase robustness. If Row FEC is used, then this is the
                  number of transport stream packets per row error correction packet, and the value
                  must be between 4 and 20, inclusive, if includeFec is columnAndRow. If includeFec
                  is column, this value must be 1 to 20, inclusive.

            - **VideoDescriptionName** *(string) --* The name of the VideoDescription used as the
            source for this output.

    - **TimecodeConfig** *(dict) --* Contains settings used to acquire and adjust timecode
    information from inputs.

      - **Source** *(string) --* Identifies the source for the timecode that will be associated with
      the events outputs. -Embedded (embedded): Initialize the output timecode with timecode from
      the the source. If no embedded timecode is detected in the source, the system falls back to
      using "Start at 0" (zerobased). -System Clock (systemclock): Use the UTC time. -Start at 0
      (zerobased): The time of the first frame of the event will be 00:00:00:00.

      - **SyncThreshold** *(integer) --* Threshold in frames beyond which output timecode is
      resynchronized to the input timecode. Discrepancies below this threshold are permitted to
      avoid unnecessary discontinuities in the output timecode. No timecode sync when this is not
      specified.

    - **VideoDescriptions** *(list) --* Placeholder documentation for __listOfVideoDescription

      - *(dict) --* Video settings for this stream.

        - **CodecSettings** *(dict) --* Video codec settings.

          - **FrameCaptureSettings** *(dict) --* Frame Capture Settings

            - **CaptureInterval** *(integer) --* The frequency at which to capture frames for
            inclusion in the output. May be specified in either seconds or milliseconds, as
            specified by captureIntervalUnits.

          - **H264Settings** *(dict) --* H264 Settings

            - **AdaptiveQuantization** *(string) --* Adaptive quantization. Allows intra-frame
            quantizers to vary to improve visual quality.

            - **AfdSignaling** *(string) --* Indicates that AFD values will be written into the
            output stream. If afdSignaling is "auto", the system will try to preserve the input AFD
            value (in cases where multiple AFD values are valid). If set to "fixed", the AFD value
            will be the value configured in the fixedAfd parameter.

            - **Bitrate** *(integer) --* Average bitrate in bits/second. Required when the rate
            control mode is VBR or CBR. Not used for QVBR. In an MS Smooth output group, each output
            must have a unique value when its bitrate is rounded down to the nearest multiple of
            1000.

            - **BufFillPct** *(integer) --* Percentage of the buffer that should initially be filled
            (HRD buffer model).

            - **BufSize** *(integer) --* Size of buffer (HRD buffer model) in bits.

            - **ColorMetadata** *(string) --* Includes colorspace metadata in the output.

            - **ColorSpaceSettings** *(dict) --* Color Space settings

              - **ColorSpacePassthroughSettings** *(dict) --* Passthrough applies no color space
              conversion to the output

              - **Rec601Settings** *(dict) --* Rec601 Settings

              - **Rec709Settings** *(dict) --* Rec709 Settings

            - **EntropyEncoding** *(string) --* Entropy encoding mode. Use cabac (must be in Main or
            High profile) or cavlc.

            - **FixedAfd** *(string) --* Four bit AFD value to write on all frames of video in the
            output stream. Only valid when afdSignaling is set to 'Fixed'.

            - **FlickerAq** *(string) --* If set to enabled, adjust quantization within each frame
            to reduce flicker or 'pop' on I-frames.

            - **FramerateControl** *(string) --* This field indicates how the output video frame
            rate is specified. If "specified" is selected then the output video frame rate is
            determined by framerateNumerator and framerateDenominator, else if
            "initializeFromSource" is selected then the output video frame rate will be set equal to
            the input video frame rate of the first input.

            - **FramerateDenominator** *(integer) --* Framerate denominator.

            - **FramerateNumerator** *(integer) --* Framerate numerator - framerate is a fraction,
            e.g. 24000 / 1001 = 23.976 fps.

            - **GopBReference** *(string) --* Documentation update needed

            - **GopClosedCadence** *(integer) --* Frequency of closed GOPs. In streaming
            applications, it is recommended that this be set to 1 so a decoder joining mid-stream
            will receive an IDR frame as quickly as possible. Setting this value to 0 will break
            output segmenting.

            - **GopNumBFrames** *(integer) --* Number of B-frames between reference frames.

            - **GopSize** *(float) --* GOP size (keyframe interval) in units of either frames or
            seconds per gopSizeUnits. If gopSizeUnits is frames, gopSize must be an integer and must
            be greater than or equal to 1. If gopSizeUnits is seconds, gopSize must be greater than
            0, but need not be an integer.

            - **GopSizeUnits** *(string) --* Indicates if the gopSize is specified in frames or
            seconds. If seconds the system will convert the gopSize into a frame count at run time.

            - **Level** *(string) --* H.264 Level.

            - **LookAheadRateControl** *(string) --* Amount of lookahead. A value of low can
            decrease latency and memory usage, while high can produce better quality for certain
            content.

            - **MaxBitrate** *(integer) --* For QVBR: See the tooltip for Quality level For VBR: Set
            the maximum bitrate in order to accommodate expected spikes in the complexity of the
            video.

            - **MinIInterval** *(integer) --* Only meaningful if sceneChangeDetect is set to
            enabled. Defaults to 5 if multiplex rate control is used. Enforces separation between
            repeated (cadence) I-frames and I-frames inserted by Scene Change Detection. If a scene
            change I-frame is within I-interval frames of a cadence I-frame, the GOP is shrunk
            and/or stretched to the scene change I-frame. GOP stretch requires enabling lookahead as
            well as setting I-interval. The normal cadence resumes for the next GOP. Note: Maximum
            GOP stretch = GOP size + Min-I-interval - 1

            - **NumRefFrames** *(integer) --* Number of reference frames to use. The encoder may use
            more than requested if using B-frames and/or interlaced encoding.

            - **ParControl** *(string) --* This field indicates how the output pixel aspect ratio is
            specified. If "specified" is selected then the output video pixel aspect ratio is
            determined by parNumerator and parDenominator, else if "initializeFromSource" is
            selected then the output pixsel aspect ratio will be set equal to the input video pixel
            aspect ratio of the first input.

            - **ParDenominator** *(integer) --* Pixel Aspect Ratio denominator.

            - **ParNumerator** *(integer) --* Pixel Aspect Ratio numerator.

            - **Profile** *(string) --* H.264 Profile.

            - **QvbrQualityLevel** *(integer) --* Controls the target quality for the video encode.
            Applies only when the rate control mode is QVBR. Set values for the QVBR quality level
            field and Max bitrate field that suit your most important viewing devices. Recommended
            values are: - Primary screen: Quality level: 8 to 10. Max bitrate: 4M - PC or tablet:
            Quality level: 7. Max bitrate: 1.5M to 3M - Smartphone: Quality level: 6. Max bitrate:
            1M to 1.5M

            - **RateControlMode** *(string) --* Rate control mode. QVBR: Quality will match the
            specified quality level except when it is constrained by the maximum bitrate.
            Recommended if you or your viewers pay for bandwidth. VBR: Quality and bitrate vary,
            depending on the video complexity. Recommended instead of QVBR if you want to maintain a
            specific average bitrate over the duration of the channel. CBR: Quality varies,
            depending on the video complexity. Recommended only if you distribute your assets to
            devices that cannot handle variable bitrates.

            - **ScanType** *(string) --* Sets the scan type of the output to progressive or
            top-field-first interlaced.

            - **SceneChangeDetect** *(string) --* Scene change detection. - On: inserts I-frames
            when scene change is detected. - Off: does not force an I-frame when scene change is
            detected.

            - **Slices** *(integer) --* Number of slices per picture. Must be less than or equal to
            the number of macroblock rows for progressive pictures, and less than or equal to half
            the number of macroblock rows for interlaced pictures. This field is optional; when no
            value is specified the encoder will choose the number of slices based on encode
            resolution.

            - **Softness** *(integer) --* Softness. Selects quantizer matrix, larger values reduce
            high-frequency content in the encoded image.

            - **SpatialAq** *(string) --* If set to enabled, adjust quantization within each frame
            based on spatial variation of content complexity.

            - **SubgopLength** *(string) --* If set to fixed, use gopNumBFrames B-frames per
            sub-GOP. If set to dynamic, optimize the number of B-frames used for each sub-GOP to
            improve visual quality.

            - **Syntax** *(string) --* Produces a bitstream compliant with SMPTE RP-2027.

            - **TemporalAq** *(string) --* If set to enabled, adjust quantization within each frame
            based on temporal variation of content complexity.

            - **TimecodeInsertion** *(string) --* Determines how timecodes should be inserted into
            the video elementary stream. - 'disabled': Do not include timecodes - 'picTimingSei':
            Pass through picture timing SEI messages from the source specified in Timecode Config

          - **H265Settings** *(dict) --* H265 Settings

            - **AdaptiveQuantization** *(string) --* Adaptive quantization. Allows intra-frame
            quantizers to vary to improve visual quality.

            - **AfdSignaling** *(string) --* Indicates that AFD values will be written into the
            output stream. If afdSignaling is "auto", the system will try to preserve the input AFD
            value (in cases where multiple AFD values are valid). If set to "fixed", the AFD value
            will be the value configured in the fixedAfd parameter.

            - **AlternativeTransferFunction** *(string) --* Whether or not EML should insert an
            Alternative Transfer Function SEI message to support backwards compatibility with
            non-HDR decoders and displays.

            - **Bitrate** *(integer) --* Average bitrate in bits/second. Required when the rate
            control mode is VBR or CBR. Not used for QVBR. In an MS Smooth output group, each output
            must have a unique value when its bitrate is rounded down to the nearest multiple of
            1000.

            - **BufSize** *(integer) --* Size of buffer (HRD buffer model) in bits.

            - **ColorMetadata** *(string) --* Includes colorspace metadata in the output.

            - **ColorSpaceSettings** *(dict) --* Color Space settings

              - **ColorSpacePassthroughSettings** *(dict) --* Passthrough applies no color space
              conversion to the output

              - **Hdr10Settings** *(dict) --* Hdr10 Settings

                - **MaxCll** *(integer) --* Maximum Content Light Level An integer metadata value
                defining the maximum light level, in nits, of any single pixel within an encoded HDR
                video stream or file.

                - **MaxFall** *(integer) --* Maximum Frame Average Light Level An integer metadata
                value defining the maximum average light level, in nits, for any single frame within
                an encoded HDR video stream or file.

              - **Rec601Settings** *(dict) --* Rec601 Settings

              - **Rec709Settings** *(dict) --* Rec709 Settings

            - **FixedAfd** *(string) --* Four bit AFD value to write on all frames of video in the
            output stream. Only valid when afdSignaling is set to 'Fixed'.

            - **FlickerAq** *(string) --* If set to enabled, adjust quantization within each frame
            to reduce flicker or 'pop' on I-frames.

            - **FramerateDenominator** *(integer) --* Framerate denominator.

            - **FramerateNumerator** *(integer) --* Framerate numerator - framerate is a fraction,
            e.g. 24000 / 1001 = 23.976 fps.

            - **GopClosedCadence** *(integer) --* Frequency of closed GOPs. In streaming
            applications, it is recommended that this be set to 1 so a decoder joining mid-stream
            will receive an IDR frame as quickly as possible. Setting this value to 0 will break
            output segmenting.

            - **GopSize** *(float) --* GOP size (keyframe interval) in units of either frames or
            seconds per gopSizeUnits. If gopSizeUnits is frames, gopSize must be an integer and must
            be greater than or equal to 1. If gopSizeUnits is seconds, gopSize must be greater than
            0, but need not be an integer.

            - **GopSizeUnits** *(string) --* Indicates if the gopSize is specified in frames or
            seconds. If seconds the system will convert the gopSize into a frame count at run time.

            - **Level** *(string) --* H.265 Level.

            - **LookAheadRateControl** *(string) --* Amount of lookahead. A value of low can
            decrease latency and memory usage, while high can produce better quality for certain
            content.

            - **MaxBitrate** *(integer) --* For QVBR: See the tooltip for Quality level

            - **MinIInterval** *(integer) --* Only meaningful if sceneChangeDetect is set to
            enabled. Defaults to 5 if multiplex rate control is used. Enforces separation between
            repeated (cadence) I-frames and I-frames inserted by Scene Change Detection. If a scene
            change I-frame is within I-interval frames of a cadence I-frame, the GOP is shrunk
            and/or stretched to the scene change I-frame. GOP stretch requires enabling lookahead as
            well as setting I-interval. The normal cadence resumes for the next GOP. Note: Maximum
            GOP stretch = GOP size + Min-I-interval - 1

            - **ParDenominator** *(integer) --* Pixel Aspect Ratio denominator.

            - **ParNumerator** *(integer) --* Pixel Aspect Ratio numerator.

            - **Profile** *(string) --* H.265 Profile.

            - **QvbrQualityLevel** *(integer) --* Controls the target quality for the video encode.
            Applies only when the rate control mode is QVBR. Set values for the QVBR quality level
            field and Max bitrate field that suit your most important viewing devices. Recommended
            values are: - Primary screen: Quality level: 8 to 10. Max bitrate: 4M - PC or tablet:
            Quality level: 7. Max bitrate: 1.5M to 3M - Smartphone: Quality level: 6. Max bitrate:
            1M to 1.5M

            - **RateControlMode** *(string) --* Rate control mode. QVBR: Quality will match the
            specified quality level except when it is constrained by the maximum bitrate.
            Recommended if you or your viewers pay for bandwidth. CBR: Quality varies, depending on
            the video complexity. Recommended only if you distribute your assets to devices that
            cannot handle variable bitrates.

            - **ScanType** *(string) --* Sets the scan type of the output to progressive or
            top-field-first interlaced.

            - **SceneChangeDetect** *(string) --* Scene change detection.

            - **Slices** *(integer) --* Number of slices per picture. Must be less than or equal to
            the number of macroblock rows for progressive pictures, and less than or equal to half
            the number of macroblock rows for interlaced pictures. This field is optional; when no
            value is specified the encoder will choose the number of slices based on encode
            resolution.

            - **Tier** *(string) --* H.265 Tier.

            - **TimecodeInsertion** *(string) --* Determines how timecodes should be inserted into
            the video elementary stream. - 'disabled': Do not include timecodes - 'picTimingSei':
            Pass through picture timing SEI messages from the source specified in Timecode Config

        - **Height** *(integer) --* Output video height, in pixels. Must be an even number. For most
        codecs, you can leave this field and width blank in order to use the height and width
        (resolution) from the source. Note, however, that leaving blank is not recommended. For the
        Frame Capture codec, height and width are required.

        - **Name** *(string) --* The name of this VideoDescription. Outputs will use this name to
        uniquely identify this Description. Description names should be unique within this Live
        Event.

        - **RespondToAfd** *(string) --* Indicates how to respond to the AFD values in the input
        stream. RESPOND causes input video to be clipped, depending on the AFD value, input display
        aspect ratio, and output display aspect ratio, and (except for FRAMECAPTURE codec) includes
        the values in the output. PASSTHROUGH (does not apply to FRAMECAPTURE codec) ignores the AFD
        values and includes the values in the output, so input video is not clipped. NONE ignores
        the AFD values and does not include the values through to the output, so input video is not
        clipped.

        - **ScalingBehavior** *(string) --* STRETCHTOOUTPUT configures the output position to
        stretch the video to the specified output resolution (height and width). This option will
        override any position value. DEFAULT may insert black boxes (pillar boxes or letter boxes)
        around the video to provide the specified output resolution.

        - **Sharpness** *(integer) --* Changes the strength of the anti-alias filter used for
        scaling. 0 is the softest setting, 100 is the sharpest. A setting of 50 is recommended for
        most content.

        - **Width** *(integer) --* Output video width, in pixels. Must be an even number. For most
        codecs, you can leave this field and height blank in order to use the height and width
        (resolution) from the source. Note, however, that leaving blank is not recommended. For the
        Frame Capture codec, height and width are required.
    """


_ClientDescribeChannelResponseInputAttachmentsInputSettingsAudioSelectorsSelectorSettingsAudioLanguageSelectionTypeDef = TypedDict(
    "_ClientDescribeChannelResponseInputAttachmentsInputSettingsAudioSelectorsSelectorSettingsAudioLanguageSelectionTypeDef",
    {"LanguageCode": str, "LanguageSelectionPolicy": str},
    total=False,
)


class ClientDescribeChannelResponseInputAttachmentsInputSettingsAudioSelectorsSelectorSettingsAudioLanguageSelectionTypeDef(
    _ClientDescribeChannelResponseInputAttachmentsInputSettingsAudioSelectorsSelectorSettingsAudioLanguageSelectionTypeDef
):
    """
    Type definition for
    `ClientDescribeChannelResponseInputAttachmentsInputSettingsAudioSelectorsSelectorSettings`
    `AudioLanguageSelection`

    - **LanguageCode** *(string) --* Selects a specific three-letter language code from within an
    audio source.

    - **LanguageSelectionPolicy** *(string) --* When set to "strict", the transport stream demux
    strictly identifies audio streams by their language descriptor. If a PMT update occurs such that
    an audio stream matching the initially selected language is no longer present then mute will be
    encoded until the language returns. If "loose", then on a PMT update the demux will choose
    another audio stream in the program with the same stream type if it can't find one with the same
    language.
    """


_ClientDescribeChannelResponseInputAttachmentsInputSettingsAudioSelectorsSelectorSettingsAudioPidSelectionTypeDef = TypedDict(
    "_ClientDescribeChannelResponseInputAttachmentsInputSettingsAudioSelectorsSelectorSettingsAudioPidSelectionTypeDef",
    {"Pid": int},
    total=False,
)


class ClientDescribeChannelResponseInputAttachmentsInputSettingsAudioSelectorsSelectorSettingsAudioPidSelectionTypeDef(
    _ClientDescribeChannelResponseInputAttachmentsInputSettingsAudioSelectorsSelectorSettingsAudioPidSelectionTypeDef
):
    """
    Type definition for
    `ClientDescribeChannelResponseInputAttachmentsInputSettingsAudioSelectorsSelectorSettings`
    `AudioPidSelection`

    - **Pid** *(integer) --* Selects a specific PID from within a source.
    """


_ClientDescribeChannelResponseInputAttachmentsInputSettingsAudioSelectorsSelectorSettingsTypeDef = TypedDict(
    "_ClientDescribeChannelResponseInputAttachmentsInputSettingsAudioSelectorsSelectorSettingsTypeDef",
    {
        "AudioLanguageSelection": ClientDescribeChannelResponseInputAttachmentsInputSettingsAudioSelectorsSelectorSettingsAudioLanguageSelectionTypeDef,
        "AudioPidSelection": ClientDescribeChannelResponseInputAttachmentsInputSettingsAudioSelectorsSelectorSettingsAudioPidSelectionTypeDef,
    },
    total=False,
)


class ClientDescribeChannelResponseInputAttachmentsInputSettingsAudioSelectorsSelectorSettingsTypeDef(
    _ClientDescribeChannelResponseInputAttachmentsInputSettingsAudioSelectorsSelectorSettingsTypeDef
):
    """
    Type definition for `ClientDescribeChannelResponseInputAttachmentsInputSettingsAudioSelectors`
    `SelectorSettings`

    - **AudioLanguageSelection** *(dict) --* Audio Language Selection

      - **LanguageCode** *(string) --* Selects a specific three-letter language code from within an
      audio source.

      - **LanguageSelectionPolicy** *(string) --* When set to "strict", the transport stream demux
      strictly identifies audio streams by their language descriptor. If a PMT update occurs such
      that an audio stream matching the initially selected language is no longer present then mute
      will be encoded until the language returns. If "loose", then on a PMT update the demux will
      choose another audio stream in the program with the same stream type if it can't find one with
      the same language.

    - **AudioPidSelection** *(dict) --* Audio Pid Selection

      - **Pid** *(integer) --* Selects a specific PID from within a source.
    """


_ClientDescribeChannelResponseInputAttachmentsInputSettingsAudioSelectorsTypeDef = TypedDict(
    "_ClientDescribeChannelResponseInputAttachmentsInputSettingsAudioSelectorsTypeDef",
    {
        "Name": str,
        "SelectorSettings": ClientDescribeChannelResponseInputAttachmentsInputSettingsAudioSelectorsSelectorSettingsTypeDef,
    },
    total=False,
)


class ClientDescribeChannelResponseInputAttachmentsInputSettingsAudioSelectorsTypeDef(
    _ClientDescribeChannelResponseInputAttachmentsInputSettingsAudioSelectorsTypeDef
):
    """
    Type definition for `ClientDescribeChannelResponseInputAttachmentsInputSettings`
    `AudioSelectors`

    - **Name** *(string) --* The name of this AudioSelector. AudioDescriptions will use this name to
    uniquely identify this Selector. Selector names should be unique per input.

    - **SelectorSettings** *(dict) --* The audio selector settings.

      - **AudioLanguageSelection** *(dict) --* Audio Language Selection

        - **LanguageCode** *(string) --* Selects a specific three-letter language code from within
        an audio source.

        - **LanguageSelectionPolicy** *(string) --* When set to "strict", the transport stream demux
        strictly identifies audio streams by their language descriptor. If a PMT update occurs such
        that an audio stream matching the initially selected language is no longer present then mute
        will be encoded until the language returns. If "loose", then on a PMT update the demux will
        choose another audio stream in the program with the same stream type if it can't find one
        with the same language.

      - **AudioPidSelection** *(dict) --* Audio Pid Selection

        - **Pid** *(integer) --* Selects a specific PID from within a source.
    """


_ClientDescribeChannelResponseInputAttachmentsInputSettingsCaptionSelectorsSelectorSettingsDvbSubSourceSettingsTypeDef = TypedDict(
    "_ClientDescribeChannelResponseInputAttachmentsInputSettingsCaptionSelectorsSelectorSettingsDvbSubSourceSettingsTypeDef",
    {"Pid": int},
    total=False,
)


class ClientDescribeChannelResponseInputAttachmentsInputSettingsCaptionSelectorsSelectorSettingsDvbSubSourceSettingsTypeDef(
    _ClientDescribeChannelResponseInputAttachmentsInputSettingsCaptionSelectorsSelectorSettingsDvbSubSourceSettingsTypeDef
):
    """
    Type definition for
    `ClientDescribeChannelResponseInputAttachmentsInputSettingsCaptionSelectorsSelectorSettings`
    `DvbSubSourceSettings`

    - **Pid** *(integer) --* When using DVB-Sub with Burn-In or SMPTE-TT, use this PID for the
    source content. Unused for DVB-Sub passthrough. All DVB-Sub content is passed through,
    regardless of selectors.
    """


_ClientDescribeChannelResponseInputAttachmentsInputSettingsCaptionSelectorsSelectorSettingsEmbeddedSourceSettingsTypeDef = TypedDict(
    "_ClientDescribeChannelResponseInputAttachmentsInputSettingsCaptionSelectorsSelectorSettingsEmbeddedSourceSettingsTypeDef",
    {
        "Convert608To708": str,
        "Scte20Detection": str,
        "Source608ChannelNumber": int,
        "Source608TrackNumber": int,
    },
    total=False,
)


class ClientDescribeChannelResponseInputAttachmentsInputSettingsCaptionSelectorsSelectorSettingsEmbeddedSourceSettingsTypeDef(
    _ClientDescribeChannelResponseInputAttachmentsInputSettingsCaptionSelectorsSelectorSettingsEmbeddedSourceSettingsTypeDef
):
    """
    Type definition for
    `ClientDescribeChannelResponseInputAttachmentsInputSettingsCaptionSelectorsSelectorSettings`
    `EmbeddedSourceSettings`

    - **Convert608To708** *(string) --* If upconvert, 608 data is both passed through via the "608
    compatibility bytes" fields of the 708 wrapper as well as translated into 708. 708 data present
    in the source content will be discarded.

    - **Scte20Detection** *(string) --* Set to "auto" to handle streams with intermittent and/or
    non-aligned SCTE-20 and Embedded captions.

    - **Source608ChannelNumber** *(integer) --* Specifies the 608/708 channel number within the
    video track from which to extract captions. Unused for passthrough.

    - **Source608TrackNumber** *(integer) --* This field is unused and deprecated.
    """


_ClientDescribeChannelResponseInputAttachmentsInputSettingsCaptionSelectorsSelectorSettingsScte20SourceSettingsTypeDef = TypedDict(
    "_ClientDescribeChannelResponseInputAttachmentsInputSettingsCaptionSelectorsSelectorSettingsScte20SourceSettingsTypeDef",
    {"Convert608To708": str, "Source608ChannelNumber": int},
    total=False,
)


class ClientDescribeChannelResponseInputAttachmentsInputSettingsCaptionSelectorsSelectorSettingsScte20SourceSettingsTypeDef(
    _ClientDescribeChannelResponseInputAttachmentsInputSettingsCaptionSelectorsSelectorSettingsScte20SourceSettingsTypeDef
):
    """
    Type definition for
    `ClientDescribeChannelResponseInputAttachmentsInputSettingsCaptionSelectorsSelectorSettings`
    `Scte20SourceSettings`

    - **Convert608To708** *(string) --* If upconvert, 608 data is both passed through via the "608
    compatibility bytes" fields of the 708 wrapper as well as translated into 708. 708 data present
    in the source content will be discarded.

    - **Source608ChannelNumber** *(integer) --* Specifies the 608/708 channel number within the
    video track from which to extract captions. Unused for passthrough.
    """


_ClientDescribeChannelResponseInputAttachmentsInputSettingsCaptionSelectorsSelectorSettingsScte27SourceSettingsTypeDef = TypedDict(
    "_ClientDescribeChannelResponseInputAttachmentsInputSettingsCaptionSelectorsSelectorSettingsScte27SourceSettingsTypeDef",
    {"Pid": int},
    total=False,
)


class ClientDescribeChannelResponseInputAttachmentsInputSettingsCaptionSelectorsSelectorSettingsScte27SourceSettingsTypeDef(
    _ClientDescribeChannelResponseInputAttachmentsInputSettingsCaptionSelectorsSelectorSettingsScte27SourceSettingsTypeDef
):
    """
    Type definition for
    `ClientDescribeChannelResponseInputAttachmentsInputSettingsCaptionSelectorsSelectorSettings`
    `Scte27SourceSettings`

    - **Pid** *(integer) --* The pid field is used in conjunction with the caption selector
    languageCode field as follows: - Specify PID and Language: Extracts captions from that PID; the
    language is "informational". - Specify PID and omit Language: Extracts the specified PID. - Omit
    PID and specify Language: Extracts the specified language, whichever PID that happens to be. -
    Omit PID and omit Language: Valid only if source is DVB-Sub that is being passed through; all
    languages will be passed through.
    """


_ClientDescribeChannelResponseInputAttachmentsInputSettingsCaptionSelectorsSelectorSettingsTeletextSourceSettingsTypeDef = TypedDict(
    "_ClientDescribeChannelResponseInputAttachmentsInputSettingsCaptionSelectorsSelectorSettingsTeletextSourceSettingsTypeDef",
    {"PageNumber": str},
    total=False,
)


class ClientDescribeChannelResponseInputAttachmentsInputSettingsCaptionSelectorsSelectorSettingsTeletextSourceSettingsTypeDef(
    _ClientDescribeChannelResponseInputAttachmentsInputSettingsCaptionSelectorsSelectorSettingsTeletextSourceSettingsTypeDef
):
    """
    Type definition for
    `ClientDescribeChannelResponseInputAttachmentsInputSettingsCaptionSelectorsSelectorSettings`
    `TeletextSourceSettings`

    - **PageNumber** *(string) --* Specifies the teletext page number within the data stream from
    which to extract captions. Range of 0x100 (256) to 0x8FF (2303). Unused for passthrough. Should
    be specified as a hexadecimal string with no "0x" prefix.
    """


_ClientDescribeChannelResponseInputAttachmentsInputSettingsCaptionSelectorsSelectorSettingsTypeDef = TypedDict(
    "_ClientDescribeChannelResponseInputAttachmentsInputSettingsCaptionSelectorsSelectorSettingsTypeDef",
    {
        "AribSourceSettings": Dict,
        "DvbSubSourceSettings": ClientDescribeChannelResponseInputAttachmentsInputSettingsCaptionSelectorsSelectorSettingsDvbSubSourceSettingsTypeDef,
        "EmbeddedSourceSettings": ClientDescribeChannelResponseInputAttachmentsInputSettingsCaptionSelectorsSelectorSettingsEmbeddedSourceSettingsTypeDef,
        "Scte20SourceSettings": ClientDescribeChannelResponseInputAttachmentsInputSettingsCaptionSelectorsSelectorSettingsScte20SourceSettingsTypeDef,
        "Scte27SourceSettings": ClientDescribeChannelResponseInputAttachmentsInputSettingsCaptionSelectorsSelectorSettingsScte27SourceSettingsTypeDef,
        "TeletextSourceSettings": ClientDescribeChannelResponseInputAttachmentsInputSettingsCaptionSelectorsSelectorSettingsTeletextSourceSettingsTypeDef,
    },
    total=False,
)


class ClientDescribeChannelResponseInputAttachmentsInputSettingsCaptionSelectorsSelectorSettingsTypeDef(
    _ClientDescribeChannelResponseInputAttachmentsInputSettingsCaptionSelectorsSelectorSettingsTypeDef
):
    """
    Type definition for `ClientDescribeChannelResponseInputAttachmentsInputSettingsCaptionSelectors`
    `SelectorSettings`

    - **AribSourceSettings** *(dict) --* Arib Source Settings

    - **DvbSubSourceSettings** *(dict) --* Dvb Sub Source Settings

      - **Pid** *(integer) --* When using DVB-Sub with Burn-In or SMPTE-TT, use this PID for the
      source content. Unused for DVB-Sub passthrough. All DVB-Sub content is passed through,
      regardless of selectors.

    - **EmbeddedSourceSettings** *(dict) --* Embedded Source Settings

      - **Convert608To708** *(string) --* If upconvert, 608 data is both passed through via the "608
      compatibility bytes" fields of the 708 wrapper as well as translated into 708. 708 data
      present in the source content will be discarded.

      - **Scte20Detection** *(string) --* Set to "auto" to handle streams with intermittent and/or
      non-aligned SCTE-20 and Embedded captions.

      - **Source608ChannelNumber** *(integer) --* Specifies the 608/708 channel number within the
      video track from which to extract captions. Unused for passthrough.

      - **Source608TrackNumber** *(integer) --* This field is unused and deprecated.

    - **Scte20SourceSettings** *(dict) --* Scte20 Source Settings

      - **Convert608To708** *(string) --* If upconvert, 608 data is both passed through via the "608
      compatibility bytes" fields of the 708 wrapper as well as translated into 708. 708 data
      present in the source content will be discarded.

      - **Source608ChannelNumber** *(integer) --* Specifies the 608/708 channel number within the
      video track from which to extract captions. Unused for passthrough.

    - **Scte27SourceSettings** *(dict) --* Scte27 Source Settings

      - **Pid** *(integer) --* The pid field is used in conjunction with the caption selector
      languageCode field as follows: - Specify PID and Language: Extracts captions from that PID;
      the language is "informational". - Specify PID and omit Language: Extracts the specified PID.
      - Omit PID and specify Language: Extracts the specified language, whichever PID that happens
      to be. - Omit PID and omit Language: Valid only if source is DVB-Sub that is being passed
      through; all languages will be passed through.

    - **TeletextSourceSettings** *(dict) --* Teletext Source Settings

      - **PageNumber** *(string) --* Specifies the teletext page number within the data stream from
      which to extract captions. Range of 0x100 (256) to 0x8FF (2303). Unused for passthrough.
      Should be specified as a hexadecimal string with no "0x" prefix.
    """


_ClientDescribeChannelResponseInputAttachmentsInputSettingsCaptionSelectorsTypeDef = TypedDict(
    "_ClientDescribeChannelResponseInputAttachmentsInputSettingsCaptionSelectorsTypeDef",
    {
        "LanguageCode": str,
        "Name": str,
        "SelectorSettings": ClientDescribeChannelResponseInputAttachmentsInputSettingsCaptionSelectorsSelectorSettingsTypeDef,
    },
    total=False,
)


class ClientDescribeChannelResponseInputAttachmentsInputSettingsCaptionSelectorsTypeDef(
    _ClientDescribeChannelResponseInputAttachmentsInputSettingsCaptionSelectorsTypeDef
):
    """
    Type definition for `ClientDescribeChannelResponseInputAttachmentsInputSettings`
    `CaptionSelectors`

    - **LanguageCode** *(string) --* When specified this field indicates the three letter language
    code of the caption track to extract from the source.

    - **Name** *(string) --* Name identifier for a caption selector. This name is used to associate
    this caption selector with one or more caption descriptions. Names must be unique within an
    event.

    - **SelectorSettings** *(dict) --* Caption selector settings.

      - **AribSourceSettings** *(dict) --* Arib Source Settings

      - **DvbSubSourceSettings** *(dict) --* Dvb Sub Source Settings

        - **Pid** *(integer) --* When using DVB-Sub with Burn-In or SMPTE-TT, use this PID for the
        source content. Unused for DVB-Sub passthrough. All DVB-Sub content is passed through,
        regardless of selectors.

      - **EmbeddedSourceSettings** *(dict) --* Embedded Source Settings

        - **Convert608To708** *(string) --* If upconvert, 608 data is both passed through via the
        "608 compatibility bytes" fields of the 708 wrapper as well as translated into 708. 708 data
        present in the source content will be discarded.

        - **Scte20Detection** *(string) --* Set to "auto" to handle streams with intermittent and/or
        non-aligned SCTE-20 and Embedded captions.

        - **Source608ChannelNumber** *(integer) --* Specifies the 608/708 channel number within the
        video track from which to extract captions. Unused for passthrough.

        - **Source608TrackNumber** *(integer) --* This field is unused and deprecated.

      - **Scte20SourceSettings** *(dict) --* Scte20 Source Settings

        - **Convert608To708** *(string) --* If upconvert, 608 data is both passed through via the
        "608 compatibility bytes" fields of the 708 wrapper as well as translated into 708. 708 data
        present in the source content will be discarded.

        - **Source608ChannelNumber** *(integer) --* Specifies the 608/708 channel number within the
        video track from which to extract captions. Unused for passthrough.

      - **Scte27SourceSettings** *(dict) --* Scte27 Source Settings

        - **Pid** *(integer) --* The pid field is used in conjunction with the caption selector
        languageCode field as follows: - Specify PID and Language: Extracts captions from that PID;
        the language is "informational". - Specify PID and omit Language: Extracts the specified
        PID. - Omit PID and specify Language: Extracts the specified language, whichever PID that
        happens to be. - Omit PID and omit Language: Valid only if source is DVB-Sub that is being
        passed through; all languages will be passed through.

      - **TeletextSourceSettings** *(dict) --* Teletext Source Settings

        - **PageNumber** *(string) --* Specifies the teletext page number within the data stream
        from which to extract captions. Range of 0x100 (256) to 0x8FF (2303). Unused for
        passthrough. Should be specified as a hexadecimal string with no "0x" prefix.
    """


_ClientDescribeChannelResponseInputAttachmentsInputSettingsNetworkInputSettingsHlsInputSettingsTypeDef = TypedDict(
    "_ClientDescribeChannelResponseInputAttachmentsInputSettingsNetworkInputSettingsHlsInputSettingsTypeDef",
    {"Bandwidth": int, "BufferSegments": int, "Retries": int, "RetryInterval": int},
    total=False,
)


class ClientDescribeChannelResponseInputAttachmentsInputSettingsNetworkInputSettingsHlsInputSettingsTypeDef(
    _ClientDescribeChannelResponseInputAttachmentsInputSettingsNetworkInputSettingsHlsInputSettingsTypeDef
):
    """
    Type definition for
    `ClientDescribeChannelResponseInputAttachmentsInputSettingsNetworkInputSettings`
    `HlsInputSettings`

    - **Bandwidth** *(integer) --* When specified the HLS stream with the m3u8 BANDWIDTH that most
    closely matches this value will be chosen, otherwise the highest bandwidth stream in the m3u8
    will be chosen. The bitrate is specified in bits per second, as in an HLS manifest.

    - **BufferSegments** *(integer) --* When specified, reading of the HLS input will begin this
    many buffer segments from the end (most recently written segment). When not specified, the HLS
    input will begin with the first segment specified in the m3u8.

    - **Retries** *(integer) --* The number of consecutive times that attempts to read a manifest or
    segment must fail before the input is considered unavailable.

    - **RetryInterval** *(integer) --* The number of seconds between retries when an attempt to read
    a manifest or segment fails.
    """


_ClientDescribeChannelResponseInputAttachmentsInputSettingsNetworkInputSettingsTypeDef = TypedDict(
    "_ClientDescribeChannelResponseInputAttachmentsInputSettingsNetworkInputSettingsTypeDef",
    {
        "HlsInputSettings": ClientDescribeChannelResponseInputAttachmentsInputSettingsNetworkInputSettingsHlsInputSettingsTypeDef,
        "ServerValidation": str,
    },
    total=False,
)


class ClientDescribeChannelResponseInputAttachmentsInputSettingsNetworkInputSettingsTypeDef(
    _ClientDescribeChannelResponseInputAttachmentsInputSettingsNetworkInputSettingsTypeDef
):
    """
    Type definition for `ClientDescribeChannelResponseInputAttachmentsInputSettings`
    `NetworkInputSettings`

    - **HlsInputSettings** *(dict) --* Specifies HLS input settings when the uri is for a HLS
    manifest.

      - **Bandwidth** *(integer) --* When specified the HLS stream with the m3u8 BANDWIDTH that most
      closely matches this value will be chosen, otherwise the highest bandwidth stream in the m3u8
      will be chosen. The bitrate is specified in bits per second, as in an HLS manifest.

      - **BufferSegments** *(integer) --* When specified, reading of the HLS input will begin this
      many buffer segments from the end (most recently written segment). When not specified, the HLS
      input will begin with the first segment specified in the m3u8.

      - **Retries** *(integer) --* The number of consecutive times that attempts to read a manifest
      or segment must fail before the input is considered unavailable.

      - **RetryInterval** *(integer) --* The number of seconds between retries when an attempt to
      read a manifest or segment fails.

    - **ServerValidation** *(string) --* Check HTTPS server certificates. When set to
    checkCryptographyOnly, cryptography in the certificate will be checked, but not the server's
    name. Certain subdomains (notably S3 buckets that use dots in the bucket name) do not strictly
    match the corresponding certificate's wildcard pattern and would otherwise cause the event to
    error. This setting is ignored for protocols that do not use https.
    """


_ClientDescribeChannelResponseInputAttachmentsInputSettingsVideoSelectorSelectorSettingsVideoSelectorPidTypeDef = TypedDict(
    "_ClientDescribeChannelResponseInputAttachmentsInputSettingsVideoSelectorSelectorSettingsVideoSelectorPidTypeDef",
    {"Pid": int},
    total=False,
)


class ClientDescribeChannelResponseInputAttachmentsInputSettingsVideoSelectorSelectorSettingsVideoSelectorPidTypeDef(
    _ClientDescribeChannelResponseInputAttachmentsInputSettingsVideoSelectorSelectorSettingsVideoSelectorPidTypeDef
):
    """
    Type definition for
    `ClientDescribeChannelResponseInputAttachmentsInputSettingsVideoSelectorSelectorSettings`
    `VideoSelectorPid`

    - **Pid** *(integer) --* Selects a specific PID from within a video source.
    """


_ClientDescribeChannelResponseInputAttachmentsInputSettingsVideoSelectorSelectorSettingsVideoSelectorProgramIdTypeDef = TypedDict(
    "_ClientDescribeChannelResponseInputAttachmentsInputSettingsVideoSelectorSelectorSettingsVideoSelectorProgramIdTypeDef",
    {"ProgramId": int},
    total=False,
)


class ClientDescribeChannelResponseInputAttachmentsInputSettingsVideoSelectorSelectorSettingsVideoSelectorProgramIdTypeDef(
    _ClientDescribeChannelResponseInputAttachmentsInputSettingsVideoSelectorSelectorSettingsVideoSelectorProgramIdTypeDef
):
    """
    Type definition for
    `ClientDescribeChannelResponseInputAttachmentsInputSettingsVideoSelectorSelectorSettings`
    `VideoSelectorProgramId`

    - **ProgramId** *(integer) --* Selects a specific program from within a multi-program transport
    stream. If the program doesn't exist, the first program within the transport stream will be
    selected by default.
    """


_ClientDescribeChannelResponseInputAttachmentsInputSettingsVideoSelectorSelectorSettingsTypeDef = TypedDict(
    "_ClientDescribeChannelResponseInputAttachmentsInputSettingsVideoSelectorSelectorSettingsTypeDef",
    {
        "VideoSelectorPid": ClientDescribeChannelResponseInputAttachmentsInputSettingsVideoSelectorSelectorSettingsVideoSelectorPidTypeDef,
        "VideoSelectorProgramId": ClientDescribeChannelResponseInputAttachmentsInputSettingsVideoSelectorSelectorSettingsVideoSelectorProgramIdTypeDef,
    },
    total=False,
)


class ClientDescribeChannelResponseInputAttachmentsInputSettingsVideoSelectorSelectorSettingsTypeDef(
    _ClientDescribeChannelResponseInputAttachmentsInputSettingsVideoSelectorSelectorSettingsTypeDef
):
    """
    Type definition for `ClientDescribeChannelResponseInputAttachmentsInputSettingsVideoSelector`
    `SelectorSettings`

    - **VideoSelectorPid** *(dict) --* Video Selector Pid

      - **Pid** *(integer) --* Selects a specific PID from within a video source.

    - **VideoSelectorProgramId** *(dict) --* Video Selector Program Id

      - **ProgramId** *(integer) --* Selects a specific program from within a multi-program
      transport stream. If the program doesn't exist, the first program within the transport stream
      will be selected by default.
    """


_ClientDescribeChannelResponseInputAttachmentsInputSettingsVideoSelectorTypeDef = TypedDict(
    "_ClientDescribeChannelResponseInputAttachmentsInputSettingsVideoSelectorTypeDef",
    {
        "ColorSpace": str,
        "ColorSpaceUsage": str,
        "SelectorSettings": ClientDescribeChannelResponseInputAttachmentsInputSettingsVideoSelectorSelectorSettingsTypeDef,
    },
    total=False,
)


class ClientDescribeChannelResponseInputAttachmentsInputSettingsVideoSelectorTypeDef(
    _ClientDescribeChannelResponseInputAttachmentsInputSettingsVideoSelectorTypeDef
):
    """
    Type definition for `ClientDescribeChannelResponseInputAttachmentsInputSettings` `VideoSelector`

    - **ColorSpace** *(string) --* Specifies the color space of an input. This setting works in
    tandem with colorSpaceUsage and a video description's colorSpaceSettingsChoice to determine if
    any conversion will be performed.

    - **ColorSpaceUsage** *(string) --* Applies only if colorSpace is a value other than follow.
    This field controls how the value in the colorSpace field will be used. fallback means that when
    the input does include color space data, that data will be used, but when the input has no color
    space data, the value in colorSpace will be used. Choose fallback if your input is sometimes
    missing color space data, but when it does have color space data, that data is correct. force
    means to always use the value in colorSpace. Choose force if your input usually has no color
    space data or might have unreliable color space data.

    - **SelectorSettings** *(dict) --* The video selector settings.

      - **VideoSelectorPid** *(dict) --* Video Selector Pid

        - **Pid** *(integer) --* Selects a specific PID from within a video source.

      - **VideoSelectorProgramId** *(dict) --* Video Selector Program Id

        - **ProgramId** *(integer) --* Selects a specific program from within a multi-program
        transport stream. If the program doesn't exist, the first program within the transport
        stream will be selected by default.
    """


_ClientDescribeChannelResponseInputAttachmentsInputSettingsTypeDef = TypedDict(
    "_ClientDescribeChannelResponseInputAttachmentsInputSettingsTypeDef",
    {
        "AudioSelectors": List[
            ClientDescribeChannelResponseInputAttachmentsInputSettingsAudioSelectorsTypeDef
        ],
        "CaptionSelectors": List[
            ClientDescribeChannelResponseInputAttachmentsInputSettingsCaptionSelectorsTypeDef
        ],
        "DeblockFilter": str,
        "DenoiseFilter": str,
        "FilterStrength": int,
        "InputFilter": str,
        "NetworkInputSettings": ClientDescribeChannelResponseInputAttachmentsInputSettingsNetworkInputSettingsTypeDef,
        "SourceEndBehavior": str,
        "VideoSelector": ClientDescribeChannelResponseInputAttachmentsInputSettingsVideoSelectorTypeDef,
    },
    total=False,
)


class ClientDescribeChannelResponseInputAttachmentsInputSettingsTypeDef(
    _ClientDescribeChannelResponseInputAttachmentsInputSettingsTypeDef
):
    """
    Type definition for `ClientDescribeChannelResponseInputAttachments` `InputSettings`

    - **AudioSelectors** *(list) --* Used to select the audio stream to decode for inputs that have
    multiple available.

      - *(dict) --* Audio Selector

        - **Name** *(string) --* The name of this AudioSelector. AudioDescriptions will use this
        name to uniquely identify this Selector. Selector names should be unique per input.

        - **SelectorSettings** *(dict) --* The audio selector settings.

          - **AudioLanguageSelection** *(dict) --* Audio Language Selection

            - **LanguageCode** *(string) --* Selects a specific three-letter language code from
            within an audio source.

            - **LanguageSelectionPolicy** *(string) --* When set to "strict", the transport stream
            demux strictly identifies audio streams by their language descriptor. If a PMT update
            occurs such that an audio stream matching the initially selected language is no longer
            present then mute will be encoded until the language returns. If "loose", then on a PMT
            update the demux will choose another audio stream in the program with the same stream
            type if it can't find one with the same language.

          - **AudioPidSelection** *(dict) --* Audio Pid Selection

            - **Pid** *(integer) --* Selects a specific PID from within a source.

    - **CaptionSelectors** *(list) --* Used to select the caption input to use for inputs that have
    multiple available.

      - *(dict) --* Output groups for this Live Event. Output groups contain information about where
      streams should be distributed.

        - **LanguageCode** *(string) --* When specified this field indicates the three letter
        language code of the caption track to extract from the source.

        - **Name** *(string) --* Name identifier for a caption selector. This name is used to
        associate this caption selector with one or more caption descriptions. Names must be unique
        within an event.

        - **SelectorSettings** *(dict) --* Caption selector settings.

          - **AribSourceSettings** *(dict) --* Arib Source Settings

          - **DvbSubSourceSettings** *(dict) --* Dvb Sub Source Settings

            - **Pid** *(integer) --* When using DVB-Sub with Burn-In or SMPTE-TT, use this PID for
            the source content. Unused for DVB-Sub passthrough. All DVB-Sub content is passed
            through, regardless of selectors.

          - **EmbeddedSourceSettings** *(dict) --* Embedded Source Settings

            - **Convert608To708** *(string) --* If upconvert, 608 data is both passed through via
            the "608 compatibility bytes" fields of the 708 wrapper as well as translated into 708.
            708 data present in the source content will be discarded.

            - **Scte20Detection** *(string) --* Set to "auto" to handle streams with intermittent
            and/or non-aligned SCTE-20 and Embedded captions.

            - **Source608ChannelNumber** *(integer) --* Specifies the 608/708 channel number within
            the video track from which to extract captions. Unused for passthrough.

            - **Source608TrackNumber** *(integer) --* This field is unused and deprecated.

          - **Scte20SourceSettings** *(dict) --* Scte20 Source Settings

            - **Convert608To708** *(string) --* If upconvert, 608 data is both passed through via
            the "608 compatibility bytes" fields of the 708 wrapper as well as translated into 708.
            708 data present in the source content will be discarded.

            - **Source608ChannelNumber** *(integer) --* Specifies the 608/708 channel number within
            the video track from which to extract captions. Unused for passthrough.

          - **Scte27SourceSettings** *(dict) --* Scte27 Source Settings

            - **Pid** *(integer) --* The pid field is used in conjunction with the caption selector
            languageCode field as follows: - Specify PID and Language: Extracts captions from that
            PID; the language is "informational". - Specify PID and omit Language: Extracts the
            specified PID. - Omit PID and specify Language: Extracts the specified language,
            whichever PID that happens to be. - Omit PID and omit Language: Valid only if source is
            DVB-Sub that is being passed through; all languages will be passed through.

          - **TeletextSourceSettings** *(dict) --* Teletext Source Settings

            - **PageNumber** *(string) --* Specifies the teletext page number within the data stream
            from which to extract captions. Range of 0x100 (256) to 0x8FF (2303). Unused for
            passthrough. Should be specified as a hexadecimal string with no "0x" prefix.

    - **DeblockFilter** *(string) --* Enable or disable the deblock filter when filtering.

    - **DenoiseFilter** *(string) --* Enable or disable the denoise filter when filtering.

    - **FilterStrength** *(integer) --* Adjusts the magnitude of filtering from 1 (minimal) to 5
    (strongest).

    - **InputFilter** *(string) --* Turns on the filter for this input. MPEG-2 inputs have the
    deblocking filter enabled by default. 1) auto - filtering will be applied depending on input
    type/quality 2) disabled - no filtering will be applied to the input 3) forced - filtering will
    be applied regardless of input type

    - **NetworkInputSettings** *(dict) --* Input settings.

      - **HlsInputSettings** *(dict) --* Specifies HLS input settings when the uri is for a HLS
      manifest.

        - **Bandwidth** *(integer) --* When specified the HLS stream with the m3u8 BANDWIDTH that
        most closely matches this value will be chosen, otherwise the highest bandwidth stream in
        the m3u8 will be chosen. The bitrate is specified in bits per second, as in an HLS manifest.

        - **BufferSegments** *(integer) --* When specified, reading of the HLS input will begin this
        many buffer segments from the end (most recently written segment). When not specified, the
        HLS input will begin with the first segment specified in the m3u8.

        - **Retries** *(integer) --* The number of consecutive times that attempts to read a
        manifest or segment must fail before the input is considered unavailable.

        - **RetryInterval** *(integer) --* The number of seconds between retries when an attempt to
        read a manifest or segment fails.

      - **ServerValidation** *(string) --* Check HTTPS server certificates. When set to
      checkCryptographyOnly, cryptography in the certificate will be checked, but not the server's
      name. Certain subdomains (notably S3 buckets that use dots in the bucket name) do not strictly
      match the corresponding certificate's wildcard pattern and would otherwise cause the event to
      error. This setting is ignored for protocols that do not use https.

    - **SourceEndBehavior** *(string) --* Loop input if it is a file. This allows a file input to be
    streamed indefinitely.

    - **VideoSelector** *(dict) --* Informs which video elementary stream to decode for input types
    that have multiple available.

      - **ColorSpace** *(string) --* Specifies the color space of an input. This setting works in
      tandem with colorSpaceUsage and a video description's colorSpaceSettingsChoice to determine if
      any conversion will be performed.

      - **ColorSpaceUsage** *(string) --* Applies only if colorSpace is a value other than follow.
      This field controls how the value in the colorSpace field will be used. fallback means that
      when the input does include color space data, that data will be used, but when the input has
      no color space data, the value in colorSpace will be used. Choose fallback if your input is
      sometimes missing color space data, but when it does have color space data, that data is
      correct. force means to always use the value in colorSpace. Choose force if your input usually
      has no color space data or might have unreliable color space data.

      - **SelectorSettings** *(dict) --* The video selector settings.

        - **VideoSelectorPid** *(dict) --* Video Selector Pid

          - **Pid** *(integer) --* Selects a specific PID from within a video source.

        - **VideoSelectorProgramId** *(dict) --* Video Selector Program Id

          - **ProgramId** *(integer) --* Selects a specific program from within a multi-program
          transport stream. If the program doesn't exist, the first program within the transport
          stream will be selected by default.
    """


_ClientDescribeChannelResponseInputAttachmentsTypeDef = TypedDict(
    "_ClientDescribeChannelResponseInputAttachmentsTypeDef",
    {
        "InputAttachmentName": str,
        "InputId": str,
        "InputSettings": ClientDescribeChannelResponseInputAttachmentsInputSettingsTypeDef,
    },
    total=False,
)


class ClientDescribeChannelResponseInputAttachmentsTypeDef(
    _ClientDescribeChannelResponseInputAttachmentsTypeDef
):
    """
    Type definition for `ClientDescribeChannelResponse` `InputAttachments`

    - **InputAttachmentName** *(string) --* User-specified name for the attachment. This is required
    if the user wants to use this input in an input switch action.

    - **InputId** *(string) --* The ID of the input

    - **InputSettings** *(dict) --* Settings of an input (caption selector, etc.)

      - **AudioSelectors** *(list) --* Used to select the audio stream to decode for inputs that
      have multiple available.

        - *(dict) --* Audio Selector

          - **Name** *(string) --* The name of this AudioSelector. AudioDescriptions will use this
          name to uniquely identify this Selector. Selector names should be unique per input.

          - **SelectorSettings** *(dict) --* The audio selector settings.

            - **AudioLanguageSelection** *(dict) --* Audio Language Selection

              - **LanguageCode** *(string) --* Selects a specific three-letter language code from
              within an audio source.

              - **LanguageSelectionPolicy** *(string) --* When set to "strict", the transport stream
              demux strictly identifies audio streams by their language descriptor. If a PMT update
              occurs such that an audio stream matching the initially selected language is no longer
              present then mute will be encoded until the language returns. If "loose", then on a
              PMT update the demux will choose another audio stream in the program with the same
              stream type if it can't find one with the same language.

            - **AudioPidSelection** *(dict) --* Audio Pid Selection

              - **Pid** *(integer) --* Selects a specific PID from within a source.

      - **CaptionSelectors** *(list) --* Used to select the caption input to use for inputs that
      have multiple available.

        - *(dict) --* Output groups for this Live Event. Output groups contain information about
        where streams should be distributed.

          - **LanguageCode** *(string) --* When specified this field indicates the three letter
          language code of the caption track to extract from the source.

          - **Name** *(string) --* Name identifier for a caption selector. This name is used to
          associate this caption selector with one or more caption descriptions. Names must be
          unique within an event.

          - **SelectorSettings** *(dict) --* Caption selector settings.

            - **AribSourceSettings** *(dict) --* Arib Source Settings

            - **DvbSubSourceSettings** *(dict) --* Dvb Sub Source Settings

              - **Pid** *(integer) --* When using DVB-Sub with Burn-In or SMPTE-TT, use this PID for
              the source content. Unused for DVB-Sub passthrough. All DVB-Sub content is passed
              through, regardless of selectors.

            - **EmbeddedSourceSettings** *(dict) --* Embedded Source Settings

              - **Convert608To708** *(string) --* If upconvert, 608 data is both passed through via
              the "608 compatibility bytes" fields of the 708 wrapper as well as translated into
              708. 708 data present in the source content will be discarded.

              - **Scte20Detection** *(string) --* Set to "auto" to handle streams with intermittent
              and/or non-aligned SCTE-20 and Embedded captions.

              - **Source608ChannelNumber** *(integer) --* Specifies the 608/708 channel number
              within the video track from which to extract captions. Unused for passthrough.

              - **Source608TrackNumber** *(integer) --* This field is unused and deprecated.

            - **Scte20SourceSettings** *(dict) --* Scte20 Source Settings

              - **Convert608To708** *(string) --* If upconvert, 608 data is both passed through via
              the "608 compatibility bytes" fields of the 708 wrapper as well as translated into
              708. 708 data present in the source content will be discarded.

              - **Source608ChannelNumber** *(integer) --* Specifies the 608/708 channel number
              within the video track from which to extract captions. Unused for passthrough.

            - **Scte27SourceSettings** *(dict) --* Scte27 Source Settings

              - **Pid** *(integer) --* The pid field is used in conjunction with the caption
              selector languageCode field as follows: - Specify PID and Language: Extracts captions
              from that PID; the language is "informational". - Specify PID and omit Language:
              Extracts the specified PID. - Omit PID and specify Language: Extracts the specified
              language, whichever PID that happens to be. - Omit PID and omit Language: Valid only
              if source is DVB-Sub that is being passed through; all languages will be passed
              through.

            - **TeletextSourceSettings** *(dict) --* Teletext Source Settings

              - **PageNumber** *(string) --* Specifies the teletext page number within the data
              stream from which to extract captions. Range of 0x100 (256) to 0x8FF (2303). Unused
              for passthrough. Should be specified as a hexadecimal string with no "0x" prefix.

      - **DeblockFilter** *(string) --* Enable or disable the deblock filter when filtering.

      - **DenoiseFilter** *(string) --* Enable or disable the denoise filter when filtering.

      - **FilterStrength** *(integer) --* Adjusts the magnitude of filtering from 1 (minimal) to 5
      (strongest).

      - **InputFilter** *(string) --* Turns on the filter for this input. MPEG-2 inputs have the
      deblocking filter enabled by default. 1) auto - filtering will be applied depending on input
      type/quality 2) disabled - no filtering will be applied to the input 3) forced - filtering
      will be applied regardless of input type

      - **NetworkInputSettings** *(dict) --* Input settings.

        - **HlsInputSettings** *(dict) --* Specifies HLS input settings when the uri is for a HLS
        manifest.

          - **Bandwidth** *(integer) --* When specified the HLS stream with the m3u8 BANDWIDTH that
          most closely matches this value will be chosen, otherwise the highest bandwidth stream in
          the m3u8 will be chosen. The bitrate is specified in bits per second, as in an HLS
          manifest.

          - **BufferSegments** *(integer) --* When specified, reading of the HLS input will begin
          this many buffer segments from the end (most recently written segment). When not
          specified, the HLS input will begin with the first segment specified in the m3u8.

          - **Retries** *(integer) --* The number of consecutive times that attempts to read a
          manifest or segment must fail before the input is considered unavailable.

          - **RetryInterval** *(integer) --* The number of seconds between retries when an attempt
          to read a manifest or segment fails.

        - **ServerValidation** *(string) --* Check HTTPS server certificates. When set to
        checkCryptographyOnly, cryptography in the certificate will be checked, but not the server's
        name. Certain subdomains (notably S3 buckets that use dots in the bucket name) do not
        strictly match the corresponding certificate's wildcard pattern and would otherwise cause
        the event to error. This setting is ignored for protocols that do not use https.

      - **SourceEndBehavior** *(string) --* Loop input if it is a file. This allows a file input to
      be streamed indefinitely.

      - **VideoSelector** *(dict) --* Informs which video elementary stream to decode for input
      types that have multiple available.

        - **ColorSpace** *(string) --* Specifies the color space of an input. This setting works in
        tandem with colorSpaceUsage and a video description's colorSpaceSettingsChoice to determine
        if any conversion will be performed.

        - **ColorSpaceUsage** *(string) --* Applies only if colorSpace is a value other than follow.
        This field controls how the value in the colorSpace field will be used. fallback means that
        when the input does include color space data, that data will be used, but when the input has
        no color space data, the value in colorSpace will be used. Choose fallback if your input is
        sometimes missing color space data, but when it does have color space data, that data is
        correct. force means to always use the value in colorSpace. Choose force if your input
        usually has no color space data or might have unreliable color space data.

        - **SelectorSettings** *(dict) --* The video selector settings.

          - **VideoSelectorPid** *(dict) --* Video Selector Pid

            - **Pid** *(integer) --* Selects a specific PID from within a video source.

          - **VideoSelectorProgramId** *(dict) --* Video Selector Program Id

            - **ProgramId** *(integer) --* Selects a specific program from within a multi-program
            transport stream. If the program doesn't exist, the first program within the transport
            stream will be selected by default.
    """


_ClientDescribeChannelResponseInputSpecificationTypeDef = TypedDict(
    "_ClientDescribeChannelResponseInputSpecificationTypeDef",
    {"Codec": str, "MaximumBitrate": str, "Resolution": str},
    total=False,
)


class ClientDescribeChannelResponseInputSpecificationTypeDef(
    _ClientDescribeChannelResponseInputSpecificationTypeDef
):
    """
    Type definition for `ClientDescribeChannelResponse` `InputSpecification`

    - **Codec** *(string) --* Input codec

    - **MaximumBitrate** *(string) --* Maximum input bitrate, categorized coarsely

    - **Resolution** *(string) --* Input resolution, categorized coarsely
    """


_ClientDescribeChannelResponsePipelineDetailsTypeDef = TypedDict(
    "_ClientDescribeChannelResponsePipelineDetailsTypeDef",
    {"ActiveInputAttachmentName": str, "ActiveInputSwitchActionName": str, "PipelineId": str},
    total=False,
)


class ClientDescribeChannelResponsePipelineDetailsTypeDef(
    _ClientDescribeChannelResponsePipelineDetailsTypeDef
):
    """
    Type definition for `ClientDescribeChannelResponse` `PipelineDetails`

    - **ActiveInputAttachmentName** *(string) --* The name of the active input attachment currently
    being ingested by this pipeline.

    - **ActiveInputSwitchActionName** *(string) --* The name of the input switch schedule action
    that occurred most recently and that resulted in the switch to the current input attachment for
    this pipeline.

    - **PipelineId** *(string) --* Pipeline ID
    """


_ClientDescribeChannelResponseTypeDef = TypedDict(
    "_ClientDescribeChannelResponseTypeDef",
    {
        "Arn": str,
        "ChannelClass": str,
        "Destinations": List[ClientDescribeChannelResponseDestinationsTypeDef],
        "EgressEndpoints": List[ClientDescribeChannelResponseEgressEndpointsTypeDef],
        "EncoderSettings": ClientDescribeChannelResponseEncoderSettingsTypeDef,
        "Id": str,
        "InputAttachments": List[ClientDescribeChannelResponseInputAttachmentsTypeDef],
        "InputSpecification": ClientDescribeChannelResponseInputSpecificationTypeDef,
        "LogLevel": str,
        "Name": str,
        "PipelineDetails": List[ClientDescribeChannelResponsePipelineDetailsTypeDef],
        "PipelinesRunningCount": int,
        "RoleArn": str,
        "State": str,
        "Tags": Dict[str, str],
    },
    total=False,
)


class ClientDescribeChannelResponseTypeDef(_ClientDescribeChannelResponseTypeDef):
    """
    Type definition for `ClientDescribeChannel` `Response`

    - **Arn** *(string) --* The unique arn of the channel.

    - **ChannelClass** *(string) --* The class for this channel. STANDARD for a channel with two
    pipelines or SINGLE_PIPELINE for a channel with one pipeline.

    - **Destinations** *(list) --* A list of destinations of the channel. For UDP outputs, there is
    one destination per output. For other types (HLS, for example), there is one destination per
    packager.

      - *(dict) --* Placeholder documentation for OutputDestination

        - **Id** *(string) --* User-specified id. This is used in an output group or an output.

        - **MediaPackageSettings** *(list) --* Destination settings for a MediaPackage output; one
        destination for both encoders.

          - *(dict) --* MediaPackage Output Destination Settings

            - **ChannelId** *(string) --* ID of the channel in MediaPackage that is the destination
            for this output group. You do not need to specify the individual inputs in MediaPackage;
            MediaLive will handle the connection of the two MediaLive pipelines to the two
            MediaPackage inputs. The MediaPackage channel and MediaLive channel must be in the same
            region.

        - **MultiplexSettings** *(dict) --* Destination settings for a Multiplex output; one
        destination for both encoders.

          - **MultiplexId** *(string) --* The ID of the Multiplex that the encoder is providing
          output to. You do not need to specify the individual inputs to the Multiplex; MediaLive
          will handle the connection of the two MediaLive pipelines to the two Multiplex instances.
          The Multiplex must be in the same region as the Channel.

          - **ProgramName** *(string) --* The program name of the Multiplex program that the encoder
          is providing output to.

        - **Settings** *(list) --* Destination settings for a standard output; one destination for
        each redundant encoder.

          - *(dict) --* Placeholder documentation for OutputDestinationSettings

            - **PasswordParam** *(string) --* key used to extract the password from EC2 Parameter
            store

            - **StreamName** *(string) --* Stream name for RTMP destinations (URLs of type rtmp://)

            - **Url** *(string) --* A URL specifying a destination

            - **Username** *(string) --* username for destination

    - **EgressEndpoints** *(list) --* The endpoints where outgoing connections initiate from

      - *(dict) --* Placeholder documentation for ChannelEgressEndpoint

        - **SourceIp** *(string) --* Public IP of where a channel's output comes from

    - **EncoderSettings** *(dict) --* Encoder Settings

      - **AudioDescriptions** *(list) --* Placeholder documentation for __listOfAudioDescription

        - *(dict) --* Audio Description

          - **AudioNormalizationSettings** *(dict) --* Advanced audio normalization settings.

            - **Algorithm** *(string) --* Audio normalization algorithm to use. itu17701 conforms to
            the CALM Act specification, itu17702 conforms to the EBU R-128 specification.

            - **AlgorithmControl** *(string) --* When set to correctAudio the output audio is
            corrected using the chosen algorithm. If set to measureOnly, the audio will be measured
            but not adjusted.

            - **TargetLkfs** *(float) --* Target LKFS(loudness) to adjust volume to. If no value is
            entered, a default value will be used according to the chosen algorithm. The CALM Act
            (1770-1) recommends a target of -24 LKFS. The EBU R-128 specification (1770-2)
            recommends a target of -23 LKFS.

          - **AudioSelectorName** *(string) --* The name of the AudioSelector used as the source for
          this AudioDescription.

          - **AudioType** *(string) --* Applies only if audioTypeControl is useConfigured. The
          values for audioType are defined in ISO-IEC 13818-1.

          - **AudioTypeControl** *(string) --* Determines how audio type is determined. followInput:
          If the input contains an ISO 639 audioType, then that value is passed through to the
          output. If the input contains no ISO 639 audioType, the value in Audio Type is included in
          the output. useConfigured: The value in Audio Type is included in the output. Note that
          this field and audioType are both ignored if inputType is broadcasterMixedAd.

          - **CodecSettings** *(dict) --* Audio codec settings.

            - **AacSettings** *(dict) --* Aac Settings

              - **Bitrate** *(float) --* Average bitrate in bits/second. Valid values depend on rate
              control mode and profile.

              - **CodingMode** *(string) --* Mono, Stereo, or 5.1 channel layout. Valid values
              depend on rate control mode and profile. The adReceiverMix setting receives a stereo
              description plus control track and emits a mono AAC encode of the description track,
              with control data emitted in the PES header as per ETSI TS 101 154 Annex E.

              - **InputType** *(string) --* Set to "broadcasterMixedAd" when input contains
              pre-mixed main audio + AD (narration) as a stereo pair. The Audio Type field
              (audioType) will be set to 3, which signals to downstream systems that this stream
              contains "broadcaster mixed AD". Note that the input received by the encoder must
              contain pre-mixed audio; the encoder does not perform the mixing. The values in
              audioTypeControl and audioType (in AudioDescription) are ignored when set to
              broadcasterMixedAd. Leave set to "normal" when input does not contain pre-mixed audio
              + AD.

              - **Profile** *(string) --* AAC Profile.

              - **RateControlMode** *(string) --* Rate Control Mode.

              - **RawFormat** *(string) --* Sets LATM / LOAS AAC output for raw containers.

              - **SampleRate** *(float) --* Sample rate in Hz. Valid values depend on rate control
              mode and profile.

              - **Spec** *(string) --* Use MPEG-2 AAC audio instead of MPEG-4 AAC audio for raw or
              MPEG-2 Transport Stream containers.

              - **VbrQuality** *(string) --* VBR Quality Level - Only used if rateControlMode is
              VBR.

            - **Ac3Settings** *(dict) --* Ac3 Settings

              - **Bitrate** *(float) --* Average bitrate in bits/second. Valid bitrates depend on
              the coding mode.

              - **BitstreamMode** *(string) --* Specifies the bitstream mode (bsmod) for the emitted
              AC-3 stream. See ATSC A/52-2012 for background on these values.

              - **CodingMode** *(string) --* Dolby Digital coding mode. Determines number of
              channels.

              - **Dialnorm** *(integer) --* Sets the dialnorm for the output. If excluded and input
              audio is Dolby Digital, dialnorm will be passed through.

              - **DrcProfile** *(string) --* If set to filmStandard, adds dynamic range compression
              signaling to the output bitstream as defined in the Dolby Digital specification.

              - **LfeFilter** *(string) --* When set to enabled, applies a 120Hz lowpass filter to
              the LFE channel prior to encoding. Only valid in codingMode32Lfe mode.

              - **MetadataControl** *(string) --* When set to "followInput", encoder metadata will
              be sourced from the DD, DD+, or DolbyE decoder that supplied this audio data. If audio
              was not supplied from one of these streams, then the static metadata settings will be
              used.

            - **Eac3Settings** *(dict) --* Eac3 Settings

              - **AttenuationControl** *(string) --* When set to attenuate3Db, applies a 3 dB
              attenuation to the surround channels. Only used for 3/2 coding mode.

              - **Bitrate** *(float) --* Average bitrate in bits/second. Valid bitrates depend on
              the coding mode.

              - **BitstreamMode** *(string) --* Specifies the bitstream mode (bsmod) for the emitted
              E-AC-3 stream. See ATSC A/52-2012 (Annex E) for background on these values.

              - **CodingMode** *(string) --* Dolby Digital Plus coding mode. Determines number of
              channels.

              - **DcFilter** *(string) --* When set to enabled, activates a DC highpass filter for
              all input channels.

              - **Dialnorm** *(integer) --* Sets the dialnorm for the output. If blank and input
              audio is Dolby Digital Plus, dialnorm will be passed through.

              - **DrcLine** *(string) --* Sets the Dolby dynamic range compression profile.

              - **DrcRf** *(string) --* Sets the profile for heavy Dolby dynamic range compression,
              ensures that the instantaneous signal peaks do not exceed specified levels.

              - **LfeControl** *(string) --* When encoding 3/2 audio, setting to lfe enables the LFE
              channel

              - **LfeFilter** *(string) --* When set to enabled, applies a 120Hz lowpass filter to
              the LFE channel prior to encoding. Only valid with codingMode32 coding mode.

              - **LoRoCenterMixLevel** *(float) --* Left only/Right only center mix level. Only used
              for 3/2 coding mode.

              - **LoRoSurroundMixLevel** *(float) --* Left only/Right only surround mix level. Only
              used for 3/2 coding mode.

              - **LtRtCenterMixLevel** *(float) --* Left total/Right total center mix level. Only
              used for 3/2 coding mode.

              - **LtRtSurroundMixLevel** *(float) --* Left total/Right total surround mix level.
              Only used for 3/2 coding mode.

              - **MetadataControl** *(string) --* When set to followInput, encoder metadata will be
              sourced from the DD, DD+, or DolbyE decoder that supplied this audio data. If audio
              was not supplied from one of these streams, then the static metadata settings will be
              used.

              - **PassthroughControl** *(string) --* When set to whenPossible, input DD+ audio will
              be passed through if it is present on the input. This detection is dynamic over the
              life of the transcode. Inputs that alternate between DD+ and non-DD+ content will have
              a consistent DD+ output as the system alternates between passthrough and encoding.

              - **PhaseControl** *(string) --* When set to shift90Degrees, applies a 90-degree phase
              shift to the surround channels. Only used for 3/2 coding mode.

              - **StereoDownmix** *(string) --* Stereo downmix preference. Only used for 3/2 coding
              mode.

              - **SurroundExMode** *(string) --* When encoding 3/2 audio, sets whether an extra
              center back surround channel is matrix encoded into the left and right surround
              channels.

              - **SurroundMode** *(string) --* When encoding 2/0 audio, sets whether Dolby Surround
              is matrix encoded into the two channels.

            - **Mp2Settings** *(dict) --* Mp2 Settings

              - **Bitrate** *(float) --* Average bitrate in bits/second.

              - **CodingMode** *(string) --* The MPEG2 Audio coding mode. Valid values are
              codingMode10 (for mono) or codingMode20 (for stereo).

              - **SampleRate** *(float) --* Sample rate in Hz.

            - **PassThroughSettings** *(dict) --* Pass Through Settings

          - **LanguageCode** *(string) --* Indicates the language of the audio output track. Only
          used if languageControlMode is useConfigured, or there is no ISO 639 language code
          specified in the input.

          - **LanguageCodeControl** *(string) --* Choosing followInput will cause the ISO 639
          language code of the output to follow the ISO 639 language code of the input. The
          languageCode will be used when useConfigured is set, or when followInput is selected but
          there is no ISO 639 language code specified by the input.

          - **Name** *(string) --* The name of this AudioDescription. Outputs will use this name to
          uniquely identify this AudioDescription. Description names should be unique within this
          Live Event.

          - **RemixSettings** *(dict) --* Settings that control how input audio channels are remixed
          into the output audio channels.

            - **ChannelMappings** *(list) --* Mapping of input channels to output channels, with
            appropriate gain adjustments.

              - *(dict) --* Audio Channel Mapping

                - **InputChannelLevels** *(list) --* Indices and gain values for each input channel
                that should be remixed into this output channel.

                  - *(dict) --* Input Channel Level

                    - **Gain** *(integer) --* Remixing value. Units are in dB and acceptable values
                    are within the range from -60 (mute) and 6 dB.

                    - **InputChannel** *(integer) --* The index of the input channel used as a
                    source.

                - **OutputChannel** *(integer) --* The index of the output channel being produced.

            - **ChannelsIn** *(integer) --* Number of input channels to be used.

            - **ChannelsOut** *(integer) --* Number of output channels to be produced. Valid values:
            1, 2, 4, 6, 8

          - **StreamName** *(string) --* Used for MS Smooth and Apple HLS outputs. Indicates the
          name displayed by the player (eg. English, or Director Commentary).

      - **AvailBlanking** *(dict) --* Settings for ad avail blanking.

        - **AvailBlankingImage** *(dict) --* Blanking image to be used. Leave empty for solid black.
        Only bmp and png images are supported.

          - **PasswordParam** *(string) --* key used to extract the password from EC2 Parameter
          store

          - **Uri** *(string) --* Uniform Resource Identifier - This should be a path to a file
          accessible to the Live system (eg. a http:// URI) depending on the output type. For
          example, a RTMP destination should have a uri simliar to: "rtmp://fmsserver/live".

          - **Username** *(string) --* Documentation update needed

        - **State** *(string) --* When set to enabled, causes video, audio and captions to be
        blanked when insertion metadata is added.

      - **AvailConfiguration** *(dict) --* Event-wide configuration settings for ad avail insertion.

        - **AvailSettings** *(dict) --* Ad avail settings.

          - **Scte35SpliceInsert** *(dict) --* Scte35 Splice Insert

            - **AdAvailOffset** *(integer) --* When specified, this offset (in milliseconds) is
            added to the input Ad Avail PTS time. This only applies to embedded SCTE 104/35 messages
            and does not apply to OOB messages.

            - **NoRegionalBlackoutFlag** *(string) --* When set to ignore, Segment Descriptors with
            noRegionalBlackoutFlag set to 0 will no longer trigger blackouts or Ad Avail slates

            - **WebDeliveryAllowedFlag** *(string) --* When set to ignore, Segment Descriptors with
            webDeliveryAllowedFlag set to 0 will no longer trigger blackouts or Ad Avail slates

          - **Scte35TimeSignalApos** *(dict) --* Scte35 Time Signal Apos

            - **AdAvailOffset** *(integer) --* When specified, this offset (in milliseconds) is
            added to the input Ad Avail PTS time. This only applies to embedded SCTE 104/35 messages
            and does not apply to OOB messages.

            - **NoRegionalBlackoutFlag** *(string) --* When set to ignore, Segment Descriptors with
            noRegionalBlackoutFlag set to 0 will no longer trigger blackouts or Ad Avail slates

            - **WebDeliveryAllowedFlag** *(string) --* When set to ignore, Segment Descriptors with
            webDeliveryAllowedFlag set to 0 will no longer trigger blackouts or Ad Avail slates

      - **BlackoutSlate** *(dict) --* Settings for blackout slate.

        - **BlackoutSlateImage** *(dict) --* Blackout slate image to be used. Leave empty for solid
        black. Only bmp and png images are supported.

          - **PasswordParam** *(string) --* key used to extract the password from EC2 Parameter
          store

          - **Uri** *(string) --* Uniform Resource Identifier - This should be a path to a file
          accessible to the Live system (eg. a http:// URI) depending on the output type. For
          example, a RTMP destination should have a uri simliar to: "rtmp://fmsserver/live".

          - **Username** *(string) --* Documentation update needed

        - **NetworkEndBlackout** *(string) --* Setting to enabled causes the encoder to blackout the
        video, audio, and captions, and raise the "Network Blackout Image" slate when an SCTE104/35
        Network End Segmentation Descriptor is encountered. The blackout will be lifted when the
        Network Start Segmentation Descriptor is encountered. The Network End and Network Start
        descriptors must contain a network ID that matches the value entered in "Network ID".

        - **NetworkEndBlackoutImage** *(dict) --* Path to local file to use as Network End Blackout
        image. Image will be scaled to fill the entire output raster.

          - **PasswordParam** *(string) --* key used to extract the password from EC2 Parameter
          store

          - **Uri** *(string) --* Uniform Resource Identifier - This should be a path to a file
          accessible to the Live system (eg. a http:// URI) depending on the output type. For
          example, a RTMP destination should have a uri simliar to: "rtmp://fmsserver/live".

          - **Username** *(string) --* Documentation update needed

        - **NetworkId** *(string) --* Provides Network ID that matches EIDR ID format (e.g.,
        "10.XXXX/XXXX-XXXX-XXXX-XXXX-XXXX-C").

        - **State** *(string) --* When set to enabled, causes video, audio and captions to be
        blanked when indicated by program metadata.

      - **CaptionDescriptions** *(list) --* Settings for caption decriptions

        - *(dict) --* Caption Description

          - **CaptionSelectorName** *(string) --* Specifies which input caption selector to use as a
          caption source when generating output captions. This field should match a captionSelector
          name.

          - **DestinationSettings** *(dict) --* Additional settings for captions destination that
          depend on the destination type.

            - **AribDestinationSettings** *(dict) --* Arib Destination Settings

            - **BurnInDestinationSettings** *(dict) --* Burn In Destination Settings

              - **Alignment** *(string) --* If no explicit xPosition or yPosition is provided,
              setting alignment to centered will place the captions at the bottom center of the
              output. Similarly, setting a left alignment will align captions to the bottom left of
              the output. If x and y positions are given in conjunction with the alignment
              parameter, the font will be justified (either left or centered) relative to those
              coordinates. Selecting "smart" justification will left-justify live subtitles and
              center-justify pre-recorded subtitles. All burn-in and DVB-Sub font settings must
              match.

              - **BackgroundColor** *(string) --* Specifies the color of the rectangle behind the
              captions. All burn-in and DVB-Sub font settings must match.

              - **BackgroundOpacity** *(integer) --* Specifies the opacity of the background
              rectangle. 255 is opaque; 0 is transparent. Leaving this parameter out is equivalent
              to setting it to 0 (transparent). All burn-in and DVB-Sub font settings must match.

              - **Font** *(dict) --* External font file used for caption burn-in. File extension
              must be 'ttf' or 'tte'. Although the user can select output fonts for many different
              types of input captions, embedded, STL and teletext sources use a strict grid system.
              Using external fonts with these caption sources could cause unexpected display of
              proportional fonts. All burn-in and DVB-Sub font settings must match.

                - **PasswordParam** *(string) --* key used to extract the password from EC2
                Parameter store

                - **Uri** *(string) --* Uniform Resource Identifier - This should be a path to a
                file accessible to the Live system (eg. a http:// URI) depending on the output type.
                For example, a RTMP destination should have a uri simliar to:
                "rtmp://fmsserver/live".

                - **Username** *(string) --* Documentation update needed

              - **FontColor** *(string) --* Specifies the color of the burned-in captions. This
              option is not valid for source captions that are STL, 608/embedded or teletext. These
              source settings are already pre-defined by the caption stream. All burn-in and DVB-Sub
              font settings must match.

              - **FontOpacity** *(integer) --* Specifies the opacity of the burned-in captions. 255
              is opaque; 0 is transparent. All burn-in and DVB-Sub font settings must match.

              - **FontResolution** *(integer) --* Font resolution in DPI (dots per inch); default is
              96 dpi. All burn-in and DVB-Sub font settings must match.

              - **FontSize** *(string) --* When set to 'auto' fontSize will scale depending on the
              size of the output. Giving a positive integer will specify the exact font size in
              points. All burn-in and DVB-Sub font settings must match.

              - **OutlineColor** *(string) --* Specifies font outline color. This option is not
              valid for source captions that are either 608/embedded or teletext. These source
              settings are already pre-defined by the caption stream. All burn-in and DVB-Sub font
              settings must match.

              - **OutlineSize** *(integer) --* Specifies font outline size in pixels. This option is
              not valid for source captions that are either 608/embedded or teletext. These source
              settings are already pre-defined by the caption stream. All burn-in and DVB-Sub font
              settings must match.

              - **ShadowColor** *(string) --* Specifies the color of the shadow cast by the
              captions. All burn-in and DVB-Sub font settings must match.

              - **ShadowOpacity** *(integer) --* Specifies the opacity of the shadow. 255 is opaque;
              0 is transparent. Leaving this parameter out is equivalent to setting it to 0
              (transparent). All burn-in and DVB-Sub font settings must match.

              - **ShadowXOffset** *(integer) --* Specifies the horizontal offset of the shadow
              relative to the captions in pixels. A value of -2 would result in a shadow offset 2
              pixels to the left. All burn-in and DVB-Sub font settings must match.

              - **ShadowYOffset** *(integer) --* Specifies the vertical offset of the shadow
              relative to the captions in pixels. A value of -2 would result in a shadow offset 2
              pixels above the text. All burn-in and DVB-Sub font settings must match.

              - **TeletextGridControl** *(string) --* Controls whether a fixed grid size will be
              used to generate the output subtitles bitmap. Only applicable for Teletext inputs and
              DVB-Sub/Burn-in outputs.

              - **XPosition** *(integer) --* Specifies the horizontal position of the caption
              relative to the left side of the output in pixels. A value of 10 would result in the
              captions starting 10 pixels from the left of the output. If no explicit xPosition is
              provided, the horizontal caption position will be determined by the alignment
              parameter. All burn-in and DVB-Sub font settings must match.

              - **YPosition** *(integer) --* Specifies the vertical position of the caption relative
              to the top of the output in pixels. A value of 10 would result in the captions
              starting 10 pixels from the top of the output. If no explicit yPosition is provided,
              the caption will be positioned towards the bottom of the output. All burn-in and
              DVB-Sub font settings must match.

            - **DvbSubDestinationSettings** *(dict) --* Dvb Sub Destination Settings

              - **Alignment** *(string) --* If no explicit xPosition or yPosition is provided,
              setting alignment to centered will place the captions at the bottom center of the
              output. Similarly, setting a left alignment will align captions to the bottom left of
              the output. If x and y positions are given in conjunction with the alignment
              parameter, the font will be justified (either left or centered) relative to those
              coordinates. Selecting "smart" justification will left-justify live subtitles and
              center-justify pre-recorded subtitles. This option is not valid for source captions
              that are STL or 608/embedded. These source settings are already pre-defined by the
              caption stream. All burn-in and DVB-Sub font settings must match.

              - **BackgroundColor** *(string) --* Specifies the color of the rectangle behind the
              captions. All burn-in and DVB-Sub font settings must match.

              - **BackgroundOpacity** *(integer) --* Specifies the opacity of the background
              rectangle. 255 is opaque; 0 is transparent. Leaving this parameter blank is equivalent
              to setting it to 0 (transparent). All burn-in and DVB-Sub font settings must match.

              - **Font** *(dict) --* External font file used for caption burn-in. File extension
              must be 'ttf' or 'tte'. Although the user can select output fonts for many different
              types of input captions, embedded, STL and teletext sources use a strict grid system.
              Using external fonts with these caption sources could cause unexpected display of
              proportional fonts. All burn-in and DVB-Sub font settings must match.

                - **PasswordParam** *(string) --* key used to extract the password from EC2
                Parameter store

                - **Uri** *(string) --* Uniform Resource Identifier - This should be a path to a
                file accessible to the Live system (eg. a http:// URI) depending on the output type.
                For example, a RTMP destination should have a uri simliar to:
                "rtmp://fmsserver/live".

                - **Username** *(string) --* Documentation update needed

              - **FontColor** *(string) --* Specifies the color of the burned-in captions. This
              option is not valid for source captions that are STL, 608/embedded or teletext. These
              source settings are already pre-defined by the caption stream. All burn-in and DVB-Sub
              font settings must match.

              - **FontOpacity** *(integer) --* Specifies the opacity of the burned-in captions. 255
              is opaque; 0 is transparent. All burn-in and DVB-Sub font settings must match.

              - **FontResolution** *(integer) --* Font resolution in DPI (dots per inch); default is
              96 dpi. All burn-in and DVB-Sub font settings must match.

              - **FontSize** *(string) --* When set to auto fontSize will scale depending on the
              size of the output. Giving a positive integer will specify the exact font size in
              points. All burn-in and DVB-Sub font settings must match.

              - **OutlineColor** *(string) --* Specifies font outline color. This option is not
              valid for source captions that are either 608/embedded or teletext. These source
              settings are already pre-defined by the caption stream. All burn-in and DVB-Sub font
              settings must match.

              - **OutlineSize** *(integer) --* Specifies font outline size in pixels. This option is
              not valid for source captions that are either 608/embedded or teletext. These source
              settings are already pre-defined by the caption stream. All burn-in and DVB-Sub font
              settings must match.

              - **ShadowColor** *(string) --* Specifies the color of the shadow cast by the
              captions. All burn-in and DVB-Sub font settings must match.

              - **ShadowOpacity** *(integer) --* Specifies the opacity of the shadow. 255 is opaque;
              0 is transparent. Leaving this parameter blank is equivalent to setting it to 0
              (transparent). All burn-in and DVB-Sub font settings must match.

              - **ShadowXOffset** *(integer) --* Specifies the horizontal offset of the shadow
              relative to the captions in pixels. A value of -2 would result in a shadow offset 2
              pixels to the left. All burn-in and DVB-Sub font settings must match.

              - **ShadowYOffset** *(integer) --* Specifies the vertical offset of the shadow
              relative to the captions in pixels. A value of -2 would result in a shadow offset 2
              pixels above the text. All burn-in and DVB-Sub font settings must match.

              - **TeletextGridControl** *(string) --* Controls whether a fixed grid size will be
              used to generate the output subtitles bitmap. Only applicable for Teletext inputs and
              DVB-Sub/Burn-in outputs.

              - **XPosition** *(integer) --* Specifies the horizontal position of the caption
              relative to the left side of the output in pixels. A value of 10 would result in the
              captions starting 10 pixels from the left of the output. If no explicit xPosition is
              provided, the horizontal caption position will be determined by the alignment
              parameter. This option is not valid for source captions that are STL, 608/embedded or
              teletext. These source settings are already pre-defined by the caption stream. All
              burn-in and DVB-Sub font settings must match.

              - **YPosition** *(integer) --* Specifies the vertical position of the caption relative
              to the top of the output in pixels. A value of 10 would result in the captions
              starting 10 pixels from the top of the output. If no explicit yPosition is provided,
              the caption will be positioned towards the bottom of the output. This option is not
              valid for source captions that are STL, 608/embedded or teletext. These source
              settings are already pre-defined by the caption stream. All burn-in and DVB-Sub font
              settings must match.

            - **EmbeddedDestinationSettings** *(dict) --* Embedded Destination Settings

            - **EmbeddedPlusScte20DestinationSettings** *(dict) --* Embedded Plus Scte20 Destination
            Settings

            - **RtmpCaptionInfoDestinationSettings** *(dict) --* Rtmp Caption Info Destination
            Settings

            - **Scte20PlusEmbeddedDestinationSettings** *(dict) --* Scte20 Plus Embedded Destination
            Settings

            - **Scte27DestinationSettings** *(dict) --* Scte27 Destination Settings

            - **SmpteTtDestinationSettings** *(dict) --* Smpte Tt Destination Settings

            - **TeletextDestinationSettings** *(dict) --* Teletext Destination Settings

            - **TtmlDestinationSettings** *(dict) --* Ttml Destination Settings

              - **StyleControl** *(string) --* When set to passthrough, passes through style and
              position information from a TTML-like input source (TTML, SMPTE-TT, CFF-TT) to the
              CFF-TT output or TTML output.

            - **WebvttDestinationSettings** *(dict) --* Webvtt Destination Settings

          - **LanguageCode** *(string) --* ISO 639-2 three-digit code:
          http://www.loc.gov/standards/iso639-2/

          - **LanguageDescription** *(string) --* Human readable information to indicate captions
          available for players (eg. English, or Spanish).

          - **Name** *(string) --* Name of the caption description. Used to associate a caption
          description with an output. Names must be unique within an event.

      - **GlobalConfiguration** *(dict) --* Configuration settings that apply to the event as a
      whole.

        - **InitialAudioGain** *(integer) --* Value to set the initial audio gain for the Live
        Event.

        - **InputEndAction** *(string) --* Indicates the action to take when the current input
        completes (e.g. end-of-file). When switchAndLoopInputs is configured the encoder will
        restart at the beginning of the first input. When "none" is configured the encoder will
        transcode either black, a solid color, or a user specified slate images per the "Input Loss
        Behavior" configuration until the next input switch occurs (which is controlled through the
        Channel Schedule API).

        - **InputLossBehavior** *(dict) --* Settings for system actions when input is lost.

          - **BlackFrameMsec** *(integer) --* Documentation update needed

          - **InputLossImageColor** *(string) --* When input loss image type is "color" this field
          specifies the color to use. Value: 6 hex characters representing the values of RGB.

          - **InputLossImageSlate** *(dict) --* When input loss image type is "slate" these fields
          specify the parameters for accessing the slate.

            - **PasswordParam** *(string) --* key used to extract the password from EC2 Parameter
            store

            - **Uri** *(string) --* Uniform Resource Identifier - This should be a path to a file
            accessible to the Live system (eg. a http:// URI) depending on the output type. For
            example, a RTMP destination should have a uri simliar to: "rtmp://fmsserver/live".

            - **Username** *(string) --* Documentation update needed

          - **InputLossImageType** *(string) --* Indicates whether to substitute a solid color or a
          slate into the output after input loss exceeds blackFrameMsec.

          - **RepeatFrameMsec** *(integer) --* Documentation update needed

        - **OutputLockingMode** *(string) --* Indicates how MediaLive pipelines are synchronized.
        PIPELINELOCKING - MediaLive will attempt to synchronize the output of each pipeline to the
        other. EPOCHLOCKING - MediaLive will attempt to synchronize the output of each pipeline to
        the Unix epoch.

        - **OutputTimingSource** *(string) --* Indicates whether the rate of frames emitted by the
        Live encoder should be paced by its system clock (which optionally may be locked to another
        source via NTP) or should be locked to the clock of the source that is providing the input
        stream.

        - **SupportLowFramerateInputs** *(string) --* Adjusts video input buffer for streams with
        very low video framerates. This is commonly set to enabled for music channels with less than
        one video frame per second.

      - **NielsenConfiguration** *(dict) --* Nielsen configuration settings.

        - **DistributorId** *(string) --* Enter the Distributor ID assigned to your organization by
        Nielsen.

        - **NielsenPcmToId3Tagging** *(string) --* Enables Nielsen PCM to ID3 tagging

      - **OutputGroups** *(list) --* Placeholder documentation for __listOfOutputGroup

        - *(dict) --* Output groups for this Live Event. Output groups contain information about
        where streams should be distributed.

          - **Name** *(string) --* Custom output group name optionally defined by the user. Only
          letters, numbers, and the underscore character allowed; only 32 characters allowed.

          - **OutputGroupSettings** *(dict) --* Settings associated with the output group.

            - **ArchiveGroupSettings** *(dict) --* Archive Group Settings

              - **Destination** *(dict) --* A directory and base filename where archive files should
              be written.

                - **DestinationRefId** *(string) --* Placeholder documentation for __string

              - **RolloverInterval** *(integer) --* Number of seconds to write to archive file
              before closing and starting a new one.

            - **FrameCaptureGroupSettings** *(dict) --* Frame Capture Group Settings

              - **Destination** *(dict) --* The destination for the frame capture files. Either the
              URI for an Amazon S3 bucket and object, plus a file name prefix (for example,
              s3ssl://sportsDelivery/highlights/20180820/curling_) or the URI for a MediaStore
              container, plus a file name prefix (for example,
              mediastoressl://sportsDelivery/20180820/curling_). The final file names consist of the
              prefix from the destination field (for example, "curling_") + name modifier + the
              counter (5 digits, starting from 00001) + extension (which is always .jpg). For
              example, curlingLow.00001.jpg

                - **DestinationRefId** *(string) --* Placeholder documentation for __string

            - **HlsGroupSettings** *(dict) --* Hls Group Settings

              - **AdMarkers** *(list) --* Choose one or more ad marker types to pass SCTE35 signals
              through to this group of Apple HLS outputs.

                - *(string) --* Hls Ad Markers

              - **BaseUrlContent** *(string) --* A partial URI prefix that will be prepended to each
              output in the media .m3u8 file. Can be used if base manifest is delivered from a
              different URL than the main .m3u8 file.

              - **BaseUrlManifest** *(string) --* A partial URI prefix that will be prepended to
              each output in the media .m3u8 file. Can be used if base manifest is delivered from a
              different URL than the main .m3u8 file.

              - **CaptionLanguageMappings** *(list) --* Mapping of up to 4 caption channels to
              caption languages. Is only meaningful if captionLanguageSetting is set to "insert".

                - *(dict) --* Maps a caption channel to an ISO 693-2 language code
                (http://www.loc.gov/standards/iso639-2), with an optional description.

                  - **CaptionChannel** *(integer) --* The closed caption channel being described by
                  this CaptionLanguageMapping. Each channel mapping must have a unique channel
                  number (maximum of 4)

                  - **LanguageCode** *(string) --* Three character ISO 639-2 language code (see
                  http://www.loc.gov/standards/iso639-2)

                  - **LanguageDescription** *(string) --* Textual description of language

              - **CaptionLanguageSetting** *(string) --* Applies only to 608 Embedded output
              captions. insert: Include CLOSED-CAPTIONS lines in the manifest. Specify at least one
              language in the CC1 Language Code field. One CLOSED-CAPTION line is added for each
              Language Code you specify. Make sure to specify the languages in the order in which
              they appear in the original source (if the source is embedded format) or the order of
              the caption selectors (if the source is other than embedded). Otherwise, languages in
              the manifest will not match up properly with the output captions. none: Include
              CLOSED-CAPTIONS=
                  NONE line in the manifest. omit: Omit any CLOSED-CAPTIONS line from
              the manifest.

              - **ClientCache** *(string) --* When set to "disabled", sets the #EXT-X-ALLOW-CACHE:no
              tag in the manifest, which prevents clients from saving media segments for later
              replay.

              - **CodecSpecification** *(string) --* Specification to use (RFC-6381 or the default
              RFC-4281) during m3u8 playlist generation.

              - **ConstantIv** *(string) --* For use with encryptionType. This is a 128-bit, 16-byte
              hex value represented by a 32-character text string. If ivSource is set to "explicit"
              then this parameter is required and is used as the IV for encryption.

              - **Destination** *(dict) --* A directory or HTTP destination for the HLS segments,
              manifest files, and encryption keys (if enabled).

                - **DestinationRefId** *(string) --* Placeholder documentation for __string

              - **DirectoryStructure** *(string) --* Place segments in subdirectories.

              - **EncryptionType** *(string) --* Encrypts the segments with the given encryption
              scheme. Exclude this parameter if no encryption is desired.

              - **HlsCdnSettings** *(dict) --* Parameters that control interactions with the CDN.

                - **HlsAkamaiSettings** *(dict) --* Hls Akamai Settings

                  - **ConnectionRetryInterval** *(integer) --* Number of seconds to wait before
                  retrying connection to the CDN if the connection is lost.

                  - **FilecacheDuration** *(integer) --* Size in seconds of file cache for streaming
                  outputs.

                  - **HttpTransferMode** *(string) --* Specify whether or not to use chunked
                  transfer encoding to Akamai. User should contact Akamai to enable this feature.

                  - **NumRetries** *(integer) --* Number of retry attempts that will be made before
                  the Live Event is put into an error state.

                  - **RestartDelay** *(integer) --* If a streaming output fails, number of seconds
                  to wait until a restart is initiated. A value of 0 means never restart.

                  - **Salt** *(string) --* Salt for authenticated Akamai.

                  - **Token** *(string) --* Token parameter for authenticated akamai. If not
                  specified, _gda_ is used.

                - **HlsBasicPutSettings** *(dict) --* Hls Basic Put Settings

                  - **ConnectionRetryInterval** *(integer) --* Number of seconds to wait before
                  retrying connection to the CDN if the connection is lost.

                  - **FilecacheDuration** *(integer) --* Size in seconds of file cache for streaming
                  outputs.

                  - **NumRetries** *(integer) --* Number of retry attempts that will be made before
                  the Live Event is put into an error state.

                  - **RestartDelay** *(integer) --* If a streaming output fails, number of seconds
                  to wait until a restart is initiated. A value of 0 means never restart.

                - **HlsMediaStoreSettings** *(dict) --* Hls Media Store Settings

                  - **ConnectionRetryInterval** *(integer) --* Number of seconds to wait before
                  retrying connection to the CDN if the connection is lost.

                  - **FilecacheDuration** *(integer) --* Size in seconds of file cache for streaming
                  outputs.

                  - **MediaStoreStorageClass** *(string) --* When set to temporal, output files are
                  stored in non-persistent memory for faster reading and writing.

                  - **NumRetries** *(integer) --* Number of retry attempts that will be made before
                  the Live Event is put into an error state.

                  - **RestartDelay** *(integer) --* If a streaming output fails, number of seconds
                  to wait until a restart is initiated. A value of 0 means never restart.

                - **HlsWebdavSettings** *(dict) --* Hls Webdav Settings

                  - **ConnectionRetryInterval** *(integer) --* Number of seconds to wait before
                  retrying connection to the CDN if the connection is lost.

                  - **FilecacheDuration** *(integer) --* Size in seconds of file cache for streaming
                  outputs.

                  - **HttpTransferMode** *(string) --* Specify whether or not to use chunked
                  transfer encoding to WebDAV.

                  - **NumRetries** *(integer) --* Number of retry attempts that will be made before
                  the Live Event is put into an error state.

                  - **RestartDelay** *(integer) --* If a streaming output fails, number of seconds
                  to wait until a restart is initiated. A value of 0 means never restart.

              - **IFrameOnlyPlaylists** *(string) --* DISABLED: Do not create an I-frame-only
              manifest, but do create the master and media manifests (according to the Output
              Selection field). STANDARD: Create an I-frame-only manifest for each output that
              contains video, as well as the other manifests (according to the Output Selection
              field). The I-frame manifest contains a #EXT-X-I-FRAMES-ONLY tag to indicate it is
              I-frame only, and one or more #EXT-X-BYTERANGE entries identifying the I-frame
              position. For example, #EXT-X-BYTERANGE:160364@1461888"

              - **IndexNSegments** *(integer) --* Applies only if Mode field is LIVE. Specifies the
              maximum number of segments in the media manifest file. After this maximum, older
              segments are removed from the media manifest. This number must be less than or equal
              to the Keep Segments field.

              - **InputLossAction** *(string) --* Parameter that control output group behavior on
              input loss.

              - **IvInManifest** *(string) --* For use with encryptionType. The IV (Initialization
              Vector) is a 128-bit number used in conjunction with the key for encrypting blocks. If
              set to "include", IV is listed in the manifest, otherwise the IV is not in the
              manifest.

              - **IvSource** *(string) --* For use with encryptionType. The IV (Initialization
              Vector) is a 128-bit number used in conjunction with the key for encrypting blocks. If
              this setting is "followsSegmentNumber", it will cause the IV to change every segment
              (to match the segment number). If this is set to "explicit", you must enter a
              constantIv value.

              - **KeepSegments** *(integer) --* Applies only if Mode field is LIVE. Specifies the
              number of media segments (.ts files) to retain in the destination directory.

              - **KeyFormat** *(string) --* The value specifies how the key is represented in the
              resource identified by the URI. If parameter is absent, an implicit value of
              "identity" is used. A reverse DNS string can also be given.

              - **KeyFormatVersions** *(string) --* Either a single positive integer version value
              or a slash delimited list of version values (1/2/3).

              - **KeyProviderSettings** *(dict) --* The key provider settings.

                - **StaticKeySettings** *(dict) --* Static Key Settings

                  - **KeyProviderServer** *(dict) --* The URL of the license server used for
                  protecting content.

                    - **PasswordParam** *(string) --* key used to extract the password from EC2
                    Parameter store

                    - **Uri** *(string) --* Uniform Resource Identifier - This should be a path to a
                    file accessible to the Live system (eg. a http:// URI) depending on the output
                    type. For example, a RTMP destination should have a uri simliar to:
                    "rtmp://fmsserver/live".

                    - **Username** *(string) --* Documentation update needed

                  - **StaticKeyValue** *(string) --* Static key value as a 32 character hexadecimal
                  string.

              - **ManifestCompression** *(string) --* When set to gzip, compresses HLS playlist.

              - **ManifestDurationFormat** *(string) --* Indicates whether the output manifest
              should use floating point or integer values for segment duration.

              - **MinSegmentLength** *(integer) --* When set, minimumSegmentLength is enforced by
              looking ahead and back within the specified range for a nearby avail and extending the
              segment size if needed.

              - **Mode** *(string) --* If "vod", all segments are indexed and kept permanently in
              the destination and manifest. If "live", only the number segments specified in
              keepSegments and indexNSegments are kept; newer segments replace older segments, which
              may prevent players from rewinding all the way to the beginning of the event. VOD mode
              uses HLS EXT-X-PLAYLIST-TYPE of EVENT while the channel is running, converting it to a
              "VOD" type manifest on completion of the stream.

              - **OutputSelection** *(string) --* MANIFESTSANDSEGMENTS: Generates manifests (master
              manifest, if applicable, and media manifests) for this output group. SEGMENTSONLY:
              Does not generate any manifests for this output group.

              - **ProgramDateTime** *(string) --* Includes or excludes EXT-X-PROGRAM-DATE-TIME tag
              in .m3u8 manifest files. The value is calculated as follows: either the program date
              and time are initialized using the input timecode source, or the time is initialized
              using the input timecode source and the date is initialized using the timestampOffset.

              - **ProgramDateTimePeriod** *(integer) --* Period of insertion of
              EXT-X-PROGRAM-DATE-TIME entry, in seconds.

              - **RedundantManifest** *(string) --* ENABLED: The master manifest (.m3u8 file) for
              each pipeline includes information about both pipelines: first its own media files,
              then the media files of the other pipeline. This feature allows playout device that
              support stale manifest detection to switch from one manifest to the other, when the
              current manifest seems to be stale. There are still two destinations and two master
              manifests, but both master manifests reference the media files from both pipelines.
              DISABLED: The master manifest (.m3u8 file) for each pipeline includes information
              about its own pipeline only. For an HLS output group with MediaPackage as the
              destination, the DISABLED behavior is always followed. MediaPackage regenerates the
              manifests it serves to players so a redundant manifest from MediaLive is irrelevant.

              - **SegmentLength** *(integer) --* Length of MPEG-2 Transport Stream segments to
              create (in seconds). Note that segments will end on the next keyframe after this
              number of seconds, so actual segment length may be longer.

              - **SegmentationMode** *(string) --* useInputSegmentation has been deprecated. The
              configured segment size is always used.

              - **SegmentsPerSubdirectory** *(integer) --* Number of segments to write to a
              subdirectory before starting a new one. directoryStructure must be
              subdirectoryPerStream for this setting to have an effect.

              - **StreamInfResolution** *(string) --* Include or exclude RESOLUTION attribute for
              video in EXT-X-STREAM-INF tag of variant manifest.

              - **TimedMetadataId3Frame** *(string) --* Indicates ID3 frame that has the timecode.

              - **TimedMetadataId3Period** *(integer) --* Timed Metadata interval in seconds.

              - **TimestampDeltaMilliseconds** *(integer) --* Provides an extra millisecond delta
              offset to fine tune the timestamps.

              - **TsFileMode** *(string) --* SEGMENTEDFILES: Emit the program as segments - multiple
              .ts media files. SINGLEFILE: Applies only if Mode field is VOD. Emit the program as a
              single .ts media file. The media manifest includes #EXT-X-BYTERANGE tags to index
              segments for playback. A typical use for this value is when sending the output to AWS
              Elemental MediaConvert, which can accept only a single media file. Playback while the
              channel is running is not guaranteed due to HTTP server caching.

            - **MediaPackageGroupSettings** *(dict) --* Media Package Group Settings

              - **Destination** *(dict) --* MediaPackage channel destination.

                - **DestinationRefId** *(string) --* Placeholder documentation for __string

            - **MsSmoothGroupSettings** *(dict) --* Ms Smooth Group Settings

              - **AcquisitionPointId** *(string) --* The value of the "Acquisition Point Identity"
              element used in each message placed in the sparse track. Only enabled if
              sparseTrackType is not "none".

              - **AudioOnlyTimecodeControl** *(string) --* If set to passthrough for an audio-only
              MS Smooth output, the fragment absolute time will be set to the current timecode. This
              option does not write timecodes to the audio elementary stream.

              - **CertificateMode** *(string) --* If set to verifyAuthenticity, verify the https
              certificate chain to a trusted Certificate Authority (CA). This will cause https
              outputs to self-signed certificates to fail.

              - **ConnectionRetryInterval** *(integer) --* Number of seconds to wait before retrying
              connection to the IIS server if the connection is lost. Content will be cached during
              this time and the cache will be be delivered to the IIS server once the connection is
              re-established.

              - **Destination** *(dict) --* Smooth Streaming publish point on an IIS server.
              Elemental Live acts as a "Push" encoder to IIS.

                - **DestinationRefId** *(string) --* Placeholder documentation for __string

              - **EventId** *(string) --* MS Smooth event ID to be sent to the IIS server. Should
              only be specified if eventIdMode is set to useConfigured.

              - **EventIdMode** *(string) --* Specifies whether or not to send an event ID to the
              IIS server. If no event ID is sent and the same Live Event is used without changing
              the publishing point, clients might see cached video from the previous run. Options: -
              "useConfigured" - use the value provided in eventId - "useTimestamp" - generate and
              send an event ID based on the current timestamp - "noEventId" - do not send an event
              ID to the IIS server.

              - **EventStopBehavior** *(string) --* When set to sendEos, send EOS signal to IIS
              server when stopping the event

              - **FilecacheDuration** *(integer) --* Size in seconds of file cache for streaming
              outputs.

              - **FragmentLength** *(integer) --* Length of mp4 fragments to generate (in seconds).
              Fragment length must be compatible with GOP size and framerate.

              - **InputLossAction** *(string) --* Parameter that control output group behavior on
              input loss.

              - **NumRetries** *(integer) --* Number of retry attempts.

              - **RestartDelay** *(integer) --* Number of seconds before initiating a restart due to
              output failure, due to exhausting the numRetries on one segment, or exceeding
              filecacheDuration.

              - **SegmentationMode** *(string) --* useInputSegmentation has been deprecated. The
              configured segment size is always used.

              - **SendDelayMs** *(integer) --* Number of milliseconds to delay the output from the
              second pipeline.

              - **SparseTrackType** *(string) --* If set to scte35, use incoming SCTE-35 messages to
              generate a sparse track in this group of MS-Smooth outputs.

              - **StreamManifestBehavior** *(string) --* When set to send, send stream manifest so
              publishing point doesn't start until all streams start.

              - **TimestampOffset** *(string) --* Timestamp offset for the event. Only used if
              timestampOffsetMode is set to useConfiguredOffset.

              - **TimestampOffsetMode** *(string) --* Type of timestamp date offset to use. -
              useEventStartDate: Use the date the event was started as the offset -
              useConfiguredOffset: Use an explicitly configured date as the offset

            - **MultiplexGroupSettings** *(dict) --* Multiplex Group Settings

            - **RtmpGroupSettings** *(dict) --* Rtmp Group Settings

              - **AuthenticationScheme** *(string) --* Authentication scheme to use when connecting
              with CDN

              - **CacheFullBehavior** *(string) --* Controls behavior when content cache fills up.
              If remote origin server stalls the RTMP connection and does not accept content fast
              enough the 'Media Cache' will fill up. When the cache reaches the duration specified
              by cacheLength the cache will stop accepting new content. If set to
              disconnectImmediately, the RTMP output will force a disconnect. Clear the media cache,
              and reconnect after restartDelay seconds. If set to waitForServer, the RTMP output
              will wait up to 5 minutes to allow the origin server to begin accepting data again.

              - **CacheLength** *(integer) --* Cache length, in seconds, is used to calculate buffer
              size.

              - **CaptionData** *(string) --* Controls the types of data that passes to
              onCaptionInfo outputs. If set to 'all' then 608 and 708 carried DTVCC data will be
              passed. If set to 'field1AndField2608' then DTVCC data will be stripped out, but 608
              data from both fields will be passed. If set to 'field1608' then only the data carried
              in 608 from field 1 video will be passed.

              - **InputLossAction** *(string) --* Controls the behavior of this RTMP group if input
              becomes unavailable. - emitOutput: Emit a slate until input returns. - pauseOutput:
              Stop transmitting data until input returns. This does not close the underlying RTMP
              connection.

              - **RestartDelay** *(integer) --* If a streaming output fails, number of seconds to
              wait until a restart is initiated. A value of 0 means never restart.

            - **UdpGroupSettings** *(dict) --* Udp Group Settings

              - **InputLossAction** *(string) --* Specifies behavior of last resort when input video
              is lost, and no more backup inputs are available. When dropTs is selected the entire
              transport stream will stop being emitted. When dropProgram is selected the program can
              be dropped from the transport stream (and replaced with null packets to meet the TS
              bitrate requirement). Or, when emitProgram is chosen the transport stream will
              continue to be produced normally with repeat frames, black frames, or slate frames
              substituted for the absent input video.

              - **TimedMetadataId3Frame** *(string) --* Indicates ID3 frame that has the timecode.

              - **TimedMetadataId3Period** *(integer) --* Timed Metadata interval in seconds.

          - **Outputs** *(list) --* Placeholder documentation for __listOfOutput

            - *(dict) --* Output settings. There can be multiple outputs within a group.

              - **AudioDescriptionNames** *(list) --* The names of the AudioDescriptions used as
              audio sources for this output.

                - *(string) --* Placeholder documentation for __string

              - **CaptionDescriptionNames** *(list) --* The names of the CaptionDescriptions used as
              caption sources for this output.

                - *(string) --* Placeholder documentation for __string

              - **OutputName** *(string) --* The name used to identify an output.

              - **OutputSettings** *(dict) --* Output type-specific settings.

                - **ArchiveOutputSettings** *(dict) --* Archive Output Settings

                  - **ContainerSettings** *(dict) --* Settings specific to the container type of the
                  file.

                    - **M2tsSettings** *(dict) --* M2ts Settings

                      - **AbsentInputAudioBehavior** *(string) --* When set to drop, output audio
                      streams will be removed from the program if the selected input audio stream is
                      removed from the input. This allows the output audio configuration to
                      dynamically change based on input configuration. If this is set to
                      encodeSilence, all output audio streams will output encoded silence when not
                      connected to an active input stream.

                      - **Arib** *(string) --* When set to enabled, uses ARIB-compliant field muxing
                      and removes video descriptor.

                      - **AribCaptionsPid** *(string) --* Packet Identifier (PID) for ARIB Captions
                      in the transport stream. Can be entered as a decimal or hexadecimal value.
                      Valid values are 32 (or 0x20)..8182 (or 0x1ff6).

                      - **AribCaptionsPidControl** *(string) --* If set to auto, pid number used for
                      ARIB Captions will be auto-selected from unused pids. If set to useConfigured,
                      ARIB Captions will be on the configured pid number.

                      - **AudioBufferModel** *(string) --* When set to dvb, uses DVB buffer model
                      for Dolby Digital audio. When set to atsc, the ATSC model is used.

                      - **AudioFramesPerPes** *(integer) --* The number of audio frames to insert
                      for each PES packet.

                      - **AudioPids** *(string) --* Packet Identifier (PID) of the elementary audio
                      stream(s) in the transport stream. Multiple values are accepted, and can be
                      entered in ranges and/or by comma separation. Can be entered as decimal or
                      hexadecimal values. Each PID specified must be in the range of 32 (or
                      0x20)..8182 (or 0x1ff6).

                      - **AudioStreamType** *(string) --* When set to atsc, uses stream type = 0x81
                      for AC3 and stream type =
                           0x87 for EAC3. When set to dvb, uses stream type =
                      0x06.

                      - **Bitrate** *(integer) --* The output bitrate of the transport stream in
                      bits per second. Setting to 0 lets the muxer automatically determine the
                      appropriate bitrate.

                      - **BufferModel** *(string) --* If set to multiplex, use multiplex buffer
                      model for accurate interleaving. Setting to bufferModel to none can lead to
                      lower latency, but low-memory devices may not be able to play back the stream
                      without interruptions.

                      - **CcDescriptor** *(string) --* When set to enabled, generates
                      captionServiceDescriptor in PMT.

                      - **DvbNitSettings** *(dict) --* Inserts DVB Network Information Table (NIT)
                      at the specified table repetition interval.

                        - **NetworkId** *(integer) --* The numeric value placed in the Network
                        Information Table (NIT).

                        - **NetworkName** *(string) --* The network name text placed in the
                        networkNameDescriptor inside the Network Information Table. Maximum length
                        is 256 characters.

                        - **RepInterval** *(integer) --* The number of milliseconds between
                        instances of this table in the output transport stream.

                      - **DvbSdtSettings** *(dict) --* Inserts DVB Service Description Table (SDT)
                      at the specified table repetition interval.

                        - **OutputSdt** *(string) --* Selects method of inserting SDT information
                        into output stream. The sdtFollow setting copies SDT information from input
                        stream to output stream. The sdtFollowIfPresent setting copies SDT
                        information from input stream to output stream if SDT information is present
                        in the input, otherwise it will fall back on the user-defined values. The
                        sdtManual setting means user will enter the SDT information. The sdtNone
                        setting means output stream will not contain SDT information.

                        - **RepInterval** *(integer) --* The number of milliseconds between
                        instances of this table in the output transport stream.

                        - **ServiceName** *(string) --* The service name placed in the
                        serviceDescriptor in the Service Description Table. Maximum length is 256
                        characters.

                        - **ServiceProviderName** *(string) --* The service provider name placed in
                        the serviceDescriptor in the Service Description Table. Maximum length is
                        256 characters.

                      - **DvbSubPids** *(string) --* Packet Identifier (PID) for input source DVB
                      Subtitle data to this output. Multiple values are accepted, and can be entered
                      in ranges and/or by comma separation. Can be entered as decimal or hexadecimal
                      values. Each PID specified must be in the range of 32 (or 0x20)..8182 (or
                      0x1ff6).

                      - **DvbTdtSettings** *(dict) --* Inserts DVB Time and Date Table (TDT) at the
                      specified table repetition interval.

                        - **RepInterval** *(integer) --* The number of milliseconds between
                        instances of this table in the output transport stream.

                      - **DvbTeletextPid** *(string) --* Packet Identifier (PID) for input source
                      DVB Teletext data to this output. Can be entered as a decimal or hexadecimal
                      value. Valid values are 32 (or 0x20)..8182 (or 0x1ff6).

                      - **Ebif** *(string) --* If set to passthrough, passes any EBIF data from the
                      input source to this output.

                      - **EbpAudioInterval** *(string) --* When videoAndFixedIntervals is selected,
                      audio EBP markers will be added to partitions 3 and 4. The interval between
                      these additional markers will be fixed, and will be slightly shorter than the
                      video EBP marker interval. Only available when EBP Cablelabs segmentation
                      markers are selected. Partitions 1 and 2 will always follow the video
                      interval.

                      - **EbpLookaheadMs** *(integer) --* When set, enforces that Encoder Boundary
                      Points do not come within the specified time interval of each other by looking
                      ahead at input video. If another EBP is going to come in within the specified
                      time interval, the current EBP is not emitted, and the segment is "stretched"
                      to the next marker. The lookahead value does not add latency to the system.
                      The Live Event must be configured elsewhere to create sufficient latency to
                      make the lookahead accurate.

                      - **EbpPlacement** *(string) --* Controls placement of EBP on Audio PIDs. If
                      set to videoAndAudioPids, EBP markers will be placed on the video PID and all
                      audio PIDs. If set to videoPid, EBP markers will be placed on only the video
                      PID.

                      - **EcmPid** *(string) --* This field is unused and deprecated.

                      - **EsRateInPes** *(string) --* Include or exclude the ES Rate field in the
                      PES header.

                      - **EtvPlatformPid** *(string) --* Packet Identifier (PID) for input source
                      ETV Platform data to this output. Can be entered as a decimal or hexadecimal
                      value. Valid values are 32 (or 0x20)..8182 (or 0x1ff6).

                      - **EtvSignalPid** *(string) --* Packet Identifier (PID) for input source ETV
                      Signal data to this output. Can be entered as a decimal or hexadecimal value.
                      Valid values are 32 (or 0x20)..8182 (or 0x1ff6).

                      - **FragmentTime** *(float) --* The length in seconds of each fragment. Only
                      used with EBP markers.

                      - **Klv** *(string) --* If set to passthrough, passes any KLV data from the
                      input source to this output.

                      - **KlvDataPids** *(string) --* Packet Identifier (PID) for input source KLV
                      data to this output. Multiple values are accepted, and can be entered in
                      ranges and/or by comma separation. Can be entered as decimal or hexadecimal
                      values. Each PID specified must be in the range of 32 (or 0x20)..8182 (or
                      0x1ff6).

                      - **NielsenId3Behavior** *(string) --* If set to passthrough, Nielsen
                      inaudible tones for media tracking will be detected in the input audio and an
                      equivalent ID3 tag will be inserted in the output.

                      - **NullPacketBitrate** *(float) --* Value in bits per second of extra null
                      packets to insert into the transport stream. This can be used if a downstream
                      encryption system requires periodic null packets.

                      - **PatInterval** *(integer) --* The number of milliseconds between instances
                      of this table in the output transport stream. Valid values are 0, 10..1000.

                      - **PcrControl** *(string) --* When set to pcrEveryPesPacket, a Program Clock
                      Reference value is inserted for every Packetized Elementary Stream (PES)
                      header. This parameter is effective only when the PCR PID is the same as the
                      video or audio elementary stream.

                      - **PcrPeriod** *(integer) --* Maximum time in milliseconds between Program
                      Clock Reference (PCRs) inserted into the transport stream.

                      - **PcrPid** *(string) --* Packet Identifier (PID) of the Program Clock
                      Reference (PCR) in the transport stream. When no value is given, the encoder
                      will assign the same value as the Video PID. Can be entered as a decimal or
                      hexadecimal value. Valid values are 32 (or 0x20)..8182 (or 0x1ff6).

                      - **PmtInterval** *(integer) --* The number of milliseconds between instances
                      of this table in the output transport stream. Valid values are 0, 10..1000.

                      - **PmtPid** *(string) --* Packet Identifier (PID) for the Program Map Table
                      (PMT) in the transport stream. Can be entered as a decimal or hexadecimal
                      value. Valid values are 32 (or 0x20)..8182 (or 0x1ff6).

                      - **ProgramNum** *(integer) --* The value of the program number field in the
                      Program Map Table.

                      - **RateMode** *(string) --* When vbr, does not insert null packets into
                      transport stream to fill specified bitrate. The bitrate setting acts as the
                      maximum bitrate when vbr is set.

                      - **Scte27Pids** *(string) --* Packet Identifier (PID) for input source
                      SCTE-27 data to this output. Multiple values are accepted, and can be entered
                      in ranges and/or by comma separation. Can be entered as decimal or hexadecimal
                      values. Each PID specified must be in the range of 32 (or 0x20)..8182 (or
                      0x1ff6).

                      - **Scte35Control** *(string) --* Optionally pass SCTE-35 signals from the
                      input source to this output.

                      - **Scte35Pid** *(string) --* Packet Identifier (PID) of the SCTE-35 stream in
                      the transport stream. Can be entered as a decimal or hexadecimal value. Valid
                      values are 32 (or 0x20)..8182 (or 0x1ff6).

                      - **SegmentationMarkers** *(string) --* Inserts segmentation markers at each
                      segmentationTime period. raiSegstart sets the Random Access Indicator bit in
                      the adaptation field. raiAdapt sets the RAI bit and adds the current timecode
                      in the private data bytes. psiSegstart inserts PAT and PMT tables at the start
                      of segments. ebp adds Encoder Boundary Point information to the adaptation
                      field as per OpenCable specification OC-SP-EBP-I01-130118. ebpLegacy adds
                      Encoder Boundary Point information to the adaptation field using a legacy
                      proprietary format.

                      - **SegmentationStyle** *(string) --* The segmentation style parameter
                      controls how segmentation markers are inserted into the transport stream. With
                      avails, it is possible that segments may be truncated, which can influence
                      where future segmentation markers are inserted. When a segmentation style of
                      "resetCadence" is selected and a segment is truncated due to an avail, we will
                      reset the segmentation cadence. This means the subsequent segment will have a
                      duration of $segmentationTime seconds. When a segmentation style of
                      "maintainCadence" is selected and a segment is truncated due to an avail, we
                      will not reset the segmentation cadence. This means the subsequent segment
                      will likely be truncated as well. However, all segments after that will have a
                      duration of $segmentationTime seconds. Note that EBP lookahead is a slight
                      exception to this rule.

                      - **SegmentationTime** *(float) --* The length in seconds of each segment.
                      Required unless markers is set to None_.

                      - **TimedMetadataBehavior** *(string) --* When set to passthrough, timed
                      metadata will be passed through from input to output.

                      - **TimedMetadataPid** *(string) --* Packet Identifier (PID) of the timed
                      metadata stream in the transport stream. Can be entered as a decimal or
                      hexadecimal value. Valid values are 32 (or 0x20)..8182 (or 0x1ff6).

                      - **TransportStreamId** *(integer) --* The value of the transport stream ID
                      field in the Program Map Table.

                      - **VideoPid** *(string) --* Packet Identifier (PID) of the elementary video
                      stream in the transport stream. Can be entered as a decimal or hexadecimal
                      value. Valid values are 32 (or 0x20)..8182 (or 0x1ff6).

                  - **Extension** *(string) --* Output file extension. If excluded, this will be
                  auto-selected from the container type.

                  - **NameModifier** *(string) --* String concatenated to the end of the destination
                  filename. Required for multiple outputs of the same type.

                - **FrameCaptureOutputSettings** *(dict) --* Frame Capture Output Settings

                  - **NameModifier** *(string) --* Required if the output group contains more than
                  one output. This modifier forms part of the output file name.

                - **HlsOutputSettings** *(dict) --* Hls Output Settings

                  - **HlsSettings** *(dict) --* Settings regarding the underlying stream. These
                  settings are different for audio-only outputs.

                    - **AudioOnlyHlsSettings** *(dict) --* Audio Only Hls Settings

                      - **AudioGroupId** *(string) --* Specifies the group to which the audio
                      Rendition belongs.

                      - **AudioOnlyImage** *(dict) --* Optional. Specifies the .jpg or .png image to
                      use as the cover art for an audio-only output. We recommend a low bit-size
                      file because the image increases the output audio bandwidth. The image is
                      attached to the audio as an ID3 tag, frame type APIC, picture type 0x10, as
                      per the "ID3 tag version 2.4.0 - Native Frames" standard.

                        - **PasswordParam** *(string) --* key used to extract the password from EC2
                        Parameter store

                        - **Uri** *(string) --* Uniform Resource Identifier - This should be a path
                        to a file accessible to the Live system (eg. a http:// URI) depending on the
                        output type. For example, a RTMP destination should have a uri simliar to:
                        "rtmp://fmsserver/live".

                        - **Username** *(string) --* Documentation update needed

                      - **AudioTrackType** *(string) --* Four types of audio-only tracks are
                      supported: Audio-Only Variant Stream The client can play back this audio-only
                      stream instead of video in low-bandwidth scenarios. Represented as an
                      EXT-X-STREAM-INF in the HLS manifest. Alternate Audio, Auto Select, Default
                      Alternate rendition that the client should try to play back by default.
                      Represented as an EXT-X-MEDIA in the HLS manifest with DEFAULT=YES,
                      AUTOSELECT=
                          YES Alternate Audio, Auto Select, Not Default Alternate rendition
                      that the client may try to play back by default. Represented as an EXT-X-MEDIA
                      in the HLS manifest with DEFAULT=NO, AUTOSELECT=
                          YES Alternate Audio, not Auto
                      Select Alternate rendition that the client will not try to play back by
                      default. Represented as an EXT-X-MEDIA in the HLS manifest with DEFAULT=NO,
                      AUTOSELECT=NO

                    - **StandardHlsSettings** *(dict) --* Standard Hls Settings

                      - **AudioRenditionSets** *(string) --* List all the audio groups that are used
                      with the video output stream. Input all the audio GROUP-IDs that are
                      associated to the video, separate by ','.

                      - **M3u8Settings** *(dict) --* Settings information for the .m3u8 container

                        - **AudioFramesPerPes** *(integer) --* The number of audio frames to insert
                        for each PES packet.

                        - **AudioPids** *(string) --* Packet Identifier (PID) of the elementary
                        audio stream(s) in the transport stream. Multiple values are accepted, and
                        can be entered in ranges and/or by comma separation. Can be entered as
                        decimal or hexadecimal values.

                        - **EcmPid** *(string) --* This parameter is unused and deprecated.

                        - **NielsenId3Behavior** *(string) --* If set to passthrough, Nielsen
                        inaudible tones for media tracking will be detected in the input audio and
                        an equivalent ID3 tag will be inserted in the output.

                        - **PatInterval** *(integer) --* The number of milliseconds between
                        instances of this table in the output transport stream. A value of \\"0\\"
                        writes out the PMT once per segment file.

                        - **PcrControl** *(string) --* When set to pcrEveryPesPacket, a Program
                        Clock Reference value is inserted for every Packetized Elementary Stream
                        (PES) header. This parameter is effective only when the PCR PID is the same
                        as the video or audio elementary stream.

                        - **PcrPeriod** *(integer) --* Maximum time in milliseconds between Program
                        Clock References (PCRs) inserted into the transport stream.

                        - **PcrPid** *(string) --* Packet Identifier (PID) of the Program Clock
                        Reference (PCR) in the transport stream. When no value is given, the encoder
                        will assign the same value as the Video PID. Can be entered as a decimal or
                        hexadecimal value.

                        - **PmtInterval** *(integer) --* The number of milliseconds between
                        instances of this table in the output transport stream. A value of \\"0\\"
                        writes out the PMT once per segment file.

                        - **PmtPid** *(string) --* Packet Identifier (PID) for the Program Map Table
                        (PMT) in the transport stream. Can be entered as a decimal or hexadecimal
                        value.

                        - **ProgramNum** *(integer) --* The value of the program number field in the
                        Program Map Table.

                        - **Scte35Behavior** *(string) --* If set to passthrough, passes any SCTE-35
                        signals from the input source to this output.

                        - **Scte35Pid** *(string) --* Packet Identifier (PID) of the SCTE-35 stream
                        in the transport stream. Can be entered as a decimal or hexadecimal value.

                        - **TimedMetadataBehavior** *(string) --* When set to passthrough, timed
                        metadata is passed through from input to output.

                        - **TimedMetadataPid** *(string) --* Packet Identifier (PID) of the timed
                        metadata stream in the transport stream. Can be entered as a decimal or
                        hexadecimal value. Valid values are 32 (or 0x20)..8182 (or 0x1ff6).

                        - **TransportStreamId** *(integer) --* The value of the transport stream ID
                        field in the Program Map Table.

                        - **VideoPid** *(string) --* Packet Identifier (PID) of the elementary video
                        stream in the transport stream. Can be entered as a decimal or hexadecimal
                        value.

                  - **NameModifier** *(string) --* String concatenated to the end of the destination
                  filename. Accepts \\"Format Identifiers\\":#formatIdentifierParameters.

                  - **SegmentModifier** *(string) --* String concatenated to end of segment
                  filenames.

                - **MediaPackageOutputSettings** *(dict) --* Media Package Output Settings

                - **MsSmoothOutputSettings** *(dict) --* Ms Smooth Output Settings

                  - **H265PackagingType** *(string) --* Only applicable when this output is
                  referencing an H.265 video description. Specifies whether MP4 segments should be
                  packaged as HEV1 or HVC1.

                  - **NameModifier** *(string) --* String concatenated to the end of the destination
                  filename. Required for multiple outputs of the same type.

                - **MultiplexOutputSettings** *(dict) --* Multiplex Output Settings

                  - **Destination** *(dict) --* Destination is a Multiplex.

                    - **DestinationRefId** *(string) --* Placeholder documentation for __string

                - **RtmpOutputSettings** *(dict) --* Rtmp Output Settings

                  - **CertificateMode** *(string) --* If set to verifyAuthenticity, verify the tls
                  certificate chain to a trusted Certificate Authority (CA). This will cause rtmps
                  outputs with self-signed certificates to fail.

                  - **ConnectionRetryInterval** *(integer) --* Number of seconds to wait before
                  retrying a connection to the Flash Media server if the connection is lost.

                  - **Destination** *(dict) --* The RTMP endpoint excluding the stream name (eg.
                  rtmp://host/appname). For connection to Akamai, a username and password must be
                  supplied. URI fields accept format identifiers.

                    - **DestinationRefId** *(string) --* Placeholder documentation for __string

                  - **NumRetries** *(integer) --* Number of retry attempts.

                - **UdpOutputSettings** *(dict) --* Udp Output Settings

                  - **BufferMsec** *(integer) --* UDP output buffering in milliseconds. Larger
                  values increase latency through the transcoder but simultaneously assist the
                  transcoder in maintaining a constant, low-jitter UDP/RTP output while
                  accommodating clock recovery, input switching, input disruptions, picture
                  reordering, etc.

                  - **ContainerSettings** *(dict) --* Udp Container Settings

                    - **M2tsSettings** *(dict) --* M2ts Settings

                      - **AbsentInputAudioBehavior** *(string) --* When set to drop, output audio
                      streams will be removed from the program if the selected input audio stream is
                      removed from the input. This allows the output audio configuration to
                      dynamically change based on input configuration. If this is set to
                      encodeSilence, all output audio streams will output encoded silence when not
                      connected to an active input stream.

                      - **Arib** *(string) --* When set to enabled, uses ARIB-compliant field muxing
                      and removes video descriptor.

                      - **AribCaptionsPid** *(string) --* Packet Identifier (PID) for ARIB Captions
                      in the transport stream. Can be entered as a decimal or hexadecimal value.
                      Valid values are 32 (or 0x20)..8182 (or 0x1ff6).

                      - **AribCaptionsPidControl** *(string) --* If set to auto, pid number used for
                      ARIB Captions will be auto-selected from unused pids. If set to useConfigured,
                      ARIB Captions will be on the configured pid number.

                      - **AudioBufferModel** *(string) --* When set to dvb, uses DVB buffer model
                      for Dolby Digital audio. When set to atsc, the ATSC model is used.

                      - **AudioFramesPerPes** *(integer) --* The number of audio frames to insert
                      for each PES packet.

                      - **AudioPids** *(string) --* Packet Identifier (PID) of the elementary audio
                      stream(s) in the transport stream. Multiple values are accepted, and can be
                      entered in ranges and/or by comma separation. Can be entered as decimal or
                      hexadecimal values. Each PID specified must be in the range of 32 (or
                      0x20)..8182 (or 0x1ff6).

                      - **AudioStreamType** *(string) --* When set to atsc, uses stream type = 0x81
                      for AC3 and stream type =
                           0x87 for EAC3. When set to dvb, uses stream type =
                      0x06.

                      - **Bitrate** *(integer) --* The output bitrate of the transport stream in
                      bits per second. Setting to 0 lets the muxer automatically determine the
                      appropriate bitrate.

                      - **BufferModel** *(string) --* If set to multiplex, use multiplex buffer
                      model for accurate interleaving. Setting to bufferModel to none can lead to
                      lower latency, but low-memory devices may not be able to play back the stream
                      without interruptions.

                      - **CcDescriptor** *(string) --* When set to enabled, generates
                      captionServiceDescriptor in PMT.

                      - **DvbNitSettings** *(dict) --* Inserts DVB Network Information Table (NIT)
                      at the specified table repetition interval.

                        - **NetworkId** *(integer) --* The numeric value placed in the Network
                        Information Table (NIT).

                        - **NetworkName** *(string) --* The network name text placed in the
                        networkNameDescriptor inside the Network Information Table. Maximum length
                        is 256 characters.

                        - **RepInterval** *(integer) --* The number of milliseconds between
                        instances of this table in the output transport stream.

                      - **DvbSdtSettings** *(dict) --* Inserts DVB Service Description Table (SDT)
                      at the specified table repetition interval.

                        - **OutputSdt** *(string) --* Selects method of inserting SDT information
                        into output stream. The sdtFollow setting copies SDT information from input
                        stream to output stream. The sdtFollowIfPresent setting copies SDT
                        information from input stream to output stream if SDT information is present
                        in the input, otherwise it will fall back on the user-defined values. The
                        sdtManual setting means user will enter the SDT information. The sdtNone
                        setting means output stream will not contain SDT information.

                        - **RepInterval** *(integer) --* The number of milliseconds between
                        instances of this table in the output transport stream.

                        - **ServiceName** *(string) --* The service name placed in the
                        serviceDescriptor in the Service Description Table. Maximum length is 256
                        characters.

                        - **ServiceProviderName** *(string) --* The service provider name placed in
                        the serviceDescriptor in the Service Description Table. Maximum length is
                        256 characters.

                      - **DvbSubPids** *(string) --* Packet Identifier (PID) for input source DVB
                      Subtitle data to this output. Multiple values are accepted, and can be entered
                      in ranges and/or by comma separation. Can be entered as decimal or hexadecimal
                      values. Each PID specified must be in the range of 32 (or 0x20)..8182 (or
                      0x1ff6).

                      - **DvbTdtSettings** *(dict) --* Inserts DVB Time and Date Table (TDT) at the
                      specified table repetition interval.

                        - **RepInterval** *(integer) --* The number of milliseconds between
                        instances of this table in the output transport stream.

                      - **DvbTeletextPid** *(string) --* Packet Identifier (PID) for input source
                      DVB Teletext data to this output. Can be entered as a decimal or hexadecimal
                      value. Valid values are 32 (or 0x20)..8182 (or 0x1ff6).

                      - **Ebif** *(string) --* If set to passthrough, passes any EBIF data from the
                      input source to this output.

                      - **EbpAudioInterval** *(string) --* When videoAndFixedIntervals is selected,
                      audio EBP markers will be added to partitions 3 and 4. The interval between
                      these additional markers will be fixed, and will be slightly shorter than the
                      video EBP marker interval. Only available when EBP Cablelabs segmentation
                      markers are selected. Partitions 1 and 2 will always follow the video
                      interval.

                      - **EbpLookaheadMs** *(integer) --* When set, enforces that Encoder Boundary
                      Points do not come within the specified time interval of each other by looking
                      ahead at input video. If another EBP is going to come in within the specified
                      time interval, the current EBP is not emitted, and the segment is "stretched"
                      to the next marker. The lookahead value does not add latency to the system.
                      The Live Event must be configured elsewhere to create sufficient latency to
                      make the lookahead accurate.

                      - **EbpPlacement** *(string) --* Controls placement of EBP on Audio PIDs. If
                      set to videoAndAudioPids, EBP markers will be placed on the video PID and all
                      audio PIDs. If set to videoPid, EBP markers will be placed on only the video
                      PID.

                      - **EcmPid** *(string) --* This field is unused and deprecated.

                      - **EsRateInPes** *(string) --* Include or exclude the ES Rate field in the
                      PES header.

                      - **EtvPlatformPid** *(string) --* Packet Identifier (PID) for input source
                      ETV Platform data to this output. Can be entered as a decimal or hexadecimal
                      value. Valid values are 32 (or 0x20)..8182 (or 0x1ff6).

                      - **EtvSignalPid** *(string) --* Packet Identifier (PID) for input source ETV
                      Signal data to this output. Can be entered as a decimal or hexadecimal value.
                      Valid values are 32 (or 0x20)..8182 (or 0x1ff6).

                      - **FragmentTime** *(float) --* The length in seconds of each fragment. Only
                      used with EBP markers.

                      - **Klv** *(string) --* If set to passthrough, passes any KLV data from the
                      input source to this output.

                      - **KlvDataPids** *(string) --* Packet Identifier (PID) for input source KLV
                      data to this output. Multiple values are accepted, and can be entered in
                      ranges and/or by comma separation. Can be entered as decimal or hexadecimal
                      values. Each PID specified must be in the range of 32 (or 0x20)..8182 (or
                      0x1ff6).

                      - **NielsenId3Behavior** *(string) --* If set to passthrough, Nielsen
                      inaudible tones for media tracking will be detected in the input audio and an
                      equivalent ID3 tag will be inserted in the output.

                      - **NullPacketBitrate** *(float) --* Value in bits per second of extra null
                      packets to insert into the transport stream. This can be used if a downstream
                      encryption system requires periodic null packets.

                      - **PatInterval** *(integer) --* The number of milliseconds between instances
                      of this table in the output transport stream. Valid values are 0, 10..1000.

                      - **PcrControl** *(string) --* When set to pcrEveryPesPacket, a Program Clock
                      Reference value is inserted for every Packetized Elementary Stream (PES)
                      header. This parameter is effective only when the PCR PID is the same as the
                      video or audio elementary stream.

                      - **PcrPeriod** *(integer) --* Maximum time in milliseconds between Program
                      Clock Reference (PCRs) inserted into the transport stream.

                      - **PcrPid** *(string) --* Packet Identifier (PID) of the Program Clock
                      Reference (PCR) in the transport stream. When no value is given, the encoder
                      will assign the same value as the Video PID. Can be entered as a decimal or
                      hexadecimal value. Valid values are 32 (or 0x20)..8182 (or 0x1ff6).

                      - **PmtInterval** *(integer) --* The number of milliseconds between instances
                      of this table in the output transport stream. Valid values are 0, 10..1000.

                      - **PmtPid** *(string) --* Packet Identifier (PID) for the Program Map Table
                      (PMT) in the transport stream. Can be entered as a decimal or hexadecimal
                      value. Valid values are 32 (or 0x20)..8182 (or 0x1ff6).

                      - **ProgramNum** *(integer) --* The value of the program number field in the
                      Program Map Table.

                      - **RateMode** *(string) --* When vbr, does not insert null packets into
                      transport stream to fill specified bitrate. The bitrate setting acts as the
                      maximum bitrate when vbr is set.

                      - **Scte27Pids** *(string) --* Packet Identifier (PID) for input source
                      SCTE-27 data to this output. Multiple values are accepted, and can be entered
                      in ranges and/or by comma separation. Can be entered as decimal or hexadecimal
                      values. Each PID specified must be in the range of 32 (or 0x20)..8182 (or
                      0x1ff6).

                      - **Scte35Control** *(string) --* Optionally pass SCTE-35 signals from the
                      input source to this output.

                      - **Scte35Pid** *(string) --* Packet Identifier (PID) of the SCTE-35 stream in
                      the transport stream. Can be entered as a decimal or hexadecimal value. Valid
                      values are 32 (or 0x20)..8182 (or 0x1ff6).

                      - **SegmentationMarkers** *(string) --* Inserts segmentation markers at each
                      segmentationTime period. raiSegstart sets the Random Access Indicator bit in
                      the adaptation field. raiAdapt sets the RAI bit and adds the current timecode
                      in the private data bytes. psiSegstart inserts PAT and PMT tables at the start
                      of segments. ebp adds Encoder Boundary Point information to the adaptation
                      field as per OpenCable specification OC-SP-EBP-I01-130118. ebpLegacy adds
                      Encoder Boundary Point information to the adaptation field using a legacy
                      proprietary format.

                      - **SegmentationStyle** *(string) --* The segmentation style parameter
                      controls how segmentation markers are inserted into the transport stream. With
                      avails, it is possible that segments may be truncated, which can influence
                      where future segmentation markers are inserted. When a segmentation style of
                      "resetCadence" is selected and a segment is truncated due to an avail, we will
                      reset the segmentation cadence. This means the subsequent segment will have a
                      duration of $segmentationTime seconds. When a segmentation style of
                      "maintainCadence" is selected and a segment is truncated due to an avail, we
                      will not reset the segmentation cadence. This means the subsequent segment
                      will likely be truncated as well. However, all segments after that will have a
                      duration of $segmentationTime seconds. Note that EBP lookahead is a slight
                      exception to this rule.

                      - **SegmentationTime** *(float) --* The length in seconds of each segment.
                      Required unless markers is set to None_.

                      - **TimedMetadataBehavior** *(string) --* When set to passthrough, timed
                      metadata will be passed through from input to output.

                      - **TimedMetadataPid** *(string) --* Packet Identifier (PID) of the timed
                      metadata stream in the transport stream. Can be entered as a decimal or
                      hexadecimal value. Valid values are 32 (or 0x20)..8182 (or 0x1ff6).

                      - **TransportStreamId** *(integer) --* The value of the transport stream ID
                      field in the Program Map Table.

                      - **VideoPid** *(string) --* Packet Identifier (PID) of the elementary video
                      stream in the transport stream. Can be entered as a decimal or hexadecimal
                      value. Valid values are 32 (or 0x20)..8182 (or 0x1ff6).

                  - **Destination** *(dict) --* Destination address and port number for RTP or UDP
                  packets. Can be unicast or multicast RTP or UDP (eg. rtp://239.10.10.10:5001 or
                  udp://10.100.100.100:5002).

                    - **DestinationRefId** *(string) --* Placeholder documentation for __string

                  - **FecOutputSettings** *(dict) --* Settings for enabling and adjusting Forward
                  Error Correction on UDP outputs.

                    - **ColumnDepth** *(integer) --* Parameter D from SMPTE 2022-1. The height of
                    the FEC protection matrix. The number of transport stream packets per column
                    error correction packet. Must be between 4 and 20, inclusive.

                    - **IncludeFec** *(string) --* Enables column only or column and row based FEC

                    - **RowLength** *(integer) --* Parameter L from SMPTE 2022-1. The width of the
                    FEC protection matrix. Must be between 1 and 20, inclusive. If only Column FEC
                    is used, then larger values increase robustness. If Row FEC is used, then this
                    is the number of transport stream packets per row error correction packet, and
                    the value must be between 4 and 20, inclusive, if includeFec is columnAndRow. If
                    includeFec is column, this value must be 1 to 20, inclusive.

              - **VideoDescriptionName** *(string) --* The name of the VideoDescription used as the
              source for this output.

      - **TimecodeConfig** *(dict) --* Contains settings used to acquire and adjust timecode
      information from inputs.

        - **Source** *(string) --* Identifies the source for the timecode that will be associated
        with the events outputs. -Embedded (embedded): Initialize the output timecode with timecode
        from the the source. If no embedded timecode is detected in the source, the system falls
        back to using "Start at 0" (zerobased). -System Clock (systemclock): Use the UTC time.
        -Start at 0 (zerobased): The time of the first frame of the event will be 00:00:00:00.

        - **SyncThreshold** *(integer) --* Threshold in frames beyond which output timecode is
        resynchronized to the input timecode. Discrepancies below this threshold are permitted to
        avoid unnecessary discontinuities in the output timecode. No timecode sync when this is not
        specified.

      - **VideoDescriptions** *(list) --* Placeholder documentation for __listOfVideoDescription

        - *(dict) --* Video settings for this stream.

          - **CodecSettings** *(dict) --* Video codec settings.

            - **FrameCaptureSettings** *(dict) --* Frame Capture Settings

              - **CaptureInterval** *(integer) --* The frequency at which to capture frames for
              inclusion in the output. May be specified in either seconds or milliseconds, as
              specified by captureIntervalUnits.

            - **H264Settings** *(dict) --* H264 Settings

              - **AdaptiveQuantization** *(string) --* Adaptive quantization. Allows intra-frame
              quantizers to vary to improve visual quality.

              - **AfdSignaling** *(string) --* Indicates that AFD values will be written into the
              output stream. If afdSignaling is "auto", the system will try to preserve the input
              AFD value (in cases where multiple AFD values are valid). If set to "fixed", the AFD
              value will be the value configured in the fixedAfd parameter.

              - **Bitrate** *(integer) --* Average bitrate in bits/second. Required when the rate
              control mode is VBR or CBR. Not used for QVBR. In an MS Smooth output group, each
              output must have a unique value when its bitrate is rounded down to the nearest
              multiple of 1000.

              - **BufFillPct** *(integer) --* Percentage of the buffer that should initially be
              filled (HRD buffer model).

              - **BufSize** *(integer) --* Size of buffer (HRD buffer model) in bits.

              - **ColorMetadata** *(string) --* Includes colorspace metadata in the output.

              - **ColorSpaceSettings** *(dict) --* Color Space settings

                - **ColorSpacePassthroughSettings** *(dict) --* Passthrough applies no color space
                conversion to the output

                - **Rec601Settings** *(dict) --* Rec601 Settings

                - **Rec709Settings** *(dict) --* Rec709 Settings

              - **EntropyEncoding** *(string) --* Entropy encoding mode. Use cabac (must be in Main
              or High profile) or cavlc.

              - **FixedAfd** *(string) --* Four bit AFD value to write on all frames of video in the
              output stream. Only valid when afdSignaling is set to 'Fixed'.

              - **FlickerAq** *(string) --* If set to enabled, adjust quantization within each frame
              to reduce flicker or 'pop' on I-frames.

              - **FramerateControl** *(string) --* This field indicates how the output video frame
              rate is specified. If "specified" is selected then the output video frame rate is
              determined by framerateNumerator and framerateDenominator, else if
              "initializeFromSource" is selected then the output video frame rate will be set equal
              to the input video frame rate of the first input.

              - **FramerateDenominator** *(integer) --* Framerate denominator.

              - **FramerateNumerator** *(integer) --* Framerate numerator - framerate is a fraction,
              e.g. 24000 / 1001 = 23.976 fps.

              - **GopBReference** *(string) --* Documentation update needed

              - **GopClosedCadence** *(integer) --* Frequency of closed GOPs. In streaming
              applications, it is recommended that this be set to 1 so a decoder joining mid-stream
              will receive an IDR frame as quickly as possible. Setting this value to 0 will break
              output segmenting.

              - **GopNumBFrames** *(integer) --* Number of B-frames between reference frames.

              - **GopSize** *(float) --* GOP size (keyframe interval) in units of either frames or
              seconds per gopSizeUnits. If gopSizeUnits is frames, gopSize must be an integer and
              must be greater than or equal to 1. If gopSizeUnits is seconds, gopSize must be
              greater than 0, but need not be an integer.

              - **GopSizeUnits** *(string) --* Indicates if the gopSize is specified in frames or
              seconds. If seconds the system will convert the gopSize into a frame count at run
              time.

              - **Level** *(string) --* H.264 Level.

              - **LookAheadRateControl** *(string) --* Amount of lookahead. A value of low can
              decrease latency and memory usage, while high can produce better quality for certain
              content.

              - **MaxBitrate** *(integer) --* For QVBR: See the tooltip for Quality level For VBR:
              Set the maximum bitrate in order to accommodate expected spikes in the complexity of
              the video.

              - **MinIInterval** *(integer) --* Only meaningful if sceneChangeDetect is set to
              enabled. Defaults to 5 if multiplex rate control is used. Enforces separation between
              repeated (cadence) I-frames and I-frames inserted by Scene Change Detection. If a
              scene change I-frame is within I-interval frames of a cadence I-frame, the GOP is
              shrunk and/or stretched to the scene change I-frame. GOP stretch requires enabling
              lookahead as well as setting I-interval. The normal cadence resumes for the next GOP.
              Note: Maximum GOP stretch = GOP size + Min-I-interval - 1

              - **NumRefFrames** *(integer) --* Number of reference frames to use. The encoder may
              use more than requested if using B-frames and/or interlaced encoding.

              - **ParControl** *(string) --* This field indicates how the output pixel aspect ratio
              is specified. If "specified" is selected then the output video pixel aspect ratio is
              determined by parNumerator and parDenominator, else if "initializeFromSource" is
              selected then the output pixsel aspect ratio will be set equal to the input video
              pixel aspect ratio of the first input.

              - **ParDenominator** *(integer) --* Pixel Aspect Ratio denominator.

              - **ParNumerator** *(integer) --* Pixel Aspect Ratio numerator.

              - **Profile** *(string) --* H.264 Profile.

              - **QvbrQualityLevel** *(integer) --* Controls the target quality for the video
              encode. Applies only when the rate control mode is QVBR. Set values for the QVBR
              quality level field and Max bitrate field that suit your most important viewing
              devices. Recommended values are: - Primary screen: Quality level: 8 to 10. Max
              bitrate: 4M - PC or tablet: Quality level: 7. Max bitrate: 1.5M to 3M - Smartphone:
              Quality level: 6. Max bitrate: 1M to 1.5M

              - **RateControlMode** *(string) --* Rate control mode. QVBR: Quality will match the
              specified quality level except when it is constrained by the maximum bitrate.
              Recommended if you or your viewers pay for bandwidth. VBR: Quality and bitrate vary,
              depending on the video complexity. Recommended instead of QVBR if you want to maintain
              a specific average bitrate over the duration of the channel. CBR: Quality varies,
              depending on the video complexity. Recommended only if you distribute your assets to
              devices that cannot handle variable bitrates.

              - **ScanType** *(string) --* Sets the scan type of the output to progressive or
              top-field-first interlaced.

              - **SceneChangeDetect** *(string) --* Scene change detection. - On: inserts I-frames
              when scene change is detected. - Off: does not force an I-frame when scene change is
              detected.

              - **Slices** *(integer) --* Number of slices per picture. Must be less than or equal
              to the number of macroblock rows for progressive pictures, and less than or equal to
              half the number of macroblock rows for interlaced pictures. This field is optional;
              when no value is specified the encoder will choose the number of slices based on
              encode resolution.

              - **Softness** *(integer) --* Softness. Selects quantizer matrix, larger values reduce
              high-frequency content in the encoded image.

              - **SpatialAq** *(string) --* If set to enabled, adjust quantization within each frame
              based on spatial variation of content complexity.

              - **SubgopLength** *(string) --* If set to fixed, use gopNumBFrames B-frames per
              sub-GOP. If set to dynamic, optimize the number of B-frames used for each sub-GOP to
              improve visual quality.

              - **Syntax** *(string) --* Produces a bitstream compliant with SMPTE RP-2027.

              - **TemporalAq** *(string) --* If set to enabled, adjust quantization within each
              frame based on temporal variation of content complexity.

              - **TimecodeInsertion** *(string) --* Determines how timecodes should be inserted into
              the video elementary stream. - 'disabled': Do not include timecodes - 'picTimingSei':
              Pass through picture timing SEI messages from the source specified in Timecode Config

            - **H265Settings** *(dict) --* H265 Settings

              - **AdaptiveQuantization** *(string) --* Adaptive quantization. Allows intra-frame
              quantizers to vary to improve visual quality.

              - **AfdSignaling** *(string) --* Indicates that AFD values will be written into the
              output stream. If afdSignaling is "auto", the system will try to preserve the input
              AFD value (in cases where multiple AFD values are valid). If set to "fixed", the AFD
              value will be the value configured in the fixedAfd parameter.

              - **AlternativeTransferFunction** *(string) --* Whether or not EML should insert an
              Alternative Transfer Function SEI message to support backwards compatibility with
              non-HDR decoders and displays.

              - **Bitrate** *(integer) --* Average bitrate in bits/second. Required when the rate
              control mode is VBR or CBR. Not used for QVBR. In an MS Smooth output group, each
              output must have a unique value when its bitrate is rounded down to the nearest
              multiple of 1000.

              - **BufSize** *(integer) --* Size of buffer (HRD buffer model) in bits.

              - **ColorMetadata** *(string) --* Includes colorspace metadata in the output.

              - **ColorSpaceSettings** *(dict) --* Color Space settings

                - **ColorSpacePassthroughSettings** *(dict) --* Passthrough applies no color space
                conversion to the output

                - **Hdr10Settings** *(dict) --* Hdr10 Settings

                  - **MaxCll** *(integer) --* Maximum Content Light Level An integer metadata value
                  defining the maximum light level, in nits, of any single pixel within an encoded
                  HDR video stream or file.

                  - **MaxFall** *(integer) --* Maximum Frame Average Light Level An integer metadata
                  value defining the maximum average light level, in nits, for any single frame
                  within an encoded HDR video stream or file.

                - **Rec601Settings** *(dict) --* Rec601 Settings

                - **Rec709Settings** *(dict) --* Rec709 Settings

              - **FixedAfd** *(string) --* Four bit AFD value to write on all frames of video in the
              output stream. Only valid when afdSignaling is set to 'Fixed'.

              - **FlickerAq** *(string) --* If set to enabled, adjust quantization within each frame
              to reduce flicker or 'pop' on I-frames.

              - **FramerateDenominator** *(integer) --* Framerate denominator.

              - **FramerateNumerator** *(integer) --* Framerate numerator - framerate is a fraction,
              e.g. 24000 / 1001 = 23.976 fps.

              - **GopClosedCadence** *(integer) --* Frequency of closed GOPs. In streaming
              applications, it is recommended that this be set to 1 so a decoder joining mid-stream
              will receive an IDR frame as quickly as possible. Setting this value to 0 will break
              output segmenting.

              - **GopSize** *(float) --* GOP size (keyframe interval) in units of either frames or
              seconds per gopSizeUnits. If gopSizeUnits is frames, gopSize must be an integer and
              must be greater than or equal to 1. If gopSizeUnits is seconds, gopSize must be
              greater than 0, but need not be an integer.

              - **GopSizeUnits** *(string) --* Indicates if the gopSize is specified in frames or
              seconds. If seconds the system will convert the gopSize into a frame count at run
              time.

              - **Level** *(string) --* H.265 Level.

              - **LookAheadRateControl** *(string) --* Amount of lookahead. A value of low can
              decrease latency and memory usage, while high can produce better quality for certain
              content.

              - **MaxBitrate** *(integer) --* For QVBR: See the tooltip for Quality level

              - **MinIInterval** *(integer) --* Only meaningful if sceneChangeDetect is set to
              enabled. Defaults to 5 if multiplex rate control is used. Enforces separation between
              repeated (cadence) I-frames and I-frames inserted by Scene Change Detection. If a
              scene change I-frame is within I-interval frames of a cadence I-frame, the GOP is
              shrunk and/or stretched to the scene change I-frame. GOP stretch requires enabling
              lookahead as well as setting I-interval. The normal cadence resumes for the next GOP.
              Note: Maximum GOP stretch = GOP size + Min-I-interval - 1

              - **ParDenominator** *(integer) --* Pixel Aspect Ratio denominator.

              - **ParNumerator** *(integer) --* Pixel Aspect Ratio numerator.

              - **Profile** *(string) --* H.265 Profile.

              - **QvbrQualityLevel** *(integer) --* Controls the target quality for the video
              encode. Applies only when the rate control mode is QVBR. Set values for the QVBR
              quality level field and Max bitrate field that suit your most important viewing
              devices. Recommended values are: - Primary screen: Quality level: 8 to 10. Max
              bitrate: 4M - PC or tablet: Quality level: 7. Max bitrate: 1.5M to 3M - Smartphone:
              Quality level: 6. Max bitrate: 1M to 1.5M

              - **RateControlMode** *(string) --* Rate control mode. QVBR: Quality will match the
              specified quality level except when it is constrained by the maximum bitrate.
              Recommended if you or your viewers pay for bandwidth. CBR: Quality varies, depending
              on the video complexity. Recommended only if you distribute your assets to devices
              that cannot handle variable bitrates.

              - **ScanType** *(string) --* Sets the scan type of the output to progressive or
              top-field-first interlaced.

              - **SceneChangeDetect** *(string) --* Scene change detection.

              - **Slices** *(integer) --* Number of slices per picture. Must be less than or equal
              to the number of macroblock rows for progressive pictures, and less than or equal to
              half the number of macroblock rows for interlaced pictures. This field is optional;
              when no value is specified the encoder will choose the number of slices based on
              encode resolution.

              - **Tier** *(string) --* H.265 Tier.

              - **TimecodeInsertion** *(string) --* Determines how timecodes should be inserted into
              the video elementary stream. - 'disabled': Do not include timecodes - 'picTimingSei':
              Pass through picture timing SEI messages from the source specified in Timecode Config

          - **Height** *(integer) --* Output video height, in pixels. Must be an even number. For
          most codecs, you can leave this field and width blank in order to use the height and width
          (resolution) from the source. Note, however, that leaving blank is not recommended. For
          the Frame Capture codec, height and width are required.

          - **Name** *(string) --* The name of this VideoDescription. Outputs will use this name to
          uniquely identify this Description. Description names should be unique within this Live
          Event.

          - **RespondToAfd** *(string) --* Indicates how to respond to the AFD values in the input
          stream. RESPOND causes input video to be clipped, depending on the AFD value, input
          display aspect ratio, and output display aspect ratio, and (except for FRAMECAPTURE codec)
          includes the values in the output. PASSTHROUGH (does not apply to FRAMECAPTURE codec)
          ignores the AFD values and includes the values in the output, so input video is not
          clipped. NONE ignores the AFD values and does not include the values through to the
          output, so input video is not clipped.

          - **ScalingBehavior** *(string) --* STRETCHTOOUTPUT configures the output position to
          stretch the video to the specified output resolution (height and width). This option will
          override any position value. DEFAULT may insert black boxes (pillar boxes or letter boxes)
          around the video to provide the specified output resolution.

          - **Sharpness** *(integer) --* Changes the strength of the anti-alias filter used for
          scaling. 0 is the softest setting, 100 is the sharpest. A setting of 50 is recommended for
          most content.

          - **Width** *(integer) --* Output video width, in pixels. Must be an even number. For most
          codecs, you can leave this field and height blank in order to use the height and width
          (resolution) from the source. Note, however, that leaving blank is not recommended. For
          the Frame Capture codec, height and width are required.

    - **Id** *(string) --* The unique id of the channel.

    - **InputAttachments** *(list) --* List of input attachments for channel.

      - *(dict) --* Placeholder documentation for InputAttachment

        - **InputAttachmentName** *(string) --* User-specified name for the attachment. This is
        required if the user wants to use this input in an input switch action.

        - **InputId** *(string) --* The ID of the input

        - **InputSettings** *(dict) --* Settings of an input (caption selector, etc.)

          - **AudioSelectors** *(list) --* Used to select the audio stream to decode for inputs that
          have multiple available.

            - *(dict) --* Audio Selector

              - **Name** *(string) --* The name of this AudioSelector. AudioDescriptions will use
              this name to uniquely identify this Selector. Selector names should be unique per
              input.

              - **SelectorSettings** *(dict) --* The audio selector settings.

                - **AudioLanguageSelection** *(dict) --* Audio Language Selection

                  - **LanguageCode** *(string) --* Selects a specific three-letter language code
                  from within an audio source.

                  - **LanguageSelectionPolicy** *(string) --* When set to "strict", the transport
                  stream demux strictly identifies audio streams by their language descriptor. If a
                  PMT update occurs such that an audio stream matching the initially selected
                  language is no longer present then mute will be encoded until the language
                  returns. If "loose", then on a PMT update the demux will choose another audio
                  stream in the program with the same stream type if it can't find one with the same
                  language.

                - **AudioPidSelection** *(dict) --* Audio Pid Selection

                  - **Pid** *(integer) --* Selects a specific PID from within a source.

          - **CaptionSelectors** *(list) --* Used to select the caption input to use for inputs that
          have multiple available.

            - *(dict) --* Output groups for this Live Event. Output groups contain information about
            where streams should be distributed.

              - **LanguageCode** *(string) --* When specified this field indicates the three letter
              language code of the caption track to extract from the source.

              - **Name** *(string) --* Name identifier for a caption selector. This name is used to
              associate this caption selector with one or more caption descriptions. Names must be
              unique within an event.

              - **SelectorSettings** *(dict) --* Caption selector settings.

                - **AribSourceSettings** *(dict) --* Arib Source Settings

                - **DvbSubSourceSettings** *(dict) --* Dvb Sub Source Settings

                  - **Pid** *(integer) --* When using DVB-Sub with Burn-In or SMPTE-TT, use this PID
                  for the source content. Unused for DVB-Sub passthrough. All DVB-Sub content is
                  passed through, regardless of selectors.

                - **EmbeddedSourceSettings** *(dict) --* Embedded Source Settings

                  - **Convert608To708** *(string) --* If upconvert, 608 data is both passed through
                  via the "608 compatibility bytes" fields of the 708 wrapper as well as translated
                  into 708. 708 data present in the source content will be discarded.

                  - **Scte20Detection** *(string) --* Set to "auto" to handle streams with
                  intermittent and/or non-aligned SCTE-20 and Embedded captions.

                  - **Source608ChannelNumber** *(integer) --* Specifies the 608/708 channel number
                  within the video track from which to extract captions. Unused for passthrough.

                  - **Source608TrackNumber** *(integer) --* This field is unused and deprecated.

                - **Scte20SourceSettings** *(dict) --* Scte20 Source Settings

                  - **Convert608To708** *(string) --* If upconvert, 608 data is both passed through
                  via the "608 compatibility bytes" fields of the 708 wrapper as well as translated
                  into 708. 708 data present in the source content will be discarded.

                  - **Source608ChannelNumber** *(integer) --* Specifies the 608/708 channel number
                  within the video track from which to extract captions. Unused for passthrough.

                - **Scte27SourceSettings** *(dict) --* Scte27 Source Settings

                  - **Pid** *(integer) --* The pid field is used in conjunction with the caption
                  selector languageCode field as follows: - Specify PID and Language: Extracts
                  captions from that PID; the language is "informational". - Specify PID and omit
                  Language: Extracts the specified PID. - Omit PID and specify Language: Extracts
                  the specified language, whichever PID that happens to be. - Omit PID and omit
                  Language: Valid only if source is DVB-Sub that is being passed through; all
                  languages will be passed through.

                - **TeletextSourceSettings** *(dict) --* Teletext Source Settings

                  - **PageNumber** *(string) --* Specifies the teletext page number within the data
                  stream from which to extract captions. Range of 0x100 (256) to 0x8FF (2303).
                  Unused for passthrough. Should be specified as a hexadecimal string with no "0x"
                  prefix.

          - **DeblockFilter** *(string) --* Enable or disable the deblock filter when filtering.

          - **DenoiseFilter** *(string) --* Enable or disable the denoise filter when filtering.

          - **FilterStrength** *(integer) --* Adjusts the magnitude of filtering from 1 (minimal) to
          5 (strongest).

          - **InputFilter** *(string) --* Turns on the filter for this input. MPEG-2 inputs have the
          deblocking filter enabled by default. 1) auto - filtering will be applied depending on
          input type/quality 2) disabled - no filtering will be applied to the input 3) forced -
          filtering will be applied regardless of input type

          - **NetworkInputSettings** *(dict) --* Input settings.

            - **HlsInputSettings** *(dict) --* Specifies HLS input settings when the uri is for a
            HLS manifest.

              - **Bandwidth** *(integer) --* When specified the HLS stream with the m3u8 BANDWIDTH
              that most closely matches this value will be chosen, otherwise the highest bandwidth
              stream in the m3u8 will be chosen. The bitrate is specified in bits per second, as in
              an HLS manifest.

              - **BufferSegments** *(integer) --* When specified, reading of the HLS input will
              begin this many buffer segments from the end (most recently written segment). When not
              specified, the HLS input will begin with the first segment specified in the m3u8.

              - **Retries** *(integer) --* The number of consecutive times that attempts to read a
              manifest or segment must fail before the input is considered unavailable.

              - **RetryInterval** *(integer) --* The number of seconds between retries when an
              attempt to read a manifest or segment fails.

            - **ServerValidation** *(string) --* Check HTTPS server certificates. When set to
            checkCryptographyOnly, cryptography in the certificate will be checked, but not the
            server's name. Certain subdomains (notably S3 buckets that use dots in the bucket name)
            do not strictly match the corresponding certificate's wildcard pattern and would
            otherwise cause the event to error. This setting is ignored for protocols that do not
            use https.

          - **SourceEndBehavior** *(string) --* Loop input if it is a file. This allows a file input
          to be streamed indefinitely.

          - **VideoSelector** *(dict) --* Informs which video elementary stream to decode for input
          types that have multiple available.

            - **ColorSpace** *(string) --* Specifies the color space of an input. This setting works
            in tandem with colorSpaceUsage and a video description's colorSpaceSettingsChoice to
            determine if any conversion will be performed.

            - **ColorSpaceUsage** *(string) --* Applies only if colorSpace is a value other than
            follow. This field controls how the value in the colorSpace field will be used. fallback
            means that when the input does include color space data, that data will be used, but
            when the input has no color space data, the value in colorSpace will be used. Choose
            fallback if your input is sometimes missing color space data, but when it does have
            color space data, that data is correct. force means to always use the value in
            colorSpace. Choose force if your input usually has no color space data or might have
            unreliable color space data.

            - **SelectorSettings** *(dict) --* The video selector settings.

              - **VideoSelectorPid** *(dict) --* Video Selector Pid

                - **Pid** *(integer) --* Selects a specific PID from within a video source.

              - **VideoSelectorProgramId** *(dict) --* Video Selector Program Id

                - **ProgramId** *(integer) --* Selects a specific program from within a
                multi-program transport stream. If the program doesn't exist, the first program
                within the transport stream will be selected by default.

    - **InputSpecification** *(dict) --* Placeholder documentation for InputSpecification

      - **Codec** *(string) --* Input codec

      - **MaximumBitrate** *(string) --* Maximum input bitrate, categorized coarsely

      - **Resolution** *(string) --* Input resolution, categorized coarsely

    - **LogLevel** *(string) --* The log level being written to CloudWatch Logs.

    - **Name** *(string) --* The name of the channel. (user-mutable)

    - **PipelineDetails** *(list) --* Runtime details for the pipelines of a running channel.

      - *(dict) --* Runtime details of a pipeline when a channel is running.

        - **ActiveInputAttachmentName** *(string) --* The name of the active input attachment
        currently being ingested by this pipeline.

        - **ActiveInputSwitchActionName** *(string) --* The name of the input switch schedule action
        that occurred most recently and that resulted in the switch to the current input attachment
        for this pipeline.

        - **PipelineId** *(string) --* Pipeline ID

    - **PipelinesRunningCount** *(integer) --* The number of currently healthy pipelines.

    - **RoleArn** *(string) --* The Amazon Resource Name (ARN) of the role assumed when running the
    Channel.

    - **State** *(string) --* Placeholder documentation for ChannelState

    - **Tags** *(dict) --* A collection of key-value pairs.

      - *(string) --* Placeholder documentation for __string

        - *(string) --* Placeholder documentation for __string
    """


_ClientDescribeInputResponseDestinationsVpcTypeDef = TypedDict(
    "_ClientDescribeInputResponseDestinationsVpcTypeDef",
    {"AvailabilityZone": str, "NetworkInterfaceId": str},
    total=False,
)


class ClientDescribeInputResponseDestinationsVpcTypeDef(
    _ClientDescribeInputResponseDestinationsVpcTypeDef
):
    """
    Type definition for `ClientDescribeInputResponseDestinations` `Vpc`

    - **AvailabilityZone** *(string) --* The availability zone of the Input destination.

    - **NetworkInterfaceId** *(string) --* The network interface ID of the Input destination in the
    VPC.
    """


_ClientDescribeInputResponseDestinationsTypeDef = TypedDict(
    "_ClientDescribeInputResponseDestinationsTypeDef",
    {"Ip": str, "Port": str, "Url": str, "Vpc": ClientDescribeInputResponseDestinationsVpcTypeDef},
    total=False,
)


class ClientDescribeInputResponseDestinationsTypeDef(
    _ClientDescribeInputResponseDestinationsTypeDef
):
    """
    Type definition for `ClientDescribeInputResponse` `Destinations`

    - **Ip** *(string) --* The system-generated static IP address of endpoint. It remains fixed for
    the lifetime of the input.

    - **Port** *(string) --* The port number for the input.

    - **Url** *(string) --* This represents the endpoint that the customer stream will be pushed to.

    - **Vpc** *(dict) --* The properties for a VPC type input destination.

      - **AvailabilityZone** *(string) --* The availability zone of the Input destination.

      - **NetworkInterfaceId** *(string) --* The network interface ID of the Input destination in
      the VPC.
    """


_ClientDescribeInputResponseMediaConnectFlowsTypeDef = TypedDict(
    "_ClientDescribeInputResponseMediaConnectFlowsTypeDef", {"FlowArn": str}, total=False
)


class ClientDescribeInputResponseMediaConnectFlowsTypeDef(
    _ClientDescribeInputResponseMediaConnectFlowsTypeDef
):
    """
    Type definition for `ClientDescribeInputResponse` `MediaConnectFlows`

    - **FlowArn** *(string) --* The unique ARN of the MediaConnect Flow being used as a source.
    """


_ClientDescribeInputResponseSourcesTypeDef = TypedDict(
    "_ClientDescribeInputResponseSourcesTypeDef",
    {"PasswordParam": str, "Url": str, "Username": str},
    total=False,
)


class ClientDescribeInputResponseSourcesTypeDef(_ClientDescribeInputResponseSourcesTypeDef):
    """
    Type definition for `ClientDescribeInputResponse` `Sources`

    - **PasswordParam** *(string) --* The key used to extract the password from EC2 Parameter store.

    - **Url** *(string) --* This represents the customer's source URL where stream is pulled from.

    - **Username** *(string) --* The username for the input source.
    """


_ClientDescribeInputResponseTypeDef = TypedDict(
    "_ClientDescribeInputResponseTypeDef",
    {
        "Arn": str,
        "AttachedChannels": List[str],
        "Destinations": List[ClientDescribeInputResponseDestinationsTypeDef],
        "Id": str,
        "InputClass": str,
        "InputSourceType": str,
        "MediaConnectFlows": List[ClientDescribeInputResponseMediaConnectFlowsTypeDef],
        "Name": str,
        "RoleArn": str,
        "SecurityGroups": List[str],
        "Sources": List[ClientDescribeInputResponseSourcesTypeDef],
        "State": str,
        "Tags": Dict[str, str],
        "Type": str,
    },
    total=False,
)


class ClientDescribeInputResponseTypeDef(_ClientDescribeInputResponseTypeDef):
    """
    Type definition for `ClientDescribeInput` `Response`

    - **Arn** *(string) --* The Unique ARN of the input (generated, immutable).

    - **AttachedChannels** *(list) --* A list of channel IDs that that input is attached to
    (currently an input can only be attached to one channel).

      - *(string) --* Placeholder documentation for __string

    - **Destinations** *(list) --* A list of the destinations of the input (PUSH-type).

      - *(dict) --* The settings for a PUSH type input.

        - **Ip** *(string) --* The system-generated static IP address of endpoint. It remains fixed
        for the lifetime of the input.

        - **Port** *(string) --* The port number for the input.

        - **Url** *(string) --* This represents the endpoint that the customer stream will be pushed
        to.

        - **Vpc** *(dict) --* The properties for a VPC type input destination.

          - **AvailabilityZone** *(string) --* The availability zone of the Input destination.

          - **NetworkInterfaceId** *(string) --* The network interface ID of the Input destination
          in the VPC.

    - **Id** *(string) --* The generated ID of the input (unique for user account, immutable).

    - **InputClass** *(string) --* STANDARD - MediaLive expects two sources to be connected to this
    input. If the channel is also STANDARD, both sources will be ingested. If the channel is
    SINGLE_PIPELINE, only the first source will be ingested; the second source will always be
    ignored, even if the first source fails. SINGLE_PIPELINE - You can connect only one source to
    this input. If the ChannelClass is also SINGLE_PIPELINE, this value is valid. If the
    ChannelClass is STANDARD, this value is not valid because the channel requires two sources in
    the input.

    - **InputSourceType** *(string) --* Certain pull input sources can be dynamic, meaning that they
    can have their URL's dynamically changes during input switch actions. Presently, this
    functionality only works with MP4_FILE inputs.

    - **MediaConnectFlows** *(list) --* A list of MediaConnect Flows for this input.

      - *(dict) --* The settings for a MediaConnect Flow.

        - **FlowArn** *(string) --* The unique ARN of the MediaConnect Flow being used as a source.

    - **Name** *(string) --* The user-assigned name (This is a mutable value).

    - **RoleArn** *(string) --* The Amazon Resource Name (ARN) of the role this input assumes during
    and after creation.

    - **SecurityGroups** *(list) --* A list of IDs for all the Input Security Groups attached to the
    input.

      - *(string) --* Placeholder documentation for __string

    - **Sources** *(list) --* A list of the sources of the input (PULL-type).

      - *(dict) --* The settings for a PULL type input.

        - **PasswordParam** *(string) --* The key used to extract the password from EC2 Parameter
        store.

        - **Url** *(string) --* This represents the customer's source URL where stream is pulled
        from.

        - **Username** *(string) --* The username for the input source.

    - **State** *(string) --* Placeholder documentation for InputState

    - **Tags** *(dict) --* A collection of key-value pairs.

      - *(string) --* Placeholder documentation for __string

        - *(string) --* Placeholder documentation for __string

    - **Type** *(string) --* Placeholder documentation for InputType
    """


_ClientDescribeInputSecurityGroupResponseWhitelistRulesTypeDef = TypedDict(
    "_ClientDescribeInputSecurityGroupResponseWhitelistRulesTypeDef", {"Cidr": str}, total=False
)


class ClientDescribeInputSecurityGroupResponseWhitelistRulesTypeDef(
    _ClientDescribeInputSecurityGroupResponseWhitelistRulesTypeDef
):
    """
    Type definition for `ClientDescribeInputSecurityGroupResponse` `WhitelistRules`

    - **Cidr** *(string) --* The IPv4 CIDR that's whitelisted.
    """


_ClientDescribeInputSecurityGroupResponseTypeDef = TypedDict(
    "_ClientDescribeInputSecurityGroupResponseTypeDef",
    {
        "Arn": str,
        "Id": str,
        "Inputs": List[str],
        "State": str,
        "Tags": Dict[str, str],
        "WhitelistRules": List[ClientDescribeInputSecurityGroupResponseWhitelistRulesTypeDef],
    },
    total=False,
)


class ClientDescribeInputSecurityGroupResponseTypeDef(
    _ClientDescribeInputSecurityGroupResponseTypeDef
):
    """
    Type definition for `ClientDescribeInputSecurityGroup` `Response`

    - **Arn** *(string) --* Unique ARN of Input Security Group

    - **Id** *(string) --* The Id of the Input Security Group

    - **Inputs** *(list) --* The list of inputs currently using this Input Security Group.

      - *(string) --* Placeholder documentation for __string

    - **State** *(string) --* The current state of the Input Security Group.

    - **Tags** *(dict) --* A collection of key-value pairs.

      - *(string) --* Placeholder documentation for __string

        - *(string) --* Placeholder documentation for __string

    - **WhitelistRules** *(list) --* Whitelist rules and their sync status

      - *(dict) --* Whitelist rule

        - **Cidr** *(string) --* The IPv4 CIDR that's whitelisted.
    """


_ClientDescribeMultiplexProgramResponseMultiplexProgramSettingsServiceDescriptorTypeDef = TypedDict(
    "_ClientDescribeMultiplexProgramResponseMultiplexProgramSettingsServiceDescriptorTypeDef",
    {"ProviderName": str, "ServiceName": str},
    total=False,
)


class ClientDescribeMultiplexProgramResponseMultiplexProgramSettingsServiceDescriptorTypeDef(
    _ClientDescribeMultiplexProgramResponseMultiplexProgramSettingsServiceDescriptorTypeDef
):
    """
    Type definition for `ClientDescribeMultiplexProgramResponseMultiplexProgramSettings`
    `ServiceDescriptor`

    - **ProviderName** *(string) --* Name of the provider.

    - **ServiceName** *(string) --* Name of the service.
    """


_ClientDescribeMultiplexProgramResponseMultiplexProgramSettingsVideoSettingsStatmuxSettingsTypeDef = TypedDict(
    "_ClientDescribeMultiplexProgramResponseMultiplexProgramSettingsVideoSettingsStatmuxSettingsTypeDef",
    {"MaximumBitrate": int, "MinimumBitrate": int},
    total=False,
)


class ClientDescribeMultiplexProgramResponseMultiplexProgramSettingsVideoSettingsStatmuxSettingsTypeDef(
    _ClientDescribeMultiplexProgramResponseMultiplexProgramSettingsVideoSettingsStatmuxSettingsTypeDef
):
    """
    Type definition for
    `ClientDescribeMultiplexProgramResponseMultiplexProgramSettingsVideoSettings` `StatmuxSettings`

    - **MaximumBitrate** *(integer) --* Maximum statmux bitrate.

    - **MinimumBitrate** *(integer) --* Minimum statmux bitrate.
    """


_ClientDescribeMultiplexProgramResponseMultiplexProgramSettingsVideoSettingsTypeDef = TypedDict(
    "_ClientDescribeMultiplexProgramResponseMultiplexProgramSettingsVideoSettingsTypeDef",
    {
        "ConstantBitrate": int,
        "StatmuxSettings": ClientDescribeMultiplexProgramResponseMultiplexProgramSettingsVideoSettingsStatmuxSettingsTypeDef,
    },
    total=False,
)


class ClientDescribeMultiplexProgramResponseMultiplexProgramSettingsVideoSettingsTypeDef(
    _ClientDescribeMultiplexProgramResponseMultiplexProgramSettingsVideoSettingsTypeDef
):
    """
    Type definition for `ClientDescribeMultiplexProgramResponseMultiplexProgramSettings`
    `VideoSettings`

    - **ConstantBitrate** *(integer) --* The constant bitrate configuration for the video encode.
    When this field is defined, StatmuxSettings must be undefined.

    - **StatmuxSettings** *(dict) --* Statmux rate control settings. When this field is defined,
    ConstantBitrate must be undefined.

      - **MaximumBitrate** *(integer) --* Maximum statmux bitrate.

      - **MinimumBitrate** *(integer) --* Minimum statmux bitrate.
    """


_ClientDescribeMultiplexProgramResponseMultiplexProgramSettingsTypeDef = TypedDict(
    "_ClientDescribeMultiplexProgramResponseMultiplexProgramSettingsTypeDef",
    {
        "ProgramNumber": int,
        "ServiceDescriptor": ClientDescribeMultiplexProgramResponseMultiplexProgramSettingsServiceDescriptorTypeDef,
        "VideoSettings": ClientDescribeMultiplexProgramResponseMultiplexProgramSettingsVideoSettingsTypeDef,
    },
    total=False,
)


class ClientDescribeMultiplexProgramResponseMultiplexProgramSettingsTypeDef(
    _ClientDescribeMultiplexProgramResponseMultiplexProgramSettingsTypeDef
):
    """
    Type definition for `ClientDescribeMultiplexProgramResponse` `MultiplexProgramSettings`

    - **ProgramNumber** *(integer) --* Unique program number.

    - **ServiceDescriptor** *(dict) --* Transport stream service descriptor configuration for the
    Multiplex program.

      - **ProviderName** *(string) --* Name of the provider.

      - **ServiceName** *(string) --* Name of the service.

    - **VideoSettings** *(dict) --* Program video settings configuration.

      - **ConstantBitrate** *(integer) --* The constant bitrate configuration for the video encode.
      When this field is defined, StatmuxSettings must be undefined.

      - **StatmuxSettings** *(dict) --* Statmux rate control settings. When this field is defined,
      ConstantBitrate must be undefined.

        - **MaximumBitrate** *(integer) --* Maximum statmux bitrate.

        - **MinimumBitrate** *(integer) --* Minimum statmux bitrate.
    """


_ClientDescribeMultiplexProgramResponsePacketIdentifiersMapTypeDef = TypedDict(
    "_ClientDescribeMultiplexProgramResponsePacketIdentifiersMapTypeDef",
    {
        "AudioPids": List[int],
        "DvbSubPids": List[int],
        "DvbTeletextPid": int,
        "EtvPlatformPid": int,
        "EtvSignalPid": int,
        "KlvDataPids": List[int],
        "PcrPid": int,
        "PmtPid": int,
        "PrivateMetadataPid": int,
        "Scte27Pids": List[int],
        "Scte35Pid": int,
        "TimedMetadataPid": int,
        "VideoPid": int,
    },
    total=False,
)


class ClientDescribeMultiplexProgramResponsePacketIdentifiersMapTypeDef(
    _ClientDescribeMultiplexProgramResponsePacketIdentifiersMapTypeDef
):
    """
    Type definition for `ClientDescribeMultiplexProgramResponse` `PacketIdentifiersMap`

    - **AudioPids** *(list) --* Placeholder documentation for __listOf__integer

      - *(integer) --* Placeholder documentation for __integer

    - **DvbSubPids** *(list) --* Placeholder documentation for __listOf__integer

      - *(integer) --* Placeholder documentation for __integer

    - **DvbTeletextPid** *(integer) --* Placeholder documentation for __integer

    - **EtvPlatformPid** *(integer) --* Placeholder documentation for __integer

    - **EtvSignalPid** *(integer) --* Placeholder documentation for __integer

    - **KlvDataPids** *(list) --* Placeholder documentation for __listOf__integer

      - *(integer) --* Placeholder documentation for __integer

    - **PcrPid** *(integer) --* Placeholder documentation for __integer

    - **PmtPid** *(integer) --* Placeholder documentation for __integer

    - **PrivateMetadataPid** *(integer) --* Placeholder documentation for __integer

    - **Scte27Pids** *(list) --* Placeholder documentation for __listOf__integer

      - *(integer) --* Placeholder documentation for __integer

    - **Scte35Pid** *(integer) --* Placeholder documentation for __integer

    - **TimedMetadataPid** *(integer) --* Placeholder documentation for __integer

    - **VideoPid** *(integer) --* Placeholder documentation for __integer
    """


_ClientDescribeMultiplexProgramResponseTypeDef = TypedDict(
    "_ClientDescribeMultiplexProgramResponseTypeDef",
    {
        "ChannelId": str,
        "MultiplexProgramSettings": ClientDescribeMultiplexProgramResponseMultiplexProgramSettingsTypeDef,
        "PacketIdentifiersMap": ClientDescribeMultiplexProgramResponsePacketIdentifiersMapTypeDef,
        "ProgramName": str,
    },
    total=False,
)


class ClientDescribeMultiplexProgramResponseTypeDef(_ClientDescribeMultiplexProgramResponseTypeDef):
    """
    Type definition for `ClientDescribeMultiplexProgram` `Response`

    - **ChannelId** *(string) --* The MediaLive channel associated with the program.

    - **MultiplexProgramSettings** *(dict) --* The settings for this multiplex program.

      - **ProgramNumber** *(integer) --* Unique program number.

      - **ServiceDescriptor** *(dict) --* Transport stream service descriptor configuration for the
      Multiplex program.

        - **ProviderName** *(string) --* Name of the provider.

        - **ServiceName** *(string) --* Name of the service.

      - **VideoSettings** *(dict) --* Program video settings configuration.

        - **ConstantBitrate** *(integer) --* The constant bitrate configuration for the video
        encode. When this field is defined, StatmuxSettings must be undefined.

        - **StatmuxSettings** *(dict) --* Statmux rate control settings. When this field is defined,
        ConstantBitrate must be undefined.

          - **MaximumBitrate** *(integer) --* Maximum statmux bitrate.

          - **MinimumBitrate** *(integer) --* Minimum statmux bitrate.

    - **PacketIdentifiersMap** *(dict) --* The packet identifier map for this multiplex program.

      - **AudioPids** *(list) --* Placeholder documentation for __listOf__integer

        - *(integer) --* Placeholder documentation for __integer

      - **DvbSubPids** *(list) --* Placeholder documentation for __listOf__integer

        - *(integer) --* Placeholder documentation for __integer

      - **DvbTeletextPid** *(integer) --* Placeholder documentation for __integer

      - **EtvPlatformPid** *(integer) --* Placeholder documentation for __integer

      - **EtvSignalPid** *(integer) --* Placeholder documentation for __integer

      - **KlvDataPids** *(list) --* Placeholder documentation for __listOf__integer

        - *(integer) --* Placeholder documentation for __integer

      - **PcrPid** *(integer) --* Placeholder documentation for __integer

      - **PmtPid** *(integer) --* Placeholder documentation for __integer

      - **PrivateMetadataPid** *(integer) --* Placeholder documentation for __integer

      - **Scte27Pids** *(list) --* Placeholder documentation for __listOf__integer

        - *(integer) --* Placeholder documentation for __integer

      - **Scte35Pid** *(integer) --* Placeholder documentation for __integer

      - **TimedMetadataPid** *(integer) --* Placeholder documentation for __integer

      - **VideoPid** *(integer) --* Placeholder documentation for __integer

    - **ProgramName** *(string) --* The name of the multiplex program.
    """


_ClientDescribeMultiplexResponseDestinationsMediaConnectSettingsTypeDef = TypedDict(
    "_ClientDescribeMultiplexResponseDestinationsMediaConnectSettingsTypeDef",
    {"EntitlementArn": str},
    total=False,
)


class ClientDescribeMultiplexResponseDestinationsMediaConnectSettingsTypeDef(
    _ClientDescribeMultiplexResponseDestinationsMediaConnectSettingsTypeDef
):
    """
    Type definition for `ClientDescribeMultiplexResponseDestinations` `MediaConnectSettings`

    - **EntitlementArn** *(string) --* The MediaConnect entitlement ARN available as a Flow source.
    """


_ClientDescribeMultiplexResponseDestinationsTypeDef = TypedDict(
    "_ClientDescribeMultiplexResponseDestinationsTypeDef",
    {
        "MediaConnectSettings": ClientDescribeMultiplexResponseDestinationsMediaConnectSettingsTypeDef
    },
    total=False,
)


class ClientDescribeMultiplexResponseDestinationsTypeDef(
    _ClientDescribeMultiplexResponseDestinationsTypeDef
):
    """
    Type definition for `ClientDescribeMultiplexResponse` `Destinations`

    - **MediaConnectSettings** *(dict) --* Multiplex MediaConnect output destination settings.

      - **EntitlementArn** *(string) --* The MediaConnect entitlement ARN available as a Flow
      source.
    """


_ClientDescribeMultiplexResponseMultiplexSettingsTypeDef = TypedDict(
    "_ClientDescribeMultiplexResponseMultiplexSettingsTypeDef",
    {
        "MaximumVideoBufferDelayMilliseconds": int,
        "TransportStreamBitrate": int,
        "TransportStreamId": int,
        "TransportStreamReservedBitrate": int,
    },
    total=False,
)


class ClientDescribeMultiplexResponseMultiplexSettingsTypeDef(
    _ClientDescribeMultiplexResponseMultiplexSettingsTypeDef
):
    """
    Type definition for `ClientDescribeMultiplexResponse` `MultiplexSettings`

    - **MaximumVideoBufferDelayMilliseconds** *(integer) --* Maximum video buffer delay in
    milliseconds.

    - **TransportStreamBitrate** *(integer) --* Transport stream bit rate.

    - **TransportStreamId** *(integer) --* Transport stream ID.

    - **TransportStreamReservedBitrate** *(integer) --* Transport stream reserved bit rate.
    """


_ClientDescribeMultiplexResponseTypeDef = TypedDict(
    "_ClientDescribeMultiplexResponseTypeDef",
    {
        "Arn": str,
        "AvailabilityZones": List[str],
        "Destinations": List[ClientDescribeMultiplexResponseDestinationsTypeDef],
        "Id": str,
        "MultiplexSettings": ClientDescribeMultiplexResponseMultiplexSettingsTypeDef,
        "Name": str,
        "PipelinesRunningCount": int,
        "ProgramCount": int,
        "State": str,
        "Tags": Dict[str, str],
    },
    total=False,
)


class ClientDescribeMultiplexResponseTypeDef(_ClientDescribeMultiplexResponseTypeDef):
    """
    Type definition for `ClientDescribeMultiplex` `Response`

    - **Arn** *(string) --* The unique arn of the multiplex.

    - **AvailabilityZones** *(list) --* A list of availability zones for the multiplex.

      - *(string) --* Placeholder documentation for __string

    - **Destinations** *(list) --* A list of the multiplex output destinations.

      - *(dict) --* Multiplex output destination settings

        - **MediaConnectSettings** *(dict) --* Multiplex MediaConnect output destination settings.

          - **EntitlementArn** *(string) --* The MediaConnect entitlement ARN available as a Flow
          source.

    - **Id** *(string) --* The unique id of the multiplex.

    - **MultiplexSettings** *(dict) --* Configuration for a multiplex event.

      - **MaximumVideoBufferDelayMilliseconds** *(integer) --* Maximum video buffer delay in
      milliseconds.

      - **TransportStreamBitrate** *(integer) --* Transport stream bit rate.

      - **TransportStreamId** *(integer) --* Transport stream ID.

      - **TransportStreamReservedBitrate** *(integer) --* Transport stream reserved bit rate.

    - **Name** *(string) --* The name of the multiplex.

    - **PipelinesRunningCount** *(integer) --* The number of currently healthy pipelines.

    - **ProgramCount** *(integer) --* The number of programs in the multiplex.

    - **State** *(string) --* The current state of the multiplex.

    - **Tags** *(dict) --* A collection of key-value pairs.

      - *(string) --* Placeholder documentation for __string

        - *(string) --* Placeholder documentation for __string
    """


_ClientDescribeOfferingResponseResourceSpecificationTypeDef = TypedDict(
    "_ClientDescribeOfferingResponseResourceSpecificationTypeDef",
    {
        "ChannelClass": str,
        "Codec": str,
        "MaximumBitrate": str,
        "MaximumFramerate": str,
        "Resolution": str,
        "ResourceType": str,
        "SpecialFeature": str,
        "VideoQuality": str,
    },
    total=False,
)


class ClientDescribeOfferingResponseResourceSpecificationTypeDef(
    _ClientDescribeOfferingResponseResourceSpecificationTypeDef
):
    """
    Type definition for `ClientDescribeOfferingResponse` `ResourceSpecification`

    - **ChannelClass** *(string) --* Channel class, e.g. 'STANDARD'

    - **Codec** *(string) --* Codec, e.g. 'AVC'

    - **MaximumBitrate** *(string) --* Maximum bitrate, e.g. 'MAX_20_MBPS'

    - **MaximumFramerate** *(string) --* Maximum framerate, e.g. 'MAX_30_FPS' (Outputs only)

    - **Resolution** *(string) --* Resolution, e.g. 'HD'

    - **ResourceType** *(string) --* Resource type, 'INPUT', 'OUTPUT', 'MULTIPLEX', or 'CHANNEL'

    - **SpecialFeature** *(string) --* Special feature, e.g. 'AUDIO_NORMALIZATION' (Channels only)

    - **VideoQuality** *(string) --* Video quality, e.g. 'STANDARD' (Outputs only)
    """


_ClientDescribeOfferingResponseTypeDef = TypedDict(
    "_ClientDescribeOfferingResponseTypeDef",
    {
        "Arn": str,
        "CurrencyCode": str,
        "Duration": int,
        "DurationUnits": str,
        "FixedPrice": float,
        "OfferingDescription": str,
        "OfferingId": str,
        "OfferingType": str,
        "Region": str,
        "ResourceSpecification": ClientDescribeOfferingResponseResourceSpecificationTypeDef,
        "UsagePrice": float,
    },
    total=False,
)


class ClientDescribeOfferingResponseTypeDef(_ClientDescribeOfferingResponseTypeDef):
    """
    Type definition for `ClientDescribeOffering` `Response`

    - **Arn** *(string) --* Unique offering ARN, e.g.
    'arn:aws:medialive:us-west-2:123456789012:offering:87654321'

    - **CurrencyCode** *(string) --* Currency code for usagePrice and fixedPrice in ISO-4217 format,
    e.g. 'USD'

    - **Duration** *(integer) --* Lease duration, e.g. '12'

    - **DurationUnits** *(string) --* Units for duration, e.g. 'MONTHS'

    - **FixedPrice** *(float) --* One-time charge for each reserved resource, e.g. '0.0' for a
    NO_UPFRONT offering

    - **OfferingDescription** *(string) --* Offering description, e.g. 'HD AVC output at 10-20 Mbps,
    30 fps, and standard VQ in US West (Oregon)'

    - **OfferingId** *(string) --* Unique offering ID, e.g. '87654321'

    - **OfferingType** *(string) --* Offering type, e.g. 'NO_UPFRONT'

    - **Region** *(string) --* AWS region, e.g. 'us-west-2'

    - **ResourceSpecification** *(dict) --* Resource configuration details

      - **ChannelClass** *(string) --* Channel class, e.g. 'STANDARD'

      - **Codec** *(string) --* Codec, e.g. 'AVC'

      - **MaximumBitrate** *(string) --* Maximum bitrate, e.g. 'MAX_20_MBPS'

      - **MaximumFramerate** *(string) --* Maximum framerate, e.g. 'MAX_30_FPS' (Outputs only)

      - **Resolution** *(string) --* Resolution, e.g. 'HD'

      - **ResourceType** *(string) --* Resource type, 'INPUT', 'OUTPUT', 'MULTIPLEX', or 'CHANNEL'

      - **SpecialFeature** *(string) --* Special feature, e.g. 'AUDIO_NORMALIZATION' (Channels only)

      - **VideoQuality** *(string) --* Video quality, e.g. 'STANDARD' (Outputs only)

    - **UsagePrice** *(float) --* Recurring usage charge for each reserved resource, e.g. '157.0'
    """


_ClientDescribeReservationResponseResourceSpecificationTypeDef = TypedDict(
    "_ClientDescribeReservationResponseResourceSpecificationTypeDef",
    {
        "ChannelClass": str,
        "Codec": str,
        "MaximumBitrate": str,
        "MaximumFramerate": str,
        "Resolution": str,
        "ResourceType": str,
        "SpecialFeature": str,
        "VideoQuality": str,
    },
    total=False,
)


class ClientDescribeReservationResponseResourceSpecificationTypeDef(
    _ClientDescribeReservationResponseResourceSpecificationTypeDef
):
    """
    Type definition for `ClientDescribeReservationResponse` `ResourceSpecification`

    - **ChannelClass** *(string) --* Channel class, e.g. 'STANDARD'

    - **Codec** *(string) --* Codec, e.g. 'AVC'

    - **MaximumBitrate** *(string) --* Maximum bitrate, e.g. 'MAX_20_MBPS'

    - **MaximumFramerate** *(string) --* Maximum framerate, e.g. 'MAX_30_FPS' (Outputs only)

    - **Resolution** *(string) --* Resolution, e.g. 'HD'

    - **ResourceType** *(string) --* Resource type, 'INPUT', 'OUTPUT', 'MULTIPLEX', or 'CHANNEL'

    - **SpecialFeature** *(string) --* Special feature, e.g. 'AUDIO_NORMALIZATION' (Channels only)

    - **VideoQuality** *(string) --* Video quality, e.g. 'STANDARD' (Outputs only)
    """


_ClientDescribeReservationResponseTypeDef = TypedDict(
    "_ClientDescribeReservationResponseTypeDef",
    {
        "Arn": str,
        "Count": int,
        "CurrencyCode": str,
        "Duration": int,
        "DurationUnits": str,
        "End": str,
        "FixedPrice": float,
        "Name": str,
        "OfferingDescription": str,
        "OfferingId": str,
        "OfferingType": str,
        "Region": str,
        "ReservationId": str,
        "ResourceSpecification": ClientDescribeReservationResponseResourceSpecificationTypeDef,
        "Start": str,
        "State": str,
        "Tags": Dict[str, str],
        "UsagePrice": float,
    },
    total=False,
)


class ClientDescribeReservationResponseTypeDef(_ClientDescribeReservationResponseTypeDef):
    """
    Type definition for `ClientDescribeReservation` `Response`

    - **Arn** *(string) --* Unique reservation ARN, e.g.
    'arn:aws:medialive:us-west-2:123456789012:reservation:1234567'

    - **Count** *(integer) --* Number of reserved resources

    - **CurrencyCode** *(string) --* Currency code for usagePrice and fixedPrice in ISO-4217 format,
    e.g. 'USD'

    - **Duration** *(integer) --* Lease duration, e.g. '12'

    - **DurationUnits** *(string) --* Units for duration, e.g. 'MONTHS'

    - **End** *(string) --* Reservation UTC end date and time in ISO-8601 format, e.g.
    '2019-03-01T00:00:00'

    - **FixedPrice** *(float) --* One-time charge for each reserved resource, e.g. '0.0' for a
    NO_UPFRONT offering

    - **Name** *(string) --* User specified reservation name

    - **OfferingDescription** *(string) --* Offering description, e.g. 'HD AVC output at 10-20 Mbps,
    30 fps, and standard VQ in US West (Oregon)'

    - **OfferingId** *(string) --* Unique offering ID, e.g. '87654321'

    - **OfferingType** *(string) --* Offering type, e.g. 'NO_UPFRONT'

    - **Region** *(string) --* AWS region, e.g. 'us-west-2'

    - **ReservationId** *(string) --* Unique reservation ID, e.g. '1234567'

    - **ResourceSpecification** *(dict) --* Resource configuration details

      - **ChannelClass** *(string) --* Channel class, e.g. 'STANDARD'

      - **Codec** *(string) --* Codec, e.g. 'AVC'

      - **MaximumBitrate** *(string) --* Maximum bitrate, e.g. 'MAX_20_MBPS'

      - **MaximumFramerate** *(string) --* Maximum framerate, e.g. 'MAX_30_FPS' (Outputs only)

      - **Resolution** *(string) --* Resolution, e.g. 'HD'

      - **ResourceType** *(string) --* Resource type, 'INPUT', 'OUTPUT', 'MULTIPLEX', or 'CHANNEL'

      - **SpecialFeature** *(string) --* Special feature, e.g. 'AUDIO_NORMALIZATION' (Channels only)

      - **VideoQuality** *(string) --* Video quality, e.g. 'STANDARD' (Outputs only)

    - **Start** *(string) --* Reservation UTC start date and time in ISO-8601 format, e.g.
    '2018-03-01T00:00:00'

    - **State** *(string) --* Current state of reservation, e.g. 'ACTIVE'

    - **Tags** *(dict) --* A collection of key-value pairs

      - *(string) --* Placeholder documentation for __string

        - *(string) --* Placeholder documentation for __string

    - **UsagePrice** *(float) --* Recurring usage charge for each reserved resource, e.g. '157.0'
    """


_ClientDescribeScheduleResponseScheduleActionsScheduleActionSettingsHlsTimedMetadataSettingsTypeDef = TypedDict(
    "_ClientDescribeScheduleResponseScheduleActionsScheduleActionSettingsHlsTimedMetadataSettingsTypeDef",
    {"Id3": str},
    total=False,
)


class ClientDescribeScheduleResponseScheduleActionsScheduleActionSettingsHlsTimedMetadataSettingsTypeDef(
    _ClientDescribeScheduleResponseScheduleActionsScheduleActionSettingsHlsTimedMetadataSettingsTypeDef
):
    """
    Type definition for `ClientDescribeScheduleResponseScheduleActionsScheduleActionSettings`
    `HlsTimedMetadataSettings`

    - **Id3** *(string) --* Base64 string formatted according to the ID3 specification:
    http://id3.org/id3v2.4.0-structure
    """


_ClientDescribeScheduleResponseScheduleActionsScheduleActionSettingsInputSwitchSettingsInputClippingSettingsStartTimecodeTypeDef = TypedDict(
    "_ClientDescribeScheduleResponseScheduleActionsScheduleActionSettingsInputSwitchSettingsInputClippingSettingsStartTimecodeTypeDef",
    {"Timecode": str},
    total=False,
)


class ClientDescribeScheduleResponseScheduleActionsScheduleActionSettingsInputSwitchSettingsInputClippingSettingsStartTimecodeTypeDef(
    _ClientDescribeScheduleResponseScheduleActionsScheduleActionSettingsInputSwitchSettingsInputClippingSettingsStartTimecodeTypeDef
):
    """
    Type definition for
    `ClientDescribeScheduleResponseScheduleActionsScheduleActionSettingsInputSwitchSettingsInputClippingSettings`
    `StartTimecode`

    - **Timecode** *(string) --* The timecode for the frame where you want to start the clip.
    Optional; if not specified, the clip starts at first frame in the file. Enter the timecode as
    HH:MM:SS:FF or HH:MM:SS;FF.
    """


_ClientDescribeScheduleResponseScheduleActionsScheduleActionSettingsInputSwitchSettingsInputClippingSettingsStopTimecodeTypeDef = TypedDict(
    "_ClientDescribeScheduleResponseScheduleActionsScheduleActionSettingsInputSwitchSettingsInputClippingSettingsStopTimecodeTypeDef",
    {"LastFrameClippingBehavior": str, "Timecode": str},
    total=False,
)


class ClientDescribeScheduleResponseScheduleActionsScheduleActionSettingsInputSwitchSettingsInputClippingSettingsStopTimecodeTypeDef(
    _ClientDescribeScheduleResponseScheduleActionsScheduleActionSettingsInputSwitchSettingsInputClippingSettingsStopTimecodeTypeDef
):
    """
    Type definition for
    `ClientDescribeScheduleResponseScheduleActionsScheduleActionSettingsInputSwitchSettingsInputClippingSettings`
    `StopTimecode`

    - **LastFrameClippingBehavior** *(string) --* If you specify a StopTimecode in an input (in
    order to clip the file), you can specify if you want the clip to exclude (the default) or
    include the frame specified by the timecode.

    - **Timecode** *(string) --* The timecode for the frame where you want to stop the clip.
    Optional; if not specified, the clip continues to the end of the file. Enter the timecode as
    HH:MM:SS:FF or HH:MM:SS;FF.
    """


_ClientDescribeScheduleResponseScheduleActionsScheduleActionSettingsInputSwitchSettingsInputClippingSettingsTypeDef = TypedDict(
    "_ClientDescribeScheduleResponseScheduleActionsScheduleActionSettingsInputSwitchSettingsInputClippingSettingsTypeDef",
    {
        "InputTimecodeSource": str,
        "StartTimecode": ClientDescribeScheduleResponseScheduleActionsScheduleActionSettingsInputSwitchSettingsInputClippingSettingsStartTimecodeTypeDef,
        "StopTimecode": ClientDescribeScheduleResponseScheduleActionsScheduleActionSettingsInputSwitchSettingsInputClippingSettingsStopTimecodeTypeDef,
    },
    total=False,
)


class ClientDescribeScheduleResponseScheduleActionsScheduleActionSettingsInputSwitchSettingsInputClippingSettingsTypeDef(
    _ClientDescribeScheduleResponseScheduleActionsScheduleActionSettingsInputSwitchSettingsInputClippingSettingsTypeDef
):
    """
    Type definition for
    `ClientDescribeScheduleResponseScheduleActionsScheduleActionSettingsInputSwitchSettings`
    `InputClippingSettings`

    - **InputTimecodeSource** *(string) --* The source of the timecodes in the source being clipped.

    - **StartTimecode** *(dict) --* Settings to identify the start of the clip.

      - **Timecode** *(string) --* The timecode for the frame where you want to start the clip.
      Optional; if not specified, the clip starts at first frame in the file. Enter the timecode as
      HH:MM:SS:FF or HH:MM:SS;FF.

    - **StopTimecode** *(dict) --* Settings to identify the end of the clip.

      - **LastFrameClippingBehavior** *(string) --* If you specify a StopTimecode in an input (in
      order to clip the file), you can specify if you want the clip to exclude (the default) or
      include the frame specified by the timecode.

      - **Timecode** *(string) --* The timecode for the frame where you want to stop the clip.
      Optional; if not specified, the clip continues to the end of the file. Enter the timecode as
      HH:MM:SS:FF or HH:MM:SS;FF.
    """


_ClientDescribeScheduleResponseScheduleActionsScheduleActionSettingsInputSwitchSettingsTypeDef = TypedDict(
    "_ClientDescribeScheduleResponseScheduleActionsScheduleActionSettingsInputSwitchSettingsTypeDef",
    {
        "InputAttachmentNameReference": str,
        "InputClippingSettings": ClientDescribeScheduleResponseScheduleActionsScheduleActionSettingsInputSwitchSettingsInputClippingSettingsTypeDef,
        "UrlPath": List[str],
    },
    total=False,
)


class ClientDescribeScheduleResponseScheduleActionsScheduleActionSettingsInputSwitchSettingsTypeDef(
    _ClientDescribeScheduleResponseScheduleActionsScheduleActionSettingsInputSwitchSettingsTypeDef
):
    """
    Type definition for `ClientDescribeScheduleResponseScheduleActionsScheduleActionSettings`
    `InputSwitchSettings`

    - **InputAttachmentNameReference** *(string) --* The name of the input attachment (not the name
    of the input!) to switch to. The name is specified in the channel configuration.

    - **InputClippingSettings** *(dict) --* Settings to let you create a clip of the file input, in
    order to set up the input to ingest only a portion of the file.

      - **InputTimecodeSource** *(string) --* The source of the timecodes in the source being
      clipped.

      - **StartTimecode** *(dict) --* Settings to identify the start of the clip.

        - **Timecode** *(string) --* The timecode for the frame where you want to start the clip.
        Optional; if not specified, the clip starts at first frame in the file. Enter the timecode
        as HH:MM:SS:FF or HH:MM:SS;FF.

      - **StopTimecode** *(dict) --* Settings to identify the end of the clip.

        - **LastFrameClippingBehavior** *(string) --* If you specify a StopTimecode in an input (in
        order to clip the file), you can specify if you want the clip to exclude (the default) or
        include the frame specified by the timecode.

        - **Timecode** *(string) --* The timecode for the frame where you want to stop the clip.
        Optional; if not specified, the clip continues to the end of the file. Enter the timecode as
        HH:MM:SS:FF or HH:MM:SS;FF.

    - **UrlPath** *(list) --* The value for the variable portion of the URL for the dynamic input,
    for this instance of the input. Each time you use the same dynamic input in an input switch
    action, you can provide a different value, in order to connect the input to a different content
    source.

      - *(string) --* Placeholder documentation for __string
    """


_ClientDescribeScheduleResponseScheduleActionsScheduleActionSettingsPauseStateSettingsPipelinesTypeDef = TypedDict(
    "_ClientDescribeScheduleResponseScheduleActionsScheduleActionSettingsPauseStateSettingsPipelinesTypeDef",
    {"PipelineId": str},
    total=False,
)


class ClientDescribeScheduleResponseScheduleActionsScheduleActionSettingsPauseStateSettingsPipelinesTypeDef(
    _ClientDescribeScheduleResponseScheduleActionsScheduleActionSettingsPauseStateSettingsPipelinesTypeDef
):
    """
    Type definition for
    `ClientDescribeScheduleResponseScheduleActionsScheduleActionSettingsPauseStateSettings`
    `Pipelines`

    - **PipelineId** *(string) --* Pipeline ID to pause ("PIPELINE_0" or "PIPELINE_1").
    """


_ClientDescribeScheduleResponseScheduleActionsScheduleActionSettingsPauseStateSettingsTypeDef = TypedDict(
    "_ClientDescribeScheduleResponseScheduleActionsScheduleActionSettingsPauseStateSettingsTypeDef",
    {
        "Pipelines": List[
            ClientDescribeScheduleResponseScheduleActionsScheduleActionSettingsPauseStateSettingsPipelinesTypeDef
        ]
    },
    total=False,
)


class ClientDescribeScheduleResponseScheduleActionsScheduleActionSettingsPauseStateSettingsTypeDef(
    _ClientDescribeScheduleResponseScheduleActionsScheduleActionSettingsPauseStateSettingsTypeDef
):
    """
    Type definition for `ClientDescribeScheduleResponseScheduleActionsScheduleActionSettings`
    `PauseStateSettings`

    - **Pipelines** *(list) --* Placeholder documentation for __listOfPipelinePauseStateSettings

      - *(dict) --* Settings for pausing a pipeline.

        - **PipelineId** *(string) --* Pipeline ID to pause ("PIPELINE_0" or "PIPELINE_1").
    """


_ClientDescribeScheduleResponseScheduleActionsScheduleActionSettingsScte35ReturnToNetworkSettingsTypeDef = TypedDict(
    "_ClientDescribeScheduleResponseScheduleActionsScheduleActionSettingsScte35ReturnToNetworkSettingsTypeDef",
    {"SpliceEventId": int},
    total=False,
)


class ClientDescribeScheduleResponseScheduleActionsScheduleActionSettingsScte35ReturnToNetworkSettingsTypeDef(
    _ClientDescribeScheduleResponseScheduleActionsScheduleActionSettingsScte35ReturnToNetworkSettingsTypeDef
):
    """
    Type definition for `ClientDescribeScheduleResponseScheduleActionsScheduleActionSettings`
    `Scte35ReturnToNetworkSettings`

    - **SpliceEventId** *(integer) --* The splice_event_id for the SCTE-35 splice_insert, as defined
    in SCTE-35.
    """


_ClientDescribeScheduleResponseScheduleActionsScheduleActionSettingsScte35SpliceInsertSettingsTypeDef = TypedDict(
    "_ClientDescribeScheduleResponseScheduleActionsScheduleActionSettingsScte35SpliceInsertSettingsTypeDef",
    {"Duration": int, "SpliceEventId": int},
    total=False,
)


class ClientDescribeScheduleResponseScheduleActionsScheduleActionSettingsScte35SpliceInsertSettingsTypeDef(
    _ClientDescribeScheduleResponseScheduleActionsScheduleActionSettingsScte35SpliceInsertSettingsTypeDef
):
    """
    Type definition for `ClientDescribeScheduleResponseScheduleActionsScheduleActionSettings`
    `Scte35SpliceInsertSettings`

    - **Duration** *(integer) --* Optional, the duration for the splice_insert, in 90 KHz ticks. To
    convert seconds to ticks, multiple the seconds by 90,000. If you enter a duration, there is an
    expectation that the downstream system can read the duration and cue in at that time. If you do
    not enter a duration, the splice_insert will continue indefinitely and there is an expectation
    that you will enter a return_to_network to end the splice_insert at the appropriate time.

    - **SpliceEventId** *(integer) --* The splice_event_id for the SCTE-35 splice_insert, as defined
    in SCTE-35.
    """


_ClientDescribeScheduleResponseScheduleActionsScheduleActionSettingsScte35TimeSignalSettingsScte35DescriptorsScte35DescriptorSettingsSegmentationDescriptorScte35DescriptorSettingsDeliveryRestrictionsTypeDef = TypedDict(
    "_ClientDescribeScheduleResponseScheduleActionsScheduleActionSettingsScte35TimeSignalSettingsScte35DescriptorsScte35DescriptorSettingsSegmentationDescriptorScte35DescriptorSettingsDeliveryRestrictionsTypeDef",
    {
        "ArchiveAllowedFlag": str,
        "DeviceRestrictions": str,
        "NoRegionalBlackoutFlag": str,
        "WebDeliveryAllowedFlag": str,
    },
    total=False,
)


class ClientDescribeScheduleResponseScheduleActionsScheduleActionSettingsScte35TimeSignalSettingsScte35DescriptorsScte35DescriptorSettingsSegmentationDescriptorScte35DescriptorSettingsDeliveryRestrictionsTypeDef(
    _ClientDescribeScheduleResponseScheduleActionsScheduleActionSettingsScte35TimeSignalSettingsScte35DescriptorsScte35DescriptorSettingsSegmentationDescriptorScte35DescriptorSettingsDeliveryRestrictionsTypeDef
):
    """
    Type definition for
    `ClientDescribeScheduleResponseScheduleActionsScheduleActionSettingsScte35TimeSignalSettingsScte35DescriptorsScte35DescriptorSettingsSegmentationDescriptorScte35DescriptorSettings`
    `DeliveryRestrictions`

    - **ArchiveAllowedFlag** *(string) --* Corresponds to SCTE-35 archive_allowed_flag.

    - **DeviceRestrictions** *(string) --* Corresponds to SCTE-35 device_restrictions parameter.

    - **NoRegionalBlackoutFlag** *(string) --* Corresponds to SCTE-35 no_regional_blackout_flag
    parameter.

    - **WebDeliveryAllowedFlag** *(string) --* Corresponds to SCTE-35 web_delivery_allowed_flag
    parameter.
    """


_ClientDescribeScheduleResponseScheduleActionsScheduleActionSettingsScte35TimeSignalSettingsScte35DescriptorsScte35DescriptorSettingsSegmentationDescriptorScte35DescriptorSettingsTypeDef = TypedDict(
    "_ClientDescribeScheduleResponseScheduleActionsScheduleActionSettingsScte35TimeSignalSettingsScte35DescriptorsScte35DescriptorSettingsSegmentationDescriptorScte35DescriptorSettingsTypeDef",
    {
        "DeliveryRestrictions": ClientDescribeScheduleResponseScheduleActionsScheduleActionSettingsScte35TimeSignalSettingsScte35DescriptorsScte35DescriptorSettingsSegmentationDescriptorScte35DescriptorSettingsDeliveryRestrictionsTypeDef,
        "SegmentNum": int,
        "SegmentationCancelIndicator": str,
        "SegmentationDuration": int,
        "SegmentationEventId": int,
        "SegmentationTypeId": int,
        "SegmentationUpid": str,
        "SegmentationUpidType": int,
        "SegmentsExpected": int,
        "SubSegmentNum": int,
        "SubSegmentsExpected": int,
    },
    total=False,
)


class ClientDescribeScheduleResponseScheduleActionsScheduleActionSettingsScte35TimeSignalSettingsScte35DescriptorsScte35DescriptorSettingsSegmentationDescriptorScte35DescriptorSettingsTypeDef(
    _ClientDescribeScheduleResponseScheduleActionsScheduleActionSettingsScte35TimeSignalSettingsScte35DescriptorsScte35DescriptorSettingsSegmentationDescriptorScte35DescriptorSettingsTypeDef
):
    """
    Type definition for
    `ClientDescribeScheduleResponseScheduleActionsScheduleActionSettingsScte35TimeSignalSettingsScte35DescriptorsScte35DescriptorSettings`
    `SegmentationDescriptorScte35DescriptorSettings`

    - **DeliveryRestrictions** *(dict) --* Holds the four SCTE-35 delivery restriction parameters.

      - **ArchiveAllowedFlag** *(string) --* Corresponds to SCTE-35 archive_allowed_flag.

      - **DeviceRestrictions** *(string) --* Corresponds to SCTE-35 device_restrictions parameter.

      - **NoRegionalBlackoutFlag** *(string) --* Corresponds to SCTE-35 no_regional_blackout_flag
      parameter.

      - **WebDeliveryAllowedFlag** *(string) --* Corresponds to SCTE-35 web_delivery_allowed_flag
      parameter.

    - **SegmentNum** *(integer) --* Corresponds to SCTE-35 segment_num. A value that is valid for
    the specified segmentation_type_id.

    - **SegmentationCancelIndicator** *(string) --* Corresponds to SCTE-35
    segmentation_event_cancel_indicator.

    - **SegmentationDuration** *(integer) --* Corresponds to SCTE-35 segmentation_duration.
    Optional. The duration for the time_signal, in 90 KHz ticks. To convert seconds to ticks,
    multiple the seconds by 90,000. Enter time in 90 KHz clock ticks. If you do not enter a
    duration, the time_signal will continue until you insert a cancellation message.

    - **SegmentationEventId** *(integer) --* Corresponds to SCTE-35 segmentation_event_id.

    - **SegmentationTypeId** *(integer) --* Corresponds to SCTE-35 segmentation_type_id. One of the
    segmentation_type_id values listed in the SCTE-35 specification. On the console, enter the ID in
    decimal (for example, "52"). In the CLI, API, or an SDK, enter the ID in hex (for example,
    "0x34") or decimal (for example, "52").

    - **SegmentationUpid** *(string) --* Corresponds to SCTE-35 segmentation_upid. Enter a string
    containing the hexadecimal representation of the characters that make up the SCTE-35
    segmentation_upid value. Must contain an even number of hex characters. Do not include spaces
    between each hex pair. For example, the ASCII "ADS Information" becomes hex
    "41445320496e666f726d6174696f6e.

    - **SegmentationUpidType** *(integer) --* Corresponds to SCTE-35 segmentation_upid_type. On the
    console, enter one of the types listed in the SCTE-35 specification, converted to a decimal. For
    example, "0x0C" hex from the specification is "12" in decimal. In the CLI, API, or an SDK, enter
    one of the types listed in the SCTE-35 specification, in either hex (for example, "0x0C" ) or in
    decimal (for example, "12").

    - **SegmentsExpected** *(integer) --* Corresponds to SCTE-35 segments_expected. A value that is
    valid for the specified segmentation_type_id.

    - **SubSegmentNum** *(integer) --* Corresponds to SCTE-35 sub_segment_num. A value that is valid
    for the specified segmentation_type_id.

    - **SubSegmentsExpected** *(integer) --* Corresponds to SCTE-35 sub_segments_expected. A value
    that is valid for the specified segmentation_type_id.
    """


_ClientDescribeScheduleResponseScheduleActionsScheduleActionSettingsScte35TimeSignalSettingsScte35DescriptorsScte35DescriptorSettingsTypeDef = TypedDict(
    "_ClientDescribeScheduleResponseScheduleActionsScheduleActionSettingsScte35TimeSignalSettingsScte35DescriptorsScte35DescriptorSettingsTypeDef",
    {
        "SegmentationDescriptorScte35DescriptorSettings": ClientDescribeScheduleResponseScheduleActionsScheduleActionSettingsScte35TimeSignalSettingsScte35DescriptorsScte35DescriptorSettingsSegmentationDescriptorScte35DescriptorSettingsTypeDef
    },
    total=False,
)


class ClientDescribeScheduleResponseScheduleActionsScheduleActionSettingsScte35TimeSignalSettingsScte35DescriptorsScte35DescriptorSettingsTypeDef(
    _ClientDescribeScheduleResponseScheduleActionsScheduleActionSettingsScte35TimeSignalSettingsScte35DescriptorsScte35DescriptorSettingsTypeDef
):
    """
    Type definition for
    `ClientDescribeScheduleResponseScheduleActionsScheduleActionSettingsScte35TimeSignalSettingsScte35Descriptors`
    `Scte35DescriptorSettings`

    - **SegmentationDescriptorScte35DescriptorSettings** *(dict) --* SCTE-35 Segmentation
    Descriptor.

      - **DeliveryRestrictions** *(dict) --* Holds the four SCTE-35 delivery restriction parameters.

        - **ArchiveAllowedFlag** *(string) --* Corresponds to SCTE-35 archive_allowed_flag.

        - **DeviceRestrictions** *(string) --* Corresponds to SCTE-35 device_restrictions parameter.

        - **NoRegionalBlackoutFlag** *(string) --* Corresponds to SCTE-35 no_regional_blackout_flag
        parameter.

        - **WebDeliveryAllowedFlag** *(string) --* Corresponds to SCTE-35 web_delivery_allowed_flag
        parameter.

      - **SegmentNum** *(integer) --* Corresponds to SCTE-35 segment_num. A value that is valid for
      the specified segmentation_type_id.

      - **SegmentationCancelIndicator** *(string) --* Corresponds to SCTE-35
      segmentation_event_cancel_indicator.

      - **SegmentationDuration** *(integer) --* Corresponds to SCTE-35 segmentation_duration.
      Optional. The duration for the time_signal, in 90 KHz ticks. To convert seconds to ticks,
      multiple the seconds by 90,000. Enter time in 90 KHz clock ticks. If you do not enter a
      duration, the time_signal will continue until you insert a cancellation message.

      - **SegmentationEventId** *(integer) --* Corresponds to SCTE-35 segmentation_event_id.

      - **SegmentationTypeId** *(integer) --* Corresponds to SCTE-35 segmentation_type_id. One of
      the segmentation_type_id values listed in the SCTE-35 specification. On the console, enter the
      ID in decimal (for example, "52"). In the CLI, API, or an SDK, enter the ID in hex (for
      example, "0x34") or decimal (for example, "52").

      - **SegmentationUpid** *(string) --* Corresponds to SCTE-35 segmentation_upid. Enter a string
      containing the hexadecimal representation of the characters that make up the SCTE-35
      segmentation_upid value. Must contain an even number of hex characters. Do not include spaces
      between each hex pair. For example, the ASCII "ADS Information" becomes hex
      "41445320496e666f726d6174696f6e.

      - **SegmentationUpidType** *(integer) --* Corresponds to SCTE-35 segmentation_upid_type. On
      the console, enter one of the types listed in the SCTE-35 specification, converted to a
      decimal. For example, "0x0C" hex from the specification is "12" in decimal. In the CLI, API,
      or an SDK, enter one of the types listed in the SCTE-35 specification, in either hex (for
      example, "0x0C" ) or in decimal (for example, "12").

      - **SegmentsExpected** *(integer) --* Corresponds to SCTE-35 segments_expected. A value that
      is valid for the specified segmentation_type_id.

      - **SubSegmentNum** *(integer) --* Corresponds to SCTE-35 sub_segment_num. A value that is
      valid for the specified segmentation_type_id.

      - **SubSegmentsExpected** *(integer) --* Corresponds to SCTE-35 sub_segments_expected. A value
      that is valid for the specified segmentation_type_id.
    """


_ClientDescribeScheduleResponseScheduleActionsScheduleActionSettingsScte35TimeSignalSettingsScte35DescriptorsTypeDef = TypedDict(
    "_ClientDescribeScheduleResponseScheduleActionsScheduleActionSettingsScte35TimeSignalSettingsScte35DescriptorsTypeDef",
    {
        "Scte35DescriptorSettings": ClientDescribeScheduleResponseScheduleActionsScheduleActionSettingsScte35TimeSignalSettingsScte35DescriptorsScte35DescriptorSettingsTypeDef
    },
    total=False,
)


class ClientDescribeScheduleResponseScheduleActionsScheduleActionSettingsScte35TimeSignalSettingsScte35DescriptorsTypeDef(
    _ClientDescribeScheduleResponseScheduleActionsScheduleActionSettingsScte35TimeSignalSettingsScte35DescriptorsTypeDef
):
    """
    Type definition for
    `ClientDescribeScheduleResponseScheduleActionsScheduleActionSettingsScte35TimeSignalSettings`
    `Scte35Descriptors`

    - **Scte35DescriptorSettings** *(dict) --* SCTE-35 Descriptor Settings.

      - **SegmentationDescriptorScte35DescriptorSettings** *(dict) --* SCTE-35 Segmentation
      Descriptor.

        - **DeliveryRestrictions** *(dict) --* Holds the four SCTE-35 delivery restriction
        parameters.

          - **ArchiveAllowedFlag** *(string) --* Corresponds to SCTE-35 archive_allowed_flag.

          - **DeviceRestrictions** *(string) --* Corresponds to SCTE-35 device_restrictions
          parameter.

          - **NoRegionalBlackoutFlag** *(string) --* Corresponds to SCTE-35
          no_regional_blackout_flag parameter.

          - **WebDeliveryAllowedFlag** *(string) --* Corresponds to SCTE-35
          web_delivery_allowed_flag parameter.

        - **SegmentNum** *(integer) --* Corresponds to SCTE-35 segment_num. A value that is valid
        for the specified segmentation_type_id.

        - **SegmentationCancelIndicator** *(string) --* Corresponds to SCTE-35
        segmentation_event_cancel_indicator.

        - **SegmentationDuration** *(integer) --* Corresponds to SCTE-35 segmentation_duration.
        Optional. The duration for the time_signal, in 90 KHz ticks. To convert seconds to ticks,
        multiple the seconds by 90,000. Enter time in 90 KHz clock ticks. If you do not enter a
        duration, the time_signal will continue until you insert a cancellation message.

        - **SegmentationEventId** *(integer) --* Corresponds to SCTE-35 segmentation_event_id.

        - **SegmentationTypeId** *(integer) --* Corresponds to SCTE-35 segmentation_type_id. One of
        the segmentation_type_id values listed in the SCTE-35 specification. On the console, enter
        the ID in decimal (for example, "52"). In the CLI, API, or an SDK, enter the ID in hex (for
        example, "0x34") or decimal (for example, "52").

        - **SegmentationUpid** *(string) --* Corresponds to SCTE-35 segmentation_upid. Enter a
        string containing the hexadecimal representation of the characters that make up the SCTE-35
        segmentation_upid value. Must contain an even number of hex characters. Do not include
        spaces between each hex pair. For example, the ASCII "ADS Information" becomes hex
        "41445320496e666f726d6174696f6e.

        - **SegmentationUpidType** *(integer) --* Corresponds to SCTE-35 segmentation_upid_type. On
        the console, enter one of the types listed in the SCTE-35 specification, converted to a
        decimal. For example, "0x0C" hex from the specification is "12" in decimal. In the CLI, API,
        or an SDK, enter one of the types listed in the SCTE-35 specification, in either hex (for
        example, "0x0C" ) or in decimal (for example, "12").

        - **SegmentsExpected** *(integer) --* Corresponds to SCTE-35 segments_expected. A value that
        is valid for the specified segmentation_type_id.

        - **SubSegmentNum** *(integer) --* Corresponds to SCTE-35 sub_segment_num. A value that is
        valid for the specified segmentation_type_id.

        - **SubSegmentsExpected** *(integer) --* Corresponds to SCTE-35 sub_segments_expected. A
        value that is valid for the specified segmentation_type_id.
    """


_ClientDescribeScheduleResponseScheduleActionsScheduleActionSettingsScte35TimeSignalSettingsTypeDef = TypedDict(
    "_ClientDescribeScheduleResponseScheduleActionsScheduleActionSettingsScte35TimeSignalSettingsTypeDef",
    {
        "Scte35Descriptors": List[
            ClientDescribeScheduleResponseScheduleActionsScheduleActionSettingsScte35TimeSignalSettingsScte35DescriptorsTypeDef
        ]
    },
    total=False,
)


class ClientDescribeScheduleResponseScheduleActionsScheduleActionSettingsScte35TimeSignalSettingsTypeDef(
    _ClientDescribeScheduleResponseScheduleActionsScheduleActionSettingsScte35TimeSignalSettingsTypeDef
):
    """
    Type definition for `ClientDescribeScheduleResponseScheduleActionsScheduleActionSettings`
    `Scte35TimeSignalSettings`

    - **Scte35Descriptors** *(list) --* The list of SCTE-35 descriptors accompanying the SCTE-35
    time_signal.

      - *(dict) --* Holds one set of SCTE-35 Descriptor Settings.

        - **Scte35DescriptorSettings** *(dict) --* SCTE-35 Descriptor Settings.

          - **SegmentationDescriptorScte35DescriptorSettings** *(dict) --* SCTE-35 Segmentation
          Descriptor.

            - **DeliveryRestrictions** *(dict) --* Holds the four SCTE-35 delivery restriction
            parameters.

              - **ArchiveAllowedFlag** *(string) --* Corresponds to SCTE-35 archive_allowed_flag.

              - **DeviceRestrictions** *(string) --* Corresponds to SCTE-35 device_restrictions
              parameter.

              - **NoRegionalBlackoutFlag** *(string) --* Corresponds to SCTE-35
              no_regional_blackout_flag parameter.

              - **WebDeliveryAllowedFlag** *(string) --* Corresponds to SCTE-35
              web_delivery_allowed_flag parameter.

            - **SegmentNum** *(integer) --* Corresponds to SCTE-35 segment_num. A value that is
            valid for the specified segmentation_type_id.

            - **SegmentationCancelIndicator** *(string) --* Corresponds to SCTE-35
            segmentation_event_cancel_indicator.

            - **SegmentationDuration** *(integer) --* Corresponds to SCTE-35 segmentation_duration.
            Optional. The duration for the time_signal, in 90 KHz ticks. To convert seconds to
            ticks, multiple the seconds by 90,000. Enter time in 90 KHz clock ticks. If you do not
            enter a duration, the time_signal will continue until you insert a cancellation message.

            - **SegmentationEventId** *(integer) --* Corresponds to SCTE-35 segmentation_event_id.

            - **SegmentationTypeId** *(integer) --* Corresponds to SCTE-35 segmentation_type_id. One
            of the segmentation_type_id values listed in the SCTE-35 specification. On the console,
            enter the ID in decimal (for example, "52"). In the CLI, API, or an SDK, enter the ID in
            hex (for example, "0x34") or decimal (for example, "52").

            - **SegmentationUpid** *(string) --* Corresponds to SCTE-35 segmentation_upid. Enter a
            string containing the hexadecimal representation of the characters that make up the
            SCTE-35 segmentation_upid value. Must contain an even number of hex characters. Do not
            include spaces between each hex pair. For example, the ASCII "ADS Information" becomes
            hex "41445320496e666f726d6174696f6e.

            - **SegmentationUpidType** *(integer) --* Corresponds to SCTE-35 segmentation_upid_type.
            On the console, enter one of the types listed in the SCTE-35 specification, converted to
            a decimal. For example, "0x0C" hex from the specification is "12" in decimal. In the
            CLI, API, or an SDK, enter one of the types listed in the SCTE-35 specification, in
            either hex (for example, "0x0C" ) or in decimal (for example, "12").

            - **SegmentsExpected** *(integer) --* Corresponds to SCTE-35 segments_expected. A value
            that is valid for the specified segmentation_type_id.

            - **SubSegmentNum** *(integer) --* Corresponds to SCTE-35 sub_segment_num. A value that
            is valid for the specified segmentation_type_id.

            - **SubSegmentsExpected** *(integer) --* Corresponds to SCTE-35 sub_segments_expected. A
            value that is valid for the specified segmentation_type_id.
    """


_ClientDescribeScheduleResponseScheduleActionsScheduleActionSettingsStaticImageActivateSettingsImageTypeDef = TypedDict(
    "_ClientDescribeScheduleResponseScheduleActionsScheduleActionSettingsStaticImageActivateSettingsImageTypeDef",
    {"PasswordParam": str, "Uri": str, "Username": str},
    total=False,
)


class ClientDescribeScheduleResponseScheduleActionsScheduleActionSettingsStaticImageActivateSettingsImageTypeDef(
    _ClientDescribeScheduleResponseScheduleActionsScheduleActionSettingsStaticImageActivateSettingsImageTypeDef
):
    """
    Type definition for
    `ClientDescribeScheduleResponseScheduleActionsScheduleActionSettingsStaticImageActivateSettings`
    `Image`

    - **PasswordParam** *(string) --* key used to extract the password from EC2 Parameter store

    - **Uri** *(string) --* Uniform Resource Identifier - This should be a path to a file accessible
    to the Live system (eg. a http:// URI) depending on the output type. For example, a RTMP
    destination should have a uri simliar to: "rtmp://fmsserver/live".

    - **Username** *(string) --* Documentation update needed
    """


_ClientDescribeScheduleResponseScheduleActionsScheduleActionSettingsStaticImageActivateSettingsTypeDef = TypedDict(
    "_ClientDescribeScheduleResponseScheduleActionsScheduleActionSettingsStaticImageActivateSettingsTypeDef",
    {
        "Duration": int,
        "FadeIn": int,
        "FadeOut": int,
        "Height": int,
        "Image": ClientDescribeScheduleResponseScheduleActionsScheduleActionSettingsStaticImageActivateSettingsImageTypeDef,
        "ImageX": int,
        "ImageY": int,
        "Layer": int,
        "Opacity": int,
        "Width": int,
    },
    total=False,
)


class ClientDescribeScheduleResponseScheduleActionsScheduleActionSettingsStaticImageActivateSettingsTypeDef(
    _ClientDescribeScheduleResponseScheduleActionsScheduleActionSettingsStaticImageActivateSettingsTypeDef
):
    """
    Type definition for `ClientDescribeScheduleResponseScheduleActionsScheduleActionSettings`
    `StaticImageActivateSettings`

    - **Duration** *(integer) --* The duration in milliseconds for the image to remain on the video.
    If omitted or set to 0 the duration is unlimited and the image will remain until it is
    explicitly deactivated.

    - **FadeIn** *(integer) --* The time in milliseconds for the image to fade in. The fade-in
    starts at the start time of the overlay. Default is 0 (no fade-in).

    - **FadeOut** *(integer) --* Applies only if a duration is specified. The time in milliseconds
    for the image to fade out. The fade-out starts when the duration time is hit, so it effectively
    extends the duration. Default is 0 (no fade-out).

    - **Height** *(integer) --* The height of the image when inserted into the video, in pixels. The
    overlay will be scaled up or down to the specified height. Leave blank to use the native height
    of the overlay.

    - **Image** *(dict) --* The location and filename of the image file to overlay on the video. The
    file must be a 32-bit BMP, PNG, or TGA file, and must not be larger (in pixels) than the input
    video.

      - **PasswordParam** *(string) --* key used to extract the password from EC2 Parameter store

      - **Uri** *(string) --* Uniform Resource Identifier - This should be a path to a file
      accessible to the Live system (eg. a http:// URI) depending on the output type. For example, a
      RTMP destination should have a uri simliar to: "rtmp://fmsserver/live".

      - **Username** *(string) --* Documentation update needed

    - **ImageX** *(integer) --* Placement of the left edge of the overlay relative to the left edge
    of the video frame, in pixels. 0 (the default) is the left edge of the frame. If the placement
    causes the overlay to extend beyond the right edge of the underlying video, then the overlay is
    cropped on the right.

    - **ImageY** *(integer) --* Placement of the top edge of the overlay relative to the top edge of
    the video frame, in pixels. 0 (the default) is the top edge of the frame. If the placement
    causes the overlay to extend beyond the bottom edge of the underlying video, then the overlay is
    cropped on the bottom.

    - **Layer** *(integer) --* The number of the layer, 0 to 7. There are 8 layers that can be
    overlaid on the video, each layer with a different image. The layers are in Z order, which means
    that overlays with higher values of layer are inserted on top of overlays with lower values of
    layer. Default is 0.

    - **Opacity** *(integer) --* Opacity of image where 0 is transparent and 100 is fully opaque.
    Default is 100.

    - **Width** *(integer) --* The width of the image when inserted into the video, in pixels. The
    overlay will be scaled up or down to the specified width. Leave blank to use the native width of
    the overlay.
    """


_ClientDescribeScheduleResponseScheduleActionsScheduleActionSettingsStaticImageDeactivateSettingsTypeDef = TypedDict(
    "_ClientDescribeScheduleResponseScheduleActionsScheduleActionSettingsStaticImageDeactivateSettingsTypeDef",
    {"FadeOut": int, "Layer": int},
    total=False,
)


class ClientDescribeScheduleResponseScheduleActionsScheduleActionSettingsStaticImageDeactivateSettingsTypeDef(
    _ClientDescribeScheduleResponseScheduleActionsScheduleActionSettingsStaticImageDeactivateSettingsTypeDef
):
    """
    Type definition for `ClientDescribeScheduleResponseScheduleActionsScheduleActionSettings`
    `StaticImageDeactivateSettings`

    - **FadeOut** *(integer) --* The time in milliseconds for the image to fade out. Default is 0
    (no fade-out).

    - **Layer** *(integer) --* The image overlay layer to deactivate, 0 to 7. Default is 0.
    """


_ClientDescribeScheduleResponseScheduleActionsScheduleActionSettingsTypeDef = TypedDict(
    "_ClientDescribeScheduleResponseScheduleActionsScheduleActionSettingsTypeDef",
    {
        "HlsTimedMetadataSettings": ClientDescribeScheduleResponseScheduleActionsScheduleActionSettingsHlsTimedMetadataSettingsTypeDef,
        "InputSwitchSettings": ClientDescribeScheduleResponseScheduleActionsScheduleActionSettingsInputSwitchSettingsTypeDef,
        "PauseStateSettings": ClientDescribeScheduleResponseScheduleActionsScheduleActionSettingsPauseStateSettingsTypeDef,
        "Scte35ReturnToNetworkSettings": ClientDescribeScheduleResponseScheduleActionsScheduleActionSettingsScte35ReturnToNetworkSettingsTypeDef,
        "Scte35SpliceInsertSettings": ClientDescribeScheduleResponseScheduleActionsScheduleActionSettingsScte35SpliceInsertSettingsTypeDef,
        "Scte35TimeSignalSettings": ClientDescribeScheduleResponseScheduleActionsScheduleActionSettingsScte35TimeSignalSettingsTypeDef,
        "StaticImageActivateSettings": ClientDescribeScheduleResponseScheduleActionsScheduleActionSettingsStaticImageActivateSettingsTypeDef,
        "StaticImageDeactivateSettings": ClientDescribeScheduleResponseScheduleActionsScheduleActionSettingsStaticImageDeactivateSettingsTypeDef,
    },
    total=False,
)


class ClientDescribeScheduleResponseScheduleActionsScheduleActionSettingsTypeDef(
    _ClientDescribeScheduleResponseScheduleActionsScheduleActionSettingsTypeDef
):
    """
    Type definition for `ClientDescribeScheduleResponseScheduleActions` `ScheduleActionSettings`

    - **HlsTimedMetadataSettings** *(dict) --* Action to insert HLS metadata

      - **Id3** *(string) --* Base64 string formatted according to the ID3 specification:
      http://id3.org/id3v2.4.0-structure

    - **InputSwitchSettings** *(dict) --* Action to switch the input

      - **InputAttachmentNameReference** *(string) --* The name of the input attachment (not the
      name of the input!) to switch to. The name is specified in the channel configuration.

      - **InputClippingSettings** *(dict) --* Settings to let you create a clip of the file input,
      in order to set up the input to ingest only a portion of the file.

        - **InputTimecodeSource** *(string) --* The source of the timecodes in the source being
        clipped.

        - **StartTimecode** *(dict) --* Settings to identify the start of the clip.

          - **Timecode** *(string) --* The timecode for the frame where you want to start the clip.
          Optional; if not specified, the clip starts at first frame in the file. Enter the timecode
          as HH:MM:SS:FF or HH:MM:SS;FF.

        - **StopTimecode** *(dict) --* Settings to identify the end of the clip.

          - **LastFrameClippingBehavior** *(string) --* If you specify a StopTimecode in an input
          (in order to clip the file), you can specify if you want the clip to exclude (the default)
          or include the frame specified by the timecode.

          - **Timecode** *(string) --* The timecode for the frame where you want to stop the clip.
          Optional; if not specified, the clip continues to the end of the file. Enter the timecode
          as HH:MM:SS:FF or HH:MM:SS;FF.

      - **UrlPath** *(list) --* The value for the variable portion of the URL for the dynamic input,
      for this instance of the input. Each time you use the same dynamic input in an input switch
      action, you can provide a different value, in order to connect the input to a different
      content source.

        - *(string) --* Placeholder documentation for __string

    - **PauseStateSettings** *(dict) --* Action to pause or unpause one or both channel pipelines

      - **Pipelines** *(list) --* Placeholder documentation for __listOfPipelinePauseStateSettings

        - *(dict) --* Settings for pausing a pipeline.

          - **PipelineId** *(string) --* Pipeline ID to pause ("PIPELINE_0" or "PIPELINE_1").

    - **Scte35ReturnToNetworkSettings** *(dict) --* Action to insert SCTE-35 return_to_network
    message

      - **SpliceEventId** *(integer) --* The splice_event_id for the SCTE-35 splice_insert, as
      defined in SCTE-35.

    - **Scte35SpliceInsertSettings** *(dict) --* Action to insert SCTE-35 splice_insert message

      - **Duration** *(integer) --* Optional, the duration for the splice_insert, in 90 KHz ticks.
      To convert seconds to ticks, multiple the seconds by 90,000. If you enter a duration, there is
      an expectation that the downstream system can read the duration and cue in at that time. If
      you do not enter a duration, the splice_insert will continue indefinitely and there is an
      expectation that you will enter a return_to_network to end the splice_insert at the
      appropriate time.

      - **SpliceEventId** *(integer) --* The splice_event_id for the SCTE-35 splice_insert, as
      defined in SCTE-35.

    - **Scte35TimeSignalSettings** *(dict) --* Action to insert SCTE-35 time_signal message

      - **Scte35Descriptors** *(list) --* The list of SCTE-35 descriptors accompanying the SCTE-35
      time_signal.

        - *(dict) --* Holds one set of SCTE-35 Descriptor Settings.

          - **Scte35DescriptorSettings** *(dict) --* SCTE-35 Descriptor Settings.

            - **SegmentationDescriptorScte35DescriptorSettings** *(dict) --* SCTE-35 Segmentation
            Descriptor.

              - **DeliveryRestrictions** *(dict) --* Holds the four SCTE-35 delivery restriction
              parameters.

                - **ArchiveAllowedFlag** *(string) --* Corresponds to SCTE-35 archive_allowed_flag.

                - **DeviceRestrictions** *(string) --* Corresponds to SCTE-35 device_restrictions
                parameter.

                - **NoRegionalBlackoutFlag** *(string) --* Corresponds to SCTE-35
                no_regional_blackout_flag parameter.

                - **WebDeliveryAllowedFlag** *(string) --* Corresponds to SCTE-35
                web_delivery_allowed_flag parameter.

              - **SegmentNum** *(integer) --* Corresponds to SCTE-35 segment_num. A value that is
              valid for the specified segmentation_type_id.

              - **SegmentationCancelIndicator** *(string) --* Corresponds to SCTE-35
              segmentation_event_cancel_indicator.

              - **SegmentationDuration** *(integer) --* Corresponds to SCTE-35
              segmentation_duration. Optional. The duration for the time_signal, in 90 KHz ticks. To
              convert seconds to ticks, multiple the seconds by 90,000. Enter time in 90 KHz clock
              ticks. If you do not enter a duration, the time_signal will continue until you insert
              a cancellation message.

              - **SegmentationEventId** *(integer) --* Corresponds to SCTE-35 segmentation_event_id.

              - **SegmentationTypeId** *(integer) --* Corresponds to SCTE-35 segmentation_type_id.
              One of the segmentation_type_id values listed in the SCTE-35 specification. On the
              console, enter the ID in decimal (for example, "52"). In the CLI, API, or an SDK,
              enter the ID in hex (for example, "0x34") or decimal (for example, "52").

              - **SegmentationUpid** *(string) --* Corresponds to SCTE-35 segmentation_upid. Enter a
              string containing the hexadecimal representation of the characters that make up the
              SCTE-35 segmentation_upid value. Must contain an even number of hex characters. Do not
              include spaces between each hex pair. For example, the ASCII "ADS Information" becomes
              hex "41445320496e666f726d6174696f6e.

              - **SegmentationUpidType** *(integer) --* Corresponds to SCTE-35
              segmentation_upid_type. On the console, enter one of the types listed in the SCTE-35
              specification, converted to a decimal. For example, "0x0C" hex from the specification
              is "12" in decimal. In the CLI, API, or an SDK, enter one of the types listed in the
              SCTE-35 specification, in either hex (for example, "0x0C" ) or in decimal (for
              example, "12").

              - **SegmentsExpected** *(integer) --* Corresponds to SCTE-35 segments_expected. A
              value that is valid for the specified segmentation_type_id.

              - **SubSegmentNum** *(integer) --* Corresponds to SCTE-35 sub_segment_num. A value
              that is valid for the specified segmentation_type_id.

              - **SubSegmentsExpected** *(integer) --* Corresponds to SCTE-35 sub_segments_expected.
              A value that is valid for the specified segmentation_type_id.

    - **StaticImageActivateSettings** *(dict) --* Action to activate a static image overlay

      - **Duration** *(integer) --* The duration in milliseconds for the image to remain on the
      video. If omitted or set to 0 the duration is unlimited and the image will remain until it is
      explicitly deactivated.

      - **FadeIn** *(integer) --* The time in milliseconds for the image to fade in. The fade-in
      starts at the start time of the overlay. Default is 0 (no fade-in).

      - **FadeOut** *(integer) --* Applies only if a duration is specified. The time in milliseconds
      for the image to fade out. The fade-out starts when the duration time is hit, so it
      effectively extends the duration. Default is 0 (no fade-out).

      - **Height** *(integer) --* The height of the image when inserted into the video, in pixels.
      The overlay will be scaled up or down to the specified height. Leave blank to use the native
      height of the overlay.

      - **Image** *(dict) --* The location and filename of the image file to overlay on the video.
      The file must be a 32-bit BMP, PNG, or TGA file, and must not be larger (in pixels) than the
      input video.

        - **PasswordParam** *(string) --* key used to extract the password from EC2 Parameter store

        - **Uri** *(string) --* Uniform Resource Identifier - This should be a path to a file
        accessible to the Live system (eg. a http:// URI) depending on the output type. For example,
        a RTMP destination should have a uri simliar to: "rtmp://fmsserver/live".

        - **Username** *(string) --* Documentation update needed

      - **ImageX** *(integer) --* Placement of the left edge of the overlay relative to the left
      edge of the video frame, in pixels. 0 (the default) is the left edge of the frame. If the
      placement causes the overlay to extend beyond the right edge of the underlying video, then the
      overlay is cropped on the right.

      - **ImageY** *(integer) --* Placement of the top edge of the overlay relative to the top edge
      of the video frame, in pixels. 0 (the default) is the top edge of the frame. If the placement
      causes the overlay to extend beyond the bottom edge of the underlying video, then the overlay
      is cropped on the bottom.

      - **Layer** *(integer) --* The number of the layer, 0 to 7. There are 8 layers that can be
      overlaid on the video, each layer with a different image. The layers are in Z order, which
      means that overlays with higher values of layer are inserted on top of overlays with lower
      values of layer. Default is 0.

      - **Opacity** *(integer) --* Opacity of image where 0 is transparent and 100 is fully opaque.
      Default is 100.

      - **Width** *(integer) --* The width of the image when inserted into the video, in pixels. The
      overlay will be scaled up or down to the specified width. Leave blank to use the native width
      of the overlay.

    - **StaticImageDeactivateSettings** *(dict) --* Action to deactivate a static image overlay

      - **FadeOut** *(integer) --* The time in milliseconds for the image to fade out. Default is 0
      (no fade-out).

      - **Layer** *(integer) --* The image overlay layer to deactivate, 0 to 7. Default is 0.
    """


_ClientDescribeScheduleResponseScheduleActionsScheduleActionStartSettingsFixedModeScheduleActionStartSettingsTypeDef = TypedDict(
    "_ClientDescribeScheduleResponseScheduleActionsScheduleActionStartSettingsFixedModeScheduleActionStartSettingsTypeDef",
    {"Time": str},
    total=False,
)


class ClientDescribeScheduleResponseScheduleActionsScheduleActionStartSettingsFixedModeScheduleActionStartSettingsTypeDef(
    _ClientDescribeScheduleResponseScheduleActionsScheduleActionStartSettingsFixedModeScheduleActionStartSettingsTypeDef
):
    """
    Type definition for `ClientDescribeScheduleResponseScheduleActionsScheduleActionStartSettings`
    `FixedModeScheduleActionStartSettings`

    - **Time** *(string) --* Start time for the action to start in the channel. (Not the time for
    the action to be added to the schedule: actions are always added to the schedule immediately.)
    UTC format: yyyy-mm-ddThh:mm:ss.nnnZ. All the letters are digits (for example, mm might be 01)
    except for the two constants "T" for time and "Z" for "UTC format".
    """


_ClientDescribeScheduleResponseScheduleActionsScheduleActionStartSettingsFollowModeScheduleActionStartSettingsTypeDef = TypedDict(
    "_ClientDescribeScheduleResponseScheduleActionsScheduleActionStartSettingsFollowModeScheduleActionStartSettingsTypeDef",
    {"FollowPoint": str, "ReferenceActionName": str},
    total=False,
)


class ClientDescribeScheduleResponseScheduleActionsScheduleActionStartSettingsFollowModeScheduleActionStartSettingsTypeDef(
    _ClientDescribeScheduleResponseScheduleActionsScheduleActionStartSettingsFollowModeScheduleActionStartSettingsTypeDef
):
    """
    Type definition for `ClientDescribeScheduleResponseScheduleActionsScheduleActionStartSettings`
    `FollowModeScheduleActionStartSettings`

    - **FollowPoint** *(string) --* Identifies whether this action starts relative to the start or
    relative to the end of the reference action.

    - **ReferenceActionName** *(string) --* The action name of another action that this one refers
    to.
    """


_ClientDescribeScheduleResponseScheduleActionsScheduleActionStartSettingsTypeDef = TypedDict(
    "_ClientDescribeScheduleResponseScheduleActionsScheduleActionStartSettingsTypeDef",
    {
        "FixedModeScheduleActionStartSettings": ClientDescribeScheduleResponseScheduleActionsScheduleActionStartSettingsFixedModeScheduleActionStartSettingsTypeDef,
        "FollowModeScheduleActionStartSettings": ClientDescribeScheduleResponseScheduleActionsScheduleActionStartSettingsFollowModeScheduleActionStartSettingsTypeDef,
        "ImmediateModeScheduleActionStartSettings": Dict[str, Any],
    },
    total=False,
)


class ClientDescribeScheduleResponseScheduleActionsScheduleActionStartSettingsTypeDef(
    _ClientDescribeScheduleResponseScheduleActionsScheduleActionStartSettingsTypeDef
):
    """
    Type definition for `ClientDescribeScheduleResponseScheduleActions`
    `ScheduleActionStartSettings`

    - **FixedModeScheduleActionStartSettings** *(dict) --* Option for specifying the start time for
    an action.

      - **Time** *(string) --* Start time for the action to start in the channel. (Not the time for
      the action to be added to the schedule: actions are always added to the schedule immediately.)
      UTC format: yyyy-mm-ddThh:mm:ss.nnnZ. All the letters are digits (for example, mm might be 01)
      except for the two constants "T" for time and "Z" for "UTC format".

    - **FollowModeScheduleActionStartSettings** *(dict) --* Option for specifying an action as
    relative to another action.

      - **FollowPoint** *(string) --* Identifies whether this action starts relative to the start or
      relative to the end of the reference action.

      - **ReferenceActionName** *(string) --* The action name of another action that this one refers
      to.

    - **ImmediateModeScheduleActionStartSettings** *(dict) --* Option for specifying an action that
    should be applied immediately.
    """


_ClientDescribeScheduleResponseScheduleActionsTypeDef = TypedDict(
    "_ClientDescribeScheduleResponseScheduleActionsTypeDef",
    {
        "ActionName": str,
        "ScheduleActionSettings": ClientDescribeScheduleResponseScheduleActionsScheduleActionSettingsTypeDef,
        "ScheduleActionStartSettings": ClientDescribeScheduleResponseScheduleActionsScheduleActionStartSettingsTypeDef,
    },
    total=False,
)


class ClientDescribeScheduleResponseScheduleActionsTypeDef(
    _ClientDescribeScheduleResponseScheduleActionsTypeDef
):
    """
    Type definition for `ClientDescribeScheduleResponse` `ScheduleActions`

    - **ActionName** *(string) --* The name of the action, must be unique within the schedule. This
    name provides the main reference to an action once it is added to the schedule. A name is unique
    if it is no longer in the schedule. The schedule is automatically cleaned up to remove actions
    with a start time of more than 1 hour ago (approximately) so at that point a name can be reused.

    - **ScheduleActionSettings** *(dict) --* Settings for this schedule action.

      - **HlsTimedMetadataSettings** *(dict) --* Action to insert HLS metadata

        - **Id3** *(string) --* Base64 string formatted according to the ID3 specification:
        http://id3.org/id3v2.4.0-structure

      - **InputSwitchSettings** *(dict) --* Action to switch the input

        - **InputAttachmentNameReference** *(string) --* The name of the input attachment (not the
        name of the input!) to switch to. The name is specified in the channel configuration.

        - **InputClippingSettings** *(dict) --* Settings to let you create a clip of the file input,
        in order to set up the input to ingest only a portion of the file.

          - **InputTimecodeSource** *(string) --* The source of the timecodes in the source being
          clipped.

          - **StartTimecode** *(dict) --* Settings to identify the start of the clip.

            - **Timecode** *(string) --* The timecode for the frame where you want to start the
            clip. Optional; if not specified, the clip starts at first frame in the file. Enter the
            timecode as HH:MM:SS:FF or HH:MM:SS;FF.

          - **StopTimecode** *(dict) --* Settings to identify the end of the clip.

            - **LastFrameClippingBehavior** *(string) --* If you specify a StopTimecode in an input
            (in order to clip the file), you can specify if you want the clip to exclude (the
            default) or include the frame specified by the timecode.

            - **Timecode** *(string) --* The timecode for the frame where you want to stop the clip.
            Optional; if not specified, the clip continues to the end of the file. Enter the
            timecode as HH:MM:SS:FF or HH:MM:SS;FF.

        - **UrlPath** *(list) --* The value for the variable portion of the URL for the dynamic
        input, for this instance of the input. Each time you use the same dynamic input in an input
        switch action, you can provide a different value, in order to connect the input to a
        different content source.

          - *(string) --* Placeholder documentation for __string

      - **PauseStateSettings** *(dict) --* Action to pause or unpause one or both channel pipelines

        - **Pipelines** *(list) --* Placeholder documentation for __listOfPipelinePauseStateSettings

          - *(dict) --* Settings for pausing a pipeline.

            - **PipelineId** *(string) --* Pipeline ID to pause ("PIPELINE_0" or "PIPELINE_1").

      - **Scte35ReturnToNetworkSettings** *(dict) --* Action to insert SCTE-35 return_to_network
      message

        - **SpliceEventId** *(integer) --* The splice_event_id for the SCTE-35 splice_insert, as
        defined in SCTE-35.

      - **Scte35SpliceInsertSettings** *(dict) --* Action to insert SCTE-35 splice_insert message

        - **Duration** *(integer) --* Optional, the duration for the splice_insert, in 90 KHz ticks.
        To convert seconds to ticks, multiple the seconds by 90,000. If you enter a duration, there
        is an expectation that the downstream system can read the duration and cue in at that time.
        If you do not enter a duration, the splice_insert will continue indefinitely and there is an
        expectation that you will enter a return_to_network to end the splice_insert at the
        appropriate time.

        - **SpliceEventId** *(integer) --* The splice_event_id for the SCTE-35 splice_insert, as
        defined in SCTE-35.

      - **Scte35TimeSignalSettings** *(dict) --* Action to insert SCTE-35 time_signal message

        - **Scte35Descriptors** *(list) --* The list of SCTE-35 descriptors accompanying the SCTE-35
        time_signal.

          - *(dict) --* Holds one set of SCTE-35 Descriptor Settings.

            - **Scte35DescriptorSettings** *(dict) --* SCTE-35 Descriptor Settings.

              - **SegmentationDescriptorScte35DescriptorSettings** *(dict) --* SCTE-35 Segmentation
              Descriptor.

                - **DeliveryRestrictions** *(dict) --* Holds the four SCTE-35 delivery restriction
                parameters.

                  - **ArchiveAllowedFlag** *(string) --* Corresponds to SCTE-35
                  archive_allowed_flag.

                  - **DeviceRestrictions** *(string) --* Corresponds to SCTE-35 device_restrictions
                  parameter.

                  - **NoRegionalBlackoutFlag** *(string) --* Corresponds to SCTE-35
                  no_regional_blackout_flag parameter.

                  - **WebDeliveryAllowedFlag** *(string) --* Corresponds to SCTE-35
                  web_delivery_allowed_flag parameter.

                - **SegmentNum** *(integer) --* Corresponds to SCTE-35 segment_num. A value that is
                valid for the specified segmentation_type_id.

                - **SegmentationCancelIndicator** *(string) --* Corresponds to SCTE-35
                segmentation_event_cancel_indicator.

                - **SegmentationDuration** *(integer) --* Corresponds to SCTE-35
                segmentation_duration. Optional. The duration for the time_signal, in 90 KHz ticks.
                To convert seconds to ticks, multiple the seconds by 90,000. Enter time in 90 KHz
                clock ticks. If you do not enter a duration, the time_signal will continue until you
                insert a cancellation message.

                - **SegmentationEventId** *(integer) --* Corresponds to SCTE-35
                segmentation_event_id.

                - **SegmentationTypeId** *(integer) --* Corresponds to SCTE-35 segmentation_type_id.
                One of the segmentation_type_id values listed in the SCTE-35 specification. On the
                console, enter the ID in decimal (for example, "52"). In the CLI, API, or an SDK,
                enter the ID in hex (for example, "0x34") or decimal (for example, "52").

                - **SegmentationUpid** *(string) --* Corresponds to SCTE-35 segmentation_upid. Enter
                a string containing the hexadecimal representation of the characters that make up
                the SCTE-35 segmentation_upid value. Must contain an even number of hex characters.
                Do not include spaces between each hex pair. For example, the ASCII "ADS
                Information" becomes hex "41445320496e666f726d6174696f6e.

                - **SegmentationUpidType** *(integer) --* Corresponds to SCTE-35
                segmentation_upid_type. On the console, enter one of the types listed in the SCTE-35
                specification, converted to a decimal. For example, "0x0C" hex from the
                specification is "12" in decimal. In the CLI, API, or an SDK, enter one of the types
                listed in the SCTE-35 specification, in either hex (for example, "0x0C" ) or in
                decimal (for example, "12").

                - **SegmentsExpected** *(integer) --* Corresponds to SCTE-35 segments_expected. A
                value that is valid for the specified segmentation_type_id.

                - **SubSegmentNum** *(integer) --* Corresponds to SCTE-35 sub_segment_num. A value
                that is valid for the specified segmentation_type_id.

                - **SubSegmentsExpected** *(integer) --* Corresponds to SCTE-35
                sub_segments_expected. A value that is valid for the specified segmentation_type_id.

      - **StaticImageActivateSettings** *(dict) --* Action to activate a static image overlay

        - **Duration** *(integer) --* The duration in milliseconds for the image to remain on the
        video. If omitted or set to 0 the duration is unlimited and the image will remain until it
        is explicitly deactivated.

        - **FadeIn** *(integer) --* The time in milliseconds for the image to fade in. The fade-in
        starts at the start time of the overlay. Default is 0 (no fade-in).

        - **FadeOut** *(integer) --* Applies only if a duration is specified. The time in
        milliseconds for the image to fade out. The fade-out starts when the duration time is hit,
        so it effectively extends the duration. Default is 0 (no fade-out).

        - **Height** *(integer) --* The height of the image when inserted into the video, in pixels.
        The overlay will be scaled up or down to the specified height. Leave blank to use the native
        height of the overlay.

        - **Image** *(dict) --* The location and filename of the image file to overlay on the video.
        The file must be a 32-bit BMP, PNG, or TGA file, and must not be larger (in pixels) than the
        input video.

          - **PasswordParam** *(string) --* key used to extract the password from EC2 Parameter
          store

          - **Uri** *(string) --* Uniform Resource Identifier - This should be a path to a file
          accessible to the Live system (eg. a http:// URI) depending on the output type. For
          example, a RTMP destination should have a uri simliar to: "rtmp://fmsserver/live".

          - **Username** *(string) --* Documentation update needed

        - **ImageX** *(integer) --* Placement of the left edge of the overlay relative to the left
        edge of the video frame, in pixels. 0 (the default) is the left edge of the frame. If the
        placement causes the overlay to extend beyond the right edge of the underlying video, then
        the overlay is cropped on the right.

        - **ImageY** *(integer) --* Placement of the top edge of the overlay relative to the top
        edge of the video frame, in pixels. 0 (the default) is the top edge of the frame. If the
        placement causes the overlay to extend beyond the bottom edge of the underlying video, then
        the overlay is cropped on the bottom.

        - **Layer** *(integer) --* The number of the layer, 0 to 7. There are 8 layers that can be
        overlaid on the video, each layer with a different image. The layers are in Z order, which
        means that overlays with higher values of layer are inserted on top of overlays with lower
        values of layer. Default is 0.

        - **Opacity** *(integer) --* Opacity of image where 0 is transparent and 100 is fully
        opaque. Default is 100.

        - **Width** *(integer) --* The width of the image when inserted into the video, in pixels.
        The overlay will be scaled up or down to the specified width. Leave blank to use the native
        width of the overlay.

      - **StaticImageDeactivateSettings** *(dict) --* Action to deactivate a static image overlay

        - **FadeOut** *(integer) --* The time in milliseconds for the image to fade out. Default is
        0 (no fade-out).

        - **Layer** *(integer) --* The image overlay layer to deactivate, 0 to 7. Default is 0.

    - **ScheduleActionStartSettings** *(dict) --* The time for the action to start in the channel.

      - **FixedModeScheduleActionStartSettings** *(dict) --* Option for specifying the start time
      for an action.

        - **Time** *(string) --* Start time for the action to start in the channel. (Not the time
        for the action to be added to the schedule: actions are always added to the schedule
        immediately.) UTC format: yyyy-mm-ddThh:mm:ss.nnnZ. All the letters are digits (for example,
        mm might be 01) except for the two constants "T" for time and "Z" for "UTC format".

      - **FollowModeScheduleActionStartSettings** *(dict) --* Option for specifying an action as
      relative to another action.

        - **FollowPoint** *(string) --* Identifies whether this action starts relative to the start
        or relative to the end of the reference action.

        - **ReferenceActionName** *(string) --* The action name of another action that this one
        refers to.

      - **ImmediateModeScheduleActionStartSettings** *(dict) --* Option for specifying an action
      that should be applied immediately.
    """


_ClientDescribeScheduleResponseTypeDef = TypedDict(
    "_ClientDescribeScheduleResponseTypeDef",
    {
        "NextToken": str,
        "ScheduleActions": List[ClientDescribeScheduleResponseScheduleActionsTypeDef],
    },
    total=False,
)


class ClientDescribeScheduleResponseTypeDef(_ClientDescribeScheduleResponseTypeDef):
    """
    Type definition for `ClientDescribeSchedule` `Response`

    - **NextToken** *(string) --* The next token; for use in pagination.

    - **ScheduleActions** *(list) --* The list of actions in the schedule.

      - *(dict) --* Contains information on a single schedule action.

        - **ActionName** *(string) --* The name of the action, must be unique within the schedule.
        This name provides the main reference to an action once it is added to the schedule. A name
        is unique if it is no longer in the schedule. The schedule is automatically cleaned up to
        remove actions with a start time of more than 1 hour ago (approximately) so at that point a
        name can be reused.

        - **ScheduleActionSettings** *(dict) --* Settings for this schedule action.

          - **HlsTimedMetadataSettings** *(dict) --* Action to insert HLS metadata

            - **Id3** *(string) --* Base64 string formatted according to the ID3 specification:
            http://id3.org/id3v2.4.0-structure

          - **InputSwitchSettings** *(dict) --* Action to switch the input

            - **InputAttachmentNameReference** *(string) --* The name of the input attachment (not
            the name of the input!) to switch to. The name is specified in the channel
            configuration.

            - **InputClippingSettings** *(dict) --* Settings to let you create a clip of the file
            input, in order to set up the input to ingest only a portion of the file.

              - **InputTimecodeSource** *(string) --* The source of the timecodes in the source
              being clipped.

              - **StartTimecode** *(dict) --* Settings to identify the start of the clip.

                - **Timecode** *(string) --* The timecode for the frame where you want to start the
                clip. Optional; if not specified, the clip starts at first frame in the file. Enter
                the timecode as HH:MM:SS:FF or HH:MM:SS;FF.

              - **StopTimecode** *(dict) --* Settings to identify the end of the clip.

                - **LastFrameClippingBehavior** *(string) --* If you specify a StopTimecode in an
                input (in order to clip the file), you can specify if you want the clip to exclude
                (the default) or include the frame specified by the timecode.

                - **Timecode** *(string) --* The timecode for the frame where you want to stop the
                clip. Optional; if not specified, the clip continues to the end of the file. Enter
                the timecode as HH:MM:SS:FF or HH:MM:SS;FF.

            - **UrlPath** *(list) --* The value for the variable portion of the URL for the dynamic
            input, for this instance of the input. Each time you use the same dynamic input in an
            input switch action, you can provide a different value, in order to connect the input to
            a different content source.

              - *(string) --* Placeholder documentation for __string

          - **PauseStateSettings** *(dict) --* Action to pause or unpause one or both channel
          pipelines

            - **Pipelines** *(list) --* Placeholder documentation for
            __listOfPipelinePauseStateSettings

              - *(dict) --* Settings for pausing a pipeline.

                - **PipelineId** *(string) --* Pipeline ID to pause ("PIPELINE_0" or "PIPELINE_1").

          - **Scte35ReturnToNetworkSettings** *(dict) --* Action to insert SCTE-35 return_to_network
          message

            - **SpliceEventId** *(integer) --* The splice_event_id for the SCTE-35 splice_insert, as
            defined in SCTE-35.

          - **Scte35SpliceInsertSettings** *(dict) --* Action to insert SCTE-35 splice_insert
          message

            - **Duration** *(integer) --* Optional, the duration for the splice_insert, in 90 KHz
            ticks. To convert seconds to ticks, multiple the seconds by 90,000. If you enter a
            duration, there is an expectation that the downstream system can read the duration and
            cue in at that time. If you do not enter a duration, the splice_insert will continue
            indefinitely and there is an expectation that you will enter a return_to_network to end
            the splice_insert at the appropriate time.

            - **SpliceEventId** *(integer) --* The splice_event_id for the SCTE-35 splice_insert, as
            defined in SCTE-35.

          - **Scte35TimeSignalSettings** *(dict) --* Action to insert SCTE-35 time_signal message

            - **Scte35Descriptors** *(list) --* The list of SCTE-35 descriptors accompanying the
            SCTE-35 time_signal.

              - *(dict) --* Holds one set of SCTE-35 Descriptor Settings.

                - **Scte35DescriptorSettings** *(dict) --* SCTE-35 Descriptor Settings.

                  - **SegmentationDescriptorScte35DescriptorSettings** *(dict) --* SCTE-35
                  Segmentation Descriptor.

                    - **DeliveryRestrictions** *(dict) --* Holds the four SCTE-35 delivery
                    restriction parameters.

                      - **ArchiveAllowedFlag** *(string) --* Corresponds to SCTE-35
                      archive_allowed_flag.

                      - **DeviceRestrictions** *(string) --* Corresponds to SCTE-35
                      device_restrictions parameter.

                      - **NoRegionalBlackoutFlag** *(string) --* Corresponds to SCTE-35
                      no_regional_blackout_flag parameter.

                      - **WebDeliveryAllowedFlag** *(string) --* Corresponds to SCTE-35
                      web_delivery_allowed_flag parameter.

                    - **SegmentNum** *(integer) --* Corresponds to SCTE-35 segment_num. A value that
                    is valid for the specified segmentation_type_id.

                    - **SegmentationCancelIndicator** *(string) --* Corresponds to SCTE-35
                    segmentation_event_cancel_indicator.

                    - **SegmentationDuration** *(integer) --* Corresponds to SCTE-35
                    segmentation_duration. Optional. The duration for the time_signal, in 90 KHz
                    ticks. To convert seconds to ticks, multiple the seconds by 90,000. Enter time
                    in 90 KHz clock ticks. If you do not enter a duration, the time_signal will
                    continue until you insert a cancellation message.

                    - **SegmentationEventId** *(integer) --* Corresponds to SCTE-35
                    segmentation_event_id.

                    - **SegmentationTypeId** *(integer) --* Corresponds to SCTE-35
                    segmentation_type_id. One of the segmentation_type_id values listed in the
                    SCTE-35 specification. On the console, enter the ID in decimal (for example,
                    "52"). In the CLI, API, or an SDK, enter the ID in hex (for example, "0x34") or
                    decimal (for example, "52").

                    - **SegmentationUpid** *(string) --* Corresponds to SCTE-35 segmentation_upid.
                    Enter a string containing the hexadecimal representation of the characters that
                    make up the SCTE-35 segmentation_upid value. Must contain an even number of hex
                    characters. Do not include spaces between each hex pair. For example, the ASCII
                    "ADS Information" becomes hex "41445320496e666f726d6174696f6e.

                    - **SegmentationUpidType** *(integer) --* Corresponds to SCTE-35
                    segmentation_upid_type. On the console, enter one of the types listed in the
                    SCTE-35 specification, converted to a decimal. For example, "0x0C" hex from the
                    specification is "12" in decimal. In the CLI, API, or an SDK, enter one of the
                    types listed in the SCTE-35 specification, in either hex (for example, "0x0C" )
                    or in decimal (for example, "12").

                    - **SegmentsExpected** *(integer) --* Corresponds to SCTE-35 segments_expected.
                    A value that is valid for the specified segmentation_type_id.

                    - **SubSegmentNum** *(integer) --* Corresponds to SCTE-35 sub_segment_num. A
                    value that is valid for the specified segmentation_type_id.

                    - **SubSegmentsExpected** *(integer) --* Corresponds to SCTE-35
                    sub_segments_expected. A value that is valid for the specified
                    segmentation_type_id.

          - **StaticImageActivateSettings** *(dict) --* Action to activate a static image overlay

            - **Duration** *(integer) --* The duration in milliseconds for the image to remain on
            the video. If omitted or set to 0 the duration is unlimited and the image will remain
            until it is explicitly deactivated.

            - **FadeIn** *(integer) --* The time in milliseconds for the image to fade in. The
            fade-in starts at the start time of the overlay. Default is 0 (no fade-in).

            - **FadeOut** *(integer) --* Applies only if a duration is specified. The time in
            milliseconds for the image to fade out. The fade-out starts when the duration time is
            hit, so it effectively extends the duration. Default is 0 (no fade-out).

            - **Height** *(integer) --* The height of the image when inserted into the video, in
            pixels. The overlay will be scaled up or down to the specified height. Leave blank to
            use the native height of the overlay.

            - **Image** *(dict) --* The location and filename of the image file to overlay on the
            video. The file must be a 32-bit BMP, PNG, or TGA file, and must not be larger (in
            pixels) than the input video.

              - **PasswordParam** *(string) --* key used to extract the password from EC2 Parameter
              store

              - **Uri** *(string) --* Uniform Resource Identifier - This should be a path to a file
              accessible to the Live system (eg. a http:// URI) depending on the output type. For
              example, a RTMP destination should have a uri simliar to: "rtmp://fmsserver/live".

              - **Username** *(string) --* Documentation update needed

            - **ImageX** *(integer) --* Placement of the left edge of the overlay relative to the
            left edge of the video frame, in pixels. 0 (the default) is the left edge of the frame.
            If the placement causes the overlay to extend beyond the right edge of the underlying
            video, then the overlay is cropped on the right.

            - **ImageY** *(integer) --* Placement of the top edge of the overlay relative to the top
            edge of the video frame, in pixels. 0 (the default) is the top edge of the frame. If the
            placement causes the overlay to extend beyond the bottom edge of the underlying video,
            then the overlay is cropped on the bottom.

            - **Layer** *(integer) --* The number of the layer, 0 to 7. There are 8 layers that can
            be overlaid on the video, each layer with a different image. The layers are in Z order,
            which means that overlays with higher values of layer are inserted on top of overlays
            with lower values of layer. Default is 0.

            - **Opacity** *(integer) --* Opacity of image where 0 is transparent and 100 is fully
            opaque. Default is 100.

            - **Width** *(integer) --* The width of the image when inserted into the video, in
            pixels. The overlay will be scaled up or down to the specified width. Leave blank to use
            the native width of the overlay.

          - **StaticImageDeactivateSettings** *(dict) --* Action to deactivate a static image
          overlay

            - **FadeOut** *(integer) --* The time in milliseconds for the image to fade out. Default
            is 0 (no fade-out).

            - **Layer** *(integer) --* The image overlay layer to deactivate, 0 to 7. Default is 0.

        - **ScheduleActionStartSettings** *(dict) --* The time for the action to start in the
        channel.

          - **FixedModeScheduleActionStartSettings** *(dict) --* Option for specifying the start
          time for an action.

            - **Time** *(string) --* Start time for the action to start in the channel. (Not the
            time for the action to be added to the schedule: actions are always added to the
            schedule immediately.) UTC format: yyyy-mm-ddThh:mm:ss.nnnZ. All the letters are digits
            (for example, mm might be 01) except for the two constants "T" for time and "Z" for "UTC
            format".

          - **FollowModeScheduleActionStartSettings** *(dict) --* Option for specifying an action as
          relative to another action.

            - **FollowPoint** *(string) --* Identifies whether this action starts relative to the
            start or relative to the end of the reference action.

            - **ReferenceActionName** *(string) --* The action name of another action that this one
            refers to.

          - **ImmediateModeScheduleActionStartSettings** *(dict) --* Option for specifying an action
          that should be applied immediately.
    """


_ClientListChannelsResponseChannelsDestinationsMediaPackageSettingsTypeDef = TypedDict(
    "_ClientListChannelsResponseChannelsDestinationsMediaPackageSettingsTypeDef",
    {"ChannelId": str},
    total=False,
)


class ClientListChannelsResponseChannelsDestinationsMediaPackageSettingsTypeDef(
    _ClientListChannelsResponseChannelsDestinationsMediaPackageSettingsTypeDef
):
    """
    Type definition for `ClientListChannelsResponseChannelsDestinations` `MediaPackageSettings`

    - **ChannelId** *(string) --* ID of the channel in MediaPackage that is the destination for this
    output group. You do not need to specify the individual inputs in MediaPackage; MediaLive will
    handle the connection of the two MediaLive pipelines to the two MediaPackage inputs. The
    MediaPackage channel and MediaLive channel must be in the same region.
    """


_ClientListChannelsResponseChannelsDestinationsMultiplexSettingsTypeDef = TypedDict(
    "_ClientListChannelsResponseChannelsDestinationsMultiplexSettingsTypeDef",
    {"MultiplexId": str, "ProgramName": str},
    total=False,
)


class ClientListChannelsResponseChannelsDestinationsMultiplexSettingsTypeDef(
    _ClientListChannelsResponseChannelsDestinationsMultiplexSettingsTypeDef
):
    """
    Type definition for `ClientListChannelsResponseChannelsDestinations` `MultiplexSettings`

    - **MultiplexId** *(string) --* The ID of the Multiplex that the encoder is providing output to.
    You do not need to specify the individual inputs to the Multiplex; MediaLive will handle the
    connection of the two MediaLive pipelines to the two Multiplex instances. The Multiplex must be
    in the same region as the Channel.

    - **ProgramName** *(string) --* The program name of the Multiplex program that the encoder is
    providing output to.
    """


_ClientListChannelsResponseChannelsDestinationsSettingsTypeDef = TypedDict(
    "_ClientListChannelsResponseChannelsDestinationsSettingsTypeDef",
    {"PasswordParam": str, "StreamName": str, "Url": str, "Username": str},
    total=False,
)


class ClientListChannelsResponseChannelsDestinationsSettingsTypeDef(
    _ClientListChannelsResponseChannelsDestinationsSettingsTypeDef
):
    """
    Type definition for `ClientListChannelsResponseChannelsDestinations` `Settings`

    - **PasswordParam** *(string) --* key used to extract the password from EC2 Parameter store

    - **StreamName** *(string) --* Stream name for RTMP destinations (URLs of type rtmp://)

    - **Url** *(string) --* A URL specifying a destination

    - **Username** *(string) --* username for destination
    """


_ClientListChannelsResponseChannelsDestinationsTypeDef = TypedDict(
    "_ClientListChannelsResponseChannelsDestinationsTypeDef",
    {
        "Id": str,
        "MediaPackageSettings": List[
            ClientListChannelsResponseChannelsDestinationsMediaPackageSettingsTypeDef
        ],
        "MultiplexSettings": ClientListChannelsResponseChannelsDestinationsMultiplexSettingsTypeDef,
        "Settings": List[ClientListChannelsResponseChannelsDestinationsSettingsTypeDef],
    },
    total=False,
)


class ClientListChannelsResponseChannelsDestinationsTypeDef(
    _ClientListChannelsResponseChannelsDestinationsTypeDef
):
    """
    Type definition for `ClientListChannelsResponseChannels` `Destinations`

    - **Id** *(string) --* User-specified id. This is used in an output group or an output.

    - **MediaPackageSettings** *(list) --* Destination settings for a MediaPackage output; one
    destination for both encoders.

      - *(dict) --* MediaPackage Output Destination Settings

        - **ChannelId** *(string) --* ID of the channel in MediaPackage that is the destination for
        this output group. You do not need to specify the individual inputs in MediaPackage;
        MediaLive will handle the connection of the two MediaLive pipelines to the two MediaPackage
        inputs. The MediaPackage channel and MediaLive channel must be in the same region.

    - **MultiplexSettings** *(dict) --* Destination settings for a Multiplex output; one destination
    for both encoders.

      - **MultiplexId** *(string) --* The ID of the Multiplex that the encoder is providing output
      to. You do not need to specify the individual inputs to the Multiplex; MediaLive will handle
      the connection of the two MediaLive pipelines to the two Multiplex instances. The Multiplex
      must be in the same region as the Channel.

      - **ProgramName** *(string) --* The program name of the Multiplex program that the encoder is
      providing output to.

    - **Settings** *(list) --* Destination settings for a standard output; one destination for each
    redundant encoder.

      - *(dict) --* Placeholder documentation for OutputDestinationSettings

        - **PasswordParam** *(string) --* key used to extract the password from EC2 Parameter store

        - **StreamName** *(string) --* Stream name for RTMP destinations (URLs of type rtmp://)

        - **Url** *(string) --* A URL specifying a destination

        - **Username** *(string) --* username for destination
    """


_ClientListChannelsResponseChannelsEgressEndpointsTypeDef = TypedDict(
    "_ClientListChannelsResponseChannelsEgressEndpointsTypeDef", {"SourceIp": str}, total=False
)


class ClientListChannelsResponseChannelsEgressEndpointsTypeDef(
    _ClientListChannelsResponseChannelsEgressEndpointsTypeDef
):
    """
    Type definition for `ClientListChannelsResponseChannels` `EgressEndpoints`

    - **SourceIp** *(string) --* Public IP of where a channel's output comes from
    """


_ClientListChannelsResponseChannelsInputAttachmentsInputSettingsAudioSelectorsSelectorSettingsAudioLanguageSelectionTypeDef = TypedDict(
    "_ClientListChannelsResponseChannelsInputAttachmentsInputSettingsAudioSelectorsSelectorSettingsAudioLanguageSelectionTypeDef",
    {"LanguageCode": str, "LanguageSelectionPolicy": str},
    total=False,
)


class ClientListChannelsResponseChannelsInputAttachmentsInputSettingsAudioSelectorsSelectorSettingsAudioLanguageSelectionTypeDef(
    _ClientListChannelsResponseChannelsInputAttachmentsInputSettingsAudioSelectorsSelectorSettingsAudioLanguageSelectionTypeDef
):
    """
    Type definition for
    `ClientListChannelsResponseChannelsInputAttachmentsInputSettingsAudioSelectorsSelectorSettings`
    `AudioLanguageSelection`

    - **LanguageCode** *(string) --* Selects a specific three-letter language code from within an
    audio source.

    - **LanguageSelectionPolicy** *(string) --* When set to "strict", the transport stream demux
    strictly identifies audio streams by their language descriptor. If a PMT update occurs such that
    an audio stream matching the initially selected language is no longer present then mute will be
    encoded until the language returns. If "loose", then on a PMT update the demux will choose
    another audio stream in the program with the same stream type if it can't find one with the same
    language.
    """


_ClientListChannelsResponseChannelsInputAttachmentsInputSettingsAudioSelectorsSelectorSettingsAudioPidSelectionTypeDef = TypedDict(
    "_ClientListChannelsResponseChannelsInputAttachmentsInputSettingsAudioSelectorsSelectorSettingsAudioPidSelectionTypeDef",
    {"Pid": int},
    total=False,
)


class ClientListChannelsResponseChannelsInputAttachmentsInputSettingsAudioSelectorsSelectorSettingsAudioPidSelectionTypeDef(
    _ClientListChannelsResponseChannelsInputAttachmentsInputSettingsAudioSelectorsSelectorSettingsAudioPidSelectionTypeDef
):
    """
    Type definition for
    `ClientListChannelsResponseChannelsInputAttachmentsInputSettingsAudioSelectorsSelectorSettings`
    `AudioPidSelection`

    - **Pid** *(integer) --* Selects a specific PID from within a source.
    """


_ClientListChannelsResponseChannelsInputAttachmentsInputSettingsAudioSelectorsSelectorSettingsTypeDef = TypedDict(
    "_ClientListChannelsResponseChannelsInputAttachmentsInputSettingsAudioSelectorsSelectorSettingsTypeDef",
    {
        "AudioLanguageSelection": ClientListChannelsResponseChannelsInputAttachmentsInputSettingsAudioSelectorsSelectorSettingsAudioLanguageSelectionTypeDef,
        "AudioPidSelection": ClientListChannelsResponseChannelsInputAttachmentsInputSettingsAudioSelectorsSelectorSettingsAudioPidSelectionTypeDef,
    },
    total=False,
)


class ClientListChannelsResponseChannelsInputAttachmentsInputSettingsAudioSelectorsSelectorSettingsTypeDef(
    _ClientListChannelsResponseChannelsInputAttachmentsInputSettingsAudioSelectorsSelectorSettingsTypeDef
):
    """
    Type definition for
    `ClientListChannelsResponseChannelsInputAttachmentsInputSettingsAudioSelectors`
    `SelectorSettings`

    - **AudioLanguageSelection** *(dict) --* Audio Language Selection

      - **LanguageCode** *(string) --* Selects a specific three-letter language code from within an
      audio source.

      - **LanguageSelectionPolicy** *(string) --* When set to "strict", the transport stream demux
      strictly identifies audio streams by their language descriptor. If a PMT update occurs such
      that an audio stream matching the initially selected language is no longer present then mute
      will be encoded until the language returns. If "loose", then on a PMT update the demux will
      choose another audio stream in the program with the same stream type if it can't find one with
      the same language.

    - **AudioPidSelection** *(dict) --* Audio Pid Selection

      - **Pid** *(integer) --* Selects a specific PID from within a source.
    """


_ClientListChannelsResponseChannelsInputAttachmentsInputSettingsAudioSelectorsTypeDef = TypedDict(
    "_ClientListChannelsResponseChannelsInputAttachmentsInputSettingsAudioSelectorsTypeDef",
    {
        "Name": str,
        "SelectorSettings": ClientListChannelsResponseChannelsInputAttachmentsInputSettingsAudioSelectorsSelectorSettingsTypeDef,
    },
    total=False,
)


class ClientListChannelsResponseChannelsInputAttachmentsInputSettingsAudioSelectorsTypeDef(
    _ClientListChannelsResponseChannelsInputAttachmentsInputSettingsAudioSelectorsTypeDef
):
    """
    Type definition for `ClientListChannelsResponseChannelsInputAttachmentsInputSettings`
    `AudioSelectors`

    - **Name** *(string) --* The name of this AudioSelector. AudioDescriptions will use this name to
    uniquely identify this Selector. Selector names should be unique per input.

    - **SelectorSettings** *(dict) --* The audio selector settings.

      - **AudioLanguageSelection** *(dict) --* Audio Language Selection

        - **LanguageCode** *(string) --* Selects a specific three-letter language code from within
        an audio source.

        - **LanguageSelectionPolicy** *(string) --* When set to "strict", the transport stream demux
        strictly identifies audio streams by their language descriptor. If a PMT update occurs such
        that an audio stream matching the initially selected language is no longer present then mute
        will be encoded until the language returns. If "loose", then on a PMT update the demux will
        choose another audio stream in the program with the same stream type if it can't find one
        with the same language.

      - **AudioPidSelection** *(dict) --* Audio Pid Selection

        - **Pid** *(integer) --* Selects a specific PID from within a source.
    """


_ClientListChannelsResponseChannelsInputAttachmentsInputSettingsCaptionSelectorsSelectorSettingsDvbSubSourceSettingsTypeDef = TypedDict(
    "_ClientListChannelsResponseChannelsInputAttachmentsInputSettingsCaptionSelectorsSelectorSettingsDvbSubSourceSettingsTypeDef",
    {"Pid": int},
    total=False,
)


class ClientListChannelsResponseChannelsInputAttachmentsInputSettingsCaptionSelectorsSelectorSettingsDvbSubSourceSettingsTypeDef(
    _ClientListChannelsResponseChannelsInputAttachmentsInputSettingsCaptionSelectorsSelectorSettingsDvbSubSourceSettingsTypeDef
):
    """
    Type definition for
    `ClientListChannelsResponseChannelsInputAttachmentsInputSettingsCaptionSelectorsSelectorSettings`
    `DvbSubSourceSettings`

    - **Pid** *(integer) --* When using DVB-Sub with Burn-In or SMPTE-TT, use this PID for the
    source content. Unused for DVB-Sub passthrough. All DVB-Sub content is passed through,
    regardless of selectors.
    """


_ClientListChannelsResponseChannelsInputAttachmentsInputSettingsCaptionSelectorsSelectorSettingsEmbeddedSourceSettingsTypeDef = TypedDict(
    "_ClientListChannelsResponseChannelsInputAttachmentsInputSettingsCaptionSelectorsSelectorSettingsEmbeddedSourceSettingsTypeDef",
    {
        "Convert608To708": str,
        "Scte20Detection": str,
        "Source608ChannelNumber": int,
        "Source608TrackNumber": int,
    },
    total=False,
)


class ClientListChannelsResponseChannelsInputAttachmentsInputSettingsCaptionSelectorsSelectorSettingsEmbeddedSourceSettingsTypeDef(
    _ClientListChannelsResponseChannelsInputAttachmentsInputSettingsCaptionSelectorsSelectorSettingsEmbeddedSourceSettingsTypeDef
):
    """
    Type definition for
    `ClientListChannelsResponseChannelsInputAttachmentsInputSettingsCaptionSelectorsSelectorSettings`
    `EmbeddedSourceSettings`

    - **Convert608To708** *(string) --* If upconvert, 608 data is both passed through via the "608
    compatibility bytes" fields of the 708 wrapper as well as translated into 708. 708 data present
    in the source content will be discarded.

    - **Scte20Detection** *(string) --* Set to "auto" to handle streams with intermittent and/or
    non-aligned SCTE-20 and Embedded captions.

    - **Source608ChannelNumber** *(integer) --* Specifies the 608/708 channel number within the
    video track from which to extract captions. Unused for passthrough.

    - **Source608TrackNumber** *(integer) --* This field is unused and deprecated.
    """


_ClientListChannelsResponseChannelsInputAttachmentsInputSettingsCaptionSelectorsSelectorSettingsScte20SourceSettingsTypeDef = TypedDict(
    "_ClientListChannelsResponseChannelsInputAttachmentsInputSettingsCaptionSelectorsSelectorSettingsScte20SourceSettingsTypeDef",
    {"Convert608To708": str, "Source608ChannelNumber": int},
    total=False,
)


class ClientListChannelsResponseChannelsInputAttachmentsInputSettingsCaptionSelectorsSelectorSettingsScte20SourceSettingsTypeDef(
    _ClientListChannelsResponseChannelsInputAttachmentsInputSettingsCaptionSelectorsSelectorSettingsScte20SourceSettingsTypeDef
):
    """
    Type definition for
    `ClientListChannelsResponseChannelsInputAttachmentsInputSettingsCaptionSelectorsSelectorSettings`
    `Scte20SourceSettings`

    - **Convert608To708** *(string) --* If upconvert, 608 data is both passed through via the "608
    compatibility bytes" fields of the 708 wrapper as well as translated into 708. 708 data present
    in the source content will be discarded.

    - **Source608ChannelNumber** *(integer) --* Specifies the 608/708 channel number within the
    video track from which to extract captions. Unused for passthrough.
    """


_ClientListChannelsResponseChannelsInputAttachmentsInputSettingsCaptionSelectorsSelectorSettingsScte27SourceSettingsTypeDef = TypedDict(
    "_ClientListChannelsResponseChannelsInputAttachmentsInputSettingsCaptionSelectorsSelectorSettingsScte27SourceSettingsTypeDef",
    {"Pid": int},
    total=False,
)


class ClientListChannelsResponseChannelsInputAttachmentsInputSettingsCaptionSelectorsSelectorSettingsScte27SourceSettingsTypeDef(
    _ClientListChannelsResponseChannelsInputAttachmentsInputSettingsCaptionSelectorsSelectorSettingsScte27SourceSettingsTypeDef
):
    """
    Type definition for
    `ClientListChannelsResponseChannelsInputAttachmentsInputSettingsCaptionSelectorsSelectorSettings`
    `Scte27SourceSettings`

    - **Pid** *(integer) --* The pid field is used in conjunction with the caption selector
    languageCode field as follows: - Specify PID and Language: Extracts captions from that PID; the
    language is "informational". - Specify PID and omit Language: Extracts the specified PID. - Omit
    PID and specify Language: Extracts the specified language, whichever PID that happens to be. -
    Omit PID and omit Language: Valid only if source is DVB-Sub that is being passed through; all
    languages will be passed through.
    """


_ClientListChannelsResponseChannelsInputAttachmentsInputSettingsCaptionSelectorsSelectorSettingsTeletextSourceSettingsTypeDef = TypedDict(
    "_ClientListChannelsResponseChannelsInputAttachmentsInputSettingsCaptionSelectorsSelectorSettingsTeletextSourceSettingsTypeDef",
    {"PageNumber": str},
    total=False,
)


class ClientListChannelsResponseChannelsInputAttachmentsInputSettingsCaptionSelectorsSelectorSettingsTeletextSourceSettingsTypeDef(
    _ClientListChannelsResponseChannelsInputAttachmentsInputSettingsCaptionSelectorsSelectorSettingsTeletextSourceSettingsTypeDef
):
    """
    Type definition for
    `ClientListChannelsResponseChannelsInputAttachmentsInputSettingsCaptionSelectorsSelectorSettings`
    `TeletextSourceSettings`

    - **PageNumber** *(string) --* Specifies the teletext page number within the data stream from
    which to extract captions. Range of 0x100 (256) to 0x8FF (2303). Unused for passthrough. Should
    be specified as a hexadecimal string with no "0x" prefix.
    """


_ClientListChannelsResponseChannelsInputAttachmentsInputSettingsCaptionSelectorsSelectorSettingsTypeDef = TypedDict(
    "_ClientListChannelsResponseChannelsInputAttachmentsInputSettingsCaptionSelectorsSelectorSettingsTypeDef",
    {
        "AribSourceSettings": Dict,
        "DvbSubSourceSettings": ClientListChannelsResponseChannelsInputAttachmentsInputSettingsCaptionSelectorsSelectorSettingsDvbSubSourceSettingsTypeDef,
        "EmbeddedSourceSettings": ClientListChannelsResponseChannelsInputAttachmentsInputSettingsCaptionSelectorsSelectorSettingsEmbeddedSourceSettingsTypeDef,
        "Scte20SourceSettings": ClientListChannelsResponseChannelsInputAttachmentsInputSettingsCaptionSelectorsSelectorSettingsScte20SourceSettingsTypeDef,
        "Scte27SourceSettings": ClientListChannelsResponseChannelsInputAttachmentsInputSettingsCaptionSelectorsSelectorSettingsScte27SourceSettingsTypeDef,
        "TeletextSourceSettings": ClientListChannelsResponseChannelsInputAttachmentsInputSettingsCaptionSelectorsSelectorSettingsTeletextSourceSettingsTypeDef,
    },
    total=False,
)


class ClientListChannelsResponseChannelsInputAttachmentsInputSettingsCaptionSelectorsSelectorSettingsTypeDef(
    _ClientListChannelsResponseChannelsInputAttachmentsInputSettingsCaptionSelectorsSelectorSettingsTypeDef
):
    """
    Type definition for
    `ClientListChannelsResponseChannelsInputAttachmentsInputSettingsCaptionSelectors`
    `SelectorSettings`

    - **AribSourceSettings** *(dict) --* Arib Source Settings

    - **DvbSubSourceSettings** *(dict) --* Dvb Sub Source Settings

      - **Pid** *(integer) --* When using DVB-Sub with Burn-In or SMPTE-TT, use this PID for the
      source content. Unused for DVB-Sub passthrough. All DVB-Sub content is passed through,
      regardless of selectors.

    - **EmbeddedSourceSettings** *(dict) --* Embedded Source Settings

      - **Convert608To708** *(string) --* If upconvert, 608 data is both passed through via the "608
      compatibility bytes" fields of the 708 wrapper as well as translated into 708. 708 data
      present in the source content will be discarded.

      - **Scte20Detection** *(string) --* Set to "auto" to handle streams with intermittent and/or
      non-aligned SCTE-20 and Embedded captions.

      - **Source608ChannelNumber** *(integer) --* Specifies the 608/708 channel number within the
      video track from which to extract captions. Unused for passthrough.

      - **Source608TrackNumber** *(integer) --* This field is unused and deprecated.

    - **Scte20SourceSettings** *(dict) --* Scte20 Source Settings

      - **Convert608To708** *(string) --* If upconvert, 608 data is both passed through via the "608
      compatibility bytes" fields of the 708 wrapper as well as translated into 708. 708 data
      present in the source content will be discarded.

      - **Source608ChannelNumber** *(integer) --* Specifies the 608/708 channel number within the
      video track from which to extract captions. Unused for passthrough.

    - **Scte27SourceSettings** *(dict) --* Scte27 Source Settings

      - **Pid** *(integer) --* The pid field is used in conjunction with the caption selector
      languageCode field as follows: - Specify PID and Language: Extracts captions from that PID;
      the language is "informational". - Specify PID and omit Language: Extracts the specified PID.
      - Omit PID and specify Language: Extracts the specified language, whichever PID that happens
      to be. - Omit PID and omit Language: Valid only if source is DVB-Sub that is being passed
      through; all languages will be passed through.

    - **TeletextSourceSettings** *(dict) --* Teletext Source Settings

      - **PageNumber** *(string) --* Specifies the teletext page number within the data stream from
      which to extract captions. Range of 0x100 (256) to 0x8FF (2303). Unused for passthrough.
      Should be specified as a hexadecimal string with no "0x" prefix.
    """


_ClientListChannelsResponseChannelsInputAttachmentsInputSettingsCaptionSelectorsTypeDef = TypedDict(
    "_ClientListChannelsResponseChannelsInputAttachmentsInputSettingsCaptionSelectorsTypeDef",
    {
        "LanguageCode": str,
        "Name": str,
        "SelectorSettings": ClientListChannelsResponseChannelsInputAttachmentsInputSettingsCaptionSelectorsSelectorSettingsTypeDef,
    },
    total=False,
)


class ClientListChannelsResponseChannelsInputAttachmentsInputSettingsCaptionSelectorsTypeDef(
    _ClientListChannelsResponseChannelsInputAttachmentsInputSettingsCaptionSelectorsTypeDef
):
    """
    Type definition for `ClientListChannelsResponseChannelsInputAttachmentsInputSettings`
    `CaptionSelectors`

    - **LanguageCode** *(string) --* When specified this field indicates the three letter language
    code of the caption track to extract from the source.

    - **Name** *(string) --* Name identifier for a caption selector. This name is used to associate
    this caption selector with one or more caption descriptions. Names must be unique within an
    event.

    - **SelectorSettings** *(dict) --* Caption selector settings.

      - **AribSourceSettings** *(dict) --* Arib Source Settings

      - **DvbSubSourceSettings** *(dict) --* Dvb Sub Source Settings

        - **Pid** *(integer) --* When using DVB-Sub with Burn-In or SMPTE-TT, use this PID for the
        source content. Unused for DVB-Sub passthrough. All DVB-Sub content is passed through,
        regardless of selectors.

      - **EmbeddedSourceSettings** *(dict) --* Embedded Source Settings

        - **Convert608To708** *(string) --* If upconvert, 608 data is both passed through via the
        "608 compatibility bytes" fields of the 708 wrapper as well as translated into 708. 708 data
        present in the source content will be discarded.

        - **Scte20Detection** *(string) --* Set to "auto" to handle streams with intermittent and/or
        non-aligned SCTE-20 and Embedded captions.

        - **Source608ChannelNumber** *(integer) --* Specifies the 608/708 channel number within the
        video track from which to extract captions. Unused for passthrough.

        - **Source608TrackNumber** *(integer) --* This field is unused and deprecated.

      - **Scte20SourceSettings** *(dict) --* Scte20 Source Settings

        - **Convert608To708** *(string) --* If upconvert, 608 data is both passed through via the
        "608 compatibility bytes" fields of the 708 wrapper as well as translated into 708. 708 data
        present in the source content will be discarded.

        - **Source608ChannelNumber** *(integer) --* Specifies the 608/708 channel number within the
        video track from which to extract captions. Unused for passthrough.

      - **Scte27SourceSettings** *(dict) --* Scte27 Source Settings

        - **Pid** *(integer) --* The pid field is used in conjunction with the caption selector
        languageCode field as follows: - Specify PID and Language: Extracts captions from that PID;
        the language is "informational". - Specify PID and omit Language: Extracts the specified
        PID. - Omit PID and specify Language: Extracts the specified language, whichever PID that
        happens to be. - Omit PID and omit Language: Valid only if source is DVB-Sub that is being
        passed through; all languages will be passed through.

      - **TeletextSourceSettings** *(dict) --* Teletext Source Settings

        - **PageNumber** *(string) --* Specifies the teletext page number within the data stream
        from which to extract captions. Range of 0x100 (256) to 0x8FF (2303). Unused for
        passthrough. Should be specified as a hexadecimal string with no "0x" prefix.
    """


_ClientListChannelsResponseChannelsInputAttachmentsInputSettingsNetworkInputSettingsHlsInputSettingsTypeDef = TypedDict(
    "_ClientListChannelsResponseChannelsInputAttachmentsInputSettingsNetworkInputSettingsHlsInputSettingsTypeDef",
    {"Bandwidth": int, "BufferSegments": int, "Retries": int, "RetryInterval": int},
    total=False,
)


class ClientListChannelsResponseChannelsInputAttachmentsInputSettingsNetworkInputSettingsHlsInputSettingsTypeDef(
    _ClientListChannelsResponseChannelsInputAttachmentsInputSettingsNetworkInputSettingsHlsInputSettingsTypeDef
):
    """
    Type definition for
    `ClientListChannelsResponseChannelsInputAttachmentsInputSettingsNetworkInputSettings`
    `HlsInputSettings`

    - **Bandwidth** *(integer) --* When specified the HLS stream with the m3u8 BANDWIDTH that most
    closely matches this value will be chosen, otherwise the highest bandwidth stream in the m3u8
    will be chosen. The bitrate is specified in bits per second, as in an HLS manifest.

    - **BufferSegments** *(integer) --* When specified, reading of the HLS input will begin this
    many buffer segments from the end (most recently written segment). When not specified, the HLS
    input will begin with the first segment specified in the m3u8.

    - **Retries** *(integer) --* The number of consecutive times that attempts to read a manifest or
    segment must fail before the input is considered unavailable.

    - **RetryInterval** *(integer) --* The number of seconds between retries when an attempt to read
    a manifest or segment fails.
    """


_ClientListChannelsResponseChannelsInputAttachmentsInputSettingsNetworkInputSettingsTypeDef = TypedDict(
    "_ClientListChannelsResponseChannelsInputAttachmentsInputSettingsNetworkInputSettingsTypeDef",
    {
        "HlsInputSettings": ClientListChannelsResponseChannelsInputAttachmentsInputSettingsNetworkInputSettingsHlsInputSettingsTypeDef,
        "ServerValidation": str,
    },
    total=False,
)


class ClientListChannelsResponseChannelsInputAttachmentsInputSettingsNetworkInputSettingsTypeDef(
    _ClientListChannelsResponseChannelsInputAttachmentsInputSettingsNetworkInputSettingsTypeDef
):
    """
    Type definition for `ClientListChannelsResponseChannelsInputAttachmentsInputSettings`
    `NetworkInputSettings`

    - **HlsInputSettings** *(dict) --* Specifies HLS input settings when the uri is for a HLS
    manifest.

      - **Bandwidth** *(integer) --* When specified the HLS stream with the m3u8 BANDWIDTH that most
      closely matches this value will be chosen, otherwise the highest bandwidth stream in the m3u8
      will be chosen. The bitrate is specified in bits per second, as in an HLS manifest.

      - **BufferSegments** *(integer) --* When specified, reading of the HLS input will begin this
      many buffer segments from the end (most recently written segment). When not specified, the HLS
      input will begin with the first segment specified in the m3u8.

      - **Retries** *(integer) --* The number of consecutive times that attempts to read a manifest
      or segment must fail before the input is considered unavailable.

      - **RetryInterval** *(integer) --* The number of seconds between retries when an attempt to
      read a manifest or segment fails.

    - **ServerValidation** *(string) --* Check HTTPS server certificates. When set to
    checkCryptographyOnly, cryptography in the certificate will be checked, but not the server's
    name. Certain subdomains (notably S3 buckets that use dots in the bucket name) do not strictly
    match the corresponding certificate's wildcard pattern and would otherwise cause the event to
    error. This setting is ignored for protocols that do not use https.
    """


_ClientListChannelsResponseChannelsInputAttachmentsInputSettingsVideoSelectorSelectorSettingsVideoSelectorPidTypeDef = TypedDict(
    "_ClientListChannelsResponseChannelsInputAttachmentsInputSettingsVideoSelectorSelectorSettingsVideoSelectorPidTypeDef",
    {"Pid": int},
    total=False,
)


class ClientListChannelsResponseChannelsInputAttachmentsInputSettingsVideoSelectorSelectorSettingsVideoSelectorPidTypeDef(
    _ClientListChannelsResponseChannelsInputAttachmentsInputSettingsVideoSelectorSelectorSettingsVideoSelectorPidTypeDef
):
    """
    Type definition for
    `ClientListChannelsResponseChannelsInputAttachmentsInputSettingsVideoSelectorSelectorSettings`
    `VideoSelectorPid`

    - **Pid** *(integer) --* Selects a specific PID from within a video source.
    """


_ClientListChannelsResponseChannelsInputAttachmentsInputSettingsVideoSelectorSelectorSettingsVideoSelectorProgramIdTypeDef = TypedDict(
    "_ClientListChannelsResponseChannelsInputAttachmentsInputSettingsVideoSelectorSelectorSettingsVideoSelectorProgramIdTypeDef",
    {"ProgramId": int},
    total=False,
)


class ClientListChannelsResponseChannelsInputAttachmentsInputSettingsVideoSelectorSelectorSettingsVideoSelectorProgramIdTypeDef(
    _ClientListChannelsResponseChannelsInputAttachmentsInputSettingsVideoSelectorSelectorSettingsVideoSelectorProgramIdTypeDef
):
    """
    Type definition for
    `ClientListChannelsResponseChannelsInputAttachmentsInputSettingsVideoSelectorSelectorSettings`
    `VideoSelectorProgramId`

    - **ProgramId** *(integer) --* Selects a specific program from within a multi-program transport
    stream. If the program doesn't exist, the first program within the transport stream will be
    selected by default.
    """


_ClientListChannelsResponseChannelsInputAttachmentsInputSettingsVideoSelectorSelectorSettingsTypeDef = TypedDict(
    "_ClientListChannelsResponseChannelsInputAttachmentsInputSettingsVideoSelectorSelectorSettingsTypeDef",
    {
        "VideoSelectorPid": ClientListChannelsResponseChannelsInputAttachmentsInputSettingsVideoSelectorSelectorSettingsVideoSelectorPidTypeDef,
        "VideoSelectorProgramId": ClientListChannelsResponseChannelsInputAttachmentsInputSettingsVideoSelectorSelectorSettingsVideoSelectorProgramIdTypeDef,
    },
    total=False,
)


class ClientListChannelsResponseChannelsInputAttachmentsInputSettingsVideoSelectorSelectorSettingsTypeDef(
    _ClientListChannelsResponseChannelsInputAttachmentsInputSettingsVideoSelectorSelectorSettingsTypeDef
):
    """
    Type definition for
    `ClientListChannelsResponseChannelsInputAttachmentsInputSettingsVideoSelector`
    `SelectorSettings`

    - **VideoSelectorPid** *(dict) --* Video Selector Pid

      - **Pid** *(integer) --* Selects a specific PID from within a video source.

    - **VideoSelectorProgramId** *(dict) --* Video Selector Program Id

      - **ProgramId** *(integer) --* Selects a specific program from within a multi-program
      transport stream. If the program doesn't exist, the first program within the transport stream
      will be selected by default.
    """


_ClientListChannelsResponseChannelsInputAttachmentsInputSettingsVideoSelectorTypeDef = TypedDict(
    "_ClientListChannelsResponseChannelsInputAttachmentsInputSettingsVideoSelectorTypeDef",
    {
        "ColorSpace": str,
        "ColorSpaceUsage": str,
        "SelectorSettings": ClientListChannelsResponseChannelsInputAttachmentsInputSettingsVideoSelectorSelectorSettingsTypeDef,
    },
    total=False,
)


class ClientListChannelsResponseChannelsInputAttachmentsInputSettingsVideoSelectorTypeDef(
    _ClientListChannelsResponseChannelsInputAttachmentsInputSettingsVideoSelectorTypeDef
):
    """
    Type definition for `ClientListChannelsResponseChannelsInputAttachmentsInputSettings`
    `VideoSelector`

    - **ColorSpace** *(string) --* Specifies the color space of an input. This setting works in
    tandem with colorSpaceUsage and a video description's colorSpaceSettingsChoice to determine if
    any conversion will be performed.

    - **ColorSpaceUsage** *(string) --* Applies only if colorSpace is a value other than follow.
    This field controls how the value in the colorSpace field will be used. fallback means that when
    the input does include color space data, that data will be used, but when the input has no color
    space data, the value in colorSpace will be used. Choose fallback if your input is sometimes
    missing color space data, but when it does have color space data, that data is correct. force
    means to always use the value in colorSpace. Choose force if your input usually has no color
    space data or might have unreliable color space data.

    - **SelectorSettings** *(dict) --* The video selector settings.

      - **VideoSelectorPid** *(dict) --* Video Selector Pid

        - **Pid** *(integer) --* Selects a specific PID from within a video source.

      - **VideoSelectorProgramId** *(dict) --* Video Selector Program Id

        - **ProgramId** *(integer) --* Selects a specific program from within a multi-program
        transport stream. If the program doesn't exist, the first program within the transport
        stream will be selected by default.
    """


_ClientListChannelsResponseChannelsInputAttachmentsInputSettingsTypeDef = TypedDict(
    "_ClientListChannelsResponseChannelsInputAttachmentsInputSettingsTypeDef",
    {
        "AudioSelectors": List[
            ClientListChannelsResponseChannelsInputAttachmentsInputSettingsAudioSelectorsTypeDef
        ],
        "CaptionSelectors": List[
            ClientListChannelsResponseChannelsInputAttachmentsInputSettingsCaptionSelectorsTypeDef
        ],
        "DeblockFilter": str,
        "DenoiseFilter": str,
        "FilterStrength": int,
        "InputFilter": str,
        "NetworkInputSettings": ClientListChannelsResponseChannelsInputAttachmentsInputSettingsNetworkInputSettingsTypeDef,
        "SourceEndBehavior": str,
        "VideoSelector": ClientListChannelsResponseChannelsInputAttachmentsInputSettingsVideoSelectorTypeDef,
    },
    total=False,
)


class ClientListChannelsResponseChannelsInputAttachmentsInputSettingsTypeDef(
    _ClientListChannelsResponseChannelsInputAttachmentsInputSettingsTypeDef
):
    """
    Type definition for `ClientListChannelsResponseChannelsInputAttachments` `InputSettings`

    - **AudioSelectors** *(list) --* Used to select the audio stream to decode for inputs that have
    multiple available.

      - *(dict) --* Audio Selector

        - **Name** *(string) --* The name of this AudioSelector. AudioDescriptions will use this
        name to uniquely identify this Selector. Selector names should be unique per input.

        - **SelectorSettings** *(dict) --* The audio selector settings.

          - **AudioLanguageSelection** *(dict) --* Audio Language Selection

            - **LanguageCode** *(string) --* Selects a specific three-letter language code from
            within an audio source.

            - **LanguageSelectionPolicy** *(string) --* When set to "strict", the transport stream
            demux strictly identifies audio streams by their language descriptor. If a PMT update
            occurs such that an audio stream matching the initially selected language is no longer
            present then mute will be encoded until the language returns. If "loose", then on a PMT
            update the demux will choose another audio stream in the program with the same stream
            type if it can't find one with the same language.

          - **AudioPidSelection** *(dict) --* Audio Pid Selection

            - **Pid** *(integer) --* Selects a specific PID from within a source.

    - **CaptionSelectors** *(list) --* Used to select the caption input to use for inputs that have
    multiple available.

      - *(dict) --* Output groups for this Live Event. Output groups contain information about where
      streams should be distributed.

        - **LanguageCode** *(string) --* When specified this field indicates the three letter
        language code of the caption track to extract from the source.

        - **Name** *(string) --* Name identifier for a caption selector. This name is used to
        associate this caption selector with one or more caption descriptions. Names must be unique
        within an event.

        - **SelectorSettings** *(dict) --* Caption selector settings.

          - **AribSourceSettings** *(dict) --* Arib Source Settings

          - **DvbSubSourceSettings** *(dict) --* Dvb Sub Source Settings

            - **Pid** *(integer) --* When using DVB-Sub with Burn-In or SMPTE-TT, use this PID for
            the source content. Unused for DVB-Sub passthrough. All DVB-Sub content is passed
            through, regardless of selectors.

          - **EmbeddedSourceSettings** *(dict) --* Embedded Source Settings

            - **Convert608To708** *(string) --* If upconvert, 608 data is both passed through via
            the "608 compatibility bytes" fields of the 708 wrapper as well as translated into 708.
            708 data present in the source content will be discarded.

            - **Scte20Detection** *(string) --* Set to "auto" to handle streams with intermittent
            and/or non-aligned SCTE-20 and Embedded captions.

            - **Source608ChannelNumber** *(integer) --* Specifies the 608/708 channel number within
            the video track from which to extract captions. Unused for passthrough.

            - **Source608TrackNumber** *(integer) --* This field is unused and deprecated.

          - **Scte20SourceSettings** *(dict) --* Scte20 Source Settings

            - **Convert608To708** *(string) --* If upconvert, 608 data is both passed through via
            the "608 compatibility bytes" fields of the 708 wrapper as well as translated into 708.
            708 data present in the source content will be discarded.

            - **Source608ChannelNumber** *(integer) --* Specifies the 608/708 channel number within
            the video track from which to extract captions. Unused for passthrough.

          - **Scte27SourceSettings** *(dict) --* Scte27 Source Settings

            - **Pid** *(integer) --* The pid field is used in conjunction with the caption selector
            languageCode field as follows: - Specify PID and Language: Extracts captions from that
            PID; the language is "informational". - Specify PID and omit Language: Extracts the
            specified PID. - Omit PID and specify Language: Extracts the specified language,
            whichever PID that happens to be. - Omit PID and omit Language: Valid only if source is
            DVB-Sub that is being passed through; all languages will be passed through.

          - **TeletextSourceSettings** *(dict) --* Teletext Source Settings

            - **PageNumber** *(string) --* Specifies the teletext page number within the data stream
            from which to extract captions. Range of 0x100 (256) to 0x8FF (2303). Unused for
            passthrough. Should be specified as a hexadecimal string with no "0x" prefix.

    - **DeblockFilter** *(string) --* Enable or disable the deblock filter when filtering.

    - **DenoiseFilter** *(string) --* Enable or disable the denoise filter when filtering.

    - **FilterStrength** *(integer) --* Adjusts the magnitude of filtering from 1 (minimal) to 5
    (strongest).

    - **InputFilter** *(string) --* Turns on the filter for this input. MPEG-2 inputs have the
    deblocking filter enabled by default. 1) auto - filtering will be applied depending on input
    type/quality 2) disabled - no filtering will be applied to the input 3) forced - filtering will
    be applied regardless of input type

    - **NetworkInputSettings** *(dict) --* Input settings.

      - **HlsInputSettings** *(dict) --* Specifies HLS input settings when the uri is for a HLS
      manifest.

        - **Bandwidth** *(integer) --* When specified the HLS stream with the m3u8 BANDWIDTH that
        most closely matches this value will be chosen, otherwise the highest bandwidth stream in
        the m3u8 will be chosen. The bitrate is specified in bits per second, as in an HLS manifest.

        - **BufferSegments** *(integer) --* When specified, reading of the HLS input will begin this
        many buffer segments from the end (most recently written segment). When not specified, the
        HLS input will begin with the first segment specified in the m3u8.

        - **Retries** *(integer) --* The number of consecutive times that attempts to read a
        manifest or segment must fail before the input is considered unavailable.

        - **RetryInterval** *(integer) --* The number of seconds between retries when an attempt to
        read a manifest or segment fails.

      - **ServerValidation** *(string) --* Check HTTPS server certificates. When set to
      checkCryptographyOnly, cryptography in the certificate will be checked, but not the server's
      name. Certain subdomains (notably S3 buckets that use dots in the bucket name) do not strictly
      match the corresponding certificate's wildcard pattern and would otherwise cause the event to
      error. This setting is ignored for protocols that do not use https.

    - **SourceEndBehavior** *(string) --* Loop input if it is a file. This allows a file input to be
    streamed indefinitely.

    - **VideoSelector** *(dict) --* Informs which video elementary stream to decode for input types
    that have multiple available.

      - **ColorSpace** *(string) --* Specifies the color space of an input. This setting works in
      tandem with colorSpaceUsage and a video description's colorSpaceSettingsChoice to determine if
      any conversion will be performed.

      - **ColorSpaceUsage** *(string) --* Applies only if colorSpace is a value other than follow.
      This field controls how the value in the colorSpace field will be used. fallback means that
      when the input does include color space data, that data will be used, but when the input has
      no color space data, the value in colorSpace will be used. Choose fallback if your input is
      sometimes missing color space data, but when it does have color space data, that data is
      correct. force means to always use the value in colorSpace. Choose force if your input usually
      has no color space data or might have unreliable color space data.

      - **SelectorSettings** *(dict) --* The video selector settings.

        - **VideoSelectorPid** *(dict) --* Video Selector Pid

          - **Pid** *(integer) --* Selects a specific PID from within a video source.

        - **VideoSelectorProgramId** *(dict) --* Video Selector Program Id

          - **ProgramId** *(integer) --* Selects a specific program from within a multi-program
          transport stream. If the program doesn't exist, the first program within the transport
          stream will be selected by default.
    """


_ClientListChannelsResponseChannelsInputAttachmentsTypeDef = TypedDict(
    "_ClientListChannelsResponseChannelsInputAttachmentsTypeDef",
    {
        "InputAttachmentName": str,
        "InputId": str,
        "InputSettings": ClientListChannelsResponseChannelsInputAttachmentsInputSettingsTypeDef,
    },
    total=False,
)


class ClientListChannelsResponseChannelsInputAttachmentsTypeDef(
    _ClientListChannelsResponseChannelsInputAttachmentsTypeDef
):
    """
    Type definition for `ClientListChannelsResponseChannels` `InputAttachments`

    - **InputAttachmentName** *(string) --* User-specified name for the attachment. This is required
    if the user wants to use this input in an input switch action.

    - **InputId** *(string) --* The ID of the input

    - **InputSettings** *(dict) --* Settings of an input (caption selector, etc.)

      - **AudioSelectors** *(list) --* Used to select the audio stream to decode for inputs that
      have multiple available.

        - *(dict) --* Audio Selector

          - **Name** *(string) --* The name of this AudioSelector. AudioDescriptions will use this
          name to uniquely identify this Selector. Selector names should be unique per input.

          - **SelectorSettings** *(dict) --* The audio selector settings.

            - **AudioLanguageSelection** *(dict) --* Audio Language Selection

              - **LanguageCode** *(string) --* Selects a specific three-letter language code from
              within an audio source.

              - **LanguageSelectionPolicy** *(string) --* When set to "strict", the transport stream
              demux strictly identifies audio streams by their language descriptor. If a PMT update
              occurs such that an audio stream matching the initially selected language is no longer
              present then mute will be encoded until the language returns. If "loose", then on a
              PMT update the demux will choose another audio stream in the program with the same
              stream type if it can't find one with the same language.

            - **AudioPidSelection** *(dict) --* Audio Pid Selection

              - **Pid** *(integer) --* Selects a specific PID from within a source.

      - **CaptionSelectors** *(list) --* Used to select the caption input to use for inputs that
      have multiple available.

        - *(dict) --* Output groups for this Live Event. Output groups contain information about
        where streams should be distributed.

          - **LanguageCode** *(string) --* When specified this field indicates the three letter
          language code of the caption track to extract from the source.

          - **Name** *(string) --* Name identifier for a caption selector. This name is used to
          associate this caption selector with one or more caption descriptions. Names must be
          unique within an event.

          - **SelectorSettings** *(dict) --* Caption selector settings.

            - **AribSourceSettings** *(dict) --* Arib Source Settings

            - **DvbSubSourceSettings** *(dict) --* Dvb Sub Source Settings

              - **Pid** *(integer) --* When using DVB-Sub with Burn-In or SMPTE-TT, use this PID for
              the source content. Unused for DVB-Sub passthrough. All DVB-Sub content is passed
              through, regardless of selectors.

            - **EmbeddedSourceSettings** *(dict) --* Embedded Source Settings

              - **Convert608To708** *(string) --* If upconvert, 608 data is both passed through via
              the "608 compatibility bytes" fields of the 708 wrapper as well as translated into
              708. 708 data present in the source content will be discarded.

              - **Scte20Detection** *(string) --* Set to "auto" to handle streams with intermittent
              and/or non-aligned SCTE-20 and Embedded captions.

              - **Source608ChannelNumber** *(integer) --* Specifies the 608/708 channel number
              within the video track from which to extract captions. Unused for passthrough.

              - **Source608TrackNumber** *(integer) --* This field is unused and deprecated.

            - **Scte20SourceSettings** *(dict) --* Scte20 Source Settings

              - **Convert608To708** *(string) --* If upconvert, 608 data is both passed through via
              the "608 compatibility bytes" fields of the 708 wrapper as well as translated into
              708. 708 data present in the source content will be discarded.

              - **Source608ChannelNumber** *(integer) --* Specifies the 608/708 channel number
              within the video track from which to extract captions. Unused for passthrough.

            - **Scte27SourceSettings** *(dict) --* Scte27 Source Settings

              - **Pid** *(integer) --* The pid field is used in conjunction with the caption
              selector languageCode field as follows: - Specify PID and Language: Extracts captions
              from that PID; the language is "informational". - Specify PID and omit Language:
              Extracts the specified PID. - Omit PID and specify Language: Extracts the specified
              language, whichever PID that happens to be. - Omit PID and omit Language: Valid only
              if source is DVB-Sub that is being passed through; all languages will be passed
              through.

            - **TeletextSourceSettings** *(dict) --* Teletext Source Settings

              - **PageNumber** *(string) --* Specifies the teletext page number within the data
              stream from which to extract captions. Range of 0x100 (256) to 0x8FF (2303). Unused
              for passthrough. Should be specified as a hexadecimal string with no "0x" prefix.

      - **DeblockFilter** *(string) --* Enable or disable the deblock filter when filtering.

      - **DenoiseFilter** *(string) --* Enable or disable the denoise filter when filtering.

      - **FilterStrength** *(integer) --* Adjusts the magnitude of filtering from 1 (minimal) to 5
      (strongest).

      - **InputFilter** *(string) --* Turns on the filter for this input. MPEG-2 inputs have the
      deblocking filter enabled by default. 1) auto - filtering will be applied depending on input
      type/quality 2) disabled - no filtering will be applied to the input 3) forced - filtering
      will be applied regardless of input type

      - **NetworkInputSettings** *(dict) --* Input settings.

        - **HlsInputSettings** *(dict) --* Specifies HLS input settings when the uri is for a HLS
        manifest.

          - **Bandwidth** *(integer) --* When specified the HLS stream with the m3u8 BANDWIDTH that
          most closely matches this value will be chosen, otherwise the highest bandwidth stream in
          the m3u8 will be chosen. The bitrate is specified in bits per second, as in an HLS
          manifest.

          - **BufferSegments** *(integer) --* When specified, reading of the HLS input will begin
          this many buffer segments from the end (most recently written segment). When not
          specified, the HLS input will begin with the first segment specified in the m3u8.

          - **Retries** *(integer) --* The number of consecutive times that attempts to read a
          manifest or segment must fail before the input is considered unavailable.

          - **RetryInterval** *(integer) --* The number of seconds between retries when an attempt
          to read a manifest or segment fails.

        - **ServerValidation** *(string) --* Check HTTPS server certificates. When set to
        checkCryptographyOnly, cryptography in the certificate will be checked, but not the server's
        name. Certain subdomains (notably S3 buckets that use dots in the bucket name) do not
        strictly match the corresponding certificate's wildcard pattern and would otherwise cause
        the event to error. This setting is ignored for protocols that do not use https.

      - **SourceEndBehavior** *(string) --* Loop input if it is a file. This allows a file input to
      be streamed indefinitely.

      - **VideoSelector** *(dict) --* Informs which video elementary stream to decode for input
      types that have multiple available.

        - **ColorSpace** *(string) --* Specifies the color space of an input. This setting works in
        tandem with colorSpaceUsage and a video description's colorSpaceSettingsChoice to determine
        if any conversion will be performed.

        - **ColorSpaceUsage** *(string) --* Applies only if colorSpace is a value other than follow.
        This field controls how the value in the colorSpace field will be used. fallback means that
        when the input does include color space data, that data will be used, but when the input has
        no color space data, the value in colorSpace will be used. Choose fallback if your input is
        sometimes missing color space data, but when it does have color space data, that data is
        correct. force means to always use the value in colorSpace. Choose force if your input
        usually has no color space data or might have unreliable color space data.

        - **SelectorSettings** *(dict) --* The video selector settings.

          - **VideoSelectorPid** *(dict) --* Video Selector Pid

            - **Pid** *(integer) --* Selects a specific PID from within a video source.

          - **VideoSelectorProgramId** *(dict) --* Video Selector Program Id

            - **ProgramId** *(integer) --* Selects a specific program from within a multi-program
            transport stream. If the program doesn't exist, the first program within the transport
            stream will be selected by default.
    """


_ClientListChannelsResponseChannelsInputSpecificationTypeDef = TypedDict(
    "_ClientListChannelsResponseChannelsInputSpecificationTypeDef",
    {"Codec": str, "MaximumBitrate": str, "Resolution": str},
    total=False,
)


class ClientListChannelsResponseChannelsInputSpecificationTypeDef(
    _ClientListChannelsResponseChannelsInputSpecificationTypeDef
):
    """
    Type definition for `ClientListChannelsResponseChannels` `InputSpecification`

    - **Codec** *(string) --* Input codec

    - **MaximumBitrate** *(string) --* Maximum input bitrate, categorized coarsely

    - **Resolution** *(string) --* Input resolution, categorized coarsely
    """


_ClientListChannelsResponseChannelsTypeDef = TypedDict(
    "_ClientListChannelsResponseChannelsTypeDef",
    {
        "Arn": str,
        "ChannelClass": str,
        "Destinations": List[ClientListChannelsResponseChannelsDestinationsTypeDef],
        "EgressEndpoints": List[ClientListChannelsResponseChannelsEgressEndpointsTypeDef],
        "Id": str,
        "InputAttachments": List[ClientListChannelsResponseChannelsInputAttachmentsTypeDef],
        "InputSpecification": ClientListChannelsResponseChannelsInputSpecificationTypeDef,
        "LogLevel": str,
        "Name": str,
        "PipelinesRunningCount": int,
        "RoleArn": str,
        "State": str,
        "Tags": Dict[str, str],
    },
    total=False,
)


class ClientListChannelsResponseChannelsTypeDef(_ClientListChannelsResponseChannelsTypeDef):
    """
    Type definition for `ClientListChannelsResponse` `Channels`

    - **Arn** *(string) --* The unique arn of the channel.

    - **ChannelClass** *(string) --* The class for this channel. STANDARD for a channel with two
    pipelines or SINGLE_PIPELINE for a channel with one pipeline.

    - **Destinations** *(list) --* A list of destinations of the channel. For UDP outputs, there is
    one destination per output. For other types (HLS, for example), there is one destination per
    packager.

      - *(dict) --* Placeholder documentation for OutputDestination

        - **Id** *(string) --* User-specified id. This is used in an output group or an output.

        - **MediaPackageSettings** *(list) --* Destination settings for a MediaPackage output; one
        destination for both encoders.

          - *(dict) --* MediaPackage Output Destination Settings

            - **ChannelId** *(string) --* ID of the channel in MediaPackage that is the destination
            for this output group. You do not need to specify the individual inputs in MediaPackage;
            MediaLive will handle the connection of the two MediaLive pipelines to the two
            MediaPackage inputs. The MediaPackage channel and MediaLive channel must be in the same
            region.

        - **MultiplexSettings** *(dict) --* Destination settings for a Multiplex output; one
        destination for both encoders.

          - **MultiplexId** *(string) --* The ID of the Multiplex that the encoder is providing
          output to. You do not need to specify the individual inputs to the Multiplex; MediaLive
          will handle the connection of the two MediaLive pipelines to the two Multiplex instances.
          The Multiplex must be in the same region as the Channel.

          - **ProgramName** *(string) --* The program name of the Multiplex program that the encoder
          is providing output to.

        - **Settings** *(list) --* Destination settings for a standard output; one destination for
        each redundant encoder.

          - *(dict) --* Placeholder documentation for OutputDestinationSettings

            - **PasswordParam** *(string) --* key used to extract the password from EC2 Parameter
            store

            - **StreamName** *(string) --* Stream name for RTMP destinations (URLs of type rtmp://)

            - **Url** *(string) --* A URL specifying a destination

            - **Username** *(string) --* username for destination

    - **EgressEndpoints** *(list) --* The endpoints where outgoing connections initiate from

      - *(dict) --* Placeholder documentation for ChannelEgressEndpoint

        - **SourceIp** *(string) --* Public IP of where a channel's output comes from

    - **Id** *(string) --* The unique id of the channel.

    - **InputAttachments** *(list) --* List of input attachments for channel.

      - *(dict) --* Placeholder documentation for InputAttachment

        - **InputAttachmentName** *(string) --* User-specified name for the attachment. This is
        required if the user wants to use this input in an input switch action.

        - **InputId** *(string) --* The ID of the input

        - **InputSettings** *(dict) --* Settings of an input (caption selector, etc.)

          - **AudioSelectors** *(list) --* Used to select the audio stream to decode for inputs that
          have multiple available.

            - *(dict) --* Audio Selector

              - **Name** *(string) --* The name of this AudioSelector. AudioDescriptions will use
              this name to uniquely identify this Selector. Selector names should be unique per
              input.

              - **SelectorSettings** *(dict) --* The audio selector settings.

                - **AudioLanguageSelection** *(dict) --* Audio Language Selection

                  - **LanguageCode** *(string) --* Selects a specific three-letter language code
                  from within an audio source.

                  - **LanguageSelectionPolicy** *(string) --* When set to "strict", the transport
                  stream demux strictly identifies audio streams by their language descriptor. If a
                  PMT update occurs such that an audio stream matching the initially selected
                  language is no longer present then mute will be encoded until the language
                  returns. If "loose", then on a PMT update the demux will choose another audio
                  stream in the program with the same stream type if it can't find one with the same
                  language.

                - **AudioPidSelection** *(dict) --* Audio Pid Selection

                  - **Pid** *(integer) --* Selects a specific PID from within a source.

          - **CaptionSelectors** *(list) --* Used to select the caption input to use for inputs that
          have multiple available.

            - *(dict) --* Output groups for this Live Event. Output groups contain information about
            where streams should be distributed.

              - **LanguageCode** *(string) --* When specified this field indicates the three letter
              language code of the caption track to extract from the source.

              - **Name** *(string) --* Name identifier for a caption selector. This name is used to
              associate this caption selector with one or more caption descriptions. Names must be
              unique within an event.

              - **SelectorSettings** *(dict) --* Caption selector settings.

                - **AribSourceSettings** *(dict) --* Arib Source Settings

                - **DvbSubSourceSettings** *(dict) --* Dvb Sub Source Settings

                  - **Pid** *(integer) --* When using DVB-Sub with Burn-In or SMPTE-TT, use this PID
                  for the source content. Unused for DVB-Sub passthrough. All DVB-Sub content is
                  passed through, regardless of selectors.

                - **EmbeddedSourceSettings** *(dict) --* Embedded Source Settings

                  - **Convert608To708** *(string) --* If upconvert, 608 data is both passed through
                  via the "608 compatibility bytes" fields of the 708 wrapper as well as translated
                  into 708. 708 data present in the source content will be discarded.

                  - **Scte20Detection** *(string) --* Set to "auto" to handle streams with
                  intermittent and/or non-aligned SCTE-20 and Embedded captions.

                  - **Source608ChannelNumber** *(integer) --* Specifies the 608/708 channel number
                  within the video track from which to extract captions. Unused for passthrough.

                  - **Source608TrackNumber** *(integer) --* This field is unused and deprecated.

                - **Scte20SourceSettings** *(dict) --* Scte20 Source Settings

                  - **Convert608To708** *(string) --* If upconvert, 608 data is both passed through
                  via the "608 compatibility bytes" fields of the 708 wrapper as well as translated
                  into 708. 708 data present in the source content will be discarded.

                  - **Source608ChannelNumber** *(integer) --* Specifies the 608/708 channel number
                  within the video track from which to extract captions. Unused for passthrough.

                - **Scte27SourceSettings** *(dict) --* Scte27 Source Settings

                  - **Pid** *(integer) --* The pid field is used in conjunction with the caption
                  selector languageCode field as follows: - Specify PID and Language: Extracts
                  captions from that PID; the language is "informational". - Specify PID and omit
                  Language: Extracts the specified PID. - Omit PID and specify Language: Extracts
                  the specified language, whichever PID that happens to be. - Omit PID and omit
                  Language: Valid only if source is DVB-Sub that is being passed through; all
                  languages will be passed through.

                - **TeletextSourceSettings** *(dict) --* Teletext Source Settings

                  - **PageNumber** *(string) --* Specifies the teletext page number within the data
                  stream from which to extract captions. Range of 0x100 (256) to 0x8FF (2303).
                  Unused for passthrough. Should be specified as a hexadecimal string with no "0x"
                  prefix.

          - **DeblockFilter** *(string) --* Enable or disable the deblock filter when filtering.

          - **DenoiseFilter** *(string) --* Enable or disable the denoise filter when filtering.

          - **FilterStrength** *(integer) --* Adjusts the magnitude of filtering from 1 (minimal) to
          5 (strongest).

          - **InputFilter** *(string) --* Turns on the filter for this input. MPEG-2 inputs have the
          deblocking filter enabled by default. 1) auto - filtering will be applied depending on
          input type/quality 2) disabled - no filtering will be applied to the input 3) forced -
          filtering will be applied regardless of input type

          - **NetworkInputSettings** *(dict) --* Input settings.

            - **HlsInputSettings** *(dict) --* Specifies HLS input settings when the uri is for a
            HLS manifest.

              - **Bandwidth** *(integer) --* When specified the HLS stream with the m3u8 BANDWIDTH
              that most closely matches this value will be chosen, otherwise the highest bandwidth
              stream in the m3u8 will be chosen. The bitrate is specified in bits per second, as in
              an HLS manifest.

              - **BufferSegments** *(integer) --* When specified, reading of the HLS input will
              begin this many buffer segments from the end (most recently written segment). When not
              specified, the HLS input will begin with the first segment specified in the m3u8.

              - **Retries** *(integer) --* The number of consecutive times that attempts to read a
              manifest or segment must fail before the input is considered unavailable.

              - **RetryInterval** *(integer) --* The number of seconds between retries when an
              attempt to read a manifest or segment fails.

            - **ServerValidation** *(string) --* Check HTTPS server certificates. When set to
            checkCryptographyOnly, cryptography in the certificate will be checked, but not the
            server's name. Certain subdomains (notably S3 buckets that use dots in the bucket name)
            do not strictly match the corresponding certificate's wildcard pattern and would
            otherwise cause the event to error. This setting is ignored for protocols that do not
            use https.

          - **SourceEndBehavior** *(string) --* Loop input if it is a file. This allows a file input
          to be streamed indefinitely.

          - **VideoSelector** *(dict) --* Informs which video elementary stream to decode for input
          types that have multiple available.

            - **ColorSpace** *(string) --* Specifies the color space of an input. This setting works
            in tandem with colorSpaceUsage and a video description's colorSpaceSettingsChoice to
            determine if any conversion will be performed.

            - **ColorSpaceUsage** *(string) --* Applies only if colorSpace is a value other than
            follow. This field controls how the value in the colorSpace field will be used. fallback
            means that when the input does include color space data, that data will be used, but
            when the input has no color space data, the value in colorSpace will be used. Choose
            fallback if your input is sometimes missing color space data, but when it does have
            color space data, that data is correct. force means to always use the value in
            colorSpace. Choose force if your input usually has no color space data or might have
            unreliable color space data.

            - **SelectorSettings** *(dict) --* The video selector settings.

              - **VideoSelectorPid** *(dict) --* Video Selector Pid

                - **Pid** *(integer) --* Selects a specific PID from within a video source.

              - **VideoSelectorProgramId** *(dict) --* Video Selector Program Id

                - **ProgramId** *(integer) --* Selects a specific program from within a
                multi-program transport stream. If the program doesn't exist, the first program
                within the transport stream will be selected by default.

    - **InputSpecification** *(dict) --* Placeholder documentation for InputSpecification

      - **Codec** *(string) --* Input codec

      - **MaximumBitrate** *(string) --* Maximum input bitrate, categorized coarsely

      - **Resolution** *(string) --* Input resolution, categorized coarsely

    - **LogLevel** *(string) --* The log level being written to CloudWatch Logs.

    - **Name** *(string) --* The name of the channel. (user-mutable)

    - **PipelinesRunningCount** *(integer) --* The number of currently healthy pipelines.

    - **RoleArn** *(string) --* The Amazon Resource Name (ARN) of the role assumed when running the
    Channel.

    - **State** *(string) --* Placeholder documentation for ChannelState

    - **Tags** *(dict) --* A collection of key-value pairs.

      - *(string) --* Placeholder documentation for __string

        - *(string) --* Placeholder documentation for __string
    """


_ClientListChannelsResponseTypeDef = TypedDict(
    "_ClientListChannelsResponseTypeDef",
    {"Channels": List[ClientListChannelsResponseChannelsTypeDef], "NextToken": str},
    total=False,
)


class ClientListChannelsResponseTypeDef(_ClientListChannelsResponseTypeDef):
    """
    Type definition for `ClientListChannels` `Response`

    - **Channels** *(list) --* Placeholder documentation for __listOfChannelSummary

      - *(dict) --* Placeholder documentation for ChannelSummary

        - **Arn** *(string) --* The unique arn of the channel.

        - **ChannelClass** *(string) --* The class for this channel. STANDARD for a channel with two
        pipelines or SINGLE_PIPELINE for a channel with one pipeline.

        - **Destinations** *(list) --* A list of destinations of the channel. For UDP outputs, there
        is one destination per output. For other types (HLS, for example), there is one destination
        per packager.

          - *(dict) --* Placeholder documentation for OutputDestination

            - **Id** *(string) --* User-specified id. This is used in an output group or an output.

            - **MediaPackageSettings** *(list) --* Destination settings for a MediaPackage output;
            one destination for both encoders.

              - *(dict) --* MediaPackage Output Destination Settings

                - **ChannelId** *(string) --* ID of the channel in MediaPackage that is the
                destination for this output group. You do not need to specify the individual inputs
                in MediaPackage; MediaLive will handle the connection of the two MediaLive pipelines
                to the two MediaPackage inputs. The MediaPackage channel and MediaLive channel must
                be in the same region.

            - **MultiplexSettings** *(dict) --* Destination settings for a Multiplex output; one
            destination for both encoders.

              - **MultiplexId** *(string) --* The ID of the Multiplex that the encoder is providing
              output to. You do not need to specify the individual inputs to the Multiplex;
              MediaLive will handle the connection of the two MediaLive pipelines to the two
              Multiplex instances. The Multiplex must be in the same region as the Channel.

              - **ProgramName** *(string) --* The program name of the Multiplex program that the
              encoder is providing output to.

            - **Settings** *(list) --* Destination settings for a standard output; one destination
            for each redundant encoder.

              - *(dict) --* Placeholder documentation for OutputDestinationSettings

                - **PasswordParam** *(string) --* key used to extract the password from EC2
                Parameter store

                - **StreamName** *(string) --* Stream name for RTMP destinations (URLs of type
                rtmp://)

                - **Url** *(string) --* A URL specifying a destination

                - **Username** *(string) --* username for destination

        - **EgressEndpoints** *(list) --* The endpoints where outgoing connections initiate from

          - *(dict) --* Placeholder documentation for ChannelEgressEndpoint

            - **SourceIp** *(string) --* Public IP of where a channel's output comes from

        - **Id** *(string) --* The unique id of the channel.

        - **InputAttachments** *(list) --* List of input attachments for channel.

          - *(dict) --* Placeholder documentation for InputAttachment

            - **InputAttachmentName** *(string) --* User-specified name for the attachment. This is
            required if the user wants to use this input in an input switch action.

            - **InputId** *(string) --* The ID of the input

            - **InputSettings** *(dict) --* Settings of an input (caption selector, etc.)

              - **AudioSelectors** *(list) --* Used to select the audio stream to decode for inputs
              that have multiple available.

                - *(dict) --* Audio Selector

                  - **Name** *(string) --* The name of this AudioSelector. AudioDescriptions will
                  use this name to uniquely identify this Selector. Selector names should be unique
                  per input.

                  - **SelectorSettings** *(dict) --* The audio selector settings.

                    - **AudioLanguageSelection** *(dict) --* Audio Language Selection

                      - **LanguageCode** *(string) --* Selects a specific three-letter language code
                      from within an audio source.

                      - **LanguageSelectionPolicy** *(string) --* When set to "strict", the
                      transport stream demux strictly identifies audio streams by their language
                      descriptor. If a PMT update occurs such that an audio stream matching the
                      initially selected language is no longer present then mute will be encoded
                      until the language returns. If "loose", then on a PMT update the demux will
                      choose another audio stream in the program with the same stream type if it
                      can't find one with the same language.

                    - **AudioPidSelection** *(dict) --* Audio Pid Selection

                      - **Pid** *(integer) --* Selects a specific PID from within a source.

              - **CaptionSelectors** *(list) --* Used to select the caption input to use for inputs
              that have multiple available.

                - *(dict) --* Output groups for this Live Event. Output groups contain information
                about where streams should be distributed.

                  - **LanguageCode** *(string) --* When specified this field indicates the three
                  letter language code of the caption track to extract from the source.

                  - **Name** *(string) --* Name identifier for a caption selector. This name is used
                  to associate this caption selector with one or more caption descriptions. Names
                  must be unique within an event.

                  - **SelectorSettings** *(dict) --* Caption selector settings.

                    - **AribSourceSettings** *(dict) --* Arib Source Settings

                    - **DvbSubSourceSettings** *(dict) --* Dvb Sub Source Settings

                      - **Pid** *(integer) --* When using DVB-Sub with Burn-In or SMPTE-TT, use this
                      PID for the source content. Unused for DVB-Sub passthrough. All DVB-Sub
                      content is passed through, regardless of selectors.

                    - **EmbeddedSourceSettings** *(dict) --* Embedded Source Settings

                      - **Convert608To708** *(string) --* If upconvert, 608 data is both passed
                      through via the "608 compatibility bytes" fields of the 708 wrapper as well as
                      translated into 708. 708 data present in the source content will be discarded.

                      - **Scte20Detection** *(string) --* Set to "auto" to handle streams with
                      intermittent and/or non-aligned SCTE-20 and Embedded captions.

                      - **Source608ChannelNumber** *(integer) --* Specifies the 608/708 channel
                      number within the video track from which to extract captions. Unused for
                      passthrough.

                      - **Source608TrackNumber** *(integer) --* This field is unused and deprecated.

                    - **Scte20SourceSettings** *(dict) --* Scte20 Source Settings

                      - **Convert608To708** *(string) --* If upconvert, 608 data is both passed
                      through via the "608 compatibility bytes" fields of the 708 wrapper as well as
                      translated into 708. 708 data present in the source content will be discarded.

                      - **Source608ChannelNumber** *(integer) --* Specifies the 608/708 channel
                      number within the video track from which to extract captions. Unused for
                      passthrough.

                    - **Scte27SourceSettings** *(dict) --* Scte27 Source Settings

                      - **Pid** *(integer) --* The pid field is used in conjunction with the caption
                      selector languageCode field as follows: - Specify PID and Language: Extracts
                      captions from that PID; the language is "informational". - Specify PID and
                      omit Language: Extracts the specified PID. - Omit PID and specify Language:
                      Extracts the specified language, whichever PID that happens to be. - Omit PID
                      and omit Language: Valid only if source is DVB-Sub that is being passed
                      through; all languages will be passed through.

                    - **TeletextSourceSettings** *(dict) --* Teletext Source Settings

                      - **PageNumber** *(string) --* Specifies the teletext page number within the
                      data stream from which to extract captions. Range of 0x100 (256) to 0x8FF
                      (2303). Unused for passthrough. Should be specified as a hexadecimal string
                      with no "0x" prefix.

              - **DeblockFilter** *(string) --* Enable or disable the deblock filter when filtering.

              - **DenoiseFilter** *(string) --* Enable or disable the denoise filter when filtering.

              - **FilterStrength** *(integer) --* Adjusts the magnitude of filtering from 1
              (minimal) to 5 (strongest).

              - **InputFilter** *(string) --* Turns on the filter for this input. MPEG-2 inputs have
              the deblocking filter enabled by default. 1) auto - filtering will be applied
              depending on input type/quality 2) disabled - no filtering will be applied to the
              input 3) forced - filtering will be applied regardless of input type

              - **NetworkInputSettings** *(dict) --* Input settings.

                - **HlsInputSettings** *(dict) --* Specifies HLS input settings when the uri is for
                a HLS manifest.

                  - **Bandwidth** *(integer) --* When specified the HLS stream with the m3u8
                  BANDWIDTH that most closely matches this value will be chosen, otherwise the
                  highest bandwidth stream in the m3u8 will be chosen. The bitrate is specified in
                  bits per second, as in an HLS manifest.

                  - **BufferSegments** *(integer) --* When specified, reading of the HLS input will
                  begin this many buffer segments from the end (most recently written segment). When
                  not specified, the HLS input will begin with the first segment specified in the
                  m3u8.

                  - **Retries** *(integer) --* The number of consecutive times that attempts to read
                  a manifest or segment must fail before the input is considered unavailable.

                  - **RetryInterval** *(integer) --* The number of seconds between retries when an
                  attempt to read a manifest or segment fails.

                - **ServerValidation** *(string) --* Check HTTPS server certificates. When set to
                checkCryptographyOnly, cryptography in the certificate will be checked, but not the
                server's name. Certain subdomains (notably S3 buckets that use dots in the bucket
                name) do not strictly match the corresponding certificate's wildcard pattern and
                would otherwise cause the event to error. This setting is ignored for protocols that
                do not use https.

              - **SourceEndBehavior** *(string) --* Loop input if it is a file. This allows a file
              input to be streamed indefinitely.

              - **VideoSelector** *(dict) --* Informs which video elementary stream to decode for
              input types that have multiple available.

                - **ColorSpace** *(string) --* Specifies the color space of an input. This setting
                works in tandem with colorSpaceUsage and a video description's
                colorSpaceSettingsChoice to determine if any conversion will be performed.

                - **ColorSpaceUsage** *(string) --* Applies only if colorSpace is a value other than
                follow. This field controls how the value in the colorSpace field will be used.
                fallback means that when the input does include color space data, that data will be
                used, but when the input has no color space data, the value in colorSpace will be
                used. Choose fallback if your input is sometimes missing color space data, but when
                it does have color space data, that data is correct. force means to always use the
                value in colorSpace. Choose force if your input usually has no color space data or
                might have unreliable color space data.

                - **SelectorSettings** *(dict) --* The video selector settings.

                  - **VideoSelectorPid** *(dict) --* Video Selector Pid

                    - **Pid** *(integer) --* Selects a specific PID from within a video source.

                  - **VideoSelectorProgramId** *(dict) --* Video Selector Program Id

                    - **ProgramId** *(integer) --* Selects a specific program from within a
                    multi-program transport stream. If the program doesn't exist, the first program
                    within the transport stream will be selected by default.

        - **InputSpecification** *(dict) --* Placeholder documentation for InputSpecification

          - **Codec** *(string) --* Input codec

          - **MaximumBitrate** *(string) --* Maximum input bitrate, categorized coarsely

          - **Resolution** *(string) --* Input resolution, categorized coarsely

        - **LogLevel** *(string) --* The log level being written to CloudWatch Logs.

        - **Name** *(string) --* The name of the channel. (user-mutable)

        - **PipelinesRunningCount** *(integer) --* The number of currently healthy pipelines.

        - **RoleArn** *(string) --* The Amazon Resource Name (ARN) of the role assumed when running
        the Channel.

        - **State** *(string) --* Placeholder documentation for ChannelState

        - **Tags** *(dict) --* A collection of key-value pairs.

          - *(string) --* Placeholder documentation for __string

            - *(string) --* Placeholder documentation for __string

    - **NextToken** *(string) --* Placeholder documentation for __string
    """


_ClientListInputSecurityGroupsResponseInputSecurityGroupsWhitelistRulesTypeDef = TypedDict(
    "_ClientListInputSecurityGroupsResponseInputSecurityGroupsWhitelistRulesTypeDef",
    {"Cidr": str},
    total=False,
)


class ClientListInputSecurityGroupsResponseInputSecurityGroupsWhitelistRulesTypeDef(
    _ClientListInputSecurityGroupsResponseInputSecurityGroupsWhitelistRulesTypeDef
):
    """
    Type definition for `ClientListInputSecurityGroupsResponseInputSecurityGroups` `WhitelistRules`

    - **Cidr** *(string) --* The IPv4 CIDR that's whitelisted.
    """


_ClientListInputSecurityGroupsResponseInputSecurityGroupsTypeDef = TypedDict(
    "_ClientListInputSecurityGroupsResponseInputSecurityGroupsTypeDef",
    {
        "Arn": str,
        "Id": str,
        "Inputs": List[str],
        "State": str,
        "Tags": Dict[str, str],
        "WhitelistRules": List[
            ClientListInputSecurityGroupsResponseInputSecurityGroupsWhitelistRulesTypeDef
        ],
    },
    total=False,
)


class ClientListInputSecurityGroupsResponseInputSecurityGroupsTypeDef(
    _ClientListInputSecurityGroupsResponseInputSecurityGroupsTypeDef
):
    """
    Type definition for `ClientListInputSecurityGroupsResponse` `InputSecurityGroups`

    - **Arn** *(string) --* Unique ARN of Input Security Group

    - **Id** *(string) --* The Id of the Input Security Group

    - **Inputs** *(list) --* The list of inputs currently using this Input Security Group.

      - *(string) --* Placeholder documentation for __string

    - **State** *(string) --* The current state of the Input Security Group.

    - **Tags** *(dict) --* A collection of key-value pairs.

      - *(string) --* Placeholder documentation for __string

        - *(string) --* Placeholder documentation for __string

    - **WhitelistRules** *(list) --* Whitelist rules and their sync status

      - *(dict) --* Whitelist rule

        - **Cidr** *(string) --* The IPv4 CIDR that's whitelisted.
    """


_ClientListInputSecurityGroupsResponseTypeDef = TypedDict(
    "_ClientListInputSecurityGroupsResponseTypeDef",
    {
        "InputSecurityGroups": List[
            ClientListInputSecurityGroupsResponseInputSecurityGroupsTypeDef
        ],
        "NextToken": str,
    },
    total=False,
)


class ClientListInputSecurityGroupsResponseTypeDef(_ClientListInputSecurityGroupsResponseTypeDef):
    """
    Type definition for `ClientListInputSecurityGroups` `Response`

    - **InputSecurityGroups** *(list) --* List of input security groups

      - *(dict) --* An Input Security Group

        - **Arn** *(string) --* Unique ARN of Input Security Group

        - **Id** *(string) --* The Id of the Input Security Group

        - **Inputs** *(list) --* The list of inputs currently using this Input Security Group.

          - *(string) --* Placeholder documentation for __string

        - **State** *(string) --* The current state of the Input Security Group.

        - **Tags** *(dict) --* A collection of key-value pairs.

          - *(string) --* Placeholder documentation for __string

            - *(string) --* Placeholder documentation for __string

        - **WhitelistRules** *(list) --* Whitelist rules and their sync status

          - *(dict) --* Whitelist rule

            - **Cidr** *(string) --* The IPv4 CIDR that's whitelisted.

    - **NextToken** *(string) --* Placeholder documentation for __string
    """


_ClientListInputsResponseInputsDestinationsVpcTypeDef = TypedDict(
    "_ClientListInputsResponseInputsDestinationsVpcTypeDef",
    {"AvailabilityZone": str, "NetworkInterfaceId": str},
    total=False,
)


class ClientListInputsResponseInputsDestinationsVpcTypeDef(
    _ClientListInputsResponseInputsDestinationsVpcTypeDef
):
    """
    Type definition for `ClientListInputsResponseInputsDestinations` `Vpc`

    - **AvailabilityZone** *(string) --* The availability zone of the Input destination.

    - **NetworkInterfaceId** *(string) --* The network interface ID of the Input destination in the
    VPC.
    """


_ClientListInputsResponseInputsDestinationsTypeDef = TypedDict(
    "_ClientListInputsResponseInputsDestinationsTypeDef",
    {
        "Ip": str,
        "Port": str,
        "Url": str,
        "Vpc": ClientListInputsResponseInputsDestinationsVpcTypeDef,
    },
    total=False,
)


class ClientListInputsResponseInputsDestinationsTypeDef(
    _ClientListInputsResponseInputsDestinationsTypeDef
):
    """
    Type definition for `ClientListInputsResponseInputs` `Destinations`

    - **Ip** *(string) --* The system-generated static IP address of endpoint. It remains fixed for
    the lifetime of the input.

    - **Port** *(string) --* The port number for the input.

    - **Url** *(string) --* This represents the endpoint that the customer stream will be pushed to.

    - **Vpc** *(dict) --* The properties for a VPC type input destination.

      - **AvailabilityZone** *(string) --* The availability zone of the Input destination.

      - **NetworkInterfaceId** *(string) --* The network interface ID of the Input destination in
      the VPC.
    """


_ClientListInputsResponseInputsMediaConnectFlowsTypeDef = TypedDict(
    "_ClientListInputsResponseInputsMediaConnectFlowsTypeDef", {"FlowArn": str}, total=False
)


class ClientListInputsResponseInputsMediaConnectFlowsTypeDef(
    _ClientListInputsResponseInputsMediaConnectFlowsTypeDef
):
    """
    Type definition for `ClientListInputsResponseInputs` `MediaConnectFlows`

    - **FlowArn** *(string) --* The unique ARN of the MediaConnect Flow being used as a source.
    """


_ClientListInputsResponseInputsSourcesTypeDef = TypedDict(
    "_ClientListInputsResponseInputsSourcesTypeDef",
    {"PasswordParam": str, "Url": str, "Username": str},
    total=False,
)


class ClientListInputsResponseInputsSourcesTypeDef(_ClientListInputsResponseInputsSourcesTypeDef):
    """
    Type definition for `ClientListInputsResponseInputs` `Sources`

    - **PasswordParam** *(string) --* The key used to extract the password from EC2 Parameter store.

    - **Url** *(string) --* This represents the customer's source URL where stream is pulled from.

    - **Username** *(string) --* The username for the input source.
    """


_ClientListInputsResponseInputsTypeDef = TypedDict(
    "_ClientListInputsResponseInputsTypeDef",
    {
        "Arn": str,
        "AttachedChannels": List[str],
        "Destinations": List[ClientListInputsResponseInputsDestinationsTypeDef],
        "Id": str,
        "InputClass": str,
        "InputSourceType": str,
        "MediaConnectFlows": List[ClientListInputsResponseInputsMediaConnectFlowsTypeDef],
        "Name": str,
        "RoleArn": str,
        "SecurityGroups": List[str],
        "Sources": List[ClientListInputsResponseInputsSourcesTypeDef],
        "State": str,
        "Tags": Dict[str, str],
        "Type": str,
    },
    total=False,
)


class ClientListInputsResponseInputsTypeDef(_ClientListInputsResponseInputsTypeDef):
    """
    Type definition for `ClientListInputsResponse` `Inputs`

    - **Arn** *(string) --* The Unique ARN of the input (generated, immutable).

    - **AttachedChannels** *(list) --* A list of channel IDs that that input is attached to
    (currently an input can only be attached to one channel).

      - *(string) --* Placeholder documentation for __string

    - **Destinations** *(list) --* A list of the destinations of the input (PUSH-type).

      - *(dict) --* The settings for a PUSH type input.

        - **Ip** *(string) --* The system-generated static IP address of endpoint. It remains fixed
        for the lifetime of the input.

        - **Port** *(string) --* The port number for the input.

        - **Url** *(string) --* This represents the endpoint that the customer stream will be pushed
        to.

        - **Vpc** *(dict) --* The properties for a VPC type input destination.

          - **AvailabilityZone** *(string) --* The availability zone of the Input destination.

          - **NetworkInterfaceId** *(string) --* The network interface ID of the Input destination
          in the VPC.

    - **Id** *(string) --* The generated ID of the input (unique for user account, immutable).

    - **InputClass** *(string) --* STANDARD - MediaLive expects two sources to be connected to this
    input. If the channel is also STANDARD, both sources will be ingested. If the channel is
    SINGLE_PIPELINE, only the first source will be ingested; the second source will always be
    ignored, even if the first source fails. SINGLE_PIPELINE - You can connect only one source to
    this input. If the ChannelClass is also SINGLE_PIPELINE, this value is valid. If the
    ChannelClass is STANDARD, this value is not valid because the channel requires two sources in
    the input.

    - **InputSourceType** *(string) --* Certain pull input sources can be dynamic, meaning that they
    can have their URL's dynamically changes during input switch actions. Presently, this
    functionality only works with MP4_FILE inputs.

    - **MediaConnectFlows** *(list) --* A list of MediaConnect Flows for this input.

      - *(dict) --* The settings for a MediaConnect Flow.

        - **FlowArn** *(string) --* The unique ARN of the MediaConnect Flow being used as a source.

    - **Name** *(string) --* The user-assigned name (This is a mutable value).

    - **RoleArn** *(string) --* The Amazon Resource Name (ARN) of the role this input assumes during
    and after creation.

    - **SecurityGroups** *(list) --* A list of IDs for all the Input Security Groups attached to the
    input.

      - *(string) --* Placeholder documentation for __string

    - **Sources** *(list) --* A list of the sources of the input (PULL-type).

      - *(dict) --* The settings for a PULL type input.

        - **PasswordParam** *(string) --* The key used to extract the password from EC2 Parameter
        store.

        - **Url** *(string) --* This represents the customer's source URL where stream is pulled
        from.

        - **Username** *(string) --* The username for the input source.

    - **State** *(string) --* Placeholder documentation for InputState

    - **Tags** *(dict) --* A collection of key-value pairs.

      - *(string) --* Placeholder documentation for __string

        - *(string) --* Placeholder documentation for __string

    - **Type** *(string) --* Placeholder documentation for InputType
    """


_ClientListInputsResponseTypeDef = TypedDict(
    "_ClientListInputsResponseTypeDef",
    {"Inputs": List[ClientListInputsResponseInputsTypeDef], "NextToken": str},
    total=False,
)


class ClientListInputsResponseTypeDef(_ClientListInputsResponseTypeDef):
    """
    Type definition for `ClientListInputs` `Response`

    - **Inputs** *(list) --* Placeholder documentation for __listOfInput

      - *(dict) --* Placeholder documentation for Input

        - **Arn** *(string) --* The Unique ARN of the input (generated, immutable).

        - **AttachedChannels** *(list) --* A list of channel IDs that that input is attached to
        (currently an input can only be attached to one channel).

          - *(string) --* Placeholder documentation for __string

        - **Destinations** *(list) --* A list of the destinations of the input (PUSH-type).

          - *(dict) --* The settings for a PUSH type input.

            - **Ip** *(string) --* The system-generated static IP address of endpoint. It remains
            fixed for the lifetime of the input.

            - **Port** *(string) --* The port number for the input.

            - **Url** *(string) --* This represents the endpoint that the customer stream will be
            pushed to.

            - **Vpc** *(dict) --* The properties for a VPC type input destination.

              - **AvailabilityZone** *(string) --* The availability zone of the Input destination.

              - **NetworkInterfaceId** *(string) --* The network interface ID of the Input
              destination in the VPC.

        - **Id** *(string) --* The generated ID of the input (unique for user account, immutable).

        - **InputClass** *(string) --* STANDARD - MediaLive expects two sources to be connected to
        this input. If the channel is also STANDARD, both sources will be ingested. If the channel
        is SINGLE_PIPELINE, only the first source will be ingested; the second source will always be
        ignored, even if the first source fails. SINGLE_PIPELINE - You can connect only one source
        to this input. If the ChannelClass is also SINGLE_PIPELINE, this value is valid. If the
        ChannelClass is STANDARD, this value is not valid because the channel requires two sources
        in the input.

        - **InputSourceType** *(string) --* Certain pull input sources can be dynamic, meaning that
        they can have their URL's dynamically changes during input switch actions. Presently, this
        functionality only works with MP4_FILE inputs.

        - **MediaConnectFlows** *(list) --* A list of MediaConnect Flows for this input.

          - *(dict) --* The settings for a MediaConnect Flow.

            - **FlowArn** *(string) --* The unique ARN of the MediaConnect Flow being used as a
            source.

        - **Name** *(string) --* The user-assigned name (This is a mutable value).

        - **RoleArn** *(string) --* The Amazon Resource Name (ARN) of the role this input assumes
        during and after creation.

        - **SecurityGroups** *(list) --* A list of IDs for all the Input Security Groups attached to
        the input.

          - *(string) --* Placeholder documentation for __string

        - **Sources** *(list) --* A list of the sources of the input (PULL-type).

          - *(dict) --* The settings for a PULL type input.

            - **PasswordParam** *(string) --* The key used to extract the password from EC2
            Parameter store.

            - **Url** *(string) --* This represents the customer's source URL where stream is pulled
            from.

            - **Username** *(string) --* The username for the input source.

        - **State** *(string) --* Placeholder documentation for InputState

        - **Tags** *(dict) --* A collection of key-value pairs.

          - *(string) --* Placeholder documentation for __string

            - *(string) --* Placeholder documentation for __string

        - **Type** *(string) --* Placeholder documentation for InputType

    - **NextToken** *(string) --* Placeholder documentation for __string
    """


_ClientListMultiplexProgramsResponseMultiplexProgramsTypeDef = TypedDict(
    "_ClientListMultiplexProgramsResponseMultiplexProgramsTypeDef",
    {"ChannelId": str, "ProgramName": str},
    total=False,
)


class ClientListMultiplexProgramsResponseMultiplexProgramsTypeDef(
    _ClientListMultiplexProgramsResponseMultiplexProgramsTypeDef
):
    """
    Type definition for `ClientListMultiplexProgramsResponse` `MultiplexPrograms`

    - **ChannelId** *(string) --* The MediaLive Channel associated with the program.

    - **ProgramName** *(string) --* The name of the multiplex program.
    """


_ClientListMultiplexProgramsResponseTypeDef = TypedDict(
    "_ClientListMultiplexProgramsResponseTypeDef",
    {
        "MultiplexPrograms": List[ClientListMultiplexProgramsResponseMultiplexProgramsTypeDef],
        "NextToken": str,
    },
    total=False,
)


class ClientListMultiplexProgramsResponseTypeDef(_ClientListMultiplexProgramsResponseTypeDef):
    """
    Type definition for `ClientListMultiplexPrograms` `Response`

    - **MultiplexPrograms** *(list) --* List of multiplex programs.

      - *(dict) --* Placeholder documentation for MultiplexProgramSummary

        - **ChannelId** *(string) --* The MediaLive Channel associated with the program.

        - **ProgramName** *(string) --* The name of the multiplex program.

    - **NextToken** *(string) --* Token for the next ListMultiplexProgram request.
    """


_ClientListMultiplexesResponseMultiplexesMultiplexSettingsTypeDef = TypedDict(
    "_ClientListMultiplexesResponseMultiplexesMultiplexSettingsTypeDef",
    {"TransportStreamBitrate": int},
    total=False,
)


class ClientListMultiplexesResponseMultiplexesMultiplexSettingsTypeDef(
    _ClientListMultiplexesResponseMultiplexesMultiplexSettingsTypeDef
):
    """
    Type definition for `ClientListMultiplexesResponseMultiplexes` `MultiplexSettings`

    - **TransportStreamBitrate** *(integer) --* Transport stream bit rate.
    """


_ClientListMultiplexesResponseMultiplexesTypeDef = TypedDict(
    "_ClientListMultiplexesResponseMultiplexesTypeDef",
    {
        "Arn": str,
        "AvailabilityZones": List[str],
        "Id": str,
        "MultiplexSettings": ClientListMultiplexesResponseMultiplexesMultiplexSettingsTypeDef,
        "Name": str,
        "PipelinesRunningCount": int,
        "ProgramCount": int,
        "State": str,
        "Tags": Dict[str, str],
    },
    total=False,
)


class ClientListMultiplexesResponseMultiplexesTypeDef(
    _ClientListMultiplexesResponseMultiplexesTypeDef
):
    """
    Type definition for `ClientListMultiplexesResponse` `Multiplexes`

    - **Arn** *(string) --* The unique arn of the multiplex.

    - **AvailabilityZones** *(list) --* A list of availability zones for the multiplex.

      - *(string) --* Placeholder documentation for __string

    - **Id** *(string) --* The unique id of the multiplex.

    - **MultiplexSettings** *(dict) --* Configuration for a multiplex event.

      - **TransportStreamBitrate** *(integer) --* Transport stream bit rate.

    - **Name** *(string) --* The name of the multiplex.

    - **PipelinesRunningCount** *(integer) --* The number of currently healthy pipelines.

    - **ProgramCount** *(integer) --* The number of programs in the multiplex.

    - **State** *(string) --* The current state of the multiplex.

    - **Tags** *(dict) --* A collection of key-value pairs.

      - *(string) --* Placeholder documentation for __string

        - *(string) --* Placeholder documentation for __string
    """


_ClientListMultiplexesResponseTypeDef = TypedDict(
    "_ClientListMultiplexesResponseTypeDef",
    {"Multiplexes": List[ClientListMultiplexesResponseMultiplexesTypeDef], "NextToken": str},
    total=False,
)


class ClientListMultiplexesResponseTypeDef(_ClientListMultiplexesResponseTypeDef):
    """
    Type definition for `ClientListMultiplexes` `Response`

    - **Multiplexes** *(list) --* List of multiplexes.

      - *(dict) --* Placeholder documentation for MultiplexSummary

        - **Arn** *(string) --* The unique arn of the multiplex.

        - **AvailabilityZones** *(list) --* A list of availability zones for the multiplex.

          - *(string) --* Placeholder documentation for __string

        - **Id** *(string) --* The unique id of the multiplex.

        - **MultiplexSettings** *(dict) --* Configuration for a multiplex event.

          - **TransportStreamBitrate** *(integer) --* Transport stream bit rate.

        - **Name** *(string) --* The name of the multiplex.

        - **PipelinesRunningCount** *(integer) --* The number of currently healthy pipelines.

        - **ProgramCount** *(integer) --* The number of programs in the multiplex.

        - **State** *(string) --* The current state of the multiplex.

        - **Tags** *(dict) --* A collection of key-value pairs.

          - *(string) --* Placeholder documentation for __string

            - *(string) --* Placeholder documentation for __string

    - **NextToken** *(string) --* Token for the next ListMultiplexes request.
    """


_ClientListOfferingsResponseOfferingsResourceSpecificationTypeDef = TypedDict(
    "_ClientListOfferingsResponseOfferingsResourceSpecificationTypeDef",
    {
        "ChannelClass": str,
        "Codec": str,
        "MaximumBitrate": str,
        "MaximumFramerate": str,
        "Resolution": str,
        "ResourceType": str,
        "SpecialFeature": str,
        "VideoQuality": str,
    },
    total=False,
)


class ClientListOfferingsResponseOfferingsResourceSpecificationTypeDef(
    _ClientListOfferingsResponseOfferingsResourceSpecificationTypeDef
):
    """
    Type definition for `ClientListOfferingsResponseOfferings` `ResourceSpecification`

    - **ChannelClass** *(string) --* Channel class, e.g. 'STANDARD'

    - **Codec** *(string) --* Codec, e.g. 'AVC'

    - **MaximumBitrate** *(string) --* Maximum bitrate, e.g. 'MAX_20_MBPS'

    - **MaximumFramerate** *(string) --* Maximum framerate, e.g. 'MAX_30_FPS' (Outputs only)

    - **Resolution** *(string) --* Resolution, e.g. 'HD'

    - **ResourceType** *(string) --* Resource type, 'INPUT', 'OUTPUT', 'MULTIPLEX', or 'CHANNEL'

    - **SpecialFeature** *(string) --* Special feature, e.g. 'AUDIO_NORMALIZATION' (Channels only)

    - **VideoQuality** *(string) --* Video quality, e.g. 'STANDARD' (Outputs only)
    """


_ClientListOfferingsResponseOfferingsTypeDef = TypedDict(
    "_ClientListOfferingsResponseOfferingsTypeDef",
    {
        "Arn": str,
        "CurrencyCode": str,
        "Duration": int,
        "DurationUnits": str,
        "FixedPrice": float,
        "OfferingDescription": str,
        "OfferingId": str,
        "OfferingType": str,
        "Region": str,
        "ResourceSpecification": ClientListOfferingsResponseOfferingsResourceSpecificationTypeDef,
        "UsagePrice": float,
    },
    total=False,
)


class ClientListOfferingsResponseOfferingsTypeDef(_ClientListOfferingsResponseOfferingsTypeDef):
    """
    Type definition for `ClientListOfferingsResponse` `Offerings`

    - **Arn** *(string) --* Unique offering ARN, e.g.
    'arn:aws:medialive:us-west-2:123456789012:offering:87654321'

    - **CurrencyCode** *(string) --* Currency code for usagePrice and fixedPrice in ISO-4217 format,
    e.g. 'USD'

    - **Duration** *(integer) --* Lease duration, e.g. '12'

    - **DurationUnits** *(string) --* Units for duration, e.g. 'MONTHS'

    - **FixedPrice** *(float) --* One-time charge for each reserved resource, e.g. '0.0' for a
    NO_UPFRONT offering

    - **OfferingDescription** *(string) --* Offering description, e.g. 'HD AVC output at 10-20 Mbps,
    30 fps, and standard VQ in US West (Oregon)'

    - **OfferingId** *(string) --* Unique offering ID, e.g. '87654321'

    - **OfferingType** *(string) --* Offering type, e.g. 'NO_UPFRONT'

    - **Region** *(string) --* AWS region, e.g. 'us-west-2'

    - **ResourceSpecification** *(dict) --* Resource configuration details

      - **ChannelClass** *(string) --* Channel class, e.g. 'STANDARD'

      - **Codec** *(string) --* Codec, e.g. 'AVC'

      - **MaximumBitrate** *(string) --* Maximum bitrate, e.g. 'MAX_20_MBPS'

      - **MaximumFramerate** *(string) --* Maximum framerate, e.g. 'MAX_30_FPS' (Outputs only)

      - **Resolution** *(string) --* Resolution, e.g. 'HD'

      - **ResourceType** *(string) --* Resource type, 'INPUT', 'OUTPUT', 'MULTIPLEX', or 'CHANNEL'

      - **SpecialFeature** *(string) --* Special feature, e.g. 'AUDIO_NORMALIZATION' (Channels only)

      - **VideoQuality** *(string) --* Video quality, e.g. 'STANDARD' (Outputs only)

    - **UsagePrice** *(float) --* Recurring usage charge for each reserved resource, e.g. '157.0'
    """


_ClientListOfferingsResponseTypeDef = TypedDict(
    "_ClientListOfferingsResponseTypeDef",
    {"NextToken": str, "Offerings": List[ClientListOfferingsResponseOfferingsTypeDef]},
    total=False,
)


class ClientListOfferingsResponseTypeDef(_ClientListOfferingsResponseTypeDef):
    """
    Type definition for `ClientListOfferings` `Response`

    - **NextToken** *(string) --* Token to retrieve the next page of results

    - **Offerings** *(list) --* List of offerings

      - *(dict) --* Reserved resources available for purchase

        - **Arn** *(string) --* Unique offering ARN, e.g.
        'arn:aws:medialive:us-west-2:123456789012:offering:87654321'

        - **CurrencyCode** *(string) --* Currency code for usagePrice and fixedPrice in ISO-4217
        format, e.g. 'USD'

        - **Duration** *(integer) --* Lease duration, e.g. '12'

        - **DurationUnits** *(string) --* Units for duration, e.g. 'MONTHS'

        - **FixedPrice** *(float) --* One-time charge for each reserved resource, e.g. '0.0' for a
        NO_UPFRONT offering

        - **OfferingDescription** *(string) --* Offering description, e.g. 'HD AVC output at 10-20
        Mbps, 30 fps, and standard VQ in US West (Oregon)'

        - **OfferingId** *(string) --* Unique offering ID, e.g. '87654321'

        - **OfferingType** *(string) --* Offering type, e.g. 'NO_UPFRONT'

        - **Region** *(string) --* AWS region, e.g. 'us-west-2'

        - **ResourceSpecification** *(dict) --* Resource configuration details

          - **ChannelClass** *(string) --* Channel class, e.g. 'STANDARD'

          - **Codec** *(string) --* Codec, e.g. 'AVC'

          - **MaximumBitrate** *(string) --* Maximum bitrate, e.g. 'MAX_20_MBPS'

          - **MaximumFramerate** *(string) --* Maximum framerate, e.g. 'MAX_30_FPS' (Outputs only)

          - **Resolution** *(string) --* Resolution, e.g. 'HD'

          - **ResourceType** *(string) --* Resource type, 'INPUT', 'OUTPUT', 'MULTIPLEX', or
          'CHANNEL'

          - **SpecialFeature** *(string) --* Special feature, e.g. 'AUDIO_NORMALIZATION' (Channels
          only)

          - **VideoQuality** *(string) --* Video quality, e.g. 'STANDARD' (Outputs only)

        - **UsagePrice** *(float) --* Recurring usage charge for each reserved resource, e.g.
        '157.0'
    """


_ClientListReservationsResponseReservationsResourceSpecificationTypeDef = TypedDict(
    "_ClientListReservationsResponseReservationsResourceSpecificationTypeDef",
    {
        "ChannelClass": str,
        "Codec": str,
        "MaximumBitrate": str,
        "MaximumFramerate": str,
        "Resolution": str,
        "ResourceType": str,
        "SpecialFeature": str,
        "VideoQuality": str,
    },
    total=False,
)


class ClientListReservationsResponseReservationsResourceSpecificationTypeDef(
    _ClientListReservationsResponseReservationsResourceSpecificationTypeDef
):
    """
    Type definition for `ClientListReservationsResponseReservations` `ResourceSpecification`

    - **ChannelClass** *(string) --* Channel class, e.g. 'STANDARD'

    - **Codec** *(string) --* Codec, e.g. 'AVC'

    - **MaximumBitrate** *(string) --* Maximum bitrate, e.g. 'MAX_20_MBPS'

    - **MaximumFramerate** *(string) --* Maximum framerate, e.g. 'MAX_30_FPS' (Outputs only)

    - **Resolution** *(string) --* Resolution, e.g. 'HD'

    - **ResourceType** *(string) --* Resource type, 'INPUT', 'OUTPUT', 'MULTIPLEX', or 'CHANNEL'

    - **SpecialFeature** *(string) --* Special feature, e.g. 'AUDIO_NORMALIZATION' (Channels only)

    - **VideoQuality** *(string) --* Video quality, e.g. 'STANDARD' (Outputs only)
    """


_ClientListReservationsResponseReservationsTypeDef = TypedDict(
    "_ClientListReservationsResponseReservationsTypeDef",
    {
        "Arn": str,
        "Count": int,
        "CurrencyCode": str,
        "Duration": int,
        "DurationUnits": str,
        "End": str,
        "FixedPrice": float,
        "Name": str,
        "OfferingDescription": str,
        "OfferingId": str,
        "OfferingType": str,
        "Region": str,
        "ReservationId": str,
        "ResourceSpecification": ClientListReservationsResponseReservationsResourceSpecificationTypeDef,
        "Start": str,
        "State": str,
        "Tags": Dict[str, str],
        "UsagePrice": float,
    },
    total=False,
)


class ClientListReservationsResponseReservationsTypeDef(
    _ClientListReservationsResponseReservationsTypeDef
):
    """
    Type definition for `ClientListReservationsResponse` `Reservations`

    - **Arn** *(string) --* Unique reservation ARN, e.g.
    'arn:aws:medialive:us-west-2:123456789012:reservation:1234567'

    - **Count** *(integer) --* Number of reserved resources

    - **CurrencyCode** *(string) --* Currency code for usagePrice and fixedPrice in ISO-4217 format,
    e.g. 'USD'

    - **Duration** *(integer) --* Lease duration, e.g. '12'

    - **DurationUnits** *(string) --* Units for duration, e.g. 'MONTHS'

    - **End** *(string) --* Reservation UTC end date and time in ISO-8601 format, e.g.
    '2019-03-01T00:00:00'

    - **FixedPrice** *(float) --* One-time charge for each reserved resource, e.g. '0.0' for a
    NO_UPFRONT offering

    - **Name** *(string) --* User specified reservation name

    - **OfferingDescription** *(string) --* Offering description, e.g. 'HD AVC output at 10-20 Mbps,
    30 fps, and standard VQ in US West (Oregon)'

    - **OfferingId** *(string) --* Unique offering ID, e.g. '87654321'

    - **OfferingType** *(string) --* Offering type, e.g. 'NO_UPFRONT'

    - **Region** *(string) --* AWS region, e.g. 'us-west-2'

    - **ReservationId** *(string) --* Unique reservation ID, e.g. '1234567'

    - **ResourceSpecification** *(dict) --* Resource configuration details

      - **ChannelClass** *(string) --* Channel class, e.g. 'STANDARD'

      - **Codec** *(string) --* Codec, e.g. 'AVC'

      - **MaximumBitrate** *(string) --* Maximum bitrate, e.g. 'MAX_20_MBPS'

      - **MaximumFramerate** *(string) --* Maximum framerate, e.g. 'MAX_30_FPS' (Outputs only)

      - **Resolution** *(string) --* Resolution, e.g. 'HD'

      - **ResourceType** *(string) --* Resource type, 'INPUT', 'OUTPUT', 'MULTIPLEX', or 'CHANNEL'

      - **SpecialFeature** *(string) --* Special feature, e.g. 'AUDIO_NORMALIZATION' (Channels only)

      - **VideoQuality** *(string) --* Video quality, e.g. 'STANDARD' (Outputs only)

    - **Start** *(string) --* Reservation UTC start date and time in ISO-8601 format, e.g.
    '2018-03-01T00:00:00'

    - **State** *(string) --* Current state of reservation, e.g. 'ACTIVE'

    - **Tags** *(dict) --* A collection of key-value pairs

      - *(string) --* Placeholder documentation for __string

        - *(string) --* Placeholder documentation for __string

    - **UsagePrice** *(float) --* Recurring usage charge for each reserved resource, e.g. '157.0'
    """


_ClientListReservationsResponseTypeDef = TypedDict(
    "_ClientListReservationsResponseTypeDef",
    {"NextToken": str, "Reservations": List[ClientListReservationsResponseReservationsTypeDef]},
    total=False,
)


class ClientListReservationsResponseTypeDef(_ClientListReservationsResponseTypeDef):
    """
    Type definition for `ClientListReservations` `Response`

    - **NextToken** *(string) --* Token to retrieve the next page of results

    - **Reservations** *(list) --* List of reservations

      - *(dict) --* Reserved resources available to use

        - **Arn** *(string) --* Unique reservation ARN, e.g.
        'arn:aws:medialive:us-west-2:123456789012:reservation:1234567'

        - **Count** *(integer) --* Number of reserved resources

        - **CurrencyCode** *(string) --* Currency code for usagePrice and fixedPrice in ISO-4217
        format, e.g. 'USD'

        - **Duration** *(integer) --* Lease duration, e.g. '12'

        - **DurationUnits** *(string) --* Units for duration, e.g. 'MONTHS'

        - **End** *(string) --* Reservation UTC end date and time in ISO-8601 format, e.g.
        '2019-03-01T00:00:00'

        - **FixedPrice** *(float) --* One-time charge for each reserved resource, e.g. '0.0' for a
        NO_UPFRONT offering

        - **Name** *(string) --* User specified reservation name

        - **OfferingDescription** *(string) --* Offering description, e.g. 'HD AVC output at 10-20
        Mbps, 30 fps, and standard VQ in US West (Oregon)'

        - **OfferingId** *(string) --* Unique offering ID, e.g. '87654321'

        - **OfferingType** *(string) --* Offering type, e.g. 'NO_UPFRONT'

        - **Region** *(string) --* AWS region, e.g. 'us-west-2'

        - **ReservationId** *(string) --* Unique reservation ID, e.g. '1234567'

        - **ResourceSpecification** *(dict) --* Resource configuration details

          - **ChannelClass** *(string) --* Channel class, e.g. 'STANDARD'

          - **Codec** *(string) --* Codec, e.g. 'AVC'

          - **MaximumBitrate** *(string) --* Maximum bitrate, e.g. 'MAX_20_MBPS'

          - **MaximumFramerate** *(string) --* Maximum framerate, e.g. 'MAX_30_FPS' (Outputs only)

          - **Resolution** *(string) --* Resolution, e.g. 'HD'

          - **ResourceType** *(string) --* Resource type, 'INPUT', 'OUTPUT', 'MULTIPLEX', or
          'CHANNEL'

          - **SpecialFeature** *(string) --* Special feature, e.g. 'AUDIO_NORMALIZATION' (Channels
          only)

          - **VideoQuality** *(string) --* Video quality, e.g. 'STANDARD' (Outputs only)

        - **Start** *(string) --* Reservation UTC start date and time in ISO-8601 format, e.g.
        '2018-03-01T00:00:00'

        - **State** *(string) --* Current state of reservation, e.g. 'ACTIVE'

        - **Tags** *(dict) --* A collection of key-value pairs

          - *(string) --* Placeholder documentation for __string

            - *(string) --* Placeholder documentation for __string

        - **UsagePrice** *(float) --* Recurring usage charge for each reserved resource, e.g.
        '157.0'
    """


_ClientListTagsForResourceResponseTypeDef = TypedDict(
    "_ClientListTagsForResourceResponseTypeDef", {"Tags": Dict[str, str]}, total=False
)


class ClientListTagsForResourceResponseTypeDef(_ClientListTagsForResourceResponseTypeDef):
    """
    Type definition for `ClientListTagsForResource` `Response`

    - **Tags** *(dict) --* Placeholder documentation for Tags

      - *(string) --* Placeholder documentation for __string

        - *(string) --* Placeholder documentation for __string
    """


_ClientPurchaseOfferingResponseReservationResourceSpecificationTypeDef = TypedDict(
    "_ClientPurchaseOfferingResponseReservationResourceSpecificationTypeDef",
    {
        "ChannelClass": str,
        "Codec": str,
        "MaximumBitrate": str,
        "MaximumFramerate": str,
        "Resolution": str,
        "ResourceType": str,
        "SpecialFeature": str,
        "VideoQuality": str,
    },
    total=False,
)


class ClientPurchaseOfferingResponseReservationResourceSpecificationTypeDef(
    _ClientPurchaseOfferingResponseReservationResourceSpecificationTypeDef
):
    """
    Type definition for `ClientPurchaseOfferingResponseReservation` `ResourceSpecification`

    - **ChannelClass** *(string) --* Channel class, e.g. 'STANDARD'

    - **Codec** *(string) --* Codec, e.g. 'AVC'

    - **MaximumBitrate** *(string) --* Maximum bitrate, e.g. 'MAX_20_MBPS'

    - **MaximumFramerate** *(string) --* Maximum framerate, e.g. 'MAX_30_FPS' (Outputs only)

    - **Resolution** *(string) --* Resolution, e.g. 'HD'

    - **ResourceType** *(string) --* Resource type, 'INPUT', 'OUTPUT', 'MULTIPLEX', or 'CHANNEL'

    - **SpecialFeature** *(string) --* Special feature, e.g. 'AUDIO_NORMALIZATION' (Channels only)

    - **VideoQuality** *(string) --* Video quality, e.g. 'STANDARD' (Outputs only)
    """


_ClientPurchaseOfferingResponseReservationTypeDef = TypedDict(
    "_ClientPurchaseOfferingResponseReservationTypeDef",
    {
        "Arn": str,
        "Count": int,
        "CurrencyCode": str,
        "Duration": int,
        "DurationUnits": str,
        "End": str,
        "FixedPrice": float,
        "Name": str,
        "OfferingDescription": str,
        "OfferingId": str,
        "OfferingType": str,
        "Region": str,
        "ReservationId": str,
        "ResourceSpecification": ClientPurchaseOfferingResponseReservationResourceSpecificationTypeDef,
        "Start": str,
        "State": str,
        "Tags": Dict[str, str],
        "UsagePrice": float,
    },
    total=False,
)


class ClientPurchaseOfferingResponseReservationTypeDef(
    _ClientPurchaseOfferingResponseReservationTypeDef
):
    """
    Type definition for `ClientPurchaseOfferingResponse` `Reservation`

    - **Arn** *(string) --* Unique reservation ARN, e.g.
    'arn:aws:medialive:us-west-2:123456789012:reservation:1234567'

    - **Count** *(integer) --* Number of reserved resources

    - **CurrencyCode** *(string) --* Currency code for usagePrice and fixedPrice in ISO-4217 format,
    e.g. 'USD'

    - **Duration** *(integer) --* Lease duration, e.g. '12'

    - **DurationUnits** *(string) --* Units for duration, e.g. 'MONTHS'

    - **End** *(string) --* Reservation UTC end date and time in ISO-8601 format, e.g.
    '2019-03-01T00:00:00'

    - **FixedPrice** *(float) --* One-time charge for each reserved resource, e.g. '0.0' for a
    NO_UPFRONT offering

    - **Name** *(string) --* User specified reservation name

    - **OfferingDescription** *(string) --* Offering description, e.g. 'HD AVC output at 10-20 Mbps,
    30 fps, and standard VQ in US West (Oregon)'

    - **OfferingId** *(string) --* Unique offering ID, e.g. '87654321'

    - **OfferingType** *(string) --* Offering type, e.g. 'NO_UPFRONT'

    - **Region** *(string) --* AWS region, e.g. 'us-west-2'

    - **ReservationId** *(string) --* Unique reservation ID, e.g. '1234567'

    - **ResourceSpecification** *(dict) --* Resource configuration details

      - **ChannelClass** *(string) --* Channel class, e.g. 'STANDARD'

      - **Codec** *(string) --* Codec, e.g. 'AVC'

      - **MaximumBitrate** *(string) --* Maximum bitrate, e.g. 'MAX_20_MBPS'

      - **MaximumFramerate** *(string) --* Maximum framerate, e.g. 'MAX_30_FPS' (Outputs only)

      - **Resolution** *(string) --* Resolution, e.g. 'HD'

      - **ResourceType** *(string) --* Resource type, 'INPUT', 'OUTPUT', 'MULTIPLEX', or 'CHANNEL'

      - **SpecialFeature** *(string) --* Special feature, e.g. 'AUDIO_NORMALIZATION' (Channels only)

      - **VideoQuality** *(string) --* Video quality, e.g. 'STANDARD' (Outputs only)

    - **Start** *(string) --* Reservation UTC start date and time in ISO-8601 format, e.g.
    '2018-03-01T00:00:00'

    - **State** *(string) --* Current state of reservation, e.g. 'ACTIVE'

    - **Tags** *(dict) --* A collection of key-value pairs

      - *(string) --* Placeholder documentation for __string

        - *(string) --* Placeholder documentation for __string

    - **UsagePrice** *(float) --* Recurring usage charge for each reserved resource, e.g. '157.0'
    """


_ClientPurchaseOfferingResponseTypeDef = TypedDict(
    "_ClientPurchaseOfferingResponseTypeDef",
    {"Reservation": ClientPurchaseOfferingResponseReservationTypeDef},
    total=False,
)


class ClientPurchaseOfferingResponseTypeDef(_ClientPurchaseOfferingResponseTypeDef):
    """
    Type definition for `ClientPurchaseOffering` `Response`

    - **Reservation** *(dict) --* Reserved resources available to use

      - **Arn** *(string) --* Unique reservation ARN, e.g.
      'arn:aws:medialive:us-west-2:123456789012:reservation:1234567'

      - **Count** *(integer) --* Number of reserved resources

      - **CurrencyCode** *(string) --* Currency code for usagePrice and fixedPrice in ISO-4217
      format, e.g. 'USD'

      - **Duration** *(integer) --* Lease duration, e.g. '12'

      - **DurationUnits** *(string) --* Units for duration, e.g. 'MONTHS'

      - **End** *(string) --* Reservation UTC end date and time in ISO-8601 format, e.g.
      '2019-03-01T00:00:00'

      - **FixedPrice** *(float) --* One-time charge for each reserved resource, e.g. '0.0' for a
      NO_UPFRONT offering

      - **Name** *(string) --* User specified reservation name

      - **OfferingDescription** *(string) --* Offering description, e.g. 'HD AVC output at 10-20
      Mbps, 30 fps, and standard VQ in US West (Oregon)'

      - **OfferingId** *(string) --* Unique offering ID, e.g. '87654321'

      - **OfferingType** *(string) --* Offering type, e.g. 'NO_UPFRONT'

      - **Region** *(string) --* AWS region, e.g. 'us-west-2'

      - **ReservationId** *(string) --* Unique reservation ID, e.g. '1234567'

      - **ResourceSpecification** *(dict) --* Resource configuration details

        - **ChannelClass** *(string) --* Channel class, e.g. 'STANDARD'

        - **Codec** *(string) --* Codec, e.g. 'AVC'

        - **MaximumBitrate** *(string) --* Maximum bitrate, e.g. 'MAX_20_MBPS'

        - **MaximumFramerate** *(string) --* Maximum framerate, e.g. 'MAX_30_FPS' (Outputs only)

        - **Resolution** *(string) --* Resolution, e.g. 'HD'

        - **ResourceType** *(string) --* Resource type, 'INPUT', 'OUTPUT', 'MULTIPLEX', or 'CHANNEL'

        - **SpecialFeature** *(string) --* Special feature, e.g. 'AUDIO_NORMALIZATION' (Channels
        only)

        - **VideoQuality** *(string) --* Video quality, e.g. 'STANDARD' (Outputs only)

      - **Start** *(string) --* Reservation UTC start date and time in ISO-8601 format, e.g.
      '2018-03-01T00:00:00'

      - **State** *(string) --* Current state of reservation, e.g. 'ACTIVE'

      - **Tags** *(dict) --* A collection of key-value pairs

        - *(string) --* Placeholder documentation for __string

          - *(string) --* Placeholder documentation for __string

      - **UsagePrice** *(float) --* Recurring usage charge for each reserved resource, e.g. '157.0'
    """


_ClientStartChannelResponseDestinationsMediaPackageSettingsTypeDef = TypedDict(
    "_ClientStartChannelResponseDestinationsMediaPackageSettingsTypeDef",
    {"ChannelId": str},
    total=False,
)


class ClientStartChannelResponseDestinationsMediaPackageSettingsTypeDef(
    _ClientStartChannelResponseDestinationsMediaPackageSettingsTypeDef
):
    """
    Type definition for `ClientStartChannelResponseDestinations` `MediaPackageSettings`

    - **ChannelId** *(string) --* ID of the channel in MediaPackage that is the destination for this
    output group. You do not need to specify the individual inputs in MediaPackage; MediaLive will
    handle the connection of the two MediaLive pipelines to the two MediaPackage inputs. The
    MediaPackage channel and MediaLive channel must be in the same region.
    """


_ClientStartChannelResponseDestinationsMultiplexSettingsTypeDef = TypedDict(
    "_ClientStartChannelResponseDestinationsMultiplexSettingsTypeDef",
    {"MultiplexId": str, "ProgramName": str},
    total=False,
)


class ClientStartChannelResponseDestinationsMultiplexSettingsTypeDef(
    _ClientStartChannelResponseDestinationsMultiplexSettingsTypeDef
):
    """
    Type definition for `ClientStartChannelResponseDestinations` `MultiplexSettings`

    - **MultiplexId** *(string) --* The ID of the Multiplex that the encoder is providing output to.
    You do not need to specify the individual inputs to the Multiplex; MediaLive will handle the
    connection of the two MediaLive pipelines to the two Multiplex instances. The Multiplex must be
    in the same region as the Channel.

    - **ProgramName** *(string) --* The program name of the Multiplex program that the encoder is
    providing output to.
    """


_ClientStartChannelResponseDestinationsSettingsTypeDef = TypedDict(
    "_ClientStartChannelResponseDestinationsSettingsTypeDef",
    {"PasswordParam": str, "StreamName": str, "Url": str, "Username": str},
    total=False,
)


class ClientStartChannelResponseDestinationsSettingsTypeDef(
    _ClientStartChannelResponseDestinationsSettingsTypeDef
):
    """
    Type definition for `ClientStartChannelResponseDestinations` `Settings`

    - **PasswordParam** *(string) --* key used to extract the password from EC2 Parameter store

    - **StreamName** *(string) --* Stream name for RTMP destinations (URLs of type rtmp://)

    - **Url** *(string) --* A URL specifying a destination

    - **Username** *(string) --* username for destination
    """


_ClientStartChannelResponseDestinationsTypeDef = TypedDict(
    "_ClientStartChannelResponseDestinationsTypeDef",
    {
        "Id": str,
        "MediaPackageSettings": List[
            ClientStartChannelResponseDestinationsMediaPackageSettingsTypeDef
        ],
        "MultiplexSettings": ClientStartChannelResponseDestinationsMultiplexSettingsTypeDef,
        "Settings": List[ClientStartChannelResponseDestinationsSettingsTypeDef],
    },
    total=False,
)


class ClientStartChannelResponseDestinationsTypeDef(_ClientStartChannelResponseDestinationsTypeDef):
    """
    Type definition for `ClientStartChannelResponse` `Destinations`

    - **Id** *(string) --* User-specified id. This is used in an output group or an output.

    - **MediaPackageSettings** *(list) --* Destination settings for a MediaPackage output; one
    destination for both encoders.

      - *(dict) --* MediaPackage Output Destination Settings

        - **ChannelId** *(string) --* ID of the channel in MediaPackage that is the destination for
        this output group. You do not need to specify the individual inputs in MediaPackage;
        MediaLive will handle the connection of the two MediaLive pipelines to the two MediaPackage
        inputs. The MediaPackage channel and MediaLive channel must be in the same region.

    - **MultiplexSettings** *(dict) --* Destination settings for a Multiplex output; one destination
    for both encoders.

      - **MultiplexId** *(string) --* The ID of the Multiplex that the encoder is providing output
      to. You do not need to specify the individual inputs to the Multiplex; MediaLive will handle
      the connection of the two MediaLive pipelines to the two Multiplex instances. The Multiplex
      must be in the same region as the Channel.

      - **ProgramName** *(string) --* The program name of the Multiplex program that the encoder is
      providing output to.

    - **Settings** *(list) --* Destination settings for a standard output; one destination for each
    redundant encoder.

      - *(dict) --* Placeholder documentation for OutputDestinationSettings

        - **PasswordParam** *(string) --* key used to extract the password from EC2 Parameter store

        - **StreamName** *(string) --* Stream name for RTMP destinations (URLs of type rtmp://)

        - **Url** *(string) --* A URL specifying a destination

        - **Username** *(string) --* username for destination
    """


_ClientStartChannelResponseEgressEndpointsTypeDef = TypedDict(
    "_ClientStartChannelResponseEgressEndpointsTypeDef", {"SourceIp": str}, total=False
)


class ClientStartChannelResponseEgressEndpointsTypeDef(
    _ClientStartChannelResponseEgressEndpointsTypeDef
):
    """
    Type definition for `ClientStartChannelResponse` `EgressEndpoints`

    - **SourceIp** *(string) --* Public IP of where a channel's output comes from
    """


_ClientStartChannelResponseEncoderSettingsAudioDescriptionsAudioNormalizationSettingsTypeDef = TypedDict(
    "_ClientStartChannelResponseEncoderSettingsAudioDescriptionsAudioNormalizationSettingsTypeDef",
    {"Algorithm": str, "AlgorithmControl": str, "TargetLkfs": float},
    total=False,
)


class ClientStartChannelResponseEncoderSettingsAudioDescriptionsAudioNormalizationSettingsTypeDef(
    _ClientStartChannelResponseEncoderSettingsAudioDescriptionsAudioNormalizationSettingsTypeDef
):
    """
    Type definition for `ClientStartChannelResponseEncoderSettingsAudioDescriptions`
    `AudioNormalizationSettings`

    - **Algorithm** *(string) --* Audio normalization algorithm to use. itu17701 conforms to the
    CALM Act specification, itu17702 conforms to the EBU R-128 specification.

    - **AlgorithmControl** *(string) --* When set to correctAudio the output audio is corrected
    using the chosen algorithm. If set to measureOnly, the audio will be measured but not adjusted.

    - **TargetLkfs** *(float) --* Target LKFS(loudness) to adjust volume to. If no value is entered,
    a default value will be used according to the chosen algorithm. The CALM Act (1770-1) recommends
    a target of -24 LKFS. The EBU R-128 specification (1770-2) recommends a target of -23 LKFS.
    """


_ClientStartChannelResponseEncoderSettingsAudioDescriptionsCodecSettingsAacSettingsTypeDef = TypedDict(
    "_ClientStartChannelResponseEncoderSettingsAudioDescriptionsCodecSettingsAacSettingsTypeDef",
    {
        "Bitrate": float,
        "CodingMode": str,
        "InputType": str,
        "Profile": str,
        "RateControlMode": str,
        "RawFormat": str,
        "SampleRate": float,
        "Spec": str,
        "VbrQuality": str,
    },
    total=False,
)


class ClientStartChannelResponseEncoderSettingsAudioDescriptionsCodecSettingsAacSettingsTypeDef(
    _ClientStartChannelResponseEncoderSettingsAudioDescriptionsCodecSettingsAacSettingsTypeDef
):
    """
    Type definition for `ClientStartChannelResponseEncoderSettingsAudioDescriptionsCodecSettings`
    `AacSettings`

    - **Bitrate** *(float) --* Average bitrate in bits/second. Valid values depend on rate control
    mode and profile.

    - **CodingMode** *(string) --* Mono, Stereo, or 5.1 channel layout. Valid values depend on rate
    control mode and profile. The adReceiverMix setting receives a stereo description plus control
    track and emits a mono AAC encode of the description track, with control data emitted in the PES
    header as per ETSI TS 101 154 Annex E.

    - **InputType** *(string) --* Set to "broadcasterMixedAd" when input contains pre-mixed main
    audio + AD (narration) as a stereo pair. The Audio Type field (audioType) will be set to 3,
    which signals to downstream systems that this stream contains "broadcaster mixed AD". Note that
    the input received by the encoder must contain pre-mixed audio; the encoder does not perform the
    mixing. The values in audioTypeControl and audioType (in AudioDescription) are ignored when set
    to broadcasterMixedAd. Leave set to "normal" when input does not contain pre-mixed audio + AD.

    - **Profile** *(string) --* AAC Profile.

    - **RateControlMode** *(string) --* Rate Control Mode.

    - **RawFormat** *(string) --* Sets LATM / LOAS AAC output for raw containers.

    - **SampleRate** *(float) --* Sample rate in Hz. Valid values depend on rate control mode and
    profile.

    - **Spec** *(string) --* Use MPEG-2 AAC audio instead of MPEG-4 AAC audio for raw or MPEG-2
    Transport Stream containers.

    - **VbrQuality** *(string) --* VBR Quality Level - Only used if rateControlMode is VBR.
    """


_ClientStartChannelResponseEncoderSettingsAudioDescriptionsCodecSettingsAc3SettingsTypeDef = TypedDict(
    "_ClientStartChannelResponseEncoderSettingsAudioDescriptionsCodecSettingsAc3SettingsTypeDef",
    {
        "Bitrate": float,
        "BitstreamMode": str,
        "CodingMode": str,
        "Dialnorm": int,
        "DrcProfile": str,
        "LfeFilter": str,
        "MetadataControl": str,
    },
    total=False,
)


class ClientStartChannelResponseEncoderSettingsAudioDescriptionsCodecSettingsAc3SettingsTypeDef(
    _ClientStartChannelResponseEncoderSettingsAudioDescriptionsCodecSettingsAc3SettingsTypeDef
):
    """
    Type definition for `ClientStartChannelResponseEncoderSettingsAudioDescriptionsCodecSettings`
    `Ac3Settings`

    - **Bitrate** *(float) --* Average bitrate in bits/second. Valid bitrates depend on the coding
    mode.

    - **BitstreamMode** *(string) --* Specifies the bitstream mode (bsmod) for the emitted AC-3
    stream. See ATSC A/52-2012 for background on these values.

    - **CodingMode** *(string) --* Dolby Digital coding mode. Determines number of channels.

    - **Dialnorm** *(integer) --* Sets the dialnorm for the output. If excluded and input audio is
    Dolby Digital, dialnorm will be passed through.

    - **DrcProfile** *(string) --* If set to filmStandard, adds dynamic range compression signaling
    to the output bitstream as defined in the Dolby Digital specification.

    - **LfeFilter** *(string) --* When set to enabled, applies a 120Hz lowpass filter to the LFE
    channel prior to encoding. Only valid in codingMode32Lfe mode.

    - **MetadataControl** *(string) --* When set to "followInput", encoder metadata will be sourced
    from the DD, DD+, or DolbyE decoder that supplied this audio data. If audio was not supplied
    from one of these streams, then the static metadata settings will be used.
    """


_ClientStartChannelResponseEncoderSettingsAudioDescriptionsCodecSettingsEac3SettingsTypeDef = TypedDict(
    "_ClientStartChannelResponseEncoderSettingsAudioDescriptionsCodecSettingsEac3SettingsTypeDef",
    {
        "AttenuationControl": str,
        "Bitrate": float,
        "BitstreamMode": str,
        "CodingMode": str,
        "DcFilter": str,
        "Dialnorm": int,
        "DrcLine": str,
        "DrcRf": str,
        "LfeControl": str,
        "LfeFilter": str,
        "LoRoCenterMixLevel": float,
        "LoRoSurroundMixLevel": float,
        "LtRtCenterMixLevel": float,
        "LtRtSurroundMixLevel": float,
        "MetadataControl": str,
        "PassthroughControl": str,
        "PhaseControl": str,
        "StereoDownmix": str,
        "SurroundExMode": str,
        "SurroundMode": str,
    },
    total=False,
)


class ClientStartChannelResponseEncoderSettingsAudioDescriptionsCodecSettingsEac3SettingsTypeDef(
    _ClientStartChannelResponseEncoderSettingsAudioDescriptionsCodecSettingsEac3SettingsTypeDef
):
    """
    Type definition for `ClientStartChannelResponseEncoderSettingsAudioDescriptionsCodecSettings`
    `Eac3Settings`

    - **AttenuationControl** *(string) --* When set to attenuate3Db, applies a 3 dB attenuation to
    the surround channels. Only used for 3/2 coding mode.

    - **Bitrate** *(float) --* Average bitrate in bits/second. Valid bitrates depend on the coding
    mode.

    - **BitstreamMode** *(string) --* Specifies the bitstream mode (bsmod) for the emitted E-AC-3
    stream. See ATSC A/52-2012 (Annex E) for background on these values.

    - **CodingMode** *(string) --* Dolby Digital Plus coding mode. Determines number of channels.

    - **DcFilter** *(string) --* When set to enabled, activates a DC highpass filter for all input
    channels.

    - **Dialnorm** *(integer) --* Sets the dialnorm for the output. If blank and input audio is
    Dolby Digital Plus, dialnorm will be passed through.

    - **DrcLine** *(string) --* Sets the Dolby dynamic range compression profile.

    - **DrcRf** *(string) --* Sets the profile for heavy Dolby dynamic range compression, ensures
    that the instantaneous signal peaks do not exceed specified levels.

    - **LfeControl** *(string) --* When encoding 3/2 audio, setting to lfe enables the LFE channel

    - **LfeFilter** *(string) --* When set to enabled, applies a 120Hz lowpass filter to the LFE
    channel prior to encoding. Only valid with codingMode32 coding mode.

    - **LoRoCenterMixLevel** *(float) --* Left only/Right only center mix level. Only used for 3/2
    coding mode.

    - **LoRoSurroundMixLevel** *(float) --* Left only/Right only surround mix level. Only used for
    3/2 coding mode.

    - **LtRtCenterMixLevel** *(float) --* Left total/Right total center mix level. Only used for 3/2
    coding mode.

    - **LtRtSurroundMixLevel** *(float) --* Left total/Right total surround mix level. Only used for
    3/2 coding mode.

    - **MetadataControl** *(string) --* When set to followInput, encoder metadata will be sourced
    from the DD, DD+, or DolbyE decoder that supplied this audio data. If audio was not supplied
    from one of these streams, then the static metadata settings will be used.

    - **PassthroughControl** *(string) --* When set to whenPossible, input DD+ audio will be passed
    through if it is present on the input. This detection is dynamic over the life of the transcode.
    Inputs that alternate between DD+ and non-DD+ content will have a consistent DD+ output as the
    system alternates between passthrough and encoding.

    - **PhaseControl** *(string) --* When set to shift90Degrees, applies a 90-degree phase shift to
    the surround channels. Only used for 3/2 coding mode.

    - **StereoDownmix** *(string) --* Stereo downmix preference. Only used for 3/2 coding mode.

    - **SurroundExMode** *(string) --* When encoding 3/2 audio, sets whether an extra center back
    surround channel is matrix encoded into the left and right surround channels.

    - **SurroundMode** *(string) --* When encoding 2/0 audio, sets whether Dolby Surround is matrix
    encoded into the two channels.
    """


_ClientStartChannelResponseEncoderSettingsAudioDescriptionsCodecSettingsMp2SettingsTypeDef = TypedDict(
    "_ClientStartChannelResponseEncoderSettingsAudioDescriptionsCodecSettingsMp2SettingsTypeDef",
    {"Bitrate": float, "CodingMode": str, "SampleRate": float},
    total=False,
)


class ClientStartChannelResponseEncoderSettingsAudioDescriptionsCodecSettingsMp2SettingsTypeDef(
    _ClientStartChannelResponseEncoderSettingsAudioDescriptionsCodecSettingsMp2SettingsTypeDef
):
    """
    Type definition for `ClientStartChannelResponseEncoderSettingsAudioDescriptionsCodecSettings`
    `Mp2Settings`

    - **Bitrate** *(float) --* Average bitrate in bits/second.

    - **CodingMode** *(string) --* The MPEG2 Audio coding mode. Valid values are codingMode10 (for
    mono) or codingMode20 (for stereo).

    - **SampleRate** *(float) --* Sample rate in Hz.
    """


_ClientStartChannelResponseEncoderSettingsAudioDescriptionsCodecSettingsTypeDef = TypedDict(
    "_ClientStartChannelResponseEncoderSettingsAudioDescriptionsCodecSettingsTypeDef",
    {
        "AacSettings": ClientStartChannelResponseEncoderSettingsAudioDescriptionsCodecSettingsAacSettingsTypeDef,
        "Ac3Settings": ClientStartChannelResponseEncoderSettingsAudioDescriptionsCodecSettingsAc3SettingsTypeDef,
        "Eac3Settings": ClientStartChannelResponseEncoderSettingsAudioDescriptionsCodecSettingsEac3SettingsTypeDef,
        "Mp2Settings": ClientStartChannelResponseEncoderSettingsAudioDescriptionsCodecSettingsMp2SettingsTypeDef,
        "PassThroughSettings": Dict[str, Any],
    },
    total=False,
)


class ClientStartChannelResponseEncoderSettingsAudioDescriptionsCodecSettingsTypeDef(
    _ClientStartChannelResponseEncoderSettingsAudioDescriptionsCodecSettingsTypeDef
):
    """
    Type definition for `ClientStartChannelResponseEncoderSettingsAudioDescriptions` `CodecSettings`

    - **AacSettings** *(dict) --* Aac Settings

      - **Bitrate** *(float) --* Average bitrate in bits/second. Valid values depend on rate control
      mode and profile.

      - **CodingMode** *(string) --* Mono, Stereo, or 5.1 channel layout. Valid values depend on
      rate control mode and profile. The adReceiverMix setting receives a stereo description plus
      control track and emits a mono AAC encode of the description track, with control data emitted
      in the PES header as per ETSI TS 101 154 Annex E.

      - **InputType** *(string) --* Set to "broadcasterMixedAd" when input contains pre-mixed main
      audio + AD (narration) as a stereo pair. The Audio Type field (audioType) will be set to 3,
      which signals to downstream systems that this stream contains "broadcaster mixed AD". Note
      that the input received by the encoder must contain pre-mixed audio; the encoder does not
      perform the mixing. The values in audioTypeControl and audioType (in AudioDescription) are
      ignored when set to broadcasterMixedAd. Leave set to "normal" when input does not contain
      pre-mixed audio + AD.

      - **Profile** *(string) --* AAC Profile.

      - **RateControlMode** *(string) --* Rate Control Mode.

      - **RawFormat** *(string) --* Sets LATM / LOAS AAC output for raw containers.

      - **SampleRate** *(float) --* Sample rate in Hz. Valid values depend on rate control mode and
      profile.

      - **Spec** *(string) --* Use MPEG-2 AAC audio instead of MPEG-4 AAC audio for raw or MPEG-2
      Transport Stream containers.

      - **VbrQuality** *(string) --* VBR Quality Level - Only used if rateControlMode is VBR.

    - **Ac3Settings** *(dict) --* Ac3 Settings

      - **Bitrate** *(float) --* Average bitrate in bits/second. Valid bitrates depend on the coding
      mode.

      - **BitstreamMode** *(string) --* Specifies the bitstream mode (bsmod) for the emitted AC-3
      stream. See ATSC A/52-2012 for background on these values.

      - **CodingMode** *(string) --* Dolby Digital coding mode. Determines number of channels.

      - **Dialnorm** *(integer) --* Sets the dialnorm for the output. If excluded and input audio is
      Dolby Digital, dialnorm will be passed through.

      - **DrcProfile** *(string) --* If set to filmStandard, adds dynamic range compression
      signaling to the output bitstream as defined in the Dolby Digital specification.

      - **LfeFilter** *(string) --* When set to enabled, applies a 120Hz lowpass filter to the LFE
      channel prior to encoding. Only valid in codingMode32Lfe mode.

      - **MetadataControl** *(string) --* When set to "followInput", encoder metadata will be
      sourced from the DD, DD+, or DolbyE decoder that supplied this audio data. If audio was not
      supplied from one of these streams, then the static metadata settings will be used.

    - **Eac3Settings** *(dict) --* Eac3 Settings

      - **AttenuationControl** *(string) --* When set to attenuate3Db, applies a 3 dB attenuation to
      the surround channels. Only used for 3/2 coding mode.

      - **Bitrate** *(float) --* Average bitrate in bits/second. Valid bitrates depend on the coding
      mode.

      - **BitstreamMode** *(string) --* Specifies the bitstream mode (bsmod) for the emitted E-AC-3
      stream. See ATSC A/52-2012 (Annex E) for background on these values.

      - **CodingMode** *(string) --* Dolby Digital Plus coding mode. Determines number of channels.

      - **DcFilter** *(string) --* When set to enabled, activates a DC highpass filter for all input
      channels.

      - **Dialnorm** *(integer) --* Sets the dialnorm for the output. If blank and input audio is
      Dolby Digital Plus, dialnorm will be passed through.

      - **DrcLine** *(string) --* Sets the Dolby dynamic range compression profile.

      - **DrcRf** *(string) --* Sets the profile for heavy Dolby dynamic range compression, ensures
      that the instantaneous signal peaks do not exceed specified levels.

      - **LfeControl** *(string) --* When encoding 3/2 audio, setting to lfe enables the LFE channel

      - **LfeFilter** *(string) --* When set to enabled, applies a 120Hz lowpass filter to the LFE
      channel prior to encoding. Only valid with codingMode32 coding mode.

      - **LoRoCenterMixLevel** *(float) --* Left only/Right only center mix level. Only used for 3/2
      coding mode.

      - **LoRoSurroundMixLevel** *(float) --* Left only/Right only surround mix level. Only used for
      3/2 coding mode.

      - **LtRtCenterMixLevel** *(float) --* Left total/Right total center mix level. Only used for
      3/2 coding mode.

      - **LtRtSurroundMixLevel** *(float) --* Left total/Right total surround mix level. Only used
      for 3/2 coding mode.

      - **MetadataControl** *(string) --* When set to followInput, encoder metadata will be sourced
      from the DD, DD+, or DolbyE decoder that supplied this audio data. If audio was not supplied
      from one of these streams, then the static metadata settings will be used.

      - **PassthroughControl** *(string) --* When set to whenPossible, input DD+ audio will be
      passed through if it is present on the input. This detection is dynamic over the life of the
      transcode. Inputs that alternate between DD+ and non-DD+ content will have a consistent DD+
      output as the system alternates between passthrough and encoding.

      - **PhaseControl** *(string) --* When set to shift90Degrees, applies a 90-degree phase shift
      to the surround channels. Only used for 3/2 coding mode.

      - **StereoDownmix** *(string) --* Stereo downmix preference. Only used for 3/2 coding mode.

      - **SurroundExMode** *(string) --* When encoding 3/2 audio, sets whether an extra center back
      surround channel is matrix encoded into the left and right surround channels.

      - **SurroundMode** *(string) --* When encoding 2/0 audio, sets whether Dolby Surround is
      matrix encoded into the two channels.

    - **Mp2Settings** *(dict) --* Mp2 Settings

      - **Bitrate** *(float) --* Average bitrate in bits/second.

      - **CodingMode** *(string) --* The MPEG2 Audio coding mode. Valid values are codingMode10 (for
      mono) or codingMode20 (for stereo).

      - **SampleRate** *(float) --* Sample rate in Hz.

    - **PassThroughSettings** *(dict) --* Pass Through Settings
    """


_ClientStartChannelResponseEncoderSettingsAudioDescriptionsRemixSettingsChannelMappingsInputChannelLevelsTypeDef = TypedDict(
    "_ClientStartChannelResponseEncoderSettingsAudioDescriptionsRemixSettingsChannelMappingsInputChannelLevelsTypeDef",
    {"Gain": int, "InputChannel": int},
    total=False,
)


class ClientStartChannelResponseEncoderSettingsAudioDescriptionsRemixSettingsChannelMappingsInputChannelLevelsTypeDef(
    _ClientStartChannelResponseEncoderSettingsAudioDescriptionsRemixSettingsChannelMappingsInputChannelLevelsTypeDef
):
    """
    Type definition for
    `ClientStartChannelResponseEncoderSettingsAudioDescriptionsRemixSettingsChannelMappings`
    `InputChannelLevels`

    - **Gain** *(integer) --* Remixing value. Units are in dB and acceptable values are within the
    range from -60 (mute) and 6 dB.

    - **InputChannel** *(integer) --* The index of the input channel used as a source.
    """


_ClientStartChannelResponseEncoderSettingsAudioDescriptionsRemixSettingsChannelMappingsTypeDef = TypedDict(
    "_ClientStartChannelResponseEncoderSettingsAudioDescriptionsRemixSettingsChannelMappingsTypeDef",
    {
        "InputChannelLevels": List[
            ClientStartChannelResponseEncoderSettingsAudioDescriptionsRemixSettingsChannelMappingsInputChannelLevelsTypeDef
        ],
        "OutputChannel": int,
    },
    total=False,
)


class ClientStartChannelResponseEncoderSettingsAudioDescriptionsRemixSettingsChannelMappingsTypeDef(
    _ClientStartChannelResponseEncoderSettingsAudioDescriptionsRemixSettingsChannelMappingsTypeDef
):
    """
    Type definition for `ClientStartChannelResponseEncoderSettingsAudioDescriptionsRemixSettings`
    `ChannelMappings`

    - **InputChannelLevels** *(list) --* Indices and gain values for each input channel that should
    be remixed into this output channel.

      - *(dict) --* Input Channel Level

        - **Gain** *(integer) --* Remixing value. Units are in dB and acceptable values are within
        the range from -60 (mute) and 6 dB.

        - **InputChannel** *(integer) --* The index of the input channel used as a source.

    - **OutputChannel** *(integer) --* The index of the output channel being produced.
    """


_ClientStartChannelResponseEncoderSettingsAudioDescriptionsRemixSettingsTypeDef = TypedDict(
    "_ClientStartChannelResponseEncoderSettingsAudioDescriptionsRemixSettingsTypeDef",
    {
        "ChannelMappings": List[
            ClientStartChannelResponseEncoderSettingsAudioDescriptionsRemixSettingsChannelMappingsTypeDef
        ],
        "ChannelsIn": int,
        "ChannelsOut": int,
    },
    total=False,
)


class ClientStartChannelResponseEncoderSettingsAudioDescriptionsRemixSettingsTypeDef(
    _ClientStartChannelResponseEncoderSettingsAudioDescriptionsRemixSettingsTypeDef
):
    """
    Type definition for `ClientStartChannelResponseEncoderSettingsAudioDescriptions` `RemixSettings`

    - **ChannelMappings** *(list) --* Mapping of input channels to output channels, with appropriate
    gain adjustments.

      - *(dict) --* Audio Channel Mapping

        - **InputChannelLevels** *(list) --* Indices and gain values for each input channel that
        should be remixed into this output channel.

          - *(dict) --* Input Channel Level

            - **Gain** *(integer) --* Remixing value. Units are in dB and acceptable values are
            within the range from -60 (mute) and 6 dB.

            - **InputChannel** *(integer) --* The index of the input channel used as a source.

        - **OutputChannel** *(integer) --* The index of the output channel being produced.

    - **ChannelsIn** *(integer) --* Number of input channels to be used.

    - **ChannelsOut** *(integer) --* Number of output channels to be produced. Valid values: 1, 2,
    4, 6, 8
    """


_ClientStartChannelResponseEncoderSettingsAudioDescriptionsTypeDef = TypedDict(
    "_ClientStartChannelResponseEncoderSettingsAudioDescriptionsTypeDef",
    {
        "AudioNormalizationSettings": ClientStartChannelResponseEncoderSettingsAudioDescriptionsAudioNormalizationSettingsTypeDef,
        "AudioSelectorName": str,
        "AudioType": str,
        "AudioTypeControl": str,
        "CodecSettings": ClientStartChannelResponseEncoderSettingsAudioDescriptionsCodecSettingsTypeDef,
        "LanguageCode": str,
        "LanguageCodeControl": str,
        "Name": str,
        "RemixSettings": ClientStartChannelResponseEncoderSettingsAudioDescriptionsRemixSettingsTypeDef,
        "StreamName": str,
    },
    total=False,
)


class ClientStartChannelResponseEncoderSettingsAudioDescriptionsTypeDef(
    _ClientStartChannelResponseEncoderSettingsAudioDescriptionsTypeDef
):
    """
    Type definition for `ClientStartChannelResponseEncoderSettings` `AudioDescriptions`

    - **AudioNormalizationSettings** *(dict) --* Advanced audio normalization settings.

      - **Algorithm** *(string) --* Audio normalization algorithm to use. itu17701 conforms to the
      CALM Act specification, itu17702 conforms to the EBU R-128 specification.

      - **AlgorithmControl** *(string) --* When set to correctAudio the output audio is corrected
      using the chosen algorithm. If set to measureOnly, the audio will be measured but not
      adjusted.

      - **TargetLkfs** *(float) --* Target LKFS(loudness) to adjust volume to. If no value is
      entered, a default value will be used according to the chosen algorithm. The CALM Act (1770-1)
      recommends a target of -24 LKFS. The EBU R-128 specification (1770-2) recommends a target of
      -23 LKFS.

    - **AudioSelectorName** *(string) --* The name of the AudioSelector used as the source for this
    AudioDescription.

    - **AudioType** *(string) --* Applies only if audioTypeControl is useConfigured. The values for
    audioType are defined in ISO-IEC 13818-1.

    - **AudioTypeControl** *(string) --* Determines how audio type is determined. followInput: If
    the input contains an ISO 639 audioType, then that value is passed through to the output. If the
    input contains no ISO 639 audioType, the value in Audio Type is included in the output.
    useConfigured: The value in Audio Type is included in the output. Note that this field and
    audioType are both ignored if inputType is broadcasterMixedAd.

    - **CodecSettings** *(dict) --* Audio codec settings.

      - **AacSettings** *(dict) --* Aac Settings

        - **Bitrate** *(float) --* Average bitrate in bits/second. Valid values depend on rate
        control mode and profile.

        - **CodingMode** *(string) --* Mono, Stereo, or 5.1 channel layout. Valid values depend on
        rate control mode and profile. The adReceiverMix setting receives a stereo description plus
        control track and emits a mono AAC encode of the description track, with control data
        emitted in the PES header as per ETSI TS 101 154 Annex E.

        - **InputType** *(string) --* Set to "broadcasterMixedAd" when input contains pre-mixed main
        audio + AD (narration) as a stereo pair. The Audio Type field (audioType) will be set to 3,
        which signals to downstream systems that this stream contains "broadcaster mixed AD". Note
        that the input received by the encoder must contain pre-mixed audio; the encoder does not
        perform the mixing. The values in audioTypeControl and audioType (in AudioDescription) are
        ignored when set to broadcasterMixedAd. Leave set to "normal" when input does not contain
        pre-mixed audio + AD.

        - **Profile** *(string) --* AAC Profile.

        - **RateControlMode** *(string) --* Rate Control Mode.

        - **RawFormat** *(string) --* Sets LATM / LOAS AAC output for raw containers.

        - **SampleRate** *(float) --* Sample rate in Hz. Valid values depend on rate control mode
        and profile.

        - **Spec** *(string) --* Use MPEG-2 AAC audio instead of MPEG-4 AAC audio for raw or MPEG-2
        Transport Stream containers.

        - **VbrQuality** *(string) --* VBR Quality Level - Only used if rateControlMode is VBR.

      - **Ac3Settings** *(dict) --* Ac3 Settings

        - **Bitrate** *(float) --* Average bitrate in bits/second. Valid bitrates depend on the
        coding mode.

        - **BitstreamMode** *(string) --* Specifies the bitstream mode (bsmod) for the emitted AC-3
        stream. See ATSC A/52-2012 for background on these values.

        - **CodingMode** *(string) --* Dolby Digital coding mode. Determines number of channels.

        - **Dialnorm** *(integer) --* Sets the dialnorm for the output. If excluded and input audio
        is Dolby Digital, dialnorm will be passed through.

        - **DrcProfile** *(string) --* If set to filmStandard, adds dynamic range compression
        signaling to the output bitstream as defined in the Dolby Digital specification.

        - **LfeFilter** *(string) --* When set to enabled, applies a 120Hz lowpass filter to the LFE
        channel prior to encoding. Only valid in codingMode32Lfe mode.

        - **MetadataControl** *(string) --* When set to "followInput", encoder metadata will be
        sourced from the DD, DD+, or DolbyE decoder that supplied this audio data. If audio was not
        supplied from one of these streams, then the static metadata settings will be used.

      - **Eac3Settings** *(dict) --* Eac3 Settings

        - **AttenuationControl** *(string) --* When set to attenuate3Db, applies a 3 dB attenuation
        to the surround channels. Only used for 3/2 coding mode.

        - **Bitrate** *(float) --* Average bitrate in bits/second. Valid bitrates depend on the
        coding mode.

        - **BitstreamMode** *(string) --* Specifies the bitstream mode (bsmod) for the emitted
        E-AC-3 stream. See ATSC A/52-2012 (Annex E) for background on these values.

        - **CodingMode** *(string) --* Dolby Digital Plus coding mode. Determines number of
        channels.

        - **DcFilter** *(string) --* When set to enabled, activates a DC highpass filter for all
        input channels.

        - **Dialnorm** *(integer) --* Sets the dialnorm for the output. If blank and input audio is
        Dolby Digital Plus, dialnorm will be passed through.

        - **DrcLine** *(string) --* Sets the Dolby dynamic range compression profile.

        - **DrcRf** *(string) --* Sets the profile for heavy Dolby dynamic range compression,
        ensures that the instantaneous signal peaks do not exceed specified levels.

        - **LfeControl** *(string) --* When encoding 3/2 audio, setting to lfe enables the LFE
        channel

        - **LfeFilter** *(string) --* When set to enabled, applies a 120Hz lowpass filter to the LFE
        channel prior to encoding. Only valid with codingMode32 coding mode.

        - **LoRoCenterMixLevel** *(float) --* Left only/Right only center mix level. Only used for
        3/2 coding mode.

        - **LoRoSurroundMixLevel** *(float) --* Left only/Right only surround mix level. Only used
        for 3/2 coding mode.

        - **LtRtCenterMixLevel** *(float) --* Left total/Right total center mix level. Only used for
        3/2 coding mode.

        - **LtRtSurroundMixLevel** *(float) --* Left total/Right total surround mix level. Only used
        for 3/2 coding mode.

        - **MetadataControl** *(string) --* When set to followInput, encoder metadata will be
        sourced from the DD, DD+, or DolbyE decoder that supplied this audio data. If audio was not
        supplied from one of these streams, then the static metadata settings will be used.

        - **PassthroughControl** *(string) --* When set to whenPossible, input DD+ audio will be
        passed through if it is present on the input. This detection is dynamic over the life of the
        transcode. Inputs that alternate between DD+ and non-DD+ content will have a consistent DD+
        output as the system alternates between passthrough and encoding.

        - **PhaseControl** *(string) --* When set to shift90Degrees, applies a 90-degree phase shift
        to the surround channels. Only used for 3/2 coding mode.

        - **StereoDownmix** *(string) --* Stereo downmix preference. Only used for 3/2 coding mode.

        - **SurroundExMode** *(string) --* When encoding 3/2 audio, sets whether an extra center
        back surround channel is matrix encoded into the left and right surround channels.

        - **SurroundMode** *(string) --* When encoding 2/0 audio, sets whether Dolby Surround is
        matrix encoded into the two channels.

      - **Mp2Settings** *(dict) --* Mp2 Settings

        - **Bitrate** *(float) --* Average bitrate in bits/second.

        - **CodingMode** *(string) --* The MPEG2 Audio coding mode. Valid values are codingMode10
        (for mono) or codingMode20 (for stereo).

        - **SampleRate** *(float) --* Sample rate in Hz.

      - **PassThroughSettings** *(dict) --* Pass Through Settings

    - **LanguageCode** *(string) --* Indicates the language of the audio output track. Only used if
    languageControlMode is useConfigured, or there is no ISO 639 language code specified in the
    input.

    - **LanguageCodeControl** *(string) --* Choosing followInput will cause the ISO 639 language
    code of the output to follow the ISO 639 language code of the input. The languageCode will be
    used when useConfigured is set, or when followInput is selected but there is no ISO 639 language
    code specified by the input.

    - **Name** *(string) --* The name of this AudioDescription. Outputs will use this name to
    uniquely identify this AudioDescription. Description names should be unique within this Live
    Event.

    - **RemixSettings** *(dict) --* Settings that control how input audio channels are remixed into
    the output audio channels.

      - **ChannelMappings** *(list) --* Mapping of input channels to output channels, with
      appropriate gain adjustments.

        - *(dict) --* Audio Channel Mapping

          - **InputChannelLevels** *(list) --* Indices and gain values for each input channel that
          should be remixed into this output channel.

            - *(dict) --* Input Channel Level

              - **Gain** *(integer) --* Remixing value. Units are in dB and acceptable values are
              within the range from -60 (mute) and 6 dB.

              - **InputChannel** *(integer) --* The index of the input channel used as a source.

          - **OutputChannel** *(integer) --* The index of the output channel being produced.

      - **ChannelsIn** *(integer) --* Number of input channels to be used.

      - **ChannelsOut** *(integer) --* Number of output channels to be produced. Valid values: 1, 2,
      4, 6, 8

    - **StreamName** *(string) --* Used for MS Smooth and Apple HLS outputs. Indicates the name
    displayed by the player (eg. English, or Director Commentary).
    """


_ClientStartChannelResponseEncoderSettingsAvailBlankingAvailBlankingImageTypeDef = TypedDict(
    "_ClientStartChannelResponseEncoderSettingsAvailBlankingAvailBlankingImageTypeDef",
    {"PasswordParam": str, "Uri": str, "Username": str},
    total=False,
)


class ClientStartChannelResponseEncoderSettingsAvailBlankingAvailBlankingImageTypeDef(
    _ClientStartChannelResponseEncoderSettingsAvailBlankingAvailBlankingImageTypeDef
):
    """
    Type definition for `ClientStartChannelResponseEncoderSettingsAvailBlanking`
    `AvailBlankingImage`

    - **PasswordParam** *(string) --* key used to extract the password from EC2 Parameter store

    - **Uri** *(string) --* Uniform Resource Identifier - This should be a path to a file accessible
    to the Live system (eg. a http:// URI) depending on the output type. For example, a RTMP
    destination should have a uri simliar to: "rtmp://fmsserver/live".

    - **Username** *(string) --* Documentation update needed
    """


_ClientStartChannelResponseEncoderSettingsAvailBlankingTypeDef = TypedDict(
    "_ClientStartChannelResponseEncoderSettingsAvailBlankingTypeDef",
    {
        "AvailBlankingImage": ClientStartChannelResponseEncoderSettingsAvailBlankingAvailBlankingImageTypeDef,
        "State": str,
    },
    total=False,
)


class ClientStartChannelResponseEncoderSettingsAvailBlankingTypeDef(
    _ClientStartChannelResponseEncoderSettingsAvailBlankingTypeDef
):
    """
    Type definition for `ClientStartChannelResponseEncoderSettings` `AvailBlanking`

    - **AvailBlankingImage** *(dict) --* Blanking image to be used. Leave empty for solid black.
    Only bmp and png images are supported.

      - **PasswordParam** *(string) --* key used to extract the password from EC2 Parameter store

      - **Uri** *(string) --* Uniform Resource Identifier - This should be a path to a file
      accessible to the Live system (eg. a http:// URI) depending on the output type. For example, a
      RTMP destination should have a uri simliar to: "rtmp://fmsserver/live".

      - **Username** *(string) --* Documentation update needed

    - **State** *(string) --* When set to enabled, causes video, audio and captions to be blanked
    when insertion metadata is added.
    """


_ClientStartChannelResponseEncoderSettingsAvailConfigurationAvailSettingsScte35SpliceInsertTypeDef = TypedDict(
    "_ClientStartChannelResponseEncoderSettingsAvailConfigurationAvailSettingsScte35SpliceInsertTypeDef",
    {"AdAvailOffset": int, "NoRegionalBlackoutFlag": str, "WebDeliveryAllowedFlag": str},
    total=False,
)


class ClientStartChannelResponseEncoderSettingsAvailConfigurationAvailSettingsScte35SpliceInsertTypeDef(
    _ClientStartChannelResponseEncoderSettingsAvailConfigurationAvailSettingsScte35SpliceInsertTypeDef
):
    """
    Type definition for `ClientStartChannelResponseEncoderSettingsAvailConfigurationAvailSettings`
    `Scte35SpliceInsert`

    - **AdAvailOffset** *(integer) --* When specified, this offset (in milliseconds) is added to the
    input Ad Avail PTS time. This only applies to embedded SCTE 104/35 messages and does not apply
    to OOB messages.

    - **NoRegionalBlackoutFlag** *(string) --* When set to ignore, Segment Descriptors with
    noRegionalBlackoutFlag set to 0 will no longer trigger blackouts or Ad Avail slates

    - **WebDeliveryAllowedFlag** *(string) --* When set to ignore, Segment Descriptors with
    webDeliveryAllowedFlag set to 0 will no longer trigger blackouts or Ad Avail slates
    """


_ClientStartChannelResponseEncoderSettingsAvailConfigurationAvailSettingsScte35TimeSignalAposTypeDef = TypedDict(
    "_ClientStartChannelResponseEncoderSettingsAvailConfigurationAvailSettingsScte35TimeSignalAposTypeDef",
    {"AdAvailOffset": int, "NoRegionalBlackoutFlag": str, "WebDeliveryAllowedFlag": str},
    total=False,
)


class ClientStartChannelResponseEncoderSettingsAvailConfigurationAvailSettingsScte35TimeSignalAposTypeDef(
    _ClientStartChannelResponseEncoderSettingsAvailConfigurationAvailSettingsScte35TimeSignalAposTypeDef
):
    """
    Type definition for `ClientStartChannelResponseEncoderSettingsAvailConfigurationAvailSettings`
    `Scte35TimeSignalApos`

    - **AdAvailOffset** *(integer) --* When specified, this offset (in milliseconds) is added to the
    input Ad Avail PTS time. This only applies to embedded SCTE 104/35 messages and does not apply
    to OOB messages.

    - **NoRegionalBlackoutFlag** *(string) --* When set to ignore, Segment Descriptors with
    noRegionalBlackoutFlag set to 0 will no longer trigger blackouts or Ad Avail slates

    - **WebDeliveryAllowedFlag** *(string) --* When set to ignore, Segment Descriptors with
    webDeliveryAllowedFlag set to 0 will no longer trigger blackouts or Ad Avail slates
    """


_ClientStartChannelResponseEncoderSettingsAvailConfigurationAvailSettingsTypeDef = TypedDict(
    "_ClientStartChannelResponseEncoderSettingsAvailConfigurationAvailSettingsTypeDef",
    {
        "Scte35SpliceInsert": ClientStartChannelResponseEncoderSettingsAvailConfigurationAvailSettingsScte35SpliceInsertTypeDef,
        "Scte35TimeSignalApos": ClientStartChannelResponseEncoderSettingsAvailConfigurationAvailSettingsScte35TimeSignalAposTypeDef,
    },
    total=False,
)


class ClientStartChannelResponseEncoderSettingsAvailConfigurationAvailSettingsTypeDef(
    _ClientStartChannelResponseEncoderSettingsAvailConfigurationAvailSettingsTypeDef
):
    """
    Type definition for `ClientStartChannelResponseEncoderSettingsAvailConfiguration`
    `AvailSettings`

    - **Scte35SpliceInsert** *(dict) --* Scte35 Splice Insert

      - **AdAvailOffset** *(integer) --* When specified, this offset (in milliseconds) is added to
      the input Ad Avail PTS time. This only applies to embedded SCTE 104/35 messages and does not
      apply to OOB messages.

      - **NoRegionalBlackoutFlag** *(string) --* When set to ignore, Segment Descriptors with
      noRegionalBlackoutFlag set to 0 will no longer trigger blackouts or Ad Avail slates

      - **WebDeliveryAllowedFlag** *(string) --* When set to ignore, Segment Descriptors with
      webDeliveryAllowedFlag set to 0 will no longer trigger blackouts or Ad Avail slates

    - **Scte35TimeSignalApos** *(dict) --* Scte35 Time Signal Apos

      - **AdAvailOffset** *(integer) --* When specified, this offset (in milliseconds) is added to
      the input Ad Avail PTS time. This only applies to embedded SCTE 104/35 messages and does not
      apply to OOB messages.

      - **NoRegionalBlackoutFlag** *(string) --* When set to ignore, Segment Descriptors with
      noRegionalBlackoutFlag set to 0 will no longer trigger blackouts or Ad Avail slates

      - **WebDeliveryAllowedFlag** *(string) --* When set to ignore, Segment Descriptors with
      webDeliveryAllowedFlag set to 0 will no longer trigger blackouts or Ad Avail slates
    """


_ClientStartChannelResponseEncoderSettingsAvailConfigurationTypeDef = TypedDict(
    "_ClientStartChannelResponseEncoderSettingsAvailConfigurationTypeDef",
    {
        "AvailSettings": ClientStartChannelResponseEncoderSettingsAvailConfigurationAvailSettingsTypeDef
    },
    total=False,
)


class ClientStartChannelResponseEncoderSettingsAvailConfigurationTypeDef(
    _ClientStartChannelResponseEncoderSettingsAvailConfigurationTypeDef
):
    """
    Type definition for `ClientStartChannelResponseEncoderSettings` `AvailConfiguration`

    - **AvailSettings** *(dict) --* Ad avail settings.

      - **Scte35SpliceInsert** *(dict) --* Scte35 Splice Insert

        - **AdAvailOffset** *(integer) --* When specified, this offset (in milliseconds) is added to
        the input Ad Avail PTS time. This only applies to embedded SCTE 104/35 messages and does not
        apply to OOB messages.

        - **NoRegionalBlackoutFlag** *(string) --* When set to ignore, Segment Descriptors with
        noRegionalBlackoutFlag set to 0 will no longer trigger blackouts or Ad Avail slates

        - **WebDeliveryAllowedFlag** *(string) --* When set to ignore, Segment Descriptors with
        webDeliveryAllowedFlag set to 0 will no longer trigger blackouts or Ad Avail slates

      - **Scte35TimeSignalApos** *(dict) --* Scte35 Time Signal Apos

        - **AdAvailOffset** *(integer) --* When specified, this offset (in milliseconds) is added to
        the input Ad Avail PTS time. This only applies to embedded SCTE 104/35 messages and does not
        apply to OOB messages.

        - **NoRegionalBlackoutFlag** *(string) --* When set to ignore, Segment Descriptors with
        noRegionalBlackoutFlag set to 0 will no longer trigger blackouts or Ad Avail slates

        - **WebDeliveryAllowedFlag** *(string) --* When set to ignore, Segment Descriptors with
        webDeliveryAllowedFlag set to 0 will no longer trigger blackouts or Ad Avail slates
    """


_ClientStartChannelResponseEncoderSettingsBlackoutSlateBlackoutSlateImageTypeDef = TypedDict(
    "_ClientStartChannelResponseEncoderSettingsBlackoutSlateBlackoutSlateImageTypeDef",
    {"PasswordParam": str, "Uri": str, "Username": str},
    total=False,
)


class ClientStartChannelResponseEncoderSettingsBlackoutSlateBlackoutSlateImageTypeDef(
    _ClientStartChannelResponseEncoderSettingsBlackoutSlateBlackoutSlateImageTypeDef
):
    """
    Type definition for `ClientStartChannelResponseEncoderSettingsBlackoutSlate`
    `BlackoutSlateImage`

    - **PasswordParam** *(string) --* key used to extract the password from EC2 Parameter store

    - **Uri** *(string) --* Uniform Resource Identifier - This should be a path to a file accessible
    to the Live system (eg. a http:// URI) depending on the output type. For example, a RTMP
    destination should have a uri simliar to: "rtmp://fmsserver/live".

    - **Username** *(string) --* Documentation update needed
    """


_ClientStartChannelResponseEncoderSettingsBlackoutSlateNetworkEndBlackoutImageTypeDef = TypedDict(
    "_ClientStartChannelResponseEncoderSettingsBlackoutSlateNetworkEndBlackoutImageTypeDef",
    {"PasswordParam": str, "Uri": str, "Username": str},
    total=False,
)


class ClientStartChannelResponseEncoderSettingsBlackoutSlateNetworkEndBlackoutImageTypeDef(
    _ClientStartChannelResponseEncoderSettingsBlackoutSlateNetworkEndBlackoutImageTypeDef
):
    """
    Type definition for `ClientStartChannelResponseEncoderSettingsBlackoutSlate`
    `NetworkEndBlackoutImage`

    - **PasswordParam** *(string) --* key used to extract the password from EC2 Parameter store

    - **Uri** *(string) --* Uniform Resource Identifier - This should be a path to a file accessible
    to the Live system (eg. a http:// URI) depending on the output type. For example, a RTMP
    destination should have a uri simliar to: "rtmp://fmsserver/live".

    - **Username** *(string) --* Documentation update needed
    """


_ClientStartChannelResponseEncoderSettingsBlackoutSlateTypeDef = TypedDict(
    "_ClientStartChannelResponseEncoderSettingsBlackoutSlateTypeDef",
    {
        "BlackoutSlateImage": ClientStartChannelResponseEncoderSettingsBlackoutSlateBlackoutSlateImageTypeDef,
        "NetworkEndBlackout": str,
        "NetworkEndBlackoutImage": ClientStartChannelResponseEncoderSettingsBlackoutSlateNetworkEndBlackoutImageTypeDef,
        "NetworkId": str,
        "State": str,
    },
    total=False,
)


class ClientStartChannelResponseEncoderSettingsBlackoutSlateTypeDef(
    _ClientStartChannelResponseEncoderSettingsBlackoutSlateTypeDef
):
    """
    Type definition for `ClientStartChannelResponseEncoderSettings` `BlackoutSlate`

    - **BlackoutSlateImage** *(dict) --* Blackout slate image to be used. Leave empty for solid
    black. Only bmp and png images are supported.

      - **PasswordParam** *(string) --* key used to extract the password from EC2 Parameter store

      - **Uri** *(string) --* Uniform Resource Identifier - This should be a path to a file
      accessible to the Live system (eg. a http:// URI) depending on the output type. For example, a
      RTMP destination should have a uri simliar to: "rtmp://fmsserver/live".

      - **Username** *(string) --* Documentation update needed

    - **NetworkEndBlackout** *(string) --* Setting to enabled causes the encoder to blackout the
    video, audio, and captions, and raise the "Network Blackout Image" slate when an SCTE104/35
    Network End Segmentation Descriptor is encountered. The blackout will be lifted when the Network
    Start Segmentation Descriptor is encountered. The Network End and Network Start descriptors must
    contain a network ID that matches the value entered in "Network ID".

    - **NetworkEndBlackoutImage** *(dict) --* Path to local file to use as Network End Blackout
    image. Image will be scaled to fill the entire output raster.

      - **PasswordParam** *(string) --* key used to extract the password from EC2 Parameter store

      - **Uri** *(string) --* Uniform Resource Identifier - This should be a path to a file
      accessible to the Live system (eg. a http:// URI) depending on the output type. For example, a
      RTMP destination should have a uri simliar to: "rtmp://fmsserver/live".

      - **Username** *(string) --* Documentation update needed

    - **NetworkId** *(string) --* Provides Network ID that matches EIDR ID format (e.g.,
    "10.XXXX/XXXX-XXXX-XXXX-XXXX-XXXX-C").

    - **State** *(string) --* When set to enabled, causes video, audio and captions to be blanked
    when indicated by program metadata.
    """


_ClientStartChannelResponseEncoderSettingsCaptionDescriptionsDestinationSettingsBurnInDestinationSettingsFontTypeDef = TypedDict(
    "_ClientStartChannelResponseEncoderSettingsCaptionDescriptionsDestinationSettingsBurnInDestinationSettingsFontTypeDef",
    {"PasswordParam": str, "Uri": str, "Username": str},
    total=False,
)


class ClientStartChannelResponseEncoderSettingsCaptionDescriptionsDestinationSettingsBurnInDestinationSettingsFontTypeDef(
    _ClientStartChannelResponseEncoderSettingsCaptionDescriptionsDestinationSettingsBurnInDestinationSettingsFontTypeDef
):
    """
    Type definition for
    `ClientStartChannelResponseEncoderSettingsCaptionDescriptionsDestinationSettingsBurnInDestinationSettings`
    `Font`

    - **PasswordParam** *(string) --* key used to extract the password from EC2 Parameter store

    - **Uri** *(string) --* Uniform Resource Identifier - This should be a path to a file accessible
    to the Live system (eg. a http:// URI) depending on the output type. For example, a RTMP
    destination should have a uri simliar to: "rtmp://fmsserver/live".

    - **Username** *(string) --* Documentation update needed
    """


_ClientStartChannelResponseEncoderSettingsCaptionDescriptionsDestinationSettingsBurnInDestinationSettingsTypeDef = TypedDict(
    "_ClientStartChannelResponseEncoderSettingsCaptionDescriptionsDestinationSettingsBurnInDestinationSettingsTypeDef",
    {
        "Alignment": str,
        "BackgroundColor": str,
        "BackgroundOpacity": int,
        "Font": ClientStartChannelResponseEncoderSettingsCaptionDescriptionsDestinationSettingsBurnInDestinationSettingsFontTypeDef,
        "FontColor": str,
        "FontOpacity": int,
        "FontResolution": int,
        "FontSize": str,
        "OutlineColor": str,
        "OutlineSize": int,
        "ShadowColor": str,
        "ShadowOpacity": int,
        "ShadowXOffset": int,
        "ShadowYOffset": int,
        "TeletextGridControl": str,
        "XPosition": int,
        "YPosition": int,
    },
    total=False,
)


class ClientStartChannelResponseEncoderSettingsCaptionDescriptionsDestinationSettingsBurnInDestinationSettingsTypeDef(
    _ClientStartChannelResponseEncoderSettingsCaptionDescriptionsDestinationSettingsBurnInDestinationSettingsTypeDef
):
    """
    Type definition for
    `ClientStartChannelResponseEncoderSettingsCaptionDescriptionsDestinationSettings`
    `BurnInDestinationSettings`

    - **Alignment** *(string) --* If no explicit xPosition or yPosition is provided, setting
    alignment to centered will place the captions at the bottom center of the output. Similarly,
    setting a left alignment will align captions to the bottom left of the output. If x and y
    positions are given in conjunction with the alignment parameter, the font will be justified
    (either left or centered) relative to those coordinates. Selecting "smart" justification will
    left-justify live subtitles and center-justify pre-recorded subtitles. All burn-in and DVB-Sub
    font settings must match.

    - **BackgroundColor** *(string) --* Specifies the color of the rectangle behind the captions.
    All burn-in and DVB-Sub font settings must match.

    - **BackgroundOpacity** *(integer) --* Specifies the opacity of the background rectangle. 255 is
    opaque; 0 is transparent. Leaving this parameter out is equivalent to setting it to 0
    (transparent). All burn-in and DVB-Sub font settings must match.

    - **Font** *(dict) --* External font file used for caption burn-in. File extension must be 'ttf'
    or 'tte'. Although the user can select output fonts for many different types of input captions,
    embedded, STL and teletext sources use a strict grid system. Using external fonts with these
    caption sources could cause unexpected display of proportional fonts. All burn-in and DVB-Sub
    font settings must match.

      - **PasswordParam** *(string) --* key used to extract the password from EC2 Parameter store

      - **Uri** *(string) --* Uniform Resource Identifier - This should be a path to a file
      accessible to the Live system (eg. a http:// URI) depending on the output type. For example, a
      RTMP destination should have a uri simliar to: "rtmp://fmsserver/live".

      - **Username** *(string) --* Documentation update needed

    - **FontColor** *(string) --* Specifies the color of the burned-in captions. This option is not
    valid for source captions that are STL, 608/embedded or teletext. These source settings are
    already pre-defined by the caption stream. All burn-in and DVB-Sub font settings must match.

    - **FontOpacity** *(integer) --* Specifies the opacity of the burned-in captions. 255 is opaque;
    0 is transparent. All burn-in and DVB-Sub font settings must match.

    - **FontResolution** *(integer) --* Font resolution in DPI (dots per inch); default is 96 dpi.
    All burn-in and DVB-Sub font settings must match.

    - **FontSize** *(string) --* When set to 'auto' fontSize will scale depending on the size of the
    output. Giving a positive integer will specify the exact font size in points. All burn-in and
    DVB-Sub font settings must match.

    - **OutlineColor** *(string) --* Specifies font outline color. This option is not valid for
    source captions that are either 608/embedded or teletext. These source settings are already
    pre-defined by the caption stream. All burn-in and DVB-Sub font settings must match.

    - **OutlineSize** *(integer) --* Specifies font outline size in pixels. This option is not valid
    for source captions that are either 608/embedded or teletext. These source settings are already
    pre-defined by the caption stream. All burn-in and DVB-Sub font settings must match.

    - **ShadowColor** *(string) --* Specifies the color of the shadow cast by the captions. All
    burn-in and DVB-Sub font settings must match.

    - **ShadowOpacity** *(integer) --* Specifies the opacity of the shadow. 255 is opaque; 0 is
    transparent. Leaving this parameter out is equivalent to setting it to 0 (transparent). All
    burn-in and DVB-Sub font settings must match.

    - **ShadowXOffset** *(integer) --* Specifies the horizontal offset of the shadow relative to the
    captions in pixels. A value of -2 would result in a shadow offset 2 pixels to the left. All
    burn-in and DVB-Sub font settings must match.

    - **ShadowYOffset** *(integer) --* Specifies the vertical offset of the shadow relative to the
    captions in pixels. A value of -2 would result in a shadow offset 2 pixels above the text. All
    burn-in and DVB-Sub font settings must match.

    - **TeletextGridControl** *(string) --* Controls whether a fixed grid size will be used to
    generate the output subtitles bitmap. Only applicable for Teletext inputs and DVB-Sub/Burn-in
    outputs.

    - **XPosition** *(integer) --* Specifies the horizontal position of the caption relative to the
    left side of the output in pixels. A value of 10 would result in the captions starting 10 pixels
    from the left of the output. If no explicit xPosition is provided, the horizontal caption
    position will be determined by the alignment parameter. All burn-in and DVB-Sub font settings
    must match.

    - **YPosition** *(integer) --* Specifies the vertical position of the caption relative to the
    top of the output in pixels. A value of 10 would result in the captions starting 10 pixels from
    the top of the output. If no explicit yPosition is provided, the caption will be positioned
    towards the bottom of the output. All burn-in and DVB-Sub font settings must match.
    """


_ClientStartChannelResponseEncoderSettingsCaptionDescriptionsDestinationSettingsDvbSubDestinationSettingsFontTypeDef = TypedDict(
    "_ClientStartChannelResponseEncoderSettingsCaptionDescriptionsDestinationSettingsDvbSubDestinationSettingsFontTypeDef",
    {"PasswordParam": str, "Uri": str, "Username": str},
    total=False,
)


class ClientStartChannelResponseEncoderSettingsCaptionDescriptionsDestinationSettingsDvbSubDestinationSettingsFontTypeDef(
    _ClientStartChannelResponseEncoderSettingsCaptionDescriptionsDestinationSettingsDvbSubDestinationSettingsFontTypeDef
):
    """
    Type definition for
    `ClientStartChannelResponseEncoderSettingsCaptionDescriptionsDestinationSettingsDvbSubDestinationSettings`
    `Font`

    - **PasswordParam** *(string) --* key used to extract the password from EC2 Parameter store

    - **Uri** *(string) --* Uniform Resource Identifier - This should be a path to a file accessible
    to the Live system (eg. a http:// URI) depending on the output type. For example, a RTMP
    destination should have a uri simliar to: "rtmp://fmsserver/live".

    - **Username** *(string) --* Documentation update needed
    """


_ClientStartChannelResponseEncoderSettingsCaptionDescriptionsDestinationSettingsDvbSubDestinationSettingsTypeDef = TypedDict(
    "_ClientStartChannelResponseEncoderSettingsCaptionDescriptionsDestinationSettingsDvbSubDestinationSettingsTypeDef",
    {
        "Alignment": str,
        "BackgroundColor": str,
        "BackgroundOpacity": int,
        "Font": ClientStartChannelResponseEncoderSettingsCaptionDescriptionsDestinationSettingsDvbSubDestinationSettingsFontTypeDef,
        "FontColor": str,
        "FontOpacity": int,
        "FontResolution": int,
        "FontSize": str,
        "OutlineColor": str,
        "OutlineSize": int,
        "ShadowColor": str,
        "ShadowOpacity": int,
        "ShadowXOffset": int,
        "ShadowYOffset": int,
        "TeletextGridControl": str,
        "XPosition": int,
        "YPosition": int,
    },
    total=False,
)


class ClientStartChannelResponseEncoderSettingsCaptionDescriptionsDestinationSettingsDvbSubDestinationSettingsTypeDef(
    _ClientStartChannelResponseEncoderSettingsCaptionDescriptionsDestinationSettingsDvbSubDestinationSettingsTypeDef
):
    """
    Type definition for
    `ClientStartChannelResponseEncoderSettingsCaptionDescriptionsDestinationSettings`
    `DvbSubDestinationSettings`

    - **Alignment** *(string) --* If no explicit xPosition or yPosition is provided, setting
    alignment to centered will place the captions at the bottom center of the output. Similarly,
    setting a left alignment will align captions to the bottom left of the output. If x and y
    positions are given in conjunction with the alignment parameter, the font will be justified
    (either left or centered) relative to those coordinates. Selecting "smart" justification will
    left-justify live subtitles and center-justify pre-recorded subtitles. This option is not valid
    for source captions that are STL or 608/embedded. These source settings are already pre-defined
    by the caption stream. All burn-in and DVB-Sub font settings must match.

    - **BackgroundColor** *(string) --* Specifies the color of the rectangle behind the captions.
    All burn-in and DVB-Sub font settings must match.

    - **BackgroundOpacity** *(integer) --* Specifies the opacity of the background rectangle. 255 is
    opaque; 0 is transparent. Leaving this parameter blank is equivalent to setting it to 0
    (transparent). All burn-in and DVB-Sub font settings must match.

    - **Font** *(dict) --* External font file used for caption burn-in. File extension must be 'ttf'
    or 'tte'. Although the user can select output fonts for many different types of input captions,
    embedded, STL and teletext sources use a strict grid system. Using external fonts with these
    caption sources could cause unexpected display of proportional fonts. All burn-in and DVB-Sub
    font settings must match.

      - **PasswordParam** *(string) --* key used to extract the password from EC2 Parameter store

      - **Uri** *(string) --* Uniform Resource Identifier - This should be a path to a file
      accessible to the Live system (eg. a http:// URI) depending on the output type. For example, a
      RTMP destination should have a uri simliar to: "rtmp://fmsserver/live".

      - **Username** *(string) --* Documentation update needed

    - **FontColor** *(string) --* Specifies the color of the burned-in captions. This option is not
    valid for source captions that are STL, 608/embedded or teletext. These source settings are
    already pre-defined by the caption stream. All burn-in and DVB-Sub font settings must match.

    - **FontOpacity** *(integer) --* Specifies the opacity of the burned-in captions. 255 is opaque;
    0 is transparent. All burn-in and DVB-Sub font settings must match.

    - **FontResolution** *(integer) --* Font resolution in DPI (dots per inch); default is 96 dpi.
    All burn-in and DVB-Sub font settings must match.

    - **FontSize** *(string) --* When set to auto fontSize will scale depending on the size of the
    output. Giving a positive integer will specify the exact font size in points. All burn-in and
    DVB-Sub font settings must match.

    - **OutlineColor** *(string) --* Specifies font outline color. This option is not valid for
    source captions that are either 608/embedded or teletext. These source settings are already
    pre-defined by the caption stream. All burn-in and DVB-Sub font settings must match.

    - **OutlineSize** *(integer) --* Specifies font outline size in pixels. This option is not valid
    for source captions that are either 608/embedded or teletext. These source settings are already
    pre-defined by the caption stream. All burn-in and DVB-Sub font settings must match.

    - **ShadowColor** *(string) --* Specifies the color of the shadow cast by the captions. All
    burn-in and DVB-Sub font settings must match.

    - **ShadowOpacity** *(integer) --* Specifies the opacity of the shadow. 255 is opaque; 0 is
    transparent. Leaving this parameter blank is equivalent to setting it to 0 (transparent). All
    burn-in and DVB-Sub font settings must match.

    - **ShadowXOffset** *(integer) --* Specifies the horizontal offset of the shadow relative to the
    captions in pixels. A value of -2 would result in a shadow offset 2 pixels to the left. All
    burn-in and DVB-Sub font settings must match.

    - **ShadowYOffset** *(integer) --* Specifies the vertical offset of the shadow relative to the
    captions in pixels. A value of -2 would result in a shadow offset 2 pixels above the text. All
    burn-in and DVB-Sub font settings must match.

    - **TeletextGridControl** *(string) --* Controls whether a fixed grid size will be used to
    generate the output subtitles bitmap. Only applicable for Teletext inputs and DVB-Sub/Burn-in
    outputs.

    - **XPosition** *(integer) --* Specifies the horizontal position of the caption relative to the
    left side of the output in pixels. A value of 10 would result in the captions starting 10 pixels
    from the left of the output. If no explicit xPosition is provided, the horizontal caption
    position will be determined by the alignment parameter. This option is not valid for source
    captions that are STL, 608/embedded or teletext. These source settings are already pre-defined
    by the caption stream. All burn-in and DVB-Sub font settings must match.

    - **YPosition** *(integer) --* Specifies the vertical position of the caption relative to the
    top of the output in pixels. A value of 10 would result in the captions starting 10 pixels from
    the top of the output. If no explicit yPosition is provided, the caption will be positioned
    towards the bottom of the output. This option is not valid for source captions that are STL,
    608/embedded or teletext. These source settings are already pre-defined by the caption stream.
    All burn-in and DVB-Sub font settings must match.
    """


_ClientStartChannelResponseEncoderSettingsCaptionDescriptionsDestinationSettingsTtmlDestinationSettingsTypeDef = TypedDict(
    "_ClientStartChannelResponseEncoderSettingsCaptionDescriptionsDestinationSettingsTtmlDestinationSettingsTypeDef",
    {"StyleControl": str},
    total=False,
)


class ClientStartChannelResponseEncoderSettingsCaptionDescriptionsDestinationSettingsTtmlDestinationSettingsTypeDef(
    _ClientStartChannelResponseEncoderSettingsCaptionDescriptionsDestinationSettingsTtmlDestinationSettingsTypeDef
):
    """
    Type definition for
    `ClientStartChannelResponseEncoderSettingsCaptionDescriptionsDestinationSettings`
    `TtmlDestinationSettings`

    - **StyleControl** *(string) --* When set to passthrough, passes through style and position
    information from a TTML-like input source (TTML, SMPTE-TT, CFF-TT) to the CFF-TT output or TTML
    output.
    """


_ClientStartChannelResponseEncoderSettingsCaptionDescriptionsDestinationSettingsTypeDef = TypedDict(
    "_ClientStartChannelResponseEncoderSettingsCaptionDescriptionsDestinationSettingsTypeDef",
    {
        "AribDestinationSettings": Dict,
        "BurnInDestinationSettings": ClientStartChannelResponseEncoderSettingsCaptionDescriptionsDestinationSettingsBurnInDestinationSettingsTypeDef,
        "DvbSubDestinationSettings": ClientStartChannelResponseEncoderSettingsCaptionDescriptionsDestinationSettingsDvbSubDestinationSettingsTypeDef,
        "EmbeddedDestinationSettings": Dict,
        "EmbeddedPlusScte20DestinationSettings": Dict,
        "RtmpCaptionInfoDestinationSettings": Dict,
        "Scte20PlusEmbeddedDestinationSettings": Dict,
        "Scte27DestinationSettings": Dict,
        "SmpteTtDestinationSettings": Dict,
        "TeletextDestinationSettings": Dict,
        "TtmlDestinationSettings": ClientStartChannelResponseEncoderSettingsCaptionDescriptionsDestinationSettingsTtmlDestinationSettingsTypeDef,
        "WebvttDestinationSettings": Dict[str, Any],
    },
    total=False,
)


class ClientStartChannelResponseEncoderSettingsCaptionDescriptionsDestinationSettingsTypeDef(
    _ClientStartChannelResponseEncoderSettingsCaptionDescriptionsDestinationSettingsTypeDef
):
    """
    Type definition for `ClientStartChannelResponseEncoderSettingsCaptionDescriptions`
    `DestinationSettings`

    - **AribDestinationSettings** *(dict) --* Arib Destination Settings

    - **BurnInDestinationSettings** *(dict) --* Burn In Destination Settings

      - **Alignment** *(string) --* If no explicit xPosition or yPosition is provided, setting
      alignment to centered will place the captions at the bottom center of the output. Similarly,
      setting a left alignment will align captions to the bottom left of the output. If x and y
      positions are given in conjunction with the alignment parameter, the font will be justified
      (either left or centered) relative to those coordinates. Selecting "smart" justification will
      left-justify live subtitles and center-justify pre-recorded subtitles. All burn-in and DVB-Sub
      font settings must match.

      - **BackgroundColor** *(string) --* Specifies the color of the rectangle behind the captions.
      All burn-in and DVB-Sub font settings must match.

      - **BackgroundOpacity** *(integer) --* Specifies the opacity of the background rectangle. 255
      is opaque; 0 is transparent. Leaving this parameter out is equivalent to setting it to 0
      (transparent). All burn-in and DVB-Sub font settings must match.

      - **Font** *(dict) --* External font file used for caption burn-in. File extension must be
      'ttf' or 'tte'. Although the user can select output fonts for many different types of input
      captions, embedded, STL and teletext sources use a strict grid system. Using external fonts
      with these caption sources could cause unexpected display of proportional fonts. All burn-in
      and DVB-Sub font settings must match.

        - **PasswordParam** *(string) --* key used to extract the password from EC2 Parameter store

        - **Uri** *(string) --* Uniform Resource Identifier - This should be a path to a file
        accessible to the Live system (eg. a http:// URI) depending on the output type. For example,
        a RTMP destination should have a uri simliar to: "rtmp://fmsserver/live".

        - **Username** *(string) --* Documentation update needed

      - **FontColor** *(string) --* Specifies the color of the burned-in captions. This option is
      not valid for source captions that are STL, 608/embedded or teletext. These source settings
      are already pre-defined by the caption stream. All burn-in and DVB-Sub font settings must
      match.

      - **FontOpacity** *(integer) --* Specifies the opacity of the burned-in captions. 255 is
      opaque; 0 is transparent. All burn-in and DVB-Sub font settings must match.

      - **FontResolution** *(integer) --* Font resolution in DPI (dots per inch); default is 96 dpi.
      All burn-in and DVB-Sub font settings must match.

      - **FontSize** *(string) --* When set to 'auto' fontSize will scale depending on the size of
      the output. Giving a positive integer will specify the exact font size in points. All burn-in
      and DVB-Sub font settings must match.

      - **OutlineColor** *(string) --* Specifies font outline color. This option is not valid for
      source captions that are either 608/embedded or teletext. These source settings are already
      pre-defined by the caption stream. All burn-in and DVB-Sub font settings must match.

      - **OutlineSize** *(integer) --* Specifies font outline size in pixels. This option is not
      valid for source captions that are either 608/embedded or teletext. These source settings are
      already pre-defined by the caption stream. All burn-in and DVB-Sub font settings must match.

      - **ShadowColor** *(string) --* Specifies the color of the shadow cast by the captions. All
      burn-in and DVB-Sub font settings must match.

      - **ShadowOpacity** *(integer) --* Specifies the opacity of the shadow. 255 is opaque; 0 is
      transparent. Leaving this parameter out is equivalent to setting it to 0 (transparent). All
      burn-in and DVB-Sub font settings must match.

      - **ShadowXOffset** *(integer) --* Specifies the horizontal offset of the shadow relative to
      the captions in pixels. A value of -2 would result in a shadow offset 2 pixels to the left.
      All burn-in and DVB-Sub font settings must match.

      - **ShadowYOffset** *(integer) --* Specifies the vertical offset of the shadow relative to the
      captions in pixels. A value of -2 would result in a shadow offset 2 pixels above the text. All
      burn-in and DVB-Sub font settings must match.

      - **TeletextGridControl** *(string) --* Controls whether a fixed grid size will be used to
      generate the output subtitles bitmap. Only applicable for Teletext inputs and DVB-Sub/Burn-in
      outputs.

      - **XPosition** *(integer) --* Specifies the horizontal position of the caption relative to
      the left side of the output in pixels. A value of 10 would result in the captions starting 10
      pixels from the left of the output. If no explicit xPosition is provided, the horizontal
      caption position will be determined by the alignment parameter. All burn-in and DVB-Sub font
      settings must match.

      - **YPosition** *(integer) --* Specifies the vertical position of the caption relative to the
      top of the output in pixels. A value of 10 would result in the captions starting 10 pixels
      from the top of the output. If no explicit yPosition is provided, the caption will be
      positioned towards the bottom of the output. All burn-in and DVB-Sub font settings must match.

    - **DvbSubDestinationSettings** *(dict) --* Dvb Sub Destination Settings

      - **Alignment** *(string) --* If no explicit xPosition or yPosition is provided, setting
      alignment to centered will place the captions at the bottom center of the output. Similarly,
      setting a left alignment will align captions to the bottom left of the output. If x and y
      positions are given in conjunction with the alignment parameter, the font will be justified
      (either left or centered) relative to those coordinates. Selecting "smart" justification will
      left-justify live subtitles and center-justify pre-recorded subtitles. This option is not
      valid for source captions that are STL or 608/embedded. These source settings are already
      pre-defined by the caption stream. All burn-in and DVB-Sub font settings must match.

      - **BackgroundColor** *(string) --* Specifies the color of the rectangle behind the captions.
      All burn-in and DVB-Sub font settings must match.

      - **BackgroundOpacity** *(integer) --* Specifies the opacity of the background rectangle. 255
      is opaque; 0 is transparent. Leaving this parameter blank is equivalent to setting it to 0
      (transparent). All burn-in and DVB-Sub font settings must match.

      - **Font** *(dict) --* External font file used for caption burn-in. File extension must be
      'ttf' or 'tte'. Although the user can select output fonts for many different types of input
      captions, embedded, STL and teletext sources use a strict grid system. Using external fonts
      with these caption sources could cause unexpected display of proportional fonts. All burn-in
      and DVB-Sub font settings must match.

        - **PasswordParam** *(string) --* key used to extract the password from EC2 Parameter store

        - **Uri** *(string) --* Uniform Resource Identifier - This should be a path to a file
        accessible to the Live system (eg. a http:// URI) depending on the output type. For example,
        a RTMP destination should have a uri simliar to: "rtmp://fmsserver/live".

        - **Username** *(string) --* Documentation update needed

      - **FontColor** *(string) --* Specifies the color of the burned-in captions. This option is
      not valid for source captions that are STL, 608/embedded or teletext. These source settings
      are already pre-defined by the caption stream. All burn-in and DVB-Sub font settings must
      match.

      - **FontOpacity** *(integer) --* Specifies the opacity of the burned-in captions. 255 is
      opaque; 0 is transparent. All burn-in and DVB-Sub font settings must match.

      - **FontResolution** *(integer) --* Font resolution in DPI (dots per inch); default is 96 dpi.
      All burn-in and DVB-Sub font settings must match.

      - **FontSize** *(string) --* When set to auto fontSize will scale depending on the size of the
      output. Giving a positive integer will specify the exact font size in points. All burn-in and
      DVB-Sub font settings must match.

      - **OutlineColor** *(string) --* Specifies font outline color. This option is not valid for
      source captions that are either 608/embedded or teletext. These source settings are already
      pre-defined by the caption stream. All burn-in and DVB-Sub font settings must match.

      - **OutlineSize** *(integer) --* Specifies font outline size in pixels. This option is not
      valid for source captions that are either 608/embedded or teletext. These source settings are
      already pre-defined by the caption stream. All burn-in and DVB-Sub font settings must match.

      - **ShadowColor** *(string) --* Specifies the color of the shadow cast by the captions. All
      burn-in and DVB-Sub font settings must match.

      - **ShadowOpacity** *(integer) --* Specifies the opacity of the shadow. 255 is opaque; 0 is
      transparent. Leaving this parameter blank is equivalent to setting it to 0 (transparent). All
      burn-in and DVB-Sub font settings must match.

      - **ShadowXOffset** *(integer) --* Specifies the horizontal offset of the shadow relative to
      the captions in pixels. A value of -2 would result in a shadow offset 2 pixels to the left.
      All burn-in and DVB-Sub font settings must match.

      - **ShadowYOffset** *(integer) --* Specifies the vertical offset of the shadow relative to the
      captions in pixels. A value of -2 would result in a shadow offset 2 pixels above the text. All
      burn-in and DVB-Sub font settings must match.

      - **TeletextGridControl** *(string) --* Controls whether a fixed grid size will be used to
      generate the output subtitles bitmap. Only applicable for Teletext inputs and DVB-Sub/Burn-in
      outputs.

      - **XPosition** *(integer) --* Specifies the horizontal position of the caption relative to
      the left side of the output in pixels. A value of 10 would result in the captions starting 10
      pixels from the left of the output. If no explicit xPosition is provided, the horizontal
      caption position will be determined by the alignment parameter. This option is not valid for
      source captions that are STL, 608/embedded or teletext. These source settings are already
      pre-defined by the caption stream. All burn-in and DVB-Sub font settings must match.

      - **YPosition** *(integer) --* Specifies the vertical position of the caption relative to the
      top of the output in pixels. A value of 10 would result in the captions starting 10 pixels
      from the top of the output. If no explicit yPosition is provided, the caption will be
      positioned towards the bottom of the output. This option is not valid for source captions that
      are STL, 608/embedded or teletext. These source settings are already pre-defined by the
      caption stream. All burn-in and DVB-Sub font settings must match.

    - **EmbeddedDestinationSettings** *(dict) --* Embedded Destination Settings

    - **EmbeddedPlusScte20DestinationSettings** *(dict) --* Embedded Plus Scte20 Destination
    Settings

    - **RtmpCaptionInfoDestinationSettings** *(dict) --* Rtmp Caption Info Destination Settings

    - **Scte20PlusEmbeddedDestinationSettings** *(dict) --* Scte20 Plus Embedded Destination
    Settings

    - **Scte27DestinationSettings** *(dict) --* Scte27 Destination Settings

    - **SmpteTtDestinationSettings** *(dict) --* Smpte Tt Destination Settings

    - **TeletextDestinationSettings** *(dict) --* Teletext Destination Settings

    - **TtmlDestinationSettings** *(dict) --* Ttml Destination Settings

      - **StyleControl** *(string) --* When set to passthrough, passes through style and position
      information from a TTML-like input source (TTML, SMPTE-TT, CFF-TT) to the CFF-TT output or
      TTML output.

    - **WebvttDestinationSettings** *(dict) --* Webvtt Destination Settings
    """


_ClientStartChannelResponseEncoderSettingsCaptionDescriptionsTypeDef = TypedDict(
    "_ClientStartChannelResponseEncoderSettingsCaptionDescriptionsTypeDef",
    {
        "CaptionSelectorName": str,
        "DestinationSettings": ClientStartChannelResponseEncoderSettingsCaptionDescriptionsDestinationSettingsTypeDef,
        "LanguageCode": str,
        "LanguageDescription": str,
        "Name": str,
    },
    total=False,
)


class ClientStartChannelResponseEncoderSettingsCaptionDescriptionsTypeDef(
    _ClientStartChannelResponseEncoderSettingsCaptionDescriptionsTypeDef
):
    """
    Type definition for `ClientStartChannelResponseEncoderSettings` `CaptionDescriptions`

    - **CaptionSelectorName** *(string) --* Specifies which input caption selector to use as a
    caption source when generating output captions. This field should match a captionSelector name.

    - **DestinationSettings** *(dict) --* Additional settings for captions destination that depend
    on the destination type.

      - **AribDestinationSettings** *(dict) --* Arib Destination Settings

      - **BurnInDestinationSettings** *(dict) --* Burn In Destination Settings

        - **Alignment** *(string) --* If no explicit xPosition or yPosition is provided, setting
        alignment to centered will place the captions at the bottom center of the output. Similarly,
        setting a left alignment will align captions to the bottom left of the output. If x and y
        positions are given in conjunction with the alignment parameter, the font will be justified
        (either left or centered) relative to those coordinates. Selecting "smart" justification
        will left-justify live subtitles and center-justify pre-recorded subtitles. All burn-in and
        DVB-Sub font settings must match.

        - **BackgroundColor** *(string) --* Specifies the color of the rectangle behind the
        captions. All burn-in and DVB-Sub font settings must match.

        - **BackgroundOpacity** *(integer) --* Specifies the opacity of the background rectangle.
        255 is opaque; 0 is transparent. Leaving this parameter out is equivalent to setting it to 0
        (transparent). All burn-in and DVB-Sub font settings must match.

        - **Font** *(dict) --* External font file used for caption burn-in. File extension must be
        'ttf' or 'tte'. Although the user can select output fonts for many different types of input
        captions, embedded, STL and teletext sources use a strict grid system. Using external fonts
        with these caption sources could cause unexpected display of proportional fonts. All burn-in
        and DVB-Sub font settings must match.

          - **PasswordParam** *(string) --* key used to extract the password from EC2 Parameter
          store

          - **Uri** *(string) --* Uniform Resource Identifier - This should be a path to a file
          accessible to the Live system (eg. a http:// URI) depending on the output type. For
          example, a RTMP destination should have a uri simliar to: "rtmp://fmsserver/live".

          - **Username** *(string) --* Documentation update needed

        - **FontColor** *(string) --* Specifies the color of the burned-in captions. This option is
        not valid for source captions that are STL, 608/embedded or teletext. These source settings
        are already pre-defined by the caption stream. All burn-in and DVB-Sub font settings must
        match.

        - **FontOpacity** *(integer) --* Specifies the opacity of the burned-in captions. 255 is
        opaque; 0 is transparent. All burn-in and DVB-Sub font settings must match.

        - **FontResolution** *(integer) --* Font resolution in DPI (dots per inch); default is 96
        dpi. All burn-in and DVB-Sub font settings must match.

        - **FontSize** *(string) --* When set to 'auto' fontSize will scale depending on the size of
        the output. Giving a positive integer will specify the exact font size in points. All
        burn-in and DVB-Sub font settings must match.

        - **OutlineColor** *(string) --* Specifies font outline color. This option is not valid for
        source captions that are either 608/embedded or teletext. These source settings are already
        pre-defined by the caption stream. All burn-in and DVB-Sub font settings must match.

        - **OutlineSize** *(integer) --* Specifies font outline size in pixels. This option is not
        valid for source captions that are either 608/embedded or teletext. These source settings
        are already pre-defined by the caption stream. All burn-in and DVB-Sub font settings must
        match.

        - **ShadowColor** *(string) --* Specifies the color of the shadow cast by the captions. All
        burn-in and DVB-Sub font settings must match.

        - **ShadowOpacity** *(integer) --* Specifies the opacity of the shadow. 255 is opaque; 0 is
        transparent. Leaving this parameter out is equivalent to setting it to 0 (transparent). All
        burn-in and DVB-Sub font settings must match.

        - **ShadowXOffset** *(integer) --* Specifies the horizontal offset of the shadow relative to
        the captions in pixels. A value of -2 would result in a shadow offset 2 pixels to the left.
        All burn-in and DVB-Sub font settings must match.

        - **ShadowYOffset** *(integer) --* Specifies the vertical offset of the shadow relative to
        the captions in pixels. A value of -2 would result in a shadow offset 2 pixels above the
        text. All burn-in and DVB-Sub font settings must match.

        - **TeletextGridControl** *(string) --* Controls whether a fixed grid size will be used to
        generate the output subtitles bitmap. Only applicable for Teletext inputs and
        DVB-Sub/Burn-in outputs.

        - **XPosition** *(integer) --* Specifies the horizontal position of the caption relative to
        the left side of the output in pixels. A value of 10 would result in the captions starting
        10 pixels from the left of the output. If no explicit xPosition is provided, the horizontal
        caption position will be determined by the alignment parameter. All burn-in and DVB-Sub font
        settings must match.

        - **YPosition** *(integer) --* Specifies the vertical position of the caption relative to
        the top of the output in pixels. A value of 10 would result in the captions starting 10
        pixels from the top of the output. If no explicit yPosition is provided, the caption will be
        positioned towards the bottom of the output. All burn-in and DVB-Sub font settings must
        match.

      - **DvbSubDestinationSettings** *(dict) --* Dvb Sub Destination Settings

        - **Alignment** *(string) --* If no explicit xPosition or yPosition is provided, setting
        alignment to centered will place the captions at the bottom center of the output. Similarly,
        setting a left alignment will align captions to the bottom left of the output. If x and y
        positions are given in conjunction with the alignment parameter, the font will be justified
        (either left or centered) relative to those coordinates. Selecting "smart" justification
        will left-justify live subtitles and center-justify pre-recorded subtitles. This option is
        not valid for source captions that are STL or 608/embedded. These source settings are
        already pre-defined by the caption stream. All burn-in and DVB-Sub font settings must match.

        - **BackgroundColor** *(string) --* Specifies the color of the rectangle behind the
        captions. All burn-in and DVB-Sub font settings must match.

        - **BackgroundOpacity** *(integer) --* Specifies the opacity of the background rectangle.
        255 is opaque; 0 is transparent. Leaving this parameter blank is equivalent to setting it to
        0 (transparent). All burn-in and DVB-Sub font settings must match.

        - **Font** *(dict) --* External font file used for caption burn-in. File extension must be
        'ttf' or 'tte'. Although the user can select output fonts for many different types of input
        captions, embedded, STL and teletext sources use a strict grid system. Using external fonts
        with these caption sources could cause unexpected display of proportional fonts. All burn-in
        and DVB-Sub font settings must match.

          - **PasswordParam** *(string) --* key used to extract the password from EC2 Parameter
          store

          - **Uri** *(string) --* Uniform Resource Identifier - This should be a path to a file
          accessible to the Live system (eg. a http:// URI) depending on the output type. For
          example, a RTMP destination should have a uri simliar to: "rtmp://fmsserver/live".

          - **Username** *(string) --* Documentation update needed

        - **FontColor** *(string) --* Specifies the color of the burned-in captions. This option is
        not valid for source captions that are STL, 608/embedded or teletext. These source settings
        are already pre-defined by the caption stream. All burn-in and DVB-Sub font settings must
        match.

        - **FontOpacity** *(integer) --* Specifies the opacity of the burned-in captions. 255 is
        opaque; 0 is transparent. All burn-in and DVB-Sub font settings must match.

        - **FontResolution** *(integer) --* Font resolution in DPI (dots per inch); default is 96
        dpi. All burn-in and DVB-Sub font settings must match.

        - **FontSize** *(string) --* When set to auto fontSize will scale depending on the size of
        the output. Giving a positive integer will specify the exact font size in points. All
        burn-in and DVB-Sub font settings must match.

        - **OutlineColor** *(string) --* Specifies font outline color. This option is not valid for
        source captions that are either 608/embedded or teletext. These source settings are already
        pre-defined by the caption stream. All burn-in and DVB-Sub font settings must match.

        - **OutlineSize** *(integer) --* Specifies font outline size in pixels. This option is not
        valid for source captions that are either 608/embedded or teletext. These source settings
        are already pre-defined by the caption stream. All burn-in and DVB-Sub font settings must
        match.

        - **ShadowColor** *(string) --* Specifies the color of the shadow cast by the captions. All
        burn-in and DVB-Sub font settings must match.

        - **ShadowOpacity** *(integer) --* Specifies the opacity of the shadow. 255 is opaque; 0 is
        transparent. Leaving this parameter blank is equivalent to setting it to 0 (transparent).
        All burn-in and DVB-Sub font settings must match.

        - **ShadowXOffset** *(integer) --* Specifies the horizontal offset of the shadow relative to
        the captions in pixels. A value of -2 would result in a shadow offset 2 pixels to the left.
        All burn-in and DVB-Sub font settings must match.

        - **ShadowYOffset** *(integer) --* Specifies the vertical offset of the shadow relative to
        the captions in pixels. A value of -2 would result in a shadow offset 2 pixels above the
        text. All burn-in and DVB-Sub font settings must match.

        - **TeletextGridControl** *(string) --* Controls whether a fixed grid size will be used to
        generate the output subtitles bitmap. Only applicable for Teletext inputs and
        DVB-Sub/Burn-in outputs.

        - **XPosition** *(integer) --* Specifies the horizontal position of the caption relative to
        the left side of the output in pixels. A value of 10 would result in the captions starting
        10 pixels from the left of the output. If no explicit xPosition is provided, the horizontal
        caption position will be determined by the alignment parameter. This option is not valid for
        source captions that are STL, 608/embedded or teletext. These source settings are already
        pre-defined by the caption stream. All burn-in and DVB-Sub font settings must match.

        - **YPosition** *(integer) --* Specifies the vertical position of the caption relative to
        the top of the output in pixels. A value of 10 would result in the captions starting 10
        pixels from the top of the output. If no explicit yPosition is provided, the caption will be
        positioned towards the bottom of the output. This option is not valid for source captions
        that are STL, 608/embedded or teletext. These source settings are already pre-defined by the
        caption stream. All burn-in and DVB-Sub font settings must match.

      - **EmbeddedDestinationSettings** *(dict) --* Embedded Destination Settings

      - **EmbeddedPlusScte20DestinationSettings** *(dict) --* Embedded Plus Scte20 Destination
      Settings

      - **RtmpCaptionInfoDestinationSettings** *(dict) --* Rtmp Caption Info Destination Settings

      - **Scte20PlusEmbeddedDestinationSettings** *(dict) --* Scte20 Plus Embedded Destination
      Settings

      - **Scte27DestinationSettings** *(dict) --* Scte27 Destination Settings

      - **SmpteTtDestinationSettings** *(dict) --* Smpte Tt Destination Settings

      - **TeletextDestinationSettings** *(dict) --* Teletext Destination Settings

      - **TtmlDestinationSettings** *(dict) --* Ttml Destination Settings

        - **StyleControl** *(string) --* When set to passthrough, passes through style and position
        information from a TTML-like input source (TTML, SMPTE-TT, CFF-TT) to the CFF-TT output or
        TTML output.

      - **WebvttDestinationSettings** *(dict) --* Webvtt Destination Settings

    - **LanguageCode** *(string) --* ISO 639-2 three-digit code:
    http://www.loc.gov/standards/iso639-2/

    - **LanguageDescription** *(string) --* Human readable information to indicate captions
    available for players (eg. English, or Spanish).

    - **Name** *(string) --* Name of the caption description. Used to associate a caption
    description with an output. Names must be unique within an event.
    """


_ClientStartChannelResponseEncoderSettingsGlobalConfigurationInputLossBehaviorInputLossImageSlateTypeDef = TypedDict(
    "_ClientStartChannelResponseEncoderSettingsGlobalConfigurationInputLossBehaviorInputLossImageSlateTypeDef",
    {"PasswordParam": str, "Uri": str, "Username": str},
    total=False,
)


class ClientStartChannelResponseEncoderSettingsGlobalConfigurationInputLossBehaviorInputLossImageSlateTypeDef(
    _ClientStartChannelResponseEncoderSettingsGlobalConfigurationInputLossBehaviorInputLossImageSlateTypeDef
):
    """
    Type definition for
    `ClientStartChannelResponseEncoderSettingsGlobalConfigurationInputLossBehavior`
    `InputLossImageSlate`

    - **PasswordParam** *(string) --* key used to extract the password from EC2 Parameter store

    - **Uri** *(string) --* Uniform Resource Identifier - This should be a path to a file accessible
    to the Live system (eg. a http:// URI) depending on the output type. For example, a RTMP
    destination should have a uri simliar to: "rtmp://fmsserver/live".

    - **Username** *(string) --* Documentation update needed
    """


_ClientStartChannelResponseEncoderSettingsGlobalConfigurationInputLossBehaviorTypeDef = TypedDict(
    "_ClientStartChannelResponseEncoderSettingsGlobalConfigurationInputLossBehaviorTypeDef",
    {
        "BlackFrameMsec": int,
        "InputLossImageColor": str,
        "InputLossImageSlate": ClientStartChannelResponseEncoderSettingsGlobalConfigurationInputLossBehaviorInputLossImageSlateTypeDef,
        "InputLossImageType": str,
        "RepeatFrameMsec": int,
    },
    total=False,
)


class ClientStartChannelResponseEncoderSettingsGlobalConfigurationInputLossBehaviorTypeDef(
    _ClientStartChannelResponseEncoderSettingsGlobalConfigurationInputLossBehaviorTypeDef
):
    """
    Type definition for `ClientStartChannelResponseEncoderSettingsGlobalConfiguration`
    `InputLossBehavior`

    - **BlackFrameMsec** *(integer) --* Documentation update needed

    - **InputLossImageColor** *(string) --* When input loss image type is "color" this field
    specifies the color to use. Value: 6 hex characters representing the values of RGB.

    - **InputLossImageSlate** *(dict) --* When input loss image type is "slate" these fields specify
    the parameters for accessing the slate.

      - **PasswordParam** *(string) --* key used to extract the password from EC2 Parameter store

      - **Uri** *(string) --* Uniform Resource Identifier - This should be a path to a file
      accessible to the Live system (eg. a http:// URI) depending on the output type. For example, a
      RTMP destination should have a uri simliar to: "rtmp://fmsserver/live".

      - **Username** *(string) --* Documentation update needed

    - **InputLossImageType** *(string) --* Indicates whether to substitute a solid color or a slate
    into the output after input loss exceeds blackFrameMsec.

    - **RepeatFrameMsec** *(integer) --* Documentation update needed
    """


_ClientStartChannelResponseEncoderSettingsGlobalConfigurationTypeDef = TypedDict(
    "_ClientStartChannelResponseEncoderSettingsGlobalConfigurationTypeDef",
    {
        "InitialAudioGain": int,
        "InputEndAction": str,
        "InputLossBehavior": ClientStartChannelResponseEncoderSettingsGlobalConfigurationInputLossBehaviorTypeDef,
        "OutputLockingMode": str,
        "OutputTimingSource": str,
        "SupportLowFramerateInputs": str,
    },
    total=False,
)


class ClientStartChannelResponseEncoderSettingsGlobalConfigurationTypeDef(
    _ClientStartChannelResponseEncoderSettingsGlobalConfigurationTypeDef
):
    """
    Type definition for `ClientStartChannelResponseEncoderSettings` `GlobalConfiguration`

    - **InitialAudioGain** *(integer) --* Value to set the initial audio gain for the Live Event.

    - **InputEndAction** *(string) --* Indicates the action to take when the current input completes
    (e.g. end-of-file). When switchAndLoopInputs is configured the encoder will restart at the
    beginning of the first input. When "none" is configured the encoder will transcode either black,
    a solid color, or a user specified slate images per the "Input Loss Behavior" configuration
    until the next input switch occurs (which is controlled through the Channel Schedule API).

    - **InputLossBehavior** *(dict) --* Settings for system actions when input is lost.

      - **BlackFrameMsec** *(integer) --* Documentation update needed

      - **InputLossImageColor** *(string) --* When input loss image type is "color" this field
      specifies the color to use. Value: 6 hex characters representing the values of RGB.

      - **InputLossImageSlate** *(dict) --* When input loss image type is "slate" these fields
      specify the parameters for accessing the slate.

        - **PasswordParam** *(string) --* key used to extract the password from EC2 Parameter store

        - **Uri** *(string) --* Uniform Resource Identifier - This should be a path to a file
        accessible to the Live system (eg. a http:// URI) depending on the output type. For example,
        a RTMP destination should have a uri simliar to: "rtmp://fmsserver/live".

        - **Username** *(string) --* Documentation update needed

      - **InputLossImageType** *(string) --* Indicates whether to substitute a solid color or a
      slate into the output after input loss exceeds blackFrameMsec.

      - **RepeatFrameMsec** *(integer) --* Documentation update needed

    - **OutputLockingMode** *(string) --* Indicates how MediaLive pipelines are synchronized.
    PIPELINELOCKING - MediaLive will attempt to synchronize the output of each pipeline to the
    other. EPOCHLOCKING - MediaLive will attempt to synchronize the output of each pipeline to the
    Unix epoch.

    - **OutputTimingSource** *(string) --* Indicates whether the rate of frames emitted by the Live
    encoder should be paced by its system clock (which optionally may be locked to another source
    via NTP) or should be locked to the clock of the source that is providing the input stream.

    - **SupportLowFramerateInputs** *(string) --* Adjusts video input buffer for streams with very
    low video framerates. This is commonly set to enabled for music channels with less than one
    video frame per second.
    """


_ClientStartChannelResponseEncoderSettingsNielsenConfigurationTypeDef = TypedDict(
    "_ClientStartChannelResponseEncoderSettingsNielsenConfigurationTypeDef",
    {"DistributorId": str, "NielsenPcmToId3Tagging": str},
    total=False,
)


class ClientStartChannelResponseEncoderSettingsNielsenConfigurationTypeDef(
    _ClientStartChannelResponseEncoderSettingsNielsenConfigurationTypeDef
):
    """
    Type definition for `ClientStartChannelResponseEncoderSettings` `NielsenConfiguration`

    - **DistributorId** *(string) --* Enter the Distributor ID assigned to your organization by
    Nielsen.

    - **NielsenPcmToId3Tagging** *(string) --* Enables Nielsen PCM to ID3 tagging
    """


_ClientStartChannelResponseEncoderSettingsOutputGroupsOutputGroupSettingsArchiveGroupSettingsDestinationTypeDef = TypedDict(
    "_ClientStartChannelResponseEncoderSettingsOutputGroupsOutputGroupSettingsArchiveGroupSettingsDestinationTypeDef",
    {"DestinationRefId": str},
    total=False,
)


class ClientStartChannelResponseEncoderSettingsOutputGroupsOutputGroupSettingsArchiveGroupSettingsDestinationTypeDef(
    _ClientStartChannelResponseEncoderSettingsOutputGroupsOutputGroupSettingsArchiveGroupSettingsDestinationTypeDef
):
    """
    Type definition for
    `ClientStartChannelResponseEncoderSettingsOutputGroupsOutputGroupSettingsArchiveGroupSettings`
    `Destination`

    - **DestinationRefId** *(string) --* Placeholder documentation for __string
    """


_ClientStartChannelResponseEncoderSettingsOutputGroupsOutputGroupSettingsArchiveGroupSettingsTypeDef = TypedDict(
    "_ClientStartChannelResponseEncoderSettingsOutputGroupsOutputGroupSettingsArchiveGroupSettingsTypeDef",
    {
        "Destination": ClientStartChannelResponseEncoderSettingsOutputGroupsOutputGroupSettingsArchiveGroupSettingsDestinationTypeDef,
        "RolloverInterval": int,
    },
    total=False,
)


class ClientStartChannelResponseEncoderSettingsOutputGroupsOutputGroupSettingsArchiveGroupSettingsTypeDef(
    _ClientStartChannelResponseEncoderSettingsOutputGroupsOutputGroupSettingsArchiveGroupSettingsTypeDef
):
    """
    Type definition for `ClientStartChannelResponseEncoderSettingsOutputGroupsOutputGroupSettings`
    `ArchiveGroupSettings`

    - **Destination** *(dict) --* A directory and base filename where archive files should be
    written.

      - **DestinationRefId** *(string) --* Placeholder documentation for __string

    - **RolloverInterval** *(integer) --* Number of seconds to write to archive file before closing
    and starting a new one.
    """


_ClientStartChannelResponseEncoderSettingsOutputGroupsOutputGroupSettingsFrameCaptureGroupSettingsDestinationTypeDef = TypedDict(
    "_ClientStartChannelResponseEncoderSettingsOutputGroupsOutputGroupSettingsFrameCaptureGroupSettingsDestinationTypeDef",
    {"DestinationRefId": str},
    total=False,
)


class ClientStartChannelResponseEncoderSettingsOutputGroupsOutputGroupSettingsFrameCaptureGroupSettingsDestinationTypeDef(
    _ClientStartChannelResponseEncoderSettingsOutputGroupsOutputGroupSettingsFrameCaptureGroupSettingsDestinationTypeDef
):
    """
    Type definition for
    `ClientStartChannelResponseEncoderSettingsOutputGroupsOutputGroupSettingsFrameCaptureGroupSettings`
    `Destination`

    - **DestinationRefId** *(string) --* Placeholder documentation for __string
    """


_ClientStartChannelResponseEncoderSettingsOutputGroupsOutputGroupSettingsFrameCaptureGroupSettingsTypeDef = TypedDict(
    "_ClientStartChannelResponseEncoderSettingsOutputGroupsOutputGroupSettingsFrameCaptureGroupSettingsTypeDef",
    {
        "Destination": ClientStartChannelResponseEncoderSettingsOutputGroupsOutputGroupSettingsFrameCaptureGroupSettingsDestinationTypeDef
    },
    total=False,
)


class ClientStartChannelResponseEncoderSettingsOutputGroupsOutputGroupSettingsFrameCaptureGroupSettingsTypeDef(
    _ClientStartChannelResponseEncoderSettingsOutputGroupsOutputGroupSettingsFrameCaptureGroupSettingsTypeDef
):
    """
    Type definition for `ClientStartChannelResponseEncoderSettingsOutputGroupsOutputGroupSettings`
    `FrameCaptureGroupSettings`

    - **Destination** *(dict) --* The destination for the frame capture files. Either the URI for an
    Amazon S3 bucket and object, plus a file name prefix (for example,
    s3ssl://sportsDelivery/highlights/20180820/curling_) or the URI for a MediaStore container, plus
    a file name prefix (for example, mediastoressl://sportsDelivery/20180820/curling_). The final
    file names consist of the prefix from the destination field (for example, "curling_") + name
    modifier + the counter (5 digits, starting from 00001) + extension (which is always .jpg). For
    example, curlingLow.00001.jpg

      - **DestinationRefId** *(string) --* Placeholder documentation for __string
    """


_ClientStartChannelResponseEncoderSettingsOutputGroupsOutputGroupSettingsHlsGroupSettingsCaptionLanguageMappingsTypeDef = TypedDict(
    "_ClientStartChannelResponseEncoderSettingsOutputGroupsOutputGroupSettingsHlsGroupSettingsCaptionLanguageMappingsTypeDef",
    {"CaptionChannel": int, "LanguageCode": str, "LanguageDescription": str},
    total=False,
)


class ClientStartChannelResponseEncoderSettingsOutputGroupsOutputGroupSettingsHlsGroupSettingsCaptionLanguageMappingsTypeDef(
    _ClientStartChannelResponseEncoderSettingsOutputGroupsOutputGroupSettingsHlsGroupSettingsCaptionLanguageMappingsTypeDef
):
    """
    Type definition for
    `ClientStartChannelResponseEncoderSettingsOutputGroupsOutputGroupSettingsHlsGroupSettings`
    `CaptionLanguageMappings`

    - **CaptionChannel** *(integer) --* The closed caption channel being described by this
    CaptionLanguageMapping. Each channel mapping must have a unique channel number (maximum of 4)

    - **LanguageCode** *(string) --* Three character ISO 639-2 language code (see
    http://www.loc.gov/standards/iso639-2)

    - **LanguageDescription** *(string) --* Textual description of language
    """


_ClientStartChannelResponseEncoderSettingsOutputGroupsOutputGroupSettingsHlsGroupSettingsDestinationTypeDef = TypedDict(
    "_ClientStartChannelResponseEncoderSettingsOutputGroupsOutputGroupSettingsHlsGroupSettingsDestinationTypeDef",
    {"DestinationRefId": str},
    total=False,
)


class ClientStartChannelResponseEncoderSettingsOutputGroupsOutputGroupSettingsHlsGroupSettingsDestinationTypeDef(
    _ClientStartChannelResponseEncoderSettingsOutputGroupsOutputGroupSettingsHlsGroupSettingsDestinationTypeDef
):
    """
    Type definition for
    `ClientStartChannelResponseEncoderSettingsOutputGroupsOutputGroupSettingsHlsGroupSettings`
    `Destination`

    - **DestinationRefId** *(string) --* Placeholder documentation for __string
    """


_ClientStartChannelResponseEncoderSettingsOutputGroupsOutputGroupSettingsHlsGroupSettingsHlsCdnSettingsHlsAkamaiSettingsTypeDef = TypedDict(
    "_ClientStartChannelResponseEncoderSettingsOutputGroupsOutputGroupSettingsHlsGroupSettingsHlsCdnSettingsHlsAkamaiSettingsTypeDef",
    {
        "ConnectionRetryInterval": int,
        "FilecacheDuration": int,
        "HttpTransferMode": str,
        "NumRetries": int,
        "RestartDelay": int,
        "Salt": str,
        "Token": str,
    },
    total=False,
)


class ClientStartChannelResponseEncoderSettingsOutputGroupsOutputGroupSettingsHlsGroupSettingsHlsCdnSettingsHlsAkamaiSettingsTypeDef(
    _ClientStartChannelResponseEncoderSettingsOutputGroupsOutputGroupSettingsHlsGroupSettingsHlsCdnSettingsHlsAkamaiSettingsTypeDef
):
    """
    Type definition for
    `ClientStartChannelResponseEncoderSettingsOutputGroupsOutputGroupSettingsHlsGroupSettingsHlsCdnSettings`
    `HlsAkamaiSettings`

    - **ConnectionRetryInterval** *(integer) --* Number of seconds to wait before retrying
    connection to the CDN if the connection is lost.

    - **FilecacheDuration** *(integer) --* Size in seconds of file cache for streaming outputs.

    - **HttpTransferMode** *(string) --* Specify whether or not to use chunked transfer encoding to
    Akamai. User should contact Akamai to enable this feature.

    - **NumRetries** *(integer) --* Number of retry attempts that will be made before the Live Event
    is put into an error state.

    - **RestartDelay** *(integer) --* If a streaming output fails, number of seconds to wait until a
    restart is initiated. A value of 0 means never restart.

    - **Salt** *(string) --* Salt for authenticated Akamai.

    - **Token** *(string) --* Token parameter for authenticated akamai. If not specified, _gda_ is
    used.
    """


_ClientStartChannelResponseEncoderSettingsOutputGroupsOutputGroupSettingsHlsGroupSettingsHlsCdnSettingsHlsBasicPutSettingsTypeDef = TypedDict(
    "_ClientStartChannelResponseEncoderSettingsOutputGroupsOutputGroupSettingsHlsGroupSettingsHlsCdnSettingsHlsBasicPutSettingsTypeDef",
    {
        "ConnectionRetryInterval": int,
        "FilecacheDuration": int,
        "NumRetries": int,
        "RestartDelay": int,
    },
    total=False,
)


class ClientStartChannelResponseEncoderSettingsOutputGroupsOutputGroupSettingsHlsGroupSettingsHlsCdnSettingsHlsBasicPutSettingsTypeDef(
    _ClientStartChannelResponseEncoderSettingsOutputGroupsOutputGroupSettingsHlsGroupSettingsHlsCdnSettingsHlsBasicPutSettingsTypeDef
):
    """
    Type definition for
    `ClientStartChannelResponseEncoderSettingsOutputGroupsOutputGroupSettingsHlsGroupSettingsHlsCdnSettings`
    `HlsBasicPutSettings`

    - **ConnectionRetryInterval** *(integer) --* Number of seconds to wait before retrying
    connection to the CDN if the connection is lost.

    - **FilecacheDuration** *(integer) --* Size in seconds of file cache for streaming outputs.

    - **NumRetries** *(integer) --* Number of retry attempts that will be made before the Live Event
    is put into an error state.

    - **RestartDelay** *(integer) --* If a streaming output fails, number of seconds to wait until a
    restart is initiated. A value of 0 means never restart.
    """


_ClientStartChannelResponseEncoderSettingsOutputGroupsOutputGroupSettingsHlsGroupSettingsHlsCdnSettingsHlsMediaStoreSettingsTypeDef = TypedDict(
    "_ClientStartChannelResponseEncoderSettingsOutputGroupsOutputGroupSettingsHlsGroupSettingsHlsCdnSettingsHlsMediaStoreSettingsTypeDef",
    {
        "ConnectionRetryInterval": int,
        "FilecacheDuration": int,
        "MediaStoreStorageClass": str,
        "NumRetries": int,
        "RestartDelay": int,
    },
    total=False,
)


class ClientStartChannelResponseEncoderSettingsOutputGroupsOutputGroupSettingsHlsGroupSettingsHlsCdnSettingsHlsMediaStoreSettingsTypeDef(
    _ClientStartChannelResponseEncoderSettingsOutputGroupsOutputGroupSettingsHlsGroupSettingsHlsCdnSettingsHlsMediaStoreSettingsTypeDef
):
    """
    Type definition for
    `ClientStartChannelResponseEncoderSettingsOutputGroupsOutputGroupSettingsHlsGroupSettingsHlsCdnSettings`
    `HlsMediaStoreSettings`

    - **ConnectionRetryInterval** *(integer) --* Number of seconds to wait before retrying
    connection to the CDN if the connection is lost.

    - **FilecacheDuration** *(integer) --* Size in seconds of file cache for streaming outputs.

    - **MediaStoreStorageClass** *(string) --* When set to temporal, output files are stored in
    non-persistent memory for faster reading and writing.

    - **NumRetries** *(integer) --* Number of retry attempts that will be made before the Live Event
    is put into an error state.

    - **RestartDelay** *(integer) --* If a streaming output fails, number of seconds to wait until a
    restart is initiated. A value of 0 means never restart.
    """


_ClientStartChannelResponseEncoderSettingsOutputGroupsOutputGroupSettingsHlsGroupSettingsHlsCdnSettingsHlsWebdavSettingsTypeDef = TypedDict(
    "_ClientStartChannelResponseEncoderSettingsOutputGroupsOutputGroupSettingsHlsGroupSettingsHlsCdnSettingsHlsWebdavSettingsTypeDef",
    {
        "ConnectionRetryInterval": int,
        "FilecacheDuration": int,
        "HttpTransferMode": str,
        "NumRetries": int,
        "RestartDelay": int,
    },
    total=False,
)


class ClientStartChannelResponseEncoderSettingsOutputGroupsOutputGroupSettingsHlsGroupSettingsHlsCdnSettingsHlsWebdavSettingsTypeDef(
    _ClientStartChannelResponseEncoderSettingsOutputGroupsOutputGroupSettingsHlsGroupSettingsHlsCdnSettingsHlsWebdavSettingsTypeDef
):
    """
    Type definition for
    `ClientStartChannelResponseEncoderSettingsOutputGroupsOutputGroupSettingsHlsGroupSettingsHlsCdnSettings`
    `HlsWebdavSettings`

    - **ConnectionRetryInterval** *(integer) --* Number of seconds to wait before retrying
    connection to the CDN if the connection is lost.

    - **FilecacheDuration** *(integer) --* Size in seconds of file cache for streaming outputs.

    - **HttpTransferMode** *(string) --* Specify whether or not to use chunked transfer encoding to
    WebDAV.

    - **NumRetries** *(integer) --* Number of retry attempts that will be made before the Live Event
    is put into an error state.

    - **RestartDelay** *(integer) --* If a streaming output fails, number of seconds to wait until a
    restart is initiated. A value of 0 means never restart.
    """


_ClientStartChannelResponseEncoderSettingsOutputGroupsOutputGroupSettingsHlsGroupSettingsHlsCdnSettingsTypeDef = TypedDict(
    "_ClientStartChannelResponseEncoderSettingsOutputGroupsOutputGroupSettingsHlsGroupSettingsHlsCdnSettingsTypeDef",
    {
        "HlsAkamaiSettings": ClientStartChannelResponseEncoderSettingsOutputGroupsOutputGroupSettingsHlsGroupSettingsHlsCdnSettingsHlsAkamaiSettingsTypeDef,
        "HlsBasicPutSettings": ClientStartChannelResponseEncoderSettingsOutputGroupsOutputGroupSettingsHlsGroupSettingsHlsCdnSettingsHlsBasicPutSettingsTypeDef,
        "HlsMediaStoreSettings": ClientStartChannelResponseEncoderSettingsOutputGroupsOutputGroupSettingsHlsGroupSettingsHlsCdnSettingsHlsMediaStoreSettingsTypeDef,
        "HlsWebdavSettings": ClientStartChannelResponseEncoderSettingsOutputGroupsOutputGroupSettingsHlsGroupSettingsHlsCdnSettingsHlsWebdavSettingsTypeDef,
    },
    total=False,
)


class ClientStartChannelResponseEncoderSettingsOutputGroupsOutputGroupSettingsHlsGroupSettingsHlsCdnSettingsTypeDef(
    _ClientStartChannelResponseEncoderSettingsOutputGroupsOutputGroupSettingsHlsGroupSettingsHlsCdnSettingsTypeDef
):
    """
    Type definition for
    `ClientStartChannelResponseEncoderSettingsOutputGroupsOutputGroupSettingsHlsGroupSettings`
    `HlsCdnSettings`

    - **HlsAkamaiSettings** *(dict) --* Hls Akamai Settings

      - **ConnectionRetryInterval** *(integer) --* Number of seconds to wait before retrying
      connection to the CDN if the connection is lost.

      - **FilecacheDuration** *(integer) --* Size in seconds of file cache for streaming outputs.

      - **HttpTransferMode** *(string) --* Specify whether or not to use chunked transfer encoding
      to Akamai. User should contact Akamai to enable this feature.

      - **NumRetries** *(integer) --* Number of retry attempts that will be made before the Live
      Event is put into an error state.

      - **RestartDelay** *(integer) --* If a streaming output fails, number of seconds to wait until
      a restart is initiated. A value of 0 means never restart.

      - **Salt** *(string) --* Salt for authenticated Akamai.

      - **Token** *(string) --* Token parameter for authenticated akamai. If not specified, _gda_ is
      used.

    - **HlsBasicPutSettings** *(dict) --* Hls Basic Put Settings

      - **ConnectionRetryInterval** *(integer) --* Number of seconds to wait before retrying
      connection to the CDN if the connection is lost.

      - **FilecacheDuration** *(integer) --* Size in seconds of file cache for streaming outputs.

      - **NumRetries** *(integer) --* Number of retry attempts that will be made before the Live
      Event is put into an error state.

      - **RestartDelay** *(integer) --* If a streaming output fails, number of seconds to wait until
      a restart is initiated. A value of 0 means never restart.

    - **HlsMediaStoreSettings** *(dict) --* Hls Media Store Settings

      - **ConnectionRetryInterval** *(integer) --* Number of seconds to wait before retrying
      connection to the CDN if the connection is lost.

      - **FilecacheDuration** *(integer) --* Size in seconds of file cache for streaming outputs.

      - **MediaStoreStorageClass** *(string) --* When set to temporal, output files are stored in
      non-persistent memory for faster reading and writing.

      - **NumRetries** *(integer) --* Number of retry attempts that will be made before the Live
      Event is put into an error state.

      - **RestartDelay** *(integer) --* If a streaming output fails, number of seconds to wait until
      a restart is initiated. A value of 0 means never restart.

    - **HlsWebdavSettings** *(dict) --* Hls Webdav Settings

      - **ConnectionRetryInterval** *(integer) --* Number of seconds to wait before retrying
      connection to the CDN if the connection is lost.

      - **FilecacheDuration** *(integer) --* Size in seconds of file cache for streaming outputs.

      - **HttpTransferMode** *(string) --* Specify whether or not to use chunked transfer encoding
      to WebDAV.

      - **NumRetries** *(integer) --* Number of retry attempts that will be made before the Live
      Event is put into an error state.

      - **RestartDelay** *(integer) --* If a streaming output fails, number of seconds to wait until
      a restart is initiated. A value of 0 means never restart.
    """


_ClientStartChannelResponseEncoderSettingsOutputGroupsOutputGroupSettingsHlsGroupSettingsKeyProviderSettingsStaticKeySettingsKeyProviderServerTypeDef = TypedDict(
    "_ClientStartChannelResponseEncoderSettingsOutputGroupsOutputGroupSettingsHlsGroupSettingsKeyProviderSettingsStaticKeySettingsKeyProviderServerTypeDef",
    {"PasswordParam": str, "Uri": str, "Username": str},
    total=False,
)


class ClientStartChannelResponseEncoderSettingsOutputGroupsOutputGroupSettingsHlsGroupSettingsKeyProviderSettingsStaticKeySettingsKeyProviderServerTypeDef(
    _ClientStartChannelResponseEncoderSettingsOutputGroupsOutputGroupSettingsHlsGroupSettingsKeyProviderSettingsStaticKeySettingsKeyProviderServerTypeDef
):
    """
    Type definition for
    `ClientStartChannelResponseEncoderSettingsOutputGroupsOutputGroupSettingsHlsGroupSettingsKeyProviderSettingsStaticKeySettings`
    `KeyProviderServer`

    - **PasswordParam** *(string) --* key used to extract the password from EC2 Parameter store

    - **Uri** *(string) --* Uniform Resource Identifier - This should be a path to a file accessible
    to the Live system (eg. a http:// URI) depending on the output type. For example, a RTMP
    destination should have a uri simliar to: "rtmp://fmsserver/live".

    - **Username** *(string) --* Documentation update needed
    """


_ClientStartChannelResponseEncoderSettingsOutputGroupsOutputGroupSettingsHlsGroupSettingsKeyProviderSettingsStaticKeySettingsTypeDef = TypedDict(
    "_ClientStartChannelResponseEncoderSettingsOutputGroupsOutputGroupSettingsHlsGroupSettingsKeyProviderSettingsStaticKeySettingsTypeDef",
    {
        "KeyProviderServer": ClientStartChannelResponseEncoderSettingsOutputGroupsOutputGroupSettingsHlsGroupSettingsKeyProviderSettingsStaticKeySettingsKeyProviderServerTypeDef,
        "StaticKeyValue": str,
    },
    total=False,
)


class ClientStartChannelResponseEncoderSettingsOutputGroupsOutputGroupSettingsHlsGroupSettingsKeyProviderSettingsStaticKeySettingsTypeDef(
    _ClientStartChannelResponseEncoderSettingsOutputGroupsOutputGroupSettingsHlsGroupSettingsKeyProviderSettingsStaticKeySettingsTypeDef
):
    """
    Type definition for
    `ClientStartChannelResponseEncoderSettingsOutputGroupsOutputGroupSettingsHlsGroupSettingsKeyProviderSettings`
    `StaticKeySettings`

    - **KeyProviderServer** *(dict) --* The URL of the license server used for protecting content.

      - **PasswordParam** *(string) --* key used to extract the password from EC2 Parameter store

      - **Uri** *(string) --* Uniform Resource Identifier - This should be a path to a file
      accessible to the Live system (eg. a http:// URI) depending on the output type. For example, a
      RTMP destination should have a uri simliar to: "rtmp://fmsserver/live".

      - **Username** *(string) --* Documentation update needed

    - **StaticKeyValue** *(string) --* Static key value as a 32 character hexadecimal string.
    """


_ClientStartChannelResponseEncoderSettingsOutputGroupsOutputGroupSettingsHlsGroupSettingsKeyProviderSettingsTypeDef = TypedDict(
    "_ClientStartChannelResponseEncoderSettingsOutputGroupsOutputGroupSettingsHlsGroupSettingsKeyProviderSettingsTypeDef",
    {
        "StaticKeySettings": ClientStartChannelResponseEncoderSettingsOutputGroupsOutputGroupSettingsHlsGroupSettingsKeyProviderSettingsStaticKeySettingsTypeDef
    },
    total=False,
)


class ClientStartChannelResponseEncoderSettingsOutputGroupsOutputGroupSettingsHlsGroupSettingsKeyProviderSettingsTypeDef(
    _ClientStartChannelResponseEncoderSettingsOutputGroupsOutputGroupSettingsHlsGroupSettingsKeyProviderSettingsTypeDef
):
    """
    Type definition for
    `ClientStartChannelResponseEncoderSettingsOutputGroupsOutputGroupSettingsHlsGroupSettings`
    `KeyProviderSettings`

    - **StaticKeySettings** *(dict) --* Static Key Settings

      - **KeyProviderServer** *(dict) --* The URL of the license server used for protecting content.

        - **PasswordParam** *(string) --* key used to extract the password from EC2 Parameter store

        - **Uri** *(string) --* Uniform Resource Identifier - This should be a path to a file
        accessible to the Live system (eg. a http:// URI) depending on the output type. For example,
        a RTMP destination should have a uri simliar to: "rtmp://fmsserver/live".

        - **Username** *(string) --* Documentation update needed

      - **StaticKeyValue** *(string) --* Static key value as a 32 character hexadecimal string.
    """


_ClientStartChannelResponseEncoderSettingsOutputGroupsOutputGroupSettingsHlsGroupSettingsTypeDef = TypedDict(
    "_ClientStartChannelResponseEncoderSettingsOutputGroupsOutputGroupSettingsHlsGroupSettingsTypeDef",
    {
        "AdMarkers": List[str],
        "BaseUrlContent": str,
        "BaseUrlManifest": str,
        "CaptionLanguageMappings": List[
            ClientStartChannelResponseEncoderSettingsOutputGroupsOutputGroupSettingsHlsGroupSettingsCaptionLanguageMappingsTypeDef
        ],
        "CaptionLanguageSetting": str,
        "ClientCache": str,
        "CodecSpecification": str,
        "ConstantIv": str,
        "Destination": ClientStartChannelResponseEncoderSettingsOutputGroupsOutputGroupSettingsHlsGroupSettingsDestinationTypeDef,
        "DirectoryStructure": str,
        "EncryptionType": str,
        "HlsCdnSettings": ClientStartChannelResponseEncoderSettingsOutputGroupsOutputGroupSettingsHlsGroupSettingsHlsCdnSettingsTypeDef,
        "IFrameOnlyPlaylists": str,
        "IndexNSegments": int,
        "InputLossAction": str,
        "IvInManifest": str,
        "IvSource": str,
        "KeepSegments": int,
        "KeyFormat": str,
        "KeyFormatVersions": str,
        "KeyProviderSettings": ClientStartChannelResponseEncoderSettingsOutputGroupsOutputGroupSettingsHlsGroupSettingsKeyProviderSettingsTypeDef,
        "ManifestCompression": str,
        "ManifestDurationFormat": str,
        "MinSegmentLength": int,
        "Mode": str,
        "OutputSelection": str,
        "ProgramDateTime": str,
        "ProgramDateTimePeriod": int,
        "RedundantManifest": str,
        "SegmentLength": int,
        "SegmentationMode": str,
        "SegmentsPerSubdirectory": int,
        "StreamInfResolution": str,
        "TimedMetadataId3Frame": str,
        "TimedMetadataId3Period": int,
        "TimestampDeltaMilliseconds": int,
        "TsFileMode": str,
    },
    total=False,
)


class ClientStartChannelResponseEncoderSettingsOutputGroupsOutputGroupSettingsHlsGroupSettingsTypeDef(
    _ClientStartChannelResponseEncoderSettingsOutputGroupsOutputGroupSettingsHlsGroupSettingsTypeDef
):
    """
    Type definition for `ClientStartChannelResponseEncoderSettingsOutputGroupsOutputGroupSettings`
    `HlsGroupSettings`

    - **AdMarkers** *(list) --* Choose one or more ad marker types to pass SCTE35 signals through to
    this group of Apple HLS outputs.

      - *(string) --* Hls Ad Markers

    - **BaseUrlContent** *(string) --* A partial URI prefix that will be prepended to each output in
    the media .m3u8 file. Can be used if base manifest is delivered from a different URL than the
    main .m3u8 file.

    - **BaseUrlManifest** *(string) --* A partial URI prefix that will be prepended to each output
    in the media .m3u8 file. Can be used if base manifest is delivered from a different URL than the
    main .m3u8 file.

    - **CaptionLanguageMappings** *(list) --* Mapping of up to 4 caption channels to caption
    languages. Is only meaningful if captionLanguageSetting is set to "insert".

      - *(dict) --* Maps a caption channel to an ISO 693-2 language code
      (http://www.loc.gov/standards/iso639-2), with an optional description.

        - **CaptionChannel** *(integer) --* The closed caption channel being described by this
        CaptionLanguageMapping. Each channel mapping must have a unique channel number (maximum of
        4)

        - **LanguageCode** *(string) --* Three character ISO 639-2 language code (see
        http://www.loc.gov/standards/iso639-2)

        - **LanguageDescription** *(string) --* Textual description of language

    - **CaptionLanguageSetting** *(string) --* Applies only to 608 Embedded output captions. insert:
    Include CLOSED-CAPTIONS lines in the manifest. Specify at least one language in the CC1 Language
    Code field. One CLOSED-CAPTION line is added for each Language Code you specify. Make sure to
    specify the languages in the order in which they appear in the original source (if the source is
    embedded format) or the order of the caption selectors (if the source is other than embedded).
    Otherwise, languages in the manifest will not match up properly with the output captions. none:
    Include CLOSED-CAPTIONS=NONE line in the manifest. omit: Omit any CLOSED-CAPTIONS line from the
    manifest.

    - **ClientCache** *(string) --* When set to "disabled", sets the #EXT-X-ALLOW-CACHE:no tag in
    the manifest, which prevents clients from saving media segments for later replay.

    - **CodecSpecification** *(string) --* Specification to use (RFC-6381 or the default RFC-4281)
    during m3u8 playlist generation.

    - **ConstantIv** *(string) --* For use with encryptionType. This is a 128-bit, 16-byte hex value
    represented by a 32-character text string. If ivSource is set to "explicit" then this parameter
    is required and is used as the IV for encryption.

    - **Destination** *(dict) --* A directory or HTTP destination for the HLS segments, manifest
    files, and encryption keys (if enabled).

      - **DestinationRefId** *(string) --* Placeholder documentation for __string

    - **DirectoryStructure** *(string) --* Place segments in subdirectories.

    - **EncryptionType** *(string) --* Encrypts the segments with the given encryption scheme.
    Exclude this parameter if no encryption is desired.

    - **HlsCdnSettings** *(dict) --* Parameters that control interactions with the CDN.

      - **HlsAkamaiSettings** *(dict) --* Hls Akamai Settings

        - **ConnectionRetryInterval** *(integer) --* Number of seconds to wait before retrying
        connection to the CDN if the connection is lost.

        - **FilecacheDuration** *(integer) --* Size in seconds of file cache for streaming outputs.

        - **HttpTransferMode** *(string) --* Specify whether or not to use chunked transfer encoding
        to Akamai. User should contact Akamai to enable this feature.

        - **NumRetries** *(integer) --* Number of retry attempts that will be made before the Live
        Event is put into an error state.

        - **RestartDelay** *(integer) --* If a streaming output fails, number of seconds to wait
        until a restart is initiated. A value of 0 means never restart.

        - **Salt** *(string) --* Salt for authenticated Akamai.

        - **Token** *(string) --* Token parameter for authenticated akamai. If not specified, _gda_
        is used.

      - **HlsBasicPutSettings** *(dict) --* Hls Basic Put Settings

        - **ConnectionRetryInterval** *(integer) --* Number of seconds to wait before retrying
        connection to the CDN if the connection is lost.

        - **FilecacheDuration** *(integer) --* Size in seconds of file cache for streaming outputs.

        - **NumRetries** *(integer) --* Number of retry attempts that will be made before the Live
        Event is put into an error state.

        - **RestartDelay** *(integer) --* If a streaming output fails, number of seconds to wait
        until a restart is initiated. A value of 0 means never restart.

      - **HlsMediaStoreSettings** *(dict) --* Hls Media Store Settings

        - **ConnectionRetryInterval** *(integer) --* Number of seconds to wait before retrying
        connection to the CDN if the connection is lost.

        - **FilecacheDuration** *(integer) --* Size in seconds of file cache for streaming outputs.

        - **MediaStoreStorageClass** *(string) --* When set to temporal, output files are stored in
        non-persistent memory for faster reading and writing.

        - **NumRetries** *(integer) --* Number of retry attempts that will be made before the Live
        Event is put into an error state.

        - **RestartDelay** *(integer) --* If a streaming output fails, number of seconds to wait
        until a restart is initiated. A value of 0 means never restart.

      - **HlsWebdavSettings** *(dict) --* Hls Webdav Settings

        - **ConnectionRetryInterval** *(integer) --* Number of seconds to wait before retrying
        connection to the CDN if the connection is lost.

        - **FilecacheDuration** *(integer) --* Size in seconds of file cache for streaming outputs.

        - **HttpTransferMode** *(string) --* Specify whether or not to use chunked transfer encoding
        to WebDAV.

        - **NumRetries** *(integer) --* Number of retry attempts that will be made before the Live
        Event is put into an error state.

        - **RestartDelay** *(integer) --* If a streaming output fails, number of seconds to wait
        until a restart is initiated. A value of 0 means never restart.

    - **IFrameOnlyPlaylists** *(string) --* DISABLED: Do not create an I-frame-only manifest, but do
    create the master and media manifests (according to the Output Selection field). STANDARD:
    Create an I-frame-only manifest for each output that contains video, as well as the other
    manifests (according to the Output Selection field). The I-frame manifest contains a
    #EXT-X-I-FRAMES-ONLY tag to indicate it is I-frame only, and one or more #EXT-X-BYTERANGE
    entries identifying the I-frame position. For example, #EXT-X-BYTERANGE:160364@1461888"

    - **IndexNSegments** *(integer) --* Applies only if Mode field is LIVE. Specifies the maximum
    number of segments in the media manifest file. After this maximum, older segments are removed
    from the media manifest. This number must be less than or equal to the Keep Segments field.

    - **InputLossAction** *(string) --* Parameter that control output group behavior on input loss.

    - **IvInManifest** *(string) --* For use with encryptionType. The IV (Initialization Vector) is
    a 128-bit number used in conjunction with the key for encrypting blocks. If set to "include", IV
    is listed in the manifest, otherwise the IV is not in the manifest.

    - **IvSource** *(string) --* For use with encryptionType. The IV (Initialization Vector) is a
    128-bit number used in conjunction with the key for encrypting blocks. If this setting is
    "followsSegmentNumber", it will cause the IV to change every segment (to match the segment
    number). If this is set to "explicit", you must enter a constantIv value.

    - **KeepSegments** *(integer) --* Applies only if Mode field is LIVE. Specifies the number of
    media segments (.ts files) to retain in the destination directory.

    - **KeyFormat** *(string) --* The value specifies how the key is represented in the resource
    identified by the URI. If parameter is absent, an implicit value of "identity" is used. A
    reverse DNS string can also be given.

    - **KeyFormatVersions** *(string) --* Either a single positive integer version value or a slash
    delimited list of version values (1/2/3).

    - **KeyProviderSettings** *(dict) --* The key provider settings.

      - **StaticKeySettings** *(dict) --* Static Key Settings

        - **KeyProviderServer** *(dict) --* The URL of the license server used for protecting
        content.

          - **PasswordParam** *(string) --* key used to extract the password from EC2 Parameter
          store

          - **Uri** *(string) --* Uniform Resource Identifier - This should be a path to a file
          accessible to the Live system (eg. a http:// URI) depending on the output type. For
          example, a RTMP destination should have a uri simliar to: "rtmp://fmsserver/live".

          - **Username** *(string) --* Documentation update needed

        - **StaticKeyValue** *(string) --* Static key value as a 32 character hexadecimal string.

    - **ManifestCompression** *(string) --* When set to gzip, compresses HLS playlist.

    - **ManifestDurationFormat** *(string) --* Indicates whether the output manifest should use
    floating point or integer values for segment duration.

    - **MinSegmentLength** *(integer) --* When set, minimumSegmentLength is enforced by looking
    ahead and back within the specified range for a nearby avail and extending the segment size if
    needed.

    - **Mode** *(string) --* If "vod", all segments are indexed and kept permanently in the
    destination and manifest. If "live", only the number segments specified in keepSegments and
    indexNSegments are kept; newer segments replace older segments, which may prevent players from
    rewinding all the way to the beginning of the event. VOD mode uses HLS EXT-X-PLAYLIST-TYPE of
    EVENT while the channel is running, converting it to a "VOD" type manifest on completion of the
    stream.

    - **OutputSelection** *(string) --* MANIFESTSANDSEGMENTS: Generates manifests (master manifest,
    if applicable, and media manifests) for this output group. SEGMENTSONLY: Does not generate any
    manifests for this output group.

    - **ProgramDateTime** *(string) --* Includes or excludes EXT-X-PROGRAM-DATE-TIME tag in .m3u8
    manifest files. The value is calculated as follows: either the program date and time are
    initialized using the input timecode source, or the time is initialized using the input timecode
    source and the date is initialized using the timestampOffset.

    - **ProgramDateTimePeriod** *(integer) --* Period of insertion of EXT-X-PROGRAM-DATE-TIME entry,
    in seconds.

    - **RedundantManifest** *(string) --* ENABLED: The master manifest (.m3u8 file) for each
    pipeline includes information about both pipelines: first its own media files, then the media
    files of the other pipeline. This feature allows playout device that support stale manifest
    detection to switch from one manifest to the other, when the current manifest seems to be stale.
    There are still two destinations and two master manifests, but both master manifests reference
    the media files from both pipelines. DISABLED: The master manifest (.m3u8 file) for each
    pipeline includes information about its own pipeline only. For an HLS output group with
    MediaPackage as the destination, the DISABLED behavior is always followed. MediaPackage
    regenerates the manifests it serves to players so a redundant manifest from MediaLive is
    irrelevant.

    - **SegmentLength** *(integer) --* Length of MPEG-2 Transport Stream segments to create (in
    seconds). Note that segments will end on the next keyframe after this number of seconds, so
    actual segment length may be longer.

    - **SegmentationMode** *(string) --* useInputSegmentation has been deprecated. The configured
    segment size is always used.

    - **SegmentsPerSubdirectory** *(integer) --* Number of segments to write to a subdirectory
    before starting a new one. directoryStructure must be subdirectoryPerStream for this setting to
    have an effect.

    - **StreamInfResolution** *(string) --* Include or exclude RESOLUTION attribute for video in
    EXT-X-STREAM-INF tag of variant manifest.

    - **TimedMetadataId3Frame** *(string) --* Indicates ID3 frame that has the timecode.

    - **TimedMetadataId3Period** *(integer) --* Timed Metadata interval in seconds.

    - **TimestampDeltaMilliseconds** *(integer) --* Provides an extra millisecond delta offset to
    fine tune the timestamps.

    - **TsFileMode** *(string) --* SEGMENTEDFILES: Emit the program as segments - multiple .ts media
    files. SINGLEFILE: Applies only if Mode field is VOD. Emit the program as a single .ts media
    file. The media manifest includes #EXT-X-BYTERANGE tags to index segments for playback. A
    typical use for this value is when sending the output to AWS Elemental MediaConvert, which can
    accept only a single media file. Playback while the channel is running is not guaranteed due to
    HTTP server caching.
    """


_ClientStartChannelResponseEncoderSettingsOutputGroupsOutputGroupSettingsMediaPackageGroupSettingsDestinationTypeDef = TypedDict(
    "_ClientStartChannelResponseEncoderSettingsOutputGroupsOutputGroupSettingsMediaPackageGroupSettingsDestinationTypeDef",
    {"DestinationRefId": str},
    total=False,
)


class ClientStartChannelResponseEncoderSettingsOutputGroupsOutputGroupSettingsMediaPackageGroupSettingsDestinationTypeDef(
    _ClientStartChannelResponseEncoderSettingsOutputGroupsOutputGroupSettingsMediaPackageGroupSettingsDestinationTypeDef
):
    """
    Type definition for
    `ClientStartChannelResponseEncoderSettingsOutputGroupsOutputGroupSettingsMediaPackageGroupSettings`
    `Destination`

    - **DestinationRefId** *(string) --* Placeholder documentation for __string
    """


_ClientStartChannelResponseEncoderSettingsOutputGroupsOutputGroupSettingsMediaPackageGroupSettingsTypeDef = TypedDict(
    "_ClientStartChannelResponseEncoderSettingsOutputGroupsOutputGroupSettingsMediaPackageGroupSettingsTypeDef",
    {
        "Destination": ClientStartChannelResponseEncoderSettingsOutputGroupsOutputGroupSettingsMediaPackageGroupSettingsDestinationTypeDef
    },
    total=False,
)


class ClientStartChannelResponseEncoderSettingsOutputGroupsOutputGroupSettingsMediaPackageGroupSettingsTypeDef(
    _ClientStartChannelResponseEncoderSettingsOutputGroupsOutputGroupSettingsMediaPackageGroupSettingsTypeDef
):
    """
    Type definition for `ClientStartChannelResponseEncoderSettingsOutputGroupsOutputGroupSettings`
    `MediaPackageGroupSettings`

    - **Destination** *(dict) --* MediaPackage channel destination.

      - **DestinationRefId** *(string) --* Placeholder documentation for __string
    """


_ClientStartChannelResponseEncoderSettingsOutputGroupsOutputGroupSettingsMsSmoothGroupSettingsDestinationTypeDef = TypedDict(
    "_ClientStartChannelResponseEncoderSettingsOutputGroupsOutputGroupSettingsMsSmoothGroupSettingsDestinationTypeDef",
    {"DestinationRefId": str},
    total=False,
)


class ClientStartChannelResponseEncoderSettingsOutputGroupsOutputGroupSettingsMsSmoothGroupSettingsDestinationTypeDef(
    _ClientStartChannelResponseEncoderSettingsOutputGroupsOutputGroupSettingsMsSmoothGroupSettingsDestinationTypeDef
):
    """
    Type definition for
    `ClientStartChannelResponseEncoderSettingsOutputGroupsOutputGroupSettingsMsSmoothGroupSettings`
    `Destination`

    - **DestinationRefId** *(string) --* Placeholder documentation for __string
    """


_ClientStartChannelResponseEncoderSettingsOutputGroupsOutputGroupSettingsMsSmoothGroupSettingsTypeDef = TypedDict(
    "_ClientStartChannelResponseEncoderSettingsOutputGroupsOutputGroupSettingsMsSmoothGroupSettingsTypeDef",
    {
        "AcquisitionPointId": str,
        "AudioOnlyTimecodeControl": str,
        "CertificateMode": str,
        "ConnectionRetryInterval": int,
        "Destination": ClientStartChannelResponseEncoderSettingsOutputGroupsOutputGroupSettingsMsSmoothGroupSettingsDestinationTypeDef,
        "EventId": str,
        "EventIdMode": str,
        "EventStopBehavior": str,
        "FilecacheDuration": int,
        "FragmentLength": int,
        "InputLossAction": str,
        "NumRetries": int,
        "RestartDelay": int,
        "SegmentationMode": str,
        "SendDelayMs": int,
        "SparseTrackType": str,
        "StreamManifestBehavior": str,
        "TimestampOffset": str,
        "TimestampOffsetMode": str,
    },
    total=False,
)


class ClientStartChannelResponseEncoderSettingsOutputGroupsOutputGroupSettingsMsSmoothGroupSettingsTypeDef(
    _ClientStartChannelResponseEncoderSettingsOutputGroupsOutputGroupSettingsMsSmoothGroupSettingsTypeDef
):
    """
    Type definition for `ClientStartChannelResponseEncoderSettingsOutputGroupsOutputGroupSettings`
    `MsSmoothGroupSettings`

    - **AcquisitionPointId** *(string) --* The value of the "Acquisition Point Identity" element
    used in each message placed in the sparse track. Only enabled if sparseTrackType is not "none".

    - **AudioOnlyTimecodeControl** *(string) --* If set to passthrough for an audio-only MS Smooth
    output, the fragment absolute time will be set to the current timecode. This option does not
    write timecodes to the audio elementary stream.

    - **CertificateMode** *(string) --* If set to verifyAuthenticity, verify the https certificate
    chain to a trusted Certificate Authority (CA). This will cause https outputs to self-signed
    certificates to fail.

    - **ConnectionRetryInterval** *(integer) --* Number of seconds to wait before retrying
    connection to the IIS server if the connection is lost. Content will be cached during this time
    and the cache will be be delivered to the IIS server once the connection is re-established.

    - **Destination** *(dict) --* Smooth Streaming publish point on an IIS server. Elemental Live
    acts as a "Push" encoder to IIS.

      - **DestinationRefId** *(string) --* Placeholder documentation for __string

    - **EventId** *(string) --* MS Smooth event ID to be sent to the IIS server. Should only be
    specified if eventIdMode is set to useConfigured.

    - **EventIdMode** *(string) --* Specifies whether or not to send an event ID to the IIS server.
    If no event ID is sent and the same Live Event is used without changing the publishing point,
    clients might see cached video from the previous run. Options: - "useConfigured" - use the value
    provided in eventId - "useTimestamp" - generate and send an event ID based on the current
    timestamp - "noEventId" - do not send an event ID to the IIS server.

    - **EventStopBehavior** *(string) --* When set to sendEos, send EOS signal to IIS server when
    stopping the event

    - **FilecacheDuration** *(integer) --* Size in seconds of file cache for streaming outputs.

    - **FragmentLength** *(integer) --* Length of mp4 fragments to generate (in seconds). Fragment
    length must be compatible with GOP size and framerate.

    - **InputLossAction** *(string) --* Parameter that control output group behavior on input loss.

    - **NumRetries** *(integer) --* Number of retry attempts.

    - **RestartDelay** *(integer) --* Number of seconds before initiating a restart due to output
    failure, due to exhausting the numRetries on one segment, or exceeding filecacheDuration.

    - **SegmentationMode** *(string) --* useInputSegmentation has been deprecated. The configured
    segment size is always used.

    - **SendDelayMs** *(integer) --* Number of milliseconds to delay the output from the second
    pipeline.

    - **SparseTrackType** *(string) --* If set to scte35, use incoming SCTE-35 messages to generate
    a sparse track in this group of MS-Smooth outputs.

    - **StreamManifestBehavior** *(string) --* When set to send, send stream manifest so publishing
    point doesn't start until all streams start.

    - **TimestampOffset** *(string) --* Timestamp offset for the event. Only used if
    timestampOffsetMode is set to useConfiguredOffset.

    - **TimestampOffsetMode** *(string) --* Type of timestamp date offset to use. -
    useEventStartDate: Use the date the event was started as the offset - useConfiguredOffset: Use
    an explicitly configured date as the offset
    """


_ClientStartChannelResponseEncoderSettingsOutputGroupsOutputGroupSettingsRtmpGroupSettingsTypeDef = TypedDict(
    "_ClientStartChannelResponseEncoderSettingsOutputGroupsOutputGroupSettingsRtmpGroupSettingsTypeDef",
    {
        "AuthenticationScheme": str,
        "CacheFullBehavior": str,
        "CacheLength": int,
        "CaptionData": str,
        "InputLossAction": str,
        "RestartDelay": int,
    },
    total=False,
)


class ClientStartChannelResponseEncoderSettingsOutputGroupsOutputGroupSettingsRtmpGroupSettingsTypeDef(
    _ClientStartChannelResponseEncoderSettingsOutputGroupsOutputGroupSettingsRtmpGroupSettingsTypeDef
):
    """
    Type definition for `ClientStartChannelResponseEncoderSettingsOutputGroupsOutputGroupSettings`
    `RtmpGroupSettings`

    - **AuthenticationScheme** *(string) --* Authentication scheme to use when connecting with CDN

    - **CacheFullBehavior** *(string) --* Controls behavior when content cache fills up. If remote
    origin server stalls the RTMP connection and does not accept content fast enough the 'Media
    Cache' will fill up. When the cache reaches the duration specified by cacheLength the cache will
    stop accepting new content. If set to disconnectImmediately, the RTMP output will force a
    disconnect. Clear the media cache, and reconnect after restartDelay seconds. If set to
    waitForServer, the RTMP output will wait up to 5 minutes to allow the origin server to begin
    accepting data again.

    - **CacheLength** *(integer) --* Cache length, in seconds, is used to calculate buffer size.

    - **CaptionData** *(string) --* Controls the types of data that passes to onCaptionInfo outputs.
    If set to 'all' then 608 and 708 carried DTVCC data will be passed. If set to
    'field1AndField2608' then DTVCC data will be stripped out, but 608 data from both fields will be
    passed. If set to 'field1608' then only the data carried in 608 from field 1 video will be
    passed.

    - **InputLossAction** *(string) --* Controls the behavior of this RTMP group if input becomes
    unavailable. - emitOutput: Emit a slate until input returns. - pauseOutput: Stop transmitting
    data until input returns. This does not close the underlying RTMP connection.

    - **RestartDelay** *(integer) --* If a streaming output fails, number of seconds to wait until a
    restart is initiated. A value of 0 means never restart.
    """


_ClientStartChannelResponseEncoderSettingsOutputGroupsOutputGroupSettingsUdpGroupSettingsTypeDef = TypedDict(
    "_ClientStartChannelResponseEncoderSettingsOutputGroupsOutputGroupSettingsUdpGroupSettingsTypeDef",
    {"InputLossAction": str, "TimedMetadataId3Frame": str, "TimedMetadataId3Period": int},
    total=False,
)


class ClientStartChannelResponseEncoderSettingsOutputGroupsOutputGroupSettingsUdpGroupSettingsTypeDef(
    _ClientStartChannelResponseEncoderSettingsOutputGroupsOutputGroupSettingsUdpGroupSettingsTypeDef
):
    """
    Type definition for `ClientStartChannelResponseEncoderSettingsOutputGroupsOutputGroupSettings`
    `UdpGroupSettings`

    - **InputLossAction** *(string) --* Specifies behavior of last resort when input video is lost,
    and no more backup inputs are available. When dropTs is selected the entire transport stream
    will stop being emitted. When dropProgram is selected the program can be dropped from the
    transport stream (and replaced with null packets to meet the TS bitrate requirement). Or, when
    emitProgram is chosen the transport stream will continue to be produced normally with repeat
    frames, black frames, or slate frames substituted for the absent input video.

    - **TimedMetadataId3Frame** *(string) --* Indicates ID3 frame that has the timecode.

    - **TimedMetadataId3Period** *(integer) --* Timed Metadata interval in seconds.
    """


_ClientStartChannelResponseEncoderSettingsOutputGroupsOutputGroupSettingsTypeDef = TypedDict(
    "_ClientStartChannelResponseEncoderSettingsOutputGroupsOutputGroupSettingsTypeDef",
    {
        "ArchiveGroupSettings": ClientStartChannelResponseEncoderSettingsOutputGroupsOutputGroupSettingsArchiveGroupSettingsTypeDef,
        "FrameCaptureGroupSettings": ClientStartChannelResponseEncoderSettingsOutputGroupsOutputGroupSettingsFrameCaptureGroupSettingsTypeDef,
        "HlsGroupSettings": ClientStartChannelResponseEncoderSettingsOutputGroupsOutputGroupSettingsHlsGroupSettingsTypeDef,
        "MediaPackageGroupSettings": ClientStartChannelResponseEncoderSettingsOutputGroupsOutputGroupSettingsMediaPackageGroupSettingsTypeDef,
        "MsSmoothGroupSettings": ClientStartChannelResponseEncoderSettingsOutputGroupsOutputGroupSettingsMsSmoothGroupSettingsTypeDef,
        "MultiplexGroupSettings": Dict,
        "RtmpGroupSettings": ClientStartChannelResponseEncoderSettingsOutputGroupsOutputGroupSettingsRtmpGroupSettingsTypeDef,
        "UdpGroupSettings": ClientStartChannelResponseEncoderSettingsOutputGroupsOutputGroupSettingsUdpGroupSettingsTypeDef,
    },
    total=False,
)


class ClientStartChannelResponseEncoderSettingsOutputGroupsOutputGroupSettingsTypeDef(
    _ClientStartChannelResponseEncoderSettingsOutputGroupsOutputGroupSettingsTypeDef
):
    """
    Type definition for `ClientStartChannelResponseEncoderSettingsOutputGroups`
    `OutputGroupSettings`

    - **ArchiveGroupSettings** *(dict) --* Archive Group Settings

      - **Destination** *(dict) --* A directory and base filename where archive files should be
      written.

        - **DestinationRefId** *(string) --* Placeholder documentation for __string

      - **RolloverInterval** *(integer) --* Number of seconds to write to archive file before
      closing and starting a new one.

    - **FrameCaptureGroupSettings** *(dict) --* Frame Capture Group Settings

      - **Destination** *(dict) --* The destination for the frame capture files. Either the URI for
      an Amazon S3 bucket and object, plus a file name prefix (for example,
      s3ssl://sportsDelivery/highlights/20180820/curling_) or the URI for a MediaStore container,
      plus a file name prefix (for example, mediastoressl://sportsDelivery/20180820/curling_). The
      final file names consist of the prefix from the destination field (for example, "curling_") +
      name modifier + the counter (5 digits, starting from 00001) + extension (which is always
      .jpg). For example, curlingLow.00001.jpg

        - **DestinationRefId** *(string) --* Placeholder documentation for __string

    - **HlsGroupSettings** *(dict) --* Hls Group Settings

      - **AdMarkers** *(list) --* Choose one or more ad marker types to pass SCTE35 signals through
      to this group of Apple HLS outputs.

        - *(string) --* Hls Ad Markers

      - **BaseUrlContent** *(string) --* A partial URI prefix that will be prepended to each output
      in the media .m3u8 file. Can be used if base manifest is delivered from a different URL than
      the main .m3u8 file.

      - **BaseUrlManifest** *(string) --* A partial URI prefix that will be prepended to each output
      in the media .m3u8 file. Can be used if base manifest is delivered from a different URL than
      the main .m3u8 file.

      - **CaptionLanguageMappings** *(list) --* Mapping of up to 4 caption channels to caption
      languages. Is only meaningful if captionLanguageSetting is set to "insert".

        - *(dict) --* Maps a caption channel to an ISO 693-2 language code
        (http://www.loc.gov/standards/iso639-2), with an optional description.

          - **CaptionChannel** *(integer) --* The closed caption channel being described by this
          CaptionLanguageMapping. Each channel mapping must have a unique channel number (maximum of
          4)

          - **LanguageCode** *(string) --* Three character ISO 639-2 language code (see
          http://www.loc.gov/standards/iso639-2)

          - **LanguageDescription** *(string) --* Textual description of language

      - **CaptionLanguageSetting** *(string) --* Applies only to 608 Embedded output captions.
      insert: Include CLOSED-CAPTIONS lines in the manifest. Specify at least one language in the
      CC1 Language Code field. One CLOSED-CAPTION line is added for each Language Code you specify.
      Make sure to specify the languages in the order in which they appear in the original source
      (if the source is embedded format) or the order of the caption selectors (if the source is
      other than embedded). Otherwise, languages in the manifest will not match up properly with the
      output captions. none: Include CLOSED-CAPTIONS=NONE line in the manifest. omit: Omit any
      CLOSED-CAPTIONS line from the manifest.

      - **ClientCache** *(string) --* When set to "disabled", sets the #EXT-X-ALLOW-CACHE:no tag in
      the manifest, which prevents clients from saving media segments for later replay.

      - **CodecSpecification** *(string) --* Specification to use (RFC-6381 or the default RFC-4281)
      during m3u8 playlist generation.

      - **ConstantIv** *(string) --* For use with encryptionType. This is a 128-bit, 16-byte hex
      value represented by a 32-character text string. If ivSource is set to "explicit" then this
      parameter is required and is used as the IV for encryption.

      - **Destination** *(dict) --* A directory or HTTP destination for the HLS segments, manifest
      files, and encryption keys (if enabled).

        - **DestinationRefId** *(string) --* Placeholder documentation for __string

      - **DirectoryStructure** *(string) --* Place segments in subdirectories.

      - **EncryptionType** *(string) --* Encrypts the segments with the given encryption scheme.
      Exclude this parameter if no encryption is desired.

      - **HlsCdnSettings** *(dict) --* Parameters that control interactions with the CDN.

        - **HlsAkamaiSettings** *(dict) --* Hls Akamai Settings

          - **ConnectionRetryInterval** *(integer) --* Number of seconds to wait before retrying
          connection to the CDN if the connection is lost.

          - **FilecacheDuration** *(integer) --* Size in seconds of file cache for streaming
          outputs.

          - **HttpTransferMode** *(string) --* Specify whether or not to use chunked transfer
          encoding to Akamai. User should contact Akamai to enable this feature.

          - **NumRetries** *(integer) --* Number of retry attempts that will be made before the Live
          Event is put into an error state.

          - **RestartDelay** *(integer) --* If a streaming output fails, number of seconds to wait
          until a restart is initiated. A value of 0 means never restart.

          - **Salt** *(string) --* Salt for authenticated Akamai.

          - **Token** *(string) --* Token parameter for authenticated akamai. If not specified,
          _gda_ is used.

        - **HlsBasicPutSettings** *(dict) --* Hls Basic Put Settings

          - **ConnectionRetryInterval** *(integer) --* Number of seconds to wait before retrying
          connection to the CDN if the connection is lost.

          - **FilecacheDuration** *(integer) --* Size in seconds of file cache for streaming
          outputs.

          - **NumRetries** *(integer) --* Number of retry attempts that will be made before the Live
          Event is put into an error state.

          - **RestartDelay** *(integer) --* If a streaming output fails, number of seconds to wait
          until a restart is initiated. A value of 0 means never restart.

        - **HlsMediaStoreSettings** *(dict) --* Hls Media Store Settings

          - **ConnectionRetryInterval** *(integer) --* Number of seconds to wait before retrying
          connection to the CDN if the connection is lost.

          - **FilecacheDuration** *(integer) --* Size in seconds of file cache for streaming
          outputs.

          - **MediaStoreStorageClass** *(string) --* When set to temporal, output files are stored
          in non-persistent memory for faster reading and writing.

          - **NumRetries** *(integer) --* Number of retry attempts that will be made before the Live
          Event is put into an error state.

          - **RestartDelay** *(integer) --* If a streaming output fails, number of seconds to wait
          until a restart is initiated. A value of 0 means never restart.

        - **HlsWebdavSettings** *(dict) --* Hls Webdav Settings

          - **ConnectionRetryInterval** *(integer) --* Number of seconds to wait before retrying
          connection to the CDN if the connection is lost.

          - **FilecacheDuration** *(integer) --* Size in seconds of file cache for streaming
          outputs.

          - **HttpTransferMode** *(string) --* Specify whether or not to use chunked transfer
          encoding to WebDAV.

          - **NumRetries** *(integer) --* Number of retry attempts that will be made before the Live
          Event is put into an error state.

          - **RestartDelay** *(integer) --* If a streaming output fails, number of seconds to wait
          until a restart is initiated. A value of 0 means never restart.

      - **IFrameOnlyPlaylists** *(string) --* DISABLED: Do not create an I-frame-only manifest, but
      do create the master and media manifests (according to the Output Selection field). STANDARD:
      Create an I-frame-only manifest for each output that contains video, as well as the other
      manifests (according to the Output Selection field). The I-frame manifest contains a
      #EXT-X-I-FRAMES-ONLY tag to indicate it is I-frame only, and one or more #EXT-X-BYTERANGE
      entries identifying the I-frame position. For example, #EXT-X-BYTERANGE:160364@1461888"

      - **IndexNSegments** *(integer) --* Applies only if Mode field is LIVE. Specifies the maximum
      number of segments in the media manifest file. After this maximum, older segments are removed
      from the media manifest. This number must be less than or equal to the Keep Segments field.

      - **InputLossAction** *(string) --* Parameter that control output group behavior on input
      loss.

      - **IvInManifest** *(string) --* For use with encryptionType. The IV (Initialization Vector)
      is a 128-bit number used in conjunction with the key for encrypting blocks. If set to
      "include", IV is listed in the manifest, otherwise the IV is not in the manifest.

      - **IvSource** *(string) --* For use with encryptionType. The IV (Initialization Vector) is a
      128-bit number used in conjunction with the key for encrypting blocks. If this setting is
      "followsSegmentNumber", it will cause the IV to change every segment (to match the segment
      number). If this is set to "explicit", you must enter a constantIv value.

      - **KeepSegments** *(integer) --* Applies only if Mode field is LIVE. Specifies the number of
      media segments (.ts files) to retain in the destination directory.

      - **KeyFormat** *(string) --* The value specifies how the key is represented in the resource
      identified by the URI. If parameter is absent, an implicit value of "identity" is used. A
      reverse DNS string can also be given.

      - **KeyFormatVersions** *(string) --* Either a single positive integer version value or a
      slash delimited list of version values (1/2/3).

      - **KeyProviderSettings** *(dict) --* The key provider settings.

        - **StaticKeySettings** *(dict) --* Static Key Settings

          - **KeyProviderServer** *(dict) --* The URL of the license server used for protecting
          content.

            - **PasswordParam** *(string) --* key used to extract the password from EC2 Parameter
            store

            - **Uri** *(string) --* Uniform Resource Identifier - This should be a path to a file
            accessible to the Live system (eg. a http:// URI) depending on the output type. For
            example, a RTMP destination should have a uri simliar to: "rtmp://fmsserver/live".

            - **Username** *(string) --* Documentation update needed

          - **StaticKeyValue** *(string) --* Static key value as a 32 character hexadecimal string.

      - **ManifestCompression** *(string) --* When set to gzip, compresses HLS playlist.

      - **ManifestDurationFormat** *(string) --* Indicates whether the output manifest should use
      floating point or integer values for segment duration.

      - **MinSegmentLength** *(integer) --* When set, minimumSegmentLength is enforced by looking
      ahead and back within the specified range for a nearby avail and extending the segment size if
      needed.

      - **Mode** *(string) --* If "vod", all segments are indexed and kept permanently in the
      destination and manifest. If "live", only the number segments specified in keepSegments and
      indexNSegments are kept; newer segments replace older segments, which may prevent players from
      rewinding all the way to the beginning of the event. VOD mode uses HLS EXT-X-PLAYLIST-TYPE of
      EVENT while the channel is running, converting it to a "VOD" type manifest on completion of
      the stream.

      - **OutputSelection** *(string) --* MANIFESTSANDSEGMENTS: Generates manifests (master
      manifest, if applicable, and media manifests) for this output group. SEGMENTSONLY: Does not
      generate any manifests for this output group.

      - **ProgramDateTime** *(string) --* Includes or excludes EXT-X-PROGRAM-DATE-TIME tag in .m3u8
      manifest files. The value is calculated as follows: either the program date and time are
      initialized using the input timecode source, or the time is initialized using the input
      timecode source and the date is initialized using the timestampOffset.

      - **ProgramDateTimePeriod** *(integer) --* Period of insertion of EXT-X-PROGRAM-DATE-TIME
      entry, in seconds.

      - **RedundantManifest** *(string) --* ENABLED: The master manifest (.m3u8 file) for each
      pipeline includes information about both pipelines: first its own media files, then the media
      files of the other pipeline. This feature allows playout device that support stale manifest
      detection to switch from one manifest to the other, when the current manifest seems to be
      stale. There are still two destinations and two master manifests, but both master manifests
      reference the media files from both pipelines. DISABLED: The master manifest (.m3u8 file) for
      each pipeline includes information about its own pipeline only. For an HLS output group with
      MediaPackage as the destination, the DISABLED behavior is always followed. MediaPackage
      regenerates the manifests it serves to players so a redundant manifest from MediaLive is
      irrelevant.

      - **SegmentLength** *(integer) --* Length of MPEG-2 Transport Stream segments to create (in
      seconds). Note that segments will end on the next keyframe after this number of seconds, so
      actual segment length may be longer.

      - **SegmentationMode** *(string) --* useInputSegmentation has been deprecated. The configured
      segment size is always used.

      - **SegmentsPerSubdirectory** *(integer) --* Number of segments to write to a subdirectory
      before starting a new one. directoryStructure must be subdirectoryPerStream for this setting
      to have an effect.

      - **StreamInfResolution** *(string) --* Include or exclude RESOLUTION attribute for video in
      EXT-X-STREAM-INF tag of variant manifest.

      - **TimedMetadataId3Frame** *(string) --* Indicates ID3 frame that has the timecode.

      - **TimedMetadataId3Period** *(integer) --* Timed Metadata interval in seconds.

      - **TimestampDeltaMilliseconds** *(integer) --* Provides an extra millisecond delta offset to
      fine tune the timestamps.

      - **TsFileMode** *(string) --* SEGMENTEDFILES: Emit the program as segments - multiple .ts
      media files. SINGLEFILE: Applies only if Mode field is VOD. Emit the program as a single .ts
      media file. The media manifest includes #EXT-X-BYTERANGE tags to index segments for playback.
      A typical use for this value is when sending the output to AWS Elemental MediaConvert, which
      can accept only a single media file. Playback while the channel is running is not guaranteed
      due to HTTP server caching.

    - **MediaPackageGroupSettings** *(dict) --* Media Package Group Settings

      - **Destination** *(dict) --* MediaPackage channel destination.

        - **DestinationRefId** *(string) --* Placeholder documentation for __string

    - **MsSmoothGroupSettings** *(dict) --* Ms Smooth Group Settings

      - **AcquisitionPointId** *(string) --* The value of the "Acquisition Point Identity" element
      used in each message placed in the sparse track. Only enabled if sparseTrackType is not
      "none".

      - **AudioOnlyTimecodeControl** *(string) --* If set to passthrough for an audio-only MS Smooth
      output, the fragment absolute time will be set to the current timecode. This option does not
      write timecodes to the audio elementary stream.

      - **CertificateMode** *(string) --* If set to verifyAuthenticity, verify the https certificate
      chain to a trusted Certificate Authority (CA). This will cause https outputs to self-signed
      certificates to fail.

      - **ConnectionRetryInterval** *(integer) --* Number of seconds to wait before retrying
      connection to the IIS server if the connection is lost. Content will be cached during this
      time and the cache will be be delivered to the IIS server once the connection is
      re-established.

      - **Destination** *(dict) --* Smooth Streaming publish point on an IIS server. Elemental Live
      acts as a "Push" encoder to IIS.

        - **DestinationRefId** *(string) --* Placeholder documentation for __string

      - **EventId** *(string) --* MS Smooth event ID to be sent to the IIS server. Should only be
      specified if eventIdMode is set to useConfigured.

      - **EventIdMode** *(string) --* Specifies whether or not to send an event ID to the IIS
      server. If no event ID is sent and the same Live Event is used without changing the publishing
      point, clients might see cached video from the previous run. Options: - "useConfigured" - use
      the value provided in eventId - "useTimestamp" - generate and send an event ID based on the
      current timestamp - "noEventId" - do not send an event ID to the IIS server.

      - **EventStopBehavior** *(string) --* When set to sendEos, send EOS signal to IIS server when
      stopping the event

      - **FilecacheDuration** *(integer) --* Size in seconds of file cache for streaming outputs.

      - **FragmentLength** *(integer) --* Length of mp4 fragments to generate (in seconds). Fragment
      length must be compatible with GOP size and framerate.

      - **InputLossAction** *(string) --* Parameter that control output group behavior on input
      loss.

      - **NumRetries** *(integer) --* Number of retry attempts.

      - **RestartDelay** *(integer) --* Number of seconds before initiating a restart due to output
      failure, due to exhausting the numRetries on one segment, or exceeding filecacheDuration.

      - **SegmentationMode** *(string) --* useInputSegmentation has been deprecated. The configured
      segment size is always used.

      - **SendDelayMs** *(integer) --* Number of milliseconds to delay the output from the second
      pipeline.

      - **SparseTrackType** *(string) --* If set to scte35, use incoming SCTE-35 messages to
      generate a sparse track in this group of MS-Smooth outputs.

      - **StreamManifestBehavior** *(string) --* When set to send, send stream manifest so
      publishing point doesn't start until all streams start.

      - **TimestampOffset** *(string) --* Timestamp offset for the event. Only used if
      timestampOffsetMode is set to useConfiguredOffset.

      - **TimestampOffsetMode** *(string) --* Type of timestamp date offset to use. -
      useEventStartDate: Use the date the event was started as the offset - useConfiguredOffset: Use
      an explicitly configured date as the offset

    - **MultiplexGroupSettings** *(dict) --* Multiplex Group Settings

    - **RtmpGroupSettings** *(dict) --* Rtmp Group Settings

      - **AuthenticationScheme** *(string) --* Authentication scheme to use when connecting with CDN

      - **CacheFullBehavior** *(string) --* Controls behavior when content cache fills up. If remote
      origin server stalls the RTMP connection and does not accept content fast enough the 'Media
      Cache' will fill up. When the cache reaches the duration specified by cacheLength the cache
      will stop accepting new content. If set to disconnectImmediately, the RTMP output will force a
      disconnect. Clear the media cache, and reconnect after restartDelay seconds. If set to
      waitForServer, the RTMP output will wait up to 5 minutes to allow the origin server to begin
      accepting data again.

      - **CacheLength** *(integer) --* Cache length, in seconds, is used to calculate buffer size.

      - **CaptionData** *(string) --* Controls the types of data that passes to onCaptionInfo
      outputs. If set to 'all' then 608 and 708 carried DTVCC data will be passed. If set to
      'field1AndField2608' then DTVCC data will be stripped out, but 608 data from both fields will
      be passed. If set to 'field1608' then only the data carried in 608 from field 1 video will be
      passed.

      - **InputLossAction** *(string) --* Controls the behavior of this RTMP group if input becomes
      unavailable. - emitOutput: Emit a slate until input returns. - pauseOutput: Stop transmitting
      data until input returns. This does not close the underlying RTMP connection.

      - **RestartDelay** *(integer) --* If a streaming output fails, number of seconds to wait until
      a restart is initiated. A value of 0 means never restart.

    - **UdpGroupSettings** *(dict) --* Udp Group Settings

      - **InputLossAction** *(string) --* Specifies behavior of last resort when input video is
      lost, and no more backup inputs are available. When dropTs is selected the entire transport
      stream will stop being emitted. When dropProgram is selected the program can be dropped from
      the transport stream (and replaced with null packets to meet the TS bitrate requirement). Or,
      when emitProgram is chosen the transport stream will continue to be produced normally with
      repeat frames, black frames, or slate frames substituted for the absent input video.

      - **TimedMetadataId3Frame** *(string) --* Indicates ID3 frame that has the timecode.

      - **TimedMetadataId3Period** *(integer) --* Timed Metadata interval in seconds.
    """


_ClientStartChannelResponseEncoderSettingsOutputGroupsOutputsOutputSettingsArchiveOutputSettingsContainerSettingsM2tsSettingsDvbNitSettingsTypeDef = TypedDict(
    "_ClientStartChannelResponseEncoderSettingsOutputGroupsOutputsOutputSettingsArchiveOutputSettingsContainerSettingsM2tsSettingsDvbNitSettingsTypeDef",
    {"NetworkId": int, "NetworkName": str, "RepInterval": int},
    total=False,
)


class ClientStartChannelResponseEncoderSettingsOutputGroupsOutputsOutputSettingsArchiveOutputSettingsContainerSettingsM2tsSettingsDvbNitSettingsTypeDef(
    _ClientStartChannelResponseEncoderSettingsOutputGroupsOutputsOutputSettingsArchiveOutputSettingsContainerSettingsM2tsSettingsDvbNitSettingsTypeDef
):
    """
    Type definition for
    `ClientStartChannelResponseEncoderSettingsOutputGroupsOutputsOutputSettingsArchiveOutputSettingsContainerSettingsM2tsSettings`
    `DvbNitSettings`

    - **NetworkId** *(integer) --* The numeric value placed in the Network Information Table (NIT).

    - **NetworkName** *(string) --* The network name text placed in the networkNameDescriptor inside
    the Network Information Table. Maximum length is 256 characters.

    - **RepInterval** *(integer) --* The number of milliseconds between instances of this table in
    the output transport stream.
    """


_ClientStartChannelResponseEncoderSettingsOutputGroupsOutputsOutputSettingsArchiveOutputSettingsContainerSettingsM2tsSettingsDvbSdtSettingsTypeDef = TypedDict(
    "_ClientStartChannelResponseEncoderSettingsOutputGroupsOutputsOutputSettingsArchiveOutputSettingsContainerSettingsM2tsSettingsDvbSdtSettingsTypeDef",
    {"OutputSdt": str, "RepInterval": int, "ServiceName": str, "ServiceProviderName": str},
    total=False,
)


class ClientStartChannelResponseEncoderSettingsOutputGroupsOutputsOutputSettingsArchiveOutputSettingsContainerSettingsM2tsSettingsDvbSdtSettingsTypeDef(
    _ClientStartChannelResponseEncoderSettingsOutputGroupsOutputsOutputSettingsArchiveOutputSettingsContainerSettingsM2tsSettingsDvbSdtSettingsTypeDef
):
    """
    Type definition for
    `ClientStartChannelResponseEncoderSettingsOutputGroupsOutputsOutputSettingsArchiveOutputSettingsContainerSettingsM2tsSettings`
    `DvbSdtSettings`

    - **OutputSdt** *(string) --* Selects method of inserting SDT information into output stream.
    The sdtFollow setting copies SDT information from input stream to output stream. The
    sdtFollowIfPresent setting copies SDT information from input stream to output stream if SDT
    information is present in the input, otherwise it will fall back on the user-defined values. The
    sdtManual setting means user will enter the SDT information. The sdtNone setting means output
    stream will not contain SDT information.

    - **RepInterval** *(integer) --* The number of milliseconds between instances of this table in
    the output transport stream.

    - **ServiceName** *(string) --* The service name placed in the serviceDescriptor in the Service
    Description Table. Maximum length is 256 characters.

    - **ServiceProviderName** *(string) --* The service provider name placed in the
    serviceDescriptor in the Service Description Table. Maximum length is 256 characters.
    """


_ClientStartChannelResponseEncoderSettingsOutputGroupsOutputsOutputSettingsArchiveOutputSettingsContainerSettingsM2tsSettingsDvbTdtSettingsTypeDef = TypedDict(
    "_ClientStartChannelResponseEncoderSettingsOutputGroupsOutputsOutputSettingsArchiveOutputSettingsContainerSettingsM2tsSettingsDvbTdtSettingsTypeDef",
    {"RepInterval": int},
    total=False,
)


class ClientStartChannelResponseEncoderSettingsOutputGroupsOutputsOutputSettingsArchiveOutputSettingsContainerSettingsM2tsSettingsDvbTdtSettingsTypeDef(
    _ClientStartChannelResponseEncoderSettingsOutputGroupsOutputsOutputSettingsArchiveOutputSettingsContainerSettingsM2tsSettingsDvbTdtSettingsTypeDef
):
    """
    Type definition for
    `ClientStartChannelResponseEncoderSettingsOutputGroupsOutputsOutputSettingsArchiveOutputSettingsContainerSettingsM2tsSettings`
    `DvbTdtSettings`

    - **RepInterval** *(integer) --* The number of milliseconds between instances of this table in
    the output transport stream.
    """


_ClientStartChannelResponseEncoderSettingsOutputGroupsOutputsOutputSettingsArchiveOutputSettingsContainerSettingsM2tsSettingsTypeDef = TypedDict(
    "_ClientStartChannelResponseEncoderSettingsOutputGroupsOutputsOutputSettingsArchiveOutputSettingsContainerSettingsM2tsSettingsTypeDef",
    {
        "AbsentInputAudioBehavior": str,
        "Arib": str,
        "AribCaptionsPid": str,
        "AribCaptionsPidControl": str,
        "AudioBufferModel": str,
        "AudioFramesPerPes": int,
        "AudioPids": str,
        "AudioStreamType": str,
        "Bitrate": int,
        "BufferModel": str,
        "CcDescriptor": str,
        "DvbNitSettings": ClientStartChannelResponseEncoderSettingsOutputGroupsOutputsOutputSettingsArchiveOutputSettingsContainerSettingsM2tsSettingsDvbNitSettingsTypeDef,
        "DvbSdtSettings": ClientStartChannelResponseEncoderSettingsOutputGroupsOutputsOutputSettingsArchiveOutputSettingsContainerSettingsM2tsSettingsDvbSdtSettingsTypeDef,
        "DvbSubPids": str,
        "DvbTdtSettings": ClientStartChannelResponseEncoderSettingsOutputGroupsOutputsOutputSettingsArchiveOutputSettingsContainerSettingsM2tsSettingsDvbTdtSettingsTypeDef,
        "DvbTeletextPid": str,
        "Ebif": str,
        "EbpAudioInterval": str,
        "EbpLookaheadMs": int,
        "EbpPlacement": str,
        "EcmPid": str,
        "EsRateInPes": str,
        "EtvPlatformPid": str,
        "EtvSignalPid": str,
        "FragmentTime": float,
        "Klv": str,
        "KlvDataPids": str,
        "NielsenId3Behavior": str,
        "NullPacketBitrate": float,
        "PatInterval": int,
        "PcrControl": str,
        "PcrPeriod": int,
        "PcrPid": str,
        "PmtInterval": int,
        "PmtPid": str,
        "ProgramNum": int,
        "RateMode": str,
        "Scte27Pids": str,
        "Scte35Control": str,
        "Scte35Pid": str,
        "SegmentationMarkers": str,
        "SegmentationStyle": str,
        "SegmentationTime": float,
        "TimedMetadataBehavior": str,
        "TimedMetadataPid": str,
        "TransportStreamId": int,
        "VideoPid": str,
    },
    total=False,
)


class ClientStartChannelResponseEncoderSettingsOutputGroupsOutputsOutputSettingsArchiveOutputSettingsContainerSettingsM2tsSettingsTypeDef(
    _ClientStartChannelResponseEncoderSettingsOutputGroupsOutputsOutputSettingsArchiveOutputSettingsContainerSettingsM2tsSettingsTypeDef
):
    """
    Type definition for
    `ClientStartChannelResponseEncoderSettingsOutputGroupsOutputsOutputSettingsArchiveOutputSettingsContainerSettings`
    `M2tsSettings`

    - **AbsentInputAudioBehavior** *(string) --* When set to drop, output audio streams will be
    removed from the program if the selected input audio stream is removed from the input. This
    allows the output audio configuration to dynamically change based on input configuration. If
    this is set to encodeSilence, all output audio streams will output encoded silence when not
    connected to an active input stream.

    - **Arib** *(string) --* When set to enabled, uses ARIB-compliant field muxing and removes video
    descriptor.

    - **AribCaptionsPid** *(string) --* Packet Identifier (PID) for ARIB Captions in the transport
    stream. Can be entered as a decimal or hexadecimal value. Valid values are 32 (or 0x20)..8182
    (or 0x1ff6).

    - **AribCaptionsPidControl** *(string) --* If set to auto, pid number used for ARIB Captions
    will be auto-selected from unused pids. If set to useConfigured, ARIB Captions will be on the
    configured pid number.

    - **AudioBufferModel** *(string) --* When set to dvb, uses DVB buffer model for Dolby Digital
    audio. When set to atsc, the ATSC model is used.

    - **AudioFramesPerPes** *(integer) --* The number of audio frames to insert for each PES packet.

    - **AudioPids** *(string) --* Packet Identifier (PID) of the elementary audio stream(s) in the
    transport stream. Multiple values are accepted, and can be entered in ranges and/or by comma
    separation. Can be entered as decimal or hexadecimal values. Each PID specified must be in the
    range of 32 (or 0x20)..8182 (or 0x1ff6).

    - **AudioStreamType** *(string) --* When set to atsc, uses stream type = 0x81 for AC3 and stream
    type = 0x87 for EAC3. When set to dvb, uses stream type = 0x06.

    - **Bitrate** *(integer) --* The output bitrate of the transport stream in bits per second.
    Setting to 0 lets the muxer automatically determine the appropriate bitrate.

    - **BufferModel** *(string) --* If set to multiplex, use multiplex buffer model for accurate
    interleaving. Setting to bufferModel to none can lead to lower latency, but low-memory devices
    may not be able to play back the stream without interruptions.

    - **CcDescriptor** *(string) --* When set to enabled, generates captionServiceDescriptor in PMT.

    - **DvbNitSettings** *(dict) --* Inserts DVB Network Information Table (NIT) at the specified
    table repetition interval.

      - **NetworkId** *(integer) --* The numeric value placed in the Network Information Table
      (NIT).

      - **NetworkName** *(string) --* The network name text placed in the networkNameDescriptor
      inside the Network Information Table. Maximum length is 256 characters.

      - **RepInterval** *(integer) --* The number of milliseconds between instances of this table in
      the output transport stream.

    - **DvbSdtSettings** *(dict) --* Inserts DVB Service Description Table (SDT) at the specified
    table repetition interval.

      - **OutputSdt** *(string) --* Selects method of inserting SDT information into output stream.
      The sdtFollow setting copies SDT information from input stream to output stream. The
      sdtFollowIfPresent setting copies SDT information from input stream to output stream if SDT
      information is present in the input, otherwise it will fall back on the user-defined values.
      The sdtManual setting means user will enter the SDT information. The sdtNone setting means
      output stream will not contain SDT information.

      - **RepInterval** *(integer) --* The number of milliseconds between instances of this table in
      the output transport stream.

      - **ServiceName** *(string) --* The service name placed in the serviceDescriptor in the
      Service Description Table. Maximum length is 256 characters.

      - **ServiceProviderName** *(string) --* The service provider name placed in the
      serviceDescriptor in the Service Description Table. Maximum length is 256 characters.

    - **DvbSubPids** *(string) --* Packet Identifier (PID) for input source DVB Subtitle data to
    this output. Multiple values are accepted, and can be entered in ranges and/or by comma
    separation. Can be entered as decimal or hexadecimal values. Each PID specified must be in the
    range of 32 (or 0x20)..8182 (or 0x1ff6).

    - **DvbTdtSettings** *(dict) --* Inserts DVB Time and Date Table (TDT) at the specified table
    repetition interval.

      - **RepInterval** *(integer) --* The number of milliseconds between instances of this table in
      the output transport stream.

    - **DvbTeletextPid** *(string) --* Packet Identifier (PID) for input source DVB Teletext data to
    this output. Can be entered as a decimal or hexadecimal value. Valid values are 32 (or
    0x20)..8182 (or 0x1ff6).

    - **Ebif** *(string) --* If set to passthrough, passes any EBIF data from the input source to
    this output.

    - **EbpAudioInterval** *(string) --* When videoAndFixedIntervals is selected, audio EBP markers
    will be added to partitions 3 and 4. The interval between these additional markers will be
    fixed, and will be slightly shorter than the video EBP marker interval. Only available when EBP
    Cablelabs segmentation markers are selected. Partitions 1 and 2 will always follow the video
    interval.

    - **EbpLookaheadMs** *(integer) --* When set, enforces that Encoder Boundary Points do not come
    within the specified time interval of each other by looking ahead at input video. If another EBP
    is going to come in within the specified time interval, the current EBP is not emitted, and the
    segment is "stretched" to the next marker. The lookahead value does not add latency to the
    system. The Live Event must be configured elsewhere to create sufficient latency to make the
    lookahead accurate.

    - **EbpPlacement** *(string) --* Controls placement of EBP on Audio PIDs. If set to
    videoAndAudioPids, EBP markers will be placed on the video PID and all audio PIDs. If set to
    videoPid, EBP markers will be placed on only the video PID.

    - **EcmPid** *(string) --* This field is unused and deprecated.

    - **EsRateInPes** *(string) --* Include or exclude the ES Rate field in the PES header.

    - **EtvPlatformPid** *(string) --* Packet Identifier (PID) for input source ETV Platform data to
    this output. Can be entered as a decimal or hexadecimal value. Valid values are 32 (or
    0x20)..8182 (or 0x1ff6).

    - **EtvSignalPid** *(string) --* Packet Identifier (PID) for input source ETV Signal data to
    this output. Can be entered as a decimal or hexadecimal value. Valid values are 32 (or
    0x20)..8182 (or 0x1ff6).

    - **FragmentTime** *(float) --* The length in seconds of each fragment. Only used with EBP
    markers.

    - **Klv** *(string) --* If set to passthrough, passes any KLV data from the input source to this
    output.

    - **KlvDataPids** *(string) --* Packet Identifier (PID) for input source KLV data to this
    output. Multiple values are accepted, and can be entered in ranges and/or by comma separation.
    Can be entered as decimal or hexadecimal values. Each PID specified must be in the range of 32
    (or 0x20)..8182 (or 0x1ff6).

    - **NielsenId3Behavior** *(string) --* If set to passthrough, Nielsen inaudible tones for media
    tracking will be detected in the input audio and an equivalent ID3 tag will be inserted in the
    output.

    - **NullPacketBitrate** *(float) --* Value in bits per second of extra null packets to insert
    into the transport stream. This can be used if a downstream encryption system requires periodic
    null packets.

    - **PatInterval** *(integer) --* The number of milliseconds between instances of this table in
    the output transport stream. Valid values are 0, 10..1000.

    - **PcrControl** *(string) --* When set to pcrEveryPesPacket, a Program Clock Reference value is
    inserted for every Packetized Elementary Stream (PES) header. This parameter is effective only
    when the PCR PID is the same as the video or audio elementary stream.

    - **PcrPeriod** *(integer) --* Maximum time in milliseconds between Program Clock Reference
    (PCRs) inserted into the transport stream.

    - **PcrPid** *(string) --* Packet Identifier (PID) of the Program Clock Reference (PCR) in the
    transport stream. When no value is given, the encoder will assign the same value as the Video
    PID. Can be entered as a decimal or hexadecimal value. Valid values are 32 (or 0x20)..8182 (or
    0x1ff6).

    - **PmtInterval** *(integer) --* The number of milliseconds between instances of this table in
    the output transport stream. Valid values are 0, 10..1000.

    - **PmtPid** *(string) --* Packet Identifier (PID) for the Program Map Table (PMT) in the
    transport stream. Can be entered as a decimal or hexadecimal value. Valid values are 32 (or
    0x20)..8182 (or 0x1ff6).

    - **ProgramNum** *(integer) --* The value of the program number field in the Program Map Table.

    - **RateMode** *(string) --* When vbr, does not insert null packets into transport stream to
    fill specified bitrate. The bitrate setting acts as the maximum bitrate when vbr is set.

    - **Scte27Pids** *(string) --* Packet Identifier (PID) for input source SCTE-27 data to this
    output. Multiple values are accepted, and can be entered in ranges and/or by comma separation.
    Can be entered as decimal or hexadecimal values. Each PID specified must be in the range of 32
    (or 0x20)..8182 (or 0x1ff6).

    - **Scte35Control** *(string) --* Optionally pass SCTE-35 signals from the input source to this
    output.

    - **Scte35Pid** *(string) --* Packet Identifier (PID) of the SCTE-35 stream in the transport
    stream. Can be entered as a decimal or hexadecimal value. Valid values are 32 (or 0x20)..8182
    (or 0x1ff6).

    - **SegmentationMarkers** *(string) --* Inserts segmentation markers at each segmentationTime
    period. raiSegstart sets the Random Access Indicator bit in the adaptation field. raiAdapt sets
    the RAI bit and adds the current timecode in the private data bytes. psiSegstart inserts PAT and
    PMT tables at the start of segments. ebp adds Encoder Boundary Point information to the
    adaptation field as per OpenCable specification OC-SP-EBP-I01-130118. ebpLegacy adds Encoder
    Boundary Point information to the adaptation field using a legacy proprietary format.

    - **SegmentationStyle** *(string) --* The segmentation style parameter controls how segmentation
    markers are inserted into the transport stream. With avails, it is possible that segments may be
    truncated, which can influence where future segmentation markers are inserted. When a
    segmentation style of "resetCadence" is selected and a segment is truncated due to an avail, we
    will reset the segmentation cadence. This means the subsequent segment will have a duration of
    $segmentationTime seconds. When a segmentation style of "maintainCadence" is selected and a
    segment is truncated due to an avail, we will not reset the segmentation cadence. This means the
    subsequent segment will likely be truncated as well. However, all segments after that will have
    a duration of $segmentationTime seconds. Note that EBP lookahead is a slight exception to this
    rule.

    - **SegmentationTime** *(float) --* The length in seconds of each segment. Required unless
    markers is set to None_.

    - **TimedMetadataBehavior** *(string) --* When set to passthrough, timed metadata will be passed
    through from input to output.

    - **TimedMetadataPid** *(string) --* Packet Identifier (PID) of the timed metadata stream in the
    transport stream. Can be entered as a decimal or hexadecimal value. Valid values are 32 (or
    0x20)..8182 (or 0x1ff6).

    - **TransportStreamId** *(integer) --* The value of the transport stream ID field in the Program
    Map Table.

    - **VideoPid** *(string) --* Packet Identifier (PID) of the elementary video stream in the
    transport stream. Can be entered as a decimal or hexadecimal value. Valid values are 32 (or
    0x20)..8182 (or 0x1ff6).
    """


_ClientStartChannelResponseEncoderSettingsOutputGroupsOutputsOutputSettingsArchiveOutputSettingsContainerSettingsTypeDef = TypedDict(
    "_ClientStartChannelResponseEncoderSettingsOutputGroupsOutputsOutputSettingsArchiveOutputSettingsContainerSettingsTypeDef",
    {
        "M2tsSettings": ClientStartChannelResponseEncoderSettingsOutputGroupsOutputsOutputSettingsArchiveOutputSettingsContainerSettingsM2tsSettingsTypeDef
    },
    total=False,
)


class ClientStartChannelResponseEncoderSettingsOutputGroupsOutputsOutputSettingsArchiveOutputSettingsContainerSettingsTypeDef(
    _ClientStartChannelResponseEncoderSettingsOutputGroupsOutputsOutputSettingsArchiveOutputSettingsContainerSettingsTypeDef
):
    """
    Type definition for
    `ClientStartChannelResponseEncoderSettingsOutputGroupsOutputsOutputSettingsArchiveOutputSettings`
    `ContainerSettings`

    - **M2tsSettings** *(dict) --* M2ts Settings

      - **AbsentInputAudioBehavior** *(string) --* When set to drop, output audio streams will be
      removed from the program if the selected input audio stream is removed from the input. This
      allows the output audio configuration to dynamically change based on input configuration. If
      this is set to encodeSilence, all output audio streams will output encoded silence when not
      connected to an active input stream.

      - **Arib** *(string) --* When set to enabled, uses ARIB-compliant field muxing and removes
      video descriptor.

      - **AribCaptionsPid** *(string) --* Packet Identifier (PID) for ARIB Captions in the transport
      stream. Can be entered as a decimal or hexadecimal value. Valid values are 32 (or 0x20)..8182
      (or 0x1ff6).

      - **AribCaptionsPidControl** *(string) --* If set to auto, pid number used for ARIB Captions
      will be auto-selected from unused pids. If set to useConfigured, ARIB Captions will be on the
      configured pid number.

      - **AudioBufferModel** *(string) --* When set to dvb, uses DVB buffer model for Dolby Digital
      audio. When set to atsc, the ATSC model is used.

      - **AudioFramesPerPes** *(integer) --* The number of audio frames to insert for each PES
      packet.

      - **AudioPids** *(string) --* Packet Identifier (PID) of the elementary audio stream(s) in the
      transport stream. Multiple values are accepted, and can be entered in ranges and/or by comma
      separation. Can be entered as decimal or hexadecimal values. Each PID specified must be in the
      range of 32 (or 0x20)..8182 (or 0x1ff6).

      - **AudioStreamType** *(string) --* When set to atsc, uses stream type = 0x81 for AC3 and
      stream type = 0x87 for EAC3. When set to dvb, uses stream type = 0x06.

      - **Bitrate** *(integer) --* The output bitrate of the transport stream in bits per second.
      Setting to 0 lets the muxer automatically determine the appropriate bitrate.

      - **BufferModel** *(string) --* If set to multiplex, use multiplex buffer model for accurate
      interleaving. Setting to bufferModel to none can lead to lower latency, but low-memory devices
      may not be able to play back the stream without interruptions.

      - **CcDescriptor** *(string) --* When set to enabled, generates captionServiceDescriptor in
      PMT.

      - **DvbNitSettings** *(dict) --* Inserts DVB Network Information Table (NIT) at the specified
      table repetition interval.

        - **NetworkId** *(integer) --* The numeric value placed in the Network Information Table
        (NIT).

        - **NetworkName** *(string) --* The network name text placed in the networkNameDescriptor
        inside the Network Information Table. Maximum length is 256 characters.

        - **RepInterval** *(integer) --* The number of milliseconds between instances of this table
        in the output transport stream.

      - **DvbSdtSettings** *(dict) --* Inserts DVB Service Description Table (SDT) at the specified
      table repetition interval.

        - **OutputSdt** *(string) --* Selects method of inserting SDT information into output
        stream. The sdtFollow setting copies SDT information from input stream to output stream. The
        sdtFollowIfPresent setting copies SDT information from input stream to output stream if SDT
        information is present in the input, otherwise it will fall back on the user-defined values.
        The sdtManual setting means user will enter the SDT information. The sdtNone setting means
        output stream will not contain SDT information.

        - **RepInterval** *(integer) --* The number of milliseconds between instances of this table
        in the output transport stream.

        - **ServiceName** *(string) --* The service name placed in the serviceDescriptor in the
        Service Description Table. Maximum length is 256 characters.

        - **ServiceProviderName** *(string) --* The service provider name placed in the
        serviceDescriptor in the Service Description Table. Maximum length is 256 characters.

      - **DvbSubPids** *(string) --* Packet Identifier (PID) for input source DVB Subtitle data to
      this output. Multiple values are accepted, and can be entered in ranges and/or by comma
      separation. Can be entered as decimal or hexadecimal values. Each PID specified must be in the
      range of 32 (or 0x20)..8182 (or 0x1ff6).

      - **DvbTdtSettings** *(dict) --* Inserts DVB Time and Date Table (TDT) at the specified table
      repetition interval.

        - **RepInterval** *(integer) --* The number of milliseconds between instances of this table
        in the output transport stream.

      - **DvbTeletextPid** *(string) --* Packet Identifier (PID) for input source DVB Teletext data
      to this output. Can be entered as a decimal or hexadecimal value. Valid values are 32 (or
      0x20)..8182 (or 0x1ff6).

      - **Ebif** *(string) --* If set to passthrough, passes any EBIF data from the input source to
      this output.

      - **EbpAudioInterval** *(string) --* When videoAndFixedIntervals is selected, audio EBP
      markers will be added to partitions 3 and 4. The interval between these additional markers
      will be fixed, and will be slightly shorter than the video EBP marker interval. Only available
      when EBP Cablelabs segmentation markers are selected. Partitions 1 and 2 will always follow
      the video interval.

      - **EbpLookaheadMs** *(integer) --* When set, enforces that Encoder Boundary Points do not
      come within the specified time interval of each other by looking ahead at input video. If
      another EBP is going to come in within the specified time interval, the current EBP is not
      emitted, and the segment is "stretched" to the next marker. The lookahead value does not add
      latency to the system. The Live Event must be configured elsewhere to create sufficient
      latency to make the lookahead accurate.

      - **EbpPlacement** *(string) --* Controls placement of EBP on Audio PIDs. If set to
      videoAndAudioPids, EBP markers will be placed on the video PID and all audio PIDs. If set to
      videoPid, EBP markers will be placed on only the video PID.

      - **EcmPid** *(string) --* This field is unused and deprecated.

      - **EsRateInPes** *(string) --* Include or exclude the ES Rate field in the PES header.

      - **EtvPlatformPid** *(string) --* Packet Identifier (PID) for input source ETV Platform data
      to this output. Can be entered as a decimal or hexadecimal value. Valid values are 32 (or
      0x20)..8182 (or 0x1ff6).

      - **EtvSignalPid** *(string) --* Packet Identifier (PID) for input source ETV Signal data to
      this output. Can be entered as a decimal or hexadecimal value. Valid values are 32 (or
      0x20)..8182 (or 0x1ff6).

      - **FragmentTime** *(float) --* The length in seconds of each fragment. Only used with EBP
      markers.

      - **Klv** *(string) --* If set to passthrough, passes any KLV data from the input source to
      this output.

      - **KlvDataPids** *(string) --* Packet Identifier (PID) for input source KLV data to this
      output. Multiple values are accepted, and can be entered in ranges and/or by comma separation.
      Can be entered as decimal or hexadecimal values. Each PID specified must be in the range of 32
      (or 0x20)..8182 (or 0x1ff6).

      - **NielsenId3Behavior** *(string) --* If set to passthrough, Nielsen inaudible tones for
      media tracking will be detected in the input audio and an equivalent ID3 tag will be inserted
      in the output.

      - **NullPacketBitrate** *(float) --* Value in bits per second of extra null packets to insert
      into the transport stream. This can be used if a downstream encryption system requires
      periodic null packets.

      - **PatInterval** *(integer) --* The number of milliseconds between instances of this table in
      the output transport stream. Valid values are 0, 10..1000.

      - **PcrControl** *(string) --* When set to pcrEveryPesPacket, a Program Clock Reference value
      is inserted for every Packetized Elementary Stream (PES) header. This parameter is effective
      only when the PCR PID is the same as the video or audio elementary stream.

      - **PcrPeriod** *(integer) --* Maximum time in milliseconds between Program Clock Reference
      (PCRs) inserted into the transport stream.

      - **PcrPid** *(string) --* Packet Identifier (PID) of the Program Clock Reference (PCR) in the
      transport stream. When no value is given, the encoder will assign the same value as the Video
      PID. Can be entered as a decimal or hexadecimal value. Valid values are 32 (or 0x20)..8182 (or
      0x1ff6).

      - **PmtInterval** *(integer) --* The number of milliseconds between instances of this table in
      the output transport stream. Valid values are 0, 10..1000.

      - **PmtPid** *(string) --* Packet Identifier (PID) for the Program Map Table (PMT) in the
      transport stream. Can be entered as a decimal or hexadecimal value. Valid values are 32 (or
      0x20)..8182 (or 0x1ff6).

      - **ProgramNum** *(integer) --* The value of the program number field in the Program Map
      Table.

      - **RateMode** *(string) --* When vbr, does not insert null packets into transport stream to
      fill specified bitrate. The bitrate setting acts as the maximum bitrate when vbr is set.

      - **Scte27Pids** *(string) --* Packet Identifier (PID) for input source SCTE-27 data to this
      output. Multiple values are accepted, and can be entered in ranges and/or by comma separation.
      Can be entered as decimal or hexadecimal values. Each PID specified must be in the range of 32
      (or 0x20)..8182 (or 0x1ff6).

      - **Scte35Control** *(string) --* Optionally pass SCTE-35 signals from the input source to
      this output.

      - **Scte35Pid** *(string) --* Packet Identifier (PID) of the SCTE-35 stream in the transport
      stream. Can be entered as a decimal or hexadecimal value. Valid values are 32 (or 0x20)..8182
      (or 0x1ff6).

      - **SegmentationMarkers** *(string) --* Inserts segmentation markers at each segmentationTime
      period. raiSegstart sets the Random Access Indicator bit in the adaptation field. raiAdapt
      sets the RAI bit and adds the current timecode in the private data bytes. psiSegstart inserts
      PAT and PMT tables at the start of segments. ebp adds Encoder Boundary Point information to
      the adaptation field as per OpenCable specification OC-SP-EBP-I01-130118. ebpLegacy adds
      Encoder Boundary Point information to the adaptation field using a legacy proprietary format.

      - **SegmentationStyle** *(string) --* The segmentation style parameter controls how
      segmentation markers are inserted into the transport stream. With avails, it is possible that
      segments may be truncated, which can influence where future segmentation markers are inserted.
      When a segmentation style of "resetCadence" is selected and a segment is truncated due to an
      avail, we will reset the segmentation cadence. This means the subsequent segment will have a
      duration of $segmentationTime seconds. When a segmentation style of "maintainCadence" is
      selected and a segment is truncated due to an avail, we will not reset the segmentation
      cadence. This means the subsequent segment will likely be truncated as well. However, all
      segments after that will have a duration of $segmentationTime seconds. Note that EBP lookahead
      is a slight exception to this rule.

      - **SegmentationTime** *(float) --* The length in seconds of each segment. Required unless
      markers is set to None_.

      - **TimedMetadataBehavior** *(string) --* When set to passthrough, timed metadata will be
      passed through from input to output.

      - **TimedMetadataPid** *(string) --* Packet Identifier (PID) of the timed metadata stream in
      the transport stream. Can be entered as a decimal or hexadecimal value. Valid values are 32
      (or 0x20)..8182 (or 0x1ff6).

      - **TransportStreamId** *(integer) --* The value of the transport stream ID field in the
      Program Map Table.

      - **VideoPid** *(string) --* Packet Identifier (PID) of the elementary video stream in the
      transport stream. Can be entered as a decimal or hexadecimal value. Valid values are 32 (or
      0x20)..8182 (or 0x1ff6).
    """


_ClientStartChannelResponseEncoderSettingsOutputGroupsOutputsOutputSettingsArchiveOutputSettingsTypeDef = TypedDict(
    "_ClientStartChannelResponseEncoderSettingsOutputGroupsOutputsOutputSettingsArchiveOutputSettingsTypeDef",
    {
        "ContainerSettings": ClientStartChannelResponseEncoderSettingsOutputGroupsOutputsOutputSettingsArchiveOutputSettingsContainerSettingsTypeDef,
        "Extension": str,
        "NameModifier": str,
    },
    total=False,
)


class ClientStartChannelResponseEncoderSettingsOutputGroupsOutputsOutputSettingsArchiveOutputSettingsTypeDef(
    _ClientStartChannelResponseEncoderSettingsOutputGroupsOutputsOutputSettingsArchiveOutputSettingsTypeDef
):
    """
    Type definition for `ClientStartChannelResponseEncoderSettingsOutputGroupsOutputsOutputSettings`
    `ArchiveOutputSettings`

    - **ContainerSettings** *(dict) --* Settings specific to the container type of the file.

      - **M2tsSettings** *(dict) --* M2ts Settings

        - **AbsentInputAudioBehavior** *(string) --* When set to drop, output audio streams will be
        removed from the program if the selected input audio stream is removed from the input. This
        allows the output audio configuration to dynamically change based on input configuration. If
        this is set to encodeSilence, all output audio streams will output encoded silence when not
        connected to an active input stream.

        - **Arib** *(string) --* When set to enabled, uses ARIB-compliant field muxing and removes
        video descriptor.

        - **AribCaptionsPid** *(string) --* Packet Identifier (PID) for ARIB Captions in the
        transport stream. Can be entered as a decimal or hexadecimal value. Valid values are 32 (or
        0x20)..8182 (or 0x1ff6).

        - **AribCaptionsPidControl** *(string) --* If set to auto, pid number used for ARIB Captions
        will be auto-selected from unused pids. If set to useConfigured, ARIB Captions will be on
        the configured pid number.

        - **AudioBufferModel** *(string) --* When set to dvb, uses DVB buffer model for Dolby
        Digital audio. When set to atsc, the ATSC model is used.

        - **AudioFramesPerPes** *(integer) --* The number of audio frames to insert for each PES
        packet.

        - **AudioPids** *(string) --* Packet Identifier (PID) of the elementary audio stream(s) in
        the transport stream. Multiple values are accepted, and can be entered in ranges and/or by
        comma separation. Can be entered as decimal or hexadecimal values. Each PID specified must
        be in the range of 32 (or 0x20)..8182 (or 0x1ff6).

        - **AudioStreamType** *(string) --* When set to atsc, uses stream type =
             0x81 for AC3 and
        stream type = 0x87 for EAC3. When set to dvb, uses stream type = 0x06.

        - **Bitrate** *(integer) --* The output bitrate of the transport stream in bits per second.
        Setting to 0 lets the muxer automatically determine the appropriate bitrate.

        - **BufferModel** *(string) --* If set to multiplex, use multiplex buffer model for accurate
        interleaving. Setting to bufferModel to none can lead to lower latency, but low-memory
        devices may not be able to play back the stream without interruptions.

        - **CcDescriptor** *(string) --* When set to enabled, generates captionServiceDescriptor in
        PMT.

        - **DvbNitSettings** *(dict) --* Inserts DVB Network Information Table (NIT) at the
        specified table repetition interval.

          - **NetworkId** *(integer) --* The numeric value placed in the Network Information Table
          (NIT).

          - **NetworkName** *(string) --* The network name text placed in the networkNameDescriptor
          inside the Network Information Table. Maximum length is 256 characters.

          - **RepInterval** *(integer) --* The number of milliseconds between instances of this
          table in the output transport stream.

        - **DvbSdtSettings** *(dict) --* Inserts DVB Service Description Table (SDT) at the
        specified table repetition interval.

          - **OutputSdt** *(string) --* Selects method of inserting SDT information into output
          stream. The sdtFollow setting copies SDT information from input stream to output stream.
          The sdtFollowIfPresent setting copies SDT information from input stream to output stream
          if SDT information is present in the input, otherwise it will fall back on the
          user-defined values. The sdtManual setting means user will enter the SDT information. The
          sdtNone setting means output stream will not contain SDT information.

          - **RepInterval** *(integer) --* The number of milliseconds between instances of this
          table in the output transport stream.

          - **ServiceName** *(string) --* The service name placed in the serviceDescriptor in the
          Service Description Table. Maximum length is 256 characters.

          - **ServiceProviderName** *(string) --* The service provider name placed in the
          serviceDescriptor in the Service Description Table. Maximum length is 256 characters.

        - **DvbSubPids** *(string) --* Packet Identifier (PID) for input source DVB Subtitle data to
        this output. Multiple values are accepted, and can be entered in ranges and/or by comma
        separation. Can be entered as decimal or hexadecimal values. Each PID specified must be in
        the range of 32 (or 0x20)..8182 (or 0x1ff6).

        - **DvbTdtSettings** *(dict) --* Inserts DVB Time and Date Table (TDT) at the specified
        table repetition interval.

          - **RepInterval** *(integer) --* The number of milliseconds between instances of this
          table in the output transport stream.

        - **DvbTeletextPid** *(string) --* Packet Identifier (PID) for input source DVB Teletext
        data to this output. Can be entered as a decimal or hexadecimal value. Valid values are 32
        (or 0x20)..8182 (or 0x1ff6).

        - **Ebif** *(string) --* If set to passthrough, passes any EBIF data from the input source
        to this output.

        - **EbpAudioInterval** *(string) --* When videoAndFixedIntervals is selected, audio EBP
        markers will be added to partitions 3 and 4. The interval between these additional markers
        will be fixed, and will be slightly shorter than the video EBP marker interval. Only
        available when EBP Cablelabs segmentation markers are selected. Partitions 1 and 2 will
        always follow the video interval.

        - **EbpLookaheadMs** *(integer) --* When set, enforces that Encoder Boundary Points do not
        come within the specified time interval of each other by looking ahead at input video. If
        another EBP is going to come in within the specified time interval, the current EBP is not
        emitted, and the segment is "stretched" to the next marker. The lookahead value does not add
        latency to the system. The Live Event must be configured elsewhere to create sufficient
        latency to make the lookahead accurate.

        - **EbpPlacement** *(string) --* Controls placement of EBP on Audio PIDs. If set to
        videoAndAudioPids, EBP markers will be placed on the video PID and all audio PIDs. If set to
        videoPid, EBP markers will be placed on only the video PID.

        - **EcmPid** *(string) --* This field is unused and deprecated.

        - **EsRateInPes** *(string) --* Include or exclude the ES Rate field in the PES header.

        - **EtvPlatformPid** *(string) --* Packet Identifier (PID) for input source ETV Platform
        data to this output. Can be entered as a decimal or hexadecimal value. Valid values are 32
        (or 0x20)..8182 (or 0x1ff6).

        - **EtvSignalPid** *(string) --* Packet Identifier (PID) for input source ETV Signal data to
        this output. Can be entered as a decimal or hexadecimal value. Valid values are 32 (or
        0x20)..8182 (or 0x1ff6).

        - **FragmentTime** *(float) --* The length in seconds of each fragment. Only used with EBP
        markers.

        - **Klv** *(string) --* If set to passthrough, passes any KLV data from the input source to
        this output.

        - **KlvDataPids** *(string) --* Packet Identifier (PID) for input source KLV data to this
        output. Multiple values are accepted, and can be entered in ranges and/or by comma
        separation. Can be entered as decimal or hexadecimal values. Each PID specified must be in
        the range of 32 (or 0x20)..8182 (or 0x1ff6).

        - **NielsenId3Behavior** *(string) --* If set to passthrough, Nielsen inaudible tones for
        media tracking will be detected in the input audio and an equivalent ID3 tag will be
        inserted in the output.

        - **NullPacketBitrate** *(float) --* Value in bits per second of extra null packets to
        insert into the transport stream. This can be used if a downstream encryption system
        requires periodic null packets.

        - **PatInterval** *(integer) --* The number of milliseconds between instances of this table
        in the output transport stream. Valid values are 0, 10..1000.

        - **PcrControl** *(string) --* When set to pcrEveryPesPacket, a Program Clock Reference
        value is inserted for every Packetized Elementary Stream (PES) header. This parameter is
        effective only when the PCR PID is the same as the video or audio elementary stream.

        - **PcrPeriod** *(integer) --* Maximum time in milliseconds between Program Clock Reference
        (PCRs) inserted into the transport stream.

        - **PcrPid** *(string) --* Packet Identifier (PID) of the Program Clock Reference (PCR) in
        the transport stream. When no value is given, the encoder will assign the same value as the
        Video PID. Can be entered as a decimal or hexadecimal value. Valid values are 32 (or
        0x20)..8182 (or 0x1ff6).

        - **PmtInterval** *(integer) --* The number of milliseconds between instances of this table
        in the output transport stream. Valid values are 0, 10..1000.

        - **PmtPid** *(string) --* Packet Identifier (PID) for the Program Map Table (PMT) in the
        transport stream. Can be entered as a decimal or hexadecimal value. Valid values are 32 (or
        0x20)..8182 (or 0x1ff6).

        - **ProgramNum** *(integer) --* The value of the program number field in the Program Map
        Table.

        - **RateMode** *(string) --* When vbr, does not insert null packets into transport stream to
        fill specified bitrate. The bitrate setting acts as the maximum bitrate when vbr is set.

        - **Scte27Pids** *(string) --* Packet Identifier (PID) for input source SCTE-27 data to this
        output. Multiple values are accepted, and can be entered in ranges and/or by comma
        separation. Can be entered as decimal or hexadecimal values. Each PID specified must be in
        the range of 32 (or 0x20)..8182 (or 0x1ff6).

        - **Scte35Control** *(string) --* Optionally pass SCTE-35 signals from the input source to
        this output.

        - **Scte35Pid** *(string) --* Packet Identifier (PID) of the SCTE-35 stream in the transport
        stream. Can be entered as a decimal or hexadecimal value. Valid values are 32 (or
        0x20)..8182 (or 0x1ff6).

        - **SegmentationMarkers** *(string) --* Inserts segmentation markers at each
        segmentationTime period. raiSegstart sets the Random Access Indicator bit in the adaptation
        field. raiAdapt sets the RAI bit and adds the current timecode in the private data bytes.
        psiSegstart inserts PAT and PMT tables at the start of segments. ebp adds Encoder Boundary
        Point information to the adaptation field as per OpenCable specification
        OC-SP-EBP-I01-130118. ebpLegacy adds Encoder Boundary Point information to the adaptation
        field using a legacy proprietary format.

        - **SegmentationStyle** *(string) --* The segmentation style parameter controls how
        segmentation markers are inserted into the transport stream. With avails, it is possible
        that segments may be truncated, which can influence where future segmentation markers are
        inserted. When a segmentation style of "resetCadence" is selected and a segment is truncated
        due to an avail, we will reset the segmentation cadence. This means the subsequent segment
        will have a duration of $segmentationTime seconds. When a segmentation style of
        "maintainCadence" is selected and a segment is truncated due to an avail, we will not reset
        the segmentation cadence. This means the subsequent segment will likely be truncated as
        well. However, all segments after that will have a duration of $segmentationTime seconds.
        Note that EBP lookahead is a slight exception to this rule.

        - **SegmentationTime** *(float) --* The length in seconds of each segment. Required unless
        markers is set to None_.

        - **TimedMetadataBehavior** *(string) --* When set to passthrough, timed metadata will be
        passed through from input to output.

        - **TimedMetadataPid** *(string) --* Packet Identifier (PID) of the timed metadata stream in
        the transport stream. Can be entered as a decimal or hexadecimal value. Valid values are 32
        (or 0x20)..8182 (or 0x1ff6).

        - **TransportStreamId** *(integer) --* The value of the transport stream ID field in the
        Program Map Table.

        - **VideoPid** *(string) --* Packet Identifier (PID) of the elementary video stream in the
        transport stream. Can be entered as a decimal or hexadecimal value. Valid values are 32 (or
        0x20)..8182 (or 0x1ff6).

    - **Extension** *(string) --* Output file extension. If excluded, this will be auto-selected
    from the container type.

    - **NameModifier** *(string) --* String concatenated to the end of the destination filename.
    Required for multiple outputs of the same type.
    """


_ClientStartChannelResponseEncoderSettingsOutputGroupsOutputsOutputSettingsFrameCaptureOutputSettingsTypeDef = TypedDict(
    "_ClientStartChannelResponseEncoderSettingsOutputGroupsOutputsOutputSettingsFrameCaptureOutputSettingsTypeDef",
    {"NameModifier": str},
    total=False,
)


class ClientStartChannelResponseEncoderSettingsOutputGroupsOutputsOutputSettingsFrameCaptureOutputSettingsTypeDef(
    _ClientStartChannelResponseEncoderSettingsOutputGroupsOutputsOutputSettingsFrameCaptureOutputSettingsTypeDef
):
    """
    Type definition for `ClientStartChannelResponseEncoderSettingsOutputGroupsOutputsOutputSettings`
    `FrameCaptureOutputSettings`

    - **NameModifier** *(string) --* Required if the output group contains more than one output.
    This modifier forms part of the output file name.
    """


_ClientStartChannelResponseEncoderSettingsOutputGroupsOutputsOutputSettingsHlsOutputSettingsHlsSettingsAudioOnlyHlsSettingsAudioOnlyImageTypeDef = TypedDict(
    "_ClientStartChannelResponseEncoderSettingsOutputGroupsOutputsOutputSettingsHlsOutputSettingsHlsSettingsAudioOnlyHlsSettingsAudioOnlyImageTypeDef",
    {"PasswordParam": str, "Uri": str, "Username": str},
    total=False,
)


class ClientStartChannelResponseEncoderSettingsOutputGroupsOutputsOutputSettingsHlsOutputSettingsHlsSettingsAudioOnlyHlsSettingsAudioOnlyImageTypeDef(
    _ClientStartChannelResponseEncoderSettingsOutputGroupsOutputsOutputSettingsHlsOutputSettingsHlsSettingsAudioOnlyHlsSettingsAudioOnlyImageTypeDef
):
    """
    Type definition for
    `ClientStartChannelResponseEncoderSettingsOutputGroupsOutputsOutputSettingsHlsOutputSettingsHlsSettingsAudioOnlyHlsSettings`
    `AudioOnlyImage`

    - **PasswordParam** *(string) --* key used to extract the password from EC2 Parameter store

    - **Uri** *(string) --* Uniform Resource Identifier - This should be a path to a file accessible
    to the Live system (eg. a http:// URI) depending on the output type. For example, a RTMP
    destination should have a uri simliar to: "rtmp://fmsserver/live".

    - **Username** *(string) --* Documentation update needed
    """


_ClientStartChannelResponseEncoderSettingsOutputGroupsOutputsOutputSettingsHlsOutputSettingsHlsSettingsAudioOnlyHlsSettingsTypeDef = TypedDict(
    "_ClientStartChannelResponseEncoderSettingsOutputGroupsOutputsOutputSettingsHlsOutputSettingsHlsSettingsAudioOnlyHlsSettingsTypeDef",
    {
        "AudioGroupId": str,
        "AudioOnlyImage": ClientStartChannelResponseEncoderSettingsOutputGroupsOutputsOutputSettingsHlsOutputSettingsHlsSettingsAudioOnlyHlsSettingsAudioOnlyImageTypeDef,
        "AudioTrackType": str,
    },
    total=False,
)


class ClientStartChannelResponseEncoderSettingsOutputGroupsOutputsOutputSettingsHlsOutputSettingsHlsSettingsAudioOnlyHlsSettingsTypeDef(
    _ClientStartChannelResponseEncoderSettingsOutputGroupsOutputsOutputSettingsHlsOutputSettingsHlsSettingsAudioOnlyHlsSettingsTypeDef
):
    """
    Type definition for
    `ClientStartChannelResponseEncoderSettingsOutputGroupsOutputsOutputSettingsHlsOutputSettingsHlsSettings`
    `AudioOnlyHlsSettings`

    - **AudioGroupId** *(string) --* Specifies the group to which the audio Rendition belongs.

    - **AudioOnlyImage** *(dict) --* Optional. Specifies the .jpg or .png image to use as the cover
    art for an audio-only output. We recommend a low bit-size file because the image increases the
    output audio bandwidth. The image is attached to the audio as an ID3 tag, frame type APIC,
    picture type 0x10, as per the "ID3 tag version 2.4.0 - Native Frames" standard.

      - **PasswordParam** *(string) --* key used to extract the password from EC2 Parameter store

      - **Uri** *(string) --* Uniform Resource Identifier - This should be a path to a file
      accessible to the Live system (eg. a http:// URI) depending on the output type. For example, a
      RTMP destination should have a uri simliar to: "rtmp://fmsserver/live".

      - **Username** *(string) --* Documentation update needed

    - **AudioTrackType** *(string) --* Four types of audio-only tracks are supported: Audio-Only
    Variant Stream The client can play back this audio-only stream instead of video in low-bandwidth
    scenarios. Represented as an EXT-X-STREAM-INF in the HLS manifest. Alternate Audio, Auto Select,
    Default Alternate rendition that the client should try to play back by default. Represented as
    an EXT-X-MEDIA in the HLS manifest with DEFAULT=YES, AUTOSELECT=YES Alternate Audio, Auto
    Select, Not Default Alternate rendition that the client may try to play back by default.
    Represented as an EXT-X-MEDIA in the HLS manifest with DEFAULT=NO, AUTOSELECT=YES Alternate
    Audio, not Auto Select Alternate rendition that the client will not try to play back by default.
    Represented as an EXT-X-MEDIA in the HLS manifest with DEFAULT=NO, AUTOSELECT=NO
    """


_ClientStartChannelResponseEncoderSettingsOutputGroupsOutputsOutputSettingsHlsOutputSettingsHlsSettingsStandardHlsSettingsM3u8SettingsTypeDef = TypedDict(
    "_ClientStartChannelResponseEncoderSettingsOutputGroupsOutputsOutputSettingsHlsOutputSettingsHlsSettingsStandardHlsSettingsM3u8SettingsTypeDef",
    {
        "AudioFramesPerPes": int,
        "AudioPids": str,
        "EcmPid": str,
        "NielsenId3Behavior": str,
        "PatInterval": int,
        "PcrControl": str,
        "PcrPeriod": int,
        "PcrPid": str,
        "PmtInterval": int,
        "PmtPid": str,
        "ProgramNum": int,
        "Scte35Behavior": str,
        "Scte35Pid": str,
        "TimedMetadataBehavior": str,
        "TimedMetadataPid": str,
        "TransportStreamId": int,
        "VideoPid": str,
    },
    total=False,
)


class ClientStartChannelResponseEncoderSettingsOutputGroupsOutputsOutputSettingsHlsOutputSettingsHlsSettingsStandardHlsSettingsM3u8SettingsTypeDef(
    _ClientStartChannelResponseEncoderSettingsOutputGroupsOutputsOutputSettingsHlsOutputSettingsHlsSettingsStandardHlsSettingsM3u8SettingsTypeDef
):
    """
    Type definition for
    `ClientStartChannelResponseEncoderSettingsOutputGroupsOutputsOutputSettingsHlsOutputSettingsHlsSettingsStandardHlsSettings`
    `M3u8Settings`

    - **AudioFramesPerPes** *(integer) --* The number of audio frames to insert for each PES packet.

    - **AudioPids** *(string) --* Packet Identifier (PID) of the elementary audio stream(s) in the
    transport stream. Multiple values are accepted, and can be entered in ranges and/or by comma
    separation. Can be entered as decimal or hexadecimal values.

    - **EcmPid** *(string) --* This parameter is unused and deprecated.

    - **NielsenId3Behavior** *(string) --* If set to passthrough, Nielsen inaudible tones for media
    tracking will be detected in the input audio and an equivalent ID3 tag will be inserted in the
    output.

    - **PatInterval** *(integer) --* The number of milliseconds between instances of this table in
    the output transport stream. A value of \\"0\\" writes out the PMT once per segment file.

    - **PcrControl** *(string) --* When set to pcrEveryPesPacket, a Program Clock Reference value is
    inserted for every Packetized Elementary Stream (PES) header. This parameter is effective only
    when the PCR PID is the same as the video or audio elementary stream.

    - **PcrPeriod** *(integer) --* Maximum time in milliseconds between Program Clock References
    (PCRs) inserted into the transport stream.

    - **PcrPid** *(string) --* Packet Identifier (PID) of the Program Clock Reference (PCR) in the
    transport stream. When no value is given, the encoder will assign the same value as the Video
    PID. Can be entered as a decimal or hexadecimal value.

    - **PmtInterval** *(integer) --* The number of milliseconds between instances of this table in
    the output transport stream. A value of \\"0\\" writes out the PMT once per segment file.

    - **PmtPid** *(string) --* Packet Identifier (PID) for the Program Map Table (PMT) in the
    transport stream. Can be entered as a decimal or hexadecimal value.

    - **ProgramNum** *(integer) --* The value of the program number field in the Program Map Table.

    - **Scte35Behavior** *(string) --* If set to passthrough, passes any SCTE-35 signals from the
    input source to this output.

    - **Scte35Pid** *(string) --* Packet Identifier (PID) of the SCTE-35 stream in the transport
    stream. Can be entered as a decimal or hexadecimal value.

    - **TimedMetadataBehavior** *(string) --* When set to passthrough, timed metadata is passed
    through from input to output.

    - **TimedMetadataPid** *(string) --* Packet Identifier (PID) of the timed metadata stream in the
    transport stream. Can be entered as a decimal or hexadecimal value. Valid values are 32 (or
    0x20)..8182 (or 0x1ff6).

    - **TransportStreamId** *(integer) --* The value of the transport stream ID field in the Program
    Map Table.

    - **VideoPid** *(string) --* Packet Identifier (PID) of the elementary video stream in the
    transport stream. Can be entered as a decimal or hexadecimal value.
    """


_ClientStartChannelResponseEncoderSettingsOutputGroupsOutputsOutputSettingsHlsOutputSettingsHlsSettingsStandardHlsSettingsTypeDef = TypedDict(
    "_ClientStartChannelResponseEncoderSettingsOutputGroupsOutputsOutputSettingsHlsOutputSettingsHlsSettingsStandardHlsSettingsTypeDef",
    {
        "AudioRenditionSets": str,
        "M3u8Settings": ClientStartChannelResponseEncoderSettingsOutputGroupsOutputsOutputSettingsHlsOutputSettingsHlsSettingsStandardHlsSettingsM3u8SettingsTypeDef,
    },
    total=False,
)


class ClientStartChannelResponseEncoderSettingsOutputGroupsOutputsOutputSettingsHlsOutputSettingsHlsSettingsStandardHlsSettingsTypeDef(
    _ClientStartChannelResponseEncoderSettingsOutputGroupsOutputsOutputSettingsHlsOutputSettingsHlsSettingsStandardHlsSettingsTypeDef
):
    """
    Type definition for
    `ClientStartChannelResponseEncoderSettingsOutputGroupsOutputsOutputSettingsHlsOutputSettingsHlsSettings`
    `StandardHlsSettings`

    - **AudioRenditionSets** *(string) --* List all the audio groups that are used with the video
    output stream. Input all the audio GROUP-IDs that are associated to the video, separate by ','.

    - **M3u8Settings** *(dict) --* Settings information for the .m3u8 container

      - **AudioFramesPerPes** *(integer) --* The number of audio frames to insert for each PES
      packet.

      - **AudioPids** *(string) --* Packet Identifier (PID) of the elementary audio stream(s) in the
      transport stream. Multiple values are accepted, and can be entered in ranges and/or by comma
      separation. Can be entered as decimal or hexadecimal values.

      - **EcmPid** *(string) --* This parameter is unused and deprecated.

      - **NielsenId3Behavior** *(string) --* If set to passthrough, Nielsen inaudible tones for
      media tracking will be detected in the input audio and an equivalent ID3 tag will be inserted
      in the output.

      - **PatInterval** *(integer) --* The number of milliseconds between instances of this table in
      the output transport stream. A value of \\"0\\" writes out the PMT once per segment file.

      - **PcrControl** *(string) --* When set to pcrEveryPesPacket, a Program Clock Reference value
      is inserted for every Packetized Elementary Stream (PES) header. This parameter is effective
      only when the PCR PID is the same as the video or audio elementary stream.

      - **PcrPeriod** *(integer) --* Maximum time in milliseconds between Program Clock References
      (PCRs) inserted into the transport stream.

      - **PcrPid** *(string) --* Packet Identifier (PID) of the Program Clock Reference (PCR) in the
      transport stream. When no value is given, the encoder will assign the same value as the Video
      PID. Can be entered as a decimal or hexadecimal value.

      - **PmtInterval** *(integer) --* The number of milliseconds between instances of this table in
      the output transport stream. A value of \\"0\\" writes out the PMT once per segment file.

      - **PmtPid** *(string) --* Packet Identifier (PID) for the Program Map Table (PMT) in the
      transport stream. Can be entered as a decimal or hexadecimal value.

      - **ProgramNum** *(integer) --* The value of the program number field in the Program Map
      Table.

      - **Scte35Behavior** *(string) --* If set to passthrough, passes any SCTE-35 signals from the
      input source to this output.

      - **Scte35Pid** *(string) --* Packet Identifier (PID) of the SCTE-35 stream in the transport
      stream. Can be entered as a decimal or hexadecimal value.

      - **TimedMetadataBehavior** *(string) --* When set to passthrough, timed metadata is passed
      through from input to output.

      - **TimedMetadataPid** *(string) --* Packet Identifier (PID) of the timed metadata stream in
      the transport stream. Can be entered as a decimal or hexadecimal value. Valid values are 32
      (or 0x20)..8182 (or 0x1ff6).

      - **TransportStreamId** *(integer) --* The value of the transport stream ID field in the
      Program Map Table.

      - **VideoPid** *(string) --* Packet Identifier (PID) of the elementary video stream in the
      transport stream. Can be entered as a decimal or hexadecimal value.
    """


_ClientStartChannelResponseEncoderSettingsOutputGroupsOutputsOutputSettingsHlsOutputSettingsHlsSettingsTypeDef = TypedDict(
    "_ClientStartChannelResponseEncoderSettingsOutputGroupsOutputsOutputSettingsHlsOutputSettingsHlsSettingsTypeDef",
    {
        "AudioOnlyHlsSettings": ClientStartChannelResponseEncoderSettingsOutputGroupsOutputsOutputSettingsHlsOutputSettingsHlsSettingsAudioOnlyHlsSettingsTypeDef,
        "StandardHlsSettings": ClientStartChannelResponseEncoderSettingsOutputGroupsOutputsOutputSettingsHlsOutputSettingsHlsSettingsStandardHlsSettingsTypeDef,
    },
    total=False,
)


class ClientStartChannelResponseEncoderSettingsOutputGroupsOutputsOutputSettingsHlsOutputSettingsHlsSettingsTypeDef(
    _ClientStartChannelResponseEncoderSettingsOutputGroupsOutputsOutputSettingsHlsOutputSettingsHlsSettingsTypeDef
):
    """
    Type definition for
    `ClientStartChannelResponseEncoderSettingsOutputGroupsOutputsOutputSettingsHlsOutputSettings`
    `HlsSettings`

    - **AudioOnlyHlsSettings** *(dict) --* Audio Only Hls Settings

      - **AudioGroupId** *(string) --* Specifies the group to which the audio Rendition belongs.

      - **AudioOnlyImage** *(dict) --* Optional. Specifies the .jpg or .png image to use as the
      cover art for an audio-only output. We recommend a low bit-size file because the image
      increases the output audio bandwidth. The image is attached to the audio as an ID3 tag, frame
      type APIC, picture type 0x10, as per the "ID3 tag version 2.4.0 - Native Frames" standard.

        - **PasswordParam** *(string) --* key used to extract the password from EC2 Parameter store

        - **Uri** *(string) --* Uniform Resource Identifier - This should be a path to a file
        accessible to the Live system (eg. a http:// URI) depending on the output type. For example,
        a RTMP destination should have a uri simliar to: "rtmp://fmsserver/live".

        - **Username** *(string) --* Documentation update needed

      - **AudioTrackType** *(string) --* Four types of audio-only tracks are supported: Audio-Only
      Variant Stream The client can play back this audio-only stream instead of video in
      low-bandwidth scenarios. Represented as an EXT-X-STREAM-INF in the HLS manifest. Alternate
      Audio, Auto Select, Default Alternate rendition that the client should try to play back by
      default. Represented as an EXT-X-MEDIA in the HLS manifest with DEFAULT=YES, AUTOSELECT=YES
      Alternate Audio, Auto Select, Not Default Alternate rendition that the client may try to play
      back by default. Represented as an EXT-X-MEDIA in the HLS manifest with DEFAULT=NO,
      AUTOSELECT=YES Alternate Audio, not Auto Select Alternate rendition that the client will not
      try to play back by default. Represented as an EXT-X-MEDIA in the HLS manifest with
      DEFAULT=NO, AUTOSELECT=NO

    - **StandardHlsSettings** *(dict) --* Standard Hls Settings

      - **AudioRenditionSets** *(string) --* List all the audio groups that are used with the video
      output stream. Input all the audio GROUP-IDs that are associated to the video, separate by
      ','.

      - **M3u8Settings** *(dict) --* Settings information for the .m3u8 container

        - **AudioFramesPerPes** *(integer) --* The number of audio frames to insert for each PES
        packet.

        - **AudioPids** *(string) --* Packet Identifier (PID) of the elementary audio stream(s) in
        the transport stream. Multiple values are accepted, and can be entered in ranges and/or by
        comma separation. Can be entered as decimal or hexadecimal values.

        - **EcmPid** *(string) --* This parameter is unused and deprecated.

        - **NielsenId3Behavior** *(string) --* If set to passthrough, Nielsen inaudible tones for
        media tracking will be detected in the input audio and an equivalent ID3 tag will be
        inserted in the output.

        - **PatInterval** *(integer) --* The number of milliseconds between instances of this table
        in the output transport stream. A value of \\"0\\" writes out the PMT once per segment file.

        - **PcrControl** *(string) --* When set to pcrEveryPesPacket, a Program Clock Reference
        value is inserted for every Packetized Elementary Stream (PES) header. This parameter is
        effective only when the PCR PID is the same as the video or audio elementary stream.

        - **PcrPeriod** *(integer) --* Maximum time in milliseconds between Program Clock References
        (PCRs) inserted into the transport stream.

        - **PcrPid** *(string) --* Packet Identifier (PID) of the Program Clock Reference (PCR) in
        the transport stream. When no value is given, the encoder will assign the same value as the
        Video PID. Can be entered as a decimal or hexadecimal value.

        - **PmtInterval** *(integer) --* The number of milliseconds between instances of this table
        in the output transport stream. A value of \\"0\\" writes out the PMT once per segment file.

        - **PmtPid** *(string) --* Packet Identifier (PID) for the Program Map Table (PMT) in the
        transport stream. Can be entered as a decimal or hexadecimal value.

        - **ProgramNum** *(integer) --* The value of the program number field in the Program Map
        Table.

        - **Scte35Behavior** *(string) --* If set to passthrough, passes any SCTE-35 signals from
        the input source to this output.

        - **Scte35Pid** *(string) --* Packet Identifier (PID) of the SCTE-35 stream in the transport
        stream. Can be entered as a decimal or hexadecimal value.

        - **TimedMetadataBehavior** *(string) --* When set to passthrough, timed metadata is passed
        through from input to output.

        - **TimedMetadataPid** *(string) --* Packet Identifier (PID) of the timed metadata stream in
        the transport stream. Can be entered as a decimal or hexadecimal value. Valid values are 32
        (or 0x20)..8182 (or 0x1ff6).

        - **TransportStreamId** *(integer) --* The value of the transport stream ID field in the
        Program Map Table.

        - **VideoPid** *(string) --* Packet Identifier (PID) of the elementary video stream in the
        transport stream. Can be entered as a decimal or hexadecimal value.
    """


_ClientStartChannelResponseEncoderSettingsOutputGroupsOutputsOutputSettingsHlsOutputSettingsTypeDef = TypedDict(
    "_ClientStartChannelResponseEncoderSettingsOutputGroupsOutputsOutputSettingsHlsOutputSettingsTypeDef",
    {
        "HlsSettings": ClientStartChannelResponseEncoderSettingsOutputGroupsOutputsOutputSettingsHlsOutputSettingsHlsSettingsTypeDef,
        "NameModifier": str,
        "SegmentModifier": str,
    },
    total=False,
)


class ClientStartChannelResponseEncoderSettingsOutputGroupsOutputsOutputSettingsHlsOutputSettingsTypeDef(
    _ClientStartChannelResponseEncoderSettingsOutputGroupsOutputsOutputSettingsHlsOutputSettingsTypeDef
):
    """
    Type definition for `ClientStartChannelResponseEncoderSettingsOutputGroupsOutputsOutputSettings`
    `HlsOutputSettings`

    - **HlsSettings** *(dict) --* Settings regarding the underlying stream. These settings are
    different for audio-only outputs.

      - **AudioOnlyHlsSettings** *(dict) --* Audio Only Hls Settings

        - **AudioGroupId** *(string) --* Specifies the group to which the audio Rendition belongs.

        - **AudioOnlyImage** *(dict) --* Optional. Specifies the .jpg or .png image to use as the
        cover art for an audio-only output. We recommend a low bit-size file because the image
        increases the output audio bandwidth. The image is attached to the audio as an ID3 tag,
        frame type APIC, picture type 0x10, as per the "ID3 tag version 2.4.0 - Native Frames"
        standard.

          - **PasswordParam** *(string) --* key used to extract the password from EC2 Parameter
          store

          - **Uri** *(string) --* Uniform Resource Identifier - This should be a path to a file
          accessible to the Live system (eg. a http:// URI) depending on the output type. For
          example, a RTMP destination should have a uri simliar to: "rtmp://fmsserver/live".

          - **Username** *(string) --* Documentation update needed

        - **AudioTrackType** *(string) --* Four types of audio-only tracks are supported: Audio-Only
        Variant Stream The client can play back this audio-only stream instead of video in
        low-bandwidth scenarios. Represented as an EXT-X-STREAM-INF in the HLS manifest. Alternate
        Audio, Auto Select, Default Alternate rendition that the client should try to play back by
        default. Represented as an EXT-X-MEDIA in the HLS manifest with DEFAULT=YES, AUTOSELECT=
            YES
        Alternate Audio, Auto Select, Not Default Alternate rendition that the client may try to
        play back by default. Represented as an EXT-X-MEDIA in the HLS manifest with DEFAULT=NO,
        AUTOSELECT=
            YES Alternate Audio, not Auto Select Alternate rendition that the client will not
        try to play back by default. Represented as an EXT-X-MEDIA in the HLS manifest with
        DEFAULT=NO, AUTOSELECT=NO

      - **StandardHlsSettings** *(dict) --* Standard Hls Settings

        - **AudioRenditionSets** *(string) --* List all the audio groups that are used with the
        video output stream. Input all the audio GROUP-IDs that are associated to the video,
        separate by ','.

        - **M3u8Settings** *(dict) --* Settings information for the .m3u8 container

          - **AudioFramesPerPes** *(integer) --* The number of audio frames to insert for each PES
          packet.

          - **AudioPids** *(string) --* Packet Identifier (PID) of the elementary audio stream(s) in
          the transport stream. Multiple values are accepted, and can be entered in ranges and/or by
          comma separation. Can be entered as decimal or hexadecimal values.

          - **EcmPid** *(string) --* This parameter is unused and deprecated.

          - **NielsenId3Behavior** *(string) --* If set to passthrough, Nielsen inaudible tones for
          media tracking will be detected in the input audio and an equivalent ID3 tag will be
          inserted in the output.

          - **PatInterval** *(integer) --* The number of milliseconds between instances of this
          table in the output transport stream. A value of \\"0\\" writes out the PMT once per
          segment file.

          - **PcrControl** *(string) --* When set to pcrEveryPesPacket, a Program Clock Reference
          value is inserted for every Packetized Elementary Stream (PES) header. This parameter is
          effective only when the PCR PID is the same as the video or audio elementary stream.

          - **PcrPeriod** *(integer) --* Maximum time in milliseconds between Program Clock
          References (PCRs) inserted into the transport stream.

          - **PcrPid** *(string) --* Packet Identifier (PID) of the Program Clock Reference (PCR) in
          the transport stream. When no value is given, the encoder will assign the same value as
          the Video PID. Can be entered as a decimal or hexadecimal value.

          - **PmtInterval** *(integer) --* The number of milliseconds between instances of this
          table in the output transport stream. A value of \\"0\\" writes out the PMT once per
          segment file.

          - **PmtPid** *(string) --* Packet Identifier (PID) for the Program Map Table (PMT) in the
          transport stream. Can be entered as a decimal or hexadecimal value.

          - **ProgramNum** *(integer) --* The value of the program number field in the Program Map
          Table.

          - **Scte35Behavior** *(string) --* If set to passthrough, passes any SCTE-35 signals from
          the input source to this output.

          - **Scte35Pid** *(string) --* Packet Identifier (PID) of the SCTE-35 stream in the
          transport stream. Can be entered as a decimal or hexadecimal value.

          - **TimedMetadataBehavior** *(string) --* When set to passthrough, timed metadata is
          passed through from input to output.

          - **TimedMetadataPid** *(string) --* Packet Identifier (PID) of the timed metadata stream
          in the transport stream. Can be entered as a decimal or hexadecimal value. Valid values
          are 32 (or 0x20)..8182 (or 0x1ff6).

          - **TransportStreamId** *(integer) --* The value of the transport stream ID field in the
          Program Map Table.

          - **VideoPid** *(string) --* Packet Identifier (PID) of the elementary video stream in the
          transport stream. Can be entered as a decimal or hexadecimal value.

    - **NameModifier** *(string) --* String concatenated to the end of the destination filename.
    Accepts \\"Format Identifiers\\":#formatIdentifierParameters.

    - **SegmentModifier** *(string) --* String concatenated to end of segment filenames.
    """


_ClientStartChannelResponseEncoderSettingsOutputGroupsOutputsOutputSettingsMsSmoothOutputSettingsTypeDef = TypedDict(
    "_ClientStartChannelResponseEncoderSettingsOutputGroupsOutputsOutputSettingsMsSmoothOutputSettingsTypeDef",
    {"H265PackagingType": str, "NameModifier": str},
    total=False,
)


class ClientStartChannelResponseEncoderSettingsOutputGroupsOutputsOutputSettingsMsSmoothOutputSettingsTypeDef(
    _ClientStartChannelResponseEncoderSettingsOutputGroupsOutputsOutputSettingsMsSmoothOutputSettingsTypeDef
):
    """
    Type definition for `ClientStartChannelResponseEncoderSettingsOutputGroupsOutputsOutputSettings`
    `MsSmoothOutputSettings`

    - **H265PackagingType** *(string) --* Only applicable when this output is referencing an H.265
    video description. Specifies whether MP4 segments should be packaged as HEV1 or HVC1.

    - **NameModifier** *(string) --* String concatenated to the end of the destination filename.
    Required for multiple outputs of the same type.
    """


_ClientStartChannelResponseEncoderSettingsOutputGroupsOutputsOutputSettingsMultiplexOutputSettingsDestinationTypeDef = TypedDict(
    "_ClientStartChannelResponseEncoderSettingsOutputGroupsOutputsOutputSettingsMultiplexOutputSettingsDestinationTypeDef",
    {"DestinationRefId": str},
    total=False,
)


class ClientStartChannelResponseEncoderSettingsOutputGroupsOutputsOutputSettingsMultiplexOutputSettingsDestinationTypeDef(
    _ClientStartChannelResponseEncoderSettingsOutputGroupsOutputsOutputSettingsMultiplexOutputSettingsDestinationTypeDef
):
    """
    Type definition for
    `ClientStartChannelResponseEncoderSettingsOutputGroupsOutputsOutputSettingsMultiplexOutputSettings`
    `Destination`

    - **DestinationRefId** *(string) --* Placeholder documentation for __string
    """


_ClientStartChannelResponseEncoderSettingsOutputGroupsOutputsOutputSettingsMultiplexOutputSettingsTypeDef = TypedDict(
    "_ClientStartChannelResponseEncoderSettingsOutputGroupsOutputsOutputSettingsMultiplexOutputSettingsTypeDef",
    {
        "Destination": ClientStartChannelResponseEncoderSettingsOutputGroupsOutputsOutputSettingsMultiplexOutputSettingsDestinationTypeDef
    },
    total=False,
)


class ClientStartChannelResponseEncoderSettingsOutputGroupsOutputsOutputSettingsMultiplexOutputSettingsTypeDef(
    _ClientStartChannelResponseEncoderSettingsOutputGroupsOutputsOutputSettingsMultiplexOutputSettingsTypeDef
):
    """
    Type definition for `ClientStartChannelResponseEncoderSettingsOutputGroupsOutputsOutputSettings`
    `MultiplexOutputSettings`

    - **Destination** *(dict) --* Destination is a Multiplex.

      - **DestinationRefId** *(string) --* Placeholder documentation for __string
    """


_ClientStartChannelResponseEncoderSettingsOutputGroupsOutputsOutputSettingsRtmpOutputSettingsDestinationTypeDef = TypedDict(
    "_ClientStartChannelResponseEncoderSettingsOutputGroupsOutputsOutputSettingsRtmpOutputSettingsDestinationTypeDef",
    {"DestinationRefId": str},
    total=False,
)


class ClientStartChannelResponseEncoderSettingsOutputGroupsOutputsOutputSettingsRtmpOutputSettingsDestinationTypeDef(
    _ClientStartChannelResponseEncoderSettingsOutputGroupsOutputsOutputSettingsRtmpOutputSettingsDestinationTypeDef
):
    """
    Type definition for
    `ClientStartChannelResponseEncoderSettingsOutputGroupsOutputsOutputSettingsRtmpOutputSettings`
    `Destination`

    - **DestinationRefId** *(string) --* Placeholder documentation for __string
    """


_ClientStartChannelResponseEncoderSettingsOutputGroupsOutputsOutputSettingsRtmpOutputSettingsTypeDef = TypedDict(
    "_ClientStartChannelResponseEncoderSettingsOutputGroupsOutputsOutputSettingsRtmpOutputSettingsTypeDef",
    {
        "CertificateMode": str,
        "ConnectionRetryInterval": int,
        "Destination": ClientStartChannelResponseEncoderSettingsOutputGroupsOutputsOutputSettingsRtmpOutputSettingsDestinationTypeDef,
        "NumRetries": int,
    },
    total=False,
)


class ClientStartChannelResponseEncoderSettingsOutputGroupsOutputsOutputSettingsRtmpOutputSettingsTypeDef(
    _ClientStartChannelResponseEncoderSettingsOutputGroupsOutputsOutputSettingsRtmpOutputSettingsTypeDef
):
    """
    Type definition for `ClientStartChannelResponseEncoderSettingsOutputGroupsOutputsOutputSettings`
    `RtmpOutputSettings`

    - **CertificateMode** *(string) --* If set to verifyAuthenticity, verify the tls certificate
    chain to a trusted Certificate Authority (CA). This will cause rtmps outputs with self-signed
    certificates to fail.

    - **ConnectionRetryInterval** *(integer) --* Number of seconds to wait before retrying a
    connection to the Flash Media server if the connection is lost.

    - **Destination** *(dict) --* The RTMP endpoint excluding the stream name (eg.
    rtmp://host/appname). For connection to Akamai, a username and password must be supplied. URI
    fields accept format identifiers.

      - **DestinationRefId** *(string) --* Placeholder documentation for __string

    - **NumRetries** *(integer) --* Number of retry attempts.
    """


_ClientStartChannelResponseEncoderSettingsOutputGroupsOutputsOutputSettingsUdpOutputSettingsContainerSettingsM2tsSettingsDvbNitSettingsTypeDef = TypedDict(
    "_ClientStartChannelResponseEncoderSettingsOutputGroupsOutputsOutputSettingsUdpOutputSettingsContainerSettingsM2tsSettingsDvbNitSettingsTypeDef",
    {"NetworkId": int, "NetworkName": str, "RepInterval": int},
    total=False,
)


class ClientStartChannelResponseEncoderSettingsOutputGroupsOutputsOutputSettingsUdpOutputSettingsContainerSettingsM2tsSettingsDvbNitSettingsTypeDef(
    _ClientStartChannelResponseEncoderSettingsOutputGroupsOutputsOutputSettingsUdpOutputSettingsContainerSettingsM2tsSettingsDvbNitSettingsTypeDef
):
    """
    Type definition for
    `ClientStartChannelResponseEncoderSettingsOutputGroupsOutputsOutputSettingsUdpOutputSettingsContainerSettingsM2tsSettings`
    `DvbNitSettings`

    - **NetworkId** *(integer) --* The numeric value placed in the Network Information Table (NIT).

    - **NetworkName** *(string) --* The network name text placed in the networkNameDescriptor inside
    the Network Information Table. Maximum length is 256 characters.

    - **RepInterval** *(integer) --* The number of milliseconds between instances of this table in
    the output transport stream.
    """


_ClientStartChannelResponseEncoderSettingsOutputGroupsOutputsOutputSettingsUdpOutputSettingsContainerSettingsM2tsSettingsDvbSdtSettingsTypeDef = TypedDict(
    "_ClientStartChannelResponseEncoderSettingsOutputGroupsOutputsOutputSettingsUdpOutputSettingsContainerSettingsM2tsSettingsDvbSdtSettingsTypeDef",
    {"OutputSdt": str, "RepInterval": int, "ServiceName": str, "ServiceProviderName": str},
    total=False,
)


class ClientStartChannelResponseEncoderSettingsOutputGroupsOutputsOutputSettingsUdpOutputSettingsContainerSettingsM2tsSettingsDvbSdtSettingsTypeDef(
    _ClientStartChannelResponseEncoderSettingsOutputGroupsOutputsOutputSettingsUdpOutputSettingsContainerSettingsM2tsSettingsDvbSdtSettingsTypeDef
):
    """
    Type definition for
    `ClientStartChannelResponseEncoderSettingsOutputGroupsOutputsOutputSettingsUdpOutputSettingsContainerSettingsM2tsSettings`
    `DvbSdtSettings`

    - **OutputSdt** *(string) --* Selects method of inserting SDT information into output stream.
    The sdtFollow setting copies SDT information from input stream to output stream. The
    sdtFollowIfPresent setting copies SDT information from input stream to output stream if SDT
    information is present in the input, otherwise it will fall back on the user-defined values. The
    sdtManual setting means user will enter the SDT information. The sdtNone setting means output
    stream will not contain SDT information.

    - **RepInterval** *(integer) --* The number of milliseconds between instances of this table in
    the output transport stream.

    - **ServiceName** *(string) --* The service name placed in the serviceDescriptor in the Service
    Description Table. Maximum length is 256 characters.

    - **ServiceProviderName** *(string) --* The service provider name placed in the
    serviceDescriptor in the Service Description Table. Maximum length is 256 characters.
    """


_ClientStartChannelResponseEncoderSettingsOutputGroupsOutputsOutputSettingsUdpOutputSettingsContainerSettingsM2tsSettingsDvbTdtSettingsTypeDef = TypedDict(
    "_ClientStartChannelResponseEncoderSettingsOutputGroupsOutputsOutputSettingsUdpOutputSettingsContainerSettingsM2tsSettingsDvbTdtSettingsTypeDef",
    {"RepInterval": int},
    total=False,
)


class ClientStartChannelResponseEncoderSettingsOutputGroupsOutputsOutputSettingsUdpOutputSettingsContainerSettingsM2tsSettingsDvbTdtSettingsTypeDef(
    _ClientStartChannelResponseEncoderSettingsOutputGroupsOutputsOutputSettingsUdpOutputSettingsContainerSettingsM2tsSettingsDvbTdtSettingsTypeDef
):
    """
    Type definition for
    `ClientStartChannelResponseEncoderSettingsOutputGroupsOutputsOutputSettingsUdpOutputSettingsContainerSettingsM2tsSettings`
    `DvbTdtSettings`

    - **RepInterval** *(integer) --* The number of milliseconds between instances of this table in
    the output transport stream.
    """


_ClientStartChannelResponseEncoderSettingsOutputGroupsOutputsOutputSettingsUdpOutputSettingsContainerSettingsM2tsSettingsTypeDef = TypedDict(
    "_ClientStartChannelResponseEncoderSettingsOutputGroupsOutputsOutputSettingsUdpOutputSettingsContainerSettingsM2tsSettingsTypeDef",
    {
        "AbsentInputAudioBehavior": str,
        "Arib": str,
        "AribCaptionsPid": str,
        "AribCaptionsPidControl": str,
        "AudioBufferModel": str,
        "AudioFramesPerPes": int,
        "AudioPids": str,
        "AudioStreamType": str,
        "Bitrate": int,
        "BufferModel": str,
        "CcDescriptor": str,
        "DvbNitSettings": ClientStartChannelResponseEncoderSettingsOutputGroupsOutputsOutputSettingsUdpOutputSettingsContainerSettingsM2tsSettingsDvbNitSettingsTypeDef,
        "DvbSdtSettings": ClientStartChannelResponseEncoderSettingsOutputGroupsOutputsOutputSettingsUdpOutputSettingsContainerSettingsM2tsSettingsDvbSdtSettingsTypeDef,
        "DvbSubPids": str,
        "DvbTdtSettings": ClientStartChannelResponseEncoderSettingsOutputGroupsOutputsOutputSettingsUdpOutputSettingsContainerSettingsM2tsSettingsDvbTdtSettingsTypeDef,
        "DvbTeletextPid": str,
        "Ebif": str,
        "EbpAudioInterval": str,
        "EbpLookaheadMs": int,
        "EbpPlacement": str,
        "EcmPid": str,
        "EsRateInPes": str,
        "EtvPlatformPid": str,
        "EtvSignalPid": str,
        "FragmentTime": float,
        "Klv": str,
        "KlvDataPids": str,
        "NielsenId3Behavior": str,
        "NullPacketBitrate": float,
        "PatInterval": int,
        "PcrControl": str,
        "PcrPeriod": int,
        "PcrPid": str,
        "PmtInterval": int,
        "PmtPid": str,
        "ProgramNum": int,
        "RateMode": str,
        "Scte27Pids": str,
        "Scte35Control": str,
        "Scte35Pid": str,
        "SegmentationMarkers": str,
        "SegmentationStyle": str,
        "SegmentationTime": float,
        "TimedMetadataBehavior": str,
        "TimedMetadataPid": str,
        "TransportStreamId": int,
        "VideoPid": str,
    },
    total=False,
)


class ClientStartChannelResponseEncoderSettingsOutputGroupsOutputsOutputSettingsUdpOutputSettingsContainerSettingsM2tsSettingsTypeDef(
    _ClientStartChannelResponseEncoderSettingsOutputGroupsOutputsOutputSettingsUdpOutputSettingsContainerSettingsM2tsSettingsTypeDef
):
    """
    Type definition for
    `ClientStartChannelResponseEncoderSettingsOutputGroupsOutputsOutputSettingsUdpOutputSettingsContainerSettings`
    `M2tsSettings`

    - **AbsentInputAudioBehavior** *(string) --* When set to drop, output audio streams will be
    removed from the program if the selected input audio stream is removed from the input. This
    allows the output audio configuration to dynamically change based on input configuration. If
    this is set to encodeSilence, all output audio streams will output encoded silence when not
    connected to an active input stream.

    - **Arib** *(string) --* When set to enabled, uses ARIB-compliant field muxing and removes video
    descriptor.

    - **AribCaptionsPid** *(string) --* Packet Identifier (PID) for ARIB Captions in the transport
    stream. Can be entered as a decimal or hexadecimal value. Valid values are 32 (or 0x20)..8182
    (or 0x1ff6).

    - **AribCaptionsPidControl** *(string) --* If set to auto, pid number used for ARIB Captions
    will be auto-selected from unused pids. If set to useConfigured, ARIB Captions will be on the
    configured pid number.

    - **AudioBufferModel** *(string) --* When set to dvb, uses DVB buffer model for Dolby Digital
    audio. When set to atsc, the ATSC model is used.

    - **AudioFramesPerPes** *(integer) --* The number of audio frames to insert for each PES packet.

    - **AudioPids** *(string) --* Packet Identifier (PID) of the elementary audio stream(s) in the
    transport stream. Multiple values are accepted, and can be entered in ranges and/or by comma
    separation. Can be entered as decimal or hexadecimal values. Each PID specified must be in the
    range of 32 (or 0x20)..8182 (or 0x1ff6).

    - **AudioStreamType** *(string) --* When set to atsc, uses stream type = 0x81 for AC3 and stream
    type = 0x87 for EAC3. When set to dvb, uses stream type = 0x06.

    - **Bitrate** *(integer) --* The output bitrate of the transport stream in bits per second.
    Setting to 0 lets the muxer automatically determine the appropriate bitrate.

    - **BufferModel** *(string) --* If set to multiplex, use multiplex buffer model for accurate
    interleaving. Setting to bufferModel to none can lead to lower latency, but low-memory devices
    may not be able to play back the stream without interruptions.

    - **CcDescriptor** *(string) --* When set to enabled, generates captionServiceDescriptor in PMT.

    - **DvbNitSettings** *(dict) --* Inserts DVB Network Information Table (NIT) at the specified
    table repetition interval.

      - **NetworkId** *(integer) --* The numeric value placed in the Network Information Table
      (NIT).

      - **NetworkName** *(string) --* The network name text placed in the networkNameDescriptor
      inside the Network Information Table. Maximum length is 256 characters.

      - **RepInterval** *(integer) --* The number of milliseconds between instances of this table in
      the output transport stream.

    - **DvbSdtSettings** *(dict) --* Inserts DVB Service Description Table (SDT) at the specified
    table repetition interval.

      - **OutputSdt** *(string) --* Selects method of inserting SDT information into output stream.
      The sdtFollow setting copies SDT information from input stream to output stream. The
      sdtFollowIfPresent setting copies SDT information from input stream to output stream if SDT
      information is present in the input, otherwise it will fall back on the user-defined values.
      The sdtManual setting means user will enter the SDT information. The sdtNone setting means
      output stream will not contain SDT information.

      - **RepInterval** *(integer) --* The number of milliseconds between instances of this table in
      the output transport stream.

      - **ServiceName** *(string) --* The service name placed in the serviceDescriptor in the
      Service Description Table. Maximum length is 256 characters.

      - **ServiceProviderName** *(string) --* The service provider name placed in the
      serviceDescriptor in the Service Description Table. Maximum length is 256 characters.

    - **DvbSubPids** *(string) --* Packet Identifier (PID) for input source DVB Subtitle data to
    this output. Multiple values are accepted, and can be entered in ranges and/or by comma
    separation. Can be entered as decimal or hexadecimal values. Each PID specified must be in the
    range of 32 (or 0x20)..8182 (or 0x1ff6).

    - **DvbTdtSettings** *(dict) --* Inserts DVB Time and Date Table (TDT) at the specified table
    repetition interval.

      - **RepInterval** *(integer) --* The number of milliseconds between instances of this table in
      the output transport stream.

    - **DvbTeletextPid** *(string) --* Packet Identifier (PID) for input source DVB Teletext data to
    this output. Can be entered as a decimal or hexadecimal value. Valid values are 32 (or
    0x20)..8182 (or 0x1ff6).

    - **Ebif** *(string) --* If set to passthrough, passes any EBIF data from the input source to
    this output.

    - **EbpAudioInterval** *(string) --* When videoAndFixedIntervals is selected, audio EBP markers
    will be added to partitions 3 and 4. The interval between these additional markers will be
    fixed, and will be slightly shorter than the video EBP marker interval. Only available when EBP
    Cablelabs segmentation markers are selected. Partitions 1 and 2 will always follow the video
    interval.

    - **EbpLookaheadMs** *(integer) --* When set, enforces that Encoder Boundary Points do not come
    within the specified time interval of each other by looking ahead at input video. If another EBP
    is going to come in within the specified time interval, the current EBP is not emitted, and the
    segment is "stretched" to the next marker. The lookahead value does not add latency to the
    system. The Live Event must be configured elsewhere to create sufficient latency to make the
    lookahead accurate.

    - **EbpPlacement** *(string) --* Controls placement of EBP on Audio PIDs. If set to
    videoAndAudioPids, EBP markers will be placed on the video PID and all audio PIDs. If set to
    videoPid, EBP markers will be placed on only the video PID.

    - **EcmPid** *(string) --* This field is unused and deprecated.

    - **EsRateInPes** *(string) --* Include or exclude the ES Rate field in the PES header.

    - **EtvPlatformPid** *(string) --* Packet Identifier (PID) for input source ETV Platform data to
    this output. Can be entered as a decimal or hexadecimal value. Valid values are 32 (or
    0x20)..8182 (or 0x1ff6).

    - **EtvSignalPid** *(string) --* Packet Identifier (PID) for input source ETV Signal data to
    this output. Can be entered as a decimal or hexadecimal value. Valid values are 32 (or
    0x20)..8182 (or 0x1ff6).

    - **FragmentTime** *(float) --* The length in seconds of each fragment. Only used with EBP
    markers.

    - **Klv** *(string) --* If set to passthrough, passes any KLV data from the input source to this
    output.

    - **KlvDataPids** *(string) --* Packet Identifier (PID) for input source KLV data to this
    output. Multiple values are accepted, and can be entered in ranges and/or by comma separation.
    Can be entered as decimal or hexadecimal values. Each PID specified must be in the range of 32
    (or 0x20)..8182 (or 0x1ff6).

    - **NielsenId3Behavior** *(string) --* If set to passthrough, Nielsen inaudible tones for media
    tracking will be detected in the input audio and an equivalent ID3 tag will be inserted in the
    output.

    - **NullPacketBitrate** *(float) --* Value in bits per second of extra null packets to insert
    into the transport stream. This can be used if a downstream encryption system requires periodic
    null packets.

    - **PatInterval** *(integer) --* The number of milliseconds between instances of this table in
    the output transport stream. Valid values are 0, 10..1000.

    - **PcrControl** *(string) --* When set to pcrEveryPesPacket, a Program Clock Reference value is
    inserted for every Packetized Elementary Stream (PES) header. This parameter is effective only
    when the PCR PID is the same as the video or audio elementary stream.

    - **PcrPeriod** *(integer) --* Maximum time in milliseconds between Program Clock Reference
    (PCRs) inserted into the transport stream.

    - **PcrPid** *(string) --* Packet Identifier (PID) of the Program Clock Reference (PCR) in the
    transport stream. When no value is given, the encoder will assign the same value as the Video
    PID. Can be entered as a decimal or hexadecimal value. Valid values are 32 (or 0x20)..8182 (or
    0x1ff6).

    - **PmtInterval** *(integer) --* The number of milliseconds between instances of this table in
    the output transport stream. Valid values are 0, 10..1000.

    - **PmtPid** *(string) --* Packet Identifier (PID) for the Program Map Table (PMT) in the
    transport stream. Can be entered as a decimal or hexadecimal value. Valid values are 32 (or
    0x20)..8182 (or 0x1ff6).

    - **ProgramNum** *(integer) --* The value of the program number field in the Program Map Table.

    - **RateMode** *(string) --* When vbr, does not insert null packets into transport stream to
    fill specified bitrate. The bitrate setting acts as the maximum bitrate when vbr is set.

    - **Scte27Pids** *(string) --* Packet Identifier (PID) for input source SCTE-27 data to this
    output. Multiple values are accepted, and can be entered in ranges and/or by comma separation.
    Can be entered as decimal or hexadecimal values. Each PID specified must be in the range of 32
    (or 0x20)..8182 (or 0x1ff6).

    - **Scte35Control** *(string) --* Optionally pass SCTE-35 signals from the input source to this
    output.

    - **Scte35Pid** *(string) --* Packet Identifier (PID) of the SCTE-35 stream in the transport
    stream. Can be entered as a decimal or hexadecimal value. Valid values are 32 (or 0x20)..8182
    (or 0x1ff6).

    - **SegmentationMarkers** *(string) --* Inserts segmentation markers at each segmentationTime
    period. raiSegstart sets the Random Access Indicator bit in the adaptation field. raiAdapt sets
    the RAI bit and adds the current timecode in the private data bytes. psiSegstart inserts PAT and
    PMT tables at the start of segments. ebp adds Encoder Boundary Point information to the
    adaptation field as per OpenCable specification OC-SP-EBP-I01-130118. ebpLegacy adds Encoder
    Boundary Point information to the adaptation field using a legacy proprietary format.

    - **SegmentationStyle** *(string) --* The segmentation style parameter controls how segmentation
    markers are inserted into the transport stream. With avails, it is possible that segments may be
    truncated, which can influence where future segmentation markers are inserted. When a
    segmentation style of "resetCadence" is selected and a segment is truncated due to an avail, we
    will reset the segmentation cadence. This means the subsequent segment will have a duration of
    $segmentationTime seconds. When a segmentation style of "maintainCadence" is selected and a
    segment is truncated due to an avail, we will not reset the segmentation cadence. This means the
    subsequent segment will likely be truncated as well. However, all segments after that will have
    a duration of $segmentationTime seconds. Note that EBP lookahead is a slight exception to this
    rule.

    - **SegmentationTime** *(float) --* The length in seconds of each segment. Required unless
    markers is set to None_.

    - **TimedMetadataBehavior** *(string) --* When set to passthrough, timed metadata will be passed
    through from input to output.

    - **TimedMetadataPid** *(string) --* Packet Identifier (PID) of the timed metadata stream in the
    transport stream. Can be entered as a decimal or hexadecimal value. Valid values are 32 (or
    0x20)..8182 (or 0x1ff6).

    - **TransportStreamId** *(integer) --* The value of the transport stream ID field in the Program
    Map Table.

    - **VideoPid** *(string) --* Packet Identifier (PID) of the elementary video stream in the
    transport stream. Can be entered as a decimal or hexadecimal value. Valid values are 32 (or
    0x20)..8182 (or 0x1ff6).
    """


_ClientStartChannelResponseEncoderSettingsOutputGroupsOutputsOutputSettingsUdpOutputSettingsContainerSettingsTypeDef = TypedDict(
    "_ClientStartChannelResponseEncoderSettingsOutputGroupsOutputsOutputSettingsUdpOutputSettingsContainerSettingsTypeDef",
    {
        "M2tsSettings": ClientStartChannelResponseEncoderSettingsOutputGroupsOutputsOutputSettingsUdpOutputSettingsContainerSettingsM2tsSettingsTypeDef
    },
    total=False,
)


class ClientStartChannelResponseEncoderSettingsOutputGroupsOutputsOutputSettingsUdpOutputSettingsContainerSettingsTypeDef(
    _ClientStartChannelResponseEncoderSettingsOutputGroupsOutputsOutputSettingsUdpOutputSettingsContainerSettingsTypeDef
):
    """
    Type definition for
    `ClientStartChannelResponseEncoderSettingsOutputGroupsOutputsOutputSettingsUdpOutputSettings`
    `ContainerSettings`

    - **M2tsSettings** *(dict) --* M2ts Settings

      - **AbsentInputAudioBehavior** *(string) --* When set to drop, output audio streams will be
      removed from the program if the selected input audio stream is removed from the input. This
      allows the output audio configuration to dynamically change based on input configuration. If
      this is set to encodeSilence, all output audio streams will output encoded silence when not
      connected to an active input stream.

      - **Arib** *(string) --* When set to enabled, uses ARIB-compliant field muxing and removes
      video descriptor.

      - **AribCaptionsPid** *(string) --* Packet Identifier (PID) for ARIB Captions in the transport
      stream. Can be entered as a decimal or hexadecimal value. Valid values are 32 (or 0x20)..8182
      (or 0x1ff6).

      - **AribCaptionsPidControl** *(string) --* If set to auto, pid number used for ARIB Captions
      will be auto-selected from unused pids. If set to useConfigured, ARIB Captions will be on the
      configured pid number.

      - **AudioBufferModel** *(string) --* When set to dvb, uses DVB buffer model for Dolby Digital
      audio. When set to atsc, the ATSC model is used.

      - **AudioFramesPerPes** *(integer) --* The number of audio frames to insert for each PES
      packet.

      - **AudioPids** *(string) --* Packet Identifier (PID) of the elementary audio stream(s) in the
      transport stream. Multiple values are accepted, and can be entered in ranges and/or by comma
      separation. Can be entered as decimal or hexadecimal values. Each PID specified must be in the
      range of 32 (or 0x20)..8182 (or 0x1ff6).

      - **AudioStreamType** *(string) --* When set to atsc, uses stream type = 0x81 for AC3 and
      stream type = 0x87 for EAC3. When set to dvb, uses stream type = 0x06.

      - **Bitrate** *(integer) --* The output bitrate of the transport stream in bits per second.
      Setting to 0 lets the muxer automatically determine the appropriate bitrate.

      - **BufferModel** *(string) --* If set to multiplex, use multiplex buffer model for accurate
      interleaving. Setting to bufferModel to none can lead to lower latency, but low-memory devices
      may not be able to play back the stream without interruptions.

      - **CcDescriptor** *(string) --* When set to enabled, generates captionServiceDescriptor in
      PMT.

      - **DvbNitSettings** *(dict) --* Inserts DVB Network Information Table (NIT) at the specified
      table repetition interval.

        - **NetworkId** *(integer) --* The numeric value placed in the Network Information Table
        (NIT).

        - **NetworkName** *(string) --* The network name text placed in the networkNameDescriptor
        inside the Network Information Table. Maximum length is 256 characters.

        - **RepInterval** *(integer) --* The number of milliseconds between instances of this table
        in the output transport stream.

      - **DvbSdtSettings** *(dict) --* Inserts DVB Service Description Table (SDT) at the specified
      table repetition interval.

        - **OutputSdt** *(string) --* Selects method of inserting SDT information into output
        stream. The sdtFollow setting copies SDT information from input stream to output stream. The
        sdtFollowIfPresent setting copies SDT information from input stream to output stream if SDT
        information is present in the input, otherwise it will fall back on the user-defined values.
        The sdtManual setting means user will enter the SDT information. The sdtNone setting means
        output stream will not contain SDT information.

        - **RepInterval** *(integer) --* The number of milliseconds between instances of this table
        in the output transport stream.

        - **ServiceName** *(string) --* The service name placed in the serviceDescriptor in the
        Service Description Table. Maximum length is 256 characters.

        - **ServiceProviderName** *(string) --* The service provider name placed in the
        serviceDescriptor in the Service Description Table. Maximum length is 256 characters.

      - **DvbSubPids** *(string) --* Packet Identifier (PID) for input source DVB Subtitle data to
      this output. Multiple values are accepted, and can be entered in ranges and/or by comma
      separation. Can be entered as decimal or hexadecimal values. Each PID specified must be in the
      range of 32 (or 0x20)..8182 (or 0x1ff6).

      - **DvbTdtSettings** *(dict) --* Inserts DVB Time and Date Table (TDT) at the specified table
      repetition interval.

        - **RepInterval** *(integer) --* The number of milliseconds between instances of this table
        in the output transport stream.

      - **DvbTeletextPid** *(string) --* Packet Identifier (PID) for input source DVB Teletext data
      to this output. Can be entered as a decimal or hexadecimal value. Valid values are 32 (or
      0x20)..8182 (or 0x1ff6).

      - **Ebif** *(string) --* If set to passthrough, passes any EBIF data from the input source to
      this output.

      - **EbpAudioInterval** *(string) --* When videoAndFixedIntervals is selected, audio EBP
      markers will be added to partitions 3 and 4. The interval between these additional markers
      will be fixed, and will be slightly shorter than the video EBP marker interval. Only available
      when EBP Cablelabs segmentation markers are selected. Partitions 1 and 2 will always follow
      the video interval.

      - **EbpLookaheadMs** *(integer) --* When set, enforces that Encoder Boundary Points do not
      come within the specified time interval of each other by looking ahead at input video. If
      another EBP is going to come in within the specified time interval, the current EBP is not
      emitted, and the segment is "stretched" to the next marker. The lookahead value does not add
      latency to the system. The Live Event must be configured elsewhere to create sufficient
      latency to make the lookahead accurate.

      - **EbpPlacement** *(string) --* Controls placement of EBP on Audio PIDs. If set to
      videoAndAudioPids, EBP markers will be placed on the video PID and all audio PIDs. If set to
      videoPid, EBP markers will be placed on only the video PID.

      - **EcmPid** *(string) --* This field is unused and deprecated.

      - **EsRateInPes** *(string) --* Include or exclude the ES Rate field in the PES header.

      - **EtvPlatformPid** *(string) --* Packet Identifier (PID) for input source ETV Platform data
      to this output. Can be entered as a decimal or hexadecimal value. Valid values are 32 (or
      0x20)..8182 (or 0x1ff6).

      - **EtvSignalPid** *(string) --* Packet Identifier (PID) for input source ETV Signal data to
      this output. Can be entered as a decimal or hexadecimal value. Valid values are 32 (or
      0x20)..8182 (or 0x1ff6).

      - **FragmentTime** *(float) --* The length in seconds of each fragment. Only used with EBP
      markers.

      - **Klv** *(string) --* If set to passthrough, passes any KLV data from the input source to
      this output.

      - **KlvDataPids** *(string) --* Packet Identifier (PID) for input source KLV data to this
      output. Multiple values are accepted, and can be entered in ranges and/or by comma separation.
      Can be entered as decimal or hexadecimal values. Each PID specified must be in the range of 32
      (or 0x20)..8182 (or 0x1ff6).

      - **NielsenId3Behavior** *(string) --* If set to passthrough, Nielsen inaudible tones for
      media tracking will be detected in the input audio and an equivalent ID3 tag will be inserted
      in the output.

      - **NullPacketBitrate** *(float) --* Value in bits per second of extra null packets to insert
      into the transport stream. This can be used if a downstream encryption system requires
      periodic null packets.

      - **PatInterval** *(integer) --* The number of milliseconds between instances of this table in
      the output transport stream. Valid values are 0, 10..1000.

      - **PcrControl** *(string) --* When set to pcrEveryPesPacket, a Program Clock Reference value
      is inserted for every Packetized Elementary Stream (PES) header. This parameter is effective
      only when the PCR PID is the same as the video or audio elementary stream.

      - **PcrPeriod** *(integer) --* Maximum time in milliseconds between Program Clock Reference
      (PCRs) inserted into the transport stream.

      - **PcrPid** *(string) --* Packet Identifier (PID) of the Program Clock Reference (PCR) in the
      transport stream. When no value is given, the encoder will assign the same value as the Video
      PID. Can be entered as a decimal or hexadecimal value. Valid values are 32 (or 0x20)..8182 (or
      0x1ff6).

      - **PmtInterval** *(integer) --* The number of milliseconds between instances of this table in
      the output transport stream. Valid values are 0, 10..1000.

      - **PmtPid** *(string) --* Packet Identifier (PID) for the Program Map Table (PMT) in the
      transport stream. Can be entered as a decimal or hexadecimal value. Valid values are 32 (or
      0x20)..8182 (or 0x1ff6).

      - **ProgramNum** *(integer) --* The value of the program number field in the Program Map
      Table.

      - **RateMode** *(string) --* When vbr, does not insert null packets into transport stream to
      fill specified bitrate. The bitrate setting acts as the maximum bitrate when vbr is set.

      - **Scte27Pids** *(string) --* Packet Identifier (PID) for input source SCTE-27 data to this
      output. Multiple values are accepted, and can be entered in ranges and/or by comma separation.
      Can be entered as decimal or hexadecimal values. Each PID specified must be in the range of 32
      (or 0x20)..8182 (or 0x1ff6).

      - **Scte35Control** *(string) --* Optionally pass SCTE-35 signals from the input source to
      this output.

      - **Scte35Pid** *(string) --* Packet Identifier (PID) of the SCTE-35 stream in the transport
      stream. Can be entered as a decimal or hexadecimal value. Valid values are 32 (or 0x20)..8182
      (or 0x1ff6).

      - **SegmentationMarkers** *(string) --* Inserts segmentation markers at each segmentationTime
      period. raiSegstart sets the Random Access Indicator bit in the adaptation field. raiAdapt
      sets the RAI bit and adds the current timecode in the private data bytes. psiSegstart inserts
      PAT and PMT tables at the start of segments. ebp adds Encoder Boundary Point information to
      the adaptation field as per OpenCable specification OC-SP-EBP-I01-130118. ebpLegacy adds
      Encoder Boundary Point information to the adaptation field using a legacy proprietary format.

      - **SegmentationStyle** *(string) --* The segmentation style parameter controls how
      segmentation markers are inserted into the transport stream. With avails, it is possible that
      segments may be truncated, which can influence where future segmentation markers are inserted.
      When a segmentation style of "resetCadence" is selected and a segment is truncated due to an
      avail, we will reset the segmentation cadence. This means the subsequent segment will have a
      duration of $segmentationTime seconds. When a segmentation style of "maintainCadence" is
      selected and a segment is truncated due to an avail, we will not reset the segmentation
      cadence. This means the subsequent segment will likely be truncated as well. However, all
      segments after that will have a duration of $segmentationTime seconds. Note that EBP lookahead
      is a slight exception to this rule.

      - **SegmentationTime** *(float) --* The length in seconds of each segment. Required unless
      markers is set to None_.

      - **TimedMetadataBehavior** *(string) --* When set to passthrough, timed metadata will be
      passed through from input to output.

      - **TimedMetadataPid** *(string) --* Packet Identifier (PID) of the timed metadata stream in
      the transport stream. Can be entered as a decimal or hexadecimal value. Valid values are 32
      (or 0x20)..8182 (or 0x1ff6).

      - **TransportStreamId** *(integer) --* The value of the transport stream ID field in the
      Program Map Table.

      - **VideoPid** *(string) --* Packet Identifier (PID) of the elementary video stream in the
      transport stream. Can be entered as a decimal or hexadecimal value. Valid values are 32 (or
      0x20)..8182 (or 0x1ff6).
    """


_ClientStartChannelResponseEncoderSettingsOutputGroupsOutputsOutputSettingsUdpOutputSettingsDestinationTypeDef = TypedDict(
    "_ClientStartChannelResponseEncoderSettingsOutputGroupsOutputsOutputSettingsUdpOutputSettingsDestinationTypeDef",
    {"DestinationRefId": str},
    total=False,
)


class ClientStartChannelResponseEncoderSettingsOutputGroupsOutputsOutputSettingsUdpOutputSettingsDestinationTypeDef(
    _ClientStartChannelResponseEncoderSettingsOutputGroupsOutputsOutputSettingsUdpOutputSettingsDestinationTypeDef
):
    """
    Type definition for
    `ClientStartChannelResponseEncoderSettingsOutputGroupsOutputsOutputSettingsUdpOutputSettings`
    `Destination`

    - **DestinationRefId** *(string) --* Placeholder documentation for __string
    """


_ClientStartChannelResponseEncoderSettingsOutputGroupsOutputsOutputSettingsUdpOutputSettingsFecOutputSettingsTypeDef = TypedDict(
    "_ClientStartChannelResponseEncoderSettingsOutputGroupsOutputsOutputSettingsUdpOutputSettingsFecOutputSettingsTypeDef",
    {"ColumnDepth": int, "IncludeFec": str, "RowLength": int},
    total=False,
)


class ClientStartChannelResponseEncoderSettingsOutputGroupsOutputsOutputSettingsUdpOutputSettingsFecOutputSettingsTypeDef(
    _ClientStartChannelResponseEncoderSettingsOutputGroupsOutputsOutputSettingsUdpOutputSettingsFecOutputSettingsTypeDef
):
    """
    Type definition for
    `ClientStartChannelResponseEncoderSettingsOutputGroupsOutputsOutputSettingsUdpOutputSettings`
    `FecOutputSettings`

    - **ColumnDepth** *(integer) --* Parameter D from SMPTE 2022-1. The height of the FEC protection
    matrix. The number of transport stream packets per column error correction packet. Must be
    between 4 and 20, inclusive.

    - **IncludeFec** *(string) --* Enables column only or column and row based FEC

    - **RowLength** *(integer) --* Parameter L from SMPTE 2022-1. The width of the FEC protection
    matrix. Must be between 1 and 20, inclusive. If only Column FEC is used, then larger values
    increase robustness. If Row FEC is used, then this is the number of transport stream packets per
    row error correction packet, and the value must be between 4 and 20, inclusive, if includeFec is
    columnAndRow. If includeFec is column, this value must be 1 to 20, inclusive.
    """


_ClientStartChannelResponseEncoderSettingsOutputGroupsOutputsOutputSettingsUdpOutputSettingsTypeDef = TypedDict(
    "_ClientStartChannelResponseEncoderSettingsOutputGroupsOutputsOutputSettingsUdpOutputSettingsTypeDef",
    {
        "BufferMsec": int,
        "ContainerSettings": ClientStartChannelResponseEncoderSettingsOutputGroupsOutputsOutputSettingsUdpOutputSettingsContainerSettingsTypeDef,
        "Destination": ClientStartChannelResponseEncoderSettingsOutputGroupsOutputsOutputSettingsUdpOutputSettingsDestinationTypeDef,
        "FecOutputSettings": ClientStartChannelResponseEncoderSettingsOutputGroupsOutputsOutputSettingsUdpOutputSettingsFecOutputSettingsTypeDef,
    },
    total=False,
)


class ClientStartChannelResponseEncoderSettingsOutputGroupsOutputsOutputSettingsUdpOutputSettingsTypeDef(
    _ClientStartChannelResponseEncoderSettingsOutputGroupsOutputsOutputSettingsUdpOutputSettingsTypeDef
):
    """
    Type definition for `ClientStartChannelResponseEncoderSettingsOutputGroupsOutputsOutputSettings`
    `UdpOutputSettings`

    - **BufferMsec** *(integer) --* UDP output buffering in milliseconds. Larger values increase
    latency through the transcoder but simultaneously assist the transcoder in maintaining a
    constant, low-jitter UDP/RTP output while accommodating clock recovery, input switching, input
    disruptions, picture reordering, etc.

    - **ContainerSettings** *(dict) --* Udp Container Settings

      - **M2tsSettings** *(dict) --* M2ts Settings

        - **AbsentInputAudioBehavior** *(string) --* When set to drop, output audio streams will be
        removed from the program if the selected input audio stream is removed from the input. This
        allows the output audio configuration to dynamically change based on input configuration. If
        this is set to encodeSilence, all output audio streams will output encoded silence when not
        connected to an active input stream.

        - **Arib** *(string) --* When set to enabled, uses ARIB-compliant field muxing and removes
        video descriptor.

        - **AribCaptionsPid** *(string) --* Packet Identifier (PID) for ARIB Captions in the
        transport stream. Can be entered as a decimal or hexadecimal value. Valid values are 32 (or
        0x20)..8182 (or 0x1ff6).

        - **AribCaptionsPidControl** *(string) --* If set to auto, pid number used for ARIB Captions
        will be auto-selected from unused pids. If set to useConfigured, ARIB Captions will be on
        the configured pid number.

        - **AudioBufferModel** *(string) --* When set to dvb, uses DVB buffer model for Dolby
        Digital audio. When set to atsc, the ATSC model is used.

        - **AudioFramesPerPes** *(integer) --* The number of audio frames to insert for each PES
        packet.

        - **AudioPids** *(string) --* Packet Identifier (PID) of the elementary audio stream(s) in
        the transport stream. Multiple values are accepted, and can be entered in ranges and/or by
        comma separation. Can be entered as decimal or hexadecimal values. Each PID specified must
        be in the range of 32 (or 0x20)..8182 (or 0x1ff6).

        - **AudioStreamType** *(string) --* When set to atsc, uses stream type =
             0x81 for AC3 and
        stream type = 0x87 for EAC3. When set to dvb, uses stream type = 0x06.

        - **Bitrate** *(integer) --* The output bitrate of the transport stream in bits per second.
        Setting to 0 lets the muxer automatically determine the appropriate bitrate.

        - **BufferModel** *(string) --* If set to multiplex, use multiplex buffer model for accurate
        interleaving. Setting to bufferModel to none can lead to lower latency, but low-memory
        devices may not be able to play back the stream without interruptions.

        - **CcDescriptor** *(string) --* When set to enabled, generates captionServiceDescriptor in
        PMT.

        - **DvbNitSettings** *(dict) --* Inserts DVB Network Information Table (NIT) at the
        specified table repetition interval.

          - **NetworkId** *(integer) --* The numeric value placed in the Network Information Table
          (NIT).

          - **NetworkName** *(string) --* The network name text placed in the networkNameDescriptor
          inside the Network Information Table. Maximum length is 256 characters.

          - **RepInterval** *(integer) --* The number of milliseconds between instances of this
          table in the output transport stream.

        - **DvbSdtSettings** *(dict) --* Inserts DVB Service Description Table (SDT) at the
        specified table repetition interval.

          - **OutputSdt** *(string) --* Selects method of inserting SDT information into output
          stream. The sdtFollow setting copies SDT information from input stream to output stream.
          The sdtFollowIfPresent setting copies SDT information from input stream to output stream
          if SDT information is present in the input, otherwise it will fall back on the
          user-defined values. The sdtManual setting means user will enter the SDT information. The
          sdtNone setting means output stream will not contain SDT information.

          - **RepInterval** *(integer) --* The number of milliseconds between instances of this
          table in the output transport stream.

          - **ServiceName** *(string) --* The service name placed in the serviceDescriptor in the
          Service Description Table. Maximum length is 256 characters.

          - **ServiceProviderName** *(string) --* The service provider name placed in the
          serviceDescriptor in the Service Description Table. Maximum length is 256 characters.

        - **DvbSubPids** *(string) --* Packet Identifier (PID) for input source DVB Subtitle data to
        this output. Multiple values are accepted, and can be entered in ranges and/or by comma
        separation. Can be entered as decimal or hexadecimal values. Each PID specified must be in
        the range of 32 (or 0x20)..8182 (or 0x1ff6).

        - **DvbTdtSettings** *(dict) --* Inserts DVB Time and Date Table (TDT) at the specified
        table repetition interval.

          - **RepInterval** *(integer) --* The number of milliseconds between instances of this
          table in the output transport stream.

        - **DvbTeletextPid** *(string) --* Packet Identifier (PID) for input source DVB Teletext
        data to this output. Can be entered as a decimal or hexadecimal value. Valid values are 32
        (or 0x20)..8182 (or 0x1ff6).

        - **Ebif** *(string) --* If set to passthrough, passes any EBIF data from the input source
        to this output.

        - **EbpAudioInterval** *(string) --* When videoAndFixedIntervals is selected, audio EBP
        markers will be added to partitions 3 and 4. The interval between these additional markers
        will be fixed, and will be slightly shorter than the video EBP marker interval. Only
        available when EBP Cablelabs segmentation markers are selected. Partitions 1 and 2 will
        always follow the video interval.

        - **EbpLookaheadMs** *(integer) --* When set, enforces that Encoder Boundary Points do not
        come within the specified time interval of each other by looking ahead at input video. If
        another EBP is going to come in within the specified time interval, the current EBP is not
        emitted, and the segment is "stretched" to the next marker. The lookahead value does not add
        latency to the system. The Live Event must be configured elsewhere to create sufficient
        latency to make the lookahead accurate.

        - **EbpPlacement** *(string) --* Controls placement of EBP on Audio PIDs. If set to
        videoAndAudioPids, EBP markers will be placed on the video PID and all audio PIDs. If set to
        videoPid, EBP markers will be placed on only the video PID.

        - **EcmPid** *(string) --* This field is unused and deprecated.

        - **EsRateInPes** *(string) --* Include or exclude the ES Rate field in the PES header.

        - **EtvPlatformPid** *(string) --* Packet Identifier (PID) for input source ETV Platform
        data to this output. Can be entered as a decimal or hexadecimal value. Valid values are 32
        (or 0x20)..8182 (or 0x1ff6).

        - **EtvSignalPid** *(string) --* Packet Identifier (PID) for input source ETV Signal data to
        this output. Can be entered as a decimal or hexadecimal value. Valid values are 32 (or
        0x20)..8182 (or 0x1ff6).

        - **FragmentTime** *(float) --* The length in seconds of each fragment. Only used with EBP
        markers.

        - **Klv** *(string) --* If set to passthrough, passes any KLV data from the input source to
        this output.

        - **KlvDataPids** *(string) --* Packet Identifier (PID) for input source KLV data to this
        output. Multiple values are accepted, and can be entered in ranges and/or by comma
        separation. Can be entered as decimal or hexadecimal values. Each PID specified must be in
        the range of 32 (or 0x20)..8182 (or 0x1ff6).

        - **NielsenId3Behavior** *(string) --* If set to passthrough, Nielsen inaudible tones for
        media tracking will be detected in the input audio and an equivalent ID3 tag will be
        inserted in the output.

        - **NullPacketBitrate** *(float) --* Value in bits per second of extra null packets to
        insert into the transport stream. This can be used if a downstream encryption system
        requires periodic null packets.

        - **PatInterval** *(integer) --* The number of milliseconds between instances of this table
        in the output transport stream. Valid values are 0, 10..1000.

        - **PcrControl** *(string) --* When set to pcrEveryPesPacket, a Program Clock Reference
        value is inserted for every Packetized Elementary Stream (PES) header. This parameter is
        effective only when the PCR PID is the same as the video or audio elementary stream.

        - **PcrPeriod** *(integer) --* Maximum time in milliseconds between Program Clock Reference
        (PCRs) inserted into the transport stream.

        - **PcrPid** *(string) --* Packet Identifier (PID) of the Program Clock Reference (PCR) in
        the transport stream. When no value is given, the encoder will assign the same value as the
        Video PID. Can be entered as a decimal or hexadecimal value. Valid values are 32 (or
        0x20)..8182 (or 0x1ff6).

        - **PmtInterval** *(integer) --* The number of milliseconds between instances of this table
        in the output transport stream. Valid values are 0, 10..1000.

        - **PmtPid** *(string) --* Packet Identifier (PID) for the Program Map Table (PMT) in the
        transport stream. Can be entered as a decimal or hexadecimal value. Valid values are 32 (or
        0x20)..8182 (or 0x1ff6).

        - **ProgramNum** *(integer) --* The value of the program number field in the Program Map
        Table.

        - **RateMode** *(string) --* When vbr, does not insert null packets into transport stream to
        fill specified bitrate. The bitrate setting acts as the maximum bitrate when vbr is set.

        - **Scte27Pids** *(string) --* Packet Identifier (PID) for input source SCTE-27 data to this
        output. Multiple values are accepted, and can be entered in ranges and/or by comma
        separation. Can be entered as decimal or hexadecimal values. Each PID specified must be in
        the range of 32 (or 0x20)..8182 (or 0x1ff6).

        - **Scte35Control** *(string) --* Optionally pass SCTE-35 signals from the input source to
        this output.

        - **Scte35Pid** *(string) --* Packet Identifier (PID) of the SCTE-35 stream in the transport
        stream. Can be entered as a decimal or hexadecimal value. Valid values are 32 (or
        0x20)..8182 (or 0x1ff6).

        - **SegmentationMarkers** *(string) --* Inserts segmentation markers at each
        segmentationTime period. raiSegstart sets the Random Access Indicator bit in the adaptation
        field. raiAdapt sets the RAI bit and adds the current timecode in the private data bytes.
        psiSegstart inserts PAT and PMT tables at the start of segments. ebp adds Encoder Boundary
        Point information to the adaptation field as per OpenCable specification
        OC-SP-EBP-I01-130118. ebpLegacy adds Encoder Boundary Point information to the adaptation
        field using a legacy proprietary format.

        - **SegmentationStyle** *(string) --* The segmentation style parameter controls how
        segmentation markers are inserted into the transport stream. With avails, it is possible
        that segments may be truncated, which can influence where future segmentation markers are
        inserted. When a segmentation style of "resetCadence" is selected and a segment is truncated
        due to an avail, we will reset the segmentation cadence. This means the subsequent segment
        will have a duration of $segmentationTime seconds. When a segmentation style of
        "maintainCadence" is selected and a segment is truncated due to an avail, we will not reset
        the segmentation cadence. This means the subsequent segment will likely be truncated as
        well. However, all segments after that will have a duration of $segmentationTime seconds.
        Note that EBP lookahead is a slight exception to this rule.

        - **SegmentationTime** *(float) --* The length in seconds of each segment. Required unless
        markers is set to None_.

        - **TimedMetadataBehavior** *(string) --* When set to passthrough, timed metadata will be
        passed through from input to output.

        - **TimedMetadataPid** *(string) --* Packet Identifier (PID) of the timed metadata stream in
        the transport stream. Can be entered as a decimal or hexadecimal value. Valid values are 32
        (or 0x20)..8182 (or 0x1ff6).

        - **TransportStreamId** *(integer) --* The value of the transport stream ID field in the
        Program Map Table.

        - **VideoPid** *(string) --* Packet Identifier (PID) of the elementary video stream in the
        transport stream. Can be entered as a decimal or hexadecimal value. Valid values are 32 (or
        0x20)..8182 (or 0x1ff6).

    - **Destination** *(dict) --* Destination address and port number for RTP or UDP packets. Can be
    unicast or multicast RTP or UDP (eg. rtp://239.10.10.10:5001 or udp://10.100.100.100:5002).

      - **DestinationRefId** *(string) --* Placeholder documentation for __string

    - **FecOutputSettings** *(dict) --* Settings for enabling and adjusting Forward Error Correction
    on UDP outputs.

      - **ColumnDepth** *(integer) --* Parameter D from SMPTE 2022-1. The height of the FEC
      protection matrix. The number of transport stream packets per column error correction packet.
      Must be between 4 and 20, inclusive.

      - **IncludeFec** *(string) --* Enables column only or column and row based FEC

      - **RowLength** *(integer) --* Parameter L from SMPTE 2022-1. The width of the FEC protection
      matrix. Must be between 1 and 20, inclusive. If only Column FEC is used, then larger values
      increase robustness. If Row FEC is used, then this is the number of transport stream packets
      per row error correction packet, and the value must be between 4 and 20, inclusive, if
      includeFec is columnAndRow. If includeFec is column, this value must be 1 to 20, inclusive.
    """


_ClientStartChannelResponseEncoderSettingsOutputGroupsOutputsOutputSettingsTypeDef = TypedDict(
    "_ClientStartChannelResponseEncoderSettingsOutputGroupsOutputsOutputSettingsTypeDef",
    {
        "ArchiveOutputSettings": ClientStartChannelResponseEncoderSettingsOutputGroupsOutputsOutputSettingsArchiveOutputSettingsTypeDef,
        "FrameCaptureOutputSettings": ClientStartChannelResponseEncoderSettingsOutputGroupsOutputsOutputSettingsFrameCaptureOutputSettingsTypeDef,
        "HlsOutputSettings": ClientStartChannelResponseEncoderSettingsOutputGroupsOutputsOutputSettingsHlsOutputSettingsTypeDef,
        "MediaPackageOutputSettings": Dict,
        "MsSmoothOutputSettings": ClientStartChannelResponseEncoderSettingsOutputGroupsOutputsOutputSettingsMsSmoothOutputSettingsTypeDef,
        "MultiplexOutputSettings": ClientStartChannelResponseEncoderSettingsOutputGroupsOutputsOutputSettingsMultiplexOutputSettingsTypeDef,
        "RtmpOutputSettings": ClientStartChannelResponseEncoderSettingsOutputGroupsOutputsOutputSettingsRtmpOutputSettingsTypeDef,
        "UdpOutputSettings": ClientStartChannelResponseEncoderSettingsOutputGroupsOutputsOutputSettingsUdpOutputSettingsTypeDef,
    },
    total=False,
)


class ClientStartChannelResponseEncoderSettingsOutputGroupsOutputsOutputSettingsTypeDef(
    _ClientStartChannelResponseEncoderSettingsOutputGroupsOutputsOutputSettingsTypeDef
):
    """
    Type definition for `ClientStartChannelResponseEncoderSettingsOutputGroupsOutputs`
    `OutputSettings`

    - **ArchiveOutputSettings** *(dict) --* Archive Output Settings

      - **ContainerSettings** *(dict) --* Settings specific to the container type of the file.

        - **M2tsSettings** *(dict) --* M2ts Settings

          - **AbsentInputAudioBehavior** *(string) --* When set to drop, output audio streams will
          be removed from the program if the selected input audio stream is removed from the input.
          This allows the output audio configuration to dynamically change based on input
          configuration. If this is set to encodeSilence, all output audio streams will output
          encoded silence when not connected to an active input stream.

          - **Arib** *(string) --* When set to enabled, uses ARIB-compliant field muxing and removes
          video descriptor.

          - **AribCaptionsPid** *(string) --* Packet Identifier (PID) for ARIB Captions in the
          transport stream. Can be entered as a decimal or hexadecimal value. Valid values are 32
          (or 0x20)..8182 (or 0x1ff6).

          - **AribCaptionsPidControl** *(string) --* If set to auto, pid number used for ARIB
          Captions will be auto-selected from unused pids. If set to useConfigured, ARIB Captions
          will be on the configured pid number.

          - **AudioBufferModel** *(string) --* When set to dvb, uses DVB buffer model for Dolby
          Digital audio. When set to atsc, the ATSC model is used.

          - **AudioFramesPerPes** *(integer) --* The number of audio frames to insert for each PES
          packet.

          - **AudioPids** *(string) --* Packet Identifier (PID) of the elementary audio stream(s) in
          the transport stream. Multiple values are accepted, and can be entered in ranges and/or by
          comma separation. Can be entered as decimal or hexadecimal values. Each PID specified must
          be in the range of 32 (or 0x20)..8182 (or 0x1ff6).

          - **AudioStreamType** *(string) --* When set to atsc, uses stream type =
               0x81 for AC3 and
          stream type = 0x87 for EAC3. When set to dvb, uses stream type = 0x06.

          - **Bitrate** *(integer) --* The output bitrate of the transport stream in bits per
          second. Setting to 0 lets the muxer automatically determine the appropriate bitrate.

          - **BufferModel** *(string) --* If set to multiplex, use multiplex buffer model for
          accurate interleaving. Setting to bufferModel to none can lead to lower latency, but
          low-memory devices may not be able to play back the stream without interruptions.

          - **CcDescriptor** *(string) --* When set to enabled, generates captionServiceDescriptor
          in PMT.

          - **DvbNitSettings** *(dict) --* Inserts DVB Network Information Table (NIT) at the
          specified table repetition interval.

            - **NetworkId** *(integer) --* The numeric value placed in the Network Information Table
            (NIT).

            - **NetworkName** *(string) --* The network name text placed in the
            networkNameDescriptor inside the Network Information Table. Maximum length is 256
            characters.

            - **RepInterval** *(integer) --* The number of milliseconds between instances of this
            table in the output transport stream.

          - **DvbSdtSettings** *(dict) --* Inserts DVB Service Description Table (SDT) at the
          specified table repetition interval.

            - **OutputSdt** *(string) --* Selects method of inserting SDT information into output
            stream. The sdtFollow setting copies SDT information from input stream to output stream.
            The sdtFollowIfPresent setting copies SDT information from input stream to output stream
            if SDT information is present in the input, otherwise it will fall back on the
            user-defined values. The sdtManual setting means user will enter the SDT information.
            The sdtNone setting means output stream will not contain SDT information.

            - **RepInterval** *(integer) --* The number of milliseconds between instances of this
            table in the output transport stream.

            - **ServiceName** *(string) --* The service name placed in the serviceDescriptor in the
            Service Description Table. Maximum length is 256 characters.

            - **ServiceProviderName** *(string) --* The service provider name placed in the
            serviceDescriptor in the Service Description Table. Maximum length is 256 characters.

          - **DvbSubPids** *(string) --* Packet Identifier (PID) for input source DVB Subtitle data
          to this output. Multiple values are accepted, and can be entered in ranges and/or by comma
          separation. Can be entered as decimal or hexadecimal values. Each PID specified must be in
          the range of 32 (or 0x20)..8182 (or 0x1ff6).

          - **DvbTdtSettings** *(dict) --* Inserts DVB Time and Date Table (TDT) at the specified
          table repetition interval.

            - **RepInterval** *(integer) --* The number of milliseconds between instances of this
            table in the output transport stream.

          - **DvbTeletextPid** *(string) --* Packet Identifier (PID) for input source DVB Teletext
          data to this output. Can be entered as a decimal or hexadecimal value. Valid values are 32
          (or 0x20)..8182 (or 0x1ff6).

          - **Ebif** *(string) --* If set to passthrough, passes any EBIF data from the input source
          to this output.

          - **EbpAudioInterval** *(string) --* When videoAndFixedIntervals is selected, audio EBP
          markers will be added to partitions 3 and 4. The interval between these additional markers
          will be fixed, and will be slightly shorter than the video EBP marker interval. Only
          available when EBP Cablelabs segmentation markers are selected. Partitions 1 and 2 will
          always follow the video interval.

          - **EbpLookaheadMs** *(integer) --* When set, enforces that Encoder Boundary Points do not
          come within the specified time interval of each other by looking ahead at input video. If
          another EBP is going to come in within the specified time interval, the current EBP is not
          emitted, and the segment is "stretched" to the next marker. The lookahead value does not
          add latency to the system. The Live Event must be configured elsewhere to create
          sufficient latency to make the lookahead accurate.

          - **EbpPlacement** *(string) --* Controls placement of EBP on Audio PIDs. If set to
          videoAndAudioPids, EBP markers will be placed on the video PID and all audio PIDs. If set
          to videoPid, EBP markers will be placed on only the video PID.

          - **EcmPid** *(string) --* This field is unused and deprecated.

          - **EsRateInPes** *(string) --* Include or exclude the ES Rate field in the PES header.

          - **EtvPlatformPid** *(string) --* Packet Identifier (PID) for input source ETV Platform
          data to this output. Can be entered as a decimal or hexadecimal value. Valid values are 32
          (or 0x20)..8182 (or 0x1ff6).

          - **EtvSignalPid** *(string) --* Packet Identifier (PID) for input source ETV Signal data
          to this output. Can be entered as a decimal or hexadecimal value. Valid values are 32 (or
          0x20)..8182 (or 0x1ff6).

          - **FragmentTime** *(float) --* The length in seconds of each fragment. Only used with EBP
          markers.

          - **Klv** *(string) --* If set to passthrough, passes any KLV data from the input source
          to this output.

          - **KlvDataPids** *(string) --* Packet Identifier (PID) for input source KLV data to this
          output. Multiple values are accepted, and can be entered in ranges and/or by comma
          separation. Can be entered as decimal or hexadecimal values. Each PID specified must be in
          the range of 32 (or 0x20)..8182 (or 0x1ff6).

          - **NielsenId3Behavior** *(string) --* If set to passthrough, Nielsen inaudible tones for
          media tracking will be detected in the input audio and an equivalent ID3 tag will be
          inserted in the output.

          - **NullPacketBitrate** *(float) --* Value in bits per second of extra null packets to
          insert into the transport stream. This can be used if a downstream encryption system
          requires periodic null packets.

          - **PatInterval** *(integer) --* The number of milliseconds between instances of this
          table in the output transport stream. Valid values are 0, 10..1000.

          - **PcrControl** *(string) --* When set to pcrEveryPesPacket, a Program Clock Reference
          value is inserted for every Packetized Elementary Stream (PES) header. This parameter is
          effective only when the PCR PID is the same as the video or audio elementary stream.

          - **PcrPeriod** *(integer) --* Maximum time in milliseconds between Program Clock
          Reference (PCRs) inserted into the transport stream.

          - **PcrPid** *(string) --* Packet Identifier (PID) of the Program Clock Reference (PCR) in
          the transport stream. When no value is given, the encoder will assign the same value as
          the Video PID. Can be entered as a decimal or hexadecimal value. Valid values are 32 (or
          0x20)..8182 (or 0x1ff6).

          - **PmtInterval** *(integer) --* The number of milliseconds between instances of this
          table in the output transport stream. Valid values are 0, 10..1000.

          - **PmtPid** *(string) --* Packet Identifier (PID) for the Program Map Table (PMT) in the
          transport stream. Can be entered as a decimal or hexadecimal value. Valid values are 32
          (or 0x20)..8182 (or 0x1ff6).

          - **ProgramNum** *(integer) --* The value of the program number field in the Program Map
          Table.

          - **RateMode** *(string) --* When vbr, does not insert null packets into transport stream
          to fill specified bitrate. The bitrate setting acts as the maximum bitrate when vbr is
          set.

          - **Scte27Pids** *(string) --* Packet Identifier (PID) for input source SCTE-27 data to
          this output. Multiple values are accepted, and can be entered in ranges and/or by comma
          separation. Can be entered as decimal or hexadecimal values. Each PID specified must be in
          the range of 32 (or 0x20)..8182 (or 0x1ff6).

          - **Scte35Control** *(string) --* Optionally pass SCTE-35 signals from the input source to
          this output.

          - **Scte35Pid** *(string) --* Packet Identifier (PID) of the SCTE-35 stream in the
          transport stream. Can be entered as a decimal or hexadecimal value. Valid values are 32
          (or 0x20)..8182 (or 0x1ff6).

          - **SegmentationMarkers** *(string) --* Inserts segmentation markers at each
          segmentationTime period. raiSegstart sets the Random Access Indicator bit in the
          adaptation field. raiAdapt sets the RAI bit and adds the current timecode in the private
          data bytes. psiSegstart inserts PAT and PMT tables at the start of segments. ebp adds
          Encoder Boundary Point information to the adaptation field as per OpenCable specification
          OC-SP-EBP-I01-130118. ebpLegacy adds Encoder Boundary Point information to the adaptation
          field using a legacy proprietary format.

          - **SegmentationStyle** *(string) --* The segmentation style parameter controls how
          segmentation markers are inserted into the transport stream. With avails, it is possible
          that segments may be truncated, which can influence where future segmentation markers are
          inserted. When a segmentation style of "resetCadence" is selected and a segment is
          truncated due to an avail, we will reset the segmentation cadence. This means the
          subsequent segment will have a duration of $segmentationTime seconds. When a segmentation
          style of "maintainCadence" is selected and a segment is truncated due to an avail, we will
          not reset the segmentation cadence. This means the subsequent segment will likely be
          truncated as well. However, all segments after that will have a duration of
          $segmentationTime seconds. Note that EBP lookahead is a slight exception to this rule.

          - **SegmentationTime** *(float) --* The length in seconds of each segment. Required unless
          markers is set to None_.

          - **TimedMetadataBehavior** *(string) --* When set to passthrough, timed metadata will be
          passed through from input to output.

          - **TimedMetadataPid** *(string) --* Packet Identifier (PID) of the timed metadata stream
          in the transport stream. Can be entered as a decimal or hexadecimal value. Valid values
          are 32 (or 0x20)..8182 (or 0x1ff6).

          - **TransportStreamId** *(integer) --* The value of the transport stream ID field in the
          Program Map Table.

          - **VideoPid** *(string) --* Packet Identifier (PID) of the elementary video stream in the
          transport stream. Can be entered as a decimal or hexadecimal value. Valid values are 32
          (or 0x20)..8182 (or 0x1ff6).

      - **Extension** *(string) --* Output file extension. If excluded, this will be auto-selected
      from the container type.

      - **NameModifier** *(string) --* String concatenated to the end of the destination filename.
      Required for multiple outputs of the same type.

    - **FrameCaptureOutputSettings** *(dict) --* Frame Capture Output Settings

      - **NameModifier** *(string) --* Required if the output group contains more than one output.
      This modifier forms part of the output file name.

    - **HlsOutputSettings** *(dict) --* Hls Output Settings

      - **HlsSettings** *(dict) --* Settings regarding the underlying stream. These settings are
      different for audio-only outputs.

        - **AudioOnlyHlsSettings** *(dict) --* Audio Only Hls Settings

          - **AudioGroupId** *(string) --* Specifies the group to which the audio Rendition belongs.

          - **AudioOnlyImage** *(dict) --* Optional. Specifies the .jpg or .png image to use as the
          cover art for an audio-only output. We recommend a low bit-size file because the image
          increases the output audio bandwidth. The image is attached to the audio as an ID3 tag,
          frame type APIC, picture type 0x10, as per the "ID3 tag version 2.4.0 - Native Frames"
          standard.

            - **PasswordParam** *(string) --* key used to extract the password from EC2 Parameter
            store

            - **Uri** *(string) --* Uniform Resource Identifier - This should be a path to a file
            accessible to the Live system (eg. a http:// URI) depending on the output type. For
            example, a RTMP destination should have a uri simliar to: "rtmp://fmsserver/live".

            - **Username** *(string) --* Documentation update needed

          - **AudioTrackType** *(string) --* Four types of audio-only tracks are supported:
          Audio-Only Variant Stream The client can play back this audio-only stream instead of video
          in low-bandwidth scenarios. Represented as an EXT-X-STREAM-INF in the HLS manifest.
          Alternate Audio, Auto Select, Default Alternate rendition that the client should try to
          play back by default. Represented as an EXT-X-MEDIA in the HLS manifest with DEFAULT=YES,
          AUTOSELECT=
              YES Alternate Audio, Auto Select, Not Default Alternate rendition that the
          client may try to play back by default. Represented as an EXT-X-MEDIA in the HLS manifest
          with DEFAULT=NO, AUTOSELECT=
              YES Alternate Audio, not Auto Select Alternate rendition that
          the client will not try to play back by default. Represented as an EXT-X-MEDIA in the HLS
          manifest with DEFAULT=NO, AUTOSELECT=NO

        - **StandardHlsSettings** *(dict) --* Standard Hls Settings

          - **AudioRenditionSets** *(string) --* List all the audio groups that are used with the
          video output stream. Input all the audio GROUP-IDs that are associated to the video,
          separate by ','.

          - **M3u8Settings** *(dict) --* Settings information for the .m3u8 container

            - **AudioFramesPerPes** *(integer) --* The number of audio frames to insert for each PES
            packet.

            - **AudioPids** *(string) --* Packet Identifier (PID) of the elementary audio stream(s)
            in the transport stream. Multiple values are accepted, and can be entered in ranges
            and/or by comma separation. Can be entered as decimal or hexadecimal values.

            - **EcmPid** *(string) --* This parameter is unused and deprecated.

            - **NielsenId3Behavior** *(string) --* If set to passthrough, Nielsen inaudible tones
            for media tracking will be detected in the input audio and an equivalent ID3 tag will be
            inserted in the output.

            - **PatInterval** *(integer) --* The number of milliseconds between instances of this
            table in the output transport stream. A value of \\"0\\" writes out the PMT once per
            segment file.

            - **PcrControl** *(string) --* When set to pcrEveryPesPacket, a Program Clock Reference
            value is inserted for every Packetized Elementary Stream (PES) header. This parameter is
            effective only when the PCR PID is the same as the video or audio elementary stream.

            - **PcrPeriod** *(integer) --* Maximum time in milliseconds between Program Clock
            References (PCRs) inserted into the transport stream.

            - **PcrPid** *(string) --* Packet Identifier (PID) of the Program Clock Reference (PCR)
            in the transport stream. When no value is given, the encoder will assign the same value
            as the Video PID. Can be entered as a decimal or hexadecimal value.

            - **PmtInterval** *(integer) --* The number of milliseconds between instances of this
            table in the output transport stream. A value of \\"0\\" writes out the PMT once per
            segment file.

            - **PmtPid** *(string) --* Packet Identifier (PID) for the Program Map Table (PMT) in
            the transport stream. Can be entered as a decimal or hexadecimal value.

            - **ProgramNum** *(integer) --* The value of the program number field in the Program Map
            Table.

            - **Scte35Behavior** *(string) --* If set to passthrough, passes any SCTE-35 signals
            from the input source to this output.

            - **Scte35Pid** *(string) --* Packet Identifier (PID) of the SCTE-35 stream in the
            transport stream. Can be entered as a decimal or hexadecimal value.

            - **TimedMetadataBehavior** *(string) --* When set to passthrough, timed metadata is
            passed through from input to output.

            - **TimedMetadataPid** *(string) --* Packet Identifier (PID) of the timed metadata
            stream in the transport stream. Can be entered as a decimal or hexadecimal value. Valid
            values are 32 (or 0x20)..8182 (or 0x1ff6).

            - **TransportStreamId** *(integer) --* The value of the transport stream ID field in the
            Program Map Table.

            - **VideoPid** *(string) --* Packet Identifier (PID) of the elementary video stream in
            the transport stream. Can be entered as a decimal or hexadecimal value.

      - **NameModifier** *(string) --* String concatenated to the end of the destination filename.
      Accepts \\"Format Identifiers\\":#formatIdentifierParameters.

      - **SegmentModifier** *(string) --* String concatenated to end of segment filenames.

    - **MediaPackageOutputSettings** *(dict) --* Media Package Output Settings

    - **MsSmoothOutputSettings** *(dict) --* Ms Smooth Output Settings

      - **H265PackagingType** *(string) --* Only applicable when this output is referencing an H.265
      video description. Specifies whether MP4 segments should be packaged as HEV1 or HVC1.

      - **NameModifier** *(string) --* String concatenated to the end of the destination filename.
      Required for multiple outputs of the same type.

    - **MultiplexOutputSettings** *(dict) --* Multiplex Output Settings

      - **Destination** *(dict) --* Destination is a Multiplex.

        - **DestinationRefId** *(string) --* Placeholder documentation for __string

    - **RtmpOutputSettings** *(dict) --* Rtmp Output Settings

      - **CertificateMode** *(string) --* If set to verifyAuthenticity, verify the tls certificate
      chain to a trusted Certificate Authority (CA). This will cause rtmps outputs with self-signed
      certificates to fail.

      - **ConnectionRetryInterval** *(integer) --* Number of seconds to wait before retrying a
      connection to the Flash Media server if the connection is lost.

      - **Destination** *(dict) --* The RTMP endpoint excluding the stream name (eg.
      rtmp://host/appname). For connection to Akamai, a username and password must be supplied. URI
      fields accept format identifiers.

        - **DestinationRefId** *(string) --* Placeholder documentation for __string

      - **NumRetries** *(integer) --* Number of retry attempts.

    - **UdpOutputSettings** *(dict) --* Udp Output Settings

      - **BufferMsec** *(integer) --* UDP output buffering in milliseconds. Larger values increase
      latency through the transcoder but simultaneously assist the transcoder in maintaining a
      constant, low-jitter UDP/RTP output while accommodating clock recovery, input switching, input
      disruptions, picture reordering, etc.

      - **ContainerSettings** *(dict) --* Udp Container Settings

        - **M2tsSettings** *(dict) --* M2ts Settings

          - **AbsentInputAudioBehavior** *(string) --* When set to drop, output audio streams will
          be removed from the program if the selected input audio stream is removed from the input.
          This allows the output audio configuration to dynamically change based on input
          configuration. If this is set to encodeSilence, all output audio streams will output
          encoded silence when not connected to an active input stream.

          - **Arib** *(string) --* When set to enabled, uses ARIB-compliant field muxing and removes
          video descriptor.

          - **AribCaptionsPid** *(string) --* Packet Identifier (PID) for ARIB Captions in the
          transport stream. Can be entered as a decimal or hexadecimal value. Valid values are 32
          (or 0x20)..8182 (or 0x1ff6).

          - **AribCaptionsPidControl** *(string) --* If set to auto, pid number used for ARIB
          Captions will be auto-selected from unused pids. If set to useConfigured, ARIB Captions
          will be on the configured pid number.

          - **AudioBufferModel** *(string) --* When set to dvb, uses DVB buffer model for Dolby
          Digital audio. When set to atsc, the ATSC model is used.

          - **AudioFramesPerPes** *(integer) --* The number of audio frames to insert for each PES
          packet.

          - **AudioPids** *(string) --* Packet Identifier (PID) of the elementary audio stream(s) in
          the transport stream. Multiple values are accepted, and can be entered in ranges and/or by
          comma separation. Can be entered as decimal or hexadecimal values. Each PID specified must
          be in the range of 32 (or 0x20)..8182 (or 0x1ff6).

          - **AudioStreamType** *(string) --* When set to atsc, uses stream type =
               0x81 for AC3 and
          stream type = 0x87 for EAC3. When set to dvb, uses stream type = 0x06.

          - **Bitrate** *(integer) --* The output bitrate of the transport stream in bits per
          second. Setting to 0 lets the muxer automatically determine the appropriate bitrate.

          - **BufferModel** *(string) --* If set to multiplex, use multiplex buffer model for
          accurate interleaving. Setting to bufferModel to none can lead to lower latency, but
          low-memory devices may not be able to play back the stream without interruptions.

          - **CcDescriptor** *(string) --* When set to enabled, generates captionServiceDescriptor
          in PMT.

          - **DvbNitSettings** *(dict) --* Inserts DVB Network Information Table (NIT) at the
          specified table repetition interval.

            - **NetworkId** *(integer) --* The numeric value placed in the Network Information Table
            (NIT).

            - **NetworkName** *(string) --* The network name text placed in the
            networkNameDescriptor inside the Network Information Table. Maximum length is 256
            characters.

            - **RepInterval** *(integer) --* The number of milliseconds between instances of this
            table in the output transport stream.

          - **DvbSdtSettings** *(dict) --* Inserts DVB Service Description Table (SDT) at the
          specified table repetition interval.

            - **OutputSdt** *(string) --* Selects method of inserting SDT information into output
            stream. The sdtFollow setting copies SDT information from input stream to output stream.
            The sdtFollowIfPresent setting copies SDT information from input stream to output stream
            if SDT information is present in the input, otherwise it will fall back on the
            user-defined values. The sdtManual setting means user will enter the SDT information.
            The sdtNone setting means output stream will not contain SDT information.

            - **RepInterval** *(integer) --* The number of milliseconds between instances of this
            table in the output transport stream.

            - **ServiceName** *(string) --* The service name placed in the serviceDescriptor in the
            Service Description Table. Maximum length is 256 characters.

            - **ServiceProviderName** *(string) --* The service provider name placed in the
            serviceDescriptor in the Service Description Table. Maximum length is 256 characters.

          - **DvbSubPids** *(string) --* Packet Identifier (PID) for input source DVB Subtitle data
          to this output. Multiple values are accepted, and can be entered in ranges and/or by comma
          separation. Can be entered as decimal or hexadecimal values. Each PID specified must be in
          the range of 32 (or 0x20)..8182 (or 0x1ff6).

          - **DvbTdtSettings** *(dict) --* Inserts DVB Time and Date Table (TDT) at the specified
          table repetition interval.

            - **RepInterval** *(integer) --* The number of milliseconds between instances of this
            table in the output transport stream.

          - **DvbTeletextPid** *(string) --* Packet Identifier (PID) for input source DVB Teletext
          data to this output. Can be entered as a decimal or hexadecimal value. Valid values are 32
          (or 0x20)..8182 (or 0x1ff6).

          - **Ebif** *(string) --* If set to passthrough, passes any EBIF data from the input source
          to this output.

          - **EbpAudioInterval** *(string) --* When videoAndFixedIntervals is selected, audio EBP
          markers will be added to partitions 3 and 4. The interval between these additional markers
          will be fixed, and will be slightly shorter than the video EBP marker interval. Only
          available when EBP Cablelabs segmentation markers are selected. Partitions 1 and 2 will
          always follow the video interval.

          - **EbpLookaheadMs** *(integer) --* When set, enforces that Encoder Boundary Points do not
          come within the specified time interval of each other by looking ahead at input video. If
          another EBP is going to come in within the specified time interval, the current EBP is not
          emitted, and the segment is "stretched" to the next marker. The lookahead value does not
          add latency to the system. The Live Event must be configured elsewhere to create
          sufficient latency to make the lookahead accurate.

          - **EbpPlacement** *(string) --* Controls placement of EBP on Audio PIDs. If set to
          videoAndAudioPids, EBP markers will be placed on the video PID and all audio PIDs. If set
          to videoPid, EBP markers will be placed on only the video PID.

          - **EcmPid** *(string) --* This field is unused and deprecated.

          - **EsRateInPes** *(string) --* Include or exclude the ES Rate field in the PES header.

          - **EtvPlatformPid** *(string) --* Packet Identifier (PID) for input source ETV Platform
          data to this output. Can be entered as a decimal or hexadecimal value. Valid values are 32
          (or 0x20)..8182 (or 0x1ff6).

          - **EtvSignalPid** *(string) --* Packet Identifier (PID) for input source ETV Signal data
          to this output. Can be entered as a decimal or hexadecimal value. Valid values are 32 (or
          0x20)..8182 (or 0x1ff6).

          - **FragmentTime** *(float) --* The length in seconds of each fragment. Only used with EBP
          markers.

          - **Klv** *(string) --* If set to passthrough, passes any KLV data from the input source
          to this output.

          - **KlvDataPids** *(string) --* Packet Identifier (PID) for input source KLV data to this
          output. Multiple values are accepted, and can be entered in ranges and/or by comma
          separation. Can be entered as decimal or hexadecimal values. Each PID specified must be in
          the range of 32 (or 0x20)..8182 (or 0x1ff6).

          - **NielsenId3Behavior** *(string) --* If set to passthrough, Nielsen inaudible tones for
          media tracking will be detected in the input audio and an equivalent ID3 tag will be
          inserted in the output.

          - **NullPacketBitrate** *(float) --* Value in bits per second of extra null packets to
          insert into the transport stream. This can be used if a downstream encryption system
          requires periodic null packets.

          - **PatInterval** *(integer) --* The number of milliseconds between instances of this
          table in the output transport stream. Valid values are 0, 10..1000.

          - **PcrControl** *(string) --* When set to pcrEveryPesPacket, a Program Clock Reference
          value is inserted for every Packetized Elementary Stream (PES) header. This parameter is
          effective only when the PCR PID is the same as the video or audio elementary stream.

          - **PcrPeriod** *(integer) --* Maximum time in milliseconds between Program Clock
          Reference (PCRs) inserted into the transport stream.

          - **PcrPid** *(string) --* Packet Identifier (PID) of the Program Clock Reference (PCR) in
          the transport stream. When no value is given, the encoder will assign the same value as
          the Video PID. Can be entered as a decimal or hexadecimal value. Valid values are 32 (or
          0x20)..8182 (or 0x1ff6).

          - **PmtInterval** *(integer) --* The number of milliseconds between instances of this
          table in the output transport stream. Valid values are 0, 10..1000.

          - **PmtPid** *(string) --* Packet Identifier (PID) for the Program Map Table (PMT) in the
          transport stream. Can be entered as a decimal or hexadecimal value. Valid values are 32
          (or 0x20)..8182 (or 0x1ff6).

          - **ProgramNum** *(integer) --* The value of the program number field in the Program Map
          Table.

          - **RateMode** *(string) --* When vbr, does not insert null packets into transport stream
          to fill specified bitrate. The bitrate setting acts as the maximum bitrate when vbr is
          set.

          - **Scte27Pids** *(string) --* Packet Identifier (PID) for input source SCTE-27 data to
          this output. Multiple values are accepted, and can be entered in ranges and/or by comma
          separation. Can be entered as decimal or hexadecimal values. Each PID specified must be in
          the range of 32 (or 0x20)..8182 (or 0x1ff6).

          - **Scte35Control** *(string) --* Optionally pass SCTE-35 signals from the input source to
          this output.

          - **Scte35Pid** *(string) --* Packet Identifier (PID) of the SCTE-35 stream in the
          transport stream. Can be entered as a decimal or hexadecimal value. Valid values are 32
          (or 0x20)..8182 (or 0x1ff6).

          - **SegmentationMarkers** *(string) --* Inserts segmentation markers at each
          segmentationTime period. raiSegstart sets the Random Access Indicator bit in the
          adaptation field. raiAdapt sets the RAI bit and adds the current timecode in the private
          data bytes. psiSegstart inserts PAT and PMT tables at the start of segments. ebp adds
          Encoder Boundary Point information to the adaptation field as per OpenCable specification
          OC-SP-EBP-I01-130118. ebpLegacy adds Encoder Boundary Point information to the adaptation
          field using a legacy proprietary format.

          - **SegmentationStyle** *(string) --* The segmentation style parameter controls how
          segmentation markers are inserted into the transport stream. With avails, it is possible
          that segments may be truncated, which can influence where future segmentation markers are
          inserted. When a segmentation style of "resetCadence" is selected and a segment is
          truncated due to an avail, we will reset the segmentation cadence. This means the
          subsequent segment will have a duration of $segmentationTime seconds. When a segmentation
          style of "maintainCadence" is selected and a segment is truncated due to an avail, we will
          not reset the segmentation cadence. This means the subsequent segment will likely be
          truncated as well. However, all segments after that will have a duration of
          $segmentationTime seconds. Note that EBP lookahead is a slight exception to this rule.

          - **SegmentationTime** *(float) --* The length in seconds of each segment. Required unless
          markers is set to None_.

          - **TimedMetadataBehavior** *(string) --* When set to passthrough, timed metadata will be
          passed through from input to output.

          - **TimedMetadataPid** *(string) --* Packet Identifier (PID) of the timed metadata stream
          in the transport stream. Can be entered as a decimal or hexadecimal value. Valid values
          are 32 (or 0x20)..8182 (or 0x1ff6).

          - **TransportStreamId** *(integer) --* The value of the transport stream ID field in the
          Program Map Table.

          - **VideoPid** *(string) --* Packet Identifier (PID) of the elementary video stream in the
          transport stream. Can be entered as a decimal or hexadecimal value. Valid values are 32
          (or 0x20)..8182 (or 0x1ff6).

      - **Destination** *(dict) --* Destination address and port number for RTP or UDP packets. Can
      be unicast or multicast RTP or UDP (eg. rtp://239.10.10.10:5001 or udp://10.100.100.100:5002).

        - **DestinationRefId** *(string) --* Placeholder documentation for __string

      - **FecOutputSettings** *(dict) --* Settings for enabling and adjusting Forward Error
      Correction on UDP outputs.

        - **ColumnDepth** *(integer) --* Parameter D from SMPTE 2022-1. The height of the FEC
        protection matrix. The number of transport stream packets per column error correction
        packet. Must be between 4 and 20, inclusive.

        - **IncludeFec** *(string) --* Enables column only or column and row based FEC

        - **RowLength** *(integer) --* Parameter L from SMPTE 2022-1. The width of the FEC
        protection matrix. Must be between 1 and 20, inclusive. If only Column FEC is used, then
        larger values increase robustness. If Row FEC is used, then this is the number of transport
        stream packets per row error correction packet, and the value must be between 4 and 20,
        inclusive, if includeFec is columnAndRow. If includeFec is column, this value must be 1 to
        20, inclusive.
    """


_ClientStartChannelResponseEncoderSettingsOutputGroupsOutputsTypeDef = TypedDict(
    "_ClientStartChannelResponseEncoderSettingsOutputGroupsOutputsTypeDef",
    {
        "AudioDescriptionNames": List[str],
        "CaptionDescriptionNames": List[str],
        "OutputName": str,
        "OutputSettings": ClientStartChannelResponseEncoderSettingsOutputGroupsOutputsOutputSettingsTypeDef,
        "VideoDescriptionName": str,
    },
    total=False,
)


class ClientStartChannelResponseEncoderSettingsOutputGroupsOutputsTypeDef(
    _ClientStartChannelResponseEncoderSettingsOutputGroupsOutputsTypeDef
):
    """
    Type definition for `ClientStartChannelResponseEncoderSettingsOutputGroups` `Outputs`

    - **AudioDescriptionNames** *(list) --* The names of the AudioDescriptions used as audio sources
    for this output.

      - *(string) --* Placeholder documentation for __string

    - **CaptionDescriptionNames** *(list) --* The names of the CaptionDescriptions used as caption
    sources for this output.

      - *(string) --* Placeholder documentation for __string

    - **OutputName** *(string) --* The name used to identify an output.

    - **OutputSettings** *(dict) --* Output type-specific settings.

      - **ArchiveOutputSettings** *(dict) --* Archive Output Settings

        - **ContainerSettings** *(dict) --* Settings specific to the container type of the file.

          - **M2tsSettings** *(dict) --* M2ts Settings

            - **AbsentInputAudioBehavior** *(string) --* When set to drop, output audio streams will
            be removed from the program if the selected input audio stream is removed from the
            input. This allows the output audio configuration to dynamically change based on input
            configuration. If this is set to encodeSilence, all output audio streams will output
            encoded silence when not connected to an active input stream.

            - **Arib** *(string) --* When set to enabled, uses ARIB-compliant field muxing and
            removes video descriptor.

            - **AribCaptionsPid** *(string) --* Packet Identifier (PID) for ARIB Captions in the
            transport stream. Can be entered as a decimal or hexadecimal value. Valid values are 32
            (or 0x20)..8182 (or 0x1ff6).

            - **AribCaptionsPidControl** *(string) --* If set to auto, pid number used for ARIB
            Captions will be auto-selected from unused pids. If set to useConfigured, ARIB Captions
            will be on the configured pid number.

            - **AudioBufferModel** *(string) --* When set to dvb, uses DVB buffer model for Dolby
            Digital audio. When set to atsc, the ATSC model is used.

            - **AudioFramesPerPes** *(integer) --* The number of audio frames to insert for each PES
            packet.

            - **AudioPids** *(string) --* Packet Identifier (PID) of the elementary audio stream(s)
            in the transport stream. Multiple values are accepted, and can be entered in ranges
            and/or by comma separation. Can be entered as decimal or hexadecimal values. Each PID
            specified must be in the range of 32 (or 0x20)..8182 (or 0x1ff6).

            - **AudioStreamType** *(string) --* When set to atsc, uses stream type =
                 0x81 for AC3
            and stream type = 0x87 for EAC3. When set to dvb, uses stream type = 0x06.

            - **Bitrate** *(integer) --* The output bitrate of the transport stream in bits per
            second. Setting to 0 lets the muxer automatically determine the appropriate bitrate.

            - **BufferModel** *(string) --* If set to multiplex, use multiplex buffer model for
            accurate interleaving. Setting to bufferModel to none can lead to lower latency, but
            low-memory devices may not be able to play back the stream without interruptions.

            - **CcDescriptor** *(string) --* When set to enabled, generates captionServiceDescriptor
            in PMT.

            - **DvbNitSettings** *(dict) --* Inserts DVB Network Information Table (NIT) at the
            specified table repetition interval.

              - **NetworkId** *(integer) --* The numeric value placed in the Network Information
              Table (NIT).

              - **NetworkName** *(string) --* The network name text placed in the
              networkNameDescriptor inside the Network Information Table. Maximum length is 256
              characters.

              - **RepInterval** *(integer) --* The number of milliseconds between instances of this
              table in the output transport stream.

            - **DvbSdtSettings** *(dict) --* Inserts DVB Service Description Table (SDT) at the
            specified table repetition interval.

              - **OutputSdt** *(string) --* Selects method of inserting SDT information into output
              stream. The sdtFollow setting copies SDT information from input stream to output
              stream. The sdtFollowIfPresent setting copies SDT information from input stream to
              output stream if SDT information is present in the input, otherwise it will fall back
              on the user-defined values. The sdtManual setting means user will enter the SDT
              information. The sdtNone setting means output stream will not contain SDT information.

              - **RepInterval** *(integer) --* The number of milliseconds between instances of this
              table in the output transport stream.

              - **ServiceName** *(string) --* The service name placed in the serviceDescriptor in
              the Service Description Table. Maximum length is 256 characters.

              - **ServiceProviderName** *(string) --* The service provider name placed in the
              serviceDescriptor in the Service Description Table. Maximum length is 256 characters.

            - **DvbSubPids** *(string) --* Packet Identifier (PID) for input source DVB Subtitle
            data to this output. Multiple values are accepted, and can be entered in ranges and/or
            by comma separation. Can be entered as decimal or hexadecimal values. Each PID specified
            must be in the range of 32 (or 0x20)..8182 (or 0x1ff6).

            - **DvbTdtSettings** *(dict) --* Inserts DVB Time and Date Table (TDT) at the specified
            table repetition interval.

              - **RepInterval** *(integer) --* The number of milliseconds between instances of this
              table in the output transport stream.

            - **DvbTeletextPid** *(string) --* Packet Identifier (PID) for input source DVB Teletext
            data to this output. Can be entered as a decimal or hexadecimal value. Valid values are
            32 (or 0x20)..8182 (or 0x1ff6).

            - **Ebif** *(string) --* If set to passthrough, passes any EBIF data from the input
            source to this output.

            - **EbpAudioInterval** *(string) --* When videoAndFixedIntervals is selected, audio EBP
            markers will be added to partitions 3 and 4. The interval between these additional
            markers will be fixed, and will be slightly shorter than the video EBP marker interval.
            Only available when EBP Cablelabs segmentation markers are selected. Partitions 1 and 2
            will always follow the video interval.

            - **EbpLookaheadMs** *(integer) --* When set, enforces that Encoder Boundary Points do
            not come within the specified time interval of each other by looking ahead at input
            video. If another EBP is going to come in within the specified time interval, the
            current EBP is not emitted, and the segment is "stretched" to the next marker. The
            lookahead value does not add latency to the system. The Live Event must be configured
            elsewhere to create sufficient latency to make the lookahead accurate.

            - **EbpPlacement** *(string) --* Controls placement of EBP on Audio PIDs. If set to
            videoAndAudioPids, EBP markers will be placed on the video PID and all audio PIDs. If
            set to videoPid, EBP markers will be placed on only the video PID.

            - **EcmPid** *(string) --* This field is unused and deprecated.

            - **EsRateInPes** *(string) --* Include or exclude the ES Rate field in the PES header.

            - **EtvPlatformPid** *(string) --* Packet Identifier (PID) for input source ETV Platform
            data to this output. Can be entered as a decimal or hexadecimal value. Valid values are
            32 (or 0x20)..8182 (or 0x1ff6).

            - **EtvSignalPid** *(string) --* Packet Identifier (PID) for input source ETV Signal
            data to this output. Can be entered as a decimal or hexadecimal value. Valid values are
            32 (or 0x20)..8182 (or 0x1ff6).

            - **FragmentTime** *(float) --* The length in seconds of each fragment. Only used with
            EBP markers.

            - **Klv** *(string) --* If set to passthrough, passes any KLV data from the input source
            to this output.

            - **KlvDataPids** *(string) --* Packet Identifier (PID) for input source KLV data to
            this output. Multiple values are accepted, and can be entered in ranges and/or by comma
            separation. Can be entered as decimal or hexadecimal values. Each PID specified must be
            in the range of 32 (or 0x20)..8182 (or 0x1ff6).

            - **NielsenId3Behavior** *(string) --* If set to passthrough, Nielsen inaudible tones
            for media tracking will be detected in the input audio and an equivalent ID3 tag will be
            inserted in the output.

            - **NullPacketBitrate** *(float) --* Value in bits per second of extra null packets to
            insert into the transport stream. This can be used if a downstream encryption system
            requires periodic null packets.

            - **PatInterval** *(integer) --* The number of milliseconds between instances of this
            table in the output transport stream. Valid values are 0, 10..1000.

            - **PcrControl** *(string) --* When set to pcrEveryPesPacket, a Program Clock Reference
            value is inserted for every Packetized Elementary Stream (PES) header. This parameter is
            effective only when the PCR PID is the same as the video or audio elementary stream.

            - **PcrPeriod** *(integer) --* Maximum time in milliseconds between Program Clock
            Reference (PCRs) inserted into the transport stream.

            - **PcrPid** *(string) --* Packet Identifier (PID) of the Program Clock Reference (PCR)
            in the transport stream. When no value is given, the encoder will assign the same value
            as the Video PID. Can be entered as a decimal or hexadecimal value. Valid values are 32
            (or 0x20)..8182 (or 0x1ff6).

            - **PmtInterval** *(integer) --* The number of milliseconds between instances of this
            table in the output transport stream. Valid values are 0, 10..1000.

            - **PmtPid** *(string) --* Packet Identifier (PID) for the Program Map Table (PMT) in
            the transport stream. Can be entered as a decimal or hexadecimal value. Valid values are
            32 (or 0x20)..8182 (or 0x1ff6).

            - **ProgramNum** *(integer) --* The value of the program number field in the Program Map
            Table.

            - **RateMode** *(string) --* When vbr, does not insert null packets into transport
            stream to fill specified bitrate. The bitrate setting acts as the maximum bitrate when
            vbr is set.

            - **Scte27Pids** *(string) --* Packet Identifier (PID) for input source SCTE-27 data to
            this output. Multiple values are accepted, and can be entered in ranges and/or by comma
            separation. Can be entered as decimal or hexadecimal values. Each PID specified must be
            in the range of 32 (or 0x20)..8182 (or 0x1ff6).

            - **Scte35Control** *(string) --* Optionally pass SCTE-35 signals from the input source
            to this output.

            - **Scte35Pid** *(string) --* Packet Identifier (PID) of the SCTE-35 stream in the
            transport stream. Can be entered as a decimal or hexadecimal value. Valid values are 32
            (or 0x20)..8182 (or 0x1ff6).

            - **SegmentationMarkers** *(string) --* Inserts segmentation markers at each
            segmentationTime period. raiSegstart sets the Random Access Indicator bit in the
            adaptation field. raiAdapt sets the RAI bit and adds the current timecode in the private
            data bytes. psiSegstart inserts PAT and PMT tables at the start of segments. ebp adds
            Encoder Boundary Point information to the adaptation field as per OpenCable
            specification OC-SP-EBP-I01-130118. ebpLegacy adds Encoder Boundary Point information to
            the adaptation field using a legacy proprietary format.

            - **SegmentationStyle** *(string) --* The segmentation style parameter controls how
            segmentation markers are inserted into the transport stream. With avails, it is possible
            that segments may be truncated, which can influence where future segmentation markers
            are inserted. When a segmentation style of "resetCadence" is selected and a segment is
            truncated due to an avail, we will reset the segmentation cadence. This means the
            subsequent segment will have a duration of $segmentationTime seconds. When a
            segmentation style of "maintainCadence" is selected and a segment is truncated due to an
            avail, we will not reset the segmentation cadence. This means the subsequent segment
            will likely be truncated as well. However, all segments after that will have a duration
            of $segmentationTime seconds. Note that EBP lookahead is a slight exception to this
            rule.

            - **SegmentationTime** *(float) --* The length in seconds of each segment. Required
            unless markers is set to None_.

            - **TimedMetadataBehavior** *(string) --* When set to passthrough, timed metadata will
            be passed through from input to output.

            - **TimedMetadataPid** *(string) --* Packet Identifier (PID) of the timed metadata
            stream in the transport stream. Can be entered as a decimal or hexadecimal value. Valid
            values are 32 (or 0x20)..8182 (or 0x1ff6).

            - **TransportStreamId** *(integer) --* The value of the transport stream ID field in the
            Program Map Table.

            - **VideoPid** *(string) --* Packet Identifier (PID) of the elementary video stream in
            the transport stream. Can be entered as a decimal or hexadecimal value. Valid values are
            32 (or 0x20)..8182 (or 0x1ff6).

        - **Extension** *(string) --* Output file extension. If excluded, this will be auto-selected
        from the container type.

        - **NameModifier** *(string) --* String concatenated to the end of the destination filename.
        Required for multiple outputs of the same type.

      - **FrameCaptureOutputSettings** *(dict) --* Frame Capture Output Settings

        - **NameModifier** *(string) --* Required if the output group contains more than one output.
        This modifier forms part of the output file name.

      - **HlsOutputSettings** *(dict) --* Hls Output Settings

        - **HlsSettings** *(dict) --* Settings regarding the underlying stream. These settings are
        different for audio-only outputs.

          - **AudioOnlyHlsSettings** *(dict) --* Audio Only Hls Settings

            - **AudioGroupId** *(string) --* Specifies the group to which the audio Rendition
            belongs.

            - **AudioOnlyImage** *(dict) --* Optional. Specifies the .jpg or .png image to use as
            the cover art for an audio-only output. We recommend a low bit-size file because the
            image increases the output audio bandwidth. The image is attached to the audio as an ID3
            tag, frame type APIC, picture type 0x10, as per the "ID3 tag version 2.4.0 - Native
            Frames" standard.

              - **PasswordParam** *(string) --* key used to extract the password from EC2 Parameter
              store

              - **Uri** *(string) --* Uniform Resource Identifier - This should be a path to a file
              accessible to the Live system (eg. a http:// URI) depending on the output type. For
              example, a RTMP destination should have a uri simliar to: "rtmp://fmsserver/live".

              - **Username** *(string) --* Documentation update needed

            - **AudioTrackType** *(string) --* Four types of audio-only tracks are supported:
            Audio-Only Variant Stream The client can play back this audio-only stream instead of
            video in low-bandwidth scenarios. Represented as an EXT-X-STREAM-INF in the HLS
            manifest. Alternate Audio, Auto Select, Default Alternate rendition that the client
            should try to play back by default. Represented as an EXT-X-MEDIA in the HLS manifest
            with DEFAULT=YES, AUTOSELECT=
                YES Alternate Audio, Auto Select, Not Default Alternate
            rendition that the client may try to play back by default. Represented as an EXT-X-MEDIA
            in the HLS manifest with DEFAULT=NO, AUTOSELECT=
                YES Alternate Audio, not Auto Select
            Alternate rendition that the client will not try to play back by default. Represented as
            an EXT-X-MEDIA in the HLS manifest with DEFAULT=NO, AUTOSELECT=NO

          - **StandardHlsSettings** *(dict) --* Standard Hls Settings

            - **AudioRenditionSets** *(string) --* List all the audio groups that are used with the
            video output stream. Input all the audio GROUP-IDs that are associated to the video,
            separate by ','.

            - **M3u8Settings** *(dict) --* Settings information for the .m3u8 container

              - **AudioFramesPerPes** *(integer) --* The number of audio frames to insert for each
              PES packet.

              - **AudioPids** *(string) --* Packet Identifier (PID) of the elementary audio
              stream(s) in the transport stream. Multiple values are accepted, and can be entered in
              ranges and/or by comma separation. Can be entered as decimal or hexadecimal values.

              - **EcmPid** *(string) --* This parameter is unused and deprecated.

              - **NielsenId3Behavior** *(string) --* If set to passthrough, Nielsen inaudible tones
              for media tracking will be detected in the input audio and an equivalent ID3 tag will
              be inserted in the output.

              - **PatInterval** *(integer) --* The number of milliseconds between instances of this
              table in the output transport stream. A value of \\"0\\" writes out the PMT once per
              segment file.

              - **PcrControl** *(string) --* When set to pcrEveryPesPacket, a Program Clock
              Reference value is inserted for every Packetized Elementary Stream (PES) header. This
              parameter is effective only when the PCR PID is the same as the video or audio
              elementary stream.

              - **PcrPeriod** *(integer) --* Maximum time in milliseconds between Program Clock
              References (PCRs) inserted into the transport stream.

              - **PcrPid** *(string) --* Packet Identifier (PID) of the Program Clock Reference
              (PCR) in the transport stream. When no value is given, the encoder will assign the
              same value as the Video PID. Can be entered as a decimal or hexadecimal value.

              - **PmtInterval** *(integer) --* The number of milliseconds between instances of this
              table in the output transport stream. A value of \\"0\\" writes out the PMT once per
              segment file.

              - **PmtPid** *(string) --* Packet Identifier (PID) for the Program Map Table (PMT) in
              the transport stream. Can be entered as a decimal or hexadecimal value.

              - **ProgramNum** *(integer) --* The value of the program number field in the Program
              Map Table.

              - **Scte35Behavior** *(string) --* If set to passthrough, passes any SCTE-35 signals
              from the input source to this output.

              - **Scte35Pid** *(string) --* Packet Identifier (PID) of the SCTE-35 stream in the
              transport stream. Can be entered as a decimal or hexadecimal value.

              - **TimedMetadataBehavior** *(string) --* When set to passthrough, timed metadata is
              passed through from input to output.

              - **TimedMetadataPid** *(string) --* Packet Identifier (PID) of the timed metadata
              stream in the transport stream. Can be entered as a decimal or hexadecimal value.
              Valid values are 32 (or 0x20)..8182 (or 0x1ff6).

              - **TransportStreamId** *(integer) --* The value of the transport stream ID field in
              the Program Map Table.

              - **VideoPid** *(string) --* Packet Identifier (PID) of the elementary video stream in
              the transport stream. Can be entered as a decimal or hexadecimal value.

        - **NameModifier** *(string) --* String concatenated to the end of the destination filename.
        Accepts \\"Format Identifiers\\":#formatIdentifierParameters.

        - **SegmentModifier** *(string) --* String concatenated to end of segment filenames.

      - **MediaPackageOutputSettings** *(dict) --* Media Package Output Settings

      - **MsSmoothOutputSettings** *(dict) --* Ms Smooth Output Settings

        - **H265PackagingType** *(string) --* Only applicable when this output is referencing an
        H.265 video description. Specifies whether MP4 segments should be packaged as HEV1 or HVC1.

        - **NameModifier** *(string) --* String concatenated to the end of the destination filename.
        Required for multiple outputs of the same type.

      - **MultiplexOutputSettings** *(dict) --* Multiplex Output Settings

        - **Destination** *(dict) --* Destination is a Multiplex.

          - **DestinationRefId** *(string) --* Placeholder documentation for __string

      - **RtmpOutputSettings** *(dict) --* Rtmp Output Settings

        - **CertificateMode** *(string) --* If set to verifyAuthenticity, verify the tls certificate
        chain to a trusted Certificate Authority (CA). This will cause rtmps outputs with
        self-signed certificates to fail.

        - **ConnectionRetryInterval** *(integer) --* Number of seconds to wait before retrying a
        connection to the Flash Media server if the connection is lost.

        - **Destination** *(dict) --* The RTMP endpoint excluding the stream name (eg.
        rtmp://host/appname). For connection to Akamai, a username and password must be supplied.
        URI fields accept format identifiers.

          - **DestinationRefId** *(string) --* Placeholder documentation for __string

        - **NumRetries** *(integer) --* Number of retry attempts.

      - **UdpOutputSettings** *(dict) --* Udp Output Settings

        - **BufferMsec** *(integer) --* UDP output buffering in milliseconds. Larger values increase
        latency through the transcoder but simultaneously assist the transcoder in maintaining a
        constant, low-jitter UDP/RTP output while accommodating clock recovery, input switching,
        input disruptions, picture reordering, etc.

        - **ContainerSettings** *(dict) --* Udp Container Settings

          - **M2tsSettings** *(dict) --* M2ts Settings

            - **AbsentInputAudioBehavior** *(string) --* When set to drop, output audio streams will
            be removed from the program if the selected input audio stream is removed from the
            input. This allows the output audio configuration to dynamically change based on input
            configuration. If this is set to encodeSilence, all output audio streams will output
            encoded silence when not connected to an active input stream.

            - **Arib** *(string) --* When set to enabled, uses ARIB-compliant field muxing and
            removes video descriptor.

            - **AribCaptionsPid** *(string) --* Packet Identifier (PID) for ARIB Captions in the
            transport stream. Can be entered as a decimal or hexadecimal value. Valid values are 32
            (or 0x20)..8182 (or 0x1ff6).

            - **AribCaptionsPidControl** *(string) --* If set to auto, pid number used for ARIB
            Captions will be auto-selected from unused pids. If set to useConfigured, ARIB Captions
            will be on the configured pid number.

            - **AudioBufferModel** *(string) --* When set to dvb, uses DVB buffer model for Dolby
            Digital audio. When set to atsc, the ATSC model is used.

            - **AudioFramesPerPes** *(integer) --* The number of audio frames to insert for each PES
            packet.

            - **AudioPids** *(string) --* Packet Identifier (PID) of the elementary audio stream(s)
            in the transport stream. Multiple values are accepted, and can be entered in ranges
            and/or by comma separation. Can be entered as decimal or hexadecimal values. Each PID
            specified must be in the range of 32 (or 0x20)..8182 (or 0x1ff6).

            - **AudioStreamType** *(string) --* When set to atsc, uses stream type =
                 0x81 for AC3
            and stream type = 0x87 for EAC3. When set to dvb, uses stream type = 0x06.

            - **Bitrate** *(integer) --* The output bitrate of the transport stream in bits per
            second. Setting to 0 lets the muxer automatically determine the appropriate bitrate.

            - **BufferModel** *(string) --* If set to multiplex, use multiplex buffer model for
            accurate interleaving. Setting to bufferModel to none can lead to lower latency, but
            low-memory devices may not be able to play back the stream without interruptions.

            - **CcDescriptor** *(string) --* When set to enabled, generates captionServiceDescriptor
            in PMT.

            - **DvbNitSettings** *(dict) --* Inserts DVB Network Information Table (NIT) at the
            specified table repetition interval.

              - **NetworkId** *(integer) --* The numeric value placed in the Network Information
              Table (NIT).

              - **NetworkName** *(string) --* The network name text placed in the
              networkNameDescriptor inside the Network Information Table. Maximum length is 256
              characters.

              - **RepInterval** *(integer) --* The number of milliseconds between instances of this
              table in the output transport stream.

            - **DvbSdtSettings** *(dict) --* Inserts DVB Service Description Table (SDT) at the
            specified table repetition interval.

              - **OutputSdt** *(string) --* Selects method of inserting SDT information into output
              stream. The sdtFollow setting copies SDT information from input stream to output
              stream. The sdtFollowIfPresent setting copies SDT information from input stream to
              output stream if SDT information is present in the input, otherwise it will fall back
              on the user-defined values. The sdtManual setting means user will enter the SDT
              information. The sdtNone setting means output stream will not contain SDT information.

              - **RepInterval** *(integer) --* The number of milliseconds between instances of this
              table in the output transport stream.

              - **ServiceName** *(string) --* The service name placed in the serviceDescriptor in
              the Service Description Table. Maximum length is 256 characters.

              - **ServiceProviderName** *(string) --* The service provider name placed in the
              serviceDescriptor in the Service Description Table. Maximum length is 256 characters.

            - **DvbSubPids** *(string) --* Packet Identifier (PID) for input source DVB Subtitle
            data to this output. Multiple values are accepted, and can be entered in ranges and/or
            by comma separation. Can be entered as decimal or hexadecimal values. Each PID specified
            must be in the range of 32 (or 0x20)..8182 (or 0x1ff6).

            - **DvbTdtSettings** *(dict) --* Inserts DVB Time and Date Table (TDT) at the specified
            table repetition interval.

              - **RepInterval** *(integer) --* The number of milliseconds between instances of this
              table in the output transport stream.

            - **DvbTeletextPid** *(string) --* Packet Identifier (PID) for input source DVB Teletext
            data to this output. Can be entered as a decimal or hexadecimal value. Valid values are
            32 (or 0x20)..8182 (or 0x1ff6).

            - **Ebif** *(string) --* If set to passthrough, passes any EBIF data from the input
            source to this output.

            - **EbpAudioInterval** *(string) --* When videoAndFixedIntervals is selected, audio EBP
            markers will be added to partitions 3 and 4. The interval between these additional
            markers will be fixed, and will be slightly shorter than the video EBP marker interval.
            Only available when EBP Cablelabs segmentation markers are selected. Partitions 1 and 2
            will always follow the video interval.

            - **EbpLookaheadMs** *(integer) --* When set, enforces that Encoder Boundary Points do
            not come within the specified time interval of each other by looking ahead at input
            video. If another EBP is going to come in within the specified time interval, the
            current EBP is not emitted, and the segment is "stretched" to the next marker. The
            lookahead value does not add latency to the system. The Live Event must be configured
            elsewhere to create sufficient latency to make the lookahead accurate.

            - **EbpPlacement** *(string) --* Controls placement of EBP on Audio PIDs. If set to
            videoAndAudioPids, EBP markers will be placed on the video PID and all audio PIDs. If
            set to videoPid, EBP markers will be placed on only the video PID.

            - **EcmPid** *(string) --* This field is unused and deprecated.

            - **EsRateInPes** *(string) --* Include or exclude the ES Rate field in the PES header.

            - **EtvPlatformPid** *(string) --* Packet Identifier (PID) for input source ETV Platform
            data to this output. Can be entered as a decimal or hexadecimal value. Valid values are
            32 (or 0x20)..8182 (or 0x1ff6).

            - **EtvSignalPid** *(string) --* Packet Identifier (PID) for input source ETV Signal
            data to this output. Can be entered as a decimal or hexadecimal value. Valid values are
            32 (or 0x20)..8182 (or 0x1ff6).

            - **FragmentTime** *(float) --* The length in seconds of each fragment. Only used with
            EBP markers.

            - **Klv** *(string) --* If set to passthrough, passes any KLV data from the input source
            to this output.

            - **KlvDataPids** *(string) --* Packet Identifier (PID) for input source KLV data to
            this output. Multiple values are accepted, and can be entered in ranges and/or by comma
            separation. Can be entered as decimal or hexadecimal values. Each PID specified must be
            in the range of 32 (or 0x20)..8182 (or 0x1ff6).

            - **NielsenId3Behavior** *(string) --* If set to passthrough, Nielsen inaudible tones
            for media tracking will be detected in the input audio and an equivalent ID3 tag will be
            inserted in the output.

            - **NullPacketBitrate** *(float) --* Value in bits per second of extra null packets to
            insert into the transport stream. This can be used if a downstream encryption system
            requires periodic null packets.

            - **PatInterval** *(integer) --* The number of milliseconds between instances of this
            table in the output transport stream. Valid values are 0, 10..1000.

            - **PcrControl** *(string) --* When set to pcrEveryPesPacket, a Program Clock Reference
            value is inserted for every Packetized Elementary Stream (PES) header. This parameter is
            effective only when the PCR PID is the same as the video or audio elementary stream.

            - **PcrPeriod** *(integer) --* Maximum time in milliseconds between Program Clock
            Reference (PCRs) inserted into the transport stream.

            - **PcrPid** *(string) --* Packet Identifier (PID) of the Program Clock Reference (PCR)
            in the transport stream. When no value is given, the encoder will assign the same value
            as the Video PID. Can be entered as a decimal or hexadecimal value. Valid values are 32
            (or 0x20)..8182 (or 0x1ff6).

            - **PmtInterval** *(integer) --* The number of milliseconds between instances of this
            table in the output transport stream. Valid values are 0, 10..1000.

            - **PmtPid** *(string) --* Packet Identifier (PID) for the Program Map Table (PMT) in
            the transport stream. Can be entered as a decimal or hexadecimal value. Valid values are
            32 (or 0x20)..8182 (or 0x1ff6).

            - **ProgramNum** *(integer) --* The value of the program number field in the Program Map
            Table.

            - **RateMode** *(string) --* When vbr, does not insert null packets into transport
            stream to fill specified bitrate. The bitrate setting acts as the maximum bitrate when
            vbr is set.

            - **Scte27Pids** *(string) --* Packet Identifier (PID) for input source SCTE-27 data to
            this output. Multiple values are accepted, and can be entered in ranges and/or by comma
            separation. Can be entered as decimal or hexadecimal values. Each PID specified must be
            in the range of 32 (or 0x20)..8182 (or 0x1ff6).

            - **Scte35Control** *(string) --* Optionally pass SCTE-35 signals from the input source
            to this output.

            - **Scte35Pid** *(string) --* Packet Identifier (PID) of the SCTE-35 stream in the
            transport stream. Can be entered as a decimal or hexadecimal value. Valid values are 32
            (or 0x20)..8182 (or 0x1ff6).

            - **SegmentationMarkers** *(string) --* Inserts segmentation markers at each
            segmentationTime period. raiSegstart sets the Random Access Indicator bit in the
            adaptation field. raiAdapt sets the RAI bit and adds the current timecode in the private
            data bytes. psiSegstart inserts PAT and PMT tables at the start of segments. ebp adds
            Encoder Boundary Point information to the adaptation field as per OpenCable
            specification OC-SP-EBP-I01-130118. ebpLegacy adds Encoder Boundary Point information to
            the adaptation field using a legacy proprietary format.

            - **SegmentationStyle** *(string) --* The segmentation style parameter controls how
            segmentation markers are inserted into the transport stream. With avails, it is possible
            that segments may be truncated, which can influence where future segmentation markers
            are inserted. When a segmentation style of "resetCadence" is selected and a segment is
            truncated due to an avail, we will reset the segmentation cadence. This means the
            subsequent segment will have a duration of $segmentationTime seconds. When a
            segmentation style of "maintainCadence" is selected and a segment is truncated due to an
            avail, we will not reset the segmentation cadence. This means the subsequent segment
            will likely be truncated as well. However, all segments after that will have a duration
            of $segmentationTime seconds. Note that EBP lookahead is a slight exception to this
            rule.

            - **SegmentationTime** *(float) --* The length in seconds of each segment. Required
            unless markers is set to None_.

            - **TimedMetadataBehavior** *(string) --* When set to passthrough, timed metadata will
            be passed through from input to output.

            - **TimedMetadataPid** *(string) --* Packet Identifier (PID) of the timed metadata
            stream in the transport stream. Can be entered as a decimal or hexadecimal value. Valid
            values are 32 (or 0x20)..8182 (or 0x1ff6).

            - **TransportStreamId** *(integer) --* The value of the transport stream ID field in the
            Program Map Table.

            - **VideoPid** *(string) --* Packet Identifier (PID) of the elementary video stream in
            the transport stream. Can be entered as a decimal or hexadecimal value. Valid values are
            32 (or 0x20)..8182 (or 0x1ff6).

        - **Destination** *(dict) --* Destination address and port number for RTP or UDP packets.
        Can be unicast or multicast RTP or UDP (eg. rtp://239.10.10.10:5001 or
        udp://10.100.100.100:5002).

          - **DestinationRefId** *(string) --* Placeholder documentation for __string

        - **FecOutputSettings** *(dict) --* Settings for enabling and adjusting Forward Error
        Correction on UDP outputs.

          - **ColumnDepth** *(integer) --* Parameter D from SMPTE 2022-1. The height of the FEC
          protection matrix. The number of transport stream packets per column error correction
          packet. Must be between 4 and 20, inclusive.

          - **IncludeFec** *(string) --* Enables column only or column and row based FEC

          - **RowLength** *(integer) --* Parameter L from SMPTE 2022-1. The width of the FEC
          protection matrix. Must be between 1 and 20, inclusive. If only Column FEC is used, then
          larger values increase robustness. If Row FEC is used, then this is the number of
          transport stream packets per row error correction packet, and the value must be between 4
          and 20, inclusive, if includeFec is columnAndRow. If includeFec is column, this value must
          be 1 to 20, inclusive.

    - **VideoDescriptionName** *(string) --* The name of the VideoDescription used as the source for
    this output.
    """


_ClientStartChannelResponseEncoderSettingsOutputGroupsTypeDef = TypedDict(
    "_ClientStartChannelResponseEncoderSettingsOutputGroupsTypeDef",
    {
        "Name": str,
        "OutputGroupSettings": ClientStartChannelResponseEncoderSettingsOutputGroupsOutputGroupSettingsTypeDef,
        "Outputs": List[ClientStartChannelResponseEncoderSettingsOutputGroupsOutputsTypeDef],
    },
    total=False,
)


class ClientStartChannelResponseEncoderSettingsOutputGroupsTypeDef(
    _ClientStartChannelResponseEncoderSettingsOutputGroupsTypeDef
):
    """
    Type definition for `ClientStartChannelResponseEncoderSettings` `OutputGroups`

    - **Name** *(string) --* Custom output group name optionally defined by the user. Only letters,
    numbers, and the underscore character allowed; only 32 characters allowed.

    - **OutputGroupSettings** *(dict) --* Settings associated with the output group.

      - **ArchiveGroupSettings** *(dict) --* Archive Group Settings

        - **Destination** *(dict) --* A directory and base filename where archive files should be
        written.

          - **DestinationRefId** *(string) --* Placeholder documentation for __string

        - **RolloverInterval** *(integer) --* Number of seconds to write to archive file before
        closing and starting a new one.

      - **FrameCaptureGroupSettings** *(dict) --* Frame Capture Group Settings

        - **Destination** *(dict) --* The destination for the frame capture files. Either the URI
        for an Amazon S3 bucket and object, plus a file name prefix (for example,
        s3ssl://sportsDelivery/highlights/20180820/curling_) or the URI for a MediaStore container,
        plus a file name prefix (for example, mediastoressl://sportsDelivery/20180820/curling_). The
        final file names consist of the prefix from the destination field (for example, "curling_")
        + name modifier + the counter (5 digits, starting from 00001) + extension (which is always
        .jpg). For example, curlingLow.00001.jpg

          - **DestinationRefId** *(string) --* Placeholder documentation for __string

      - **HlsGroupSettings** *(dict) --* Hls Group Settings

        - **AdMarkers** *(list) --* Choose one or more ad marker types to pass SCTE35 signals
        through to this group of Apple HLS outputs.

          - *(string) --* Hls Ad Markers

        - **BaseUrlContent** *(string) --* A partial URI prefix that will be prepended to each
        output in the media .m3u8 file. Can be used if base manifest is delivered from a different
        URL than the main .m3u8 file.

        - **BaseUrlManifest** *(string) --* A partial URI prefix that will be prepended to each
        output in the media .m3u8 file. Can be used if base manifest is delivered from a different
        URL than the main .m3u8 file.

        - **CaptionLanguageMappings** *(list) --* Mapping of up to 4 caption channels to caption
        languages. Is only meaningful if captionLanguageSetting is set to "insert".

          - *(dict) --* Maps a caption channel to an ISO 693-2 language code
          (http://www.loc.gov/standards/iso639-2), with an optional description.

            - **CaptionChannel** *(integer) --* The closed caption channel being described by this
            CaptionLanguageMapping. Each channel mapping must have a unique channel number (maximum
            of 4)

            - **LanguageCode** *(string) --* Three character ISO 639-2 language code (see
            http://www.loc.gov/standards/iso639-2)

            - **LanguageDescription** *(string) --* Textual description of language

        - **CaptionLanguageSetting** *(string) --* Applies only to 608 Embedded output captions.
        insert: Include CLOSED-CAPTIONS lines in the manifest. Specify at least one language in the
        CC1 Language Code field. One CLOSED-CAPTION line is added for each Language Code you
        specify. Make sure to specify the languages in the order in which they appear in the
        original source (if the source is embedded format) or the order of the caption selectors (if
        the source is other than embedded). Otherwise, languages in the manifest will not match up
        properly with the output captions. none: Include CLOSED-CAPTIONS=
            NONE line in the manifest.
        omit: Omit any CLOSED-CAPTIONS line from the manifest.

        - **ClientCache** *(string) --* When set to "disabled", sets the #EXT-X-ALLOW-CACHE:no tag
        in the manifest, which prevents clients from saving media segments for later replay.

        - **CodecSpecification** *(string) --* Specification to use (RFC-6381 or the default
        RFC-4281) during m3u8 playlist generation.

        - **ConstantIv** *(string) --* For use with encryptionType. This is a 128-bit, 16-byte hex
        value represented by a 32-character text string. If ivSource is set to "explicit" then this
        parameter is required and is used as the IV for encryption.

        - **Destination** *(dict) --* A directory or HTTP destination for the HLS segments, manifest
        files, and encryption keys (if enabled).

          - **DestinationRefId** *(string) --* Placeholder documentation for __string

        - **DirectoryStructure** *(string) --* Place segments in subdirectories.

        - **EncryptionType** *(string) --* Encrypts the segments with the given encryption scheme.
        Exclude this parameter if no encryption is desired.

        - **HlsCdnSettings** *(dict) --* Parameters that control interactions with the CDN.

          - **HlsAkamaiSettings** *(dict) --* Hls Akamai Settings

            - **ConnectionRetryInterval** *(integer) --* Number of seconds to wait before retrying
            connection to the CDN if the connection is lost.

            - **FilecacheDuration** *(integer) --* Size in seconds of file cache for streaming
            outputs.

            - **HttpTransferMode** *(string) --* Specify whether or not to use chunked transfer
            encoding to Akamai. User should contact Akamai to enable this feature.

            - **NumRetries** *(integer) --* Number of retry attempts that will be made before the
            Live Event is put into an error state.

            - **RestartDelay** *(integer) --* If a streaming output fails, number of seconds to wait
            until a restart is initiated. A value of 0 means never restart.

            - **Salt** *(string) --* Salt for authenticated Akamai.

            - **Token** *(string) --* Token parameter for authenticated akamai. If not specified,
            _gda_ is used.

          - **HlsBasicPutSettings** *(dict) --* Hls Basic Put Settings

            - **ConnectionRetryInterval** *(integer) --* Number of seconds to wait before retrying
            connection to the CDN if the connection is lost.

            - **FilecacheDuration** *(integer) --* Size in seconds of file cache for streaming
            outputs.

            - **NumRetries** *(integer) --* Number of retry attempts that will be made before the
            Live Event is put into an error state.

            - **RestartDelay** *(integer) --* If a streaming output fails, number of seconds to wait
            until a restart is initiated. A value of 0 means never restart.

          - **HlsMediaStoreSettings** *(dict) --* Hls Media Store Settings

            - **ConnectionRetryInterval** *(integer) --* Number of seconds to wait before retrying
            connection to the CDN if the connection is lost.

            - **FilecacheDuration** *(integer) --* Size in seconds of file cache for streaming
            outputs.

            - **MediaStoreStorageClass** *(string) --* When set to temporal, output files are stored
            in non-persistent memory for faster reading and writing.

            - **NumRetries** *(integer) --* Number of retry attempts that will be made before the
            Live Event is put into an error state.

            - **RestartDelay** *(integer) --* If a streaming output fails, number of seconds to wait
            until a restart is initiated. A value of 0 means never restart.

          - **HlsWebdavSettings** *(dict) --* Hls Webdav Settings

            - **ConnectionRetryInterval** *(integer) --* Number of seconds to wait before retrying
            connection to the CDN if the connection is lost.

            - **FilecacheDuration** *(integer) --* Size in seconds of file cache for streaming
            outputs.

            - **HttpTransferMode** *(string) --* Specify whether or not to use chunked transfer
            encoding to WebDAV.

            - **NumRetries** *(integer) --* Number of retry attempts that will be made before the
            Live Event is put into an error state.

            - **RestartDelay** *(integer) --* If a streaming output fails, number of seconds to wait
            until a restart is initiated. A value of 0 means never restart.

        - **IFrameOnlyPlaylists** *(string) --* DISABLED: Do not create an I-frame-only manifest,
        but do create the master and media manifests (according to the Output Selection field).
        STANDARD: Create an I-frame-only manifest for each output that contains video, as well as
        the other manifests (according to the Output Selection field). The I-frame manifest contains
        a #EXT-X-I-FRAMES-ONLY tag to indicate it is I-frame only, and one or more #EXT-X-BYTERANGE
        entries identifying the I-frame position. For example, #EXT-X-BYTERANGE:160364@1461888"

        - **IndexNSegments** *(integer) --* Applies only if Mode field is LIVE. Specifies the
        maximum number of segments in the media manifest file. After this maximum, older segments
        are removed from the media manifest. This number must be less than or equal to the Keep
        Segments field.

        - **InputLossAction** *(string) --* Parameter that control output group behavior on input
        loss.

        - **IvInManifest** *(string) --* For use with encryptionType. The IV (Initialization Vector)
        is a 128-bit number used in conjunction with the key for encrypting blocks. If set to
        "include", IV is listed in the manifest, otherwise the IV is not in the manifest.

        - **IvSource** *(string) --* For use with encryptionType. The IV (Initialization Vector) is
        a 128-bit number used in conjunction with the key for encrypting blocks. If this setting is
        "followsSegmentNumber", it will cause the IV to change every segment (to match the segment
        number). If this is set to "explicit", you must enter a constantIv value.

        - **KeepSegments** *(integer) --* Applies only if Mode field is LIVE. Specifies the number
        of media segments (.ts files) to retain in the destination directory.

        - **KeyFormat** *(string) --* The value specifies how the key is represented in the resource
        identified by the URI. If parameter is absent, an implicit value of "identity" is used. A
        reverse DNS string can also be given.

        - **KeyFormatVersions** *(string) --* Either a single positive integer version value or a
        slash delimited list of version values (1/2/3).

        - **KeyProviderSettings** *(dict) --* The key provider settings.

          - **StaticKeySettings** *(dict) --* Static Key Settings

            - **KeyProviderServer** *(dict) --* The URL of the license server used for protecting
            content.

              - **PasswordParam** *(string) --* key used to extract the password from EC2 Parameter
              store

              - **Uri** *(string) --* Uniform Resource Identifier - This should be a path to a file
              accessible to the Live system (eg. a http:// URI) depending on the output type. For
              example, a RTMP destination should have a uri simliar to: "rtmp://fmsserver/live".

              - **Username** *(string) --* Documentation update needed

            - **StaticKeyValue** *(string) --* Static key value as a 32 character hexadecimal
            string.

        - **ManifestCompression** *(string) --* When set to gzip, compresses HLS playlist.

        - **ManifestDurationFormat** *(string) --* Indicates whether the output manifest should use
        floating point or integer values for segment duration.

        - **MinSegmentLength** *(integer) --* When set, minimumSegmentLength is enforced by looking
        ahead and back within the specified range for a nearby avail and extending the segment size
        if needed.

        - **Mode** *(string) --* If "vod", all segments are indexed and kept permanently in the
        destination and manifest. If "live", only the number segments specified in keepSegments and
        indexNSegments are kept; newer segments replace older segments, which may prevent players
        from rewinding all the way to the beginning of the event. VOD mode uses HLS
        EXT-X-PLAYLIST-TYPE of EVENT while the channel is running, converting it to a "VOD" type
        manifest on completion of the stream.

        - **OutputSelection** *(string) --* MANIFESTSANDSEGMENTS: Generates manifests (master
        manifest, if applicable, and media manifests) for this output group. SEGMENTSONLY: Does not
        generate any manifests for this output group.

        - **ProgramDateTime** *(string) --* Includes or excludes EXT-X-PROGRAM-DATE-TIME tag in
        .m3u8 manifest files. The value is calculated as follows: either the program date and time
        are initialized using the input timecode source, or the time is initialized using the input
        timecode source and the date is initialized using the timestampOffset.

        - **ProgramDateTimePeriod** *(integer) --* Period of insertion of EXT-X-PROGRAM-DATE-TIME
        entry, in seconds.

        - **RedundantManifest** *(string) --* ENABLED: The master manifest (.m3u8 file) for each
        pipeline includes information about both pipelines: first its own media files, then the
        media files of the other pipeline. This feature allows playout device that support stale
        manifest detection to switch from one manifest to the other, when the current manifest seems
        to be stale. There are still two destinations and two master manifests, but both master
        manifests reference the media files from both pipelines. DISABLED: The master manifest
        (.m3u8 file) for each pipeline includes information about its own pipeline only. For an HLS
        output group with MediaPackage as the destination, the DISABLED behavior is always followed.
        MediaPackage regenerates the manifests it serves to players so a redundant manifest from
        MediaLive is irrelevant.

        - **SegmentLength** *(integer) --* Length of MPEG-2 Transport Stream segments to create (in
        seconds). Note that segments will end on the next keyframe after this number of seconds, so
        actual segment length may be longer.

        - **SegmentationMode** *(string) --* useInputSegmentation has been deprecated. The
        configured segment size is always used.

        - **SegmentsPerSubdirectory** *(integer) --* Number of segments to write to a subdirectory
        before starting a new one. directoryStructure must be subdirectoryPerStream for this setting
        to have an effect.

        - **StreamInfResolution** *(string) --* Include or exclude RESOLUTION attribute for video in
        EXT-X-STREAM-INF tag of variant manifest.

        - **TimedMetadataId3Frame** *(string) --* Indicates ID3 frame that has the timecode.

        - **TimedMetadataId3Period** *(integer) --* Timed Metadata interval in seconds.

        - **TimestampDeltaMilliseconds** *(integer) --* Provides an extra millisecond delta offset
        to fine tune the timestamps.

        - **TsFileMode** *(string) --* SEGMENTEDFILES: Emit the program as segments - multiple .ts
        media files. SINGLEFILE: Applies only if Mode field is VOD. Emit the program as a single .ts
        media file. The media manifest includes #EXT-X-BYTERANGE tags to index segments for
        playback. A typical use for this value is when sending the output to AWS Elemental
        MediaConvert, which can accept only a single media file. Playback while the channel is
        running is not guaranteed due to HTTP server caching.

      - **MediaPackageGroupSettings** *(dict) --* Media Package Group Settings

        - **Destination** *(dict) --* MediaPackage channel destination.

          - **DestinationRefId** *(string) --* Placeholder documentation for __string

      - **MsSmoothGroupSettings** *(dict) --* Ms Smooth Group Settings

        - **AcquisitionPointId** *(string) --* The value of the "Acquisition Point Identity" element
        used in each message placed in the sparse track. Only enabled if sparseTrackType is not
        "none".

        - **AudioOnlyTimecodeControl** *(string) --* If set to passthrough for an audio-only MS
        Smooth output, the fragment absolute time will be set to the current timecode. This option
        does not write timecodes to the audio elementary stream.

        - **CertificateMode** *(string) --* If set to verifyAuthenticity, verify the https
        certificate chain to a trusted Certificate Authority (CA). This will cause https outputs to
        self-signed certificates to fail.

        - **ConnectionRetryInterval** *(integer) --* Number of seconds to wait before retrying
        connection to the IIS server if the connection is lost. Content will be cached during this
        time and the cache will be be delivered to the IIS server once the connection is
        re-established.

        - **Destination** *(dict) --* Smooth Streaming publish point on an IIS server. Elemental
        Live acts as a "Push" encoder to IIS.

          - **DestinationRefId** *(string) --* Placeholder documentation for __string

        - **EventId** *(string) --* MS Smooth event ID to be sent to the IIS server. Should only be
        specified if eventIdMode is set to useConfigured.

        - **EventIdMode** *(string) --* Specifies whether or not to send an event ID to the IIS
        server. If no event ID is sent and the same Live Event is used without changing the
        publishing point, clients might see cached video from the previous run. Options: -
        "useConfigured" - use the value provided in eventId - "useTimestamp" - generate and send an
        event ID based on the current timestamp - "noEventId" - do not send an event ID to the IIS
        server.

        - **EventStopBehavior** *(string) --* When set to sendEos, send EOS signal to IIS server
        when stopping the event

        - **FilecacheDuration** *(integer) --* Size in seconds of file cache for streaming outputs.

        - **FragmentLength** *(integer) --* Length of mp4 fragments to generate (in seconds).
        Fragment length must be compatible with GOP size and framerate.

        - **InputLossAction** *(string) --* Parameter that control output group behavior on input
        loss.

        - **NumRetries** *(integer) --* Number of retry attempts.

        - **RestartDelay** *(integer) --* Number of seconds before initiating a restart due to
        output failure, due to exhausting the numRetries on one segment, or exceeding
        filecacheDuration.

        - **SegmentationMode** *(string) --* useInputSegmentation has been deprecated. The
        configured segment size is always used.

        - **SendDelayMs** *(integer) --* Number of milliseconds to delay the output from the second
        pipeline.

        - **SparseTrackType** *(string) --* If set to scte35, use incoming SCTE-35 messages to
        generate a sparse track in this group of MS-Smooth outputs.

        - **StreamManifestBehavior** *(string) --* When set to send, send stream manifest so
        publishing point doesn't start until all streams start.

        - **TimestampOffset** *(string) --* Timestamp offset for the event. Only used if
        timestampOffsetMode is set to useConfiguredOffset.

        - **TimestampOffsetMode** *(string) --* Type of timestamp date offset to use. -
        useEventStartDate: Use the date the event was started as the offset - useConfiguredOffset:
        Use an explicitly configured date as the offset

      - **MultiplexGroupSettings** *(dict) --* Multiplex Group Settings

      - **RtmpGroupSettings** *(dict) --* Rtmp Group Settings

        - **AuthenticationScheme** *(string) --* Authentication scheme to use when connecting with
        CDN

        - **CacheFullBehavior** *(string) --* Controls behavior when content cache fills up. If
        remote origin server stalls the RTMP connection and does not accept content fast enough the
        'Media Cache' will fill up. When the cache reaches the duration specified by cacheLength the
        cache will stop accepting new content. If set to disconnectImmediately, the RTMP output will
        force a disconnect. Clear the media cache, and reconnect after restartDelay seconds. If set
        to waitForServer, the RTMP output will wait up to 5 minutes to allow the origin server to
        begin accepting data again.

        - **CacheLength** *(integer) --* Cache length, in seconds, is used to calculate buffer size.

        - **CaptionData** *(string) --* Controls the types of data that passes to onCaptionInfo
        outputs. If set to 'all' then 608 and 708 carried DTVCC data will be passed. If set to
        'field1AndField2608' then DTVCC data will be stripped out, but 608 data from both fields
        will be passed. If set to 'field1608' then only the data carried in 608 from field 1 video
        will be passed.

        - **InputLossAction** *(string) --* Controls the behavior of this RTMP group if input
        becomes unavailable. - emitOutput: Emit a slate until input returns. - pauseOutput: Stop
        transmitting data until input returns. This does not close the underlying RTMP connection.

        - **RestartDelay** *(integer) --* If a streaming output fails, number of seconds to wait
        until a restart is initiated. A value of 0 means never restart.

      - **UdpGroupSettings** *(dict) --* Udp Group Settings

        - **InputLossAction** *(string) --* Specifies behavior of last resort when input video is
        lost, and no more backup inputs are available. When dropTs is selected the entire transport
        stream will stop being emitted. When dropProgram is selected the program can be dropped from
        the transport stream (and replaced with null packets to meet the TS bitrate requirement).
        Or, when emitProgram is chosen the transport stream will continue to be produced normally
        with repeat frames, black frames, or slate frames substituted for the absent input video.

        - **TimedMetadataId3Frame** *(string) --* Indicates ID3 frame that has the timecode.

        - **TimedMetadataId3Period** *(integer) --* Timed Metadata interval in seconds.

    - **Outputs** *(list) --* Placeholder documentation for __listOfOutput

      - *(dict) --* Output settings. There can be multiple outputs within a group.

        - **AudioDescriptionNames** *(list) --* The names of the AudioDescriptions used as audio
        sources for this output.

          - *(string) --* Placeholder documentation for __string

        - **CaptionDescriptionNames** *(list) --* The names of the CaptionDescriptions used as
        caption sources for this output.

          - *(string) --* Placeholder documentation for __string

        - **OutputName** *(string) --* The name used to identify an output.

        - **OutputSettings** *(dict) --* Output type-specific settings.

          - **ArchiveOutputSettings** *(dict) --* Archive Output Settings

            - **ContainerSettings** *(dict) --* Settings specific to the container type of the file.

              - **M2tsSettings** *(dict) --* M2ts Settings

                - **AbsentInputAudioBehavior** *(string) --* When set to drop, output audio streams
                will be removed from the program if the selected input audio stream is removed from
                the input. This allows the output audio configuration to dynamically change based on
                input configuration. If this is set to encodeSilence, all output audio streams will
                output encoded silence when not connected to an active input stream.

                - **Arib** *(string) --* When set to enabled, uses ARIB-compliant field muxing and
                removes video descriptor.

                - **AribCaptionsPid** *(string) --* Packet Identifier (PID) for ARIB Captions in the
                transport stream. Can be entered as a decimal or hexadecimal value. Valid values are
                32 (or 0x20)..8182 (or 0x1ff6).

                - **AribCaptionsPidControl** *(string) --* If set to auto, pid number used for ARIB
                Captions will be auto-selected from unused pids. If set to useConfigured, ARIB
                Captions will be on the configured pid number.

                - **AudioBufferModel** *(string) --* When set to dvb, uses DVB buffer model for
                Dolby Digital audio. When set to atsc, the ATSC model is used.

                - **AudioFramesPerPes** *(integer) --* The number of audio frames to insert for each
                PES packet.

                - **AudioPids** *(string) --* Packet Identifier (PID) of the elementary audio
                stream(s) in the transport stream. Multiple values are accepted, and can be entered
                in ranges and/or by comma separation. Can be entered as decimal or hexadecimal
                values. Each PID specified must be in the range of 32 (or 0x20)..8182 (or 0x1ff6).

                - **AudioStreamType** *(string) --* When set to atsc, uses stream type =
                     0x81 for
                AC3 and stream type = 0x87 for EAC3. When set to dvb, uses stream type =
                     0x06.

                - **Bitrate** *(integer) --* The output bitrate of the transport stream in bits per
                second. Setting to 0 lets the muxer automatically determine the appropriate bitrate.

                - **BufferModel** *(string) --* If set to multiplex, use multiplex buffer model for
                accurate interleaving. Setting to bufferModel to none can lead to lower latency, but
                low-memory devices may not be able to play back the stream without interruptions.

                - **CcDescriptor** *(string) --* When set to enabled, generates
                captionServiceDescriptor in PMT.

                - **DvbNitSettings** *(dict) --* Inserts DVB Network Information Table (NIT) at the
                specified table repetition interval.

                  - **NetworkId** *(integer) --* The numeric value placed in the Network Information
                  Table (NIT).

                  - **NetworkName** *(string) --* The network name text placed in the
                  networkNameDescriptor inside the Network Information Table. Maximum length is 256
                  characters.

                  - **RepInterval** *(integer) --* The number of milliseconds between instances of
                  this table in the output transport stream.

                - **DvbSdtSettings** *(dict) --* Inserts DVB Service Description Table (SDT) at the
                specified table repetition interval.

                  - **OutputSdt** *(string) --* Selects method of inserting SDT information into
                  output stream. The sdtFollow setting copies SDT information from input stream to
                  output stream. The sdtFollowIfPresent setting copies SDT information from input
                  stream to output stream if SDT information is present in the input, otherwise it
                  will fall back on the user-defined values. The sdtManual setting means user will
                  enter the SDT information. The sdtNone setting means output stream will not
                  contain SDT information.

                  - **RepInterval** *(integer) --* The number of milliseconds between instances of
                  this table in the output transport stream.

                  - **ServiceName** *(string) --* The service name placed in the serviceDescriptor
                  in the Service Description Table. Maximum length is 256 characters.

                  - **ServiceProviderName** *(string) --* The service provider name placed in the
                  serviceDescriptor in the Service Description Table. Maximum length is 256
                  characters.

                - **DvbSubPids** *(string) --* Packet Identifier (PID) for input source DVB Subtitle
                data to this output. Multiple values are accepted, and can be entered in ranges
                and/or by comma separation. Can be entered as decimal or hexadecimal values. Each
                PID specified must be in the range of 32 (or 0x20)..8182 (or 0x1ff6).

                - **DvbTdtSettings** *(dict) --* Inserts DVB Time and Date Table (TDT) at the
                specified table repetition interval.

                  - **RepInterval** *(integer) --* The number of milliseconds between instances of
                  this table in the output transport stream.

                - **DvbTeletextPid** *(string) --* Packet Identifier (PID) for input source DVB
                Teletext data to this output. Can be entered as a decimal or hexadecimal value.
                Valid values are 32 (or 0x20)..8182 (or 0x1ff6).

                - **Ebif** *(string) --* If set to passthrough, passes any EBIF data from the input
                source to this output.

                - **EbpAudioInterval** *(string) --* When videoAndFixedIntervals is selected, audio
                EBP markers will be added to partitions 3 and 4. The interval between these
                additional markers will be fixed, and will be slightly shorter than the video EBP
                marker interval. Only available when EBP Cablelabs segmentation markers are
                selected. Partitions 1 and 2 will always follow the video interval.

                - **EbpLookaheadMs** *(integer) --* When set, enforces that Encoder Boundary Points
                do not come within the specified time interval of each other by looking ahead at
                input video. If another EBP is going to come in within the specified time interval,
                the current EBP is not emitted, and the segment is "stretched" to the next marker.
                The lookahead value does not add latency to the system. The Live Event must be
                configured elsewhere to create sufficient latency to make the lookahead accurate.

                - **EbpPlacement** *(string) --* Controls placement of EBP on Audio PIDs. If set to
                videoAndAudioPids, EBP markers will be placed on the video PID and all audio PIDs.
                If set to videoPid, EBP markers will be placed on only the video PID.

                - **EcmPid** *(string) --* This field is unused and deprecated.

                - **EsRateInPes** *(string) --* Include or exclude the ES Rate field in the PES
                header.

                - **EtvPlatformPid** *(string) --* Packet Identifier (PID) for input source ETV
                Platform data to this output. Can be entered as a decimal or hexadecimal value.
                Valid values are 32 (or 0x20)..8182 (or 0x1ff6).

                - **EtvSignalPid** *(string) --* Packet Identifier (PID) for input source ETV Signal
                data to this output. Can be entered as a decimal or hexadecimal value. Valid values
                are 32 (or 0x20)..8182 (or 0x1ff6).

                - **FragmentTime** *(float) --* The length in seconds of each fragment. Only used
                with EBP markers.

                - **Klv** *(string) --* If set to passthrough, passes any KLV data from the input
                source to this output.

                - **KlvDataPids** *(string) --* Packet Identifier (PID) for input source KLV data to
                this output. Multiple values are accepted, and can be entered in ranges and/or by
                comma separation. Can be entered as decimal or hexadecimal values. Each PID
                specified must be in the range of 32 (or 0x20)..8182 (or 0x1ff6).

                - **NielsenId3Behavior** *(string) --* If set to passthrough, Nielsen inaudible
                tones for media tracking will be detected in the input audio and an equivalent ID3
                tag will be inserted in the output.

                - **NullPacketBitrate** *(float) --* Value in bits per second of extra null packets
                to insert into the transport stream. This can be used if a downstream encryption
                system requires periodic null packets.

                - **PatInterval** *(integer) --* The number of milliseconds between instances of
                this table in the output transport stream. Valid values are 0, 10..1000.

                - **PcrControl** *(string) --* When set to pcrEveryPesPacket, a Program Clock
                Reference value is inserted for every Packetized Elementary Stream (PES) header.
                This parameter is effective only when the PCR PID is the same as the video or audio
                elementary stream.

                - **PcrPeriod** *(integer) --* Maximum time in milliseconds between Program Clock
                Reference (PCRs) inserted into the transport stream.

                - **PcrPid** *(string) --* Packet Identifier (PID) of the Program Clock Reference
                (PCR) in the transport stream. When no value is given, the encoder will assign the
                same value as the Video PID. Can be entered as a decimal or hexadecimal value. Valid
                values are 32 (or 0x20)..8182 (or 0x1ff6).

                - **PmtInterval** *(integer) --* The number of milliseconds between instances of
                this table in the output transport stream. Valid values are 0, 10..1000.

                - **PmtPid** *(string) --* Packet Identifier (PID) for the Program Map Table (PMT)
                in the transport stream. Can be entered as a decimal or hexadecimal value. Valid
                values are 32 (or 0x20)..8182 (or 0x1ff6).

                - **ProgramNum** *(integer) --* The value of the program number field in the Program
                Map Table.

                - **RateMode** *(string) --* When vbr, does not insert null packets into transport
                stream to fill specified bitrate. The bitrate setting acts as the maximum bitrate
                when vbr is set.

                - **Scte27Pids** *(string) --* Packet Identifier (PID) for input source SCTE-27 data
                to this output. Multiple values are accepted, and can be entered in ranges and/or by
                comma separation. Can be entered as decimal or hexadecimal values. Each PID
                specified must be in the range of 32 (or 0x20)..8182 (or 0x1ff6).

                - **Scte35Control** *(string) --* Optionally pass SCTE-35 signals from the input
                source to this output.

                - **Scte35Pid** *(string) --* Packet Identifier (PID) of the SCTE-35 stream in the
                transport stream. Can be entered as a decimal or hexadecimal value. Valid values are
                32 (or 0x20)..8182 (or 0x1ff6).

                - **SegmentationMarkers** *(string) --* Inserts segmentation markers at each
                segmentationTime period. raiSegstart sets the Random Access Indicator bit in the
                adaptation field. raiAdapt sets the RAI bit and adds the current timecode in the
                private data bytes. psiSegstart inserts PAT and PMT tables at the start of segments.
                ebp adds Encoder Boundary Point information to the adaptation field as per OpenCable
                specification OC-SP-EBP-I01-130118. ebpLegacy adds Encoder Boundary Point
                information to the adaptation field using a legacy proprietary format.

                - **SegmentationStyle** *(string) --* The segmentation style parameter controls how
                segmentation markers are inserted into the transport stream. With avails, it is
                possible that segments may be truncated, which can influence where future
                segmentation markers are inserted. When a segmentation style of "resetCadence" is
                selected and a segment is truncated due to an avail, we will reset the segmentation
                cadence. This means the subsequent segment will have a duration of $segmentationTime
                seconds. When a segmentation style of "maintainCadence" is selected and a segment is
                truncated due to an avail, we will not reset the segmentation cadence. This means
                the subsequent segment will likely be truncated as well. However, all segments after
                that will have a duration of $segmentationTime seconds. Note that EBP lookahead is a
                slight exception to this rule.

                - **SegmentationTime** *(float) --* The length in seconds of each segment. Required
                unless markers is set to None_.

                - **TimedMetadataBehavior** *(string) --* When set to passthrough, timed metadata
                will be passed through from input to output.

                - **TimedMetadataPid** *(string) --* Packet Identifier (PID) of the timed metadata
                stream in the transport stream. Can be entered as a decimal or hexadecimal value.
                Valid values are 32 (or 0x20)..8182 (or 0x1ff6).

                - **TransportStreamId** *(integer) --* The value of the transport stream ID field in
                the Program Map Table.

                - **VideoPid** *(string) --* Packet Identifier (PID) of the elementary video stream
                in the transport stream. Can be entered as a decimal or hexadecimal value. Valid
                values are 32 (or 0x20)..8182 (or 0x1ff6).

            - **Extension** *(string) --* Output file extension. If excluded, this will be
            auto-selected from the container type.

            - **NameModifier** *(string) --* String concatenated to the end of the destination
            filename. Required for multiple outputs of the same type.

          - **FrameCaptureOutputSettings** *(dict) --* Frame Capture Output Settings

            - **NameModifier** *(string) --* Required if the output group contains more than one
            output. This modifier forms part of the output file name.

          - **HlsOutputSettings** *(dict) --* Hls Output Settings

            - **HlsSettings** *(dict) --* Settings regarding the underlying stream. These settings
            are different for audio-only outputs.

              - **AudioOnlyHlsSettings** *(dict) --* Audio Only Hls Settings

                - **AudioGroupId** *(string) --* Specifies the group to which the audio Rendition
                belongs.

                - **AudioOnlyImage** *(dict) --* Optional. Specifies the .jpg or .png image to use
                as the cover art for an audio-only output. We recommend a low bit-size file because
                the image increases the output audio bandwidth. The image is attached to the audio
                as an ID3 tag, frame type APIC, picture type 0x10, as per the "ID3 tag version 2.4.0
                - Native Frames" standard.

                  - **PasswordParam** *(string) --* key used to extract the password from EC2
                  Parameter store

                  - **Uri** *(string) --* Uniform Resource Identifier - This should be a path to a
                  file accessible to the Live system (eg. a http:// URI) depending on the output
                  type. For example, a RTMP destination should have a uri simliar to:
                  "rtmp://fmsserver/live".

                  - **Username** *(string) --* Documentation update needed

                - **AudioTrackType** *(string) --* Four types of audio-only tracks are supported:
                Audio-Only Variant Stream The client can play back this audio-only stream instead of
                video in low-bandwidth scenarios. Represented as an EXT-X-STREAM-INF in the HLS
                manifest. Alternate Audio, Auto Select, Default Alternate rendition that the client
                should try to play back by default. Represented as an EXT-X-MEDIA in the HLS
                manifest with DEFAULT=YES, AUTOSELECT=
                    YES Alternate Audio, Auto Select, Not Default
                Alternate rendition that the client may try to play back by default. Represented as
                an EXT-X-MEDIA in the HLS manifest with DEFAULT=NO, AUTOSELECT=
                    YES Alternate Audio,
                not Auto Select Alternate rendition that the client will not try to play back by
                default. Represented as an EXT-X-MEDIA in the HLS manifest with DEFAULT=
                    NO,
                AUTOSELECT=NO

              - **StandardHlsSettings** *(dict) --* Standard Hls Settings

                - **AudioRenditionSets** *(string) --* List all the audio groups that are used with
                the video output stream. Input all the audio GROUP-IDs that are associated to the
                video, separate by ','.

                - **M3u8Settings** *(dict) --* Settings information for the .m3u8 container

                  - **AudioFramesPerPes** *(integer) --* The number of audio frames to insert for
                  each PES packet.

                  - **AudioPids** *(string) --* Packet Identifier (PID) of the elementary audio
                  stream(s) in the transport stream. Multiple values are accepted, and can be
                  entered in ranges and/or by comma separation. Can be entered as decimal or
                  hexadecimal values.

                  - **EcmPid** *(string) --* This parameter is unused and deprecated.

                  - **NielsenId3Behavior** *(string) --* If set to passthrough, Nielsen inaudible
                  tones for media tracking will be detected in the input audio and an equivalent ID3
                  tag will be inserted in the output.

                  - **PatInterval** *(integer) --* The number of milliseconds between instances of
                  this table in the output transport stream. A value of \\"0\\" writes out the PMT
                  once per segment file.

                  - **PcrControl** *(string) --* When set to pcrEveryPesPacket, a Program Clock
                  Reference value is inserted for every Packetized Elementary Stream (PES) header.
                  This parameter is effective only when the PCR PID is the same as the video or
                  audio elementary stream.

                  - **PcrPeriod** *(integer) --* Maximum time in milliseconds between Program Clock
                  References (PCRs) inserted into the transport stream.

                  - **PcrPid** *(string) --* Packet Identifier (PID) of the Program Clock Reference
                  (PCR) in the transport stream. When no value is given, the encoder will assign the
                  same value as the Video PID. Can be entered as a decimal or hexadecimal value.

                  - **PmtInterval** *(integer) --* The number of milliseconds between instances of
                  this table in the output transport stream. A value of \\"0\\" writes out the PMT
                  once per segment file.

                  - **PmtPid** *(string) --* Packet Identifier (PID) for the Program Map Table (PMT)
                  in the transport stream. Can be entered as a decimal or hexadecimal value.

                  - **ProgramNum** *(integer) --* The value of the program number field in the
                  Program Map Table.

                  - **Scte35Behavior** *(string) --* If set to passthrough, passes any SCTE-35
                  signals from the input source to this output.

                  - **Scte35Pid** *(string) --* Packet Identifier (PID) of the SCTE-35 stream in the
                  transport stream. Can be entered as a decimal or hexadecimal value.

                  - **TimedMetadataBehavior** *(string) --* When set to passthrough, timed metadata
                  is passed through from input to output.

                  - **TimedMetadataPid** *(string) --* Packet Identifier (PID) of the timed metadata
                  stream in the transport stream. Can be entered as a decimal or hexadecimal value.
                  Valid values are 32 (or 0x20)..8182 (or 0x1ff6).

                  - **TransportStreamId** *(integer) --* The value of the transport stream ID field
                  in the Program Map Table.

                  - **VideoPid** *(string) --* Packet Identifier (PID) of the elementary video
                  stream in the transport stream. Can be entered as a decimal or hexadecimal value.

            - **NameModifier** *(string) --* String concatenated to the end of the destination
            filename. Accepts \\"Format Identifiers\\":#formatIdentifierParameters.

            - **SegmentModifier** *(string) --* String concatenated to end of segment filenames.

          - **MediaPackageOutputSettings** *(dict) --* Media Package Output Settings

          - **MsSmoothOutputSettings** *(dict) --* Ms Smooth Output Settings

            - **H265PackagingType** *(string) --* Only applicable when this output is referencing an
            H.265 video description. Specifies whether MP4 segments should be packaged as HEV1 or
            HVC1.

            - **NameModifier** *(string) --* String concatenated to the end of the destination
            filename. Required for multiple outputs of the same type.

          - **MultiplexOutputSettings** *(dict) --* Multiplex Output Settings

            - **Destination** *(dict) --* Destination is a Multiplex.

              - **DestinationRefId** *(string) --* Placeholder documentation for __string

          - **RtmpOutputSettings** *(dict) --* Rtmp Output Settings

            - **CertificateMode** *(string) --* If set to verifyAuthenticity, verify the tls
            certificate chain to a trusted Certificate Authority (CA). This will cause rtmps outputs
            with self-signed certificates to fail.

            - **ConnectionRetryInterval** *(integer) --* Number of seconds to wait before retrying a
            connection to the Flash Media server if the connection is lost.

            - **Destination** *(dict) --* The RTMP endpoint excluding the stream name (eg.
            rtmp://host/appname). For connection to Akamai, a username and password must be
            supplied. URI fields accept format identifiers.

              - **DestinationRefId** *(string) --* Placeholder documentation for __string

            - **NumRetries** *(integer) --* Number of retry attempts.

          - **UdpOutputSettings** *(dict) --* Udp Output Settings

            - **BufferMsec** *(integer) --* UDP output buffering in milliseconds. Larger values
            increase latency through the transcoder but simultaneously assist the transcoder in
            maintaining a constant, low-jitter UDP/RTP output while accommodating clock recovery,
            input switching, input disruptions, picture reordering, etc.

            - **ContainerSettings** *(dict) --* Udp Container Settings

              - **M2tsSettings** *(dict) --* M2ts Settings

                - **AbsentInputAudioBehavior** *(string) --* When set to drop, output audio streams
                will be removed from the program if the selected input audio stream is removed from
                the input. This allows the output audio configuration to dynamically change based on
                input configuration. If this is set to encodeSilence, all output audio streams will
                output encoded silence when not connected to an active input stream.

                - **Arib** *(string) --* When set to enabled, uses ARIB-compliant field muxing and
                removes video descriptor.

                - **AribCaptionsPid** *(string) --* Packet Identifier (PID) for ARIB Captions in the
                transport stream. Can be entered as a decimal or hexadecimal value. Valid values are
                32 (or 0x20)..8182 (or 0x1ff6).

                - **AribCaptionsPidControl** *(string) --* If set to auto, pid number used for ARIB
                Captions will be auto-selected from unused pids. If set to useConfigured, ARIB
                Captions will be on the configured pid number.

                - **AudioBufferModel** *(string) --* When set to dvb, uses DVB buffer model for
                Dolby Digital audio. When set to atsc, the ATSC model is used.

                - **AudioFramesPerPes** *(integer) --* The number of audio frames to insert for each
                PES packet.

                - **AudioPids** *(string) --* Packet Identifier (PID) of the elementary audio
                stream(s) in the transport stream. Multiple values are accepted, and can be entered
                in ranges and/or by comma separation. Can be entered as decimal or hexadecimal
                values. Each PID specified must be in the range of 32 (or 0x20)..8182 (or 0x1ff6).

                - **AudioStreamType** *(string) --* When set to atsc, uses stream type =
                     0x81 for
                AC3 and stream type = 0x87 for EAC3. When set to dvb, uses stream type =
                     0x06.

                - **Bitrate** *(integer) --* The output bitrate of the transport stream in bits per
                second. Setting to 0 lets the muxer automatically determine the appropriate bitrate.

                - **BufferModel** *(string) --* If set to multiplex, use multiplex buffer model for
                accurate interleaving. Setting to bufferModel to none can lead to lower latency, but
                low-memory devices may not be able to play back the stream without interruptions.

                - **CcDescriptor** *(string) --* When set to enabled, generates
                captionServiceDescriptor in PMT.

                - **DvbNitSettings** *(dict) --* Inserts DVB Network Information Table (NIT) at the
                specified table repetition interval.

                  - **NetworkId** *(integer) --* The numeric value placed in the Network Information
                  Table (NIT).

                  - **NetworkName** *(string) --* The network name text placed in the
                  networkNameDescriptor inside the Network Information Table. Maximum length is 256
                  characters.

                  - **RepInterval** *(integer) --* The number of milliseconds between instances of
                  this table in the output transport stream.

                - **DvbSdtSettings** *(dict) --* Inserts DVB Service Description Table (SDT) at the
                specified table repetition interval.

                  - **OutputSdt** *(string) --* Selects method of inserting SDT information into
                  output stream. The sdtFollow setting copies SDT information from input stream to
                  output stream. The sdtFollowIfPresent setting copies SDT information from input
                  stream to output stream if SDT information is present in the input, otherwise it
                  will fall back on the user-defined values. The sdtManual setting means user will
                  enter the SDT information. The sdtNone setting means output stream will not
                  contain SDT information.

                  - **RepInterval** *(integer) --* The number of milliseconds between instances of
                  this table in the output transport stream.

                  - **ServiceName** *(string) --* The service name placed in the serviceDescriptor
                  in the Service Description Table. Maximum length is 256 characters.

                  - **ServiceProviderName** *(string) --* The service provider name placed in the
                  serviceDescriptor in the Service Description Table. Maximum length is 256
                  characters.

                - **DvbSubPids** *(string) --* Packet Identifier (PID) for input source DVB Subtitle
                data to this output. Multiple values are accepted, and can be entered in ranges
                and/or by comma separation. Can be entered as decimal or hexadecimal values. Each
                PID specified must be in the range of 32 (or 0x20)..8182 (or 0x1ff6).

                - **DvbTdtSettings** *(dict) --* Inserts DVB Time and Date Table (TDT) at the
                specified table repetition interval.

                  - **RepInterval** *(integer) --* The number of milliseconds between instances of
                  this table in the output transport stream.

                - **DvbTeletextPid** *(string) --* Packet Identifier (PID) for input source DVB
                Teletext data to this output. Can be entered as a decimal or hexadecimal value.
                Valid values are 32 (or 0x20)..8182 (or 0x1ff6).

                - **Ebif** *(string) --* If set to passthrough, passes any EBIF data from the input
                source to this output.

                - **EbpAudioInterval** *(string) --* When videoAndFixedIntervals is selected, audio
                EBP markers will be added to partitions 3 and 4. The interval between these
                additional markers will be fixed, and will be slightly shorter than the video EBP
                marker interval. Only available when EBP Cablelabs segmentation markers are
                selected. Partitions 1 and 2 will always follow the video interval.

                - **EbpLookaheadMs** *(integer) --* When set, enforces that Encoder Boundary Points
                do not come within the specified time interval of each other by looking ahead at
                input video. If another EBP is going to come in within the specified time interval,
                the current EBP is not emitted, and the segment is "stretched" to the next marker.
                The lookahead value does not add latency to the system. The Live Event must be
                configured elsewhere to create sufficient latency to make the lookahead accurate.

                - **EbpPlacement** *(string) --* Controls placement of EBP on Audio PIDs. If set to
                videoAndAudioPids, EBP markers will be placed on the video PID and all audio PIDs.
                If set to videoPid, EBP markers will be placed on only the video PID.

                - **EcmPid** *(string) --* This field is unused and deprecated.

                - **EsRateInPes** *(string) --* Include or exclude the ES Rate field in the PES
                header.

                - **EtvPlatformPid** *(string) --* Packet Identifier (PID) for input source ETV
                Platform data to this output. Can be entered as a decimal or hexadecimal value.
                Valid values are 32 (or 0x20)..8182 (or 0x1ff6).

                - **EtvSignalPid** *(string) --* Packet Identifier (PID) for input source ETV Signal
                data to this output. Can be entered as a decimal or hexadecimal value. Valid values
                are 32 (or 0x20)..8182 (or 0x1ff6).

                - **FragmentTime** *(float) --* The length in seconds of each fragment. Only used
                with EBP markers.

                - **Klv** *(string) --* If set to passthrough, passes any KLV data from the input
                source to this output.

                - **KlvDataPids** *(string) --* Packet Identifier (PID) for input source KLV data to
                this output. Multiple values are accepted, and can be entered in ranges and/or by
                comma separation. Can be entered as decimal or hexadecimal values. Each PID
                specified must be in the range of 32 (or 0x20)..8182 (or 0x1ff6).

                - **NielsenId3Behavior** *(string) --* If set to passthrough, Nielsen inaudible
                tones for media tracking will be detected in the input audio and an equivalent ID3
                tag will be inserted in the output.

                - **NullPacketBitrate** *(float) --* Value in bits per second of extra null packets
                to insert into the transport stream. This can be used if a downstream encryption
                system requires periodic null packets.

                - **PatInterval** *(integer) --* The number of milliseconds between instances of
                this table in the output transport stream. Valid values are 0, 10..1000.

                - **PcrControl** *(string) --* When set to pcrEveryPesPacket, a Program Clock
                Reference value is inserted for every Packetized Elementary Stream (PES) header.
                This parameter is effective only when the PCR PID is the same as the video or audio
                elementary stream.

                - **PcrPeriod** *(integer) --* Maximum time in milliseconds between Program Clock
                Reference (PCRs) inserted into the transport stream.

                - **PcrPid** *(string) --* Packet Identifier (PID) of the Program Clock Reference
                (PCR) in the transport stream. When no value is given, the encoder will assign the
                same value as the Video PID. Can be entered as a decimal or hexadecimal value. Valid
                values are 32 (or 0x20)..8182 (or 0x1ff6).

                - **PmtInterval** *(integer) --* The number of milliseconds between instances of
                this table in the output transport stream. Valid values are 0, 10..1000.

                - **PmtPid** *(string) --* Packet Identifier (PID) for the Program Map Table (PMT)
                in the transport stream. Can be entered as a decimal or hexadecimal value. Valid
                values are 32 (or 0x20)..8182 (or 0x1ff6).

                - **ProgramNum** *(integer) --* The value of the program number field in the Program
                Map Table.

                - **RateMode** *(string) --* When vbr, does not insert null packets into transport
                stream to fill specified bitrate. The bitrate setting acts as the maximum bitrate
                when vbr is set.

                - **Scte27Pids** *(string) --* Packet Identifier (PID) for input source SCTE-27 data
                to this output. Multiple values are accepted, and can be entered in ranges and/or by
                comma separation. Can be entered as decimal or hexadecimal values. Each PID
                specified must be in the range of 32 (or 0x20)..8182 (or 0x1ff6).

                - **Scte35Control** *(string) --* Optionally pass SCTE-35 signals from the input
                source to this output.

                - **Scte35Pid** *(string) --* Packet Identifier (PID) of the SCTE-35 stream in the
                transport stream. Can be entered as a decimal or hexadecimal value. Valid values are
                32 (or 0x20)..8182 (or 0x1ff6).

                - **SegmentationMarkers** *(string) --* Inserts segmentation markers at each
                segmentationTime period. raiSegstart sets the Random Access Indicator bit in the
                adaptation field. raiAdapt sets the RAI bit and adds the current timecode in the
                private data bytes. psiSegstart inserts PAT and PMT tables at the start of segments.
                ebp adds Encoder Boundary Point information to the adaptation field as per OpenCable
                specification OC-SP-EBP-I01-130118. ebpLegacy adds Encoder Boundary Point
                information to the adaptation field using a legacy proprietary format.

                - **SegmentationStyle** *(string) --* The segmentation style parameter controls how
                segmentation markers are inserted into the transport stream. With avails, it is
                possible that segments may be truncated, which can influence where future
                segmentation markers are inserted. When a segmentation style of "resetCadence" is
                selected and a segment is truncated due to an avail, we will reset the segmentation
                cadence. This means the subsequent segment will have a duration of $segmentationTime
                seconds. When a segmentation style of "maintainCadence" is selected and a segment is
                truncated due to an avail, we will not reset the segmentation cadence. This means
                the subsequent segment will likely be truncated as well. However, all segments after
                that will have a duration of $segmentationTime seconds. Note that EBP lookahead is a
                slight exception to this rule.

                - **SegmentationTime** *(float) --* The length in seconds of each segment. Required
                unless markers is set to None_.

                - **TimedMetadataBehavior** *(string) --* When set to passthrough, timed metadata
                will be passed through from input to output.

                - **TimedMetadataPid** *(string) --* Packet Identifier (PID) of the timed metadata
                stream in the transport stream. Can be entered as a decimal or hexadecimal value.
                Valid values are 32 (or 0x20)..8182 (or 0x1ff6).

                - **TransportStreamId** *(integer) --* The value of the transport stream ID field in
                the Program Map Table.

                - **VideoPid** *(string) --* Packet Identifier (PID) of the elementary video stream
                in the transport stream. Can be entered as a decimal or hexadecimal value. Valid
                values are 32 (or 0x20)..8182 (or 0x1ff6).

            - **Destination** *(dict) --* Destination address and port number for RTP or UDP
            packets. Can be unicast or multicast RTP or UDP (eg. rtp://239.10.10.10:5001 or
            udp://10.100.100.100:5002).

              - **DestinationRefId** *(string) --* Placeholder documentation for __string

            - **FecOutputSettings** *(dict) --* Settings for enabling and adjusting Forward Error
            Correction on UDP outputs.

              - **ColumnDepth** *(integer) --* Parameter D from SMPTE 2022-1. The height of the FEC
              protection matrix. The number of transport stream packets per column error correction
              packet. Must be between 4 and 20, inclusive.

              - **IncludeFec** *(string) --* Enables column only or column and row based FEC

              - **RowLength** *(integer) --* Parameter L from SMPTE 2022-1. The width of the FEC
              protection matrix. Must be between 1 and 20, inclusive. If only Column FEC is used,
              then larger values increase robustness. If Row FEC is used, then this is the number of
              transport stream packets per row error correction packet, and the value must be
              between 4 and 20, inclusive, if includeFec is columnAndRow. If includeFec is column,
              this value must be 1 to 20, inclusive.

        - **VideoDescriptionName** *(string) --* The name of the VideoDescription used as the source
        for this output.
    """


_ClientStartChannelResponseEncoderSettingsTimecodeConfigTypeDef = TypedDict(
    "_ClientStartChannelResponseEncoderSettingsTimecodeConfigTypeDef",
    {"Source": str, "SyncThreshold": int},
    total=False,
)


class ClientStartChannelResponseEncoderSettingsTimecodeConfigTypeDef(
    _ClientStartChannelResponseEncoderSettingsTimecodeConfigTypeDef
):
    """
    Type definition for `ClientStartChannelResponseEncoderSettings` `TimecodeConfig`

    - **Source** *(string) --* Identifies the source for the timecode that will be associated with
    the events outputs. -Embedded (embedded): Initialize the output timecode with timecode from the
    the source. If no embedded timecode is detected in the source, the system falls back to using
    "Start at 0" (zerobased). -System Clock (systemclock): Use the UTC time. -Start at 0
    (zerobased): The time of the first frame of the event will be 00:00:00:00.

    - **SyncThreshold** *(integer) --* Threshold in frames beyond which output timecode is
    resynchronized to the input timecode. Discrepancies below this threshold are permitted to avoid
    unnecessary discontinuities in the output timecode. No timecode sync when this is not specified.
    """


_ClientStartChannelResponseEncoderSettingsVideoDescriptionsCodecSettingsFrameCaptureSettingsTypeDef = TypedDict(
    "_ClientStartChannelResponseEncoderSettingsVideoDescriptionsCodecSettingsFrameCaptureSettingsTypeDef",
    {"CaptureInterval": int},
    total=False,
)


class ClientStartChannelResponseEncoderSettingsVideoDescriptionsCodecSettingsFrameCaptureSettingsTypeDef(
    _ClientStartChannelResponseEncoderSettingsVideoDescriptionsCodecSettingsFrameCaptureSettingsTypeDef
):
    """
    Type definition for `ClientStartChannelResponseEncoderSettingsVideoDescriptionsCodecSettings`
    `FrameCaptureSettings`

    - **CaptureInterval** *(integer) --* The frequency at which to capture frames for inclusion in
    the output. May be specified in either seconds or milliseconds, as specified by
    captureIntervalUnits.
    """


_ClientStartChannelResponseEncoderSettingsVideoDescriptionsCodecSettingsH264SettingsColorSpaceSettingsTypeDef = TypedDict(
    "_ClientStartChannelResponseEncoderSettingsVideoDescriptionsCodecSettingsH264SettingsColorSpaceSettingsTypeDef",
    {
        "ColorSpacePassthroughSettings": Dict,
        "Rec601Settings": Dict,
        "Rec709Settings": Dict[str, Any],
    },
    total=False,
)


class ClientStartChannelResponseEncoderSettingsVideoDescriptionsCodecSettingsH264SettingsColorSpaceSettingsTypeDef(
    _ClientStartChannelResponseEncoderSettingsVideoDescriptionsCodecSettingsH264SettingsColorSpaceSettingsTypeDef
):
    """
    Type definition for
    `ClientStartChannelResponseEncoderSettingsVideoDescriptionsCodecSettingsH264Settings`
    `ColorSpaceSettings`

    - **ColorSpacePassthroughSettings** *(dict) --* Passthrough applies no color space conversion to
    the output

    - **Rec601Settings** *(dict) --* Rec601 Settings

    - **Rec709Settings** *(dict) --* Rec709 Settings
    """


_ClientStartChannelResponseEncoderSettingsVideoDescriptionsCodecSettingsH264SettingsTypeDef = TypedDict(
    "_ClientStartChannelResponseEncoderSettingsVideoDescriptionsCodecSettingsH264SettingsTypeDef",
    {
        "AdaptiveQuantization": str,
        "AfdSignaling": str,
        "Bitrate": int,
        "BufFillPct": int,
        "BufSize": int,
        "ColorMetadata": str,
        "ColorSpaceSettings": ClientStartChannelResponseEncoderSettingsVideoDescriptionsCodecSettingsH264SettingsColorSpaceSettingsTypeDef,
        "EntropyEncoding": str,
        "FixedAfd": str,
        "FlickerAq": str,
        "FramerateControl": str,
        "FramerateDenominator": int,
        "FramerateNumerator": int,
        "GopBReference": str,
        "GopClosedCadence": int,
        "GopNumBFrames": int,
        "GopSize": float,
        "GopSizeUnits": str,
        "Level": str,
        "LookAheadRateControl": str,
        "MaxBitrate": int,
        "MinIInterval": int,
        "NumRefFrames": int,
        "ParControl": str,
        "ParDenominator": int,
        "ParNumerator": int,
        "Profile": str,
        "QvbrQualityLevel": int,
        "RateControlMode": str,
        "ScanType": str,
        "SceneChangeDetect": str,
        "Slices": int,
        "Softness": int,
        "SpatialAq": str,
        "SubgopLength": str,
        "Syntax": str,
        "TemporalAq": str,
        "TimecodeInsertion": str,
    },
    total=False,
)


class ClientStartChannelResponseEncoderSettingsVideoDescriptionsCodecSettingsH264SettingsTypeDef(
    _ClientStartChannelResponseEncoderSettingsVideoDescriptionsCodecSettingsH264SettingsTypeDef
):
    """
    Type definition for `ClientStartChannelResponseEncoderSettingsVideoDescriptionsCodecSettings`
    `H264Settings`

    - **AdaptiveQuantization** *(string) --* Adaptive quantization. Allows intra-frame quantizers to
    vary to improve visual quality.

    - **AfdSignaling** *(string) --* Indicates that AFD values will be written into the output
    stream. If afdSignaling is "auto", the system will try to preserve the input AFD value (in cases
    where multiple AFD values are valid). If set to "fixed", the AFD value will be the value
    configured in the fixedAfd parameter.

    - **Bitrate** *(integer) --* Average bitrate in bits/second. Required when the rate control mode
    is VBR or CBR. Not used for QVBR. In an MS Smooth output group, each output must have a unique
    value when its bitrate is rounded down to the nearest multiple of 1000.

    - **BufFillPct** *(integer) --* Percentage of the buffer that should initially be filled (HRD
    buffer model).

    - **BufSize** *(integer) --* Size of buffer (HRD buffer model) in bits.

    - **ColorMetadata** *(string) --* Includes colorspace metadata in the output.

    - **ColorSpaceSettings** *(dict) --* Color Space settings

      - **ColorSpacePassthroughSettings** *(dict) --* Passthrough applies no color space conversion
      to the output

      - **Rec601Settings** *(dict) --* Rec601 Settings

      - **Rec709Settings** *(dict) --* Rec709 Settings

    - **EntropyEncoding** *(string) --* Entropy encoding mode. Use cabac (must be in Main or High
    profile) or cavlc.

    - **FixedAfd** *(string) --* Four bit AFD value to write on all frames of video in the output
    stream. Only valid when afdSignaling is set to 'Fixed'.

    - **FlickerAq** *(string) --* If set to enabled, adjust quantization within each frame to reduce
    flicker or 'pop' on I-frames.

    - **FramerateControl** *(string) --* This field indicates how the output video frame rate is
    specified. If "specified" is selected then the output video frame rate is determined by
    framerateNumerator and framerateDenominator, else if "initializeFromSource" is selected then the
    output video frame rate will be set equal to the input video frame rate of the first input.

    - **FramerateDenominator** *(integer) --* Framerate denominator.

    - **FramerateNumerator** *(integer) --* Framerate numerator - framerate is a fraction, e.g.
    24000 / 1001 = 23.976 fps.

    - **GopBReference** *(string) --* Documentation update needed

    - **GopClosedCadence** *(integer) --* Frequency of closed GOPs. In streaming applications, it is
    recommended that this be set to 1 so a decoder joining mid-stream will receive an IDR frame as
    quickly as possible. Setting this value to 0 will break output segmenting.

    - **GopNumBFrames** *(integer) --* Number of B-frames between reference frames.

    - **GopSize** *(float) --* GOP size (keyframe interval) in units of either frames or seconds per
    gopSizeUnits. If gopSizeUnits is frames, gopSize must be an integer and must be greater than or
    equal to 1. If gopSizeUnits is seconds, gopSize must be greater than 0, but need not be an
    integer.

    - **GopSizeUnits** *(string) --* Indicates if the gopSize is specified in frames or seconds. If
    seconds the system will convert the gopSize into a frame count at run time.

    - **Level** *(string) --* H.264 Level.

    - **LookAheadRateControl** *(string) --* Amount of lookahead. A value of low can decrease
    latency and memory usage, while high can produce better quality for certain content.

    - **MaxBitrate** *(integer) --* For QVBR: See the tooltip for Quality level For VBR: Set the
    maximum bitrate in order to accommodate expected spikes in the complexity of the video.

    - **MinIInterval** *(integer) --* Only meaningful if sceneChangeDetect is set to enabled.
    Defaults to 5 if multiplex rate control is used. Enforces separation between repeated (cadence)
    I-frames and I-frames inserted by Scene Change Detection. If a scene change I-frame is within
    I-interval frames of a cadence I-frame, the GOP is shrunk and/or stretched to the scene change
    I-frame. GOP stretch requires enabling lookahead as well as setting I-interval. The normal
    cadence resumes for the next GOP. Note: Maximum GOP stretch = GOP size + Min-I-interval - 1

    - **NumRefFrames** *(integer) --* Number of reference frames to use. The encoder may use more
    than requested if using B-frames and/or interlaced encoding.

    - **ParControl** *(string) --* This field indicates how the output pixel aspect ratio is
    specified. If "specified" is selected then the output video pixel aspect ratio is determined by
    parNumerator and parDenominator, else if "initializeFromSource" is selected then the output
    pixsel aspect ratio will be set equal to the input video pixel aspect ratio of the first input.

    - **ParDenominator** *(integer) --* Pixel Aspect Ratio denominator.

    - **ParNumerator** *(integer) --* Pixel Aspect Ratio numerator.

    - **Profile** *(string) --* H.264 Profile.

    - **QvbrQualityLevel** *(integer) --* Controls the target quality for the video encode. Applies
    only when the rate control mode is QVBR. Set values for the QVBR quality level field and Max
    bitrate field that suit your most important viewing devices. Recommended values are: - Primary
    screen: Quality level: 8 to 10. Max bitrate: 4M - PC or tablet: Quality level: 7. Max bitrate:
    1.5M to 3M - Smartphone: Quality level: 6. Max bitrate: 1M to 1.5M

    - **RateControlMode** *(string) --* Rate control mode. QVBR: Quality will match the specified
    quality level except when it is constrained by the maximum bitrate. Recommended if you or your
    viewers pay for bandwidth. VBR: Quality and bitrate vary, depending on the video complexity.
    Recommended instead of QVBR if you want to maintain a specific average bitrate over the duration
    of the channel. CBR: Quality varies, depending on the video complexity. Recommended only if you
    distribute your assets to devices that cannot handle variable bitrates.

    - **ScanType** *(string) --* Sets the scan type of the output to progressive or top-field-first
    interlaced.

    - **SceneChangeDetect** *(string) --* Scene change detection. - On: inserts I-frames when scene
    change is detected. - Off: does not force an I-frame when scene change is detected.

    - **Slices** *(integer) --* Number of slices per picture. Must be less than or equal to the
    number of macroblock rows for progressive pictures, and less than or equal to half the number of
    macroblock rows for interlaced pictures. This field is optional; when no value is specified the
    encoder will choose the number of slices based on encode resolution.

    - **Softness** *(integer) --* Softness. Selects quantizer matrix, larger values reduce
    high-frequency content in the encoded image.

    - **SpatialAq** *(string) --* If set to enabled, adjust quantization within each frame based on
    spatial variation of content complexity.

    - **SubgopLength** *(string) --* If set to fixed, use gopNumBFrames B-frames per sub-GOP. If set
    to dynamic, optimize the number of B-frames used for each sub-GOP to improve visual quality.

    - **Syntax** *(string) --* Produces a bitstream compliant with SMPTE RP-2027.

    - **TemporalAq** *(string) --* If set to enabled, adjust quantization within each frame based on
    temporal variation of content complexity.

    - **TimecodeInsertion** *(string) --* Determines how timecodes should be inserted into the video
    elementary stream. - 'disabled': Do not include timecodes - 'picTimingSei': Pass through picture
    timing SEI messages from the source specified in Timecode Config
    """


_ClientStartChannelResponseEncoderSettingsVideoDescriptionsCodecSettingsH265SettingsColorSpaceSettingsHdr10SettingsTypeDef = TypedDict(
    "_ClientStartChannelResponseEncoderSettingsVideoDescriptionsCodecSettingsH265SettingsColorSpaceSettingsHdr10SettingsTypeDef",
    {"MaxCll": int, "MaxFall": int},
    total=False,
)


class ClientStartChannelResponseEncoderSettingsVideoDescriptionsCodecSettingsH265SettingsColorSpaceSettingsHdr10SettingsTypeDef(
    _ClientStartChannelResponseEncoderSettingsVideoDescriptionsCodecSettingsH265SettingsColorSpaceSettingsHdr10SettingsTypeDef
):
    """
    Type definition for
    `ClientStartChannelResponseEncoderSettingsVideoDescriptionsCodecSettingsH265SettingsColorSpaceSettings`
    `Hdr10Settings`

    - **MaxCll** *(integer) --* Maximum Content Light Level An integer metadata value defining the
    maximum light level, in nits, of any single pixel within an encoded HDR video stream or file.

    - **MaxFall** *(integer) --* Maximum Frame Average Light Level An integer metadata value
    defining the maximum average light level, in nits, for any single frame within an encoded HDR
    video stream or file.
    """


_ClientStartChannelResponseEncoderSettingsVideoDescriptionsCodecSettingsH265SettingsColorSpaceSettingsTypeDef = TypedDict(
    "_ClientStartChannelResponseEncoderSettingsVideoDescriptionsCodecSettingsH265SettingsColorSpaceSettingsTypeDef",
    {
        "ColorSpacePassthroughSettings": Dict,
        "Hdr10Settings": ClientStartChannelResponseEncoderSettingsVideoDescriptionsCodecSettingsH265SettingsColorSpaceSettingsHdr10SettingsTypeDef,
        "Rec601Settings": Dict,
        "Rec709Settings": Dict[str, Any],
    },
    total=False,
)


class ClientStartChannelResponseEncoderSettingsVideoDescriptionsCodecSettingsH265SettingsColorSpaceSettingsTypeDef(
    _ClientStartChannelResponseEncoderSettingsVideoDescriptionsCodecSettingsH265SettingsColorSpaceSettingsTypeDef
):
    """
    Type definition for
    `ClientStartChannelResponseEncoderSettingsVideoDescriptionsCodecSettingsH265Settings`
    `ColorSpaceSettings`

    - **ColorSpacePassthroughSettings** *(dict) --* Passthrough applies no color space conversion to
    the output

    - **Hdr10Settings** *(dict) --* Hdr10 Settings

      - **MaxCll** *(integer) --* Maximum Content Light Level An integer metadata value defining the
      maximum light level, in nits, of any single pixel within an encoded HDR video stream or file.

      - **MaxFall** *(integer) --* Maximum Frame Average Light Level An integer metadata value
      defining the maximum average light level, in nits, for any single frame within an encoded HDR
      video stream or file.

    - **Rec601Settings** *(dict) --* Rec601 Settings

    - **Rec709Settings** *(dict) --* Rec709 Settings
    """


_ClientStartChannelResponseEncoderSettingsVideoDescriptionsCodecSettingsH265SettingsTypeDef = TypedDict(
    "_ClientStartChannelResponseEncoderSettingsVideoDescriptionsCodecSettingsH265SettingsTypeDef",
    {
        "AdaptiveQuantization": str,
        "AfdSignaling": str,
        "AlternativeTransferFunction": str,
        "Bitrate": int,
        "BufSize": int,
        "ColorMetadata": str,
        "ColorSpaceSettings": ClientStartChannelResponseEncoderSettingsVideoDescriptionsCodecSettingsH265SettingsColorSpaceSettingsTypeDef,
        "FixedAfd": str,
        "FlickerAq": str,
        "FramerateDenominator": int,
        "FramerateNumerator": int,
        "GopClosedCadence": int,
        "GopSize": float,
        "GopSizeUnits": str,
        "Level": str,
        "LookAheadRateControl": str,
        "MaxBitrate": int,
        "MinIInterval": int,
        "ParDenominator": int,
        "ParNumerator": int,
        "Profile": str,
        "QvbrQualityLevel": int,
        "RateControlMode": str,
        "ScanType": str,
        "SceneChangeDetect": str,
        "Slices": int,
        "Tier": str,
        "TimecodeInsertion": str,
    },
    total=False,
)


class ClientStartChannelResponseEncoderSettingsVideoDescriptionsCodecSettingsH265SettingsTypeDef(
    _ClientStartChannelResponseEncoderSettingsVideoDescriptionsCodecSettingsH265SettingsTypeDef
):
    """
    Type definition for `ClientStartChannelResponseEncoderSettingsVideoDescriptionsCodecSettings`
    `H265Settings`

    - **AdaptiveQuantization** *(string) --* Adaptive quantization. Allows intra-frame quantizers to
    vary to improve visual quality.

    - **AfdSignaling** *(string) --* Indicates that AFD values will be written into the output
    stream. If afdSignaling is "auto", the system will try to preserve the input AFD value (in cases
    where multiple AFD values are valid). If set to "fixed", the AFD value will be the value
    configured in the fixedAfd parameter.

    - **AlternativeTransferFunction** *(string) --* Whether or not EML should insert an Alternative
    Transfer Function SEI message to support backwards compatibility with non-HDR decoders and
    displays.

    - **Bitrate** *(integer) --* Average bitrate in bits/second. Required when the rate control mode
    is VBR or CBR. Not used for QVBR. In an MS Smooth output group, each output must have a unique
    value when its bitrate is rounded down to the nearest multiple of 1000.

    - **BufSize** *(integer) --* Size of buffer (HRD buffer model) in bits.

    - **ColorMetadata** *(string) --* Includes colorspace metadata in the output.

    - **ColorSpaceSettings** *(dict) --* Color Space settings

      - **ColorSpacePassthroughSettings** *(dict) --* Passthrough applies no color space conversion
      to the output

      - **Hdr10Settings** *(dict) --* Hdr10 Settings

        - **MaxCll** *(integer) --* Maximum Content Light Level An integer metadata value defining
        the maximum light level, in nits, of any single pixel within an encoded HDR video stream or
        file.

        - **MaxFall** *(integer) --* Maximum Frame Average Light Level An integer metadata value
        defining the maximum average light level, in nits, for any single frame within an encoded
        HDR video stream or file.

      - **Rec601Settings** *(dict) --* Rec601 Settings

      - **Rec709Settings** *(dict) --* Rec709 Settings

    - **FixedAfd** *(string) --* Four bit AFD value to write on all frames of video in the output
    stream. Only valid when afdSignaling is set to 'Fixed'.

    - **FlickerAq** *(string) --* If set to enabled, adjust quantization within each frame to reduce
    flicker or 'pop' on I-frames.

    - **FramerateDenominator** *(integer) --* Framerate denominator.

    - **FramerateNumerator** *(integer) --* Framerate numerator - framerate is a fraction, e.g.
    24000 / 1001 = 23.976 fps.

    - **GopClosedCadence** *(integer) --* Frequency of closed GOPs. In streaming applications, it is
    recommended that this be set to 1 so a decoder joining mid-stream will receive an IDR frame as
    quickly as possible. Setting this value to 0 will break output segmenting.

    - **GopSize** *(float) --* GOP size (keyframe interval) in units of either frames or seconds per
    gopSizeUnits. If gopSizeUnits is frames, gopSize must be an integer and must be greater than or
    equal to 1. If gopSizeUnits is seconds, gopSize must be greater than 0, but need not be an
    integer.

    - **GopSizeUnits** *(string) --* Indicates if the gopSize is specified in frames or seconds. If
    seconds the system will convert the gopSize into a frame count at run time.

    - **Level** *(string) --* H.265 Level.

    - **LookAheadRateControl** *(string) --* Amount of lookahead. A value of low can decrease
    latency and memory usage, while high can produce better quality for certain content.

    - **MaxBitrate** *(integer) --* For QVBR: See the tooltip for Quality level

    - **MinIInterval** *(integer) --* Only meaningful if sceneChangeDetect is set to enabled.
    Defaults to 5 if multiplex rate control is used. Enforces separation between repeated (cadence)
    I-frames and I-frames inserted by Scene Change Detection. If a scene change I-frame is within
    I-interval frames of a cadence I-frame, the GOP is shrunk and/or stretched to the scene change
    I-frame. GOP stretch requires enabling lookahead as well as setting I-interval. The normal
    cadence resumes for the next GOP. Note: Maximum GOP stretch = GOP size + Min-I-interval - 1

    - **ParDenominator** *(integer) --* Pixel Aspect Ratio denominator.

    - **ParNumerator** *(integer) --* Pixel Aspect Ratio numerator.

    - **Profile** *(string) --* H.265 Profile.

    - **QvbrQualityLevel** *(integer) --* Controls the target quality for the video encode. Applies
    only when the rate control mode is QVBR. Set values for the QVBR quality level field and Max
    bitrate field that suit your most important viewing devices. Recommended values are: - Primary
    screen: Quality level: 8 to 10. Max bitrate: 4M - PC or tablet: Quality level: 7. Max bitrate:
    1.5M to 3M - Smartphone: Quality level: 6. Max bitrate: 1M to 1.5M

    - **RateControlMode** *(string) --* Rate control mode. QVBR: Quality will match the specified
    quality level except when it is constrained by the maximum bitrate. Recommended if you or your
    viewers pay for bandwidth. CBR: Quality varies, depending on the video complexity. Recommended
    only if you distribute your assets to devices that cannot handle variable bitrates.

    - **ScanType** *(string) --* Sets the scan type of the output to progressive or top-field-first
    interlaced.

    - **SceneChangeDetect** *(string) --* Scene change detection.

    - **Slices** *(integer) --* Number of slices per picture. Must be less than or equal to the
    number of macroblock rows for progressive pictures, and less than or equal to half the number of
    macroblock rows for interlaced pictures. This field is optional; when no value is specified the
    encoder will choose the number of slices based on encode resolution.

    - **Tier** *(string) --* H.265 Tier.

    - **TimecodeInsertion** *(string) --* Determines how timecodes should be inserted into the video
    elementary stream. - 'disabled': Do not include timecodes - 'picTimingSei': Pass through picture
    timing SEI messages from the source specified in Timecode Config
    """


_ClientStartChannelResponseEncoderSettingsVideoDescriptionsCodecSettingsTypeDef = TypedDict(
    "_ClientStartChannelResponseEncoderSettingsVideoDescriptionsCodecSettingsTypeDef",
    {
        "FrameCaptureSettings": ClientStartChannelResponseEncoderSettingsVideoDescriptionsCodecSettingsFrameCaptureSettingsTypeDef,
        "H264Settings": ClientStartChannelResponseEncoderSettingsVideoDescriptionsCodecSettingsH264SettingsTypeDef,
        "H265Settings": ClientStartChannelResponseEncoderSettingsVideoDescriptionsCodecSettingsH265SettingsTypeDef,
    },
    total=False,
)


class ClientStartChannelResponseEncoderSettingsVideoDescriptionsCodecSettingsTypeDef(
    _ClientStartChannelResponseEncoderSettingsVideoDescriptionsCodecSettingsTypeDef
):
    """
    Type definition for `ClientStartChannelResponseEncoderSettingsVideoDescriptions` `CodecSettings`

    - **FrameCaptureSettings** *(dict) --* Frame Capture Settings

      - **CaptureInterval** *(integer) --* The frequency at which to capture frames for inclusion in
      the output. May be specified in either seconds or milliseconds, as specified by
      captureIntervalUnits.

    - **H264Settings** *(dict) --* H264 Settings

      - **AdaptiveQuantization** *(string) --* Adaptive quantization. Allows intra-frame quantizers
      to vary to improve visual quality.

      - **AfdSignaling** *(string) --* Indicates that AFD values will be written into the output
      stream. If afdSignaling is "auto", the system will try to preserve the input AFD value (in
      cases where multiple AFD values are valid). If set to "fixed", the AFD value will be the value
      configured in the fixedAfd parameter.

      - **Bitrate** *(integer) --* Average bitrate in bits/second. Required when the rate control
      mode is VBR or CBR. Not used for QVBR. In an MS Smooth output group, each output must have a
      unique value when its bitrate is rounded down to the nearest multiple of 1000.

      - **BufFillPct** *(integer) --* Percentage of the buffer that should initially be filled (HRD
      buffer model).

      - **BufSize** *(integer) --* Size of buffer (HRD buffer model) in bits.

      - **ColorMetadata** *(string) --* Includes colorspace metadata in the output.

      - **ColorSpaceSettings** *(dict) --* Color Space settings

        - **ColorSpacePassthroughSettings** *(dict) --* Passthrough applies no color space
        conversion to the output

        - **Rec601Settings** *(dict) --* Rec601 Settings

        - **Rec709Settings** *(dict) --* Rec709 Settings

      - **EntropyEncoding** *(string) --* Entropy encoding mode. Use cabac (must be in Main or High
      profile) or cavlc.

      - **FixedAfd** *(string) --* Four bit AFD value to write on all frames of video in the output
      stream. Only valid when afdSignaling is set to 'Fixed'.

      - **FlickerAq** *(string) --* If set to enabled, adjust quantization within each frame to
      reduce flicker or 'pop' on I-frames.

      - **FramerateControl** *(string) --* This field indicates how the output video frame rate is
      specified. If "specified" is selected then the output video frame rate is determined by
      framerateNumerator and framerateDenominator, else if "initializeFromSource" is selected then
      the output video frame rate will be set equal to the input video frame rate of the first
      input.

      - **FramerateDenominator** *(integer) --* Framerate denominator.

      - **FramerateNumerator** *(integer) --* Framerate numerator - framerate is a fraction, e.g.
      24000 / 1001 = 23.976 fps.

      - **GopBReference** *(string) --* Documentation update needed

      - **GopClosedCadence** *(integer) --* Frequency of closed GOPs. In streaming applications, it
      is recommended that this be set to 1 so a decoder joining mid-stream will receive an IDR frame
      as quickly as possible. Setting this value to 0 will break output segmenting.

      - **GopNumBFrames** *(integer) --* Number of B-frames between reference frames.

      - **GopSize** *(float) --* GOP size (keyframe interval) in units of either frames or seconds
      per gopSizeUnits. If gopSizeUnits is frames, gopSize must be an integer and must be greater
      than or equal to 1. If gopSizeUnits is seconds, gopSize must be greater than 0, but need not
      be an integer.

      - **GopSizeUnits** *(string) --* Indicates if the gopSize is specified in frames or seconds.
      If seconds the system will convert the gopSize into a frame count at run time.

      - **Level** *(string) --* H.264 Level.

      - **LookAheadRateControl** *(string) --* Amount of lookahead. A value of low can decrease
      latency and memory usage, while high can produce better quality for certain content.

      - **MaxBitrate** *(integer) --* For QVBR: See the tooltip for Quality level For VBR: Set the
      maximum bitrate in order to accommodate expected spikes in the complexity of the video.

      - **MinIInterval** *(integer) --* Only meaningful if sceneChangeDetect is set to enabled.
      Defaults to 5 if multiplex rate control is used. Enforces separation between repeated
      (cadence) I-frames and I-frames inserted by Scene Change Detection. If a scene change I-frame
      is within I-interval frames of a cadence I-frame, the GOP is shrunk and/or stretched to the
      scene change I-frame. GOP stretch requires enabling lookahead as well as setting I-interval.
      The normal cadence resumes for the next GOP. Note: Maximum GOP stretch = GOP size +
      Min-I-interval - 1

      - **NumRefFrames** *(integer) --* Number of reference frames to use. The encoder may use more
      than requested if using B-frames and/or interlaced encoding.

      - **ParControl** *(string) --* This field indicates how the output pixel aspect ratio is
      specified. If "specified" is selected then the output video pixel aspect ratio is determined
      by parNumerator and parDenominator, else if "initializeFromSource" is selected then the output
      pixsel aspect ratio will be set equal to the input video pixel aspect ratio of the first
      input.

      - **ParDenominator** *(integer) --* Pixel Aspect Ratio denominator.

      - **ParNumerator** *(integer) --* Pixel Aspect Ratio numerator.

      - **Profile** *(string) --* H.264 Profile.

      - **QvbrQualityLevel** *(integer) --* Controls the target quality for the video encode.
      Applies only when the rate control mode is QVBR. Set values for the QVBR quality level field
      and Max bitrate field that suit your most important viewing devices. Recommended values are: -
      Primary screen: Quality level: 8 to 10. Max bitrate: 4M - PC or tablet: Quality level: 7. Max
      bitrate: 1.5M to 3M - Smartphone: Quality level: 6. Max bitrate: 1M to 1.5M

      - **RateControlMode** *(string) --* Rate control mode. QVBR: Quality will match the specified
      quality level except when it is constrained by the maximum bitrate. Recommended if you or your
      viewers pay for bandwidth. VBR: Quality and bitrate vary, depending on the video complexity.
      Recommended instead of QVBR if you want to maintain a specific average bitrate over the
      duration of the channel. CBR: Quality varies, depending on the video complexity. Recommended
      only if you distribute your assets to devices that cannot handle variable bitrates.

      - **ScanType** *(string) --* Sets the scan type of the output to progressive or
      top-field-first interlaced.

      - **SceneChangeDetect** *(string) --* Scene change detection. - On: inserts I-frames when
      scene change is detected. - Off: does not force an I-frame when scene change is detected.

      - **Slices** *(integer) --* Number of slices per picture. Must be less than or equal to the
      number of macroblock rows for progressive pictures, and less than or equal to half the number
      of macroblock rows for interlaced pictures. This field is optional; when no value is specified
      the encoder will choose the number of slices based on encode resolution.

      - **Softness** *(integer) --* Softness. Selects quantizer matrix, larger values reduce
      high-frequency content in the encoded image.

      - **SpatialAq** *(string) --* If set to enabled, adjust quantization within each frame based
      on spatial variation of content complexity.

      - **SubgopLength** *(string) --* If set to fixed, use gopNumBFrames B-frames per sub-GOP. If
      set to dynamic, optimize the number of B-frames used for each sub-GOP to improve visual
      quality.

      - **Syntax** *(string) --* Produces a bitstream compliant with SMPTE RP-2027.

      - **TemporalAq** *(string) --* If set to enabled, adjust quantization within each frame based
      on temporal variation of content complexity.

      - **TimecodeInsertion** *(string) --* Determines how timecodes should be inserted into the
      video elementary stream. - 'disabled': Do not include timecodes - 'picTimingSei': Pass through
      picture timing SEI messages from the source specified in Timecode Config

    - **H265Settings** *(dict) --* H265 Settings

      - **AdaptiveQuantization** *(string) --* Adaptive quantization. Allows intra-frame quantizers
      to vary to improve visual quality.

      - **AfdSignaling** *(string) --* Indicates that AFD values will be written into the output
      stream. If afdSignaling is "auto", the system will try to preserve the input AFD value (in
      cases where multiple AFD values are valid). If set to "fixed", the AFD value will be the value
      configured in the fixedAfd parameter.

      - **AlternativeTransferFunction** *(string) --* Whether or not EML should insert an
      Alternative Transfer Function SEI message to support backwards compatibility with non-HDR
      decoders and displays.

      - **Bitrate** *(integer) --* Average bitrate in bits/second. Required when the rate control
      mode is VBR or CBR. Not used for QVBR. In an MS Smooth output group, each output must have a
      unique value when its bitrate is rounded down to the nearest multiple of 1000.

      - **BufSize** *(integer) --* Size of buffer (HRD buffer model) in bits.

      - **ColorMetadata** *(string) --* Includes colorspace metadata in the output.

      - **ColorSpaceSettings** *(dict) --* Color Space settings

        - **ColorSpacePassthroughSettings** *(dict) --* Passthrough applies no color space
        conversion to the output

        - **Hdr10Settings** *(dict) --* Hdr10 Settings

          - **MaxCll** *(integer) --* Maximum Content Light Level An integer metadata value defining
          the maximum light level, in nits, of any single pixel within an encoded HDR video stream
          or file.

          - **MaxFall** *(integer) --* Maximum Frame Average Light Level An integer metadata value
          defining the maximum average light level, in nits, for any single frame within an encoded
          HDR video stream or file.

        - **Rec601Settings** *(dict) --* Rec601 Settings

        - **Rec709Settings** *(dict) --* Rec709 Settings

      - **FixedAfd** *(string) --* Four bit AFD value to write on all frames of video in the output
      stream. Only valid when afdSignaling is set to 'Fixed'.

      - **FlickerAq** *(string) --* If set to enabled, adjust quantization within each frame to
      reduce flicker or 'pop' on I-frames.

      - **FramerateDenominator** *(integer) --* Framerate denominator.

      - **FramerateNumerator** *(integer) --* Framerate numerator - framerate is a fraction, e.g.
      24000 / 1001 = 23.976 fps.

      - **GopClosedCadence** *(integer) --* Frequency of closed GOPs. In streaming applications, it
      is recommended that this be set to 1 so a decoder joining mid-stream will receive an IDR frame
      as quickly as possible. Setting this value to 0 will break output segmenting.

      - **GopSize** *(float) --* GOP size (keyframe interval) in units of either frames or seconds
      per gopSizeUnits. If gopSizeUnits is frames, gopSize must be an integer and must be greater
      than or equal to 1. If gopSizeUnits is seconds, gopSize must be greater than 0, but need not
      be an integer.

      - **GopSizeUnits** *(string) --* Indicates if the gopSize is specified in frames or seconds.
      If seconds the system will convert the gopSize into a frame count at run time.

      - **Level** *(string) --* H.265 Level.

      - **LookAheadRateControl** *(string) --* Amount of lookahead. A value of low can decrease
      latency and memory usage, while high can produce better quality for certain content.

      - **MaxBitrate** *(integer) --* For QVBR: See the tooltip for Quality level

      - **MinIInterval** *(integer) --* Only meaningful if sceneChangeDetect is set to enabled.
      Defaults to 5 if multiplex rate control is used. Enforces separation between repeated
      (cadence) I-frames and I-frames inserted by Scene Change Detection. If a scene change I-frame
      is within I-interval frames of a cadence I-frame, the GOP is shrunk and/or stretched to the
      scene change I-frame. GOP stretch requires enabling lookahead as well as setting I-interval.
      The normal cadence resumes for the next GOP. Note: Maximum GOP stretch = GOP size +
      Min-I-interval - 1

      - **ParDenominator** *(integer) --* Pixel Aspect Ratio denominator.

      - **ParNumerator** *(integer) --* Pixel Aspect Ratio numerator.

      - **Profile** *(string) --* H.265 Profile.

      - **QvbrQualityLevel** *(integer) --* Controls the target quality for the video encode.
      Applies only when the rate control mode is QVBR. Set values for the QVBR quality level field
      and Max bitrate field that suit your most important viewing devices. Recommended values are: -
      Primary screen: Quality level: 8 to 10. Max bitrate: 4M - PC or tablet: Quality level: 7. Max
      bitrate: 1.5M to 3M - Smartphone: Quality level: 6. Max bitrate: 1M to 1.5M

      - **RateControlMode** *(string) --* Rate control mode. QVBR: Quality will match the specified
      quality level except when it is constrained by the maximum bitrate. Recommended if you or your
      viewers pay for bandwidth. CBR: Quality varies, depending on the video complexity. Recommended
      only if you distribute your assets to devices that cannot handle variable bitrates.

      - **ScanType** *(string) --* Sets the scan type of the output to progressive or
      top-field-first interlaced.

      - **SceneChangeDetect** *(string) --* Scene change detection.

      - **Slices** *(integer) --* Number of slices per picture. Must be less than or equal to the
      number of macroblock rows for progressive pictures, and less than or equal to half the number
      of macroblock rows for interlaced pictures. This field is optional; when no value is specified
      the encoder will choose the number of slices based on encode resolution.

      - **Tier** *(string) --* H.265 Tier.

      - **TimecodeInsertion** *(string) --* Determines how timecodes should be inserted into the
      video elementary stream. - 'disabled': Do not include timecodes - 'picTimingSei': Pass through
      picture timing SEI messages from the source specified in Timecode Config
    """


_ClientStartChannelResponseEncoderSettingsVideoDescriptionsTypeDef = TypedDict(
    "_ClientStartChannelResponseEncoderSettingsVideoDescriptionsTypeDef",
    {
        "CodecSettings": ClientStartChannelResponseEncoderSettingsVideoDescriptionsCodecSettingsTypeDef,
        "Height": int,
        "Name": str,
        "RespondToAfd": str,
        "ScalingBehavior": str,
        "Sharpness": int,
        "Width": int,
    },
    total=False,
)


class ClientStartChannelResponseEncoderSettingsVideoDescriptionsTypeDef(
    _ClientStartChannelResponseEncoderSettingsVideoDescriptionsTypeDef
):
    """
    Type definition for `ClientStartChannelResponseEncoderSettings` `VideoDescriptions`

    - **CodecSettings** *(dict) --* Video codec settings.

      - **FrameCaptureSettings** *(dict) --* Frame Capture Settings

        - **CaptureInterval** *(integer) --* The frequency at which to capture frames for inclusion
        in the output. May be specified in either seconds or milliseconds, as specified by
        captureIntervalUnits.

      - **H264Settings** *(dict) --* H264 Settings

        - **AdaptiveQuantization** *(string) --* Adaptive quantization. Allows intra-frame
        quantizers to vary to improve visual quality.

        - **AfdSignaling** *(string) --* Indicates that AFD values will be written into the output
        stream. If afdSignaling is "auto", the system will try to preserve the input AFD value (in
        cases where multiple AFD values are valid). If set to "fixed", the AFD value will be the
        value configured in the fixedAfd parameter.

        - **Bitrate** *(integer) --* Average bitrate in bits/second. Required when the rate control
        mode is VBR or CBR. Not used for QVBR. In an MS Smooth output group, each output must have a
        unique value when its bitrate is rounded down to the nearest multiple of 1000.

        - **BufFillPct** *(integer) --* Percentage of the buffer that should initially be filled
        (HRD buffer model).

        - **BufSize** *(integer) --* Size of buffer (HRD buffer model) in bits.

        - **ColorMetadata** *(string) --* Includes colorspace metadata in the output.

        - **ColorSpaceSettings** *(dict) --* Color Space settings

          - **ColorSpacePassthroughSettings** *(dict) --* Passthrough applies no color space
          conversion to the output

          - **Rec601Settings** *(dict) --* Rec601 Settings

          - **Rec709Settings** *(dict) --* Rec709 Settings

        - **EntropyEncoding** *(string) --* Entropy encoding mode. Use cabac (must be in Main or
        High profile) or cavlc.

        - **FixedAfd** *(string) --* Four bit AFD value to write on all frames of video in the
        output stream. Only valid when afdSignaling is set to 'Fixed'.

        - **FlickerAq** *(string) --* If set to enabled, adjust quantization within each frame to
        reduce flicker or 'pop' on I-frames.

        - **FramerateControl** *(string) --* This field indicates how the output video frame rate is
        specified. If "specified" is selected then the output video frame rate is determined by
        framerateNumerator and framerateDenominator, else if "initializeFromSource" is selected then
        the output video frame rate will be set equal to the input video frame rate of the first
        input.

        - **FramerateDenominator** *(integer) --* Framerate denominator.

        - **FramerateNumerator** *(integer) --* Framerate numerator - framerate is a fraction, e.g.
        24000 / 1001 = 23.976 fps.

        - **GopBReference** *(string) --* Documentation update needed

        - **GopClosedCadence** *(integer) --* Frequency of closed GOPs. In streaming applications,
        it is recommended that this be set to 1 so a decoder joining mid-stream will receive an IDR
        frame as quickly as possible. Setting this value to 0 will break output segmenting.

        - **GopNumBFrames** *(integer) --* Number of B-frames between reference frames.

        - **GopSize** *(float) --* GOP size (keyframe interval) in units of either frames or seconds
        per gopSizeUnits. If gopSizeUnits is frames, gopSize must be an integer and must be greater
        than or equal to 1. If gopSizeUnits is seconds, gopSize must be greater than 0, but need not
        be an integer.

        - **GopSizeUnits** *(string) --* Indicates if the gopSize is specified in frames or seconds.
        If seconds the system will convert the gopSize into a frame count at run time.

        - **Level** *(string) --* H.264 Level.

        - **LookAheadRateControl** *(string) --* Amount of lookahead. A value of low can decrease
        latency and memory usage, while high can produce better quality for certain content.

        - **MaxBitrate** *(integer) --* For QVBR: See the tooltip for Quality level For VBR: Set the
        maximum bitrate in order to accommodate expected spikes in the complexity of the video.

        - **MinIInterval** *(integer) --* Only meaningful if sceneChangeDetect is set to enabled.
        Defaults to 5 if multiplex rate control is used. Enforces separation between repeated
        (cadence) I-frames and I-frames inserted by Scene Change Detection. If a scene change
        I-frame is within I-interval frames of a cadence I-frame, the GOP is shrunk and/or stretched
        to the scene change I-frame. GOP stretch requires enabling lookahead as well as setting
        I-interval. The normal cadence resumes for the next GOP. Note: Maximum GOP stretch = GOP
        size + Min-I-interval - 1

        - **NumRefFrames** *(integer) --* Number of reference frames to use. The encoder may use
        more than requested if using B-frames and/or interlaced encoding.

        - **ParControl** *(string) --* This field indicates how the output pixel aspect ratio is
        specified. If "specified" is selected then the output video pixel aspect ratio is determined
        by parNumerator and parDenominator, else if "initializeFromSource" is selected then the
        output pixsel aspect ratio will be set equal to the input video pixel aspect ratio of the
        first input.

        - **ParDenominator** *(integer) --* Pixel Aspect Ratio denominator.

        - **ParNumerator** *(integer) --* Pixel Aspect Ratio numerator.

        - **Profile** *(string) --* H.264 Profile.

        - **QvbrQualityLevel** *(integer) --* Controls the target quality for the video encode.
        Applies only when the rate control mode is QVBR. Set values for the QVBR quality level field
        and Max bitrate field that suit your most important viewing devices. Recommended values are:
        - Primary screen: Quality level: 8 to 10. Max bitrate: 4M - PC or tablet: Quality level: 7.
        Max bitrate: 1.5M to 3M - Smartphone: Quality level: 6. Max bitrate: 1M to 1.5M

        - **RateControlMode** *(string) --* Rate control mode. QVBR: Quality will match the
        specified quality level except when it is constrained by the maximum bitrate. Recommended if
        you or your viewers pay for bandwidth. VBR: Quality and bitrate vary, depending on the video
        complexity. Recommended instead of QVBR if you want to maintain a specific average bitrate
        over the duration of the channel. CBR: Quality varies, depending on the video complexity.
        Recommended only if you distribute your assets to devices that cannot handle variable
        bitrates.

        - **ScanType** *(string) --* Sets the scan type of the output to progressive or
        top-field-first interlaced.

        - **SceneChangeDetect** *(string) --* Scene change detection. - On: inserts I-frames when
        scene change is detected. - Off: does not force an I-frame when scene change is detected.

        - **Slices** *(integer) --* Number of slices per picture. Must be less than or equal to the
        number of macroblock rows for progressive pictures, and less than or equal to half the
        number of macroblock rows for interlaced pictures. This field is optional; when no value is
        specified the encoder will choose the number of slices based on encode resolution.

        - **Softness** *(integer) --* Softness. Selects quantizer matrix, larger values reduce
        high-frequency content in the encoded image.

        - **SpatialAq** *(string) --* If set to enabled, adjust quantization within each frame based
        on spatial variation of content complexity.

        - **SubgopLength** *(string) --* If set to fixed, use gopNumBFrames B-frames per sub-GOP. If
        set to dynamic, optimize the number of B-frames used for each sub-GOP to improve visual
        quality.

        - **Syntax** *(string) --* Produces a bitstream compliant with SMPTE RP-2027.

        - **TemporalAq** *(string) --* If set to enabled, adjust quantization within each frame
        based on temporal variation of content complexity.

        - **TimecodeInsertion** *(string) --* Determines how timecodes should be inserted into the
        video elementary stream. - 'disabled': Do not include timecodes - 'picTimingSei': Pass
        through picture timing SEI messages from the source specified in Timecode Config

      - **H265Settings** *(dict) --* H265 Settings

        - **AdaptiveQuantization** *(string) --* Adaptive quantization. Allows intra-frame
        quantizers to vary to improve visual quality.

        - **AfdSignaling** *(string) --* Indicates that AFD values will be written into the output
        stream. If afdSignaling is "auto", the system will try to preserve the input AFD value (in
        cases where multiple AFD values are valid). If set to "fixed", the AFD value will be the
        value configured in the fixedAfd parameter.

        - **AlternativeTransferFunction** *(string) --* Whether or not EML should insert an
        Alternative Transfer Function SEI message to support backwards compatibility with non-HDR
        decoders and displays.

        - **Bitrate** *(integer) --* Average bitrate in bits/second. Required when the rate control
        mode is VBR or CBR. Not used for QVBR. In an MS Smooth output group, each output must have a
        unique value when its bitrate is rounded down to the nearest multiple of 1000.

        - **BufSize** *(integer) --* Size of buffer (HRD buffer model) in bits.

        - **ColorMetadata** *(string) --* Includes colorspace metadata in the output.

        - **ColorSpaceSettings** *(dict) --* Color Space settings

          - **ColorSpacePassthroughSettings** *(dict) --* Passthrough applies no color space
          conversion to the output

          - **Hdr10Settings** *(dict) --* Hdr10 Settings

            - **MaxCll** *(integer) --* Maximum Content Light Level An integer metadata value
            defining the maximum light level, in nits, of any single pixel within an encoded HDR
            video stream or file.

            - **MaxFall** *(integer) --* Maximum Frame Average Light Level An integer metadata value
            defining the maximum average light level, in nits, for any single frame within an
            encoded HDR video stream or file.

          - **Rec601Settings** *(dict) --* Rec601 Settings

          - **Rec709Settings** *(dict) --* Rec709 Settings

        - **FixedAfd** *(string) --* Four bit AFD value to write on all frames of video in the
        output stream. Only valid when afdSignaling is set to 'Fixed'.

        - **FlickerAq** *(string) --* If set to enabled, adjust quantization within each frame to
        reduce flicker or 'pop' on I-frames.

        - **FramerateDenominator** *(integer) --* Framerate denominator.

        - **FramerateNumerator** *(integer) --* Framerate numerator - framerate is a fraction, e.g.
        24000 / 1001 = 23.976 fps.

        - **GopClosedCadence** *(integer) --* Frequency of closed GOPs. In streaming applications,
        it is recommended that this be set to 1 so a decoder joining mid-stream will receive an IDR
        frame as quickly as possible. Setting this value to 0 will break output segmenting.

        - **GopSize** *(float) --* GOP size (keyframe interval) in units of either frames or seconds
        per gopSizeUnits. If gopSizeUnits is frames, gopSize must be an integer and must be greater
        than or equal to 1. If gopSizeUnits is seconds, gopSize must be greater than 0, but need not
        be an integer.

        - **GopSizeUnits** *(string) --* Indicates if the gopSize is specified in frames or seconds.
        If seconds the system will convert the gopSize into a frame count at run time.

        - **Level** *(string) --* H.265 Level.

        - **LookAheadRateControl** *(string) --* Amount of lookahead. A value of low can decrease
        latency and memory usage, while high can produce better quality for certain content.

        - **MaxBitrate** *(integer) --* For QVBR: See the tooltip for Quality level

        - **MinIInterval** *(integer) --* Only meaningful if sceneChangeDetect is set to enabled.
        Defaults to 5 if multiplex rate control is used. Enforces separation between repeated
        (cadence) I-frames and I-frames inserted by Scene Change Detection. If a scene change
        I-frame is within I-interval frames of a cadence I-frame, the GOP is shrunk and/or stretched
        to the scene change I-frame. GOP stretch requires enabling lookahead as well as setting
        I-interval. The normal cadence resumes for the next GOP. Note: Maximum GOP stretch = GOP
        size + Min-I-interval - 1

        - **ParDenominator** *(integer) --* Pixel Aspect Ratio denominator.

        - **ParNumerator** *(integer) --* Pixel Aspect Ratio numerator.

        - **Profile** *(string) --* H.265 Profile.

        - **QvbrQualityLevel** *(integer) --* Controls the target quality for the video encode.
        Applies only when the rate control mode is QVBR. Set values for the QVBR quality level field
        and Max bitrate field that suit your most important viewing devices. Recommended values are:
        - Primary screen: Quality level: 8 to 10. Max bitrate: 4M - PC or tablet: Quality level: 7.
        Max bitrate: 1.5M to 3M - Smartphone: Quality level: 6. Max bitrate: 1M to 1.5M

        - **RateControlMode** *(string) --* Rate control mode. QVBR: Quality will match the
        specified quality level except when it is constrained by the maximum bitrate. Recommended if
        you or your viewers pay for bandwidth. CBR: Quality varies, depending on the video
        complexity. Recommended only if you distribute your assets to devices that cannot handle
        variable bitrates.

        - **ScanType** *(string) --* Sets the scan type of the output to progressive or
        top-field-first interlaced.

        - **SceneChangeDetect** *(string) --* Scene change detection.

        - **Slices** *(integer) --* Number of slices per picture. Must be less than or equal to the
        number of macroblock rows for progressive pictures, and less than or equal to half the
        number of macroblock rows for interlaced pictures. This field is optional; when no value is
        specified the encoder will choose the number of slices based on encode resolution.

        - **Tier** *(string) --* H.265 Tier.

        - **TimecodeInsertion** *(string) --* Determines how timecodes should be inserted into the
        video elementary stream. - 'disabled': Do not include timecodes - 'picTimingSei': Pass
        through picture timing SEI messages from the source specified in Timecode Config

    - **Height** *(integer) --* Output video height, in pixels. Must be an even number. For most
    codecs, you can leave this field and width blank in order to use the height and width
    (resolution) from the source. Note, however, that leaving blank is not recommended. For the
    Frame Capture codec, height and width are required.

    - **Name** *(string) --* The name of this VideoDescription. Outputs will use this name to
    uniquely identify this Description. Description names should be unique within this Live Event.

    - **RespondToAfd** *(string) --* Indicates how to respond to the AFD values in the input stream.
    RESPOND causes input video to be clipped, depending on the AFD value, input display aspect
    ratio, and output display aspect ratio, and (except for FRAMECAPTURE codec) includes the values
    in the output. PASSTHROUGH (does not apply to FRAMECAPTURE codec) ignores the AFD values and
    includes the values in the output, so input video is not clipped. NONE ignores the AFD values
    and does not include the values through to the output, so input video is not clipped.

    - **ScalingBehavior** *(string) --* STRETCHTOOUTPUT configures the output position to stretch
    the video to the specified output resolution (height and width). This option will override any
    position value. DEFAULT may insert black boxes (pillar boxes or letter boxes) around the video
    to provide the specified output resolution.

    - **Sharpness** *(integer) --* Changes the strength of the anti-alias filter used for scaling. 0
    is the softest setting, 100 is the sharpest. A setting of 50 is recommended for most content.

    - **Width** *(integer) --* Output video width, in pixels. Must be an even number. For most
    codecs, you can leave this field and height blank in order to use the height and width
    (resolution) from the source. Note, however, that leaving blank is not recommended. For the
    Frame Capture codec, height and width are required.
    """


_ClientStartChannelResponseEncoderSettingsTypeDef = TypedDict(
    "_ClientStartChannelResponseEncoderSettingsTypeDef",
    {
        "AudioDescriptions": List[
            ClientStartChannelResponseEncoderSettingsAudioDescriptionsTypeDef
        ],
        "AvailBlanking": ClientStartChannelResponseEncoderSettingsAvailBlankingTypeDef,
        "AvailConfiguration": ClientStartChannelResponseEncoderSettingsAvailConfigurationTypeDef,
        "BlackoutSlate": ClientStartChannelResponseEncoderSettingsBlackoutSlateTypeDef,
        "CaptionDescriptions": List[
            ClientStartChannelResponseEncoderSettingsCaptionDescriptionsTypeDef
        ],
        "GlobalConfiguration": ClientStartChannelResponseEncoderSettingsGlobalConfigurationTypeDef,
        "NielsenConfiguration": ClientStartChannelResponseEncoderSettingsNielsenConfigurationTypeDef,
        "OutputGroups": List[ClientStartChannelResponseEncoderSettingsOutputGroupsTypeDef],
        "TimecodeConfig": ClientStartChannelResponseEncoderSettingsTimecodeConfigTypeDef,
        "VideoDescriptions": List[
            ClientStartChannelResponseEncoderSettingsVideoDescriptionsTypeDef
        ],
    },
    total=False,
)


class ClientStartChannelResponseEncoderSettingsTypeDef(
    _ClientStartChannelResponseEncoderSettingsTypeDef
):
    """
    Type definition for `ClientStartChannelResponse` `EncoderSettings`

    - **AudioDescriptions** *(list) --* Placeholder documentation for __listOfAudioDescription

      - *(dict) --* Audio Description

        - **AudioNormalizationSettings** *(dict) --* Advanced audio normalization settings.

          - **Algorithm** *(string) --* Audio normalization algorithm to use. itu17701 conforms to
          the CALM Act specification, itu17702 conforms to the EBU R-128 specification.

          - **AlgorithmControl** *(string) --* When set to correctAudio the output audio is
          corrected using the chosen algorithm. If set to measureOnly, the audio will be measured
          but not adjusted.

          - **TargetLkfs** *(float) --* Target LKFS(loudness) to adjust volume to. If no value is
          entered, a default value will be used according to the chosen algorithm. The CALM Act
          (1770-1) recommends a target of -24 LKFS. The EBU R-128 specification (1770-2) recommends
          a target of -23 LKFS.

        - **AudioSelectorName** *(string) --* The name of the AudioSelector used as the source for
        this AudioDescription.

        - **AudioType** *(string) --* Applies only if audioTypeControl is useConfigured. The values
        for audioType are defined in ISO-IEC 13818-1.

        - **AudioTypeControl** *(string) --* Determines how audio type is determined. followInput:
        If the input contains an ISO 639 audioType, then that value is passed through to the output.
        If the input contains no ISO 639 audioType, the value in Audio Type is included in the
        output. useConfigured: The value in Audio Type is included in the output. Note that this
        field and audioType are both ignored if inputType is broadcasterMixedAd.

        - **CodecSettings** *(dict) --* Audio codec settings.

          - **AacSettings** *(dict) --* Aac Settings

            - **Bitrate** *(float) --* Average bitrate in bits/second. Valid values depend on rate
            control mode and profile.

            - **CodingMode** *(string) --* Mono, Stereo, or 5.1 channel layout. Valid values depend
            on rate control mode and profile. The adReceiverMix setting receives a stereo
            description plus control track and emits a mono AAC encode of the description track,
            with control data emitted in the PES header as per ETSI TS 101 154 Annex E.

            - **InputType** *(string) --* Set to "broadcasterMixedAd" when input contains pre-mixed
            main audio + AD (narration) as a stereo pair. The Audio Type field (audioType) will be
            set to 3, which signals to downstream systems that this stream contains "broadcaster
            mixed AD". Note that the input received by the encoder must contain pre-mixed audio; the
            encoder does not perform the mixing. The values in audioTypeControl and audioType (in
            AudioDescription) are ignored when set to broadcasterMixedAd. Leave set to "normal" when
            input does not contain pre-mixed audio + AD.

            - **Profile** *(string) --* AAC Profile.

            - **RateControlMode** *(string) --* Rate Control Mode.

            - **RawFormat** *(string) --* Sets LATM / LOAS AAC output for raw containers.

            - **SampleRate** *(float) --* Sample rate in Hz. Valid values depend on rate control
            mode and profile.

            - **Spec** *(string) --* Use MPEG-2 AAC audio instead of MPEG-4 AAC audio for raw or
            MPEG-2 Transport Stream containers.

            - **VbrQuality** *(string) --* VBR Quality Level - Only used if rateControlMode is VBR.

          - **Ac3Settings** *(dict) --* Ac3 Settings

            - **Bitrate** *(float) --* Average bitrate in bits/second. Valid bitrates depend on the
            coding mode.

            - **BitstreamMode** *(string) --* Specifies the bitstream mode (bsmod) for the emitted
            AC-3 stream. See ATSC A/52-2012 for background on these values.

            - **CodingMode** *(string) --* Dolby Digital coding mode. Determines number of channels.

            - **Dialnorm** *(integer) --* Sets the dialnorm for the output. If excluded and input
            audio is Dolby Digital, dialnorm will be passed through.

            - **DrcProfile** *(string) --* If set to filmStandard, adds dynamic range compression
            signaling to the output bitstream as defined in the Dolby Digital specification.

            - **LfeFilter** *(string) --* When set to enabled, applies a 120Hz lowpass filter to the
            LFE channel prior to encoding. Only valid in codingMode32Lfe mode.

            - **MetadataControl** *(string) --* When set to "followInput", encoder metadata will be
            sourced from the DD, DD+, or DolbyE decoder that supplied this audio data. If audio was
            not supplied from one of these streams, then the static metadata settings will be used.

          - **Eac3Settings** *(dict) --* Eac3 Settings

            - **AttenuationControl** *(string) --* When set to attenuate3Db, applies a 3 dB
            attenuation to the surround channels. Only used for 3/2 coding mode.

            - **Bitrate** *(float) --* Average bitrate in bits/second. Valid bitrates depend on the
            coding mode.

            - **BitstreamMode** *(string) --* Specifies the bitstream mode (bsmod) for the emitted
            E-AC-3 stream. See ATSC A/52-2012 (Annex E) for background on these values.

            - **CodingMode** *(string) --* Dolby Digital Plus coding mode. Determines number of
            channels.

            - **DcFilter** *(string) --* When set to enabled, activates a DC highpass filter for all
            input channels.

            - **Dialnorm** *(integer) --* Sets the dialnorm for the output. If blank and input audio
            is Dolby Digital Plus, dialnorm will be passed through.

            - **DrcLine** *(string) --* Sets the Dolby dynamic range compression profile.

            - **DrcRf** *(string) --* Sets the profile for heavy Dolby dynamic range compression,
            ensures that the instantaneous signal peaks do not exceed specified levels.

            - **LfeControl** *(string) --* When encoding 3/2 audio, setting to lfe enables the LFE
            channel

            - **LfeFilter** *(string) --* When set to enabled, applies a 120Hz lowpass filter to the
            LFE channel prior to encoding. Only valid with codingMode32 coding mode.

            - **LoRoCenterMixLevel** *(float) --* Left only/Right only center mix level. Only used
            for 3/2 coding mode.

            - **LoRoSurroundMixLevel** *(float) --* Left only/Right only surround mix level. Only
            used for 3/2 coding mode.

            - **LtRtCenterMixLevel** *(float) --* Left total/Right total center mix level. Only used
            for 3/2 coding mode.

            - **LtRtSurroundMixLevel** *(float) --* Left total/Right total surround mix level. Only
            used for 3/2 coding mode.

            - **MetadataControl** *(string) --* When set to followInput, encoder metadata will be
            sourced from the DD, DD+, or DolbyE decoder that supplied this audio data. If audio was
            not supplied from one of these streams, then the static metadata settings will be used.

            - **PassthroughControl** *(string) --* When set to whenPossible, input DD+ audio will be
            passed through if it is present on the input. This detection is dynamic over the life of
            the transcode. Inputs that alternate between DD+ and non-DD+ content will have a
            consistent DD+ output as the system alternates between passthrough and encoding.

            - **PhaseControl** *(string) --* When set to shift90Degrees, applies a 90-degree phase
            shift to the surround channels. Only used for 3/2 coding mode.

            - **StereoDownmix** *(string) --* Stereo downmix preference. Only used for 3/2 coding
            mode.

            - **SurroundExMode** *(string) --* When encoding 3/2 audio, sets whether an extra center
            back surround channel is matrix encoded into the left and right surround channels.

            - **SurroundMode** *(string) --* When encoding 2/0 audio, sets whether Dolby Surround is
            matrix encoded into the two channels.

          - **Mp2Settings** *(dict) --* Mp2 Settings

            - **Bitrate** *(float) --* Average bitrate in bits/second.

            - **CodingMode** *(string) --* The MPEG2 Audio coding mode. Valid values are
            codingMode10 (for mono) or codingMode20 (for stereo).

            - **SampleRate** *(float) --* Sample rate in Hz.

          - **PassThroughSettings** *(dict) --* Pass Through Settings

        - **LanguageCode** *(string) --* Indicates the language of the audio output track. Only used
        if languageControlMode is useConfigured, or there is no ISO 639 language code specified in
        the input.

        - **LanguageCodeControl** *(string) --* Choosing followInput will cause the ISO 639 language
        code of the output to follow the ISO 639 language code of the input. The languageCode will
        be used when useConfigured is set, or when followInput is selected but there is no ISO 639
        language code specified by the input.

        - **Name** *(string) --* The name of this AudioDescription. Outputs will use this name to
        uniquely identify this AudioDescription. Description names should be unique within this Live
        Event.

        - **RemixSettings** *(dict) --* Settings that control how input audio channels are remixed
        into the output audio channels.

          - **ChannelMappings** *(list) --* Mapping of input channels to output channels, with
          appropriate gain adjustments.

            - *(dict) --* Audio Channel Mapping

              - **InputChannelLevels** *(list) --* Indices and gain values for each input channel
              that should be remixed into this output channel.

                - *(dict) --* Input Channel Level

                  - **Gain** *(integer) --* Remixing value. Units are in dB and acceptable values
                  are within the range from -60 (mute) and 6 dB.

                  - **InputChannel** *(integer) --* The index of the input channel used as a source.

              - **OutputChannel** *(integer) --* The index of the output channel being produced.

          - **ChannelsIn** *(integer) --* Number of input channels to be used.

          - **ChannelsOut** *(integer) --* Number of output channels to be produced. Valid values:
          1, 2, 4, 6, 8

        - **StreamName** *(string) --* Used for MS Smooth and Apple HLS outputs. Indicates the name
        displayed by the player (eg. English, or Director Commentary).

    - **AvailBlanking** *(dict) --* Settings for ad avail blanking.

      - **AvailBlankingImage** *(dict) --* Blanking image to be used. Leave empty for solid black.
      Only bmp and png images are supported.

        - **PasswordParam** *(string) --* key used to extract the password from EC2 Parameter store

        - **Uri** *(string) --* Uniform Resource Identifier - This should be a path to a file
        accessible to the Live system (eg. a http:// URI) depending on the output type. For example,
        a RTMP destination should have a uri simliar to: "rtmp://fmsserver/live".

        - **Username** *(string) --* Documentation update needed

      - **State** *(string) --* When set to enabled, causes video, audio and captions to be blanked
      when insertion metadata is added.

    - **AvailConfiguration** *(dict) --* Event-wide configuration settings for ad avail insertion.

      - **AvailSettings** *(dict) --* Ad avail settings.

        - **Scte35SpliceInsert** *(dict) --* Scte35 Splice Insert

          - **AdAvailOffset** *(integer) --* When specified, this offset (in milliseconds) is added
          to the input Ad Avail PTS time. This only applies to embedded SCTE 104/35 messages and
          does not apply to OOB messages.

          - **NoRegionalBlackoutFlag** *(string) --* When set to ignore, Segment Descriptors with
          noRegionalBlackoutFlag set to 0 will no longer trigger blackouts or Ad Avail slates

          - **WebDeliveryAllowedFlag** *(string) --* When set to ignore, Segment Descriptors with
          webDeliveryAllowedFlag set to 0 will no longer trigger blackouts or Ad Avail slates

        - **Scte35TimeSignalApos** *(dict) --* Scte35 Time Signal Apos

          - **AdAvailOffset** *(integer) --* When specified, this offset (in milliseconds) is added
          to the input Ad Avail PTS time. This only applies to embedded SCTE 104/35 messages and
          does not apply to OOB messages.

          - **NoRegionalBlackoutFlag** *(string) --* When set to ignore, Segment Descriptors with
          noRegionalBlackoutFlag set to 0 will no longer trigger blackouts or Ad Avail slates

          - **WebDeliveryAllowedFlag** *(string) --* When set to ignore, Segment Descriptors with
          webDeliveryAllowedFlag set to 0 will no longer trigger blackouts or Ad Avail slates

    - **BlackoutSlate** *(dict) --* Settings for blackout slate.

      - **BlackoutSlateImage** *(dict) --* Blackout slate image to be used. Leave empty for solid
      black. Only bmp and png images are supported.

        - **PasswordParam** *(string) --* key used to extract the password from EC2 Parameter store

        - **Uri** *(string) --* Uniform Resource Identifier - This should be a path to a file
        accessible to the Live system (eg. a http:// URI) depending on the output type. For example,
        a RTMP destination should have a uri simliar to: "rtmp://fmsserver/live".

        - **Username** *(string) --* Documentation update needed

      - **NetworkEndBlackout** *(string) --* Setting to enabled causes the encoder to blackout the
      video, audio, and captions, and raise the "Network Blackout Image" slate when an SCTE104/35
      Network End Segmentation Descriptor is encountered. The blackout will be lifted when the
      Network Start Segmentation Descriptor is encountered. The Network End and Network Start
      descriptors must contain a network ID that matches the value entered in "Network ID".

      - **NetworkEndBlackoutImage** *(dict) --* Path to local file to use as Network End Blackout
      image. Image will be scaled to fill the entire output raster.

        - **PasswordParam** *(string) --* key used to extract the password from EC2 Parameter store

        - **Uri** *(string) --* Uniform Resource Identifier - This should be a path to a file
        accessible to the Live system (eg. a http:// URI) depending on the output type. For example,
        a RTMP destination should have a uri simliar to: "rtmp://fmsserver/live".

        - **Username** *(string) --* Documentation update needed

      - **NetworkId** *(string) --* Provides Network ID that matches EIDR ID format (e.g.,
      "10.XXXX/XXXX-XXXX-XXXX-XXXX-XXXX-C").

      - **State** *(string) --* When set to enabled, causes video, audio and captions to be blanked
      when indicated by program metadata.

    - **CaptionDescriptions** *(list) --* Settings for caption decriptions

      - *(dict) --* Caption Description

        - **CaptionSelectorName** *(string) --* Specifies which input caption selector to use as a
        caption source when generating output captions. This field should match a captionSelector
        name.

        - **DestinationSettings** *(dict) --* Additional settings for captions destination that
        depend on the destination type.

          - **AribDestinationSettings** *(dict) --* Arib Destination Settings

          - **BurnInDestinationSettings** *(dict) --* Burn In Destination Settings

            - **Alignment** *(string) --* If no explicit xPosition or yPosition is provided, setting
            alignment to centered will place the captions at the bottom center of the output.
            Similarly, setting a left alignment will align captions to the bottom left of the
            output. If x and y positions are given in conjunction with the alignment parameter, the
            font will be justified (either left or centered) relative to those coordinates.
            Selecting "smart" justification will left-justify live subtitles and center-justify
            pre-recorded subtitles. All burn-in and DVB-Sub font settings must match.

            - **BackgroundColor** *(string) --* Specifies the color of the rectangle behind the
            captions. All burn-in and DVB-Sub font settings must match.

            - **BackgroundOpacity** *(integer) --* Specifies the opacity of the background
            rectangle. 255 is opaque; 0 is transparent. Leaving this parameter out is equivalent to
            setting it to 0 (transparent). All burn-in and DVB-Sub font settings must match.

            - **Font** *(dict) --* External font file used for caption burn-in. File extension must
            be 'ttf' or 'tte'. Although the user can select output fonts for many different types of
            input captions, embedded, STL and teletext sources use a strict grid system. Using
            external fonts with these caption sources could cause unexpected display of proportional
            fonts. All burn-in and DVB-Sub font settings must match.

              - **PasswordParam** *(string) --* key used to extract the password from EC2 Parameter
              store

              - **Uri** *(string) --* Uniform Resource Identifier - This should be a path to a file
              accessible to the Live system (eg. a http:// URI) depending on the output type. For
              example, a RTMP destination should have a uri simliar to: "rtmp://fmsserver/live".

              - **Username** *(string) --* Documentation update needed

            - **FontColor** *(string) --* Specifies the color of the burned-in captions. This option
            is not valid for source captions that are STL, 608/embedded or teletext. These source
            settings are already pre-defined by the caption stream. All burn-in and DVB-Sub font
            settings must match.

            - **FontOpacity** *(integer) --* Specifies the opacity of the burned-in captions. 255 is
            opaque; 0 is transparent. All burn-in and DVB-Sub font settings must match.

            - **FontResolution** *(integer) --* Font resolution in DPI (dots per inch); default is
            96 dpi. All burn-in and DVB-Sub font settings must match.

            - **FontSize** *(string) --* When set to 'auto' fontSize will scale depending on the
            size of the output. Giving a positive integer will specify the exact font size in
            points. All burn-in and DVB-Sub font settings must match.

            - **OutlineColor** *(string) --* Specifies font outline color. This option is not valid
            for source captions that are either 608/embedded or teletext. These source settings are
            already pre-defined by the caption stream. All burn-in and DVB-Sub font settings must
            match.

            - **OutlineSize** *(integer) --* Specifies font outline size in pixels. This option is
            not valid for source captions that are either 608/embedded or teletext. These source
            settings are already pre-defined by the caption stream. All burn-in and DVB-Sub font
            settings must match.

            - **ShadowColor** *(string) --* Specifies the color of the shadow cast by the captions.
            All burn-in and DVB-Sub font settings must match.

            - **ShadowOpacity** *(integer) --* Specifies the opacity of the shadow. 255 is opaque; 0
            is transparent. Leaving this parameter out is equivalent to setting it to 0
            (transparent). All burn-in and DVB-Sub font settings must match.

            - **ShadowXOffset** *(integer) --* Specifies the horizontal offset of the shadow
            relative to the captions in pixels. A value of -2 would result in a shadow offset 2
            pixels to the left. All burn-in and DVB-Sub font settings must match.

            - **ShadowYOffset** *(integer) --* Specifies the vertical offset of the shadow relative
            to the captions in pixels. A value of -2 would result in a shadow offset 2 pixels above
            the text. All burn-in and DVB-Sub font settings must match.

            - **TeletextGridControl** *(string) --* Controls whether a fixed grid size will be used
            to generate the output subtitles bitmap. Only applicable for Teletext inputs and
            DVB-Sub/Burn-in outputs.

            - **XPosition** *(integer) --* Specifies the horizontal position of the caption relative
            to the left side of the output in pixels. A value of 10 would result in the captions
            starting 10 pixels from the left of the output. If no explicit xPosition is provided,
            the horizontal caption position will be determined by the alignment parameter. All
            burn-in and DVB-Sub font settings must match.

            - **YPosition** *(integer) --* Specifies the vertical position of the caption relative
            to the top of the output in pixels. A value of 10 would result in the captions starting
            10 pixels from the top of the output. If no explicit yPosition is provided, the caption
            will be positioned towards the bottom of the output. All burn-in and DVB-Sub font
            settings must match.

          - **DvbSubDestinationSettings** *(dict) --* Dvb Sub Destination Settings

            - **Alignment** *(string) --* If no explicit xPosition or yPosition is provided, setting
            alignment to centered will place the captions at the bottom center of the output.
            Similarly, setting a left alignment will align captions to the bottom left of the
            output. If x and y positions are given in conjunction with the alignment parameter, the
            font will be justified (either left or centered) relative to those coordinates.
            Selecting "smart" justification will left-justify live subtitles and center-justify
            pre-recorded subtitles. This option is not valid for source captions that are STL or
            608/embedded. These source settings are already pre-defined by the caption stream. All
            burn-in and DVB-Sub font settings must match.

            - **BackgroundColor** *(string) --* Specifies the color of the rectangle behind the
            captions. All burn-in and DVB-Sub font settings must match.

            - **BackgroundOpacity** *(integer) --* Specifies the opacity of the background
            rectangle. 255 is opaque; 0 is transparent. Leaving this parameter blank is equivalent
            to setting it to 0 (transparent). All burn-in and DVB-Sub font settings must match.

            - **Font** *(dict) --* External font file used for caption burn-in. File extension must
            be 'ttf' or 'tte'. Although the user can select output fonts for many different types of
            input captions, embedded, STL and teletext sources use a strict grid system. Using
            external fonts with these caption sources could cause unexpected display of proportional
            fonts. All burn-in and DVB-Sub font settings must match.

              - **PasswordParam** *(string) --* key used to extract the password from EC2 Parameter
              store

              - **Uri** *(string) --* Uniform Resource Identifier - This should be a path to a file
              accessible to the Live system (eg. a http:// URI) depending on the output type. For
              example, a RTMP destination should have a uri simliar to: "rtmp://fmsserver/live".

              - **Username** *(string) --* Documentation update needed

            - **FontColor** *(string) --* Specifies the color of the burned-in captions. This option
            is not valid for source captions that are STL, 608/embedded or teletext. These source
            settings are already pre-defined by the caption stream. All burn-in and DVB-Sub font
            settings must match.

            - **FontOpacity** *(integer) --* Specifies the opacity of the burned-in captions. 255 is
            opaque; 0 is transparent. All burn-in and DVB-Sub font settings must match.

            - **FontResolution** *(integer) --* Font resolution in DPI (dots per inch); default is
            96 dpi. All burn-in and DVB-Sub font settings must match.

            - **FontSize** *(string) --* When set to auto fontSize will scale depending on the size
            of the output. Giving a positive integer will specify the exact font size in points. All
            burn-in and DVB-Sub font settings must match.

            - **OutlineColor** *(string) --* Specifies font outline color. This option is not valid
            for source captions that are either 608/embedded or teletext. These source settings are
            already pre-defined by the caption stream. All burn-in and DVB-Sub font settings must
            match.

            - **OutlineSize** *(integer) --* Specifies font outline size in pixels. This option is
            not valid for source captions that are either 608/embedded or teletext. These source
            settings are already pre-defined by the caption stream. All burn-in and DVB-Sub font
            settings must match.

            - **ShadowColor** *(string) --* Specifies the color of the shadow cast by the captions.
            All burn-in and DVB-Sub font settings must match.

            - **ShadowOpacity** *(integer) --* Specifies the opacity of the shadow. 255 is opaque; 0
            is transparent. Leaving this parameter blank is equivalent to setting it to 0
            (transparent). All burn-in and DVB-Sub font settings must match.

            - **ShadowXOffset** *(integer) --* Specifies the horizontal offset of the shadow
            relative to the captions in pixels. A value of -2 would result in a shadow offset 2
            pixels to the left. All burn-in and DVB-Sub font settings must match.

            - **ShadowYOffset** *(integer) --* Specifies the vertical offset of the shadow relative
            to the captions in pixels. A value of -2 would result in a shadow offset 2 pixels above
            the text. All burn-in and DVB-Sub font settings must match.

            - **TeletextGridControl** *(string) --* Controls whether a fixed grid size will be used
            to generate the output subtitles bitmap. Only applicable for Teletext inputs and
            DVB-Sub/Burn-in outputs.

            - **XPosition** *(integer) --* Specifies the horizontal position of the caption relative
            to the left side of the output in pixels. A value of 10 would result in the captions
            starting 10 pixels from the left of the output. If no explicit xPosition is provided,
            the horizontal caption position will be determined by the alignment parameter. This
            option is not valid for source captions that are STL, 608/embedded or teletext. These
            source settings are already pre-defined by the caption stream. All burn-in and DVB-Sub
            font settings must match.

            - **YPosition** *(integer) --* Specifies the vertical position of the caption relative
            to the top of the output in pixels. A value of 10 would result in the captions starting
            10 pixels from the top of the output. If no explicit yPosition is provided, the caption
            will be positioned towards the bottom of the output. This option is not valid for source
            captions that are STL, 608/embedded or teletext. These source settings are already
            pre-defined by the caption stream. All burn-in and DVB-Sub font settings must match.

          - **EmbeddedDestinationSettings** *(dict) --* Embedded Destination Settings

          - **EmbeddedPlusScte20DestinationSettings** *(dict) --* Embedded Plus Scte20 Destination
          Settings

          - **RtmpCaptionInfoDestinationSettings** *(dict) --* Rtmp Caption Info Destination
          Settings

          - **Scte20PlusEmbeddedDestinationSettings** *(dict) --* Scte20 Plus Embedded Destination
          Settings

          - **Scte27DestinationSettings** *(dict) --* Scte27 Destination Settings

          - **SmpteTtDestinationSettings** *(dict) --* Smpte Tt Destination Settings

          - **TeletextDestinationSettings** *(dict) --* Teletext Destination Settings

          - **TtmlDestinationSettings** *(dict) --* Ttml Destination Settings

            - **StyleControl** *(string) --* When set to passthrough, passes through style and
            position information from a TTML-like input source (TTML, SMPTE-TT, CFF-TT) to the
            CFF-TT output or TTML output.

          - **WebvttDestinationSettings** *(dict) --* Webvtt Destination Settings

        - **LanguageCode** *(string) --* ISO 639-2 three-digit code:
        http://www.loc.gov/standards/iso639-2/

        - **LanguageDescription** *(string) --* Human readable information to indicate captions
        available for players (eg. English, or Spanish).

        - **Name** *(string) --* Name of the caption description. Used to associate a caption
        description with an output. Names must be unique within an event.

    - **GlobalConfiguration** *(dict) --* Configuration settings that apply to the event as a whole.

      - **InitialAudioGain** *(integer) --* Value to set the initial audio gain for the Live Event.

      - **InputEndAction** *(string) --* Indicates the action to take when the current input
      completes (e.g. end-of-file). When switchAndLoopInputs is configured the encoder will restart
      at the beginning of the first input. When "none" is configured the encoder will transcode
      either black, a solid color, or a user specified slate images per the "Input Loss Behavior"
      configuration until the next input switch occurs (which is controlled through the Channel
      Schedule API).

      - **InputLossBehavior** *(dict) --* Settings for system actions when input is lost.

        - **BlackFrameMsec** *(integer) --* Documentation update needed

        - **InputLossImageColor** *(string) --* When input loss image type is "color" this field
        specifies the color to use. Value: 6 hex characters representing the values of RGB.

        - **InputLossImageSlate** *(dict) --* When input loss image type is "slate" these fields
        specify the parameters for accessing the slate.

          - **PasswordParam** *(string) --* key used to extract the password from EC2 Parameter
          store

          - **Uri** *(string) --* Uniform Resource Identifier - This should be a path to a file
          accessible to the Live system (eg. a http:// URI) depending on the output type. For
          example, a RTMP destination should have a uri simliar to: "rtmp://fmsserver/live".

          - **Username** *(string) --* Documentation update needed

        - **InputLossImageType** *(string) --* Indicates whether to substitute a solid color or a
        slate into the output after input loss exceeds blackFrameMsec.

        - **RepeatFrameMsec** *(integer) --* Documentation update needed

      - **OutputLockingMode** *(string) --* Indicates how MediaLive pipelines are synchronized.
      PIPELINELOCKING - MediaLive will attempt to synchronize the output of each pipeline to the
      other. EPOCHLOCKING - MediaLive will attempt to synchronize the output of each pipeline to the
      Unix epoch.

      - **OutputTimingSource** *(string) --* Indicates whether the rate of frames emitted by the
      Live encoder should be paced by its system clock (which optionally may be locked to another
      source via NTP) or should be locked to the clock of the source that is providing the input
      stream.

      - **SupportLowFramerateInputs** *(string) --* Adjusts video input buffer for streams with very
      low video framerates. This is commonly set to enabled for music channels with less than one
      video frame per second.

    - **NielsenConfiguration** *(dict) --* Nielsen configuration settings.

      - **DistributorId** *(string) --* Enter the Distributor ID assigned to your organization by
      Nielsen.

      - **NielsenPcmToId3Tagging** *(string) --* Enables Nielsen PCM to ID3 tagging

    - **OutputGroups** *(list) --* Placeholder documentation for __listOfOutputGroup

      - *(dict) --* Output groups for this Live Event. Output groups contain information about where
      streams should be distributed.

        - **Name** *(string) --* Custom output group name optionally defined by the user. Only
        letters, numbers, and the underscore character allowed; only 32 characters allowed.

        - **OutputGroupSettings** *(dict) --* Settings associated with the output group.

          - **ArchiveGroupSettings** *(dict) --* Archive Group Settings

            - **Destination** *(dict) --* A directory and base filename where archive files should
            be written.

              - **DestinationRefId** *(string) --* Placeholder documentation for __string

            - **RolloverInterval** *(integer) --* Number of seconds to write to archive file before
            closing and starting a new one.

          - **FrameCaptureGroupSettings** *(dict) --* Frame Capture Group Settings

            - **Destination** *(dict) --* The destination for the frame capture files. Either the
            URI for an Amazon S3 bucket and object, plus a file name prefix (for example,
            s3ssl://sportsDelivery/highlights/20180820/curling_) or the URI for a MediaStore
            container, plus a file name prefix (for example,
            mediastoressl://sportsDelivery/20180820/curling_). The final file names consist of the
            prefix from the destination field (for example, "curling_") + name modifier + the
            counter (5 digits, starting from 00001) + extension (which is always .jpg). For example,
            curlingLow.00001.jpg

              - **DestinationRefId** *(string) --* Placeholder documentation for __string

          - **HlsGroupSettings** *(dict) --* Hls Group Settings

            - **AdMarkers** *(list) --* Choose one or more ad marker types to pass SCTE35 signals
            through to this group of Apple HLS outputs.

              - *(string) --* Hls Ad Markers

            - **BaseUrlContent** *(string) --* A partial URI prefix that will be prepended to each
            output in the media .m3u8 file. Can be used if base manifest is delivered from a
            different URL than the main .m3u8 file.

            - **BaseUrlManifest** *(string) --* A partial URI prefix that will be prepended to each
            output in the media .m3u8 file. Can be used if base manifest is delivered from a
            different URL than the main .m3u8 file.

            - **CaptionLanguageMappings** *(list) --* Mapping of up to 4 caption channels to caption
            languages. Is only meaningful if captionLanguageSetting is set to "insert".

              - *(dict) --* Maps a caption channel to an ISO 693-2 language code
              (http://www.loc.gov/standards/iso639-2), with an optional description.

                - **CaptionChannel** *(integer) --* The closed caption channel being described by
                this CaptionLanguageMapping. Each channel mapping must have a unique channel number
                (maximum of 4)

                - **LanguageCode** *(string) --* Three character ISO 639-2 language code (see
                http://www.loc.gov/standards/iso639-2)

                - **LanguageDescription** *(string) --* Textual description of language

            - **CaptionLanguageSetting** *(string) --* Applies only to 608 Embedded output captions.
            insert: Include CLOSED-CAPTIONS lines in the manifest. Specify at least one language in
            the CC1 Language Code field. One CLOSED-CAPTION line is added for each Language Code you
            specify. Make sure to specify the languages in the order in which they appear in the
            original source (if the source is embedded format) or the order of the caption selectors
            (if the source is other than embedded). Otherwise, languages in the manifest will not
            match up properly with the output captions. none: Include CLOSED-CAPTIONS=
                NONE line in
            the manifest. omit: Omit any CLOSED-CAPTIONS line from the manifest.

            - **ClientCache** *(string) --* When set to "disabled", sets the #EXT-X-ALLOW-CACHE:no
            tag in the manifest, which prevents clients from saving media segments for later replay.

            - **CodecSpecification** *(string) --* Specification to use (RFC-6381 or the default
            RFC-4281) during m3u8 playlist generation.

            - **ConstantIv** *(string) --* For use with encryptionType. This is a 128-bit, 16-byte
            hex value represented by a 32-character text string. If ivSource is set to "explicit"
            then this parameter is required and is used as the IV for encryption.

            - **Destination** *(dict) --* A directory or HTTP destination for the HLS segments,
            manifest files, and encryption keys (if enabled).

              - **DestinationRefId** *(string) --* Placeholder documentation for __string

            - **DirectoryStructure** *(string) --* Place segments in subdirectories.

            - **EncryptionType** *(string) --* Encrypts the segments with the given encryption
            scheme. Exclude this parameter if no encryption is desired.

            - **HlsCdnSettings** *(dict) --* Parameters that control interactions with the CDN.

              - **HlsAkamaiSettings** *(dict) --* Hls Akamai Settings

                - **ConnectionRetryInterval** *(integer) --* Number of seconds to wait before
                retrying connection to the CDN if the connection is lost.

                - **FilecacheDuration** *(integer) --* Size in seconds of file cache for streaming
                outputs.

                - **HttpTransferMode** *(string) --* Specify whether or not to use chunked transfer
                encoding to Akamai. User should contact Akamai to enable this feature.

                - **NumRetries** *(integer) --* Number of retry attempts that will be made before
                the Live Event is put into an error state.

                - **RestartDelay** *(integer) --* If a streaming output fails, number of seconds to
                wait until a restart is initiated. A value of 0 means never restart.

                - **Salt** *(string) --* Salt for authenticated Akamai.

                - **Token** *(string) --* Token parameter for authenticated akamai. If not
                specified, _gda_ is used.

              - **HlsBasicPutSettings** *(dict) --* Hls Basic Put Settings

                - **ConnectionRetryInterval** *(integer) --* Number of seconds to wait before
                retrying connection to the CDN if the connection is lost.

                - **FilecacheDuration** *(integer) --* Size in seconds of file cache for streaming
                outputs.

                - **NumRetries** *(integer) --* Number of retry attempts that will be made before
                the Live Event is put into an error state.

                - **RestartDelay** *(integer) --* If a streaming output fails, number of seconds to
                wait until a restart is initiated. A value of 0 means never restart.

              - **HlsMediaStoreSettings** *(dict) --* Hls Media Store Settings

                - **ConnectionRetryInterval** *(integer) --* Number of seconds to wait before
                retrying connection to the CDN if the connection is lost.

                - **FilecacheDuration** *(integer) --* Size in seconds of file cache for streaming
                outputs.

                - **MediaStoreStorageClass** *(string) --* When set to temporal, output files are
                stored in non-persistent memory for faster reading and writing.

                - **NumRetries** *(integer) --* Number of retry attempts that will be made before
                the Live Event is put into an error state.

                - **RestartDelay** *(integer) --* If a streaming output fails, number of seconds to
                wait until a restart is initiated. A value of 0 means never restart.

              - **HlsWebdavSettings** *(dict) --* Hls Webdav Settings

                - **ConnectionRetryInterval** *(integer) --* Number of seconds to wait before
                retrying connection to the CDN if the connection is lost.

                - **FilecacheDuration** *(integer) --* Size in seconds of file cache for streaming
                outputs.

                - **HttpTransferMode** *(string) --* Specify whether or not to use chunked transfer
                encoding to WebDAV.

                - **NumRetries** *(integer) --* Number of retry attempts that will be made before
                the Live Event is put into an error state.

                - **RestartDelay** *(integer) --* If a streaming output fails, number of seconds to
                wait until a restart is initiated. A value of 0 means never restart.

            - **IFrameOnlyPlaylists** *(string) --* DISABLED: Do not create an I-frame-only
            manifest, but do create the master and media manifests (according to the Output
            Selection field). STANDARD: Create an I-frame-only manifest for each output that
            contains video, as well as the other manifests (according to the Output Selection
            field). The I-frame manifest contains a #EXT-X-I-FRAMES-ONLY tag to indicate it is
            I-frame only, and one or more #EXT-X-BYTERANGE entries identifying the I-frame position.
            For example, #EXT-X-BYTERANGE:160364@1461888"

            - **IndexNSegments** *(integer) --* Applies only if Mode field is LIVE. Specifies the
            maximum number of segments in the media manifest file. After this maximum, older
            segments are removed from the media manifest. This number must be less than or equal to
            the Keep Segments field.

            - **InputLossAction** *(string) --* Parameter that control output group behavior on
            input loss.

            - **IvInManifest** *(string) --* For use with encryptionType. The IV (Initialization
            Vector) is a 128-bit number used in conjunction with the key for encrypting blocks. If
            set to "include", IV is listed in the manifest, otherwise the IV is not in the manifest.

            - **IvSource** *(string) --* For use with encryptionType. The IV (Initialization Vector)
            is a 128-bit number used in conjunction with the key for encrypting blocks. If this
            setting is "followsSegmentNumber", it will cause the IV to change every segment (to
            match the segment number). If this is set to "explicit", you must enter a constantIv
            value.

            - **KeepSegments** *(integer) --* Applies only if Mode field is LIVE. Specifies the
            number of media segments (.ts files) to retain in the destination directory.

            - **KeyFormat** *(string) --* The value specifies how the key is represented in the
            resource identified by the URI. If parameter is absent, an implicit value of "identity"
            is used. A reverse DNS string can also be given.

            - **KeyFormatVersions** *(string) --* Either a single positive integer version value or
            a slash delimited list of version values (1/2/3).

            - **KeyProviderSettings** *(dict) --* The key provider settings.

              - **StaticKeySettings** *(dict) --* Static Key Settings

                - **KeyProviderServer** *(dict) --* The URL of the license server used for
                protecting content.

                  - **PasswordParam** *(string) --* key used to extract the password from EC2
                  Parameter store

                  - **Uri** *(string) --* Uniform Resource Identifier - This should be a path to a
                  file accessible to the Live system (eg. a http:// URI) depending on the output
                  type. For example, a RTMP destination should have a uri simliar to:
                  "rtmp://fmsserver/live".

                  - **Username** *(string) --* Documentation update needed

                - **StaticKeyValue** *(string) --* Static key value as a 32 character hexadecimal
                string.

            - **ManifestCompression** *(string) --* When set to gzip, compresses HLS playlist.

            - **ManifestDurationFormat** *(string) --* Indicates whether the output manifest should
            use floating point or integer values for segment duration.

            - **MinSegmentLength** *(integer) --* When set, minimumSegmentLength is enforced by
            looking ahead and back within the specified range for a nearby avail and extending the
            segment size if needed.

            - **Mode** *(string) --* If "vod", all segments are indexed and kept permanently in the
            destination and manifest. If "live", only the number segments specified in keepSegments
            and indexNSegments are kept; newer segments replace older segments, which may prevent
            players from rewinding all the way to the beginning of the event. VOD mode uses HLS
            EXT-X-PLAYLIST-TYPE of EVENT while the channel is running, converting it to a "VOD" type
            manifest on completion of the stream.

            - **OutputSelection** *(string) --* MANIFESTSANDSEGMENTS: Generates manifests (master
            manifest, if applicable, and media manifests) for this output group. SEGMENTSONLY: Does
            not generate any manifests for this output group.

            - **ProgramDateTime** *(string) --* Includes or excludes EXT-X-PROGRAM-DATE-TIME tag in
            .m3u8 manifest files. The value is calculated as follows: either the program date and
            time are initialized using the input timecode source, or the time is initialized using
            the input timecode source and the date is initialized using the timestampOffset.

            - **ProgramDateTimePeriod** *(integer) --* Period of insertion of
            EXT-X-PROGRAM-DATE-TIME entry, in seconds.

            - **RedundantManifest** *(string) --* ENABLED: The master manifest (.m3u8 file) for each
            pipeline includes information about both pipelines: first its own media files, then the
            media files of the other pipeline. This feature allows playout device that support stale
            manifest detection to switch from one manifest to the other, when the current manifest
            seems to be stale. There are still two destinations and two master manifests, but both
            master manifests reference the media files from both pipelines. DISABLED: The master
            manifest (.m3u8 file) for each pipeline includes information about its own pipeline
            only. For an HLS output group with MediaPackage as the destination, the DISABLED
            behavior is always followed. MediaPackage regenerates the manifests it serves to players
            so a redundant manifest from MediaLive is irrelevant.

            - **SegmentLength** *(integer) --* Length of MPEG-2 Transport Stream segments to create
            (in seconds). Note that segments will end on the next keyframe after this number of
            seconds, so actual segment length may be longer.

            - **SegmentationMode** *(string) --* useInputSegmentation has been deprecated. The
            configured segment size is always used.

            - **SegmentsPerSubdirectory** *(integer) --* Number of segments to write to a
            subdirectory before starting a new one. directoryStructure must be subdirectoryPerStream
            for this setting to have an effect.

            - **StreamInfResolution** *(string) --* Include or exclude RESOLUTION attribute for
            video in EXT-X-STREAM-INF tag of variant manifest.

            - **TimedMetadataId3Frame** *(string) --* Indicates ID3 frame that has the timecode.

            - **TimedMetadataId3Period** *(integer) --* Timed Metadata interval in seconds.

            - **TimestampDeltaMilliseconds** *(integer) --* Provides an extra millisecond delta
            offset to fine tune the timestamps.

            - **TsFileMode** *(string) --* SEGMENTEDFILES: Emit the program as segments - multiple
            .ts media files. SINGLEFILE: Applies only if Mode field is VOD. Emit the program as a
            single .ts media file. The media manifest includes #EXT-X-BYTERANGE tags to index
            segments for playback. A typical use for this value is when sending the output to AWS
            Elemental MediaConvert, which can accept only a single media file. Playback while the
            channel is running is not guaranteed due to HTTP server caching.

          - **MediaPackageGroupSettings** *(dict) --* Media Package Group Settings

            - **Destination** *(dict) --* MediaPackage channel destination.

              - **DestinationRefId** *(string) --* Placeholder documentation for __string

          - **MsSmoothGroupSettings** *(dict) --* Ms Smooth Group Settings

            - **AcquisitionPointId** *(string) --* The value of the "Acquisition Point Identity"
            element used in each message placed in the sparse track. Only enabled if sparseTrackType
            is not "none".

            - **AudioOnlyTimecodeControl** *(string) --* If set to passthrough for an audio-only MS
            Smooth output, the fragment absolute time will be set to the current timecode. This
            option does not write timecodes to the audio elementary stream.

            - **CertificateMode** *(string) --* If set to verifyAuthenticity, verify the https
            certificate chain to a trusted Certificate Authority (CA). This will cause https outputs
            to self-signed certificates to fail.

            - **ConnectionRetryInterval** *(integer) --* Number of seconds to wait before retrying
            connection to the IIS server if the connection is lost. Content will be cached during
            this time and the cache will be be delivered to the IIS server once the connection is
            re-established.

            - **Destination** *(dict) --* Smooth Streaming publish point on an IIS server. Elemental
            Live acts as a "Push" encoder to IIS.

              - **DestinationRefId** *(string) --* Placeholder documentation for __string

            - **EventId** *(string) --* MS Smooth event ID to be sent to the IIS server. Should only
            be specified if eventIdMode is set to useConfigured.

            - **EventIdMode** *(string) --* Specifies whether or not to send an event ID to the IIS
            server. If no event ID is sent and the same Live Event is used without changing the
            publishing point, clients might see cached video from the previous run. Options: -
            "useConfigured" - use the value provided in eventId - "useTimestamp" - generate and send
            an event ID based on the current timestamp - "noEventId" - do not send an event ID to
            the IIS server.

            - **EventStopBehavior** *(string) --* When set to sendEos, send EOS signal to IIS server
            when stopping the event

            - **FilecacheDuration** *(integer) --* Size in seconds of file cache for streaming
            outputs.

            - **FragmentLength** *(integer) --* Length of mp4 fragments to generate (in seconds).
            Fragment length must be compatible with GOP size and framerate.

            - **InputLossAction** *(string) --* Parameter that control output group behavior on
            input loss.

            - **NumRetries** *(integer) --* Number of retry attempts.

            - **RestartDelay** *(integer) --* Number of seconds before initiating a restart due to
            output failure, due to exhausting the numRetries on one segment, or exceeding
            filecacheDuration.

            - **SegmentationMode** *(string) --* useInputSegmentation has been deprecated. The
            configured segment size is always used.

            - **SendDelayMs** *(integer) --* Number of milliseconds to delay the output from the
            second pipeline.

            - **SparseTrackType** *(string) --* If set to scte35, use incoming SCTE-35 messages to
            generate a sparse track in this group of MS-Smooth outputs.

            - **StreamManifestBehavior** *(string) --* When set to send, send stream manifest so
            publishing point doesn't start until all streams start.

            - **TimestampOffset** *(string) --* Timestamp offset for the event. Only used if
            timestampOffsetMode is set to useConfiguredOffset.

            - **TimestampOffsetMode** *(string) --* Type of timestamp date offset to use. -
            useEventStartDate: Use the date the event was started as the offset -
            useConfiguredOffset: Use an explicitly configured date as the offset

          - **MultiplexGroupSettings** *(dict) --* Multiplex Group Settings

          - **RtmpGroupSettings** *(dict) --* Rtmp Group Settings

            - **AuthenticationScheme** *(string) --* Authentication scheme to use when connecting
            with CDN

            - **CacheFullBehavior** *(string) --* Controls behavior when content cache fills up. If
            remote origin server stalls the RTMP connection and does not accept content fast enough
            the 'Media Cache' will fill up. When the cache reaches the duration specified by
            cacheLength the cache will stop accepting new content. If set to disconnectImmediately,
            the RTMP output will force a disconnect. Clear the media cache, and reconnect after
            restartDelay seconds. If set to waitForServer, the RTMP output will wait up to 5 minutes
            to allow the origin server to begin accepting data again.

            - **CacheLength** *(integer) --* Cache length, in seconds, is used to calculate buffer
            size.

            - **CaptionData** *(string) --* Controls the types of data that passes to onCaptionInfo
            outputs. If set to 'all' then 608 and 708 carried DTVCC data will be passed. If set to
            'field1AndField2608' then DTVCC data will be stripped out, but 608 data from both fields
            will be passed. If set to 'field1608' then only the data carried in 608 from field 1
            video will be passed.

            - **InputLossAction** *(string) --* Controls the behavior of this RTMP group if input
            becomes unavailable. - emitOutput: Emit a slate until input returns. - pauseOutput: Stop
            transmitting data until input returns. This does not close the underlying RTMP
            connection.

            - **RestartDelay** *(integer) --* If a streaming output fails, number of seconds to wait
            until a restart is initiated. A value of 0 means never restart.

          - **UdpGroupSettings** *(dict) --* Udp Group Settings

            - **InputLossAction** *(string) --* Specifies behavior of last resort when input video
            is lost, and no more backup inputs are available. When dropTs is selected the entire
            transport stream will stop being emitted. When dropProgram is selected the program can
            be dropped from the transport stream (and replaced with null packets to meet the TS
            bitrate requirement). Or, when emitProgram is chosen the transport stream will continue
            to be produced normally with repeat frames, black frames, or slate frames substituted
            for the absent input video.

            - **TimedMetadataId3Frame** *(string) --* Indicates ID3 frame that has the timecode.

            - **TimedMetadataId3Period** *(integer) --* Timed Metadata interval in seconds.

        - **Outputs** *(list) --* Placeholder documentation for __listOfOutput

          - *(dict) --* Output settings. There can be multiple outputs within a group.

            - **AudioDescriptionNames** *(list) --* The names of the AudioDescriptions used as audio
            sources for this output.

              - *(string) --* Placeholder documentation for __string

            - **CaptionDescriptionNames** *(list) --* The names of the CaptionDescriptions used as
            caption sources for this output.

              - *(string) --* Placeholder documentation for __string

            - **OutputName** *(string) --* The name used to identify an output.

            - **OutputSettings** *(dict) --* Output type-specific settings.

              - **ArchiveOutputSettings** *(dict) --* Archive Output Settings

                - **ContainerSettings** *(dict) --* Settings specific to the container type of the
                file.

                  - **M2tsSettings** *(dict) --* M2ts Settings

                    - **AbsentInputAudioBehavior** *(string) --* When set to drop, output audio
                    streams will be removed from the program if the selected input audio stream is
                    removed from the input. This allows the output audio configuration to
                    dynamically change based on input configuration. If this is set to
                    encodeSilence, all output audio streams will output encoded silence when not
                    connected to an active input stream.

                    - **Arib** *(string) --* When set to enabled, uses ARIB-compliant field muxing
                    and removes video descriptor.

                    - **AribCaptionsPid** *(string) --* Packet Identifier (PID) for ARIB Captions in
                    the transport stream. Can be entered as a decimal or hexadecimal value. Valid
                    values are 32 (or 0x20)..8182 (or 0x1ff6).

                    - **AribCaptionsPidControl** *(string) --* If set to auto, pid number used for
                    ARIB Captions will be auto-selected from unused pids. If set to useConfigured,
                    ARIB Captions will be on the configured pid number.

                    - **AudioBufferModel** *(string) --* When set to dvb, uses DVB buffer model for
                    Dolby Digital audio. When set to atsc, the ATSC model is used.

                    - **AudioFramesPerPes** *(integer) --* The number of audio frames to insert for
                    each PES packet.

                    - **AudioPids** *(string) --* Packet Identifier (PID) of the elementary audio
                    stream(s) in the transport stream. Multiple values are accepted, and can be
                    entered in ranges and/or by comma separation. Can be entered as decimal or
                    hexadecimal values. Each PID specified must be in the range of 32 (or
                    0x20)..8182 (or 0x1ff6).

                    - **AudioStreamType** *(string) --* When set to atsc, uses stream type = 0x81
                    for AC3 and stream type =
                         0x87 for EAC3. When set to dvb, uses stream type =
                    0x06.

                    - **Bitrate** *(integer) --* The output bitrate of the transport stream in bits
                    per second. Setting to 0 lets the muxer automatically determine the appropriate
                    bitrate.

                    - **BufferModel** *(string) --* If set to multiplex, use multiplex buffer model
                    for accurate interleaving. Setting to bufferModel to none can lead to lower
                    latency, but low-memory devices may not be able to play back the stream without
                    interruptions.

                    - **CcDescriptor** *(string) --* When set to enabled, generates
                    captionServiceDescriptor in PMT.

                    - **DvbNitSettings** *(dict) --* Inserts DVB Network Information Table (NIT) at
                    the specified table repetition interval.

                      - **NetworkId** *(integer) --* The numeric value placed in the Network
                      Information Table (NIT).

                      - **NetworkName** *(string) --* The network name text placed in the
                      networkNameDescriptor inside the Network Information Table. Maximum length is
                      256 characters.

                      - **RepInterval** *(integer) --* The number of milliseconds between instances
                      of this table in the output transport stream.

                    - **DvbSdtSettings** *(dict) --* Inserts DVB Service Description Table (SDT) at
                    the specified table repetition interval.

                      - **OutputSdt** *(string) --* Selects method of inserting SDT information into
                      output stream. The sdtFollow setting copies SDT information from input stream
                      to output stream. The sdtFollowIfPresent setting copies SDT information from
                      input stream to output stream if SDT information is present in the input,
                      otherwise it will fall back on the user-defined values. The sdtManual setting
                      means user will enter the SDT information. The sdtNone setting means output
                      stream will not contain SDT information.

                      - **RepInterval** *(integer) --* The number of milliseconds between instances
                      of this table in the output transport stream.

                      - **ServiceName** *(string) --* The service name placed in the
                      serviceDescriptor in the Service Description Table. Maximum length is 256
                      characters.

                      - **ServiceProviderName** *(string) --* The service provider name placed in
                      the serviceDescriptor in the Service Description Table. Maximum length is 256
                      characters.

                    - **DvbSubPids** *(string) --* Packet Identifier (PID) for input source DVB
                    Subtitle data to this output. Multiple values are accepted, and can be entered
                    in ranges and/or by comma separation. Can be entered as decimal or hexadecimal
                    values. Each PID specified must be in the range of 32 (or 0x20)..8182 (or
                    0x1ff6).

                    - **DvbTdtSettings** *(dict) --* Inserts DVB Time and Date Table (TDT) at the
                    specified table repetition interval.

                      - **RepInterval** *(integer) --* The number of milliseconds between instances
                      of this table in the output transport stream.

                    - **DvbTeletextPid** *(string) --* Packet Identifier (PID) for input source DVB
                    Teletext data to this output. Can be entered as a decimal or hexadecimal value.
                    Valid values are 32 (or 0x20)..8182 (or 0x1ff6).

                    - **Ebif** *(string) --* If set to passthrough, passes any EBIF data from the
                    input source to this output.

                    - **EbpAudioInterval** *(string) --* When videoAndFixedIntervals is selected,
                    audio EBP markers will be added to partitions 3 and 4. The interval between
                    these additional markers will be fixed, and will be slightly shorter than the
                    video EBP marker interval. Only available when EBP Cablelabs segmentation
                    markers are selected. Partitions 1 and 2 will always follow the video interval.

                    - **EbpLookaheadMs** *(integer) --* When set, enforces that Encoder Boundary
                    Points do not come within the specified time interval of each other by looking
                    ahead at input video. If another EBP is going to come in within the specified
                    time interval, the current EBP is not emitted, and the segment is "stretched" to
                    the next marker. The lookahead value does not add latency to the system. The
                    Live Event must be configured elsewhere to create sufficient latency to make the
                    lookahead accurate.

                    - **EbpPlacement** *(string) --* Controls placement of EBP on Audio PIDs. If set
                    to videoAndAudioPids, EBP markers will be placed on the video PID and all audio
                    PIDs. If set to videoPid, EBP markers will be placed on only the video PID.

                    - **EcmPid** *(string) --* This field is unused and deprecated.

                    - **EsRateInPes** *(string) --* Include or exclude the ES Rate field in the PES
                    header.

                    - **EtvPlatformPid** *(string) --* Packet Identifier (PID) for input source ETV
                    Platform data to this output. Can be entered as a decimal or hexadecimal value.
                    Valid values are 32 (or 0x20)..8182 (or 0x1ff6).

                    - **EtvSignalPid** *(string) --* Packet Identifier (PID) for input source ETV
                    Signal data to this output. Can be entered as a decimal or hexadecimal value.
                    Valid values are 32 (or 0x20)..8182 (or 0x1ff6).

                    - **FragmentTime** *(float) --* The length in seconds of each fragment. Only
                    used with EBP markers.

                    - **Klv** *(string) --* If set to passthrough, passes any KLV data from the
                    input source to this output.

                    - **KlvDataPids** *(string) --* Packet Identifier (PID) for input source KLV
                    data to this output. Multiple values are accepted, and can be entered in ranges
                    and/or by comma separation. Can be entered as decimal or hexadecimal values.
                    Each PID specified must be in the range of 32 (or 0x20)..8182 (or 0x1ff6).

                    - **NielsenId3Behavior** *(string) --* If set to passthrough, Nielsen inaudible
                    tones for media tracking will be detected in the input audio and an equivalent
                    ID3 tag will be inserted in the output.

                    - **NullPacketBitrate** *(float) --* Value in bits per second of extra null
                    packets to insert into the transport stream. This can be used if a downstream
                    encryption system requires periodic null packets.

                    - **PatInterval** *(integer) --* The number of milliseconds between instances of
                    this table in the output transport stream. Valid values are 0, 10..1000.

                    - **PcrControl** *(string) --* When set to pcrEveryPesPacket, a Program Clock
                    Reference value is inserted for every Packetized Elementary Stream (PES) header.
                    This parameter is effective only when the PCR PID is the same as the video or
                    audio elementary stream.

                    - **PcrPeriod** *(integer) --* Maximum time in milliseconds between Program
                    Clock Reference (PCRs) inserted into the transport stream.

                    - **PcrPid** *(string) --* Packet Identifier (PID) of the Program Clock
                    Reference (PCR) in the transport stream. When no value is given, the encoder
                    will assign the same value as the Video PID. Can be entered as a decimal or
                    hexadecimal value. Valid values are 32 (or 0x20)..8182 (or 0x1ff6).

                    - **PmtInterval** *(integer) --* The number of milliseconds between instances of
                    this table in the output transport stream. Valid values are 0, 10..1000.

                    - **PmtPid** *(string) --* Packet Identifier (PID) for the Program Map Table
                    (PMT) in the transport stream. Can be entered as a decimal or hexadecimal value.
                    Valid values are 32 (or 0x20)..8182 (or 0x1ff6).

                    - **ProgramNum** *(integer) --* The value of the program number field in the
                    Program Map Table.

                    - **RateMode** *(string) --* When vbr, does not insert null packets into
                    transport stream to fill specified bitrate. The bitrate setting acts as the
                    maximum bitrate when vbr is set.

                    - **Scte27Pids** *(string) --* Packet Identifier (PID) for input source SCTE-27
                    data to this output. Multiple values are accepted, and can be entered in ranges
                    and/or by comma separation. Can be entered as decimal or hexadecimal values.
                    Each PID specified must be in the range of 32 (or 0x20)..8182 (or 0x1ff6).

                    - **Scte35Control** *(string) --* Optionally pass SCTE-35 signals from the input
                    source to this output.

                    - **Scte35Pid** *(string) --* Packet Identifier (PID) of the SCTE-35 stream in
                    the transport stream. Can be entered as a decimal or hexadecimal value. Valid
                    values are 32 (or 0x20)..8182 (or 0x1ff6).

                    - **SegmentationMarkers** *(string) --* Inserts segmentation markers at each
                    segmentationTime period. raiSegstart sets the Random Access Indicator bit in the
                    adaptation field. raiAdapt sets the RAI bit and adds the current timecode in the
                    private data bytes. psiSegstart inserts PAT and PMT tables at the start of
                    segments. ebp adds Encoder Boundary Point information to the adaptation field as
                    per OpenCable specification OC-SP-EBP-I01-130118. ebpLegacy adds Encoder
                    Boundary Point information to the adaptation field using a legacy proprietary
                    format.

                    - **SegmentationStyle** *(string) --* The segmentation style parameter controls
                    how segmentation markers are inserted into the transport stream. With avails, it
                    is possible that segments may be truncated, which can influence where future
                    segmentation markers are inserted. When a segmentation style of "resetCadence"
                    is selected and a segment is truncated due to an avail, we will reset the
                    segmentation cadence. This means the subsequent segment will have a duration of
                    $segmentationTime seconds. When a segmentation style of "maintainCadence" is
                    selected and a segment is truncated due to an avail, we will not reset the
                    segmentation cadence. This means the subsequent segment will likely be truncated
                    as well. However, all segments after that will have a duration of
                    $segmentationTime seconds. Note that EBP lookahead is a slight exception to this
                    rule.

                    - **SegmentationTime** *(float) --* The length in seconds of each segment.
                    Required unless markers is set to None_.

                    - **TimedMetadataBehavior** *(string) --* When set to passthrough, timed
                    metadata will be passed through from input to output.

                    - **TimedMetadataPid** *(string) --* Packet Identifier (PID) of the timed
                    metadata stream in the transport stream. Can be entered as a decimal or
                    hexadecimal value. Valid values are 32 (or 0x20)..8182 (or 0x1ff6).

                    - **TransportStreamId** *(integer) --* The value of the transport stream ID
                    field in the Program Map Table.

                    - **VideoPid** *(string) --* Packet Identifier (PID) of the elementary video
                    stream in the transport stream. Can be entered as a decimal or hexadecimal
                    value. Valid values are 32 (or 0x20)..8182 (or 0x1ff6).

                - **Extension** *(string) --* Output file extension. If excluded, this will be
                auto-selected from the container type.

                - **NameModifier** *(string) --* String concatenated to the end of the destination
                filename. Required for multiple outputs of the same type.

              - **FrameCaptureOutputSettings** *(dict) --* Frame Capture Output Settings

                - **NameModifier** *(string) --* Required if the output group contains more than one
                output. This modifier forms part of the output file name.

              - **HlsOutputSettings** *(dict) --* Hls Output Settings

                - **HlsSettings** *(dict) --* Settings regarding the underlying stream. These
                settings are different for audio-only outputs.

                  - **AudioOnlyHlsSettings** *(dict) --* Audio Only Hls Settings

                    - **AudioGroupId** *(string) --* Specifies the group to which the audio
                    Rendition belongs.

                    - **AudioOnlyImage** *(dict) --* Optional. Specifies the .jpg or .png image to
                    use as the cover art for an audio-only output. We recommend a low bit-size file
                    because the image increases the output audio bandwidth. The image is attached to
                    the audio as an ID3 tag, frame type APIC, picture type 0x10, as per the "ID3 tag
                    version 2.4.0 - Native Frames" standard.

                      - **PasswordParam** *(string) --* key used to extract the password from EC2
                      Parameter store

                      - **Uri** *(string) --* Uniform Resource Identifier - This should be a path to
                      a file accessible to the Live system (eg. a http:// URI) depending on the
                      output type. For example, a RTMP destination should have a uri simliar to:
                      "rtmp://fmsserver/live".

                      - **Username** *(string) --* Documentation update needed

                    - **AudioTrackType** *(string) --* Four types of audio-only tracks are
                    supported: Audio-Only Variant Stream The client can play back this audio-only
                    stream instead of video in low-bandwidth scenarios. Represented as an
                    EXT-X-STREAM-INF in the HLS manifest. Alternate Audio, Auto Select, Default
                    Alternate rendition that the client should try to play back by default.
                    Represented as an EXT-X-MEDIA in the HLS manifest with DEFAULT=
                        YES,
                    AUTOSELECT=
                        YES Alternate Audio, Auto Select, Not Default Alternate rendition
                    that the client may try to play back by default. Represented as an EXT-X-MEDIA
                    in the HLS manifest with DEFAULT=NO, AUTOSELECT=
                        YES Alternate Audio, not Auto
                    Select Alternate rendition that the client will not try to play back by default.
                    Represented as an EXT-X-MEDIA in the HLS manifest with DEFAULT=
                        NO, AUTOSELECT=NO

                  - **StandardHlsSettings** *(dict) --* Standard Hls Settings

                    - **AudioRenditionSets** *(string) --* List all the audio groups that are used
                    with the video output stream. Input all the audio GROUP-IDs that are associated
                    to the video, separate by ','.

                    - **M3u8Settings** *(dict) --* Settings information for the .m3u8 container

                      - **AudioFramesPerPes** *(integer) --* The number of audio frames to insert
                      for each PES packet.

                      - **AudioPids** *(string) --* Packet Identifier (PID) of the elementary audio
                      stream(s) in the transport stream. Multiple values are accepted, and can be
                      entered in ranges and/or by comma separation. Can be entered as decimal or
                      hexadecimal values.

                      - **EcmPid** *(string) --* This parameter is unused and deprecated.

                      - **NielsenId3Behavior** *(string) --* If set to passthrough, Nielsen
                      inaudible tones for media tracking will be detected in the input audio and an
                      equivalent ID3 tag will be inserted in the output.

                      - **PatInterval** *(integer) --* The number of milliseconds between instances
                      of this table in the output transport stream. A value of \\"0\\" writes out
                      the PMT once per segment file.

                      - **PcrControl** *(string) --* When set to pcrEveryPesPacket, a Program Clock
                      Reference value is inserted for every Packetized Elementary Stream (PES)
                      header. This parameter is effective only when the PCR PID is the same as the
                      video or audio elementary stream.

                      - **PcrPeriod** *(integer) --* Maximum time in milliseconds between Program
                      Clock References (PCRs) inserted into the transport stream.

                      - **PcrPid** *(string) --* Packet Identifier (PID) of the Program Clock
                      Reference (PCR) in the transport stream. When no value is given, the encoder
                      will assign the same value as the Video PID. Can be entered as a decimal or
                      hexadecimal value.

                      - **PmtInterval** *(integer) --* The number of milliseconds between instances
                      of this table in the output transport stream. A value of \\"0\\" writes out
                      the PMT once per segment file.

                      - **PmtPid** *(string) --* Packet Identifier (PID) for the Program Map Table
                      (PMT) in the transport stream. Can be entered as a decimal or hexadecimal
                      value.

                      - **ProgramNum** *(integer) --* The value of the program number field in the
                      Program Map Table.

                      - **Scte35Behavior** *(string) --* If set to passthrough, passes any SCTE-35
                      signals from the input source to this output.

                      - **Scte35Pid** *(string) --* Packet Identifier (PID) of the SCTE-35 stream in
                      the transport stream. Can be entered as a decimal or hexadecimal value.

                      - **TimedMetadataBehavior** *(string) --* When set to passthrough, timed
                      metadata is passed through from input to output.

                      - **TimedMetadataPid** *(string) --* Packet Identifier (PID) of the timed
                      metadata stream in the transport stream. Can be entered as a decimal or
                      hexadecimal value. Valid values are 32 (or 0x20)..8182 (or 0x1ff6).

                      - **TransportStreamId** *(integer) --* The value of the transport stream ID
                      field in the Program Map Table.

                      - **VideoPid** *(string) --* Packet Identifier (PID) of the elementary video
                      stream in the transport stream. Can be entered as a decimal or hexadecimal
                      value.

                - **NameModifier** *(string) --* String concatenated to the end of the destination
                filename. Accepts \\"Format Identifiers\\":#formatIdentifierParameters.

                - **SegmentModifier** *(string) --* String concatenated to end of segment filenames.

              - **MediaPackageOutputSettings** *(dict) --* Media Package Output Settings

              - **MsSmoothOutputSettings** *(dict) --* Ms Smooth Output Settings

                - **H265PackagingType** *(string) --* Only applicable when this output is
                referencing an H.265 video description. Specifies whether MP4 segments should be
                packaged as HEV1 or HVC1.

                - **NameModifier** *(string) --* String concatenated to the end of the destination
                filename. Required for multiple outputs of the same type.

              - **MultiplexOutputSettings** *(dict) --* Multiplex Output Settings

                - **Destination** *(dict) --* Destination is a Multiplex.

                  - **DestinationRefId** *(string) --* Placeholder documentation for __string

              - **RtmpOutputSettings** *(dict) --* Rtmp Output Settings

                - **CertificateMode** *(string) --* If set to verifyAuthenticity, verify the tls
                certificate chain to a trusted Certificate Authority (CA). This will cause rtmps
                outputs with self-signed certificates to fail.

                - **ConnectionRetryInterval** *(integer) --* Number of seconds to wait before
                retrying a connection to the Flash Media server if the connection is lost.

                - **Destination** *(dict) --* The RTMP endpoint excluding the stream name (eg.
                rtmp://host/appname). For connection to Akamai, a username and password must be
                supplied. URI fields accept format identifiers.

                  - **DestinationRefId** *(string) --* Placeholder documentation for __string

                - **NumRetries** *(integer) --* Number of retry attempts.

              - **UdpOutputSettings** *(dict) --* Udp Output Settings

                - **BufferMsec** *(integer) --* UDP output buffering in milliseconds. Larger values
                increase latency through the transcoder but simultaneously assist the transcoder in
                maintaining a constant, low-jitter UDP/RTP output while accommodating clock
                recovery, input switching, input disruptions, picture reordering, etc.

                - **ContainerSettings** *(dict) --* Udp Container Settings

                  - **M2tsSettings** *(dict) --* M2ts Settings

                    - **AbsentInputAudioBehavior** *(string) --* When set to drop, output audio
                    streams will be removed from the program if the selected input audio stream is
                    removed from the input. This allows the output audio configuration to
                    dynamically change based on input configuration. If this is set to
                    encodeSilence, all output audio streams will output encoded silence when not
                    connected to an active input stream.

                    - **Arib** *(string) --* When set to enabled, uses ARIB-compliant field muxing
                    and removes video descriptor.

                    - **AribCaptionsPid** *(string) --* Packet Identifier (PID) for ARIB Captions in
                    the transport stream. Can be entered as a decimal or hexadecimal value. Valid
                    values are 32 (or 0x20)..8182 (or 0x1ff6).

                    - **AribCaptionsPidControl** *(string) --* If set to auto, pid number used for
                    ARIB Captions will be auto-selected from unused pids. If set to useConfigured,
                    ARIB Captions will be on the configured pid number.

                    - **AudioBufferModel** *(string) --* When set to dvb, uses DVB buffer model for
                    Dolby Digital audio. When set to atsc, the ATSC model is used.

                    - **AudioFramesPerPes** *(integer) --* The number of audio frames to insert for
                    each PES packet.

                    - **AudioPids** *(string) --* Packet Identifier (PID) of the elementary audio
                    stream(s) in the transport stream. Multiple values are accepted, and can be
                    entered in ranges and/or by comma separation. Can be entered as decimal or
                    hexadecimal values. Each PID specified must be in the range of 32 (or
                    0x20)..8182 (or 0x1ff6).

                    - **AudioStreamType** *(string) --* When set to atsc, uses stream type = 0x81
                    for AC3 and stream type =
                         0x87 for EAC3. When set to dvb, uses stream type =
                    0x06.

                    - **Bitrate** *(integer) --* The output bitrate of the transport stream in bits
                    per second. Setting to 0 lets the muxer automatically determine the appropriate
                    bitrate.

                    - **BufferModel** *(string) --* If set to multiplex, use multiplex buffer model
                    for accurate interleaving. Setting to bufferModel to none can lead to lower
                    latency, but low-memory devices may not be able to play back the stream without
                    interruptions.

                    - **CcDescriptor** *(string) --* When set to enabled, generates
                    captionServiceDescriptor in PMT.

                    - **DvbNitSettings** *(dict) --* Inserts DVB Network Information Table (NIT) at
                    the specified table repetition interval.

                      - **NetworkId** *(integer) --* The numeric value placed in the Network
                      Information Table (NIT).

                      - **NetworkName** *(string) --* The network name text placed in the
                      networkNameDescriptor inside the Network Information Table. Maximum length is
                      256 characters.

                      - **RepInterval** *(integer) --* The number of milliseconds between instances
                      of this table in the output transport stream.

                    - **DvbSdtSettings** *(dict) --* Inserts DVB Service Description Table (SDT) at
                    the specified table repetition interval.

                      - **OutputSdt** *(string) --* Selects method of inserting SDT information into
                      output stream. The sdtFollow setting copies SDT information from input stream
                      to output stream. The sdtFollowIfPresent setting copies SDT information from
                      input stream to output stream if SDT information is present in the input,
                      otherwise it will fall back on the user-defined values. The sdtManual setting
                      means user will enter the SDT information. The sdtNone setting means output
                      stream will not contain SDT information.

                      - **RepInterval** *(integer) --* The number of milliseconds between instances
                      of this table in the output transport stream.

                      - **ServiceName** *(string) --* The service name placed in the
                      serviceDescriptor in the Service Description Table. Maximum length is 256
                      characters.

                      - **ServiceProviderName** *(string) --* The service provider name placed in
                      the serviceDescriptor in the Service Description Table. Maximum length is 256
                      characters.

                    - **DvbSubPids** *(string) --* Packet Identifier (PID) for input source DVB
                    Subtitle data to this output. Multiple values are accepted, and can be entered
                    in ranges and/or by comma separation. Can be entered as decimal or hexadecimal
                    values. Each PID specified must be in the range of 32 (or 0x20)..8182 (or
                    0x1ff6).

                    - **DvbTdtSettings** *(dict) --* Inserts DVB Time and Date Table (TDT) at the
                    specified table repetition interval.

                      - **RepInterval** *(integer) --* The number of milliseconds between instances
                      of this table in the output transport stream.

                    - **DvbTeletextPid** *(string) --* Packet Identifier (PID) for input source DVB
                    Teletext data to this output. Can be entered as a decimal or hexadecimal value.
                    Valid values are 32 (or 0x20)..8182 (or 0x1ff6).

                    - **Ebif** *(string) --* If set to passthrough, passes any EBIF data from the
                    input source to this output.

                    - **EbpAudioInterval** *(string) --* When videoAndFixedIntervals is selected,
                    audio EBP markers will be added to partitions 3 and 4. The interval between
                    these additional markers will be fixed, and will be slightly shorter than the
                    video EBP marker interval. Only available when EBP Cablelabs segmentation
                    markers are selected. Partitions 1 and 2 will always follow the video interval.

                    - **EbpLookaheadMs** *(integer) --* When set, enforces that Encoder Boundary
                    Points do not come within the specified time interval of each other by looking
                    ahead at input video. If another EBP is going to come in within the specified
                    time interval, the current EBP is not emitted, and the segment is "stretched" to
                    the next marker. The lookahead value does not add latency to the system. The
                    Live Event must be configured elsewhere to create sufficient latency to make the
                    lookahead accurate.

                    - **EbpPlacement** *(string) --* Controls placement of EBP on Audio PIDs. If set
                    to videoAndAudioPids, EBP markers will be placed on the video PID and all audio
                    PIDs. If set to videoPid, EBP markers will be placed on only the video PID.

                    - **EcmPid** *(string) --* This field is unused and deprecated.

                    - **EsRateInPes** *(string) --* Include or exclude the ES Rate field in the PES
                    header.

                    - **EtvPlatformPid** *(string) --* Packet Identifier (PID) for input source ETV
                    Platform data to this output. Can be entered as a decimal or hexadecimal value.
                    Valid values are 32 (or 0x20)..8182 (or 0x1ff6).

                    - **EtvSignalPid** *(string) --* Packet Identifier (PID) for input source ETV
                    Signal data to this output. Can be entered as a decimal or hexadecimal value.
                    Valid values are 32 (or 0x20)..8182 (or 0x1ff6).

                    - **FragmentTime** *(float) --* The length in seconds of each fragment. Only
                    used with EBP markers.

                    - **Klv** *(string) --* If set to passthrough, passes any KLV data from the
                    input source to this output.

                    - **KlvDataPids** *(string) --* Packet Identifier (PID) for input source KLV
                    data to this output. Multiple values are accepted, and can be entered in ranges
                    and/or by comma separation. Can be entered as decimal or hexadecimal values.
                    Each PID specified must be in the range of 32 (or 0x20)..8182 (or 0x1ff6).

                    - **NielsenId3Behavior** *(string) --* If set to passthrough, Nielsen inaudible
                    tones for media tracking will be detected in the input audio and an equivalent
                    ID3 tag will be inserted in the output.

                    - **NullPacketBitrate** *(float) --* Value in bits per second of extra null
                    packets to insert into the transport stream. This can be used if a downstream
                    encryption system requires periodic null packets.

                    - **PatInterval** *(integer) --* The number of milliseconds between instances of
                    this table in the output transport stream. Valid values are 0, 10..1000.

                    - **PcrControl** *(string) --* When set to pcrEveryPesPacket, a Program Clock
                    Reference value is inserted for every Packetized Elementary Stream (PES) header.
                    This parameter is effective only when the PCR PID is the same as the video or
                    audio elementary stream.

                    - **PcrPeriod** *(integer) --* Maximum time in milliseconds between Program
                    Clock Reference (PCRs) inserted into the transport stream.

                    - **PcrPid** *(string) --* Packet Identifier (PID) of the Program Clock
                    Reference (PCR) in the transport stream. When no value is given, the encoder
                    will assign the same value as the Video PID. Can be entered as a decimal or
                    hexadecimal value. Valid values are 32 (or 0x20)..8182 (or 0x1ff6).

                    - **PmtInterval** *(integer) --* The number of milliseconds between instances of
                    this table in the output transport stream. Valid values are 0, 10..1000.

                    - **PmtPid** *(string) --* Packet Identifier (PID) for the Program Map Table
                    (PMT) in the transport stream. Can be entered as a decimal or hexadecimal value.
                    Valid values are 32 (or 0x20)..8182 (or 0x1ff6).

                    - **ProgramNum** *(integer) --* The value of the program number field in the
                    Program Map Table.

                    - **RateMode** *(string) --* When vbr, does not insert null packets into
                    transport stream to fill specified bitrate. The bitrate setting acts as the
                    maximum bitrate when vbr is set.

                    - **Scte27Pids** *(string) --* Packet Identifier (PID) for input source SCTE-27
                    data to this output. Multiple values are accepted, and can be entered in ranges
                    and/or by comma separation. Can be entered as decimal or hexadecimal values.
                    Each PID specified must be in the range of 32 (or 0x20)..8182 (or 0x1ff6).

                    - **Scte35Control** *(string) --* Optionally pass SCTE-35 signals from the input
                    source to this output.

                    - **Scte35Pid** *(string) --* Packet Identifier (PID) of the SCTE-35 stream in
                    the transport stream. Can be entered as a decimal or hexadecimal value. Valid
                    values are 32 (or 0x20)..8182 (or 0x1ff6).

                    - **SegmentationMarkers** *(string) --* Inserts segmentation markers at each
                    segmentationTime period. raiSegstart sets the Random Access Indicator bit in the
                    adaptation field. raiAdapt sets the RAI bit and adds the current timecode in the
                    private data bytes. psiSegstart inserts PAT and PMT tables at the start of
                    segments. ebp adds Encoder Boundary Point information to the adaptation field as
                    per OpenCable specification OC-SP-EBP-I01-130118. ebpLegacy adds Encoder
                    Boundary Point information to the adaptation field using a legacy proprietary
                    format.

                    - **SegmentationStyle** *(string) --* The segmentation style parameter controls
                    how segmentation markers are inserted into the transport stream. With avails, it
                    is possible that segments may be truncated, which can influence where future
                    segmentation markers are inserted. When a segmentation style of "resetCadence"
                    is selected and a segment is truncated due to an avail, we will reset the
                    segmentation cadence. This means the subsequent segment will have a duration of
                    $segmentationTime seconds. When a segmentation style of "maintainCadence" is
                    selected and a segment is truncated due to an avail, we will not reset the
                    segmentation cadence. This means the subsequent segment will likely be truncated
                    as well. However, all segments after that will have a duration of
                    $segmentationTime seconds. Note that EBP lookahead is a slight exception to this
                    rule.

                    - **SegmentationTime** *(float) --* The length in seconds of each segment.
                    Required unless markers is set to None_.

                    - **TimedMetadataBehavior** *(string) --* When set to passthrough, timed
                    metadata will be passed through from input to output.

                    - **TimedMetadataPid** *(string) --* Packet Identifier (PID) of the timed
                    metadata stream in the transport stream. Can be entered as a decimal or
                    hexadecimal value. Valid values are 32 (or 0x20)..8182 (or 0x1ff6).

                    - **TransportStreamId** *(integer) --* The value of the transport stream ID
                    field in the Program Map Table.

                    - **VideoPid** *(string) --* Packet Identifier (PID) of the elementary video
                    stream in the transport stream. Can be entered as a decimal or hexadecimal
                    value. Valid values are 32 (or 0x20)..8182 (or 0x1ff6).

                - **Destination** *(dict) --* Destination address and port number for RTP or UDP
                packets. Can be unicast or multicast RTP or UDP (eg. rtp://239.10.10.10:5001 or
                udp://10.100.100.100:5002).

                  - **DestinationRefId** *(string) --* Placeholder documentation for __string

                - **FecOutputSettings** *(dict) --* Settings for enabling and adjusting Forward
                Error Correction on UDP outputs.

                  - **ColumnDepth** *(integer) --* Parameter D from SMPTE 2022-1. The height of the
                  FEC protection matrix. The number of transport stream packets per column error
                  correction packet. Must be between 4 and 20, inclusive.

                  - **IncludeFec** *(string) --* Enables column only or column and row based FEC

                  - **RowLength** *(integer) --* Parameter L from SMPTE 2022-1. The width of the FEC
                  protection matrix. Must be between 1 and 20, inclusive. If only Column FEC is
                  used, then larger values increase robustness. If Row FEC is used, then this is the
                  number of transport stream packets per row error correction packet, and the value
                  must be between 4 and 20, inclusive, if includeFec is columnAndRow. If includeFec
                  is column, this value must be 1 to 20, inclusive.

            - **VideoDescriptionName** *(string) --* The name of the VideoDescription used as the
            source for this output.

    - **TimecodeConfig** *(dict) --* Contains settings used to acquire and adjust timecode
    information from inputs.

      - **Source** *(string) --* Identifies the source for the timecode that will be associated with
      the events outputs. -Embedded (embedded): Initialize the output timecode with timecode from
      the the source. If no embedded timecode is detected in the source, the system falls back to
      using "Start at 0" (zerobased). -System Clock (systemclock): Use the UTC time. -Start at 0
      (zerobased): The time of the first frame of the event will be 00:00:00:00.

      - **SyncThreshold** *(integer) --* Threshold in frames beyond which output timecode is
      resynchronized to the input timecode. Discrepancies below this threshold are permitted to
      avoid unnecessary discontinuities in the output timecode. No timecode sync when this is not
      specified.

    - **VideoDescriptions** *(list) --* Placeholder documentation for __listOfVideoDescription

      - *(dict) --* Video settings for this stream.

        - **CodecSettings** *(dict) --* Video codec settings.

          - **FrameCaptureSettings** *(dict) --* Frame Capture Settings

            - **CaptureInterval** *(integer) --* The frequency at which to capture frames for
            inclusion in the output. May be specified in either seconds or milliseconds, as
            specified by captureIntervalUnits.

          - **H264Settings** *(dict) --* H264 Settings

            - **AdaptiveQuantization** *(string) --* Adaptive quantization. Allows intra-frame
            quantizers to vary to improve visual quality.

            - **AfdSignaling** *(string) --* Indicates that AFD values will be written into the
            output stream. If afdSignaling is "auto", the system will try to preserve the input AFD
            value (in cases where multiple AFD values are valid). If set to "fixed", the AFD value
            will be the value configured in the fixedAfd parameter.

            - **Bitrate** *(integer) --* Average bitrate in bits/second. Required when the rate
            control mode is VBR or CBR. Not used for QVBR. In an MS Smooth output group, each output
            must have a unique value when its bitrate is rounded down to the nearest multiple of
            1000.

            - **BufFillPct** *(integer) --* Percentage of the buffer that should initially be filled
            (HRD buffer model).

            - **BufSize** *(integer) --* Size of buffer (HRD buffer model) in bits.

            - **ColorMetadata** *(string) --* Includes colorspace metadata in the output.

            - **ColorSpaceSettings** *(dict) --* Color Space settings

              - **ColorSpacePassthroughSettings** *(dict) --* Passthrough applies no color space
              conversion to the output

              - **Rec601Settings** *(dict) --* Rec601 Settings

              - **Rec709Settings** *(dict) --* Rec709 Settings

            - **EntropyEncoding** *(string) --* Entropy encoding mode. Use cabac (must be in Main or
            High profile) or cavlc.

            - **FixedAfd** *(string) --* Four bit AFD value to write on all frames of video in the
            output stream. Only valid when afdSignaling is set to 'Fixed'.

            - **FlickerAq** *(string) --* If set to enabled, adjust quantization within each frame
            to reduce flicker or 'pop' on I-frames.

            - **FramerateControl** *(string) --* This field indicates how the output video frame
            rate is specified. If "specified" is selected then the output video frame rate is
            determined by framerateNumerator and framerateDenominator, else if
            "initializeFromSource" is selected then the output video frame rate will be set equal to
            the input video frame rate of the first input.

            - **FramerateDenominator** *(integer) --* Framerate denominator.

            - **FramerateNumerator** *(integer) --* Framerate numerator - framerate is a fraction,
            e.g. 24000 / 1001 = 23.976 fps.

            - **GopBReference** *(string) --* Documentation update needed

            - **GopClosedCadence** *(integer) --* Frequency of closed GOPs. In streaming
            applications, it is recommended that this be set to 1 so a decoder joining mid-stream
            will receive an IDR frame as quickly as possible. Setting this value to 0 will break
            output segmenting.

            - **GopNumBFrames** *(integer) --* Number of B-frames between reference frames.

            - **GopSize** *(float) --* GOP size (keyframe interval) in units of either frames or
            seconds per gopSizeUnits. If gopSizeUnits is frames, gopSize must be an integer and must
            be greater than or equal to 1. If gopSizeUnits is seconds, gopSize must be greater than
            0, but need not be an integer.

            - **GopSizeUnits** *(string) --* Indicates if the gopSize is specified in frames or
            seconds. If seconds the system will convert the gopSize into a frame count at run time.

            - **Level** *(string) --* H.264 Level.

            - **LookAheadRateControl** *(string) --* Amount of lookahead. A value of low can
            decrease latency and memory usage, while high can produce better quality for certain
            content.

            - **MaxBitrate** *(integer) --* For QVBR: See the tooltip for Quality level For VBR: Set
            the maximum bitrate in order to accommodate expected spikes in the complexity of the
            video.

            - **MinIInterval** *(integer) --* Only meaningful if sceneChangeDetect is set to
            enabled. Defaults to 5 if multiplex rate control is used. Enforces separation between
            repeated (cadence) I-frames and I-frames inserted by Scene Change Detection. If a scene
            change I-frame is within I-interval frames of a cadence I-frame, the GOP is shrunk
            and/or stretched to the scene change I-frame. GOP stretch requires enabling lookahead as
            well as setting I-interval. The normal cadence resumes for the next GOP. Note: Maximum
            GOP stretch = GOP size + Min-I-interval - 1

            - **NumRefFrames** *(integer) --* Number of reference frames to use. The encoder may use
            more than requested if using B-frames and/or interlaced encoding.

            - **ParControl** *(string) --* This field indicates how the output pixel aspect ratio is
            specified. If "specified" is selected then the output video pixel aspect ratio is
            determined by parNumerator and parDenominator, else if "initializeFromSource" is
            selected then the output pixsel aspect ratio will be set equal to the input video pixel
            aspect ratio of the first input.

            - **ParDenominator** *(integer) --* Pixel Aspect Ratio denominator.

            - **ParNumerator** *(integer) --* Pixel Aspect Ratio numerator.

            - **Profile** *(string) --* H.264 Profile.

            - **QvbrQualityLevel** *(integer) --* Controls the target quality for the video encode.
            Applies only when the rate control mode is QVBR. Set values for the QVBR quality level
            field and Max bitrate field that suit your most important viewing devices. Recommended
            values are: - Primary screen: Quality level: 8 to 10. Max bitrate: 4M - PC or tablet:
            Quality level: 7. Max bitrate: 1.5M to 3M - Smartphone: Quality level: 6. Max bitrate:
            1M to 1.5M

            - **RateControlMode** *(string) --* Rate control mode. QVBR: Quality will match the
            specified quality level except when it is constrained by the maximum bitrate.
            Recommended if you or your viewers pay for bandwidth. VBR: Quality and bitrate vary,
            depending on the video complexity. Recommended instead of QVBR if you want to maintain a
            specific average bitrate over the duration of the channel. CBR: Quality varies,
            depending on the video complexity. Recommended only if you distribute your assets to
            devices that cannot handle variable bitrates.

            - **ScanType** *(string) --* Sets the scan type of the output to progressive or
            top-field-first interlaced.

            - **SceneChangeDetect** *(string) --* Scene change detection. - On: inserts I-frames
            when scene change is detected. - Off: does not force an I-frame when scene change is
            detected.

            - **Slices** *(integer) --* Number of slices per picture. Must be less than or equal to
            the number of macroblock rows for progressive pictures, and less than or equal to half
            the number of macroblock rows for interlaced pictures. This field is optional; when no
            value is specified the encoder will choose the number of slices based on encode
            resolution.

            - **Softness** *(integer) --* Softness. Selects quantizer matrix, larger values reduce
            high-frequency content in the encoded image.

            - **SpatialAq** *(string) --* If set to enabled, adjust quantization within each frame
            based on spatial variation of content complexity.

            - **SubgopLength** *(string) --* If set to fixed, use gopNumBFrames B-frames per
            sub-GOP. If set to dynamic, optimize the number of B-frames used for each sub-GOP to
            improve visual quality.

            - **Syntax** *(string) --* Produces a bitstream compliant with SMPTE RP-2027.

            - **TemporalAq** *(string) --* If set to enabled, adjust quantization within each frame
            based on temporal variation of content complexity.

            - **TimecodeInsertion** *(string) --* Determines how timecodes should be inserted into
            the video elementary stream. - 'disabled': Do not include timecodes - 'picTimingSei':
            Pass through picture timing SEI messages from the source specified in Timecode Config

          - **H265Settings** *(dict) --* H265 Settings

            - **AdaptiveQuantization** *(string) --* Adaptive quantization. Allows intra-frame
            quantizers to vary to improve visual quality.

            - **AfdSignaling** *(string) --* Indicates that AFD values will be written into the
            output stream. If afdSignaling is "auto", the system will try to preserve the input AFD
            value (in cases where multiple AFD values are valid). If set to "fixed", the AFD value
            will be the value configured in the fixedAfd parameter.

            - **AlternativeTransferFunction** *(string) --* Whether or not EML should insert an
            Alternative Transfer Function SEI message to support backwards compatibility with
            non-HDR decoders and displays.

            - **Bitrate** *(integer) --* Average bitrate in bits/second. Required when the rate
            control mode is VBR or CBR. Not used for QVBR. In an MS Smooth output group, each output
            must have a unique value when its bitrate is rounded down to the nearest multiple of
            1000.

            - **BufSize** *(integer) --* Size of buffer (HRD buffer model) in bits.

            - **ColorMetadata** *(string) --* Includes colorspace metadata in the output.

            - **ColorSpaceSettings** *(dict) --* Color Space settings

              - **ColorSpacePassthroughSettings** *(dict) --* Passthrough applies no color space
              conversion to the output

              - **Hdr10Settings** *(dict) --* Hdr10 Settings

                - **MaxCll** *(integer) --* Maximum Content Light Level An integer metadata value
                defining the maximum light level, in nits, of any single pixel within an encoded HDR
                video stream or file.

                - **MaxFall** *(integer) --* Maximum Frame Average Light Level An integer metadata
                value defining the maximum average light level, in nits, for any single frame within
                an encoded HDR video stream or file.

              - **Rec601Settings** *(dict) --* Rec601 Settings

              - **Rec709Settings** *(dict) --* Rec709 Settings

            - **FixedAfd** *(string) --* Four bit AFD value to write on all frames of video in the
            output stream. Only valid when afdSignaling is set to 'Fixed'.

            - **FlickerAq** *(string) --* If set to enabled, adjust quantization within each frame
            to reduce flicker or 'pop' on I-frames.

            - **FramerateDenominator** *(integer) --* Framerate denominator.

            - **FramerateNumerator** *(integer) --* Framerate numerator - framerate is a fraction,
            e.g. 24000 / 1001 = 23.976 fps.

            - **GopClosedCadence** *(integer) --* Frequency of closed GOPs. In streaming
            applications, it is recommended that this be set to 1 so a decoder joining mid-stream
            will receive an IDR frame as quickly as possible. Setting this value to 0 will break
            output segmenting.

            - **GopSize** *(float) --* GOP size (keyframe interval) in units of either frames or
            seconds per gopSizeUnits. If gopSizeUnits is frames, gopSize must be an integer and must
            be greater than or equal to 1. If gopSizeUnits is seconds, gopSize must be greater than
            0, but need not be an integer.

            - **GopSizeUnits** *(string) --* Indicates if the gopSize is specified in frames or
            seconds. If seconds the system will convert the gopSize into a frame count at run time.

            - **Level** *(string) --* H.265 Level.

            - **LookAheadRateControl** *(string) --* Amount of lookahead. A value of low can
            decrease latency and memory usage, while high can produce better quality for certain
            content.

            - **MaxBitrate** *(integer) --* For QVBR: See the tooltip for Quality level

            - **MinIInterval** *(integer) --* Only meaningful if sceneChangeDetect is set to
            enabled. Defaults to 5 if multiplex rate control is used. Enforces separation between
            repeated (cadence) I-frames and I-frames inserted by Scene Change Detection. If a scene
            change I-frame is within I-interval frames of a cadence I-frame, the GOP is shrunk
            and/or stretched to the scene change I-frame. GOP stretch requires enabling lookahead as
            well as setting I-interval. The normal cadence resumes for the next GOP. Note: Maximum
            GOP stretch = GOP size + Min-I-interval - 1

            - **ParDenominator** *(integer) --* Pixel Aspect Ratio denominator.

            - **ParNumerator** *(integer) --* Pixel Aspect Ratio numerator.

            - **Profile** *(string) --* H.265 Profile.

            - **QvbrQualityLevel** *(integer) --* Controls the target quality for the video encode.
            Applies only when the rate control mode is QVBR. Set values for the QVBR quality level
            field and Max bitrate field that suit your most important viewing devices. Recommended
            values are: - Primary screen: Quality level: 8 to 10. Max bitrate: 4M - PC or tablet:
            Quality level: 7. Max bitrate: 1.5M to 3M - Smartphone: Quality level: 6. Max bitrate:
            1M to 1.5M

            - **RateControlMode** *(string) --* Rate control mode. QVBR: Quality will match the
            specified quality level except when it is constrained by the maximum bitrate.
            Recommended if you or your viewers pay for bandwidth. CBR: Quality varies, depending on
            the video complexity. Recommended only if you distribute your assets to devices that
            cannot handle variable bitrates.

            - **ScanType** *(string) --* Sets the scan type of the output to progressive or
            top-field-first interlaced.

            - **SceneChangeDetect** *(string) --* Scene change detection.

            - **Slices** *(integer) --* Number of slices per picture. Must be less than or equal to
            the number of macroblock rows for progressive pictures, and less than or equal to half
            the number of macroblock rows for interlaced pictures. This field is optional; when no
            value is specified the encoder will choose the number of slices based on encode
            resolution.

            - **Tier** *(string) --* H.265 Tier.

            - **TimecodeInsertion** *(string) --* Determines how timecodes should be inserted into
            the video elementary stream. - 'disabled': Do not include timecodes - 'picTimingSei':
            Pass through picture timing SEI messages from the source specified in Timecode Config

        - **Height** *(integer) --* Output video height, in pixels. Must be an even number. For most
        codecs, you can leave this field and width blank in order to use the height and width
        (resolution) from the source. Note, however, that leaving blank is not recommended. For the
        Frame Capture codec, height and width are required.

        - **Name** *(string) --* The name of this VideoDescription. Outputs will use this name to
        uniquely identify this Description. Description names should be unique within this Live
        Event.

        - **RespondToAfd** *(string) --* Indicates how to respond to the AFD values in the input
        stream. RESPOND causes input video to be clipped, depending on the AFD value, input display
        aspect ratio, and output display aspect ratio, and (except for FRAMECAPTURE codec) includes
        the values in the output. PASSTHROUGH (does not apply to FRAMECAPTURE codec) ignores the AFD
        values and includes the values in the output, so input video is not clipped. NONE ignores
        the AFD values and does not include the values through to the output, so input video is not
        clipped.

        - **ScalingBehavior** *(string) --* STRETCHTOOUTPUT configures the output position to
        stretch the video to the specified output resolution (height and width). This option will
        override any position value. DEFAULT may insert black boxes (pillar boxes or letter boxes)
        around the video to provide the specified output resolution.

        - **Sharpness** *(integer) --* Changes the strength of the anti-alias filter used for
        scaling. 0 is the softest setting, 100 is the sharpest. A setting of 50 is recommended for
        most content.

        - **Width** *(integer) --* Output video width, in pixels. Must be an even number. For most
        codecs, you can leave this field and height blank in order to use the height and width
        (resolution) from the source. Note, however, that leaving blank is not recommended. For the
        Frame Capture codec, height and width are required.
    """


_ClientStartChannelResponseInputAttachmentsInputSettingsAudioSelectorsSelectorSettingsAudioLanguageSelectionTypeDef = TypedDict(
    "_ClientStartChannelResponseInputAttachmentsInputSettingsAudioSelectorsSelectorSettingsAudioLanguageSelectionTypeDef",
    {"LanguageCode": str, "LanguageSelectionPolicy": str},
    total=False,
)


class ClientStartChannelResponseInputAttachmentsInputSettingsAudioSelectorsSelectorSettingsAudioLanguageSelectionTypeDef(
    _ClientStartChannelResponseInputAttachmentsInputSettingsAudioSelectorsSelectorSettingsAudioLanguageSelectionTypeDef
):
    """
    Type definition for
    `ClientStartChannelResponseInputAttachmentsInputSettingsAudioSelectorsSelectorSettings`
    `AudioLanguageSelection`

    - **LanguageCode** *(string) --* Selects a specific three-letter language code from within an
    audio source.

    - **LanguageSelectionPolicy** *(string) --* When set to "strict", the transport stream demux
    strictly identifies audio streams by their language descriptor. If a PMT update occurs such that
    an audio stream matching the initially selected language is no longer present then mute will be
    encoded until the language returns. If "loose", then on a PMT update the demux will choose
    another audio stream in the program with the same stream type if it can't find one with the same
    language.
    """


_ClientStartChannelResponseInputAttachmentsInputSettingsAudioSelectorsSelectorSettingsAudioPidSelectionTypeDef = TypedDict(
    "_ClientStartChannelResponseInputAttachmentsInputSettingsAudioSelectorsSelectorSettingsAudioPidSelectionTypeDef",
    {"Pid": int},
    total=False,
)


class ClientStartChannelResponseInputAttachmentsInputSettingsAudioSelectorsSelectorSettingsAudioPidSelectionTypeDef(
    _ClientStartChannelResponseInputAttachmentsInputSettingsAudioSelectorsSelectorSettingsAudioPidSelectionTypeDef
):
    """
    Type definition for
    `ClientStartChannelResponseInputAttachmentsInputSettingsAudioSelectorsSelectorSettings`
    `AudioPidSelection`

    - **Pid** *(integer) --* Selects a specific PID from within a source.
    """


_ClientStartChannelResponseInputAttachmentsInputSettingsAudioSelectorsSelectorSettingsTypeDef = TypedDict(
    "_ClientStartChannelResponseInputAttachmentsInputSettingsAudioSelectorsSelectorSettingsTypeDef",
    {
        "AudioLanguageSelection": ClientStartChannelResponseInputAttachmentsInputSettingsAudioSelectorsSelectorSettingsAudioLanguageSelectionTypeDef,
        "AudioPidSelection": ClientStartChannelResponseInputAttachmentsInputSettingsAudioSelectorsSelectorSettingsAudioPidSelectionTypeDef,
    },
    total=False,
)


class ClientStartChannelResponseInputAttachmentsInputSettingsAudioSelectorsSelectorSettingsTypeDef(
    _ClientStartChannelResponseInputAttachmentsInputSettingsAudioSelectorsSelectorSettingsTypeDef
):
    """
    Type definition for `ClientStartChannelResponseInputAttachmentsInputSettingsAudioSelectors`
    `SelectorSettings`

    - **AudioLanguageSelection** *(dict) --* Audio Language Selection

      - **LanguageCode** *(string) --* Selects a specific three-letter language code from within an
      audio source.

      - **LanguageSelectionPolicy** *(string) --* When set to "strict", the transport stream demux
      strictly identifies audio streams by their language descriptor. If a PMT update occurs such
      that an audio stream matching the initially selected language is no longer present then mute
      will be encoded until the language returns. If "loose", then on a PMT update the demux will
      choose another audio stream in the program with the same stream type if it can't find one with
      the same language.

    - **AudioPidSelection** *(dict) --* Audio Pid Selection

      - **Pid** *(integer) --* Selects a specific PID from within a source.
    """


_ClientStartChannelResponseInputAttachmentsInputSettingsAudioSelectorsTypeDef = TypedDict(
    "_ClientStartChannelResponseInputAttachmentsInputSettingsAudioSelectorsTypeDef",
    {
        "Name": str,
        "SelectorSettings": ClientStartChannelResponseInputAttachmentsInputSettingsAudioSelectorsSelectorSettingsTypeDef,
    },
    total=False,
)


class ClientStartChannelResponseInputAttachmentsInputSettingsAudioSelectorsTypeDef(
    _ClientStartChannelResponseInputAttachmentsInputSettingsAudioSelectorsTypeDef
):
    """
    Type definition for `ClientStartChannelResponseInputAttachmentsInputSettings` `AudioSelectors`

    - **Name** *(string) --* The name of this AudioSelector. AudioDescriptions will use this name to
    uniquely identify this Selector. Selector names should be unique per input.

    - **SelectorSettings** *(dict) --* The audio selector settings.

      - **AudioLanguageSelection** *(dict) --* Audio Language Selection

        - **LanguageCode** *(string) --* Selects a specific three-letter language code from within
        an audio source.

        - **LanguageSelectionPolicy** *(string) --* When set to "strict", the transport stream demux
        strictly identifies audio streams by their language descriptor. If a PMT update occurs such
        that an audio stream matching the initially selected language is no longer present then mute
        will be encoded until the language returns. If "loose", then on a PMT update the demux will
        choose another audio stream in the program with the same stream type if it can't find one
        with the same language.

      - **AudioPidSelection** *(dict) --* Audio Pid Selection

        - **Pid** *(integer) --* Selects a specific PID from within a source.
    """


_ClientStartChannelResponseInputAttachmentsInputSettingsCaptionSelectorsSelectorSettingsDvbSubSourceSettingsTypeDef = TypedDict(
    "_ClientStartChannelResponseInputAttachmentsInputSettingsCaptionSelectorsSelectorSettingsDvbSubSourceSettingsTypeDef",
    {"Pid": int},
    total=False,
)


class ClientStartChannelResponseInputAttachmentsInputSettingsCaptionSelectorsSelectorSettingsDvbSubSourceSettingsTypeDef(
    _ClientStartChannelResponseInputAttachmentsInputSettingsCaptionSelectorsSelectorSettingsDvbSubSourceSettingsTypeDef
):
    """
    Type definition for
    `ClientStartChannelResponseInputAttachmentsInputSettingsCaptionSelectorsSelectorSettings`
    `DvbSubSourceSettings`

    - **Pid** *(integer) --* When using DVB-Sub with Burn-In or SMPTE-TT, use this PID for the
    source content. Unused for DVB-Sub passthrough. All DVB-Sub content is passed through,
    regardless of selectors.
    """


_ClientStartChannelResponseInputAttachmentsInputSettingsCaptionSelectorsSelectorSettingsEmbeddedSourceSettingsTypeDef = TypedDict(
    "_ClientStartChannelResponseInputAttachmentsInputSettingsCaptionSelectorsSelectorSettingsEmbeddedSourceSettingsTypeDef",
    {
        "Convert608To708": str,
        "Scte20Detection": str,
        "Source608ChannelNumber": int,
        "Source608TrackNumber": int,
    },
    total=False,
)


class ClientStartChannelResponseInputAttachmentsInputSettingsCaptionSelectorsSelectorSettingsEmbeddedSourceSettingsTypeDef(
    _ClientStartChannelResponseInputAttachmentsInputSettingsCaptionSelectorsSelectorSettingsEmbeddedSourceSettingsTypeDef
):
    """
    Type definition for
    `ClientStartChannelResponseInputAttachmentsInputSettingsCaptionSelectorsSelectorSettings`
    `EmbeddedSourceSettings`

    - **Convert608To708** *(string) --* If upconvert, 608 data is both passed through via the "608
    compatibility bytes" fields of the 708 wrapper as well as translated into 708. 708 data present
    in the source content will be discarded.

    - **Scte20Detection** *(string) --* Set to "auto" to handle streams with intermittent and/or
    non-aligned SCTE-20 and Embedded captions.

    - **Source608ChannelNumber** *(integer) --* Specifies the 608/708 channel number within the
    video track from which to extract captions. Unused for passthrough.

    - **Source608TrackNumber** *(integer) --* This field is unused and deprecated.
    """


_ClientStartChannelResponseInputAttachmentsInputSettingsCaptionSelectorsSelectorSettingsScte20SourceSettingsTypeDef = TypedDict(
    "_ClientStartChannelResponseInputAttachmentsInputSettingsCaptionSelectorsSelectorSettingsScte20SourceSettingsTypeDef",
    {"Convert608To708": str, "Source608ChannelNumber": int},
    total=False,
)


class ClientStartChannelResponseInputAttachmentsInputSettingsCaptionSelectorsSelectorSettingsScte20SourceSettingsTypeDef(
    _ClientStartChannelResponseInputAttachmentsInputSettingsCaptionSelectorsSelectorSettingsScte20SourceSettingsTypeDef
):
    """
    Type definition for
    `ClientStartChannelResponseInputAttachmentsInputSettingsCaptionSelectorsSelectorSettings`
    `Scte20SourceSettings`

    - **Convert608To708** *(string) --* If upconvert, 608 data is both passed through via the "608
    compatibility bytes" fields of the 708 wrapper as well as translated into 708. 708 data present
    in the source content will be discarded.

    - **Source608ChannelNumber** *(integer) --* Specifies the 608/708 channel number within the
    video track from which to extract captions. Unused for passthrough.
    """


_ClientStartChannelResponseInputAttachmentsInputSettingsCaptionSelectorsSelectorSettingsScte27SourceSettingsTypeDef = TypedDict(
    "_ClientStartChannelResponseInputAttachmentsInputSettingsCaptionSelectorsSelectorSettingsScte27SourceSettingsTypeDef",
    {"Pid": int},
    total=False,
)


class ClientStartChannelResponseInputAttachmentsInputSettingsCaptionSelectorsSelectorSettingsScte27SourceSettingsTypeDef(
    _ClientStartChannelResponseInputAttachmentsInputSettingsCaptionSelectorsSelectorSettingsScte27SourceSettingsTypeDef
):
    """
    Type definition for
    `ClientStartChannelResponseInputAttachmentsInputSettingsCaptionSelectorsSelectorSettings`
    `Scte27SourceSettings`

    - **Pid** *(integer) --* The pid field is used in conjunction with the caption selector
    languageCode field as follows: - Specify PID and Language: Extracts captions from that PID; the
    language is "informational". - Specify PID and omit Language: Extracts the specified PID. - Omit
    PID and specify Language: Extracts the specified language, whichever PID that happens to be. -
    Omit PID and omit Language: Valid only if source is DVB-Sub that is being passed through; all
    languages will be passed through.
    """


_ClientStartChannelResponseInputAttachmentsInputSettingsCaptionSelectorsSelectorSettingsTeletextSourceSettingsTypeDef = TypedDict(
    "_ClientStartChannelResponseInputAttachmentsInputSettingsCaptionSelectorsSelectorSettingsTeletextSourceSettingsTypeDef",
    {"PageNumber": str},
    total=False,
)


class ClientStartChannelResponseInputAttachmentsInputSettingsCaptionSelectorsSelectorSettingsTeletextSourceSettingsTypeDef(
    _ClientStartChannelResponseInputAttachmentsInputSettingsCaptionSelectorsSelectorSettingsTeletextSourceSettingsTypeDef
):
    """
    Type definition for
    `ClientStartChannelResponseInputAttachmentsInputSettingsCaptionSelectorsSelectorSettings`
    `TeletextSourceSettings`

    - **PageNumber** *(string) --* Specifies the teletext page number within the data stream from
    which to extract captions. Range of 0x100 (256) to 0x8FF (2303). Unused for passthrough. Should
    be specified as a hexadecimal string with no "0x" prefix.
    """


_ClientStartChannelResponseInputAttachmentsInputSettingsCaptionSelectorsSelectorSettingsTypeDef = TypedDict(
    "_ClientStartChannelResponseInputAttachmentsInputSettingsCaptionSelectorsSelectorSettingsTypeDef",
    {
        "AribSourceSettings": Dict,
        "DvbSubSourceSettings": ClientStartChannelResponseInputAttachmentsInputSettingsCaptionSelectorsSelectorSettingsDvbSubSourceSettingsTypeDef,
        "EmbeddedSourceSettings": ClientStartChannelResponseInputAttachmentsInputSettingsCaptionSelectorsSelectorSettingsEmbeddedSourceSettingsTypeDef,
        "Scte20SourceSettings": ClientStartChannelResponseInputAttachmentsInputSettingsCaptionSelectorsSelectorSettingsScte20SourceSettingsTypeDef,
        "Scte27SourceSettings": ClientStartChannelResponseInputAttachmentsInputSettingsCaptionSelectorsSelectorSettingsScte27SourceSettingsTypeDef,
        "TeletextSourceSettings": ClientStartChannelResponseInputAttachmentsInputSettingsCaptionSelectorsSelectorSettingsTeletextSourceSettingsTypeDef,
    },
    total=False,
)


class ClientStartChannelResponseInputAttachmentsInputSettingsCaptionSelectorsSelectorSettingsTypeDef(
    _ClientStartChannelResponseInputAttachmentsInputSettingsCaptionSelectorsSelectorSettingsTypeDef
):
    """
    Type definition for `ClientStartChannelResponseInputAttachmentsInputSettingsCaptionSelectors`
    `SelectorSettings`

    - **AribSourceSettings** *(dict) --* Arib Source Settings

    - **DvbSubSourceSettings** *(dict) --* Dvb Sub Source Settings

      - **Pid** *(integer) --* When using DVB-Sub with Burn-In or SMPTE-TT, use this PID for the
      source content. Unused for DVB-Sub passthrough. All DVB-Sub content is passed through,
      regardless of selectors.

    - **EmbeddedSourceSettings** *(dict) --* Embedded Source Settings

      - **Convert608To708** *(string) --* If upconvert, 608 data is both passed through via the "608
      compatibility bytes" fields of the 708 wrapper as well as translated into 708. 708 data
      present in the source content will be discarded.

      - **Scte20Detection** *(string) --* Set to "auto" to handle streams with intermittent and/or
      non-aligned SCTE-20 and Embedded captions.

      - **Source608ChannelNumber** *(integer) --* Specifies the 608/708 channel number within the
      video track from which to extract captions. Unused for passthrough.

      - **Source608TrackNumber** *(integer) --* This field is unused and deprecated.

    - **Scte20SourceSettings** *(dict) --* Scte20 Source Settings

      - **Convert608To708** *(string) --* If upconvert, 608 data is both passed through via the "608
      compatibility bytes" fields of the 708 wrapper as well as translated into 708. 708 data
      present in the source content will be discarded.

      - **Source608ChannelNumber** *(integer) --* Specifies the 608/708 channel number within the
      video track from which to extract captions. Unused for passthrough.

    - **Scte27SourceSettings** *(dict) --* Scte27 Source Settings

      - **Pid** *(integer) --* The pid field is used in conjunction with the caption selector
      languageCode field as follows: - Specify PID and Language: Extracts captions from that PID;
      the language is "informational". - Specify PID and omit Language: Extracts the specified PID.
      - Omit PID and specify Language: Extracts the specified language, whichever PID that happens
      to be. - Omit PID and omit Language: Valid only if source is DVB-Sub that is being passed
      through; all languages will be passed through.

    - **TeletextSourceSettings** *(dict) --* Teletext Source Settings

      - **PageNumber** *(string) --* Specifies the teletext page number within the data stream from
      which to extract captions. Range of 0x100 (256) to 0x8FF (2303). Unused for passthrough.
      Should be specified as a hexadecimal string with no "0x" prefix.
    """


_ClientStartChannelResponseInputAttachmentsInputSettingsCaptionSelectorsTypeDef = TypedDict(
    "_ClientStartChannelResponseInputAttachmentsInputSettingsCaptionSelectorsTypeDef",
    {
        "LanguageCode": str,
        "Name": str,
        "SelectorSettings": ClientStartChannelResponseInputAttachmentsInputSettingsCaptionSelectorsSelectorSettingsTypeDef,
    },
    total=False,
)


class ClientStartChannelResponseInputAttachmentsInputSettingsCaptionSelectorsTypeDef(
    _ClientStartChannelResponseInputAttachmentsInputSettingsCaptionSelectorsTypeDef
):
    """
    Type definition for `ClientStartChannelResponseInputAttachmentsInputSettings` `CaptionSelectors`

    - **LanguageCode** *(string) --* When specified this field indicates the three letter language
    code of the caption track to extract from the source.

    - **Name** *(string) --* Name identifier for a caption selector. This name is used to associate
    this caption selector with one or more caption descriptions. Names must be unique within an
    event.

    - **SelectorSettings** *(dict) --* Caption selector settings.

      - **AribSourceSettings** *(dict) --* Arib Source Settings

      - **DvbSubSourceSettings** *(dict) --* Dvb Sub Source Settings

        - **Pid** *(integer) --* When using DVB-Sub with Burn-In or SMPTE-TT, use this PID for the
        source content. Unused for DVB-Sub passthrough. All DVB-Sub content is passed through,
        regardless of selectors.

      - **EmbeddedSourceSettings** *(dict) --* Embedded Source Settings

        - **Convert608To708** *(string) --* If upconvert, 608 data is both passed through via the
        "608 compatibility bytes" fields of the 708 wrapper as well as translated into 708. 708 data
        present in the source content will be discarded.

        - **Scte20Detection** *(string) --* Set to "auto" to handle streams with intermittent and/or
        non-aligned SCTE-20 and Embedded captions.

        - **Source608ChannelNumber** *(integer) --* Specifies the 608/708 channel number within the
        video track from which to extract captions. Unused for passthrough.

        - **Source608TrackNumber** *(integer) --* This field is unused and deprecated.

      - **Scte20SourceSettings** *(dict) --* Scte20 Source Settings

        - **Convert608To708** *(string) --* If upconvert, 608 data is both passed through via the
        "608 compatibility bytes" fields of the 708 wrapper as well as translated into 708. 708 data
        present in the source content will be discarded.

        - **Source608ChannelNumber** *(integer) --* Specifies the 608/708 channel number within the
        video track from which to extract captions. Unused for passthrough.

      - **Scte27SourceSettings** *(dict) --* Scte27 Source Settings

        - **Pid** *(integer) --* The pid field is used in conjunction with the caption selector
        languageCode field as follows: - Specify PID and Language: Extracts captions from that PID;
        the language is "informational". - Specify PID and omit Language: Extracts the specified
        PID. - Omit PID and specify Language: Extracts the specified language, whichever PID that
        happens to be. - Omit PID and omit Language: Valid only if source is DVB-Sub that is being
        passed through; all languages will be passed through.

      - **TeletextSourceSettings** *(dict) --* Teletext Source Settings

        - **PageNumber** *(string) --* Specifies the teletext page number within the data stream
        from which to extract captions. Range of 0x100 (256) to 0x8FF (2303). Unused for
        passthrough. Should be specified as a hexadecimal string with no "0x" prefix.
    """


_ClientStartChannelResponseInputAttachmentsInputSettingsNetworkInputSettingsHlsInputSettingsTypeDef = TypedDict(
    "_ClientStartChannelResponseInputAttachmentsInputSettingsNetworkInputSettingsHlsInputSettingsTypeDef",
    {"Bandwidth": int, "BufferSegments": int, "Retries": int, "RetryInterval": int},
    total=False,
)


class ClientStartChannelResponseInputAttachmentsInputSettingsNetworkInputSettingsHlsInputSettingsTypeDef(
    _ClientStartChannelResponseInputAttachmentsInputSettingsNetworkInputSettingsHlsInputSettingsTypeDef
):
    """
    Type definition for
    `ClientStartChannelResponseInputAttachmentsInputSettingsNetworkInputSettings` `HlsInputSettings`

    - **Bandwidth** *(integer) --* When specified the HLS stream with the m3u8 BANDWIDTH that most
    closely matches this value will be chosen, otherwise the highest bandwidth stream in the m3u8
    will be chosen. The bitrate is specified in bits per second, as in an HLS manifest.

    - **BufferSegments** *(integer) --* When specified, reading of the HLS input will begin this
    many buffer segments from the end (most recently written segment). When not specified, the HLS
    input will begin with the first segment specified in the m3u8.

    - **Retries** *(integer) --* The number of consecutive times that attempts to read a manifest or
    segment must fail before the input is considered unavailable.

    - **RetryInterval** *(integer) --* The number of seconds between retries when an attempt to read
    a manifest or segment fails.
    """


_ClientStartChannelResponseInputAttachmentsInputSettingsNetworkInputSettingsTypeDef = TypedDict(
    "_ClientStartChannelResponseInputAttachmentsInputSettingsNetworkInputSettingsTypeDef",
    {
        "HlsInputSettings": ClientStartChannelResponseInputAttachmentsInputSettingsNetworkInputSettingsHlsInputSettingsTypeDef,
        "ServerValidation": str,
    },
    total=False,
)


class ClientStartChannelResponseInputAttachmentsInputSettingsNetworkInputSettingsTypeDef(
    _ClientStartChannelResponseInputAttachmentsInputSettingsNetworkInputSettingsTypeDef
):
    """
    Type definition for `ClientStartChannelResponseInputAttachmentsInputSettings`
    `NetworkInputSettings`

    - **HlsInputSettings** *(dict) --* Specifies HLS input settings when the uri is for a HLS
    manifest.

      - **Bandwidth** *(integer) --* When specified the HLS stream with the m3u8 BANDWIDTH that most
      closely matches this value will be chosen, otherwise the highest bandwidth stream in the m3u8
      will be chosen. The bitrate is specified in bits per second, as in an HLS manifest.

      - **BufferSegments** *(integer) --* When specified, reading of the HLS input will begin this
      many buffer segments from the end (most recently written segment). When not specified, the HLS
      input will begin with the first segment specified in the m3u8.

      - **Retries** *(integer) --* The number of consecutive times that attempts to read a manifest
      or segment must fail before the input is considered unavailable.

      - **RetryInterval** *(integer) --* The number of seconds between retries when an attempt to
      read a manifest or segment fails.

    - **ServerValidation** *(string) --* Check HTTPS server certificates. When set to
    checkCryptographyOnly, cryptography in the certificate will be checked, but not the server's
    name. Certain subdomains (notably S3 buckets that use dots in the bucket name) do not strictly
    match the corresponding certificate's wildcard pattern and would otherwise cause the event to
    error. This setting is ignored for protocols that do not use https.
    """


_ClientStartChannelResponseInputAttachmentsInputSettingsVideoSelectorSelectorSettingsVideoSelectorPidTypeDef = TypedDict(
    "_ClientStartChannelResponseInputAttachmentsInputSettingsVideoSelectorSelectorSettingsVideoSelectorPidTypeDef",
    {"Pid": int},
    total=False,
)


class ClientStartChannelResponseInputAttachmentsInputSettingsVideoSelectorSelectorSettingsVideoSelectorPidTypeDef(
    _ClientStartChannelResponseInputAttachmentsInputSettingsVideoSelectorSelectorSettingsVideoSelectorPidTypeDef
):
    """
    Type definition for
    `ClientStartChannelResponseInputAttachmentsInputSettingsVideoSelectorSelectorSettings`
    `VideoSelectorPid`

    - **Pid** *(integer) --* Selects a specific PID from within a video source.
    """


_ClientStartChannelResponseInputAttachmentsInputSettingsVideoSelectorSelectorSettingsVideoSelectorProgramIdTypeDef = TypedDict(
    "_ClientStartChannelResponseInputAttachmentsInputSettingsVideoSelectorSelectorSettingsVideoSelectorProgramIdTypeDef",
    {"ProgramId": int},
    total=False,
)


class ClientStartChannelResponseInputAttachmentsInputSettingsVideoSelectorSelectorSettingsVideoSelectorProgramIdTypeDef(
    _ClientStartChannelResponseInputAttachmentsInputSettingsVideoSelectorSelectorSettingsVideoSelectorProgramIdTypeDef
):
    """
    Type definition for
    `ClientStartChannelResponseInputAttachmentsInputSettingsVideoSelectorSelectorSettings`
    `VideoSelectorProgramId`

    - **ProgramId** *(integer) --* Selects a specific program from within a multi-program transport
    stream. If the program doesn't exist, the first program within the transport stream will be
    selected by default.
    """


_ClientStartChannelResponseInputAttachmentsInputSettingsVideoSelectorSelectorSettingsTypeDef = TypedDict(
    "_ClientStartChannelResponseInputAttachmentsInputSettingsVideoSelectorSelectorSettingsTypeDef",
    {
        "VideoSelectorPid": ClientStartChannelResponseInputAttachmentsInputSettingsVideoSelectorSelectorSettingsVideoSelectorPidTypeDef,
        "VideoSelectorProgramId": ClientStartChannelResponseInputAttachmentsInputSettingsVideoSelectorSelectorSettingsVideoSelectorProgramIdTypeDef,
    },
    total=False,
)


class ClientStartChannelResponseInputAttachmentsInputSettingsVideoSelectorSelectorSettingsTypeDef(
    _ClientStartChannelResponseInputAttachmentsInputSettingsVideoSelectorSelectorSettingsTypeDef
):
    """
    Type definition for `ClientStartChannelResponseInputAttachmentsInputSettingsVideoSelector`
    `SelectorSettings`

    - **VideoSelectorPid** *(dict) --* Video Selector Pid

      - **Pid** *(integer) --* Selects a specific PID from within a video source.

    - **VideoSelectorProgramId** *(dict) --* Video Selector Program Id

      - **ProgramId** *(integer) --* Selects a specific program from within a multi-program
      transport stream. If the program doesn't exist, the first program within the transport stream
      will be selected by default.
    """


_ClientStartChannelResponseInputAttachmentsInputSettingsVideoSelectorTypeDef = TypedDict(
    "_ClientStartChannelResponseInputAttachmentsInputSettingsVideoSelectorTypeDef",
    {
        "ColorSpace": str,
        "ColorSpaceUsage": str,
        "SelectorSettings": ClientStartChannelResponseInputAttachmentsInputSettingsVideoSelectorSelectorSettingsTypeDef,
    },
    total=False,
)


class ClientStartChannelResponseInputAttachmentsInputSettingsVideoSelectorTypeDef(
    _ClientStartChannelResponseInputAttachmentsInputSettingsVideoSelectorTypeDef
):
    """
    Type definition for `ClientStartChannelResponseInputAttachmentsInputSettings` `VideoSelector`

    - **ColorSpace** *(string) --* Specifies the color space of an input. This setting works in
    tandem with colorSpaceUsage and a video description's colorSpaceSettingsChoice to determine if
    any conversion will be performed.

    - **ColorSpaceUsage** *(string) --* Applies only if colorSpace is a value other than follow.
    This field controls how the value in the colorSpace field will be used. fallback means that when
    the input does include color space data, that data will be used, but when the input has no color
    space data, the value in colorSpace will be used. Choose fallback if your input is sometimes
    missing color space data, but when it does have color space data, that data is correct. force
    means to always use the value in colorSpace. Choose force if your input usually has no color
    space data or might have unreliable color space data.

    - **SelectorSettings** *(dict) --* The video selector settings.

      - **VideoSelectorPid** *(dict) --* Video Selector Pid

        - **Pid** *(integer) --* Selects a specific PID from within a video source.

      - **VideoSelectorProgramId** *(dict) --* Video Selector Program Id

        - **ProgramId** *(integer) --* Selects a specific program from within a multi-program
        transport stream. If the program doesn't exist, the first program within the transport
        stream will be selected by default.
    """


_ClientStartChannelResponseInputAttachmentsInputSettingsTypeDef = TypedDict(
    "_ClientStartChannelResponseInputAttachmentsInputSettingsTypeDef",
    {
        "AudioSelectors": List[
            ClientStartChannelResponseInputAttachmentsInputSettingsAudioSelectorsTypeDef
        ],
        "CaptionSelectors": List[
            ClientStartChannelResponseInputAttachmentsInputSettingsCaptionSelectorsTypeDef
        ],
        "DeblockFilter": str,
        "DenoiseFilter": str,
        "FilterStrength": int,
        "InputFilter": str,
        "NetworkInputSettings": ClientStartChannelResponseInputAttachmentsInputSettingsNetworkInputSettingsTypeDef,
        "SourceEndBehavior": str,
        "VideoSelector": ClientStartChannelResponseInputAttachmentsInputSettingsVideoSelectorTypeDef,
    },
    total=False,
)


class ClientStartChannelResponseInputAttachmentsInputSettingsTypeDef(
    _ClientStartChannelResponseInputAttachmentsInputSettingsTypeDef
):
    """
    Type definition for `ClientStartChannelResponseInputAttachments` `InputSettings`

    - **AudioSelectors** *(list) --* Used to select the audio stream to decode for inputs that have
    multiple available.

      - *(dict) --* Audio Selector

        - **Name** *(string) --* The name of this AudioSelector. AudioDescriptions will use this
        name to uniquely identify this Selector. Selector names should be unique per input.

        - **SelectorSettings** *(dict) --* The audio selector settings.

          - **AudioLanguageSelection** *(dict) --* Audio Language Selection

            - **LanguageCode** *(string) --* Selects a specific three-letter language code from
            within an audio source.

            - **LanguageSelectionPolicy** *(string) --* When set to "strict", the transport stream
            demux strictly identifies audio streams by their language descriptor. If a PMT update
            occurs such that an audio stream matching the initially selected language is no longer
            present then mute will be encoded until the language returns. If "loose", then on a PMT
            update the demux will choose another audio stream in the program with the same stream
            type if it can't find one with the same language.

          - **AudioPidSelection** *(dict) --* Audio Pid Selection

            - **Pid** *(integer) --* Selects a specific PID from within a source.

    - **CaptionSelectors** *(list) --* Used to select the caption input to use for inputs that have
    multiple available.

      - *(dict) --* Output groups for this Live Event. Output groups contain information about where
      streams should be distributed.

        - **LanguageCode** *(string) --* When specified this field indicates the three letter
        language code of the caption track to extract from the source.

        - **Name** *(string) --* Name identifier for a caption selector. This name is used to
        associate this caption selector with one or more caption descriptions. Names must be unique
        within an event.

        - **SelectorSettings** *(dict) --* Caption selector settings.

          - **AribSourceSettings** *(dict) --* Arib Source Settings

          - **DvbSubSourceSettings** *(dict) --* Dvb Sub Source Settings

            - **Pid** *(integer) --* When using DVB-Sub with Burn-In or SMPTE-TT, use this PID for
            the source content. Unused for DVB-Sub passthrough. All DVB-Sub content is passed
            through, regardless of selectors.

          - **EmbeddedSourceSettings** *(dict) --* Embedded Source Settings

            - **Convert608To708** *(string) --* If upconvert, 608 data is both passed through via
            the "608 compatibility bytes" fields of the 708 wrapper as well as translated into 708.
            708 data present in the source content will be discarded.

            - **Scte20Detection** *(string) --* Set to "auto" to handle streams with intermittent
            and/or non-aligned SCTE-20 and Embedded captions.

            - **Source608ChannelNumber** *(integer) --* Specifies the 608/708 channel number within
            the video track from which to extract captions. Unused for passthrough.

            - **Source608TrackNumber** *(integer) --* This field is unused and deprecated.

          - **Scte20SourceSettings** *(dict) --* Scte20 Source Settings

            - **Convert608To708** *(string) --* If upconvert, 608 data is both passed through via
            the "608 compatibility bytes" fields of the 708 wrapper as well as translated into 708.
            708 data present in the source content will be discarded.

            - **Source608ChannelNumber** *(integer) --* Specifies the 608/708 channel number within
            the video track from which to extract captions. Unused for passthrough.

          - **Scte27SourceSettings** *(dict) --* Scte27 Source Settings

            - **Pid** *(integer) --* The pid field is used in conjunction with the caption selector
            languageCode field as follows: - Specify PID and Language: Extracts captions from that
            PID; the language is "informational". - Specify PID and omit Language: Extracts the
            specified PID. - Omit PID and specify Language: Extracts the specified language,
            whichever PID that happens to be. - Omit PID and omit Language: Valid only if source is
            DVB-Sub that is being passed through; all languages will be passed through.

          - **TeletextSourceSettings** *(dict) --* Teletext Source Settings

            - **PageNumber** *(string) --* Specifies the teletext page number within the data stream
            from which to extract captions. Range of 0x100 (256) to 0x8FF (2303). Unused for
            passthrough. Should be specified as a hexadecimal string with no "0x" prefix.

    - **DeblockFilter** *(string) --* Enable or disable the deblock filter when filtering.

    - **DenoiseFilter** *(string) --* Enable or disable the denoise filter when filtering.

    - **FilterStrength** *(integer) --* Adjusts the magnitude of filtering from 1 (minimal) to 5
    (strongest).

    - **InputFilter** *(string) --* Turns on the filter for this input. MPEG-2 inputs have the
    deblocking filter enabled by default. 1) auto - filtering will be applied depending on input
    type/quality 2) disabled - no filtering will be applied to the input 3) forced - filtering will
    be applied regardless of input type

    - **NetworkInputSettings** *(dict) --* Input settings.

      - **HlsInputSettings** *(dict) --* Specifies HLS input settings when the uri is for a HLS
      manifest.

        - **Bandwidth** *(integer) --* When specified the HLS stream with the m3u8 BANDWIDTH that
        most closely matches this value will be chosen, otherwise the highest bandwidth stream in
        the m3u8 will be chosen. The bitrate is specified in bits per second, as in an HLS manifest.

        - **BufferSegments** *(integer) --* When specified, reading of the HLS input will begin this
        many buffer segments from the end (most recently written segment). When not specified, the
        HLS input will begin with the first segment specified in the m3u8.

        - **Retries** *(integer) --* The number of consecutive times that attempts to read a
        manifest or segment must fail before the input is considered unavailable.

        - **RetryInterval** *(integer) --* The number of seconds between retries when an attempt to
        read a manifest or segment fails.

      - **ServerValidation** *(string) --* Check HTTPS server certificates. When set to
      checkCryptographyOnly, cryptography in the certificate will be checked, but not the server's
      name. Certain subdomains (notably S3 buckets that use dots in the bucket name) do not strictly
      match the corresponding certificate's wildcard pattern and would otherwise cause the event to
      error. This setting is ignored for protocols that do not use https.

    - **SourceEndBehavior** *(string) --* Loop input if it is a file. This allows a file input to be
    streamed indefinitely.

    - **VideoSelector** *(dict) --* Informs which video elementary stream to decode for input types
    that have multiple available.

      - **ColorSpace** *(string) --* Specifies the color space of an input. This setting works in
      tandem with colorSpaceUsage and a video description's colorSpaceSettingsChoice to determine if
      any conversion will be performed.

      - **ColorSpaceUsage** *(string) --* Applies only if colorSpace is a value other than follow.
      This field controls how the value in the colorSpace field will be used. fallback means that
      when the input does include color space data, that data will be used, but when the input has
      no color space data, the value in colorSpace will be used. Choose fallback if your input is
      sometimes missing color space data, but when it does have color space data, that data is
      correct. force means to always use the value in colorSpace. Choose force if your input usually
      has no color space data or might have unreliable color space data.

      - **SelectorSettings** *(dict) --* The video selector settings.

        - **VideoSelectorPid** *(dict) --* Video Selector Pid

          - **Pid** *(integer) --* Selects a specific PID from within a video source.

        - **VideoSelectorProgramId** *(dict) --* Video Selector Program Id

          - **ProgramId** *(integer) --* Selects a specific program from within a multi-program
          transport stream. If the program doesn't exist, the first program within the transport
          stream will be selected by default.
    """


_ClientStartChannelResponseInputAttachmentsTypeDef = TypedDict(
    "_ClientStartChannelResponseInputAttachmentsTypeDef",
    {
        "InputAttachmentName": str,
        "InputId": str,
        "InputSettings": ClientStartChannelResponseInputAttachmentsInputSettingsTypeDef,
    },
    total=False,
)


class ClientStartChannelResponseInputAttachmentsTypeDef(
    _ClientStartChannelResponseInputAttachmentsTypeDef
):
    """
    Type definition for `ClientStartChannelResponse` `InputAttachments`

    - **InputAttachmentName** *(string) --* User-specified name for the attachment. This is required
    if the user wants to use this input in an input switch action.

    - **InputId** *(string) --* The ID of the input

    - **InputSettings** *(dict) --* Settings of an input (caption selector, etc.)

      - **AudioSelectors** *(list) --* Used to select the audio stream to decode for inputs that
      have multiple available.

        - *(dict) --* Audio Selector

          - **Name** *(string) --* The name of this AudioSelector. AudioDescriptions will use this
          name to uniquely identify this Selector. Selector names should be unique per input.

          - **SelectorSettings** *(dict) --* The audio selector settings.

            - **AudioLanguageSelection** *(dict) --* Audio Language Selection

              - **LanguageCode** *(string) --* Selects a specific three-letter language code from
              within an audio source.

              - **LanguageSelectionPolicy** *(string) --* When set to "strict", the transport stream
              demux strictly identifies audio streams by their language descriptor. If a PMT update
              occurs such that an audio stream matching the initially selected language is no longer
              present then mute will be encoded until the language returns. If "loose", then on a
              PMT update the demux will choose another audio stream in the program with the same
              stream type if it can't find one with the same language.

            - **AudioPidSelection** *(dict) --* Audio Pid Selection

              - **Pid** *(integer) --* Selects a specific PID from within a source.

      - **CaptionSelectors** *(list) --* Used to select the caption input to use for inputs that
      have multiple available.

        - *(dict) --* Output groups for this Live Event. Output groups contain information about
        where streams should be distributed.

          - **LanguageCode** *(string) --* When specified this field indicates the three letter
          language code of the caption track to extract from the source.

          - **Name** *(string) --* Name identifier for a caption selector. This name is used to
          associate this caption selector with one or more caption descriptions. Names must be
          unique within an event.

          - **SelectorSettings** *(dict) --* Caption selector settings.

            - **AribSourceSettings** *(dict) --* Arib Source Settings

            - **DvbSubSourceSettings** *(dict) --* Dvb Sub Source Settings

              - **Pid** *(integer) --* When using DVB-Sub with Burn-In or SMPTE-TT, use this PID for
              the source content. Unused for DVB-Sub passthrough. All DVB-Sub content is passed
              through, regardless of selectors.

            - **EmbeddedSourceSettings** *(dict) --* Embedded Source Settings

              - **Convert608To708** *(string) --* If upconvert, 608 data is both passed through via
              the "608 compatibility bytes" fields of the 708 wrapper as well as translated into
              708. 708 data present in the source content will be discarded.

              - **Scte20Detection** *(string) --* Set to "auto" to handle streams with intermittent
              and/or non-aligned SCTE-20 and Embedded captions.

              - **Source608ChannelNumber** *(integer) --* Specifies the 608/708 channel number
              within the video track from which to extract captions. Unused for passthrough.

              - **Source608TrackNumber** *(integer) --* This field is unused and deprecated.

            - **Scte20SourceSettings** *(dict) --* Scte20 Source Settings

              - **Convert608To708** *(string) --* If upconvert, 608 data is both passed through via
              the "608 compatibility bytes" fields of the 708 wrapper as well as translated into
              708. 708 data present in the source content will be discarded.

              - **Source608ChannelNumber** *(integer) --* Specifies the 608/708 channel number
              within the video track from which to extract captions. Unused for passthrough.

            - **Scte27SourceSettings** *(dict) --* Scte27 Source Settings

              - **Pid** *(integer) --* The pid field is used in conjunction with the caption
              selector languageCode field as follows: - Specify PID and Language: Extracts captions
              from that PID; the language is "informational". - Specify PID and omit Language:
              Extracts the specified PID. - Omit PID and specify Language: Extracts the specified
              language, whichever PID that happens to be. - Omit PID and omit Language: Valid only
              if source is DVB-Sub that is being passed through; all languages will be passed
              through.

            - **TeletextSourceSettings** *(dict) --* Teletext Source Settings

              - **PageNumber** *(string) --* Specifies the teletext page number within the data
              stream from which to extract captions. Range of 0x100 (256) to 0x8FF (2303). Unused
              for passthrough. Should be specified as a hexadecimal string with no "0x" prefix.

      - **DeblockFilter** *(string) --* Enable or disable the deblock filter when filtering.

      - **DenoiseFilter** *(string) --* Enable or disable the denoise filter when filtering.

      - **FilterStrength** *(integer) --* Adjusts the magnitude of filtering from 1 (minimal) to 5
      (strongest).

      - **InputFilter** *(string) --* Turns on the filter for this input. MPEG-2 inputs have the
      deblocking filter enabled by default. 1) auto - filtering will be applied depending on input
      type/quality 2) disabled - no filtering will be applied to the input 3) forced - filtering
      will be applied regardless of input type

      - **NetworkInputSettings** *(dict) --* Input settings.

        - **HlsInputSettings** *(dict) --* Specifies HLS input settings when the uri is for a HLS
        manifest.

          - **Bandwidth** *(integer) --* When specified the HLS stream with the m3u8 BANDWIDTH that
          most closely matches this value will be chosen, otherwise the highest bandwidth stream in
          the m3u8 will be chosen. The bitrate is specified in bits per second, as in an HLS
          manifest.

          - **BufferSegments** *(integer) --* When specified, reading of the HLS input will begin
          this many buffer segments from the end (most recently written segment). When not
          specified, the HLS input will begin with the first segment specified in the m3u8.

          - **Retries** *(integer) --* The number of consecutive times that attempts to read a
          manifest or segment must fail before the input is considered unavailable.

          - **RetryInterval** *(integer) --* The number of seconds between retries when an attempt
          to read a manifest or segment fails.

        - **ServerValidation** *(string) --* Check HTTPS server certificates. When set to
        checkCryptographyOnly, cryptography in the certificate will be checked, but not the server's
        name. Certain subdomains (notably S3 buckets that use dots in the bucket name) do not
        strictly match the corresponding certificate's wildcard pattern and would otherwise cause
        the event to error. This setting is ignored for protocols that do not use https.

      - **SourceEndBehavior** *(string) --* Loop input if it is a file. This allows a file input to
      be streamed indefinitely.

      - **VideoSelector** *(dict) --* Informs which video elementary stream to decode for input
      types that have multiple available.

        - **ColorSpace** *(string) --* Specifies the color space of an input. This setting works in
        tandem with colorSpaceUsage and a video description's colorSpaceSettingsChoice to determine
        if any conversion will be performed.

        - **ColorSpaceUsage** *(string) --* Applies only if colorSpace is a value other than follow.
        This field controls how the value in the colorSpace field will be used. fallback means that
        when the input does include color space data, that data will be used, but when the input has
        no color space data, the value in colorSpace will be used. Choose fallback if your input is
        sometimes missing color space data, but when it does have color space data, that data is
        correct. force means to always use the value in colorSpace. Choose force if your input
        usually has no color space data or might have unreliable color space data.

        - **SelectorSettings** *(dict) --* The video selector settings.

          - **VideoSelectorPid** *(dict) --* Video Selector Pid

            - **Pid** *(integer) --* Selects a specific PID from within a video source.

          - **VideoSelectorProgramId** *(dict) --* Video Selector Program Id

            - **ProgramId** *(integer) --* Selects a specific program from within a multi-program
            transport stream. If the program doesn't exist, the first program within the transport
            stream will be selected by default.
    """


_ClientStartChannelResponseInputSpecificationTypeDef = TypedDict(
    "_ClientStartChannelResponseInputSpecificationTypeDef",
    {"Codec": str, "MaximumBitrate": str, "Resolution": str},
    total=False,
)


class ClientStartChannelResponseInputSpecificationTypeDef(
    _ClientStartChannelResponseInputSpecificationTypeDef
):
    """
    Type definition for `ClientStartChannelResponse` `InputSpecification`

    - **Codec** *(string) --* Input codec

    - **MaximumBitrate** *(string) --* Maximum input bitrate, categorized coarsely

    - **Resolution** *(string) --* Input resolution, categorized coarsely
    """


_ClientStartChannelResponsePipelineDetailsTypeDef = TypedDict(
    "_ClientStartChannelResponsePipelineDetailsTypeDef",
    {"ActiveInputAttachmentName": str, "ActiveInputSwitchActionName": str, "PipelineId": str},
    total=False,
)


class ClientStartChannelResponsePipelineDetailsTypeDef(
    _ClientStartChannelResponsePipelineDetailsTypeDef
):
    """
    Type definition for `ClientStartChannelResponse` `PipelineDetails`

    - **ActiveInputAttachmentName** *(string) --* The name of the active input attachment currently
    being ingested by this pipeline.

    - **ActiveInputSwitchActionName** *(string) --* The name of the input switch schedule action
    that occurred most recently and that resulted in the switch to the current input attachment for
    this pipeline.

    - **PipelineId** *(string) --* Pipeline ID
    """


_ClientStartChannelResponseTypeDef = TypedDict(
    "_ClientStartChannelResponseTypeDef",
    {
        "Arn": str,
        "ChannelClass": str,
        "Destinations": List[ClientStartChannelResponseDestinationsTypeDef],
        "EgressEndpoints": List[ClientStartChannelResponseEgressEndpointsTypeDef],
        "EncoderSettings": ClientStartChannelResponseEncoderSettingsTypeDef,
        "Id": str,
        "InputAttachments": List[ClientStartChannelResponseInputAttachmentsTypeDef],
        "InputSpecification": ClientStartChannelResponseInputSpecificationTypeDef,
        "LogLevel": str,
        "Name": str,
        "PipelineDetails": List[ClientStartChannelResponsePipelineDetailsTypeDef],
        "PipelinesRunningCount": int,
        "RoleArn": str,
        "State": str,
        "Tags": Dict[str, str],
    },
    total=False,
)


class ClientStartChannelResponseTypeDef(_ClientStartChannelResponseTypeDef):
    """
    Type definition for `ClientStartChannel` `Response`

    - **Arn** *(string) --* The unique arn of the channel.

    - **ChannelClass** *(string) --* The class for this channel. STANDARD for a channel with two
    pipelines or SINGLE_PIPELINE for a channel with one pipeline.

    - **Destinations** *(list) --* A list of destinations of the channel. For UDP outputs, there is
    one destination per output. For other types (HLS, for example), there is one destination per
    packager.

      - *(dict) --* Placeholder documentation for OutputDestination

        - **Id** *(string) --* User-specified id. This is used in an output group or an output.

        - **MediaPackageSettings** *(list) --* Destination settings for a MediaPackage output; one
        destination for both encoders.

          - *(dict) --* MediaPackage Output Destination Settings

            - **ChannelId** *(string) --* ID of the channel in MediaPackage that is the destination
            for this output group. You do not need to specify the individual inputs in MediaPackage;
            MediaLive will handle the connection of the two MediaLive pipelines to the two
            MediaPackage inputs. The MediaPackage channel and MediaLive channel must be in the same
            region.

        - **MultiplexSettings** *(dict) --* Destination settings for a Multiplex output; one
        destination for both encoders.

          - **MultiplexId** *(string) --* The ID of the Multiplex that the encoder is providing
          output to. You do not need to specify the individual inputs to the Multiplex; MediaLive
          will handle the connection of the two MediaLive pipelines to the two Multiplex instances.
          The Multiplex must be in the same region as the Channel.

          - **ProgramName** *(string) --* The program name of the Multiplex program that the encoder
          is providing output to.

        - **Settings** *(list) --* Destination settings for a standard output; one destination for
        each redundant encoder.

          - *(dict) --* Placeholder documentation for OutputDestinationSettings

            - **PasswordParam** *(string) --* key used to extract the password from EC2 Parameter
            store

            - **StreamName** *(string) --* Stream name for RTMP destinations (URLs of type rtmp://)

            - **Url** *(string) --* A URL specifying a destination

            - **Username** *(string) --* username for destination

    - **EgressEndpoints** *(list) --* The endpoints where outgoing connections initiate from

      - *(dict) --* Placeholder documentation for ChannelEgressEndpoint

        - **SourceIp** *(string) --* Public IP of where a channel's output comes from

    - **EncoderSettings** *(dict) --* Encoder Settings

      - **AudioDescriptions** *(list) --* Placeholder documentation for __listOfAudioDescription

        - *(dict) --* Audio Description

          - **AudioNormalizationSettings** *(dict) --* Advanced audio normalization settings.

            - **Algorithm** *(string) --* Audio normalization algorithm to use. itu17701 conforms to
            the CALM Act specification, itu17702 conforms to the EBU R-128 specification.

            - **AlgorithmControl** *(string) --* When set to correctAudio the output audio is
            corrected using the chosen algorithm. If set to measureOnly, the audio will be measured
            but not adjusted.

            - **TargetLkfs** *(float) --* Target LKFS(loudness) to adjust volume to. If no value is
            entered, a default value will be used according to the chosen algorithm. The CALM Act
            (1770-1) recommends a target of -24 LKFS. The EBU R-128 specification (1770-2)
            recommends a target of -23 LKFS.

          - **AudioSelectorName** *(string) --* The name of the AudioSelector used as the source for
          this AudioDescription.

          - **AudioType** *(string) --* Applies only if audioTypeControl is useConfigured. The
          values for audioType are defined in ISO-IEC 13818-1.

          - **AudioTypeControl** *(string) --* Determines how audio type is determined. followInput:
          If the input contains an ISO 639 audioType, then that value is passed through to the
          output. If the input contains no ISO 639 audioType, the value in Audio Type is included in
          the output. useConfigured: The value in Audio Type is included in the output. Note that
          this field and audioType are both ignored if inputType is broadcasterMixedAd.

          - **CodecSettings** *(dict) --* Audio codec settings.

            - **AacSettings** *(dict) --* Aac Settings

              - **Bitrate** *(float) --* Average bitrate in bits/second. Valid values depend on rate
              control mode and profile.

              - **CodingMode** *(string) --* Mono, Stereo, or 5.1 channel layout. Valid values
              depend on rate control mode and profile. The adReceiverMix setting receives a stereo
              description plus control track and emits a mono AAC encode of the description track,
              with control data emitted in the PES header as per ETSI TS 101 154 Annex E.

              - **InputType** *(string) --* Set to "broadcasterMixedAd" when input contains
              pre-mixed main audio + AD (narration) as a stereo pair. The Audio Type field
              (audioType) will be set to 3, which signals to downstream systems that this stream
              contains "broadcaster mixed AD". Note that the input received by the encoder must
              contain pre-mixed audio; the encoder does not perform the mixing. The values in
              audioTypeControl and audioType (in AudioDescription) are ignored when set to
              broadcasterMixedAd. Leave set to "normal" when input does not contain pre-mixed audio
              + AD.

              - **Profile** *(string) --* AAC Profile.

              - **RateControlMode** *(string) --* Rate Control Mode.

              - **RawFormat** *(string) --* Sets LATM / LOAS AAC output for raw containers.

              - **SampleRate** *(float) --* Sample rate in Hz. Valid values depend on rate control
              mode and profile.

              - **Spec** *(string) --* Use MPEG-2 AAC audio instead of MPEG-4 AAC audio for raw or
              MPEG-2 Transport Stream containers.

              - **VbrQuality** *(string) --* VBR Quality Level - Only used if rateControlMode is
              VBR.

            - **Ac3Settings** *(dict) --* Ac3 Settings

              - **Bitrate** *(float) --* Average bitrate in bits/second. Valid bitrates depend on
              the coding mode.

              - **BitstreamMode** *(string) --* Specifies the bitstream mode (bsmod) for the emitted
              AC-3 stream. See ATSC A/52-2012 for background on these values.

              - **CodingMode** *(string) --* Dolby Digital coding mode. Determines number of
              channels.

              - **Dialnorm** *(integer) --* Sets the dialnorm for the output. If excluded and input
              audio is Dolby Digital, dialnorm will be passed through.

              - **DrcProfile** *(string) --* If set to filmStandard, adds dynamic range compression
              signaling to the output bitstream as defined in the Dolby Digital specification.

              - **LfeFilter** *(string) --* When set to enabled, applies a 120Hz lowpass filter to
              the LFE channel prior to encoding. Only valid in codingMode32Lfe mode.

              - **MetadataControl** *(string) --* When set to "followInput", encoder metadata will
              be sourced from the DD, DD+, or DolbyE decoder that supplied this audio data. If audio
              was not supplied from one of these streams, then the static metadata settings will be
              used.

            - **Eac3Settings** *(dict) --* Eac3 Settings

              - **AttenuationControl** *(string) --* When set to attenuate3Db, applies a 3 dB
              attenuation to the surround channels. Only used for 3/2 coding mode.

              - **Bitrate** *(float) --* Average bitrate in bits/second. Valid bitrates depend on
              the coding mode.

              - **BitstreamMode** *(string) --* Specifies the bitstream mode (bsmod) for the emitted
              E-AC-3 stream. See ATSC A/52-2012 (Annex E) for background on these values.

              - **CodingMode** *(string) --* Dolby Digital Plus coding mode. Determines number of
              channels.

              - **DcFilter** *(string) --* When set to enabled, activates a DC highpass filter for
              all input channels.

              - **Dialnorm** *(integer) --* Sets the dialnorm for the output. If blank and input
              audio is Dolby Digital Plus, dialnorm will be passed through.

              - **DrcLine** *(string) --* Sets the Dolby dynamic range compression profile.

              - **DrcRf** *(string) --* Sets the profile for heavy Dolby dynamic range compression,
              ensures that the instantaneous signal peaks do not exceed specified levels.

              - **LfeControl** *(string) --* When encoding 3/2 audio, setting to lfe enables the LFE
              channel

              - **LfeFilter** *(string) --* When set to enabled, applies a 120Hz lowpass filter to
              the LFE channel prior to encoding. Only valid with codingMode32 coding mode.

              - **LoRoCenterMixLevel** *(float) --* Left only/Right only center mix level. Only used
              for 3/2 coding mode.

              - **LoRoSurroundMixLevel** *(float) --* Left only/Right only surround mix level. Only
              used for 3/2 coding mode.

              - **LtRtCenterMixLevel** *(float) --* Left total/Right total center mix level. Only
              used for 3/2 coding mode.

              - **LtRtSurroundMixLevel** *(float) --* Left total/Right total surround mix level.
              Only used for 3/2 coding mode.

              - **MetadataControl** *(string) --* When set to followInput, encoder metadata will be
              sourced from the DD, DD+, or DolbyE decoder that supplied this audio data. If audio
              was not supplied from one of these streams, then the static metadata settings will be
              used.

              - **PassthroughControl** *(string) --* When set to whenPossible, input DD+ audio will
              be passed through if it is present on the input. This detection is dynamic over the
              life of the transcode. Inputs that alternate between DD+ and non-DD+ content will have
              a consistent DD+ output as the system alternates between passthrough and encoding.

              - **PhaseControl** *(string) --* When set to shift90Degrees, applies a 90-degree phase
              shift to the surround channels. Only used for 3/2 coding mode.

              - **StereoDownmix** *(string) --* Stereo downmix preference. Only used for 3/2 coding
              mode.

              - **SurroundExMode** *(string) --* When encoding 3/2 audio, sets whether an extra
              center back surround channel is matrix encoded into the left and right surround
              channels.

              - **SurroundMode** *(string) --* When encoding 2/0 audio, sets whether Dolby Surround
              is matrix encoded into the two channels.

            - **Mp2Settings** *(dict) --* Mp2 Settings

              - **Bitrate** *(float) --* Average bitrate in bits/second.

              - **CodingMode** *(string) --* The MPEG2 Audio coding mode. Valid values are
              codingMode10 (for mono) or codingMode20 (for stereo).

              - **SampleRate** *(float) --* Sample rate in Hz.

            - **PassThroughSettings** *(dict) --* Pass Through Settings

          - **LanguageCode** *(string) --* Indicates the language of the audio output track. Only
          used if languageControlMode is useConfigured, or there is no ISO 639 language code
          specified in the input.

          - **LanguageCodeControl** *(string) --* Choosing followInput will cause the ISO 639
          language code of the output to follow the ISO 639 language code of the input. The
          languageCode will be used when useConfigured is set, or when followInput is selected but
          there is no ISO 639 language code specified by the input.

          - **Name** *(string) --* The name of this AudioDescription. Outputs will use this name to
          uniquely identify this AudioDescription. Description names should be unique within this
          Live Event.

          - **RemixSettings** *(dict) --* Settings that control how input audio channels are remixed
          into the output audio channels.

            - **ChannelMappings** *(list) --* Mapping of input channels to output channels, with
            appropriate gain adjustments.

              - *(dict) --* Audio Channel Mapping

                - **InputChannelLevels** *(list) --* Indices and gain values for each input channel
                that should be remixed into this output channel.

                  - *(dict) --* Input Channel Level

                    - **Gain** *(integer) --* Remixing value. Units are in dB and acceptable values
                    are within the range from -60 (mute) and 6 dB.

                    - **InputChannel** *(integer) --* The index of the input channel used as a
                    source.

                - **OutputChannel** *(integer) --* The index of the output channel being produced.

            - **ChannelsIn** *(integer) --* Number of input channels to be used.

            - **ChannelsOut** *(integer) --* Number of output channels to be produced. Valid values:
            1, 2, 4, 6, 8

          - **StreamName** *(string) --* Used for MS Smooth and Apple HLS outputs. Indicates the
          name displayed by the player (eg. English, or Director Commentary).

      - **AvailBlanking** *(dict) --* Settings for ad avail blanking.

        - **AvailBlankingImage** *(dict) --* Blanking image to be used. Leave empty for solid black.
        Only bmp and png images are supported.

          - **PasswordParam** *(string) --* key used to extract the password from EC2 Parameter
          store

          - **Uri** *(string) --* Uniform Resource Identifier - This should be a path to a file
          accessible to the Live system (eg. a http:// URI) depending on the output type. For
          example, a RTMP destination should have a uri simliar to: "rtmp://fmsserver/live".

          - **Username** *(string) --* Documentation update needed

        - **State** *(string) --* When set to enabled, causes video, audio and captions to be
        blanked when insertion metadata is added.

      - **AvailConfiguration** *(dict) --* Event-wide configuration settings for ad avail insertion.

        - **AvailSettings** *(dict) --* Ad avail settings.

          - **Scte35SpliceInsert** *(dict) --* Scte35 Splice Insert

            - **AdAvailOffset** *(integer) --* When specified, this offset (in milliseconds) is
            added to the input Ad Avail PTS time. This only applies to embedded SCTE 104/35 messages
            and does not apply to OOB messages.

            - **NoRegionalBlackoutFlag** *(string) --* When set to ignore, Segment Descriptors with
            noRegionalBlackoutFlag set to 0 will no longer trigger blackouts or Ad Avail slates

            - **WebDeliveryAllowedFlag** *(string) --* When set to ignore, Segment Descriptors with
            webDeliveryAllowedFlag set to 0 will no longer trigger blackouts or Ad Avail slates

          - **Scte35TimeSignalApos** *(dict) --* Scte35 Time Signal Apos

            - **AdAvailOffset** *(integer) --* When specified, this offset (in milliseconds) is
            added to the input Ad Avail PTS time. This only applies to embedded SCTE 104/35 messages
            and does not apply to OOB messages.

            - **NoRegionalBlackoutFlag** *(string) --* When set to ignore, Segment Descriptors with
            noRegionalBlackoutFlag set to 0 will no longer trigger blackouts or Ad Avail slates

            - **WebDeliveryAllowedFlag** *(string) --* When set to ignore, Segment Descriptors with
            webDeliveryAllowedFlag set to 0 will no longer trigger blackouts or Ad Avail slates

      - **BlackoutSlate** *(dict) --* Settings for blackout slate.

        - **BlackoutSlateImage** *(dict) --* Blackout slate image to be used. Leave empty for solid
        black. Only bmp and png images are supported.

          - **PasswordParam** *(string) --* key used to extract the password from EC2 Parameter
          store

          - **Uri** *(string) --* Uniform Resource Identifier - This should be a path to a file
          accessible to the Live system (eg. a http:// URI) depending on the output type. For
          example, a RTMP destination should have a uri simliar to: "rtmp://fmsserver/live".

          - **Username** *(string) --* Documentation update needed

        - **NetworkEndBlackout** *(string) --* Setting to enabled causes the encoder to blackout the
        video, audio, and captions, and raise the "Network Blackout Image" slate when an SCTE104/35
        Network End Segmentation Descriptor is encountered. The blackout will be lifted when the
        Network Start Segmentation Descriptor is encountered. The Network End and Network Start
        descriptors must contain a network ID that matches the value entered in "Network ID".

        - **NetworkEndBlackoutImage** *(dict) --* Path to local file to use as Network End Blackout
        image. Image will be scaled to fill the entire output raster.

          - **PasswordParam** *(string) --* key used to extract the password from EC2 Parameter
          store

          - **Uri** *(string) --* Uniform Resource Identifier - This should be a path to a file
          accessible to the Live system (eg. a http:// URI) depending on the output type. For
          example, a RTMP destination should have a uri simliar to: "rtmp://fmsserver/live".

          - **Username** *(string) --* Documentation update needed

        - **NetworkId** *(string) --* Provides Network ID that matches EIDR ID format (e.g.,
        "10.XXXX/XXXX-XXXX-XXXX-XXXX-XXXX-C").

        - **State** *(string) --* When set to enabled, causes video, audio and captions to be
        blanked when indicated by program metadata.

      - **CaptionDescriptions** *(list) --* Settings for caption decriptions

        - *(dict) --* Caption Description

          - **CaptionSelectorName** *(string) --* Specifies which input caption selector to use as a
          caption source when generating output captions. This field should match a captionSelector
          name.

          - **DestinationSettings** *(dict) --* Additional settings for captions destination that
          depend on the destination type.

            - **AribDestinationSettings** *(dict) --* Arib Destination Settings

            - **BurnInDestinationSettings** *(dict) --* Burn In Destination Settings

              - **Alignment** *(string) --* If no explicit xPosition or yPosition is provided,
              setting alignment to centered will place the captions at the bottom center of the
              output. Similarly, setting a left alignment will align captions to the bottom left of
              the output. If x and y positions are given in conjunction with the alignment
              parameter, the font will be justified (either left or centered) relative to those
              coordinates. Selecting "smart" justification will left-justify live subtitles and
              center-justify pre-recorded subtitles. All burn-in and DVB-Sub font settings must
              match.

              - **BackgroundColor** *(string) --* Specifies the color of the rectangle behind the
              captions. All burn-in and DVB-Sub font settings must match.

              - **BackgroundOpacity** *(integer) --* Specifies the opacity of the background
              rectangle. 255 is opaque; 0 is transparent. Leaving this parameter out is equivalent
              to setting it to 0 (transparent). All burn-in and DVB-Sub font settings must match.

              - **Font** *(dict) --* External font file used for caption burn-in. File extension
              must be 'ttf' or 'tte'. Although the user can select output fonts for many different
              types of input captions, embedded, STL and teletext sources use a strict grid system.
              Using external fonts with these caption sources could cause unexpected display of
              proportional fonts. All burn-in and DVB-Sub font settings must match.

                - **PasswordParam** *(string) --* key used to extract the password from EC2
                Parameter store

                - **Uri** *(string) --* Uniform Resource Identifier - This should be a path to a
                file accessible to the Live system (eg. a http:// URI) depending on the output type.
                For example, a RTMP destination should have a uri simliar to:
                "rtmp://fmsserver/live".

                - **Username** *(string) --* Documentation update needed

              - **FontColor** *(string) --* Specifies the color of the burned-in captions. This
              option is not valid for source captions that are STL, 608/embedded or teletext. These
              source settings are already pre-defined by the caption stream. All burn-in and DVB-Sub
              font settings must match.

              - **FontOpacity** *(integer) --* Specifies the opacity of the burned-in captions. 255
              is opaque; 0 is transparent. All burn-in and DVB-Sub font settings must match.

              - **FontResolution** *(integer) --* Font resolution in DPI (dots per inch); default is
              96 dpi. All burn-in and DVB-Sub font settings must match.

              - **FontSize** *(string) --* When set to 'auto' fontSize will scale depending on the
              size of the output. Giving a positive integer will specify the exact font size in
              points. All burn-in and DVB-Sub font settings must match.

              - **OutlineColor** *(string) --* Specifies font outline color. This option is not
              valid for source captions that are either 608/embedded or teletext. These source
              settings are already pre-defined by the caption stream. All burn-in and DVB-Sub font
              settings must match.

              - **OutlineSize** *(integer) --* Specifies font outline size in pixels. This option is
              not valid for source captions that are either 608/embedded or teletext. These source
              settings are already pre-defined by the caption stream. All burn-in and DVB-Sub font
              settings must match.

              - **ShadowColor** *(string) --* Specifies the color of the shadow cast by the
              captions. All burn-in and DVB-Sub font settings must match.

              - **ShadowOpacity** *(integer) --* Specifies the opacity of the shadow. 255 is opaque;
              0 is transparent. Leaving this parameter out is equivalent to setting it to 0
              (transparent). All burn-in and DVB-Sub font settings must match.

              - **ShadowXOffset** *(integer) --* Specifies the horizontal offset of the shadow
              relative to the captions in pixels. A value of -2 would result in a shadow offset 2
              pixels to the left. All burn-in and DVB-Sub font settings must match.

              - **ShadowYOffset** *(integer) --* Specifies the vertical offset of the shadow
              relative to the captions in pixels. A value of -2 would result in a shadow offset 2
              pixels above the text. All burn-in and DVB-Sub font settings must match.

              - **TeletextGridControl** *(string) --* Controls whether a fixed grid size will be
              used to generate the output subtitles bitmap. Only applicable for Teletext inputs and
              DVB-Sub/Burn-in outputs.

              - **XPosition** *(integer) --* Specifies the horizontal position of the caption
              relative to the left side of the output in pixels. A value of 10 would result in the
              captions starting 10 pixels from the left of the output. If no explicit xPosition is
              provided, the horizontal caption position will be determined by the alignment
              parameter. All burn-in and DVB-Sub font settings must match.

              - **YPosition** *(integer) --* Specifies the vertical position of the caption relative
              to the top of the output in pixels. A value of 10 would result in the captions
              starting 10 pixels from the top of the output. If no explicit yPosition is provided,
              the caption will be positioned towards the bottom of the output. All burn-in and
              DVB-Sub font settings must match.

            - **DvbSubDestinationSettings** *(dict) --* Dvb Sub Destination Settings

              - **Alignment** *(string) --* If no explicit xPosition or yPosition is provided,
              setting alignment to centered will place the captions at the bottom center of the
              output. Similarly, setting a left alignment will align captions to the bottom left of
              the output. If x and y positions are given in conjunction with the alignment
              parameter, the font will be justified (either left or centered) relative to those
              coordinates. Selecting "smart" justification will left-justify live subtitles and
              center-justify pre-recorded subtitles. This option is not valid for source captions
              that are STL or 608/embedded. These source settings are already pre-defined by the
              caption stream. All burn-in and DVB-Sub font settings must match.

              - **BackgroundColor** *(string) --* Specifies the color of the rectangle behind the
              captions. All burn-in and DVB-Sub font settings must match.

              - **BackgroundOpacity** *(integer) --* Specifies the opacity of the background
              rectangle. 255 is opaque; 0 is transparent. Leaving this parameter blank is equivalent
              to setting it to 0 (transparent). All burn-in and DVB-Sub font settings must match.

              - **Font** *(dict) --* External font file used for caption burn-in. File extension
              must be 'ttf' or 'tte'. Although the user can select output fonts for many different
              types of input captions, embedded, STL and teletext sources use a strict grid system.
              Using external fonts with these caption sources could cause unexpected display of
              proportional fonts. All burn-in and DVB-Sub font settings must match.

                - **PasswordParam** *(string) --* key used to extract the password from EC2
                Parameter store

                - **Uri** *(string) --* Uniform Resource Identifier - This should be a path to a
                file accessible to the Live system (eg. a http:// URI) depending on the output type.
                For example, a RTMP destination should have a uri simliar to:
                "rtmp://fmsserver/live".

                - **Username** *(string) --* Documentation update needed

              - **FontColor** *(string) --* Specifies the color of the burned-in captions. This
              option is not valid for source captions that are STL, 608/embedded or teletext. These
              source settings are already pre-defined by the caption stream. All burn-in and DVB-Sub
              font settings must match.

              - **FontOpacity** *(integer) --* Specifies the opacity of the burned-in captions. 255
              is opaque; 0 is transparent. All burn-in and DVB-Sub font settings must match.

              - **FontResolution** *(integer) --* Font resolution in DPI (dots per inch); default is
              96 dpi. All burn-in and DVB-Sub font settings must match.

              - **FontSize** *(string) --* When set to auto fontSize will scale depending on the
              size of the output. Giving a positive integer will specify the exact font size in
              points. All burn-in and DVB-Sub font settings must match.

              - **OutlineColor** *(string) --* Specifies font outline color. This option is not
              valid for source captions that are either 608/embedded or teletext. These source
              settings are already pre-defined by the caption stream. All burn-in and DVB-Sub font
              settings must match.

              - **OutlineSize** *(integer) --* Specifies font outline size in pixels. This option is
              not valid for source captions that are either 608/embedded or teletext. These source
              settings are already pre-defined by the caption stream. All burn-in and DVB-Sub font
              settings must match.

              - **ShadowColor** *(string) --* Specifies the color of the shadow cast by the
              captions. All burn-in and DVB-Sub font settings must match.

              - **ShadowOpacity** *(integer) --* Specifies the opacity of the shadow. 255 is opaque;
              0 is transparent. Leaving this parameter blank is equivalent to setting it to 0
              (transparent). All burn-in and DVB-Sub font settings must match.

              - **ShadowXOffset** *(integer) --* Specifies the horizontal offset of the shadow
              relative to the captions in pixels. A value of -2 would result in a shadow offset 2
              pixels to the left. All burn-in and DVB-Sub font settings must match.

              - **ShadowYOffset** *(integer) --* Specifies the vertical offset of the shadow
              relative to the captions in pixels. A value of -2 would result in a shadow offset 2
              pixels above the text. All burn-in and DVB-Sub font settings must match.

              - **TeletextGridControl** *(string) --* Controls whether a fixed grid size will be
              used to generate the output subtitles bitmap. Only applicable for Teletext inputs and
              DVB-Sub/Burn-in outputs.

              - **XPosition** *(integer) --* Specifies the horizontal position of the caption
              relative to the left side of the output in pixels. A value of 10 would result in the
              captions starting 10 pixels from the left of the output. If no explicit xPosition is
              provided, the horizontal caption position will be determined by the alignment
              parameter. This option is not valid for source captions that are STL, 608/embedded or
              teletext. These source settings are already pre-defined by the caption stream. All
              burn-in and DVB-Sub font settings must match.

              - **YPosition** *(integer) --* Specifies the vertical position of the caption relative
              to the top of the output in pixels. A value of 10 would result in the captions
              starting 10 pixels from the top of the output. If no explicit yPosition is provided,
              the caption will be positioned towards the bottom of the output. This option is not
              valid for source captions that are STL, 608/embedded or teletext. These source
              settings are already pre-defined by the caption stream. All burn-in and DVB-Sub font
              settings must match.

            - **EmbeddedDestinationSettings** *(dict) --* Embedded Destination Settings

            - **EmbeddedPlusScte20DestinationSettings** *(dict) --* Embedded Plus Scte20 Destination
            Settings

            - **RtmpCaptionInfoDestinationSettings** *(dict) --* Rtmp Caption Info Destination
            Settings

            - **Scte20PlusEmbeddedDestinationSettings** *(dict) --* Scte20 Plus Embedded Destination
            Settings

            - **Scte27DestinationSettings** *(dict) --* Scte27 Destination Settings

            - **SmpteTtDestinationSettings** *(dict) --* Smpte Tt Destination Settings

            - **TeletextDestinationSettings** *(dict) --* Teletext Destination Settings

            - **TtmlDestinationSettings** *(dict) --* Ttml Destination Settings

              - **StyleControl** *(string) --* When set to passthrough, passes through style and
              position information from a TTML-like input source (TTML, SMPTE-TT, CFF-TT) to the
              CFF-TT output or TTML output.

            - **WebvttDestinationSettings** *(dict) --* Webvtt Destination Settings

          - **LanguageCode** *(string) --* ISO 639-2 three-digit code:
          http://www.loc.gov/standards/iso639-2/

          - **LanguageDescription** *(string) --* Human readable information to indicate captions
          available for players (eg. English, or Spanish).

          - **Name** *(string) --* Name of the caption description. Used to associate a caption
          description with an output. Names must be unique within an event.

      - **GlobalConfiguration** *(dict) --* Configuration settings that apply to the event as a
      whole.

        - **InitialAudioGain** *(integer) --* Value to set the initial audio gain for the Live
        Event.

        - **InputEndAction** *(string) --* Indicates the action to take when the current input
        completes (e.g. end-of-file). When switchAndLoopInputs is configured the encoder will
        restart at the beginning of the first input. When "none" is configured the encoder will
        transcode either black, a solid color, or a user specified slate images per the "Input Loss
        Behavior" configuration until the next input switch occurs (which is controlled through the
        Channel Schedule API).

        - **InputLossBehavior** *(dict) --* Settings for system actions when input is lost.

          - **BlackFrameMsec** *(integer) --* Documentation update needed

          - **InputLossImageColor** *(string) --* When input loss image type is "color" this field
          specifies the color to use. Value: 6 hex characters representing the values of RGB.

          - **InputLossImageSlate** *(dict) --* When input loss image type is "slate" these fields
          specify the parameters for accessing the slate.

            - **PasswordParam** *(string) --* key used to extract the password from EC2 Parameter
            store

            - **Uri** *(string) --* Uniform Resource Identifier - This should be a path to a file
            accessible to the Live system (eg. a http:// URI) depending on the output type. For
            example, a RTMP destination should have a uri simliar to: "rtmp://fmsserver/live".

            - **Username** *(string) --* Documentation update needed

          - **InputLossImageType** *(string) --* Indicates whether to substitute a solid color or a
          slate into the output after input loss exceeds blackFrameMsec.

          - **RepeatFrameMsec** *(integer) --* Documentation update needed

        - **OutputLockingMode** *(string) --* Indicates how MediaLive pipelines are synchronized.
        PIPELINELOCKING - MediaLive will attempt to synchronize the output of each pipeline to the
        other. EPOCHLOCKING - MediaLive will attempt to synchronize the output of each pipeline to
        the Unix epoch.

        - **OutputTimingSource** *(string) --* Indicates whether the rate of frames emitted by the
        Live encoder should be paced by its system clock (which optionally may be locked to another
        source via NTP) or should be locked to the clock of the source that is providing the input
        stream.

        - **SupportLowFramerateInputs** *(string) --* Adjusts video input buffer for streams with
        very low video framerates. This is commonly set to enabled for music channels with less than
        one video frame per second.

      - **NielsenConfiguration** *(dict) --* Nielsen configuration settings.

        - **DistributorId** *(string) --* Enter the Distributor ID assigned to your organization by
        Nielsen.

        - **NielsenPcmToId3Tagging** *(string) --* Enables Nielsen PCM to ID3 tagging

      - **OutputGroups** *(list) --* Placeholder documentation for __listOfOutputGroup

        - *(dict) --* Output groups for this Live Event. Output groups contain information about
        where streams should be distributed.

          - **Name** *(string) --* Custom output group name optionally defined by the user. Only
          letters, numbers, and the underscore character allowed; only 32 characters allowed.

          - **OutputGroupSettings** *(dict) --* Settings associated with the output group.

            - **ArchiveGroupSettings** *(dict) --* Archive Group Settings

              - **Destination** *(dict) --* A directory and base filename where archive files should
              be written.

                - **DestinationRefId** *(string) --* Placeholder documentation for __string

              - **RolloverInterval** *(integer) --* Number of seconds to write to archive file
              before closing and starting a new one.

            - **FrameCaptureGroupSettings** *(dict) --* Frame Capture Group Settings

              - **Destination** *(dict) --* The destination for the frame capture files. Either the
              URI for an Amazon S3 bucket and object, plus a file name prefix (for example,
              s3ssl://sportsDelivery/highlights/20180820/curling_) or the URI for a MediaStore
              container, plus a file name prefix (for example,
              mediastoressl://sportsDelivery/20180820/curling_). The final file names consist of the
              prefix from the destination field (for example, "curling_") + name modifier + the
              counter (5 digits, starting from 00001) + extension (which is always .jpg). For
              example, curlingLow.00001.jpg

                - **DestinationRefId** *(string) --* Placeholder documentation for __string

            - **HlsGroupSettings** *(dict) --* Hls Group Settings

              - **AdMarkers** *(list) --* Choose one or more ad marker types to pass SCTE35 signals
              through to this group of Apple HLS outputs.

                - *(string) --* Hls Ad Markers

              - **BaseUrlContent** *(string) --* A partial URI prefix that will be prepended to each
              output in the media .m3u8 file. Can be used if base manifest is delivered from a
              different URL than the main .m3u8 file.

              - **BaseUrlManifest** *(string) --* A partial URI prefix that will be prepended to
              each output in the media .m3u8 file. Can be used if base manifest is delivered from a
              different URL than the main .m3u8 file.

              - **CaptionLanguageMappings** *(list) --* Mapping of up to 4 caption channels to
              caption languages. Is only meaningful if captionLanguageSetting is set to "insert".

                - *(dict) --* Maps a caption channel to an ISO 693-2 language code
                (http://www.loc.gov/standards/iso639-2), with an optional description.

                  - **CaptionChannel** *(integer) --* The closed caption channel being described by
                  this CaptionLanguageMapping. Each channel mapping must have a unique channel
                  number (maximum of 4)

                  - **LanguageCode** *(string) --* Three character ISO 639-2 language code (see
                  http://www.loc.gov/standards/iso639-2)

                  - **LanguageDescription** *(string) --* Textual description of language

              - **CaptionLanguageSetting** *(string) --* Applies only to 608 Embedded output
              captions. insert: Include CLOSED-CAPTIONS lines in the manifest. Specify at least one
              language in the CC1 Language Code field. One CLOSED-CAPTION line is added for each
              Language Code you specify. Make sure to specify the languages in the order in which
              they appear in the original source (if the source is embedded format) or the order of
              the caption selectors (if the source is other than embedded). Otherwise, languages in
              the manifest will not match up properly with the output captions. none: Include
              CLOSED-CAPTIONS=
                  NONE line in the manifest. omit: Omit any CLOSED-CAPTIONS line from
              the manifest.

              - **ClientCache** *(string) --* When set to "disabled", sets the #EXT-X-ALLOW-CACHE:no
              tag in the manifest, which prevents clients from saving media segments for later
              replay.

              - **CodecSpecification** *(string) --* Specification to use (RFC-6381 or the default
              RFC-4281) during m3u8 playlist generation.

              - **ConstantIv** *(string) --* For use with encryptionType. This is a 128-bit, 16-byte
              hex value represented by a 32-character text string. If ivSource is set to "explicit"
              then this parameter is required and is used as the IV for encryption.

              - **Destination** *(dict) --* A directory or HTTP destination for the HLS segments,
              manifest files, and encryption keys (if enabled).

                - **DestinationRefId** *(string) --* Placeholder documentation for __string

              - **DirectoryStructure** *(string) --* Place segments in subdirectories.

              - **EncryptionType** *(string) --* Encrypts the segments with the given encryption
              scheme. Exclude this parameter if no encryption is desired.

              - **HlsCdnSettings** *(dict) --* Parameters that control interactions with the CDN.

                - **HlsAkamaiSettings** *(dict) --* Hls Akamai Settings

                  - **ConnectionRetryInterval** *(integer) --* Number of seconds to wait before
                  retrying connection to the CDN if the connection is lost.

                  - **FilecacheDuration** *(integer) --* Size in seconds of file cache for streaming
                  outputs.

                  - **HttpTransferMode** *(string) --* Specify whether or not to use chunked
                  transfer encoding to Akamai. User should contact Akamai to enable this feature.

                  - **NumRetries** *(integer) --* Number of retry attempts that will be made before
                  the Live Event is put into an error state.

                  - **RestartDelay** *(integer) --* If a streaming output fails, number of seconds
                  to wait until a restart is initiated. A value of 0 means never restart.

                  - **Salt** *(string) --* Salt for authenticated Akamai.

                  - **Token** *(string) --* Token parameter for authenticated akamai. If not
                  specified, _gda_ is used.

                - **HlsBasicPutSettings** *(dict) --* Hls Basic Put Settings

                  - **ConnectionRetryInterval** *(integer) --* Number of seconds to wait before
                  retrying connection to the CDN if the connection is lost.

                  - **FilecacheDuration** *(integer) --* Size in seconds of file cache for streaming
                  outputs.

                  - **NumRetries** *(integer) --* Number of retry attempts that will be made before
                  the Live Event is put into an error state.

                  - **RestartDelay** *(integer) --* If a streaming output fails, number of seconds
                  to wait until a restart is initiated. A value of 0 means never restart.

                - **HlsMediaStoreSettings** *(dict) --* Hls Media Store Settings

                  - **ConnectionRetryInterval** *(integer) --* Number of seconds to wait before
                  retrying connection to the CDN if the connection is lost.

                  - **FilecacheDuration** *(integer) --* Size in seconds of file cache for streaming
                  outputs.

                  - **MediaStoreStorageClass** *(string) --* When set to temporal, output files are
                  stored in non-persistent memory for faster reading and writing.

                  - **NumRetries** *(integer) --* Number of retry attempts that will be made before
                  the Live Event is put into an error state.

                  - **RestartDelay** *(integer) --* If a streaming output fails, number of seconds
                  to wait until a restart is initiated. A value of 0 means never restart.

                - **HlsWebdavSettings** *(dict) --* Hls Webdav Settings

                  - **ConnectionRetryInterval** *(integer) --* Number of seconds to wait before
                  retrying connection to the CDN if the connection is lost.

                  - **FilecacheDuration** *(integer) --* Size in seconds of file cache for streaming
                  outputs.

                  - **HttpTransferMode** *(string) --* Specify whether or not to use chunked
                  transfer encoding to WebDAV.

                  - **NumRetries** *(integer) --* Number of retry attempts that will be made before
                  the Live Event is put into an error state.

                  - **RestartDelay** *(integer) --* If a streaming output fails, number of seconds
                  to wait until a restart is initiated. A value of 0 means never restart.

              - **IFrameOnlyPlaylists** *(string) --* DISABLED: Do not create an I-frame-only
              manifest, but do create the master and media manifests (according to the Output
              Selection field). STANDARD: Create an I-frame-only manifest for each output that
              contains video, as well as the other manifests (according to the Output Selection
              field). The I-frame manifest contains a #EXT-X-I-FRAMES-ONLY tag to indicate it is
              I-frame only, and one or more #EXT-X-BYTERANGE entries identifying the I-frame
              position. For example, #EXT-X-BYTERANGE:160364@1461888"

              - **IndexNSegments** *(integer) --* Applies only if Mode field is LIVE. Specifies the
              maximum number of segments in the media manifest file. After this maximum, older
              segments are removed from the media manifest. This number must be less than or equal
              to the Keep Segments field.

              - **InputLossAction** *(string) --* Parameter that control output group behavior on
              input loss.

              - **IvInManifest** *(string) --* For use with encryptionType. The IV (Initialization
              Vector) is a 128-bit number used in conjunction with the key for encrypting blocks. If
              set to "include", IV is listed in the manifest, otherwise the IV is not in the
              manifest.

              - **IvSource** *(string) --* For use with encryptionType. The IV (Initialization
              Vector) is a 128-bit number used in conjunction with the key for encrypting blocks. If
              this setting is "followsSegmentNumber", it will cause the IV to change every segment
              (to match the segment number). If this is set to "explicit", you must enter a
              constantIv value.

              - **KeepSegments** *(integer) --* Applies only if Mode field is LIVE. Specifies the
              number of media segments (.ts files) to retain in the destination directory.

              - **KeyFormat** *(string) --* The value specifies how the key is represented in the
              resource identified by the URI. If parameter is absent, an implicit value of
              "identity" is used. A reverse DNS string can also be given.

              - **KeyFormatVersions** *(string) --* Either a single positive integer version value
              or a slash delimited list of version values (1/2/3).

              - **KeyProviderSettings** *(dict) --* The key provider settings.

                - **StaticKeySettings** *(dict) --* Static Key Settings

                  - **KeyProviderServer** *(dict) --* The URL of the license server used for
                  protecting content.

                    - **PasswordParam** *(string) --* key used to extract the password from EC2
                    Parameter store

                    - **Uri** *(string) --* Uniform Resource Identifier - This should be a path to a
                    file accessible to the Live system (eg. a http:// URI) depending on the output
                    type. For example, a RTMP destination should have a uri simliar to:
                    "rtmp://fmsserver/live".

                    - **Username** *(string) --* Documentation update needed

                  - **StaticKeyValue** *(string) --* Static key value as a 32 character hexadecimal
                  string.

              - **ManifestCompression** *(string) --* When set to gzip, compresses HLS playlist.

              - **ManifestDurationFormat** *(string) --* Indicates whether the output manifest
              should use floating point or integer values for segment duration.

              - **MinSegmentLength** *(integer) --* When set, minimumSegmentLength is enforced by
              looking ahead and back within the specified range for a nearby avail and extending the
              segment size if needed.

              - **Mode** *(string) --* If "vod", all segments are indexed and kept permanently in
              the destination and manifest. If "live", only the number segments specified in
              keepSegments and indexNSegments are kept; newer segments replace older segments, which
              may prevent players from rewinding all the way to the beginning of the event. VOD mode
              uses HLS EXT-X-PLAYLIST-TYPE of EVENT while the channel is running, converting it to a
              "VOD" type manifest on completion of the stream.

              - **OutputSelection** *(string) --* MANIFESTSANDSEGMENTS: Generates manifests (master
              manifest, if applicable, and media manifests) for this output group. SEGMENTSONLY:
              Does not generate any manifests for this output group.

              - **ProgramDateTime** *(string) --* Includes or excludes EXT-X-PROGRAM-DATE-TIME tag
              in .m3u8 manifest files. The value is calculated as follows: either the program date
              and time are initialized using the input timecode source, or the time is initialized
              using the input timecode source and the date is initialized using the timestampOffset.

              - **ProgramDateTimePeriod** *(integer) --* Period of insertion of
              EXT-X-PROGRAM-DATE-TIME entry, in seconds.

              - **RedundantManifest** *(string) --* ENABLED: The master manifest (.m3u8 file) for
              each pipeline includes information about both pipelines: first its own media files,
              then the media files of the other pipeline. This feature allows playout device that
              support stale manifest detection to switch from one manifest to the other, when the
              current manifest seems to be stale. There are still two destinations and two master
              manifests, but both master manifests reference the media files from both pipelines.
              DISABLED: The master manifest (.m3u8 file) for each pipeline includes information
              about its own pipeline only. For an HLS output group with MediaPackage as the
              destination, the DISABLED behavior is always followed. MediaPackage regenerates the
              manifests it serves to players so a redundant manifest from MediaLive is irrelevant.

              - **SegmentLength** *(integer) --* Length of MPEG-2 Transport Stream segments to
              create (in seconds). Note that segments will end on the next keyframe after this
              number of seconds, so actual segment length may be longer.

              - **SegmentationMode** *(string) --* useInputSegmentation has been deprecated. The
              configured segment size is always used.

              - **SegmentsPerSubdirectory** *(integer) --* Number of segments to write to a
              subdirectory before starting a new one. directoryStructure must be
              subdirectoryPerStream for this setting to have an effect.

              - **StreamInfResolution** *(string) --* Include or exclude RESOLUTION attribute for
              video in EXT-X-STREAM-INF tag of variant manifest.

              - **TimedMetadataId3Frame** *(string) --* Indicates ID3 frame that has the timecode.

              - **TimedMetadataId3Period** *(integer) --* Timed Metadata interval in seconds.

              - **TimestampDeltaMilliseconds** *(integer) --* Provides an extra millisecond delta
              offset to fine tune the timestamps.

              - **TsFileMode** *(string) --* SEGMENTEDFILES: Emit the program as segments - multiple
              .ts media files. SINGLEFILE: Applies only if Mode field is VOD. Emit the program as a
              single .ts media file. The media manifest includes #EXT-X-BYTERANGE tags to index
              segments for playback. A typical use for this value is when sending the output to AWS
              Elemental MediaConvert, which can accept only a single media file. Playback while the
              channel is running is not guaranteed due to HTTP server caching.

            - **MediaPackageGroupSettings** *(dict) --* Media Package Group Settings

              - **Destination** *(dict) --* MediaPackage channel destination.

                - **DestinationRefId** *(string) --* Placeholder documentation for __string

            - **MsSmoothGroupSettings** *(dict) --* Ms Smooth Group Settings

              - **AcquisitionPointId** *(string) --* The value of the "Acquisition Point Identity"
              element used in each message placed in the sparse track. Only enabled if
              sparseTrackType is not "none".

              - **AudioOnlyTimecodeControl** *(string) --* If set to passthrough for an audio-only
              MS Smooth output, the fragment absolute time will be set to the current timecode. This
              option does not write timecodes to the audio elementary stream.

              - **CertificateMode** *(string) --* If set to verifyAuthenticity, verify the https
              certificate chain to a trusted Certificate Authority (CA). This will cause https
              outputs to self-signed certificates to fail.

              - **ConnectionRetryInterval** *(integer) --* Number of seconds to wait before retrying
              connection to the IIS server if the connection is lost. Content will be cached during
              this time and the cache will be be delivered to the IIS server once the connection is
              re-established.

              - **Destination** *(dict) --* Smooth Streaming publish point on an IIS server.
              Elemental Live acts as a "Push" encoder to IIS.

                - **DestinationRefId** *(string) --* Placeholder documentation for __string

              - **EventId** *(string) --* MS Smooth event ID to be sent to the IIS server. Should
              only be specified if eventIdMode is set to useConfigured.

              - **EventIdMode** *(string) --* Specifies whether or not to send an event ID to the
              IIS server. If no event ID is sent and the same Live Event is used without changing
              the publishing point, clients might see cached video from the previous run. Options: -
              "useConfigured" - use the value provided in eventId - "useTimestamp" - generate and
              send an event ID based on the current timestamp - "noEventId" - do not send an event
              ID to the IIS server.

              - **EventStopBehavior** *(string) --* When set to sendEos, send EOS signal to IIS
              server when stopping the event

              - **FilecacheDuration** *(integer) --* Size in seconds of file cache for streaming
              outputs.

              - **FragmentLength** *(integer) --* Length of mp4 fragments to generate (in seconds).
              Fragment length must be compatible with GOP size and framerate.

              - **InputLossAction** *(string) --* Parameter that control output group behavior on
              input loss.

              - **NumRetries** *(integer) --* Number of retry attempts.

              - **RestartDelay** *(integer) --* Number of seconds before initiating a restart due to
              output failure, due to exhausting the numRetries on one segment, or exceeding
              filecacheDuration.

              - **SegmentationMode** *(string) --* useInputSegmentation has been deprecated. The
              configured segment size is always used.

              - **SendDelayMs** *(integer) --* Number of milliseconds to delay the output from the
              second pipeline.

              - **SparseTrackType** *(string) --* If set to scte35, use incoming SCTE-35 messages to
              generate a sparse track in this group of MS-Smooth outputs.

              - **StreamManifestBehavior** *(string) --* When set to send, send stream manifest so
              publishing point doesn't start until all streams start.

              - **TimestampOffset** *(string) --* Timestamp offset for the event. Only used if
              timestampOffsetMode is set to useConfiguredOffset.

              - **TimestampOffsetMode** *(string) --* Type of timestamp date offset to use. -
              useEventStartDate: Use the date the event was started as the offset -
              useConfiguredOffset: Use an explicitly configured date as the offset

            - **MultiplexGroupSettings** *(dict) --* Multiplex Group Settings

            - **RtmpGroupSettings** *(dict) --* Rtmp Group Settings

              - **AuthenticationScheme** *(string) --* Authentication scheme to use when connecting
              with CDN

              - **CacheFullBehavior** *(string) --* Controls behavior when content cache fills up.
              If remote origin server stalls the RTMP connection and does not accept content fast
              enough the 'Media Cache' will fill up. When the cache reaches the duration specified
              by cacheLength the cache will stop accepting new content. If set to
              disconnectImmediately, the RTMP output will force a disconnect. Clear the media cache,
              and reconnect after restartDelay seconds. If set to waitForServer, the RTMP output
              will wait up to 5 minutes to allow the origin server to begin accepting data again.

              - **CacheLength** *(integer) --* Cache length, in seconds, is used to calculate buffer
              size.

              - **CaptionData** *(string) --* Controls the types of data that passes to
              onCaptionInfo outputs. If set to 'all' then 608 and 708 carried DTVCC data will be
              passed. If set to 'field1AndField2608' then DTVCC data will be stripped out, but 608
              data from both fields will be passed. If set to 'field1608' then only the data carried
              in 608 from field 1 video will be passed.

              - **InputLossAction** *(string) --* Controls the behavior of this RTMP group if input
              becomes unavailable. - emitOutput: Emit a slate until input returns. - pauseOutput:
              Stop transmitting data until input returns. This does not close the underlying RTMP
              connection.

              - **RestartDelay** *(integer) --* If a streaming output fails, number of seconds to
              wait until a restart is initiated. A value of 0 means never restart.

            - **UdpGroupSettings** *(dict) --* Udp Group Settings

              - **InputLossAction** *(string) --* Specifies behavior of last resort when input video
              is lost, and no more backup inputs are available. When dropTs is selected the entire
              transport stream will stop being emitted. When dropProgram is selected the program can
              be dropped from the transport stream (and replaced with null packets to meet the TS
              bitrate requirement). Or, when emitProgram is chosen the transport stream will
              continue to be produced normally with repeat frames, black frames, or slate frames
              substituted for the absent input video.

              - **TimedMetadataId3Frame** *(string) --* Indicates ID3 frame that has the timecode.

              - **TimedMetadataId3Period** *(integer) --* Timed Metadata interval in seconds.

          - **Outputs** *(list) --* Placeholder documentation for __listOfOutput

            - *(dict) --* Output settings. There can be multiple outputs within a group.

              - **AudioDescriptionNames** *(list) --* The names of the AudioDescriptions used as
              audio sources for this output.

                - *(string) --* Placeholder documentation for __string

              - **CaptionDescriptionNames** *(list) --* The names of the CaptionDescriptions used as
              caption sources for this output.

                - *(string) --* Placeholder documentation for __string

              - **OutputName** *(string) --* The name used to identify an output.

              - **OutputSettings** *(dict) --* Output type-specific settings.

                - **ArchiveOutputSettings** *(dict) --* Archive Output Settings

                  - **ContainerSettings** *(dict) --* Settings specific to the container type of the
                  file.

                    - **M2tsSettings** *(dict) --* M2ts Settings

                      - **AbsentInputAudioBehavior** *(string) --* When set to drop, output audio
                      streams will be removed from the program if the selected input audio stream is
                      removed from the input. This allows the output audio configuration to
                      dynamically change based on input configuration. If this is set to
                      encodeSilence, all output audio streams will output encoded silence when not
                      connected to an active input stream.

                      - **Arib** *(string) --* When set to enabled, uses ARIB-compliant field muxing
                      and removes video descriptor.

                      - **AribCaptionsPid** *(string) --* Packet Identifier (PID) for ARIB Captions
                      in the transport stream. Can be entered as a decimal or hexadecimal value.
                      Valid values are 32 (or 0x20)..8182 (or 0x1ff6).

                      - **AribCaptionsPidControl** *(string) --* If set to auto, pid number used for
                      ARIB Captions will be auto-selected from unused pids. If set to useConfigured,
                      ARIB Captions will be on the configured pid number.

                      - **AudioBufferModel** *(string) --* When set to dvb, uses DVB buffer model
                      for Dolby Digital audio. When set to atsc, the ATSC model is used.

                      - **AudioFramesPerPes** *(integer) --* The number of audio frames to insert
                      for each PES packet.

                      - **AudioPids** *(string) --* Packet Identifier (PID) of the elementary audio
                      stream(s) in the transport stream. Multiple values are accepted, and can be
                      entered in ranges and/or by comma separation. Can be entered as decimal or
                      hexadecimal values. Each PID specified must be in the range of 32 (or
                      0x20)..8182 (or 0x1ff6).

                      - **AudioStreamType** *(string) --* When set to atsc, uses stream type = 0x81
                      for AC3 and stream type =
                           0x87 for EAC3. When set to dvb, uses stream type =
                      0x06.

                      - **Bitrate** *(integer) --* The output bitrate of the transport stream in
                      bits per second. Setting to 0 lets the muxer automatically determine the
                      appropriate bitrate.

                      - **BufferModel** *(string) --* If set to multiplex, use multiplex buffer
                      model for accurate interleaving. Setting to bufferModel to none can lead to
                      lower latency, but low-memory devices may not be able to play back the stream
                      without interruptions.

                      - **CcDescriptor** *(string) --* When set to enabled, generates
                      captionServiceDescriptor in PMT.

                      - **DvbNitSettings** *(dict) --* Inserts DVB Network Information Table (NIT)
                      at the specified table repetition interval.

                        - **NetworkId** *(integer) --* The numeric value placed in the Network
                        Information Table (NIT).

                        - **NetworkName** *(string) --* The network name text placed in the
                        networkNameDescriptor inside the Network Information Table. Maximum length
                        is 256 characters.

                        - **RepInterval** *(integer) --* The number of milliseconds between
                        instances of this table in the output transport stream.

                      - **DvbSdtSettings** *(dict) --* Inserts DVB Service Description Table (SDT)
                      at the specified table repetition interval.

                        - **OutputSdt** *(string) --* Selects method of inserting SDT information
                        into output stream. The sdtFollow setting copies SDT information from input
                        stream to output stream. The sdtFollowIfPresent setting copies SDT
                        information from input stream to output stream if SDT information is present
                        in the input, otherwise it will fall back on the user-defined values. The
                        sdtManual setting means user will enter the SDT information. The sdtNone
                        setting means output stream will not contain SDT information.

                        - **RepInterval** *(integer) --* The number of milliseconds between
                        instances of this table in the output transport stream.

                        - **ServiceName** *(string) --* The service name placed in the
                        serviceDescriptor in the Service Description Table. Maximum length is 256
                        characters.

                        - **ServiceProviderName** *(string) --* The service provider name placed in
                        the serviceDescriptor in the Service Description Table. Maximum length is
                        256 characters.

                      - **DvbSubPids** *(string) --* Packet Identifier (PID) for input source DVB
                      Subtitle data to this output. Multiple values are accepted, and can be entered
                      in ranges and/or by comma separation. Can be entered as decimal or hexadecimal
                      values. Each PID specified must be in the range of 32 (or 0x20)..8182 (or
                      0x1ff6).

                      - **DvbTdtSettings** *(dict) --* Inserts DVB Time and Date Table (TDT) at the
                      specified table repetition interval.

                        - **RepInterval** *(integer) --* The number of milliseconds between
                        instances of this table in the output transport stream.

                      - **DvbTeletextPid** *(string) --* Packet Identifier (PID) for input source
                      DVB Teletext data to this output. Can be entered as a decimal or hexadecimal
                      value. Valid values are 32 (or 0x20)..8182 (or 0x1ff6).

                      - **Ebif** *(string) --* If set to passthrough, passes any EBIF data from the
                      input source to this output.

                      - **EbpAudioInterval** *(string) --* When videoAndFixedIntervals is selected,
                      audio EBP markers will be added to partitions 3 and 4. The interval between
                      these additional markers will be fixed, and will be slightly shorter than the
                      video EBP marker interval. Only available when EBP Cablelabs segmentation
                      markers are selected. Partitions 1 and 2 will always follow the video
                      interval.

                      - **EbpLookaheadMs** *(integer) --* When set, enforces that Encoder Boundary
                      Points do not come within the specified time interval of each other by looking
                      ahead at input video. If another EBP is going to come in within the specified
                      time interval, the current EBP is not emitted, and the segment is "stretched"
                      to the next marker. The lookahead value does not add latency to the system.
                      The Live Event must be configured elsewhere to create sufficient latency to
                      make the lookahead accurate.

                      - **EbpPlacement** *(string) --* Controls placement of EBP on Audio PIDs. If
                      set to videoAndAudioPids, EBP markers will be placed on the video PID and all
                      audio PIDs. If set to videoPid, EBP markers will be placed on only the video
                      PID.

                      - **EcmPid** *(string) --* This field is unused and deprecated.

                      - **EsRateInPes** *(string) --* Include or exclude the ES Rate field in the
                      PES header.

                      - **EtvPlatformPid** *(string) --* Packet Identifier (PID) for input source
                      ETV Platform data to this output. Can be entered as a decimal or hexadecimal
                      value. Valid values are 32 (or 0x20)..8182 (or 0x1ff6).

                      - **EtvSignalPid** *(string) --* Packet Identifier (PID) for input source ETV
                      Signal data to this output. Can be entered as a decimal or hexadecimal value.
                      Valid values are 32 (or 0x20)..8182 (or 0x1ff6).

                      - **FragmentTime** *(float) --* The length in seconds of each fragment. Only
                      used with EBP markers.

                      - **Klv** *(string) --* If set to passthrough, passes any KLV data from the
                      input source to this output.

                      - **KlvDataPids** *(string) --* Packet Identifier (PID) for input source KLV
                      data to this output. Multiple values are accepted, and can be entered in
                      ranges and/or by comma separation. Can be entered as decimal or hexadecimal
                      values. Each PID specified must be in the range of 32 (or 0x20)..8182 (or
                      0x1ff6).

                      - **NielsenId3Behavior** *(string) --* If set to passthrough, Nielsen
                      inaudible tones for media tracking will be detected in the input audio and an
                      equivalent ID3 tag will be inserted in the output.

                      - **NullPacketBitrate** *(float) --* Value in bits per second of extra null
                      packets to insert into the transport stream. This can be used if a downstream
                      encryption system requires periodic null packets.

                      - **PatInterval** *(integer) --* The number of milliseconds between instances
                      of this table in the output transport stream. Valid values are 0, 10..1000.

                      - **PcrControl** *(string) --* When set to pcrEveryPesPacket, a Program Clock
                      Reference value is inserted for every Packetized Elementary Stream (PES)
                      header. This parameter is effective only when the PCR PID is the same as the
                      video or audio elementary stream.

                      - **PcrPeriod** *(integer) --* Maximum time in milliseconds between Program
                      Clock Reference (PCRs) inserted into the transport stream.

                      - **PcrPid** *(string) --* Packet Identifier (PID) of the Program Clock
                      Reference (PCR) in the transport stream. When no value is given, the encoder
                      will assign the same value as the Video PID. Can be entered as a decimal or
                      hexadecimal value. Valid values are 32 (or 0x20)..8182 (or 0x1ff6).

                      - **PmtInterval** *(integer) --* The number of milliseconds between instances
                      of this table in the output transport stream. Valid values are 0, 10..1000.

                      - **PmtPid** *(string) --* Packet Identifier (PID) for the Program Map Table
                      (PMT) in the transport stream. Can be entered as a decimal or hexadecimal
                      value. Valid values are 32 (or 0x20)..8182 (or 0x1ff6).

                      - **ProgramNum** *(integer) --* The value of the program number field in the
                      Program Map Table.

                      - **RateMode** *(string) --* When vbr, does not insert null packets into
                      transport stream to fill specified bitrate. The bitrate setting acts as the
                      maximum bitrate when vbr is set.

                      - **Scte27Pids** *(string) --* Packet Identifier (PID) for input source
                      SCTE-27 data to this output. Multiple values are accepted, and can be entered
                      in ranges and/or by comma separation. Can be entered as decimal or hexadecimal
                      values. Each PID specified must be in the range of 32 (or 0x20)..8182 (or
                      0x1ff6).

                      - **Scte35Control** *(string) --* Optionally pass SCTE-35 signals from the
                      input source to this output.

                      - **Scte35Pid** *(string) --* Packet Identifier (PID) of the SCTE-35 stream in
                      the transport stream. Can be entered as a decimal or hexadecimal value. Valid
                      values are 32 (or 0x20)..8182 (or 0x1ff6).

                      - **SegmentationMarkers** *(string) --* Inserts segmentation markers at each
                      segmentationTime period. raiSegstart sets the Random Access Indicator bit in
                      the adaptation field. raiAdapt sets the RAI bit and adds the current timecode
                      in the private data bytes. psiSegstart inserts PAT and PMT tables at the start
                      of segments. ebp adds Encoder Boundary Point information to the adaptation
                      field as per OpenCable specification OC-SP-EBP-I01-130118. ebpLegacy adds
                      Encoder Boundary Point information to the adaptation field using a legacy
                      proprietary format.

                      - **SegmentationStyle** *(string) --* The segmentation style parameter
                      controls how segmentation markers are inserted into the transport stream. With
                      avails, it is possible that segments may be truncated, which can influence
                      where future segmentation markers are inserted. When a segmentation style of
                      "resetCadence" is selected and a segment is truncated due to an avail, we will
                      reset the segmentation cadence. This means the subsequent segment will have a
                      duration of $segmentationTime seconds. When a segmentation style of
                      "maintainCadence" is selected and a segment is truncated due to an avail, we
                      will not reset the segmentation cadence. This means the subsequent segment
                      will likely be truncated as well. However, all segments after that will have a
                      duration of $segmentationTime seconds. Note that EBP lookahead is a slight
                      exception to this rule.

                      - **SegmentationTime** *(float) --* The length in seconds of each segment.
                      Required unless markers is set to None_.

                      - **TimedMetadataBehavior** *(string) --* When set to passthrough, timed
                      metadata will be passed through from input to output.

                      - **TimedMetadataPid** *(string) --* Packet Identifier (PID) of the timed
                      metadata stream in the transport stream. Can be entered as a decimal or
                      hexadecimal value. Valid values are 32 (or 0x20)..8182 (or 0x1ff6).

                      - **TransportStreamId** *(integer) --* The value of the transport stream ID
                      field in the Program Map Table.

                      - **VideoPid** *(string) --* Packet Identifier (PID) of the elementary video
                      stream in the transport stream. Can be entered as a decimal or hexadecimal
                      value. Valid values are 32 (or 0x20)..8182 (or 0x1ff6).

                  - **Extension** *(string) --* Output file extension. If excluded, this will be
                  auto-selected from the container type.

                  - **NameModifier** *(string) --* String concatenated to the end of the destination
                  filename. Required for multiple outputs of the same type.

                - **FrameCaptureOutputSettings** *(dict) --* Frame Capture Output Settings

                  - **NameModifier** *(string) --* Required if the output group contains more than
                  one output. This modifier forms part of the output file name.

                - **HlsOutputSettings** *(dict) --* Hls Output Settings

                  - **HlsSettings** *(dict) --* Settings regarding the underlying stream. These
                  settings are different for audio-only outputs.

                    - **AudioOnlyHlsSettings** *(dict) --* Audio Only Hls Settings

                      - **AudioGroupId** *(string) --* Specifies the group to which the audio
                      Rendition belongs.

                      - **AudioOnlyImage** *(dict) --* Optional. Specifies the .jpg or .png image to
                      use as the cover art for an audio-only output. We recommend a low bit-size
                      file because the image increases the output audio bandwidth. The image is
                      attached to the audio as an ID3 tag, frame type APIC, picture type 0x10, as
                      per the "ID3 tag version 2.4.0 - Native Frames" standard.

                        - **PasswordParam** *(string) --* key used to extract the password from EC2
                        Parameter store

                        - **Uri** *(string) --* Uniform Resource Identifier - This should be a path
                        to a file accessible to the Live system (eg. a http:// URI) depending on the
                        output type. For example, a RTMP destination should have a uri simliar to:
                        "rtmp://fmsserver/live".

                        - **Username** *(string) --* Documentation update needed

                      - **AudioTrackType** *(string) --* Four types of audio-only tracks are
                      supported: Audio-Only Variant Stream The client can play back this audio-only
                      stream instead of video in low-bandwidth scenarios. Represented as an
                      EXT-X-STREAM-INF in the HLS manifest. Alternate Audio, Auto Select, Default
                      Alternate rendition that the client should try to play back by default.
                      Represented as an EXT-X-MEDIA in the HLS manifest with DEFAULT=YES,
                      AUTOSELECT=
                          YES Alternate Audio, Auto Select, Not Default Alternate rendition
                      that the client may try to play back by default. Represented as an EXT-X-MEDIA
                      in the HLS manifest with DEFAULT=NO, AUTOSELECT=
                          YES Alternate Audio, not Auto
                      Select Alternate rendition that the client will not try to play back by
                      default. Represented as an EXT-X-MEDIA in the HLS manifest with DEFAULT=NO,
                      AUTOSELECT=NO

                    - **StandardHlsSettings** *(dict) --* Standard Hls Settings

                      - **AudioRenditionSets** *(string) --* List all the audio groups that are used
                      with the video output stream. Input all the audio GROUP-IDs that are
                      associated to the video, separate by ','.

                      - **M3u8Settings** *(dict) --* Settings information for the .m3u8 container

                        - **AudioFramesPerPes** *(integer) --* The number of audio frames to insert
                        for each PES packet.

                        - **AudioPids** *(string) --* Packet Identifier (PID) of the elementary
                        audio stream(s) in the transport stream. Multiple values are accepted, and
                        can be entered in ranges and/or by comma separation. Can be entered as
                        decimal or hexadecimal values.

                        - **EcmPid** *(string) --* This parameter is unused and deprecated.

                        - **NielsenId3Behavior** *(string) --* If set to passthrough, Nielsen
                        inaudible tones for media tracking will be detected in the input audio and
                        an equivalent ID3 tag will be inserted in the output.

                        - **PatInterval** *(integer) --* The number of milliseconds between
                        instances of this table in the output transport stream. A value of \\"0\\"
                        writes out the PMT once per segment file.

                        - **PcrControl** *(string) --* When set to pcrEveryPesPacket, a Program
                        Clock Reference value is inserted for every Packetized Elementary Stream
                        (PES) header. This parameter is effective only when the PCR PID is the same
                        as the video or audio elementary stream.

                        - **PcrPeriod** *(integer) --* Maximum time in milliseconds between Program
                        Clock References (PCRs) inserted into the transport stream.

                        - **PcrPid** *(string) --* Packet Identifier (PID) of the Program Clock
                        Reference (PCR) in the transport stream. When no value is given, the encoder
                        will assign the same value as the Video PID. Can be entered as a decimal or
                        hexadecimal value.

                        - **PmtInterval** *(integer) --* The number of milliseconds between
                        instances of this table in the output transport stream. A value of \\"0\\"
                        writes out the PMT once per segment file.

                        - **PmtPid** *(string) --* Packet Identifier (PID) for the Program Map Table
                        (PMT) in the transport stream. Can be entered as a decimal or hexadecimal
                        value.

                        - **ProgramNum** *(integer) --* The value of the program number field in the
                        Program Map Table.

                        - **Scte35Behavior** *(string) --* If set to passthrough, passes any SCTE-35
                        signals from the input source to this output.

                        - **Scte35Pid** *(string) --* Packet Identifier (PID) of the SCTE-35 stream
                        in the transport stream. Can be entered as a decimal or hexadecimal value.

                        - **TimedMetadataBehavior** *(string) --* When set to passthrough, timed
                        metadata is passed through from input to output.

                        - **TimedMetadataPid** *(string) --* Packet Identifier (PID) of the timed
                        metadata stream in the transport stream. Can be entered as a decimal or
                        hexadecimal value. Valid values are 32 (or 0x20)..8182 (or 0x1ff6).

                        - **TransportStreamId** *(integer) --* The value of the transport stream ID
                        field in the Program Map Table.

                        - **VideoPid** *(string) --* Packet Identifier (PID) of the elementary video
                        stream in the transport stream. Can be entered as a decimal or hexadecimal
                        value.

                  - **NameModifier** *(string) --* String concatenated to the end of the destination
                  filename. Accepts \\"Format Identifiers\\":#formatIdentifierParameters.

                  - **SegmentModifier** *(string) --* String concatenated to end of segment
                  filenames.

                - **MediaPackageOutputSettings** *(dict) --* Media Package Output Settings

                - **MsSmoothOutputSettings** *(dict) --* Ms Smooth Output Settings

                  - **H265PackagingType** *(string) --* Only applicable when this output is
                  referencing an H.265 video description. Specifies whether MP4 segments should be
                  packaged as HEV1 or HVC1.

                  - **NameModifier** *(string) --* String concatenated to the end of the destination
                  filename. Required for multiple outputs of the same type.

                - **MultiplexOutputSettings** *(dict) --* Multiplex Output Settings

                  - **Destination** *(dict) --* Destination is a Multiplex.

                    - **DestinationRefId** *(string) --* Placeholder documentation for __string

                - **RtmpOutputSettings** *(dict) --* Rtmp Output Settings

                  - **CertificateMode** *(string) --* If set to verifyAuthenticity, verify the tls
                  certificate chain to a trusted Certificate Authority (CA). This will cause rtmps
                  outputs with self-signed certificates to fail.

                  - **ConnectionRetryInterval** *(integer) --* Number of seconds to wait before
                  retrying a connection to the Flash Media server if the connection is lost.

                  - **Destination** *(dict) --* The RTMP endpoint excluding the stream name (eg.
                  rtmp://host/appname). For connection to Akamai, a username and password must be
                  supplied. URI fields accept format identifiers.

                    - **DestinationRefId** *(string) --* Placeholder documentation for __string

                  - **NumRetries** *(integer) --* Number of retry attempts.

                - **UdpOutputSettings** *(dict) --* Udp Output Settings

                  - **BufferMsec** *(integer) --* UDP output buffering in milliseconds. Larger
                  values increase latency through the transcoder but simultaneously assist the
                  transcoder in maintaining a constant, low-jitter UDP/RTP output while
                  accommodating clock recovery, input switching, input disruptions, picture
                  reordering, etc.

                  - **ContainerSettings** *(dict) --* Udp Container Settings

                    - **M2tsSettings** *(dict) --* M2ts Settings

                      - **AbsentInputAudioBehavior** *(string) --* When set to drop, output audio
                      streams will be removed from the program if the selected input audio stream is
                      removed from the input. This allows the output audio configuration to
                      dynamically change based on input configuration. If this is set to
                      encodeSilence, all output audio streams will output encoded silence when not
                      connected to an active input stream.

                      - **Arib** *(string) --* When set to enabled, uses ARIB-compliant field muxing
                      and removes video descriptor.

                      - **AribCaptionsPid** *(string) --* Packet Identifier (PID) for ARIB Captions
                      in the transport stream. Can be entered as a decimal or hexadecimal value.
                      Valid values are 32 (or 0x20)..8182 (or 0x1ff6).

                      - **AribCaptionsPidControl** *(string) --* If set to auto, pid number used for
                      ARIB Captions will be auto-selected from unused pids. If set to useConfigured,
                      ARIB Captions will be on the configured pid number.

                      - **AudioBufferModel** *(string) --* When set to dvb, uses DVB buffer model
                      for Dolby Digital audio. When set to atsc, the ATSC model is used.

                      - **AudioFramesPerPes** *(integer) --* The number of audio frames to insert
                      for each PES packet.

                      - **AudioPids** *(string) --* Packet Identifier (PID) of the elementary audio
                      stream(s) in the transport stream. Multiple values are accepted, and can be
                      entered in ranges and/or by comma separation. Can be entered as decimal or
                      hexadecimal values. Each PID specified must be in the range of 32 (or
                      0x20)..8182 (or 0x1ff6).

                      - **AudioStreamType** *(string) --* When set to atsc, uses stream type = 0x81
                      for AC3 and stream type =
                           0x87 for EAC3. When set to dvb, uses stream type =
                      0x06.

                      - **Bitrate** *(integer) --* The output bitrate of the transport stream in
                      bits per second. Setting to 0 lets the muxer automatically determine the
                      appropriate bitrate.

                      - **BufferModel** *(string) --* If set to multiplex, use multiplex buffer
                      model for accurate interleaving. Setting to bufferModel to none can lead to
                      lower latency, but low-memory devices may not be able to play back the stream
                      without interruptions.

                      - **CcDescriptor** *(string) --* When set to enabled, generates
                      captionServiceDescriptor in PMT.

                      - **DvbNitSettings** *(dict) --* Inserts DVB Network Information Table (NIT)
                      at the specified table repetition interval.

                        - **NetworkId** *(integer) --* The numeric value placed in the Network
                        Information Table (NIT).

                        - **NetworkName** *(string) --* The network name text placed in the
                        networkNameDescriptor inside the Network Information Table. Maximum length
                        is 256 characters.

                        - **RepInterval** *(integer) --* The number of milliseconds between
                        instances of this table in the output transport stream.

                      - **DvbSdtSettings** *(dict) --* Inserts DVB Service Description Table (SDT)
                      at the specified table repetition interval.

                        - **OutputSdt** *(string) --* Selects method of inserting SDT information
                        into output stream. The sdtFollow setting copies SDT information from input
                        stream to output stream. The sdtFollowIfPresent setting copies SDT
                        information from input stream to output stream if SDT information is present
                        in the input, otherwise it will fall back on the user-defined values. The
                        sdtManual setting means user will enter the SDT information. The sdtNone
                        setting means output stream will not contain SDT information.

                        - **RepInterval** *(integer) --* The number of milliseconds between
                        instances of this table in the output transport stream.

                        - **ServiceName** *(string) --* The service name placed in the
                        serviceDescriptor in the Service Description Table. Maximum length is 256
                        characters.

                        - **ServiceProviderName** *(string) --* The service provider name placed in
                        the serviceDescriptor in the Service Description Table. Maximum length is
                        256 characters.

                      - **DvbSubPids** *(string) --* Packet Identifier (PID) for input source DVB
                      Subtitle data to this output. Multiple values are accepted, and can be entered
                      in ranges and/or by comma separation. Can be entered as decimal or hexadecimal
                      values. Each PID specified must be in the range of 32 (or 0x20)..8182 (or
                      0x1ff6).

                      - **DvbTdtSettings** *(dict) --* Inserts DVB Time and Date Table (TDT) at the
                      specified table repetition interval.

                        - **RepInterval** *(integer) --* The number of milliseconds between
                        instances of this table in the output transport stream.

                      - **DvbTeletextPid** *(string) --* Packet Identifier (PID) for input source
                      DVB Teletext data to this output. Can be entered as a decimal or hexadecimal
                      value. Valid values are 32 (or 0x20)..8182 (or 0x1ff6).

                      - **Ebif** *(string) --* If set to passthrough, passes any EBIF data from the
                      input source to this output.

                      - **EbpAudioInterval** *(string) --* When videoAndFixedIntervals is selected,
                      audio EBP markers will be added to partitions 3 and 4. The interval between
                      these additional markers will be fixed, and will be slightly shorter than the
                      video EBP marker interval. Only available when EBP Cablelabs segmentation
                      markers are selected. Partitions 1 and 2 will always follow the video
                      interval.

                      - **EbpLookaheadMs** *(integer) --* When set, enforces that Encoder Boundary
                      Points do not come within the specified time interval of each other by looking
                      ahead at input video. If another EBP is going to come in within the specified
                      time interval, the current EBP is not emitted, and the segment is "stretched"
                      to the next marker. The lookahead value does not add latency to the system.
                      The Live Event must be configured elsewhere to create sufficient latency to
                      make the lookahead accurate.

                      - **EbpPlacement** *(string) --* Controls placement of EBP on Audio PIDs. If
                      set to videoAndAudioPids, EBP markers will be placed on the video PID and all
                      audio PIDs. If set to videoPid, EBP markers will be placed on only the video
                      PID.

                      - **EcmPid** *(string) --* This field is unused and deprecated.

                      - **EsRateInPes** *(string) --* Include or exclude the ES Rate field in the
                      PES header.

                      - **EtvPlatformPid** *(string) --* Packet Identifier (PID) for input source
                      ETV Platform data to this output. Can be entered as a decimal or hexadecimal
                      value. Valid values are 32 (or 0x20)..8182 (or 0x1ff6).

                      - **EtvSignalPid** *(string) --* Packet Identifier (PID) for input source ETV
                      Signal data to this output. Can be entered as a decimal or hexadecimal value.
                      Valid values are 32 (or 0x20)..8182 (or 0x1ff6).

                      - **FragmentTime** *(float) --* The length in seconds of each fragment. Only
                      used with EBP markers.

                      - **Klv** *(string) --* If set to passthrough, passes any KLV data from the
                      input source to this output.

                      - **KlvDataPids** *(string) --* Packet Identifier (PID) for input source KLV
                      data to this output. Multiple values are accepted, and can be entered in
                      ranges and/or by comma separation. Can be entered as decimal or hexadecimal
                      values. Each PID specified must be in the range of 32 (or 0x20)..8182 (or
                      0x1ff6).

                      - **NielsenId3Behavior** *(string) --* If set to passthrough, Nielsen
                      inaudible tones for media tracking will be detected in the input audio and an
                      equivalent ID3 tag will be inserted in the output.

                      - **NullPacketBitrate** *(float) --* Value in bits per second of extra null
                      packets to insert into the transport stream. This can be used if a downstream
                      encryption system requires periodic null packets.

                      - **PatInterval** *(integer) --* The number of milliseconds between instances
                      of this table in the output transport stream. Valid values are 0, 10..1000.

                      - **PcrControl** *(string) --* When set to pcrEveryPesPacket, a Program Clock
                      Reference value is inserted for every Packetized Elementary Stream (PES)
                      header. This parameter is effective only when the PCR PID is the same as the
                      video or audio elementary stream.

                      - **PcrPeriod** *(integer) --* Maximum time in milliseconds between Program
                      Clock Reference (PCRs) inserted into the transport stream.

                      - **PcrPid** *(string) --* Packet Identifier (PID) of the Program Clock
                      Reference (PCR) in the transport stream. When no value is given, the encoder
                      will assign the same value as the Video PID. Can be entered as a decimal or
                      hexadecimal value. Valid values are 32 (or 0x20)..8182 (or 0x1ff6).

                      - **PmtInterval** *(integer) --* The number of milliseconds between instances
                      of this table in the output transport stream. Valid values are 0, 10..1000.

                      - **PmtPid** *(string) --* Packet Identifier (PID) for the Program Map Table
                      (PMT) in the transport stream. Can be entered as a decimal or hexadecimal
                      value. Valid values are 32 (or 0x20)..8182 (or 0x1ff6).

                      - **ProgramNum** *(integer) --* The value of the program number field in the
                      Program Map Table.

                      - **RateMode** *(string) --* When vbr, does not insert null packets into
                      transport stream to fill specified bitrate. The bitrate setting acts as the
                      maximum bitrate when vbr is set.

                      - **Scte27Pids** *(string) --* Packet Identifier (PID) for input source
                      SCTE-27 data to this output. Multiple values are accepted, and can be entered
                      in ranges and/or by comma separation. Can be entered as decimal or hexadecimal
                      values. Each PID specified must be in the range of 32 (or 0x20)..8182 (or
                      0x1ff6).

                      - **Scte35Control** *(string) --* Optionally pass SCTE-35 signals from the
                      input source to this output.

                      - **Scte35Pid** *(string) --* Packet Identifier (PID) of the SCTE-35 stream in
                      the transport stream. Can be entered as a decimal or hexadecimal value. Valid
                      values are 32 (or 0x20)..8182 (or 0x1ff6).

                      - **SegmentationMarkers** *(string) --* Inserts segmentation markers at each
                      segmentationTime period. raiSegstart sets the Random Access Indicator bit in
                      the adaptation field. raiAdapt sets the RAI bit and adds the current timecode
                      in the private data bytes. psiSegstart inserts PAT and PMT tables at the start
                      of segments. ebp adds Encoder Boundary Point information to the adaptation
                      field as per OpenCable specification OC-SP-EBP-I01-130118. ebpLegacy adds
                      Encoder Boundary Point information to the adaptation field using a legacy
                      proprietary format.

                      - **SegmentationStyle** *(string) --* The segmentation style parameter
                      controls how segmentation markers are inserted into the transport stream. With
                      avails, it is possible that segments may be truncated, which can influence
                      where future segmentation markers are inserted. When a segmentation style of
                      "resetCadence" is selected and a segment is truncated due to an avail, we will
                      reset the segmentation cadence. This means the subsequent segment will have a
                      duration of $segmentationTime seconds. When a segmentation style of
                      "maintainCadence" is selected and a segment is truncated due to an avail, we
                      will not reset the segmentation cadence. This means the subsequent segment
                      will likely be truncated as well. However, all segments after that will have a
                      duration of $segmentationTime seconds. Note that EBP lookahead is a slight
                      exception to this rule.

                      - **SegmentationTime** *(float) --* The length in seconds of each segment.
                      Required unless markers is set to None_.

                      - **TimedMetadataBehavior** *(string) --* When set to passthrough, timed
                      metadata will be passed through from input to output.

                      - **TimedMetadataPid** *(string) --* Packet Identifier (PID) of the timed
                      metadata stream in the transport stream. Can be entered as a decimal or
                      hexadecimal value. Valid values are 32 (or 0x20)..8182 (or 0x1ff6).

                      - **TransportStreamId** *(integer) --* The value of the transport stream ID
                      field in the Program Map Table.

                      - **VideoPid** *(string) --* Packet Identifier (PID) of the elementary video
                      stream in the transport stream. Can be entered as a decimal or hexadecimal
                      value. Valid values are 32 (or 0x20)..8182 (or 0x1ff6).

                  - **Destination** *(dict) --* Destination address and port number for RTP or UDP
                  packets. Can be unicast or multicast RTP or UDP (eg. rtp://239.10.10.10:5001 or
                  udp://10.100.100.100:5002).

                    - **DestinationRefId** *(string) --* Placeholder documentation for __string

                  - **FecOutputSettings** *(dict) --* Settings for enabling and adjusting Forward
                  Error Correction on UDP outputs.

                    - **ColumnDepth** *(integer) --* Parameter D from SMPTE 2022-1. The height of
                    the FEC protection matrix. The number of transport stream packets per column
                    error correction packet. Must be between 4 and 20, inclusive.

                    - **IncludeFec** *(string) --* Enables column only or column and row based FEC

                    - **RowLength** *(integer) --* Parameter L from SMPTE 2022-1. The width of the
                    FEC protection matrix. Must be between 1 and 20, inclusive. If only Column FEC
                    is used, then larger values increase robustness. If Row FEC is used, then this
                    is the number of transport stream packets per row error correction packet, and
                    the value must be between 4 and 20, inclusive, if includeFec is columnAndRow. If
                    includeFec is column, this value must be 1 to 20, inclusive.

              - **VideoDescriptionName** *(string) --* The name of the VideoDescription used as the
              source for this output.

      - **TimecodeConfig** *(dict) --* Contains settings used to acquire and adjust timecode
      information from inputs.

        - **Source** *(string) --* Identifies the source for the timecode that will be associated
        with the events outputs. -Embedded (embedded): Initialize the output timecode with timecode
        from the the source. If no embedded timecode is detected in the source, the system falls
        back to using "Start at 0" (zerobased). -System Clock (systemclock): Use the UTC time.
        -Start at 0 (zerobased): The time of the first frame of the event will be 00:00:00:00.

        - **SyncThreshold** *(integer) --* Threshold in frames beyond which output timecode is
        resynchronized to the input timecode. Discrepancies below this threshold are permitted to
        avoid unnecessary discontinuities in the output timecode. No timecode sync when this is not
        specified.

      - **VideoDescriptions** *(list) --* Placeholder documentation for __listOfVideoDescription

        - *(dict) --* Video settings for this stream.

          - **CodecSettings** *(dict) --* Video codec settings.

            - **FrameCaptureSettings** *(dict) --* Frame Capture Settings

              - **CaptureInterval** *(integer) --* The frequency at which to capture frames for
              inclusion in the output. May be specified in either seconds or milliseconds, as
              specified by captureIntervalUnits.

            - **H264Settings** *(dict) --* H264 Settings

              - **AdaptiveQuantization** *(string) --* Adaptive quantization. Allows intra-frame
              quantizers to vary to improve visual quality.

              - **AfdSignaling** *(string) --* Indicates that AFD values will be written into the
              output stream. If afdSignaling is "auto", the system will try to preserve the input
              AFD value (in cases where multiple AFD values are valid). If set to "fixed", the AFD
              value will be the value configured in the fixedAfd parameter.

              - **Bitrate** *(integer) --* Average bitrate in bits/second. Required when the rate
              control mode is VBR or CBR. Not used for QVBR. In an MS Smooth output group, each
              output must have a unique value when its bitrate is rounded down to the nearest
              multiple of 1000.

              - **BufFillPct** *(integer) --* Percentage of the buffer that should initially be
              filled (HRD buffer model).

              - **BufSize** *(integer) --* Size of buffer (HRD buffer model) in bits.

              - **ColorMetadata** *(string) --* Includes colorspace metadata in the output.

              - **ColorSpaceSettings** *(dict) --* Color Space settings

                - **ColorSpacePassthroughSettings** *(dict) --* Passthrough applies no color space
                conversion to the output

                - **Rec601Settings** *(dict) --* Rec601 Settings

                - **Rec709Settings** *(dict) --* Rec709 Settings

              - **EntropyEncoding** *(string) --* Entropy encoding mode. Use cabac (must be in Main
              or High profile) or cavlc.

              - **FixedAfd** *(string) --* Four bit AFD value to write on all frames of video in the
              output stream. Only valid when afdSignaling is set to 'Fixed'.

              - **FlickerAq** *(string) --* If set to enabled, adjust quantization within each frame
              to reduce flicker or 'pop' on I-frames.

              - **FramerateControl** *(string) --* This field indicates how the output video frame
              rate is specified. If "specified" is selected then the output video frame rate is
              determined by framerateNumerator and framerateDenominator, else if
              "initializeFromSource" is selected then the output video frame rate will be set equal
              to the input video frame rate of the first input.

              - **FramerateDenominator** *(integer) --* Framerate denominator.

              - **FramerateNumerator** *(integer) --* Framerate numerator - framerate is a fraction,
              e.g. 24000 / 1001 = 23.976 fps.

              - **GopBReference** *(string) --* Documentation update needed

              - **GopClosedCadence** *(integer) --* Frequency of closed GOPs. In streaming
              applications, it is recommended that this be set to 1 so a decoder joining mid-stream
              will receive an IDR frame as quickly as possible. Setting this value to 0 will break
              output segmenting.

              - **GopNumBFrames** *(integer) --* Number of B-frames between reference frames.

              - **GopSize** *(float) --* GOP size (keyframe interval) in units of either frames or
              seconds per gopSizeUnits. If gopSizeUnits is frames, gopSize must be an integer and
              must be greater than or equal to 1. If gopSizeUnits is seconds, gopSize must be
              greater than 0, but need not be an integer.

              - **GopSizeUnits** *(string) --* Indicates if the gopSize is specified in frames or
              seconds. If seconds the system will convert the gopSize into a frame count at run
              time.

              - **Level** *(string) --* H.264 Level.

              - **LookAheadRateControl** *(string) --* Amount of lookahead. A value of low can
              decrease latency and memory usage, while high can produce better quality for certain
              content.

              - **MaxBitrate** *(integer) --* For QVBR: See the tooltip for Quality level For VBR:
              Set the maximum bitrate in order to accommodate expected spikes in the complexity of
              the video.

              - **MinIInterval** *(integer) --* Only meaningful if sceneChangeDetect is set to
              enabled. Defaults to 5 if multiplex rate control is used. Enforces separation between
              repeated (cadence) I-frames and I-frames inserted by Scene Change Detection. If a
              scene change I-frame is within I-interval frames of a cadence I-frame, the GOP is
              shrunk and/or stretched to the scene change I-frame. GOP stretch requires enabling
              lookahead as well as setting I-interval. The normal cadence resumes for the next GOP.
              Note: Maximum GOP stretch = GOP size + Min-I-interval - 1

              - **NumRefFrames** *(integer) --* Number of reference frames to use. The encoder may
              use more than requested if using B-frames and/or interlaced encoding.

              - **ParControl** *(string) --* This field indicates how the output pixel aspect ratio
              is specified. If "specified" is selected then the output video pixel aspect ratio is
              determined by parNumerator and parDenominator, else if "initializeFromSource" is
              selected then the output pixsel aspect ratio will be set equal to the input video
              pixel aspect ratio of the first input.

              - **ParDenominator** *(integer) --* Pixel Aspect Ratio denominator.

              - **ParNumerator** *(integer) --* Pixel Aspect Ratio numerator.

              - **Profile** *(string) --* H.264 Profile.

              - **QvbrQualityLevel** *(integer) --* Controls the target quality for the video
              encode. Applies only when the rate control mode is QVBR. Set values for the QVBR
              quality level field and Max bitrate field that suit your most important viewing
              devices. Recommended values are: - Primary screen: Quality level: 8 to 10. Max
              bitrate: 4M - PC or tablet: Quality level: 7. Max bitrate: 1.5M to 3M - Smartphone:
              Quality level: 6. Max bitrate: 1M to 1.5M

              - **RateControlMode** *(string) --* Rate control mode. QVBR: Quality will match the
              specified quality level except when it is constrained by the maximum bitrate.
              Recommended if you or your viewers pay for bandwidth. VBR: Quality and bitrate vary,
              depending on the video complexity. Recommended instead of QVBR if you want to maintain
              a specific average bitrate over the duration of the channel. CBR: Quality varies,
              depending on the video complexity. Recommended only if you distribute your assets to
              devices that cannot handle variable bitrates.

              - **ScanType** *(string) --* Sets the scan type of the output to progressive or
              top-field-first interlaced.

              - **SceneChangeDetect** *(string) --* Scene change detection. - On: inserts I-frames
              when scene change is detected. - Off: does not force an I-frame when scene change is
              detected.

              - **Slices** *(integer) --* Number of slices per picture. Must be less than or equal
              to the number of macroblock rows for progressive pictures, and less than or equal to
              half the number of macroblock rows for interlaced pictures. This field is optional;
              when no value is specified the encoder will choose the number of slices based on
              encode resolution.

              - **Softness** *(integer) --* Softness. Selects quantizer matrix, larger values reduce
              high-frequency content in the encoded image.

              - **SpatialAq** *(string) --* If set to enabled, adjust quantization within each frame
              based on spatial variation of content complexity.

              - **SubgopLength** *(string) --* If set to fixed, use gopNumBFrames B-frames per
              sub-GOP. If set to dynamic, optimize the number of B-frames used for each sub-GOP to
              improve visual quality.

              - **Syntax** *(string) --* Produces a bitstream compliant with SMPTE RP-2027.

              - **TemporalAq** *(string) --* If set to enabled, adjust quantization within each
              frame based on temporal variation of content complexity.

              - **TimecodeInsertion** *(string) --* Determines how timecodes should be inserted into
              the video elementary stream. - 'disabled': Do not include timecodes - 'picTimingSei':
              Pass through picture timing SEI messages from the source specified in Timecode Config

            - **H265Settings** *(dict) --* H265 Settings

              - **AdaptiveQuantization** *(string) --* Adaptive quantization. Allows intra-frame
              quantizers to vary to improve visual quality.

              - **AfdSignaling** *(string) --* Indicates that AFD values will be written into the
              output stream. If afdSignaling is "auto", the system will try to preserve the input
              AFD value (in cases where multiple AFD values are valid). If set to "fixed", the AFD
              value will be the value configured in the fixedAfd parameter.

              - **AlternativeTransferFunction** *(string) --* Whether or not EML should insert an
              Alternative Transfer Function SEI message to support backwards compatibility with
              non-HDR decoders and displays.

              - **Bitrate** *(integer) --* Average bitrate in bits/second. Required when the rate
              control mode is VBR or CBR. Not used for QVBR. In an MS Smooth output group, each
              output must have a unique value when its bitrate is rounded down to the nearest
              multiple of 1000.

              - **BufSize** *(integer) --* Size of buffer (HRD buffer model) in bits.

              - **ColorMetadata** *(string) --* Includes colorspace metadata in the output.

              - **ColorSpaceSettings** *(dict) --* Color Space settings

                - **ColorSpacePassthroughSettings** *(dict) --* Passthrough applies no color space
                conversion to the output

                - **Hdr10Settings** *(dict) --* Hdr10 Settings

                  - **MaxCll** *(integer) --* Maximum Content Light Level An integer metadata value
                  defining the maximum light level, in nits, of any single pixel within an encoded
                  HDR video stream or file.

                  - **MaxFall** *(integer) --* Maximum Frame Average Light Level An integer metadata
                  value defining the maximum average light level, in nits, for any single frame
                  within an encoded HDR video stream or file.

                - **Rec601Settings** *(dict) --* Rec601 Settings

                - **Rec709Settings** *(dict) --* Rec709 Settings

              - **FixedAfd** *(string) --* Four bit AFD value to write on all frames of video in the
              output stream. Only valid when afdSignaling is set to 'Fixed'.

              - **FlickerAq** *(string) --* If set to enabled, adjust quantization within each frame
              to reduce flicker or 'pop' on I-frames.

              - **FramerateDenominator** *(integer) --* Framerate denominator.

              - **FramerateNumerator** *(integer) --* Framerate numerator - framerate is a fraction,
              e.g. 24000 / 1001 = 23.976 fps.

              - **GopClosedCadence** *(integer) --* Frequency of closed GOPs. In streaming
              applications, it is recommended that this be set to 1 so a decoder joining mid-stream
              will receive an IDR frame as quickly as possible. Setting this value to 0 will break
              output segmenting.

              - **GopSize** *(float) --* GOP size (keyframe interval) in units of either frames or
              seconds per gopSizeUnits. If gopSizeUnits is frames, gopSize must be an integer and
              must be greater than or equal to 1. If gopSizeUnits is seconds, gopSize must be
              greater than 0, but need not be an integer.

              - **GopSizeUnits** *(string) --* Indicates if the gopSize is specified in frames or
              seconds. If seconds the system will convert the gopSize into a frame count at run
              time.

              - **Level** *(string) --* H.265 Level.

              - **LookAheadRateControl** *(string) --* Amount of lookahead. A value of low can
              decrease latency and memory usage, while high can produce better quality for certain
              content.

              - **MaxBitrate** *(integer) --* For QVBR: See the tooltip for Quality level

              - **MinIInterval** *(integer) --* Only meaningful if sceneChangeDetect is set to
              enabled. Defaults to 5 if multiplex rate control is used. Enforces separation between
              repeated (cadence) I-frames and I-frames inserted by Scene Change Detection. If a
              scene change I-frame is within I-interval frames of a cadence I-frame, the GOP is
              shrunk and/or stretched to the scene change I-frame. GOP stretch requires enabling
              lookahead as well as setting I-interval. The normal cadence resumes for the next GOP.
              Note: Maximum GOP stretch = GOP size + Min-I-interval - 1

              - **ParDenominator** *(integer) --* Pixel Aspect Ratio denominator.

              - **ParNumerator** *(integer) --* Pixel Aspect Ratio numerator.

              - **Profile** *(string) --* H.265 Profile.

              - **QvbrQualityLevel** *(integer) --* Controls the target quality for the video
              encode. Applies only when the rate control mode is QVBR. Set values for the QVBR
              quality level field and Max bitrate field that suit your most important viewing
              devices. Recommended values are: - Primary screen: Quality level: 8 to 10. Max
              bitrate: 4M - PC or tablet: Quality level: 7. Max bitrate: 1.5M to 3M - Smartphone:
              Quality level: 6. Max bitrate: 1M to 1.5M

              - **RateControlMode** *(string) --* Rate control mode. QVBR: Quality will match the
              specified quality level except when it is constrained by the maximum bitrate.
              Recommended if you or your viewers pay for bandwidth. CBR: Quality varies, depending
              on the video complexity. Recommended only if you distribute your assets to devices
              that cannot handle variable bitrates.

              - **ScanType** *(string) --* Sets the scan type of the output to progressive or
              top-field-first interlaced.

              - **SceneChangeDetect** *(string) --* Scene change detection.

              - **Slices** *(integer) --* Number of slices per picture. Must be less than or equal
              to the number of macroblock rows for progressive pictures, and less than or equal to
              half the number of macroblock rows for interlaced pictures. This field is optional;
              when no value is specified the encoder will choose the number of slices based on
              encode resolution.

              - **Tier** *(string) --* H.265 Tier.

              - **TimecodeInsertion** *(string) --* Determines how timecodes should be inserted into
              the video elementary stream. - 'disabled': Do not include timecodes - 'picTimingSei':
              Pass through picture timing SEI messages from the source specified in Timecode Config

          - **Height** *(integer) --* Output video height, in pixels. Must be an even number. For
          most codecs, you can leave this field and width blank in order to use the height and width
          (resolution) from the source. Note, however, that leaving blank is not recommended. For
          the Frame Capture codec, height and width are required.

          - **Name** *(string) --* The name of this VideoDescription. Outputs will use this name to
          uniquely identify this Description. Description names should be unique within this Live
          Event.

          - **RespondToAfd** *(string) --* Indicates how to respond to the AFD values in the input
          stream. RESPOND causes input video to be clipped, depending on the AFD value, input
          display aspect ratio, and output display aspect ratio, and (except for FRAMECAPTURE codec)
          includes the values in the output. PASSTHROUGH (does not apply to FRAMECAPTURE codec)
          ignores the AFD values and includes the values in the output, so input video is not
          clipped. NONE ignores the AFD values and does not include the values through to the
          output, so input video is not clipped.

          - **ScalingBehavior** *(string) --* STRETCHTOOUTPUT configures the output position to
          stretch the video to the specified output resolution (height and width). This option will
          override any position value. DEFAULT may insert black boxes (pillar boxes or letter boxes)
          around the video to provide the specified output resolution.

          - **Sharpness** *(integer) --* Changes the strength of the anti-alias filter used for
          scaling. 0 is the softest setting, 100 is the sharpest. A setting of 50 is recommended for
          most content.

          - **Width** *(integer) --* Output video width, in pixels. Must be an even number. For most
          codecs, you can leave this field and height blank in order to use the height and width
          (resolution) from the source. Note, however, that leaving blank is not recommended. For
          the Frame Capture codec, height and width are required.

    - **Id** *(string) --* The unique id of the channel.

    - **InputAttachments** *(list) --* List of input attachments for channel.

      - *(dict) --* Placeholder documentation for InputAttachment

        - **InputAttachmentName** *(string) --* User-specified name for the attachment. This is
        required if the user wants to use this input in an input switch action.

        - **InputId** *(string) --* The ID of the input

        - **InputSettings** *(dict) --* Settings of an input (caption selector, etc.)

          - **AudioSelectors** *(list) --* Used to select the audio stream to decode for inputs that
          have multiple available.

            - *(dict) --* Audio Selector

              - **Name** *(string) --* The name of this AudioSelector. AudioDescriptions will use
              this name to uniquely identify this Selector. Selector names should be unique per
              input.

              - **SelectorSettings** *(dict) --* The audio selector settings.

                - **AudioLanguageSelection** *(dict) --* Audio Language Selection

                  - **LanguageCode** *(string) --* Selects a specific three-letter language code
                  from within an audio source.

                  - **LanguageSelectionPolicy** *(string) --* When set to "strict", the transport
                  stream demux strictly identifies audio streams by their language descriptor. If a
                  PMT update occurs such that an audio stream matching the initially selected
                  language is no longer present then mute will be encoded until the language
                  returns. If "loose", then on a PMT update the demux will choose another audio
                  stream in the program with the same stream type if it can't find one with the same
                  language.

                - **AudioPidSelection** *(dict) --* Audio Pid Selection

                  - **Pid** *(integer) --* Selects a specific PID from within a source.

          - **CaptionSelectors** *(list) --* Used to select the caption input to use for inputs that
          have multiple available.

            - *(dict) --* Output groups for this Live Event. Output groups contain information about
            where streams should be distributed.

              - **LanguageCode** *(string) --* When specified this field indicates the three letter
              language code of the caption track to extract from the source.

              - **Name** *(string) --* Name identifier for a caption selector. This name is used to
              associate this caption selector with one or more caption descriptions. Names must be
              unique within an event.

              - **SelectorSettings** *(dict) --* Caption selector settings.

                - **AribSourceSettings** *(dict) --* Arib Source Settings

                - **DvbSubSourceSettings** *(dict) --* Dvb Sub Source Settings

                  - **Pid** *(integer) --* When using DVB-Sub with Burn-In or SMPTE-TT, use this PID
                  for the source content. Unused for DVB-Sub passthrough. All DVB-Sub content is
                  passed through, regardless of selectors.

                - **EmbeddedSourceSettings** *(dict) --* Embedded Source Settings

                  - **Convert608To708** *(string) --* If upconvert, 608 data is both passed through
                  via the "608 compatibility bytes" fields of the 708 wrapper as well as translated
                  into 708. 708 data present in the source content will be discarded.

                  - **Scte20Detection** *(string) --* Set to "auto" to handle streams with
                  intermittent and/or non-aligned SCTE-20 and Embedded captions.

                  - **Source608ChannelNumber** *(integer) --* Specifies the 608/708 channel number
                  within the video track from which to extract captions. Unused for passthrough.

                  - **Source608TrackNumber** *(integer) --* This field is unused and deprecated.

                - **Scte20SourceSettings** *(dict) --* Scte20 Source Settings

                  - **Convert608To708** *(string) --* If upconvert, 608 data is both passed through
                  via the "608 compatibility bytes" fields of the 708 wrapper as well as translated
                  into 708. 708 data present in the source content will be discarded.

                  - **Source608ChannelNumber** *(integer) --* Specifies the 608/708 channel number
                  within the video track from which to extract captions. Unused for passthrough.

                - **Scte27SourceSettings** *(dict) --* Scte27 Source Settings

                  - **Pid** *(integer) --* The pid field is used in conjunction with the caption
                  selector languageCode field as follows: - Specify PID and Language: Extracts
                  captions from that PID; the language is "informational". - Specify PID and omit
                  Language: Extracts the specified PID. - Omit PID and specify Language: Extracts
                  the specified language, whichever PID that happens to be. - Omit PID and omit
                  Language: Valid only if source is DVB-Sub that is being passed through; all
                  languages will be passed through.

                - **TeletextSourceSettings** *(dict) --* Teletext Source Settings

                  - **PageNumber** *(string) --* Specifies the teletext page number within the data
                  stream from which to extract captions. Range of 0x100 (256) to 0x8FF (2303).
                  Unused for passthrough. Should be specified as a hexadecimal string with no "0x"
                  prefix.

          - **DeblockFilter** *(string) --* Enable or disable the deblock filter when filtering.

          - **DenoiseFilter** *(string) --* Enable or disable the denoise filter when filtering.

          - **FilterStrength** *(integer) --* Adjusts the magnitude of filtering from 1 (minimal) to
          5 (strongest).

          - **InputFilter** *(string) --* Turns on the filter for this input. MPEG-2 inputs have the
          deblocking filter enabled by default. 1) auto - filtering will be applied depending on
          input type/quality 2) disabled - no filtering will be applied to the input 3) forced -
          filtering will be applied regardless of input type

          - **NetworkInputSettings** *(dict) --* Input settings.

            - **HlsInputSettings** *(dict) --* Specifies HLS input settings when the uri is for a
            HLS manifest.

              - **Bandwidth** *(integer) --* When specified the HLS stream with the m3u8 BANDWIDTH
              that most closely matches this value will be chosen, otherwise the highest bandwidth
              stream in the m3u8 will be chosen. The bitrate is specified in bits per second, as in
              an HLS manifest.

              - **BufferSegments** *(integer) --* When specified, reading of the HLS input will
              begin this many buffer segments from the end (most recently written segment). When not
              specified, the HLS input will begin with the first segment specified in the m3u8.

              - **Retries** *(integer) --* The number of consecutive times that attempts to read a
              manifest or segment must fail before the input is considered unavailable.

              - **RetryInterval** *(integer) --* The number of seconds between retries when an
              attempt to read a manifest or segment fails.

            - **ServerValidation** *(string) --* Check HTTPS server certificates. When set to
            checkCryptographyOnly, cryptography in the certificate will be checked, but not the
            server's name. Certain subdomains (notably S3 buckets that use dots in the bucket name)
            do not strictly match the corresponding certificate's wildcard pattern and would
            otherwise cause the event to error. This setting is ignored for protocols that do not
            use https.

          - **SourceEndBehavior** *(string) --* Loop input if it is a file. This allows a file input
          to be streamed indefinitely.

          - **VideoSelector** *(dict) --* Informs which video elementary stream to decode for input
          types that have multiple available.

            - **ColorSpace** *(string) --* Specifies the color space of an input. This setting works
            in tandem with colorSpaceUsage and a video description's colorSpaceSettingsChoice to
            determine if any conversion will be performed.

            - **ColorSpaceUsage** *(string) --* Applies only if colorSpace is a value other than
            follow. This field controls how the value in the colorSpace field will be used. fallback
            means that when the input does include color space data, that data will be used, but
            when the input has no color space data, the value in colorSpace will be used. Choose
            fallback if your input is sometimes missing color space data, but when it does have
            color space data, that data is correct. force means to always use the value in
            colorSpace. Choose force if your input usually has no color space data or might have
            unreliable color space data.

            - **SelectorSettings** *(dict) --* The video selector settings.

              - **VideoSelectorPid** *(dict) --* Video Selector Pid

                - **Pid** *(integer) --* Selects a specific PID from within a video source.

              - **VideoSelectorProgramId** *(dict) --* Video Selector Program Id

                - **ProgramId** *(integer) --* Selects a specific program from within a
                multi-program transport stream. If the program doesn't exist, the first program
                within the transport stream will be selected by default.

    - **InputSpecification** *(dict) --* Placeholder documentation for InputSpecification

      - **Codec** *(string) --* Input codec

      - **MaximumBitrate** *(string) --* Maximum input bitrate, categorized coarsely

      - **Resolution** *(string) --* Input resolution, categorized coarsely

    - **LogLevel** *(string) --* The log level being written to CloudWatch Logs.

    - **Name** *(string) --* The name of the channel. (user-mutable)

    - **PipelineDetails** *(list) --* Runtime details for the pipelines of a running channel.

      - *(dict) --* Runtime details of a pipeline when a channel is running.

        - **ActiveInputAttachmentName** *(string) --* The name of the active input attachment
        currently being ingested by this pipeline.

        - **ActiveInputSwitchActionName** *(string) --* The name of the input switch schedule action
        that occurred most recently and that resulted in the switch to the current input attachment
        for this pipeline.

        - **PipelineId** *(string) --* Pipeline ID

    - **PipelinesRunningCount** *(integer) --* The number of currently healthy pipelines.

    - **RoleArn** *(string) --* The Amazon Resource Name (ARN) of the role assumed when running the
    Channel.

    - **State** *(string) --* Placeholder documentation for ChannelState

    - **Tags** *(dict) --* A collection of key-value pairs.

      - *(string) --* Placeholder documentation for __string

        - *(string) --* Placeholder documentation for __string
    """


_ClientStartMultiplexResponseDestinationsMediaConnectSettingsTypeDef = TypedDict(
    "_ClientStartMultiplexResponseDestinationsMediaConnectSettingsTypeDef",
    {"EntitlementArn": str},
    total=False,
)


class ClientStartMultiplexResponseDestinationsMediaConnectSettingsTypeDef(
    _ClientStartMultiplexResponseDestinationsMediaConnectSettingsTypeDef
):
    """
    Type definition for `ClientStartMultiplexResponseDestinations` `MediaConnectSettings`

    - **EntitlementArn** *(string) --* The MediaConnect entitlement ARN available as a Flow source.
    """


_ClientStartMultiplexResponseDestinationsTypeDef = TypedDict(
    "_ClientStartMultiplexResponseDestinationsTypeDef",
    {"MediaConnectSettings": ClientStartMultiplexResponseDestinationsMediaConnectSettingsTypeDef},
    total=False,
)


class ClientStartMultiplexResponseDestinationsTypeDef(
    _ClientStartMultiplexResponseDestinationsTypeDef
):
    """
    Type definition for `ClientStartMultiplexResponse` `Destinations`

    - **MediaConnectSettings** *(dict) --* Multiplex MediaConnect output destination settings.

      - **EntitlementArn** *(string) --* The MediaConnect entitlement ARN available as a Flow
      source.
    """


_ClientStartMultiplexResponseMultiplexSettingsTypeDef = TypedDict(
    "_ClientStartMultiplexResponseMultiplexSettingsTypeDef",
    {
        "MaximumVideoBufferDelayMilliseconds": int,
        "TransportStreamBitrate": int,
        "TransportStreamId": int,
        "TransportStreamReservedBitrate": int,
    },
    total=False,
)


class ClientStartMultiplexResponseMultiplexSettingsTypeDef(
    _ClientStartMultiplexResponseMultiplexSettingsTypeDef
):
    """
    Type definition for `ClientStartMultiplexResponse` `MultiplexSettings`

    - **MaximumVideoBufferDelayMilliseconds** *(integer) --* Maximum video buffer delay in
    milliseconds.

    - **TransportStreamBitrate** *(integer) --* Transport stream bit rate.

    - **TransportStreamId** *(integer) --* Transport stream ID.

    - **TransportStreamReservedBitrate** *(integer) --* Transport stream reserved bit rate.
    """


_ClientStartMultiplexResponseTypeDef = TypedDict(
    "_ClientStartMultiplexResponseTypeDef",
    {
        "Arn": str,
        "AvailabilityZones": List[str],
        "Destinations": List[ClientStartMultiplexResponseDestinationsTypeDef],
        "Id": str,
        "MultiplexSettings": ClientStartMultiplexResponseMultiplexSettingsTypeDef,
        "Name": str,
        "PipelinesRunningCount": int,
        "ProgramCount": int,
        "State": str,
        "Tags": Dict[str, str],
    },
    total=False,
)


class ClientStartMultiplexResponseTypeDef(_ClientStartMultiplexResponseTypeDef):
    """
    Type definition for `ClientStartMultiplex` `Response`

    - **Arn** *(string) --* The unique arn of the multiplex.

    - **AvailabilityZones** *(list) --* A list of availability zones for the multiplex.

      - *(string) --* Placeholder documentation for __string

    - **Destinations** *(list) --* A list of the multiplex output destinations.

      - *(dict) --* Multiplex output destination settings

        - **MediaConnectSettings** *(dict) --* Multiplex MediaConnect output destination settings.

          - **EntitlementArn** *(string) --* The MediaConnect entitlement ARN available as a Flow
          source.

    - **Id** *(string) --* The unique id of the multiplex.

    - **MultiplexSettings** *(dict) --* Configuration for a multiplex event.

      - **MaximumVideoBufferDelayMilliseconds** *(integer) --* Maximum video buffer delay in
      milliseconds.

      - **TransportStreamBitrate** *(integer) --* Transport stream bit rate.

      - **TransportStreamId** *(integer) --* Transport stream ID.

      - **TransportStreamReservedBitrate** *(integer) --* Transport stream reserved bit rate.

    - **Name** *(string) --* The name of the multiplex.

    - **PipelinesRunningCount** *(integer) --* The number of currently healthy pipelines.

    - **ProgramCount** *(integer) --* The number of programs in the multiplex.

    - **State** *(string) --* The current state of the multiplex.

    - **Tags** *(dict) --* A collection of key-value pairs.

      - *(string) --* Placeholder documentation for __string

        - *(string) --* Placeholder documentation for __string
    """


_ClientStopChannelResponseDestinationsMediaPackageSettingsTypeDef = TypedDict(
    "_ClientStopChannelResponseDestinationsMediaPackageSettingsTypeDef",
    {"ChannelId": str},
    total=False,
)


class ClientStopChannelResponseDestinationsMediaPackageSettingsTypeDef(
    _ClientStopChannelResponseDestinationsMediaPackageSettingsTypeDef
):
    """
    Type definition for `ClientStopChannelResponseDestinations` `MediaPackageSettings`

    - **ChannelId** *(string) --* ID of the channel in MediaPackage that is the destination for this
    output group. You do not need to specify the individual inputs in MediaPackage; MediaLive will
    handle the connection of the two MediaLive pipelines to the two MediaPackage inputs. The
    MediaPackage channel and MediaLive channel must be in the same region.
    """


_ClientStopChannelResponseDestinationsMultiplexSettingsTypeDef = TypedDict(
    "_ClientStopChannelResponseDestinationsMultiplexSettingsTypeDef",
    {"MultiplexId": str, "ProgramName": str},
    total=False,
)


class ClientStopChannelResponseDestinationsMultiplexSettingsTypeDef(
    _ClientStopChannelResponseDestinationsMultiplexSettingsTypeDef
):
    """
    Type definition for `ClientStopChannelResponseDestinations` `MultiplexSettings`

    - **MultiplexId** *(string) --* The ID of the Multiplex that the encoder is providing output to.
    You do not need to specify the individual inputs to the Multiplex; MediaLive will handle the
    connection of the two MediaLive pipelines to the two Multiplex instances. The Multiplex must be
    in the same region as the Channel.

    - **ProgramName** *(string) --* The program name of the Multiplex program that the encoder is
    providing output to.
    """


_ClientStopChannelResponseDestinationsSettingsTypeDef = TypedDict(
    "_ClientStopChannelResponseDestinationsSettingsTypeDef",
    {"PasswordParam": str, "StreamName": str, "Url": str, "Username": str},
    total=False,
)


class ClientStopChannelResponseDestinationsSettingsTypeDef(
    _ClientStopChannelResponseDestinationsSettingsTypeDef
):
    """
    Type definition for `ClientStopChannelResponseDestinations` `Settings`

    - **PasswordParam** *(string) --* key used to extract the password from EC2 Parameter store

    - **StreamName** *(string) --* Stream name for RTMP destinations (URLs of type rtmp://)

    - **Url** *(string) --* A URL specifying a destination

    - **Username** *(string) --* username for destination
    """


_ClientStopChannelResponseDestinationsTypeDef = TypedDict(
    "_ClientStopChannelResponseDestinationsTypeDef",
    {
        "Id": str,
        "MediaPackageSettings": List[
            ClientStopChannelResponseDestinationsMediaPackageSettingsTypeDef
        ],
        "MultiplexSettings": ClientStopChannelResponseDestinationsMultiplexSettingsTypeDef,
        "Settings": List[ClientStopChannelResponseDestinationsSettingsTypeDef],
    },
    total=False,
)


class ClientStopChannelResponseDestinationsTypeDef(_ClientStopChannelResponseDestinationsTypeDef):
    """
    Type definition for `ClientStopChannelResponse` `Destinations`

    - **Id** *(string) --* User-specified id. This is used in an output group or an output.

    - **MediaPackageSettings** *(list) --* Destination settings for a MediaPackage output; one
    destination for both encoders.

      - *(dict) --* MediaPackage Output Destination Settings

        - **ChannelId** *(string) --* ID of the channel in MediaPackage that is the destination for
        this output group. You do not need to specify the individual inputs in MediaPackage;
        MediaLive will handle the connection of the two MediaLive pipelines to the two MediaPackage
        inputs. The MediaPackage channel and MediaLive channel must be in the same region.

    - **MultiplexSettings** *(dict) --* Destination settings for a Multiplex output; one destination
    for both encoders.

      - **MultiplexId** *(string) --* The ID of the Multiplex that the encoder is providing output
      to. You do not need to specify the individual inputs to the Multiplex; MediaLive will handle
      the connection of the two MediaLive pipelines to the two Multiplex instances. The Multiplex
      must be in the same region as the Channel.

      - **ProgramName** *(string) --* The program name of the Multiplex program that the encoder is
      providing output to.

    - **Settings** *(list) --* Destination settings for a standard output; one destination for each
    redundant encoder.

      - *(dict) --* Placeholder documentation for OutputDestinationSettings

        - **PasswordParam** *(string) --* key used to extract the password from EC2 Parameter store

        - **StreamName** *(string) --* Stream name for RTMP destinations (URLs of type rtmp://)

        - **Url** *(string) --* A URL specifying a destination

        - **Username** *(string) --* username for destination
    """


_ClientStopChannelResponseEgressEndpointsTypeDef = TypedDict(
    "_ClientStopChannelResponseEgressEndpointsTypeDef", {"SourceIp": str}, total=False
)


class ClientStopChannelResponseEgressEndpointsTypeDef(
    _ClientStopChannelResponseEgressEndpointsTypeDef
):
    """
    Type definition for `ClientStopChannelResponse` `EgressEndpoints`

    - **SourceIp** *(string) --* Public IP of where a channel's output comes from
    """


_ClientStopChannelResponseEncoderSettingsAudioDescriptionsAudioNormalizationSettingsTypeDef = TypedDict(
    "_ClientStopChannelResponseEncoderSettingsAudioDescriptionsAudioNormalizationSettingsTypeDef",
    {"Algorithm": str, "AlgorithmControl": str, "TargetLkfs": float},
    total=False,
)


class ClientStopChannelResponseEncoderSettingsAudioDescriptionsAudioNormalizationSettingsTypeDef(
    _ClientStopChannelResponseEncoderSettingsAudioDescriptionsAudioNormalizationSettingsTypeDef
):
    """
    Type definition for `ClientStopChannelResponseEncoderSettingsAudioDescriptions`
    `AudioNormalizationSettings`

    - **Algorithm** *(string) --* Audio normalization algorithm to use. itu17701 conforms to the
    CALM Act specification, itu17702 conforms to the EBU R-128 specification.

    - **AlgorithmControl** *(string) --* When set to correctAudio the output audio is corrected
    using the chosen algorithm. If set to measureOnly, the audio will be measured but not adjusted.

    - **TargetLkfs** *(float) --* Target LKFS(loudness) to adjust volume to. If no value is entered,
    a default value will be used according to the chosen algorithm. The CALM Act (1770-1) recommends
    a target of -24 LKFS. The EBU R-128 specification (1770-2) recommends a target of -23 LKFS.
    """


_ClientStopChannelResponseEncoderSettingsAudioDescriptionsCodecSettingsAacSettingsTypeDef = TypedDict(
    "_ClientStopChannelResponseEncoderSettingsAudioDescriptionsCodecSettingsAacSettingsTypeDef",
    {
        "Bitrate": float,
        "CodingMode": str,
        "InputType": str,
        "Profile": str,
        "RateControlMode": str,
        "RawFormat": str,
        "SampleRate": float,
        "Spec": str,
        "VbrQuality": str,
    },
    total=False,
)


class ClientStopChannelResponseEncoderSettingsAudioDescriptionsCodecSettingsAacSettingsTypeDef(
    _ClientStopChannelResponseEncoderSettingsAudioDescriptionsCodecSettingsAacSettingsTypeDef
):
    """
    Type definition for `ClientStopChannelResponseEncoderSettingsAudioDescriptionsCodecSettings`
    `AacSettings`

    - **Bitrate** *(float) --* Average bitrate in bits/second. Valid values depend on rate control
    mode and profile.

    - **CodingMode** *(string) --* Mono, Stereo, or 5.1 channel layout. Valid values depend on rate
    control mode and profile. The adReceiverMix setting receives a stereo description plus control
    track and emits a mono AAC encode of the description track, with control data emitted in the PES
    header as per ETSI TS 101 154 Annex E.

    - **InputType** *(string) --* Set to "broadcasterMixedAd" when input contains pre-mixed main
    audio + AD (narration) as a stereo pair. The Audio Type field (audioType) will be set to 3,
    which signals to downstream systems that this stream contains "broadcaster mixed AD". Note that
    the input received by the encoder must contain pre-mixed audio; the encoder does not perform the
    mixing. The values in audioTypeControl and audioType (in AudioDescription) are ignored when set
    to broadcasterMixedAd. Leave set to "normal" when input does not contain pre-mixed audio + AD.

    - **Profile** *(string) --* AAC Profile.

    - **RateControlMode** *(string) --* Rate Control Mode.

    - **RawFormat** *(string) --* Sets LATM / LOAS AAC output for raw containers.

    - **SampleRate** *(float) --* Sample rate in Hz. Valid values depend on rate control mode and
    profile.

    - **Spec** *(string) --* Use MPEG-2 AAC audio instead of MPEG-4 AAC audio for raw or MPEG-2
    Transport Stream containers.

    - **VbrQuality** *(string) --* VBR Quality Level - Only used if rateControlMode is VBR.
    """


_ClientStopChannelResponseEncoderSettingsAudioDescriptionsCodecSettingsAc3SettingsTypeDef = TypedDict(
    "_ClientStopChannelResponseEncoderSettingsAudioDescriptionsCodecSettingsAc3SettingsTypeDef",
    {
        "Bitrate": float,
        "BitstreamMode": str,
        "CodingMode": str,
        "Dialnorm": int,
        "DrcProfile": str,
        "LfeFilter": str,
        "MetadataControl": str,
    },
    total=False,
)


class ClientStopChannelResponseEncoderSettingsAudioDescriptionsCodecSettingsAc3SettingsTypeDef(
    _ClientStopChannelResponseEncoderSettingsAudioDescriptionsCodecSettingsAc3SettingsTypeDef
):
    """
    Type definition for `ClientStopChannelResponseEncoderSettingsAudioDescriptionsCodecSettings`
    `Ac3Settings`

    - **Bitrate** *(float) --* Average bitrate in bits/second. Valid bitrates depend on the coding
    mode.

    - **BitstreamMode** *(string) --* Specifies the bitstream mode (bsmod) for the emitted AC-3
    stream. See ATSC A/52-2012 for background on these values.

    - **CodingMode** *(string) --* Dolby Digital coding mode. Determines number of channels.

    - **Dialnorm** *(integer) --* Sets the dialnorm for the output. If excluded and input audio is
    Dolby Digital, dialnorm will be passed through.

    - **DrcProfile** *(string) --* If set to filmStandard, adds dynamic range compression signaling
    to the output bitstream as defined in the Dolby Digital specification.

    - **LfeFilter** *(string) --* When set to enabled, applies a 120Hz lowpass filter to the LFE
    channel prior to encoding. Only valid in codingMode32Lfe mode.

    - **MetadataControl** *(string) --* When set to "followInput", encoder metadata will be sourced
    from the DD, DD+, or DolbyE decoder that supplied this audio data. If audio was not supplied
    from one of these streams, then the static metadata settings will be used.
    """


_ClientStopChannelResponseEncoderSettingsAudioDescriptionsCodecSettingsEac3SettingsTypeDef = TypedDict(
    "_ClientStopChannelResponseEncoderSettingsAudioDescriptionsCodecSettingsEac3SettingsTypeDef",
    {
        "AttenuationControl": str,
        "Bitrate": float,
        "BitstreamMode": str,
        "CodingMode": str,
        "DcFilter": str,
        "Dialnorm": int,
        "DrcLine": str,
        "DrcRf": str,
        "LfeControl": str,
        "LfeFilter": str,
        "LoRoCenterMixLevel": float,
        "LoRoSurroundMixLevel": float,
        "LtRtCenterMixLevel": float,
        "LtRtSurroundMixLevel": float,
        "MetadataControl": str,
        "PassthroughControl": str,
        "PhaseControl": str,
        "StereoDownmix": str,
        "SurroundExMode": str,
        "SurroundMode": str,
    },
    total=False,
)


class ClientStopChannelResponseEncoderSettingsAudioDescriptionsCodecSettingsEac3SettingsTypeDef(
    _ClientStopChannelResponseEncoderSettingsAudioDescriptionsCodecSettingsEac3SettingsTypeDef
):
    """
    Type definition for `ClientStopChannelResponseEncoderSettingsAudioDescriptionsCodecSettings`
    `Eac3Settings`

    - **AttenuationControl** *(string) --* When set to attenuate3Db, applies a 3 dB attenuation to
    the surround channels. Only used for 3/2 coding mode.

    - **Bitrate** *(float) --* Average bitrate in bits/second. Valid bitrates depend on the coding
    mode.

    - **BitstreamMode** *(string) --* Specifies the bitstream mode (bsmod) for the emitted E-AC-3
    stream. See ATSC A/52-2012 (Annex E) for background on these values.

    - **CodingMode** *(string) --* Dolby Digital Plus coding mode. Determines number of channels.

    - **DcFilter** *(string) --* When set to enabled, activates a DC highpass filter for all input
    channels.

    - **Dialnorm** *(integer) --* Sets the dialnorm for the output. If blank and input audio is
    Dolby Digital Plus, dialnorm will be passed through.

    - **DrcLine** *(string) --* Sets the Dolby dynamic range compression profile.

    - **DrcRf** *(string) --* Sets the profile for heavy Dolby dynamic range compression, ensures
    that the instantaneous signal peaks do not exceed specified levels.

    - **LfeControl** *(string) --* When encoding 3/2 audio, setting to lfe enables the LFE channel

    - **LfeFilter** *(string) --* When set to enabled, applies a 120Hz lowpass filter to the LFE
    channel prior to encoding. Only valid with codingMode32 coding mode.

    - **LoRoCenterMixLevel** *(float) --* Left only/Right only center mix level. Only used for 3/2
    coding mode.

    - **LoRoSurroundMixLevel** *(float) --* Left only/Right only surround mix level. Only used for
    3/2 coding mode.

    - **LtRtCenterMixLevel** *(float) --* Left total/Right total center mix level. Only used for 3/2
    coding mode.

    - **LtRtSurroundMixLevel** *(float) --* Left total/Right total surround mix level. Only used for
    3/2 coding mode.

    - **MetadataControl** *(string) --* When set to followInput, encoder metadata will be sourced
    from the DD, DD+, or DolbyE decoder that supplied this audio data. If audio was not supplied
    from one of these streams, then the static metadata settings will be used.

    - **PassthroughControl** *(string) --* When set to whenPossible, input DD+ audio will be passed
    through if it is present on the input. This detection is dynamic over the life of the transcode.
    Inputs that alternate between DD+ and non-DD+ content will have a consistent DD+ output as the
    system alternates between passthrough and encoding.

    - **PhaseControl** *(string) --* When set to shift90Degrees, applies a 90-degree phase shift to
    the surround channels. Only used for 3/2 coding mode.

    - **StereoDownmix** *(string) --* Stereo downmix preference. Only used for 3/2 coding mode.

    - **SurroundExMode** *(string) --* When encoding 3/2 audio, sets whether an extra center back
    surround channel is matrix encoded into the left and right surround channels.

    - **SurroundMode** *(string) --* When encoding 2/0 audio, sets whether Dolby Surround is matrix
    encoded into the two channels.
    """


_ClientStopChannelResponseEncoderSettingsAudioDescriptionsCodecSettingsMp2SettingsTypeDef = TypedDict(
    "_ClientStopChannelResponseEncoderSettingsAudioDescriptionsCodecSettingsMp2SettingsTypeDef",
    {"Bitrate": float, "CodingMode": str, "SampleRate": float},
    total=False,
)


class ClientStopChannelResponseEncoderSettingsAudioDescriptionsCodecSettingsMp2SettingsTypeDef(
    _ClientStopChannelResponseEncoderSettingsAudioDescriptionsCodecSettingsMp2SettingsTypeDef
):
    """
    Type definition for `ClientStopChannelResponseEncoderSettingsAudioDescriptionsCodecSettings`
    `Mp2Settings`

    - **Bitrate** *(float) --* Average bitrate in bits/second.

    - **CodingMode** *(string) --* The MPEG2 Audio coding mode. Valid values are codingMode10 (for
    mono) or codingMode20 (for stereo).

    - **SampleRate** *(float) --* Sample rate in Hz.
    """


_ClientStopChannelResponseEncoderSettingsAudioDescriptionsCodecSettingsTypeDef = TypedDict(
    "_ClientStopChannelResponseEncoderSettingsAudioDescriptionsCodecSettingsTypeDef",
    {
        "AacSettings": ClientStopChannelResponseEncoderSettingsAudioDescriptionsCodecSettingsAacSettingsTypeDef,
        "Ac3Settings": ClientStopChannelResponseEncoderSettingsAudioDescriptionsCodecSettingsAc3SettingsTypeDef,
        "Eac3Settings": ClientStopChannelResponseEncoderSettingsAudioDescriptionsCodecSettingsEac3SettingsTypeDef,
        "Mp2Settings": ClientStopChannelResponseEncoderSettingsAudioDescriptionsCodecSettingsMp2SettingsTypeDef,
        "PassThroughSettings": Dict[str, Any],
    },
    total=False,
)


class ClientStopChannelResponseEncoderSettingsAudioDescriptionsCodecSettingsTypeDef(
    _ClientStopChannelResponseEncoderSettingsAudioDescriptionsCodecSettingsTypeDef
):
    """
    Type definition for `ClientStopChannelResponseEncoderSettingsAudioDescriptions` `CodecSettings`

    - **AacSettings** *(dict) --* Aac Settings

      - **Bitrate** *(float) --* Average bitrate in bits/second. Valid values depend on rate control
      mode and profile.

      - **CodingMode** *(string) --* Mono, Stereo, or 5.1 channel layout. Valid values depend on
      rate control mode and profile. The adReceiverMix setting receives a stereo description plus
      control track and emits a mono AAC encode of the description track, with control data emitted
      in the PES header as per ETSI TS 101 154 Annex E.

      - **InputType** *(string) --* Set to "broadcasterMixedAd" when input contains pre-mixed main
      audio + AD (narration) as a stereo pair. The Audio Type field (audioType) will be set to 3,
      which signals to downstream systems that this stream contains "broadcaster mixed AD". Note
      that the input received by the encoder must contain pre-mixed audio; the encoder does not
      perform the mixing. The values in audioTypeControl and audioType (in AudioDescription) are
      ignored when set to broadcasterMixedAd. Leave set to "normal" when input does not contain
      pre-mixed audio + AD.

      - **Profile** *(string) --* AAC Profile.

      - **RateControlMode** *(string) --* Rate Control Mode.

      - **RawFormat** *(string) --* Sets LATM / LOAS AAC output for raw containers.

      - **SampleRate** *(float) --* Sample rate in Hz. Valid values depend on rate control mode and
      profile.

      - **Spec** *(string) --* Use MPEG-2 AAC audio instead of MPEG-4 AAC audio for raw or MPEG-2
      Transport Stream containers.

      - **VbrQuality** *(string) --* VBR Quality Level - Only used if rateControlMode is VBR.

    - **Ac3Settings** *(dict) --* Ac3 Settings

      - **Bitrate** *(float) --* Average bitrate in bits/second. Valid bitrates depend on the coding
      mode.

      - **BitstreamMode** *(string) --* Specifies the bitstream mode (bsmod) for the emitted AC-3
      stream. See ATSC A/52-2012 for background on these values.

      - **CodingMode** *(string) --* Dolby Digital coding mode. Determines number of channels.

      - **Dialnorm** *(integer) --* Sets the dialnorm for the output. If excluded and input audio is
      Dolby Digital, dialnorm will be passed through.

      - **DrcProfile** *(string) --* If set to filmStandard, adds dynamic range compression
      signaling to the output bitstream as defined in the Dolby Digital specification.

      - **LfeFilter** *(string) --* When set to enabled, applies a 120Hz lowpass filter to the LFE
      channel prior to encoding. Only valid in codingMode32Lfe mode.

      - **MetadataControl** *(string) --* When set to "followInput", encoder metadata will be
      sourced from the DD, DD+, or DolbyE decoder that supplied this audio data. If audio was not
      supplied from one of these streams, then the static metadata settings will be used.

    - **Eac3Settings** *(dict) --* Eac3 Settings

      - **AttenuationControl** *(string) --* When set to attenuate3Db, applies a 3 dB attenuation to
      the surround channels. Only used for 3/2 coding mode.

      - **Bitrate** *(float) --* Average bitrate in bits/second. Valid bitrates depend on the coding
      mode.

      - **BitstreamMode** *(string) --* Specifies the bitstream mode (bsmod) for the emitted E-AC-3
      stream. See ATSC A/52-2012 (Annex E) for background on these values.

      - **CodingMode** *(string) --* Dolby Digital Plus coding mode. Determines number of channels.

      - **DcFilter** *(string) --* When set to enabled, activates a DC highpass filter for all input
      channels.

      - **Dialnorm** *(integer) --* Sets the dialnorm for the output. If blank and input audio is
      Dolby Digital Plus, dialnorm will be passed through.

      - **DrcLine** *(string) --* Sets the Dolby dynamic range compression profile.

      - **DrcRf** *(string) --* Sets the profile for heavy Dolby dynamic range compression, ensures
      that the instantaneous signal peaks do not exceed specified levels.

      - **LfeControl** *(string) --* When encoding 3/2 audio, setting to lfe enables the LFE channel

      - **LfeFilter** *(string) --* When set to enabled, applies a 120Hz lowpass filter to the LFE
      channel prior to encoding. Only valid with codingMode32 coding mode.

      - **LoRoCenterMixLevel** *(float) --* Left only/Right only center mix level. Only used for 3/2
      coding mode.

      - **LoRoSurroundMixLevel** *(float) --* Left only/Right only surround mix level. Only used for
      3/2 coding mode.

      - **LtRtCenterMixLevel** *(float) --* Left total/Right total center mix level. Only used for
      3/2 coding mode.

      - **LtRtSurroundMixLevel** *(float) --* Left total/Right total surround mix level. Only used
      for 3/2 coding mode.

      - **MetadataControl** *(string) --* When set to followInput, encoder metadata will be sourced
      from the DD, DD+, or DolbyE decoder that supplied this audio data. If audio was not supplied
      from one of these streams, then the static metadata settings will be used.

      - **PassthroughControl** *(string) --* When set to whenPossible, input DD+ audio will be
      passed through if it is present on the input. This detection is dynamic over the life of the
      transcode. Inputs that alternate between DD+ and non-DD+ content will have a consistent DD+
      output as the system alternates between passthrough and encoding.

      - **PhaseControl** *(string) --* When set to shift90Degrees, applies a 90-degree phase shift
      to the surround channels. Only used for 3/2 coding mode.

      - **StereoDownmix** *(string) --* Stereo downmix preference. Only used for 3/2 coding mode.

      - **SurroundExMode** *(string) --* When encoding 3/2 audio, sets whether an extra center back
      surround channel is matrix encoded into the left and right surround channels.

      - **SurroundMode** *(string) --* When encoding 2/0 audio, sets whether Dolby Surround is
      matrix encoded into the two channels.

    - **Mp2Settings** *(dict) --* Mp2 Settings

      - **Bitrate** *(float) --* Average bitrate in bits/second.

      - **CodingMode** *(string) --* The MPEG2 Audio coding mode. Valid values are codingMode10 (for
      mono) or codingMode20 (for stereo).

      - **SampleRate** *(float) --* Sample rate in Hz.

    - **PassThroughSettings** *(dict) --* Pass Through Settings
    """


_ClientStopChannelResponseEncoderSettingsAudioDescriptionsRemixSettingsChannelMappingsInputChannelLevelsTypeDef = TypedDict(
    "_ClientStopChannelResponseEncoderSettingsAudioDescriptionsRemixSettingsChannelMappingsInputChannelLevelsTypeDef",
    {"Gain": int, "InputChannel": int},
    total=False,
)


class ClientStopChannelResponseEncoderSettingsAudioDescriptionsRemixSettingsChannelMappingsInputChannelLevelsTypeDef(
    _ClientStopChannelResponseEncoderSettingsAudioDescriptionsRemixSettingsChannelMappingsInputChannelLevelsTypeDef
):
    """
    Type definition for
    `ClientStopChannelResponseEncoderSettingsAudioDescriptionsRemixSettingsChannelMappings`
    `InputChannelLevels`

    - **Gain** *(integer) --* Remixing value. Units are in dB and acceptable values are within the
    range from -60 (mute) and 6 dB.

    - **InputChannel** *(integer) --* The index of the input channel used as a source.
    """


_ClientStopChannelResponseEncoderSettingsAudioDescriptionsRemixSettingsChannelMappingsTypeDef = TypedDict(
    "_ClientStopChannelResponseEncoderSettingsAudioDescriptionsRemixSettingsChannelMappingsTypeDef",
    {
        "InputChannelLevels": List[
            ClientStopChannelResponseEncoderSettingsAudioDescriptionsRemixSettingsChannelMappingsInputChannelLevelsTypeDef
        ],
        "OutputChannel": int,
    },
    total=False,
)


class ClientStopChannelResponseEncoderSettingsAudioDescriptionsRemixSettingsChannelMappingsTypeDef(
    _ClientStopChannelResponseEncoderSettingsAudioDescriptionsRemixSettingsChannelMappingsTypeDef
):
    """
    Type definition for `ClientStopChannelResponseEncoderSettingsAudioDescriptionsRemixSettings`
    `ChannelMappings`

    - **InputChannelLevels** *(list) --* Indices and gain values for each input channel that should
    be remixed into this output channel.

      - *(dict) --* Input Channel Level

        - **Gain** *(integer) --* Remixing value. Units are in dB and acceptable values are within
        the range from -60 (mute) and 6 dB.

        - **InputChannel** *(integer) --* The index of the input channel used as a source.

    - **OutputChannel** *(integer) --* The index of the output channel being produced.
    """


_ClientStopChannelResponseEncoderSettingsAudioDescriptionsRemixSettingsTypeDef = TypedDict(
    "_ClientStopChannelResponseEncoderSettingsAudioDescriptionsRemixSettingsTypeDef",
    {
        "ChannelMappings": List[
            ClientStopChannelResponseEncoderSettingsAudioDescriptionsRemixSettingsChannelMappingsTypeDef
        ],
        "ChannelsIn": int,
        "ChannelsOut": int,
    },
    total=False,
)


class ClientStopChannelResponseEncoderSettingsAudioDescriptionsRemixSettingsTypeDef(
    _ClientStopChannelResponseEncoderSettingsAudioDescriptionsRemixSettingsTypeDef
):
    """
    Type definition for `ClientStopChannelResponseEncoderSettingsAudioDescriptions` `RemixSettings`

    - **ChannelMappings** *(list) --* Mapping of input channels to output channels, with appropriate
    gain adjustments.

      - *(dict) --* Audio Channel Mapping

        - **InputChannelLevels** *(list) --* Indices and gain values for each input channel that
        should be remixed into this output channel.

          - *(dict) --* Input Channel Level

            - **Gain** *(integer) --* Remixing value. Units are in dB and acceptable values are
            within the range from -60 (mute) and 6 dB.

            - **InputChannel** *(integer) --* The index of the input channel used as a source.

        - **OutputChannel** *(integer) --* The index of the output channel being produced.

    - **ChannelsIn** *(integer) --* Number of input channels to be used.

    - **ChannelsOut** *(integer) --* Number of output channels to be produced. Valid values: 1, 2,
    4, 6, 8
    """


_ClientStopChannelResponseEncoderSettingsAudioDescriptionsTypeDef = TypedDict(
    "_ClientStopChannelResponseEncoderSettingsAudioDescriptionsTypeDef",
    {
        "AudioNormalizationSettings": ClientStopChannelResponseEncoderSettingsAudioDescriptionsAudioNormalizationSettingsTypeDef,
        "AudioSelectorName": str,
        "AudioType": str,
        "AudioTypeControl": str,
        "CodecSettings": ClientStopChannelResponseEncoderSettingsAudioDescriptionsCodecSettingsTypeDef,
        "LanguageCode": str,
        "LanguageCodeControl": str,
        "Name": str,
        "RemixSettings": ClientStopChannelResponseEncoderSettingsAudioDescriptionsRemixSettingsTypeDef,
        "StreamName": str,
    },
    total=False,
)


class ClientStopChannelResponseEncoderSettingsAudioDescriptionsTypeDef(
    _ClientStopChannelResponseEncoderSettingsAudioDescriptionsTypeDef
):
    """
    Type definition for `ClientStopChannelResponseEncoderSettings` `AudioDescriptions`

    - **AudioNormalizationSettings** *(dict) --* Advanced audio normalization settings.

      - **Algorithm** *(string) --* Audio normalization algorithm to use. itu17701 conforms to the
      CALM Act specification, itu17702 conforms to the EBU R-128 specification.

      - **AlgorithmControl** *(string) --* When set to correctAudio the output audio is corrected
      using the chosen algorithm. If set to measureOnly, the audio will be measured but not
      adjusted.

      - **TargetLkfs** *(float) --* Target LKFS(loudness) to adjust volume to. If no value is
      entered, a default value will be used according to the chosen algorithm. The CALM Act (1770-1)
      recommends a target of -24 LKFS. The EBU R-128 specification (1770-2) recommends a target of
      -23 LKFS.

    - **AudioSelectorName** *(string) --* The name of the AudioSelector used as the source for this
    AudioDescription.

    - **AudioType** *(string) --* Applies only if audioTypeControl is useConfigured. The values for
    audioType are defined in ISO-IEC 13818-1.

    - **AudioTypeControl** *(string) --* Determines how audio type is determined. followInput: If
    the input contains an ISO 639 audioType, then that value is passed through to the output. If the
    input contains no ISO 639 audioType, the value in Audio Type is included in the output.
    useConfigured: The value in Audio Type is included in the output. Note that this field and
    audioType are both ignored if inputType is broadcasterMixedAd.

    - **CodecSettings** *(dict) --* Audio codec settings.

      - **AacSettings** *(dict) --* Aac Settings

        - **Bitrate** *(float) --* Average bitrate in bits/second. Valid values depend on rate
        control mode and profile.

        - **CodingMode** *(string) --* Mono, Stereo, or 5.1 channel layout. Valid values depend on
        rate control mode and profile. The adReceiverMix setting receives a stereo description plus
        control track and emits a mono AAC encode of the description track, with control data
        emitted in the PES header as per ETSI TS 101 154 Annex E.

        - **InputType** *(string) --* Set to "broadcasterMixedAd" when input contains pre-mixed main
        audio + AD (narration) as a stereo pair. The Audio Type field (audioType) will be set to 3,
        which signals to downstream systems that this stream contains "broadcaster mixed AD". Note
        that the input received by the encoder must contain pre-mixed audio; the encoder does not
        perform the mixing. The values in audioTypeControl and audioType (in AudioDescription) are
        ignored when set to broadcasterMixedAd. Leave set to "normal" when input does not contain
        pre-mixed audio + AD.

        - **Profile** *(string) --* AAC Profile.

        - **RateControlMode** *(string) --* Rate Control Mode.

        - **RawFormat** *(string) --* Sets LATM / LOAS AAC output for raw containers.

        - **SampleRate** *(float) --* Sample rate in Hz. Valid values depend on rate control mode
        and profile.

        - **Spec** *(string) --* Use MPEG-2 AAC audio instead of MPEG-4 AAC audio for raw or MPEG-2
        Transport Stream containers.

        - **VbrQuality** *(string) --* VBR Quality Level - Only used if rateControlMode is VBR.

      - **Ac3Settings** *(dict) --* Ac3 Settings

        - **Bitrate** *(float) --* Average bitrate in bits/second. Valid bitrates depend on the
        coding mode.

        - **BitstreamMode** *(string) --* Specifies the bitstream mode (bsmod) for the emitted AC-3
        stream. See ATSC A/52-2012 for background on these values.

        - **CodingMode** *(string) --* Dolby Digital coding mode. Determines number of channels.

        - **Dialnorm** *(integer) --* Sets the dialnorm for the output. If excluded and input audio
        is Dolby Digital, dialnorm will be passed through.

        - **DrcProfile** *(string) --* If set to filmStandard, adds dynamic range compression
        signaling to the output bitstream as defined in the Dolby Digital specification.

        - **LfeFilter** *(string) --* When set to enabled, applies a 120Hz lowpass filter to the LFE
        channel prior to encoding. Only valid in codingMode32Lfe mode.

        - **MetadataControl** *(string) --* When set to "followInput", encoder metadata will be
        sourced from the DD, DD+, or DolbyE decoder that supplied this audio data. If audio was not
        supplied from one of these streams, then the static metadata settings will be used.

      - **Eac3Settings** *(dict) --* Eac3 Settings

        - **AttenuationControl** *(string) --* When set to attenuate3Db, applies a 3 dB attenuation
        to the surround channels. Only used for 3/2 coding mode.

        - **Bitrate** *(float) --* Average bitrate in bits/second. Valid bitrates depend on the
        coding mode.

        - **BitstreamMode** *(string) --* Specifies the bitstream mode (bsmod) for the emitted
        E-AC-3 stream. See ATSC A/52-2012 (Annex E) for background on these values.

        - **CodingMode** *(string) --* Dolby Digital Plus coding mode. Determines number of
        channels.

        - **DcFilter** *(string) --* When set to enabled, activates a DC highpass filter for all
        input channels.

        - **Dialnorm** *(integer) --* Sets the dialnorm for the output. If blank and input audio is
        Dolby Digital Plus, dialnorm will be passed through.

        - **DrcLine** *(string) --* Sets the Dolby dynamic range compression profile.

        - **DrcRf** *(string) --* Sets the profile for heavy Dolby dynamic range compression,
        ensures that the instantaneous signal peaks do not exceed specified levels.

        - **LfeControl** *(string) --* When encoding 3/2 audio, setting to lfe enables the LFE
        channel

        - **LfeFilter** *(string) --* When set to enabled, applies a 120Hz lowpass filter to the LFE
        channel prior to encoding. Only valid with codingMode32 coding mode.

        - **LoRoCenterMixLevel** *(float) --* Left only/Right only center mix level. Only used for
        3/2 coding mode.

        - **LoRoSurroundMixLevel** *(float) --* Left only/Right only surround mix level. Only used
        for 3/2 coding mode.

        - **LtRtCenterMixLevel** *(float) --* Left total/Right total center mix level. Only used for
        3/2 coding mode.

        - **LtRtSurroundMixLevel** *(float) --* Left total/Right total surround mix level. Only used
        for 3/2 coding mode.

        - **MetadataControl** *(string) --* When set to followInput, encoder metadata will be
        sourced from the DD, DD+, or DolbyE decoder that supplied this audio data. If audio was not
        supplied from one of these streams, then the static metadata settings will be used.

        - **PassthroughControl** *(string) --* When set to whenPossible, input DD+ audio will be
        passed through if it is present on the input. This detection is dynamic over the life of the
        transcode. Inputs that alternate between DD+ and non-DD+ content will have a consistent DD+
        output as the system alternates between passthrough and encoding.

        - **PhaseControl** *(string) --* When set to shift90Degrees, applies a 90-degree phase shift
        to the surround channels. Only used for 3/2 coding mode.

        - **StereoDownmix** *(string) --* Stereo downmix preference. Only used for 3/2 coding mode.

        - **SurroundExMode** *(string) --* When encoding 3/2 audio, sets whether an extra center
        back surround channel is matrix encoded into the left and right surround channels.

        - **SurroundMode** *(string) --* When encoding 2/0 audio, sets whether Dolby Surround is
        matrix encoded into the two channels.

      - **Mp2Settings** *(dict) --* Mp2 Settings

        - **Bitrate** *(float) --* Average bitrate in bits/second.

        - **CodingMode** *(string) --* The MPEG2 Audio coding mode. Valid values are codingMode10
        (for mono) or codingMode20 (for stereo).

        - **SampleRate** *(float) --* Sample rate in Hz.

      - **PassThroughSettings** *(dict) --* Pass Through Settings

    - **LanguageCode** *(string) --* Indicates the language of the audio output track. Only used if
    languageControlMode is useConfigured, or there is no ISO 639 language code specified in the
    input.

    - **LanguageCodeControl** *(string) --* Choosing followInput will cause the ISO 639 language
    code of the output to follow the ISO 639 language code of the input. The languageCode will be
    used when useConfigured is set, or when followInput is selected but there is no ISO 639 language
    code specified by the input.

    - **Name** *(string) --* The name of this AudioDescription. Outputs will use this name to
    uniquely identify this AudioDescription. Description names should be unique within this Live
    Event.

    - **RemixSettings** *(dict) --* Settings that control how input audio channels are remixed into
    the output audio channels.

      - **ChannelMappings** *(list) --* Mapping of input channels to output channels, with
      appropriate gain adjustments.

        - *(dict) --* Audio Channel Mapping

          - **InputChannelLevels** *(list) --* Indices and gain values for each input channel that
          should be remixed into this output channel.

            - *(dict) --* Input Channel Level

              - **Gain** *(integer) --* Remixing value. Units are in dB and acceptable values are
              within the range from -60 (mute) and 6 dB.

              - **InputChannel** *(integer) --* The index of the input channel used as a source.

          - **OutputChannel** *(integer) --* The index of the output channel being produced.

      - **ChannelsIn** *(integer) --* Number of input channels to be used.

      - **ChannelsOut** *(integer) --* Number of output channels to be produced. Valid values: 1, 2,
      4, 6, 8

    - **StreamName** *(string) --* Used for MS Smooth and Apple HLS outputs. Indicates the name
    displayed by the player (eg. English, or Director Commentary).
    """


_ClientStopChannelResponseEncoderSettingsAvailBlankingAvailBlankingImageTypeDef = TypedDict(
    "_ClientStopChannelResponseEncoderSettingsAvailBlankingAvailBlankingImageTypeDef",
    {"PasswordParam": str, "Uri": str, "Username": str},
    total=False,
)


class ClientStopChannelResponseEncoderSettingsAvailBlankingAvailBlankingImageTypeDef(
    _ClientStopChannelResponseEncoderSettingsAvailBlankingAvailBlankingImageTypeDef
):
    """
    Type definition for `ClientStopChannelResponseEncoderSettingsAvailBlanking` `AvailBlankingImage`

    - **PasswordParam** *(string) --* key used to extract the password from EC2 Parameter store

    - **Uri** *(string) --* Uniform Resource Identifier - This should be a path to a file accessible
    to the Live system (eg. a http:// URI) depending on the output type. For example, a RTMP
    destination should have a uri simliar to: "rtmp://fmsserver/live".

    - **Username** *(string) --* Documentation update needed
    """


_ClientStopChannelResponseEncoderSettingsAvailBlankingTypeDef = TypedDict(
    "_ClientStopChannelResponseEncoderSettingsAvailBlankingTypeDef",
    {
        "AvailBlankingImage": ClientStopChannelResponseEncoderSettingsAvailBlankingAvailBlankingImageTypeDef,
        "State": str,
    },
    total=False,
)


class ClientStopChannelResponseEncoderSettingsAvailBlankingTypeDef(
    _ClientStopChannelResponseEncoderSettingsAvailBlankingTypeDef
):
    """
    Type definition for `ClientStopChannelResponseEncoderSettings` `AvailBlanking`

    - **AvailBlankingImage** *(dict) --* Blanking image to be used. Leave empty for solid black.
    Only bmp and png images are supported.

      - **PasswordParam** *(string) --* key used to extract the password from EC2 Parameter store

      - **Uri** *(string) --* Uniform Resource Identifier - This should be a path to a file
      accessible to the Live system (eg. a http:// URI) depending on the output type. For example, a
      RTMP destination should have a uri simliar to: "rtmp://fmsserver/live".

      - **Username** *(string) --* Documentation update needed

    - **State** *(string) --* When set to enabled, causes video, audio and captions to be blanked
    when insertion metadata is added.
    """


_ClientStopChannelResponseEncoderSettingsAvailConfigurationAvailSettingsScte35SpliceInsertTypeDef = TypedDict(
    "_ClientStopChannelResponseEncoderSettingsAvailConfigurationAvailSettingsScte35SpliceInsertTypeDef",
    {"AdAvailOffset": int, "NoRegionalBlackoutFlag": str, "WebDeliveryAllowedFlag": str},
    total=False,
)


class ClientStopChannelResponseEncoderSettingsAvailConfigurationAvailSettingsScte35SpliceInsertTypeDef(
    _ClientStopChannelResponseEncoderSettingsAvailConfigurationAvailSettingsScte35SpliceInsertTypeDef
):
    """
    Type definition for `ClientStopChannelResponseEncoderSettingsAvailConfigurationAvailSettings`
    `Scte35SpliceInsert`

    - **AdAvailOffset** *(integer) --* When specified, this offset (in milliseconds) is added to the
    input Ad Avail PTS time. This only applies to embedded SCTE 104/35 messages and does not apply
    to OOB messages.

    - **NoRegionalBlackoutFlag** *(string) --* When set to ignore, Segment Descriptors with
    noRegionalBlackoutFlag set to 0 will no longer trigger blackouts or Ad Avail slates

    - **WebDeliveryAllowedFlag** *(string) --* When set to ignore, Segment Descriptors with
    webDeliveryAllowedFlag set to 0 will no longer trigger blackouts or Ad Avail slates
    """


_ClientStopChannelResponseEncoderSettingsAvailConfigurationAvailSettingsScte35TimeSignalAposTypeDef = TypedDict(
    "_ClientStopChannelResponseEncoderSettingsAvailConfigurationAvailSettingsScte35TimeSignalAposTypeDef",
    {"AdAvailOffset": int, "NoRegionalBlackoutFlag": str, "WebDeliveryAllowedFlag": str},
    total=False,
)


class ClientStopChannelResponseEncoderSettingsAvailConfigurationAvailSettingsScte35TimeSignalAposTypeDef(
    _ClientStopChannelResponseEncoderSettingsAvailConfigurationAvailSettingsScte35TimeSignalAposTypeDef
):
    """
    Type definition for `ClientStopChannelResponseEncoderSettingsAvailConfigurationAvailSettings`
    `Scte35TimeSignalApos`

    - **AdAvailOffset** *(integer) --* When specified, this offset (in milliseconds) is added to the
    input Ad Avail PTS time. This only applies to embedded SCTE 104/35 messages and does not apply
    to OOB messages.

    - **NoRegionalBlackoutFlag** *(string) --* When set to ignore, Segment Descriptors with
    noRegionalBlackoutFlag set to 0 will no longer trigger blackouts or Ad Avail slates

    - **WebDeliveryAllowedFlag** *(string) --* When set to ignore, Segment Descriptors with
    webDeliveryAllowedFlag set to 0 will no longer trigger blackouts or Ad Avail slates
    """


_ClientStopChannelResponseEncoderSettingsAvailConfigurationAvailSettingsTypeDef = TypedDict(
    "_ClientStopChannelResponseEncoderSettingsAvailConfigurationAvailSettingsTypeDef",
    {
        "Scte35SpliceInsert": ClientStopChannelResponseEncoderSettingsAvailConfigurationAvailSettingsScte35SpliceInsertTypeDef,
        "Scte35TimeSignalApos": ClientStopChannelResponseEncoderSettingsAvailConfigurationAvailSettingsScte35TimeSignalAposTypeDef,
    },
    total=False,
)


class ClientStopChannelResponseEncoderSettingsAvailConfigurationAvailSettingsTypeDef(
    _ClientStopChannelResponseEncoderSettingsAvailConfigurationAvailSettingsTypeDef
):
    """
    Type definition for `ClientStopChannelResponseEncoderSettingsAvailConfiguration` `AvailSettings`

    - **Scte35SpliceInsert** *(dict) --* Scte35 Splice Insert

      - **AdAvailOffset** *(integer) --* When specified, this offset (in milliseconds) is added to
      the input Ad Avail PTS time. This only applies to embedded SCTE 104/35 messages and does not
      apply to OOB messages.

      - **NoRegionalBlackoutFlag** *(string) --* When set to ignore, Segment Descriptors with
      noRegionalBlackoutFlag set to 0 will no longer trigger blackouts or Ad Avail slates

      - **WebDeliveryAllowedFlag** *(string) --* When set to ignore, Segment Descriptors with
      webDeliveryAllowedFlag set to 0 will no longer trigger blackouts or Ad Avail slates

    - **Scte35TimeSignalApos** *(dict) --* Scte35 Time Signal Apos

      - **AdAvailOffset** *(integer) --* When specified, this offset (in milliseconds) is added to
      the input Ad Avail PTS time. This only applies to embedded SCTE 104/35 messages and does not
      apply to OOB messages.

      - **NoRegionalBlackoutFlag** *(string) --* When set to ignore, Segment Descriptors with
      noRegionalBlackoutFlag set to 0 will no longer trigger blackouts or Ad Avail slates

      - **WebDeliveryAllowedFlag** *(string) --* When set to ignore, Segment Descriptors with
      webDeliveryAllowedFlag set to 0 will no longer trigger blackouts or Ad Avail slates
    """


_ClientStopChannelResponseEncoderSettingsAvailConfigurationTypeDef = TypedDict(
    "_ClientStopChannelResponseEncoderSettingsAvailConfigurationTypeDef",
    {
        "AvailSettings": ClientStopChannelResponseEncoderSettingsAvailConfigurationAvailSettingsTypeDef
    },
    total=False,
)


class ClientStopChannelResponseEncoderSettingsAvailConfigurationTypeDef(
    _ClientStopChannelResponseEncoderSettingsAvailConfigurationTypeDef
):
    """
    Type definition for `ClientStopChannelResponseEncoderSettings` `AvailConfiguration`

    - **AvailSettings** *(dict) --* Ad avail settings.

      - **Scte35SpliceInsert** *(dict) --* Scte35 Splice Insert

        - **AdAvailOffset** *(integer) --* When specified, this offset (in milliseconds) is added to
        the input Ad Avail PTS time. This only applies to embedded SCTE 104/35 messages and does not
        apply to OOB messages.

        - **NoRegionalBlackoutFlag** *(string) --* When set to ignore, Segment Descriptors with
        noRegionalBlackoutFlag set to 0 will no longer trigger blackouts or Ad Avail slates

        - **WebDeliveryAllowedFlag** *(string) --* When set to ignore, Segment Descriptors with
        webDeliveryAllowedFlag set to 0 will no longer trigger blackouts or Ad Avail slates

      - **Scte35TimeSignalApos** *(dict) --* Scte35 Time Signal Apos

        - **AdAvailOffset** *(integer) --* When specified, this offset (in milliseconds) is added to
        the input Ad Avail PTS time. This only applies to embedded SCTE 104/35 messages and does not
        apply to OOB messages.

        - **NoRegionalBlackoutFlag** *(string) --* When set to ignore, Segment Descriptors with
        noRegionalBlackoutFlag set to 0 will no longer trigger blackouts or Ad Avail slates

        - **WebDeliveryAllowedFlag** *(string) --* When set to ignore, Segment Descriptors with
        webDeliveryAllowedFlag set to 0 will no longer trigger blackouts or Ad Avail slates
    """


_ClientStopChannelResponseEncoderSettingsBlackoutSlateBlackoutSlateImageTypeDef = TypedDict(
    "_ClientStopChannelResponseEncoderSettingsBlackoutSlateBlackoutSlateImageTypeDef",
    {"PasswordParam": str, "Uri": str, "Username": str},
    total=False,
)


class ClientStopChannelResponseEncoderSettingsBlackoutSlateBlackoutSlateImageTypeDef(
    _ClientStopChannelResponseEncoderSettingsBlackoutSlateBlackoutSlateImageTypeDef
):
    """
    Type definition for `ClientStopChannelResponseEncoderSettingsBlackoutSlate` `BlackoutSlateImage`

    - **PasswordParam** *(string) --* key used to extract the password from EC2 Parameter store

    - **Uri** *(string) --* Uniform Resource Identifier - This should be a path to a file accessible
    to the Live system (eg. a http:// URI) depending on the output type. For example, a RTMP
    destination should have a uri simliar to: "rtmp://fmsserver/live".

    - **Username** *(string) --* Documentation update needed
    """


_ClientStopChannelResponseEncoderSettingsBlackoutSlateNetworkEndBlackoutImageTypeDef = TypedDict(
    "_ClientStopChannelResponseEncoderSettingsBlackoutSlateNetworkEndBlackoutImageTypeDef",
    {"PasswordParam": str, "Uri": str, "Username": str},
    total=False,
)


class ClientStopChannelResponseEncoderSettingsBlackoutSlateNetworkEndBlackoutImageTypeDef(
    _ClientStopChannelResponseEncoderSettingsBlackoutSlateNetworkEndBlackoutImageTypeDef
):
    """
    Type definition for `ClientStopChannelResponseEncoderSettingsBlackoutSlate`
    `NetworkEndBlackoutImage`

    - **PasswordParam** *(string) --* key used to extract the password from EC2 Parameter store

    - **Uri** *(string) --* Uniform Resource Identifier - This should be a path to a file accessible
    to the Live system (eg. a http:// URI) depending on the output type. For example, a RTMP
    destination should have a uri simliar to: "rtmp://fmsserver/live".

    - **Username** *(string) --* Documentation update needed
    """


_ClientStopChannelResponseEncoderSettingsBlackoutSlateTypeDef = TypedDict(
    "_ClientStopChannelResponseEncoderSettingsBlackoutSlateTypeDef",
    {
        "BlackoutSlateImage": ClientStopChannelResponseEncoderSettingsBlackoutSlateBlackoutSlateImageTypeDef,
        "NetworkEndBlackout": str,
        "NetworkEndBlackoutImage": ClientStopChannelResponseEncoderSettingsBlackoutSlateNetworkEndBlackoutImageTypeDef,
        "NetworkId": str,
        "State": str,
    },
    total=False,
)


class ClientStopChannelResponseEncoderSettingsBlackoutSlateTypeDef(
    _ClientStopChannelResponseEncoderSettingsBlackoutSlateTypeDef
):
    """
    Type definition for `ClientStopChannelResponseEncoderSettings` `BlackoutSlate`

    - **BlackoutSlateImage** *(dict) --* Blackout slate image to be used. Leave empty for solid
    black. Only bmp and png images are supported.

      - **PasswordParam** *(string) --* key used to extract the password from EC2 Parameter store

      - **Uri** *(string) --* Uniform Resource Identifier - This should be a path to a file
      accessible to the Live system (eg. a http:// URI) depending on the output type. For example, a
      RTMP destination should have a uri simliar to: "rtmp://fmsserver/live".

      - **Username** *(string) --* Documentation update needed

    - **NetworkEndBlackout** *(string) --* Setting to enabled causes the encoder to blackout the
    video, audio, and captions, and raise the "Network Blackout Image" slate when an SCTE104/35
    Network End Segmentation Descriptor is encountered. The blackout will be lifted when the Network
    Start Segmentation Descriptor is encountered. The Network End and Network Start descriptors must
    contain a network ID that matches the value entered in "Network ID".

    - **NetworkEndBlackoutImage** *(dict) --* Path to local file to use as Network End Blackout
    image. Image will be scaled to fill the entire output raster.

      - **PasswordParam** *(string) --* key used to extract the password from EC2 Parameter store

      - **Uri** *(string) --* Uniform Resource Identifier - This should be a path to a file
      accessible to the Live system (eg. a http:// URI) depending on the output type. For example, a
      RTMP destination should have a uri simliar to: "rtmp://fmsserver/live".

      - **Username** *(string) --* Documentation update needed

    - **NetworkId** *(string) --* Provides Network ID that matches EIDR ID format (e.g.,
    "10.XXXX/XXXX-XXXX-XXXX-XXXX-XXXX-C").

    - **State** *(string) --* When set to enabled, causes video, audio and captions to be blanked
    when indicated by program metadata.
    """


_ClientStopChannelResponseEncoderSettingsCaptionDescriptionsDestinationSettingsBurnInDestinationSettingsFontTypeDef = TypedDict(
    "_ClientStopChannelResponseEncoderSettingsCaptionDescriptionsDestinationSettingsBurnInDestinationSettingsFontTypeDef",
    {"PasswordParam": str, "Uri": str, "Username": str},
    total=False,
)


class ClientStopChannelResponseEncoderSettingsCaptionDescriptionsDestinationSettingsBurnInDestinationSettingsFontTypeDef(
    _ClientStopChannelResponseEncoderSettingsCaptionDescriptionsDestinationSettingsBurnInDestinationSettingsFontTypeDef
):
    """
    Type definition for
    `ClientStopChannelResponseEncoderSettingsCaptionDescriptionsDestinationSettingsBurnInDestinationSettings`
    `Font`

    - **PasswordParam** *(string) --* key used to extract the password from EC2 Parameter store

    - **Uri** *(string) --* Uniform Resource Identifier - This should be a path to a file accessible
    to the Live system (eg. a http:// URI) depending on the output type. For example, a RTMP
    destination should have a uri simliar to: "rtmp://fmsserver/live".

    - **Username** *(string) --* Documentation update needed
    """


_ClientStopChannelResponseEncoderSettingsCaptionDescriptionsDestinationSettingsBurnInDestinationSettingsTypeDef = TypedDict(
    "_ClientStopChannelResponseEncoderSettingsCaptionDescriptionsDestinationSettingsBurnInDestinationSettingsTypeDef",
    {
        "Alignment": str,
        "BackgroundColor": str,
        "BackgroundOpacity": int,
        "Font": ClientStopChannelResponseEncoderSettingsCaptionDescriptionsDestinationSettingsBurnInDestinationSettingsFontTypeDef,
        "FontColor": str,
        "FontOpacity": int,
        "FontResolution": int,
        "FontSize": str,
        "OutlineColor": str,
        "OutlineSize": int,
        "ShadowColor": str,
        "ShadowOpacity": int,
        "ShadowXOffset": int,
        "ShadowYOffset": int,
        "TeletextGridControl": str,
        "XPosition": int,
        "YPosition": int,
    },
    total=False,
)


class ClientStopChannelResponseEncoderSettingsCaptionDescriptionsDestinationSettingsBurnInDestinationSettingsTypeDef(
    _ClientStopChannelResponseEncoderSettingsCaptionDescriptionsDestinationSettingsBurnInDestinationSettingsTypeDef
):
    """
    Type definition for
    `ClientStopChannelResponseEncoderSettingsCaptionDescriptionsDestinationSettings`
    `BurnInDestinationSettings`

    - **Alignment** *(string) --* If no explicit xPosition or yPosition is provided, setting
    alignment to centered will place the captions at the bottom center of the output. Similarly,
    setting a left alignment will align captions to the bottom left of the output. If x and y
    positions are given in conjunction with the alignment parameter, the font will be justified
    (either left or centered) relative to those coordinates. Selecting "smart" justification will
    left-justify live subtitles and center-justify pre-recorded subtitles. All burn-in and DVB-Sub
    font settings must match.

    - **BackgroundColor** *(string) --* Specifies the color of the rectangle behind the captions.
    All burn-in and DVB-Sub font settings must match.

    - **BackgroundOpacity** *(integer) --* Specifies the opacity of the background rectangle. 255 is
    opaque; 0 is transparent. Leaving this parameter out is equivalent to setting it to 0
    (transparent). All burn-in and DVB-Sub font settings must match.

    - **Font** *(dict) --* External font file used for caption burn-in. File extension must be 'ttf'
    or 'tte'. Although the user can select output fonts for many different types of input captions,
    embedded, STL and teletext sources use a strict grid system. Using external fonts with these
    caption sources could cause unexpected display of proportional fonts. All burn-in and DVB-Sub
    font settings must match.

      - **PasswordParam** *(string) --* key used to extract the password from EC2 Parameter store

      - **Uri** *(string) --* Uniform Resource Identifier - This should be a path to a file
      accessible to the Live system (eg. a http:// URI) depending on the output type. For example, a
      RTMP destination should have a uri simliar to: "rtmp://fmsserver/live".

      - **Username** *(string) --* Documentation update needed

    - **FontColor** *(string) --* Specifies the color of the burned-in captions. This option is not
    valid for source captions that are STL, 608/embedded or teletext. These source settings are
    already pre-defined by the caption stream. All burn-in and DVB-Sub font settings must match.

    - **FontOpacity** *(integer) --* Specifies the opacity of the burned-in captions. 255 is opaque;
    0 is transparent. All burn-in and DVB-Sub font settings must match.

    - **FontResolution** *(integer) --* Font resolution in DPI (dots per inch); default is 96 dpi.
    All burn-in and DVB-Sub font settings must match.

    - **FontSize** *(string) --* When set to 'auto' fontSize will scale depending on the size of the
    output. Giving a positive integer will specify the exact font size in points. All burn-in and
    DVB-Sub font settings must match.

    - **OutlineColor** *(string) --* Specifies font outline color. This option is not valid for
    source captions that are either 608/embedded or teletext. These source settings are already
    pre-defined by the caption stream. All burn-in and DVB-Sub font settings must match.

    - **OutlineSize** *(integer) --* Specifies font outline size in pixels. This option is not valid
    for source captions that are either 608/embedded or teletext. These source settings are already
    pre-defined by the caption stream. All burn-in and DVB-Sub font settings must match.

    - **ShadowColor** *(string) --* Specifies the color of the shadow cast by the captions. All
    burn-in and DVB-Sub font settings must match.

    - **ShadowOpacity** *(integer) --* Specifies the opacity of the shadow. 255 is opaque; 0 is
    transparent. Leaving this parameter out is equivalent to setting it to 0 (transparent). All
    burn-in and DVB-Sub font settings must match.

    - **ShadowXOffset** *(integer) --* Specifies the horizontal offset of the shadow relative to the
    captions in pixels. A value of -2 would result in a shadow offset 2 pixels to the left. All
    burn-in and DVB-Sub font settings must match.

    - **ShadowYOffset** *(integer) --* Specifies the vertical offset of the shadow relative to the
    captions in pixels. A value of -2 would result in a shadow offset 2 pixels above the text. All
    burn-in and DVB-Sub font settings must match.

    - **TeletextGridControl** *(string) --* Controls whether a fixed grid size will be used to
    generate the output subtitles bitmap. Only applicable for Teletext inputs and DVB-Sub/Burn-in
    outputs.

    - **XPosition** *(integer) --* Specifies the horizontal position of the caption relative to the
    left side of the output in pixels. A value of 10 would result in the captions starting 10 pixels
    from the left of the output. If no explicit xPosition is provided, the horizontal caption
    position will be determined by the alignment parameter. All burn-in and DVB-Sub font settings
    must match.

    - **YPosition** *(integer) --* Specifies the vertical position of the caption relative to the
    top of the output in pixels. A value of 10 would result in the captions starting 10 pixels from
    the top of the output. If no explicit yPosition is provided, the caption will be positioned
    towards the bottom of the output. All burn-in and DVB-Sub font settings must match.
    """


_ClientStopChannelResponseEncoderSettingsCaptionDescriptionsDestinationSettingsDvbSubDestinationSettingsFontTypeDef = TypedDict(
    "_ClientStopChannelResponseEncoderSettingsCaptionDescriptionsDestinationSettingsDvbSubDestinationSettingsFontTypeDef",
    {"PasswordParam": str, "Uri": str, "Username": str},
    total=False,
)


class ClientStopChannelResponseEncoderSettingsCaptionDescriptionsDestinationSettingsDvbSubDestinationSettingsFontTypeDef(
    _ClientStopChannelResponseEncoderSettingsCaptionDescriptionsDestinationSettingsDvbSubDestinationSettingsFontTypeDef
):
    """
    Type definition for
    `ClientStopChannelResponseEncoderSettingsCaptionDescriptionsDestinationSettingsDvbSubDestinationSettings`
    `Font`

    - **PasswordParam** *(string) --* key used to extract the password from EC2 Parameter store

    - **Uri** *(string) --* Uniform Resource Identifier - This should be a path to a file accessible
    to the Live system (eg. a http:// URI) depending on the output type. For example, a RTMP
    destination should have a uri simliar to: "rtmp://fmsserver/live".

    - **Username** *(string) --* Documentation update needed
    """


_ClientStopChannelResponseEncoderSettingsCaptionDescriptionsDestinationSettingsDvbSubDestinationSettingsTypeDef = TypedDict(
    "_ClientStopChannelResponseEncoderSettingsCaptionDescriptionsDestinationSettingsDvbSubDestinationSettingsTypeDef",
    {
        "Alignment": str,
        "BackgroundColor": str,
        "BackgroundOpacity": int,
        "Font": ClientStopChannelResponseEncoderSettingsCaptionDescriptionsDestinationSettingsDvbSubDestinationSettingsFontTypeDef,
        "FontColor": str,
        "FontOpacity": int,
        "FontResolution": int,
        "FontSize": str,
        "OutlineColor": str,
        "OutlineSize": int,
        "ShadowColor": str,
        "ShadowOpacity": int,
        "ShadowXOffset": int,
        "ShadowYOffset": int,
        "TeletextGridControl": str,
        "XPosition": int,
        "YPosition": int,
    },
    total=False,
)


class ClientStopChannelResponseEncoderSettingsCaptionDescriptionsDestinationSettingsDvbSubDestinationSettingsTypeDef(
    _ClientStopChannelResponseEncoderSettingsCaptionDescriptionsDestinationSettingsDvbSubDestinationSettingsTypeDef
):
    """
    Type definition for
    `ClientStopChannelResponseEncoderSettingsCaptionDescriptionsDestinationSettings`
    `DvbSubDestinationSettings`

    - **Alignment** *(string) --* If no explicit xPosition or yPosition is provided, setting
    alignment to centered will place the captions at the bottom center of the output. Similarly,
    setting a left alignment will align captions to the bottom left of the output. If x and y
    positions are given in conjunction with the alignment parameter, the font will be justified
    (either left or centered) relative to those coordinates. Selecting "smart" justification will
    left-justify live subtitles and center-justify pre-recorded subtitles. This option is not valid
    for source captions that are STL or 608/embedded. These source settings are already pre-defined
    by the caption stream. All burn-in and DVB-Sub font settings must match.

    - **BackgroundColor** *(string) --* Specifies the color of the rectangle behind the captions.
    All burn-in and DVB-Sub font settings must match.

    - **BackgroundOpacity** *(integer) --* Specifies the opacity of the background rectangle. 255 is
    opaque; 0 is transparent. Leaving this parameter blank is equivalent to setting it to 0
    (transparent). All burn-in and DVB-Sub font settings must match.

    - **Font** *(dict) --* External font file used for caption burn-in. File extension must be 'ttf'
    or 'tte'. Although the user can select output fonts for many different types of input captions,
    embedded, STL and teletext sources use a strict grid system. Using external fonts with these
    caption sources could cause unexpected display of proportional fonts. All burn-in and DVB-Sub
    font settings must match.

      - **PasswordParam** *(string) --* key used to extract the password from EC2 Parameter store

      - **Uri** *(string) --* Uniform Resource Identifier - This should be a path to a file
      accessible to the Live system (eg. a http:// URI) depending on the output type. For example, a
      RTMP destination should have a uri simliar to: "rtmp://fmsserver/live".

      - **Username** *(string) --* Documentation update needed

    - **FontColor** *(string) --* Specifies the color of the burned-in captions. This option is not
    valid for source captions that are STL, 608/embedded or teletext. These source settings are
    already pre-defined by the caption stream. All burn-in and DVB-Sub font settings must match.

    - **FontOpacity** *(integer) --* Specifies the opacity of the burned-in captions. 255 is opaque;
    0 is transparent. All burn-in and DVB-Sub font settings must match.

    - **FontResolution** *(integer) --* Font resolution in DPI (dots per inch); default is 96 dpi.
    All burn-in and DVB-Sub font settings must match.

    - **FontSize** *(string) --* When set to auto fontSize will scale depending on the size of the
    output. Giving a positive integer will specify the exact font size in points. All burn-in and
    DVB-Sub font settings must match.

    - **OutlineColor** *(string) --* Specifies font outline color. This option is not valid for
    source captions that are either 608/embedded or teletext. These source settings are already
    pre-defined by the caption stream. All burn-in and DVB-Sub font settings must match.

    - **OutlineSize** *(integer) --* Specifies font outline size in pixels. This option is not valid
    for source captions that are either 608/embedded or teletext. These source settings are already
    pre-defined by the caption stream. All burn-in and DVB-Sub font settings must match.

    - **ShadowColor** *(string) --* Specifies the color of the shadow cast by the captions. All
    burn-in and DVB-Sub font settings must match.

    - **ShadowOpacity** *(integer) --* Specifies the opacity of the shadow. 255 is opaque; 0 is
    transparent. Leaving this parameter blank is equivalent to setting it to 0 (transparent). All
    burn-in and DVB-Sub font settings must match.

    - **ShadowXOffset** *(integer) --* Specifies the horizontal offset of the shadow relative to the
    captions in pixels. A value of -2 would result in a shadow offset 2 pixels to the left. All
    burn-in and DVB-Sub font settings must match.

    - **ShadowYOffset** *(integer) --* Specifies the vertical offset of the shadow relative to the
    captions in pixels. A value of -2 would result in a shadow offset 2 pixels above the text. All
    burn-in and DVB-Sub font settings must match.

    - **TeletextGridControl** *(string) --* Controls whether a fixed grid size will be used to
    generate the output subtitles bitmap. Only applicable for Teletext inputs and DVB-Sub/Burn-in
    outputs.

    - **XPosition** *(integer) --* Specifies the horizontal position of the caption relative to the
    left side of the output in pixels. A value of 10 would result in the captions starting 10 pixels
    from the left of the output. If no explicit xPosition is provided, the horizontal caption
    position will be determined by the alignment parameter. This option is not valid for source
    captions that are STL, 608/embedded or teletext. These source settings are already pre-defined
    by the caption stream. All burn-in and DVB-Sub font settings must match.

    - **YPosition** *(integer) --* Specifies the vertical position of the caption relative to the
    top of the output in pixels. A value of 10 would result in the captions starting 10 pixels from
    the top of the output. If no explicit yPosition is provided, the caption will be positioned
    towards the bottom of the output. This option is not valid for source captions that are STL,
    608/embedded or teletext. These source settings are already pre-defined by the caption stream.
    All burn-in and DVB-Sub font settings must match.
    """


_ClientStopChannelResponseEncoderSettingsCaptionDescriptionsDestinationSettingsTtmlDestinationSettingsTypeDef = TypedDict(
    "_ClientStopChannelResponseEncoderSettingsCaptionDescriptionsDestinationSettingsTtmlDestinationSettingsTypeDef",
    {"StyleControl": str},
    total=False,
)


class ClientStopChannelResponseEncoderSettingsCaptionDescriptionsDestinationSettingsTtmlDestinationSettingsTypeDef(
    _ClientStopChannelResponseEncoderSettingsCaptionDescriptionsDestinationSettingsTtmlDestinationSettingsTypeDef
):
    """
    Type definition for
    `ClientStopChannelResponseEncoderSettingsCaptionDescriptionsDestinationSettings`
    `TtmlDestinationSettings`

    - **StyleControl** *(string) --* When set to passthrough, passes through style and position
    information from a TTML-like input source (TTML, SMPTE-TT, CFF-TT) to the CFF-TT output or TTML
    output.
    """


_ClientStopChannelResponseEncoderSettingsCaptionDescriptionsDestinationSettingsTypeDef = TypedDict(
    "_ClientStopChannelResponseEncoderSettingsCaptionDescriptionsDestinationSettingsTypeDef",
    {
        "AribDestinationSettings": Dict,
        "BurnInDestinationSettings": ClientStopChannelResponseEncoderSettingsCaptionDescriptionsDestinationSettingsBurnInDestinationSettingsTypeDef,
        "DvbSubDestinationSettings": ClientStopChannelResponseEncoderSettingsCaptionDescriptionsDestinationSettingsDvbSubDestinationSettingsTypeDef,
        "EmbeddedDestinationSettings": Dict,
        "EmbeddedPlusScte20DestinationSettings": Dict,
        "RtmpCaptionInfoDestinationSettings": Dict,
        "Scte20PlusEmbeddedDestinationSettings": Dict,
        "Scte27DestinationSettings": Dict,
        "SmpteTtDestinationSettings": Dict,
        "TeletextDestinationSettings": Dict,
        "TtmlDestinationSettings": ClientStopChannelResponseEncoderSettingsCaptionDescriptionsDestinationSettingsTtmlDestinationSettingsTypeDef,
        "WebvttDestinationSettings": Dict[str, Any],
    },
    total=False,
)


class ClientStopChannelResponseEncoderSettingsCaptionDescriptionsDestinationSettingsTypeDef(
    _ClientStopChannelResponseEncoderSettingsCaptionDescriptionsDestinationSettingsTypeDef
):
    """
    Type definition for `ClientStopChannelResponseEncoderSettingsCaptionDescriptions`
    `DestinationSettings`

    - **AribDestinationSettings** *(dict) --* Arib Destination Settings

    - **BurnInDestinationSettings** *(dict) --* Burn In Destination Settings

      - **Alignment** *(string) --* If no explicit xPosition or yPosition is provided, setting
      alignment to centered will place the captions at the bottom center of the output. Similarly,
      setting a left alignment will align captions to the bottom left of the output. If x and y
      positions are given in conjunction with the alignment parameter, the font will be justified
      (either left or centered) relative to those coordinates. Selecting "smart" justification will
      left-justify live subtitles and center-justify pre-recorded subtitles. All burn-in and DVB-Sub
      font settings must match.

      - **BackgroundColor** *(string) --* Specifies the color of the rectangle behind the captions.
      All burn-in and DVB-Sub font settings must match.

      - **BackgroundOpacity** *(integer) --* Specifies the opacity of the background rectangle. 255
      is opaque; 0 is transparent. Leaving this parameter out is equivalent to setting it to 0
      (transparent). All burn-in and DVB-Sub font settings must match.

      - **Font** *(dict) --* External font file used for caption burn-in. File extension must be
      'ttf' or 'tte'. Although the user can select output fonts for many different types of input
      captions, embedded, STL and teletext sources use a strict grid system. Using external fonts
      with these caption sources could cause unexpected display of proportional fonts. All burn-in
      and DVB-Sub font settings must match.

        - **PasswordParam** *(string) --* key used to extract the password from EC2 Parameter store

        - **Uri** *(string) --* Uniform Resource Identifier - This should be a path to a file
        accessible to the Live system (eg. a http:// URI) depending on the output type. For example,
        a RTMP destination should have a uri simliar to: "rtmp://fmsserver/live".

        - **Username** *(string) --* Documentation update needed

      - **FontColor** *(string) --* Specifies the color of the burned-in captions. This option is
      not valid for source captions that are STL, 608/embedded or teletext. These source settings
      are already pre-defined by the caption stream. All burn-in and DVB-Sub font settings must
      match.

      - **FontOpacity** *(integer) --* Specifies the opacity of the burned-in captions. 255 is
      opaque; 0 is transparent. All burn-in and DVB-Sub font settings must match.

      - **FontResolution** *(integer) --* Font resolution in DPI (dots per inch); default is 96 dpi.
      All burn-in and DVB-Sub font settings must match.

      - **FontSize** *(string) --* When set to 'auto' fontSize will scale depending on the size of
      the output. Giving a positive integer will specify the exact font size in points. All burn-in
      and DVB-Sub font settings must match.

      - **OutlineColor** *(string) --* Specifies font outline color. This option is not valid for
      source captions that are either 608/embedded or teletext. These source settings are already
      pre-defined by the caption stream. All burn-in and DVB-Sub font settings must match.

      - **OutlineSize** *(integer) --* Specifies font outline size in pixels. This option is not
      valid for source captions that are either 608/embedded or teletext. These source settings are
      already pre-defined by the caption stream. All burn-in and DVB-Sub font settings must match.

      - **ShadowColor** *(string) --* Specifies the color of the shadow cast by the captions. All
      burn-in and DVB-Sub font settings must match.

      - **ShadowOpacity** *(integer) --* Specifies the opacity of the shadow. 255 is opaque; 0 is
      transparent. Leaving this parameter out is equivalent to setting it to 0 (transparent). All
      burn-in and DVB-Sub font settings must match.

      - **ShadowXOffset** *(integer) --* Specifies the horizontal offset of the shadow relative to
      the captions in pixels. A value of -2 would result in a shadow offset 2 pixels to the left.
      All burn-in and DVB-Sub font settings must match.

      - **ShadowYOffset** *(integer) --* Specifies the vertical offset of the shadow relative to the
      captions in pixels. A value of -2 would result in a shadow offset 2 pixels above the text. All
      burn-in and DVB-Sub font settings must match.

      - **TeletextGridControl** *(string) --* Controls whether a fixed grid size will be used to
      generate the output subtitles bitmap. Only applicable for Teletext inputs and DVB-Sub/Burn-in
      outputs.

      - **XPosition** *(integer) --* Specifies the horizontal position of the caption relative to
      the left side of the output in pixels. A value of 10 would result in the captions starting 10
      pixels from the left of the output. If no explicit xPosition is provided, the horizontal
      caption position will be determined by the alignment parameter. All burn-in and DVB-Sub font
      settings must match.

      - **YPosition** *(integer) --* Specifies the vertical position of the caption relative to the
      top of the output in pixels. A value of 10 would result in the captions starting 10 pixels
      from the top of the output. If no explicit yPosition is provided, the caption will be
      positioned towards the bottom of the output. All burn-in and DVB-Sub font settings must match.

    - **DvbSubDestinationSettings** *(dict) --* Dvb Sub Destination Settings

      - **Alignment** *(string) --* If no explicit xPosition or yPosition is provided, setting
      alignment to centered will place the captions at the bottom center of the output. Similarly,
      setting a left alignment will align captions to the bottom left of the output. If x and y
      positions are given in conjunction with the alignment parameter, the font will be justified
      (either left or centered) relative to those coordinates. Selecting "smart" justification will
      left-justify live subtitles and center-justify pre-recorded subtitles. This option is not
      valid for source captions that are STL or 608/embedded. These source settings are already
      pre-defined by the caption stream. All burn-in and DVB-Sub font settings must match.

      - **BackgroundColor** *(string) --* Specifies the color of the rectangle behind the captions.
      All burn-in and DVB-Sub font settings must match.

      - **BackgroundOpacity** *(integer) --* Specifies the opacity of the background rectangle. 255
      is opaque; 0 is transparent. Leaving this parameter blank is equivalent to setting it to 0
      (transparent). All burn-in and DVB-Sub font settings must match.

      - **Font** *(dict) --* External font file used for caption burn-in. File extension must be
      'ttf' or 'tte'. Although the user can select output fonts for many different types of input
      captions, embedded, STL and teletext sources use a strict grid system. Using external fonts
      with these caption sources could cause unexpected display of proportional fonts. All burn-in
      and DVB-Sub font settings must match.

        - **PasswordParam** *(string) --* key used to extract the password from EC2 Parameter store

        - **Uri** *(string) --* Uniform Resource Identifier - This should be a path to a file
        accessible to the Live system (eg. a http:// URI) depending on the output type. For example,
        a RTMP destination should have a uri simliar to: "rtmp://fmsserver/live".

        - **Username** *(string) --* Documentation update needed

      - **FontColor** *(string) --* Specifies the color of the burned-in captions. This option is
      not valid for source captions that are STL, 608/embedded or teletext. These source settings
      are already pre-defined by the caption stream. All burn-in and DVB-Sub font settings must
      match.

      - **FontOpacity** *(integer) --* Specifies the opacity of the burned-in captions. 255 is
      opaque; 0 is transparent. All burn-in and DVB-Sub font settings must match.

      - **FontResolution** *(integer) --* Font resolution in DPI (dots per inch); default is 96 dpi.
      All burn-in and DVB-Sub font settings must match.

      - **FontSize** *(string) --* When set to auto fontSize will scale depending on the size of the
      output. Giving a positive integer will specify the exact font size in points. All burn-in and
      DVB-Sub font settings must match.

      - **OutlineColor** *(string) --* Specifies font outline color. This option is not valid for
      source captions that are either 608/embedded or teletext. These source settings are already
      pre-defined by the caption stream. All burn-in and DVB-Sub font settings must match.

      - **OutlineSize** *(integer) --* Specifies font outline size in pixels. This option is not
      valid for source captions that are either 608/embedded or teletext. These source settings are
      already pre-defined by the caption stream. All burn-in and DVB-Sub font settings must match.

      - **ShadowColor** *(string) --* Specifies the color of the shadow cast by the captions. All
      burn-in and DVB-Sub font settings must match.

      - **ShadowOpacity** *(integer) --* Specifies the opacity of the shadow. 255 is opaque; 0 is
      transparent. Leaving this parameter blank is equivalent to setting it to 0 (transparent). All
      burn-in and DVB-Sub font settings must match.

      - **ShadowXOffset** *(integer) --* Specifies the horizontal offset of the shadow relative to
      the captions in pixels. A value of -2 would result in a shadow offset 2 pixels to the left.
      All burn-in and DVB-Sub font settings must match.

      - **ShadowYOffset** *(integer) --* Specifies the vertical offset of the shadow relative to the
      captions in pixels. A value of -2 would result in a shadow offset 2 pixels above the text. All
      burn-in and DVB-Sub font settings must match.

      - **TeletextGridControl** *(string) --* Controls whether a fixed grid size will be used to
      generate the output subtitles bitmap. Only applicable for Teletext inputs and DVB-Sub/Burn-in
      outputs.

      - **XPosition** *(integer) --* Specifies the horizontal position of the caption relative to
      the left side of the output in pixels. A value of 10 would result in the captions starting 10
      pixels from the left of the output. If no explicit xPosition is provided, the horizontal
      caption position will be determined by the alignment parameter. This option is not valid for
      source captions that are STL, 608/embedded or teletext. These source settings are already
      pre-defined by the caption stream. All burn-in and DVB-Sub font settings must match.

      - **YPosition** *(integer) --* Specifies the vertical position of the caption relative to the
      top of the output in pixels. A value of 10 would result in the captions starting 10 pixels
      from the top of the output. If no explicit yPosition is provided, the caption will be
      positioned towards the bottom of the output. This option is not valid for source captions that
      are STL, 608/embedded or teletext. These source settings are already pre-defined by the
      caption stream. All burn-in and DVB-Sub font settings must match.

    - **EmbeddedDestinationSettings** *(dict) --* Embedded Destination Settings

    - **EmbeddedPlusScte20DestinationSettings** *(dict) --* Embedded Plus Scte20 Destination
    Settings

    - **RtmpCaptionInfoDestinationSettings** *(dict) --* Rtmp Caption Info Destination Settings

    - **Scte20PlusEmbeddedDestinationSettings** *(dict) --* Scte20 Plus Embedded Destination
    Settings

    - **Scte27DestinationSettings** *(dict) --* Scte27 Destination Settings

    - **SmpteTtDestinationSettings** *(dict) --* Smpte Tt Destination Settings

    - **TeletextDestinationSettings** *(dict) --* Teletext Destination Settings

    - **TtmlDestinationSettings** *(dict) --* Ttml Destination Settings

      - **StyleControl** *(string) --* When set to passthrough, passes through style and position
      information from a TTML-like input source (TTML, SMPTE-TT, CFF-TT) to the CFF-TT output or
      TTML output.

    - **WebvttDestinationSettings** *(dict) --* Webvtt Destination Settings
    """


_ClientStopChannelResponseEncoderSettingsCaptionDescriptionsTypeDef = TypedDict(
    "_ClientStopChannelResponseEncoderSettingsCaptionDescriptionsTypeDef",
    {
        "CaptionSelectorName": str,
        "DestinationSettings": ClientStopChannelResponseEncoderSettingsCaptionDescriptionsDestinationSettingsTypeDef,
        "LanguageCode": str,
        "LanguageDescription": str,
        "Name": str,
    },
    total=False,
)


class ClientStopChannelResponseEncoderSettingsCaptionDescriptionsTypeDef(
    _ClientStopChannelResponseEncoderSettingsCaptionDescriptionsTypeDef
):
    """
    Type definition for `ClientStopChannelResponseEncoderSettings` `CaptionDescriptions`

    - **CaptionSelectorName** *(string) --* Specifies which input caption selector to use as a
    caption source when generating output captions. This field should match a captionSelector name.

    - **DestinationSettings** *(dict) --* Additional settings for captions destination that depend
    on the destination type.

      - **AribDestinationSettings** *(dict) --* Arib Destination Settings

      - **BurnInDestinationSettings** *(dict) --* Burn In Destination Settings

        - **Alignment** *(string) --* If no explicit xPosition or yPosition is provided, setting
        alignment to centered will place the captions at the bottom center of the output. Similarly,
        setting a left alignment will align captions to the bottom left of the output. If x and y
        positions are given in conjunction with the alignment parameter, the font will be justified
        (either left or centered) relative to those coordinates. Selecting "smart" justification
        will left-justify live subtitles and center-justify pre-recorded subtitles. All burn-in and
        DVB-Sub font settings must match.

        - **BackgroundColor** *(string) --* Specifies the color of the rectangle behind the
        captions. All burn-in and DVB-Sub font settings must match.

        - **BackgroundOpacity** *(integer) --* Specifies the opacity of the background rectangle.
        255 is opaque; 0 is transparent. Leaving this parameter out is equivalent to setting it to 0
        (transparent). All burn-in and DVB-Sub font settings must match.

        - **Font** *(dict) --* External font file used for caption burn-in. File extension must be
        'ttf' or 'tte'. Although the user can select output fonts for many different types of input
        captions, embedded, STL and teletext sources use a strict grid system. Using external fonts
        with these caption sources could cause unexpected display of proportional fonts. All burn-in
        and DVB-Sub font settings must match.

          - **PasswordParam** *(string) --* key used to extract the password from EC2 Parameter
          store

          - **Uri** *(string) --* Uniform Resource Identifier - This should be a path to a file
          accessible to the Live system (eg. a http:// URI) depending on the output type. For
          example, a RTMP destination should have a uri simliar to: "rtmp://fmsserver/live".

          - **Username** *(string) --* Documentation update needed

        - **FontColor** *(string) --* Specifies the color of the burned-in captions. This option is
        not valid for source captions that are STL, 608/embedded or teletext. These source settings
        are already pre-defined by the caption stream. All burn-in and DVB-Sub font settings must
        match.

        - **FontOpacity** *(integer) --* Specifies the opacity of the burned-in captions. 255 is
        opaque; 0 is transparent. All burn-in and DVB-Sub font settings must match.

        - **FontResolution** *(integer) --* Font resolution in DPI (dots per inch); default is 96
        dpi. All burn-in and DVB-Sub font settings must match.

        - **FontSize** *(string) --* When set to 'auto' fontSize will scale depending on the size of
        the output. Giving a positive integer will specify the exact font size in points. All
        burn-in and DVB-Sub font settings must match.

        - **OutlineColor** *(string) --* Specifies font outline color. This option is not valid for
        source captions that are either 608/embedded or teletext. These source settings are already
        pre-defined by the caption stream. All burn-in and DVB-Sub font settings must match.

        - **OutlineSize** *(integer) --* Specifies font outline size in pixels. This option is not
        valid for source captions that are either 608/embedded or teletext. These source settings
        are already pre-defined by the caption stream. All burn-in and DVB-Sub font settings must
        match.

        - **ShadowColor** *(string) --* Specifies the color of the shadow cast by the captions. All
        burn-in and DVB-Sub font settings must match.

        - **ShadowOpacity** *(integer) --* Specifies the opacity of the shadow. 255 is opaque; 0 is
        transparent. Leaving this parameter out is equivalent to setting it to 0 (transparent). All
        burn-in and DVB-Sub font settings must match.

        - **ShadowXOffset** *(integer) --* Specifies the horizontal offset of the shadow relative to
        the captions in pixels. A value of -2 would result in a shadow offset 2 pixels to the left.
        All burn-in and DVB-Sub font settings must match.

        - **ShadowYOffset** *(integer) --* Specifies the vertical offset of the shadow relative to
        the captions in pixels. A value of -2 would result in a shadow offset 2 pixels above the
        text. All burn-in and DVB-Sub font settings must match.

        - **TeletextGridControl** *(string) --* Controls whether a fixed grid size will be used to
        generate the output subtitles bitmap. Only applicable for Teletext inputs and
        DVB-Sub/Burn-in outputs.

        - **XPosition** *(integer) --* Specifies the horizontal position of the caption relative to
        the left side of the output in pixels. A value of 10 would result in the captions starting
        10 pixels from the left of the output. If no explicit xPosition is provided, the horizontal
        caption position will be determined by the alignment parameter. All burn-in and DVB-Sub font
        settings must match.

        - **YPosition** *(integer) --* Specifies the vertical position of the caption relative to
        the top of the output in pixels. A value of 10 would result in the captions starting 10
        pixels from the top of the output. If no explicit yPosition is provided, the caption will be
        positioned towards the bottom of the output. All burn-in and DVB-Sub font settings must
        match.

      - **DvbSubDestinationSettings** *(dict) --* Dvb Sub Destination Settings

        - **Alignment** *(string) --* If no explicit xPosition or yPosition is provided, setting
        alignment to centered will place the captions at the bottom center of the output. Similarly,
        setting a left alignment will align captions to the bottom left of the output. If x and y
        positions are given in conjunction with the alignment parameter, the font will be justified
        (either left or centered) relative to those coordinates. Selecting "smart" justification
        will left-justify live subtitles and center-justify pre-recorded subtitles. This option is
        not valid for source captions that are STL or 608/embedded. These source settings are
        already pre-defined by the caption stream. All burn-in and DVB-Sub font settings must match.

        - **BackgroundColor** *(string) --* Specifies the color of the rectangle behind the
        captions. All burn-in and DVB-Sub font settings must match.

        - **BackgroundOpacity** *(integer) --* Specifies the opacity of the background rectangle.
        255 is opaque; 0 is transparent. Leaving this parameter blank is equivalent to setting it to
        0 (transparent). All burn-in and DVB-Sub font settings must match.

        - **Font** *(dict) --* External font file used for caption burn-in. File extension must be
        'ttf' or 'tte'. Although the user can select output fonts for many different types of input
        captions, embedded, STL and teletext sources use a strict grid system. Using external fonts
        with these caption sources could cause unexpected display of proportional fonts. All burn-in
        and DVB-Sub font settings must match.

          - **PasswordParam** *(string) --* key used to extract the password from EC2 Parameter
          store

          - **Uri** *(string) --* Uniform Resource Identifier - This should be a path to a file
          accessible to the Live system (eg. a http:// URI) depending on the output type. For
          example, a RTMP destination should have a uri simliar to: "rtmp://fmsserver/live".

          - **Username** *(string) --* Documentation update needed

        - **FontColor** *(string) --* Specifies the color of the burned-in captions. This option is
        not valid for source captions that are STL, 608/embedded or teletext. These source settings
        are already pre-defined by the caption stream. All burn-in and DVB-Sub font settings must
        match.

        - **FontOpacity** *(integer) --* Specifies the opacity of the burned-in captions. 255 is
        opaque; 0 is transparent. All burn-in and DVB-Sub font settings must match.

        - **FontResolution** *(integer) --* Font resolution in DPI (dots per inch); default is 96
        dpi. All burn-in and DVB-Sub font settings must match.

        - **FontSize** *(string) --* When set to auto fontSize will scale depending on the size of
        the output. Giving a positive integer will specify the exact font size in points. All
        burn-in and DVB-Sub font settings must match.

        - **OutlineColor** *(string) --* Specifies font outline color. This option is not valid for
        source captions that are either 608/embedded or teletext. These source settings are already
        pre-defined by the caption stream. All burn-in and DVB-Sub font settings must match.

        - **OutlineSize** *(integer) --* Specifies font outline size in pixels. This option is not
        valid for source captions that are either 608/embedded or teletext. These source settings
        are already pre-defined by the caption stream. All burn-in and DVB-Sub font settings must
        match.

        - **ShadowColor** *(string) --* Specifies the color of the shadow cast by the captions. All
        burn-in and DVB-Sub font settings must match.

        - **ShadowOpacity** *(integer) --* Specifies the opacity of the shadow. 255 is opaque; 0 is
        transparent. Leaving this parameter blank is equivalent to setting it to 0 (transparent).
        All burn-in and DVB-Sub font settings must match.

        - **ShadowXOffset** *(integer) --* Specifies the horizontal offset of the shadow relative to
        the captions in pixels. A value of -2 would result in a shadow offset 2 pixels to the left.
        All burn-in and DVB-Sub font settings must match.

        - **ShadowYOffset** *(integer) --* Specifies the vertical offset of the shadow relative to
        the captions in pixels. A value of -2 would result in a shadow offset 2 pixels above the
        text. All burn-in and DVB-Sub font settings must match.

        - **TeletextGridControl** *(string) --* Controls whether a fixed grid size will be used to
        generate the output subtitles bitmap. Only applicable for Teletext inputs and
        DVB-Sub/Burn-in outputs.

        - **XPosition** *(integer) --* Specifies the horizontal position of the caption relative to
        the left side of the output in pixels. A value of 10 would result in the captions starting
        10 pixels from the left of the output. If no explicit xPosition is provided, the horizontal
        caption position will be determined by the alignment parameter. This option is not valid for
        source captions that are STL, 608/embedded or teletext. These source settings are already
        pre-defined by the caption stream. All burn-in and DVB-Sub font settings must match.

        - **YPosition** *(integer) --* Specifies the vertical position of the caption relative to
        the top of the output in pixels. A value of 10 would result in the captions starting 10
        pixels from the top of the output. If no explicit yPosition is provided, the caption will be
        positioned towards the bottom of the output. This option is not valid for source captions
        that are STL, 608/embedded or teletext. These source settings are already pre-defined by the
        caption stream. All burn-in and DVB-Sub font settings must match.

      - **EmbeddedDestinationSettings** *(dict) --* Embedded Destination Settings

      - **EmbeddedPlusScte20DestinationSettings** *(dict) --* Embedded Plus Scte20 Destination
      Settings

      - **RtmpCaptionInfoDestinationSettings** *(dict) --* Rtmp Caption Info Destination Settings

      - **Scte20PlusEmbeddedDestinationSettings** *(dict) --* Scte20 Plus Embedded Destination
      Settings

      - **Scte27DestinationSettings** *(dict) --* Scte27 Destination Settings

      - **SmpteTtDestinationSettings** *(dict) --* Smpte Tt Destination Settings

      - **TeletextDestinationSettings** *(dict) --* Teletext Destination Settings

      - **TtmlDestinationSettings** *(dict) --* Ttml Destination Settings

        - **StyleControl** *(string) --* When set to passthrough, passes through style and position
        information from a TTML-like input source (TTML, SMPTE-TT, CFF-TT) to the CFF-TT output or
        TTML output.

      - **WebvttDestinationSettings** *(dict) --* Webvtt Destination Settings

    - **LanguageCode** *(string) --* ISO 639-2 three-digit code:
    http://www.loc.gov/standards/iso639-2/

    - **LanguageDescription** *(string) --* Human readable information to indicate captions
    available for players (eg. English, or Spanish).

    - **Name** *(string) --* Name of the caption description. Used to associate a caption
    description with an output. Names must be unique within an event.
    """


_ClientStopChannelResponseEncoderSettingsGlobalConfigurationInputLossBehaviorInputLossImageSlateTypeDef = TypedDict(
    "_ClientStopChannelResponseEncoderSettingsGlobalConfigurationInputLossBehaviorInputLossImageSlateTypeDef",
    {"PasswordParam": str, "Uri": str, "Username": str},
    total=False,
)


class ClientStopChannelResponseEncoderSettingsGlobalConfigurationInputLossBehaviorInputLossImageSlateTypeDef(
    _ClientStopChannelResponseEncoderSettingsGlobalConfigurationInputLossBehaviorInputLossImageSlateTypeDef
):
    """
    Type definition for
    `ClientStopChannelResponseEncoderSettingsGlobalConfigurationInputLossBehavior`
    `InputLossImageSlate`

    - **PasswordParam** *(string) --* key used to extract the password from EC2 Parameter store

    - **Uri** *(string) --* Uniform Resource Identifier - This should be a path to a file accessible
    to the Live system (eg. a http:// URI) depending on the output type. For example, a RTMP
    destination should have a uri simliar to: "rtmp://fmsserver/live".

    - **Username** *(string) --* Documentation update needed
    """


_ClientStopChannelResponseEncoderSettingsGlobalConfigurationInputLossBehaviorTypeDef = TypedDict(
    "_ClientStopChannelResponseEncoderSettingsGlobalConfigurationInputLossBehaviorTypeDef",
    {
        "BlackFrameMsec": int,
        "InputLossImageColor": str,
        "InputLossImageSlate": ClientStopChannelResponseEncoderSettingsGlobalConfigurationInputLossBehaviorInputLossImageSlateTypeDef,
        "InputLossImageType": str,
        "RepeatFrameMsec": int,
    },
    total=False,
)


class ClientStopChannelResponseEncoderSettingsGlobalConfigurationInputLossBehaviorTypeDef(
    _ClientStopChannelResponseEncoderSettingsGlobalConfigurationInputLossBehaviorTypeDef
):
    """
    Type definition for `ClientStopChannelResponseEncoderSettingsGlobalConfiguration`
    `InputLossBehavior`

    - **BlackFrameMsec** *(integer) --* Documentation update needed

    - **InputLossImageColor** *(string) --* When input loss image type is "color" this field
    specifies the color to use. Value: 6 hex characters representing the values of RGB.

    - **InputLossImageSlate** *(dict) --* When input loss image type is "slate" these fields specify
    the parameters for accessing the slate.

      - **PasswordParam** *(string) --* key used to extract the password from EC2 Parameter store

      - **Uri** *(string) --* Uniform Resource Identifier - This should be a path to a file
      accessible to the Live system (eg. a http:// URI) depending on the output type. For example, a
      RTMP destination should have a uri simliar to: "rtmp://fmsserver/live".

      - **Username** *(string) --* Documentation update needed

    - **InputLossImageType** *(string) --* Indicates whether to substitute a solid color or a slate
    into the output after input loss exceeds blackFrameMsec.

    - **RepeatFrameMsec** *(integer) --* Documentation update needed
    """


_ClientStopChannelResponseEncoderSettingsGlobalConfigurationTypeDef = TypedDict(
    "_ClientStopChannelResponseEncoderSettingsGlobalConfigurationTypeDef",
    {
        "InitialAudioGain": int,
        "InputEndAction": str,
        "InputLossBehavior": ClientStopChannelResponseEncoderSettingsGlobalConfigurationInputLossBehaviorTypeDef,
        "OutputLockingMode": str,
        "OutputTimingSource": str,
        "SupportLowFramerateInputs": str,
    },
    total=False,
)


class ClientStopChannelResponseEncoderSettingsGlobalConfigurationTypeDef(
    _ClientStopChannelResponseEncoderSettingsGlobalConfigurationTypeDef
):
    """
    Type definition for `ClientStopChannelResponseEncoderSettings` `GlobalConfiguration`

    - **InitialAudioGain** *(integer) --* Value to set the initial audio gain for the Live Event.

    - **InputEndAction** *(string) --* Indicates the action to take when the current input completes
    (e.g. end-of-file). When switchAndLoopInputs is configured the encoder will restart at the
    beginning of the first input. When "none" is configured the encoder will transcode either black,
    a solid color, or a user specified slate images per the "Input Loss Behavior" configuration
    until the next input switch occurs (which is controlled through the Channel Schedule API).

    - **InputLossBehavior** *(dict) --* Settings for system actions when input is lost.

      - **BlackFrameMsec** *(integer) --* Documentation update needed

      - **InputLossImageColor** *(string) --* When input loss image type is "color" this field
      specifies the color to use. Value: 6 hex characters representing the values of RGB.

      - **InputLossImageSlate** *(dict) --* When input loss image type is "slate" these fields
      specify the parameters for accessing the slate.

        - **PasswordParam** *(string) --* key used to extract the password from EC2 Parameter store

        - **Uri** *(string) --* Uniform Resource Identifier - This should be a path to a file
        accessible to the Live system (eg. a http:// URI) depending on the output type. For example,
        a RTMP destination should have a uri simliar to: "rtmp://fmsserver/live".

        - **Username** *(string) --* Documentation update needed

      - **InputLossImageType** *(string) --* Indicates whether to substitute a solid color or a
      slate into the output after input loss exceeds blackFrameMsec.

      - **RepeatFrameMsec** *(integer) --* Documentation update needed

    - **OutputLockingMode** *(string) --* Indicates how MediaLive pipelines are synchronized.
    PIPELINELOCKING - MediaLive will attempt to synchronize the output of each pipeline to the
    other. EPOCHLOCKING - MediaLive will attempt to synchronize the output of each pipeline to the
    Unix epoch.

    - **OutputTimingSource** *(string) --* Indicates whether the rate of frames emitted by the Live
    encoder should be paced by its system clock (which optionally may be locked to another source
    via NTP) or should be locked to the clock of the source that is providing the input stream.

    - **SupportLowFramerateInputs** *(string) --* Adjusts video input buffer for streams with very
    low video framerates. This is commonly set to enabled for music channels with less than one
    video frame per second.
    """


_ClientStopChannelResponseEncoderSettingsNielsenConfigurationTypeDef = TypedDict(
    "_ClientStopChannelResponseEncoderSettingsNielsenConfigurationTypeDef",
    {"DistributorId": str, "NielsenPcmToId3Tagging": str},
    total=False,
)


class ClientStopChannelResponseEncoderSettingsNielsenConfigurationTypeDef(
    _ClientStopChannelResponseEncoderSettingsNielsenConfigurationTypeDef
):
    """
    Type definition for `ClientStopChannelResponseEncoderSettings` `NielsenConfiguration`

    - **DistributorId** *(string) --* Enter the Distributor ID assigned to your organization by
    Nielsen.

    - **NielsenPcmToId3Tagging** *(string) --* Enables Nielsen PCM to ID3 tagging
    """


_ClientStopChannelResponseEncoderSettingsOutputGroupsOutputGroupSettingsArchiveGroupSettingsDestinationTypeDef = TypedDict(
    "_ClientStopChannelResponseEncoderSettingsOutputGroupsOutputGroupSettingsArchiveGroupSettingsDestinationTypeDef",
    {"DestinationRefId": str},
    total=False,
)


class ClientStopChannelResponseEncoderSettingsOutputGroupsOutputGroupSettingsArchiveGroupSettingsDestinationTypeDef(
    _ClientStopChannelResponseEncoderSettingsOutputGroupsOutputGroupSettingsArchiveGroupSettingsDestinationTypeDef
):
    """
    Type definition for
    `ClientStopChannelResponseEncoderSettingsOutputGroupsOutputGroupSettingsArchiveGroupSettings`
    `Destination`

    - **DestinationRefId** *(string) --* Placeholder documentation for __string
    """


_ClientStopChannelResponseEncoderSettingsOutputGroupsOutputGroupSettingsArchiveGroupSettingsTypeDef = TypedDict(
    "_ClientStopChannelResponseEncoderSettingsOutputGroupsOutputGroupSettingsArchiveGroupSettingsTypeDef",
    {
        "Destination": ClientStopChannelResponseEncoderSettingsOutputGroupsOutputGroupSettingsArchiveGroupSettingsDestinationTypeDef,
        "RolloverInterval": int,
    },
    total=False,
)


class ClientStopChannelResponseEncoderSettingsOutputGroupsOutputGroupSettingsArchiveGroupSettingsTypeDef(
    _ClientStopChannelResponseEncoderSettingsOutputGroupsOutputGroupSettingsArchiveGroupSettingsTypeDef
):
    """
    Type definition for `ClientStopChannelResponseEncoderSettingsOutputGroupsOutputGroupSettings`
    `ArchiveGroupSettings`

    - **Destination** *(dict) --* A directory and base filename where archive files should be
    written.

      - **DestinationRefId** *(string) --* Placeholder documentation for __string

    - **RolloverInterval** *(integer) --* Number of seconds to write to archive file before closing
    and starting a new one.
    """


_ClientStopChannelResponseEncoderSettingsOutputGroupsOutputGroupSettingsFrameCaptureGroupSettingsDestinationTypeDef = TypedDict(
    "_ClientStopChannelResponseEncoderSettingsOutputGroupsOutputGroupSettingsFrameCaptureGroupSettingsDestinationTypeDef",
    {"DestinationRefId": str},
    total=False,
)


class ClientStopChannelResponseEncoderSettingsOutputGroupsOutputGroupSettingsFrameCaptureGroupSettingsDestinationTypeDef(
    _ClientStopChannelResponseEncoderSettingsOutputGroupsOutputGroupSettingsFrameCaptureGroupSettingsDestinationTypeDef
):
    """
    Type definition for
    `ClientStopChannelResponseEncoderSettingsOutputGroupsOutputGroupSettingsFrameCaptureGroupSettings`
    `Destination`

    - **DestinationRefId** *(string) --* Placeholder documentation for __string
    """


_ClientStopChannelResponseEncoderSettingsOutputGroupsOutputGroupSettingsFrameCaptureGroupSettingsTypeDef = TypedDict(
    "_ClientStopChannelResponseEncoderSettingsOutputGroupsOutputGroupSettingsFrameCaptureGroupSettingsTypeDef",
    {
        "Destination": ClientStopChannelResponseEncoderSettingsOutputGroupsOutputGroupSettingsFrameCaptureGroupSettingsDestinationTypeDef
    },
    total=False,
)


class ClientStopChannelResponseEncoderSettingsOutputGroupsOutputGroupSettingsFrameCaptureGroupSettingsTypeDef(
    _ClientStopChannelResponseEncoderSettingsOutputGroupsOutputGroupSettingsFrameCaptureGroupSettingsTypeDef
):
    """
    Type definition for `ClientStopChannelResponseEncoderSettingsOutputGroupsOutputGroupSettings`
    `FrameCaptureGroupSettings`

    - **Destination** *(dict) --* The destination for the frame capture files. Either the URI for an
    Amazon S3 bucket and object, plus a file name prefix (for example,
    s3ssl://sportsDelivery/highlights/20180820/curling_) or the URI for a MediaStore container, plus
    a file name prefix (for example, mediastoressl://sportsDelivery/20180820/curling_). The final
    file names consist of the prefix from the destination field (for example, "curling_") + name
    modifier + the counter (5 digits, starting from 00001) + extension (which is always .jpg). For
    example, curlingLow.00001.jpg

      - **DestinationRefId** *(string) --* Placeholder documentation for __string
    """


_ClientStopChannelResponseEncoderSettingsOutputGroupsOutputGroupSettingsHlsGroupSettingsCaptionLanguageMappingsTypeDef = TypedDict(
    "_ClientStopChannelResponseEncoderSettingsOutputGroupsOutputGroupSettingsHlsGroupSettingsCaptionLanguageMappingsTypeDef",
    {"CaptionChannel": int, "LanguageCode": str, "LanguageDescription": str},
    total=False,
)


class ClientStopChannelResponseEncoderSettingsOutputGroupsOutputGroupSettingsHlsGroupSettingsCaptionLanguageMappingsTypeDef(
    _ClientStopChannelResponseEncoderSettingsOutputGroupsOutputGroupSettingsHlsGroupSettingsCaptionLanguageMappingsTypeDef
):
    """
    Type definition for
    `ClientStopChannelResponseEncoderSettingsOutputGroupsOutputGroupSettingsHlsGroupSettings`
    `CaptionLanguageMappings`

    - **CaptionChannel** *(integer) --* The closed caption channel being described by this
    CaptionLanguageMapping. Each channel mapping must have a unique channel number (maximum of 4)

    - **LanguageCode** *(string) --* Three character ISO 639-2 language code (see
    http://www.loc.gov/standards/iso639-2)

    - **LanguageDescription** *(string) --* Textual description of language
    """


_ClientStopChannelResponseEncoderSettingsOutputGroupsOutputGroupSettingsHlsGroupSettingsDestinationTypeDef = TypedDict(
    "_ClientStopChannelResponseEncoderSettingsOutputGroupsOutputGroupSettingsHlsGroupSettingsDestinationTypeDef",
    {"DestinationRefId": str},
    total=False,
)


class ClientStopChannelResponseEncoderSettingsOutputGroupsOutputGroupSettingsHlsGroupSettingsDestinationTypeDef(
    _ClientStopChannelResponseEncoderSettingsOutputGroupsOutputGroupSettingsHlsGroupSettingsDestinationTypeDef
):
    """
    Type definition for
    `ClientStopChannelResponseEncoderSettingsOutputGroupsOutputGroupSettingsHlsGroupSettings`
    `Destination`

    - **DestinationRefId** *(string) --* Placeholder documentation for __string
    """


_ClientStopChannelResponseEncoderSettingsOutputGroupsOutputGroupSettingsHlsGroupSettingsHlsCdnSettingsHlsAkamaiSettingsTypeDef = TypedDict(
    "_ClientStopChannelResponseEncoderSettingsOutputGroupsOutputGroupSettingsHlsGroupSettingsHlsCdnSettingsHlsAkamaiSettingsTypeDef",
    {
        "ConnectionRetryInterval": int,
        "FilecacheDuration": int,
        "HttpTransferMode": str,
        "NumRetries": int,
        "RestartDelay": int,
        "Salt": str,
        "Token": str,
    },
    total=False,
)


class ClientStopChannelResponseEncoderSettingsOutputGroupsOutputGroupSettingsHlsGroupSettingsHlsCdnSettingsHlsAkamaiSettingsTypeDef(
    _ClientStopChannelResponseEncoderSettingsOutputGroupsOutputGroupSettingsHlsGroupSettingsHlsCdnSettingsHlsAkamaiSettingsTypeDef
):
    """
    Type definition for
    `ClientStopChannelResponseEncoderSettingsOutputGroupsOutputGroupSettingsHlsGroupSettingsHlsCdnSettings`
    `HlsAkamaiSettings`

    - **ConnectionRetryInterval** *(integer) --* Number of seconds to wait before retrying
    connection to the CDN if the connection is lost.

    - **FilecacheDuration** *(integer) --* Size in seconds of file cache for streaming outputs.

    - **HttpTransferMode** *(string) --* Specify whether or not to use chunked transfer encoding to
    Akamai. User should contact Akamai to enable this feature.

    - **NumRetries** *(integer) --* Number of retry attempts that will be made before the Live Event
    is put into an error state.

    - **RestartDelay** *(integer) --* If a streaming output fails, number of seconds to wait until a
    restart is initiated. A value of 0 means never restart.

    - **Salt** *(string) --* Salt for authenticated Akamai.

    - **Token** *(string) --* Token parameter for authenticated akamai. If not specified, _gda_ is
    used.
    """


_ClientStopChannelResponseEncoderSettingsOutputGroupsOutputGroupSettingsHlsGroupSettingsHlsCdnSettingsHlsBasicPutSettingsTypeDef = TypedDict(
    "_ClientStopChannelResponseEncoderSettingsOutputGroupsOutputGroupSettingsHlsGroupSettingsHlsCdnSettingsHlsBasicPutSettingsTypeDef",
    {
        "ConnectionRetryInterval": int,
        "FilecacheDuration": int,
        "NumRetries": int,
        "RestartDelay": int,
    },
    total=False,
)


class ClientStopChannelResponseEncoderSettingsOutputGroupsOutputGroupSettingsHlsGroupSettingsHlsCdnSettingsHlsBasicPutSettingsTypeDef(
    _ClientStopChannelResponseEncoderSettingsOutputGroupsOutputGroupSettingsHlsGroupSettingsHlsCdnSettingsHlsBasicPutSettingsTypeDef
):
    """
    Type definition for
    `ClientStopChannelResponseEncoderSettingsOutputGroupsOutputGroupSettingsHlsGroupSettingsHlsCdnSettings`
    `HlsBasicPutSettings`

    - **ConnectionRetryInterval** *(integer) --* Number of seconds to wait before retrying
    connection to the CDN if the connection is lost.

    - **FilecacheDuration** *(integer) --* Size in seconds of file cache for streaming outputs.

    - **NumRetries** *(integer) --* Number of retry attempts that will be made before the Live Event
    is put into an error state.

    - **RestartDelay** *(integer) --* If a streaming output fails, number of seconds to wait until a
    restart is initiated. A value of 0 means never restart.
    """


_ClientStopChannelResponseEncoderSettingsOutputGroupsOutputGroupSettingsHlsGroupSettingsHlsCdnSettingsHlsMediaStoreSettingsTypeDef = TypedDict(
    "_ClientStopChannelResponseEncoderSettingsOutputGroupsOutputGroupSettingsHlsGroupSettingsHlsCdnSettingsHlsMediaStoreSettingsTypeDef",
    {
        "ConnectionRetryInterval": int,
        "FilecacheDuration": int,
        "MediaStoreStorageClass": str,
        "NumRetries": int,
        "RestartDelay": int,
    },
    total=False,
)


class ClientStopChannelResponseEncoderSettingsOutputGroupsOutputGroupSettingsHlsGroupSettingsHlsCdnSettingsHlsMediaStoreSettingsTypeDef(
    _ClientStopChannelResponseEncoderSettingsOutputGroupsOutputGroupSettingsHlsGroupSettingsHlsCdnSettingsHlsMediaStoreSettingsTypeDef
):
    """
    Type definition for
    `ClientStopChannelResponseEncoderSettingsOutputGroupsOutputGroupSettingsHlsGroupSettingsHlsCdnSettings`
    `HlsMediaStoreSettings`

    - **ConnectionRetryInterval** *(integer) --* Number of seconds to wait before retrying
    connection to the CDN if the connection is lost.

    - **FilecacheDuration** *(integer) --* Size in seconds of file cache for streaming outputs.

    - **MediaStoreStorageClass** *(string) --* When set to temporal, output files are stored in
    non-persistent memory for faster reading and writing.

    - **NumRetries** *(integer) --* Number of retry attempts that will be made before the Live Event
    is put into an error state.

    - **RestartDelay** *(integer) --* If a streaming output fails, number of seconds to wait until a
    restart is initiated. A value of 0 means never restart.
    """


_ClientStopChannelResponseEncoderSettingsOutputGroupsOutputGroupSettingsHlsGroupSettingsHlsCdnSettingsHlsWebdavSettingsTypeDef = TypedDict(
    "_ClientStopChannelResponseEncoderSettingsOutputGroupsOutputGroupSettingsHlsGroupSettingsHlsCdnSettingsHlsWebdavSettingsTypeDef",
    {
        "ConnectionRetryInterval": int,
        "FilecacheDuration": int,
        "HttpTransferMode": str,
        "NumRetries": int,
        "RestartDelay": int,
    },
    total=False,
)


class ClientStopChannelResponseEncoderSettingsOutputGroupsOutputGroupSettingsHlsGroupSettingsHlsCdnSettingsHlsWebdavSettingsTypeDef(
    _ClientStopChannelResponseEncoderSettingsOutputGroupsOutputGroupSettingsHlsGroupSettingsHlsCdnSettingsHlsWebdavSettingsTypeDef
):
    """
    Type definition for
    `ClientStopChannelResponseEncoderSettingsOutputGroupsOutputGroupSettingsHlsGroupSettingsHlsCdnSettings`
    `HlsWebdavSettings`

    - **ConnectionRetryInterval** *(integer) --* Number of seconds to wait before retrying
    connection to the CDN if the connection is lost.

    - **FilecacheDuration** *(integer) --* Size in seconds of file cache for streaming outputs.

    - **HttpTransferMode** *(string) --* Specify whether or not to use chunked transfer encoding to
    WebDAV.

    - **NumRetries** *(integer) --* Number of retry attempts that will be made before the Live Event
    is put into an error state.

    - **RestartDelay** *(integer) --* If a streaming output fails, number of seconds to wait until a
    restart is initiated. A value of 0 means never restart.
    """


_ClientStopChannelResponseEncoderSettingsOutputGroupsOutputGroupSettingsHlsGroupSettingsHlsCdnSettingsTypeDef = TypedDict(
    "_ClientStopChannelResponseEncoderSettingsOutputGroupsOutputGroupSettingsHlsGroupSettingsHlsCdnSettingsTypeDef",
    {
        "HlsAkamaiSettings": ClientStopChannelResponseEncoderSettingsOutputGroupsOutputGroupSettingsHlsGroupSettingsHlsCdnSettingsHlsAkamaiSettingsTypeDef,
        "HlsBasicPutSettings": ClientStopChannelResponseEncoderSettingsOutputGroupsOutputGroupSettingsHlsGroupSettingsHlsCdnSettingsHlsBasicPutSettingsTypeDef,
        "HlsMediaStoreSettings": ClientStopChannelResponseEncoderSettingsOutputGroupsOutputGroupSettingsHlsGroupSettingsHlsCdnSettingsHlsMediaStoreSettingsTypeDef,
        "HlsWebdavSettings": ClientStopChannelResponseEncoderSettingsOutputGroupsOutputGroupSettingsHlsGroupSettingsHlsCdnSettingsHlsWebdavSettingsTypeDef,
    },
    total=False,
)


class ClientStopChannelResponseEncoderSettingsOutputGroupsOutputGroupSettingsHlsGroupSettingsHlsCdnSettingsTypeDef(
    _ClientStopChannelResponseEncoderSettingsOutputGroupsOutputGroupSettingsHlsGroupSettingsHlsCdnSettingsTypeDef
):
    """
    Type definition for
    `ClientStopChannelResponseEncoderSettingsOutputGroupsOutputGroupSettingsHlsGroupSettings`
    `HlsCdnSettings`

    - **HlsAkamaiSettings** *(dict) --* Hls Akamai Settings

      - **ConnectionRetryInterval** *(integer) --* Number of seconds to wait before retrying
      connection to the CDN if the connection is lost.

      - **FilecacheDuration** *(integer) --* Size in seconds of file cache for streaming outputs.

      - **HttpTransferMode** *(string) --* Specify whether or not to use chunked transfer encoding
      to Akamai. User should contact Akamai to enable this feature.

      - **NumRetries** *(integer) --* Number of retry attempts that will be made before the Live
      Event is put into an error state.

      - **RestartDelay** *(integer) --* If a streaming output fails, number of seconds to wait until
      a restart is initiated. A value of 0 means never restart.

      - **Salt** *(string) --* Salt for authenticated Akamai.

      - **Token** *(string) --* Token parameter for authenticated akamai. If not specified, _gda_ is
      used.

    - **HlsBasicPutSettings** *(dict) --* Hls Basic Put Settings

      - **ConnectionRetryInterval** *(integer) --* Number of seconds to wait before retrying
      connection to the CDN if the connection is lost.

      - **FilecacheDuration** *(integer) --* Size in seconds of file cache for streaming outputs.

      - **NumRetries** *(integer) --* Number of retry attempts that will be made before the Live
      Event is put into an error state.

      - **RestartDelay** *(integer) --* If a streaming output fails, number of seconds to wait until
      a restart is initiated. A value of 0 means never restart.

    - **HlsMediaStoreSettings** *(dict) --* Hls Media Store Settings

      - **ConnectionRetryInterval** *(integer) --* Number of seconds to wait before retrying
      connection to the CDN if the connection is lost.

      - **FilecacheDuration** *(integer) --* Size in seconds of file cache for streaming outputs.

      - **MediaStoreStorageClass** *(string) --* When set to temporal, output files are stored in
      non-persistent memory for faster reading and writing.

      - **NumRetries** *(integer) --* Number of retry attempts that will be made before the Live
      Event is put into an error state.

      - **RestartDelay** *(integer) --* If a streaming output fails, number of seconds to wait until
      a restart is initiated. A value of 0 means never restart.

    - **HlsWebdavSettings** *(dict) --* Hls Webdav Settings

      - **ConnectionRetryInterval** *(integer) --* Number of seconds to wait before retrying
      connection to the CDN if the connection is lost.

      - **FilecacheDuration** *(integer) --* Size in seconds of file cache for streaming outputs.

      - **HttpTransferMode** *(string) --* Specify whether or not to use chunked transfer encoding
      to WebDAV.

      - **NumRetries** *(integer) --* Number of retry attempts that will be made before the Live
      Event is put into an error state.

      - **RestartDelay** *(integer) --* If a streaming output fails, number of seconds to wait until
      a restart is initiated. A value of 0 means never restart.
    """


_ClientStopChannelResponseEncoderSettingsOutputGroupsOutputGroupSettingsHlsGroupSettingsKeyProviderSettingsStaticKeySettingsKeyProviderServerTypeDef = TypedDict(
    "_ClientStopChannelResponseEncoderSettingsOutputGroupsOutputGroupSettingsHlsGroupSettingsKeyProviderSettingsStaticKeySettingsKeyProviderServerTypeDef",
    {"PasswordParam": str, "Uri": str, "Username": str},
    total=False,
)


class ClientStopChannelResponseEncoderSettingsOutputGroupsOutputGroupSettingsHlsGroupSettingsKeyProviderSettingsStaticKeySettingsKeyProviderServerTypeDef(
    _ClientStopChannelResponseEncoderSettingsOutputGroupsOutputGroupSettingsHlsGroupSettingsKeyProviderSettingsStaticKeySettingsKeyProviderServerTypeDef
):
    """
    Type definition for
    `ClientStopChannelResponseEncoderSettingsOutputGroupsOutputGroupSettingsHlsGroupSettingsKeyProviderSettingsStaticKeySettings`
    `KeyProviderServer`

    - **PasswordParam** *(string) --* key used to extract the password from EC2 Parameter store

    - **Uri** *(string) --* Uniform Resource Identifier - This should be a path to a file accessible
    to the Live system (eg. a http:// URI) depending on the output type. For example, a RTMP
    destination should have a uri simliar to: "rtmp://fmsserver/live".

    - **Username** *(string) --* Documentation update needed
    """


_ClientStopChannelResponseEncoderSettingsOutputGroupsOutputGroupSettingsHlsGroupSettingsKeyProviderSettingsStaticKeySettingsTypeDef = TypedDict(
    "_ClientStopChannelResponseEncoderSettingsOutputGroupsOutputGroupSettingsHlsGroupSettingsKeyProviderSettingsStaticKeySettingsTypeDef",
    {
        "KeyProviderServer": ClientStopChannelResponseEncoderSettingsOutputGroupsOutputGroupSettingsHlsGroupSettingsKeyProviderSettingsStaticKeySettingsKeyProviderServerTypeDef,
        "StaticKeyValue": str,
    },
    total=False,
)


class ClientStopChannelResponseEncoderSettingsOutputGroupsOutputGroupSettingsHlsGroupSettingsKeyProviderSettingsStaticKeySettingsTypeDef(
    _ClientStopChannelResponseEncoderSettingsOutputGroupsOutputGroupSettingsHlsGroupSettingsKeyProviderSettingsStaticKeySettingsTypeDef
):
    """
    Type definition for
    `ClientStopChannelResponseEncoderSettingsOutputGroupsOutputGroupSettingsHlsGroupSettingsKeyProviderSettings`
    `StaticKeySettings`

    - **KeyProviderServer** *(dict) --* The URL of the license server used for protecting content.

      - **PasswordParam** *(string) --* key used to extract the password from EC2 Parameter store

      - **Uri** *(string) --* Uniform Resource Identifier - This should be a path to a file
      accessible to the Live system (eg. a http:// URI) depending on the output type. For example, a
      RTMP destination should have a uri simliar to: "rtmp://fmsserver/live".

      - **Username** *(string) --* Documentation update needed

    - **StaticKeyValue** *(string) --* Static key value as a 32 character hexadecimal string.
    """


_ClientStopChannelResponseEncoderSettingsOutputGroupsOutputGroupSettingsHlsGroupSettingsKeyProviderSettingsTypeDef = TypedDict(
    "_ClientStopChannelResponseEncoderSettingsOutputGroupsOutputGroupSettingsHlsGroupSettingsKeyProviderSettingsTypeDef",
    {
        "StaticKeySettings": ClientStopChannelResponseEncoderSettingsOutputGroupsOutputGroupSettingsHlsGroupSettingsKeyProviderSettingsStaticKeySettingsTypeDef
    },
    total=False,
)


class ClientStopChannelResponseEncoderSettingsOutputGroupsOutputGroupSettingsHlsGroupSettingsKeyProviderSettingsTypeDef(
    _ClientStopChannelResponseEncoderSettingsOutputGroupsOutputGroupSettingsHlsGroupSettingsKeyProviderSettingsTypeDef
):
    """
    Type definition for
    `ClientStopChannelResponseEncoderSettingsOutputGroupsOutputGroupSettingsHlsGroupSettings`
    `KeyProviderSettings`

    - **StaticKeySettings** *(dict) --* Static Key Settings

      - **KeyProviderServer** *(dict) --* The URL of the license server used for protecting content.

        - **PasswordParam** *(string) --* key used to extract the password from EC2 Parameter store

        - **Uri** *(string) --* Uniform Resource Identifier - This should be a path to a file
        accessible to the Live system (eg. a http:// URI) depending on the output type. For example,
        a RTMP destination should have a uri simliar to: "rtmp://fmsserver/live".

        - **Username** *(string) --* Documentation update needed

      - **StaticKeyValue** *(string) --* Static key value as a 32 character hexadecimal string.
    """


_ClientStopChannelResponseEncoderSettingsOutputGroupsOutputGroupSettingsHlsGroupSettingsTypeDef = TypedDict(
    "_ClientStopChannelResponseEncoderSettingsOutputGroupsOutputGroupSettingsHlsGroupSettingsTypeDef",
    {
        "AdMarkers": List[str],
        "BaseUrlContent": str,
        "BaseUrlManifest": str,
        "CaptionLanguageMappings": List[
            ClientStopChannelResponseEncoderSettingsOutputGroupsOutputGroupSettingsHlsGroupSettingsCaptionLanguageMappingsTypeDef
        ],
        "CaptionLanguageSetting": str,
        "ClientCache": str,
        "CodecSpecification": str,
        "ConstantIv": str,
        "Destination": ClientStopChannelResponseEncoderSettingsOutputGroupsOutputGroupSettingsHlsGroupSettingsDestinationTypeDef,
        "DirectoryStructure": str,
        "EncryptionType": str,
        "HlsCdnSettings": ClientStopChannelResponseEncoderSettingsOutputGroupsOutputGroupSettingsHlsGroupSettingsHlsCdnSettingsTypeDef,
        "IFrameOnlyPlaylists": str,
        "IndexNSegments": int,
        "InputLossAction": str,
        "IvInManifest": str,
        "IvSource": str,
        "KeepSegments": int,
        "KeyFormat": str,
        "KeyFormatVersions": str,
        "KeyProviderSettings": ClientStopChannelResponseEncoderSettingsOutputGroupsOutputGroupSettingsHlsGroupSettingsKeyProviderSettingsTypeDef,
        "ManifestCompression": str,
        "ManifestDurationFormat": str,
        "MinSegmentLength": int,
        "Mode": str,
        "OutputSelection": str,
        "ProgramDateTime": str,
        "ProgramDateTimePeriod": int,
        "RedundantManifest": str,
        "SegmentLength": int,
        "SegmentationMode": str,
        "SegmentsPerSubdirectory": int,
        "StreamInfResolution": str,
        "TimedMetadataId3Frame": str,
        "TimedMetadataId3Period": int,
        "TimestampDeltaMilliseconds": int,
        "TsFileMode": str,
    },
    total=False,
)


class ClientStopChannelResponseEncoderSettingsOutputGroupsOutputGroupSettingsHlsGroupSettingsTypeDef(
    _ClientStopChannelResponseEncoderSettingsOutputGroupsOutputGroupSettingsHlsGroupSettingsTypeDef
):
    """
    Type definition for `ClientStopChannelResponseEncoderSettingsOutputGroupsOutputGroupSettings`
    `HlsGroupSettings`

    - **AdMarkers** *(list) --* Choose one or more ad marker types to pass SCTE35 signals through to
    this group of Apple HLS outputs.

      - *(string) --* Hls Ad Markers

    - **BaseUrlContent** *(string) --* A partial URI prefix that will be prepended to each output in
    the media .m3u8 file. Can be used if base manifest is delivered from a different URL than the
    main .m3u8 file.

    - **BaseUrlManifest** *(string) --* A partial URI prefix that will be prepended to each output
    in the media .m3u8 file. Can be used if base manifest is delivered from a different URL than the
    main .m3u8 file.

    - **CaptionLanguageMappings** *(list) --* Mapping of up to 4 caption channels to caption
    languages. Is only meaningful if captionLanguageSetting is set to "insert".

      - *(dict) --* Maps a caption channel to an ISO 693-2 language code
      (http://www.loc.gov/standards/iso639-2), with an optional description.

        - **CaptionChannel** *(integer) --* The closed caption channel being described by this
        CaptionLanguageMapping. Each channel mapping must have a unique channel number (maximum of
        4)

        - **LanguageCode** *(string) --* Three character ISO 639-2 language code (see
        http://www.loc.gov/standards/iso639-2)

        - **LanguageDescription** *(string) --* Textual description of language

    - **CaptionLanguageSetting** *(string) --* Applies only to 608 Embedded output captions. insert:
    Include CLOSED-CAPTIONS lines in the manifest. Specify at least one language in the CC1 Language
    Code field. One CLOSED-CAPTION line is added for each Language Code you specify. Make sure to
    specify the languages in the order in which they appear in the original source (if the source is
    embedded format) or the order of the caption selectors (if the source is other than embedded).
    Otherwise, languages in the manifest will not match up properly with the output captions. none:
    Include CLOSED-CAPTIONS=NONE line in the manifest. omit: Omit any CLOSED-CAPTIONS line from the
    manifest.

    - **ClientCache** *(string) --* When set to "disabled", sets the #EXT-X-ALLOW-CACHE:no tag in
    the manifest, which prevents clients from saving media segments for later replay.

    - **CodecSpecification** *(string) --* Specification to use (RFC-6381 or the default RFC-4281)
    during m3u8 playlist generation.

    - **ConstantIv** *(string) --* For use with encryptionType. This is a 128-bit, 16-byte hex value
    represented by a 32-character text string. If ivSource is set to "explicit" then this parameter
    is required and is used as the IV for encryption.

    - **Destination** *(dict) --* A directory or HTTP destination for the HLS segments, manifest
    files, and encryption keys (if enabled).

      - **DestinationRefId** *(string) --* Placeholder documentation for __string

    - **DirectoryStructure** *(string) --* Place segments in subdirectories.

    - **EncryptionType** *(string) --* Encrypts the segments with the given encryption scheme.
    Exclude this parameter if no encryption is desired.

    - **HlsCdnSettings** *(dict) --* Parameters that control interactions with the CDN.

      - **HlsAkamaiSettings** *(dict) --* Hls Akamai Settings

        - **ConnectionRetryInterval** *(integer) --* Number of seconds to wait before retrying
        connection to the CDN if the connection is lost.

        - **FilecacheDuration** *(integer) --* Size in seconds of file cache for streaming outputs.

        - **HttpTransferMode** *(string) --* Specify whether or not to use chunked transfer encoding
        to Akamai. User should contact Akamai to enable this feature.

        - **NumRetries** *(integer) --* Number of retry attempts that will be made before the Live
        Event is put into an error state.

        - **RestartDelay** *(integer) --* If a streaming output fails, number of seconds to wait
        until a restart is initiated. A value of 0 means never restart.

        - **Salt** *(string) --* Salt for authenticated Akamai.

        - **Token** *(string) --* Token parameter for authenticated akamai. If not specified, _gda_
        is used.

      - **HlsBasicPutSettings** *(dict) --* Hls Basic Put Settings

        - **ConnectionRetryInterval** *(integer) --* Number of seconds to wait before retrying
        connection to the CDN if the connection is lost.

        - **FilecacheDuration** *(integer) --* Size in seconds of file cache for streaming outputs.

        - **NumRetries** *(integer) --* Number of retry attempts that will be made before the Live
        Event is put into an error state.

        - **RestartDelay** *(integer) --* If a streaming output fails, number of seconds to wait
        until a restart is initiated. A value of 0 means never restart.

      - **HlsMediaStoreSettings** *(dict) --* Hls Media Store Settings

        - **ConnectionRetryInterval** *(integer) --* Number of seconds to wait before retrying
        connection to the CDN if the connection is lost.

        - **FilecacheDuration** *(integer) --* Size in seconds of file cache for streaming outputs.

        - **MediaStoreStorageClass** *(string) --* When set to temporal, output files are stored in
        non-persistent memory for faster reading and writing.

        - **NumRetries** *(integer) --* Number of retry attempts that will be made before the Live
        Event is put into an error state.

        - **RestartDelay** *(integer) --* If a streaming output fails, number of seconds to wait
        until a restart is initiated. A value of 0 means never restart.

      - **HlsWebdavSettings** *(dict) --* Hls Webdav Settings

        - **ConnectionRetryInterval** *(integer) --* Number of seconds to wait before retrying
        connection to the CDN if the connection is lost.

        - **FilecacheDuration** *(integer) --* Size in seconds of file cache for streaming outputs.

        - **HttpTransferMode** *(string) --* Specify whether or not to use chunked transfer encoding
        to WebDAV.

        - **NumRetries** *(integer) --* Number of retry attempts that will be made before the Live
        Event is put into an error state.

        - **RestartDelay** *(integer) --* If a streaming output fails, number of seconds to wait
        until a restart is initiated. A value of 0 means never restart.

    - **IFrameOnlyPlaylists** *(string) --* DISABLED: Do not create an I-frame-only manifest, but do
    create the master and media manifests (according to the Output Selection field). STANDARD:
    Create an I-frame-only manifest for each output that contains video, as well as the other
    manifests (according to the Output Selection field). The I-frame manifest contains a
    #EXT-X-I-FRAMES-ONLY tag to indicate it is I-frame only, and one or more #EXT-X-BYTERANGE
    entries identifying the I-frame position. For example, #EXT-X-BYTERANGE:160364@1461888"

    - **IndexNSegments** *(integer) --* Applies only if Mode field is LIVE. Specifies the maximum
    number of segments in the media manifest file. After this maximum, older segments are removed
    from the media manifest. This number must be less than or equal to the Keep Segments field.

    - **InputLossAction** *(string) --* Parameter that control output group behavior on input loss.

    - **IvInManifest** *(string) --* For use with encryptionType. The IV (Initialization Vector) is
    a 128-bit number used in conjunction with the key for encrypting blocks. If set to "include", IV
    is listed in the manifest, otherwise the IV is not in the manifest.

    - **IvSource** *(string) --* For use with encryptionType. The IV (Initialization Vector) is a
    128-bit number used in conjunction with the key for encrypting blocks. If this setting is
    "followsSegmentNumber", it will cause the IV to change every segment (to match the segment
    number). If this is set to "explicit", you must enter a constantIv value.

    - **KeepSegments** *(integer) --* Applies only if Mode field is LIVE. Specifies the number of
    media segments (.ts files) to retain in the destination directory.

    - **KeyFormat** *(string) --* The value specifies how the key is represented in the resource
    identified by the URI. If parameter is absent, an implicit value of "identity" is used. A
    reverse DNS string can also be given.

    - **KeyFormatVersions** *(string) --* Either a single positive integer version value or a slash
    delimited list of version values (1/2/3).

    - **KeyProviderSettings** *(dict) --* The key provider settings.

      - **StaticKeySettings** *(dict) --* Static Key Settings

        - **KeyProviderServer** *(dict) --* The URL of the license server used for protecting
        content.

          - **PasswordParam** *(string) --* key used to extract the password from EC2 Parameter
          store

          - **Uri** *(string) --* Uniform Resource Identifier - This should be a path to a file
          accessible to the Live system (eg. a http:// URI) depending on the output type. For
          example, a RTMP destination should have a uri simliar to: "rtmp://fmsserver/live".

          - **Username** *(string) --* Documentation update needed

        - **StaticKeyValue** *(string) --* Static key value as a 32 character hexadecimal string.

    - **ManifestCompression** *(string) --* When set to gzip, compresses HLS playlist.

    - **ManifestDurationFormat** *(string) --* Indicates whether the output manifest should use
    floating point or integer values for segment duration.

    - **MinSegmentLength** *(integer) --* When set, minimumSegmentLength is enforced by looking
    ahead and back within the specified range for a nearby avail and extending the segment size if
    needed.

    - **Mode** *(string) --* If "vod", all segments are indexed and kept permanently in the
    destination and manifest. If "live", only the number segments specified in keepSegments and
    indexNSegments are kept; newer segments replace older segments, which may prevent players from
    rewinding all the way to the beginning of the event. VOD mode uses HLS EXT-X-PLAYLIST-TYPE of
    EVENT while the channel is running, converting it to a "VOD" type manifest on completion of the
    stream.

    - **OutputSelection** *(string) --* MANIFESTSANDSEGMENTS: Generates manifests (master manifest,
    if applicable, and media manifests) for this output group. SEGMENTSONLY: Does not generate any
    manifests for this output group.

    - **ProgramDateTime** *(string) --* Includes or excludes EXT-X-PROGRAM-DATE-TIME tag in .m3u8
    manifest files. The value is calculated as follows: either the program date and time are
    initialized using the input timecode source, or the time is initialized using the input timecode
    source and the date is initialized using the timestampOffset.

    - **ProgramDateTimePeriod** *(integer) --* Period of insertion of EXT-X-PROGRAM-DATE-TIME entry,
    in seconds.

    - **RedundantManifest** *(string) --* ENABLED: The master manifest (.m3u8 file) for each
    pipeline includes information about both pipelines: first its own media files, then the media
    files of the other pipeline. This feature allows playout device that support stale manifest
    detection to switch from one manifest to the other, when the current manifest seems to be stale.
    There are still two destinations and two master manifests, but both master manifests reference
    the media files from both pipelines. DISABLED: The master manifest (.m3u8 file) for each
    pipeline includes information about its own pipeline only. For an HLS output group with
    MediaPackage as the destination, the DISABLED behavior is always followed. MediaPackage
    regenerates the manifests it serves to players so a redundant manifest from MediaLive is
    irrelevant.

    - **SegmentLength** *(integer) --* Length of MPEG-2 Transport Stream segments to create (in
    seconds). Note that segments will end on the next keyframe after this number of seconds, so
    actual segment length may be longer.

    - **SegmentationMode** *(string) --* useInputSegmentation has been deprecated. The configured
    segment size is always used.

    - **SegmentsPerSubdirectory** *(integer) --* Number of segments to write to a subdirectory
    before starting a new one. directoryStructure must be subdirectoryPerStream for this setting to
    have an effect.

    - **StreamInfResolution** *(string) --* Include or exclude RESOLUTION attribute for video in
    EXT-X-STREAM-INF tag of variant manifest.

    - **TimedMetadataId3Frame** *(string) --* Indicates ID3 frame that has the timecode.

    - **TimedMetadataId3Period** *(integer) --* Timed Metadata interval in seconds.

    - **TimestampDeltaMilliseconds** *(integer) --* Provides an extra millisecond delta offset to
    fine tune the timestamps.

    - **TsFileMode** *(string) --* SEGMENTEDFILES: Emit the program as segments - multiple .ts media
    files. SINGLEFILE: Applies only if Mode field is VOD. Emit the program as a single .ts media
    file. The media manifest includes #EXT-X-BYTERANGE tags to index segments for playback. A
    typical use for this value is when sending the output to AWS Elemental MediaConvert, which can
    accept only a single media file. Playback while the channel is running is not guaranteed due to
    HTTP server caching.
    """


_ClientStopChannelResponseEncoderSettingsOutputGroupsOutputGroupSettingsMediaPackageGroupSettingsDestinationTypeDef = TypedDict(
    "_ClientStopChannelResponseEncoderSettingsOutputGroupsOutputGroupSettingsMediaPackageGroupSettingsDestinationTypeDef",
    {"DestinationRefId": str},
    total=False,
)


class ClientStopChannelResponseEncoderSettingsOutputGroupsOutputGroupSettingsMediaPackageGroupSettingsDestinationTypeDef(
    _ClientStopChannelResponseEncoderSettingsOutputGroupsOutputGroupSettingsMediaPackageGroupSettingsDestinationTypeDef
):
    """
    Type definition for
    `ClientStopChannelResponseEncoderSettingsOutputGroupsOutputGroupSettingsMediaPackageGroupSettings`
    `Destination`

    - **DestinationRefId** *(string) --* Placeholder documentation for __string
    """


_ClientStopChannelResponseEncoderSettingsOutputGroupsOutputGroupSettingsMediaPackageGroupSettingsTypeDef = TypedDict(
    "_ClientStopChannelResponseEncoderSettingsOutputGroupsOutputGroupSettingsMediaPackageGroupSettingsTypeDef",
    {
        "Destination": ClientStopChannelResponseEncoderSettingsOutputGroupsOutputGroupSettingsMediaPackageGroupSettingsDestinationTypeDef
    },
    total=False,
)


class ClientStopChannelResponseEncoderSettingsOutputGroupsOutputGroupSettingsMediaPackageGroupSettingsTypeDef(
    _ClientStopChannelResponseEncoderSettingsOutputGroupsOutputGroupSettingsMediaPackageGroupSettingsTypeDef
):
    """
    Type definition for `ClientStopChannelResponseEncoderSettingsOutputGroupsOutputGroupSettings`
    `MediaPackageGroupSettings`

    - **Destination** *(dict) --* MediaPackage channel destination.

      - **DestinationRefId** *(string) --* Placeholder documentation for __string
    """


_ClientStopChannelResponseEncoderSettingsOutputGroupsOutputGroupSettingsMsSmoothGroupSettingsDestinationTypeDef = TypedDict(
    "_ClientStopChannelResponseEncoderSettingsOutputGroupsOutputGroupSettingsMsSmoothGroupSettingsDestinationTypeDef",
    {"DestinationRefId": str},
    total=False,
)


class ClientStopChannelResponseEncoderSettingsOutputGroupsOutputGroupSettingsMsSmoothGroupSettingsDestinationTypeDef(
    _ClientStopChannelResponseEncoderSettingsOutputGroupsOutputGroupSettingsMsSmoothGroupSettingsDestinationTypeDef
):
    """
    Type definition for
    `ClientStopChannelResponseEncoderSettingsOutputGroupsOutputGroupSettingsMsSmoothGroupSettings`
    `Destination`

    - **DestinationRefId** *(string) --* Placeholder documentation for __string
    """


_ClientStopChannelResponseEncoderSettingsOutputGroupsOutputGroupSettingsMsSmoothGroupSettingsTypeDef = TypedDict(
    "_ClientStopChannelResponseEncoderSettingsOutputGroupsOutputGroupSettingsMsSmoothGroupSettingsTypeDef",
    {
        "AcquisitionPointId": str,
        "AudioOnlyTimecodeControl": str,
        "CertificateMode": str,
        "ConnectionRetryInterval": int,
        "Destination": ClientStopChannelResponseEncoderSettingsOutputGroupsOutputGroupSettingsMsSmoothGroupSettingsDestinationTypeDef,
        "EventId": str,
        "EventIdMode": str,
        "EventStopBehavior": str,
        "FilecacheDuration": int,
        "FragmentLength": int,
        "InputLossAction": str,
        "NumRetries": int,
        "RestartDelay": int,
        "SegmentationMode": str,
        "SendDelayMs": int,
        "SparseTrackType": str,
        "StreamManifestBehavior": str,
        "TimestampOffset": str,
        "TimestampOffsetMode": str,
    },
    total=False,
)


class ClientStopChannelResponseEncoderSettingsOutputGroupsOutputGroupSettingsMsSmoothGroupSettingsTypeDef(
    _ClientStopChannelResponseEncoderSettingsOutputGroupsOutputGroupSettingsMsSmoothGroupSettingsTypeDef
):
    """
    Type definition for `ClientStopChannelResponseEncoderSettingsOutputGroupsOutputGroupSettings`
    `MsSmoothGroupSettings`

    - **AcquisitionPointId** *(string) --* The value of the "Acquisition Point Identity" element
    used in each message placed in the sparse track. Only enabled if sparseTrackType is not "none".

    - **AudioOnlyTimecodeControl** *(string) --* If set to passthrough for an audio-only MS Smooth
    output, the fragment absolute time will be set to the current timecode. This option does not
    write timecodes to the audio elementary stream.

    - **CertificateMode** *(string) --* If set to verifyAuthenticity, verify the https certificate
    chain to a trusted Certificate Authority (CA). This will cause https outputs to self-signed
    certificates to fail.

    - **ConnectionRetryInterval** *(integer) --* Number of seconds to wait before retrying
    connection to the IIS server if the connection is lost. Content will be cached during this time
    and the cache will be be delivered to the IIS server once the connection is re-established.

    - **Destination** *(dict) --* Smooth Streaming publish point on an IIS server. Elemental Live
    acts as a "Push" encoder to IIS.

      - **DestinationRefId** *(string) --* Placeholder documentation for __string

    - **EventId** *(string) --* MS Smooth event ID to be sent to the IIS server. Should only be
    specified if eventIdMode is set to useConfigured.

    - **EventIdMode** *(string) --* Specifies whether or not to send an event ID to the IIS server.
    If no event ID is sent and the same Live Event is used without changing the publishing point,
    clients might see cached video from the previous run. Options: - "useConfigured" - use the value
    provided in eventId - "useTimestamp" - generate and send an event ID based on the current
    timestamp - "noEventId" - do not send an event ID to the IIS server.

    - **EventStopBehavior** *(string) --* When set to sendEos, send EOS signal to IIS server when
    stopping the event

    - **FilecacheDuration** *(integer) --* Size in seconds of file cache for streaming outputs.

    - **FragmentLength** *(integer) --* Length of mp4 fragments to generate (in seconds). Fragment
    length must be compatible with GOP size and framerate.

    - **InputLossAction** *(string) --* Parameter that control output group behavior on input loss.

    - **NumRetries** *(integer) --* Number of retry attempts.

    - **RestartDelay** *(integer) --* Number of seconds before initiating a restart due to output
    failure, due to exhausting the numRetries on one segment, or exceeding filecacheDuration.

    - **SegmentationMode** *(string) --* useInputSegmentation has been deprecated. The configured
    segment size is always used.

    - **SendDelayMs** *(integer) --* Number of milliseconds to delay the output from the second
    pipeline.

    - **SparseTrackType** *(string) --* If set to scte35, use incoming SCTE-35 messages to generate
    a sparse track in this group of MS-Smooth outputs.

    - **StreamManifestBehavior** *(string) --* When set to send, send stream manifest so publishing
    point doesn't start until all streams start.

    - **TimestampOffset** *(string) --* Timestamp offset for the event. Only used if
    timestampOffsetMode is set to useConfiguredOffset.

    - **TimestampOffsetMode** *(string) --* Type of timestamp date offset to use. -
    useEventStartDate: Use the date the event was started as the offset - useConfiguredOffset: Use
    an explicitly configured date as the offset
    """


_ClientStopChannelResponseEncoderSettingsOutputGroupsOutputGroupSettingsRtmpGroupSettingsTypeDef = TypedDict(
    "_ClientStopChannelResponseEncoderSettingsOutputGroupsOutputGroupSettingsRtmpGroupSettingsTypeDef",
    {
        "AuthenticationScheme": str,
        "CacheFullBehavior": str,
        "CacheLength": int,
        "CaptionData": str,
        "InputLossAction": str,
        "RestartDelay": int,
    },
    total=False,
)


class ClientStopChannelResponseEncoderSettingsOutputGroupsOutputGroupSettingsRtmpGroupSettingsTypeDef(
    _ClientStopChannelResponseEncoderSettingsOutputGroupsOutputGroupSettingsRtmpGroupSettingsTypeDef
):
    """
    Type definition for `ClientStopChannelResponseEncoderSettingsOutputGroupsOutputGroupSettings`
    `RtmpGroupSettings`

    - **AuthenticationScheme** *(string) --* Authentication scheme to use when connecting with CDN

    - **CacheFullBehavior** *(string) --* Controls behavior when content cache fills up. If remote
    origin server stalls the RTMP connection and does not accept content fast enough the 'Media
    Cache' will fill up. When the cache reaches the duration specified by cacheLength the cache will
    stop accepting new content. If set to disconnectImmediately, the RTMP output will force a
    disconnect. Clear the media cache, and reconnect after restartDelay seconds. If set to
    waitForServer, the RTMP output will wait up to 5 minutes to allow the origin server to begin
    accepting data again.

    - **CacheLength** *(integer) --* Cache length, in seconds, is used to calculate buffer size.

    - **CaptionData** *(string) --* Controls the types of data that passes to onCaptionInfo outputs.
    If set to 'all' then 608 and 708 carried DTVCC data will be passed. If set to
    'field1AndField2608' then DTVCC data will be stripped out, but 608 data from both fields will be
    passed. If set to 'field1608' then only the data carried in 608 from field 1 video will be
    passed.

    - **InputLossAction** *(string) --* Controls the behavior of this RTMP group if input becomes
    unavailable. - emitOutput: Emit a slate until input returns. - pauseOutput: Stop transmitting
    data until input returns. This does not close the underlying RTMP connection.

    - **RestartDelay** *(integer) --* If a streaming output fails, number of seconds to wait until a
    restart is initiated. A value of 0 means never restart.
    """


_ClientStopChannelResponseEncoderSettingsOutputGroupsOutputGroupSettingsUdpGroupSettingsTypeDef = TypedDict(
    "_ClientStopChannelResponseEncoderSettingsOutputGroupsOutputGroupSettingsUdpGroupSettingsTypeDef",
    {"InputLossAction": str, "TimedMetadataId3Frame": str, "TimedMetadataId3Period": int},
    total=False,
)


class ClientStopChannelResponseEncoderSettingsOutputGroupsOutputGroupSettingsUdpGroupSettingsTypeDef(
    _ClientStopChannelResponseEncoderSettingsOutputGroupsOutputGroupSettingsUdpGroupSettingsTypeDef
):
    """
    Type definition for `ClientStopChannelResponseEncoderSettingsOutputGroupsOutputGroupSettings`
    `UdpGroupSettings`

    - **InputLossAction** *(string) --* Specifies behavior of last resort when input video is lost,
    and no more backup inputs are available. When dropTs is selected the entire transport stream
    will stop being emitted. When dropProgram is selected the program can be dropped from the
    transport stream (and replaced with null packets to meet the TS bitrate requirement). Or, when
    emitProgram is chosen the transport stream will continue to be produced normally with repeat
    frames, black frames, or slate frames substituted for the absent input video.

    - **TimedMetadataId3Frame** *(string) --* Indicates ID3 frame that has the timecode.

    - **TimedMetadataId3Period** *(integer) --* Timed Metadata interval in seconds.
    """


_ClientStopChannelResponseEncoderSettingsOutputGroupsOutputGroupSettingsTypeDef = TypedDict(
    "_ClientStopChannelResponseEncoderSettingsOutputGroupsOutputGroupSettingsTypeDef",
    {
        "ArchiveGroupSettings": ClientStopChannelResponseEncoderSettingsOutputGroupsOutputGroupSettingsArchiveGroupSettingsTypeDef,
        "FrameCaptureGroupSettings": ClientStopChannelResponseEncoderSettingsOutputGroupsOutputGroupSettingsFrameCaptureGroupSettingsTypeDef,
        "HlsGroupSettings": ClientStopChannelResponseEncoderSettingsOutputGroupsOutputGroupSettingsHlsGroupSettingsTypeDef,
        "MediaPackageGroupSettings": ClientStopChannelResponseEncoderSettingsOutputGroupsOutputGroupSettingsMediaPackageGroupSettingsTypeDef,
        "MsSmoothGroupSettings": ClientStopChannelResponseEncoderSettingsOutputGroupsOutputGroupSettingsMsSmoothGroupSettingsTypeDef,
        "MultiplexGroupSettings": Dict,
        "RtmpGroupSettings": ClientStopChannelResponseEncoderSettingsOutputGroupsOutputGroupSettingsRtmpGroupSettingsTypeDef,
        "UdpGroupSettings": ClientStopChannelResponseEncoderSettingsOutputGroupsOutputGroupSettingsUdpGroupSettingsTypeDef,
    },
    total=False,
)


class ClientStopChannelResponseEncoderSettingsOutputGroupsOutputGroupSettingsTypeDef(
    _ClientStopChannelResponseEncoderSettingsOutputGroupsOutputGroupSettingsTypeDef
):
    """
    Type definition for `ClientStopChannelResponseEncoderSettingsOutputGroups` `OutputGroupSettings`

    - **ArchiveGroupSettings** *(dict) --* Archive Group Settings

      - **Destination** *(dict) --* A directory and base filename where archive files should be
      written.

        - **DestinationRefId** *(string) --* Placeholder documentation for __string

      - **RolloverInterval** *(integer) --* Number of seconds to write to archive file before
      closing and starting a new one.

    - **FrameCaptureGroupSettings** *(dict) --* Frame Capture Group Settings

      - **Destination** *(dict) --* The destination for the frame capture files. Either the URI for
      an Amazon S3 bucket and object, plus a file name prefix (for example,
      s3ssl://sportsDelivery/highlights/20180820/curling_) or the URI for a MediaStore container,
      plus a file name prefix (for example, mediastoressl://sportsDelivery/20180820/curling_). The
      final file names consist of the prefix from the destination field (for example, "curling_") +
      name modifier + the counter (5 digits, starting from 00001) + extension (which is always
      .jpg). For example, curlingLow.00001.jpg

        - **DestinationRefId** *(string) --* Placeholder documentation for __string

    - **HlsGroupSettings** *(dict) --* Hls Group Settings

      - **AdMarkers** *(list) --* Choose one or more ad marker types to pass SCTE35 signals through
      to this group of Apple HLS outputs.

        - *(string) --* Hls Ad Markers

      - **BaseUrlContent** *(string) --* A partial URI prefix that will be prepended to each output
      in the media .m3u8 file. Can be used if base manifest is delivered from a different URL than
      the main .m3u8 file.

      - **BaseUrlManifest** *(string) --* A partial URI prefix that will be prepended to each output
      in the media .m3u8 file. Can be used if base manifest is delivered from a different URL than
      the main .m3u8 file.

      - **CaptionLanguageMappings** *(list) --* Mapping of up to 4 caption channels to caption
      languages. Is only meaningful if captionLanguageSetting is set to "insert".

        - *(dict) --* Maps a caption channel to an ISO 693-2 language code
        (http://www.loc.gov/standards/iso639-2), with an optional description.

          - **CaptionChannel** *(integer) --* The closed caption channel being described by this
          CaptionLanguageMapping. Each channel mapping must have a unique channel number (maximum of
          4)

          - **LanguageCode** *(string) --* Three character ISO 639-2 language code (see
          http://www.loc.gov/standards/iso639-2)

          - **LanguageDescription** *(string) --* Textual description of language

      - **CaptionLanguageSetting** *(string) --* Applies only to 608 Embedded output captions.
      insert: Include CLOSED-CAPTIONS lines in the manifest. Specify at least one language in the
      CC1 Language Code field. One CLOSED-CAPTION line is added for each Language Code you specify.
      Make sure to specify the languages in the order in which they appear in the original source
      (if the source is embedded format) or the order of the caption selectors (if the source is
      other than embedded). Otherwise, languages in the manifest will not match up properly with the
      output captions. none: Include CLOSED-CAPTIONS=NONE line in the manifest. omit: Omit any
      CLOSED-CAPTIONS line from the manifest.

      - **ClientCache** *(string) --* When set to "disabled", sets the #EXT-X-ALLOW-CACHE:no tag in
      the manifest, which prevents clients from saving media segments for later replay.

      - **CodecSpecification** *(string) --* Specification to use (RFC-6381 or the default RFC-4281)
      during m3u8 playlist generation.

      - **ConstantIv** *(string) --* For use with encryptionType. This is a 128-bit, 16-byte hex
      value represented by a 32-character text string. If ivSource is set to "explicit" then this
      parameter is required and is used as the IV for encryption.

      - **Destination** *(dict) --* A directory or HTTP destination for the HLS segments, manifest
      files, and encryption keys (if enabled).

        - **DestinationRefId** *(string) --* Placeholder documentation for __string

      - **DirectoryStructure** *(string) --* Place segments in subdirectories.

      - **EncryptionType** *(string) --* Encrypts the segments with the given encryption scheme.
      Exclude this parameter if no encryption is desired.

      - **HlsCdnSettings** *(dict) --* Parameters that control interactions with the CDN.

        - **HlsAkamaiSettings** *(dict) --* Hls Akamai Settings

          - **ConnectionRetryInterval** *(integer) --* Number of seconds to wait before retrying
          connection to the CDN if the connection is lost.

          - **FilecacheDuration** *(integer) --* Size in seconds of file cache for streaming
          outputs.

          - **HttpTransferMode** *(string) --* Specify whether or not to use chunked transfer
          encoding to Akamai. User should contact Akamai to enable this feature.

          - **NumRetries** *(integer) --* Number of retry attempts that will be made before the Live
          Event is put into an error state.

          - **RestartDelay** *(integer) --* If a streaming output fails, number of seconds to wait
          until a restart is initiated. A value of 0 means never restart.

          - **Salt** *(string) --* Salt for authenticated Akamai.

          - **Token** *(string) --* Token parameter for authenticated akamai. If not specified,
          _gda_ is used.

        - **HlsBasicPutSettings** *(dict) --* Hls Basic Put Settings

          - **ConnectionRetryInterval** *(integer) --* Number of seconds to wait before retrying
          connection to the CDN if the connection is lost.

          - **FilecacheDuration** *(integer) --* Size in seconds of file cache for streaming
          outputs.

          - **NumRetries** *(integer) --* Number of retry attempts that will be made before the Live
          Event is put into an error state.

          - **RestartDelay** *(integer) --* If a streaming output fails, number of seconds to wait
          until a restart is initiated. A value of 0 means never restart.

        - **HlsMediaStoreSettings** *(dict) --* Hls Media Store Settings

          - **ConnectionRetryInterval** *(integer) --* Number of seconds to wait before retrying
          connection to the CDN if the connection is lost.

          - **FilecacheDuration** *(integer) --* Size in seconds of file cache for streaming
          outputs.

          - **MediaStoreStorageClass** *(string) --* When set to temporal, output files are stored
          in non-persistent memory for faster reading and writing.

          - **NumRetries** *(integer) --* Number of retry attempts that will be made before the Live
          Event is put into an error state.

          - **RestartDelay** *(integer) --* If a streaming output fails, number of seconds to wait
          until a restart is initiated. A value of 0 means never restart.

        - **HlsWebdavSettings** *(dict) --* Hls Webdav Settings

          - **ConnectionRetryInterval** *(integer) --* Number of seconds to wait before retrying
          connection to the CDN if the connection is lost.

          - **FilecacheDuration** *(integer) --* Size in seconds of file cache for streaming
          outputs.

          - **HttpTransferMode** *(string) --* Specify whether or not to use chunked transfer
          encoding to WebDAV.

          - **NumRetries** *(integer) --* Number of retry attempts that will be made before the Live
          Event is put into an error state.

          - **RestartDelay** *(integer) --* If a streaming output fails, number of seconds to wait
          until a restart is initiated. A value of 0 means never restart.

      - **IFrameOnlyPlaylists** *(string) --* DISABLED: Do not create an I-frame-only manifest, but
      do create the master and media manifests (according to the Output Selection field). STANDARD:
      Create an I-frame-only manifest for each output that contains video, as well as the other
      manifests (according to the Output Selection field). The I-frame manifest contains a
      #EXT-X-I-FRAMES-ONLY tag to indicate it is I-frame only, and one or more #EXT-X-BYTERANGE
      entries identifying the I-frame position. For example, #EXT-X-BYTERANGE:160364@1461888"

      - **IndexNSegments** *(integer) --* Applies only if Mode field is LIVE. Specifies the maximum
      number of segments in the media manifest file. After this maximum, older segments are removed
      from the media manifest. This number must be less than or equal to the Keep Segments field.

      - **InputLossAction** *(string) --* Parameter that control output group behavior on input
      loss.

      - **IvInManifest** *(string) --* For use with encryptionType. The IV (Initialization Vector)
      is a 128-bit number used in conjunction with the key for encrypting blocks. If set to
      "include", IV is listed in the manifest, otherwise the IV is not in the manifest.

      - **IvSource** *(string) --* For use with encryptionType. The IV (Initialization Vector) is a
      128-bit number used in conjunction with the key for encrypting blocks. If this setting is
      "followsSegmentNumber", it will cause the IV to change every segment (to match the segment
      number). If this is set to "explicit", you must enter a constantIv value.

      - **KeepSegments** *(integer) --* Applies only if Mode field is LIVE. Specifies the number of
      media segments (.ts files) to retain in the destination directory.

      - **KeyFormat** *(string) --* The value specifies how the key is represented in the resource
      identified by the URI. If parameter is absent, an implicit value of "identity" is used. A
      reverse DNS string can also be given.

      - **KeyFormatVersions** *(string) --* Either a single positive integer version value or a
      slash delimited list of version values (1/2/3).

      - **KeyProviderSettings** *(dict) --* The key provider settings.

        - **StaticKeySettings** *(dict) --* Static Key Settings

          - **KeyProviderServer** *(dict) --* The URL of the license server used for protecting
          content.

            - **PasswordParam** *(string) --* key used to extract the password from EC2 Parameter
            store

            - **Uri** *(string) --* Uniform Resource Identifier - This should be a path to a file
            accessible to the Live system (eg. a http:// URI) depending on the output type. For
            example, a RTMP destination should have a uri simliar to: "rtmp://fmsserver/live".

            - **Username** *(string) --* Documentation update needed

          - **StaticKeyValue** *(string) --* Static key value as a 32 character hexadecimal string.

      - **ManifestCompression** *(string) --* When set to gzip, compresses HLS playlist.

      - **ManifestDurationFormat** *(string) --* Indicates whether the output manifest should use
      floating point or integer values for segment duration.

      - **MinSegmentLength** *(integer) --* When set, minimumSegmentLength is enforced by looking
      ahead and back within the specified range for a nearby avail and extending the segment size if
      needed.

      - **Mode** *(string) --* If "vod", all segments are indexed and kept permanently in the
      destination and manifest. If "live", only the number segments specified in keepSegments and
      indexNSegments are kept; newer segments replace older segments, which may prevent players from
      rewinding all the way to the beginning of the event. VOD mode uses HLS EXT-X-PLAYLIST-TYPE of
      EVENT while the channel is running, converting it to a "VOD" type manifest on completion of
      the stream.

      - **OutputSelection** *(string) --* MANIFESTSANDSEGMENTS: Generates manifests (master
      manifest, if applicable, and media manifests) for this output group. SEGMENTSONLY: Does not
      generate any manifests for this output group.

      - **ProgramDateTime** *(string) --* Includes or excludes EXT-X-PROGRAM-DATE-TIME tag in .m3u8
      manifest files. The value is calculated as follows: either the program date and time are
      initialized using the input timecode source, or the time is initialized using the input
      timecode source and the date is initialized using the timestampOffset.

      - **ProgramDateTimePeriod** *(integer) --* Period of insertion of EXT-X-PROGRAM-DATE-TIME
      entry, in seconds.

      - **RedundantManifest** *(string) --* ENABLED: The master manifest (.m3u8 file) for each
      pipeline includes information about both pipelines: first its own media files, then the media
      files of the other pipeline. This feature allows playout device that support stale manifest
      detection to switch from one manifest to the other, when the current manifest seems to be
      stale. There are still two destinations and two master manifests, but both master manifests
      reference the media files from both pipelines. DISABLED: The master manifest (.m3u8 file) for
      each pipeline includes information about its own pipeline only. For an HLS output group with
      MediaPackage as the destination, the DISABLED behavior is always followed. MediaPackage
      regenerates the manifests it serves to players so a redundant manifest from MediaLive is
      irrelevant.

      - **SegmentLength** *(integer) --* Length of MPEG-2 Transport Stream segments to create (in
      seconds). Note that segments will end on the next keyframe after this number of seconds, so
      actual segment length may be longer.

      - **SegmentationMode** *(string) --* useInputSegmentation has been deprecated. The configured
      segment size is always used.

      - **SegmentsPerSubdirectory** *(integer) --* Number of segments to write to a subdirectory
      before starting a new one. directoryStructure must be subdirectoryPerStream for this setting
      to have an effect.

      - **StreamInfResolution** *(string) --* Include or exclude RESOLUTION attribute for video in
      EXT-X-STREAM-INF tag of variant manifest.

      - **TimedMetadataId3Frame** *(string) --* Indicates ID3 frame that has the timecode.

      - **TimedMetadataId3Period** *(integer) --* Timed Metadata interval in seconds.

      - **TimestampDeltaMilliseconds** *(integer) --* Provides an extra millisecond delta offset to
      fine tune the timestamps.

      - **TsFileMode** *(string) --* SEGMENTEDFILES: Emit the program as segments - multiple .ts
      media files. SINGLEFILE: Applies only if Mode field is VOD. Emit the program as a single .ts
      media file. The media manifest includes #EXT-X-BYTERANGE tags to index segments for playback.
      A typical use for this value is when sending the output to AWS Elemental MediaConvert, which
      can accept only a single media file. Playback while the channel is running is not guaranteed
      due to HTTP server caching.

    - **MediaPackageGroupSettings** *(dict) --* Media Package Group Settings

      - **Destination** *(dict) --* MediaPackage channel destination.

        - **DestinationRefId** *(string) --* Placeholder documentation for __string

    - **MsSmoothGroupSettings** *(dict) --* Ms Smooth Group Settings

      - **AcquisitionPointId** *(string) --* The value of the "Acquisition Point Identity" element
      used in each message placed in the sparse track. Only enabled if sparseTrackType is not
      "none".

      - **AudioOnlyTimecodeControl** *(string) --* If set to passthrough for an audio-only MS Smooth
      output, the fragment absolute time will be set to the current timecode. This option does not
      write timecodes to the audio elementary stream.

      - **CertificateMode** *(string) --* If set to verifyAuthenticity, verify the https certificate
      chain to a trusted Certificate Authority (CA). This will cause https outputs to self-signed
      certificates to fail.

      - **ConnectionRetryInterval** *(integer) --* Number of seconds to wait before retrying
      connection to the IIS server if the connection is lost. Content will be cached during this
      time and the cache will be be delivered to the IIS server once the connection is
      re-established.

      - **Destination** *(dict) --* Smooth Streaming publish point on an IIS server. Elemental Live
      acts as a "Push" encoder to IIS.

        - **DestinationRefId** *(string) --* Placeholder documentation for __string

      - **EventId** *(string) --* MS Smooth event ID to be sent to the IIS server. Should only be
      specified if eventIdMode is set to useConfigured.

      - **EventIdMode** *(string) --* Specifies whether or not to send an event ID to the IIS
      server. If no event ID is sent and the same Live Event is used without changing the publishing
      point, clients might see cached video from the previous run. Options: - "useConfigured" - use
      the value provided in eventId - "useTimestamp" - generate and send an event ID based on the
      current timestamp - "noEventId" - do not send an event ID to the IIS server.

      - **EventStopBehavior** *(string) --* When set to sendEos, send EOS signal to IIS server when
      stopping the event

      - **FilecacheDuration** *(integer) --* Size in seconds of file cache for streaming outputs.

      - **FragmentLength** *(integer) --* Length of mp4 fragments to generate (in seconds). Fragment
      length must be compatible with GOP size and framerate.

      - **InputLossAction** *(string) --* Parameter that control output group behavior on input
      loss.

      - **NumRetries** *(integer) --* Number of retry attempts.

      - **RestartDelay** *(integer) --* Number of seconds before initiating a restart due to output
      failure, due to exhausting the numRetries on one segment, or exceeding filecacheDuration.

      - **SegmentationMode** *(string) --* useInputSegmentation has been deprecated. The configured
      segment size is always used.

      - **SendDelayMs** *(integer) --* Number of milliseconds to delay the output from the second
      pipeline.

      - **SparseTrackType** *(string) --* If set to scte35, use incoming SCTE-35 messages to
      generate a sparse track in this group of MS-Smooth outputs.

      - **StreamManifestBehavior** *(string) --* When set to send, send stream manifest so
      publishing point doesn't start until all streams start.

      - **TimestampOffset** *(string) --* Timestamp offset for the event. Only used if
      timestampOffsetMode is set to useConfiguredOffset.

      - **TimestampOffsetMode** *(string) --* Type of timestamp date offset to use. -
      useEventStartDate: Use the date the event was started as the offset - useConfiguredOffset: Use
      an explicitly configured date as the offset

    - **MultiplexGroupSettings** *(dict) --* Multiplex Group Settings

    - **RtmpGroupSettings** *(dict) --* Rtmp Group Settings

      - **AuthenticationScheme** *(string) --* Authentication scheme to use when connecting with CDN

      - **CacheFullBehavior** *(string) --* Controls behavior when content cache fills up. If remote
      origin server stalls the RTMP connection and does not accept content fast enough the 'Media
      Cache' will fill up. When the cache reaches the duration specified by cacheLength the cache
      will stop accepting new content. If set to disconnectImmediately, the RTMP output will force a
      disconnect. Clear the media cache, and reconnect after restartDelay seconds. If set to
      waitForServer, the RTMP output will wait up to 5 minutes to allow the origin server to begin
      accepting data again.

      - **CacheLength** *(integer) --* Cache length, in seconds, is used to calculate buffer size.

      - **CaptionData** *(string) --* Controls the types of data that passes to onCaptionInfo
      outputs. If set to 'all' then 608 and 708 carried DTVCC data will be passed. If set to
      'field1AndField2608' then DTVCC data will be stripped out, but 608 data from both fields will
      be passed. If set to 'field1608' then only the data carried in 608 from field 1 video will be
      passed.

      - **InputLossAction** *(string) --* Controls the behavior of this RTMP group if input becomes
      unavailable. - emitOutput: Emit a slate until input returns. - pauseOutput: Stop transmitting
      data until input returns. This does not close the underlying RTMP connection.

      - **RestartDelay** *(integer) --* If a streaming output fails, number of seconds to wait until
      a restart is initiated. A value of 0 means never restart.

    - **UdpGroupSettings** *(dict) --* Udp Group Settings

      - **InputLossAction** *(string) --* Specifies behavior of last resort when input video is
      lost, and no more backup inputs are available. When dropTs is selected the entire transport
      stream will stop being emitted. When dropProgram is selected the program can be dropped from
      the transport stream (and replaced with null packets to meet the TS bitrate requirement). Or,
      when emitProgram is chosen the transport stream will continue to be produced normally with
      repeat frames, black frames, or slate frames substituted for the absent input video.

      - **TimedMetadataId3Frame** *(string) --* Indicates ID3 frame that has the timecode.

      - **TimedMetadataId3Period** *(integer) --* Timed Metadata interval in seconds.
    """


_ClientStopChannelResponseEncoderSettingsOutputGroupsOutputsOutputSettingsArchiveOutputSettingsContainerSettingsM2tsSettingsDvbNitSettingsTypeDef = TypedDict(
    "_ClientStopChannelResponseEncoderSettingsOutputGroupsOutputsOutputSettingsArchiveOutputSettingsContainerSettingsM2tsSettingsDvbNitSettingsTypeDef",
    {"NetworkId": int, "NetworkName": str, "RepInterval": int},
    total=False,
)


class ClientStopChannelResponseEncoderSettingsOutputGroupsOutputsOutputSettingsArchiveOutputSettingsContainerSettingsM2tsSettingsDvbNitSettingsTypeDef(
    _ClientStopChannelResponseEncoderSettingsOutputGroupsOutputsOutputSettingsArchiveOutputSettingsContainerSettingsM2tsSettingsDvbNitSettingsTypeDef
):
    """
    Type definition for
    `ClientStopChannelResponseEncoderSettingsOutputGroupsOutputsOutputSettingsArchiveOutputSettingsContainerSettingsM2tsSettings`
    `DvbNitSettings`

    - **NetworkId** *(integer) --* The numeric value placed in the Network Information Table (NIT).

    - **NetworkName** *(string) --* The network name text placed in the networkNameDescriptor inside
    the Network Information Table. Maximum length is 256 characters.

    - **RepInterval** *(integer) --* The number of milliseconds between instances of this table in
    the output transport stream.
    """


_ClientStopChannelResponseEncoderSettingsOutputGroupsOutputsOutputSettingsArchiveOutputSettingsContainerSettingsM2tsSettingsDvbSdtSettingsTypeDef = TypedDict(
    "_ClientStopChannelResponseEncoderSettingsOutputGroupsOutputsOutputSettingsArchiveOutputSettingsContainerSettingsM2tsSettingsDvbSdtSettingsTypeDef",
    {"OutputSdt": str, "RepInterval": int, "ServiceName": str, "ServiceProviderName": str},
    total=False,
)


class ClientStopChannelResponseEncoderSettingsOutputGroupsOutputsOutputSettingsArchiveOutputSettingsContainerSettingsM2tsSettingsDvbSdtSettingsTypeDef(
    _ClientStopChannelResponseEncoderSettingsOutputGroupsOutputsOutputSettingsArchiveOutputSettingsContainerSettingsM2tsSettingsDvbSdtSettingsTypeDef
):
    """
    Type definition for
    `ClientStopChannelResponseEncoderSettingsOutputGroupsOutputsOutputSettingsArchiveOutputSettingsContainerSettingsM2tsSettings`
    `DvbSdtSettings`

    - **OutputSdt** *(string) --* Selects method of inserting SDT information into output stream.
    The sdtFollow setting copies SDT information from input stream to output stream. The
    sdtFollowIfPresent setting copies SDT information from input stream to output stream if SDT
    information is present in the input, otherwise it will fall back on the user-defined values. The
    sdtManual setting means user will enter the SDT information. The sdtNone setting means output
    stream will not contain SDT information.

    - **RepInterval** *(integer) --* The number of milliseconds between instances of this table in
    the output transport stream.

    - **ServiceName** *(string) --* The service name placed in the serviceDescriptor in the Service
    Description Table. Maximum length is 256 characters.

    - **ServiceProviderName** *(string) --* The service provider name placed in the
    serviceDescriptor in the Service Description Table. Maximum length is 256 characters.
    """


_ClientStopChannelResponseEncoderSettingsOutputGroupsOutputsOutputSettingsArchiveOutputSettingsContainerSettingsM2tsSettingsDvbTdtSettingsTypeDef = TypedDict(
    "_ClientStopChannelResponseEncoderSettingsOutputGroupsOutputsOutputSettingsArchiveOutputSettingsContainerSettingsM2tsSettingsDvbTdtSettingsTypeDef",
    {"RepInterval": int},
    total=False,
)


class ClientStopChannelResponseEncoderSettingsOutputGroupsOutputsOutputSettingsArchiveOutputSettingsContainerSettingsM2tsSettingsDvbTdtSettingsTypeDef(
    _ClientStopChannelResponseEncoderSettingsOutputGroupsOutputsOutputSettingsArchiveOutputSettingsContainerSettingsM2tsSettingsDvbTdtSettingsTypeDef
):
    """
    Type definition for
    `ClientStopChannelResponseEncoderSettingsOutputGroupsOutputsOutputSettingsArchiveOutputSettingsContainerSettingsM2tsSettings`
    `DvbTdtSettings`

    - **RepInterval** *(integer) --* The number of milliseconds between instances of this table in
    the output transport stream.
    """


_ClientStopChannelResponseEncoderSettingsOutputGroupsOutputsOutputSettingsArchiveOutputSettingsContainerSettingsM2tsSettingsTypeDef = TypedDict(
    "_ClientStopChannelResponseEncoderSettingsOutputGroupsOutputsOutputSettingsArchiveOutputSettingsContainerSettingsM2tsSettingsTypeDef",
    {
        "AbsentInputAudioBehavior": str,
        "Arib": str,
        "AribCaptionsPid": str,
        "AribCaptionsPidControl": str,
        "AudioBufferModel": str,
        "AudioFramesPerPes": int,
        "AudioPids": str,
        "AudioStreamType": str,
        "Bitrate": int,
        "BufferModel": str,
        "CcDescriptor": str,
        "DvbNitSettings": ClientStopChannelResponseEncoderSettingsOutputGroupsOutputsOutputSettingsArchiveOutputSettingsContainerSettingsM2tsSettingsDvbNitSettingsTypeDef,
        "DvbSdtSettings": ClientStopChannelResponseEncoderSettingsOutputGroupsOutputsOutputSettingsArchiveOutputSettingsContainerSettingsM2tsSettingsDvbSdtSettingsTypeDef,
        "DvbSubPids": str,
        "DvbTdtSettings": ClientStopChannelResponseEncoderSettingsOutputGroupsOutputsOutputSettingsArchiveOutputSettingsContainerSettingsM2tsSettingsDvbTdtSettingsTypeDef,
        "DvbTeletextPid": str,
        "Ebif": str,
        "EbpAudioInterval": str,
        "EbpLookaheadMs": int,
        "EbpPlacement": str,
        "EcmPid": str,
        "EsRateInPes": str,
        "EtvPlatformPid": str,
        "EtvSignalPid": str,
        "FragmentTime": float,
        "Klv": str,
        "KlvDataPids": str,
        "NielsenId3Behavior": str,
        "NullPacketBitrate": float,
        "PatInterval": int,
        "PcrControl": str,
        "PcrPeriod": int,
        "PcrPid": str,
        "PmtInterval": int,
        "PmtPid": str,
        "ProgramNum": int,
        "RateMode": str,
        "Scte27Pids": str,
        "Scte35Control": str,
        "Scte35Pid": str,
        "SegmentationMarkers": str,
        "SegmentationStyle": str,
        "SegmentationTime": float,
        "TimedMetadataBehavior": str,
        "TimedMetadataPid": str,
        "TransportStreamId": int,
        "VideoPid": str,
    },
    total=False,
)


class ClientStopChannelResponseEncoderSettingsOutputGroupsOutputsOutputSettingsArchiveOutputSettingsContainerSettingsM2tsSettingsTypeDef(
    _ClientStopChannelResponseEncoderSettingsOutputGroupsOutputsOutputSettingsArchiveOutputSettingsContainerSettingsM2tsSettingsTypeDef
):
    """
    Type definition for
    `ClientStopChannelResponseEncoderSettingsOutputGroupsOutputsOutputSettingsArchiveOutputSettingsContainerSettings`
    `M2tsSettings`

    - **AbsentInputAudioBehavior** *(string) --* When set to drop, output audio streams will be
    removed from the program if the selected input audio stream is removed from the input. This
    allows the output audio configuration to dynamically change based on input configuration. If
    this is set to encodeSilence, all output audio streams will output encoded silence when not
    connected to an active input stream.

    - **Arib** *(string) --* When set to enabled, uses ARIB-compliant field muxing and removes video
    descriptor.

    - **AribCaptionsPid** *(string) --* Packet Identifier (PID) for ARIB Captions in the transport
    stream. Can be entered as a decimal or hexadecimal value. Valid values are 32 (or 0x20)..8182
    (or 0x1ff6).

    - **AribCaptionsPidControl** *(string) --* If set to auto, pid number used for ARIB Captions
    will be auto-selected from unused pids. If set to useConfigured, ARIB Captions will be on the
    configured pid number.

    - **AudioBufferModel** *(string) --* When set to dvb, uses DVB buffer model for Dolby Digital
    audio. When set to atsc, the ATSC model is used.

    - **AudioFramesPerPes** *(integer) --* The number of audio frames to insert for each PES packet.

    - **AudioPids** *(string) --* Packet Identifier (PID) of the elementary audio stream(s) in the
    transport stream. Multiple values are accepted, and can be entered in ranges and/or by comma
    separation. Can be entered as decimal or hexadecimal values. Each PID specified must be in the
    range of 32 (or 0x20)..8182 (or 0x1ff6).

    - **AudioStreamType** *(string) --* When set to atsc, uses stream type = 0x81 for AC3 and stream
    type = 0x87 for EAC3. When set to dvb, uses stream type = 0x06.

    - **Bitrate** *(integer) --* The output bitrate of the transport stream in bits per second.
    Setting to 0 lets the muxer automatically determine the appropriate bitrate.

    - **BufferModel** *(string) --* If set to multiplex, use multiplex buffer model for accurate
    interleaving. Setting to bufferModel to none can lead to lower latency, but low-memory devices
    may not be able to play back the stream without interruptions.

    - **CcDescriptor** *(string) --* When set to enabled, generates captionServiceDescriptor in PMT.

    - **DvbNitSettings** *(dict) --* Inserts DVB Network Information Table (NIT) at the specified
    table repetition interval.

      - **NetworkId** *(integer) --* The numeric value placed in the Network Information Table
      (NIT).

      - **NetworkName** *(string) --* The network name text placed in the networkNameDescriptor
      inside the Network Information Table. Maximum length is 256 characters.

      - **RepInterval** *(integer) --* The number of milliseconds between instances of this table in
      the output transport stream.

    - **DvbSdtSettings** *(dict) --* Inserts DVB Service Description Table (SDT) at the specified
    table repetition interval.

      - **OutputSdt** *(string) --* Selects method of inserting SDT information into output stream.
      The sdtFollow setting copies SDT information from input stream to output stream. The
      sdtFollowIfPresent setting copies SDT information from input stream to output stream if SDT
      information is present in the input, otherwise it will fall back on the user-defined values.
      The sdtManual setting means user will enter the SDT information. The sdtNone setting means
      output stream will not contain SDT information.

      - **RepInterval** *(integer) --* The number of milliseconds between instances of this table in
      the output transport stream.

      - **ServiceName** *(string) --* The service name placed in the serviceDescriptor in the
      Service Description Table. Maximum length is 256 characters.

      - **ServiceProviderName** *(string) --* The service provider name placed in the
      serviceDescriptor in the Service Description Table. Maximum length is 256 characters.

    - **DvbSubPids** *(string) --* Packet Identifier (PID) for input source DVB Subtitle data to
    this output. Multiple values are accepted, and can be entered in ranges and/or by comma
    separation. Can be entered as decimal or hexadecimal values. Each PID specified must be in the
    range of 32 (or 0x20)..8182 (or 0x1ff6).

    - **DvbTdtSettings** *(dict) --* Inserts DVB Time and Date Table (TDT) at the specified table
    repetition interval.

      - **RepInterval** *(integer) --* The number of milliseconds between instances of this table in
      the output transport stream.

    - **DvbTeletextPid** *(string) --* Packet Identifier (PID) for input source DVB Teletext data to
    this output. Can be entered as a decimal or hexadecimal value. Valid values are 32 (or
    0x20)..8182 (or 0x1ff6).

    - **Ebif** *(string) --* If set to passthrough, passes any EBIF data from the input source to
    this output.

    - **EbpAudioInterval** *(string) --* When videoAndFixedIntervals is selected, audio EBP markers
    will be added to partitions 3 and 4. The interval between these additional markers will be
    fixed, and will be slightly shorter than the video EBP marker interval. Only available when EBP
    Cablelabs segmentation markers are selected. Partitions 1 and 2 will always follow the video
    interval.

    - **EbpLookaheadMs** *(integer) --* When set, enforces that Encoder Boundary Points do not come
    within the specified time interval of each other by looking ahead at input video. If another EBP
    is going to come in within the specified time interval, the current EBP is not emitted, and the
    segment is "stretched" to the next marker. The lookahead value does not add latency to the
    system. The Live Event must be configured elsewhere to create sufficient latency to make the
    lookahead accurate.

    - **EbpPlacement** *(string) --* Controls placement of EBP on Audio PIDs. If set to
    videoAndAudioPids, EBP markers will be placed on the video PID and all audio PIDs. If set to
    videoPid, EBP markers will be placed on only the video PID.

    - **EcmPid** *(string) --* This field is unused and deprecated.

    - **EsRateInPes** *(string) --* Include or exclude the ES Rate field in the PES header.

    - **EtvPlatformPid** *(string) --* Packet Identifier (PID) for input source ETV Platform data to
    this output. Can be entered as a decimal or hexadecimal value. Valid values are 32 (or
    0x20)..8182 (or 0x1ff6).

    - **EtvSignalPid** *(string) --* Packet Identifier (PID) for input source ETV Signal data to
    this output. Can be entered as a decimal or hexadecimal value. Valid values are 32 (or
    0x20)..8182 (or 0x1ff6).

    - **FragmentTime** *(float) --* The length in seconds of each fragment. Only used with EBP
    markers.

    - **Klv** *(string) --* If set to passthrough, passes any KLV data from the input source to this
    output.

    - **KlvDataPids** *(string) --* Packet Identifier (PID) for input source KLV data to this
    output. Multiple values are accepted, and can be entered in ranges and/or by comma separation.
    Can be entered as decimal or hexadecimal values. Each PID specified must be in the range of 32
    (or 0x20)..8182 (or 0x1ff6).

    - **NielsenId3Behavior** *(string) --* If set to passthrough, Nielsen inaudible tones for media
    tracking will be detected in the input audio and an equivalent ID3 tag will be inserted in the
    output.

    - **NullPacketBitrate** *(float) --* Value in bits per second of extra null packets to insert
    into the transport stream. This can be used if a downstream encryption system requires periodic
    null packets.

    - **PatInterval** *(integer) --* The number of milliseconds between instances of this table in
    the output transport stream. Valid values are 0, 10..1000.

    - **PcrControl** *(string) --* When set to pcrEveryPesPacket, a Program Clock Reference value is
    inserted for every Packetized Elementary Stream (PES) header. This parameter is effective only
    when the PCR PID is the same as the video or audio elementary stream.

    - **PcrPeriod** *(integer) --* Maximum time in milliseconds between Program Clock Reference
    (PCRs) inserted into the transport stream.

    - **PcrPid** *(string) --* Packet Identifier (PID) of the Program Clock Reference (PCR) in the
    transport stream. When no value is given, the encoder will assign the same value as the Video
    PID. Can be entered as a decimal or hexadecimal value. Valid values are 32 (or 0x20)..8182 (or
    0x1ff6).

    - **PmtInterval** *(integer) --* The number of milliseconds between instances of this table in
    the output transport stream. Valid values are 0, 10..1000.

    - **PmtPid** *(string) --* Packet Identifier (PID) for the Program Map Table (PMT) in the
    transport stream. Can be entered as a decimal or hexadecimal value. Valid values are 32 (or
    0x20)..8182 (or 0x1ff6).

    - **ProgramNum** *(integer) --* The value of the program number field in the Program Map Table.

    - **RateMode** *(string) --* When vbr, does not insert null packets into transport stream to
    fill specified bitrate. The bitrate setting acts as the maximum bitrate when vbr is set.

    - **Scte27Pids** *(string) --* Packet Identifier (PID) for input source SCTE-27 data to this
    output. Multiple values are accepted, and can be entered in ranges and/or by comma separation.
    Can be entered as decimal or hexadecimal values. Each PID specified must be in the range of 32
    (or 0x20)..8182 (or 0x1ff6).

    - **Scte35Control** *(string) --* Optionally pass SCTE-35 signals from the input source to this
    output.

    - **Scte35Pid** *(string) --* Packet Identifier (PID) of the SCTE-35 stream in the transport
    stream. Can be entered as a decimal or hexadecimal value. Valid values are 32 (or 0x20)..8182
    (or 0x1ff6).

    - **SegmentationMarkers** *(string) --* Inserts segmentation markers at each segmentationTime
    period. raiSegstart sets the Random Access Indicator bit in the adaptation field. raiAdapt sets
    the RAI bit and adds the current timecode in the private data bytes. psiSegstart inserts PAT and
    PMT tables at the start of segments. ebp adds Encoder Boundary Point information to the
    adaptation field as per OpenCable specification OC-SP-EBP-I01-130118. ebpLegacy adds Encoder
    Boundary Point information to the adaptation field using a legacy proprietary format.

    - **SegmentationStyle** *(string) --* The segmentation style parameter controls how segmentation
    markers are inserted into the transport stream. With avails, it is possible that segments may be
    truncated, which can influence where future segmentation markers are inserted. When a
    segmentation style of "resetCadence" is selected and a segment is truncated due to an avail, we
    will reset the segmentation cadence. This means the subsequent segment will have a duration of
    $segmentationTime seconds. When a segmentation style of "maintainCadence" is selected and a
    segment is truncated due to an avail, we will not reset the segmentation cadence. This means the
    subsequent segment will likely be truncated as well. However, all segments after that will have
    a duration of $segmentationTime seconds. Note that EBP lookahead is a slight exception to this
    rule.

    - **SegmentationTime** *(float) --* The length in seconds of each segment. Required unless
    markers is set to None_.

    - **TimedMetadataBehavior** *(string) --* When set to passthrough, timed metadata will be passed
    through from input to output.

    - **TimedMetadataPid** *(string) --* Packet Identifier (PID) of the timed metadata stream in the
    transport stream. Can be entered as a decimal or hexadecimal value. Valid values are 32 (or
    0x20)..8182 (or 0x1ff6).

    - **TransportStreamId** *(integer) --* The value of the transport stream ID field in the Program
    Map Table.

    - **VideoPid** *(string) --* Packet Identifier (PID) of the elementary video stream in the
    transport stream. Can be entered as a decimal or hexadecimal value. Valid values are 32 (or
    0x20)..8182 (or 0x1ff6).
    """


_ClientStopChannelResponseEncoderSettingsOutputGroupsOutputsOutputSettingsArchiveOutputSettingsContainerSettingsTypeDef = TypedDict(
    "_ClientStopChannelResponseEncoderSettingsOutputGroupsOutputsOutputSettingsArchiveOutputSettingsContainerSettingsTypeDef",
    {
        "M2tsSettings": ClientStopChannelResponseEncoderSettingsOutputGroupsOutputsOutputSettingsArchiveOutputSettingsContainerSettingsM2tsSettingsTypeDef
    },
    total=False,
)


class ClientStopChannelResponseEncoderSettingsOutputGroupsOutputsOutputSettingsArchiveOutputSettingsContainerSettingsTypeDef(
    _ClientStopChannelResponseEncoderSettingsOutputGroupsOutputsOutputSettingsArchiveOutputSettingsContainerSettingsTypeDef
):
    """
    Type definition for
    `ClientStopChannelResponseEncoderSettingsOutputGroupsOutputsOutputSettingsArchiveOutputSettings`
    `ContainerSettings`

    - **M2tsSettings** *(dict) --* M2ts Settings

      - **AbsentInputAudioBehavior** *(string) --* When set to drop, output audio streams will be
      removed from the program if the selected input audio stream is removed from the input. This
      allows the output audio configuration to dynamically change based on input configuration. If
      this is set to encodeSilence, all output audio streams will output encoded silence when not
      connected to an active input stream.

      - **Arib** *(string) --* When set to enabled, uses ARIB-compliant field muxing and removes
      video descriptor.

      - **AribCaptionsPid** *(string) --* Packet Identifier (PID) for ARIB Captions in the transport
      stream. Can be entered as a decimal or hexadecimal value. Valid values are 32 (or 0x20)..8182
      (or 0x1ff6).

      - **AribCaptionsPidControl** *(string) --* If set to auto, pid number used for ARIB Captions
      will be auto-selected from unused pids. If set to useConfigured, ARIB Captions will be on the
      configured pid number.

      - **AudioBufferModel** *(string) --* When set to dvb, uses DVB buffer model for Dolby Digital
      audio. When set to atsc, the ATSC model is used.

      - **AudioFramesPerPes** *(integer) --* The number of audio frames to insert for each PES
      packet.

      - **AudioPids** *(string) --* Packet Identifier (PID) of the elementary audio stream(s) in the
      transport stream. Multiple values are accepted, and can be entered in ranges and/or by comma
      separation. Can be entered as decimal or hexadecimal values. Each PID specified must be in the
      range of 32 (or 0x20)..8182 (or 0x1ff6).

      - **AudioStreamType** *(string) --* When set to atsc, uses stream type = 0x81 for AC3 and
      stream type = 0x87 for EAC3. When set to dvb, uses stream type = 0x06.

      - **Bitrate** *(integer) --* The output bitrate of the transport stream in bits per second.
      Setting to 0 lets the muxer automatically determine the appropriate bitrate.

      - **BufferModel** *(string) --* If set to multiplex, use multiplex buffer model for accurate
      interleaving. Setting to bufferModel to none can lead to lower latency, but low-memory devices
      may not be able to play back the stream without interruptions.

      - **CcDescriptor** *(string) --* When set to enabled, generates captionServiceDescriptor in
      PMT.

      - **DvbNitSettings** *(dict) --* Inserts DVB Network Information Table (NIT) at the specified
      table repetition interval.

        - **NetworkId** *(integer) --* The numeric value placed in the Network Information Table
        (NIT).

        - **NetworkName** *(string) --* The network name text placed in the networkNameDescriptor
        inside the Network Information Table. Maximum length is 256 characters.

        - **RepInterval** *(integer) --* The number of milliseconds between instances of this table
        in the output transport stream.

      - **DvbSdtSettings** *(dict) --* Inserts DVB Service Description Table (SDT) at the specified
      table repetition interval.

        - **OutputSdt** *(string) --* Selects method of inserting SDT information into output
        stream. The sdtFollow setting copies SDT information from input stream to output stream. The
        sdtFollowIfPresent setting copies SDT information from input stream to output stream if SDT
        information is present in the input, otherwise it will fall back on the user-defined values.
        The sdtManual setting means user will enter the SDT information. The sdtNone setting means
        output stream will not contain SDT information.

        - **RepInterval** *(integer) --* The number of milliseconds between instances of this table
        in the output transport stream.

        - **ServiceName** *(string) --* The service name placed in the serviceDescriptor in the
        Service Description Table. Maximum length is 256 characters.

        - **ServiceProviderName** *(string) --* The service provider name placed in the
        serviceDescriptor in the Service Description Table. Maximum length is 256 characters.

      - **DvbSubPids** *(string) --* Packet Identifier (PID) for input source DVB Subtitle data to
      this output. Multiple values are accepted, and can be entered in ranges and/or by comma
      separation. Can be entered as decimal or hexadecimal values. Each PID specified must be in the
      range of 32 (or 0x20)..8182 (or 0x1ff6).

      - **DvbTdtSettings** *(dict) --* Inserts DVB Time and Date Table (TDT) at the specified table
      repetition interval.

        - **RepInterval** *(integer) --* The number of milliseconds between instances of this table
        in the output transport stream.

      - **DvbTeletextPid** *(string) --* Packet Identifier (PID) for input source DVB Teletext data
      to this output. Can be entered as a decimal or hexadecimal value. Valid values are 32 (or
      0x20)..8182 (or 0x1ff6).

      - **Ebif** *(string) --* If set to passthrough, passes any EBIF data from the input source to
      this output.

      - **EbpAudioInterval** *(string) --* When videoAndFixedIntervals is selected, audio EBP
      markers will be added to partitions 3 and 4. The interval between these additional markers
      will be fixed, and will be slightly shorter than the video EBP marker interval. Only available
      when EBP Cablelabs segmentation markers are selected. Partitions 1 and 2 will always follow
      the video interval.

      - **EbpLookaheadMs** *(integer) --* When set, enforces that Encoder Boundary Points do not
      come within the specified time interval of each other by looking ahead at input video. If
      another EBP is going to come in within the specified time interval, the current EBP is not
      emitted, and the segment is "stretched" to the next marker. The lookahead value does not add
      latency to the system. The Live Event must be configured elsewhere to create sufficient
      latency to make the lookahead accurate.

      - **EbpPlacement** *(string) --* Controls placement of EBP on Audio PIDs. If set to
      videoAndAudioPids, EBP markers will be placed on the video PID and all audio PIDs. If set to
      videoPid, EBP markers will be placed on only the video PID.

      - **EcmPid** *(string) --* This field is unused and deprecated.

      - **EsRateInPes** *(string) --* Include or exclude the ES Rate field in the PES header.

      - **EtvPlatformPid** *(string) --* Packet Identifier (PID) for input source ETV Platform data
      to this output. Can be entered as a decimal or hexadecimal value. Valid values are 32 (or
      0x20)..8182 (or 0x1ff6).

      - **EtvSignalPid** *(string) --* Packet Identifier (PID) for input source ETV Signal data to
      this output. Can be entered as a decimal or hexadecimal value. Valid values are 32 (or
      0x20)..8182 (or 0x1ff6).

      - **FragmentTime** *(float) --* The length in seconds of each fragment. Only used with EBP
      markers.

      - **Klv** *(string) --* If set to passthrough, passes any KLV data from the input source to
      this output.

      - **KlvDataPids** *(string) --* Packet Identifier (PID) for input source KLV data to this
      output. Multiple values are accepted, and can be entered in ranges and/or by comma separation.
      Can be entered as decimal or hexadecimal values. Each PID specified must be in the range of 32
      (or 0x20)..8182 (or 0x1ff6).

      - **NielsenId3Behavior** *(string) --* If set to passthrough, Nielsen inaudible tones for
      media tracking will be detected in the input audio and an equivalent ID3 tag will be inserted
      in the output.

      - **NullPacketBitrate** *(float) --* Value in bits per second of extra null packets to insert
      into the transport stream. This can be used if a downstream encryption system requires
      periodic null packets.

      - **PatInterval** *(integer) --* The number of milliseconds between instances of this table in
      the output transport stream. Valid values are 0, 10..1000.

      - **PcrControl** *(string) --* When set to pcrEveryPesPacket, a Program Clock Reference value
      is inserted for every Packetized Elementary Stream (PES) header. This parameter is effective
      only when the PCR PID is the same as the video or audio elementary stream.

      - **PcrPeriod** *(integer) --* Maximum time in milliseconds between Program Clock Reference
      (PCRs) inserted into the transport stream.

      - **PcrPid** *(string) --* Packet Identifier (PID) of the Program Clock Reference (PCR) in the
      transport stream. When no value is given, the encoder will assign the same value as the Video
      PID. Can be entered as a decimal or hexadecimal value. Valid values are 32 (or 0x20)..8182 (or
      0x1ff6).

      - **PmtInterval** *(integer) --* The number of milliseconds between instances of this table in
      the output transport stream. Valid values are 0, 10..1000.

      - **PmtPid** *(string) --* Packet Identifier (PID) for the Program Map Table (PMT) in the
      transport stream. Can be entered as a decimal or hexadecimal value. Valid values are 32 (or
      0x20)..8182 (or 0x1ff6).

      - **ProgramNum** *(integer) --* The value of the program number field in the Program Map
      Table.

      - **RateMode** *(string) --* When vbr, does not insert null packets into transport stream to
      fill specified bitrate. The bitrate setting acts as the maximum bitrate when vbr is set.

      - **Scte27Pids** *(string) --* Packet Identifier (PID) for input source SCTE-27 data to this
      output. Multiple values are accepted, and can be entered in ranges and/or by comma separation.
      Can be entered as decimal or hexadecimal values. Each PID specified must be in the range of 32
      (or 0x20)..8182 (or 0x1ff6).

      - **Scte35Control** *(string) --* Optionally pass SCTE-35 signals from the input source to
      this output.

      - **Scte35Pid** *(string) --* Packet Identifier (PID) of the SCTE-35 stream in the transport
      stream. Can be entered as a decimal or hexadecimal value. Valid values are 32 (or 0x20)..8182
      (or 0x1ff6).

      - **SegmentationMarkers** *(string) --* Inserts segmentation markers at each segmentationTime
      period. raiSegstart sets the Random Access Indicator bit in the adaptation field. raiAdapt
      sets the RAI bit and adds the current timecode in the private data bytes. psiSegstart inserts
      PAT and PMT tables at the start of segments. ebp adds Encoder Boundary Point information to
      the adaptation field as per OpenCable specification OC-SP-EBP-I01-130118. ebpLegacy adds
      Encoder Boundary Point information to the adaptation field using a legacy proprietary format.

      - **SegmentationStyle** *(string) --* The segmentation style parameter controls how
      segmentation markers are inserted into the transport stream. With avails, it is possible that
      segments may be truncated, which can influence where future segmentation markers are inserted.
      When a segmentation style of "resetCadence" is selected and a segment is truncated due to an
      avail, we will reset the segmentation cadence. This means the subsequent segment will have a
      duration of $segmentationTime seconds. When a segmentation style of "maintainCadence" is
      selected and a segment is truncated due to an avail, we will not reset the segmentation
      cadence. This means the subsequent segment will likely be truncated as well. However, all
      segments after that will have a duration of $segmentationTime seconds. Note that EBP lookahead
      is a slight exception to this rule.

      - **SegmentationTime** *(float) --* The length in seconds of each segment. Required unless
      markers is set to None_.

      - **TimedMetadataBehavior** *(string) --* When set to passthrough, timed metadata will be
      passed through from input to output.

      - **TimedMetadataPid** *(string) --* Packet Identifier (PID) of the timed metadata stream in
      the transport stream. Can be entered as a decimal or hexadecimal value. Valid values are 32
      (or 0x20)..8182 (or 0x1ff6).

      - **TransportStreamId** *(integer) --* The value of the transport stream ID field in the
      Program Map Table.

      - **VideoPid** *(string) --* Packet Identifier (PID) of the elementary video stream in the
      transport stream. Can be entered as a decimal or hexadecimal value. Valid values are 32 (or
      0x20)..8182 (or 0x1ff6).
    """


_ClientStopChannelResponseEncoderSettingsOutputGroupsOutputsOutputSettingsArchiveOutputSettingsTypeDef = TypedDict(
    "_ClientStopChannelResponseEncoderSettingsOutputGroupsOutputsOutputSettingsArchiveOutputSettingsTypeDef",
    {
        "ContainerSettings": ClientStopChannelResponseEncoderSettingsOutputGroupsOutputsOutputSettingsArchiveOutputSettingsContainerSettingsTypeDef,
        "Extension": str,
        "NameModifier": str,
    },
    total=False,
)


class ClientStopChannelResponseEncoderSettingsOutputGroupsOutputsOutputSettingsArchiveOutputSettingsTypeDef(
    _ClientStopChannelResponseEncoderSettingsOutputGroupsOutputsOutputSettingsArchiveOutputSettingsTypeDef
):
    """
    Type definition for `ClientStopChannelResponseEncoderSettingsOutputGroupsOutputsOutputSettings`
    `ArchiveOutputSettings`

    - **ContainerSettings** *(dict) --* Settings specific to the container type of the file.

      - **M2tsSettings** *(dict) --* M2ts Settings

        - **AbsentInputAudioBehavior** *(string) --* When set to drop, output audio streams will be
        removed from the program if the selected input audio stream is removed from the input. This
        allows the output audio configuration to dynamically change based on input configuration. If
        this is set to encodeSilence, all output audio streams will output encoded silence when not
        connected to an active input stream.

        - **Arib** *(string) --* When set to enabled, uses ARIB-compliant field muxing and removes
        video descriptor.

        - **AribCaptionsPid** *(string) --* Packet Identifier (PID) for ARIB Captions in the
        transport stream. Can be entered as a decimal or hexadecimal value. Valid values are 32 (or
        0x20)..8182 (or 0x1ff6).

        - **AribCaptionsPidControl** *(string) --* If set to auto, pid number used for ARIB Captions
        will be auto-selected from unused pids. If set to useConfigured, ARIB Captions will be on
        the configured pid number.

        - **AudioBufferModel** *(string) --* When set to dvb, uses DVB buffer model for Dolby
        Digital audio. When set to atsc, the ATSC model is used.

        - **AudioFramesPerPes** *(integer) --* The number of audio frames to insert for each PES
        packet.

        - **AudioPids** *(string) --* Packet Identifier (PID) of the elementary audio stream(s) in
        the transport stream. Multiple values are accepted, and can be entered in ranges and/or by
        comma separation. Can be entered as decimal or hexadecimal values. Each PID specified must
        be in the range of 32 (or 0x20)..8182 (or 0x1ff6).

        - **AudioStreamType** *(string) --* When set to atsc, uses stream type =
             0x81 for AC3 and
        stream type = 0x87 for EAC3. When set to dvb, uses stream type = 0x06.

        - **Bitrate** *(integer) --* The output bitrate of the transport stream in bits per second.
        Setting to 0 lets the muxer automatically determine the appropriate bitrate.

        - **BufferModel** *(string) --* If set to multiplex, use multiplex buffer model for accurate
        interleaving. Setting to bufferModel to none can lead to lower latency, but low-memory
        devices may not be able to play back the stream without interruptions.

        - **CcDescriptor** *(string) --* When set to enabled, generates captionServiceDescriptor in
        PMT.

        - **DvbNitSettings** *(dict) --* Inserts DVB Network Information Table (NIT) at the
        specified table repetition interval.

          - **NetworkId** *(integer) --* The numeric value placed in the Network Information Table
          (NIT).

          - **NetworkName** *(string) --* The network name text placed in the networkNameDescriptor
          inside the Network Information Table. Maximum length is 256 characters.

          - **RepInterval** *(integer) --* The number of milliseconds between instances of this
          table in the output transport stream.

        - **DvbSdtSettings** *(dict) --* Inserts DVB Service Description Table (SDT) at the
        specified table repetition interval.

          - **OutputSdt** *(string) --* Selects method of inserting SDT information into output
          stream. The sdtFollow setting copies SDT information from input stream to output stream.
          The sdtFollowIfPresent setting copies SDT information from input stream to output stream
          if SDT information is present in the input, otherwise it will fall back on the
          user-defined values. The sdtManual setting means user will enter the SDT information. The
          sdtNone setting means output stream will not contain SDT information.

          - **RepInterval** *(integer) --* The number of milliseconds between instances of this
          table in the output transport stream.

          - **ServiceName** *(string) --* The service name placed in the serviceDescriptor in the
          Service Description Table. Maximum length is 256 characters.

          - **ServiceProviderName** *(string) --* The service provider name placed in the
          serviceDescriptor in the Service Description Table. Maximum length is 256 characters.

        - **DvbSubPids** *(string) --* Packet Identifier (PID) for input source DVB Subtitle data to
        this output. Multiple values are accepted, and can be entered in ranges and/or by comma
        separation. Can be entered as decimal or hexadecimal values. Each PID specified must be in
        the range of 32 (or 0x20)..8182 (or 0x1ff6).

        - **DvbTdtSettings** *(dict) --* Inserts DVB Time and Date Table (TDT) at the specified
        table repetition interval.

          - **RepInterval** *(integer) --* The number of milliseconds between instances of this
          table in the output transport stream.

        - **DvbTeletextPid** *(string) --* Packet Identifier (PID) for input source DVB Teletext
        data to this output. Can be entered as a decimal or hexadecimal value. Valid values are 32
        (or 0x20)..8182 (or 0x1ff6).

        - **Ebif** *(string) --* If set to passthrough, passes any EBIF data from the input source
        to this output.

        - **EbpAudioInterval** *(string) --* When videoAndFixedIntervals is selected, audio EBP
        markers will be added to partitions 3 and 4. The interval between these additional markers
        will be fixed, and will be slightly shorter than the video EBP marker interval. Only
        available when EBP Cablelabs segmentation markers are selected. Partitions 1 and 2 will
        always follow the video interval.

        - **EbpLookaheadMs** *(integer) --* When set, enforces that Encoder Boundary Points do not
        come within the specified time interval of each other by looking ahead at input video. If
        another EBP is going to come in within the specified time interval, the current EBP is not
        emitted, and the segment is "stretched" to the next marker. The lookahead value does not add
        latency to the system. The Live Event must be configured elsewhere to create sufficient
        latency to make the lookahead accurate.

        - **EbpPlacement** *(string) --* Controls placement of EBP on Audio PIDs. If set to
        videoAndAudioPids, EBP markers will be placed on the video PID and all audio PIDs. If set to
        videoPid, EBP markers will be placed on only the video PID.

        - **EcmPid** *(string) --* This field is unused and deprecated.

        - **EsRateInPes** *(string) --* Include or exclude the ES Rate field in the PES header.

        - **EtvPlatformPid** *(string) --* Packet Identifier (PID) for input source ETV Platform
        data to this output. Can be entered as a decimal or hexadecimal value. Valid values are 32
        (or 0x20)..8182 (or 0x1ff6).

        - **EtvSignalPid** *(string) --* Packet Identifier (PID) for input source ETV Signal data to
        this output. Can be entered as a decimal or hexadecimal value. Valid values are 32 (or
        0x20)..8182 (or 0x1ff6).

        - **FragmentTime** *(float) --* The length in seconds of each fragment. Only used with EBP
        markers.

        - **Klv** *(string) --* If set to passthrough, passes any KLV data from the input source to
        this output.

        - **KlvDataPids** *(string) --* Packet Identifier (PID) for input source KLV data to this
        output. Multiple values are accepted, and can be entered in ranges and/or by comma
        separation. Can be entered as decimal or hexadecimal values. Each PID specified must be in
        the range of 32 (or 0x20)..8182 (or 0x1ff6).

        - **NielsenId3Behavior** *(string) --* If set to passthrough, Nielsen inaudible tones for
        media tracking will be detected in the input audio and an equivalent ID3 tag will be
        inserted in the output.

        - **NullPacketBitrate** *(float) --* Value in bits per second of extra null packets to
        insert into the transport stream. This can be used if a downstream encryption system
        requires periodic null packets.

        - **PatInterval** *(integer) --* The number of milliseconds between instances of this table
        in the output transport stream. Valid values are 0, 10..1000.

        - **PcrControl** *(string) --* When set to pcrEveryPesPacket, a Program Clock Reference
        value is inserted for every Packetized Elementary Stream (PES) header. This parameter is
        effective only when the PCR PID is the same as the video or audio elementary stream.

        - **PcrPeriod** *(integer) --* Maximum time in milliseconds between Program Clock Reference
        (PCRs) inserted into the transport stream.

        - **PcrPid** *(string) --* Packet Identifier (PID) of the Program Clock Reference (PCR) in
        the transport stream. When no value is given, the encoder will assign the same value as the
        Video PID. Can be entered as a decimal or hexadecimal value. Valid values are 32 (or
        0x20)..8182 (or 0x1ff6).

        - **PmtInterval** *(integer) --* The number of milliseconds between instances of this table
        in the output transport stream. Valid values are 0, 10..1000.

        - **PmtPid** *(string) --* Packet Identifier (PID) for the Program Map Table (PMT) in the
        transport stream. Can be entered as a decimal or hexadecimal value. Valid values are 32 (or
        0x20)..8182 (or 0x1ff6).

        - **ProgramNum** *(integer) --* The value of the program number field in the Program Map
        Table.

        - **RateMode** *(string) --* When vbr, does not insert null packets into transport stream to
        fill specified bitrate. The bitrate setting acts as the maximum bitrate when vbr is set.

        - **Scte27Pids** *(string) --* Packet Identifier (PID) for input source SCTE-27 data to this
        output. Multiple values are accepted, and can be entered in ranges and/or by comma
        separation. Can be entered as decimal or hexadecimal values. Each PID specified must be in
        the range of 32 (or 0x20)..8182 (or 0x1ff6).

        - **Scte35Control** *(string) --* Optionally pass SCTE-35 signals from the input source to
        this output.

        - **Scte35Pid** *(string) --* Packet Identifier (PID) of the SCTE-35 stream in the transport
        stream. Can be entered as a decimal or hexadecimal value. Valid values are 32 (or
        0x20)..8182 (or 0x1ff6).

        - **SegmentationMarkers** *(string) --* Inserts segmentation markers at each
        segmentationTime period. raiSegstart sets the Random Access Indicator bit in the adaptation
        field. raiAdapt sets the RAI bit and adds the current timecode in the private data bytes.
        psiSegstart inserts PAT and PMT tables at the start of segments. ebp adds Encoder Boundary
        Point information to the adaptation field as per OpenCable specification
        OC-SP-EBP-I01-130118. ebpLegacy adds Encoder Boundary Point information to the adaptation
        field using a legacy proprietary format.

        - **SegmentationStyle** *(string) --* The segmentation style parameter controls how
        segmentation markers are inserted into the transport stream. With avails, it is possible
        that segments may be truncated, which can influence where future segmentation markers are
        inserted. When a segmentation style of "resetCadence" is selected and a segment is truncated
        due to an avail, we will reset the segmentation cadence. This means the subsequent segment
        will have a duration of $segmentationTime seconds. When a segmentation style of
        "maintainCadence" is selected and a segment is truncated due to an avail, we will not reset
        the segmentation cadence. This means the subsequent segment will likely be truncated as
        well. However, all segments after that will have a duration of $segmentationTime seconds.
        Note that EBP lookahead is a slight exception to this rule.

        - **SegmentationTime** *(float) --* The length in seconds of each segment. Required unless
        markers is set to None_.

        - **TimedMetadataBehavior** *(string) --* When set to passthrough, timed metadata will be
        passed through from input to output.

        - **TimedMetadataPid** *(string) --* Packet Identifier (PID) of the timed metadata stream in
        the transport stream. Can be entered as a decimal or hexadecimal value. Valid values are 32
        (or 0x20)..8182 (or 0x1ff6).

        - **TransportStreamId** *(integer) --* The value of the transport stream ID field in the
        Program Map Table.

        - **VideoPid** *(string) --* Packet Identifier (PID) of the elementary video stream in the
        transport stream. Can be entered as a decimal or hexadecimal value. Valid values are 32 (or
        0x20)..8182 (or 0x1ff6).

    - **Extension** *(string) --* Output file extension. If excluded, this will be auto-selected
    from the container type.

    - **NameModifier** *(string) --* String concatenated to the end of the destination filename.
    Required for multiple outputs of the same type.
    """


_ClientStopChannelResponseEncoderSettingsOutputGroupsOutputsOutputSettingsFrameCaptureOutputSettingsTypeDef = TypedDict(
    "_ClientStopChannelResponseEncoderSettingsOutputGroupsOutputsOutputSettingsFrameCaptureOutputSettingsTypeDef",
    {"NameModifier": str},
    total=False,
)


class ClientStopChannelResponseEncoderSettingsOutputGroupsOutputsOutputSettingsFrameCaptureOutputSettingsTypeDef(
    _ClientStopChannelResponseEncoderSettingsOutputGroupsOutputsOutputSettingsFrameCaptureOutputSettingsTypeDef
):
    """
    Type definition for `ClientStopChannelResponseEncoderSettingsOutputGroupsOutputsOutputSettings`
    `FrameCaptureOutputSettings`

    - **NameModifier** *(string) --* Required if the output group contains more than one output.
    This modifier forms part of the output file name.
    """


_ClientStopChannelResponseEncoderSettingsOutputGroupsOutputsOutputSettingsHlsOutputSettingsHlsSettingsAudioOnlyHlsSettingsAudioOnlyImageTypeDef = TypedDict(
    "_ClientStopChannelResponseEncoderSettingsOutputGroupsOutputsOutputSettingsHlsOutputSettingsHlsSettingsAudioOnlyHlsSettingsAudioOnlyImageTypeDef",
    {"PasswordParam": str, "Uri": str, "Username": str},
    total=False,
)


class ClientStopChannelResponseEncoderSettingsOutputGroupsOutputsOutputSettingsHlsOutputSettingsHlsSettingsAudioOnlyHlsSettingsAudioOnlyImageTypeDef(
    _ClientStopChannelResponseEncoderSettingsOutputGroupsOutputsOutputSettingsHlsOutputSettingsHlsSettingsAudioOnlyHlsSettingsAudioOnlyImageTypeDef
):
    """
    Type definition for
    `ClientStopChannelResponseEncoderSettingsOutputGroupsOutputsOutputSettingsHlsOutputSettingsHlsSettingsAudioOnlyHlsSettings`
    `AudioOnlyImage`

    - **PasswordParam** *(string) --* key used to extract the password from EC2 Parameter store

    - **Uri** *(string) --* Uniform Resource Identifier - This should be a path to a file accessible
    to the Live system (eg. a http:// URI) depending on the output type. For example, a RTMP
    destination should have a uri simliar to: "rtmp://fmsserver/live".

    - **Username** *(string) --* Documentation update needed
    """


_ClientStopChannelResponseEncoderSettingsOutputGroupsOutputsOutputSettingsHlsOutputSettingsHlsSettingsAudioOnlyHlsSettingsTypeDef = TypedDict(
    "_ClientStopChannelResponseEncoderSettingsOutputGroupsOutputsOutputSettingsHlsOutputSettingsHlsSettingsAudioOnlyHlsSettingsTypeDef",
    {
        "AudioGroupId": str,
        "AudioOnlyImage": ClientStopChannelResponseEncoderSettingsOutputGroupsOutputsOutputSettingsHlsOutputSettingsHlsSettingsAudioOnlyHlsSettingsAudioOnlyImageTypeDef,
        "AudioTrackType": str,
    },
    total=False,
)


class ClientStopChannelResponseEncoderSettingsOutputGroupsOutputsOutputSettingsHlsOutputSettingsHlsSettingsAudioOnlyHlsSettingsTypeDef(
    _ClientStopChannelResponseEncoderSettingsOutputGroupsOutputsOutputSettingsHlsOutputSettingsHlsSettingsAudioOnlyHlsSettingsTypeDef
):
    """
    Type definition for
    `ClientStopChannelResponseEncoderSettingsOutputGroupsOutputsOutputSettingsHlsOutputSettingsHlsSettings`
    `AudioOnlyHlsSettings`

    - **AudioGroupId** *(string) --* Specifies the group to which the audio Rendition belongs.

    - **AudioOnlyImage** *(dict) --* Optional. Specifies the .jpg or .png image to use as the cover
    art for an audio-only output. We recommend a low bit-size file because the image increases the
    output audio bandwidth. The image is attached to the audio as an ID3 tag, frame type APIC,
    picture type 0x10, as per the "ID3 tag version 2.4.0 - Native Frames" standard.

      - **PasswordParam** *(string) --* key used to extract the password from EC2 Parameter store

      - **Uri** *(string) --* Uniform Resource Identifier - This should be a path to a file
      accessible to the Live system (eg. a http:// URI) depending on the output type. For example, a
      RTMP destination should have a uri simliar to: "rtmp://fmsserver/live".

      - **Username** *(string) --* Documentation update needed

    - **AudioTrackType** *(string) --* Four types of audio-only tracks are supported: Audio-Only
    Variant Stream The client can play back this audio-only stream instead of video in low-bandwidth
    scenarios. Represented as an EXT-X-STREAM-INF in the HLS manifest. Alternate Audio, Auto Select,
    Default Alternate rendition that the client should try to play back by default. Represented as
    an EXT-X-MEDIA in the HLS manifest with DEFAULT=YES, AUTOSELECT=YES Alternate Audio, Auto
    Select, Not Default Alternate rendition that the client may try to play back by default.
    Represented as an EXT-X-MEDIA in the HLS manifest with DEFAULT=NO, AUTOSELECT=YES Alternate
    Audio, not Auto Select Alternate rendition that the client will not try to play back by default.
    Represented as an EXT-X-MEDIA in the HLS manifest with DEFAULT=NO, AUTOSELECT=NO
    """


_ClientStopChannelResponseEncoderSettingsOutputGroupsOutputsOutputSettingsHlsOutputSettingsHlsSettingsStandardHlsSettingsM3u8SettingsTypeDef = TypedDict(
    "_ClientStopChannelResponseEncoderSettingsOutputGroupsOutputsOutputSettingsHlsOutputSettingsHlsSettingsStandardHlsSettingsM3u8SettingsTypeDef",
    {
        "AudioFramesPerPes": int,
        "AudioPids": str,
        "EcmPid": str,
        "NielsenId3Behavior": str,
        "PatInterval": int,
        "PcrControl": str,
        "PcrPeriod": int,
        "PcrPid": str,
        "PmtInterval": int,
        "PmtPid": str,
        "ProgramNum": int,
        "Scte35Behavior": str,
        "Scte35Pid": str,
        "TimedMetadataBehavior": str,
        "TimedMetadataPid": str,
        "TransportStreamId": int,
        "VideoPid": str,
    },
    total=False,
)


class ClientStopChannelResponseEncoderSettingsOutputGroupsOutputsOutputSettingsHlsOutputSettingsHlsSettingsStandardHlsSettingsM3u8SettingsTypeDef(
    _ClientStopChannelResponseEncoderSettingsOutputGroupsOutputsOutputSettingsHlsOutputSettingsHlsSettingsStandardHlsSettingsM3u8SettingsTypeDef
):
    """
    Type definition for
    `ClientStopChannelResponseEncoderSettingsOutputGroupsOutputsOutputSettingsHlsOutputSettingsHlsSettingsStandardHlsSettings`
    `M3u8Settings`

    - **AudioFramesPerPes** *(integer) --* The number of audio frames to insert for each PES packet.

    - **AudioPids** *(string) --* Packet Identifier (PID) of the elementary audio stream(s) in the
    transport stream. Multiple values are accepted, and can be entered in ranges and/or by comma
    separation. Can be entered as decimal or hexadecimal values.

    - **EcmPid** *(string) --* This parameter is unused and deprecated.

    - **NielsenId3Behavior** *(string) --* If set to passthrough, Nielsen inaudible tones for media
    tracking will be detected in the input audio and an equivalent ID3 tag will be inserted in the
    output.

    - **PatInterval** *(integer) --* The number of milliseconds between instances of this table in
    the output transport stream. A value of \\"0\\" writes out the PMT once per segment file.

    - **PcrControl** *(string) --* When set to pcrEveryPesPacket, a Program Clock Reference value is
    inserted for every Packetized Elementary Stream (PES) header. This parameter is effective only
    when the PCR PID is the same as the video or audio elementary stream.

    - **PcrPeriod** *(integer) --* Maximum time in milliseconds between Program Clock References
    (PCRs) inserted into the transport stream.

    - **PcrPid** *(string) --* Packet Identifier (PID) of the Program Clock Reference (PCR) in the
    transport stream. When no value is given, the encoder will assign the same value as the Video
    PID. Can be entered as a decimal or hexadecimal value.

    - **PmtInterval** *(integer) --* The number of milliseconds between instances of this table in
    the output transport stream. A value of \\"0\\" writes out the PMT once per segment file.

    - **PmtPid** *(string) --* Packet Identifier (PID) for the Program Map Table (PMT) in the
    transport stream. Can be entered as a decimal or hexadecimal value.

    - **ProgramNum** *(integer) --* The value of the program number field in the Program Map Table.

    - **Scte35Behavior** *(string) --* If set to passthrough, passes any SCTE-35 signals from the
    input source to this output.

    - **Scte35Pid** *(string) --* Packet Identifier (PID) of the SCTE-35 stream in the transport
    stream. Can be entered as a decimal or hexadecimal value.

    - **TimedMetadataBehavior** *(string) --* When set to passthrough, timed metadata is passed
    through from input to output.

    - **TimedMetadataPid** *(string) --* Packet Identifier (PID) of the timed metadata stream in the
    transport stream. Can be entered as a decimal or hexadecimal value. Valid values are 32 (or
    0x20)..8182 (or 0x1ff6).

    - **TransportStreamId** *(integer) --* The value of the transport stream ID field in the Program
    Map Table.

    - **VideoPid** *(string) --* Packet Identifier (PID) of the elementary video stream in the
    transport stream. Can be entered as a decimal or hexadecimal value.
    """


_ClientStopChannelResponseEncoderSettingsOutputGroupsOutputsOutputSettingsHlsOutputSettingsHlsSettingsStandardHlsSettingsTypeDef = TypedDict(
    "_ClientStopChannelResponseEncoderSettingsOutputGroupsOutputsOutputSettingsHlsOutputSettingsHlsSettingsStandardHlsSettingsTypeDef",
    {
        "AudioRenditionSets": str,
        "M3u8Settings": ClientStopChannelResponseEncoderSettingsOutputGroupsOutputsOutputSettingsHlsOutputSettingsHlsSettingsStandardHlsSettingsM3u8SettingsTypeDef,
    },
    total=False,
)


class ClientStopChannelResponseEncoderSettingsOutputGroupsOutputsOutputSettingsHlsOutputSettingsHlsSettingsStandardHlsSettingsTypeDef(
    _ClientStopChannelResponseEncoderSettingsOutputGroupsOutputsOutputSettingsHlsOutputSettingsHlsSettingsStandardHlsSettingsTypeDef
):
    """
    Type definition for
    `ClientStopChannelResponseEncoderSettingsOutputGroupsOutputsOutputSettingsHlsOutputSettingsHlsSettings`
    `StandardHlsSettings`

    - **AudioRenditionSets** *(string) --* List all the audio groups that are used with the video
    output stream. Input all the audio GROUP-IDs that are associated to the video, separate by ','.

    - **M3u8Settings** *(dict) --* Settings information for the .m3u8 container

      - **AudioFramesPerPes** *(integer) --* The number of audio frames to insert for each PES
      packet.

      - **AudioPids** *(string) --* Packet Identifier (PID) of the elementary audio stream(s) in the
      transport stream. Multiple values are accepted, and can be entered in ranges and/or by comma
      separation. Can be entered as decimal or hexadecimal values.

      - **EcmPid** *(string) --* This parameter is unused and deprecated.

      - **NielsenId3Behavior** *(string) --* If set to passthrough, Nielsen inaudible tones for
      media tracking will be detected in the input audio and an equivalent ID3 tag will be inserted
      in the output.

      - **PatInterval** *(integer) --* The number of milliseconds between instances of this table in
      the output transport stream. A value of \\"0\\" writes out the PMT once per segment file.

      - **PcrControl** *(string) --* When set to pcrEveryPesPacket, a Program Clock Reference value
      is inserted for every Packetized Elementary Stream (PES) header. This parameter is effective
      only when the PCR PID is the same as the video or audio elementary stream.

      - **PcrPeriod** *(integer) --* Maximum time in milliseconds between Program Clock References
      (PCRs) inserted into the transport stream.

      - **PcrPid** *(string) --* Packet Identifier (PID) of the Program Clock Reference (PCR) in the
      transport stream. When no value is given, the encoder will assign the same value as the Video
      PID. Can be entered as a decimal or hexadecimal value.

      - **PmtInterval** *(integer) --* The number of milliseconds between instances of this table in
      the output transport stream. A value of \\"0\\" writes out the PMT once per segment file.

      - **PmtPid** *(string) --* Packet Identifier (PID) for the Program Map Table (PMT) in the
      transport stream. Can be entered as a decimal or hexadecimal value.

      - **ProgramNum** *(integer) --* The value of the program number field in the Program Map
      Table.

      - **Scte35Behavior** *(string) --* If set to passthrough, passes any SCTE-35 signals from the
      input source to this output.

      - **Scte35Pid** *(string) --* Packet Identifier (PID) of the SCTE-35 stream in the transport
      stream. Can be entered as a decimal or hexadecimal value.

      - **TimedMetadataBehavior** *(string) --* When set to passthrough, timed metadata is passed
      through from input to output.

      - **TimedMetadataPid** *(string) --* Packet Identifier (PID) of the timed metadata stream in
      the transport stream. Can be entered as a decimal or hexadecimal value. Valid values are 32
      (or 0x20)..8182 (or 0x1ff6).

      - **TransportStreamId** *(integer) --* The value of the transport stream ID field in the
      Program Map Table.

      - **VideoPid** *(string) --* Packet Identifier (PID) of the elementary video stream in the
      transport stream. Can be entered as a decimal or hexadecimal value.
    """


_ClientStopChannelResponseEncoderSettingsOutputGroupsOutputsOutputSettingsHlsOutputSettingsHlsSettingsTypeDef = TypedDict(
    "_ClientStopChannelResponseEncoderSettingsOutputGroupsOutputsOutputSettingsHlsOutputSettingsHlsSettingsTypeDef",
    {
        "AudioOnlyHlsSettings": ClientStopChannelResponseEncoderSettingsOutputGroupsOutputsOutputSettingsHlsOutputSettingsHlsSettingsAudioOnlyHlsSettingsTypeDef,
        "StandardHlsSettings": ClientStopChannelResponseEncoderSettingsOutputGroupsOutputsOutputSettingsHlsOutputSettingsHlsSettingsStandardHlsSettingsTypeDef,
    },
    total=False,
)


class ClientStopChannelResponseEncoderSettingsOutputGroupsOutputsOutputSettingsHlsOutputSettingsHlsSettingsTypeDef(
    _ClientStopChannelResponseEncoderSettingsOutputGroupsOutputsOutputSettingsHlsOutputSettingsHlsSettingsTypeDef
):
    """
    Type definition for
    `ClientStopChannelResponseEncoderSettingsOutputGroupsOutputsOutputSettingsHlsOutputSettings`
    `HlsSettings`

    - **AudioOnlyHlsSettings** *(dict) --* Audio Only Hls Settings

      - **AudioGroupId** *(string) --* Specifies the group to which the audio Rendition belongs.

      - **AudioOnlyImage** *(dict) --* Optional. Specifies the .jpg or .png image to use as the
      cover art for an audio-only output. We recommend a low bit-size file because the image
      increases the output audio bandwidth. The image is attached to the audio as an ID3 tag, frame
      type APIC, picture type 0x10, as per the "ID3 tag version 2.4.0 - Native Frames" standard.

        - **PasswordParam** *(string) --* key used to extract the password from EC2 Parameter store

        - **Uri** *(string) --* Uniform Resource Identifier - This should be a path to a file
        accessible to the Live system (eg. a http:// URI) depending on the output type. For example,
        a RTMP destination should have a uri simliar to: "rtmp://fmsserver/live".

        - **Username** *(string) --* Documentation update needed

      - **AudioTrackType** *(string) --* Four types of audio-only tracks are supported: Audio-Only
      Variant Stream The client can play back this audio-only stream instead of video in
      low-bandwidth scenarios. Represented as an EXT-X-STREAM-INF in the HLS manifest. Alternate
      Audio, Auto Select, Default Alternate rendition that the client should try to play back by
      default. Represented as an EXT-X-MEDIA in the HLS manifest with DEFAULT=YES, AUTOSELECT=YES
      Alternate Audio, Auto Select, Not Default Alternate rendition that the client may try to play
      back by default. Represented as an EXT-X-MEDIA in the HLS manifest with DEFAULT=NO,
      AUTOSELECT=YES Alternate Audio, not Auto Select Alternate rendition that the client will not
      try to play back by default. Represented as an EXT-X-MEDIA in the HLS manifest with
      DEFAULT=NO, AUTOSELECT=NO

    - **StandardHlsSettings** *(dict) --* Standard Hls Settings

      - **AudioRenditionSets** *(string) --* List all the audio groups that are used with the video
      output stream. Input all the audio GROUP-IDs that are associated to the video, separate by
      ','.

      - **M3u8Settings** *(dict) --* Settings information for the .m3u8 container

        - **AudioFramesPerPes** *(integer) --* The number of audio frames to insert for each PES
        packet.

        - **AudioPids** *(string) --* Packet Identifier (PID) of the elementary audio stream(s) in
        the transport stream. Multiple values are accepted, and can be entered in ranges and/or by
        comma separation. Can be entered as decimal or hexadecimal values.

        - **EcmPid** *(string) --* This parameter is unused and deprecated.

        - **NielsenId3Behavior** *(string) --* If set to passthrough, Nielsen inaudible tones for
        media tracking will be detected in the input audio and an equivalent ID3 tag will be
        inserted in the output.

        - **PatInterval** *(integer) --* The number of milliseconds between instances of this table
        in the output transport stream. A value of \\"0\\" writes out the PMT once per segment file.

        - **PcrControl** *(string) --* When set to pcrEveryPesPacket, a Program Clock Reference
        value is inserted for every Packetized Elementary Stream (PES) header. This parameter is
        effective only when the PCR PID is the same as the video or audio elementary stream.

        - **PcrPeriod** *(integer) --* Maximum time in milliseconds between Program Clock References
        (PCRs) inserted into the transport stream.

        - **PcrPid** *(string) --* Packet Identifier (PID) of the Program Clock Reference (PCR) in
        the transport stream. When no value is given, the encoder will assign the same value as the
        Video PID. Can be entered as a decimal or hexadecimal value.

        - **PmtInterval** *(integer) --* The number of milliseconds between instances of this table
        in the output transport stream. A value of \\"0\\" writes out the PMT once per segment file.

        - **PmtPid** *(string) --* Packet Identifier (PID) for the Program Map Table (PMT) in the
        transport stream. Can be entered as a decimal or hexadecimal value.

        - **ProgramNum** *(integer) --* The value of the program number field in the Program Map
        Table.

        - **Scte35Behavior** *(string) --* If set to passthrough, passes any SCTE-35 signals from
        the input source to this output.

        - **Scte35Pid** *(string) --* Packet Identifier (PID) of the SCTE-35 stream in the transport
        stream. Can be entered as a decimal or hexadecimal value.

        - **TimedMetadataBehavior** *(string) --* When set to passthrough, timed metadata is passed
        through from input to output.

        - **TimedMetadataPid** *(string) --* Packet Identifier (PID) of the timed metadata stream in
        the transport stream. Can be entered as a decimal or hexadecimal value. Valid values are 32
        (or 0x20)..8182 (or 0x1ff6).

        - **TransportStreamId** *(integer) --* The value of the transport stream ID field in the
        Program Map Table.

        - **VideoPid** *(string) --* Packet Identifier (PID) of the elementary video stream in the
        transport stream. Can be entered as a decimal or hexadecimal value.
    """


_ClientStopChannelResponseEncoderSettingsOutputGroupsOutputsOutputSettingsHlsOutputSettingsTypeDef = TypedDict(
    "_ClientStopChannelResponseEncoderSettingsOutputGroupsOutputsOutputSettingsHlsOutputSettingsTypeDef",
    {
        "HlsSettings": ClientStopChannelResponseEncoderSettingsOutputGroupsOutputsOutputSettingsHlsOutputSettingsHlsSettingsTypeDef,
        "NameModifier": str,
        "SegmentModifier": str,
    },
    total=False,
)


class ClientStopChannelResponseEncoderSettingsOutputGroupsOutputsOutputSettingsHlsOutputSettingsTypeDef(
    _ClientStopChannelResponseEncoderSettingsOutputGroupsOutputsOutputSettingsHlsOutputSettingsTypeDef
):
    """
    Type definition for `ClientStopChannelResponseEncoderSettingsOutputGroupsOutputsOutputSettings`
    `HlsOutputSettings`

    - **HlsSettings** *(dict) --* Settings regarding the underlying stream. These settings are
    different for audio-only outputs.

      - **AudioOnlyHlsSettings** *(dict) --* Audio Only Hls Settings

        - **AudioGroupId** *(string) --* Specifies the group to which the audio Rendition belongs.

        - **AudioOnlyImage** *(dict) --* Optional. Specifies the .jpg or .png image to use as the
        cover art for an audio-only output. We recommend a low bit-size file because the image
        increases the output audio bandwidth. The image is attached to the audio as an ID3 tag,
        frame type APIC, picture type 0x10, as per the "ID3 tag version 2.4.0 - Native Frames"
        standard.

          - **PasswordParam** *(string) --* key used to extract the password from EC2 Parameter
          store

          - **Uri** *(string) --* Uniform Resource Identifier - This should be a path to a file
          accessible to the Live system (eg. a http:// URI) depending on the output type. For
          example, a RTMP destination should have a uri simliar to: "rtmp://fmsserver/live".

          - **Username** *(string) --* Documentation update needed

        - **AudioTrackType** *(string) --* Four types of audio-only tracks are supported: Audio-Only
        Variant Stream The client can play back this audio-only stream instead of video in
        low-bandwidth scenarios. Represented as an EXT-X-STREAM-INF in the HLS manifest. Alternate
        Audio, Auto Select, Default Alternate rendition that the client should try to play back by
        default. Represented as an EXT-X-MEDIA in the HLS manifest with DEFAULT=YES, AUTOSELECT=
            YES
        Alternate Audio, Auto Select, Not Default Alternate rendition that the client may try to
        play back by default. Represented as an EXT-X-MEDIA in the HLS manifest with DEFAULT=NO,
        AUTOSELECT=
            YES Alternate Audio, not Auto Select Alternate rendition that the client will not
        try to play back by default. Represented as an EXT-X-MEDIA in the HLS manifest with
        DEFAULT=NO, AUTOSELECT=NO

      - **StandardHlsSettings** *(dict) --* Standard Hls Settings

        - **AudioRenditionSets** *(string) --* List all the audio groups that are used with the
        video output stream. Input all the audio GROUP-IDs that are associated to the video,
        separate by ','.

        - **M3u8Settings** *(dict) --* Settings information for the .m3u8 container

          - **AudioFramesPerPes** *(integer) --* The number of audio frames to insert for each PES
          packet.

          - **AudioPids** *(string) --* Packet Identifier (PID) of the elementary audio stream(s) in
          the transport stream. Multiple values are accepted, and can be entered in ranges and/or by
          comma separation. Can be entered as decimal or hexadecimal values.

          - **EcmPid** *(string) --* This parameter is unused and deprecated.

          - **NielsenId3Behavior** *(string) --* If set to passthrough, Nielsen inaudible tones for
          media tracking will be detected in the input audio and an equivalent ID3 tag will be
          inserted in the output.

          - **PatInterval** *(integer) --* The number of milliseconds between instances of this
          table in the output transport stream. A value of \\"0\\" writes out the PMT once per
          segment file.

          - **PcrControl** *(string) --* When set to pcrEveryPesPacket, a Program Clock Reference
          value is inserted for every Packetized Elementary Stream (PES) header. This parameter is
          effective only when the PCR PID is the same as the video or audio elementary stream.

          - **PcrPeriod** *(integer) --* Maximum time in milliseconds between Program Clock
          References (PCRs) inserted into the transport stream.

          - **PcrPid** *(string) --* Packet Identifier (PID) of the Program Clock Reference (PCR) in
          the transport stream. When no value is given, the encoder will assign the same value as
          the Video PID. Can be entered as a decimal or hexadecimal value.

          - **PmtInterval** *(integer) --* The number of milliseconds between instances of this
          table in the output transport stream. A value of \\"0\\" writes out the PMT once per
          segment file.

          - **PmtPid** *(string) --* Packet Identifier (PID) for the Program Map Table (PMT) in the
          transport stream. Can be entered as a decimal or hexadecimal value.

          - **ProgramNum** *(integer) --* The value of the program number field in the Program Map
          Table.

          - **Scte35Behavior** *(string) --* If set to passthrough, passes any SCTE-35 signals from
          the input source to this output.

          - **Scte35Pid** *(string) --* Packet Identifier (PID) of the SCTE-35 stream in the
          transport stream. Can be entered as a decimal or hexadecimal value.

          - **TimedMetadataBehavior** *(string) --* When set to passthrough, timed metadata is
          passed through from input to output.

          - **TimedMetadataPid** *(string) --* Packet Identifier (PID) of the timed metadata stream
          in the transport stream. Can be entered as a decimal or hexadecimal value. Valid values
          are 32 (or 0x20)..8182 (or 0x1ff6).

          - **TransportStreamId** *(integer) --* The value of the transport stream ID field in the
          Program Map Table.

          - **VideoPid** *(string) --* Packet Identifier (PID) of the elementary video stream in the
          transport stream. Can be entered as a decimal or hexadecimal value.

    - **NameModifier** *(string) --* String concatenated to the end of the destination filename.
    Accepts \\"Format Identifiers\\":#formatIdentifierParameters.

    - **SegmentModifier** *(string) --* String concatenated to end of segment filenames.
    """


_ClientStopChannelResponseEncoderSettingsOutputGroupsOutputsOutputSettingsMsSmoothOutputSettingsTypeDef = TypedDict(
    "_ClientStopChannelResponseEncoderSettingsOutputGroupsOutputsOutputSettingsMsSmoothOutputSettingsTypeDef",
    {"H265PackagingType": str, "NameModifier": str},
    total=False,
)


class ClientStopChannelResponseEncoderSettingsOutputGroupsOutputsOutputSettingsMsSmoothOutputSettingsTypeDef(
    _ClientStopChannelResponseEncoderSettingsOutputGroupsOutputsOutputSettingsMsSmoothOutputSettingsTypeDef
):
    """
    Type definition for `ClientStopChannelResponseEncoderSettingsOutputGroupsOutputsOutputSettings`
    `MsSmoothOutputSettings`

    - **H265PackagingType** *(string) --* Only applicable when this output is referencing an H.265
    video description. Specifies whether MP4 segments should be packaged as HEV1 or HVC1.

    - **NameModifier** *(string) --* String concatenated to the end of the destination filename.
    Required for multiple outputs of the same type.
    """


_ClientStopChannelResponseEncoderSettingsOutputGroupsOutputsOutputSettingsMultiplexOutputSettingsDestinationTypeDef = TypedDict(
    "_ClientStopChannelResponseEncoderSettingsOutputGroupsOutputsOutputSettingsMultiplexOutputSettingsDestinationTypeDef",
    {"DestinationRefId": str},
    total=False,
)


class ClientStopChannelResponseEncoderSettingsOutputGroupsOutputsOutputSettingsMultiplexOutputSettingsDestinationTypeDef(
    _ClientStopChannelResponseEncoderSettingsOutputGroupsOutputsOutputSettingsMultiplexOutputSettingsDestinationTypeDef
):
    """
    Type definition for
    `ClientStopChannelResponseEncoderSettingsOutputGroupsOutputsOutputSettingsMultiplexOutputSettings`
    `Destination`

    - **DestinationRefId** *(string) --* Placeholder documentation for __string
    """


_ClientStopChannelResponseEncoderSettingsOutputGroupsOutputsOutputSettingsMultiplexOutputSettingsTypeDef = TypedDict(
    "_ClientStopChannelResponseEncoderSettingsOutputGroupsOutputsOutputSettingsMultiplexOutputSettingsTypeDef",
    {
        "Destination": ClientStopChannelResponseEncoderSettingsOutputGroupsOutputsOutputSettingsMultiplexOutputSettingsDestinationTypeDef
    },
    total=False,
)


class ClientStopChannelResponseEncoderSettingsOutputGroupsOutputsOutputSettingsMultiplexOutputSettingsTypeDef(
    _ClientStopChannelResponseEncoderSettingsOutputGroupsOutputsOutputSettingsMultiplexOutputSettingsTypeDef
):
    """
    Type definition for `ClientStopChannelResponseEncoderSettingsOutputGroupsOutputsOutputSettings`
    `MultiplexOutputSettings`

    - **Destination** *(dict) --* Destination is a Multiplex.

      - **DestinationRefId** *(string) --* Placeholder documentation for __string
    """


_ClientStopChannelResponseEncoderSettingsOutputGroupsOutputsOutputSettingsRtmpOutputSettingsDestinationTypeDef = TypedDict(
    "_ClientStopChannelResponseEncoderSettingsOutputGroupsOutputsOutputSettingsRtmpOutputSettingsDestinationTypeDef",
    {"DestinationRefId": str},
    total=False,
)


class ClientStopChannelResponseEncoderSettingsOutputGroupsOutputsOutputSettingsRtmpOutputSettingsDestinationTypeDef(
    _ClientStopChannelResponseEncoderSettingsOutputGroupsOutputsOutputSettingsRtmpOutputSettingsDestinationTypeDef
):
    """
    Type definition for
    `ClientStopChannelResponseEncoderSettingsOutputGroupsOutputsOutputSettingsRtmpOutputSettings`
    `Destination`

    - **DestinationRefId** *(string) --* Placeholder documentation for __string
    """


_ClientStopChannelResponseEncoderSettingsOutputGroupsOutputsOutputSettingsRtmpOutputSettingsTypeDef = TypedDict(
    "_ClientStopChannelResponseEncoderSettingsOutputGroupsOutputsOutputSettingsRtmpOutputSettingsTypeDef",
    {
        "CertificateMode": str,
        "ConnectionRetryInterval": int,
        "Destination": ClientStopChannelResponseEncoderSettingsOutputGroupsOutputsOutputSettingsRtmpOutputSettingsDestinationTypeDef,
        "NumRetries": int,
    },
    total=False,
)


class ClientStopChannelResponseEncoderSettingsOutputGroupsOutputsOutputSettingsRtmpOutputSettingsTypeDef(
    _ClientStopChannelResponseEncoderSettingsOutputGroupsOutputsOutputSettingsRtmpOutputSettingsTypeDef
):
    """
    Type definition for `ClientStopChannelResponseEncoderSettingsOutputGroupsOutputsOutputSettings`
    `RtmpOutputSettings`

    - **CertificateMode** *(string) --* If set to verifyAuthenticity, verify the tls certificate
    chain to a trusted Certificate Authority (CA). This will cause rtmps outputs with self-signed
    certificates to fail.

    - **ConnectionRetryInterval** *(integer) --* Number of seconds to wait before retrying a
    connection to the Flash Media server if the connection is lost.

    - **Destination** *(dict) --* The RTMP endpoint excluding the stream name (eg.
    rtmp://host/appname). For connection to Akamai, a username and password must be supplied. URI
    fields accept format identifiers.

      - **DestinationRefId** *(string) --* Placeholder documentation for __string

    - **NumRetries** *(integer) --* Number of retry attempts.
    """


_ClientStopChannelResponseEncoderSettingsOutputGroupsOutputsOutputSettingsUdpOutputSettingsContainerSettingsM2tsSettingsDvbNitSettingsTypeDef = TypedDict(
    "_ClientStopChannelResponseEncoderSettingsOutputGroupsOutputsOutputSettingsUdpOutputSettingsContainerSettingsM2tsSettingsDvbNitSettingsTypeDef",
    {"NetworkId": int, "NetworkName": str, "RepInterval": int},
    total=False,
)


class ClientStopChannelResponseEncoderSettingsOutputGroupsOutputsOutputSettingsUdpOutputSettingsContainerSettingsM2tsSettingsDvbNitSettingsTypeDef(
    _ClientStopChannelResponseEncoderSettingsOutputGroupsOutputsOutputSettingsUdpOutputSettingsContainerSettingsM2tsSettingsDvbNitSettingsTypeDef
):
    """
    Type definition for
    `ClientStopChannelResponseEncoderSettingsOutputGroupsOutputsOutputSettingsUdpOutputSettingsContainerSettingsM2tsSettings`
    `DvbNitSettings`

    - **NetworkId** *(integer) --* The numeric value placed in the Network Information Table (NIT).

    - **NetworkName** *(string) --* The network name text placed in the networkNameDescriptor inside
    the Network Information Table. Maximum length is 256 characters.

    - **RepInterval** *(integer) --* The number of milliseconds between instances of this table in
    the output transport stream.
    """


_ClientStopChannelResponseEncoderSettingsOutputGroupsOutputsOutputSettingsUdpOutputSettingsContainerSettingsM2tsSettingsDvbSdtSettingsTypeDef = TypedDict(
    "_ClientStopChannelResponseEncoderSettingsOutputGroupsOutputsOutputSettingsUdpOutputSettingsContainerSettingsM2tsSettingsDvbSdtSettingsTypeDef",
    {"OutputSdt": str, "RepInterval": int, "ServiceName": str, "ServiceProviderName": str},
    total=False,
)


class ClientStopChannelResponseEncoderSettingsOutputGroupsOutputsOutputSettingsUdpOutputSettingsContainerSettingsM2tsSettingsDvbSdtSettingsTypeDef(
    _ClientStopChannelResponseEncoderSettingsOutputGroupsOutputsOutputSettingsUdpOutputSettingsContainerSettingsM2tsSettingsDvbSdtSettingsTypeDef
):
    """
    Type definition for
    `ClientStopChannelResponseEncoderSettingsOutputGroupsOutputsOutputSettingsUdpOutputSettingsContainerSettingsM2tsSettings`
    `DvbSdtSettings`

    - **OutputSdt** *(string) --* Selects method of inserting SDT information into output stream.
    The sdtFollow setting copies SDT information from input stream to output stream. The
    sdtFollowIfPresent setting copies SDT information from input stream to output stream if SDT
    information is present in the input, otherwise it will fall back on the user-defined values. The
    sdtManual setting means user will enter the SDT information. The sdtNone setting means output
    stream will not contain SDT information.

    - **RepInterval** *(integer) --* The number of milliseconds between instances of this table in
    the output transport stream.

    - **ServiceName** *(string) --* The service name placed in the serviceDescriptor in the Service
    Description Table. Maximum length is 256 characters.

    - **ServiceProviderName** *(string) --* The service provider name placed in the
    serviceDescriptor in the Service Description Table. Maximum length is 256 characters.
    """


_ClientStopChannelResponseEncoderSettingsOutputGroupsOutputsOutputSettingsUdpOutputSettingsContainerSettingsM2tsSettingsDvbTdtSettingsTypeDef = TypedDict(
    "_ClientStopChannelResponseEncoderSettingsOutputGroupsOutputsOutputSettingsUdpOutputSettingsContainerSettingsM2tsSettingsDvbTdtSettingsTypeDef",
    {"RepInterval": int},
    total=False,
)


class ClientStopChannelResponseEncoderSettingsOutputGroupsOutputsOutputSettingsUdpOutputSettingsContainerSettingsM2tsSettingsDvbTdtSettingsTypeDef(
    _ClientStopChannelResponseEncoderSettingsOutputGroupsOutputsOutputSettingsUdpOutputSettingsContainerSettingsM2tsSettingsDvbTdtSettingsTypeDef
):
    """
    Type definition for
    `ClientStopChannelResponseEncoderSettingsOutputGroupsOutputsOutputSettingsUdpOutputSettingsContainerSettingsM2tsSettings`
    `DvbTdtSettings`

    - **RepInterval** *(integer) --* The number of milliseconds between instances of this table in
    the output transport stream.
    """


_ClientStopChannelResponseEncoderSettingsOutputGroupsOutputsOutputSettingsUdpOutputSettingsContainerSettingsM2tsSettingsTypeDef = TypedDict(
    "_ClientStopChannelResponseEncoderSettingsOutputGroupsOutputsOutputSettingsUdpOutputSettingsContainerSettingsM2tsSettingsTypeDef",
    {
        "AbsentInputAudioBehavior": str,
        "Arib": str,
        "AribCaptionsPid": str,
        "AribCaptionsPidControl": str,
        "AudioBufferModel": str,
        "AudioFramesPerPes": int,
        "AudioPids": str,
        "AudioStreamType": str,
        "Bitrate": int,
        "BufferModel": str,
        "CcDescriptor": str,
        "DvbNitSettings": ClientStopChannelResponseEncoderSettingsOutputGroupsOutputsOutputSettingsUdpOutputSettingsContainerSettingsM2tsSettingsDvbNitSettingsTypeDef,
        "DvbSdtSettings": ClientStopChannelResponseEncoderSettingsOutputGroupsOutputsOutputSettingsUdpOutputSettingsContainerSettingsM2tsSettingsDvbSdtSettingsTypeDef,
        "DvbSubPids": str,
        "DvbTdtSettings": ClientStopChannelResponseEncoderSettingsOutputGroupsOutputsOutputSettingsUdpOutputSettingsContainerSettingsM2tsSettingsDvbTdtSettingsTypeDef,
        "DvbTeletextPid": str,
        "Ebif": str,
        "EbpAudioInterval": str,
        "EbpLookaheadMs": int,
        "EbpPlacement": str,
        "EcmPid": str,
        "EsRateInPes": str,
        "EtvPlatformPid": str,
        "EtvSignalPid": str,
        "FragmentTime": float,
        "Klv": str,
        "KlvDataPids": str,
        "NielsenId3Behavior": str,
        "NullPacketBitrate": float,
        "PatInterval": int,
        "PcrControl": str,
        "PcrPeriod": int,
        "PcrPid": str,
        "PmtInterval": int,
        "PmtPid": str,
        "ProgramNum": int,
        "RateMode": str,
        "Scte27Pids": str,
        "Scte35Control": str,
        "Scte35Pid": str,
        "SegmentationMarkers": str,
        "SegmentationStyle": str,
        "SegmentationTime": float,
        "TimedMetadataBehavior": str,
        "TimedMetadataPid": str,
        "TransportStreamId": int,
        "VideoPid": str,
    },
    total=False,
)


class ClientStopChannelResponseEncoderSettingsOutputGroupsOutputsOutputSettingsUdpOutputSettingsContainerSettingsM2tsSettingsTypeDef(
    _ClientStopChannelResponseEncoderSettingsOutputGroupsOutputsOutputSettingsUdpOutputSettingsContainerSettingsM2tsSettingsTypeDef
):
    """
    Type definition for
    `ClientStopChannelResponseEncoderSettingsOutputGroupsOutputsOutputSettingsUdpOutputSettingsContainerSettings`
    `M2tsSettings`

    - **AbsentInputAudioBehavior** *(string) --* When set to drop, output audio streams will be
    removed from the program if the selected input audio stream is removed from the input. This
    allows the output audio configuration to dynamically change based on input configuration. If
    this is set to encodeSilence, all output audio streams will output encoded silence when not
    connected to an active input stream.

    - **Arib** *(string) --* When set to enabled, uses ARIB-compliant field muxing and removes video
    descriptor.

    - **AribCaptionsPid** *(string) --* Packet Identifier (PID) for ARIB Captions in the transport
    stream. Can be entered as a decimal or hexadecimal value. Valid values are 32 (or 0x20)..8182
    (or 0x1ff6).

    - **AribCaptionsPidControl** *(string) --* If set to auto, pid number used for ARIB Captions
    will be auto-selected from unused pids. If set to useConfigured, ARIB Captions will be on the
    configured pid number.

    - **AudioBufferModel** *(string) --* When set to dvb, uses DVB buffer model for Dolby Digital
    audio. When set to atsc, the ATSC model is used.

    - **AudioFramesPerPes** *(integer) --* The number of audio frames to insert for each PES packet.

    - **AudioPids** *(string) --* Packet Identifier (PID) of the elementary audio stream(s) in the
    transport stream. Multiple values are accepted, and can be entered in ranges and/or by comma
    separation. Can be entered as decimal or hexadecimal values. Each PID specified must be in the
    range of 32 (or 0x20)..8182 (or 0x1ff6).

    - **AudioStreamType** *(string) --* When set to atsc, uses stream type = 0x81 for AC3 and stream
    type = 0x87 for EAC3. When set to dvb, uses stream type = 0x06.

    - **Bitrate** *(integer) --* The output bitrate of the transport stream in bits per second.
    Setting to 0 lets the muxer automatically determine the appropriate bitrate.

    - **BufferModel** *(string) --* If set to multiplex, use multiplex buffer model for accurate
    interleaving. Setting to bufferModel to none can lead to lower latency, but low-memory devices
    may not be able to play back the stream without interruptions.

    - **CcDescriptor** *(string) --* When set to enabled, generates captionServiceDescriptor in PMT.

    - **DvbNitSettings** *(dict) --* Inserts DVB Network Information Table (NIT) at the specified
    table repetition interval.

      - **NetworkId** *(integer) --* The numeric value placed in the Network Information Table
      (NIT).

      - **NetworkName** *(string) --* The network name text placed in the networkNameDescriptor
      inside the Network Information Table. Maximum length is 256 characters.

      - **RepInterval** *(integer) --* The number of milliseconds between instances of this table in
      the output transport stream.

    - **DvbSdtSettings** *(dict) --* Inserts DVB Service Description Table (SDT) at the specified
    table repetition interval.

      - **OutputSdt** *(string) --* Selects method of inserting SDT information into output stream.
      The sdtFollow setting copies SDT information from input stream to output stream. The
      sdtFollowIfPresent setting copies SDT information from input stream to output stream if SDT
      information is present in the input, otherwise it will fall back on the user-defined values.
      The sdtManual setting means user will enter the SDT information. The sdtNone setting means
      output stream will not contain SDT information.

      - **RepInterval** *(integer) --* The number of milliseconds between instances of this table in
      the output transport stream.

      - **ServiceName** *(string) --* The service name placed in the serviceDescriptor in the
      Service Description Table. Maximum length is 256 characters.

      - **ServiceProviderName** *(string) --* The service provider name placed in the
      serviceDescriptor in the Service Description Table. Maximum length is 256 characters.

    - **DvbSubPids** *(string) --* Packet Identifier (PID) for input source DVB Subtitle data to
    this output. Multiple values are accepted, and can be entered in ranges and/or by comma
    separation. Can be entered as decimal or hexadecimal values. Each PID specified must be in the
    range of 32 (or 0x20)..8182 (or 0x1ff6).

    - **DvbTdtSettings** *(dict) --* Inserts DVB Time and Date Table (TDT) at the specified table
    repetition interval.

      - **RepInterval** *(integer) --* The number of milliseconds between instances of this table in
      the output transport stream.

    - **DvbTeletextPid** *(string) --* Packet Identifier (PID) for input source DVB Teletext data to
    this output. Can be entered as a decimal or hexadecimal value. Valid values are 32 (or
    0x20)..8182 (or 0x1ff6).

    - **Ebif** *(string) --* If set to passthrough, passes any EBIF data from the input source to
    this output.

    - **EbpAudioInterval** *(string) --* When videoAndFixedIntervals is selected, audio EBP markers
    will be added to partitions 3 and 4. The interval between these additional markers will be
    fixed, and will be slightly shorter than the video EBP marker interval. Only available when EBP
    Cablelabs segmentation markers are selected. Partitions 1 and 2 will always follow the video
    interval.

    - **EbpLookaheadMs** *(integer) --* When set, enforces that Encoder Boundary Points do not come
    within the specified time interval of each other by looking ahead at input video. If another EBP
    is going to come in within the specified time interval, the current EBP is not emitted, and the
    segment is "stretched" to the next marker. The lookahead value does not add latency to the
    system. The Live Event must be configured elsewhere to create sufficient latency to make the
    lookahead accurate.

    - **EbpPlacement** *(string) --* Controls placement of EBP on Audio PIDs. If set to
    videoAndAudioPids, EBP markers will be placed on the video PID and all audio PIDs. If set to
    videoPid, EBP markers will be placed on only the video PID.

    - **EcmPid** *(string) --* This field is unused and deprecated.

    - **EsRateInPes** *(string) --* Include or exclude the ES Rate field in the PES header.

    - **EtvPlatformPid** *(string) --* Packet Identifier (PID) for input source ETV Platform data to
    this output. Can be entered as a decimal or hexadecimal value. Valid values are 32 (or
    0x20)..8182 (or 0x1ff6).

    - **EtvSignalPid** *(string) --* Packet Identifier (PID) for input source ETV Signal data to
    this output. Can be entered as a decimal or hexadecimal value. Valid values are 32 (or
    0x20)..8182 (or 0x1ff6).

    - **FragmentTime** *(float) --* The length in seconds of each fragment. Only used with EBP
    markers.

    - **Klv** *(string) --* If set to passthrough, passes any KLV data from the input source to this
    output.

    - **KlvDataPids** *(string) --* Packet Identifier (PID) for input source KLV data to this
    output. Multiple values are accepted, and can be entered in ranges and/or by comma separation.
    Can be entered as decimal or hexadecimal values. Each PID specified must be in the range of 32
    (or 0x20)..8182 (or 0x1ff6).

    - **NielsenId3Behavior** *(string) --* If set to passthrough, Nielsen inaudible tones for media
    tracking will be detected in the input audio and an equivalent ID3 tag will be inserted in the
    output.

    - **NullPacketBitrate** *(float) --* Value in bits per second of extra null packets to insert
    into the transport stream. This can be used if a downstream encryption system requires periodic
    null packets.

    - **PatInterval** *(integer) --* The number of milliseconds between instances of this table in
    the output transport stream. Valid values are 0, 10..1000.

    - **PcrControl** *(string) --* When set to pcrEveryPesPacket, a Program Clock Reference value is
    inserted for every Packetized Elementary Stream (PES) header. This parameter is effective only
    when the PCR PID is the same as the video or audio elementary stream.

    - **PcrPeriod** *(integer) --* Maximum time in milliseconds between Program Clock Reference
    (PCRs) inserted into the transport stream.

    - **PcrPid** *(string) --* Packet Identifier (PID) of the Program Clock Reference (PCR) in the
    transport stream. When no value is given, the encoder will assign the same value as the Video
    PID. Can be entered as a decimal or hexadecimal value. Valid values are 32 (or 0x20)..8182 (or
    0x1ff6).

    - **PmtInterval** *(integer) --* The number of milliseconds between instances of this table in
    the output transport stream. Valid values are 0, 10..1000.

    - **PmtPid** *(string) --* Packet Identifier (PID) for the Program Map Table (PMT) in the
    transport stream. Can be entered as a decimal or hexadecimal value. Valid values are 32 (or
    0x20)..8182 (or 0x1ff6).

    - **ProgramNum** *(integer) --* The value of the program number field in the Program Map Table.

    - **RateMode** *(string) --* When vbr, does not insert null packets into transport stream to
    fill specified bitrate. The bitrate setting acts as the maximum bitrate when vbr is set.

    - **Scte27Pids** *(string) --* Packet Identifier (PID) for input source SCTE-27 data to this
    output. Multiple values are accepted, and can be entered in ranges and/or by comma separation.
    Can be entered as decimal or hexadecimal values. Each PID specified must be in the range of 32
    (or 0x20)..8182 (or 0x1ff6).

    - **Scte35Control** *(string) --* Optionally pass SCTE-35 signals from the input source to this
    output.

    - **Scte35Pid** *(string) --* Packet Identifier (PID) of the SCTE-35 stream in the transport
    stream. Can be entered as a decimal or hexadecimal value. Valid values are 32 (or 0x20)..8182
    (or 0x1ff6).

    - **SegmentationMarkers** *(string) --* Inserts segmentation markers at each segmentationTime
    period. raiSegstart sets the Random Access Indicator bit in the adaptation field. raiAdapt sets
    the RAI bit and adds the current timecode in the private data bytes. psiSegstart inserts PAT and
    PMT tables at the start of segments. ebp adds Encoder Boundary Point information to the
    adaptation field as per OpenCable specification OC-SP-EBP-I01-130118. ebpLegacy adds Encoder
    Boundary Point information to the adaptation field using a legacy proprietary format.

    - **SegmentationStyle** *(string) --* The segmentation style parameter controls how segmentation
    markers are inserted into the transport stream. With avails, it is possible that segments may be
    truncated, which can influence where future segmentation markers are inserted. When a
    segmentation style of "resetCadence" is selected and a segment is truncated due to an avail, we
    will reset the segmentation cadence. This means the subsequent segment will have a duration of
    $segmentationTime seconds. When a segmentation style of "maintainCadence" is selected and a
    segment is truncated due to an avail, we will not reset the segmentation cadence. This means the
    subsequent segment will likely be truncated as well. However, all segments after that will have
    a duration of $segmentationTime seconds. Note that EBP lookahead is a slight exception to this
    rule.

    - **SegmentationTime** *(float) --* The length in seconds of each segment. Required unless
    markers is set to None_.

    - **TimedMetadataBehavior** *(string) --* When set to passthrough, timed metadata will be passed
    through from input to output.

    - **TimedMetadataPid** *(string) --* Packet Identifier (PID) of the timed metadata stream in the
    transport stream. Can be entered as a decimal or hexadecimal value. Valid values are 32 (or
    0x20)..8182 (or 0x1ff6).

    - **TransportStreamId** *(integer) --* The value of the transport stream ID field in the Program
    Map Table.

    - **VideoPid** *(string) --* Packet Identifier (PID) of the elementary video stream in the
    transport stream. Can be entered as a decimal or hexadecimal value. Valid values are 32 (or
    0x20)..8182 (or 0x1ff6).
    """


_ClientStopChannelResponseEncoderSettingsOutputGroupsOutputsOutputSettingsUdpOutputSettingsContainerSettingsTypeDef = TypedDict(
    "_ClientStopChannelResponseEncoderSettingsOutputGroupsOutputsOutputSettingsUdpOutputSettingsContainerSettingsTypeDef",
    {
        "M2tsSettings": ClientStopChannelResponseEncoderSettingsOutputGroupsOutputsOutputSettingsUdpOutputSettingsContainerSettingsM2tsSettingsTypeDef
    },
    total=False,
)


class ClientStopChannelResponseEncoderSettingsOutputGroupsOutputsOutputSettingsUdpOutputSettingsContainerSettingsTypeDef(
    _ClientStopChannelResponseEncoderSettingsOutputGroupsOutputsOutputSettingsUdpOutputSettingsContainerSettingsTypeDef
):
    """
    Type definition for
    `ClientStopChannelResponseEncoderSettingsOutputGroupsOutputsOutputSettingsUdpOutputSettings`
    `ContainerSettings`

    - **M2tsSettings** *(dict) --* M2ts Settings

      - **AbsentInputAudioBehavior** *(string) --* When set to drop, output audio streams will be
      removed from the program if the selected input audio stream is removed from the input. This
      allows the output audio configuration to dynamically change based on input configuration. If
      this is set to encodeSilence, all output audio streams will output encoded silence when not
      connected to an active input stream.

      - **Arib** *(string) --* When set to enabled, uses ARIB-compliant field muxing and removes
      video descriptor.

      - **AribCaptionsPid** *(string) --* Packet Identifier (PID) for ARIB Captions in the transport
      stream. Can be entered as a decimal or hexadecimal value. Valid values are 32 (or 0x20)..8182
      (or 0x1ff6).

      - **AribCaptionsPidControl** *(string) --* If set to auto, pid number used for ARIB Captions
      will be auto-selected from unused pids. If set to useConfigured, ARIB Captions will be on the
      configured pid number.

      - **AudioBufferModel** *(string) --* When set to dvb, uses DVB buffer model for Dolby Digital
      audio. When set to atsc, the ATSC model is used.

      - **AudioFramesPerPes** *(integer) --* The number of audio frames to insert for each PES
      packet.

      - **AudioPids** *(string) --* Packet Identifier (PID) of the elementary audio stream(s) in the
      transport stream. Multiple values are accepted, and can be entered in ranges and/or by comma
      separation. Can be entered as decimal or hexadecimal values. Each PID specified must be in the
      range of 32 (or 0x20)..8182 (or 0x1ff6).

      - **AudioStreamType** *(string) --* When set to atsc, uses stream type = 0x81 for AC3 and
      stream type = 0x87 for EAC3. When set to dvb, uses stream type = 0x06.

      - **Bitrate** *(integer) --* The output bitrate of the transport stream in bits per second.
      Setting to 0 lets the muxer automatically determine the appropriate bitrate.

      - **BufferModel** *(string) --* If set to multiplex, use multiplex buffer model for accurate
      interleaving. Setting to bufferModel to none can lead to lower latency, but low-memory devices
      may not be able to play back the stream without interruptions.

      - **CcDescriptor** *(string) --* When set to enabled, generates captionServiceDescriptor in
      PMT.

      - **DvbNitSettings** *(dict) --* Inserts DVB Network Information Table (NIT) at the specified
      table repetition interval.

        - **NetworkId** *(integer) --* The numeric value placed in the Network Information Table
        (NIT).

        - **NetworkName** *(string) --* The network name text placed in the networkNameDescriptor
        inside the Network Information Table. Maximum length is 256 characters.

        - **RepInterval** *(integer) --* The number of milliseconds between instances of this table
        in the output transport stream.

      - **DvbSdtSettings** *(dict) --* Inserts DVB Service Description Table (SDT) at the specified
      table repetition interval.

        - **OutputSdt** *(string) --* Selects method of inserting SDT information into output
        stream. The sdtFollow setting copies SDT information from input stream to output stream. The
        sdtFollowIfPresent setting copies SDT information from input stream to output stream if SDT
        information is present in the input, otherwise it will fall back on the user-defined values.
        The sdtManual setting means user will enter the SDT information. The sdtNone setting means
        output stream will not contain SDT information.

        - **RepInterval** *(integer) --* The number of milliseconds between instances of this table
        in the output transport stream.

        - **ServiceName** *(string) --* The service name placed in the serviceDescriptor in the
        Service Description Table. Maximum length is 256 characters.

        - **ServiceProviderName** *(string) --* The service provider name placed in the
        serviceDescriptor in the Service Description Table. Maximum length is 256 characters.

      - **DvbSubPids** *(string) --* Packet Identifier (PID) for input source DVB Subtitle data to
      this output. Multiple values are accepted, and can be entered in ranges and/or by comma
      separation. Can be entered as decimal or hexadecimal values. Each PID specified must be in the
      range of 32 (or 0x20)..8182 (or 0x1ff6).

      - **DvbTdtSettings** *(dict) --* Inserts DVB Time and Date Table (TDT) at the specified table
      repetition interval.

        - **RepInterval** *(integer) --* The number of milliseconds between instances of this table
        in the output transport stream.

      - **DvbTeletextPid** *(string) --* Packet Identifier (PID) for input source DVB Teletext data
      to this output. Can be entered as a decimal or hexadecimal value. Valid values are 32 (or
      0x20)..8182 (or 0x1ff6).

      - **Ebif** *(string) --* If set to passthrough, passes any EBIF data from the input source to
      this output.

      - **EbpAudioInterval** *(string) --* When videoAndFixedIntervals is selected, audio EBP
      markers will be added to partitions 3 and 4. The interval between these additional markers
      will be fixed, and will be slightly shorter than the video EBP marker interval. Only available
      when EBP Cablelabs segmentation markers are selected. Partitions 1 and 2 will always follow
      the video interval.

      - **EbpLookaheadMs** *(integer) --* When set, enforces that Encoder Boundary Points do not
      come within the specified time interval of each other by looking ahead at input video. If
      another EBP is going to come in within the specified time interval, the current EBP is not
      emitted, and the segment is "stretched" to the next marker. The lookahead value does not add
      latency to the system. The Live Event must be configured elsewhere to create sufficient
      latency to make the lookahead accurate.

      - **EbpPlacement** *(string) --* Controls placement of EBP on Audio PIDs. If set to
      videoAndAudioPids, EBP markers will be placed on the video PID and all audio PIDs. If set to
      videoPid, EBP markers will be placed on only the video PID.

      - **EcmPid** *(string) --* This field is unused and deprecated.

      - **EsRateInPes** *(string) --* Include or exclude the ES Rate field in the PES header.

      - **EtvPlatformPid** *(string) --* Packet Identifier (PID) for input source ETV Platform data
      to this output. Can be entered as a decimal or hexadecimal value. Valid values are 32 (or
      0x20)..8182 (or 0x1ff6).

      - **EtvSignalPid** *(string) --* Packet Identifier (PID) for input source ETV Signal data to
      this output. Can be entered as a decimal or hexadecimal value. Valid values are 32 (or
      0x20)..8182 (or 0x1ff6).

      - **FragmentTime** *(float) --* The length in seconds of each fragment. Only used with EBP
      markers.

      - **Klv** *(string) --* If set to passthrough, passes any KLV data from the input source to
      this output.

      - **KlvDataPids** *(string) --* Packet Identifier (PID) for input source KLV data to this
      output. Multiple values are accepted, and can be entered in ranges and/or by comma separation.
      Can be entered as decimal or hexadecimal values. Each PID specified must be in the range of 32
      (or 0x20)..8182 (or 0x1ff6).

      - **NielsenId3Behavior** *(string) --* If set to passthrough, Nielsen inaudible tones for
      media tracking will be detected in the input audio and an equivalent ID3 tag will be inserted
      in the output.

      - **NullPacketBitrate** *(float) --* Value in bits per second of extra null packets to insert
      into the transport stream. This can be used if a downstream encryption system requires
      periodic null packets.

      - **PatInterval** *(integer) --* The number of milliseconds between instances of this table in
      the output transport stream. Valid values are 0, 10..1000.

      - **PcrControl** *(string) --* When set to pcrEveryPesPacket, a Program Clock Reference value
      is inserted for every Packetized Elementary Stream (PES) header. This parameter is effective
      only when the PCR PID is the same as the video or audio elementary stream.

      - **PcrPeriod** *(integer) --* Maximum time in milliseconds between Program Clock Reference
      (PCRs) inserted into the transport stream.

      - **PcrPid** *(string) --* Packet Identifier (PID) of the Program Clock Reference (PCR) in the
      transport stream. When no value is given, the encoder will assign the same value as the Video
      PID. Can be entered as a decimal or hexadecimal value. Valid values are 32 (or 0x20)..8182 (or
      0x1ff6).

      - **PmtInterval** *(integer) --* The number of milliseconds between instances of this table in
      the output transport stream. Valid values are 0, 10..1000.

      - **PmtPid** *(string) --* Packet Identifier (PID) for the Program Map Table (PMT) in the
      transport stream. Can be entered as a decimal or hexadecimal value. Valid values are 32 (or
      0x20)..8182 (or 0x1ff6).

      - **ProgramNum** *(integer) --* The value of the program number field in the Program Map
      Table.

      - **RateMode** *(string) --* When vbr, does not insert null packets into transport stream to
      fill specified bitrate. The bitrate setting acts as the maximum bitrate when vbr is set.

      - **Scte27Pids** *(string) --* Packet Identifier (PID) for input source SCTE-27 data to this
      output. Multiple values are accepted, and can be entered in ranges and/or by comma separation.
      Can be entered as decimal or hexadecimal values. Each PID specified must be in the range of 32
      (or 0x20)..8182 (or 0x1ff6).

      - **Scte35Control** *(string) --* Optionally pass SCTE-35 signals from the input source to
      this output.

      - **Scte35Pid** *(string) --* Packet Identifier (PID) of the SCTE-35 stream in the transport
      stream. Can be entered as a decimal or hexadecimal value. Valid values are 32 (or 0x20)..8182
      (or 0x1ff6).

      - **SegmentationMarkers** *(string) --* Inserts segmentation markers at each segmentationTime
      period. raiSegstart sets the Random Access Indicator bit in the adaptation field. raiAdapt
      sets the RAI bit and adds the current timecode in the private data bytes. psiSegstart inserts
      PAT and PMT tables at the start of segments. ebp adds Encoder Boundary Point information to
      the adaptation field as per OpenCable specification OC-SP-EBP-I01-130118. ebpLegacy adds
      Encoder Boundary Point information to the adaptation field using a legacy proprietary format.

      - **SegmentationStyle** *(string) --* The segmentation style parameter controls how
      segmentation markers are inserted into the transport stream. With avails, it is possible that
      segments may be truncated, which can influence where future segmentation markers are inserted.
      When a segmentation style of "resetCadence" is selected and a segment is truncated due to an
      avail, we will reset the segmentation cadence. This means the subsequent segment will have a
      duration of $segmentationTime seconds. When a segmentation style of "maintainCadence" is
      selected and a segment is truncated due to an avail, we will not reset the segmentation
      cadence. This means the subsequent segment will likely be truncated as well. However, all
      segments after that will have a duration of $segmentationTime seconds. Note that EBP lookahead
      is a slight exception to this rule.

      - **SegmentationTime** *(float) --* The length in seconds of each segment. Required unless
      markers is set to None_.

      - **TimedMetadataBehavior** *(string) --* When set to passthrough, timed metadata will be
      passed through from input to output.

      - **TimedMetadataPid** *(string) --* Packet Identifier (PID) of the timed metadata stream in
      the transport stream. Can be entered as a decimal or hexadecimal value. Valid values are 32
      (or 0x20)..8182 (or 0x1ff6).

      - **TransportStreamId** *(integer) --* The value of the transport stream ID field in the
      Program Map Table.

      - **VideoPid** *(string) --* Packet Identifier (PID) of the elementary video stream in the
      transport stream. Can be entered as a decimal or hexadecimal value. Valid values are 32 (or
      0x20)..8182 (or 0x1ff6).
    """


_ClientStopChannelResponseEncoderSettingsOutputGroupsOutputsOutputSettingsUdpOutputSettingsDestinationTypeDef = TypedDict(
    "_ClientStopChannelResponseEncoderSettingsOutputGroupsOutputsOutputSettingsUdpOutputSettingsDestinationTypeDef",
    {"DestinationRefId": str},
    total=False,
)


class ClientStopChannelResponseEncoderSettingsOutputGroupsOutputsOutputSettingsUdpOutputSettingsDestinationTypeDef(
    _ClientStopChannelResponseEncoderSettingsOutputGroupsOutputsOutputSettingsUdpOutputSettingsDestinationTypeDef
):
    """
    Type definition for
    `ClientStopChannelResponseEncoderSettingsOutputGroupsOutputsOutputSettingsUdpOutputSettings`
    `Destination`

    - **DestinationRefId** *(string) --* Placeholder documentation for __string
    """


_ClientStopChannelResponseEncoderSettingsOutputGroupsOutputsOutputSettingsUdpOutputSettingsFecOutputSettingsTypeDef = TypedDict(
    "_ClientStopChannelResponseEncoderSettingsOutputGroupsOutputsOutputSettingsUdpOutputSettingsFecOutputSettingsTypeDef",
    {"ColumnDepth": int, "IncludeFec": str, "RowLength": int},
    total=False,
)


class ClientStopChannelResponseEncoderSettingsOutputGroupsOutputsOutputSettingsUdpOutputSettingsFecOutputSettingsTypeDef(
    _ClientStopChannelResponseEncoderSettingsOutputGroupsOutputsOutputSettingsUdpOutputSettingsFecOutputSettingsTypeDef
):
    """
    Type definition for
    `ClientStopChannelResponseEncoderSettingsOutputGroupsOutputsOutputSettingsUdpOutputSettings`
    `FecOutputSettings`

    - **ColumnDepth** *(integer) --* Parameter D from SMPTE 2022-1. The height of the FEC protection
    matrix. The number of transport stream packets per column error correction packet. Must be
    between 4 and 20, inclusive.

    - **IncludeFec** *(string) --* Enables column only or column and row based FEC

    - **RowLength** *(integer) --* Parameter L from SMPTE 2022-1. The width of the FEC protection
    matrix. Must be between 1 and 20, inclusive. If only Column FEC is used, then larger values
    increase robustness. If Row FEC is used, then this is the number of transport stream packets per
    row error correction packet, and the value must be between 4 and 20, inclusive, if includeFec is
    columnAndRow. If includeFec is column, this value must be 1 to 20, inclusive.
    """


_ClientStopChannelResponseEncoderSettingsOutputGroupsOutputsOutputSettingsUdpOutputSettingsTypeDef = TypedDict(
    "_ClientStopChannelResponseEncoderSettingsOutputGroupsOutputsOutputSettingsUdpOutputSettingsTypeDef",
    {
        "BufferMsec": int,
        "ContainerSettings": ClientStopChannelResponseEncoderSettingsOutputGroupsOutputsOutputSettingsUdpOutputSettingsContainerSettingsTypeDef,
        "Destination": ClientStopChannelResponseEncoderSettingsOutputGroupsOutputsOutputSettingsUdpOutputSettingsDestinationTypeDef,
        "FecOutputSettings": ClientStopChannelResponseEncoderSettingsOutputGroupsOutputsOutputSettingsUdpOutputSettingsFecOutputSettingsTypeDef,
    },
    total=False,
)


class ClientStopChannelResponseEncoderSettingsOutputGroupsOutputsOutputSettingsUdpOutputSettingsTypeDef(
    _ClientStopChannelResponseEncoderSettingsOutputGroupsOutputsOutputSettingsUdpOutputSettingsTypeDef
):
    """
    Type definition for `ClientStopChannelResponseEncoderSettingsOutputGroupsOutputsOutputSettings`
    `UdpOutputSettings`

    - **BufferMsec** *(integer) --* UDP output buffering in milliseconds. Larger values increase
    latency through the transcoder but simultaneously assist the transcoder in maintaining a
    constant, low-jitter UDP/RTP output while accommodating clock recovery, input switching, input
    disruptions, picture reordering, etc.

    - **ContainerSettings** *(dict) --* Udp Container Settings

      - **M2tsSettings** *(dict) --* M2ts Settings

        - **AbsentInputAudioBehavior** *(string) --* When set to drop, output audio streams will be
        removed from the program if the selected input audio stream is removed from the input. This
        allows the output audio configuration to dynamically change based on input configuration. If
        this is set to encodeSilence, all output audio streams will output encoded silence when not
        connected to an active input stream.

        - **Arib** *(string) --* When set to enabled, uses ARIB-compliant field muxing and removes
        video descriptor.

        - **AribCaptionsPid** *(string) --* Packet Identifier (PID) for ARIB Captions in the
        transport stream. Can be entered as a decimal or hexadecimal value. Valid values are 32 (or
        0x20)..8182 (or 0x1ff6).

        - **AribCaptionsPidControl** *(string) --* If set to auto, pid number used for ARIB Captions
        will be auto-selected from unused pids. If set to useConfigured, ARIB Captions will be on
        the configured pid number.

        - **AudioBufferModel** *(string) --* When set to dvb, uses DVB buffer model for Dolby
        Digital audio. When set to atsc, the ATSC model is used.

        - **AudioFramesPerPes** *(integer) --* The number of audio frames to insert for each PES
        packet.

        - **AudioPids** *(string) --* Packet Identifier (PID) of the elementary audio stream(s) in
        the transport stream. Multiple values are accepted, and can be entered in ranges and/or by
        comma separation. Can be entered as decimal or hexadecimal values. Each PID specified must
        be in the range of 32 (or 0x20)..8182 (or 0x1ff6).

        - **AudioStreamType** *(string) --* When set to atsc, uses stream type =
             0x81 for AC3 and
        stream type = 0x87 for EAC3. When set to dvb, uses stream type = 0x06.

        - **Bitrate** *(integer) --* The output bitrate of the transport stream in bits per second.
        Setting to 0 lets the muxer automatically determine the appropriate bitrate.

        - **BufferModel** *(string) --* If set to multiplex, use multiplex buffer model for accurate
        interleaving. Setting to bufferModel to none can lead to lower latency, but low-memory
        devices may not be able to play back the stream without interruptions.

        - **CcDescriptor** *(string) --* When set to enabled, generates captionServiceDescriptor in
        PMT.

        - **DvbNitSettings** *(dict) --* Inserts DVB Network Information Table (NIT) at the
        specified table repetition interval.

          - **NetworkId** *(integer) --* The numeric value placed in the Network Information Table
          (NIT).

          - **NetworkName** *(string) --* The network name text placed in the networkNameDescriptor
          inside the Network Information Table. Maximum length is 256 characters.

          - **RepInterval** *(integer) --* The number of milliseconds between instances of this
          table in the output transport stream.

        - **DvbSdtSettings** *(dict) --* Inserts DVB Service Description Table (SDT) at the
        specified table repetition interval.

          - **OutputSdt** *(string) --* Selects method of inserting SDT information into output
          stream. The sdtFollow setting copies SDT information from input stream to output stream.
          The sdtFollowIfPresent setting copies SDT information from input stream to output stream
          if SDT information is present in the input, otherwise it will fall back on the
          user-defined values. The sdtManual setting means user will enter the SDT information. The
          sdtNone setting means output stream will not contain SDT information.

          - **RepInterval** *(integer) --* The number of milliseconds between instances of this
          table in the output transport stream.

          - **ServiceName** *(string) --* The service name placed in the serviceDescriptor in the
          Service Description Table. Maximum length is 256 characters.

          - **ServiceProviderName** *(string) --* The service provider name placed in the
          serviceDescriptor in the Service Description Table. Maximum length is 256 characters.

        - **DvbSubPids** *(string) --* Packet Identifier (PID) for input source DVB Subtitle data to
        this output. Multiple values are accepted, and can be entered in ranges and/or by comma
        separation. Can be entered as decimal or hexadecimal values. Each PID specified must be in
        the range of 32 (or 0x20)..8182 (or 0x1ff6).

        - **DvbTdtSettings** *(dict) --* Inserts DVB Time and Date Table (TDT) at the specified
        table repetition interval.

          - **RepInterval** *(integer) --* The number of milliseconds between instances of this
          table in the output transport stream.

        - **DvbTeletextPid** *(string) --* Packet Identifier (PID) for input source DVB Teletext
        data to this output. Can be entered as a decimal or hexadecimal value. Valid values are 32
        (or 0x20)..8182 (or 0x1ff6).

        - **Ebif** *(string) --* If set to passthrough, passes any EBIF data from the input source
        to this output.

        - **EbpAudioInterval** *(string) --* When videoAndFixedIntervals is selected, audio EBP
        markers will be added to partitions 3 and 4. The interval between these additional markers
        will be fixed, and will be slightly shorter than the video EBP marker interval. Only
        available when EBP Cablelabs segmentation markers are selected. Partitions 1 and 2 will
        always follow the video interval.

        - **EbpLookaheadMs** *(integer) --* When set, enforces that Encoder Boundary Points do not
        come within the specified time interval of each other by looking ahead at input video. If
        another EBP is going to come in within the specified time interval, the current EBP is not
        emitted, and the segment is "stretched" to the next marker. The lookahead value does not add
        latency to the system. The Live Event must be configured elsewhere to create sufficient
        latency to make the lookahead accurate.

        - **EbpPlacement** *(string) --* Controls placement of EBP on Audio PIDs. If set to
        videoAndAudioPids, EBP markers will be placed on the video PID and all audio PIDs. If set to
        videoPid, EBP markers will be placed on only the video PID.

        - **EcmPid** *(string) --* This field is unused and deprecated.

        - **EsRateInPes** *(string) --* Include or exclude the ES Rate field in the PES header.

        - **EtvPlatformPid** *(string) --* Packet Identifier (PID) for input source ETV Platform
        data to this output. Can be entered as a decimal or hexadecimal value. Valid values are 32
        (or 0x20)..8182 (or 0x1ff6).

        - **EtvSignalPid** *(string) --* Packet Identifier (PID) for input source ETV Signal data to
        this output. Can be entered as a decimal or hexadecimal value. Valid values are 32 (or
        0x20)..8182 (or 0x1ff6).

        - **FragmentTime** *(float) --* The length in seconds of each fragment. Only used with EBP
        markers.

        - **Klv** *(string) --* If set to passthrough, passes any KLV data from the input source to
        this output.

        - **KlvDataPids** *(string) --* Packet Identifier (PID) for input source KLV data to this
        output. Multiple values are accepted, and can be entered in ranges and/or by comma
        separation. Can be entered as decimal or hexadecimal values. Each PID specified must be in
        the range of 32 (or 0x20)..8182 (or 0x1ff6).

        - **NielsenId3Behavior** *(string) --* If set to passthrough, Nielsen inaudible tones for
        media tracking will be detected in the input audio and an equivalent ID3 tag will be
        inserted in the output.

        - **NullPacketBitrate** *(float) --* Value in bits per second of extra null packets to
        insert into the transport stream. This can be used if a downstream encryption system
        requires periodic null packets.

        - **PatInterval** *(integer) --* The number of milliseconds between instances of this table
        in the output transport stream. Valid values are 0, 10..1000.

        - **PcrControl** *(string) --* When set to pcrEveryPesPacket, a Program Clock Reference
        value is inserted for every Packetized Elementary Stream (PES) header. This parameter is
        effective only when the PCR PID is the same as the video or audio elementary stream.

        - **PcrPeriod** *(integer) --* Maximum time in milliseconds between Program Clock Reference
        (PCRs) inserted into the transport stream.

        - **PcrPid** *(string) --* Packet Identifier (PID) of the Program Clock Reference (PCR) in
        the transport stream. When no value is given, the encoder will assign the same value as the
        Video PID. Can be entered as a decimal or hexadecimal value. Valid values are 32 (or
        0x20)..8182 (or 0x1ff6).

        - **PmtInterval** *(integer) --* The number of milliseconds between instances of this table
        in the output transport stream. Valid values are 0, 10..1000.

        - **PmtPid** *(string) --* Packet Identifier (PID) for the Program Map Table (PMT) in the
        transport stream. Can be entered as a decimal or hexadecimal value. Valid values are 32 (or
        0x20)..8182 (or 0x1ff6).

        - **ProgramNum** *(integer) --* The value of the program number field in the Program Map
        Table.

        - **RateMode** *(string) --* When vbr, does not insert null packets into transport stream to
        fill specified bitrate. The bitrate setting acts as the maximum bitrate when vbr is set.

        - **Scte27Pids** *(string) --* Packet Identifier (PID) for input source SCTE-27 data to this
        output. Multiple values are accepted, and can be entered in ranges and/or by comma
        separation. Can be entered as decimal or hexadecimal values. Each PID specified must be in
        the range of 32 (or 0x20)..8182 (or 0x1ff6).

        - **Scte35Control** *(string) --* Optionally pass SCTE-35 signals from the input source to
        this output.

        - **Scte35Pid** *(string) --* Packet Identifier (PID) of the SCTE-35 stream in the transport
        stream. Can be entered as a decimal or hexadecimal value. Valid values are 32 (or
        0x20)..8182 (or 0x1ff6).

        - **SegmentationMarkers** *(string) --* Inserts segmentation markers at each
        segmentationTime period. raiSegstart sets the Random Access Indicator bit in the adaptation
        field. raiAdapt sets the RAI bit and adds the current timecode in the private data bytes.
        psiSegstart inserts PAT and PMT tables at the start of segments. ebp adds Encoder Boundary
        Point information to the adaptation field as per OpenCable specification
        OC-SP-EBP-I01-130118. ebpLegacy adds Encoder Boundary Point information to the adaptation
        field using a legacy proprietary format.

        - **SegmentationStyle** *(string) --* The segmentation style parameter controls how
        segmentation markers are inserted into the transport stream. With avails, it is possible
        that segments may be truncated, which can influence where future segmentation markers are
        inserted. When a segmentation style of "resetCadence" is selected and a segment is truncated
        due to an avail, we will reset the segmentation cadence. This means the subsequent segment
        will have a duration of $segmentationTime seconds. When a segmentation style of
        "maintainCadence" is selected and a segment is truncated due to an avail, we will not reset
        the segmentation cadence. This means the subsequent segment will likely be truncated as
        well. However, all segments after that will have a duration of $segmentationTime seconds.
        Note that EBP lookahead is a slight exception to this rule.

        - **SegmentationTime** *(float) --* The length in seconds of each segment. Required unless
        markers is set to None_.

        - **TimedMetadataBehavior** *(string) --* When set to passthrough, timed metadata will be
        passed through from input to output.

        - **TimedMetadataPid** *(string) --* Packet Identifier (PID) of the timed metadata stream in
        the transport stream. Can be entered as a decimal or hexadecimal value. Valid values are 32
        (or 0x20)..8182 (or 0x1ff6).

        - **TransportStreamId** *(integer) --* The value of the transport stream ID field in the
        Program Map Table.

        - **VideoPid** *(string) --* Packet Identifier (PID) of the elementary video stream in the
        transport stream. Can be entered as a decimal or hexadecimal value. Valid values are 32 (or
        0x20)..8182 (or 0x1ff6).

    - **Destination** *(dict) --* Destination address and port number for RTP or UDP packets. Can be
    unicast or multicast RTP or UDP (eg. rtp://239.10.10.10:5001 or udp://10.100.100.100:5002).

      - **DestinationRefId** *(string) --* Placeholder documentation for __string

    - **FecOutputSettings** *(dict) --* Settings for enabling and adjusting Forward Error Correction
    on UDP outputs.

      - **ColumnDepth** *(integer) --* Parameter D from SMPTE 2022-1. The height of the FEC
      protection matrix. The number of transport stream packets per column error correction packet.
      Must be between 4 and 20, inclusive.

      - **IncludeFec** *(string) --* Enables column only or column and row based FEC

      - **RowLength** *(integer) --* Parameter L from SMPTE 2022-1. The width of the FEC protection
      matrix. Must be between 1 and 20, inclusive. If only Column FEC is used, then larger values
      increase robustness. If Row FEC is used, then this is the number of transport stream packets
      per row error correction packet, and the value must be between 4 and 20, inclusive, if
      includeFec is columnAndRow. If includeFec is column, this value must be 1 to 20, inclusive.
    """


_ClientStopChannelResponseEncoderSettingsOutputGroupsOutputsOutputSettingsTypeDef = TypedDict(
    "_ClientStopChannelResponseEncoderSettingsOutputGroupsOutputsOutputSettingsTypeDef",
    {
        "ArchiveOutputSettings": ClientStopChannelResponseEncoderSettingsOutputGroupsOutputsOutputSettingsArchiveOutputSettingsTypeDef,
        "FrameCaptureOutputSettings": ClientStopChannelResponseEncoderSettingsOutputGroupsOutputsOutputSettingsFrameCaptureOutputSettingsTypeDef,
        "HlsOutputSettings": ClientStopChannelResponseEncoderSettingsOutputGroupsOutputsOutputSettingsHlsOutputSettingsTypeDef,
        "MediaPackageOutputSettings": Dict,
        "MsSmoothOutputSettings": ClientStopChannelResponseEncoderSettingsOutputGroupsOutputsOutputSettingsMsSmoothOutputSettingsTypeDef,
        "MultiplexOutputSettings": ClientStopChannelResponseEncoderSettingsOutputGroupsOutputsOutputSettingsMultiplexOutputSettingsTypeDef,
        "RtmpOutputSettings": ClientStopChannelResponseEncoderSettingsOutputGroupsOutputsOutputSettingsRtmpOutputSettingsTypeDef,
        "UdpOutputSettings": ClientStopChannelResponseEncoderSettingsOutputGroupsOutputsOutputSettingsUdpOutputSettingsTypeDef,
    },
    total=False,
)


class ClientStopChannelResponseEncoderSettingsOutputGroupsOutputsOutputSettingsTypeDef(
    _ClientStopChannelResponseEncoderSettingsOutputGroupsOutputsOutputSettingsTypeDef
):
    """
    Type definition for `ClientStopChannelResponseEncoderSettingsOutputGroupsOutputs`
    `OutputSettings`

    - **ArchiveOutputSettings** *(dict) --* Archive Output Settings

      - **ContainerSettings** *(dict) --* Settings specific to the container type of the file.

        - **M2tsSettings** *(dict) --* M2ts Settings

          - **AbsentInputAudioBehavior** *(string) --* When set to drop, output audio streams will
          be removed from the program if the selected input audio stream is removed from the input.
          This allows the output audio configuration to dynamically change based on input
          configuration. If this is set to encodeSilence, all output audio streams will output
          encoded silence when not connected to an active input stream.

          - **Arib** *(string) --* When set to enabled, uses ARIB-compliant field muxing and removes
          video descriptor.

          - **AribCaptionsPid** *(string) --* Packet Identifier (PID) for ARIB Captions in the
          transport stream. Can be entered as a decimal or hexadecimal value. Valid values are 32
          (or 0x20)..8182 (or 0x1ff6).

          - **AribCaptionsPidControl** *(string) --* If set to auto, pid number used for ARIB
          Captions will be auto-selected from unused pids. If set to useConfigured, ARIB Captions
          will be on the configured pid number.

          - **AudioBufferModel** *(string) --* When set to dvb, uses DVB buffer model for Dolby
          Digital audio. When set to atsc, the ATSC model is used.

          - **AudioFramesPerPes** *(integer) --* The number of audio frames to insert for each PES
          packet.

          - **AudioPids** *(string) --* Packet Identifier (PID) of the elementary audio stream(s) in
          the transport stream. Multiple values are accepted, and can be entered in ranges and/or by
          comma separation. Can be entered as decimal or hexadecimal values. Each PID specified must
          be in the range of 32 (or 0x20)..8182 (or 0x1ff6).

          - **AudioStreamType** *(string) --* When set to atsc, uses stream type =
               0x81 for AC3 and
          stream type = 0x87 for EAC3. When set to dvb, uses stream type = 0x06.

          - **Bitrate** *(integer) --* The output bitrate of the transport stream in bits per
          second. Setting to 0 lets the muxer automatically determine the appropriate bitrate.

          - **BufferModel** *(string) --* If set to multiplex, use multiplex buffer model for
          accurate interleaving. Setting to bufferModel to none can lead to lower latency, but
          low-memory devices may not be able to play back the stream without interruptions.

          - **CcDescriptor** *(string) --* When set to enabled, generates captionServiceDescriptor
          in PMT.

          - **DvbNitSettings** *(dict) --* Inserts DVB Network Information Table (NIT) at the
          specified table repetition interval.

            - **NetworkId** *(integer) --* The numeric value placed in the Network Information Table
            (NIT).

            - **NetworkName** *(string) --* The network name text placed in the
            networkNameDescriptor inside the Network Information Table. Maximum length is 256
            characters.

            - **RepInterval** *(integer) --* The number of milliseconds between instances of this
            table in the output transport stream.

          - **DvbSdtSettings** *(dict) --* Inserts DVB Service Description Table (SDT) at the
          specified table repetition interval.

            - **OutputSdt** *(string) --* Selects method of inserting SDT information into output
            stream. The sdtFollow setting copies SDT information from input stream to output stream.
            The sdtFollowIfPresent setting copies SDT information from input stream to output stream
            if SDT information is present in the input, otherwise it will fall back on the
            user-defined values. The sdtManual setting means user will enter the SDT information.
            The sdtNone setting means output stream will not contain SDT information.

            - **RepInterval** *(integer) --* The number of milliseconds between instances of this
            table in the output transport stream.

            - **ServiceName** *(string) --* The service name placed in the serviceDescriptor in the
            Service Description Table. Maximum length is 256 characters.

            - **ServiceProviderName** *(string) --* The service provider name placed in the
            serviceDescriptor in the Service Description Table. Maximum length is 256 characters.

          - **DvbSubPids** *(string) --* Packet Identifier (PID) for input source DVB Subtitle data
          to this output. Multiple values are accepted, and can be entered in ranges and/or by comma
          separation. Can be entered as decimal or hexadecimal values. Each PID specified must be in
          the range of 32 (or 0x20)..8182 (or 0x1ff6).

          - **DvbTdtSettings** *(dict) --* Inserts DVB Time and Date Table (TDT) at the specified
          table repetition interval.

            - **RepInterval** *(integer) --* The number of milliseconds between instances of this
            table in the output transport stream.

          - **DvbTeletextPid** *(string) --* Packet Identifier (PID) for input source DVB Teletext
          data to this output. Can be entered as a decimal or hexadecimal value. Valid values are 32
          (or 0x20)..8182 (or 0x1ff6).

          - **Ebif** *(string) --* If set to passthrough, passes any EBIF data from the input source
          to this output.

          - **EbpAudioInterval** *(string) --* When videoAndFixedIntervals is selected, audio EBP
          markers will be added to partitions 3 and 4. The interval between these additional markers
          will be fixed, and will be slightly shorter than the video EBP marker interval. Only
          available when EBP Cablelabs segmentation markers are selected. Partitions 1 and 2 will
          always follow the video interval.

          - **EbpLookaheadMs** *(integer) --* When set, enforces that Encoder Boundary Points do not
          come within the specified time interval of each other by looking ahead at input video. If
          another EBP is going to come in within the specified time interval, the current EBP is not
          emitted, and the segment is "stretched" to the next marker. The lookahead value does not
          add latency to the system. The Live Event must be configured elsewhere to create
          sufficient latency to make the lookahead accurate.

          - **EbpPlacement** *(string) --* Controls placement of EBP on Audio PIDs. If set to
          videoAndAudioPids, EBP markers will be placed on the video PID and all audio PIDs. If set
          to videoPid, EBP markers will be placed on only the video PID.

          - **EcmPid** *(string) --* This field is unused and deprecated.

          - **EsRateInPes** *(string) --* Include or exclude the ES Rate field in the PES header.

          - **EtvPlatformPid** *(string) --* Packet Identifier (PID) for input source ETV Platform
          data to this output. Can be entered as a decimal or hexadecimal value. Valid values are 32
          (or 0x20)..8182 (or 0x1ff6).

          - **EtvSignalPid** *(string) --* Packet Identifier (PID) for input source ETV Signal data
          to this output. Can be entered as a decimal or hexadecimal value. Valid values are 32 (or
          0x20)..8182 (or 0x1ff6).

          - **FragmentTime** *(float) --* The length in seconds of each fragment. Only used with EBP
          markers.

          - **Klv** *(string) --* If set to passthrough, passes any KLV data from the input source
          to this output.

          - **KlvDataPids** *(string) --* Packet Identifier (PID) for input source KLV data to this
          output. Multiple values are accepted, and can be entered in ranges and/or by comma
          separation. Can be entered as decimal or hexadecimal values. Each PID specified must be in
          the range of 32 (or 0x20)..8182 (or 0x1ff6).

          - **NielsenId3Behavior** *(string) --* If set to passthrough, Nielsen inaudible tones for
          media tracking will be detected in the input audio and an equivalent ID3 tag will be
          inserted in the output.

          - **NullPacketBitrate** *(float) --* Value in bits per second of extra null packets to
          insert into the transport stream. This can be used if a downstream encryption system
          requires periodic null packets.

          - **PatInterval** *(integer) --* The number of milliseconds between instances of this
          table in the output transport stream. Valid values are 0, 10..1000.

          - **PcrControl** *(string) --* When set to pcrEveryPesPacket, a Program Clock Reference
          value is inserted for every Packetized Elementary Stream (PES) header. This parameter is
          effective only when the PCR PID is the same as the video or audio elementary stream.

          - **PcrPeriod** *(integer) --* Maximum time in milliseconds between Program Clock
          Reference (PCRs) inserted into the transport stream.

          - **PcrPid** *(string) --* Packet Identifier (PID) of the Program Clock Reference (PCR) in
          the transport stream. When no value is given, the encoder will assign the same value as
          the Video PID. Can be entered as a decimal or hexadecimal value. Valid values are 32 (or
          0x20)..8182 (or 0x1ff6).

          - **PmtInterval** *(integer) --* The number of milliseconds between instances of this
          table in the output transport stream. Valid values are 0, 10..1000.

          - **PmtPid** *(string) --* Packet Identifier (PID) for the Program Map Table (PMT) in the
          transport stream. Can be entered as a decimal or hexadecimal value. Valid values are 32
          (or 0x20)..8182 (or 0x1ff6).

          - **ProgramNum** *(integer) --* The value of the program number field in the Program Map
          Table.

          - **RateMode** *(string) --* When vbr, does not insert null packets into transport stream
          to fill specified bitrate. The bitrate setting acts as the maximum bitrate when vbr is
          set.

          - **Scte27Pids** *(string) --* Packet Identifier (PID) for input source SCTE-27 data to
          this output. Multiple values are accepted, and can be entered in ranges and/or by comma
          separation. Can be entered as decimal or hexadecimal values. Each PID specified must be in
          the range of 32 (or 0x20)..8182 (or 0x1ff6).

          - **Scte35Control** *(string) --* Optionally pass SCTE-35 signals from the input source to
          this output.

          - **Scte35Pid** *(string) --* Packet Identifier (PID) of the SCTE-35 stream in the
          transport stream. Can be entered as a decimal or hexadecimal value. Valid values are 32
          (or 0x20)..8182 (or 0x1ff6).

          - **SegmentationMarkers** *(string) --* Inserts segmentation markers at each
          segmentationTime period. raiSegstart sets the Random Access Indicator bit in the
          adaptation field. raiAdapt sets the RAI bit and adds the current timecode in the private
          data bytes. psiSegstart inserts PAT and PMT tables at the start of segments. ebp adds
          Encoder Boundary Point information to the adaptation field as per OpenCable specification
          OC-SP-EBP-I01-130118. ebpLegacy adds Encoder Boundary Point information to the adaptation
          field using a legacy proprietary format.

          - **SegmentationStyle** *(string) --* The segmentation style parameter controls how
          segmentation markers are inserted into the transport stream. With avails, it is possible
          that segments may be truncated, which can influence where future segmentation markers are
          inserted. When a segmentation style of "resetCadence" is selected and a segment is
          truncated due to an avail, we will reset the segmentation cadence. This means the
          subsequent segment will have a duration of $segmentationTime seconds. When a segmentation
          style of "maintainCadence" is selected and a segment is truncated due to an avail, we will
          not reset the segmentation cadence. This means the subsequent segment will likely be
          truncated as well. However, all segments after that will have a duration of
          $segmentationTime seconds. Note that EBP lookahead is a slight exception to this rule.

          - **SegmentationTime** *(float) --* The length in seconds of each segment. Required unless
          markers is set to None_.

          - **TimedMetadataBehavior** *(string) --* When set to passthrough, timed metadata will be
          passed through from input to output.

          - **TimedMetadataPid** *(string) --* Packet Identifier (PID) of the timed metadata stream
          in the transport stream. Can be entered as a decimal or hexadecimal value. Valid values
          are 32 (or 0x20)..8182 (or 0x1ff6).

          - **TransportStreamId** *(integer) --* The value of the transport stream ID field in the
          Program Map Table.

          - **VideoPid** *(string) --* Packet Identifier (PID) of the elementary video stream in the
          transport stream. Can be entered as a decimal or hexadecimal value. Valid values are 32
          (or 0x20)..8182 (or 0x1ff6).

      - **Extension** *(string) --* Output file extension. If excluded, this will be auto-selected
      from the container type.

      - **NameModifier** *(string) --* String concatenated to the end of the destination filename.
      Required for multiple outputs of the same type.

    - **FrameCaptureOutputSettings** *(dict) --* Frame Capture Output Settings

      - **NameModifier** *(string) --* Required if the output group contains more than one output.
      This modifier forms part of the output file name.

    - **HlsOutputSettings** *(dict) --* Hls Output Settings

      - **HlsSettings** *(dict) --* Settings regarding the underlying stream. These settings are
      different for audio-only outputs.

        - **AudioOnlyHlsSettings** *(dict) --* Audio Only Hls Settings

          - **AudioGroupId** *(string) --* Specifies the group to which the audio Rendition belongs.

          - **AudioOnlyImage** *(dict) --* Optional. Specifies the .jpg or .png image to use as the
          cover art for an audio-only output. We recommend a low bit-size file because the image
          increases the output audio bandwidth. The image is attached to the audio as an ID3 tag,
          frame type APIC, picture type 0x10, as per the "ID3 tag version 2.4.0 - Native Frames"
          standard.

            - **PasswordParam** *(string) --* key used to extract the password from EC2 Parameter
            store

            - **Uri** *(string) --* Uniform Resource Identifier - This should be a path to a file
            accessible to the Live system (eg. a http:// URI) depending on the output type. For
            example, a RTMP destination should have a uri simliar to: "rtmp://fmsserver/live".

            - **Username** *(string) --* Documentation update needed

          - **AudioTrackType** *(string) --* Four types of audio-only tracks are supported:
          Audio-Only Variant Stream The client can play back this audio-only stream instead of video
          in low-bandwidth scenarios. Represented as an EXT-X-STREAM-INF in the HLS manifest.
          Alternate Audio, Auto Select, Default Alternate rendition that the client should try to
          play back by default. Represented as an EXT-X-MEDIA in the HLS manifest with DEFAULT=YES,
          AUTOSELECT=
              YES Alternate Audio, Auto Select, Not Default Alternate rendition that the
          client may try to play back by default. Represented as an EXT-X-MEDIA in the HLS manifest
          with DEFAULT=NO, AUTOSELECT=
              YES Alternate Audio, not Auto Select Alternate rendition that
          the client will not try to play back by default. Represented as an EXT-X-MEDIA in the HLS
          manifest with DEFAULT=NO, AUTOSELECT=NO

        - **StandardHlsSettings** *(dict) --* Standard Hls Settings

          - **AudioRenditionSets** *(string) --* List all the audio groups that are used with the
          video output stream. Input all the audio GROUP-IDs that are associated to the video,
          separate by ','.

          - **M3u8Settings** *(dict) --* Settings information for the .m3u8 container

            - **AudioFramesPerPes** *(integer) --* The number of audio frames to insert for each PES
            packet.

            - **AudioPids** *(string) --* Packet Identifier (PID) of the elementary audio stream(s)
            in the transport stream. Multiple values are accepted, and can be entered in ranges
            and/or by comma separation. Can be entered as decimal or hexadecimal values.

            - **EcmPid** *(string) --* This parameter is unused and deprecated.

            - **NielsenId3Behavior** *(string) --* If set to passthrough, Nielsen inaudible tones
            for media tracking will be detected in the input audio and an equivalent ID3 tag will be
            inserted in the output.

            - **PatInterval** *(integer) --* The number of milliseconds between instances of this
            table in the output transport stream. A value of \\"0\\" writes out the PMT once per
            segment file.

            - **PcrControl** *(string) --* When set to pcrEveryPesPacket, a Program Clock Reference
            value is inserted for every Packetized Elementary Stream (PES) header. This parameter is
            effective only when the PCR PID is the same as the video or audio elementary stream.

            - **PcrPeriod** *(integer) --* Maximum time in milliseconds between Program Clock
            References (PCRs) inserted into the transport stream.

            - **PcrPid** *(string) --* Packet Identifier (PID) of the Program Clock Reference (PCR)
            in the transport stream. When no value is given, the encoder will assign the same value
            as the Video PID. Can be entered as a decimal or hexadecimal value.

            - **PmtInterval** *(integer) --* The number of milliseconds between instances of this
            table in the output transport stream. A value of \\"0\\" writes out the PMT once per
            segment file.

            - **PmtPid** *(string) --* Packet Identifier (PID) for the Program Map Table (PMT) in
            the transport stream. Can be entered as a decimal or hexadecimal value.

            - **ProgramNum** *(integer) --* The value of the program number field in the Program Map
            Table.

            - **Scte35Behavior** *(string) --* If set to passthrough, passes any SCTE-35 signals
            from the input source to this output.

            - **Scte35Pid** *(string) --* Packet Identifier (PID) of the SCTE-35 stream in the
            transport stream. Can be entered as a decimal or hexadecimal value.

            - **TimedMetadataBehavior** *(string) --* When set to passthrough, timed metadata is
            passed through from input to output.

            - **TimedMetadataPid** *(string) --* Packet Identifier (PID) of the timed metadata
            stream in the transport stream. Can be entered as a decimal or hexadecimal value. Valid
            values are 32 (or 0x20)..8182 (or 0x1ff6).

            - **TransportStreamId** *(integer) --* The value of the transport stream ID field in the
            Program Map Table.

            - **VideoPid** *(string) --* Packet Identifier (PID) of the elementary video stream in
            the transport stream. Can be entered as a decimal or hexadecimal value.

      - **NameModifier** *(string) --* String concatenated to the end of the destination filename.
      Accepts \\"Format Identifiers\\":#formatIdentifierParameters.

      - **SegmentModifier** *(string) --* String concatenated to end of segment filenames.

    - **MediaPackageOutputSettings** *(dict) --* Media Package Output Settings

    - **MsSmoothOutputSettings** *(dict) --* Ms Smooth Output Settings

      - **H265PackagingType** *(string) --* Only applicable when this output is referencing an H.265
      video description. Specifies whether MP4 segments should be packaged as HEV1 or HVC1.

      - **NameModifier** *(string) --* String concatenated to the end of the destination filename.
      Required for multiple outputs of the same type.

    - **MultiplexOutputSettings** *(dict) --* Multiplex Output Settings

      - **Destination** *(dict) --* Destination is a Multiplex.

        - **DestinationRefId** *(string) --* Placeholder documentation for __string

    - **RtmpOutputSettings** *(dict) --* Rtmp Output Settings

      - **CertificateMode** *(string) --* If set to verifyAuthenticity, verify the tls certificate
      chain to a trusted Certificate Authority (CA). This will cause rtmps outputs with self-signed
      certificates to fail.

      - **ConnectionRetryInterval** *(integer) --* Number of seconds to wait before retrying a
      connection to the Flash Media server if the connection is lost.

      - **Destination** *(dict) --* The RTMP endpoint excluding the stream name (eg.
      rtmp://host/appname). For connection to Akamai, a username and password must be supplied. URI
      fields accept format identifiers.

        - **DestinationRefId** *(string) --* Placeholder documentation for __string

      - **NumRetries** *(integer) --* Number of retry attempts.

    - **UdpOutputSettings** *(dict) --* Udp Output Settings

      - **BufferMsec** *(integer) --* UDP output buffering in milliseconds. Larger values increase
      latency through the transcoder but simultaneously assist the transcoder in maintaining a
      constant, low-jitter UDP/RTP output while accommodating clock recovery, input switching, input
      disruptions, picture reordering, etc.

      - **ContainerSettings** *(dict) --* Udp Container Settings

        - **M2tsSettings** *(dict) --* M2ts Settings

          - **AbsentInputAudioBehavior** *(string) --* When set to drop, output audio streams will
          be removed from the program if the selected input audio stream is removed from the input.
          This allows the output audio configuration to dynamically change based on input
          configuration. If this is set to encodeSilence, all output audio streams will output
          encoded silence when not connected to an active input stream.

          - **Arib** *(string) --* When set to enabled, uses ARIB-compliant field muxing and removes
          video descriptor.

          - **AribCaptionsPid** *(string) --* Packet Identifier (PID) for ARIB Captions in the
          transport stream. Can be entered as a decimal or hexadecimal value. Valid values are 32
          (or 0x20)..8182 (or 0x1ff6).

          - **AribCaptionsPidControl** *(string) --* If set to auto, pid number used for ARIB
          Captions will be auto-selected from unused pids. If set to useConfigured, ARIB Captions
          will be on the configured pid number.

          - **AudioBufferModel** *(string) --* When set to dvb, uses DVB buffer model for Dolby
          Digital audio. When set to atsc, the ATSC model is used.

          - **AudioFramesPerPes** *(integer) --* The number of audio frames to insert for each PES
          packet.

          - **AudioPids** *(string) --* Packet Identifier (PID) of the elementary audio stream(s) in
          the transport stream. Multiple values are accepted, and can be entered in ranges and/or by
          comma separation. Can be entered as decimal or hexadecimal values. Each PID specified must
          be in the range of 32 (or 0x20)..8182 (or 0x1ff6).

          - **AudioStreamType** *(string) --* When set to atsc, uses stream type =
               0x81 for AC3 and
          stream type = 0x87 for EAC3. When set to dvb, uses stream type = 0x06.

          - **Bitrate** *(integer) --* The output bitrate of the transport stream in bits per
          second. Setting to 0 lets the muxer automatically determine the appropriate bitrate.

          - **BufferModel** *(string) --* If set to multiplex, use multiplex buffer model for
          accurate interleaving. Setting to bufferModel to none can lead to lower latency, but
          low-memory devices may not be able to play back the stream without interruptions.

          - **CcDescriptor** *(string) --* When set to enabled, generates captionServiceDescriptor
          in PMT.

          - **DvbNitSettings** *(dict) --* Inserts DVB Network Information Table (NIT) at the
          specified table repetition interval.

            - **NetworkId** *(integer) --* The numeric value placed in the Network Information Table
            (NIT).

            - **NetworkName** *(string) --* The network name text placed in the
            networkNameDescriptor inside the Network Information Table. Maximum length is 256
            characters.

            - **RepInterval** *(integer) --* The number of milliseconds between instances of this
            table in the output transport stream.

          - **DvbSdtSettings** *(dict) --* Inserts DVB Service Description Table (SDT) at the
          specified table repetition interval.

            - **OutputSdt** *(string) --* Selects method of inserting SDT information into output
            stream. The sdtFollow setting copies SDT information from input stream to output stream.
            The sdtFollowIfPresent setting copies SDT information from input stream to output stream
            if SDT information is present in the input, otherwise it will fall back on the
            user-defined values. The sdtManual setting means user will enter the SDT information.
            The sdtNone setting means output stream will not contain SDT information.

            - **RepInterval** *(integer) --* The number of milliseconds between instances of this
            table in the output transport stream.

            - **ServiceName** *(string) --* The service name placed in the serviceDescriptor in the
            Service Description Table. Maximum length is 256 characters.

            - **ServiceProviderName** *(string) --* The service provider name placed in the
            serviceDescriptor in the Service Description Table. Maximum length is 256 characters.

          - **DvbSubPids** *(string) --* Packet Identifier (PID) for input source DVB Subtitle data
          to this output. Multiple values are accepted, and can be entered in ranges and/or by comma
          separation. Can be entered as decimal or hexadecimal values. Each PID specified must be in
          the range of 32 (or 0x20)..8182 (or 0x1ff6).

          - **DvbTdtSettings** *(dict) --* Inserts DVB Time and Date Table (TDT) at the specified
          table repetition interval.

            - **RepInterval** *(integer) --* The number of milliseconds between instances of this
            table in the output transport stream.

          - **DvbTeletextPid** *(string) --* Packet Identifier (PID) for input source DVB Teletext
          data to this output. Can be entered as a decimal or hexadecimal value. Valid values are 32
          (or 0x20)..8182 (or 0x1ff6).

          - **Ebif** *(string) --* If set to passthrough, passes any EBIF data from the input source
          to this output.

          - **EbpAudioInterval** *(string) --* When videoAndFixedIntervals is selected, audio EBP
          markers will be added to partitions 3 and 4. The interval between these additional markers
          will be fixed, and will be slightly shorter than the video EBP marker interval. Only
          available when EBP Cablelabs segmentation markers are selected. Partitions 1 and 2 will
          always follow the video interval.

          - **EbpLookaheadMs** *(integer) --* When set, enforces that Encoder Boundary Points do not
          come within the specified time interval of each other by looking ahead at input video. If
          another EBP is going to come in within the specified time interval, the current EBP is not
          emitted, and the segment is "stretched" to the next marker. The lookahead value does not
          add latency to the system. The Live Event must be configured elsewhere to create
          sufficient latency to make the lookahead accurate.

          - **EbpPlacement** *(string) --* Controls placement of EBP on Audio PIDs. If set to
          videoAndAudioPids, EBP markers will be placed on the video PID and all audio PIDs. If set
          to videoPid, EBP markers will be placed on only the video PID.

          - **EcmPid** *(string) --* This field is unused and deprecated.

          - **EsRateInPes** *(string) --* Include or exclude the ES Rate field in the PES header.

          - **EtvPlatformPid** *(string) --* Packet Identifier (PID) for input source ETV Platform
          data to this output. Can be entered as a decimal or hexadecimal value. Valid values are 32
          (or 0x20)..8182 (or 0x1ff6).

          - **EtvSignalPid** *(string) --* Packet Identifier (PID) for input source ETV Signal data
          to this output. Can be entered as a decimal or hexadecimal value. Valid values are 32 (or
          0x20)..8182 (or 0x1ff6).

          - **FragmentTime** *(float) --* The length in seconds of each fragment. Only used with EBP
          markers.

          - **Klv** *(string) --* If set to passthrough, passes any KLV data from the input source
          to this output.

          - **KlvDataPids** *(string) --* Packet Identifier (PID) for input source KLV data to this
          output. Multiple values are accepted, and can be entered in ranges and/or by comma
          separation. Can be entered as decimal or hexadecimal values. Each PID specified must be in
          the range of 32 (or 0x20)..8182 (or 0x1ff6).

          - **NielsenId3Behavior** *(string) --* If set to passthrough, Nielsen inaudible tones for
          media tracking will be detected in the input audio and an equivalent ID3 tag will be
          inserted in the output.

          - **NullPacketBitrate** *(float) --* Value in bits per second of extra null packets to
          insert into the transport stream. This can be used if a downstream encryption system
          requires periodic null packets.

          - **PatInterval** *(integer) --* The number of milliseconds between instances of this
          table in the output transport stream. Valid values are 0, 10..1000.

          - **PcrControl** *(string) --* When set to pcrEveryPesPacket, a Program Clock Reference
          value is inserted for every Packetized Elementary Stream (PES) header. This parameter is
          effective only when the PCR PID is the same as the video or audio elementary stream.

          - **PcrPeriod** *(integer) --* Maximum time in milliseconds between Program Clock
          Reference (PCRs) inserted into the transport stream.

          - **PcrPid** *(string) --* Packet Identifier (PID) of the Program Clock Reference (PCR) in
          the transport stream. When no value is given, the encoder will assign the same value as
          the Video PID. Can be entered as a decimal or hexadecimal value. Valid values are 32 (or
          0x20)..8182 (or 0x1ff6).

          - **PmtInterval** *(integer) --* The number of milliseconds between instances of this
          table in the output transport stream. Valid values are 0, 10..1000.

          - **PmtPid** *(string) --* Packet Identifier (PID) for the Program Map Table (PMT) in the
          transport stream. Can be entered as a decimal or hexadecimal value. Valid values are 32
          (or 0x20)..8182 (or 0x1ff6).

          - **ProgramNum** *(integer) --* The value of the program number field in the Program Map
          Table.

          - **RateMode** *(string) --* When vbr, does not insert null packets into transport stream
          to fill specified bitrate. The bitrate setting acts as the maximum bitrate when vbr is
          set.

          - **Scte27Pids** *(string) --* Packet Identifier (PID) for input source SCTE-27 data to
          this output. Multiple values are accepted, and can be entered in ranges and/or by comma
          separation. Can be entered as decimal or hexadecimal values. Each PID specified must be in
          the range of 32 (or 0x20)..8182 (or 0x1ff6).

          - **Scte35Control** *(string) --* Optionally pass SCTE-35 signals from the input source to
          this output.

          - **Scte35Pid** *(string) --* Packet Identifier (PID) of the SCTE-35 stream in the
          transport stream. Can be entered as a decimal or hexadecimal value. Valid values are 32
          (or 0x20)..8182 (or 0x1ff6).

          - **SegmentationMarkers** *(string) --* Inserts segmentation markers at each
          segmentationTime period. raiSegstart sets the Random Access Indicator bit in the
          adaptation field. raiAdapt sets the RAI bit and adds the current timecode in the private
          data bytes. psiSegstart inserts PAT and PMT tables at the start of segments. ebp adds
          Encoder Boundary Point information to the adaptation field as per OpenCable specification
          OC-SP-EBP-I01-130118. ebpLegacy adds Encoder Boundary Point information to the adaptation
          field using a legacy proprietary format.

          - **SegmentationStyle** *(string) --* The segmentation style parameter controls how
          segmentation markers are inserted into the transport stream. With avails, it is possible
          that segments may be truncated, which can influence where future segmentation markers are
          inserted. When a segmentation style of "resetCadence" is selected and a segment is
          truncated due to an avail, we will reset the segmentation cadence. This means the
          subsequent segment will have a duration of $segmentationTime seconds. When a segmentation
          style of "maintainCadence" is selected and a segment is truncated due to an avail, we will
          not reset the segmentation cadence. This means the subsequent segment will likely be
          truncated as well. However, all segments after that will have a duration of
          $segmentationTime seconds. Note that EBP lookahead is a slight exception to this rule.

          - **SegmentationTime** *(float) --* The length in seconds of each segment. Required unless
          markers is set to None_.

          - **TimedMetadataBehavior** *(string) --* When set to passthrough, timed metadata will be
          passed through from input to output.

          - **TimedMetadataPid** *(string) --* Packet Identifier (PID) of the timed metadata stream
          in the transport stream. Can be entered as a decimal or hexadecimal value. Valid values
          are 32 (or 0x20)..8182 (or 0x1ff6).

          - **TransportStreamId** *(integer) --* The value of the transport stream ID field in the
          Program Map Table.

          - **VideoPid** *(string) --* Packet Identifier (PID) of the elementary video stream in the
          transport stream. Can be entered as a decimal or hexadecimal value. Valid values are 32
          (or 0x20)..8182 (or 0x1ff6).

      - **Destination** *(dict) --* Destination address and port number for RTP or UDP packets. Can
      be unicast or multicast RTP or UDP (eg. rtp://239.10.10.10:5001 or udp://10.100.100.100:5002).

        - **DestinationRefId** *(string) --* Placeholder documentation for __string

      - **FecOutputSettings** *(dict) --* Settings for enabling and adjusting Forward Error
      Correction on UDP outputs.

        - **ColumnDepth** *(integer) --* Parameter D from SMPTE 2022-1. The height of the FEC
        protection matrix. The number of transport stream packets per column error correction
        packet. Must be between 4 and 20, inclusive.

        - **IncludeFec** *(string) --* Enables column only or column and row based FEC

        - **RowLength** *(integer) --* Parameter L from SMPTE 2022-1. The width of the FEC
        protection matrix. Must be between 1 and 20, inclusive. If only Column FEC is used, then
        larger values increase robustness. If Row FEC is used, then this is the number of transport
        stream packets per row error correction packet, and the value must be between 4 and 20,
        inclusive, if includeFec is columnAndRow. If includeFec is column, this value must be 1 to
        20, inclusive.
    """


_ClientStopChannelResponseEncoderSettingsOutputGroupsOutputsTypeDef = TypedDict(
    "_ClientStopChannelResponseEncoderSettingsOutputGroupsOutputsTypeDef",
    {
        "AudioDescriptionNames": List[str],
        "CaptionDescriptionNames": List[str],
        "OutputName": str,
        "OutputSettings": ClientStopChannelResponseEncoderSettingsOutputGroupsOutputsOutputSettingsTypeDef,
        "VideoDescriptionName": str,
    },
    total=False,
)


class ClientStopChannelResponseEncoderSettingsOutputGroupsOutputsTypeDef(
    _ClientStopChannelResponseEncoderSettingsOutputGroupsOutputsTypeDef
):
    """
    Type definition for `ClientStopChannelResponseEncoderSettingsOutputGroups` `Outputs`

    - **AudioDescriptionNames** *(list) --* The names of the AudioDescriptions used as audio sources
    for this output.

      - *(string) --* Placeholder documentation for __string

    - **CaptionDescriptionNames** *(list) --* The names of the CaptionDescriptions used as caption
    sources for this output.

      - *(string) --* Placeholder documentation for __string

    - **OutputName** *(string) --* The name used to identify an output.

    - **OutputSettings** *(dict) --* Output type-specific settings.

      - **ArchiveOutputSettings** *(dict) --* Archive Output Settings

        - **ContainerSettings** *(dict) --* Settings specific to the container type of the file.

          - **M2tsSettings** *(dict) --* M2ts Settings

            - **AbsentInputAudioBehavior** *(string) --* When set to drop, output audio streams will
            be removed from the program if the selected input audio stream is removed from the
            input. This allows the output audio configuration to dynamically change based on input
            configuration. If this is set to encodeSilence, all output audio streams will output
            encoded silence when not connected to an active input stream.

            - **Arib** *(string) --* When set to enabled, uses ARIB-compliant field muxing and
            removes video descriptor.

            - **AribCaptionsPid** *(string) --* Packet Identifier (PID) for ARIB Captions in the
            transport stream. Can be entered as a decimal or hexadecimal value. Valid values are 32
            (or 0x20)..8182 (or 0x1ff6).

            - **AribCaptionsPidControl** *(string) --* If set to auto, pid number used for ARIB
            Captions will be auto-selected from unused pids. If set to useConfigured, ARIB Captions
            will be on the configured pid number.

            - **AudioBufferModel** *(string) --* When set to dvb, uses DVB buffer model for Dolby
            Digital audio. When set to atsc, the ATSC model is used.

            - **AudioFramesPerPes** *(integer) --* The number of audio frames to insert for each PES
            packet.

            - **AudioPids** *(string) --* Packet Identifier (PID) of the elementary audio stream(s)
            in the transport stream. Multiple values are accepted, and can be entered in ranges
            and/or by comma separation. Can be entered as decimal or hexadecimal values. Each PID
            specified must be in the range of 32 (or 0x20)..8182 (or 0x1ff6).

            - **AudioStreamType** *(string) --* When set to atsc, uses stream type =
                 0x81 for AC3
            and stream type = 0x87 for EAC3. When set to dvb, uses stream type = 0x06.

            - **Bitrate** *(integer) --* The output bitrate of the transport stream in bits per
            second. Setting to 0 lets the muxer automatically determine the appropriate bitrate.

            - **BufferModel** *(string) --* If set to multiplex, use multiplex buffer model for
            accurate interleaving. Setting to bufferModel to none can lead to lower latency, but
            low-memory devices may not be able to play back the stream without interruptions.

            - **CcDescriptor** *(string) --* When set to enabled, generates captionServiceDescriptor
            in PMT.

            - **DvbNitSettings** *(dict) --* Inserts DVB Network Information Table (NIT) at the
            specified table repetition interval.

              - **NetworkId** *(integer) --* The numeric value placed in the Network Information
              Table (NIT).

              - **NetworkName** *(string) --* The network name text placed in the
              networkNameDescriptor inside the Network Information Table. Maximum length is 256
              characters.

              - **RepInterval** *(integer) --* The number of milliseconds between instances of this
              table in the output transport stream.

            - **DvbSdtSettings** *(dict) --* Inserts DVB Service Description Table (SDT) at the
            specified table repetition interval.

              - **OutputSdt** *(string) --* Selects method of inserting SDT information into output
              stream. The sdtFollow setting copies SDT information from input stream to output
              stream. The sdtFollowIfPresent setting copies SDT information from input stream to
              output stream if SDT information is present in the input, otherwise it will fall back
              on the user-defined values. The sdtManual setting means user will enter the SDT
              information. The sdtNone setting means output stream will not contain SDT information.

              - **RepInterval** *(integer) --* The number of milliseconds between instances of this
              table in the output transport stream.

              - **ServiceName** *(string) --* The service name placed in the serviceDescriptor in
              the Service Description Table. Maximum length is 256 characters.

              - **ServiceProviderName** *(string) --* The service provider name placed in the
              serviceDescriptor in the Service Description Table. Maximum length is 256 characters.

            - **DvbSubPids** *(string) --* Packet Identifier (PID) for input source DVB Subtitle
            data to this output. Multiple values are accepted, and can be entered in ranges and/or
            by comma separation. Can be entered as decimal or hexadecimal values. Each PID specified
            must be in the range of 32 (or 0x20)..8182 (or 0x1ff6).

            - **DvbTdtSettings** *(dict) --* Inserts DVB Time and Date Table (TDT) at the specified
            table repetition interval.

              - **RepInterval** *(integer) --* The number of milliseconds between instances of this
              table in the output transport stream.

            - **DvbTeletextPid** *(string) --* Packet Identifier (PID) for input source DVB Teletext
            data to this output. Can be entered as a decimal or hexadecimal value. Valid values are
            32 (or 0x20)..8182 (or 0x1ff6).

            - **Ebif** *(string) --* If set to passthrough, passes any EBIF data from the input
            source to this output.

            - **EbpAudioInterval** *(string) --* When videoAndFixedIntervals is selected, audio EBP
            markers will be added to partitions 3 and 4. The interval between these additional
            markers will be fixed, and will be slightly shorter than the video EBP marker interval.
            Only available when EBP Cablelabs segmentation markers are selected. Partitions 1 and 2
            will always follow the video interval.

            - **EbpLookaheadMs** *(integer) --* When set, enforces that Encoder Boundary Points do
            not come within the specified time interval of each other by looking ahead at input
            video. If another EBP is going to come in within the specified time interval, the
            current EBP is not emitted, and the segment is "stretched" to the next marker. The
            lookahead value does not add latency to the system. The Live Event must be configured
            elsewhere to create sufficient latency to make the lookahead accurate.

            - **EbpPlacement** *(string) --* Controls placement of EBP on Audio PIDs. If set to
            videoAndAudioPids, EBP markers will be placed on the video PID and all audio PIDs. If
            set to videoPid, EBP markers will be placed on only the video PID.

            - **EcmPid** *(string) --* This field is unused and deprecated.

            - **EsRateInPes** *(string) --* Include or exclude the ES Rate field in the PES header.

            - **EtvPlatformPid** *(string) --* Packet Identifier (PID) for input source ETV Platform
            data to this output. Can be entered as a decimal or hexadecimal value. Valid values are
            32 (or 0x20)..8182 (or 0x1ff6).

            - **EtvSignalPid** *(string) --* Packet Identifier (PID) for input source ETV Signal
            data to this output. Can be entered as a decimal or hexadecimal value. Valid values are
            32 (or 0x20)..8182 (or 0x1ff6).

            - **FragmentTime** *(float) --* The length in seconds of each fragment. Only used with
            EBP markers.

            - **Klv** *(string) --* If set to passthrough, passes any KLV data from the input source
            to this output.

            - **KlvDataPids** *(string) --* Packet Identifier (PID) for input source KLV data to
            this output. Multiple values are accepted, and can be entered in ranges and/or by comma
            separation. Can be entered as decimal or hexadecimal values. Each PID specified must be
            in the range of 32 (or 0x20)..8182 (or 0x1ff6).

            - **NielsenId3Behavior** *(string) --* If set to passthrough, Nielsen inaudible tones
            for media tracking will be detected in the input audio and an equivalent ID3 tag will be
            inserted in the output.

            - **NullPacketBitrate** *(float) --* Value in bits per second of extra null packets to
            insert into the transport stream. This can be used if a downstream encryption system
            requires periodic null packets.

            - **PatInterval** *(integer) --* The number of milliseconds between instances of this
            table in the output transport stream. Valid values are 0, 10..1000.

            - **PcrControl** *(string) --* When set to pcrEveryPesPacket, a Program Clock Reference
            value is inserted for every Packetized Elementary Stream (PES) header. This parameter is
            effective only when the PCR PID is the same as the video or audio elementary stream.

            - **PcrPeriod** *(integer) --* Maximum time in milliseconds between Program Clock
            Reference (PCRs) inserted into the transport stream.

            - **PcrPid** *(string) --* Packet Identifier (PID) of the Program Clock Reference (PCR)
            in the transport stream. When no value is given, the encoder will assign the same value
            as the Video PID. Can be entered as a decimal or hexadecimal value. Valid values are 32
            (or 0x20)..8182 (or 0x1ff6).

            - **PmtInterval** *(integer) --* The number of milliseconds between instances of this
            table in the output transport stream. Valid values are 0, 10..1000.

            - **PmtPid** *(string) --* Packet Identifier (PID) for the Program Map Table (PMT) in
            the transport stream. Can be entered as a decimal or hexadecimal value. Valid values are
            32 (or 0x20)..8182 (or 0x1ff6).

            - **ProgramNum** *(integer) --* The value of the program number field in the Program Map
            Table.

            - **RateMode** *(string) --* When vbr, does not insert null packets into transport
            stream to fill specified bitrate. The bitrate setting acts as the maximum bitrate when
            vbr is set.

            - **Scte27Pids** *(string) --* Packet Identifier (PID) for input source SCTE-27 data to
            this output. Multiple values are accepted, and can be entered in ranges and/or by comma
            separation. Can be entered as decimal or hexadecimal values. Each PID specified must be
            in the range of 32 (or 0x20)..8182 (or 0x1ff6).

            - **Scte35Control** *(string) --* Optionally pass SCTE-35 signals from the input source
            to this output.

            - **Scte35Pid** *(string) --* Packet Identifier (PID) of the SCTE-35 stream in the
            transport stream. Can be entered as a decimal or hexadecimal value. Valid values are 32
            (or 0x20)..8182 (or 0x1ff6).

            - **SegmentationMarkers** *(string) --* Inserts segmentation markers at each
            segmentationTime period. raiSegstart sets the Random Access Indicator bit in the
            adaptation field. raiAdapt sets the RAI bit and adds the current timecode in the private
            data bytes. psiSegstart inserts PAT and PMT tables at the start of segments. ebp adds
            Encoder Boundary Point information to the adaptation field as per OpenCable
            specification OC-SP-EBP-I01-130118. ebpLegacy adds Encoder Boundary Point information to
            the adaptation field using a legacy proprietary format.

            - **SegmentationStyle** *(string) --* The segmentation style parameter controls how
            segmentation markers are inserted into the transport stream. With avails, it is possible
            that segments may be truncated, which can influence where future segmentation markers
            are inserted. When a segmentation style of "resetCadence" is selected and a segment is
            truncated due to an avail, we will reset the segmentation cadence. This means the
            subsequent segment will have a duration of $segmentationTime seconds. When a
            segmentation style of "maintainCadence" is selected and a segment is truncated due to an
            avail, we will not reset the segmentation cadence. This means the subsequent segment
            will likely be truncated as well. However, all segments after that will have a duration
            of $segmentationTime seconds. Note that EBP lookahead is a slight exception to this
            rule.

            - **SegmentationTime** *(float) --* The length in seconds of each segment. Required
            unless markers is set to None_.

            - **TimedMetadataBehavior** *(string) --* When set to passthrough, timed metadata will
            be passed through from input to output.

            - **TimedMetadataPid** *(string) --* Packet Identifier (PID) of the timed metadata
            stream in the transport stream. Can be entered as a decimal or hexadecimal value. Valid
            values are 32 (or 0x20)..8182 (or 0x1ff6).

            - **TransportStreamId** *(integer) --* The value of the transport stream ID field in the
            Program Map Table.

            - **VideoPid** *(string) --* Packet Identifier (PID) of the elementary video stream in
            the transport stream. Can be entered as a decimal or hexadecimal value. Valid values are
            32 (or 0x20)..8182 (or 0x1ff6).

        - **Extension** *(string) --* Output file extension. If excluded, this will be auto-selected
        from the container type.

        - **NameModifier** *(string) --* String concatenated to the end of the destination filename.
        Required for multiple outputs of the same type.

      - **FrameCaptureOutputSettings** *(dict) --* Frame Capture Output Settings

        - **NameModifier** *(string) --* Required if the output group contains more than one output.
        This modifier forms part of the output file name.

      - **HlsOutputSettings** *(dict) --* Hls Output Settings

        - **HlsSettings** *(dict) --* Settings regarding the underlying stream. These settings are
        different for audio-only outputs.

          - **AudioOnlyHlsSettings** *(dict) --* Audio Only Hls Settings

            - **AudioGroupId** *(string) --* Specifies the group to which the audio Rendition
            belongs.

            - **AudioOnlyImage** *(dict) --* Optional. Specifies the .jpg or .png image to use as
            the cover art for an audio-only output. We recommend a low bit-size file because the
            image increases the output audio bandwidth. The image is attached to the audio as an ID3
            tag, frame type APIC, picture type 0x10, as per the "ID3 tag version 2.4.0 - Native
            Frames" standard.

              - **PasswordParam** *(string) --* key used to extract the password from EC2 Parameter
              store

              - **Uri** *(string) --* Uniform Resource Identifier - This should be a path to a file
              accessible to the Live system (eg. a http:// URI) depending on the output type. For
              example, a RTMP destination should have a uri simliar to: "rtmp://fmsserver/live".

              - **Username** *(string) --* Documentation update needed

            - **AudioTrackType** *(string) --* Four types of audio-only tracks are supported:
            Audio-Only Variant Stream The client can play back this audio-only stream instead of
            video in low-bandwidth scenarios. Represented as an EXT-X-STREAM-INF in the HLS
            manifest. Alternate Audio, Auto Select, Default Alternate rendition that the client
            should try to play back by default. Represented as an EXT-X-MEDIA in the HLS manifest
            with DEFAULT=YES, AUTOSELECT=
                YES Alternate Audio, Auto Select, Not Default Alternate
            rendition that the client may try to play back by default. Represented as an EXT-X-MEDIA
            in the HLS manifest with DEFAULT=NO, AUTOSELECT=
                YES Alternate Audio, not Auto Select
            Alternate rendition that the client will not try to play back by default. Represented as
            an EXT-X-MEDIA in the HLS manifest with DEFAULT=NO, AUTOSELECT=NO

          - **StandardHlsSettings** *(dict) --* Standard Hls Settings

            - **AudioRenditionSets** *(string) --* List all the audio groups that are used with the
            video output stream. Input all the audio GROUP-IDs that are associated to the video,
            separate by ','.

            - **M3u8Settings** *(dict) --* Settings information for the .m3u8 container

              - **AudioFramesPerPes** *(integer) --* The number of audio frames to insert for each
              PES packet.

              - **AudioPids** *(string) --* Packet Identifier (PID) of the elementary audio
              stream(s) in the transport stream. Multiple values are accepted, and can be entered in
              ranges and/or by comma separation. Can be entered as decimal or hexadecimal values.

              - **EcmPid** *(string) --* This parameter is unused and deprecated.

              - **NielsenId3Behavior** *(string) --* If set to passthrough, Nielsen inaudible tones
              for media tracking will be detected in the input audio and an equivalent ID3 tag will
              be inserted in the output.

              - **PatInterval** *(integer) --* The number of milliseconds between instances of this
              table in the output transport stream. A value of \\"0\\" writes out the PMT once per
              segment file.

              - **PcrControl** *(string) --* When set to pcrEveryPesPacket, a Program Clock
              Reference value is inserted for every Packetized Elementary Stream (PES) header. This
              parameter is effective only when the PCR PID is the same as the video or audio
              elementary stream.

              - **PcrPeriod** *(integer) --* Maximum time in milliseconds between Program Clock
              References (PCRs) inserted into the transport stream.

              - **PcrPid** *(string) --* Packet Identifier (PID) of the Program Clock Reference
              (PCR) in the transport stream. When no value is given, the encoder will assign the
              same value as the Video PID. Can be entered as a decimal or hexadecimal value.

              - **PmtInterval** *(integer) --* The number of milliseconds between instances of this
              table in the output transport stream. A value of \\"0\\" writes out the PMT once per
              segment file.

              - **PmtPid** *(string) --* Packet Identifier (PID) for the Program Map Table (PMT) in
              the transport stream. Can be entered as a decimal or hexadecimal value.

              - **ProgramNum** *(integer) --* The value of the program number field in the Program
              Map Table.

              - **Scte35Behavior** *(string) --* If set to passthrough, passes any SCTE-35 signals
              from the input source to this output.

              - **Scte35Pid** *(string) --* Packet Identifier (PID) of the SCTE-35 stream in the
              transport stream. Can be entered as a decimal or hexadecimal value.

              - **TimedMetadataBehavior** *(string) --* When set to passthrough, timed metadata is
              passed through from input to output.

              - **TimedMetadataPid** *(string) --* Packet Identifier (PID) of the timed metadata
              stream in the transport stream. Can be entered as a decimal or hexadecimal value.
              Valid values are 32 (or 0x20)..8182 (or 0x1ff6).

              - **TransportStreamId** *(integer) --* The value of the transport stream ID field in
              the Program Map Table.

              - **VideoPid** *(string) --* Packet Identifier (PID) of the elementary video stream in
              the transport stream. Can be entered as a decimal or hexadecimal value.

        - **NameModifier** *(string) --* String concatenated to the end of the destination filename.
        Accepts \\"Format Identifiers\\":#formatIdentifierParameters.

        - **SegmentModifier** *(string) --* String concatenated to end of segment filenames.

      - **MediaPackageOutputSettings** *(dict) --* Media Package Output Settings

      - **MsSmoothOutputSettings** *(dict) --* Ms Smooth Output Settings

        - **H265PackagingType** *(string) --* Only applicable when this output is referencing an
        H.265 video description. Specifies whether MP4 segments should be packaged as HEV1 or HVC1.

        - **NameModifier** *(string) --* String concatenated to the end of the destination filename.
        Required for multiple outputs of the same type.

      - **MultiplexOutputSettings** *(dict) --* Multiplex Output Settings

        - **Destination** *(dict) --* Destination is a Multiplex.

          - **DestinationRefId** *(string) --* Placeholder documentation for __string

      - **RtmpOutputSettings** *(dict) --* Rtmp Output Settings

        - **CertificateMode** *(string) --* If set to verifyAuthenticity, verify the tls certificate
        chain to a trusted Certificate Authority (CA). This will cause rtmps outputs with
        self-signed certificates to fail.

        - **ConnectionRetryInterval** *(integer) --* Number of seconds to wait before retrying a
        connection to the Flash Media server if the connection is lost.

        - **Destination** *(dict) --* The RTMP endpoint excluding the stream name (eg.
        rtmp://host/appname). For connection to Akamai, a username and password must be supplied.
        URI fields accept format identifiers.

          - **DestinationRefId** *(string) --* Placeholder documentation for __string

        - **NumRetries** *(integer) --* Number of retry attempts.

      - **UdpOutputSettings** *(dict) --* Udp Output Settings

        - **BufferMsec** *(integer) --* UDP output buffering in milliseconds. Larger values increase
        latency through the transcoder but simultaneously assist the transcoder in maintaining a
        constant, low-jitter UDP/RTP output while accommodating clock recovery, input switching,
        input disruptions, picture reordering, etc.

        - **ContainerSettings** *(dict) --* Udp Container Settings

          - **M2tsSettings** *(dict) --* M2ts Settings

            - **AbsentInputAudioBehavior** *(string) --* When set to drop, output audio streams will
            be removed from the program if the selected input audio stream is removed from the
            input. This allows the output audio configuration to dynamically change based on input
            configuration. If this is set to encodeSilence, all output audio streams will output
            encoded silence when not connected to an active input stream.

            - **Arib** *(string) --* When set to enabled, uses ARIB-compliant field muxing and
            removes video descriptor.

            - **AribCaptionsPid** *(string) --* Packet Identifier (PID) for ARIB Captions in the
            transport stream. Can be entered as a decimal or hexadecimal value. Valid values are 32
            (or 0x20)..8182 (or 0x1ff6).

            - **AribCaptionsPidControl** *(string) --* If set to auto, pid number used for ARIB
            Captions will be auto-selected from unused pids. If set to useConfigured, ARIB Captions
            will be on the configured pid number.

            - **AudioBufferModel** *(string) --* When set to dvb, uses DVB buffer model for Dolby
            Digital audio. When set to atsc, the ATSC model is used.

            - **AudioFramesPerPes** *(integer) --* The number of audio frames to insert for each PES
            packet.

            - **AudioPids** *(string) --* Packet Identifier (PID) of the elementary audio stream(s)
            in the transport stream. Multiple values are accepted, and can be entered in ranges
            and/or by comma separation. Can be entered as decimal or hexadecimal values. Each PID
            specified must be in the range of 32 (or 0x20)..8182 (or 0x1ff6).

            - **AudioStreamType** *(string) --* When set to atsc, uses stream type =
                 0x81 for AC3
            and stream type = 0x87 for EAC3. When set to dvb, uses stream type = 0x06.

            - **Bitrate** *(integer) --* The output bitrate of the transport stream in bits per
            second. Setting to 0 lets the muxer automatically determine the appropriate bitrate.

            - **BufferModel** *(string) --* If set to multiplex, use multiplex buffer model for
            accurate interleaving. Setting to bufferModel to none can lead to lower latency, but
            low-memory devices may not be able to play back the stream without interruptions.

            - **CcDescriptor** *(string) --* When set to enabled, generates captionServiceDescriptor
            in PMT.

            - **DvbNitSettings** *(dict) --* Inserts DVB Network Information Table (NIT) at the
            specified table repetition interval.

              - **NetworkId** *(integer) --* The numeric value placed in the Network Information
              Table (NIT).

              - **NetworkName** *(string) --* The network name text placed in the
              networkNameDescriptor inside the Network Information Table. Maximum length is 256
              characters.

              - **RepInterval** *(integer) --* The number of milliseconds between instances of this
              table in the output transport stream.

            - **DvbSdtSettings** *(dict) --* Inserts DVB Service Description Table (SDT) at the
            specified table repetition interval.

              - **OutputSdt** *(string) --* Selects method of inserting SDT information into output
              stream. The sdtFollow setting copies SDT information from input stream to output
              stream. The sdtFollowIfPresent setting copies SDT information from input stream to
              output stream if SDT information is present in the input, otherwise it will fall back
              on the user-defined values. The sdtManual setting means user will enter the SDT
              information. The sdtNone setting means output stream will not contain SDT information.

              - **RepInterval** *(integer) --* The number of milliseconds between instances of this
              table in the output transport stream.

              - **ServiceName** *(string) --* The service name placed in the serviceDescriptor in
              the Service Description Table. Maximum length is 256 characters.

              - **ServiceProviderName** *(string) --* The service provider name placed in the
              serviceDescriptor in the Service Description Table. Maximum length is 256 characters.

            - **DvbSubPids** *(string) --* Packet Identifier (PID) for input source DVB Subtitle
            data to this output. Multiple values are accepted, and can be entered in ranges and/or
            by comma separation. Can be entered as decimal or hexadecimal values. Each PID specified
            must be in the range of 32 (or 0x20)..8182 (or 0x1ff6).

            - **DvbTdtSettings** *(dict) --* Inserts DVB Time and Date Table (TDT) at the specified
            table repetition interval.

              - **RepInterval** *(integer) --* The number of milliseconds between instances of this
              table in the output transport stream.

            - **DvbTeletextPid** *(string) --* Packet Identifier (PID) for input source DVB Teletext
            data to this output. Can be entered as a decimal or hexadecimal value. Valid values are
            32 (or 0x20)..8182 (or 0x1ff6).

            - **Ebif** *(string) --* If set to passthrough, passes any EBIF data from the input
            source to this output.

            - **EbpAudioInterval** *(string) --* When videoAndFixedIntervals is selected, audio EBP
            markers will be added to partitions 3 and 4. The interval between these additional
            markers will be fixed, and will be slightly shorter than the video EBP marker interval.
            Only available when EBP Cablelabs segmentation markers are selected. Partitions 1 and 2
            will always follow the video interval.

            - **EbpLookaheadMs** *(integer) --* When set, enforces that Encoder Boundary Points do
            not come within the specified time interval of each other by looking ahead at input
            video. If another EBP is going to come in within the specified time interval, the
            current EBP is not emitted, and the segment is "stretched" to the next marker. The
            lookahead value does not add latency to the system. The Live Event must be configured
            elsewhere to create sufficient latency to make the lookahead accurate.

            - **EbpPlacement** *(string) --* Controls placement of EBP on Audio PIDs. If set to
            videoAndAudioPids, EBP markers will be placed on the video PID and all audio PIDs. If
            set to videoPid, EBP markers will be placed on only the video PID.

            - **EcmPid** *(string) --* This field is unused and deprecated.

            - **EsRateInPes** *(string) --* Include or exclude the ES Rate field in the PES header.

            - **EtvPlatformPid** *(string) --* Packet Identifier (PID) for input source ETV Platform
            data to this output. Can be entered as a decimal or hexadecimal value. Valid values are
            32 (or 0x20)..8182 (or 0x1ff6).

            - **EtvSignalPid** *(string) --* Packet Identifier (PID) for input source ETV Signal
            data to this output. Can be entered as a decimal or hexadecimal value. Valid values are
            32 (or 0x20)..8182 (or 0x1ff6).

            - **FragmentTime** *(float) --* The length in seconds of each fragment. Only used with
            EBP markers.

            - **Klv** *(string) --* If set to passthrough, passes any KLV data from the input source
            to this output.

            - **KlvDataPids** *(string) --* Packet Identifier (PID) for input source KLV data to
            this output. Multiple values are accepted, and can be entered in ranges and/or by comma
            separation. Can be entered as decimal or hexadecimal values. Each PID specified must be
            in the range of 32 (or 0x20)..8182 (or 0x1ff6).

            - **NielsenId3Behavior** *(string) --* If set to passthrough, Nielsen inaudible tones
            for media tracking will be detected in the input audio and an equivalent ID3 tag will be
            inserted in the output.

            - **NullPacketBitrate** *(float) --* Value in bits per second of extra null packets to
            insert into the transport stream. This can be used if a downstream encryption system
            requires periodic null packets.

            - **PatInterval** *(integer) --* The number of milliseconds between instances of this
            table in the output transport stream. Valid values are 0, 10..1000.

            - **PcrControl** *(string) --* When set to pcrEveryPesPacket, a Program Clock Reference
            value is inserted for every Packetized Elementary Stream (PES) header. This parameter is
            effective only when the PCR PID is the same as the video or audio elementary stream.

            - **PcrPeriod** *(integer) --* Maximum time in milliseconds between Program Clock
            Reference (PCRs) inserted into the transport stream.

            - **PcrPid** *(string) --* Packet Identifier (PID) of the Program Clock Reference (PCR)
            in the transport stream. When no value is given, the encoder will assign the same value
            as the Video PID. Can be entered as a decimal or hexadecimal value. Valid values are 32
            (or 0x20)..8182 (or 0x1ff6).

            - **PmtInterval** *(integer) --* The number of milliseconds between instances of this
            table in the output transport stream. Valid values are 0, 10..1000.

            - **PmtPid** *(string) --* Packet Identifier (PID) for the Program Map Table (PMT) in
            the transport stream. Can be entered as a decimal or hexadecimal value. Valid values are
            32 (or 0x20)..8182 (or 0x1ff6).

            - **ProgramNum** *(integer) --* The value of the program number field in the Program Map
            Table.

            - **RateMode** *(string) --* When vbr, does not insert null packets into transport
            stream to fill specified bitrate. The bitrate setting acts as the maximum bitrate when
            vbr is set.

            - **Scte27Pids** *(string) --* Packet Identifier (PID) for input source SCTE-27 data to
            this output. Multiple values are accepted, and can be entered in ranges and/or by comma
            separation. Can be entered as decimal or hexadecimal values. Each PID specified must be
            in the range of 32 (or 0x20)..8182 (or 0x1ff6).

            - **Scte35Control** *(string) --* Optionally pass SCTE-35 signals from the input source
            to this output.

            - **Scte35Pid** *(string) --* Packet Identifier (PID) of the SCTE-35 stream in the
            transport stream. Can be entered as a decimal or hexadecimal value. Valid values are 32
            (or 0x20)..8182 (or 0x1ff6).

            - **SegmentationMarkers** *(string) --* Inserts segmentation markers at each
            segmentationTime period. raiSegstart sets the Random Access Indicator bit in the
            adaptation field. raiAdapt sets the RAI bit and adds the current timecode in the private
            data bytes. psiSegstart inserts PAT and PMT tables at the start of segments. ebp adds
            Encoder Boundary Point information to the adaptation field as per OpenCable
            specification OC-SP-EBP-I01-130118. ebpLegacy adds Encoder Boundary Point information to
            the adaptation field using a legacy proprietary format.

            - **SegmentationStyle** *(string) --* The segmentation style parameter controls how
            segmentation markers are inserted into the transport stream. With avails, it is possible
            that segments may be truncated, which can influence where future segmentation markers
            are inserted. When a segmentation style of "resetCadence" is selected and a segment is
            truncated due to an avail, we will reset the segmentation cadence. This means the
            subsequent segment will have a duration of $segmentationTime seconds. When a
            segmentation style of "maintainCadence" is selected and a segment is truncated due to an
            avail, we will not reset the segmentation cadence. This means the subsequent segment
            will likely be truncated as well. However, all segments after that will have a duration
            of $segmentationTime seconds. Note that EBP lookahead is a slight exception to this
            rule.

            - **SegmentationTime** *(float) --* The length in seconds of each segment. Required
            unless markers is set to None_.

            - **TimedMetadataBehavior** *(string) --* When set to passthrough, timed metadata will
            be passed through from input to output.

            - **TimedMetadataPid** *(string) --* Packet Identifier (PID) of the timed metadata
            stream in the transport stream. Can be entered as a decimal or hexadecimal value. Valid
            values are 32 (or 0x20)..8182 (or 0x1ff6).

            - **TransportStreamId** *(integer) --* The value of the transport stream ID field in the
            Program Map Table.

            - **VideoPid** *(string) --* Packet Identifier (PID) of the elementary video stream in
            the transport stream. Can be entered as a decimal or hexadecimal value. Valid values are
            32 (or 0x20)..8182 (or 0x1ff6).

        - **Destination** *(dict) --* Destination address and port number for RTP or UDP packets.
        Can be unicast or multicast RTP or UDP (eg. rtp://239.10.10.10:5001 or
        udp://10.100.100.100:5002).

          - **DestinationRefId** *(string) --* Placeholder documentation for __string

        - **FecOutputSettings** *(dict) --* Settings for enabling and adjusting Forward Error
        Correction on UDP outputs.

          - **ColumnDepth** *(integer) --* Parameter D from SMPTE 2022-1. The height of the FEC
          protection matrix. The number of transport stream packets per column error correction
          packet. Must be between 4 and 20, inclusive.

          - **IncludeFec** *(string) --* Enables column only or column and row based FEC

          - **RowLength** *(integer) --* Parameter L from SMPTE 2022-1. The width of the FEC
          protection matrix. Must be between 1 and 20, inclusive. If only Column FEC is used, then
          larger values increase robustness. If Row FEC is used, then this is the number of
          transport stream packets per row error correction packet, and the value must be between 4
          and 20, inclusive, if includeFec is columnAndRow. If includeFec is column, this value must
          be 1 to 20, inclusive.

    - **VideoDescriptionName** *(string) --* The name of the VideoDescription used as the source for
    this output.
    """


_ClientStopChannelResponseEncoderSettingsOutputGroupsTypeDef = TypedDict(
    "_ClientStopChannelResponseEncoderSettingsOutputGroupsTypeDef",
    {
        "Name": str,
        "OutputGroupSettings": ClientStopChannelResponseEncoderSettingsOutputGroupsOutputGroupSettingsTypeDef,
        "Outputs": List[ClientStopChannelResponseEncoderSettingsOutputGroupsOutputsTypeDef],
    },
    total=False,
)


class ClientStopChannelResponseEncoderSettingsOutputGroupsTypeDef(
    _ClientStopChannelResponseEncoderSettingsOutputGroupsTypeDef
):
    """
    Type definition for `ClientStopChannelResponseEncoderSettings` `OutputGroups`

    - **Name** *(string) --* Custom output group name optionally defined by the user. Only letters,
    numbers, and the underscore character allowed; only 32 characters allowed.

    - **OutputGroupSettings** *(dict) --* Settings associated with the output group.

      - **ArchiveGroupSettings** *(dict) --* Archive Group Settings

        - **Destination** *(dict) --* A directory and base filename where archive files should be
        written.

          - **DestinationRefId** *(string) --* Placeholder documentation for __string

        - **RolloverInterval** *(integer) --* Number of seconds to write to archive file before
        closing and starting a new one.

      - **FrameCaptureGroupSettings** *(dict) --* Frame Capture Group Settings

        - **Destination** *(dict) --* The destination for the frame capture files. Either the URI
        for an Amazon S3 bucket and object, plus a file name prefix (for example,
        s3ssl://sportsDelivery/highlights/20180820/curling_) or the URI for a MediaStore container,
        plus a file name prefix (for example, mediastoressl://sportsDelivery/20180820/curling_). The
        final file names consist of the prefix from the destination field (for example, "curling_")
        + name modifier + the counter (5 digits, starting from 00001) + extension (which is always
        .jpg). For example, curlingLow.00001.jpg

          - **DestinationRefId** *(string) --* Placeholder documentation for __string

      - **HlsGroupSettings** *(dict) --* Hls Group Settings

        - **AdMarkers** *(list) --* Choose one or more ad marker types to pass SCTE35 signals
        through to this group of Apple HLS outputs.

          - *(string) --* Hls Ad Markers

        - **BaseUrlContent** *(string) --* A partial URI prefix that will be prepended to each
        output in the media .m3u8 file. Can be used if base manifest is delivered from a different
        URL than the main .m3u8 file.

        - **BaseUrlManifest** *(string) --* A partial URI prefix that will be prepended to each
        output in the media .m3u8 file. Can be used if base manifest is delivered from a different
        URL than the main .m3u8 file.

        - **CaptionLanguageMappings** *(list) --* Mapping of up to 4 caption channels to caption
        languages. Is only meaningful if captionLanguageSetting is set to "insert".

          - *(dict) --* Maps a caption channel to an ISO 693-2 language code
          (http://www.loc.gov/standards/iso639-2), with an optional description.

            - **CaptionChannel** *(integer) --* The closed caption channel being described by this
            CaptionLanguageMapping. Each channel mapping must have a unique channel number (maximum
            of 4)

            - **LanguageCode** *(string) --* Three character ISO 639-2 language code (see
            http://www.loc.gov/standards/iso639-2)

            - **LanguageDescription** *(string) --* Textual description of language

        - **CaptionLanguageSetting** *(string) --* Applies only to 608 Embedded output captions.
        insert: Include CLOSED-CAPTIONS lines in the manifest. Specify at least one language in the
        CC1 Language Code field. One CLOSED-CAPTION line is added for each Language Code you
        specify. Make sure to specify the languages in the order in which they appear in the
        original source (if the source is embedded format) or the order of the caption selectors (if
        the source is other than embedded). Otherwise, languages in the manifest will not match up
        properly with the output captions. none: Include CLOSED-CAPTIONS=
            NONE line in the manifest.
        omit: Omit any CLOSED-CAPTIONS line from the manifest.

        - **ClientCache** *(string) --* When set to "disabled", sets the #EXT-X-ALLOW-CACHE:no tag
        in the manifest, which prevents clients from saving media segments for later replay.

        - **CodecSpecification** *(string) --* Specification to use (RFC-6381 or the default
        RFC-4281) during m3u8 playlist generation.

        - **ConstantIv** *(string) --* For use with encryptionType. This is a 128-bit, 16-byte hex
        value represented by a 32-character text string. If ivSource is set to "explicit" then this
        parameter is required and is used as the IV for encryption.

        - **Destination** *(dict) --* A directory or HTTP destination for the HLS segments, manifest
        files, and encryption keys (if enabled).

          - **DestinationRefId** *(string) --* Placeholder documentation for __string

        - **DirectoryStructure** *(string) --* Place segments in subdirectories.

        - **EncryptionType** *(string) --* Encrypts the segments with the given encryption scheme.
        Exclude this parameter if no encryption is desired.

        - **HlsCdnSettings** *(dict) --* Parameters that control interactions with the CDN.

          - **HlsAkamaiSettings** *(dict) --* Hls Akamai Settings

            - **ConnectionRetryInterval** *(integer) --* Number of seconds to wait before retrying
            connection to the CDN if the connection is lost.

            - **FilecacheDuration** *(integer) --* Size in seconds of file cache for streaming
            outputs.

            - **HttpTransferMode** *(string) --* Specify whether or not to use chunked transfer
            encoding to Akamai. User should contact Akamai to enable this feature.

            - **NumRetries** *(integer) --* Number of retry attempts that will be made before the
            Live Event is put into an error state.

            - **RestartDelay** *(integer) --* If a streaming output fails, number of seconds to wait
            until a restart is initiated. A value of 0 means never restart.

            - **Salt** *(string) --* Salt for authenticated Akamai.

            - **Token** *(string) --* Token parameter for authenticated akamai. If not specified,
            _gda_ is used.

          - **HlsBasicPutSettings** *(dict) --* Hls Basic Put Settings

            - **ConnectionRetryInterval** *(integer) --* Number of seconds to wait before retrying
            connection to the CDN if the connection is lost.

            - **FilecacheDuration** *(integer) --* Size in seconds of file cache for streaming
            outputs.

            - **NumRetries** *(integer) --* Number of retry attempts that will be made before the
            Live Event is put into an error state.

            - **RestartDelay** *(integer) --* If a streaming output fails, number of seconds to wait
            until a restart is initiated. A value of 0 means never restart.

          - **HlsMediaStoreSettings** *(dict) --* Hls Media Store Settings

            - **ConnectionRetryInterval** *(integer) --* Number of seconds to wait before retrying
            connection to the CDN if the connection is lost.

            - **FilecacheDuration** *(integer) --* Size in seconds of file cache for streaming
            outputs.

            - **MediaStoreStorageClass** *(string) --* When set to temporal, output files are stored
            in non-persistent memory for faster reading and writing.

            - **NumRetries** *(integer) --* Number of retry attempts that will be made before the
            Live Event is put into an error state.

            - **RestartDelay** *(integer) --* If a streaming output fails, number of seconds to wait
            until a restart is initiated. A value of 0 means never restart.

          - **HlsWebdavSettings** *(dict) --* Hls Webdav Settings

            - **ConnectionRetryInterval** *(integer) --* Number of seconds to wait before retrying
            connection to the CDN if the connection is lost.

            - **FilecacheDuration** *(integer) --* Size in seconds of file cache for streaming
            outputs.

            - **HttpTransferMode** *(string) --* Specify whether or not to use chunked transfer
            encoding to WebDAV.

            - **NumRetries** *(integer) --* Number of retry attempts that will be made before the
            Live Event is put into an error state.

            - **RestartDelay** *(integer) --* If a streaming output fails, number of seconds to wait
            until a restart is initiated. A value of 0 means never restart.

        - **IFrameOnlyPlaylists** *(string) --* DISABLED: Do not create an I-frame-only manifest,
        but do create the master and media manifests (according to the Output Selection field).
        STANDARD: Create an I-frame-only manifest for each output that contains video, as well as
        the other manifests (according to the Output Selection field). The I-frame manifest contains
        a #EXT-X-I-FRAMES-ONLY tag to indicate it is I-frame only, and one or more #EXT-X-BYTERANGE
        entries identifying the I-frame position. For example, #EXT-X-BYTERANGE:160364@1461888"

        - **IndexNSegments** *(integer) --* Applies only if Mode field is LIVE. Specifies the
        maximum number of segments in the media manifest file. After this maximum, older segments
        are removed from the media manifest. This number must be less than or equal to the Keep
        Segments field.

        - **InputLossAction** *(string) --* Parameter that control output group behavior on input
        loss.

        - **IvInManifest** *(string) --* For use with encryptionType. The IV (Initialization Vector)
        is a 128-bit number used in conjunction with the key for encrypting blocks. If set to
        "include", IV is listed in the manifest, otherwise the IV is not in the manifest.

        - **IvSource** *(string) --* For use with encryptionType. The IV (Initialization Vector) is
        a 128-bit number used in conjunction with the key for encrypting blocks. If this setting is
        "followsSegmentNumber", it will cause the IV to change every segment (to match the segment
        number). If this is set to "explicit", you must enter a constantIv value.

        - **KeepSegments** *(integer) --* Applies only if Mode field is LIVE. Specifies the number
        of media segments (.ts files) to retain in the destination directory.

        - **KeyFormat** *(string) --* The value specifies how the key is represented in the resource
        identified by the URI. If parameter is absent, an implicit value of "identity" is used. A
        reverse DNS string can also be given.

        - **KeyFormatVersions** *(string) --* Either a single positive integer version value or a
        slash delimited list of version values (1/2/3).

        - **KeyProviderSettings** *(dict) --* The key provider settings.

          - **StaticKeySettings** *(dict) --* Static Key Settings

            - **KeyProviderServer** *(dict) --* The URL of the license server used for protecting
            content.

              - **PasswordParam** *(string) --* key used to extract the password from EC2 Parameter
              store

              - **Uri** *(string) --* Uniform Resource Identifier - This should be a path to a file
              accessible to the Live system (eg. a http:// URI) depending on the output type. For
              example, a RTMP destination should have a uri simliar to: "rtmp://fmsserver/live".

              - **Username** *(string) --* Documentation update needed

            - **StaticKeyValue** *(string) --* Static key value as a 32 character hexadecimal
            string.

        - **ManifestCompression** *(string) --* When set to gzip, compresses HLS playlist.

        - **ManifestDurationFormat** *(string) --* Indicates whether the output manifest should use
        floating point or integer values for segment duration.

        - **MinSegmentLength** *(integer) --* When set, minimumSegmentLength is enforced by looking
        ahead and back within the specified range for a nearby avail and extending the segment size
        if needed.

        - **Mode** *(string) --* If "vod", all segments are indexed and kept permanently in the
        destination and manifest. If "live", only the number segments specified in keepSegments and
        indexNSegments are kept; newer segments replace older segments, which may prevent players
        from rewinding all the way to the beginning of the event. VOD mode uses HLS
        EXT-X-PLAYLIST-TYPE of EVENT while the channel is running, converting it to a "VOD" type
        manifest on completion of the stream.

        - **OutputSelection** *(string) --* MANIFESTSANDSEGMENTS: Generates manifests (master
        manifest, if applicable, and media manifests) for this output group. SEGMENTSONLY: Does not
        generate any manifests for this output group.

        - **ProgramDateTime** *(string) --* Includes or excludes EXT-X-PROGRAM-DATE-TIME tag in
        .m3u8 manifest files. The value is calculated as follows: either the program date and time
        are initialized using the input timecode source, or the time is initialized using the input
        timecode source and the date is initialized using the timestampOffset.

        - **ProgramDateTimePeriod** *(integer) --* Period of insertion of EXT-X-PROGRAM-DATE-TIME
        entry, in seconds.

        - **RedundantManifest** *(string) --* ENABLED: The master manifest (.m3u8 file) for each
        pipeline includes information about both pipelines: first its own media files, then the
        media files of the other pipeline. This feature allows playout device that support stale
        manifest detection to switch from one manifest to the other, when the current manifest seems
        to be stale. There are still two destinations and two master manifests, but both master
        manifests reference the media files from both pipelines. DISABLED: The master manifest
        (.m3u8 file) for each pipeline includes information about its own pipeline only. For an HLS
        output group with MediaPackage as the destination, the DISABLED behavior is always followed.
        MediaPackage regenerates the manifests it serves to players so a redundant manifest from
        MediaLive is irrelevant.

        - **SegmentLength** *(integer) --* Length of MPEG-2 Transport Stream segments to create (in
        seconds). Note that segments will end on the next keyframe after this number of seconds, so
        actual segment length may be longer.

        - **SegmentationMode** *(string) --* useInputSegmentation has been deprecated. The
        configured segment size is always used.

        - **SegmentsPerSubdirectory** *(integer) --* Number of segments to write to a subdirectory
        before starting a new one. directoryStructure must be subdirectoryPerStream for this setting
        to have an effect.

        - **StreamInfResolution** *(string) --* Include or exclude RESOLUTION attribute for video in
        EXT-X-STREAM-INF tag of variant manifest.

        - **TimedMetadataId3Frame** *(string) --* Indicates ID3 frame that has the timecode.

        - **TimedMetadataId3Period** *(integer) --* Timed Metadata interval in seconds.

        - **TimestampDeltaMilliseconds** *(integer) --* Provides an extra millisecond delta offset
        to fine tune the timestamps.

        - **TsFileMode** *(string) --* SEGMENTEDFILES: Emit the program as segments - multiple .ts
        media files. SINGLEFILE: Applies only if Mode field is VOD. Emit the program as a single .ts
        media file. The media manifest includes #EXT-X-BYTERANGE tags to index segments for
        playback. A typical use for this value is when sending the output to AWS Elemental
        MediaConvert, which can accept only a single media file. Playback while the channel is
        running is not guaranteed due to HTTP server caching.

      - **MediaPackageGroupSettings** *(dict) --* Media Package Group Settings

        - **Destination** *(dict) --* MediaPackage channel destination.

          - **DestinationRefId** *(string) --* Placeholder documentation for __string

      - **MsSmoothGroupSettings** *(dict) --* Ms Smooth Group Settings

        - **AcquisitionPointId** *(string) --* The value of the "Acquisition Point Identity" element
        used in each message placed in the sparse track. Only enabled if sparseTrackType is not
        "none".

        - **AudioOnlyTimecodeControl** *(string) --* If set to passthrough for an audio-only MS
        Smooth output, the fragment absolute time will be set to the current timecode. This option
        does not write timecodes to the audio elementary stream.

        - **CertificateMode** *(string) --* If set to verifyAuthenticity, verify the https
        certificate chain to a trusted Certificate Authority (CA). This will cause https outputs to
        self-signed certificates to fail.

        - **ConnectionRetryInterval** *(integer) --* Number of seconds to wait before retrying
        connection to the IIS server if the connection is lost. Content will be cached during this
        time and the cache will be be delivered to the IIS server once the connection is
        re-established.

        - **Destination** *(dict) --* Smooth Streaming publish point on an IIS server. Elemental
        Live acts as a "Push" encoder to IIS.

          - **DestinationRefId** *(string) --* Placeholder documentation for __string

        - **EventId** *(string) --* MS Smooth event ID to be sent to the IIS server. Should only be
        specified if eventIdMode is set to useConfigured.

        - **EventIdMode** *(string) --* Specifies whether or not to send an event ID to the IIS
        server. If no event ID is sent and the same Live Event is used without changing the
        publishing point, clients might see cached video from the previous run. Options: -
        "useConfigured" - use the value provided in eventId - "useTimestamp" - generate and send an
        event ID based on the current timestamp - "noEventId" - do not send an event ID to the IIS
        server.

        - **EventStopBehavior** *(string) --* When set to sendEos, send EOS signal to IIS server
        when stopping the event

        - **FilecacheDuration** *(integer) --* Size in seconds of file cache for streaming outputs.

        - **FragmentLength** *(integer) --* Length of mp4 fragments to generate (in seconds).
        Fragment length must be compatible with GOP size and framerate.

        - **InputLossAction** *(string) --* Parameter that control output group behavior on input
        loss.

        - **NumRetries** *(integer) --* Number of retry attempts.

        - **RestartDelay** *(integer) --* Number of seconds before initiating a restart due to
        output failure, due to exhausting the numRetries on one segment, or exceeding
        filecacheDuration.

        - **SegmentationMode** *(string) --* useInputSegmentation has been deprecated. The
        configured segment size is always used.

        - **SendDelayMs** *(integer) --* Number of milliseconds to delay the output from the second
        pipeline.

        - **SparseTrackType** *(string) --* If set to scte35, use incoming SCTE-35 messages to
        generate a sparse track in this group of MS-Smooth outputs.

        - **StreamManifestBehavior** *(string) --* When set to send, send stream manifest so
        publishing point doesn't start until all streams start.

        - **TimestampOffset** *(string) --* Timestamp offset for the event. Only used if
        timestampOffsetMode is set to useConfiguredOffset.

        - **TimestampOffsetMode** *(string) --* Type of timestamp date offset to use. -
        useEventStartDate: Use the date the event was started as the offset - useConfiguredOffset:
        Use an explicitly configured date as the offset

      - **MultiplexGroupSettings** *(dict) --* Multiplex Group Settings

      - **RtmpGroupSettings** *(dict) --* Rtmp Group Settings

        - **AuthenticationScheme** *(string) --* Authentication scheme to use when connecting with
        CDN

        - **CacheFullBehavior** *(string) --* Controls behavior when content cache fills up. If
        remote origin server stalls the RTMP connection and does not accept content fast enough the
        'Media Cache' will fill up. When the cache reaches the duration specified by cacheLength the
        cache will stop accepting new content. If set to disconnectImmediately, the RTMP output will
        force a disconnect. Clear the media cache, and reconnect after restartDelay seconds. If set
        to waitForServer, the RTMP output will wait up to 5 minutes to allow the origin server to
        begin accepting data again.

        - **CacheLength** *(integer) --* Cache length, in seconds, is used to calculate buffer size.

        - **CaptionData** *(string) --* Controls the types of data that passes to onCaptionInfo
        outputs. If set to 'all' then 608 and 708 carried DTVCC data will be passed. If set to
        'field1AndField2608' then DTVCC data will be stripped out, but 608 data from both fields
        will be passed. If set to 'field1608' then only the data carried in 608 from field 1 video
        will be passed.

        - **InputLossAction** *(string) --* Controls the behavior of this RTMP group if input
        becomes unavailable. - emitOutput: Emit a slate until input returns. - pauseOutput: Stop
        transmitting data until input returns. This does not close the underlying RTMP connection.

        - **RestartDelay** *(integer) --* If a streaming output fails, number of seconds to wait
        until a restart is initiated. A value of 0 means never restart.

      - **UdpGroupSettings** *(dict) --* Udp Group Settings

        - **InputLossAction** *(string) --* Specifies behavior of last resort when input video is
        lost, and no more backup inputs are available. When dropTs is selected the entire transport
        stream will stop being emitted. When dropProgram is selected the program can be dropped from
        the transport stream (and replaced with null packets to meet the TS bitrate requirement).
        Or, when emitProgram is chosen the transport stream will continue to be produced normally
        with repeat frames, black frames, or slate frames substituted for the absent input video.

        - **TimedMetadataId3Frame** *(string) --* Indicates ID3 frame that has the timecode.

        - **TimedMetadataId3Period** *(integer) --* Timed Metadata interval in seconds.

    - **Outputs** *(list) --* Placeholder documentation for __listOfOutput

      - *(dict) --* Output settings. There can be multiple outputs within a group.

        - **AudioDescriptionNames** *(list) --* The names of the AudioDescriptions used as audio
        sources for this output.

          - *(string) --* Placeholder documentation for __string

        - **CaptionDescriptionNames** *(list) --* The names of the CaptionDescriptions used as
        caption sources for this output.

          - *(string) --* Placeholder documentation for __string

        - **OutputName** *(string) --* The name used to identify an output.

        - **OutputSettings** *(dict) --* Output type-specific settings.

          - **ArchiveOutputSettings** *(dict) --* Archive Output Settings

            - **ContainerSettings** *(dict) --* Settings specific to the container type of the file.

              - **M2tsSettings** *(dict) --* M2ts Settings

                - **AbsentInputAudioBehavior** *(string) --* When set to drop, output audio streams
                will be removed from the program if the selected input audio stream is removed from
                the input. This allows the output audio configuration to dynamically change based on
                input configuration. If this is set to encodeSilence, all output audio streams will
                output encoded silence when not connected to an active input stream.

                - **Arib** *(string) --* When set to enabled, uses ARIB-compliant field muxing and
                removes video descriptor.

                - **AribCaptionsPid** *(string) --* Packet Identifier (PID) for ARIB Captions in the
                transport stream. Can be entered as a decimal or hexadecimal value. Valid values are
                32 (or 0x20)..8182 (or 0x1ff6).

                - **AribCaptionsPidControl** *(string) --* If set to auto, pid number used for ARIB
                Captions will be auto-selected from unused pids. If set to useConfigured, ARIB
                Captions will be on the configured pid number.

                - **AudioBufferModel** *(string) --* When set to dvb, uses DVB buffer model for
                Dolby Digital audio. When set to atsc, the ATSC model is used.

                - **AudioFramesPerPes** *(integer) --* The number of audio frames to insert for each
                PES packet.

                - **AudioPids** *(string) --* Packet Identifier (PID) of the elementary audio
                stream(s) in the transport stream. Multiple values are accepted, and can be entered
                in ranges and/or by comma separation. Can be entered as decimal or hexadecimal
                values. Each PID specified must be in the range of 32 (or 0x20)..8182 (or 0x1ff6).

                - **AudioStreamType** *(string) --* When set to atsc, uses stream type =
                     0x81 for
                AC3 and stream type = 0x87 for EAC3. When set to dvb, uses stream type =
                     0x06.

                - **Bitrate** *(integer) --* The output bitrate of the transport stream in bits per
                second. Setting to 0 lets the muxer automatically determine the appropriate bitrate.

                - **BufferModel** *(string) --* If set to multiplex, use multiplex buffer model for
                accurate interleaving. Setting to bufferModel to none can lead to lower latency, but
                low-memory devices may not be able to play back the stream without interruptions.

                - **CcDescriptor** *(string) --* When set to enabled, generates
                captionServiceDescriptor in PMT.

                - **DvbNitSettings** *(dict) --* Inserts DVB Network Information Table (NIT) at the
                specified table repetition interval.

                  - **NetworkId** *(integer) --* The numeric value placed in the Network Information
                  Table (NIT).

                  - **NetworkName** *(string) --* The network name text placed in the
                  networkNameDescriptor inside the Network Information Table. Maximum length is 256
                  characters.

                  - **RepInterval** *(integer) --* The number of milliseconds between instances of
                  this table in the output transport stream.

                - **DvbSdtSettings** *(dict) --* Inserts DVB Service Description Table (SDT) at the
                specified table repetition interval.

                  - **OutputSdt** *(string) --* Selects method of inserting SDT information into
                  output stream. The sdtFollow setting copies SDT information from input stream to
                  output stream. The sdtFollowIfPresent setting copies SDT information from input
                  stream to output stream if SDT information is present in the input, otherwise it
                  will fall back on the user-defined values. The sdtManual setting means user will
                  enter the SDT information. The sdtNone setting means output stream will not
                  contain SDT information.

                  - **RepInterval** *(integer) --* The number of milliseconds between instances of
                  this table in the output transport stream.

                  - **ServiceName** *(string) --* The service name placed in the serviceDescriptor
                  in the Service Description Table. Maximum length is 256 characters.

                  - **ServiceProviderName** *(string) --* The service provider name placed in the
                  serviceDescriptor in the Service Description Table. Maximum length is 256
                  characters.

                - **DvbSubPids** *(string) --* Packet Identifier (PID) for input source DVB Subtitle
                data to this output. Multiple values are accepted, and can be entered in ranges
                and/or by comma separation. Can be entered as decimal or hexadecimal values. Each
                PID specified must be in the range of 32 (or 0x20)..8182 (or 0x1ff6).

                - **DvbTdtSettings** *(dict) --* Inserts DVB Time and Date Table (TDT) at the
                specified table repetition interval.

                  - **RepInterval** *(integer) --* The number of milliseconds between instances of
                  this table in the output transport stream.

                - **DvbTeletextPid** *(string) --* Packet Identifier (PID) for input source DVB
                Teletext data to this output. Can be entered as a decimal or hexadecimal value.
                Valid values are 32 (or 0x20)..8182 (or 0x1ff6).

                - **Ebif** *(string) --* If set to passthrough, passes any EBIF data from the input
                source to this output.

                - **EbpAudioInterval** *(string) --* When videoAndFixedIntervals is selected, audio
                EBP markers will be added to partitions 3 and 4. The interval between these
                additional markers will be fixed, and will be slightly shorter than the video EBP
                marker interval. Only available when EBP Cablelabs segmentation markers are
                selected. Partitions 1 and 2 will always follow the video interval.

                - **EbpLookaheadMs** *(integer) --* When set, enforces that Encoder Boundary Points
                do not come within the specified time interval of each other by looking ahead at
                input video. If another EBP is going to come in within the specified time interval,
                the current EBP is not emitted, and the segment is "stretched" to the next marker.
                The lookahead value does not add latency to the system. The Live Event must be
                configured elsewhere to create sufficient latency to make the lookahead accurate.

                - **EbpPlacement** *(string) --* Controls placement of EBP on Audio PIDs. If set to
                videoAndAudioPids, EBP markers will be placed on the video PID and all audio PIDs.
                If set to videoPid, EBP markers will be placed on only the video PID.

                - **EcmPid** *(string) --* This field is unused and deprecated.

                - **EsRateInPes** *(string) --* Include or exclude the ES Rate field in the PES
                header.

                - **EtvPlatformPid** *(string) --* Packet Identifier (PID) for input source ETV
                Platform data to this output. Can be entered as a decimal or hexadecimal value.
                Valid values are 32 (or 0x20)..8182 (or 0x1ff6).

                - **EtvSignalPid** *(string) --* Packet Identifier (PID) for input source ETV Signal
                data to this output. Can be entered as a decimal or hexadecimal value. Valid values
                are 32 (or 0x20)..8182 (or 0x1ff6).

                - **FragmentTime** *(float) --* The length in seconds of each fragment. Only used
                with EBP markers.

                - **Klv** *(string) --* If set to passthrough, passes any KLV data from the input
                source to this output.

                - **KlvDataPids** *(string) --* Packet Identifier (PID) for input source KLV data to
                this output. Multiple values are accepted, and can be entered in ranges and/or by
                comma separation. Can be entered as decimal or hexadecimal values. Each PID
                specified must be in the range of 32 (or 0x20)..8182 (or 0x1ff6).

                - **NielsenId3Behavior** *(string) --* If set to passthrough, Nielsen inaudible
                tones for media tracking will be detected in the input audio and an equivalent ID3
                tag will be inserted in the output.

                - **NullPacketBitrate** *(float) --* Value in bits per second of extra null packets
                to insert into the transport stream. This can be used if a downstream encryption
                system requires periodic null packets.

                - **PatInterval** *(integer) --* The number of milliseconds between instances of
                this table in the output transport stream. Valid values are 0, 10..1000.

                - **PcrControl** *(string) --* When set to pcrEveryPesPacket, a Program Clock
                Reference value is inserted for every Packetized Elementary Stream (PES) header.
                This parameter is effective only when the PCR PID is the same as the video or audio
                elementary stream.

                - **PcrPeriod** *(integer) --* Maximum time in milliseconds between Program Clock
                Reference (PCRs) inserted into the transport stream.

                - **PcrPid** *(string) --* Packet Identifier (PID) of the Program Clock Reference
                (PCR) in the transport stream. When no value is given, the encoder will assign the
                same value as the Video PID. Can be entered as a decimal or hexadecimal value. Valid
                values are 32 (or 0x20)..8182 (or 0x1ff6).

                - **PmtInterval** *(integer) --* The number of milliseconds between instances of
                this table in the output transport stream. Valid values are 0, 10..1000.

                - **PmtPid** *(string) --* Packet Identifier (PID) for the Program Map Table (PMT)
                in the transport stream. Can be entered as a decimal or hexadecimal value. Valid
                values are 32 (or 0x20)..8182 (or 0x1ff6).

                - **ProgramNum** *(integer) --* The value of the program number field in the Program
                Map Table.

                - **RateMode** *(string) --* When vbr, does not insert null packets into transport
                stream to fill specified bitrate. The bitrate setting acts as the maximum bitrate
                when vbr is set.

                - **Scte27Pids** *(string) --* Packet Identifier (PID) for input source SCTE-27 data
                to this output. Multiple values are accepted, and can be entered in ranges and/or by
                comma separation. Can be entered as decimal or hexadecimal values. Each PID
                specified must be in the range of 32 (or 0x20)..8182 (or 0x1ff6).

                - **Scte35Control** *(string) --* Optionally pass SCTE-35 signals from the input
                source to this output.

                - **Scte35Pid** *(string) --* Packet Identifier (PID) of the SCTE-35 stream in the
                transport stream. Can be entered as a decimal or hexadecimal value. Valid values are
                32 (or 0x20)..8182 (or 0x1ff6).

                - **SegmentationMarkers** *(string) --* Inserts segmentation markers at each
                segmentationTime period. raiSegstart sets the Random Access Indicator bit in the
                adaptation field. raiAdapt sets the RAI bit and adds the current timecode in the
                private data bytes. psiSegstart inserts PAT and PMT tables at the start of segments.
                ebp adds Encoder Boundary Point information to the adaptation field as per OpenCable
                specification OC-SP-EBP-I01-130118. ebpLegacy adds Encoder Boundary Point
                information to the adaptation field using a legacy proprietary format.

                - **SegmentationStyle** *(string) --* The segmentation style parameter controls how
                segmentation markers are inserted into the transport stream. With avails, it is
                possible that segments may be truncated, which can influence where future
                segmentation markers are inserted. When a segmentation style of "resetCadence" is
                selected and a segment is truncated due to an avail, we will reset the segmentation
                cadence. This means the subsequent segment will have a duration of $segmentationTime
                seconds. When a segmentation style of "maintainCadence" is selected and a segment is
                truncated due to an avail, we will not reset the segmentation cadence. This means
                the subsequent segment will likely be truncated as well. However, all segments after
                that will have a duration of $segmentationTime seconds. Note that EBP lookahead is a
                slight exception to this rule.

                - **SegmentationTime** *(float) --* The length in seconds of each segment. Required
                unless markers is set to None_.

                - **TimedMetadataBehavior** *(string) --* When set to passthrough, timed metadata
                will be passed through from input to output.

                - **TimedMetadataPid** *(string) --* Packet Identifier (PID) of the timed metadata
                stream in the transport stream. Can be entered as a decimal or hexadecimal value.
                Valid values are 32 (or 0x20)..8182 (or 0x1ff6).

                - **TransportStreamId** *(integer) --* The value of the transport stream ID field in
                the Program Map Table.

                - **VideoPid** *(string) --* Packet Identifier (PID) of the elementary video stream
                in the transport stream. Can be entered as a decimal or hexadecimal value. Valid
                values are 32 (or 0x20)..8182 (or 0x1ff6).

            - **Extension** *(string) --* Output file extension. If excluded, this will be
            auto-selected from the container type.

            - **NameModifier** *(string) --* String concatenated to the end of the destination
            filename. Required for multiple outputs of the same type.

          - **FrameCaptureOutputSettings** *(dict) --* Frame Capture Output Settings

            - **NameModifier** *(string) --* Required if the output group contains more than one
            output. This modifier forms part of the output file name.

          - **HlsOutputSettings** *(dict) --* Hls Output Settings

            - **HlsSettings** *(dict) --* Settings regarding the underlying stream. These settings
            are different for audio-only outputs.

              - **AudioOnlyHlsSettings** *(dict) --* Audio Only Hls Settings

                - **AudioGroupId** *(string) --* Specifies the group to which the audio Rendition
                belongs.

                - **AudioOnlyImage** *(dict) --* Optional. Specifies the .jpg or .png image to use
                as the cover art for an audio-only output. We recommend a low bit-size file because
                the image increases the output audio bandwidth. The image is attached to the audio
                as an ID3 tag, frame type APIC, picture type 0x10, as per the "ID3 tag version 2.4.0
                - Native Frames" standard.

                  - **PasswordParam** *(string) --* key used to extract the password from EC2
                  Parameter store

                  - **Uri** *(string) --* Uniform Resource Identifier - This should be a path to a
                  file accessible to the Live system (eg. a http:// URI) depending on the output
                  type. For example, a RTMP destination should have a uri simliar to:
                  "rtmp://fmsserver/live".

                  - **Username** *(string) --* Documentation update needed

                - **AudioTrackType** *(string) --* Four types of audio-only tracks are supported:
                Audio-Only Variant Stream The client can play back this audio-only stream instead of
                video in low-bandwidth scenarios. Represented as an EXT-X-STREAM-INF in the HLS
                manifest. Alternate Audio, Auto Select, Default Alternate rendition that the client
                should try to play back by default. Represented as an EXT-X-MEDIA in the HLS
                manifest with DEFAULT=YES, AUTOSELECT=
                    YES Alternate Audio, Auto Select, Not Default
                Alternate rendition that the client may try to play back by default. Represented as
                an EXT-X-MEDIA in the HLS manifest with DEFAULT=NO, AUTOSELECT=
                    YES Alternate Audio,
                not Auto Select Alternate rendition that the client will not try to play back by
                default. Represented as an EXT-X-MEDIA in the HLS manifest with DEFAULT=
                    NO,
                AUTOSELECT=NO

              - **StandardHlsSettings** *(dict) --* Standard Hls Settings

                - **AudioRenditionSets** *(string) --* List all the audio groups that are used with
                the video output stream. Input all the audio GROUP-IDs that are associated to the
                video, separate by ','.

                - **M3u8Settings** *(dict) --* Settings information for the .m3u8 container

                  - **AudioFramesPerPes** *(integer) --* The number of audio frames to insert for
                  each PES packet.

                  - **AudioPids** *(string) --* Packet Identifier (PID) of the elementary audio
                  stream(s) in the transport stream. Multiple values are accepted, and can be
                  entered in ranges and/or by comma separation. Can be entered as decimal or
                  hexadecimal values.

                  - **EcmPid** *(string) --* This parameter is unused and deprecated.

                  - **NielsenId3Behavior** *(string) --* If set to passthrough, Nielsen inaudible
                  tones for media tracking will be detected in the input audio and an equivalent ID3
                  tag will be inserted in the output.

                  - **PatInterval** *(integer) --* The number of milliseconds between instances of
                  this table in the output transport stream. A value of \\"0\\" writes out the PMT
                  once per segment file.

                  - **PcrControl** *(string) --* When set to pcrEveryPesPacket, a Program Clock
                  Reference value is inserted for every Packetized Elementary Stream (PES) header.
                  This parameter is effective only when the PCR PID is the same as the video or
                  audio elementary stream.

                  - **PcrPeriod** *(integer) --* Maximum time in milliseconds between Program Clock
                  References (PCRs) inserted into the transport stream.

                  - **PcrPid** *(string) --* Packet Identifier (PID) of the Program Clock Reference
                  (PCR) in the transport stream. When no value is given, the encoder will assign the
                  same value as the Video PID. Can be entered as a decimal or hexadecimal value.

                  - **PmtInterval** *(integer) --* The number of milliseconds between instances of
                  this table in the output transport stream. A value of \\"0\\" writes out the PMT
                  once per segment file.

                  - **PmtPid** *(string) --* Packet Identifier (PID) for the Program Map Table (PMT)
                  in the transport stream. Can be entered as a decimal or hexadecimal value.

                  - **ProgramNum** *(integer) --* The value of the program number field in the
                  Program Map Table.

                  - **Scte35Behavior** *(string) --* If set to passthrough, passes any SCTE-35
                  signals from the input source to this output.

                  - **Scte35Pid** *(string) --* Packet Identifier (PID) of the SCTE-35 stream in the
                  transport stream. Can be entered as a decimal or hexadecimal value.

                  - **TimedMetadataBehavior** *(string) --* When set to passthrough, timed metadata
                  is passed through from input to output.

                  - **TimedMetadataPid** *(string) --* Packet Identifier (PID) of the timed metadata
                  stream in the transport stream. Can be entered as a decimal or hexadecimal value.
                  Valid values are 32 (or 0x20)..8182 (or 0x1ff6).

                  - **TransportStreamId** *(integer) --* The value of the transport stream ID field
                  in the Program Map Table.

                  - **VideoPid** *(string) --* Packet Identifier (PID) of the elementary video
                  stream in the transport stream. Can be entered as a decimal or hexadecimal value.

            - **NameModifier** *(string) --* String concatenated to the end of the destination
            filename. Accepts \\"Format Identifiers\\":#formatIdentifierParameters.

            - **SegmentModifier** *(string) --* String concatenated to end of segment filenames.

          - **MediaPackageOutputSettings** *(dict) --* Media Package Output Settings

          - **MsSmoothOutputSettings** *(dict) --* Ms Smooth Output Settings

            - **H265PackagingType** *(string) --* Only applicable when this output is referencing an
            H.265 video description. Specifies whether MP4 segments should be packaged as HEV1 or
            HVC1.

            - **NameModifier** *(string) --* String concatenated to the end of the destination
            filename. Required for multiple outputs of the same type.

          - **MultiplexOutputSettings** *(dict) --* Multiplex Output Settings

            - **Destination** *(dict) --* Destination is a Multiplex.

              - **DestinationRefId** *(string) --* Placeholder documentation for __string

          - **RtmpOutputSettings** *(dict) --* Rtmp Output Settings

            - **CertificateMode** *(string) --* If set to verifyAuthenticity, verify the tls
            certificate chain to a trusted Certificate Authority (CA). This will cause rtmps outputs
            with self-signed certificates to fail.

            - **ConnectionRetryInterval** *(integer) --* Number of seconds to wait before retrying a
            connection to the Flash Media server if the connection is lost.

            - **Destination** *(dict) --* The RTMP endpoint excluding the stream name (eg.
            rtmp://host/appname). For connection to Akamai, a username and password must be
            supplied. URI fields accept format identifiers.

              - **DestinationRefId** *(string) --* Placeholder documentation for __string

            - **NumRetries** *(integer) --* Number of retry attempts.

          - **UdpOutputSettings** *(dict) --* Udp Output Settings

            - **BufferMsec** *(integer) --* UDP output buffering in milliseconds. Larger values
            increase latency through the transcoder but simultaneously assist the transcoder in
            maintaining a constant, low-jitter UDP/RTP output while accommodating clock recovery,
            input switching, input disruptions, picture reordering, etc.

            - **ContainerSettings** *(dict) --* Udp Container Settings

              - **M2tsSettings** *(dict) --* M2ts Settings

                - **AbsentInputAudioBehavior** *(string) --* When set to drop, output audio streams
                will be removed from the program if the selected input audio stream is removed from
                the input. This allows the output audio configuration to dynamically change based on
                input configuration. If this is set to encodeSilence, all output audio streams will
                output encoded silence when not connected to an active input stream.

                - **Arib** *(string) --* When set to enabled, uses ARIB-compliant field muxing and
                removes video descriptor.

                - **AribCaptionsPid** *(string) --* Packet Identifier (PID) for ARIB Captions in the
                transport stream. Can be entered as a decimal or hexadecimal value. Valid values are
                32 (or 0x20)..8182 (or 0x1ff6).

                - **AribCaptionsPidControl** *(string) --* If set to auto, pid number used for ARIB
                Captions will be auto-selected from unused pids. If set to useConfigured, ARIB
                Captions will be on the configured pid number.

                - **AudioBufferModel** *(string) --* When set to dvb, uses DVB buffer model for
                Dolby Digital audio. When set to atsc, the ATSC model is used.

                - **AudioFramesPerPes** *(integer) --* The number of audio frames to insert for each
                PES packet.

                - **AudioPids** *(string) --* Packet Identifier (PID) of the elementary audio
                stream(s) in the transport stream. Multiple values are accepted, and can be entered
                in ranges and/or by comma separation. Can be entered as decimal or hexadecimal
                values. Each PID specified must be in the range of 32 (or 0x20)..8182 (or 0x1ff6).

                - **AudioStreamType** *(string) --* When set to atsc, uses stream type =
                     0x81 for
                AC3 and stream type = 0x87 for EAC3. When set to dvb, uses stream type =
                     0x06.

                - **Bitrate** *(integer) --* The output bitrate of the transport stream in bits per
                second. Setting to 0 lets the muxer automatically determine the appropriate bitrate.

                - **BufferModel** *(string) --* If set to multiplex, use multiplex buffer model for
                accurate interleaving. Setting to bufferModel to none can lead to lower latency, but
                low-memory devices may not be able to play back the stream without interruptions.

                - **CcDescriptor** *(string) --* When set to enabled, generates
                captionServiceDescriptor in PMT.

                - **DvbNitSettings** *(dict) --* Inserts DVB Network Information Table (NIT) at the
                specified table repetition interval.

                  - **NetworkId** *(integer) --* The numeric value placed in the Network Information
                  Table (NIT).

                  - **NetworkName** *(string) --* The network name text placed in the
                  networkNameDescriptor inside the Network Information Table. Maximum length is 256
                  characters.

                  - **RepInterval** *(integer) --* The number of milliseconds between instances of
                  this table in the output transport stream.

                - **DvbSdtSettings** *(dict) --* Inserts DVB Service Description Table (SDT) at the
                specified table repetition interval.

                  - **OutputSdt** *(string) --* Selects method of inserting SDT information into
                  output stream. The sdtFollow setting copies SDT information from input stream to
                  output stream. The sdtFollowIfPresent setting copies SDT information from input
                  stream to output stream if SDT information is present in the input, otherwise it
                  will fall back on the user-defined values. The sdtManual setting means user will
                  enter the SDT information. The sdtNone setting means output stream will not
                  contain SDT information.

                  - **RepInterval** *(integer) --* The number of milliseconds between instances of
                  this table in the output transport stream.

                  - **ServiceName** *(string) --* The service name placed in the serviceDescriptor
                  in the Service Description Table. Maximum length is 256 characters.

                  - **ServiceProviderName** *(string) --* The service provider name placed in the
                  serviceDescriptor in the Service Description Table. Maximum length is 256
                  characters.

                - **DvbSubPids** *(string) --* Packet Identifier (PID) for input source DVB Subtitle
                data to this output. Multiple values are accepted, and can be entered in ranges
                and/or by comma separation. Can be entered as decimal or hexadecimal values. Each
                PID specified must be in the range of 32 (or 0x20)..8182 (or 0x1ff6).

                - **DvbTdtSettings** *(dict) --* Inserts DVB Time and Date Table (TDT) at the
                specified table repetition interval.

                  - **RepInterval** *(integer) --* The number of milliseconds between instances of
                  this table in the output transport stream.

                - **DvbTeletextPid** *(string) --* Packet Identifier (PID) for input source DVB
                Teletext data to this output. Can be entered as a decimal or hexadecimal value.
                Valid values are 32 (or 0x20)..8182 (or 0x1ff6).

                - **Ebif** *(string) --* If set to passthrough, passes any EBIF data from the input
                source to this output.

                - **EbpAudioInterval** *(string) --* When videoAndFixedIntervals is selected, audio
                EBP markers will be added to partitions 3 and 4. The interval between these
                additional markers will be fixed, and will be slightly shorter than the video EBP
                marker interval. Only available when EBP Cablelabs segmentation markers are
                selected. Partitions 1 and 2 will always follow the video interval.

                - **EbpLookaheadMs** *(integer) --* When set, enforces that Encoder Boundary Points
                do not come within the specified time interval of each other by looking ahead at
                input video. If another EBP is going to come in within the specified time interval,
                the current EBP is not emitted, and the segment is "stretched" to the next marker.
                The lookahead value does not add latency to the system. The Live Event must be
                configured elsewhere to create sufficient latency to make the lookahead accurate.

                - **EbpPlacement** *(string) --* Controls placement of EBP on Audio PIDs. If set to
                videoAndAudioPids, EBP markers will be placed on the video PID and all audio PIDs.
                If set to videoPid, EBP markers will be placed on only the video PID.

                - **EcmPid** *(string) --* This field is unused and deprecated.

                - **EsRateInPes** *(string) --* Include or exclude the ES Rate field in the PES
                header.

                - **EtvPlatformPid** *(string) --* Packet Identifier (PID) for input source ETV
                Platform data to this output. Can be entered as a decimal or hexadecimal value.
                Valid values are 32 (or 0x20)..8182 (or 0x1ff6).

                - **EtvSignalPid** *(string) --* Packet Identifier (PID) for input source ETV Signal
                data to this output. Can be entered as a decimal or hexadecimal value. Valid values
                are 32 (or 0x20)..8182 (or 0x1ff6).

                - **FragmentTime** *(float) --* The length in seconds of each fragment. Only used
                with EBP markers.

                - **Klv** *(string) --* If set to passthrough, passes any KLV data from the input
                source to this output.

                - **KlvDataPids** *(string) --* Packet Identifier (PID) for input source KLV data to
                this output. Multiple values are accepted, and can be entered in ranges and/or by
                comma separation. Can be entered as decimal or hexadecimal values. Each PID
                specified must be in the range of 32 (or 0x20)..8182 (or 0x1ff6).

                - **NielsenId3Behavior** *(string) --* If set to passthrough, Nielsen inaudible
                tones for media tracking will be detected in the input audio and an equivalent ID3
                tag will be inserted in the output.

                - **NullPacketBitrate** *(float) --* Value in bits per second of extra null packets
                to insert into the transport stream. This can be used if a downstream encryption
                system requires periodic null packets.

                - **PatInterval** *(integer) --* The number of milliseconds between instances of
                this table in the output transport stream. Valid values are 0, 10..1000.

                - **PcrControl** *(string) --* When set to pcrEveryPesPacket, a Program Clock
                Reference value is inserted for every Packetized Elementary Stream (PES) header.
                This parameter is effective only when the PCR PID is the same as the video or audio
                elementary stream.

                - **PcrPeriod** *(integer) --* Maximum time in milliseconds between Program Clock
                Reference (PCRs) inserted into the transport stream.

                - **PcrPid** *(string) --* Packet Identifier (PID) of the Program Clock Reference
                (PCR) in the transport stream. When no value is given, the encoder will assign the
                same value as the Video PID. Can be entered as a decimal or hexadecimal value. Valid
                values are 32 (or 0x20)..8182 (or 0x1ff6).

                - **PmtInterval** *(integer) --* The number of milliseconds between instances of
                this table in the output transport stream. Valid values are 0, 10..1000.

                - **PmtPid** *(string) --* Packet Identifier (PID) for the Program Map Table (PMT)
                in the transport stream. Can be entered as a decimal or hexadecimal value. Valid
                values are 32 (or 0x20)..8182 (or 0x1ff6).

                - **ProgramNum** *(integer) --* The value of the program number field in the Program
                Map Table.

                - **RateMode** *(string) --* When vbr, does not insert null packets into transport
                stream to fill specified bitrate. The bitrate setting acts as the maximum bitrate
                when vbr is set.

                - **Scte27Pids** *(string) --* Packet Identifier (PID) for input source SCTE-27 data
                to this output. Multiple values are accepted, and can be entered in ranges and/or by
                comma separation. Can be entered as decimal or hexadecimal values. Each PID
                specified must be in the range of 32 (or 0x20)..8182 (or 0x1ff6).

                - **Scte35Control** *(string) --* Optionally pass SCTE-35 signals from the input
                source to this output.

                - **Scte35Pid** *(string) --* Packet Identifier (PID) of the SCTE-35 stream in the
                transport stream. Can be entered as a decimal or hexadecimal value. Valid values are
                32 (or 0x20)..8182 (or 0x1ff6).

                - **SegmentationMarkers** *(string) --* Inserts segmentation markers at each
                segmentationTime period. raiSegstart sets the Random Access Indicator bit in the
                adaptation field. raiAdapt sets the RAI bit and adds the current timecode in the
                private data bytes. psiSegstart inserts PAT and PMT tables at the start of segments.
                ebp adds Encoder Boundary Point information to the adaptation field as per OpenCable
                specification OC-SP-EBP-I01-130118. ebpLegacy adds Encoder Boundary Point
                information to the adaptation field using a legacy proprietary format.

                - **SegmentationStyle** *(string) --* The segmentation style parameter controls how
                segmentation markers are inserted into the transport stream. With avails, it is
                possible that segments may be truncated, which can influence where future
                segmentation markers are inserted. When a segmentation style of "resetCadence" is
                selected and a segment is truncated due to an avail, we will reset the segmentation
                cadence. This means the subsequent segment will have a duration of $segmentationTime
                seconds. When a segmentation style of "maintainCadence" is selected and a segment is
                truncated due to an avail, we will not reset the segmentation cadence. This means
                the subsequent segment will likely be truncated as well. However, all segments after
                that will have a duration of $segmentationTime seconds. Note that EBP lookahead is a
                slight exception to this rule.

                - **SegmentationTime** *(float) --* The length in seconds of each segment. Required
                unless markers is set to None_.

                - **TimedMetadataBehavior** *(string) --* When set to passthrough, timed metadata
                will be passed through from input to output.

                - **TimedMetadataPid** *(string) --* Packet Identifier (PID) of the timed metadata
                stream in the transport stream. Can be entered as a decimal or hexadecimal value.
                Valid values are 32 (or 0x20)..8182 (or 0x1ff6).

                - **TransportStreamId** *(integer) --* The value of the transport stream ID field in
                the Program Map Table.

                - **VideoPid** *(string) --* Packet Identifier (PID) of the elementary video stream
                in the transport stream. Can be entered as a decimal or hexadecimal value. Valid
                values are 32 (or 0x20)..8182 (or 0x1ff6).

            - **Destination** *(dict) --* Destination address and port number for RTP or UDP
            packets. Can be unicast or multicast RTP or UDP (eg. rtp://239.10.10.10:5001 or
            udp://10.100.100.100:5002).

              - **DestinationRefId** *(string) --* Placeholder documentation for __string

            - **FecOutputSettings** *(dict) --* Settings for enabling and adjusting Forward Error
            Correction on UDP outputs.

              - **ColumnDepth** *(integer) --* Parameter D from SMPTE 2022-1. The height of the FEC
              protection matrix. The number of transport stream packets per column error correction
              packet. Must be between 4 and 20, inclusive.

              - **IncludeFec** *(string) --* Enables column only or column and row based FEC

              - **RowLength** *(integer) --* Parameter L from SMPTE 2022-1. The width of the FEC
              protection matrix. Must be between 1 and 20, inclusive. If only Column FEC is used,
              then larger values increase robustness. If Row FEC is used, then this is the number of
              transport stream packets per row error correction packet, and the value must be
              between 4 and 20, inclusive, if includeFec is columnAndRow. If includeFec is column,
              this value must be 1 to 20, inclusive.

        - **VideoDescriptionName** *(string) --* The name of the VideoDescription used as the source
        for this output.
    """


_ClientStopChannelResponseEncoderSettingsTimecodeConfigTypeDef = TypedDict(
    "_ClientStopChannelResponseEncoderSettingsTimecodeConfigTypeDef",
    {"Source": str, "SyncThreshold": int},
    total=False,
)


class ClientStopChannelResponseEncoderSettingsTimecodeConfigTypeDef(
    _ClientStopChannelResponseEncoderSettingsTimecodeConfigTypeDef
):
    """
    Type definition for `ClientStopChannelResponseEncoderSettings` `TimecodeConfig`

    - **Source** *(string) --* Identifies the source for the timecode that will be associated with
    the events outputs. -Embedded (embedded): Initialize the output timecode with timecode from the
    the source. If no embedded timecode is detected in the source, the system falls back to using
    "Start at 0" (zerobased). -System Clock (systemclock): Use the UTC time. -Start at 0
    (zerobased): The time of the first frame of the event will be 00:00:00:00.

    - **SyncThreshold** *(integer) --* Threshold in frames beyond which output timecode is
    resynchronized to the input timecode. Discrepancies below this threshold are permitted to avoid
    unnecessary discontinuities in the output timecode. No timecode sync when this is not specified.
    """


_ClientStopChannelResponseEncoderSettingsVideoDescriptionsCodecSettingsFrameCaptureSettingsTypeDef = TypedDict(
    "_ClientStopChannelResponseEncoderSettingsVideoDescriptionsCodecSettingsFrameCaptureSettingsTypeDef",
    {"CaptureInterval": int},
    total=False,
)


class ClientStopChannelResponseEncoderSettingsVideoDescriptionsCodecSettingsFrameCaptureSettingsTypeDef(
    _ClientStopChannelResponseEncoderSettingsVideoDescriptionsCodecSettingsFrameCaptureSettingsTypeDef
):
    """
    Type definition for `ClientStopChannelResponseEncoderSettingsVideoDescriptionsCodecSettings`
    `FrameCaptureSettings`

    - **CaptureInterval** *(integer) --* The frequency at which to capture frames for inclusion in
    the output. May be specified in either seconds or milliseconds, as specified by
    captureIntervalUnits.
    """


_ClientStopChannelResponseEncoderSettingsVideoDescriptionsCodecSettingsH264SettingsColorSpaceSettingsTypeDef = TypedDict(
    "_ClientStopChannelResponseEncoderSettingsVideoDescriptionsCodecSettingsH264SettingsColorSpaceSettingsTypeDef",
    {
        "ColorSpacePassthroughSettings": Dict,
        "Rec601Settings": Dict,
        "Rec709Settings": Dict[str, Any],
    },
    total=False,
)


class ClientStopChannelResponseEncoderSettingsVideoDescriptionsCodecSettingsH264SettingsColorSpaceSettingsTypeDef(
    _ClientStopChannelResponseEncoderSettingsVideoDescriptionsCodecSettingsH264SettingsColorSpaceSettingsTypeDef
):
    """
    Type definition for
    `ClientStopChannelResponseEncoderSettingsVideoDescriptionsCodecSettingsH264Settings`
    `ColorSpaceSettings`

    - **ColorSpacePassthroughSettings** *(dict) --* Passthrough applies no color space conversion to
    the output

    - **Rec601Settings** *(dict) --* Rec601 Settings

    - **Rec709Settings** *(dict) --* Rec709 Settings
    """


_ClientStopChannelResponseEncoderSettingsVideoDescriptionsCodecSettingsH264SettingsTypeDef = TypedDict(
    "_ClientStopChannelResponseEncoderSettingsVideoDescriptionsCodecSettingsH264SettingsTypeDef",
    {
        "AdaptiveQuantization": str,
        "AfdSignaling": str,
        "Bitrate": int,
        "BufFillPct": int,
        "BufSize": int,
        "ColorMetadata": str,
        "ColorSpaceSettings": ClientStopChannelResponseEncoderSettingsVideoDescriptionsCodecSettingsH264SettingsColorSpaceSettingsTypeDef,
        "EntropyEncoding": str,
        "FixedAfd": str,
        "FlickerAq": str,
        "FramerateControl": str,
        "FramerateDenominator": int,
        "FramerateNumerator": int,
        "GopBReference": str,
        "GopClosedCadence": int,
        "GopNumBFrames": int,
        "GopSize": float,
        "GopSizeUnits": str,
        "Level": str,
        "LookAheadRateControl": str,
        "MaxBitrate": int,
        "MinIInterval": int,
        "NumRefFrames": int,
        "ParControl": str,
        "ParDenominator": int,
        "ParNumerator": int,
        "Profile": str,
        "QvbrQualityLevel": int,
        "RateControlMode": str,
        "ScanType": str,
        "SceneChangeDetect": str,
        "Slices": int,
        "Softness": int,
        "SpatialAq": str,
        "SubgopLength": str,
        "Syntax": str,
        "TemporalAq": str,
        "TimecodeInsertion": str,
    },
    total=False,
)


class ClientStopChannelResponseEncoderSettingsVideoDescriptionsCodecSettingsH264SettingsTypeDef(
    _ClientStopChannelResponseEncoderSettingsVideoDescriptionsCodecSettingsH264SettingsTypeDef
):
    """
    Type definition for `ClientStopChannelResponseEncoderSettingsVideoDescriptionsCodecSettings`
    `H264Settings`

    - **AdaptiveQuantization** *(string) --* Adaptive quantization. Allows intra-frame quantizers to
    vary to improve visual quality.

    - **AfdSignaling** *(string) --* Indicates that AFD values will be written into the output
    stream. If afdSignaling is "auto", the system will try to preserve the input AFD value (in cases
    where multiple AFD values are valid). If set to "fixed", the AFD value will be the value
    configured in the fixedAfd parameter.

    - **Bitrate** *(integer) --* Average bitrate in bits/second. Required when the rate control mode
    is VBR or CBR. Not used for QVBR. In an MS Smooth output group, each output must have a unique
    value when its bitrate is rounded down to the nearest multiple of 1000.

    - **BufFillPct** *(integer) --* Percentage of the buffer that should initially be filled (HRD
    buffer model).

    - **BufSize** *(integer) --* Size of buffer (HRD buffer model) in bits.

    - **ColorMetadata** *(string) --* Includes colorspace metadata in the output.

    - **ColorSpaceSettings** *(dict) --* Color Space settings

      - **ColorSpacePassthroughSettings** *(dict) --* Passthrough applies no color space conversion
      to the output

      - **Rec601Settings** *(dict) --* Rec601 Settings

      - **Rec709Settings** *(dict) --* Rec709 Settings

    - **EntropyEncoding** *(string) --* Entropy encoding mode. Use cabac (must be in Main or High
    profile) or cavlc.

    - **FixedAfd** *(string) --* Four bit AFD value to write on all frames of video in the output
    stream. Only valid when afdSignaling is set to 'Fixed'.

    - **FlickerAq** *(string) --* If set to enabled, adjust quantization within each frame to reduce
    flicker or 'pop' on I-frames.

    - **FramerateControl** *(string) --* This field indicates how the output video frame rate is
    specified. If "specified" is selected then the output video frame rate is determined by
    framerateNumerator and framerateDenominator, else if "initializeFromSource" is selected then the
    output video frame rate will be set equal to the input video frame rate of the first input.

    - **FramerateDenominator** *(integer) --* Framerate denominator.

    - **FramerateNumerator** *(integer) --* Framerate numerator - framerate is a fraction, e.g.
    24000 / 1001 = 23.976 fps.

    - **GopBReference** *(string) --* Documentation update needed

    - **GopClosedCadence** *(integer) --* Frequency of closed GOPs. In streaming applications, it is
    recommended that this be set to 1 so a decoder joining mid-stream will receive an IDR frame as
    quickly as possible. Setting this value to 0 will break output segmenting.

    - **GopNumBFrames** *(integer) --* Number of B-frames between reference frames.

    - **GopSize** *(float) --* GOP size (keyframe interval) in units of either frames or seconds per
    gopSizeUnits. If gopSizeUnits is frames, gopSize must be an integer and must be greater than or
    equal to 1. If gopSizeUnits is seconds, gopSize must be greater than 0, but need not be an
    integer.

    - **GopSizeUnits** *(string) --* Indicates if the gopSize is specified in frames or seconds. If
    seconds the system will convert the gopSize into a frame count at run time.

    - **Level** *(string) --* H.264 Level.

    - **LookAheadRateControl** *(string) --* Amount of lookahead. A value of low can decrease
    latency and memory usage, while high can produce better quality for certain content.

    - **MaxBitrate** *(integer) --* For QVBR: See the tooltip for Quality level For VBR: Set the
    maximum bitrate in order to accommodate expected spikes in the complexity of the video.

    - **MinIInterval** *(integer) --* Only meaningful if sceneChangeDetect is set to enabled.
    Defaults to 5 if multiplex rate control is used. Enforces separation between repeated (cadence)
    I-frames and I-frames inserted by Scene Change Detection. If a scene change I-frame is within
    I-interval frames of a cadence I-frame, the GOP is shrunk and/or stretched to the scene change
    I-frame. GOP stretch requires enabling lookahead as well as setting I-interval. The normal
    cadence resumes for the next GOP. Note: Maximum GOP stretch = GOP size + Min-I-interval - 1

    - **NumRefFrames** *(integer) --* Number of reference frames to use. The encoder may use more
    than requested if using B-frames and/or interlaced encoding.

    - **ParControl** *(string) --* This field indicates how the output pixel aspect ratio is
    specified. If "specified" is selected then the output video pixel aspect ratio is determined by
    parNumerator and parDenominator, else if "initializeFromSource" is selected then the output
    pixsel aspect ratio will be set equal to the input video pixel aspect ratio of the first input.

    - **ParDenominator** *(integer) --* Pixel Aspect Ratio denominator.

    - **ParNumerator** *(integer) --* Pixel Aspect Ratio numerator.

    - **Profile** *(string) --* H.264 Profile.

    - **QvbrQualityLevel** *(integer) --* Controls the target quality for the video encode. Applies
    only when the rate control mode is QVBR. Set values for the QVBR quality level field and Max
    bitrate field that suit your most important viewing devices. Recommended values are: - Primary
    screen: Quality level: 8 to 10. Max bitrate: 4M - PC or tablet: Quality level: 7. Max bitrate:
    1.5M to 3M - Smartphone: Quality level: 6. Max bitrate: 1M to 1.5M

    - **RateControlMode** *(string) --* Rate control mode. QVBR: Quality will match the specified
    quality level except when it is constrained by the maximum bitrate. Recommended if you or your
    viewers pay for bandwidth. VBR: Quality and bitrate vary, depending on the video complexity.
    Recommended instead of QVBR if you want to maintain a specific average bitrate over the duration
    of the channel. CBR: Quality varies, depending on the video complexity. Recommended only if you
    distribute your assets to devices that cannot handle variable bitrates.

    - **ScanType** *(string) --* Sets the scan type of the output to progressive or top-field-first
    interlaced.

    - **SceneChangeDetect** *(string) --* Scene change detection. - On: inserts I-frames when scene
    change is detected. - Off: does not force an I-frame when scene change is detected.

    - **Slices** *(integer) --* Number of slices per picture. Must be less than or equal to the
    number of macroblock rows for progressive pictures, and less than or equal to half the number of
    macroblock rows for interlaced pictures. This field is optional; when no value is specified the
    encoder will choose the number of slices based on encode resolution.

    - **Softness** *(integer) --* Softness. Selects quantizer matrix, larger values reduce
    high-frequency content in the encoded image.

    - **SpatialAq** *(string) --* If set to enabled, adjust quantization within each frame based on
    spatial variation of content complexity.

    - **SubgopLength** *(string) --* If set to fixed, use gopNumBFrames B-frames per sub-GOP. If set
    to dynamic, optimize the number of B-frames used for each sub-GOP to improve visual quality.

    - **Syntax** *(string) --* Produces a bitstream compliant with SMPTE RP-2027.

    - **TemporalAq** *(string) --* If set to enabled, adjust quantization within each frame based on
    temporal variation of content complexity.

    - **TimecodeInsertion** *(string) --* Determines how timecodes should be inserted into the video
    elementary stream. - 'disabled': Do not include timecodes - 'picTimingSei': Pass through picture
    timing SEI messages from the source specified in Timecode Config
    """


_ClientStopChannelResponseEncoderSettingsVideoDescriptionsCodecSettingsH265SettingsColorSpaceSettingsHdr10SettingsTypeDef = TypedDict(
    "_ClientStopChannelResponseEncoderSettingsVideoDescriptionsCodecSettingsH265SettingsColorSpaceSettingsHdr10SettingsTypeDef",
    {"MaxCll": int, "MaxFall": int},
    total=False,
)


class ClientStopChannelResponseEncoderSettingsVideoDescriptionsCodecSettingsH265SettingsColorSpaceSettingsHdr10SettingsTypeDef(
    _ClientStopChannelResponseEncoderSettingsVideoDescriptionsCodecSettingsH265SettingsColorSpaceSettingsHdr10SettingsTypeDef
):
    """
    Type definition for
    `ClientStopChannelResponseEncoderSettingsVideoDescriptionsCodecSettingsH265SettingsColorSpaceSettings`
    `Hdr10Settings`

    - **MaxCll** *(integer) --* Maximum Content Light Level An integer metadata value defining the
    maximum light level, in nits, of any single pixel within an encoded HDR video stream or file.

    - **MaxFall** *(integer) --* Maximum Frame Average Light Level An integer metadata value
    defining the maximum average light level, in nits, for any single frame within an encoded HDR
    video stream or file.
    """


_ClientStopChannelResponseEncoderSettingsVideoDescriptionsCodecSettingsH265SettingsColorSpaceSettingsTypeDef = TypedDict(
    "_ClientStopChannelResponseEncoderSettingsVideoDescriptionsCodecSettingsH265SettingsColorSpaceSettingsTypeDef",
    {
        "ColorSpacePassthroughSettings": Dict,
        "Hdr10Settings": ClientStopChannelResponseEncoderSettingsVideoDescriptionsCodecSettingsH265SettingsColorSpaceSettingsHdr10SettingsTypeDef,
        "Rec601Settings": Dict,
        "Rec709Settings": Dict[str, Any],
    },
    total=False,
)


class ClientStopChannelResponseEncoderSettingsVideoDescriptionsCodecSettingsH265SettingsColorSpaceSettingsTypeDef(
    _ClientStopChannelResponseEncoderSettingsVideoDescriptionsCodecSettingsH265SettingsColorSpaceSettingsTypeDef
):
    """
    Type definition for
    `ClientStopChannelResponseEncoderSettingsVideoDescriptionsCodecSettingsH265Settings`
    `ColorSpaceSettings`

    - **ColorSpacePassthroughSettings** *(dict) --* Passthrough applies no color space conversion to
    the output

    - **Hdr10Settings** *(dict) --* Hdr10 Settings

      - **MaxCll** *(integer) --* Maximum Content Light Level An integer metadata value defining the
      maximum light level, in nits, of any single pixel within an encoded HDR video stream or file.

      - **MaxFall** *(integer) --* Maximum Frame Average Light Level An integer metadata value
      defining the maximum average light level, in nits, for any single frame within an encoded HDR
      video stream or file.

    - **Rec601Settings** *(dict) --* Rec601 Settings

    - **Rec709Settings** *(dict) --* Rec709 Settings
    """


_ClientStopChannelResponseEncoderSettingsVideoDescriptionsCodecSettingsH265SettingsTypeDef = TypedDict(
    "_ClientStopChannelResponseEncoderSettingsVideoDescriptionsCodecSettingsH265SettingsTypeDef",
    {
        "AdaptiveQuantization": str,
        "AfdSignaling": str,
        "AlternativeTransferFunction": str,
        "Bitrate": int,
        "BufSize": int,
        "ColorMetadata": str,
        "ColorSpaceSettings": ClientStopChannelResponseEncoderSettingsVideoDescriptionsCodecSettingsH265SettingsColorSpaceSettingsTypeDef,
        "FixedAfd": str,
        "FlickerAq": str,
        "FramerateDenominator": int,
        "FramerateNumerator": int,
        "GopClosedCadence": int,
        "GopSize": float,
        "GopSizeUnits": str,
        "Level": str,
        "LookAheadRateControl": str,
        "MaxBitrate": int,
        "MinIInterval": int,
        "ParDenominator": int,
        "ParNumerator": int,
        "Profile": str,
        "QvbrQualityLevel": int,
        "RateControlMode": str,
        "ScanType": str,
        "SceneChangeDetect": str,
        "Slices": int,
        "Tier": str,
        "TimecodeInsertion": str,
    },
    total=False,
)


class ClientStopChannelResponseEncoderSettingsVideoDescriptionsCodecSettingsH265SettingsTypeDef(
    _ClientStopChannelResponseEncoderSettingsVideoDescriptionsCodecSettingsH265SettingsTypeDef
):
    """
    Type definition for `ClientStopChannelResponseEncoderSettingsVideoDescriptionsCodecSettings`
    `H265Settings`

    - **AdaptiveQuantization** *(string) --* Adaptive quantization. Allows intra-frame quantizers to
    vary to improve visual quality.

    - **AfdSignaling** *(string) --* Indicates that AFD values will be written into the output
    stream. If afdSignaling is "auto", the system will try to preserve the input AFD value (in cases
    where multiple AFD values are valid). If set to "fixed", the AFD value will be the value
    configured in the fixedAfd parameter.

    - **AlternativeTransferFunction** *(string) --* Whether or not EML should insert an Alternative
    Transfer Function SEI message to support backwards compatibility with non-HDR decoders and
    displays.

    - **Bitrate** *(integer) --* Average bitrate in bits/second. Required when the rate control mode
    is VBR or CBR. Not used for QVBR. In an MS Smooth output group, each output must have a unique
    value when its bitrate is rounded down to the nearest multiple of 1000.

    - **BufSize** *(integer) --* Size of buffer (HRD buffer model) in bits.

    - **ColorMetadata** *(string) --* Includes colorspace metadata in the output.

    - **ColorSpaceSettings** *(dict) --* Color Space settings

      - **ColorSpacePassthroughSettings** *(dict) --* Passthrough applies no color space conversion
      to the output

      - **Hdr10Settings** *(dict) --* Hdr10 Settings

        - **MaxCll** *(integer) --* Maximum Content Light Level An integer metadata value defining
        the maximum light level, in nits, of any single pixel within an encoded HDR video stream or
        file.

        - **MaxFall** *(integer) --* Maximum Frame Average Light Level An integer metadata value
        defining the maximum average light level, in nits, for any single frame within an encoded
        HDR video stream or file.

      - **Rec601Settings** *(dict) --* Rec601 Settings

      - **Rec709Settings** *(dict) --* Rec709 Settings

    - **FixedAfd** *(string) --* Four bit AFD value to write on all frames of video in the output
    stream. Only valid when afdSignaling is set to 'Fixed'.

    - **FlickerAq** *(string) --* If set to enabled, adjust quantization within each frame to reduce
    flicker or 'pop' on I-frames.

    - **FramerateDenominator** *(integer) --* Framerate denominator.

    - **FramerateNumerator** *(integer) --* Framerate numerator - framerate is a fraction, e.g.
    24000 / 1001 = 23.976 fps.

    - **GopClosedCadence** *(integer) --* Frequency of closed GOPs. In streaming applications, it is
    recommended that this be set to 1 so a decoder joining mid-stream will receive an IDR frame as
    quickly as possible. Setting this value to 0 will break output segmenting.

    - **GopSize** *(float) --* GOP size (keyframe interval) in units of either frames or seconds per
    gopSizeUnits. If gopSizeUnits is frames, gopSize must be an integer and must be greater than or
    equal to 1. If gopSizeUnits is seconds, gopSize must be greater than 0, but need not be an
    integer.

    - **GopSizeUnits** *(string) --* Indicates if the gopSize is specified in frames or seconds. If
    seconds the system will convert the gopSize into a frame count at run time.

    - **Level** *(string) --* H.265 Level.

    - **LookAheadRateControl** *(string) --* Amount of lookahead. A value of low can decrease
    latency and memory usage, while high can produce better quality for certain content.

    - **MaxBitrate** *(integer) --* For QVBR: See the tooltip for Quality level

    - **MinIInterval** *(integer) --* Only meaningful if sceneChangeDetect is set to enabled.
    Defaults to 5 if multiplex rate control is used. Enforces separation between repeated (cadence)
    I-frames and I-frames inserted by Scene Change Detection. If a scene change I-frame is within
    I-interval frames of a cadence I-frame, the GOP is shrunk and/or stretched to the scene change
    I-frame. GOP stretch requires enabling lookahead as well as setting I-interval. The normal
    cadence resumes for the next GOP. Note: Maximum GOP stretch = GOP size + Min-I-interval - 1

    - **ParDenominator** *(integer) --* Pixel Aspect Ratio denominator.

    - **ParNumerator** *(integer) --* Pixel Aspect Ratio numerator.

    - **Profile** *(string) --* H.265 Profile.

    - **QvbrQualityLevel** *(integer) --* Controls the target quality for the video encode. Applies
    only when the rate control mode is QVBR. Set values for the QVBR quality level field and Max
    bitrate field that suit your most important viewing devices. Recommended values are: - Primary
    screen: Quality level: 8 to 10. Max bitrate: 4M - PC or tablet: Quality level: 7. Max bitrate:
    1.5M to 3M - Smartphone: Quality level: 6. Max bitrate: 1M to 1.5M

    - **RateControlMode** *(string) --* Rate control mode. QVBR: Quality will match the specified
    quality level except when it is constrained by the maximum bitrate. Recommended if you or your
    viewers pay for bandwidth. CBR: Quality varies, depending on the video complexity. Recommended
    only if you distribute your assets to devices that cannot handle variable bitrates.

    - **ScanType** *(string) --* Sets the scan type of the output to progressive or top-field-first
    interlaced.

    - **SceneChangeDetect** *(string) --* Scene change detection.

    - **Slices** *(integer) --* Number of slices per picture. Must be less than or equal to the
    number of macroblock rows for progressive pictures, and less than or equal to half the number of
    macroblock rows for interlaced pictures. This field is optional; when no value is specified the
    encoder will choose the number of slices based on encode resolution.

    - **Tier** *(string) --* H.265 Tier.

    - **TimecodeInsertion** *(string) --* Determines how timecodes should be inserted into the video
    elementary stream. - 'disabled': Do not include timecodes - 'picTimingSei': Pass through picture
    timing SEI messages from the source specified in Timecode Config
    """


_ClientStopChannelResponseEncoderSettingsVideoDescriptionsCodecSettingsTypeDef = TypedDict(
    "_ClientStopChannelResponseEncoderSettingsVideoDescriptionsCodecSettingsTypeDef",
    {
        "FrameCaptureSettings": ClientStopChannelResponseEncoderSettingsVideoDescriptionsCodecSettingsFrameCaptureSettingsTypeDef,
        "H264Settings": ClientStopChannelResponseEncoderSettingsVideoDescriptionsCodecSettingsH264SettingsTypeDef,
        "H265Settings": ClientStopChannelResponseEncoderSettingsVideoDescriptionsCodecSettingsH265SettingsTypeDef,
    },
    total=False,
)


class ClientStopChannelResponseEncoderSettingsVideoDescriptionsCodecSettingsTypeDef(
    _ClientStopChannelResponseEncoderSettingsVideoDescriptionsCodecSettingsTypeDef
):
    """
    Type definition for `ClientStopChannelResponseEncoderSettingsVideoDescriptions` `CodecSettings`

    - **FrameCaptureSettings** *(dict) --* Frame Capture Settings

      - **CaptureInterval** *(integer) --* The frequency at which to capture frames for inclusion in
      the output. May be specified in either seconds or milliseconds, as specified by
      captureIntervalUnits.

    - **H264Settings** *(dict) --* H264 Settings

      - **AdaptiveQuantization** *(string) --* Adaptive quantization. Allows intra-frame quantizers
      to vary to improve visual quality.

      - **AfdSignaling** *(string) --* Indicates that AFD values will be written into the output
      stream. If afdSignaling is "auto", the system will try to preserve the input AFD value (in
      cases where multiple AFD values are valid). If set to "fixed", the AFD value will be the value
      configured in the fixedAfd parameter.

      - **Bitrate** *(integer) --* Average bitrate in bits/second. Required when the rate control
      mode is VBR or CBR. Not used for QVBR. In an MS Smooth output group, each output must have a
      unique value when its bitrate is rounded down to the nearest multiple of 1000.

      - **BufFillPct** *(integer) --* Percentage of the buffer that should initially be filled (HRD
      buffer model).

      - **BufSize** *(integer) --* Size of buffer (HRD buffer model) in bits.

      - **ColorMetadata** *(string) --* Includes colorspace metadata in the output.

      - **ColorSpaceSettings** *(dict) --* Color Space settings

        - **ColorSpacePassthroughSettings** *(dict) --* Passthrough applies no color space
        conversion to the output

        - **Rec601Settings** *(dict) --* Rec601 Settings

        - **Rec709Settings** *(dict) --* Rec709 Settings

      - **EntropyEncoding** *(string) --* Entropy encoding mode. Use cabac (must be in Main or High
      profile) or cavlc.

      - **FixedAfd** *(string) --* Four bit AFD value to write on all frames of video in the output
      stream. Only valid when afdSignaling is set to 'Fixed'.

      - **FlickerAq** *(string) --* If set to enabled, adjust quantization within each frame to
      reduce flicker or 'pop' on I-frames.

      - **FramerateControl** *(string) --* This field indicates how the output video frame rate is
      specified. If "specified" is selected then the output video frame rate is determined by
      framerateNumerator and framerateDenominator, else if "initializeFromSource" is selected then
      the output video frame rate will be set equal to the input video frame rate of the first
      input.

      - **FramerateDenominator** *(integer) --* Framerate denominator.

      - **FramerateNumerator** *(integer) --* Framerate numerator - framerate is a fraction, e.g.
      24000 / 1001 = 23.976 fps.

      - **GopBReference** *(string) --* Documentation update needed

      - **GopClosedCadence** *(integer) --* Frequency of closed GOPs. In streaming applications, it
      is recommended that this be set to 1 so a decoder joining mid-stream will receive an IDR frame
      as quickly as possible. Setting this value to 0 will break output segmenting.

      - **GopNumBFrames** *(integer) --* Number of B-frames between reference frames.

      - **GopSize** *(float) --* GOP size (keyframe interval) in units of either frames or seconds
      per gopSizeUnits. If gopSizeUnits is frames, gopSize must be an integer and must be greater
      than or equal to 1. If gopSizeUnits is seconds, gopSize must be greater than 0, but need not
      be an integer.

      - **GopSizeUnits** *(string) --* Indicates if the gopSize is specified in frames or seconds.
      If seconds the system will convert the gopSize into a frame count at run time.

      - **Level** *(string) --* H.264 Level.

      - **LookAheadRateControl** *(string) --* Amount of lookahead. A value of low can decrease
      latency and memory usage, while high can produce better quality for certain content.

      - **MaxBitrate** *(integer) --* For QVBR: See the tooltip for Quality level For VBR: Set the
      maximum bitrate in order to accommodate expected spikes in the complexity of the video.

      - **MinIInterval** *(integer) --* Only meaningful if sceneChangeDetect is set to enabled.
      Defaults to 5 if multiplex rate control is used. Enforces separation between repeated
      (cadence) I-frames and I-frames inserted by Scene Change Detection. If a scene change I-frame
      is within I-interval frames of a cadence I-frame, the GOP is shrunk and/or stretched to the
      scene change I-frame. GOP stretch requires enabling lookahead as well as setting I-interval.
      The normal cadence resumes for the next GOP. Note: Maximum GOP stretch = GOP size +
      Min-I-interval - 1

      - **NumRefFrames** *(integer) --* Number of reference frames to use. The encoder may use more
      than requested if using B-frames and/or interlaced encoding.

      - **ParControl** *(string) --* This field indicates how the output pixel aspect ratio is
      specified. If "specified" is selected then the output video pixel aspect ratio is determined
      by parNumerator and parDenominator, else if "initializeFromSource" is selected then the output
      pixsel aspect ratio will be set equal to the input video pixel aspect ratio of the first
      input.

      - **ParDenominator** *(integer) --* Pixel Aspect Ratio denominator.

      - **ParNumerator** *(integer) --* Pixel Aspect Ratio numerator.

      - **Profile** *(string) --* H.264 Profile.

      - **QvbrQualityLevel** *(integer) --* Controls the target quality for the video encode.
      Applies only when the rate control mode is QVBR. Set values for the QVBR quality level field
      and Max bitrate field that suit your most important viewing devices. Recommended values are: -
      Primary screen: Quality level: 8 to 10. Max bitrate: 4M - PC or tablet: Quality level: 7. Max
      bitrate: 1.5M to 3M - Smartphone: Quality level: 6. Max bitrate: 1M to 1.5M

      - **RateControlMode** *(string) --* Rate control mode. QVBR: Quality will match the specified
      quality level except when it is constrained by the maximum bitrate. Recommended if you or your
      viewers pay for bandwidth. VBR: Quality and bitrate vary, depending on the video complexity.
      Recommended instead of QVBR if you want to maintain a specific average bitrate over the
      duration of the channel. CBR: Quality varies, depending on the video complexity. Recommended
      only if you distribute your assets to devices that cannot handle variable bitrates.

      - **ScanType** *(string) --* Sets the scan type of the output to progressive or
      top-field-first interlaced.

      - **SceneChangeDetect** *(string) --* Scene change detection. - On: inserts I-frames when
      scene change is detected. - Off: does not force an I-frame when scene change is detected.

      - **Slices** *(integer) --* Number of slices per picture. Must be less than or equal to the
      number of macroblock rows for progressive pictures, and less than or equal to half the number
      of macroblock rows for interlaced pictures. This field is optional; when no value is specified
      the encoder will choose the number of slices based on encode resolution.

      - **Softness** *(integer) --* Softness. Selects quantizer matrix, larger values reduce
      high-frequency content in the encoded image.

      - **SpatialAq** *(string) --* If set to enabled, adjust quantization within each frame based
      on spatial variation of content complexity.

      - **SubgopLength** *(string) --* If set to fixed, use gopNumBFrames B-frames per sub-GOP. If
      set to dynamic, optimize the number of B-frames used for each sub-GOP to improve visual
      quality.

      - **Syntax** *(string) --* Produces a bitstream compliant with SMPTE RP-2027.

      - **TemporalAq** *(string) --* If set to enabled, adjust quantization within each frame based
      on temporal variation of content complexity.

      - **TimecodeInsertion** *(string) --* Determines how timecodes should be inserted into the
      video elementary stream. - 'disabled': Do not include timecodes - 'picTimingSei': Pass through
      picture timing SEI messages from the source specified in Timecode Config

    - **H265Settings** *(dict) --* H265 Settings

      - **AdaptiveQuantization** *(string) --* Adaptive quantization. Allows intra-frame quantizers
      to vary to improve visual quality.

      - **AfdSignaling** *(string) --* Indicates that AFD values will be written into the output
      stream. If afdSignaling is "auto", the system will try to preserve the input AFD value (in
      cases where multiple AFD values are valid). If set to "fixed", the AFD value will be the value
      configured in the fixedAfd parameter.

      - **AlternativeTransferFunction** *(string) --* Whether or not EML should insert an
      Alternative Transfer Function SEI message to support backwards compatibility with non-HDR
      decoders and displays.

      - **Bitrate** *(integer) --* Average bitrate in bits/second. Required when the rate control
      mode is VBR or CBR. Not used for QVBR. In an MS Smooth output group, each output must have a
      unique value when its bitrate is rounded down to the nearest multiple of 1000.

      - **BufSize** *(integer) --* Size of buffer (HRD buffer model) in bits.

      - **ColorMetadata** *(string) --* Includes colorspace metadata in the output.

      - **ColorSpaceSettings** *(dict) --* Color Space settings

        - **ColorSpacePassthroughSettings** *(dict) --* Passthrough applies no color space
        conversion to the output

        - **Hdr10Settings** *(dict) --* Hdr10 Settings

          - **MaxCll** *(integer) --* Maximum Content Light Level An integer metadata value defining
          the maximum light level, in nits, of any single pixel within an encoded HDR video stream
          or file.

          - **MaxFall** *(integer) --* Maximum Frame Average Light Level An integer metadata value
          defining the maximum average light level, in nits, for any single frame within an encoded
          HDR video stream or file.

        - **Rec601Settings** *(dict) --* Rec601 Settings

        - **Rec709Settings** *(dict) --* Rec709 Settings

      - **FixedAfd** *(string) --* Four bit AFD value to write on all frames of video in the output
      stream. Only valid when afdSignaling is set to 'Fixed'.

      - **FlickerAq** *(string) --* If set to enabled, adjust quantization within each frame to
      reduce flicker or 'pop' on I-frames.

      - **FramerateDenominator** *(integer) --* Framerate denominator.

      - **FramerateNumerator** *(integer) --* Framerate numerator - framerate is a fraction, e.g.
      24000 / 1001 = 23.976 fps.

      - **GopClosedCadence** *(integer) --* Frequency of closed GOPs. In streaming applications, it
      is recommended that this be set to 1 so a decoder joining mid-stream will receive an IDR frame
      as quickly as possible. Setting this value to 0 will break output segmenting.

      - **GopSize** *(float) --* GOP size (keyframe interval) in units of either frames or seconds
      per gopSizeUnits. If gopSizeUnits is frames, gopSize must be an integer and must be greater
      than or equal to 1. If gopSizeUnits is seconds, gopSize must be greater than 0, but need not
      be an integer.

      - **GopSizeUnits** *(string) --* Indicates if the gopSize is specified in frames or seconds.
      If seconds the system will convert the gopSize into a frame count at run time.

      - **Level** *(string) --* H.265 Level.

      - **LookAheadRateControl** *(string) --* Amount of lookahead. A value of low can decrease
      latency and memory usage, while high can produce better quality for certain content.

      - **MaxBitrate** *(integer) --* For QVBR: See the tooltip for Quality level

      - **MinIInterval** *(integer) --* Only meaningful if sceneChangeDetect is set to enabled.
      Defaults to 5 if multiplex rate control is used. Enforces separation between repeated
      (cadence) I-frames and I-frames inserted by Scene Change Detection. If a scene change I-frame
      is within I-interval frames of a cadence I-frame, the GOP is shrunk and/or stretched to the
      scene change I-frame. GOP stretch requires enabling lookahead as well as setting I-interval.
      The normal cadence resumes for the next GOP. Note: Maximum GOP stretch = GOP size +
      Min-I-interval - 1

      - **ParDenominator** *(integer) --* Pixel Aspect Ratio denominator.

      - **ParNumerator** *(integer) --* Pixel Aspect Ratio numerator.

      - **Profile** *(string) --* H.265 Profile.

      - **QvbrQualityLevel** *(integer) --* Controls the target quality for the video encode.
      Applies only when the rate control mode is QVBR. Set values for the QVBR quality level field
      and Max bitrate field that suit your most important viewing devices. Recommended values are: -
      Primary screen: Quality level: 8 to 10. Max bitrate: 4M - PC or tablet: Quality level: 7. Max
      bitrate: 1.5M to 3M - Smartphone: Quality level: 6. Max bitrate: 1M to 1.5M

      - **RateControlMode** *(string) --* Rate control mode. QVBR: Quality will match the specified
      quality level except when it is constrained by the maximum bitrate. Recommended if you or your
      viewers pay for bandwidth. CBR: Quality varies, depending on the video complexity. Recommended
      only if you distribute your assets to devices that cannot handle variable bitrates.

      - **ScanType** *(string) --* Sets the scan type of the output to progressive or
      top-field-first interlaced.

      - **SceneChangeDetect** *(string) --* Scene change detection.

      - **Slices** *(integer) --* Number of slices per picture. Must be less than or equal to the
      number of macroblock rows for progressive pictures, and less than or equal to half the number
      of macroblock rows for interlaced pictures. This field is optional; when no value is specified
      the encoder will choose the number of slices based on encode resolution.

      - **Tier** *(string) --* H.265 Tier.

      - **TimecodeInsertion** *(string) --* Determines how timecodes should be inserted into the
      video elementary stream. - 'disabled': Do not include timecodes - 'picTimingSei': Pass through
      picture timing SEI messages from the source specified in Timecode Config
    """


_ClientStopChannelResponseEncoderSettingsVideoDescriptionsTypeDef = TypedDict(
    "_ClientStopChannelResponseEncoderSettingsVideoDescriptionsTypeDef",
    {
        "CodecSettings": ClientStopChannelResponseEncoderSettingsVideoDescriptionsCodecSettingsTypeDef,
        "Height": int,
        "Name": str,
        "RespondToAfd": str,
        "ScalingBehavior": str,
        "Sharpness": int,
        "Width": int,
    },
    total=False,
)


class ClientStopChannelResponseEncoderSettingsVideoDescriptionsTypeDef(
    _ClientStopChannelResponseEncoderSettingsVideoDescriptionsTypeDef
):
    """
    Type definition for `ClientStopChannelResponseEncoderSettings` `VideoDescriptions`

    - **CodecSettings** *(dict) --* Video codec settings.

      - **FrameCaptureSettings** *(dict) --* Frame Capture Settings

        - **CaptureInterval** *(integer) --* The frequency at which to capture frames for inclusion
        in the output. May be specified in either seconds or milliseconds, as specified by
        captureIntervalUnits.

      - **H264Settings** *(dict) --* H264 Settings

        - **AdaptiveQuantization** *(string) --* Adaptive quantization. Allows intra-frame
        quantizers to vary to improve visual quality.

        - **AfdSignaling** *(string) --* Indicates that AFD values will be written into the output
        stream. If afdSignaling is "auto", the system will try to preserve the input AFD value (in
        cases where multiple AFD values are valid). If set to "fixed", the AFD value will be the
        value configured in the fixedAfd parameter.

        - **Bitrate** *(integer) --* Average bitrate in bits/second. Required when the rate control
        mode is VBR or CBR. Not used for QVBR. In an MS Smooth output group, each output must have a
        unique value when its bitrate is rounded down to the nearest multiple of 1000.

        - **BufFillPct** *(integer) --* Percentage of the buffer that should initially be filled
        (HRD buffer model).

        - **BufSize** *(integer) --* Size of buffer (HRD buffer model) in bits.

        - **ColorMetadata** *(string) --* Includes colorspace metadata in the output.

        - **ColorSpaceSettings** *(dict) --* Color Space settings

          - **ColorSpacePassthroughSettings** *(dict) --* Passthrough applies no color space
          conversion to the output

          - **Rec601Settings** *(dict) --* Rec601 Settings

          - **Rec709Settings** *(dict) --* Rec709 Settings

        - **EntropyEncoding** *(string) --* Entropy encoding mode. Use cabac (must be in Main or
        High profile) or cavlc.

        - **FixedAfd** *(string) --* Four bit AFD value to write on all frames of video in the
        output stream. Only valid when afdSignaling is set to 'Fixed'.

        - **FlickerAq** *(string) --* If set to enabled, adjust quantization within each frame to
        reduce flicker or 'pop' on I-frames.

        - **FramerateControl** *(string) --* This field indicates how the output video frame rate is
        specified. If "specified" is selected then the output video frame rate is determined by
        framerateNumerator and framerateDenominator, else if "initializeFromSource" is selected then
        the output video frame rate will be set equal to the input video frame rate of the first
        input.

        - **FramerateDenominator** *(integer) --* Framerate denominator.

        - **FramerateNumerator** *(integer) --* Framerate numerator - framerate is a fraction, e.g.
        24000 / 1001 = 23.976 fps.

        - **GopBReference** *(string) --* Documentation update needed

        - **GopClosedCadence** *(integer) --* Frequency of closed GOPs. In streaming applications,
        it is recommended that this be set to 1 so a decoder joining mid-stream will receive an IDR
        frame as quickly as possible. Setting this value to 0 will break output segmenting.

        - **GopNumBFrames** *(integer) --* Number of B-frames between reference frames.

        - **GopSize** *(float) --* GOP size (keyframe interval) in units of either frames or seconds
        per gopSizeUnits. If gopSizeUnits is frames, gopSize must be an integer and must be greater
        than or equal to 1. If gopSizeUnits is seconds, gopSize must be greater than 0, but need not
        be an integer.

        - **GopSizeUnits** *(string) --* Indicates if the gopSize is specified in frames or seconds.
        If seconds the system will convert the gopSize into a frame count at run time.

        - **Level** *(string) --* H.264 Level.

        - **LookAheadRateControl** *(string) --* Amount of lookahead. A value of low can decrease
        latency and memory usage, while high can produce better quality for certain content.

        - **MaxBitrate** *(integer) --* For QVBR: See the tooltip for Quality level For VBR: Set the
        maximum bitrate in order to accommodate expected spikes in the complexity of the video.

        - **MinIInterval** *(integer) --* Only meaningful if sceneChangeDetect is set to enabled.
        Defaults to 5 if multiplex rate control is used. Enforces separation between repeated
        (cadence) I-frames and I-frames inserted by Scene Change Detection. If a scene change
        I-frame is within I-interval frames of a cadence I-frame, the GOP is shrunk and/or stretched
        to the scene change I-frame. GOP stretch requires enabling lookahead as well as setting
        I-interval. The normal cadence resumes for the next GOP. Note: Maximum GOP stretch = GOP
        size + Min-I-interval - 1

        - **NumRefFrames** *(integer) --* Number of reference frames to use. The encoder may use
        more than requested if using B-frames and/or interlaced encoding.

        - **ParControl** *(string) --* This field indicates how the output pixel aspect ratio is
        specified. If "specified" is selected then the output video pixel aspect ratio is determined
        by parNumerator and parDenominator, else if "initializeFromSource" is selected then the
        output pixsel aspect ratio will be set equal to the input video pixel aspect ratio of the
        first input.

        - **ParDenominator** *(integer) --* Pixel Aspect Ratio denominator.

        - **ParNumerator** *(integer) --* Pixel Aspect Ratio numerator.

        - **Profile** *(string) --* H.264 Profile.

        - **QvbrQualityLevel** *(integer) --* Controls the target quality for the video encode.
        Applies only when the rate control mode is QVBR. Set values for the QVBR quality level field
        and Max bitrate field that suit your most important viewing devices. Recommended values are:
        - Primary screen: Quality level: 8 to 10. Max bitrate: 4M - PC or tablet: Quality level: 7.
        Max bitrate: 1.5M to 3M - Smartphone: Quality level: 6. Max bitrate: 1M to 1.5M

        - **RateControlMode** *(string) --* Rate control mode. QVBR: Quality will match the
        specified quality level except when it is constrained by the maximum bitrate. Recommended if
        you or your viewers pay for bandwidth. VBR: Quality and bitrate vary, depending on the video
        complexity. Recommended instead of QVBR if you want to maintain a specific average bitrate
        over the duration of the channel. CBR: Quality varies, depending on the video complexity.
        Recommended only if you distribute your assets to devices that cannot handle variable
        bitrates.

        - **ScanType** *(string) --* Sets the scan type of the output to progressive or
        top-field-first interlaced.

        - **SceneChangeDetect** *(string) --* Scene change detection. - On: inserts I-frames when
        scene change is detected. - Off: does not force an I-frame when scene change is detected.

        - **Slices** *(integer) --* Number of slices per picture. Must be less than or equal to the
        number of macroblock rows for progressive pictures, and less than or equal to half the
        number of macroblock rows for interlaced pictures. This field is optional; when no value is
        specified the encoder will choose the number of slices based on encode resolution.

        - **Softness** *(integer) --* Softness. Selects quantizer matrix, larger values reduce
        high-frequency content in the encoded image.

        - **SpatialAq** *(string) --* If set to enabled, adjust quantization within each frame based
        on spatial variation of content complexity.

        - **SubgopLength** *(string) --* If set to fixed, use gopNumBFrames B-frames per sub-GOP. If
        set to dynamic, optimize the number of B-frames used for each sub-GOP to improve visual
        quality.

        - **Syntax** *(string) --* Produces a bitstream compliant with SMPTE RP-2027.

        - **TemporalAq** *(string) --* If set to enabled, adjust quantization within each frame
        based on temporal variation of content complexity.

        - **TimecodeInsertion** *(string) --* Determines how timecodes should be inserted into the
        video elementary stream. - 'disabled': Do not include timecodes - 'picTimingSei': Pass
        through picture timing SEI messages from the source specified in Timecode Config

      - **H265Settings** *(dict) --* H265 Settings

        - **AdaptiveQuantization** *(string) --* Adaptive quantization. Allows intra-frame
        quantizers to vary to improve visual quality.

        - **AfdSignaling** *(string) --* Indicates that AFD values will be written into the output
        stream. If afdSignaling is "auto", the system will try to preserve the input AFD value (in
        cases where multiple AFD values are valid). If set to "fixed", the AFD value will be the
        value configured in the fixedAfd parameter.

        - **AlternativeTransferFunction** *(string) --* Whether or not EML should insert an
        Alternative Transfer Function SEI message to support backwards compatibility with non-HDR
        decoders and displays.

        - **Bitrate** *(integer) --* Average bitrate in bits/second. Required when the rate control
        mode is VBR or CBR. Not used for QVBR. In an MS Smooth output group, each output must have a
        unique value when its bitrate is rounded down to the nearest multiple of 1000.

        - **BufSize** *(integer) --* Size of buffer (HRD buffer model) in bits.

        - **ColorMetadata** *(string) --* Includes colorspace metadata in the output.

        - **ColorSpaceSettings** *(dict) --* Color Space settings

          - **ColorSpacePassthroughSettings** *(dict) --* Passthrough applies no color space
          conversion to the output

          - **Hdr10Settings** *(dict) --* Hdr10 Settings

            - **MaxCll** *(integer) --* Maximum Content Light Level An integer metadata value
            defining the maximum light level, in nits, of any single pixel within an encoded HDR
            video stream or file.

            - **MaxFall** *(integer) --* Maximum Frame Average Light Level An integer metadata value
            defining the maximum average light level, in nits, for any single frame within an
            encoded HDR video stream or file.

          - **Rec601Settings** *(dict) --* Rec601 Settings

          - **Rec709Settings** *(dict) --* Rec709 Settings

        - **FixedAfd** *(string) --* Four bit AFD value to write on all frames of video in the
        output stream. Only valid when afdSignaling is set to 'Fixed'.

        - **FlickerAq** *(string) --* If set to enabled, adjust quantization within each frame to
        reduce flicker or 'pop' on I-frames.

        - **FramerateDenominator** *(integer) --* Framerate denominator.

        - **FramerateNumerator** *(integer) --* Framerate numerator - framerate is a fraction, e.g.
        24000 / 1001 = 23.976 fps.

        - **GopClosedCadence** *(integer) --* Frequency of closed GOPs. In streaming applications,
        it is recommended that this be set to 1 so a decoder joining mid-stream will receive an IDR
        frame as quickly as possible. Setting this value to 0 will break output segmenting.

        - **GopSize** *(float) --* GOP size (keyframe interval) in units of either frames or seconds
        per gopSizeUnits. If gopSizeUnits is frames, gopSize must be an integer and must be greater
        than or equal to 1. If gopSizeUnits is seconds, gopSize must be greater than 0, but need not
        be an integer.

        - **GopSizeUnits** *(string) --* Indicates if the gopSize is specified in frames or seconds.
        If seconds the system will convert the gopSize into a frame count at run time.

        - **Level** *(string) --* H.265 Level.

        - **LookAheadRateControl** *(string) --* Amount of lookahead. A value of low can decrease
        latency and memory usage, while high can produce better quality for certain content.

        - **MaxBitrate** *(integer) --* For QVBR: See the tooltip for Quality level

        - **MinIInterval** *(integer) --* Only meaningful if sceneChangeDetect is set to enabled.
        Defaults to 5 if multiplex rate control is used. Enforces separation between repeated
        (cadence) I-frames and I-frames inserted by Scene Change Detection. If a scene change
        I-frame is within I-interval frames of a cadence I-frame, the GOP is shrunk and/or stretched
        to the scene change I-frame. GOP stretch requires enabling lookahead as well as setting
        I-interval. The normal cadence resumes for the next GOP. Note: Maximum GOP stretch = GOP
        size + Min-I-interval - 1

        - **ParDenominator** *(integer) --* Pixel Aspect Ratio denominator.

        - **ParNumerator** *(integer) --* Pixel Aspect Ratio numerator.

        - **Profile** *(string) --* H.265 Profile.

        - **QvbrQualityLevel** *(integer) --* Controls the target quality for the video encode.
        Applies only when the rate control mode is QVBR. Set values for the QVBR quality level field
        and Max bitrate field that suit your most important viewing devices. Recommended values are:
        - Primary screen: Quality level: 8 to 10. Max bitrate: 4M - PC or tablet: Quality level: 7.
        Max bitrate: 1.5M to 3M - Smartphone: Quality level: 6. Max bitrate: 1M to 1.5M

        - **RateControlMode** *(string) --* Rate control mode. QVBR: Quality will match the
        specified quality level except when it is constrained by the maximum bitrate. Recommended if
        you or your viewers pay for bandwidth. CBR: Quality varies, depending on the video
        complexity. Recommended only if you distribute your assets to devices that cannot handle
        variable bitrates.

        - **ScanType** *(string) --* Sets the scan type of the output to progressive or
        top-field-first interlaced.

        - **SceneChangeDetect** *(string) --* Scene change detection.

        - **Slices** *(integer) --* Number of slices per picture. Must be less than or equal to the
        number of macroblock rows for progressive pictures, and less than or equal to half the
        number of macroblock rows for interlaced pictures. This field is optional; when no value is
        specified the encoder will choose the number of slices based on encode resolution.

        - **Tier** *(string) --* H.265 Tier.

        - **TimecodeInsertion** *(string) --* Determines how timecodes should be inserted into the
        video elementary stream. - 'disabled': Do not include timecodes - 'picTimingSei': Pass
        through picture timing SEI messages from the source specified in Timecode Config

    - **Height** *(integer) --* Output video height, in pixels. Must be an even number. For most
    codecs, you can leave this field and width blank in order to use the height and width
    (resolution) from the source. Note, however, that leaving blank is not recommended. For the
    Frame Capture codec, height and width are required.

    - **Name** *(string) --* The name of this VideoDescription. Outputs will use this name to
    uniquely identify this Description. Description names should be unique within this Live Event.

    - **RespondToAfd** *(string) --* Indicates how to respond to the AFD values in the input stream.
    RESPOND causes input video to be clipped, depending on the AFD value, input display aspect
    ratio, and output display aspect ratio, and (except for FRAMECAPTURE codec) includes the values
    in the output. PASSTHROUGH (does not apply to FRAMECAPTURE codec) ignores the AFD values and
    includes the values in the output, so input video is not clipped. NONE ignores the AFD values
    and does not include the values through to the output, so input video is not clipped.

    - **ScalingBehavior** *(string) --* STRETCHTOOUTPUT configures the output position to stretch
    the video to the specified output resolution (height and width). This option will override any
    position value. DEFAULT may insert black boxes (pillar boxes or letter boxes) around the video
    to provide the specified output resolution.

    - **Sharpness** *(integer) --* Changes the strength of the anti-alias filter used for scaling. 0
    is the softest setting, 100 is the sharpest. A setting of 50 is recommended for most content.

    - **Width** *(integer) --* Output video width, in pixels. Must be an even number. For most
    codecs, you can leave this field and height blank in order to use the height and width
    (resolution) from the source. Note, however, that leaving blank is not recommended. For the
    Frame Capture codec, height and width are required.
    """


_ClientStopChannelResponseEncoderSettingsTypeDef = TypedDict(
    "_ClientStopChannelResponseEncoderSettingsTypeDef",
    {
        "AudioDescriptions": List[ClientStopChannelResponseEncoderSettingsAudioDescriptionsTypeDef],
        "AvailBlanking": ClientStopChannelResponseEncoderSettingsAvailBlankingTypeDef,
        "AvailConfiguration": ClientStopChannelResponseEncoderSettingsAvailConfigurationTypeDef,
        "BlackoutSlate": ClientStopChannelResponseEncoderSettingsBlackoutSlateTypeDef,
        "CaptionDescriptions": List[
            ClientStopChannelResponseEncoderSettingsCaptionDescriptionsTypeDef
        ],
        "GlobalConfiguration": ClientStopChannelResponseEncoderSettingsGlobalConfigurationTypeDef,
        "NielsenConfiguration": ClientStopChannelResponseEncoderSettingsNielsenConfigurationTypeDef,
        "OutputGroups": List[ClientStopChannelResponseEncoderSettingsOutputGroupsTypeDef],
        "TimecodeConfig": ClientStopChannelResponseEncoderSettingsTimecodeConfigTypeDef,
        "VideoDescriptions": List[ClientStopChannelResponseEncoderSettingsVideoDescriptionsTypeDef],
    },
    total=False,
)


class ClientStopChannelResponseEncoderSettingsTypeDef(
    _ClientStopChannelResponseEncoderSettingsTypeDef
):
    """
    Type definition for `ClientStopChannelResponse` `EncoderSettings`

    - **AudioDescriptions** *(list) --* Placeholder documentation for __listOfAudioDescription

      - *(dict) --* Audio Description

        - **AudioNormalizationSettings** *(dict) --* Advanced audio normalization settings.

          - **Algorithm** *(string) --* Audio normalization algorithm to use. itu17701 conforms to
          the CALM Act specification, itu17702 conforms to the EBU R-128 specification.

          - **AlgorithmControl** *(string) --* When set to correctAudio the output audio is
          corrected using the chosen algorithm. If set to measureOnly, the audio will be measured
          but not adjusted.

          - **TargetLkfs** *(float) --* Target LKFS(loudness) to adjust volume to. If no value is
          entered, a default value will be used according to the chosen algorithm. The CALM Act
          (1770-1) recommends a target of -24 LKFS. The EBU R-128 specification (1770-2) recommends
          a target of -23 LKFS.

        - **AudioSelectorName** *(string) --* The name of the AudioSelector used as the source for
        this AudioDescription.

        - **AudioType** *(string) --* Applies only if audioTypeControl is useConfigured. The values
        for audioType are defined in ISO-IEC 13818-1.

        - **AudioTypeControl** *(string) --* Determines how audio type is determined. followInput:
        If the input contains an ISO 639 audioType, then that value is passed through to the output.
        If the input contains no ISO 639 audioType, the value in Audio Type is included in the
        output. useConfigured: The value in Audio Type is included in the output. Note that this
        field and audioType are both ignored if inputType is broadcasterMixedAd.

        - **CodecSettings** *(dict) --* Audio codec settings.

          - **AacSettings** *(dict) --* Aac Settings

            - **Bitrate** *(float) --* Average bitrate in bits/second. Valid values depend on rate
            control mode and profile.

            - **CodingMode** *(string) --* Mono, Stereo, or 5.1 channel layout. Valid values depend
            on rate control mode and profile. The adReceiverMix setting receives a stereo
            description plus control track and emits a mono AAC encode of the description track,
            with control data emitted in the PES header as per ETSI TS 101 154 Annex E.

            - **InputType** *(string) --* Set to "broadcasterMixedAd" when input contains pre-mixed
            main audio + AD (narration) as a stereo pair. The Audio Type field (audioType) will be
            set to 3, which signals to downstream systems that this stream contains "broadcaster
            mixed AD". Note that the input received by the encoder must contain pre-mixed audio; the
            encoder does not perform the mixing. The values in audioTypeControl and audioType (in
            AudioDescription) are ignored when set to broadcasterMixedAd. Leave set to "normal" when
            input does not contain pre-mixed audio + AD.

            - **Profile** *(string) --* AAC Profile.

            - **RateControlMode** *(string) --* Rate Control Mode.

            - **RawFormat** *(string) --* Sets LATM / LOAS AAC output for raw containers.

            - **SampleRate** *(float) --* Sample rate in Hz. Valid values depend on rate control
            mode and profile.

            - **Spec** *(string) --* Use MPEG-2 AAC audio instead of MPEG-4 AAC audio for raw or
            MPEG-2 Transport Stream containers.

            - **VbrQuality** *(string) --* VBR Quality Level - Only used if rateControlMode is VBR.

          - **Ac3Settings** *(dict) --* Ac3 Settings

            - **Bitrate** *(float) --* Average bitrate in bits/second. Valid bitrates depend on the
            coding mode.

            - **BitstreamMode** *(string) --* Specifies the bitstream mode (bsmod) for the emitted
            AC-3 stream. See ATSC A/52-2012 for background on these values.

            - **CodingMode** *(string) --* Dolby Digital coding mode. Determines number of channels.

            - **Dialnorm** *(integer) --* Sets the dialnorm for the output. If excluded and input
            audio is Dolby Digital, dialnorm will be passed through.

            - **DrcProfile** *(string) --* If set to filmStandard, adds dynamic range compression
            signaling to the output bitstream as defined in the Dolby Digital specification.

            - **LfeFilter** *(string) --* When set to enabled, applies a 120Hz lowpass filter to the
            LFE channel prior to encoding. Only valid in codingMode32Lfe mode.

            - **MetadataControl** *(string) --* When set to "followInput", encoder metadata will be
            sourced from the DD, DD+, or DolbyE decoder that supplied this audio data. If audio was
            not supplied from one of these streams, then the static metadata settings will be used.

          - **Eac3Settings** *(dict) --* Eac3 Settings

            - **AttenuationControl** *(string) --* When set to attenuate3Db, applies a 3 dB
            attenuation to the surround channels. Only used for 3/2 coding mode.

            - **Bitrate** *(float) --* Average bitrate in bits/second. Valid bitrates depend on the
            coding mode.

            - **BitstreamMode** *(string) --* Specifies the bitstream mode (bsmod) for the emitted
            E-AC-3 stream. See ATSC A/52-2012 (Annex E) for background on these values.

            - **CodingMode** *(string) --* Dolby Digital Plus coding mode. Determines number of
            channels.

            - **DcFilter** *(string) --* When set to enabled, activates a DC highpass filter for all
            input channels.

            - **Dialnorm** *(integer) --* Sets the dialnorm for the output. If blank and input audio
            is Dolby Digital Plus, dialnorm will be passed through.

            - **DrcLine** *(string) --* Sets the Dolby dynamic range compression profile.

            - **DrcRf** *(string) --* Sets the profile for heavy Dolby dynamic range compression,
            ensures that the instantaneous signal peaks do not exceed specified levels.

            - **LfeControl** *(string) --* When encoding 3/2 audio, setting to lfe enables the LFE
            channel

            - **LfeFilter** *(string) --* When set to enabled, applies a 120Hz lowpass filter to the
            LFE channel prior to encoding. Only valid with codingMode32 coding mode.

            - **LoRoCenterMixLevel** *(float) --* Left only/Right only center mix level. Only used
            for 3/2 coding mode.

            - **LoRoSurroundMixLevel** *(float) --* Left only/Right only surround mix level. Only
            used for 3/2 coding mode.

            - **LtRtCenterMixLevel** *(float) --* Left total/Right total center mix level. Only used
            for 3/2 coding mode.

            - **LtRtSurroundMixLevel** *(float) --* Left total/Right total surround mix level. Only
            used for 3/2 coding mode.

            - **MetadataControl** *(string) --* When set to followInput, encoder metadata will be
            sourced from the DD, DD+, or DolbyE decoder that supplied this audio data. If audio was
            not supplied from one of these streams, then the static metadata settings will be used.

            - **PassthroughControl** *(string) --* When set to whenPossible, input DD+ audio will be
            passed through if it is present on the input. This detection is dynamic over the life of
            the transcode. Inputs that alternate between DD+ and non-DD+ content will have a
            consistent DD+ output as the system alternates between passthrough and encoding.

            - **PhaseControl** *(string) --* When set to shift90Degrees, applies a 90-degree phase
            shift to the surround channels. Only used for 3/2 coding mode.

            - **StereoDownmix** *(string) --* Stereo downmix preference. Only used for 3/2 coding
            mode.

            - **SurroundExMode** *(string) --* When encoding 3/2 audio, sets whether an extra center
            back surround channel is matrix encoded into the left and right surround channels.

            - **SurroundMode** *(string) --* When encoding 2/0 audio, sets whether Dolby Surround is
            matrix encoded into the two channels.

          - **Mp2Settings** *(dict) --* Mp2 Settings

            - **Bitrate** *(float) --* Average bitrate in bits/second.

            - **CodingMode** *(string) --* The MPEG2 Audio coding mode. Valid values are
            codingMode10 (for mono) or codingMode20 (for stereo).

            - **SampleRate** *(float) --* Sample rate in Hz.

          - **PassThroughSettings** *(dict) --* Pass Through Settings

        - **LanguageCode** *(string) --* Indicates the language of the audio output track. Only used
        if languageControlMode is useConfigured, or there is no ISO 639 language code specified in
        the input.

        - **LanguageCodeControl** *(string) --* Choosing followInput will cause the ISO 639 language
        code of the output to follow the ISO 639 language code of the input. The languageCode will
        be used when useConfigured is set, or when followInput is selected but there is no ISO 639
        language code specified by the input.

        - **Name** *(string) --* The name of this AudioDescription. Outputs will use this name to
        uniquely identify this AudioDescription. Description names should be unique within this Live
        Event.

        - **RemixSettings** *(dict) --* Settings that control how input audio channels are remixed
        into the output audio channels.

          - **ChannelMappings** *(list) --* Mapping of input channels to output channels, with
          appropriate gain adjustments.

            - *(dict) --* Audio Channel Mapping

              - **InputChannelLevels** *(list) --* Indices and gain values for each input channel
              that should be remixed into this output channel.

                - *(dict) --* Input Channel Level

                  - **Gain** *(integer) --* Remixing value. Units are in dB and acceptable values
                  are within the range from -60 (mute) and 6 dB.

                  - **InputChannel** *(integer) --* The index of the input channel used as a source.

              - **OutputChannel** *(integer) --* The index of the output channel being produced.

          - **ChannelsIn** *(integer) --* Number of input channels to be used.

          - **ChannelsOut** *(integer) --* Number of output channels to be produced. Valid values:
          1, 2, 4, 6, 8

        - **StreamName** *(string) --* Used for MS Smooth and Apple HLS outputs. Indicates the name
        displayed by the player (eg. English, or Director Commentary).

    - **AvailBlanking** *(dict) --* Settings for ad avail blanking.

      - **AvailBlankingImage** *(dict) --* Blanking image to be used. Leave empty for solid black.
      Only bmp and png images are supported.

        - **PasswordParam** *(string) --* key used to extract the password from EC2 Parameter store

        - **Uri** *(string) --* Uniform Resource Identifier - This should be a path to a file
        accessible to the Live system (eg. a http:// URI) depending on the output type. For example,
        a RTMP destination should have a uri simliar to: "rtmp://fmsserver/live".

        - **Username** *(string) --* Documentation update needed

      - **State** *(string) --* When set to enabled, causes video, audio and captions to be blanked
      when insertion metadata is added.

    - **AvailConfiguration** *(dict) --* Event-wide configuration settings for ad avail insertion.

      - **AvailSettings** *(dict) --* Ad avail settings.

        - **Scte35SpliceInsert** *(dict) --* Scte35 Splice Insert

          - **AdAvailOffset** *(integer) --* When specified, this offset (in milliseconds) is added
          to the input Ad Avail PTS time. This only applies to embedded SCTE 104/35 messages and
          does not apply to OOB messages.

          - **NoRegionalBlackoutFlag** *(string) --* When set to ignore, Segment Descriptors with
          noRegionalBlackoutFlag set to 0 will no longer trigger blackouts or Ad Avail slates

          - **WebDeliveryAllowedFlag** *(string) --* When set to ignore, Segment Descriptors with
          webDeliveryAllowedFlag set to 0 will no longer trigger blackouts or Ad Avail slates

        - **Scte35TimeSignalApos** *(dict) --* Scte35 Time Signal Apos

          - **AdAvailOffset** *(integer) --* When specified, this offset (in milliseconds) is added
          to the input Ad Avail PTS time. This only applies to embedded SCTE 104/35 messages and
          does not apply to OOB messages.

          - **NoRegionalBlackoutFlag** *(string) --* When set to ignore, Segment Descriptors with
          noRegionalBlackoutFlag set to 0 will no longer trigger blackouts or Ad Avail slates

          - **WebDeliveryAllowedFlag** *(string) --* When set to ignore, Segment Descriptors with
          webDeliveryAllowedFlag set to 0 will no longer trigger blackouts or Ad Avail slates

    - **BlackoutSlate** *(dict) --* Settings for blackout slate.

      - **BlackoutSlateImage** *(dict) --* Blackout slate image to be used. Leave empty for solid
      black. Only bmp and png images are supported.

        - **PasswordParam** *(string) --* key used to extract the password from EC2 Parameter store

        - **Uri** *(string) --* Uniform Resource Identifier - This should be a path to a file
        accessible to the Live system (eg. a http:// URI) depending on the output type. For example,
        a RTMP destination should have a uri simliar to: "rtmp://fmsserver/live".

        - **Username** *(string) --* Documentation update needed

      - **NetworkEndBlackout** *(string) --* Setting to enabled causes the encoder to blackout the
      video, audio, and captions, and raise the "Network Blackout Image" slate when an SCTE104/35
      Network End Segmentation Descriptor is encountered. The blackout will be lifted when the
      Network Start Segmentation Descriptor is encountered. The Network End and Network Start
      descriptors must contain a network ID that matches the value entered in "Network ID".

      - **NetworkEndBlackoutImage** *(dict) --* Path to local file to use as Network End Blackout
      image. Image will be scaled to fill the entire output raster.

        - **PasswordParam** *(string) --* key used to extract the password from EC2 Parameter store

        - **Uri** *(string) --* Uniform Resource Identifier - This should be a path to a file
        accessible to the Live system (eg. a http:// URI) depending on the output type. For example,
        a RTMP destination should have a uri simliar to: "rtmp://fmsserver/live".

        - **Username** *(string) --* Documentation update needed

      - **NetworkId** *(string) --* Provides Network ID that matches EIDR ID format (e.g.,
      "10.XXXX/XXXX-XXXX-XXXX-XXXX-XXXX-C").

      - **State** *(string) --* When set to enabled, causes video, audio and captions to be blanked
      when indicated by program metadata.

    - **CaptionDescriptions** *(list) --* Settings for caption decriptions

      - *(dict) --* Caption Description

        - **CaptionSelectorName** *(string) --* Specifies which input caption selector to use as a
        caption source when generating output captions. This field should match a captionSelector
        name.

        - **DestinationSettings** *(dict) --* Additional settings for captions destination that
        depend on the destination type.

          - **AribDestinationSettings** *(dict) --* Arib Destination Settings

          - **BurnInDestinationSettings** *(dict) --* Burn In Destination Settings

            - **Alignment** *(string) --* If no explicit xPosition or yPosition is provided, setting
            alignment to centered will place the captions at the bottom center of the output.
            Similarly, setting a left alignment will align captions to the bottom left of the
            output. If x and y positions are given in conjunction with the alignment parameter, the
            font will be justified (either left or centered) relative to those coordinates.
            Selecting "smart" justification will left-justify live subtitles and center-justify
            pre-recorded subtitles. All burn-in and DVB-Sub font settings must match.

            - **BackgroundColor** *(string) --* Specifies the color of the rectangle behind the
            captions. All burn-in and DVB-Sub font settings must match.

            - **BackgroundOpacity** *(integer) --* Specifies the opacity of the background
            rectangle. 255 is opaque; 0 is transparent. Leaving this parameter out is equivalent to
            setting it to 0 (transparent). All burn-in and DVB-Sub font settings must match.

            - **Font** *(dict) --* External font file used for caption burn-in. File extension must
            be 'ttf' or 'tte'. Although the user can select output fonts for many different types of
            input captions, embedded, STL and teletext sources use a strict grid system. Using
            external fonts with these caption sources could cause unexpected display of proportional
            fonts. All burn-in and DVB-Sub font settings must match.

              - **PasswordParam** *(string) --* key used to extract the password from EC2 Parameter
              store

              - **Uri** *(string) --* Uniform Resource Identifier - This should be a path to a file
              accessible to the Live system (eg. a http:// URI) depending on the output type. For
              example, a RTMP destination should have a uri simliar to: "rtmp://fmsserver/live".

              - **Username** *(string) --* Documentation update needed

            - **FontColor** *(string) --* Specifies the color of the burned-in captions. This option
            is not valid for source captions that are STL, 608/embedded or teletext. These source
            settings are already pre-defined by the caption stream. All burn-in and DVB-Sub font
            settings must match.

            - **FontOpacity** *(integer) --* Specifies the opacity of the burned-in captions. 255 is
            opaque; 0 is transparent. All burn-in and DVB-Sub font settings must match.

            - **FontResolution** *(integer) --* Font resolution in DPI (dots per inch); default is
            96 dpi. All burn-in and DVB-Sub font settings must match.

            - **FontSize** *(string) --* When set to 'auto' fontSize will scale depending on the
            size of the output. Giving a positive integer will specify the exact font size in
            points. All burn-in and DVB-Sub font settings must match.

            - **OutlineColor** *(string) --* Specifies font outline color. This option is not valid
            for source captions that are either 608/embedded or teletext. These source settings are
            already pre-defined by the caption stream. All burn-in and DVB-Sub font settings must
            match.

            - **OutlineSize** *(integer) --* Specifies font outline size in pixels. This option is
            not valid for source captions that are either 608/embedded or teletext. These source
            settings are already pre-defined by the caption stream. All burn-in and DVB-Sub font
            settings must match.

            - **ShadowColor** *(string) --* Specifies the color of the shadow cast by the captions.
            All burn-in and DVB-Sub font settings must match.

            - **ShadowOpacity** *(integer) --* Specifies the opacity of the shadow. 255 is opaque; 0
            is transparent. Leaving this parameter out is equivalent to setting it to 0
            (transparent). All burn-in and DVB-Sub font settings must match.

            - **ShadowXOffset** *(integer) --* Specifies the horizontal offset of the shadow
            relative to the captions in pixels. A value of -2 would result in a shadow offset 2
            pixels to the left. All burn-in and DVB-Sub font settings must match.

            - **ShadowYOffset** *(integer) --* Specifies the vertical offset of the shadow relative
            to the captions in pixels. A value of -2 would result in a shadow offset 2 pixels above
            the text. All burn-in and DVB-Sub font settings must match.

            - **TeletextGridControl** *(string) --* Controls whether a fixed grid size will be used
            to generate the output subtitles bitmap. Only applicable for Teletext inputs and
            DVB-Sub/Burn-in outputs.

            - **XPosition** *(integer) --* Specifies the horizontal position of the caption relative
            to the left side of the output in pixels. A value of 10 would result in the captions
            starting 10 pixels from the left of the output. If no explicit xPosition is provided,
            the horizontal caption position will be determined by the alignment parameter. All
            burn-in and DVB-Sub font settings must match.

            - **YPosition** *(integer) --* Specifies the vertical position of the caption relative
            to the top of the output in pixels. A value of 10 would result in the captions starting
            10 pixels from the top of the output. If no explicit yPosition is provided, the caption
            will be positioned towards the bottom of the output. All burn-in and DVB-Sub font
            settings must match.

          - **DvbSubDestinationSettings** *(dict) --* Dvb Sub Destination Settings

            - **Alignment** *(string) --* If no explicit xPosition or yPosition is provided, setting
            alignment to centered will place the captions at the bottom center of the output.
            Similarly, setting a left alignment will align captions to the bottom left of the
            output. If x and y positions are given in conjunction with the alignment parameter, the
            font will be justified (either left or centered) relative to those coordinates.
            Selecting "smart" justification will left-justify live subtitles and center-justify
            pre-recorded subtitles. This option is not valid for source captions that are STL or
            608/embedded. These source settings are already pre-defined by the caption stream. All
            burn-in and DVB-Sub font settings must match.

            - **BackgroundColor** *(string) --* Specifies the color of the rectangle behind the
            captions. All burn-in and DVB-Sub font settings must match.

            - **BackgroundOpacity** *(integer) --* Specifies the opacity of the background
            rectangle. 255 is opaque; 0 is transparent. Leaving this parameter blank is equivalent
            to setting it to 0 (transparent). All burn-in and DVB-Sub font settings must match.

            - **Font** *(dict) --* External font file used for caption burn-in. File extension must
            be 'ttf' or 'tte'. Although the user can select output fonts for many different types of
            input captions, embedded, STL and teletext sources use a strict grid system. Using
            external fonts with these caption sources could cause unexpected display of proportional
            fonts. All burn-in and DVB-Sub font settings must match.

              - **PasswordParam** *(string) --* key used to extract the password from EC2 Parameter
              store

              - **Uri** *(string) --* Uniform Resource Identifier - This should be a path to a file
              accessible to the Live system (eg. a http:// URI) depending on the output type. For
              example, a RTMP destination should have a uri simliar to: "rtmp://fmsserver/live".

              - **Username** *(string) --* Documentation update needed

            - **FontColor** *(string) --* Specifies the color of the burned-in captions. This option
            is not valid for source captions that are STL, 608/embedded or teletext. These source
            settings are already pre-defined by the caption stream. All burn-in and DVB-Sub font
            settings must match.

            - **FontOpacity** *(integer) --* Specifies the opacity of the burned-in captions. 255 is
            opaque; 0 is transparent. All burn-in and DVB-Sub font settings must match.

            - **FontResolution** *(integer) --* Font resolution in DPI (dots per inch); default is
            96 dpi. All burn-in and DVB-Sub font settings must match.

            - **FontSize** *(string) --* When set to auto fontSize will scale depending on the size
            of the output. Giving a positive integer will specify the exact font size in points. All
            burn-in and DVB-Sub font settings must match.

            - **OutlineColor** *(string) --* Specifies font outline color. This option is not valid
            for source captions that are either 608/embedded or teletext. These source settings are
            already pre-defined by the caption stream. All burn-in and DVB-Sub font settings must
            match.

            - **OutlineSize** *(integer) --* Specifies font outline size in pixels. This option is
            not valid for source captions that are either 608/embedded or teletext. These source
            settings are already pre-defined by the caption stream. All burn-in and DVB-Sub font
            settings must match.

            - **ShadowColor** *(string) --* Specifies the color of the shadow cast by the captions.
            All burn-in and DVB-Sub font settings must match.

            - **ShadowOpacity** *(integer) --* Specifies the opacity of the shadow. 255 is opaque; 0
            is transparent. Leaving this parameter blank is equivalent to setting it to 0
            (transparent). All burn-in and DVB-Sub font settings must match.

            - **ShadowXOffset** *(integer) --* Specifies the horizontal offset of the shadow
            relative to the captions in pixels. A value of -2 would result in a shadow offset 2
            pixels to the left. All burn-in and DVB-Sub font settings must match.

            - **ShadowYOffset** *(integer) --* Specifies the vertical offset of the shadow relative
            to the captions in pixels. A value of -2 would result in a shadow offset 2 pixels above
            the text. All burn-in and DVB-Sub font settings must match.

            - **TeletextGridControl** *(string) --* Controls whether a fixed grid size will be used
            to generate the output subtitles bitmap. Only applicable for Teletext inputs and
            DVB-Sub/Burn-in outputs.

            - **XPosition** *(integer) --* Specifies the horizontal position of the caption relative
            to the left side of the output in pixels. A value of 10 would result in the captions
            starting 10 pixels from the left of the output. If no explicit xPosition is provided,
            the horizontal caption position will be determined by the alignment parameter. This
            option is not valid for source captions that are STL, 608/embedded or teletext. These
            source settings are already pre-defined by the caption stream. All burn-in and DVB-Sub
            font settings must match.

            - **YPosition** *(integer) --* Specifies the vertical position of the caption relative
            to the top of the output in pixels. A value of 10 would result in the captions starting
            10 pixels from the top of the output. If no explicit yPosition is provided, the caption
            will be positioned towards the bottom of the output. This option is not valid for source
            captions that are STL, 608/embedded or teletext. These source settings are already
            pre-defined by the caption stream. All burn-in and DVB-Sub font settings must match.

          - **EmbeddedDestinationSettings** *(dict) --* Embedded Destination Settings

          - **EmbeddedPlusScte20DestinationSettings** *(dict) --* Embedded Plus Scte20 Destination
          Settings

          - **RtmpCaptionInfoDestinationSettings** *(dict) --* Rtmp Caption Info Destination
          Settings

          - **Scte20PlusEmbeddedDestinationSettings** *(dict) --* Scte20 Plus Embedded Destination
          Settings

          - **Scte27DestinationSettings** *(dict) --* Scte27 Destination Settings

          - **SmpteTtDestinationSettings** *(dict) --* Smpte Tt Destination Settings

          - **TeletextDestinationSettings** *(dict) --* Teletext Destination Settings

          - **TtmlDestinationSettings** *(dict) --* Ttml Destination Settings

            - **StyleControl** *(string) --* When set to passthrough, passes through style and
            position information from a TTML-like input source (TTML, SMPTE-TT, CFF-TT) to the
            CFF-TT output or TTML output.

          - **WebvttDestinationSettings** *(dict) --* Webvtt Destination Settings

        - **LanguageCode** *(string) --* ISO 639-2 three-digit code:
        http://www.loc.gov/standards/iso639-2/

        - **LanguageDescription** *(string) --* Human readable information to indicate captions
        available for players (eg. English, or Spanish).

        - **Name** *(string) --* Name of the caption description. Used to associate a caption
        description with an output. Names must be unique within an event.

    - **GlobalConfiguration** *(dict) --* Configuration settings that apply to the event as a whole.

      - **InitialAudioGain** *(integer) --* Value to set the initial audio gain for the Live Event.

      - **InputEndAction** *(string) --* Indicates the action to take when the current input
      completes (e.g. end-of-file). When switchAndLoopInputs is configured the encoder will restart
      at the beginning of the first input. When "none" is configured the encoder will transcode
      either black, a solid color, or a user specified slate images per the "Input Loss Behavior"
      configuration until the next input switch occurs (which is controlled through the Channel
      Schedule API).

      - **InputLossBehavior** *(dict) --* Settings for system actions when input is lost.

        - **BlackFrameMsec** *(integer) --* Documentation update needed

        - **InputLossImageColor** *(string) --* When input loss image type is "color" this field
        specifies the color to use. Value: 6 hex characters representing the values of RGB.

        - **InputLossImageSlate** *(dict) --* When input loss image type is "slate" these fields
        specify the parameters for accessing the slate.

          - **PasswordParam** *(string) --* key used to extract the password from EC2 Parameter
          store

          - **Uri** *(string) --* Uniform Resource Identifier - This should be a path to a file
          accessible to the Live system (eg. a http:// URI) depending on the output type. For
          example, a RTMP destination should have a uri simliar to: "rtmp://fmsserver/live".

          - **Username** *(string) --* Documentation update needed

        - **InputLossImageType** *(string) --* Indicates whether to substitute a solid color or a
        slate into the output after input loss exceeds blackFrameMsec.

        - **RepeatFrameMsec** *(integer) --* Documentation update needed

      - **OutputLockingMode** *(string) --* Indicates how MediaLive pipelines are synchronized.
      PIPELINELOCKING - MediaLive will attempt to synchronize the output of each pipeline to the
      other. EPOCHLOCKING - MediaLive will attempt to synchronize the output of each pipeline to the
      Unix epoch.

      - **OutputTimingSource** *(string) --* Indicates whether the rate of frames emitted by the
      Live encoder should be paced by its system clock (which optionally may be locked to another
      source via NTP) or should be locked to the clock of the source that is providing the input
      stream.

      - **SupportLowFramerateInputs** *(string) --* Adjusts video input buffer for streams with very
      low video framerates. This is commonly set to enabled for music channels with less than one
      video frame per second.

    - **NielsenConfiguration** *(dict) --* Nielsen configuration settings.

      - **DistributorId** *(string) --* Enter the Distributor ID assigned to your organization by
      Nielsen.

      - **NielsenPcmToId3Tagging** *(string) --* Enables Nielsen PCM to ID3 tagging

    - **OutputGroups** *(list) --* Placeholder documentation for __listOfOutputGroup

      - *(dict) --* Output groups for this Live Event. Output groups contain information about where
      streams should be distributed.

        - **Name** *(string) --* Custom output group name optionally defined by the user. Only
        letters, numbers, and the underscore character allowed; only 32 characters allowed.

        - **OutputGroupSettings** *(dict) --* Settings associated with the output group.

          - **ArchiveGroupSettings** *(dict) --* Archive Group Settings

            - **Destination** *(dict) --* A directory and base filename where archive files should
            be written.

              - **DestinationRefId** *(string) --* Placeholder documentation for __string

            - **RolloverInterval** *(integer) --* Number of seconds to write to archive file before
            closing and starting a new one.

          - **FrameCaptureGroupSettings** *(dict) --* Frame Capture Group Settings

            - **Destination** *(dict) --* The destination for the frame capture files. Either the
            URI for an Amazon S3 bucket and object, plus a file name prefix (for example,
            s3ssl://sportsDelivery/highlights/20180820/curling_) or the URI for a MediaStore
            container, plus a file name prefix (for example,
            mediastoressl://sportsDelivery/20180820/curling_). The final file names consist of the
            prefix from the destination field (for example, "curling_") + name modifier + the
            counter (5 digits, starting from 00001) + extension (which is always .jpg). For example,
            curlingLow.00001.jpg

              - **DestinationRefId** *(string) --* Placeholder documentation for __string

          - **HlsGroupSettings** *(dict) --* Hls Group Settings

            - **AdMarkers** *(list) --* Choose one or more ad marker types to pass SCTE35 signals
            through to this group of Apple HLS outputs.

              - *(string) --* Hls Ad Markers

            - **BaseUrlContent** *(string) --* A partial URI prefix that will be prepended to each
            output in the media .m3u8 file. Can be used if base manifest is delivered from a
            different URL than the main .m3u8 file.

            - **BaseUrlManifest** *(string) --* A partial URI prefix that will be prepended to each
            output in the media .m3u8 file. Can be used if base manifest is delivered from a
            different URL than the main .m3u8 file.

            - **CaptionLanguageMappings** *(list) --* Mapping of up to 4 caption channels to caption
            languages. Is only meaningful if captionLanguageSetting is set to "insert".

              - *(dict) --* Maps a caption channel to an ISO 693-2 language code
              (http://www.loc.gov/standards/iso639-2), with an optional description.

                - **CaptionChannel** *(integer) --* The closed caption channel being described by
                this CaptionLanguageMapping. Each channel mapping must have a unique channel number
                (maximum of 4)

                - **LanguageCode** *(string) --* Three character ISO 639-2 language code (see
                http://www.loc.gov/standards/iso639-2)

                - **LanguageDescription** *(string) --* Textual description of language

            - **CaptionLanguageSetting** *(string) --* Applies only to 608 Embedded output captions.
            insert: Include CLOSED-CAPTIONS lines in the manifest. Specify at least one language in
            the CC1 Language Code field. One CLOSED-CAPTION line is added for each Language Code you
            specify. Make sure to specify the languages in the order in which they appear in the
            original source (if the source is embedded format) or the order of the caption selectors
            (if the source is other than embedded). Otherwise, languages in the manifest will not
            match up properly with the output captions. none: Include CLOSED-CAPTIONS=
                NONE line in
            the manifest. omit: Omit any CLOSED-CAPTIONS line from the manifest.

            - **ClientCache** *(string) --* When set to "disabled", sets the #EXT-X-ALLOW-CACHE:no
            tag in the manifest, which prevents clients from saving media segments for later replay.

            - **CodecSpecification** *(string) --* Specification to use (RFC-6381 or the default
            RFC-4281) during m3u8 playlist generation.

            - **ConstantIv** *(string) --* For use with encryptionType. This is a 128-bit, 16-byte
            hex value represented by a 32-character text string. If ivSource is set to "explicit"
            then this parameter is required and is used as the IV for encryption.

            - **Destination** *(dict) --* A directory or HTTP destination for the HLS segments,
            manifest files, and encryption keys (if enabled).

              - **DestinationRefId** *(string) --* Placeholder documentation for __string

            - **DirectoryStructure** *(string) --* Place segments in subdirectories.

            - **EncryptionType** *(string) --* Encrypts the segments with the given encryption
            scheme. Exclude this parameter if no encryption is desired.

            - **HlsCdnSettings** *(dict) --* Parameters that control interactions with the CDN.

              - **HlsAkamaiSettings** *(dict) --* Hls Akamai Settings

                - **ConnectionRetryInterval** *(integer) --* Number of seconds to wait before
                retrying connection to the CDN if the connection is lost.

                - **FilecacheDuration** *(integer) --* Size in seconds of file cache for streaming
                outputs.

                - **HttpTransferMode** *(string) --* Specify whether or not to use chunked transfer
                encoding to Akamai. User should contact Akamai to enable this feature.

                - **NumRetries** *(integer) --* Number of retry attempts that will be made before
                the Live Event is put into an error state.

                - **RestartDelay** *(integer) --* If a streaming output fails, number of seconds to
                wait until a restart is initiated. A value of 0 means never restart.

                - **Salt** *(string) --* Salt for authenticated Akamai.

                - **Token** *(string) --* Token parameter for authenticated akamai. If not
                specified, _gda_ is used.

              - **HlsBasicPutSettings** *(dict) --* Hls Basic Put Settings

                - **ConnectionRetryInterval** *(integer) --* Number of seconds to wait before
                retrying connection to the CDN if the connection is lost.

                - **FilecacheDuration** *(integer) --* Size in seconds of file cache for streaming
                outputs.

                - **NumRetries** *(integer) --* Number of retry attempts that will be made before
                the Live Event is put into an error state.

                - **RestartDelay** *(integer) --* If a streaming output fails, number of seconds to
                wait until a restart is initiated. A value of 0 means never restart.

              - **HlsMediaStoreSettings** *(dict) --* Hls Media Store Settings

                - **ConnectionRetryInterval** *(integer) --* Number of seconds to wait before
                retrying connection to the CDN if the connection is lost.

                - **FilecacheDuration** *(integer) --* Size in seconds of file cache for streaming
                outputs.

                - **MediaStoreStorageClass** *(string) --* When set to temporal, output files are
                stored in non-persistent memory for faster reading and writing.

                - **NumRetries** *(integer) --* Number of retry attempts that will be made before
                the Live Event is put into an error state.

                - **RestartDelay** *(integer) --* If a streaming output fails, number of seconds to
                wait until a restart is initiated. A value of 0 means never restart.

              - **HlsWebdavSettings** *(dict) --* Hls Webdav Settings

                - **ConnectionRetryInterval** *(integer) --* Number of seconds to wait before
                retrying connection to the CDN if the connection is lost.

                - **FilecacheDuration** *(integer) --* Size in seconds of file cache for streaming
                outputs.

                - **HttpTransferMode** *(string) --* Specify whether or not to use chunked transfer
                encoding to WebDAV.

                - **NumRetries** *(integer) --* Number of retry attempts that will be made before
                the Live Event is put into an error state.

                - **RestartDelay** *(integer) --* If a streaming output fails, number of seconds to
                wait until a restart is initiated. A value of 0 means never restart.

            - **IFrameOnlyPlaylists** *(string) --* DISABLED: Do not create an I-frame-only
            manifest, but do create the master and media manifests (according to the Output
            Selection field). STANDARD: Create an I-frame-only manifest for each output that
            contains video, as well as the other manifests (according to the Output Selection
            field). The I-frame manifest contains a #EXT-X-I-FRAMES-ONLY tag to indicate it is
            I-frame only, and one or more #EXT-X-BYTERANGE entries identifying the I-frame position.
            For example, #EXT-X-BYTERANGE:160364@1461888"

            - **IndexNSegments** *(integer) --* Applies only if Mode field is LIVE. Specifies the
            maximum number of segments in the media manifest file. After this maximum, older
            segments are removed from the media manifest. This number must be less than or equal to
            the Keep Segments field.

            - **InputLossAction** *(string) --* Parameter that control output group behavior on
            input loss.

            - **IvInManifest** *(string) --* For use with encryptionType. The IV (Initialization
            Vector) is a 128-bit number used in conjunction with the key for encrypting blocks. If
            set to "include", IV is listed in the manifest, otherwise the IV is not in the manifest.

            - **IvSource** *(string) --* For use with encryptionType. The IV (Initialization Vector)
            is a 128-bit number used in conjunction with the key for encrypting blocks. If this
            setting is "followsSegmentNumber", it will cause the IV to change every segment (to
            match the segment number). If this is set to "explicit", you must enter a constantIv
            value.

            - **KeepSegments** *(integer) --* Applies only if Mode field is LIVE. Specifies the
            number of media segments (.ts files) to retain in the destination directory.

            - **KeyFormat** *(string) --* The value specifies how the key is represented in the
            resource identified by the URI. If parameter is absent, an implicit value of "identity"
            is used. A reverse DNS string can also be given.

            - **KeyFormatVersions** *(string) --* Either a single positive integer version value or
            a slash delimited list of version values (1/2/3).

            - **KeyProviderSettings** *(dict) --* The key provider settings.

              - **StaticKeySettings** *(dict) --* Static Key Settings

                - **KeyProviderServer** *(dict) --* The URL of the license server used for
                protecting content.

                  - **PasswordParam** *(string) --* key used to extract the password from EC2
                  Parameter store

                  - **Uri** *(string) --* Uniform Resource Identifier - This should be a path to a
                  file accessible to the Live system (eg. a http:// URI) depending on the output
                  type. For example, a RTMP destination should have a uri simliar to:
                  "rtmp://fmsserver/live".

                  - **Username** *(string) --* Documentation update needed

                - **StaticKeyValue** *(string) --* Static key value as a 32 character hexadecimal
                string.

            - **ManifestCompression** *(string) --* When set to gzip, compresses HLS playlist.

            - **ManifestDurationFormat** *(string) --* Indicates whether the output manifest should
            use floating point or integer values for segment duration.

            - **MinSegmentLength** *(integer) --* When set, minimumSegmentLength is enforced by
            looking ahead and back within the specified range for a nearby avail and extending the
            segment size if needed.

            - **Mode** *(string) --* If "vod", all segments are indexed and kept permanently in the
            destination and manifest. If "live", only the number segments specified in keepSegments
            and indexNSegments are kept; newer segments replace older segments, which may prevent
            players from rewinding all the way to the beginning of the event. VOD mode uses HLS
            EXT-X-PLAYLIST-TYPE of EVENT while the channel is running, converting it to a "VOD" type
            manifest on completion of the stream.

            - **OutputSelection** *(string) --* MANIFESTSANDSEGMENTS: Generates manifests (master
            manifest, if applicable, and media manifests) for this output group. SEGMENTSONLY: Does
            not generate any manifests for this output group.

            - **ProgramDateTime** *(string) --* Includes or excludes EXT-X-PROGRAM-DATE-TIME tag in
            .m3u8 manifest files. The value is calculated as follows: either the program date and
            time are initialized using the input timecode source, or the time is initialized using
            the input timecode source and the date is initialized using the timestampOffset.

            - **ProgramDateTimePeriod** *(integer) --* Period of insertion of
            EXT-X-PROGRAM-DATE-TIME entry, in seconds.

            - **RedundantManifest** *(string) --* ENABLED: The master manifest (.m3u8 file) for each
            pipeline includes information about both pipelines: first its own media files, then the
            media files of the other pipeline. This feature allows playout device that support stale
            manifest detection to switch from one manifest to the other, when the current manifest
            seems to be stale. There are still two destinations and two master manifests, but both
            master manifests reference the media files from both pipelines. DISABLED: The master
            manifest (.m3u8 file) for each pipeline includes information about its own pipeline
            only. For an HLS output group with MediaPackage as the destination, the DISABLED
            behavior is always followed. MediaPackage regenerates the manifests it serves to players
            so a redundant manifest from MediaLive is irrelevant.

            - **SegmentLength** *(integer) --* Length of MPEG-2 Transport Stream segments to create
            (in seconds). Note that segments will end on the next keyframe after this number of
            seconds, so actual segment length may be longer.

            - **SegmentationMode** *(string) --* useInputSegmentation has been deprecated. The
            configured segment size is always used.

            - **SegmentsPerSubdirectory** *(integer) --* Number of segments to write to a
            subdirectory before starting a new one. directoryStructure must be subdirectoryPerStream
            for this setting to have an effect.

            - **StreamInfResolution** *(string) --* Include or exclude RESOLUTION attribute for
            video in EXT-X-STREAM-INF tag of variant manifest.

            - **TimedMetadataId3Frame** *(string) --* Indicates ID3 frame that has the timecode.

            - **TimedMetadataId3Period** *(integer) --* Timed Metadata interval in seconds.

            - **TimestampDeltaMilliseconds** *(integer) --* Provides an extra millisecond delta
            offset to fine tune the timestamps.

            - **TsFileMode** *(string) --* SEGMENTEDFILES: Emit the program as segments - multiple
            .ts media files. SINGLEFILE: Applies only if Mode field is VOD. Emit the program as a
            single .ts media file. The media manifest includes #EXT-X-BYTERANGE tags to index
            segments for playback. A typical use for this value is when sending the output to AWS
            Elemental MediaConvert, which can accept only a single media file. Playback while the
            channel is running is not guaranteed due to HTTP server caching.

          - **MediaPackageGroupSettings** *(dict) --* Media Package Group Settings

            - **Destination** *(dict) --* MediaPackage channel destination.

              - **DestinationRefId** *(string) --* Placeholder documentation for __string

          - **MsSmoothGroupSettings** *(dict) --* Ms Smooth Group Settings

            - **AcquisitionPointId** *(string) --* The value of the "Acquisition Point Identity"
            element used in each message placed in the sparse track. Only enabled if sparseTrackType
            is not "none".

            - **AudioOnlyTimecodeControl** *(string) --* If set to passthrough for an audio-only MS
            Smooth output, the fragment absolute time will be set to the current timecode. This
            option does not write timecodes to the audio elementary stream.

            - **CertificateMode** *(string) --* If set to verifyAuthenticity, verify the https
            certificate chain to a trusted Certificate Authority (CA). This will cause https outputs
            to self-signed certificates to fail.

            - **ConnectionRetryInterval** *(integer) --* Number of seconds to wait before retrying
            connection to the IIS server if the connection is lost. Content will be cached during
            this time and the cache will be be delivered to the IIS server once the connection is
            re-established.

            - **Destination** *(dict) --* Smooth Streaming publish point on an IIS server. Elemental
            Live acts as a "Push" encoder to IIS.

              - **DestinationRefId** *(string) --* Placeholder documentation for __string

            - **EventId** *(string) --* MS Smooth event ID to be sent to the IIS server. Should only
            be specified if eventIdMode is set to useConfigured.

            - **EventIdMode** *(string) --* Specifies whether or not to send an event ID to the IIS
            server. If no event ID is sent and the same Live Event is used without changing the
            publishing point, clients might see cached video from the previous run. Options: -
            "useConfigured" - use the value provided in eventId - "useTimestamp" - generate and send
            an event ID based on the current timestamp - "noEventId" - do not send an event ID to
            the IIS server.

            - **EventStopBehavior** *(string) --* When set to sendEos, send EOS signal to IIS server
            when stopping the event

            - **FilecacheDuration** *(integer) --* Size in seconds of file cache for streaming
            outputs.

            - **FragmentLength** *(integer) --* Length of mp4 fragments to generate (in seconds).
            Fragment length must be compatible with GOP size and framerate.

            - **InputLossAction** *(string) --* Parameter that control output group behavior on
            input loss.

            - **NumRetries** *(integer) --* Number of retry attempts.

            - **RestartDelay** *(integer) --* Number of seconds before initiating a restart due to
            output failure, due to exhausting the numRetries on one segment, or exceeding
            filecacheDuration.

            - **SegmentationMode** *(string) --* useInputSegmentation has been deprecated. The
            configured segment size is always used.

            - **SendDelayMs** *(integer) --* Number of milliseconds to delay the output from the
            second pipeline.

            - **SparseTrackType** *(string) --* If set to scte35, use incoming SCTE-35 messages to
            generate a sparse track in this group of MS-Smooth outputs.

            - **StreamManifestBehavior** *(string) --* When set to send, send stream manifest so
            publishing point doesn't start until all streams start.

            - **TimestampOffset** *(string) --* Timestamp offset for the event. Only used if
            timestampOffsetMode is set to useConfiguredOffset.

            - **TimestampOffsetMode** *(string) --* Type of timestamp date offset to use. -
            useEventStartDate: Use the date the event was started as the offset -
            useConfiguredOffset: Use an explicitly configured date as the offset

          - **MultiplexGroupSettings** *(dict) --* Multiplex Group Settings

          - **RtmpGroupSettings** *(dict) --* Rtmp Group Settings

            - **AuthenticationScheme** *(string) --* Authentication scheme to use when connecting
            with CDN

            - **CacheFullBehavior** *(string) --* Controls behavior when content cache fills up. If
            remote origin server stalls the RTMP connection and does not accept content fast enough
            the 'Media Cache' will fill up. When the cache reaches the duration specified by
            cacheLength the cache will stop accepting new content. If set to disconnectImmediately,
            the RTMP output will force a disconnect. Clear the media cache, and reconnect after
            restartDelay seconds. If set to waitForServer, the RTMP output will wait up to 5 minutes
            to allow the origin server to begin accepting data again.

            - **CacheLength** *(integer) --* Cache length, in seconds, is used to calculate buffer
            size.

            - **CaptionData** *(string) --* Controls the types of data that passes to onCaptionInfo
            outputs. If set to 'all' then 608 and 708 carried DTVCC data will be passed. If set to
            'field1AndField2608' then DTVCC data will be stripped out, but 608 data from both fields
            will be passed. If set to 'field1608' then only the data carried in 608 from field 1
            video will be passed.

            - **InputLossAction** *(string) --* Controls the behavior of this RTMP group if input
            becomes unavailable. - emitOutput: Emit a slate until input returns. - pauseOutput: Stop
            transmitting data until input returns. This does not close the underlying RTMP
            connection.

            - **RestartDelay** *(integer) --* If a streaming output fails, number of seconds to wait
            until a restart is initiated. A value of 0 means never restart.

          - **UdpGroupSettings** *(dict) --* Udp Group Settings

            - **InputLossAction** *(string) --* Specifies behavior of last resort when input video
            is lost, and no more backup inputs are available. When dropTs is selected the entire
            transport stream will stop being emitted. When dropProgram is selected the program can
            be dropped from the transport stream (and replaced with null packets to meet the TS
            bitrate requirement). Or, when emitProgram is chosen the transport stream will continue
            to be produced normally with repeat frames, black frames, or slate frames substituted
            for the absent input video.

            - **TimedMetadataId3Frame** *(string) --* Indicates ID3 frame that has the timecode.

            - **TimedMetadataId3Period** *(integer) --* Timed Metadata interval in seconds.

        - **Outputs** *(list) --* Placeholder documentation for __listOfOutput

          - *(dict) --* Output settings. There can be multiple outputs within a group.

            - **AudioDescriptionNames** *(list) --* The names of the AudioDescriptions used as audio
            sources for this output.

              - *(string) --* Placeholder documentation for __string

            - **CaptionDescriptionNames** *(list) --* The names of the CaptionDescriptions used as
            caption sources for this output.

              - *(string) --* Placeholder documentation for __string

            - **OutputName** *(string) --* The name used to identify an output.

            - **OutputSettings** *(dict) --* Output type-specific settings.

              - **ArchiveOutputSettings** *(dict) --* Archive Output Settings

                - **ContainerSettings** *(dict) --* Settings specific to the container type of the
                file.

                  - **M2tsSettings** *(dict) --* M2ts Settings

                    - **AbsentInputAudioBehavior** *(string) --* When set to drop, output audio
                    streams will be removed from the program if the selected input audio stream is
                    removed from the input. This allows the output audio configuration to
                    dynamically change based on input configuration. If this is set to
                    encodeSilence, all output audio streams will output encoded silence when not
                    connected to an active input stream.

                    - **Arib** *(string) --* When set to enabled, uses ARIB-compliant field muxing
                    and removes video descriptor.

                    - **AribCaptionsPid** *(string) --* Packet Identifier (PID) for ARIB Captions in
                    the transport stream. Can be entered as a decimal or hexadecimal value. Valid
                    values are 32 (or 0x20)..8182 (or 0x1ff6).

                    - **AribCaptionsPidControl** *(string) --* If set to auto, pid number used for
                    ARIB Captions will be auto-selected from unused pids. If set to useConfigured,
                    ARIB Captions will be on the configured pid number.

                    - **AudioBufferModel** *(string) --* When set to dvb, uses DVB buffer model for
                    Dolby Digital audio. When set to atsc, the ATSC model is used.

                    - **AudioFramesPerPes** *(integer) --* The number of audio frames to insert for
                    each PES packet.

                    - **AudioPids** *(string) --* Packet Identifier (PID) of the elementary audio
                    stream(s) in the transport stream. Multiple values are accepted, and can be
                    entered in ranges and/or by comma separation. Can be entered as decimal or
                    hexadecimal values. Each PID specified must be in the range of 32 (or
                    0x20)..8182 (or 0x1ff6).

                    - **AudioStreamType** *(string) --* When set to atsc, uses stream type = 0x81
                    for AC3 and stream type =
                         0x87 for EAC3. When set to dvb, uses stream type =
                    0x06.

                    - **Bitrate** *(integer) --* The output bitrate of the transport stream in bits
                    per second. Setting to 0 lets the muxer automatically determine the appropriate
                    bitrate.

                    - **BufferModel** *(string) --* If set to multiplex, use multiplex buffer model
                    for accurate interleaving. Setting to bufferModel to none can lead to lower
                    latency, but low-memory devices may not be able to play back the stream without
                    interruptions.

                    - **CcDescriptor** *(string) --* When set to enabled, generates
                    captionServiceDescriptor in PMT.

                    - **DvbNitSettings** *(dict) --* Inserts DVB Network Information Table (NIT) at
                    the specified table repetition interval.

                      - **NetworkId** *(integer) --* The numeric value placed in the Network
                      Information Table (NIT).

                      - **NetworkName** *(string) --* The network name text placed in the
                      networkNameDescriptor inside the Network Information Table. Maximum length is
                      256 characters.

                      - **RepInterval** *(integer) --* The number of milliseconds between instances
                      of this table in the output transport stream.

                    - **DvbSdtSettings** *(dict) --* Inserts DVB Service Description Table (SDT) at
                    the specified table repetition interval.

                      - **OutputSdt** *(string) --* Selects method of inserting SDT information into
                      output stream. The sdtFollow setting copies SDT information from input stream
                      to output stream. The sdtFollowIfPresent setting copies SDT information from
                      input stream to output stream if SDT information is present in the input,
                      otherwise it will fall back on the user-defined values. The sdtManual setting
                      means user will enter the SDT information. The sdtNone setting means output
                      stream will not contain SDT information.

                      - **RepInterval** *(integer) --* The number of milliseconds between instances
                      of this table in the output transport stream.

                      - **ServiceName** *(string) --* The service name placed in the
                      serviceDescriptor in the Service Description Table. Maximum length is 256
                      characters.

                      - **ServiceProviderName** *(string) --* The service provider name placed in
                      the serviceDescriptor in the Service Description Table. Maximum length is 256
                      characters.

                    - **DvbSubPids** *(string) --* Packet Identifier (PID) for input source DVB
                    Subtitle data to this output. Multiple values are accepted, and can be entered
                    in ranges and/or by comma separation. Can be entered as decimal or hexadecimal
                    values. Each PID specified must be in the range of 32 (or 0x20)..8182 (or
                    0x1ff6).

                    - **DvbTdtSettings** *(dict) --* Inserts DVB Time and Date Table (TDT) at the
                    specified table repetition interval.

                      - **RepInterval** *(integer) --* The number of milliseconds between instances
                      of this table in the output transport stream.

                    - **DvbTeletextPid** *(string) --* Packet Identifier (PID) for input source DVB
                    Teletext data to this output. Can be entered as a decimal or hexadecimal value.
                    Valid values are 32 (or 0x20)..8182 (or 0x1ff6).

                    - **Ebif** *(string) --* If set to passthrough, passes any EBIF data from the
                    input source to this output.

                    - **EbpAudioInterval** *(string) --* When videoAndFixedIntervals is selected,
                    audio EBP markers will be added to partitions 3 and 4. The interval between
                    these additional markers will be fixed, and will be slightly shorter than the
                    video EBP marker interval. Only available when EBP Cablelabs segmentation
                    markers are selected. Partitions 1 and 2 will always follow the video interval.

                    - **EbpLookaheadMs** *(integer) --* When set, enforces that Encoder Boundary
                    Points do not come within the specified time interval of each other by looking
                    ahead at input video. If another EBP is going to come in within the specified
                    time interval, the current EBP is not emitted, and the segment is "stretched" to
                    the next marker. The lookahead value does not add latency to the system. The
                    Live Event must be configured elsewhere to create sufficient latency to make the
                    lookahead accurate.

                    - **EbpPlacement** *(string) --* Controls placement of EBP on Audio PIDs. If set
                    to videoAndAudioPids, EBP markers will be placed on the video PID and all audio
                    PIDs. If set to videoPid, EBP markers will be placed on only the video PID.

                    - **EcmPid** *(string) --* This field is unused and deprecated.

                    - **EsRateInPes** *(string) --* Include or exclude the ES Rate field in the PES
                    header.

                    - **EtvPlatformPid** *(string) --* Packet Identifier (PID) for input source ETV
                    Platform data to this output. Can be entered as a decimal or hexadecimal value.
                    Valid values are 32 (or 0x20)..8182 (or 0x1ff6).

                    - **EtvSignalPid** *(string) --* Packet Identifier (PID) for input source ETV
                    Signal data to this output. Can be entered as a decimal or hexadecimal value.
                    Valid values are 32 (or 0x20)..8182 (or 0x1ff6).

                    - **FragmentTime** *(float) --* The length in seconds of each fragment. Only
                    used with EBP markers.

                    - **Klv** *(string) --* If set to passthrough, passes any KLV data from the
                    input source to this output.

                    - **KlvDataPids** *(string) --* Packet Identifier (PID) for input source KLV
                    data to this output. Multiple values are accepted, and can be entered in ranges
                    and/or by comma separation. Can be entered as decimal or hexadecimal values.
                    Each PID specified must be in the range of 32 (or 0x20)..8182 (or 0x1ff6).

                    - **NielsenId3Behavior** *(string) --* If set to passthrough, Nielsen inaudible
                    tones for media tracking will be detected in the input audio and an equivalent
                    ID3 tag will be inserted in the output.

                    - **NullPacketBitrate** *(float) --* Value in bits per second of extra null
                    packets to insert into the transport stream. This can be used if a downstream
                    encryption system requires periodic null packets.

                    - **PatInterval** *(integer) --* The number of milliseconds between instances of
                    this table in the output transport stream. Valid values are 0, 10..1000.

                    - **PcrControl** *(string) --* When set to pcrEveryPesPacket, a Program Clock
                    Reference value is inserted for every Packetized Elementary Stream (PES) header.
                    This parameter is effective only when the PCR PID is the same as the video or
                    audio elementary stream.

                    - **PcrPeriod** *(integer) --* Maximum time in milliseconds between Program
                    Clock Reference (PCRs) inserted into the transport stream.

                    - **PcrPid** *(string) --* Packet Identifier (PID) of the Program Clock
                    Reference (PCR) in the transport stream. When no value is given, the encoder
                    will assign the same value as the Video PID. Can be entered as a decimal or
                    hexadecimal value. Valid values are 32 (or 0x20)..8182 (or 0x1ff6).

                    - **PmtInterval** *(integer) --* The number of milliseconds between instances of
                    this table in the output transport stream. Valid values are 0, 10..1000.

                    - **PmtPid** *(string) --* Packet Identifier (PID) for the Program Map Table
                    (PMT) in the transport stream. Can be entered as a decimal or hexadecimal value.
                    Valid values are 32 (or 0x20)..8182 (or 0x1ff6).

                    - **ProgramNum** *(integer) --* The value of the program number field in the
                    Program Map Table.

                    - **RateMode** *(string) --* When vbr, does not insert null packets into
                    transport stream to fill specified bitrate. The bitrate setting acts as the
                    maximum bitrate when vbr is set.

                    - **Scte27Pids** *(string) --* Packet Identifier (PID) for input source SCTE-27
                    data to this output. Multiple values are accepted, and can be entered in ranges
                    and/or by comma separation. Can be entered as decimal or hexadecimal values.
                    Each PID specified must be in the range of 32 (or 0x20)..8182 (or 0x1ff6).

                    - **Scte35Control** *(string) --* Optionally pass SCTE-35 signals from the input
                    source to this output.

                    - **Scte35Pid** *(string) --* Packet Identifier (PID) of the SCTE-35 stream in
                    the transport stream. Can be entered as a decimal or hexadecimal value. Valid
                    values are 32 (or 0x20)..8182 (or 0x1ff6).

                    - **SegmentationMarkers** *(string) --* Inserts segmentation markers at each
                    segmentationTime period. raiSegstart sets the Random Access Indicator bit in the
                    adaptation field. raiAdapt sets the RAI bit and adds the current timecode in the
                    private data bytes. psiSegstart inserts PAT and PMT tables at the start of
                    segments. ebp adds Encoder Boundary Point information to the adaptation field as
                    per OpenCable specification OC-SP-EBP-I01-130118. ebpLegacy adds Encoder
                    Boundary Point information to the adaptation field using a legacy proprietary
                    format.

                    - **SegmentationStyle** *(string) --* The segmentation style parameter controls
                    how segmentation markers are inserted into the transport stream. With avails, it
                    is possible that segments may be truncated, which can influence where future
                    segmentation markers are inserted. When a segmentation style of "resetCadence"
                    is selected and a segment is truncated due to an avail, we will reset the
                    segmentation cadence. This means the subsequent segment will have a duration of
                    $segmentationTime seconds. When a segmentation style of "maintainCadence" is
                    selected and a segment is truncated due to an avail, we will not reset the
                    segmentation cadence. This means the subsequent segment will likely be truncated
                    as well. However, all segments after that will have a duration of
                    $segmentationTime seconds. Note that EBP lookahead is a slight exception to this
                    rule.

                    - **SegmentationTime** *(float) --* The length in seconds of each segment.
                    Required unless markers is set to None_.

                    - **TimedMetadataBehavior** *(string) --* When set to passthrough, timed
                    metadata will be passed through from input to output.

                    - **TimedMetadataPid** *(string) --* Packet Identifier (PID) of the timed
                    metadata stream in the transport stream. Can be entered as a decimal or
                    hexadecimal value. Valid values are 32 (or 0x20)..8182 (or 0x1ff6).

                    - **TransportStreamId** *(integer) --* The value of the transport stream ID
                    field in the Program Map Table.

                    - **VideoPid** *(string) --* Packet Identifier (PID) of the elementary video
                    stream in the transport stream. Can be entered as a decimal or hexadecimal
                    value. Valid values are 32 (or 0x20)..8182 (or 0x1ff6).

                - **Extension** *(string) --* Output file extension. If excluded, this will be
                auto-selected from the container type.

                - **NameModifier** *(string) --* String concatenated to the end of the destination
                filename. Required for multiple outputs of the same type.

              - **FrameCaptureOutputSettings** *(dict) --* Frame Capture Output Settings

                - **NameModifier** *(string) --* Required if the output group contains more than one
                output. This modifier forms part of the output file name.

              - **HlsOutputSettings** *(dict) --* Hls Output Settings

                - **HlsSettings** *(dict) --* Settings regarding the underlying stream. These
                settings are different for audio-only outputs.

                  - **AudioOnlyHlsSettings** *(dict) --* Audio Only Hls Settings

                    - **AudioGroupId** *(string) --* Specifies the group to which the audio
                    Rendition belongs.

                    - **AudioOnlyImage** *(dict) --* Optional. Specifies the .jpg or .png image to
                    use as the cover art for an audio-only output. We recommend a low bit-size file
                    because the image increases the output audio bandwidth. The image is attached to
                    the audio as an ID3 tag, frame type APIC, picture type 0x10, as per the "ID3 tag
                    version 2.4.0 - Native Frames" standard.

                      - **PasswordParam** *(string) --* key used to extract the password from EC2
                      Parameter store

                      - **Uri** *(string) --* Uniform Resource Identifier - This should be a path to
                      a file accessible to the Live system (eg. a http:// URI) depending on the
                      output type. For example, a RTMP destination should have a uri simliar to:
                      "rtmp://fmsserver/live".

                      - **Username** *(string) --* Documentation update needed

                    - **AudioTrackType** *(string) --* Four types of audio-only tracks are
                    supported: Audio-Only Variant Stream The client can play back this audio-only
                    stream instead of video in low-bandwidth scenarios. Represented as an
                    EXT-X-STREAM-INF in the HLS manifest. Alternate Audio, Auto Select, Default
                    Alternate rendition that the client should try to play back by default.
                    Represented as an EXT-X-MEDIA in the HLS manifest with DEFAULT=
                        YES,
                    AUTOSELECT=
                        YES Alternate Audio, Auto Select, Not Default Alternate rendition
                    that the client may try to play back by default. Represented as an EXT-X-MEDIA
                    in the HLS manifest with DEFAULT=NO, AUTOSELECT=
                        YES Alternate Audio, not Auto
                    Select Alternate rendition that the client will not try to play back by default.
                    Represented as an EXT-X-MEDIA in the HLS manifest with DEFAULT=
                        NO, AUTOSELECT=NO

                  - **StandardHlsSettings** *(dict) --* Standard Hls Settings

                    - **AudioRenditionSets** *(string) --* List all the audio groups that are used
                    with the video output stream. Input all the audio GROUP-IDs that are associated
                    to the video, separate by ','.

                    - **M3u8Settings** *(dict) --* Settings information for the .m3u8 container

                      - **AudioFramesPerPes** *(integer) --* The number of audio frames to insert
                      for each PES packet.

                      - **AudioPids** *(string) --* Packet Identifier (PID) of the elementary audio
                      stream(s) in the transport stream. Multiple values are accepted, and can be
                      entered in ranges and/or by comma separation. Can be entered as decimal or
                      hexadecimal values.

                      - **EcmPid** *(string) --* This parameter is unused and deprecated.

                      - **NielsenId3Behavior** *(string) --* If set to passthrough, Nielsen
                      inaudible tones for media tracking will be detected in the input audio and an
                      equivalent ID3 tag will be inserted in the output.

                      - **PatInterval** *(integer) --* The number of milliseconds between instances
                      of this table in the output transport stream. A value of \\"0\\" writes out
                      the PMT once per segment file.

                      - **PcrControl** *(string) --* When set to pcrEveryPesPacket, a Program Clock
                      Reference value is inserted for every Packetized Elementary Stream (PES)
                      header. This parameter is effective only when the PCR PID is the same as the
                      video or audio elementary stream.

                      - **PcrPeriod** *(integer) --* Maximum time in milliseconds between Program
                      Clock References (PCRs) inserted into the transport stream.

                      - **PcrPid** *(string) --* Packet Identifier (PID) of the Program Clock
                      Reference (PCR) in the transport stream. When no value is given, the encoder
                      will assign the same value as the Video PID. Can be entered as a decimal or
                      hexadecimal value.

                      - **PmtInterval** *(integer) --* The number of milliseconds between instances
                      of this table in the output transport stream. A value of \\"0\\" writes out
                      the PMT once per segment file.

                      - **PmtPid** *(string) --* Packet Identifier (PID) for the Program Map Table
                      (PMT) in the transport stream. Can be entered as a decimal or hexadecimal
                      value.

                      - **ProgramNum** *(integer) --* The value of the program number field in the
                      Program Map Table.

                      - **Scte35Behavior** *(string) --* If set to passthrough, passes any SCTE-35
                      signals from the input source to this output.

                      - **Scte35Pid** *(string) --* Packet Identifier (PID) of the SCTE-35 stream in
                      the transport stream. Can be entered as a decimal or hexadecimal value.

                      - **TimedMetadataBehavior** *(string) --* When set to passthrough, timed
                      metadata is passed through from input to output.

                      - **TimedMetadataPid** *(string) --* Packet Identifier (PID) of the timed
                      metadata stream in the transport stream. Can be entered as a decimal or
                      hexadecimal value. Valid values are 32 (or 0x20)..8182 (or 0x1ff6).

                      - **TransportStreamId** *(integer) --* The value of the transport stream ID
                      field in the Program Map Table.

                      - **VideoPid** *(string) --* Packet Identifier (PID) of the elementary video
                      stream in the transport stream. Can be entered as a decimal or hexadecimal
                      value.

                - **NameModifier** *(string) --* String concatenated to the end of the destination
                filename. Accepts \\"Format Identifiers\\":#formatIdentifierParameters.

                - **SegmentModifier** *(string) --* String concatenated to end of segment filenames.

              - **MediaPackageOutputSettings** *(dict) --* Media Package Output Settings

              - **MsSmoothOutputSettings** *(dict) --* Ms Smooth Output Settings

                - **H265PackagingType** *(string) --* Only applicable when this output is
                referencing an H.265 video description. Specifies whether MP4 segments should be
                packaged as HEV1 or HVC1.

                - **NameModifier** *(string) --* String concatenated to the end of the destination
                filename. Required for multiple outputs of the same type.

              - **MultiplexOutputSettings** *(dict) --* Multiplex Output Settings

                - **Destination** *(dict) --* Destination is a Multiplex.

                  - **DestinationRefId** *(string) --* Placeholder documentation for __string

              - **RtmpOutputSettings** *(dict) --* Rtmp Output Settings

                - **CertificateMode** *(string) --* If set to verifyAuthenticity, verify the tls
                certificate chain to a trusted Certificate Authority (CA). This will cause rtmps
                outputs with self-signed certificates to fail.

                - **ConnectionRetryInterval** *(integer) --* Number of seconds to wait before
                retrying a connection to the Flash Media server if the connection is lost.

                - **Destination** *(dict) --* The RTMP endpoint excluding the stream name (eg.
                rtmp://host/appname). For connection to Akamai, a username and password must be
                supplied. URI fields accept format identifiers.

                  - **DestinationRefId** *(string) --* Placeholder documentation for __string

                - **NumRetries** *(integer) --* Number of retry attempts.

              - **UdpOutputSettings** *(dict) --* Udp Output Settings

                - **BufferMsec** *(integer) --* UDP output buffering in milliseconds. Larger values
                increase latency through the transcoder but simultaneously assist the transcoder in
                maintaining a constant, low-jitter UDP/RTP output while accommodating clock
                recovery, input switching, input disruptions, picture reordering, etc.

                - **ContainerSettings** *(dict) --* Udp Container Settings

                  - **M2tsSettings** *(dict) --* M2ts Settings

                    - **AbsentInputAudioBehavior** *(string) --* When set to drop, output audio
                    streams will be removed from the program if the selected input audio stream is
                    removed from the input. This allows the output audio configuration to
                    dynamically change based on input configuration. If this is set to
                    encodeSilence, all output audio streams will output encoded silence when not
                    connected to an active input stream.

                    - **Arib** *(string) --* When set to enabled, uses ARIB-compliant field muxing
                    and removes video descriptor.

                    - **AribCaptionsPid** *(string) --* Packet Identifier (PID) for ARIB Captions in
                    the transport stream. Can be entered as a decimal or hexadecimal value. Valid
                    values are 32 (or 0x20)..8182 (or 0x1ff6).

                    - **AribCaptionsPidControl** *(string) --* If set to auto, pid number used for
                    ARIB Captions will be auto-selected from unused pids. If set to useConfigured,
                    ARIB Captions will be on the configured pid number.

                    - **AudioBufferModel** *(string) --* When set to dvb, uses DVB buffer model for
                    Dolby Digital audio. When set to atsc, the ATSC model is used.

                    - **AudioFramesPerPes** *(integer) --* The number of audio frames to insert for
                    each PES packet.

                    - **AudioPids** *(string) --* Packet Identifier (PID) of the elementary audio
                    stream(s) in the transport stream. Multiple values are accepted, and can be
                    entered in ranges and/or by comma separation. Can be entered as decimal or
                    hexadecimal values. Each PID specified must be in the range of 32 (or
                    0x20)..8182 (or 0x1ff6).

                    - **AudioStreamType** *(string) --* When set to atsc, uses stream type = 0x81
                    for AC3 and stream type =
                         0x87 for EAC3. When set to dvb, uses stream type =
                    0x06.

                    - **Bitrate** *(integer) --* The output bitrate of the transport stream in bits
                    per second. Setting to 0 lets the muxer automatically determine the appropriate
                    bitrate.

                    - **BufferModel** *(string) --* If set to multiplex, use multiplex buffer model
                    for accurate interleaving. Setting to bufferModel to none can lead to lower
                    latency, but low-memory devices may not be able to play back the stream without
                    interruptions.

                    - **CcDescriptor** *(string) --* When set to enabled, generates
                    captionServiceDescriptor in PMT.

                    - **DvbNitSettings** *(dict) --* Inserts DVB Network Information Table (NIT) at
                    the specified table repetition interval.

                      - **NetworkId** *(integer) --* The numeric value placed in the Network
                      Information Table (NIT).

                      - **NetworkName** *(string) --* The network name text placed in the
                      networkNameDescriptor inside the Network Information Table. Maximum length is
                      256 characters.

                      - **RepInterval** *(integer) --* The number of milliseconds between instances
                      of this table in the output transport stream.

                    - **DvbSdtSettings** *(dict) --* Inserts DVB Service Description Table (SDT) at
                    the specified table repetition interval.

                      - **OutputSdt** *(string) --* Selects method of inserting SDT information into
                      output stream. The sdtFollow setting copies SDT information from input stream
                      to output stream. The sdtFollowIfPresent setting copies SDT information from
                      input stream to output stream if SDT information is present in the input,
                      otherwise it will fall back on the user-defined values. The sdtManual setting
                      means user will enter the SDT information. The sdtNone setting means output
                      stream will not contain SDT information.

                      - **RepInterval** *(integer) --* The number of milliseconds between instances
                      of this table in the output transport stream.

                      - **ServiceName** *(string) --* The service name placed in the
                      serviceDescriptor in the Service Description Table. Maximum length is 256
                      characters.

                      - **ServiceProviderName** *(string) --* The service provider name placed in
                      the serviceDescriptor in the Service Description Table. Maximum length is 256
                      characters.

                    - **DvbSubPids** *(string) --* Packet Identifier (PID) for input source DVB
                    Subtitle data to this output. Multiple values are accepted, and can be entered
                    in ranges and/or by comma separation. Can be entered as decimal or hexadecimal
                    values. Each PID specified must be in the range of 32 (or 0x20)..8182 (or
                    0x1ff6).

                    - **DvbTdtSettings** *(dict) --* Inserts DVB Time and Date Table (TDT) at the
                    specified table repetition interval.

                      - **RepInterval** *(integer) --* The number of milliseconds between instances
                      of this table in the output transport stream.

                    - **DvbTeletextPid** *(string) --* Packet Identifier (PID) for input source DVB
                    Teletext data to this output. Can be entered as a decimal or hexadecimal value.
                    Valid values are 32 (or 0x20)..8182 (or 0x1ff6).

                    - **Ebif** *(string) --* If set to passthrough, passes any EBIF data from the
                    input source to this output.

                    - **EbpAudioInterval** *(string) --* When videoAndFixedIntervals is selected,
                    audio EBP markers will be added to partitions 3 and 4. The interval between
                    these additional markers will be fixed, and will be slightly shorter than the
                    video EBP marker interval. Only available when EBP Cablelabs segmentation
                    markers are selected. Partitions 1 and 2 will always follow the video interval.

                    - **EbpLookaheadMs** *(integer) --* When set, enforces that Encoder Boundary
                    Points do not come within the specified time interval of each other by looking
                    ahead at input video. If another EBP is going to come in within the specified
                    time interval, the current EBP is not emitted, and the segment is "stretched" to
                    the next marker. The lookahead value does not add latency to the system. The
                    Live Event must be configured elsewhere to create sufficient latency to make the
                    lookahead accurate.

                    - **EbpPlacement** *(string) --* Controls placement of EBP on Audio PIDs. If set
                    to videoAndAudioPids, EBP markers will be placed on the video PID and all audio
                    PIDs. If set to videoPid, EBP markers will be placed on only the video PID.

                    - **EcmPid** *(string) --* This field is unused and deprecated.

                    - **EsRateInPes** *(string) --* Include or exclude the ES Rate field in the PES
                    header.

                    - **EtvPlatformPid** *(string) --* Packet Identifier (PID) for input source ETV
                    Platform data to this output. Can be entered as a decimal or hexadecimal value.
                    Valid values are 32 (or 0x20)..8182 (or 0x1ff6).

                    - **EtvSignalPid** *(string) --* Packet Identifier (PID) for input source ETV
                    Signal data to this output. Can be entered as a decimal or hexadecimal value.
                    Valid values are 32 (or 0x20)..8182 (or 0x1ff6).

                    - **FragmentTime** *(float) --* The length in seconds of each fragment. Only
                    used with EBP markers.

                    - **Klv** *(string) --* If set to passthrough, passes any KLV data from the
                    input source to this output.

                    - **KlvDataPids** *(string) --* Packet Identifier (PID) for input source KLV
                    data to this output. Multiple values are accepted, and can be entered in ranges
                    and/or by comma separation. Can be entered as decimal or hexadecimal values.
                    Each PID specified must be in the range of 32 (or 0x20)..8182 (or 0x1ff6).

                    - **NielsenId3Behavior** *(string) --* If set to passthrough, Nielsen inaudible
                    tones for media tracking will be detected in the input audio and an equivalent
                    ID3 tag will be inserted in the output.

                    - **NullPacketBitrate** *(float) --* Value in bits per second of extra null
                    packets to insert into the transport stream. This can be used if a downstream
                    encryption system requires periodic null packets.

                    - **PatInterval** *(integer) --* The number of milliseconds between instances of
                    this table in the output transport stream. Valid values are 0, 10..1000.

                    - **PcrControl** *(string) --* When set to pcrEveryPesPacket, a Program Clock
                    Reference value is inserted for every Packetized Elementary Stream (PES) header.
                    This parameter is effective only when the PCR PID is the same as the video or
                    audio elementary stream.

                    - **PcrPeriod** *(integer) --* Maximum time in milliseconds between Program
                    Clock Reference (PCRs) inserted into the transport stream.

                    - **PcrPid** *(string) --* Packet Identifier (PID) of the Program Clock
                    Reference (PCR) in the transport stream. When no value is given, the encoder
                    will assign the same value as the Video PID. Can be entered as a decimal or
                    hexadecimal value. Valid values are 32 (or 0x20)..8182 (or 0x1ff6).

                    - **PmtInterval** *(integer) --* The number of milliseconds between instances of
                    this table in the output transport stream. Valid values are 0, 10..1000.

                    - **PmtPid** *(string) --* Packet Identifier (PID) for the Program Map Table
                    (PMT) in the transport stream. Can be entered as a decimal or hexadecimal value.
                    Valid values are 32 (or 0x20)..8182 (or 0x1ff6).

                    - **ProgramNum** *(integer) --* The value of the program number field in the
                    Program Map Table.

                    - **RateMode** *(string) --* When vbr, does not insert null packets into
                    transport stream to fill specified bitrate. The bitrate setting acts as the
                    maximum bitrate when vbr is set.

                    - **Scte27Pids** *(string) --* Packet Identifier (PID) for input source SCTE-27
                    data to this output. Multiple values are accepted, and can be entered in ranges
                    and/or by comma separation. Can be entered as decimal or hexadecimal values.
                    Each PID specified must be in the range of 32 (or 0x20)..8182 (or 0x1ff6).

                    - **Scte35Control** *(string) --* Optionally pass SCTE-35 signals from the input
                    source to this output.

                    - **Scte35Pid** *(string) --* Packet Identifier (PID) of the SCTE-35 stream in
                    the transport stream. Can be entered as a decimal or hexadecimal value. Valid
                    values are 32 (or 0x20)..8182 (or 0x1ff6).

                    - **SegmentationMarkers** *(string) --* Inserts segmentation markers at each
                    segmentationTime period. raiSegstart sets the Random Access Indicator bit in the
                    adaptation field. raiAdapt sets the RAI bit and adds the current timecode in the
                    private data bytes. psiSegstart inserts PAT and PMT tables at the start of
                    segments. ebp adds Encoder Boundary Point information to the adaptation field as
                    per OpenCable specification OC-SP-EBP-I01-130118. ebpLegacy adds Encoder
                    Boundary Point information to the adaptation field using a legacy proprietary
                    format.

                    - **SegmentationStyle** *(string) --* The segmentation style parameter controls
                    how segmentation markers are inserted into the transport stream. With avails, it
                    is possible that segments may be truncated, which can influence where future
                    segmentation markers are inserted. When a segmentation style of "resetCadence"
                    is selected and a segment is truncated due to an avail, we will reset the
                    segmentation cadence. This means the subsequent segment will have a duration of
                    $segmentationTime seconds. When a segmentation style of "maintainCadence" is
                    selected and a segment is truncated due to an avail, we will not reset the
                    segmentation cadence. This means the subsequent segment will likely be truncated
                    as well. However, all segments after that will have a duration of
                    $segmentationTime seconds. Note that EBP lookahead is a slight exception to this
                    rule.

                    - **SegmentationTime** *(float) --* The length in seconds of each segment.
                    Required unless markers is set to None_.

                    - **TimedMetadataBehavior** *(string) --* When set to passthrough, timed
                    metadata will be passed through from input to output.

                    - **TimedMetadataPid** *(string) --* Packet Identifier (PID) of the timed
                    metadata stream in the transport stream. Can be entered as a decimal or
                    hexadecimal value. Valid values are 32 (or 0x20)..8182 (or 0x1ff6).

                    - **TransportStreamId** *(integer) --* The value of the transport stream ID
                    field in the Program Map Table.

                    - **VideoPid** *(string) --* Packet Identifier (PID) of the elementary video
                    stream in the transport stream. Can be entered as a decimal or hexadecimal
                    value. Valid values are 32 (or 0x20)..8182 (or 0x1ff6).

                - **Destination** *(dict) --* Destination address and port number for RTP or UDP
                packets. Can be unicast or multicast RTP or UDP (eg. rtp://239.10.10.10:5001 or
                udp://10.100.100.100:5002).

                  - **DestinationRefId** *(string) --* Placeholder documentation for __string

                - **FecOutputSettings** *(dict) --* Settings for enabling and adjusting Forward
                Error Correction on UDP outputs.

                  - **ColumnDepth** *(integer) --* Parameter D from SMPTE 2022-1. The height of the
                  FEC protection matrix. The number of transport stream packets per column error
                  correction packet. Must be between 4 and 20, inclusive.

                  - **IncludeFec** *(string) --* Enables column only or column and row based FEC

                  - **RowLength** *(integer) --* Parameter L from SMPTE 2022-1. The width of the FEC
                  protection matrix. Must be between 1 and 20, inclusive. If only Column FEC is
                  used, then larger values increase robustness. If Row FEC is used, then this is the
                  number of transport stream packets per row error correction packet, and the value
                  must be between 4 and 20, inclusive, if includeFec is columnAndRow. If includeFec
                  is column, this value must be 1 to 20, inclusive.

            - **VideoDescriptionName** *(string) --* The name of the VideoDescription used as the
            source for this output.

    - **TimecodeConfig** *(dict) --* Contains settings used to acquire and adjust timecode
    information from inputs.

      - **Source** *(string) --* Identifies the source for the timecode that will be associated with
      the events outputs. -Embedded (embedded): Initialize the output timecode with timecode from
      the the source. If no embedded timecode is detected in the source, the system falls back to
      using "Start at 0" (zerobased). -System Clock (systemclock): Use the UTC time. -Start at 0
      (zerobased): The time of the first frame of the event will be 00:00:00:00.

      - **SyncThreshold** *(integer) --* Threshold in frames beyond which output timecode is
      resynchronized to the input timecode. Discrepancies below this threshold are permitted to
      avoid unnecessary discontinuities in the output timecode. No timecode sync when this is not
      specified.

    - **VideoDescriptions** *(list) --* Placeholder documentation for __listOfVideoDescription

      - *(dict) --* Video settings for this stream.

        - **CodecSettings** *(dict) --* Video codec settings.

          - **FrameCaptureSettings** *(dict) --* Frame Capture Settings

            - **CaptureInterval** *(integer) --* The frequency at which to capture frames for
            inclusion in the output. May be specified in either seconds or milliseconds, as
            specified by captureIntervalUnits.

          - **H264Settings** *(dict) --* H264 Settings

            - **AdaptiveQuantization** *(string) --* Adaptive quantization. Allows intra-frame
            quantizers to vary to improve visual quality.

            - **AfdSignaling** *(string) --* Indicates that AFD values will be written into the
            output stream. If afdSignaling is "auto", the system will try to preserve the input AFD
            value (in cases where multiple AFD values are valid). If set to "fixed", the AFD value
            will be the value configured in the fixedAfd parameter.

            - **Bitrate** *(integer) --* Average bitrate in bits/second. Required when the rate
            control mode is VBR or CBR. Not used for QVBR. In an MS Smooth output group, each output
            must have a unique value when its bitrate is rounded down to the nearest multiple of
            1000.

            - **BufFillPct** *(integer) --* Percentage of the buffer that should initially be filled
            (HRD buffer model).

            - **BufSize** *(integer) --* Size of buffer (HRD buffer model) in bits.

            - **ColorMetadata** *(string) --* Includes colorspace metadata in the output.

            - **ColorSpaceSettings** *(dict) --* Color Space settings

              - **ColorSpacePassthroughSettings** *(dict) --* Passthrough applies no color space
              conversion to the output

              - **Rec601Settings** *(dict) --* Rec601 Settings

              - **Rec709Settings** *(dict) --* Rec709 Settings

            - **EntropyEncoding** *(string) --* Entropy encoding mode. Use cabac (must be in Main or
            High profile) or cavlc.

            - **FixedAfd** *(string) --* Four bit AFD value to write on all frames of video in the
            output stream. Only valid when afdSignaling is set to 'Fixed'.

            - **FlickerAq** *(string) --* If set to enabled, adjust quantization within each frame
            to reduce flicker or 'pop' on I-frames.

            - **FramerateControl** *(string) --* This field indicates how the output video frame
            rate is specified. If "specified" is selected then the output video frame rate is
            determined by framerateNumerator and framerateDenominator, else if
            "initializeFromSource" is selected then the output video frame rate will be set equal to
            the input video frame rate of the first input.

            - **FramerateDenominator** *(integer) --* Framerate denominator.

            - **FramerateNumerator** *(integer) --* Framerate numerator - framerate is a fraction,
            e.g. 24000 / 1001 = 23.976 fps.

            - **GopBReference** *(string) --* Documentation update needed

            - **GopClosedCadence** *(integer) --* Frequency of closed GOPs. In streaming
            applications, it is recommended that this be set to 1 so a decoder joining mid-stream
            will receive an IDR frame as quickly as possible. Setting this value to 0 will break
            output segmenting.

            - **GopNumBFrames** *(integer) --* Number of B-frames between reference frames.

            - **GopSize** *(float) --* GOP size (keyframe interval) in units of either frames or
            seconds per gopSizeUnits. If gopSizeUnits is frames, gopSize must be an integer and must
            be greater than or equal to 1. If gopSizeUnits is seconds, gopSize must be greater than
            0, but need not be an integer.

            - **GopSizeUnits** *(string) --* Indicates if the gopSize is specified in frames or
            seconds. If seconds the system will convert the gopSize into a frame count at run time.

            - **Level** *(string) --* H.264 Level.

            - **LookAheadRateControl** *(string) --* Amount of lookahead. A value of low can
            decrease latency and memory usage, while high can produce better quality for certain
            content.

            - **MaxBitrate** *(integer) --* For QVBR: See the tooltip for Quality level For VBR: Set
            the maximum bitrate in order to accommodate expected spikes in the complexity of the
            video.

            - **MinIInterval** *(integer) --* Only meaningful if sceneChangeDetect is set to
            enabled. Defaults to 5 if multiplex rate control is used. Enforces separation between
            repeated (cadence) I-frames and I-frames inserted by Scene Change Detection. If a scene
            change I-frame is within I-interval frames of a cadence I-frame, the GOP is shrunk
            and/or stretched to the scene change I-frame. GOP stretch requires enabling lookahead as
            well as setting I-interval. The normal cadence resumes for the next GOP. Note: Maximum
            GOP stretch = GOP size + Min-I-interval - 1

            - **NumRefFrames** *(integer) --* Number of reference frames to use. The encoder may use
            more than requested if using B-frames and/or interlaced encoding.

            - **ParControl** *(string) --* This field indicates how the output pixel aspect ratio is
            specified. If "specified" is selected then the output video pixel aspect ratio is
            determined by parNumerator and parDenominator, else if "initializeFromSource" is
            selected then the output pixsel aspect ratio will be set equal to the input video pixel
            aspect ratio of the first input.

            - **ParDenominator** *(integer) --* Pixel Aspect Ratio denominator.

            - **ParNumerator** *(integer) --* Pixel Aspect Ratio numerator.

            - **Profile** *(string) --* H.264 Profile.

            - **QvbrQualityLevel** *(integer) --* Controls the target quality for the video encode.
            Applies only when the rate control mode is QVBR. Set values for the QVBR quality level
            field and Max bitrate field that suit your most important viewing devices. Recommended
            values are: - Primary screen: Quality level: 8 to 10. Max bitrate: 4M - PC or tablet:
            Quality level: 7. Max bitrate: 1.5M to 3M - Smartphone: Quality level: 6. Max bitrate:
            1M to 1.5M

            - **RateControlMode** *(string) --* Rate control mode. QVBR: Quality will match the
            specified quality level except when it is constrained by the maximum bitrate.
            Recommended if you or your viewers pay for bandwidth. VBR: Quality and bitrate vary,
            depending on the video complexity. Recommended instead of QVBR if you want to maintain a
            specific average bitrate over the duration of the channel. CBR: Quality varies,
            depending on the video complexity. Recommended only if you distribute your assets to
            devices that cannot handle variable bitrates.

            - **ScanType** *(string) --* Sets the scan type of the output to progressive or
            top-field-first interlaced.

            - **SceneChangeDetect** *(string) --* Scene change detection. - On: inserts I-frames
            when scene change is detected. - Off: does not force an I-frame when scene change is
            detected.

            - **Slices** *(integer) --* Number of slices per picture. Must be less than or equal to
            the number of macroblock rows for progressive pictures, and less than or equal to half
            the number of macroblock rows for interlaced pictures. This field is optional; when no
            value is specified the encoder will choose the number of slices based on encode
            resolution.

            - **Softness** *(integer) --* Softness. Selects quantizer matrix, larger values reduce
            high-frequency content in the encoded image.

            - **SpatialAq** *(string) --* If set to enabled, adjust quantization within each frame
            based on spatial variation of content complexity.

            - **SubgopLength** *(string) --* If set to fixed, use gopNumBFrames B-frames per
            sub-GOP. If set to dynamic, optimize the number of B-frames used for each sub-GOP to
            improve visual quality.

            - **Syntax** *(string) --* Produces a bitstream compliant with SMPTE RP-2027.

            - **TemporalAq** *(string) --* If set to enabled, adjust quantization within each frame
            based on temporal variation of content complexity.

            - **TimecodeInsertion** *(string) --* Determines how timecodes should be inserted into
            the video elementary stream. - 'disabled': Do not include timecodes - 'picTimingSei':
            Pass through picture timing SEI messages from the source specified in Timecode Config

          - **H265Settings** *(dict) --* H265 Settings

            - **AdaptiveQuantization** *(string) --* Adaptive quantization. Allows intra-frame
            quantizers to vary to improve visual quality.

            - **AfdSignaling** *(string) --* Indicates that AFD values will be written into the
            output stream. If afdSignaling is "auto", the system will try to preserve the input AFD
            value (in cases where multiple AFD values are valid). If set to "fixed", the AFD value
            will be the value configured in the fixedAfd parameter.

            - **AlternativeTransferFunction** *(string) --* Whether or not EML should insert an
            Alternative Transfer Function SEI message to support backwards compatibility with
            non-HDR decoders and displays.

            - **Bitrate** *(integer) --* Average bitrate in bits/second. Required when the rate
            control mode is VBR or CBR. Not used for QVBR. In an MS Smooth output group, each output
            must have a unique value when its bitrate is rounded down to the nearest multiple of
            1000.

            - **BufSize** *(integer) --* Size of buffer (HRD buffer model) in bits.

            - **ColorMetadata** *(string) --* Includes colorspace metadata in the output.

            - **ColorSpaceSettings** *(dict) --* Color Space settings

              - **ColorSpacePassthroughSettings** *(dict) --* Passthrough applies no color space
              conversion to the output

              - **Hdr10Settings** *(dict) --* Hdr10 Settings

                - **MaxCll** *(integer) --* Maximum Content Light Level An integer metadata value
                defining the maximum light level, in nits, of any single pixel within an encoded HDR
                video stream or file.

                - **MaxFall** *(integer) --* Maximum Frame Average Light Level An integer metadata
                value defining the maximum average light level, in nits, for any single frame within
                an encoded HDR video stream or file.

              - **Rec601Settings** *(dict) --* Rec601 Settings

              - **Rec709Settings** *(dict) --* Rec709 Settings

            - **FixedAfd** *(string) --* Four bit AFD value to write on all frames of video in the
            output stream. Only valid when afdSignaling is set to 'Fixed'.

            - **FlickerAq** *(string) --* If set to enabled, adjust quantization within each frame
            to reduce flicker or 'pop' on I-frames.

            - **FramerateDenominator** *(integer) --* Framerate denominator.

            - **FramerateNumerator** *(integer) --* Framerate numerator - framerate is a fraction,
            e.g. 24000 / 1001 = 23.976 fps.

            - **GopClosedCadence** *(integer) --* Frequency of closed GOPs. In streaming
            applications, it is recommended that this be set to 1 so a decoder joining mid-stream
            will receive an IDR frame as quickly as possible. Setting this value to 0 will break
            output segmenting.

            - **GopSize** *(float) --* GOP size (keyframe interval) in units of either frames or
            seconds per gopSizeUnits. If gopSizeUnits is frames, gopSize must be an integer and must
            be greater than or equal to 1. If gopSizeUnits is seconds, gopSize must be greater than
            0, but need not be an integer.

            - **GopSizeUnits** *(string) --* Indicates if the gopSize is specified in frames or
            seconds. If seconds the system will convert the gopSize into a frame count at run time.

            - **Level** *(string) --* H.265 Level.

            - **LookAheadRateControl** *(string) --* Amount of lookahead. A value of low can
            decrease latency and memory usage, while high can produce better quality for certain
            content.

            - **MaxBitrate** *(integer) --* For QVBR: See the tooltip for Quality level

            - **MinIInterval** *(integer) --* Only meaningful if sceneChangeDetect is set to
            enabled. Defaults to 5 if multiplex rate control is used. Enforces separation between
            repeated (cadence) I-frames and I-frames inserted by Scene Change Detection. If a scene
            change I-frame is within I-interval frames of a cadence I-frame, the GOP is shrunk
            and/or stretched to the scene change I-frame. GOP stretch requires enabling lookahead as
            well as setting I-interval. The normal cadence resumes for the next GOP. Note: Maximum
            GOP stretch = GOP size + Min-I-interval - 1

            - **ParDenominator** *(integer) --* Pixel Aspect Ratio denominator.

            - **ParNumerator** *(integer) --* Pixel Aspect Ratio numerator.

            - **Profile** *(string) --* H.265 Profile.

            - **QvbrQualityLevel** *(integer) --* Controls the target quality for the video encode.
            Applies only when the rate control mode is QVBR. Set values for the QVBR quality level
            field and Max bitrate field that suit your most important viewing devices. Recommended
            values are: - Primary screen: Quality level: 8 to 10. Max bitrate: 4M - PC or tablet:
            Quality level: 7. Max bitrate: 1.5M to 3M - Smartphone: Quality level: 6. Max bitrate:
            1M to 1.5M

            - **RateControlMode** *(string) --* Rate control mode. QVBR: Quality will match the
            specified quality level except when it is constrained by the maximum bitrate.
            Recommended if you or your viewers pay for bandwidth. CBR: Quality varies, depending on
            the video complexity. Recommended only if you distribute your assets to devices that
            cannot handle variable bitrates.

            - **ScanType** *(string) --* Sets the scan type of the output to progressive or
            top-field-first interlaced.

            - **SceneChangeDetect** *(string) --* Scene change detection.

            - **Slices** *(integer) --* Number of slices per picture. Must be less than or equal to
            the number of macroblock rows for progressive pictures, and less than or equal to half
            the number of macroblock rows for interlaced pictures. This field is optional; when no
            value is specified the encoder will choose the number of slices based on encode
            resolution.

            - **Tier** *(string) --* H.265 Tier.

            - **TimecodeInsertion** *(string) --* Determines how timecodes should be inserted into
            the video elementary stream. - 'disabled': Do not include timecodes - 'picTimingSei':
            Pass through picture timing SEI messages from the source specified in Timecode Config

        - **Height** *(integer) --* Output video height, in pixels. Must be an even number. For most
        codecs, you can leave this field and width blank in order to use the height and width
        (resolution) from the source. Note, however, that leaving blank is not recommended. For the
        Frame Capture codec, height and width are required.

        - **Name** *(string) --* The name of this VideoDescription. Outputs will use this name to
        uniquely identify this Description. Description names should be unique within this Live
        Event.

        - **RespondToAfd** *(string) --* Indicates how to respond to the AFD values in the input
        stream. RESPOND causes input video to be clipped, depending on the AFD value, input display
        aspect ratio, and output display aspect ratio, and (except for FRAMECAPTURE codec) includes
        the values in the output. PASSTHROUGH (does not apply to FRAMECAPTURE codec) ignores the AFD
        values and includes the values in the output, so input video is not clipped. NONE ignores
        the AFD values and does not include the values through to the output, so input video is not
        clipped.

        - **ScalingBehavior** *(string) --* STRETCHTOOUTPUT configures the output position to
        stretch the video to the specified output resolution (height and width). This option will
        override any position value. DEFAULT may insert black boxes (pillar boxes or letter boxes)
        around the video to provide the specified output resolution.

        - **Sharpness** *(integer) --* Changes the strength of the anti-alias filter used for
        scaling. 0 is the softest setting, 100 is the sharpest. A setting of 50 is recommended for
        most content.

        - **Width** *(integer) --* Output video width, in pixels. Must be an even number. For most
        codecs, you can leave this field and height blank in order to use the height and width
        (resolution) from the source. Note, however, that leaving blank is not recommended. For the
        Frame Capture codec, height and width are required.
    """


_ClientStopChannelResponseInputAttachmentsInputSettingsAudioSelectorsSelectorSettingsAudioLanguageSelectionTypeDef = TypedDict(
    "_ClientStopChannelResponseInputAttachmentsInputSettingsAudioSelectorsSelectorSettingsAudioLanguageSelectionTypeDef",
    {"LanguageCode": str, "LanguageSelectionPolicy": str},
    total=False,
)


class ClientStopChannelResponseInputAttachmentsInputSettingsAudioSelectorsSelectorSettingsAudioLanguageSelectionTypeDef(
    _ClientStopChannelResponseInputAttachmentsInputSettingsAudioSelectorsSelectorSettingsAudioLanguageSelectionTypeDef
):
    """
    Type definition for
    `ClientStopChannelResponseInputAttachmentsInputSettingsAudioSelectorsSelectorSettings`
    `AudioLanguageSelection`

    - **LanguageCode** *(string) --* Selects a specific three-letter language code from within an
    audio source.

    - **LanguageSelectionPolicy** *(string) --* When set to "strict", the transport stream demux
    strictly identifies audio streams by their language descriptor. If a PMT update occurs such that
    an audio stream matching the initially selected language is no longer present then mute will be
    encoded until the language returns. If "loose", then on a PMT update the demux will choose
    another audio stream in the program with the same stream type if it can't find one with the same
    language.
    """


_ClientStopChannelResponseInputAttachmentsInputSettingsAudioSelectorsSelectorSettingsAudioPidSelectionTypeDef = TypedDict(
    "_ClientStopChannelResponseInputAttachmentsInputSettingsAudioSelectorsSelectorSettingsAudioPidSelectionTypeDef",
    {"Pid": int},
    total=False,
)


class ClientStopChannelResponseInputAttachmentsInputSettingsAudioSelectorsSelectorSettingsAudioPidSelectionTypeDef(
    _ClientStopChannelResponseInputAttachmentsInputSettingsAudioSelectorsSelectorSettingsAudioPidSelectionTypeDef
):
    """
    Type definition for
    `ClientStopChannelResponseInputAttachmentsInputSettingsAudioSelectorsSelectorSettings`
    `AudioPidSelection`

    - **Pid** *(integer) --* Selects a specific PID from within a source.
    """


_ClientStopChannelResponseInputAttachmentsInputSettingsAudioSelectorsSelectorSettingsTypeDef = TypedDict(
    "_ClientStopChannelResponseInputAttachmentsInputSettingsAudioSelectorsSelectorSettingsTypeDef",
    {
        "AudioLanguageSelection": ClientStopChannelResponseInputAttachmentsInputSettingsAudioSelectorsSelectorSettingsAudioLanguageSelectionTypeDef,
        "AudioPidSelection": ClientStopChannelResponseInputAttachmentsInputSettingsAudioSelectorsSelectorSettingsAudioPidSelectionTypeDef,
    },
    total=False,
)


class ClientStopChannelResponseInputAttachmentsInputSettingsAudioSelectorsSelectorSettingsTypeDef(
    _ClientStopChannelResponseInputAttachmentsInputSettingsAudioSelectorsSelectorSettingsTypeDef
):
    """
    Type definition for `ClientStopChannelResponseInputAttachmentsInputSettingsAudioSelectors`
    `SelectorSettings`

    - **AudioLanguageSelection** *(dict) --* Audio Language Selection

      - **LanguageCode** *(string) --* Selects a specific three-letter language code from within an
      audio source.

      - **LanguageSelectionPolicy** *(string) --* When set to "strict", the transport stream demux
      strictly identifies audio streams by their language descriptor. If a PMT update occurs such
      that an audio stream matching the initially selected language is no longer present then mute
      will be encoded until the language returns. If "loose", then on a PMT update the demux will
      choose another audio stream in the program with the same stream type if it can't find one with
      the same language.

    - **AudioPidSelection** *(dict) --* Audio Pid Selection

      - **Pid** *(integer) --* Selects a specific PID from within a source.
    """


_ClientStopChannelResponseInputAttachmentsInputSettingsAudioSelectorsTypeDef = TypedDict(
    "_ClientStopChannelResponseInputAttachmentsInputSettingsAudioSelectorsTypeDef",
    {
        "Name": str,
        "SelectorSettings": ClientStopChannelResponseInputAttachmentsInputSettingsAudioSelectorsSelectorSettingsTypeDef,
    },
    total=False,
)


class ClientStopChannelResponseInputAttachmentsInputSettingsAudioSelectorsTypeDef(
    _ClientStopChannelResponseInputAttachmentsInputSettingsAudioSelectorsTypeDef
):
    """
    Type definition for `ClientStopChannelResponseInputAttachmentsInputSettings` `AudioSelectors`

    - **Name** *(string) --* The name of this AudioSelector. AudioDescriptions will use this name to
    uniquely identify this Selector. Selector names should be unique per input.

    - **SelectorSettings** *(dict) --* The audio selector settings.

      - **AudioLanguageSelection** *(dict) --* Audio Language Selection

        - **LanguageCode** *(string) --* Selects a specific three-letter language code from within
        an audio source.

        - **LanguageSelectionPolicy** *(string) --* When set to "strict", the transport stream demux
        strictly identifies audio streams by their language descriptor. If a PMT update occurs such
        that an audio stream matching the initially selected language is no longer present then mute
        will be encoded until the language returns. If "loose", then on a PMT update the demux will
        choose another audio stream in the program with the same stream type if it can't find one
        with the same language.

      - **AudioPidSelection** *(dict) --* Audio Pid Selection

        - **Pid** *(integer) --* Selects a specific PID from within a source.
    """


_ClientStopChannelResponseInputAttachmentsInputSettingsCaptionSelectorsSelectorSettingsDvbSubSourceSettingsTypeDef = TypedDict(
    "_ClientStopChannelResponseInputAttachmentsInputSettingsCaptionSelectorsSelectorSettingsDvbSubSourceSettingsTypeDef",
    {"Pid": int},
    total=False,
)


class ClientStopChannelResponseInputAttachmentsInputSettingsCaptionSelectorsSelectorSettingsDvbSubSourceSettingsTypeDef(
    _ClientStopChannelResponseInputAttachmentsInputSettingsCaptionSelectorsSelectorSettingsDvbSubSourceSettingsTypeDef
):
    """
    Type definition for
    `ClientStopChannelResponseInputAttachmentsInputSettingsCaptionSelectorsSelectorSettings`
    `DvbSubSourceSettings`

    - **Pid** *(integer) --* When using DVB-Sub with Burn-In or SMPTE-TT, use this PID for the
    source content. Unused for DVB-Sub passthrough. All DVB-Sub content is passed through,
    regardless of selectors.
    """


_ClientStopChannelResponseInputAttachmentsInputSettingsCaptionSelectorsSelectorSettingsEmbeddedSourceSettingsTypeDef = TypedDict(
    "_ClientStopChannelResponseInputAttachmentsInputSettingsCaptionSelectorsSelectorSettingsEmbeddedSourceSettingsTypeDef",
    {
        "Convert608To708": str,
        "Scte20Detection": str,
        "Source608ChannelNumber": int,
        "Source608TrackNumber": int,
    },
    total=False,
)


class ClientStopChannelResponseInputAttachmentsInputSettingsCaptionSelectorsSelectorSettingsEmbeddedSourceSettingsTypeDef(
    _ClientStopChannelResponseInputAttachmentsInputSettingsCaptionSelectorsSelectorSettingsEmbeddedSourceSettingsTypeDef
):
    """
    Type definition for
    `ClientStopChannelResponseInputAttachmentsInputSettingsCaptionSelectorsSelectorSettings`
    `EmbeddedSourceSettings`

    - **Convert608To708** *(string) --* If upconvert, 608 data is both passed through via the "608
    compatibility bytes" fields of the 708 wrapper as well as translated into 708. 708 data present
    in the source content will be discarded.

    - **Scte20Detection** *(string) --* Set to "auto" to handle streams with intermittent and/or
    non-aligned SCTE-20 and Embedded captions.

    - **Source608ChannelNumber** *(integer) --* Specifies the 608/708 channel number within the
    video track from which to extract captions. Unused for passthrough.

    - **Source608TrackNumber** *(integer) --* This field is unused and deprecated.
    """


_ClientStopChannelResponseInputAttachmentsInputSettingsCaptionSelectorsSelectorSettingsScte20SourceSettingsTypeDef = TypedDict(
    "_ClientStopChannelResponseInputAttachmentsInputSettingsCaptionSelectorsSelectorSettingsScte20SourceSettingsTypeDef",
    {"Convert608To708": str, "Source608ChannelNumber": int},
    total=False,
)


class ClientStopChannelResponseInputAttachmentsInputSettingsCaptionSelectorsSelectorSettingsScte20SourceSettingsTypeDef(
    _ClientStopChannelResponseInputAttachmentsInputSettingsCaptionSelectorsSelectorSettingsScte20SourceSettingsTypeDef
):
    """
    Type definition for
    `ClientStopChannelResponseInputAttachmentsInputSettingsCaptionSelectorsSelectorSettings`
    `Scte20SourceSettings`

    - **Convert608To708** *(string) --* If upconvert, 608 data is both passed through via the "608
    compatibility bytes" fields of the 708 wrapper as well as translated into 708. 708 data present
    in the source content will be discarded.

    - **Source608ChannelNumber** *(integer) --* Specifies the 608/708 channel number within the
    video track from which to extract captions. Unused for passthrough.
    """


_ClientStopChannelResponseInputAttachmentsInputSettingsCaptionSelectorsSelectorSettingsScte27SourceSettingsTypeDef = TypedDict(
    "_ClientStopChannelResponseInputAttachmentsInputSettingsCaptionSelectorsSelectorSettingsScte27SourceSettingsTypeDef",
    {"Pid": int},
    total=False,
)


class ClientStopChannelResponseInputAttachmentsInputSettingsCaptionSelectorsSelectorSettingsScte27SourceSettingsTypeDef(
    _ClientStopChannelResponseInputAttachmentsInputSettingsCaptionSelectorsSelectorSettingsScte27SourceSettingsTypeDef
):
    """
    Type definition for
    `ClientStopChannelResponseInputAttachmentsInputSettingsCaptionSelectorsSelectorSettings`
    `Scte27SourceSettings`

    - **Pid** *(integer) --* The pid field is used in conjunction with the caption selector
    languageCode field as follows: - Specify PID and Language: Extracts captions from that PID; the
    language is "informational". - Specify PID and omit Language: Extracts the specified PID. - Omit
    PID and specify Language: Extracts the specified language, whichever PID that happens to be. -
    Omit PID and omit Language: Valid only if source is DVB-Sub that is being passed through; all
    languages will be passed through.
    """


_ClientStopChannelResponseInputAttachmentsInputSettingsCaptionSelectorsSelectorSettingsTeletextSourceSettingsTypeDef = TypedDict(
    "_ClientStopChannelResponseInputAttachmentsInputSettingsCaptionSelectorsSelectorSettingsTeletextSourceSettingsTypeDef",
    {"PageNumber": str},
    total=False,
)


class ClientStopChannelResponseInputAttachmentsInputSettingsCaptionSelectorsSelectorSettingsTeletextSourceSettingsTypeDef(
    _ClientStopChannelResponseInputAttachmentsInputSettingsCaptionSelectorsSelectorSettingsTeletextSourceSettingsTypeDef
):
    """
    Type definition for
    `ClientStopChannelResponseInputAttachmentsInputSettingsCaptionSelectorsSelectorSettings`
    `TeletextSourceSettings`

    - **PageNumber** *(string) --* Specifies the teletext page number within the data stream from
    which to extract captions. Range of 0x100 (256) to 0x8FF (2303). Unused for passthrough. Should
    be specified as a hexadecimal string with no "0x" prefix.
    """


_ClientStopChannelResponseInputAttachmentsInputSettingsCaptionSelectorsSelectorSettingsTypeDef = TypedDict(
    "_ClientStopChannelResponseInputAttachmentsInputSettingsCaptionSelectorsSelectorSettingsTypeDef",
    {
        "AribSourceSettings": Dict,
        "DvbSubSourceSettings": ClientStopChannelResponseInputAttachmentsInputSettingsCaptionSelectorsSelectorSettingsDvbSubSourceSettingsTypeDef,
        "EmbeddedSourceSettings": ClientStopChannelResponseInputAttachmentsInputSettingsCaptionSelectorsSelectorSettingsEmbeddedSourceSettingsTypeDef,
        "Scte20SourceSettings": ClientStopChannelResponseInputAttachmentsInputSettingsCaptionSelectorsSelectorSettingsScte20SourceSettingsTypeDef,
        "Scte27SourceSettings": ClientStopChannelResponseInputAttachmentsInputSettingsCaptionSelectorsSelectorSettingsScte27SourceSettingsTypeDef,
        "TeletextSourceSettings": ClientStopChannelResponseInputAttachmentsInputSettingsCaptionSelectorsSelectorSettingsTeletextSourceSettingsTypeDef,
    },
    total=False,
)


class ClientStopChannelResponseInputAttachmentsInputSettingsCaptionSelectorsSelectorSettingsTypeDef(
    _ClientStopChannelResponseInputAttachmentsInputSettingsCaptionSelectorsSelectorSettingsTypeDef
):
    """
    Type definition for `ClientStopChannelResponseInputAttachmentsInputSettingsCaptionSelectors`
    `SelectorSettings`

    - **AribSourceSettings** *(dict) --* Arib Source Settings

    - **DvbSubSourceSettings** *(dict) --* Dvb Sub Source Settings

      - **Pid** *(integer) --* When using DVB-Sub with Burn-In or SMPTE-TT, use this PID for the
      source content. Unused for DVB-Sub passthrough. All DVB-Sub content is passed through,
      regardless of selectors.

    - **EmbeddedSourceSettings** *(dict) --* Embedded Source Settings

      - **Convert608To708** *(string) --* If upconvert, 608 data is both passed through via the "608
      compatibility bytes" fields of the 708 wrapper as well as translated into 708. 708 data
      present in the source content will be discarded.

      - **Scte20Detection** *(string) --* Set to "auto" to handle streams with intermittent and/or
      non-aligned SCTE-20 and Embedded captions.

      - **Source608ChannelNumber** *(integer) --* Specifies the 608/708 channel number within the
      video track from which to extract captions. Unused for passthrough.

      - **Source608TrackNumber** *(integer) --* This field is unused and deprecated.

    - **Scte20SourceSettings** *(dict) --* Scte20 Source Settings

      - **Convert608To708** *(string) --* If upconvert, 608 data is both passed through via the "608
      compatibility bytes" fields of the 708 wrapper as well as translated into 708. 708 data
      present in the source content will be discarded.

      - **Source608ChannelNumber** *(integer) --* Specifies the 608/708 channel number within the
      video track from which to extract captions. Unused for passthrough.

    - **Scte27SourceSettings** *(dict) --* Scte27 Source Settings

      - **Pid** *(integer) --* The pid field is used in conjunction with the caption selector
      languageCode field as follows: - Specify PID and Language: Extracts captions from that PID;
      the language is "informational". - Specify PID and omit Language: Extracts the specified PID.
      - Omit PID and specify Language: Extracts the specified language, whichever PID that happens
      to be. - Omit PID and omit Language: Valid only if source is DVB-Sub that is being passed
      through; all languages will be passed through.

    - **TeletextSourceSettings** *(dict) --* Teletext Source Settings

      - **PageNumber** *(string) --* Specifies the teletext page number within the data stream from
      which to extract captions. Range of 0x100 (256) to 0x8FF (2303). Unused for passthrough.
      Should be specified as a hexadecimal string with no "0x" prefix.
    """


_ClientStopChannelResponseInputAttachmentsInputSettingsCaptionSelectorsTypeDef = TypedDict(
    "_ClientStopChannelResponseInputAttachmentsInputSettingsCaptionSelectorsTypeDef",
    {
        "LanguageCode": str,
        "Name": str,
        "SelectorSettings": ClientStopChannelResponseInputAttachmentsInputSettingsCaptionSelectorsSelectorSettingsTypeDef,
    },
    total=False,
)


class ClientStopChannelResponseInputAttachmentsInputSettingsCaptionSelectorsTypeDef(
    _ClientStopChannelResponseInputAttachmentsInputSettingsCaptionSelectorsTypeDef
):
    """
    Type definition for `ClientStopChannelResponseInputAttachmentsInputSettings` `CaptionSelectors`

    - **LanguageCode** *(string) --* When specified this field indicates the three letter language
    code of the caption track to extract from the source.

    - **Name** *(string) --* Name identifier for a caption selector. This name is used to associate
    this caption selector with one or more caption descriptions. Names must be unique within an
    event.

    - **SelectorSettings** *(dict) --* Caption selector settings.

      - **AribSourceSettings** *(dict) --* Arib Source Settings

      - **DvbSubSourceSettings** *(dict) --* Dvb Sub Source Settings

        - **Pid** *(integer) --* When using DVB-Sub with Burn-In or SMPTE-TT, use this PID for the
        source content. Unused for DVB-Sub passthrough. All DVB-Sub content is passed through,
        regardless of selectors.

      - **EmbeddedSourceSettings** *(dict) --* Embedded Source Settings

        - **Convert608To708** *(string) --* If upconvert, 608 data is both passed through via the
        "608 compatibility bytes" fields of the 708 wrapper as well as translated into 708. 708 data
        present in the source content will be discarded.

        - **Scte20Detection** *(string) --* Set to "auto" to handle streams with intermittent and/or
        non-aligned SCTE-20 and Embedded captions.

        - **Source608ChannelNumber** *(integer) --* Specifies the 608/708 channel number within the
        video track from which to extract captions. Unused for passthrough.

        - **Source608TrackNumber** *(integer) --* This field is unused and deprecated.

      - **Scte20SourceSettings** *(dict) --* Scte20 Source Settings

        - **Convert608To708** *(string) --* If upconvert, 608 data is both passed through via the
        "608 compatibility bytes" fields of the 708 wrapper as well as translated into 708. 708 data
        present in the source content will be discarded.

        - **Source608ChannelNumber** *(integer) --* Specifies the 608/708 channel number within the
        video track from which to extract captions. Unused for passthrough.

      - **Scte27SourceSettings** *(dict) --* Scte27 Source Settings

        - **Pid** *(integer) --* The pid field is used in conjunction with the caption selector
        languageCode field as follows: - Specify PID and Language: Extracts captions from that PID;
        the language is "informational". - Specify PID and omit Language: Extracts the specified
        PID. - Omit PID and specify Language: Extracts the specified language, whichever PID that
        happens to be. - Omit PID and omit Language: Valid only if source is DVB-Sub that is being
        passed through; all languages will be passed through.

      - **TeletextSourceSettings** *(dict) --* Teletext Source Settings

        - **PageNumber** *(string) --* Specifies the teletext page number within the data stream
        from which to extract captions. Range of 0x100 (256) to 0x8FF (2303). Unused for
        passthrough. Should be specified as a hexadecimal string with no "0x" prefix.
    """


_ClientStopChannelResponseInputAttachmentsInputSettingsNetworkInputSettingsHlsInputSettingsTypeDef = TypedDict(
    "_ClientStopChannelResponseInputAttachmentsInputSettingsNetworkInputSettingsHlsInputSettingsTypeDef",
    {"Bandwidth": int, "BufferSegments": int, "Retries": int, "RetryInterval": int},
    total=False,
)


class ClientStopChannelResponseInputAttachmentsInputSettingsNetworkInputSettingsHlsInputSettingsTypeDef(
    _ClientStopChannelResponseInputAttachmentsInputSettingsNetworkInputSettingsHlsInputSettingsTypeDef
):
    """
    Type definition for `ClientStopChannelResponseInputAttachmentsInputSettingsNetworkInputSettings`
    `HlsInputSettings`

    - **Bandwidth** *(integer) --* When specified the HLS stream with the m3u8 BANDWIDTH that most
    closely matches this value will be chosen, otherwise the highest bandwidth stream in the m3u8
    will be chosen. The bitrate is specified in bits per second, as in an HLS manifest.

    - **BufferSegments** *(integer) --* When specified, reading of the HLS input will begin this
    many buffer segments from the end (most recently written segment). When not specified, the HLS
    input will begin with the first segment specified in the m3u8.

    - **Retries** *(integer) --* The number of consecutive times that attempts to read a manifest or
    segment must fail before the input is considered unavailable.

    - **RetryInterval** *(integer) --* The number of seconds between retries when an attempt to read
    a manifest or segment fails.
    """


_ClientStopChannelResponseInputAttachmentsInputSettingsNetworkInputSettingsTypeDef = TypedDict(
    "_ClientStopChannelResponseInputAttachmentsInputSettingsNetworkInputSettingsTypeDef",
    {
        "HlsInputSettings": ClientStopChannelResponseInputAttachmentsInputSettingsNetworkInputSettingsHlsInputSettingsTypeDef,
        "ServerValidation": str,
    },
    total=False,
)


class ClientStopChannelResponseInputAttachmentsInputSettingsNetworkInputSettingsTypeDef(
    _ClientStopChannelResponseInputAttachmentsInputSettingsNetworkInputSettingsTypeDef
):
    """
    Type definition for `ClientStopChannelResponseInputAttachmentsInputSettings`
    `NetworkInputSettings`

    - **HlsInputSettings** *(dict) --* Specifies HLS input settings when the uri is for a HLS
    manifest.

      - **Bandwidth** *(integer) --* When specified the HLS stream with the m3u8 BANDWIDTH that most
      closely matches this value will be chosen, otherwise the highest bandwidth stream in the m3u8
      will be chosen. The bitrate is specified in bits per second, as in an HLS manifest.

      - **BufferSegments** *(integer) --* When specified, reading of the HLS input will begin this
      many buffer segments from the end (most recently written segment). When not specified, the HLS
      input will begin with the first segment specified in the m3u8.

      - **Retries** *(integer) --* The number of consecutive times that attempts to read a manifest
      or segment must fail before the input is considered unavailable.

      - **RetryInterval** *(integer) --* The number of seconds between retries when an attempt to
      read a manifest or segment fails.

    - **ServerValidation** *(string) --* Check HTTPS server certificates. When set to
    checkCryptographyOnly, cryptography in the certificate will be checked, but not the server's
    name. Certain subdomains (notably S3 buckets that use dots in the bucket name) do not strictly
    match the corresponding certificate's wildcard pattern and would otherwise cause the event to
    error. This setting is ignored for protocols that do not use https.
    """


_ClientStopChannelResponseInputAttachmentsInputSettingsVideoSelectorSelectorSettingsVideoSelectorPidTypeDef = TypedDict(
    "_ClientStopChannelResponseInputAttachmentsInputSettingsVideoSelectorSelectorSettingsVideoSelectorPidTypeDef",
    {"Pid": int},
    total=False,
)


class ClientStopChannelResponseInputAttachmentsInputSettingsVideoSelectorSelectorSettingsVideoSelectorPidTypeDef(
    _ClientStopChannelResponseInputAttachmentsInputSettingsVideoSelectorSelectorSettingsVideoSelectorPidTypeDef
):
    """
    Type definition for
    `ClientStopChannelResponseInputAttachmentsInputSettingsVideoSelectorSelectorSettings`
    `VideoSelectorPid`

    - **Pid** *(integer) --* Selects a specific PID from within a video source.
    """


_ClientStopChannelResponseInputAttachmentsInputSettingsVideoSelectorSelectorSettingsVideoSelectorProgramIdTypeDef = TypedDict(
    "_ClientStopChannelResponseInputAttachmentsInputSettingsVideoSelectorSelectorSettingsVideoSelectorProgramIdTypeDef",
    {"ProgramId": int},
    total=False,
)


class ClientStopChannelResponseInputAttachmentsInputSettingsVideoSelectorSelectorSettingsVideoSelectorProgramIdTypeDef(
    _ClientStopChannelResponseInputAttachmentsInputSettingsVideoSelectorSelectorSettingsVideoSelectorProgramIdTypeDef
):
    """
    Type definition for
    `ClientStopChannelResponseInputAttachmentsInputSettingsVideoSelectorSelectorSettings`
    `VideoSelectorProgramId`

    - **ProgramId** *(integer) --* Selects a specific program from within a multi-program transport
    stream. If the program doesn't exist, the first program within the transport stream will be
    selected by default.
    """


_ClientStopChannelResponseInputAttachmentsInputSettingsVideoSelectorSelectorSettingsTypeDef = TypedDict(
    "_ClientStopChannelResponseInputAttachmentsInputSettingsVideoSelectorSelectorSettingsTypeDef",
    {
        "VideoSelectorPid": ClientStopChannelResponseInputAttachmentsInputSettingsVideoSelectorSelectorSettingsVideoSelectorPidTypeDef,
        "VideoSelectorProgramId": ClientStopChannelResponseInputAttachmentsInputSettingsVideoSelectorSelectorSettingsVideoSelectorProgramIdTypeDef,
    },
    total=False,
)


class ClientStopChannelResponseInputAttachmentsInputSettingsVideoSelectorSelectorSettingsTypeDef(
    _ClientStopChannelResponseInputAttachmentsInputSettingsVideoSelectorSelectorSettingsTypeDef
):
    """
    Type definition for `ClientStopChannelResponseInputAttachmentsInputSettingsVideoSelector`
    `SelectorSettings`

    - **VideoSelectorPid** *(dict) --* Video Selector Pid

      - **Pid** *(integer) --* Selects a specific PID from within a video source.

    - **VideoSelectorProgramId** *(dict) --* Video Selector Program Id

      - **ProgramId** *(integer) --* Selects a specific program from within a multi-program
      transport stream. If the program doesn't exist, the first program within the transport stream
      will be selected by default.
    """


_ClientStopChannelResponseInputAttachmentsInputSettingsVideoSelectorTypeDef = TypedDict(
    "_ClientStopChannelResponseInputAttachmentsInputSettingsVideoSelectorTypeDef",
    {
        "ColorSpace": str,
        "ColorSpaceUsage": str,
        "SelectorSettings": ClientStopChannelResponseInputAttachmentsInputSettingsVideoSelectorSelectorSettingsTypeDef,
    },
    total=False,
)


class ClientStopChannelResponseInputAttachmentsInputSettingsVideoSelectorTypeDef(
    _ClientStopChannelResponseInputAttachmentsInputSettingsVideoSelectorTypeDef
):
    """
    Type definition for `ClientStopChannelResponseInputAttachmentsInputSettings` `VideoSelector`

    - **ColorSpace** *(string) --* Specifies the color space of an input. This setting works in
    tandem with colorSpaceUsage and a video description's colorSpaceSettingsChoice to determine if
    any conversion will be performed.

    - **ColorSpaceUsage** *(string) --* Applies only if colorSpace is a value other than follow.
    This field controls how the value in the colorSpace field will be used. fallback means that when
    the input does include color space data, that data will be used, but when the input has no color
    space data, the value in colorSpace will be used. Choose fallback if your input is sometimes
    missing color space data, but when it does have color space data, that data is correct. force
    means to always use the value in colorSpace. Choose force if your input usually has no color
    space data or might have unreliable color space data.

    - **SelectorSettings** *(dict) --* The video selector settings.

      - **VideoSelectorPid** *(dict) --* Video Selector Pid

        - **Pid** *(integer) --* Selects a specific PID from within a video source.

      - **VideoSelectorProgramId** *(dict) --* Video Selector Program Id

        - **ProgramId** *(integer) --* Selects a specific program from within a multi-program
        transport stream. If the program doesn't exist, the first program within the transport
        stream will be selected by default.
    """


_ClientStopChannelResponseInputAttachmentsInputSettingsTypeDef = TypedDict(
    "_ClientStopChannelResponseInputAttachmentsInputSettingsTypeDef",
    {
        "AudioSelectors": List[
            ClientStopChannelResponseInputAttachmentsInputSettingsAudioSelectorsTypeDef
        ],
        "CaptionSelectors": List[
            ClientStopChannelResponseInputAttachmentsInputSettingsCaptionSelectorsTypeDef
        ],
        "DeblockFilter": str,
        "DenoiseFilter": str,
        "FilterStrength": int,
        "InputFilter": str,
        "NetworkInputSettings": ClientStopChannelResponseInputAttachmentsInputSettingsNetworkInputSettingsTypeDef,
        "SourceEndBehavior": str,
        "VideoSelector": ClientStopChannelResponseInputAttachmentsInputSettingsVideoSelectorTypeDef,
    },
    total=False,
)


class ClientStopChannelResponseInputAttachmentsInputSettingsTypeDef(
    _ClientStopChannelResponseInputAttachmentsInputSettingsTypeDef
):
    """
    Type definition for `ClientStopChannelResponseInputAttachments` `InputSettings`

    - **AudioSelectors** *(list) --* Used to select the audio stream to decode for inputs that have
    multiple available.

      - *(dict) --* Audio Selector

        - **Name** *(string) --* The name of this AudioSelector. AudioDescriptions will use this
        name to uniquely identify this Selector. Selector names should be unique per input.

        - **SelectorSettings** *(dict) --* The audio selector settings.

          - **AudioLanguageSelection** *(dict) --* Audio Language Selection

            - **LanguageCode** *(string) --* Selects a specific three-letter language code from
            within an audio source.

            - **LanguageSelectionPolicy** *(string) --* When set to "strict", the transport stream
            demux strictly identifies audio streams by their language descriptor. If a PMT update
            occurs such that an audio stream matching the initially selected language is no longer
            present then mute will be encoded until the language returns. If "loose", then on a PMT
            update the demux will choose another audio stream in the program with the same stream
            type if it can't find one with the same language.

          - **AudioPidSelection** *(dict) --* Audio Pid Selection

            - **Pid** *(integer) --* Selects a specific PID from within a source.

    - **CaptionSelectors** *(list) --* Used to select the caption input to use for inputs that have
    multiple available.

      - *(dict) --* Output groups for this Live Event. Output groups contain information about where
      streams should be distributed.

        - **LanguageCode** *(string) --* When specified this field indicates the three letter
        language code of the caption track to extract from the source.

        - **Name** *(string) --* Name identifier for a caption selector. This name is used to
        associate this caption selector with one or more caption descriptions. Names must be unique
        within an event.

        - **SelectorSettings** *(dict) --* Caption selector settings.

          - **AribSourceSettings** *(dict) --* Arib Source Settings

          - **DvbSubSourceSettings** *(dict) --* Dvb Sub Source Settings

            - **Pid** *(integer) --* When using DVB-Sub with Burn-In or SMPTE-TT, use this PID for
            the source content. Unused for DVB-Sub passthrough. All DVB-Sub content is passed
            through, regardless of selectors.

          - **EmbeddedSourceSettings** *(dict) --* Embedded Source Settings

            - **Convert608To708** *(string) --* If upconvert, 608 data is both passed through via
            the "608 compatibility bytes" fields of the 708 wrapper as well as translated into 708.
            708 data present in the source content will be discarded.

            - **Scte20Detection** *(string) --* Set to "auto" to handle streams with intermittent
            and/or non-aligned SCTE-20 and Embedded captions.

            - **Source608ChannelNumber** *(integer) --* Specifies the 608/708 channel number within
            the video track from which to extract captions. Unused for passthrough.

            - **Source608TrackNumber** *(integer) --* This field is unused and deprecated.

          - **Scte20SourceSettings** *(dict) --* Scte20 Source Settings

            - **Convert608To708** *(string) --* If upconvert, 608 data is both passed through via
            the "608 compatibility bytes" fields of the 708 wrapper as well as translated into 708.
            708 data present in the source content will be discarded.

            - **Source608ChannelNumber** *(integer) --* Specifies the 608/708 channel number within
            the video track from which to extract captions. Unused for passthrough.

          - **Scte27SourceSettings** *(dict) --* Scte27 Source Settings

            - **Pid** *(integer) --* The pid field is used in conjunction with the caption selector
            languageCode field as follows: - Specify PID and Language: Extracts captions from that
            PID; the language is "informational". - Specify PID and omit Language: Extracts the
            specified PID. - Omit PID and specify Language: Extracts the specified language,
            whichever PID that happens to be. - Omit PID and omit Language: Valid only if source is
            DVB-Sub that is being passed through; all languages will be passed through.

          - **TeletextSourceSettings** *(dict) --* Teletext Source Settings

            - **PageNumber** *(string) --* Specifies the teletext page number within the data stream
            from which to extract captions. Range of 0x100 (256) to 0x8FF (2303). Unused for
            passthrough. Should be specified as a hexadecimal string with no "0x" prefix.

    - **DeblockFilter** *(string) --* Enable or disable the deblock filter when filtering.

    - **DenoiseFilter** *(string) --* Enable or disable the denoise filter when filtering.

    - **FilterStrength** *(integer) --* Adjusts the magnitude of filtering from 1 (minimal) to 5
    (strongest).

    - **InputFilter** *(string) --* Turns on the filter for this input. MPEG-2 inputs have the
    deblocking filter enabled by default. 1) auto - filtering will be applied depending on input
    type/quality 2) disabled - no filtering will be applied to the input 3) forced - filtering will
    be applied regardless of input type

    - **NetworkInputSettings** *(dict) --* Input settings.

      - **HlsInputSettings** *(dict) --* Specifies HLS input settings when the uri is for a HLS
      manifest.

        - **Bandwidth** *(integer) --* When specified the HLS stream with the m3u8 BANDWIDTH that
        most closely matches this value will be chosen, otherwise the highest bandwidth stream in
        the m3u8 will be chosen. The bitrate is specified in bits per second, as in an HLS manifest.

        - **BufferSegments** *(integer) --* When specified, reading of the HLS input will begin this
        many buffer segments from the end (most recently written segment). When not specified, the
        HLS input will begin with the first segment specified in the m3u8.

        - **Retries** *(integer) --* The number of consecutive times that attempts to read a
        manifest or segment must fail before the input is considered unavailable.

        - **RetryInterval** *(integer) --* The number of seconds between retries when an attempt to
        read a manifest or segment fails.

      - **ServerValidation** *(string) --* Check HTTPS server certificates. When set to
      checkCryptographyOnly, cryptography in the certificate will be checked, but not the server's
      name. Certain subdomains (notably S3 buckets that use dots in the bucket name) do not strictly
      match the corresponding certificate's wildcard pattern and would otherwise cause the event to
      error. This setting is ignored for protocols that do not use https.

    - **SourceEndBehavior** *(string) --* Loop input if it is a file. This allows a file input to be
    streamed indefinitely.

    - **VideoSelector** *(dict) --* Informs which video elementary stream to decode for input types
    that have multiple available.

      - **ColorSpace** *(string) --* Specifies the color space of an input. This setting works in
      tandem with colorSpaceUsage and a video description's colorSpaceSettingsChoice to determine if
      any conversion will be performed.

      - **ColorSpaceUsage** *(string) --* Applies only if colorSpace is a value other than follow.
      This field controls how the value in the colorSpace field will be used. fallback means that
      when the input does include color space data, that data will be used, but when the input has
      no color space data, the value in colorSpace will be used. Choose fallback if your input is
      sometimes missing color space data, but when it does have color space data, that data is
      correct. force means to always use the value in colorSpace. Choose force if your input usually
      has no color space data or might have unreliable color space data.

      - **SelectorSettings** *(dict) --* The video selector settings.

        - **VideoSelectorPid** *(dict) --* Video Selector Pid

          - **Pid** *(integer) --* Selects a specific PID from within a video source.

        - **VideoSelectorProgramId** *(dict) --* Video Selector Program Id

          - **ProgramId** *(integer) --* Selects a specific program from within a multi-program
          transport stream. If the program doesn't exist, the first program within the transport
          stream will be selected by default.
    """


_ClientStopChannelResponseInputAttachmentsTypeDef = TypedDict(
    "_ClientStopChannelResponseInputAttachmentsTypeDef",
    {
        "InputAttachmentName": str,
        "InputId": str,
        "InputSettings": ClientStopChannelResponseInputAttachmentsInputSettingsTypeDef,
    },
    total=False,
)


class ClientStopChannelResponseInputAttachmentsTypeDef(
    _ClientStopChannelResponseInputAttachmentsTypeDef
):
    """
    Type definition for `ClientStopChannelResponse` `InputAttachments`

    - **InputAttachmentName** *(string) --* User-specified name for the attachment. This is required
    if the user wants to use this input in an input switch action.

    - **InputId** *(string) --* The ID of the input

    - **InputSettings** *(dict) --* Settings of an input (caption selector, etc.)

      - **AudioSelectors** *(list) --* Used to select the audio stream to decode for inputs that
      have multiple available.

        - *(dict) --* Audio Selector

          - **Name** *(string) --* The name of this AudioSelector. AudioDescriptions will use this
          name to uniquely identify this Selector. Selector names should be unique per input.

          - **SelectorSettings** *(dict) --* The audio selector settings.

            - **AudioLanguageSelection** *(dict) --* Audio Language Selection

              - **LanguageCode** *(string) --* Selects a specific three-letter language code from
              within an audio source.

              - **LanguageSelectionPolicy** *(string) --* When set to "strict", the transport stream
              demux strictly identifies audio streams by their language descriptor. If a PMT update
              occurs such that an audio stream matching the initially selected language is no longer
              present then mute will be encoded until the language returns. If "loose", then on a
              PMT update the demux will choose another audio stream in the program with the same
              stream type if it can't find one with the same language.

            - **AudioPidSelection** *(dict) --* Audio Pid Selection

              - **Pid** *(integer) --* Selects a specific PID from within a source.

      - **CaptionSelectors** *(list) --* Used to select the caption input to use for inputs that
      have multiple available.

        - *(dict) --* Output groups for this Live Event. Output groups contain information about
        where streams should be distributed.

          - **LanguageCode** *(string) --* When specified this field indicates the three letter
          language code of the caption track to extract from the source.

          - **Name** *(string) --* Name identifier for a caption selector. This name is used to
          associate this caption selector with one or more caption descriptions. Names must be
          unique within an event.

          - **SelectorSettings** *(dict) --* Caption selector settings.

            - **AribSourceSettings** *(dict) --* Arib Source Settings

            - **DvbSubSourceSettings** *(dict) --* Dvb Sub Source Settings

              - **Pid** *(integer) --* When using DVB-Sub with Burn-In or SMPTE-TT, use this PID for
              the source content. Unused for DVB-Sub passthrough. All DVB-Sub content is passed
              through, regardless of selectors.

            - **EmbeddedSourceSettings** *(dict) --* Embedded Source Settings

              - **Convert608To708** *(string) --* If upconvert, 608 data is both passed through via
              the "608 compatibility bytes" fields of the 708 wrapper as well as translated into
              708. 708 data present in the source content will be discarded.

              - **Scte20Detection** *(string) --* Set to "auto" to handle streams with intermittent
              and/or non-aligned SCTE-20 and Embedded captions.

              - **Source608ChannelNumber** *(integer) --* Specifies the 608/708 channel number
              within the video track from which to extract captions. Unused for passthrough.

              - **Source608TrackNumber** *(integer) --* This field is unused and deprecated.

            - **Scte20SourceSettings** *(dict) --* Scte20 Source Settings

              - **Convert608To708** *(string) --* If upconvert, 608 data is both passed through via
              the "608 compatibility bytes" fields of the 708 wrapper as well as translated into
              708. 708 data present in the source content will be discarded.

              - **Source608ChannelNumber** *(integer) --* Specifies the 608/708 channel number
              within the video track from which to extract captions. Unused for passthrough.

            - **Scte27SourceSettings** *(dict) --* Scte27 Source Settings

              - **Pid** *(integer) --* The pid field is used in conjunction with the caption
              selector languageCode field as follows: - Specify PID and Language: Extracts captions
              from that PID; the language is "informational". - Specify PID and omit Language:
              Extracts the specified PID. - Omit PID and specify Language: Extracts the specified
              language, whichever PID that happens to be. - Omit PID and omit Language: Valid only
              if source is DVB-Sub that is being passed through; all languages will be passed
              through.

            - **TeletextSourceSettings** *(dict) --* Teletext Source Settings

              - **PageNumber** *(string) --* Specifies the teletext page number within the data
              stream from which to extract captions. Range of 0x100 (256) to 0x8FF (2303). Unused
              for passthrough. Should be specified as a hexadecimal string with no "0x" prefix.

      - **DeblockFilter** *(string) --* Enable or disable the deblock filter when filtering.

      - **DenoiseFilter** *(string) --* Enable or disable the denoise filter when filtering.

      - **FilterStrength** *(integer) --* Adjusts the magnitude of filtering from 1 (minimal) to 5
      (strongest).

      - **InputFilter** *(string) --* Turns on the filter for this input. MPEG-2 inputs have the
      deblocking filter enabled by default. 1) auto - filtering will be applied depending on input
      type/quality 2) disabled - no filtering will be applied to the input 3) forced - filtering
      will be applied regardless of input type

      - **NetworkInputSettings** *(dict) --* Input settings.

        - **HlsInputSettings** *(dict) --* Specifies HLS input settings when the uri is for a HLS
        manifest.

          - **Bandwidth** *(integer) --* When specified the HLS stream with the m3u8 BANDWIDTH that
          most closely matches this value will be chosen, otherwise the highest bandwidth stream in
          the m3u8 will be chosen. The bitrate is specified in bits per second, as in an HLS
          manifest.

          - **BufferSegments** *(integer) --* When specified, reading of the HLS input will begin
          this many buffer segments from the end (most recently written segment). When not
          specified, the HLS input will begin with the first segment specified in the m3u8.

          - **Retries** *(integer) --* The number of consecutive times that attempts to read a
          manifest or segment must fail before the input is considered unavailable.

          - **RetryInterval** *(integer) --* The number of seconds between retries when an attempt
          to read a manifest or segment fails.

        - **ServerValidation** *(string) --* Check HTTPS server certificates. When set to
        checkCryptographyOnly, cryptography in the certificate will be checked, but not the server's
        name. Certain subdomains (notably S3 buckets that use dots in the bucket name) do not
        strictly match the corresponding certificate's wildcard pattern and would otherwise cause
        the event to error. This setting is ignored for protocols that do not use https.

      - **SourceEndBehavior** *(string) --* Loop input if it is a file. This allows a file input to
      be streamed indefinitely.

      - **VideoSelector** *(dict) --* Informs which video elementary stream to decode for input
      types that have multiple available.

        - **ColorSpace** *(string) --* Specifies the color space of an input. This setting works in
        tandem with colorSpaceUsage and a video description's colorSpaceSettingsChoice to determine
        if any conversion will be performed.

        - **ColorSpaceUsage** *(string) --* Applies only if colorSpace is a value other than follow.
        This field controls how the value in the colorSpace field will be used. fallback means that
        when the input does include color space data, that data will be used, but when the input has
        no color space data, the value in colorSpace will be used. Choose fallback if your input is
        sometimes missing color space data, but when it does have color space data, that data is
        correct. force means to always use the value in colorSpace. Choose force if your input
        usually has no color space data or might have unreliable color space data.

        - **SelectorSettings** *(dict) --* The video selector settings.

          - **VideoSelectorPid** *(dict) --* Video Selector Pid

            - **Pid** *(integer) --* Selects a specific PID from within a video source.

          - **VideoSelectorProgramId** *(dict) --* Video Selector Program Id

            - **ProgramId** *(integer) --* Selects a specific program from within a multi-program
            transport stream. If the program doesn't exist, the first program within the transport
            stream will be selected by default.
    """


_ClientStopChannelResponseInputSpecificationTypeDef = TypedDict(
    "_ClientStopChannelResponseInputSpecificationTypeDef",
    {"Codec": str, "MaximumBitrate": str, "Resolution": str},
    total=False,
)


class ClientStopChannelResponseInputSpecificationTypeDef(
    _ClientStopChannelResponseInputSpecificationTypeDef
):
    """
    Type definition for `ClientStopChannelResponse` `InputSpecification`

    - **Codec** *(string) --* Input codec

    - **MaximumBitrate** *(string) --* Maximum input bitrate, categorized coarsely

    - **Resolution** *(string) --* Input resolution, categorized coarsely
    """


_ClientStopChannelResponsePipelineDetailsTypeDef = TypedDict(
    "_ClientStopChannelResponsePipelineDetailsTypeDef",
    {"ActiveInputAttachmentName": str, "ActiveInputSwitchActionName": str, "PipelineId": str},
    total=False,
)


class ClientStopChannelResponsePipelineDetailsTypeDef(
    _ClientStopChannelResponsePipelineDetailsTypeDef
):
    """
    Type definition for `ClientStopChannelResponse` `PipelineDetails`

    - **ActiveInputAttachmentName** *(string) --* The name of the active input attachment currently
    being ingested by this pipeline.

    - **ActiveInputSwitchActionName** *(string) --* The name of the input switch schedule action
    that occurred most recently and that resulted in the switch to the current input attachment for
    this pipeline.

    - **PipelineId** *(string) --* Pipeline ID
    """


_ClientStopChannelResponseTypeDef = TypedDict(
    "_ClientStopChannelResponseTypeDef",
    {
        "Arn": str,
        "ChannelClass": str,
        "Destinations": List[ClientStopChannelResponseDestinationsTypeDef],
        "EgressEndpoints": List[ClientStopChannelResponseEgressEndpointsTypeDef],
        "EncoderSettings": ClientStopChannelResponseEncoderSettingsTypeDef,
        "Id": str,
        "InputAttachments": List[ClientStopChannelResponseInputAttachmentsTypeDef],
        "InputSpecification": ClientStopChannelResponseInputSpecificationTypeDef,
        "LogLevel": str,
        "Name": str,
        "PipelineDetails": List[ClientStopChannelResponsePipelineDetailsTypeDef],
        "PipelinesRunningCount": int,
        "RoleArn": str,
        "State": str,
        "Tags": Dict[str, str],
    },
    total=False,
)


class ClientStopChannelResponseTypeDef(_ClientStopChannelResponseTypeDef):
    """
    Type definition for `ClientStopChannel` `Response`

    - **Arn** *(string) --* The unique arn of the channel.

    - **ChannelClass** *(string) --* The class for this channel. STANDARD for a channel with two
    pipelines or SINGLE_PIPELINE for a channel with one pipeline.

    - **Destinations** *(list) --* A list of destinations of the channel. For UDP outputs, there is
    one destination per output. For other types (HLS, for example), there is one destination per
    packager.

      - *(dict) --* Placeholder documentation for OutputDestination

        - **Id** *(string) --* User-specified id. This is used in an output group or an output.

        - **MediaPackageSettings** *(list) --* Destination settings for a MediaPackage output; one
        destination for both encoders.

          - *(dict) --* MediaPackage Output Destination Settings

            - **ChannelId** *(string) --* ID of the channel in MediaPackage that is the destination
            for this output group. You do not need to specify the individual inputs in MediaPackage;
            MediaLive will handle the connection of the two MediaLive pipelines to the two
            MediaPackage inputs. The MediaPackage channel and MediaLive channel must be in the same
            region.

        - **MultiplexSettings** *(dict) --* Destination settings for a Multiplex output; one
        destination for both encoders.

          - **MultiplexId** *(string) --* The ID of the Multiplex that the encoder is providing
          output to. You do not need to specify the individual inputs to the Multiplex; MediaLive
          will handle the connection of the two MediaLive pipelines to the two Multiplex instances.
          The Multiplex must be in the same region as the Channel.

          - **ProgramName** *(string) --* The program name of the Multiplex program that the encoder
          is providing output to.

        - **Settings** *(list) --* Destination settings for a standard output; one destination for
        each redundant encoder.

          - *(dict) --* Placeholder documentation for OutputDestinationSettings

            - **PasswordParam** *(string) --* key used to extract the password from EC2 Parameter
            store

            - **StreamName** *(string) --* Stream name for RTMP destinations (URLs of type rtmp://)

            - **Url** *(string) --* A URL specifying a destination

            - **Username** *(string) --* username for destination

    - **EgressEndpoints** *(list) --* The endpoints where outgoing connections initiate from

      - *(dict) --* Placeholder documentation for ChannelEgressEndpoint

        - **SourceIp** *(string) --* Public IP of where a channel's output comes from

    - **EncoderSettings** *(dict) --* Encoder Settings

      - **AudioDescriptions** *(list) --* Placeholder documentation for __listOfAudioDescription

        - *(dict) --* Audio Description

          - **AudioNormalizationSettings** *(dict) --* Advanced audio normalization settings.

            - **Algorithm** *(string) --* Audio normalization algorithm to use. itu17701 conforms to
            the CALM Act specification, itu17702 conforms to the EBU R-128 specification.

            - **AlgorithmControl** *(string) --* When set to correctAudio the output audio is
            corrected using the chosen algorithm. If set to measureOnly, the audio will be measured
            but not adjusted.

            - **TargetLkfs** *(float) --* Target LKFS(loudness) to adjust volume to. If no value is
            entered, a default value will be used according to the chosen algorithm. The CALM Act
            (1770-1) recommends a target of -24 LKFS. The EBU R-128 specification (1770-2)
            recommends a target of -23 LKFS.

          - **AudioSelectorName** *(string) --* The name of the AudioSelector used as the source for
          this AudioDescription.

          - **AudioType** *(string) --* Applies only if audioTypeControl is useConfigured. The
          values for audioType are defined in ISO-IEC 13818-1.

          - **AudioTypeControl** *(string) --* Determines how audio type is determined. followInput:
          If the input contains an ISO 639 audioType, then that value is passed through to the
          output. If the input contains no ISO 639 audioType, the value in Audio Type is included in
          the output. useConfigured: The value in Audio Type is included in the output. Note that
          this field and audioType are both ignored if inputType is broadcasterMixedAd.

          - **CodecSettings** *(dict) --* Audio codec settings.

            - **AacSettings** *(dict) --* Aac Settings

              - **Bitrate** *(float) --* Average bitrate in bits/second. Valid values depend on rate
              control mode and profile.

              - **CodingMode** *(string) --* Mono, Stereo, or 5.1 channel layout. Valid values
              depend on rate control mode and profile. The adReceiverMix setting receives a stereo
              description plus control track and emits a mono AAC encode of the description track,
              with control data emitted in the PES header as per ETSI TS 101 154 Annex E.

              - **InputType** *(string) --* Set to "broadcasterMixedAd" when input contains
              pre-mixed main audio + AD (narration) as a stereo pair. The Audio Type field
              (audioType) will be set to 3, which signals to downstream systems that this stream
              contains "broadcaster mixed AD". Note that the input received by the encoder must
              contain pre-mixed audio; the encoder does not perform the mixing. The values in
              audioTypeControl and audioType (in AudioDescription) are ignored when set to
              broadcasterMixedAd. Leave set to "normal" when input does not contain pre-mixed audio
              + AD.

              - **Profile** *(string) --* AAC Profile.

              - **RateControlMode** *(string) --* Rate Control Mode.

              - **RawFormat** *(string) --* Sets LATM / LOAS AAC output for raw containers.

              - **SampleRate** *(float) --* Sample rate in Hz. Valid values depend on rate control
              mode and profile.

              - **Spec** *(string) --* Use MPEG-2 AAC audio instead of MPEG-4 AAC audio for raw or
              MPEG-2 Transport Stream containers.

              - **VbrQuality** *(string) --* VBR Quality Level - Only used if rateControlMode is
              VBR.

            - **Ac3Settings** *(dict) --* Ac3 Settings

              - **Bitrate** *(float) --* Average bitrate in bits/second. Valid bitrates depend on
              the coding mode.

              - **BitstreamMode** *(string) --* Specifies the bitstream mode (bsmod) for the emitted
              AC-3 stream. See ATSC A/52-2012 for background on these values.

              - **CodingMode** *(string) --* Dolby Digital coding mode. Determines number of
              channels.

              - **Dialnorm** *(integer) --* Sets the dialnorm for the output. If excluded and input
              audio is Dolby Digital, dialnorm will be passed through.

              - **DrcProfile** *(string) --* If set to filmStandard, adds dynamic range compression
              signaling to the output bitstream as defined in the Dolby Digital specification.

              - **LfeFilter** *(string) --* When set to enabled, applies a 120Hz lowpass filter to
              the LFE channel prior to encoding. Only valid in codingMode32Lfe mode.

              - **MetadataControl** *(string) --* When set to "followInput", encoder metadata will
              be sourced from the DD, DD+, or DolbyE decoder that supplied this audio data. If audio
              was not supplied from one of these streams, then the static metadata settings will be
              used.

            - **Eac3Settings** *(dict) --* Eac3 Settings

              - **AttenuationControl** *(string) --* When set to attenuate3Db, applies a 3 dB
              attenuation to the surround channels. Only used for 3/2 coding mode.

              - **Bitrate** *(float) --* Average bitrate in bits/second. Valid bitrates depend on
              the coding mode.

              - **BitstreamMode** *(string) --* Specifies the bitstream mode (bsmod) for the emitted
              E-AC-3 stream. See ATSC A/52-2012 (Annex E) for background on these values.

              - **CodingMode** *(string) --* Dolby Digital Plus coding mode. Determines number of
              channels.

              - **DcFilter** *(string) --* When set to enabled, activates a DC highpass filter for
              all input channels.

              - **Dialnorm** *(integer) --* Sets the dialnorm for the output. If blank and input
              audio is Dolby Digital Plus, dialnorm will be passed through.

              - **DrcLine** *(string) --* Sets the Dolby dynamic range compression profile.

              - **DrcRf** *(string) --* Sets the profile for heavy Dolby dynamic range compression,
              ensures that the instantaneous signal peaks do not exceed specified levels.

              - **LfeControl** *(string) --* When encoding 3/2 audio, setting to lfe enables the LFE
              channel

              - **LfeFilter** *(string) --* When set to enabled, applies a 120Hz lowpass filter to
              the LFE channel prior to encoding. Only valid with codingMode32 coding mode.

              - **LoRoCenterMixLevel** *(float) --* Left only/Right only center mix level. Only used
              for 3/2 coding mode.

              - **LoRoSurroundMixLevel** *(float) --* Left only/Right only surround mix level. Only
              used for 3/2 coding mode.

              - **LtRtCenterMixLevel** *(float) --* Left total/Right total center mix level. Only
              used for 3/2 coding mode.

              - **LtRtSurroundMixLevel** *(float) --* Left total/Right total surround mix level.
              Only used for 3/2 coding mode.

              - **MetadataControl** *(string) --* When set to followInput, encoder metadata will be
              sourced from the DD, DD+, or DolbyE decoder that supplied this audio data. If audio
              was not supplied from one of these streams, then the static metadata settings will be
              used.

              - **PassthroughControl** *(string) --* When set to whenPossible, input DD+ audio will
              be passed through if it is present on the input. This detection is dynamic over the
              life of the transcode. Inputs that alternate between DD+ and non-DD+ content will have
              a consistent DD+ output as the system alternates between passthrough and encoding.

              - **PhaseControl** *(string) --* When set to shift90Degrees, applies a 90-degree phase
              shift to the surround channels. Only used for 3/2 coding mode.

              - **StereoDownmix** *(string) --* Stereo downmix preference. Only used for 3/2 coding
              mode.

              - **SurroundExMode** *(string) --* When encoding 3/2 audio, sets whether an extra
              center back surround channel is matrix encoded into the left and right surround
              channels.

              - **SurroundMode** *(string) --* When encoding 2/0 audio, sets whether Dolby Surround
              is matrix encoded into the two channels.

            - **Mp2Settings** *(dict) --* Mp2 Settings

              - **Bitrate** *(float) --* Average bitrate in bits/second.

              - **CodingMode** *(string) --* The MPEG2 Audio coding mode. Valid values are
              codingMode10 (for mono) or codingMode20 (for stereo).

              - **SampleRate** *(float) --* Sample rate in Hz.

            - **PassThroughSettings** *(dict) --* Pass Through Settings

          - **LanguageCode** *(string) --* Indicates the language of the audio output track. Only
          used if languageControlMode is useConfigured, or there is no ISO 639 language code
          specified in the input.

          - **LanguageCodeControl** *(string) --* Choosing followInput will cause the ISO 639
          language code of the output to follow the ISO 639 language code of the input. The
          languageCode will be used when useConfigured is set, or when followInput is selected but
          there is no ISO 639 language code specified by the input.

          - **Name** *(string) --* The name of this AudioDescription. Outputs will use this name to
          uniquely identify this AudioDescription. Description names should be unique within this
          Live Event.

          - **RemixSettings** *(dict) --* Settings that control how input audio channels are remixed
          into the output audio channels.

            - **ChannelMappings** *(list) --* Mapping of input channels to output channels, with
            appropriate gain adjustments.

              - *(dict) --* Audio Channel Mapping

                - **InputChannelLevels** *(list) --* Indices and gain values for each input channel
                that should be remixed into this output channel.

                  - *(dict) --* Input Channel Level

                    - **Gain** *(integer) --* Remixing value. Units are in dB and acceptable values
                    are within the range from -60 (mute) and 6 dB.

                    - **InputChannel** *(integer) --* The index of the input channel used as a
                    source.

                - **OutputChannel** *(integer) --* The index of the output channel being produced.

            - **ChannelsIn** *(integer) --* Number of input channels to be used.

            - **ChannelsOut** *(integer) --* Number of output channels to be produced. Valid values:
            1, 2, 4, 6, 8

          - **StreamName** *(string) --* Used for MS Smooth and Apple HLS outputs. Indicates the
          name displayed by the player (eg. English, or Director Commentary).

      - **AvailBlanking** *(dict) --* Settings for ad avail blanking.

        - **AvailBlankingImage** *(dict) --* Blanking image to be used. Leave empty for solid black.
        Only bmp and png images are supported.

          - **PasswordParam** *(string) --* key used to extract the password from EC2 Parameter
          store

          - **Uri** *(string) --* Uniform Resource Identifier - This should be a path to a file
          accessible to the Live system (eg. a http:// URI) depending on the output type. For
          example, a RTMP destination should have a uri simliar to: "rtmp://fmsserver/live".

          - **Username** *(string) --* Documentation update needed

        - **State** *(string) --* When set to enabled, causes video, audio and captions to be
        blanked when insertion metadata is added.

      - **AvailConfiguration** *(dict) --* Event-wide configuration settings for ad avail insertion.

        - **AvailSettings** *(dict) --* Ad avail settings.

          - **Scte35SpliceInsert** *(dict) --* Scte35 Splice Insert

            - **AdAvailOffset** *(integer) --* When specified, this offset (in milliseconds) is
            added to the input Ad Avail PTS time. This only applies to embedded SCTE 104/35 messages
            and does not apply to OOB messages.

            - **NoRegionalBlackoutFlag** *(string) --* When set to ignore, Segment Descriptors with
            noRegionalBlackoutFlag set to 0 will no longer trigger blackouts or Ad Avail slates

            - **WebDeliveryAllowedFlag** *(string) --* When set to ignore, Segment Descriptors with
            webDeliveryAllowedFlag set to 0 will no longer trigger blackouts or Ad Avail slates

          - **Scte35TimeSignalApos** *(dict) --* Scte35 Time Signal Apos

            - **AdAvailOffset** *(integer) --* When specified, this offset (in milliseconds) is
            added to the input Ad Avail PTS time. This only applies to embedded SCTE 104/35 messages
            and does not apply to OOB messages.

            - **NoRegionalBlackoutFlag** *(string) --* When set to ignore, Segment Descriptors with
            noRegionalBlackoutFlag set to 0 will no longer trigger blackouts or Ad Avail slates

            - **WebDeliveryAllowedFlag** *(string) --* When set to ignore, Segment Descriptors with
            webDeliveryAllowedFlag set to 0 will no longer trigger blackouts or Ad Avail slates

      - **BlackoutSlate** *(dict) --* Settings for blackout slate.

        - **BlackoutSlateImage** *(dict) --* Blackout slate image to be used. Leave empty for solid
        black. Only bmp and png images are supported.

          - **PasswordParam** *(string) --* key used to extract the password from EC2 Parameter
          store

          - **Uri** *(string) --* Uniform Resource Identifier - This should be a path to a file
          accessible to the Live system (eg. a http:// URI) depending on the output type. For
          example, a RTMP destination should have a uri simliar to: "rtmp://fmsserver/live".

          - **Username** *(string) --* Documentation update needed

        - **NetworkEndBlackout** *(string) --* Setting to enabled causes the encoder to blackout the
        video, audio, and captions, and raise the "Network Blackout Image" slate when an SCTE104/35
        Network End Segmentation Descriptor is encountered. The blackout will be lifted when the
        Network Start Segmentation Descriptor is encountered. The Network End and Network Start
        descriptors must contain a network ID that matches the value entered in "Network ID".

        - **NetworkEndBlackoutImage** *(dict) --* Path to local file to use as Network End Blackout
        image. Image will be scaled to fill the entire output raster.

          - **PasswordParam** *(string) --* key used to extract the password from EC2 Parameter
          store

          - **Uri** *(string) --* Uniform Resource Identifier - This should be a path to a file
          accessible to the Live system (eg. a http:// URI) depending on the output type. For
          example, a RTMP destination should have a uri simliar to: "rtmp://fmsserver/live".

          - **Username** *(string) --* Documentation update needed

        - **NetworkId** *(string) --* Provides Network ID that matches EIDR ID format (e.g.,
        "10.XXXX/XXXX-XXXX-XXXX-XXXX-XXXX-C").

        - **State** *(string) --* When set to enabled, causes video, audio and captions to be
        blanked when indicated by program metadata.

      - **CaptionDescriptions** *(list) --* Settings for caption decriptions

        - *(dict) --* Caption Description

          - **CaptionSelectorName** *(string) --* Specifies which input caption selector to use as a
          caption source when generating output captions. This field should match a captionSelector
          name.

          - **DestinationSettings** *(dict) --* Additional settings for captions destination that
          depend on the destination type.

            - **AribDestinationSettings** *(dict) --* Arib Destination Settings

            - **BurnInDestinationSettings** *(dict) --* Burn In Destination Settings

              - **Alignment** *(string) --* If no explicit xPosition or yPosition is provided,
              setting alignment to centered will place the captions at the bottom center of the
              output. Similarly, setting a left alignment will align captions to the bottom left of
              the output. If x and y positions are given in conjunction with the alignment
              parameter, the font will be justified (either left or centered) relative to those
              coordinates. Selecting "smart" justification will left-justify live subtitles and
              center-justify pre-recorded subtitles. All burn-in and DVB-Sub font settings must
              match.

              - **BackgroundColor** *(string) --* Specifies the color of the rectangle behind the
              captions. All burn-in and DVB-Sub font settings must match.

              - **BackgroundOpacity** *(integer) --* Specifies the opacity of the background
              rectangle. 255 is opaque; 0 is transparent. Leaving this parameter out is equivalent
              to setting it to 0 (transparent). All burn-in and DVB-Sub font settings must match.

              - **Font** *(dict) --* External font file used for caption burn-in. File extension
              must be 'ttf' or 'tte'. Although the user can select output fonts for many different
              types of input captions, embedded, STL and teletext sources use a strict grid system.
              Using external fonts with these caption sources could cause unexpected display of
              proportional fonts. All burn-in and DVB-Sub font settings must match.

                - **PasswordParam** *(string) --* key used to extract the password from EC2
                Parameter store

                - **Uri** *(string) --* Uniform Resource Identifier - This should be a path to a
                file accessible to the Live system (eg. a http:// URI) depending on the output type.
                For example, a RTMP destination should have a uri simliar to:
                "rtmp://fmsserver/live".

                - **Username** *(string) --* Documentation update needed

              - **FontColor** *(string) --* Specifies the color of the burned-in captions. This
              option is not valid for source captions that are STL, 608/embedded or teletext. These
              source settings are already pre-defined by the caption stream. All burn-in and DVB-Sub
              font settings must match.

              - **FontOpacity** *(integer) --* Specifies the opacity of the burned-in captions. 255
              is opaque; 0 is transparent. All burn-in and DVB-Sub font settings must match.

              - **FontResolution** *(integer) --* Font resolution in DPI (dots per inch); default is
              96 dpi. All burn-in and DVB-Sub font settings must match.

              - **FontSize** *(string) --* When set to 'auto' fontSize will scale depending on the
              size of the output. Giving a positive integer will specify the exact font size in
              points. All burn-in and DVB-Sub font settings must match.

              - **OutlineColor** *(string) --* Specifies font outline color. This option is not
              valid for source captions that are either 608/embedded or teletext. These source
              settings are already pre-defined by the caption stream. All burn-in and DVB-Sub font
              settings must match.

              - **OutlineSize** *(integer) --* Specifies font outline size in pixels. This option is
              not valid for source captions that are either 608/embedded or teletext. These source
              settings are already pre-defined by the caption stream. All burn-in and DVB-Sub font
              settings must match.

              - **ShadowColor** *(string) --* Specifies the color of the shadow cast by the
              captions. All burn-in and DVB-Sub font settings must match.

              - **ShadowOpacity** *(integer) --* Specifies the opacity of the shadow. 255 is opaque;
              0 is transparent. Leaving this parameter out is equivalent to setting it to 0
              (transparent). All burn-in and DVB-Sub font settings must match.

              - **ShadowXOffset** *(integer) --* Specifies the horizontal offset of the shadow
              relative to the captions in pixels. A value of -2 would result in a shadow offset 2
              pixels to the left. All burn-in and DVB-Sub font settings must match.

              - **ShadowYOffset** *(integer) --* Specifies the vertical offset of the shadow
              relative to the captions in pixels. A value of -2 would result in a shadow offset 2
              pixels above the text. All burn-in and DVB-Sub font settings must match.

              - **TeletextGridControl** *(string) --* Controls whether a fixed grid size will be
              used to generate the output subtitles bitmap. Only applicable for Teletext inputs and
              DVB-Sub/Burn-in outputs.

              - **XPosition** *(integer) --* Specifies the horizontal position of the caption
              relative to the left side of the output in pixels. A value of 10 would result in the
              captions starting 10 pixels from the left of the output. If no explicit xPosition is
              provided, the horizontal caption position will be determined by the alignment
              parameter. All burn-in and DVB-Sub font settings must match.

              - **YPosition** *(integer) --* Specifies the vertical position of the caption relative
              to the top of the output in pixels. A value of 10 would result in the captions
              starting 10 pixels from the top of the output. If no explicit yPosition is provided,
              the caption will be positioned towards the bottom of the output. All burn-in and
              DVB-Sub font settings must match.

            - **DvbSubDestinationSettings** *(dict) --* Dvb Sub Destination Settings

              - **Alignment** *(string) --* If no explicit xPosition or yPosition is provided,
              setting alignment to centered will place the captions at the bottom center of the
              output. Similarly, setting a left alignment will align captions to the bottom left of
              the output. If x and y positions are given in conjunction with the alignment
              parameter, the font will be justified (either left or centered) relative to those
              coordinates. Selecting "smart" justification will left-justify live subtitles and
              center-justify pre-recorded subtitles. This option is not valid for source captions
              that are STL or 608/embedded. These source settings are already pre-defined by the
              caption stream. All burn-in and DVB-Sub font settings must match.

              - **BackgroundColor** *(string) --* Specifies the color of the rectangle behind the
              captions. All burn-in and DVB-Sub font settings must match.

              - **BackgroundOpacity** *(integer) --* Specifies the opacity of the background
              rectangle. 255 is opaque; 0 is transparent. Leaving this parameter blank is equivalent
              to setting it to 0 (transparent). All burn-in and DVB-Sub font settings must match.

              - **Font** *(dict) --* External font file used for caption burn-in. File extension
              must be 'ttf' or 'tte'. Although the user can select output fonts for many different
              types of input captions, embedded, STL and teletext sources use a strict grid system.
              Using external fonts with these caption sources could cause unexpected display of
              proportional fonts. All burn-in and DVB-Sub font settings must match.

                - **PasswordParam** *(string) --* key used to extract the password from EC2
                Parameter store

                - **Uri** *(string) --* Uniform Resource Identifier - This should be a path to a
                file accessible to the Live system (eg. a http:// URI) depending on the output type.
                For example, a RTMP destination should have a uri simliar to:
                "rtmp://fmsserver/live".

                - **Username** *(string) --* Documentation update needed

              - **FontColor** *(string) --* Specifies the color of the burned-in captions. This
              option is not valid for source captions that are STL, 608/embedded or teletext. These
              source settings are already pre-defined by the caption stream. All burn-in and DVB-Sub
              font settings must match.

              - **FontOpacity** *(integer) --* Specifies the opacity of the burned-in captions. 255
              is opaque; 0 is transparent. All burn-in and DVB-Sub font settings must match.

              - **FontResolution** *(integer) --* Font resolution in DPI (dots per inch); default is
              96 dpi. All burn-in and DVB-Sub font settings must match.

              - **FontSize** *(string) --* When set to auto fontSize will scale depending on the
              size of the output. Giving a positive integer will specify the exact font size in
              points. All burn-in and DVB-Sub font settings must match.

              - **OutlineColor** *(string) --* Specifies font outline color. This option is not
              valid for source captions that are either 608/embedded or teletext. These source
              settings are already pre-defined by the caption stream. All burn-in and DVB-Sub font
              settings must match.

              - **OutlineSize** *(integer) --* Specifies font outline size in pixels. This option is
              not valid for source captions that are either 608/embedded or teletext. These source
              settings are already pre-defined by the caption stream. All burn-in and DVB-Sub font
              settings must match.

              - **ShadowColor** *(string) --* Specifies the color of the shadow cast by the
              captions. All burn-in and DVB-Sub font settings must match.

              - **ShadowOpacity** *(integer) --* Specifies the opacity of the shadow. 255 is opaque;
              0 is transparent. Leaving this parameter blank is equivalent to setting it to 0
              (transparent). All burn-in and DVB-Sub font settings must match.

              - **ShadowXOffset** *(integer) --* Specifies the horizontal offset of the shadow
              relative to the captions in pixels. A value of -2 would result in a shadow offset 2
              pixels to the left. All burn-in and DVB-Sub font settings must match.

              - **ShadowYOffset** *(integer) --* Specifies the vertical offset of the shadow
              relative to the captions in pixels. A value of -2 would result in a shadow offset 2
              pixels above the text. All burn-in and DVB-Sub font settings must match.

              - **TeletextGridControl** *(string) --* Controls whether a fixed grid size will be
              used to generate the output subtitles bitmap. Only applicable for Teletext inputs and
              DVB-Sub/Burn-in outputs.

              - **XPosition** *(integer) --* Specifies the horizontal position of the caption
              relative to the left side of the output in pixels. A value of 10 would result in the
              captions starting 10 pixels from the left of the output. If no explicit xPosition is
              provided, the horizontal caption position will be determined by the alignment
              parameter. This option is not valid for source captions that are STL, 608/embedded or
              teletext. These source settings are already pre-defined by the caption stream. All
              burn-in and DVB-Sub font settings must match.

              - **YPosition** *(integer) --* Specifies the vertical position of the caption relative
              to the top of the output in pixels. A value of 10 would result in the captions
              starting 10 pixels from the top of the output. If no explicit yPosition is provided,
              the caption will be positioned towards the bottom of the output. This option is not
              valid for source captions that are STL, 608/embedded or teletext. These source
              settings are already pre-defined by the caption stream. All burn-in and DVB-Sub font
              settings must match.

            - **EmbeddedDestinationSettings** *(dict) --* Embedded Destination Settings

            - **EmbeddedPlusScte20DestinationSettings** *(dict) --* Embedded Plus Scte20 Destination
            Settings

            - **RtmpCaptionInfoDestinationSettings** *(dict) --* Rtmp Caption Info Destination
            Settings

            - **Scte20PlusEmbeddedDestinationSettings** *(dict) --* Scte20 Plus Embedded Destination
            Settings

            - **Scte27DestinationSettings** *(dict) --* Scte27 Destination Settings

            - **SmpteTtDestinationSettings** *(dict) --* Smpte Tt Destination Settings

            - **TeletextDestinationSettings** *(dict) --* Teletext Destination Settings

            - **TtmlDestinationSettings** *(dict) --* Ttml Destination Settings

              - **StyleControl** *(string) --* When set to passthrough, passes through style and
              position information from a TTML-like input source (TTML, SMPTE-TT, CFF-TT) to the
              CFF-TT output or TTML output.

            - **WebvttDestinationSettings** *(dict) --* Webvtt Destination Settings

          - **LanguageCode** *(string) --* ISO 639-2 three-digit code:
          http://www.loc.gov/standards/iso639-2/

          - **LanguageDescription** *(string) --* Human readable information to indicate captions
          available for players (eg. English, or Spanish).

          - **Name** *(string) --* Name of the caption description. Used to associate a caption
          description with an output. Names must be unique within an event.

      - **GlobalConfiguration** *(dict) --* Configuration settings that apply to the event as a
      whole.

        - **InitialAudioGain** *(integer) --* Value to set the initial audio gain for the Live
        Event.

        - **InputEndAction** *(string) --* Indicates the action to take when the current input
        completes (e.g. end-of-file). When switchAndLoopInputs is configured the encoder will
        restart at the beginning of the first input. When "none" is configured the encoder will
        transcode either black, a solid color, or a user specified slate images per the "Input Loss
        Behavior" configuration until the next input switch occurs (which is controlled through the
        Channel Schedule API).

        - **InputLossBehavior** *(dict) --* Settings for system actions when input is lost.

          - **BlackFrameMsec** *(integer) --* Documentation update needed

          - **InputLossImageColor** *(string) --* When input loss image type is "color" this field
          specifies the color to use. Value: 6 hex characters representing the values of RGB.

          - **InputLossImageSlate** *(dict) --* When input loss image type is "slate" these fields
          specify the parameters for accessing the slate.

            - **PasswordParam** *(string) --* key used to extract the password from EC2 Parameter
            store

            - **Uri** *(string) --* Uniform Resource Identifier - This should be a path to a file
            accessible to the Live system (eg. a http:// URI) depending on the output type. For
            example, a RTMP destination should have a uri simliar to: "rtmp://fmsserver/live".

            - **Username** *(string) --* Documentation update needed

          - **InputLossImageType** *(string) --* Indicates whether to substitute a solid color or a
          slate into the output after input loss exceeds blackFrameMsec.

          - **RepeatFrameMsec** *(integer) --* Documentation update needed

        - **OutputLockingMode** *(string) --* Indicates how MediaLive pipelines are synchronized.
        PIPELINELOCKING - MediaLive will attempt to synchronize the output of each pipeline to the
        other. EPOCHLOCKING - MediaLive will attempt to synchronize the output of each pipeline to
        the Unix epoch.

        - **OutputTimingSource** *(string) --* Indicates whether the rate of frames emitted by the
        Live encoder should be paced by its system clock (which optionally may be locked to another
        source via NTP) or should be locked to the clock of the source that is providing the input
        stream.

        - **SupportLowFramerateInputs** *(string) --* Adjusts video input buffer for streams with
        very low video framerates. This is commonly set to enabled for music channels with less than
        one video frame per second.

      - **NielsenConfiguration** *(dict) --* Nielsen configuration settings.

        - **DistributorId** *(string) --* Enter the Distributor ID assigned to your organization by
        Nielsen.

        - **NielsenPcmToId3Tagging** *(string) --* Enables Nielsen PCM to ID3 tagging

      - **OutputGroups** *(list) --* Placeholder documentation for __listOfOutputGroup

        - *(dict) --* Output groups for this Live Event. Output groups contain information about
        where streams should be distributed.

          - **Name** *(string) --* Custom output group name optionally defined by the user. Only
          letters, numbers, and the underscore character allowed; only 32 characters allowed.

          - **OutputGroupSettings** *(dict) --* Settings associated with the output group.

            - **ArchiveGroupSettings** *(dict) --* Archive Group Settings

              - **Destination** *(dict) --* A directory and base filename where archive files should
              be written.

                - **DestinationRefId** *(string) --* Placeholder documentation for __string

              - **RolloverInterval** *(integer) --* Number of seconds to write to archive file
              before closing and starting a new one.

            - **FrameCaptureGroupSettings** *(dict) --* Frame Capture Group Settings

              - **Destination** *(dict) --* The destination for the frame capture files. Either the
              URI for an Amazon S3 bucket and object, plus a file name prefix (for example,
              s3ssl://sportsDelivery/highlights/20180820/curling_) or the URI for a MediaStore
              container, plus a file name prefix (for example,
              mediastoressl://sportsDelivery/20180820/curling_). The final file names consist of the
              prefix from the destination field (for example, "curling_") + name modifier + the
              counter (5 digits, starting from 00001) + extension (which is always .jpg). For
              example, curlingLow.00001.jpg

                - **DestinationRefId** *(string) --* Placeholder documentation for __string

            - **HlsGroupSettings** *(dict) --* Hls Group Settings

              - **AdMarkers** *(list) --* Choose one or more ad marker types to pass SCTE35 signals
              through to this group of Apple HLS outputs.

                - *(string) --* Hls Ad Markers

              - **BaseUrlContent** *(string) --* A partial URI prefix that will be prepended to each
              output in the media .m3u8 file. Can be used if base manifest is delivered from a
              different URL than the main .m3u8 file.

              - **BaseUrlManifest** *(string) --* A partial URI prefix that will be prepended to
              each output in the media .m3u8 file. Can be used if base manifest is delivered from a
              different URL than the main .m3u8 file.

              - **CaptionLanguageMappings** *(list) --* Mapping of up to 4 caption channels to
              caption languages. Is only meaningful if captionLanguageSetting is set to "insert".

                - *(dict) --* Maps a caption channel to an ISO 693-2 language code
                (http://www.loc.gov/standards/iso639-2), with an optional description.

                  - **CaptionChannel** *(integer) --* The closed caption channel being described by
                  this CaptionLanguageMapping. Each channel mapping must have a unique channel
                  number (maximum of 4)

                  - **LanguageCode** *(string) --* Three character ISO 639-2 language code (see
                  http://www.loc.gov/standards/iso639-2)

                  - **LanguageDescription** *(string) --* Textual description of language

              - **CaptionLanguageSetting** *(string) --* Applies only to 608 Embedded output
              captions. insert: Include CLOSED-CAPTIONS lines in the manifest. Specify at least one
              language in the CC1 Language Code field. One CLOSED-CAPTION line is added for each
              Language Code you specify. Make sure to specify the languages in the order in which
              they appear in the original source (if the source is embedded format) or the order of
              the caption selectors (if the source is other than embedded). Otherwise, languages in
              the manifest will not match up properly with the output captions. none: Include
              CLOSED-CAPTIONS=
                  NONE line in the manifest. omit: Omit any CLOSED-CAPTIONS line from
              the manifest.

              - **ClientCache** *(string) --* When set to "disabled", sets the #EXT-X-ALLOW-CACHE:no
              tag in the manifest, which prevents clients from saving media segments for later
              replay.

              - **CodecSpecification** *(string) --* Specification to use (RFC-6381 or the default
              RFC-4281) during m3u8 playlist generation.

              - **ConstantIv** *(string) --* For use with encryptionType. This is a 128-bit, 16-byte
              hex value represented by a 32-character text string. If ivSource is set to "explicit"
              then this parameter is required and is used as the IV for encryption.

              - **Destination** *(dict) --* A directory or HTTP destination for the HLS segments,
              manifest files, and encryption keys (if enabled).

                - **DestinationRefId** *(string) --* Placeholder documentation for __string

              - **DirectoryStructure** *(string) --* Place segments in subdirectories.

              - **EncryptionType** *(string) --* Encrypts the segments with the given encryption
              scheme. Exclude this parameter if no encryption is desired.

              - **HlsCdnSettings** *(dict) --* Parameters that control interactions with the CDN.

                - **HlsAkamaiSettings** *(dict) --* Hls Akamai Settings

                  - **ConnectionRetryInterval** *(integer) --* Number of seconds to wait before
                  retrying connection to the CDN if the connection is lost.

                  - **FilecacheDuration** *(integer) --* Size in seconds of file cache for streaming
                  outputs.

                  - **HttpTransferMode** *(string) --* Specify whether or not to use chunked
                  transfer encoding to Akamai. User should contact Akamai to enable this feature.

                  - **NumRetries** *(integer) --* Number of retry attempts that will be made before
                  the Live Event is put into an error state.

                  - **RestartDelay** *(integer) --* If a streaming output fails, number of seconds
                  to wait until a restart is initiated. A value of 0 means never restart.

                  - **Salt** *(string) --* Salt for authenticated Akamai.

                  - **Token** *(string) --* Token parameter for authenticated akamai. If not
                  specified, _gda_ is used.

                - **HlsBasicPutSettings** *(dict) --* Hls Basic Put Settings

                  - **ConnectionRetryInterval** *(integer) --* Number of seconds to wait before
                  retrying connection to the CDN if the connection is lost.

                  - **FilecacheDuration** *(integer) --* Size in seconds of file cache for streaming
                  outputs.

                  - **NumRetries** *(integer) --* Number of retry attempts that will be made before
                  the Live Event is put into an error state.

                  - **RestartDelay** *(integer) --* If a streaming output fails, number of seconds
                  to wait until a restart is initiated. A value of 0 means never restart.

                - **HlsMediaStoreSettings** *(dict) --* Hls Media Store Settings

                  - **ConnectionRetryInterval** *(integer) --* Number of seconds to wait before
                  retrying connection to the CDN if the connection is lost.

                  - **FilecacheDuration** *(integer) --* Size in seconds of file cache for streaming
                  outputs.

                  - **MediaStoreStorageClass** *(string) --* When set to temporal, output files are
                  stored in non-persistent memory for faster reading and writing.

                  - **NumRetries** *(integer) --* Number of retry attempts that will be made before
                  the Live Event is put into an error state.

                  - **RestartDelay** *(integer) --* If a streaming output fails, number of seconds
                  to wait until a restart is initiated. A value of 0 means never restart.

                - **HlsWebdavSettings** *(dict) --* Hls Webdav Settings

                  - **ConnectionRetryInterval** *(integer) --* Number of seconds to wait before
                  retrying connection to the CDN if the connection is lost.

                  - **FilecacheDuration** *(integer) --* Size in seconds of file cache for streaming
                  outputs.

                  - **HttpTransferMode** *(string) --* Specify whether or not to use chunked
                  transfer encoding to WebDAV.

                  - **NumRetries** *(integer) --* Number of retry attempts that will be made before
                  the Live Event is put into an error state.

                  - **RestartDelay** *(integer) --* If a streaming output fails, number of seconds
                  to wait until a restart is initiated. A value of 0 means never restart.

              - **IFrameOnlyPlaylists** *(string) --* DISABLED: Do not create an I-frame-only
              manifest, but do create the master and media manifests (according to the Output
              Selection field). STANDARD: Create an I-frame-only manifest for each output that
              contains video, as well as the other manifests (according to the Output Selection
              field). The I-frame manifest contains a #EXT-X-I-FRAMES-ONLY tag to indicate it is
              I-frame only, and one or more #EXT-X-BYTERANGE entries identifying the I-frame
              position. For example, #EXT-X-BYTERANGE:160364@1461888"

              - **IndexNSegments** *(integer) --* Applies only if Mode field is LIVE. Specifies the
              maximum number of segments in the media manifest file. After this maximum, older
              segments are removed from the media manifest. This number must be less than or equal
              to the Keep Segments field.

              - **InputLossAction** *(string) --* Parameter that control output group behavior on
              input loss.

              - **IvInManifest** *(string) --* For use with encryptionType. The IV (Initialization
              Vector) is a 128-bit number used in conjunction with the key for encrypting blocks. If
              set to "include", IV is listed in the manifest, otherwise the IV is not in the
              manifest.

              - **IvSource** *(string) --* For use with encryptionType. The IV (Initialization
              Vector) is a 128-bit number used in conjunction with the key for encrypting blocks. If
              this setting is "followsSegmentNumber", it will cause the IV to change every segment
              (to match the segment number). If this is set to "explicit", you must enter a
              constantIv value.

              - **KeepSegments** *(integer) --* Applies only if Mode field is LIVE. Specifies the
              number of media segments (.ts files) to retain in the destination directory.

              - **KeyFormat** *(string) --* The value specifies how the key is represented in the
              resource identified by the URI. If parameter is absent, an implicit value of
              "identity" is used. A reverse DNS string can also be given.

              - **KeyFormatVersions** *(string) --* Either a single positive integer version value
              or a slash delimited list of version values (1/2/3).

              - **KeyProviderSettings** *(dict) --* The key provider settings.

                - **StaticKeySettings** *(dict) --* Static Key Settings

                  - **KeyProviderServer** *(dict) --* The URL of the license server used for
                  protecting content.

                    - **PasswordParam** *(string) --* key used to extract the password from EC2
                    Parameter store

                    - **Uri** *(string) --* Uniform Resource Identifier - This should be a path to a
                    file accessible to the Live system (eg. a http:// URI) depending on the output
                    type. For example, a RTMP destination should have a uri simliar to:
                    "rtmp://fmsserver/live".

                    - **Username** *(string) --* Documentation update needed

                  - **StaticKeyValue** *(string) --* Static key value as a 32 character hexadecimal
                  string.

              - **ManifestCompression** *(string) --* When set to gzip, compresses HLS playlist.

              - **ManifestDurationFormat** *(string) --* Indicates whether the output manifest
              should use floating point or integer values for segment duration.

              - **MinSegmentLength** *(integer) --* When set, minimumSegmentLength is enforced by
              looking ahead and back within the specified range for a nearby avail and extending the
              segment size if needed.

              - **Mode** *(string) --* If "vod", all segments are indexed and kept permanently in
              the destination and manifest. If "live", only the number segments specified in
              keepSegments and indexNSegments are kept; newer segments replace older segments, which
              may prevent players from rewinding all the way to the beginning of the event. VOD mode
              uses HLS EXT-X-PLAYLIST-TYPE of EVENT while the channel is running, converting it to a
              "VOD" type manifest on completion of the stream.

              - **OutputSelection** *(string) --* MANIFESTSANDSEGMENTS: Generates manifests (master
              manifest, if applicable, and media manifests) for this output group. SEGMENTSONLY:
              Does not generate any manifests for this output group.

              - **ProgramDateTime** *(string) --* Includes or excludes EXT-X-PROGRAM-DATE-TIME tag
              in .m3u8 manifest files. The value is calculated as follows: either the program date
              and time are initialized using the input timecode source, or the time is initialized
              using the input timecode source and the date is initialized using the timestampOffset.

              - **ProgramDateTimePeriod** *(integer) --* Period of insertion of
              EXT-X-PROGRAM-DATE-TIME entry, in seconds.

              - **RedundantManifest** *(string) --* ENABLED: The master manifest (.m3u8 file) for
              each pipeline includes information about both pipelines: first its own media files,
              then the media files of the other pipeline. This feature allows playout device that
              support stale manifest detection to switch from one manifest to the other, when the
              current manifest seems to be stale. There are still two destinations and two master
              manifests, but both master manifests reference the media files from both pipelines.
              DISABLED: The master manifest (.m3u8 file) for each pipeline includes information
              about its own pipeline only. For an HLS output group with MediaPackage as the
              destination, the DISABLED behavior is always followed. MediaPackage regenerates the
              manifests it serves to players so a redundant manifest from MediaLive is irrelevant.

              - **SegmentLength** *(integer) --* Length of MPEG-2 Transport Stream segments to
              create (in seconds). Note that segments will end on the next keyframe after this
              number of seconds, so actual segment length may be longer.

              - **SegmentationMode** *(string) --* useInputSegmentation has been deprecated. The
              configured segment size is always used.

              - **SegmentsPerSubdirectory** *(integer) --* Number of segments to write to a
              subdirectory before starting a new one. directoryStructure must be
              subdirectoryPerStream for this setting to have an effect.

              - **StreamInfResolution** *(string) --* Include or exclude RESOLUTION attribute for
              video in EXT-X-STREAM-INF tag of variant manifest.

              - **TimedMetadataId3Frame** *(string) --* Indicates ID3 frame that has the timecode.

              - **TimedMetadataId3Period** *(integer) --* Timed Metadata interval in seconds.

              - **TimestampDeltaMilliseconds** *(integer) --* Provides an extra millisecond delta
              offset to fine tune the timestamps.

              - **TsFileMode** *(string) --* SEGMENTEDFILES: Emit the program as segments - multiple
              .ts media files. SINGLEFILE: Applies only if Mode field is VOD. Emit the program as a
              single .ts media file. The media manifest includes #EXT-X-BYTERANGE tags to index
              segments for playback. A typical use for this value is when sending the output to AWS
              Elemental MediaConvert, which can accept only a single media file. Playback while the
              channel is running is not guaranteed due to HTTP server caching.

            - **MediaPackageGroupSettings** *(dict) --* Media Package Group Settings

              - **Destination** *(dict) --* MediaPackage channel destination.

                - **DestinationRefId** *(string) --* Placeholder documentation for __string

            - **MsSmoothGroupSettings** *(dict) --* Ms Smooth Group Settings

              - **AcquisitionPointId** *(string) --* The value of the "Acquisition Point Identity"
              element used in each message placed in the sparse track. Only enabled if
              sparseTrackType is not "none".

              - **AudioOnlyTimecodeControl** *(string) --* If set to passthrough for an audio-only
              MS Smooth output, the fragment absolute time will be set to the current timecode. This
              option does not write timecodes to the audio elementary stream.

              - **CertificateMode** *(string) --* If set to verifyAuthenticity, verify the https
              certificate chain to a trusted Certificate Authority (CA). This will cause https
              outputs to self-signed certificates to fail.

              - **ConnectionRetryInterval** *(integer) --* Number of seconds to wait before retrying
              connection to the IIS server if the connection is lost. Content will be cached during
              this time and the cache will be be delivered to the IIS server once the connection is
              re-established.

              - **Destination** *(dict) --* Smooth Streaming publish point on an IIS server.
              Elemental Live acts as a "Push" encoder to IIS.

                - **DestinationRefId** *(string) --* Placeholder documentation for __string

              - **EventId** *(string) --* MS Smooth event ID to be sent to the IIS server. Should
              only be specified if eventIdMode is set to useConfigured.

              - **EventIdMode** *(string) --* Specifies whether or not to send an event ID to the
              IIS server. If no event ID is sent and the same Live Event is used without changing
              the publishing point, clients might see cached video from the previous run. Options: -
              "useConfigured" - use the value provided in eventId - "useTimestamp" - generate and
              send an event ID based on the current timestamp - "noEventId" - do not send an event
              ID to the IIS server.

              - **EventStopBehavior** *(string) --* When set to sendEos, send EOS signal to IIS
              server when stopping the event

              - **FilecacheDuration** *(integer) --* Size in seconds of file cache for streaming
              outputs.

              - **FragmentLength** *(integer) --* Length of mp4 fragments to generate (in seconds).
              Fragment length must be compatible with GOP size and framerate.

              - **InputLossAction** *(string) --* Parameter that control output group behavior on
              input loss.

              - **NumRetries** *(integer) --* Number of retry attempts.

              - **RestartDelay** *(integer) --* Number of seconds before initiating a restart due to
              output failure, due to exhausting the numRetries on one segment, or exceeding
              filecacheDuration.

              - **SegmentationMode** *(string) --* useInputSegmentation has been deprecated. The
              configured segment size is always used.

              - **SendDelayMs** *(integer) --* Number of milliseconds to delay the output from the
              second pipeline.

              - **SparseTrackType** *(string) --* If set to scte35, use incoming SCTE-35 messages to
              generate a sparse track in this group of MS-Smooth outputs.

              - **StreamManifestBehavior** *(string) --* When set to send, send stream manifest so
              publishing point doesn't start until all streams start.

              - **TimestampOffset** *(string) --* Timestamp offset for the event. Only used if
              timestampOffsetMode is set to useConfiguredOffset.

              - **TimestampOffsetMode** *(string) --* Type of timestamp date offset to use. -
              useEventStartDate: Use the date the event was started as the offset -
              useConfiguredOffset: Use an explicitly configured date as the offset

            - **MultiplexGroupSettings** *(dict) --* Multiplex Group Settings

            - **RtmpGroupSettings** *(dict) --* Rtmp Group Settings

              - **AuthenticationScheme** *(string) --* Authentication scheme to use when connecting
              with CDN

              - **CacheFullBehavior** *(string) --* Controls behavior when content cache fills up.
              If remote origin server stalls the RTMP connection and does not accept content fast
              enough the 'Media Cache' will fill up. When the cache reaches the duration specified
              by cacheLength the cache will stop accepting new content. If set to
              disconnectImmediately, the RTMP output will force a disconnect. Clear the media cache,
              and reconnect after restartDelay seconds. If set to waitForServer, the RTMP output
              will wait up to 5 minutes to allow the origin server to begin accepting data again.

              - **CacheLength** *(integer) --* Cache length, in seconds, is used to calculate buffer
              size.

              - **CaptionData** *(string) --* Controls the types of data that passes to
              onCaptionInfo outputs. If set to 'all' then 608 and 708 carried DTVCC data will be
              passed. If set to 'field1AndField2608' then DTVCC data will be stripped out, but 608
              data from both fields will be passed. If set to 'field1608' then only the data carried
              in 608 from field 1 video will be passed.

              - **InputLossAction** *(string) --* Controls the behavior of this RTMP group if input
              becomes unavailable. - emitOutput: Emit a slate until input returns. - pauseOutput:
              Stop transmitting data until input returns. This does not close the underlying RTMP
              connection.

              - **RestartDelay** *(integer) --* If a streaming output fails, number of seconds to
              wait until a restart is initiated. A value of 0 means never restart.

            - **UdpGroupSettings** *(dict) --* Udp Group Settings

              - **InputLossAction** *(string) --* Specifies behavior of last resort when input video
              is lost, and no more backup inputs are available. When dropTs is selected the entire
              transport stream will stop being emitted. When dropProgram is selected the program can
              be dropped from the transport stream (and replaced with null packets to meet the TS
              bitrate requirement). Or, when emitProgram is chosen the transport stream will
              continue to be produced normally with repeat frames, black frames, or slate frames
              substituted for the absent input video.

              - **TimedMetadataId3Frame** *(string) --* Indicates ID3 frame that has the timecode.

              - **TimedMetadataId3Period** *(integer) --* Timed Metadata interval in seconds.

          - **Outputs** *(list) --* Placeholder documentation for __listOfOutput

            - *(dict) --* Output settings. There can be multiple outputs within a group.

              - **AudioDescriptionNames** *(list) --* The names of the AudioDescriptions used as
              audio sources for this output.

                - *(string) --* Placeholder documentation for __string

              - **CaptionDescriptionNames** *(list) --* The names of the CaptionDescriptions used as
              caption sources for this output.

                - *(string) --* Placeholder documentation for __string

              - **OutputName** *(string) --* The name used to identify an output.

              - **OutputSettings** *(dict) --* Output type-specific settings.

                - **ArchiveOutputSettings** *(dict) --* Archive Output Settings

                  - **ContainerSettings** *(dict) --* Settings specific to the container type of the
                  file.

                    - **M2tsSettings** *(dict) --* M2ts Settings

                      - **AbsentInputAudioBehavior** *(string) --* When set to drop, output audio
                      streams will be removed from the program if the selected input audio stream is
                      removed from the input. This allows the output audio configuration to
                      dynamically change based on input configuration. If this is set to
                      encodeSilence, all output audio streams will output encoded silence when not
                      connected to an active input stream.

                      - **Arib** *(string) --* When set to enabled, uses ARIB-compliant field muxing
                      and removes video descriptor.

                      - **AribCaptionsPid** *(string) --* Packet Identifier (PID) for ARIB Captions
                      in the transport stream. Can be entered as a decimal or hexadecimal value.
                      Valid values are 32 (or 0x20)..8182 (or 0x1ff6).

                      - **AribCaptionsPidControl** *(string) --* If set to auto, pid number used for
                      ARIB Captions will be auto-selected from unused pids. If set to useConfigured,
                      ARIB Captions will be on the configured pid number.

                      - **AudioBufferModel** *(string) --* When set to dvb, uses DVB buffer model
                      for Dolby Digital audio. When set to atsc, the ATSC model is used.

                      - **AudioFramesPerPes** *(integer) --* The number of audio frames to insert
                      for each PES packet.

                      - **AudioPids** *(string) --* Packet Identifier (PID) of the elementary audio
                      stream(s) in the transport stream. Multiple values are accepted, and can be
                      entered in ranges and/or by comma separation. Can be entered as decimal or
                      hexadecimal values. Each PID specified must be in the range of 32 (or
                      0x20)..8182 (or 0x1ff6).

                      - **AudioStreamType** *(string) --* When set to atsc, uses stream type = 0x81
                      for AC3 and stream type =
                           0x87 for EAC3. When set to dvb, uses stream type =
                      0x06.

                      - **Bitrate** *(integer) --* The output bitrate of the transport stream in
                      bits per second. Setting to 0 lets the muxer automatically determine the
                      appropriate bitrate.

                      - **BufferModel** *(string) --* If set to multiplex, use multiplex buffer
                      model for accurate interleaving. Setting to bufferModel to none can lead to
                      lower latency, but low-memory devices may not be able to play back the stream
                      without interruptions.

                      - **CcDescriptor** *(string) --* When set to enabled, generates
                      captionServiceDescriptor in PMT.

                      - **DvbNitSettings** *(dict) --* Inserts DVB Network Information Table (NIT)
                      at the specified table repetition interval.

                        - **NetworkId** *(integer) --* The numeric value placed in the Network
                        Information Table (NIT).

                        - **NetworkName** *(string) --* The network name text placed in the
                        networkNameDescriptor inside the Network Information Table. Maximum length
                        is 256 characters.

                        - **RepInterval** *(integer) --* The number of milliseconds between
                        instances of this table in the output transport stream.

                      - **DvbSdtSettings** *(dict) --* Inserts DVB Service Description Table (SDT)
                      at the specified table repetition interval.

                        - **OutputSdt** *(string) --* Selects method of inserting SDT information
                        into output stream. The sdtFollow setting copies SDT information from input
                        stream to output stream. The sdtFollowIfPresent setting copies SDT
                        information from input stream to output stream if SDT information is present
                        in the input, otherwise it will fall back on the user-defined values. The
                        sdtManual setting means user will enter the SDT information. The sdtNone
                        setting means output stream will not contain SDT information.

                        - **RepInterval** *(integer) --* The number of milliseconds between
                        instances of this table in the output transport stream.

                        - **ServiceName** *(string) --* The service name placed in the
                        serviceDescriptor in the Service Description Table. Maximum length is 256
                        characters.

                        - **ServiceProviderName** *(string) --* The service provider name placed in
                        the serviceDescriptor in the Service Description Table. Maximum length is
                        256 characters.

                      - **DvbSubPids** *(string) --* Packet Identifier (PID) for input source DVB
                      Subtitle data to this output. Multiple values are accepted, and can be entered
                      in ranges and/or by comma separation. Can be entered as decimal or hexadecimal
                      values. Each PID specified must be in the range of 32 (or 0x20)..8182 (or
                      0x1ff6).

                      - **DvbTdtSettings** *(dict) --* Inserts DVB Time and Date Table (TDT) at the
                      specified table repetition interval.

                        - **RepInterval** *(integer) --* The number of milliseconds between
                        instances of this table in the output transport stream.

                      - **DvbTeletextPid** *(string) --* Packet Identifier (PID) for input source
                      DVB Teletext data to this output. Can be entered as a decimal or hexadecimal
                      value. Valid values are 32 (or 0x20)..8182 (or 0x1ff6).

                      - **Ebif** *(string) --* If set to passthrough, passes any EBIF data from the
                      input source to this output.

                      - **EbpAudioInterval** *(string) --* When videoAndFixedIntervals is selected,
                      audio EBP markers will be added to partitions 3 and 4. The interval between
                      these additional markers will be fixed, and will be slightly shorter than the
                      video EBP marker interval. Only available when EBP Cablelabs segmentation
                      markers are selected. Partitions 1 and 2 will always follow the video
                      interval.

                      - **EbpLookaheadMs** *(integer) --* When set, enforces that Encoder Boundary
                      Points do not come within the specified time interval of each other by looking
                      ahead at input video. If another EBP is going to come in within the specified
                      time interval, the current EBP is not emitted, and the segment is "stretched"
                      to the next marker. The lookahead value does not add latency to the system.
                      The Live Event must be configured elsewhere to create sufficient latency to
                      make the lookahead accurate.

                      - **EbpPlacement** *(string) --* Controls placement of EBP on Audio PIDs. If
                      set to videoAndAudioPids, EBP markers will be placed on the video PID and all
                      audio PIDs. If set to videoPid, EBP markers will be placed on only the video
                      PID.

                      - **EcmPid** *(string) --* This field is unused and deprecated.

                      - **EsRateInPes** *(string) --* Include or exclude the ES Rate field in the
                      PES header.

                      - **EtvPlatformPid** *(string) --* Packet Identifier (PID) for input source
                      ETV Platform data to this output. Can be entered as a decimal or hexadecimal
                      value. Valid values are 32 (or 0x20)..8182 (or 0x1ff6).

                      - **EtvSignalPid** *(string) --* Packet Identifier (PID) for input source ETV
                      Signal data to this output. Can be entered as a decimal or hexadecimal value.
                      Valid values are 32 (or 0x20)..8182 (or 0x1ff6).

                      - **FragmentTime** *(float) --* The length in seconds of each fragment. Only
                      used with EBP markers.

                      - **Klv** *(string) --* If set to passthrough, passes any KLV data from the
                      input source to this output.

                      - **KlvDataPids** *(string) --* Packet Identifier (PID) for input source KLV
                      data to this output. Multiple values are accepted, and can be entered in
                      ranges and/or by comma separation. Can be entered as decimal or hexadecimal
                      values. Each PID specified must be in the range of 32 (or 0x20)..8182 (or
                      0x1ff6).

                      - **NielsenId3Behavior** *(string) --* If set to passthrough, Nielsen
                      inaudible tones for media tracking will be detected in the input audio and an
                      equivalent ID3 tag will be inserted in the output.

                      - **NullPacketBitrate** *(float) --* Value in bits per second of extra null
                      packets to insert into the transport stream. This can be used if a downstream
                      encryption system requires periodic null packets.

                      - **PatInterval** *(integer) --* The number of milliseconds between instances
                      of this table in the output transport stream. Valid values are 0, 10..1000.

                      - **PcrControl** *(string) --* When set to pcrEveryPesPacket, a Program Clock
                      Reference value is inserted for every Packetized Elementary Stream (PES)
                      header. This parameter is effective only when the PCR PID is the same as the
                      video or audio elementary stream.

                      - **PcrPeriod** *(integer) --* Maximum time in milliseconds between Program
                      Clock Reference (PCRs) inserted into the transport stream.

                      - **PcrPid** *(string) --* Packet Identifier (PID) of the Program Clock
                      Reference (PCR) in the transport stream. When no value is given, the encoder
                      will assign the same value as the Video PID. Can be entered as a decimal or
                      hexadecimal value. Valid values are 32 (or 0x20)..8182 (or 0x1ff6).

                      - **PmtInterval** *(integer) --* The number of milliseconds between instances
                      of this table in the output transport stream. Valid values are 0, 10..1000.

                      - **PmtPid** *(string) --* Packet Identifier (PID) for the Program Map Table
                      (PMT) in the transport stream. Can be entered as a decimal or hexadecimal
                      value. Valid values are 32 (or 0x20)..8182 (or 0x1ff6).

                      - **ProgramNum** *(integer) --* The value of the program number field in the
                      Program Map Table.

                      - **RateMode** *(string) --* When vbr, does not insert null packets into
                      transport stream to fill specified bitrate. The bitrate setting acts as the
                      maximum bitrate when vbr is set.

                      - **Scte27Pids** *(string) --* Packet Identifier (PID) for input source
                      SCTE-27 data to this output. Multiple values are accepted, and can be entered
                      in ranges and/or by comma separation. Can be entered as decimal or hexadecimal
                      values. Each PID specified must be in the range of 32 (or 0x20)..8182 (or
                      0x1ff6).

                      - **Scte35Control** *(string) --* Optionally pass SCTE-35 signals from the
                      input source to this output.

                      - **Scte35Pid** *(string) --* Packet Identifier (PID) of the SCTE-35 stream in
                      the transport stream. Can be entered as a decimal or hexadecimal value. Valid
                      values are 32 (or 0x20)..8182 (or 0x1ff6).

                      - **SegmentationMarkers** *(string) --* Inserts segmentation markers at each
                      segmentationTime period. raiSegstart sets the Random Access Indicator bit in
                      the adaptation field. raiAdapt sets the RAI bit and adds the current timecode
                      in the private data bytes. psiSegstart inserts PAT and PMT tables at the start
                      of segments. ebp adds Encoder Boundary Point information to the adaptation
                      field as per OpenCable specification OC-SP-EBP-I01-130118. ebpLegacy adds
                      Encoder Boundary Point information to the adaptation field using a legacy
                      proprietary format.

                      - **SegmentationStyle** *(string) --* The segmentation style parameter
                      controls how segmentation markers are inserted into the transport stream. With
                      avails, it is possible that segments may be truncated, which can influence
                      where future segmentation markers are inserted. When a segmentation style of
                      "resetCadence" is selected and a segment is truncated due to an avail, we will
                      reset the segmentation cadence. This means the subsequent segment will have a
                      duration of $segmentationTime seconds. When a segmentation style of
                      "maintainCadence" is selected and a segment is truncated due to an avail, we
                      will not reset the segmentation cadence. This means the subsequent segment
                      will likely be truncated as well. However, all segments after that will have a
                      duration of $segmentationTime seconds. Note that EBP lookahead is a slight
                      exception to this rule.

                      - **SegmentationTime** *(float) --* The length in seconds of each segment.
                      Required unless markers is set to None_.

                      - **TimedMetadataBehavior** *(string) --* When set to passthrough, timed
                      metadata will be passed through from input to output.

                      - **TimedMetadataPid** *(string) --* Packet Identifier (PID) of the timed
                      metadata stream in the transport stream. Can be entered as a decimal or
                      hexadecimal value. Valid values are 32 (or 0x20)..8182 (or 0x1ff6).

                      - **TransportStreamId** *(integer) --* The value of the transport stream ID
                      field in the Program Map Table.

                      - **VideoPid** *(string) --* Packet Identifier (PID) of the elementary video
                      stream in the transport stream. Can be entered as a decimal or hexadecimal
                      value. Valid values are 32 (or 0x20)..8182 (or 0x1ff6).

                  - **Extension** *(string) --* Output file extension. If excluded, this will be
                  auto-selected from the container type.

                  - **NameModifier** *(string) --* String concatenated to the end of the destination
                  filename. Required for multiple outputs of the same type.

                - **FrameCaptureOutputSettings** *(dict) --* Frame Capture Output Settings

                  - **NameModifier** *(string) --* Required if the output group contains more than
                  one output. This modifier forms part of the output file name.

                - **HlsOutputSettings** *(dict) --* Hls Output Settings

                  - **HlsSettings** *(dict) --* Settings regarding the underlying stream. These
                  settings are different for audio-only outputs.

                    - **AudioOnlyHlsSettings** *(dict) --* Audio Only Hls Settings

                      - **AudioGroupId** *(string) --* Specifies the group to which the audio
                      Rendition belongs.

                      - **AudioOnlyImage** *(dict) --* Optional. Specifies the .jpg or .png image to
                      use as the cover art for an audio-only output. We recommend a low bit-size
                      file because the image increases the output audio bandwidth. The image is
                      attached to the audio as an ID3 tag, frame type APIC, picture type 0x10, as
                      per the "ID3 tag version 2.4.0 - Native Frames" standard.

                        - **PasswordParam** *(string) --* key used to extract the password from EC2
                        Parameter store

                        - **Uri** *(string) --* Uniform Resource Identifier - This should be a path
                        to a file accessible to the Live system (eg. a http:// URI) depending on the
                        output type. For example, a RTMP destination should have a uri simliar to:
                        "rtmp://fmsserver/live".

                        - **Username** *(string) --* Documentation update needed

                      - **AudioTrackType** *(string) --* Four types of audio-only tracks are
                      supported: Audio-Only Variant Stream The client can play back this audio-only
                      stream instead of video in low-bandwidth scenarios. Represented as an
                      EXT-X-STREAM-INF in the HLS manifest. Alternate Audio, Auto Select, Default
                      Alternate rendition that the client should try to play back by default.
                      Represented as an EXT-X-MEDIA in the HLS manifest with DEFAULT=YES,
                      AUTOSELECT=
                          YES Alternate Audio, Auto Select, Not Default Alternate rendition
                      that the client may try to play back by default. Represented as an EXT-X-MEDIA
                      in the HLS manifest with DEFAULT=NO, AUTOSELECT=
                          YES Alternate Audio, not Auto
                      Select Alternate rendition that the client will not try to play back by
                      default. Represented as an EXT-X-MEDIA in the HLS manifest with DEFAULT=NO,
                      AUTOSELECT=NO

                    - **StandardHlsSettings** *(dict) --* Standard Hls Settings

                      - **AudioRenditionSets** *(string) --* List all the audio groups that are used
                      with the video output stream. Input all the audio GROUP-IDs that are
                      associated to the video, separate by ','.

                      - **M3u8Settings** *(dict) --* Settings information for the .m3u8 container

                        - **AudioFramesPerPes** *(integer) --* The number of audio frames to insert
                        for each PES packet.

                        - **AudioPids** *(string) --* Packet Identifier (PID) of the elementary
                        audio stream(s) in the transport stream. Multiple values are accepted, and
                        can be entered in ranges and/or by comma separation. Can be entered as
                        decimal or hexadecimal values.

                        - **EcmPid** *(string) --* This parameter is unused and deprecated.

                        - **NielsenId3Behavior** *(string) --* If set to passthrough, Nielsen
                        inaudible tones for media tracking will be detected in the input audio and
                        an equivalent ID3 tag will be inserted in the output.

                        - **PatInterval** *(integer) --* The number of milliseconds between
                        instances of this table in the output transport stream. A value of \\"0\\"
                        writes out the PMT once per segment file.

                        - **PcrControl** *(string) --* When set to pcrEveryPesPacket, a Program
                        Clock Reference value is inserted for every Packetized Elementary Stream
                        (PES) header. This parameter is effective only when the PCR PID is the same
                        as the video or audio elementary stream.

                        - **PcrPeriod** *(integer) --* Maximum time in milliseconds between Program
                        Clock References (PCRs) inserted into the transport stream.

                        - **PcrPid** *(string) --* Packet Identifier (PID) of the Program Clock
                        Reference (PCR) in the transport stream. When no value is given, the encoder
                        will assign the same value as the Video PID. Can be entered as a decimal or
                        hexadecimal value.

                        - **PmtInterval** *(integer) --* The number of milliseconds between
                        instances of this table in the output transport stream. A value of \\"0\\"
                        writes out the PMT once per segment file.

                        - **PmtPid** *(string) --* Packet Identifier (PID) for the Program Map Table
                        (PMT) in the transport stream. Can be entered as a decimal or hexadecimal
                        value.

                        - **ProgramNum** *(integer) --* The value of the program number field in the
                        Program Map Table.

                        - **Scte35Behavior** *(string) --* If set to passthrough, passes any SCTE-35
                        signals from the input source to this output.

                        - **Scte35Pid** *(string) --* Packet Identifier (PID) of the SCTE-35 stream
                        in the transport stream. Can be entered as a decimal or hexadecimal value.

                        - **TimedMetadataBehavior** *(string) --* When set to passthrough, timed
                        metadata is passed through from input to output.

                        - **TimedMetadataPid** *(string) --* Packet Identifier (PID) of the timed
                        metadata stream in the transport stream. Can be entered as a decimal or
                        hexadecimal value. Valid values are 32 (or 0x20)..8182 (or 0x1ff6).

                        - **TransportStreamId** *(integer) --* The value of the transport stream ID
                        field in the Program Map Table.

                        - **VideoPid** *(string) --* Packet Identifier (PID) of the elementary video
                        stream in the transport stream. Can be entered as a decimal or hexadecimal
                        value.

                  - **NameModifier** *(string) --* String concatenated to the end of the destination
                  filename. Accepts \\"Format Identifiers\\":#formatIdentifierParameters.

                  - **SegmentModifier** *(string) --* String concatenated to end of segment
                  filenames.

                - **MediaPackageOutputSettings** *(dict) --* Media Package Output Settings

                - **MsSmoothOutputSettings** *(dict) --* Ms Smooth Output Settings

                  - **H265PackagingType** *(string) --* Only applicable when this output is
                  referencing an H.265 video description. Specifies whether MP4 segments should be
                  packaged as HEV1 or HVC1.

                  - **NameModifier** *(string) --* String concatenated to the end of the destination
                  filename. Required for multiple outputs of the same type.

                - **MultiplexOutputSettings** *(dict) --* Multiplex Output Settings

                  - **Destination** *(dict) --* Destination is a Multiplex.

                    - **DestinationRefId** *(string) --* Placeholder documentation for __string

                - **RtmpOutputSettings** *(dict) --* Rtmp Output Settings

                  - **CertificateMode** *(string) --* If set to verifyAuthenticity, verify the tls
                  certificate chain to a trusted Certificate Authority (CA). This will cause rtmps
                  outputs with self-signed certificates to fail.

                  - **ConnectionRetryInterval** *(integer) --* Number of seconds to wait before
                  retrying a connection to the Flash Media server if the connection is lost.

                  - **Destination** *(dict) --* The RTMP endpoint excluding the stream name (eg.
                  rtmp://host/appname). For connection to Akamai, a username and password must be
                  supplied. URI fields accept format identifiers.

                    - **DestinationRefId** *(string) --* Placeholder documentation for __string

                  - **NumRetries** *(integer) --* Number of retry attempts.

                - **UdpOutputSettings** *(dict) --* Udp Output Settings

                  - **BufferMsec** *(integer) --* UDP output buffering in milliseconds. Larger
                  values increase latency through the transcoder but simultaneously assist the
                  transcoder in maintaining a constant, low-jitter UDP/RTP output while
                  accommodating clock recovery, input switching, input disruptions, picture
                  reordering, etc.

                  - **ContainerSettings** *(dict) --* Udp Container Settings

                    - **M2tsSettings** *(dict) --* M2ts Settings

                      - **AbsentInputAudioBehavior** *(string) --* When set to drop, output audio
                      streams will be removed from the program if the selected input audio stream is
                      removed from the input. This allows the output audio configuration to
                      dynamically change based on input configuration. If this is set to
                      encodeSilence, all output audio streams will output encoded silence when not
                      connected to an active input stream.

                      - **Arib** *(string) --* When set to enabled, uses ARIB-compliant field muxing
                      and removes video descriptor.

                      - **AribCaptionsPid** *(string) --* Packet Identifier (PID) for ARIB Captions
                      in the transport stream. Can be entered as a decimal or hexadecimal value.
                      Valid values are 32 (or 0x20)..8182 (or 0x1ff6).

                      - **AribCaptionsPidControl** *(string) --* If set to auto, pid number used for
                      ARIB Captions will be auto-selected from unused pids. If set to useConfigured,
                      ARIB Captions will be on the configured pid number.

                      - **AudioBufferModel** *(string) --* When set to dvb, uses DVB buffer model
                      for Dolby Digital audio. When set to atsc, the ATSC model is used.

                      - **AudioFramesPerPes** *(integer) --* The number of audio frames to insert
                      for each PES packet.

                      - **AudioPids** *(string) --* Packet Identifier (PID) of the elementary audio
                      stream(s) in the transport stream. Multiple values are accepted, and can be
                      entered in ranges and/or by comma separation. Can be entered as decimal or
                      hexadecimal values. Each PID specified must be in the range of 32 (or
                      0x20)..8182 (or 0x1ff6).

                      - **AudioStreamType** *(string) --* When set to atsc, uses stream type = 0x81
                      for AC3 and stream type =
                           0x87 for EAC3. When set to dvb, uses stream type =
                      0x06.

                      - **Bitrate** *(integer) --* The output bitrate of the transport stream in
                      bits per second. Setting to 0 lets the muxer automatically determine the
                      appropriate bitrate.

                      - **BufferModel** *(string) --* If set to multiplex, use multiplex buffer
                      model for accurate interleaving. Setting to bufferModel to none can lead to
                      lower latency, but low-memory devices may not be able to play back the stream
                      without interruptions.

                      - **CcDescriptor** *(string) --* When set to enabled, generates
                      captionServiceDescriptor in PMT.

                      - **DvbNitSettings** *(dict) --* Inserts DVB Network Information Table (NIT)
                      at the specified table repetition interval.

                        - **NetworkId** *(integer) --* The numeric value placed in the Network
                        Information Table (NIT).

                        - **NetworkName** *(string) --* The network name text placed in the
                        networkNameDescriptor inside the Network Information Table. Maximum length
                        is 256 characters.

                        - **RepInterval** *(integer) --* The number of milliseconds between
                        instances of this table in the output transport stream.

                      - **DvbSdtSettings** *(dict) --* Inserts DVB Service Description Table (SDT)
                      at the specified table repetition interval.

                        - **OutputSdt** *(string) --* Selects method of inserting SDT information
                        into output stream. The sdtFollow setting copies SDT information from input
                        stream to output stream. The sdtFollowIfPresent setting copies SDT
                        information from input stream to output stream if SDT information is present
                        in the input, otherwise it will fall back on the user-defined values. The
                        sdtManual setting means user will enter the SDT information. The sdtNone
                        setting means output stream will not contain SDT information.

                        - **RepInterval** *(integer) --* The number of milliseconds between
                        instances of this table in the output transport stream.

                        - **ServiceName** *(string) --* The service name placed in the
                        serviceDescriptor in the Service Description Table. Maximum length is 256
                        characters.

                        - **ServiceProviderName** *(string) --* The service provider name placed in
                        the serviceDescriptor in the Service Description Table. Maximum length is
                        256 characters.

                      - **DvbSubPids** *(string) --* Packet Identifier (PID) for input source DVB
                      Subtitle data to this output. Multiple values are accepted, and can be entered
                      in ranges and/or by comma separation. Can be entered as decimal or hexadecimal
                      values. Each PID specified must be in the range of 32 (or 0x20)..8182 (or
                      0x1ff6).

                      - **DvbTdtSettings** *(dict) --* Inserts DVB Time and Date Table (TDT) at the
                      specified table repetition interval.

                        - **RepInterval** *(integer) --* The number of milliseconds between
                        instances of this table in the output transport stream.

                      - **DvbTeletextPid** *(string) --* Packet Identifier (PID) for input source
                      DVB Teletext data to this output. Can be entered as a decimal or hexadecimal
                      value. Valid values are 32 (or 0x20)..8182 (or 0x1ff6).

                      - **Ebif** *(string) --* If set to passthrough, passes any EBIF data from the
                      input source to this output.

                      - **EbpAudioInterval** *(string) --* When videoAndFixedIntervals is selected,
                      audio EBP markers will be added to partitions 3 and 4. The interval between
                      these additional markers will be fixed, and will be slightly shorter than the
                      video EBP marker interval. Only available when EBP Cablelabs segmentation
                      markers are selected. Partitions 1 and 2 will always follow the video
                      interval.

                      - **EbpLookaheadMs** *(integer) --* When set, enforces that Encoder Boundary
                      Points do not come within the specified time interval of each other by looking
                      ahead at input video. If another EBP is going to come in within the specified
                      time interval, the current EBP is not emitted, and the segment is "stretched"
                      to the next marker. The lookahead value does not add latency to the system.
                      The Live Event must be configured elsewhere to create sufficient latency to
                      make the lookahead accurate.

                      - **EbpPlacement** *(string) --* Controls placement of EBP on Audio PIDs. If
                      set to videoAndAudioPids, EBP markers will be placed on the video PID and all
                      audio PIDs. If set to videoPid, EBP markers will be placed on only the video
                      PID.

                      - **EcmPid** *(string) --* This field is unused and deprecated.

                      - **EsRateInPes** *(string) --* Include or exclude the ES Rate field in the
                      PES header.

                      - **EtvPlatformPid** *(string) --* Packet Identifier (PID) for input source
                      ETV Platform data to this output. Can be entered as a decimal or hexadecimal
                      value. Valid values are 32 (or 0x20)..8182 (or 0x1ff6).

                      - **EtvSignalPid** *(string) --* Packet Identifier (PID) for input source ETV
                      Signal data to this output. Can be entered as a decimal or hexadecimal value.
                      Valid values are 32 (or 0x20)..8182 (or 0x1ff6).

                      - **FragmentTime** *(float) --* The length in seconds of each fragment. Only
                      used with EBP markers.

                      - **Klv** *(string) --* If set to passthrough, passes any KLV data from the
                      input source to this output.

                      - **KlvDataPids** *(string) --* Packet Identifier (PID) for input source KLV
                      data to this output. Multiple values are accepted, and can be entered in
                      ranges and/or by comma separation. Can be entered as decimal or hexadecimal
                      values. Each PID specified must be in the range of 32 (or 0x20)..8182 (or
                      0x1ff6).

                      - **NielsenId3Behavior** *(string) --* If set to passthrough, Nielsen
                      inaudible tones for media tracking will be detected in the input audio and an
                      equivalent ID3 tag will be inserted in the output.

                      - **NullPacketBitrate** *(float) --* Value in bits per second of extra null
                      packets to insert into the transport stream. This can be used if a downstream
                      encryption system requires periodic null packets.

                      - **PatInterval** *(integer) --* The number of milliseconds between instances
                      of this table in the output transport stream. Valid values are 0, 10..1000.

                      - **PcrControl** *(string) --* When set to pcrEveryPesPacket, a Program Clock
                      Reference value is inserted for every Packetized Elementary Stream (PES)
                      header. This parameter is effective only when the PCR PID is the same as the
                      video or audio elementary stream.

                      - **PcrPeriod** *(integer) --* Maximum time in milliseconds between Program
                      Clock Reference (PCRs) inserted into the transport stream.

                      - **PcrPid** *(string) --* Packet Identifier (PID) of the Program Clock
                      Reference (PCR) in the transport stream. When no value is given, the encoder
                      will assign the same value as the Video PID. Can be entered as a decimal or
                      hexadecimal value. Valid values are 32 (or 0x20)..8182 (or 0x1ff6).

                      - **PmtInterval** *(integer) --* The number of milliseconds between instances
                      of this table in the output transport stream. Valid values are 0, 10..1000.

                      - **PmtPid** *(string) --* Packet Identifier (PID) for the Program Map Table
                      (PMT) in the transport stream. Can be entered as a decimal or hexadecimal
                      value. Valid values are 32 (or 0x20)..8182 (or 0x1ff6).

                      - **ProgramNum** *(integer) --* The value of the program number field in the
                      Program Map Table.

                      - **RateMode** *(string) --* When vbr, does not insert null packets into
                      transport stream to fill specified bitrate. The bitrate setting acts as the
                      maximum bitrate when vbr is set.

                      - **Scte27Pids** *(string) --* Packet Identifier (PID) for input source
                      SCTE-27 data to this output. Multiple values are accepted, and can be entered
                      in ranges and/or by comma separation. Can be entered as decimal or hexadecimal
                      values. Each PID specified must be in the range of 32 (or 0x20)..8182 (or
                      0x1ff6).

                      - **Scte35Control** *(string) --* Optionally pass SCTE-35 signals from the
                      input source to this output.

                      - **Scte35Pid** *(string) --* Packet Identifier (PID) of the SCTE-35 stream in
                      the transport stream. Can be entered as a decimal or hexadecimal value. Valid
                      values are 32 (or 0x20)..8182 (or 0x1ff6).

                      - **SegmentationMarkers** *(string) --* Inserts segmentation markers at each
                      segmentationTime period. raiSegstart sets the Random Access Indicator bit in
                      the adaptation field. raiAdapt sets the RAI bit and adds the current timecode
                      in the private data bytes. psiSegstart inserts PAT and PMT tables at the start
                      of segments. ebp adds Encoder Boundary Point information to the adaptation
                      field as per OpenCable specification OC-SP-EBP-I01-130118. ebpLegacy adds
                      Encoder Boundary Point information to the adaptation field using a legacy
                      proprietary format.

                      - **SegmentationStyle** *(string) --* The segmentation style parameter
                      controls how segmentation markers are inserted into the transport stream. With
                      avails, it is possible that segments may be truncated, which can influence
                      where future segmentation markers are inserted. When a segmentation style of
                      "resetCadence" is selected and a segment is truncated due to an avail, we will
                      reset the segmentation cadence. This means the subsequent segment will have a
                      duration of $segmentationTime seconds. When a segmentation style of
                      "maintainCadence" is selected and a segment is truncated due to an avail, we
                      will not reset the segmentation cadence. This means the subsequent segment
                      will likely be truncated as well. However, all segments after that will have a
                      duration of $segmentationTime seconds. Note that EBP lookahead is a slight
                      exception to this rule.

                      - **SegmentationTime** *(float) --* The length in seconds of each segment.
                      Required unless markers is set to None_.

                      - **TimedMetadataBehavior** *(string) --* When set to passthrough, timed
                      metadata will be passed through from input to output.

                      - **TimedMetadataPid** *(string) --* Packet Identifier (PID) of the timed
                      metadata stream in the transport stream. Can be entered as a decimal or
                      hexadecimal value. Valid values are 32 (or 0x20)..8182 (or 0x1ff6).

                      - **TransportStreamId** *(integer) --* The value of the transport stream ID
                      field in the Program Map Table.

                      - **VideoPid** *(string) --* Packet Identifier (PID) of the elementary video
                      stream in the transport stream. Can be entered as a decimal or hexadecimal
                      value. Valid values are 32 (or 0x20)..8182 (or 0x1ff6).

                  - **Destination** *(dict) --* Destination address and port number for RTP or UDP
                  packets. Can be unicast or multicast RTP or UDP (eg. rtp://239.10.10.10:5001 or
                  udp://10.100.100.100:5002).

                    - **DestinationRefId** *(string) --* Placeholder documentation for __string

                  - **FecOutputSettings** *(dict) --* Settings for enabling and adjusting Forward
                  Error Correction on UDP outputs.

                    - **ColumnDepth** *(integer) --* Parameter D from SMPTE 2022-1. The height of
                    the FEC protection matrix. The number of transport stream packets per column
                    error correction packet. Must be between 4 and 20, inclusive.

                    - **IncludeFec** *(string) --* Enables column only or column and row based FEC

                    - **RowLength** *(integer) --* Parameter L from SMPTE 2022-1. The width of the
                    FEC protection matrix. Must be between 1 and 20, inclusive. If only Column FEC
                    is used, then larger values increase robustness. If Row FEC is used, then this
                    is the number of transport stream packets per row error correction packet, and
                    the value must be between 4 and 20, inclusive, if includeFec is columnAndRow. If
                    includeFec is column, this value must be 1 to 20, inclusive.

              - **VideoDescriptionName** *(string) --* The name of the VideoDescription used as the
              source for this output.

      - **TimecodeConfig** *(dict) --* Contains settings used to acquire and adjust timecode
      information from inputs.

        - **Source** *(string) --* Identifies the source for the timecode that will be associated
        with the events outputs. -Embedded (embedded): Initialize the output timecode with timecode
        from the the source. If no embedded timecode is detected in the source, the system falls
        back to using "Start at 0" (zerobased). -System Clock (systemclock): Use the UTC time.
        -Start at 0 (zerobased): The time of the first frame of the event will be 00:00:00:00.

        - **SyncThreshold** *(integer) --* Threshold in frames beyond which output timecode is
        resynchronized to the input timecode. Discrepancies below this threshold are permitted to
        avoid unnecessary discontinuities in the output timecode. No timecode sync when this is not
        specified.

      - **VideoDescriptions** *(list) --* Placeholder documentation for __listOfVideoDescription

        - *(dict) --* Video settings for this stream.

          - **CodecSettings** *(dict) --* Video codec settings.

            - **FrameCaptureSettings** *(dict) --* Frame Capture Settings

              - **CaptureInterval** *(integer) --* The frequency at which to capture frames for
              inclusion in the output. May be specified in either seconds or milliseconds, as
              specified by captureIntervalUnits.

            - **H264Settings** *(dict) --* H264 Settings

              - **AdaptiveQuantization** *(string) --* Adaptive quantization. Allows intra-frame
              quantizers to vary to improve visual quality.

              - **AfdSignaling** *(string) --* Indicates that AFD values will be written into the
              output stream. If afdSignaling is "auto", the system will try to preserve the input
              AFD value (in cases where multiple AFD values are valid). If set to "fixed", the AFD
              value will be the value configured in the fixedAfd parameter.

              - **Bitrate** *(integer) --* Average bitrate in bits/second. Required when the rate
              control mode is VBR or CBR. Not used for QVBR. In an MS Smooth output group, each
              output must have a unique value when its bitrate is rounded down to the nearest
              multiple of 1000.

              - **BufFillPct** *(integer) --* Percentage of the buffer that should initially be
              filled (HRD buffer model).

              - **BufSize** *(integer) --* Size of buffer (HRD buffer model) in bits.

              - **ColorMetadata** *(string) --* Includes colorspace metadata in the output.

              - **ColorSpaceSettings** *(dict) --* Color Space settings

                - **ColorSpacePassthroughSettings** *(dict) --* Passthrough applies no color space
                conversion to the output

                - **Rec601Settings** *(dict) --* Rec601 Settings

                - **Rec709Settings** *(dict) --* Rec709 Settings

              - **EntropyEncoding** *(string) --* Entropy encoding mode. Use cabac (must be in Main
              or High profile) or cavlc.

              - **FixedAfd** *(string) --* Four bit AFD value to write on all frames of video in the
              output stream. Only valid when afdSignaling is set to 'Fixed'.

              - **FlickerAq** *(string) --* If set to enabled, adjust quantization within each frame
              to reduce flicker or 'pop' on I-frames.

              - **FramerateControl** *(string) --* This field indicates how the output video frame
              rate is specified. If "specified" is selected then the output video frame rate is
              determined by framerateNumerator and framerateDenominator, else if
              "initializeFromSource" is selected then the output video frame rate will be set equal
              to the input video frame rate of the first input.

              - **FramerateDenominator** *(integer) --* Framerate denominator.

              - **FramerateNumerator** *(integer) --* Framerate numerator - framerate is a fraction,
              e.g. 24000 / 1001 = 23.976 fps.

              - **GopBReference** *(string) --* Documentation update needed

              - **GopClosedCadence** *(integer) --* Frequency of closed GOPs. In streaming
              applications, it is recommended that this be set to 1 so a decoder joining mid-stream
              will receive an IDR frame as quickly as possible. Setting this value to 0 will break
              output segmenting.

              - **GopNumBFrames** *(integer) --* Number of B-frames between reference frames.

              - **GopSize** *(float) --* GOP size (keyframe interval) in units of either frames or
              seconds per gopSizeUnits. If gopSizeUnits is frames, gopSize must be an integer and
              must be greater than or equal to 1. If gopSizeUnits is seconds, gopSize must be
              greater than 0, but need not be an integer.

              - **GopSizeUnits** *(string) --* Indicates if the gopSize is specified in frames or
              seconds. If seconds the system will convert the gopSize into a frame count at run
              time.

              - **Level** *(string) --* H.264 Level.

              - **LookAheadRateControl** *(string) --* Amount of lookahead. A value of low can
              decrease latency and memory usage, while high can produce better quality for certain
              content.

              - **MaxBitrate** *(integer) --* For QVBR: See the tooltip for Quality level For VBR:
              Set the maximum bitrate in order to accommodate expected spikes in the complexity of
              the video.

              - **MinIInterval** *(integer) --* Only meaningful if sceneChangeDetect is set to
              enabled. Defaults to 5 if multiplex rate control is used. Enforces separation between
              repeated (cadence) I-frames and I-frames inserted by Scene Change Detection. If a
              scene change I-frame is within I-interval frames of a cadence I-frame, the GOP is
              shrunk and/or stretched to the scene change I-frame. GOP stretch requires enabling
              lookahead as well as setting I-interval. The normal cadence resumes for the next GOP.
              Note: Maximum GOP stretch = GOP size + Min-I-interval - 1

              - **NumRefFrames** *(integer) --* Number of reference frames to use. The encoder may
              use more than requested if using B-frames and/or interlaced encoding.

              - **ParControl** *(string) --* This field indicates how the output pixel aspect ratio
              is specified. If "specified" is selected then the output video pixel aspect ratio is
              determined by parNumerator and parDenominator, else if "initializeFromSource" is
              selected then the output pixsel aspect ratio will be set equal to the input video
              pixel aspect ratio of the first input.

              - **ParDenominator** *(integer) --* Pixel Aspect Ratio denominator.

              - **ParNumerator** *(integer) --* Pixel Aspect Ratio numerator.

              - **Profile** *(string) --* H.264 Profile.

              - **QvbrQualityLevel** *(integer) --* Controls the target quality for the video
              encode. Applies only when the rate control mode is QVBR. Set values for the QVBR
              quality level field and Max bitrate field that suit your most important viewing
              devices. Recommended values are: - Primary screen: Quality level: 8 to 10. Max
              bitrate: 4M - PC or tablet: Quality level: 7. Max bitrate: 1.5M to 3M - Smartphone:
              Quality level: 6. Max bitrate: 1M to 1.5M

              - **RateControlMode** *(string) --* Rate control mode. QVBR: Quality will match the
              specified quality level except when it is constrained by the maximum bitrate.
              Recommended if you or your viewers pay for bandwidth. VBR: Quality and bitrate vary,
              depending on the video complexity. Recommended instead of QVBR if you want to maintain
              a specific average bitrate over the duration of the channel. CBR: Quality varies,
              depending on the video complexity. Recommended only if you distribute your assets to
              devices that cannot handle variable bitrates.

              - **ScanType** *(string) --* Sets the scan type of the output to progressive or
              top-field-first interlaced.

              - **SceneChangeDetect** *(string) --* Scene change detection. - On: inserts I-frames
              when scene change is detected. - Off: does not force an I-frame when scene change is
              detected.

              - **Slices** *(integer) --* Number of slices per picture. Must be less than or equal
              to the number of macroblock rows for progressive pictures, and less than or equal to
              half the number of macroblock rows for interlaced pictures. This field is optional;
              when no value is specified the encoder will choose the number of slices based on
              encode resolution.

              - **Softness** *(integer) --* Softness. Selects quantizer matrix, larger values reduce
              high-frequency content in the encoded image.

              - **SpatialAq** *(string) --* If set to enabled, adjust quantization within each frame
              based on spatial variation of content complexity.

              - **SubgopLength** *(string) --* If set to fixed, use gopNumBFrames B-frames per
              sub-GOP. If set to dynamic, optimize the number of B-frames used for each sub-GOP to
              improve visual quality.

              - **Syntax** *(string) --* Produces a bitstream compliant with SMPTE RP-2027.

              - **TemporalAq** *(string) --* If set to enabled, adjust quantization within each
              frame based on temporal variation of content complexity.

              - **TimecodeInsertion** *(string) --* Determines how timecodes should be inserted into
              the video elementary stream. - 'disabled': Do not include timecodes - 'picTimingSei':
              Pass through picture timing SEI messages from the source specified in Timecode Config

            - **H265Settings** *(dict) --* H265 Settings

              - **AdaptiveQuantization** *(string) --* Adaptive quantization. Allows intra-frame
              quantizers to vary to improve visual quality.

              - **AfdSignaling** *(string) --* Indicates that AFD values will be written into the
              output stream. If afdSignaling is "auto", the system will try to preserve the input
              AFD value (in cases where multiple AFD values are valid). If set to "fixed", the AFD
              value will be the value configured in the fixedAfd parameter.

              - **AlternativeTransferFunction** *(string) --* Whether or not EML should insert an
              Alternative Transfer Function SEI message to support backwards compatibility with
              non-HDR decoders and displays.

              - **Bitrate** *(integer) --* Average bitrate in bits/second. Required when the rate
              control mode is VBR or CBR. Not used for QVBR. In an MS Smooth output group, each
              output must have a unique value when its bitrate is rounded down to the nearest
              multiple of 1000.

              - **BufSize** *(integer) --* Size of buffer (HRD buffer model) in bits.

              - **ColorMetadata** *(string) --* Includes colorspace metadata in the output.

              - **ColorSpaceSettings** *(dict) --* Color Space settings

                - **ColorSpacePassthroughSettings** *(dict) --* Passthrough applies no color space
                conversion to the output

                - **Hdr10Settings** *(dict) --* Hdr10 Settings

                  - **MaxCll** *(integer) --* Maximum Content Light Level An integer metadata value
                  defining the maximum light level, in nits, of any single pixel within an encoded
                  HDR video stream or file.

                  - **MaxFall** *(integer) --* Maximum Frame Average Light Level An integer metadata
                  value defining the maximum average light level, in nits, for any single frame
                  within an encoded HDR video stream or file.

                - **Rec601Settings** *(dict) --* Rec601 Settings

                - **Rec709Settings** *(dict) --* Rec709 Settings

              - **FixedAfd** *(string) --* Four bit AFD value to write on all frames of video in the
              output stream. Only valid when afdSignaling is set to 'Fixed'.

              - **FlickerAq** *(string) --* If set to enabled, adjust quantization within each frame
              to reduce flicker or 'pop' on I-frames.

              - **FramerateDenominator** *(integer) --* Framerate denominator.

              - **FramerateNumerator** *(integer) --* Framerate numerator - framerate is a fraction,
              e.g. 24000 / 1001 = 23.976 fps.

              - **GopClosedCadence** *(integer) --* Frequency of closed GOPs. In streaming
              applications, it is recommended that this be set to 1 so a decoder joining mid-stream
              will receive an IDR frame as quickly as possible. Setting this value to 0 will break
              output segmenting.

              - **GopSize** *(float) --* GOP size (keyframe interval) in units of either frames or
              seconds per gopSizeUnits. If gopSizeUnits is frames, gopSize must be an integer and
              must be greater than or equal to 1. If gopSizeUnits is seconds, gopSize must be
              greater than 0, but need not be an integer.

              - **GopSizeUnits** *(string) --* Indicates if the gopSize is specified in frames or
              seconds. If seconds the system will convert the gopSize into a frame count at run
              time.

              - **Level** *(string) --* H.265 Level.

              - **LookAheadRateControl** *(string) --* Amount of lookahead. A value of low can
              decrease latency and memory usage, while high can produce better quality for certain
              content.

              - **MaxBitrate** *(integer) --* For QVBR: See the tooltip for Quality level

              - **MinIInterval** *(integer) --* Only meaningful if sceneChangeDetect is set to
              enabled. Defaults to 5 if multiplex rate control is used. Enforces separation between
              repeated (cadence) I-frames and I-frames inserted by Scene Change Detection. If a
              scene change I-frame is within I-interval frames of a cadence I-frame, the GOP is
              shrunk and/or stretched to the scene change I-frame. GOP stretch requires enabling
              lookahead as well as setting I-interval. The normal cadence resumes for the next GOP.
              Note: Maximum GOP stretch = GOP size + Min-I-interval - 1

              - **ParDenominator** *(integer) --* Pixel Aspect Ratio denominator.

              - **ParNumerator** *(integer) --* Pixel Aspect Ratio numerator.

              - **Profile** *(string) --* H.265 Profile.

              - **QvbrQualityLevel** *(integer) --* Controls the target quality for the video
              encode. Applies only when the rate control mode is QVBR. Set values for the QVBR
              quality level field and Max bitrate field that suit your most important viewing
              devices. Recommended values are: - Primary screen: Quality level: 8 to 10. Max
              bitrate: 4M - PC or tablet: Quality level: 7. Max bitrate: 1.5M to 3M - Smartphone:
              Quality level: 6. Max bitrate: 1M to 1.5M

              - **RateControlMode** *(string) --* Rate control mode. QVBR: Quality will match the
              specified quality level except when it is constrained by the maximum bitrate.
              Recommended if you or your viewers pay for bandwidth. CBR: Quality varies, depending
              on the video complexity. Recommended only if you distribute your assets to devices
              that cannot handle variable bitrates.

              - **ScanType** *(string) --* Sets the scan type of the output to progressive or
              top-field-first interlaced.

              - **SceneChangeDetect** *(string) --* Scene change detection.

              - **Slices** *(integer) --* Number of slices per picture. Must be less than or equal
              to the number of macroblock rows for progressive pictures, and less than or equal to
              half the number of macroblock rows for interlaced pictures. This field is optional;
              when no value is specified the encoder will choose the number of slices based on
              encode resolution.

              - **Tier** *(string) --* H.265 Tier.

              - **TimecodeInsertion** *(string) --* Determines how timecodes should be inserted into
              the video elementary stream. - 'disabled': Do not include timecodes - 'picTimingSei':
              Pass through picture timing SEI messages from the source specified in Timecode Config

          - **Height** *(integer) --* Output video height, in pixels. Must be an even number. For
          most codecs, you can leave this field and width blank in order to use the height and width
          (resolution) from the source. Note, however, that leaving blank is not recommended. For
          the Frame Capture codec, height and width are required.

          - **Name** *(string) --* The name of this VideoDescription. Outputs will use this name to
          uniquely identify this Description. Description names should be unique within this Live
          Event.

          - **RespondToAfd** *(string) --* Indicates how to respond to the AFD values in the input
          stream. RESPOND causes input video to be clipped, depending on the AFD value, input
          display aspect ratio, and output display aspect ratio, and (except for FRAMECAPTURE codec)
          includes the values in the output. PASSTHROUGH (does not apply to FRAMECAPTURE codec)
          ignores the AFD values and includes the values in the output, so input video is not
          clipped. NONE ignores the AFD values and does not include the values through to the
          output, so input video is not clipped.

          - **ScalingBehavior** *(string) --* STRETCHTOOUTPUT configures the output position to
          stretch the video to the specified output resolution (height and width). This option will
          override any position value. DEFAULT may insert black boxes (pillar boxes or letter boxes)
          around the video to provide the specified output resolution.

          - **Sharpness** *(integer) --* Changes the strength of the anti-alias filter used for
          scaling. 0 is the softest setting, 100 is the sharpest. A setting of 50 is recommended for
          most content.

          - **Width** *(integer) --* Output video width, in pixels. Must be an even number. For most
          codecs, you can leave this field and height blank in order to use the height and width
          (resolution) from the source. Note, however, that leaving blank is not recommended. For
          the Frame Capture codec, height and width are required.

    - **Id** *(string) --* The unique id of the channel.

    - **InputAttachments** *(list) --* List of input attachments for channel.

      - *(dict) --* Placeholder documentation for InputAttachment

        - **InputAttachmentName** *(string) --* User-specified name for the attachment. This is
        required if the user wants to use this input in an input switch action.

        - **InputId** *(string) --* The ID of the input

        - **InputSettings** *(dict) --* Settings of an input (caption selector, etc.)

          - **AudioSelectors** *(list) --* Used to select the audio stream to decode for inputs that
          have multiple available.

            - *(dict) --* Audio Selector

              - **Name** *(string) --* The name of this AudioSelector. AudioDescriptions will use
              this name to uniquely identify this Selector. Selector names should be unique per
              input.

              - **SelectorSettings** *(dict) --* The audio selector settings.

                - **AudioLanguageSelection** *(dict) --* Audio Language Selection

                  - **LanguageCode** *(string) --* Selects a specific three-letter language code
                  from within an audio source.

                  - **LanguageSelectionPolicy** *(string) --* When set to "strict", the transport
                  stream demux strictly identifies audio streams by their language descriptor. If a
                  PMT update occurs such that an audio stream matching the initially selected
                  language is no longer present then mute will be encoded until the language
                  returns. If "loose", then on a PMT update the demux will choose another audio
                  stream in the program with the same stream type if it can't find one with the same
                  language.

                - **AudioPidSelection** *(dict) --* Audio Pid Selection

                  - **Pid** *(integer) --* Selects a specific PID from within a source.

          - **CaptionSelectors** *(list) --* Used to select the caption input to use for inputs that
          have multiple available.

            - *(dict) --* Output groups for this Live Event. Output groups contain information about
            where streams should be distributed.

              - **LanguageCode** *(string) --* When specified this field indicates the three letter
              language code of the caption track to extract from the source.

              - **Name** *(string) --* Name identifier for a caption selector. This name is used to
              associate this caption selector with one or more caption descriptions. Names must be
              unique within an event.

              - **SelectorSettings** *(dict) --* Caption selector settings.

                - **AribSourceSettings** *(dict) --* Arib Source Settings

                - **DvbSubSourceSettings** *(dict) --* Dvb Sub Source Settings

                  - **Pid** *(integer) --* When using DVB-Sub with Burn-In or SMPTE-TT, use this PID
                  for the source content. Unused for DVB-Sub passthrough. All DVB-Sub content is
                  passed through, regardless of selectors.

                - **EmbeddedSourceSettings** *(dict) --* Embedded Source Settings

                  - **Convert608To708** *(string) --* If upconvert, 608 data is both passed through
                  via the "608 compatibility bytes" fields of the 708 wrapper as well as translated
                  into 708. 708 data present in the source content will be discarded.

                  - **Scte20Detection** *(string) --* Set to "auto" to handle streams with
                  intermittent and/or non-aligned SCTE-20 and Embedded captions.

                  - **Source608ChannelNumber** *(integer) --* Specifies the 608/708 channel number
                  within the video track from which to extract captions. Unused for passthrough.

                  - **Source608TrackNumber** *(integer) --* This field is unused and deprecated.

                - **Scte20SourceSettings** *(dict) --* Scte20 Source Settings

                  - **Convert608To708** *(string) --* If upconvert, 608 data is both passed through
                  via the "608 compatibility bytes" fields of the 708 wrapper as well as translated
                  into 708. 708 data present in the source content will be discarded.

                  - **Source608ChannelNumber** *(integer) --* Specifies the 608/708 channel number
                  within the video track from which to extract captions. Unused for passthrough.

                - **Scte27SourceSettings** *(dict) --* Scte27 Source Settings

                  - **Pid** *(integer) --* The pid field is used in conjunction with the caption
                  selector languageCode field as follows: - Specify PID and Language: Extracts
                  captions from that PID; the language is "informational". - Specify PID and omit
                  Language: Extracts the specified PID. - Omit PID and specify Language: Extracts
                  the specified language, whichever PID that happens to be. - Omit PID and omit
                  Language: Valid only if source is DVB-Sub that is being passed through; all
                  languages will be passed through.

                - **TeletextSourceSettings** *(dict) --* Teletext Source Settings

                  - **PageNumber** *(string) --* Specifies the teletext page number within the data
                  stream from which to extract captions. Range of 0x100 (256) to 0x8FF (2303).
                  Unused for passthrough. Should be specified as a hexadecimal string with no "0x"
                  prefix.

          - **DeblockFilter** *(string) --* Enable or disable the deblock filter when filtering.

          - **DenoiseFilter** *(string) --* Enable or disable the denoise filter when filtering.

          - **FilterStrength** *(integer) --* Adjusts the magnitude of filtering from 1 (minimal) to
          5 (strongest).

          - **InputFilter** *(string) --* Turns on the filter for this input. MPEG-2 inputs have the
          deblocking filter enabled by default. 1) auto - filtering will be applied depending on
          input type/quality 2) disabled - no filtering will be applied to the input 3) forced -
          filtering will be applied regardless of input type

          - **NetworkInputSettings** *(dict) --* Input settings.

            - **HlsInputSettings** *(dict) --* Specifies HLS input settings when the uri is for a
            HLS manifest.

              - **Bandwidth** *(integer) --* When specified the HLS stream with the m3u8 BANDWIDTH
              that most closely matches this value will be chosen, otherwise the highest bandwidth
              stream in the m3u8 will be chosen. The bitrate is specified in bits per second, as in
              an HLS manifest.

              - **BufferSegments** *(integer) --* When specified, reading of the HLS input will
              begin this many buffer segments from the end (most recently written segment). When not
              specified, the HLS input will begin with the first segment specified in the m3u8.

              - **Retries** *(integer) --* The number of consecutive times that attempts to read a
              manifest or segment must fail before the input is considered unavailable.

              - **RetryInterval** *(integer) --* The number of seconds between retries when an
              attempt to read a manifest or segment fails.

            - **ServerValidation** *(string) --* Check HTTPS server certificates. When set to
            checkCryptographyOnly, cryptography in the certificate will be checked, but not the
            server's name. Certain subdomains (notably S3 buckets that use dots in the bucket name)
            do not strictly match the corresponding certificate's wildcard pattern and would
            otherwise cause the event to error. This setting is ignored for protocols that do not
            use https.

          - **SourceEndBehavior** *(string) --* Loop input if it is a file. This allows a file input
          to be streamed indefinitely.

          - **VideoSelector** *(dict) --* Informs which video elementary stream to decode for input
          types that have multiple available.

            - **ColorSpace** *(string) --* Specifies the color space of an input. This setting works
            in tandem with colorSpaceUsage and a video description's colorSpaceSettingsChoice to
            determine if any conversion will be performed.

            - **ColorSpaceUsage** *(string) --* Applies only if colorSpace is a value other than
            follow. This field controls how the value in the colorSpace field will be used. fallback
            means that when the input does include color space data, that data will be used, but
            when the input has no color space data, the value in colorSpace will be used. Choose
            fallback if your input is sometimes missing color space data, but when it does have
            color space data, that data is correct. force means to always use the value in
            colorSpace. Choose force if your input usually has no color space data or might have
            unreliable color space data.

            - **SelectorSettings** *(dict) --* The video selector settings.

              - **VideoSelectorPid** *(dict) --* Video Selector Pid

                - **Pid** *(integer) --* Selects a specific PID from within a video source.

              - **VideoSelectorProgramId** *(dict) --* Video Selector Program Id

                - **ProgramId** *(integer) --* Selects a specific program from within a
                multi-program transport stream. If the program doesn't exist, the first program
                within the transport stream will be selected by default.

    - **InputSpecification** *(dict) --* Placeholder documentation for InputSpecification

      - **Codec** *(string) --* Input codec

      - **MaximumBitrate** *(string) --* Maximum input bitrate, categorized coarsely

      - **Resolution** *(string) --* Input resolution, categorized coarsely

    - **LogLevel** *(string) --* The log level being written to CloudWatch Logs.

    - **Name** *(string) --* The name of the channel. (user-mutable)

    - **PipelineDetails** *(list) --* Runtime details for the pipelines of a running channel.

      - *(dict) --* Runtime details of a pipeline when a channel is running.

        - **ActiveInputAttachmentName** *(string) --* The name of the active input attachment
        currently being ingested by this pipeline.

        - **ActiveInputSwitchActionName** *(string) --* The name of the input switch schedule action
        that occurred most recently and that resulted in the switch to the current input attachment
        for this pipeline.

        - **PipelineId** *(string) --* Pipeline ID

    - **PipelinesRunningCount** *(integer) --* The number of currently healthy pipelines.

    - **RoleArn** *(string) --* The Amazon Resource Name (ARN) of the role assumed when running the
    Channel.

    - **State** *(string) --* Placeholder documentation for ChannelState

    - **Tags** *(dict) --* A collection of key-value pairs.

      - *(string) --* Placeholder documentation for __string

        - *(string) --* Placeholder documentation for __string
    """


_ClientStopMultiplexResponseDestinationsMediaConnectSettingsTypeDef = TypedDict(
    "_ClientStopMultiplexResponseDestinationsMediaConnectSettingsTypeDef",
    {"EntitlementArn": str},
    total=False,
)


class ClientStopMultiplexResponseDestinationsMediaConnectSettingsTypeDef(
    _ClientStopMultiplexResponseDestinationsMediaConnectSettingsTypeDef
):
    """
    Type definition for `ClientStopMultiplexResponseDestinations` `MediaConnectSettings`

    - **EntitlementArn** *(string) --* The MediaConnect entitlement ARN available as a Flow source.
    """


_ClientStopMultiplexResponseDestinationsTypeDef = TypedDict(
    "_ClientStopMultiplexResponseDestinationsTypeDef",
    {"MediaConnectSettings": ClientStopMultiplexResponseDestinationsMediaConnectSettingsTypeDef},
    total=False,
)


class ClientStopMultiplexResponseDestinationsTypeDef(
    _ClientStopMultiplexResponseDestinationsTypeDef
):
    """
    Type definition for `ClientStopMultiplexResponse` `Destinations`

    - **MediaConnectSettings** *(dict) --* Multiplex MediaConnect output destination settings.

      - **EntitlementArn** *(string) --* The MediaConnect entitlement ARN available as a Flow
      source.
    """


_ClientStopMultiplexResponseMultiplexSettingsTypeDef = TypedDict(
    "_ClientStopMultiplexResponseMultiplexSettingsTypeDef",
    {
        "MaximumVideoBufferDelayMilliseconds": int,
        "TransportStreamBitrate": int,
        "TransportStreamId": int,
        "TransportStreamReservedBitrate": int,
    },
    total=False,
)


class ClientStopMultiplexResponseMultiplexSettingsTypeDef(
    _ClientStopMultiplexResponseMultiplexSettingsTypeDef
):
    """
    Type definition for `ClientStopMultiplexResponse` `MultiplexSettings`

    - **MaximumVideoBufferDelayMilliseconds** *(integer) --* Maximum video buffer delay in
    milliseconds.

    - **TransportStreamBitrate** *(integer) --* Transport stream bit rate.

    - **TransportStreamId** *(integer) --* Transport stream ID.

    - **TransportStreamReservedBitrate** *(integer) --* Transport stream reserved bit rate.
    """


_ClientStopMultiplexResponseTypeDef = TypedDict(
    "_ClientStopMultiplexResponseTypeDef",
    {
        "Arn": str,
        "AvailabilityZones": List[str],
        "Destinations": List[ClientStopMultiplexResponseDestinationsTypeDef],
        "Id": str,
        "MultiplexSettings": ClientStopMultiplexResponseMultiplexSettingsTypeDef,
        "Name": str,
        "PipelinesRunningCount": int,
        "ProgramCount": int,
        "State": str,
        "Tags": Dict[str, str],
    },
    total=False,
)


class ClientStopMultiplexResponseTypeDef(_ClientStopMultiplexResponseTypeDef):
    """
    Type definition for `ClientStopMultiplex` `Response`

    - **Arn** *(string) --* The unique arn of the multiplex.

    - **AvailabilityZones** *(list) --* A list of availability zones for the multiplex.

      - *(string) --* Placeholder documentation for __string

    - **Destinations** *(list) --* A list of the multiplex output destinations.

      - *(dict) --* Multiplex output destination settings

        - **MediaConnectSettings** *(dict) --* Multiplex MediaConnect output destination settings.

          - **EntitlementArn** *(string) --* The MediaConnect entitlement ARN available as a Flow
          source.

    - **Id** *(string) --* The unique id of the multiplex.

    - **MultiplexSettings** *(dict) --* Configuration for a multiplex event.

      - **MaximumVideoBufferDelayMilliseconds** *(integer) --* Maximum video buffer delay in
      milliseconds.

      - **TransportStreamBitrate** *(integer) --* Transport stream bit rate.

      - **TransportStreamId** *(integer) --* Transport stream ID.

      - **TransportStreamReservedBitrate** *(integer) --* Transport stream reserved bit rate.

    - **Name** *(string) --* The name of the multiplex.

    - **PipelinesRunningCount** *(integer) --* The number of currently healthy pipelines.

    - **ProgramCount** *(integer) --* The number of programs in the multiplex.

    - **State** *(string) --* The current state of the multiplex.

    - **Tags** *(dict) --* A collection of key-value pairs.

      - *(string) --* Placeholder documentation for __string

        - *(string) --* Placeholder documentation for __string
    """


_ClientUpdateChannelClassDestinationsMediaPackageSettingsTypeDef = TypedDict(
    "_ClientUpdateChannelClassDestinationsMediaPackageSettingsTypeDef",
    {"ChannelId": str},
    total=False,
)


class ClientUpdateChannelClassDestinationsMediaPackageSettingsTypeDef(
    _ClientUpdateChannelClassDestinationsMediaPackageSettingsTypeDef
):
    """
    Type definition for `ClientUpdateChannelClassDestinations` `MediaPackageSettings`

    - **ChannelId** *(string) --* ID of the channel in MediaPackage that is the destination for this
    output group. You do not need to specify the individual inputs in MediaPackage; MediaLive will
    handle the connection of the two MediaLive pipelines to the two MediaPackage inputs. The
    MediaPackage channel and MediaLive channel must be in the same region.
    """


_ClientUpdateChannelClassDestinationsMultiplexSettingsTypeDef = TypedDict(
    "_ClientUpdateChannelClassDestinationsMultiplexSettingsTypeDef",
    {"MultiplexId": str, "ProgramName": str},
    total=False,
)


class ClientUpdateChannelClassDestinationsMultiplexSettingsTypeDef(
    _ClientUpdateChannelClassDestinationsMultiplexSettingsTypeDef
):
    """
    Type definition for `ClientUpdateChannelClassDestinations` `MultiplexSettings`

    - **MultiplexId** *(string) --* The ID of the Multiplex that the encoder is providing output to.
    You do not need to specify the individual inputs to the Multiplex; MediaLive will handle the
    connection of the two MediaLive pipelines to the two Multiplex instances. The Multiplex must be
    in the same region as the Channel.

    - **ProgramName** *(string) --* The program name of the Multiplex program that the encoder is
    providing output to.
    """


_ClientUpdateChannelClassDestinationsSettingsTypeDef = TypedDict(
    "_ClientUpdateChannelClassDestinationsSettingsTypeDef",
    {"PasswordParam": str, "StreamName": str, "Url": str, "Username": str},
    total=False,
)


class ClientUpdateChannelClassDestinationsSettingsTypeDef(
    _ClientUpdateChannelClassDestinationsSettingsTypeDef
):
    """
    Type definition for `ClientUpdateChannelClassDestinations` `Settings`

    - **PasswordParam** *(string) --* key used to extract the password from EC2 Parameter store

    - **StreamName** *(string) --* Stream name for RTMP destinations (URLs of type rtmp://)

    - **Url** *(string) --* A URL specifying a destination

    - **Username** *(string) --* username for destination
    """


_ClientUpdateChannelClassDestinationsTypeDef = TypedDict(
    "_ClientUpdateChannelClassDestinationsTypeDef",
    {
        "Id": str,
        "MediaPackageSettings": List[
            ClientUpdateChannelClassDestinationsMediaPackageSettingsTypeDef
        ],
        "MultiplexSettings": ClientUpdateChannelClassDestinationsMultiplexSettingsTypeDef,
        "Settings": List[ClientUpdateChannelClassDestinationsSettingsTypeDef],
    },
    total=False,
)


class ClientUpdateChannelClassDestinationsTypeDef(_ClientUpdateChannelClassDestinationsTypeDef):
    """
    Type definition for `ClientUpdateChannelClass` `Destinations`

    - **Id** *(string) --* User-specified id. This is used in an output group or an output.

    - **MediaPackageSettings** *(list) --* Destination settings for a MediaPackage output; one
    destination for both encoders.

      - *(dict) --* MediaPackage Output Destination Settings

        - **ChannelId** *(string) --* ID of the channel in MediaPackage that is the destination for
        this output group. You do not need to specify the individual inputs in MediaPackage;
        MediaLive will handle the connection of the two MediaLive pipelines to the two MediaPackage
        inputs. The MediaPackage channel and MediaLive channel must be in the same region.

    - **MultiplexSettings** *(dict) --* Destination settings for a Multiplex output; one destination
    for both encoders.

      - **MultiplexId** *(string) --* The ID of the Multiplex that the encoder is providing output
      to. You do not need to specify the individual inputs to the Multiplex; MediaLive will handle
      the connection of the two MediaLive pipelines to the two Multiplex instances. The Multiplex
      must be in the same region as the Channel.

      - **ProgramName** *(string) --* The program name of the Multiplex program that the encoder is
      providing output to.

    - **Settings** *(list) --* Destination settings for a standard output; one destination for each
    redundant encoder.

      - *(dict) --* Placeholder documentation for OutputDestinationSettings

        - **PasswordParam** *(string) --* key used to extract the password from EC2 Parameter store

        - **StreamName** *(string) --* Stream name for RTMP destinations (URLs of type rtmp://)

        - **Url** *(string) --* A URL specifying a destination

        - **Username** *(string) --* username for destination
    """


_ClientUpdateChannelClassResponseChannelDestinationsMediaPackageSettingsTypeDef = TypedDict(
    "_ClientUpdateChannelClassResponseChannelDestinationsMediaPackageSettingsTypeDef",
    {"ChannelId": str},
    total=False,
)


class ClientUpdateChannelClassResponseChannelDestinationsMediaPackageSettingsTypeDef(
    _ClientUpdateChannelClassResponseChannelDestinationsMediaPackageSettingsTypeDef
):
    """
    Type definition for `ClientUpdateChannelClassResponseChannelDestinations` `MediaPackageSettings`

    - **ChannelId** *(string) --* ID of the channel in MediaPackage that is the destination for this
    output group. You do not need to specify the individual inputs in MediaPackage; MediaLive will
    handle the connection of the two MediaLive pipelines to the two MediaPackage inputs. The
    MediaPackage channel and MediaLive channel must be in the same region.
    """


_ClientUpdateChannelClassResponseChannelDestinationsMultiplexSettingsTypeDef = TypedDict(
    "_ClientUpdateChannelClassResponseChannelDestinationsMultiplexSettingsTypeDef",
    {"MultiplexId": str, "ProgramName": str},
    total=False,
)


class ClientUpdateChannelClassResponseChannelDestinationsMultiplexSettingsTypeDef(
    _ClientUpdateChannelClassResponseChannelDestinationsMultiplexSettingsTypeDef
):
    """
    Type definition for `ClientUpdateChannelClassResponseChannelDestinations` `MultiplexSettings`

    - **MultiplexId** *(string) --* The ID of the Multiplex that the encoder is providing output to.
    You do not need to specify the individual inputs to the Multiplex; MediaLive will handle the
    connection of the two MediaLive pipelines to the two Multiplex instances. The Multiplex must be
    in the same region as the Channel.

    - **ProgramName** *(string) --* The program name of the Multiplex program that the encoder is
    providing output to.
    """


_ClientUpdateChannelClassResponseChannelDestinationsSettingsTypeDef = TypedDict(
    "_ClientUpdateChannelClassResponseChannelDestinationsSettingsTypeDef",
    {"PasswordParam": str, "StreamName": str, "Url": str, "Username": str},
    total=False,
)


class ClientUpdateChannelClassResponseChannelDestinationsSettingsTypeDef(
    _ClientUpdateChannelClassResponseChannelDestinationsSettingsTypeDef
):
    """
    Type definition for `ClientUpdateChannelClassResponseChannelDestinations` `Settings`

    - **PasswordParam** *(string) --* key used to extract the password from EC2 Parameter store

    - **StreamName** *(string) --* Stream name for RTMP destinations (URLs of type rtmp://)

    - **Url** *(string) --* A URL specifying a destination

    - **Username** *(string) --* username for destination
    """


_ClientUpdateChannelClassResponseChannelDestinationsTypeDef = TypedDict(
    "_ClientUpdateChannelClassResponseChannelDestinationsTypeDef",
    {
        "Id": str,
        "MediaPackageSettings": List[
            ClientUpdateChannelClassResponseChannelDestinationsMediaPackageSettingsTypeDef
        ],
        "MultiplexSettings": ClientUpdateChannelClassResponseChannelDestinationsMultiplexSettingsTypeDef,
        "Settings": List[ClientUpdateChannelClassResponseChannelDestinationsSettingsTypeDef],
    },
    total=False,
)


class ClientUpdateChannelClassResponseChannelDestinationsTypeDef(
    _ClientUpdateChannelClassResponseChannelDestinationsTypeDef
):
    """
    Type definition for `ClientUpdateChannelClassResponseChannel` `Destinations`

    - **Id** *(string) --* User-specified id. This is used in an output group or an output.

    - **MediaPackageSettings** *(list) --* Destination settings for a MediaPackage output; one
    destination for both encoders.

      - *(dict) --* MediaPackage Output Destination Settings

        - **ChannelId** *(string) --* ID of the channel in MediaPackage that is the destination for
        this output group. You do not need to specify the individual inputs in MediaPackage;
        MediaLive will handle the connection of the two MediaLive pipelines to the two MediaPackage
        inputs. The MediaPackage channel and MediaLive channel must be in the same region.

    - **MultiplexSettings** *(dict) --* Destination settings for a Multiplex output; one destination
    for both encoders.

      - **MultiplexId** *(string) --* The ID of the Multiplex that the encoder is providing output
      to. You do not need to specify the individual inputs to the Multiplex; MediaLive will handle
      the connection of the two MediaLive pipelines to the two Multiplex instances. The Multiplex
      must be in the same region as the Channel.

      - **ProgramName** *(string) --* The program name of the Multiplex program that the encoder is
      providing output to.

    - **Settings** *(list) --* Destination settings for a standard output; one destination for each
    redundant encoder.

      - *(dict) --* Placeholder documentation for OutputDestinationSettings

        - **PasswordParam** *(string) --* key used to extract the password from EC2 Parameter store

        - **StreamName** *(string) --* Stream name for RTMP destinations (URLs of type rtmp://)

        - **Url** *(string) --* A URL specifying a destination

        - **Username** *(string) --* username for destination
    """


_ClientUpdateChannelClassResponseChannelEgressEndpointsTypeDef = TypedDict(
    "_ClientUpdateChannelClassResponseChannelEgressEndpointsTypeDef", {"SourceIp": str}, total=False
)


class ClientUpdateChannelClassResponseChannelEgressEndpointsTypeDef(
    _ClientUpdateChannelClassResponseChannelEgressEndpointsTypeDef
):
    """
    Type definition for `ClientUpdateChannelClassResponseChannel` `EgressEndpoints`

    - **SourceIp** *(string) --* Public IP of where a channel's output comes from
    """


_ClientUpdateChannelClassResponseChannelEncoderSettingsAudioDescriptionsAudioNormalizationSettingsTypeDef = TypedDict(
    "_ClientUpdateChannelClassResponseChannelEncoderSettingsAudioDescriptionsAudioNormalizationSettingsTypeDef",
    {"Algorithm": str, "AlgorithmControl": str, "TargetLkfs": float},
    total=False,
)


class ClientUpdateChannelClassResponseChannelEncoderSettingsAudioDescriptionsAudioNormalizationSettingsTypeDef(
    _ClientUpdateChannelClassResponseChannelEncoderSettingsAudioDescriptionsAudioNormalizationSettingsTypeDef
):
    """
    Type definition for `ClientUpdateChannelClassResponseChannelEncoderSettingsAudioDescriptions`
    `AudioNormalizationSettings`

    - **Algorithm** *(string) --* Audio normalization algorithm to use. itu17701 conforms to the
    CALM Act specification, itu17702 conforms to the EBU R-128 specification.

    - **AlgorithmControl** *(string) --* When set to correctAudio the output audio is corrected
    using the chosen algorithm. If set to measureOnly, the audio will be measured but not adjusted.

    - **TargetLkfs** *(float) --* Target LKFS(loudness) to adjust volume to. If no value is entered,
    a default value will be used according to the chosen algorithm. The CALM Act (1770-1) recommends
    a target of -24 LKFS. The EBU R-128 specification (1770-2) recommends a target of -23 LKFS.
    """


_ClientUpdateChannelClassResponseChannelEncoderSettingsAudioDescriptionsCodecSettingsAacSettingsTypeDef = TypedDict(
    "_ClientUpdateChannelClassResponseChannelEncoderSettingsAudioDescriptionsCodecSettingsAacSettingsTypeDef",
    {
        "Bitrate": float,
        "CodingMode": str,
        "InputType": str,
        "Profile": str,
        "RateControlMode": str,
        "RawFormat": str,
        "SampleRate": float,
        "Spec": str,
        "VbrQuality": str,
    },
    total=False,
)


class ClientUpdateChannelClassResponseChannelEncoderSettingsAudioDescriptionsCodecSettingsAacSettingsTypeDef(
    _ClientUpdateChannelClassResponseChannelEncoderSettingsAudioDescriptionsCodecSettingsAacSettingsTypeDef
):
    """
    Type definition for
    `ClientUpdateChannelClassResponseChannelEncoderSettingsAudioDescriptionsCodecSettings`
    `AacSettings`

    - **Bitrate** *(float) --* Average bitrate in bits/second. Valid values depend on rate control
    mode and profile.

    - **CodingMode** *(string) --* Mono, Stereo, or 5.1 channel layout. Valid values depend on rate
    control mode and profile. The adReceiverMix setting receives a stereo description plus control
    track and emits a mono AAC encode of the description track, with control data emitted in the PES
    header as per ETSI TS 101 154 Annex E.

    - **InputType** *(string) --* Set to "broadcasterMixedAd" when input contains pre-mixed main
    audio + AD (narration) as a stereo pair. The Audio Type field (audioType) will be set to 3,
    which signals to downstream systems that this stream contains "broadcaster mixed AD". Note that
    the input received by the encoder must contain pre-mixed audio; the encoder does not perform the
    mixing. The values in audioTypeControl and audioType (in AudioDescription) are ignored when set
    to broadcasterMixedAd. Leave set to "normal" when input does not contain pre-mixed audio + AD.

    - **Profile** *(string) --* AAC Profile.

    - **RateControlMode** *(string) --* Rate Control Mode.

    - **RawFormat** *(string) --* Sets LATM / LOAS AAC output for raw containers.

    - **SampleRate** *(float) --* Sample rate in Hz. Valid values depend on rate control mode and
    profile.

    - **Spec** *(string) --* Use MPEG-2 AAC audio instead of MPEG-4 AAC audio for raw or MPEG-2
    Transport Stream containers.

    - **VbrQuality** *(string) --* VBR Quality Level - Only used if rateControlMode is VBR.
    """


_ClientUpdateChannelClassResponseChannelEncoderSettingsAudioDescriptionsCodecSettingsAc3SettingsTypeDef = TypedDict(
    "_ClientUpdateChannelClassResponseChannelEncoderSettingsAudioDescriptionsCodecSettingsAc3SettingsTypeDef",
    {
        "Bitrate": float,
        "BitstreamMode": str,
        "CodingMode": str,
        "Dialnorm": int,
        "DrcProfile": str,
        "LfeFilter": str,
        "MetadataControl": str,
    },
    total=False,
)


class ClientUpdateChannelClassResponseChannelEncoderSettingsAudioDescriptionsCodecSettingsAc3SettingsTypeDef(
    _ClientUpdateChannelClassResponseChannelEncoderSettingsAudioDescriptionsCodecSettingsAc3SettingsTypeDef
):
    """
    Type definition for
    `ClientUpdateChannelClassResponseChannelEncoderSettingsAudioDescriptionsCodecSettings`
    `Ac3Settings`

    - **Bitrate** *(float) --* Average bitrate in bits/second. Valid bitrates depend on the coding
    mode.

    - **BitstreamMode** *(string) --* Specifies the bitstream mode (bsmod) for the emitted AC-3
    stream. See ATSC A/52-2012 for background on these values.

    - **CodingMode** *(string) --* Dolby Digital coding mode. Determines number of channels.

    - **Dialnorm** *(integer) --* Sets the dialnorm for the output. If excluded and input audio is
    Dolby Digital, dialnorm will be passed through.

    - **DrcProfile** *(string) --* If set to filmStandard, adds dynamic range compression signaling
    to the output bitstream as defined in the Dolby Digital specification.

    - **LfeFilter** *(string) --* When set to enabled, applies a 120Hz lowpass filter to the LFE
    channel prior to encoding. Only valid in codingMode32Lfe mode.

    - **MetadataControl** *(string) --* When set to "followInput", encoder metadata will be sourced
    from the DD, DD+, or DolbyE decoder that supplied this audio data. If audio was not supplied
    from one of these streams, then the static metadata settings will be used.
    """


_ClientUpdateChannelClassResponseChannelEncoderSettingsAudioDescriptionsCodecSettingsEac3SettingsTypeDef = TypedDict(
    "_ClientUpdateChannelClassResponseChannelEncoderSettingsAudioDescriptionsCodecSettingsEac3SettingsTypeDef",
    {
        "AttenuationControl": str,
        "Bitrate": float,
        "BitstreamMode": str,
        "CodingMode": str,
        "DcFilter": str,
        "Dialnorm": int,
        "DrcLine": str,
        "DrcRf": str,
        "LfeControl": str,
        "LfeFilter": str,
        "LoRoCenterMixLevel": float,
        "LoRoSurroundMixLevel": float,
        "LtRtCenterMixLevel": float,
        "LtRtSurroundMixLevel": float,
        "MetadataControl": str,
        "PassthroughControl": str,
        "PhaseControl": str,
        "StereoDownmix": str,
        "SurroundExMode": str,
        "SurroundMode": str,
    },
    total=False,
)


class ClientUpdateChannelClassResponseChannelEncoderSettingsAudioDescriptionsCodecSettingsEac3SettingsTypeDef(
    _ClientUpdateChannelClassResponseChannelEncoderSettingsAudioDescriptionsCodecSettingsEac3SettingsTypeDef
):
    """
    Type definition for
    `ClientUpdateChannelClassResponseChannelEncoderSettingsAudioDescriptionsCodecSettings`
    `Eac3Settings`

    - **AttenuationControl** *(string) --* When set to attenuate3Db, applies a 3 dB attenuation to
    the surround channels. Only used for 3/2 coding mode.

    - **Bitrate** *(float) --* Average bitrate in bits/second. Valid bitrates depend on the coding
    mode.

    - **BitstreamMode** *(string) --* Specifies the bitstream mode (bsmod) for the emitted E-AC-3
    stream. See ATSC A/52-2012 (Annex E) for background on these values.

    - **CodingMode** *(string) --* Dolby Digital Plus coding mode. Determines number of channels.

    - **DcFilter** *(string) --* When set to enabled, activates a DC highpass filter for all input
    channels.

    - **Dialnorm** *(integer) --* Sets the dialnorm for the output. If blank and input audio is
    Dolby Digital Plus, dialnorm will be passed through.

    - **DrcLine** *(string) --* Sets the Dolby dynamic range compression profile.

    - **DrcRf** *(string) --* Sets the profile for heavy Dolby dynamic range compression, ensures
    that the instantaneous signal peaks do not exceed specified levels.

    - **LfeControl** *(string) --* When encoding 3/2 audio, setting to lfe enables the LFE channel

    - **LfeFilter** *(string) --* When set to enabled, applies a 120Hz lowpass filter to the LFE
    channel prior to encoding. Only valid with codingMode32 coding mode.

    - **LoRoCenterMixLevel** *(float) --* Left only/Right only center mix level. Only used for 3/2
    coding mode.

    - **LoRoSurroundMixLevel** *(float) --* Left only/Right only surround mix level. Only used for
    3/2 coding mode.

    - **LtRtCenterMixLevel** *(float) --* Left total/Right total center mix level. Only used for 3/2
    coding mode.

    - **LtRtSurroundMixLevel** *(float) --* Left total/Right total surround mix level. Only used for
    3/2 coding mode.

    - **MetadataControl** *(string) --* When set to followInput, encoder metadata will be sourced
    from the DD, DD+, or DolbyE decoder that supplied this audio data. If audio was not supplied
    from one of these streams, then the static metadata settings will be used.

    - **PassthroughControl** *(string) --* When set to whenPossible, input DD+ audio will be passed
    through if it is present on the input. This detection is dynamic over the life of the transcode.
    Inputs that alternate between DD+ and non-DD+ content will have a consistent DD+ output as the
    system alternates between passthrough and encoding.

    - **PhaseControl** *(string) --* When set to shift90Degrees, applies a 90-degree phase shift to
    the surround channels. Only used for 3/2 coding mode.

    - **StereoDownmix** *(string) --* Stereo downmix preference. Only used for 3/2 coding mode.

    - **SurroundExMode** *(string) --* When encoding 3/2 audio, sets whether an extra center back
    surround channel is matrix encoded into the left and right surround channels.

    - **SurroundMode** *(string) --* When encoding 2/0 audio, sets whether Dolby Surround is matrix
    encoded into the two channels.
    """


_ClientUpdateChannelClassResponseChannelEncoderSettingsAudioDescriptionsCodecSettingsMp2SettingsTypeDef = TypedDict(
    "_ClientUpdateChannelClassResponseChannelEncoderSettingsAudioDescriptionsCodecSettingsMp2SettingsTypeDef",
    {"Bitrate": float, "CodingMode": str, "SampleRate": float},
    total=False,
)


class ClientUpdateChannelClassResponseChannelEncoderSettingsAudioDescriptionsCodecSettingsMp2SettingsTypeDef(
    _ClientUpdateChannelClassResponseChannelEncoderSettingsAudioDescriptionsCodecSettingsMp2SettingsTypeDef
):
    """
    Type definition for
    `ClientUpdateChannelClassResponseChannelEncoderSettingsAudioDescriptionsCodecSettings`
    `Mp2Settings`

    - **Bitrate** *(float) --* Average bitrate in bits/second.

    - **CodingMode** *(string) --* The MPEG2 Audio coding mode. Valid values are codingMode10 (for
    mono) or codingMode20 (for stereo).

    - **SampleRate** *(float) --* Sample rate in Hz.
    """


_ClientUpdateChannelClassResponseChannelEncoderSettingsAudioDescriptionsCodecSettingsTypeDef = TypedDict(
    "_ClientUpdateChannelClassResponseChannelEncoderSettingsAudioDescriptionsCodecSettingsTypeDef",
    {
        "AacSettings": ClientUpdateChannelClassResponseChannelEncoderSettingsAudioDescriptionsCodecSettingsAacSettingsTypeDef,
        "Ac3Settings": ClientUpdateChannelClassResponseChannelEncoderSettingsAudioDescriptionsCodecSettingsAc3SettingsTypeDef,
        "Eac3Settings": ClientUpdateChannelClassResponseChannelEncoderSettingsAudioDescriptionsCodecSettingsEac3SettingsTypeDef,
        "Mp2Settings": ClientUpdateChannelClassResponseChannelEncoderSettingsAudioDescriptionsCodecSettingsMp2SettingsTypeDef,
        "PassThroughSettings": Dict[str, Any],
    },
    total=False,
)


class ClientUpdateChannelClassResponseChannelEncoderSettingsAudioDescriptionsCodecSettingsTypeDef(
    _ClientUpdateChannelClassResponseChannelEncoderSettingsAudioDescriptionsCodecSettingsTypeDef
):
    """
    Type definition for `ClientUpdateChannelClassResponseChannelEncoderSettingsAudioDescriptions`
    `CodecSettings`

    - **AacSettings** *(dict) --* Aac Settings

      - **Bitrate** *(float) --* Average bitrate in bits/second. Valid values depend on rate control
      mode and profile.

      - **CodingMode** *(string) --* Mono, Stereo, or 5.1 channel layout. Valid values depend on
      rate control mode and profile. The adReceiverMix setting receives a stereo description plus
      control track and emits a mono AAC encode of the description track, with control data emitted
      in the PES header as per ETSI TS 101 154 Annex E.

      - **InputType** *(string) --* Set to "broadcasterMixedAd" when input contains pre-mixed main
      audio + AD (narration) as a stereo pair. The Audio Type field (audioType) will be set to 3,
      which signals to downstream systems that this stream contains "broadcaster mixed AD". Note
      that the input received by the encoder must contain pre-mixed audio; the encoder does not
      perform the mixing. The values in audioTypeControl and audioType (in AudioDescription) are
      ignored when set to broadcasterMixedAd. Leave set to "normal" when input does not contain
      pre-mixed audio + AD.

      - **Profile** *(string) --* AAC Profile.

      - **RateControlMode** *(string) --* Rate Control Mode.

      - **RawFormat** *(string) --* Sets LATM / LOAS AAC output for raw containers.

      - **SampleRate** *(float) --* Sample rate in Hz. Valid values depend on rate control mode and
      profile.

      - **Spec** *(string) --* Use MPEG-2 AAC audio instead of MPEG-4 AAC audio for raw or MPEG-2
      Transport Stream containers.

      - **VbrQuality** *(string) --* VBR Quality Level - Only used if rateControlMode is VBR.

    - **Ac3Settings** *(dict) --* Ac3 Settings

      - **Bitrate** *(float) --* Average bitrate in bits/second. Valid bitrates depend on the coding
      mode.

      - **BitstreamMode** *(string) --* Specifies the bitstream mode (bsmod) for the emitted AC-3
      stream. See ATSC A/52-2012 for background on these values.

      - **CodingMode** *(string) --* Dolby Digital coding mode. Determines number of channels.

      - **Dialnorm** *(integer) --* Sets the dialnorm for the output. If excluded and input audio is
      Dolby Digital, dialnorm will be passed through.

      - **DrcProfile** *(string) --* If set to filmStandard, adds dynamic range compression
      signaling to the output bitstream as defined in the Dolby Digital specification.

      - **LfeFilter** *(string) --* When set to enabled, applies a 120Hz lowpass filter to the LFE
      channel prior to encoding. Only valid in codingMode32Lfe mode.

      - **MetadataControl** *(string) --* When set to "followInput", encoder metadata will be
      sourced from the DD, DD+, or DolbyE decoder that supplied this audio data. If audio was not
      supplied from one of these streams, then the static metadata settings will be used.

    - **Eac3Settings** *(dict) --* Eac3 Settings

      - **AttenuationControl** *(string) --* When set to attenuate3Db, applies a 3 dB attenuation to
      the surround channels. Only used for 3/2 coding mode.

      - **Bitrate** *(float) --* Average bitrate in bits/second. Valid bitrates depend on the coding
      mode.

      - **BitstreamMode** *(string) --* Specifies the bitstream mode (bsmod) for the emitted E-AC-3
      stream. See ATSC A/52-2012 (Annex E) for background on these values.

      - **CodingMode** *(string) --* Dolby Digital Plus coding mode. Determines number of channels.

      - **DcFilter** *(string) --* When set to enabled, activates a DC highpass filter for all input
      channels.

      - **Dialnorm** *(integer) --* Sets the dialnorm for the output. If blank and input audio is
      Dolby Digital Plus, dialnorm will be passed through.

      - **DrcLine** *(string) --* Sets the Dolby dynamic range compression profile.

      - **DrcRf** *(string) --* Sets the profile for heavy Dolby dynamic range compression, ensures
      that the instantaneous signal peaks do not exceed specified levels.

      - **LfeControl** *(string) --* When encoding 3/2 audio, setting to lfe enables the LFE channel

      - **LfeFilter** *(string) --* When set to enabled, applies a 120Hz lowpass filter to the LFE
      channel prior to encoding. Only valid with codingMode32 coding mode.

      - **LoRoCenterMixLevel** *(float) --* Left only/Right only center mix level. Only used for 3/2
      coding mode.

      - **LoRoSurroundMixLevel** *(float) --* Left only/Right only surround mix level. Only used for
      3/2 coding mode.

      - **LtRtCenterMixLevel** *(float) --* Left total/Right total center mix level. Only used for
      3/2 coding mode.

      - **LtRtSurroundMixLevel** *(float) --* Left total/Right total surround mix level. Only used
      for 3/2 coding mode.

      - **MetadataControl** *(string) --* When set to followInput, encoder metadata will be sourced
      from the DD, DD+, or DolbyE decoder that supplied this audio data. If audio was not supplied
      from one of these streams, then the static metadata settings will be used.

      - **PassthroughControl** *(string) --* When set to whenPossible, input DD+ audio will be
      passed through if it is present on the input. This detection is dynamic over the life of the
      transcode. Inputs that alternate between DD+ and non-DD+ content will have a consistent DD+
      output as the system alternates between passthrough and encoding.

      - **PhaseControl** *(string) --* When set to shift90Degrees, applies a 90-degree phase shift
      to the surround channels. Only used for 3/2 coding mode.

      - **StereoDownmix** *(string) --* Stereo downmix preference. Only used for 3/2 coding mode.

      - **SurroundExMode** *(string) --* When encoding 3/2 audio, sets whether an extra center back
      surround channel is matrix encoded into the left and right surround channels.

      - **SurroundMode** *(string) --* When encoding 2/0 audio, sets whether Dolby Surround is
      matrix encoded into the two channels.

    - **Mp2Settings** *(dict) --* Mp2 Settings

      - **Bitrate** *(float) --* Average bitrate in bits/second.

      - **CodingMode** *(string) --* The MPEG2 Audio coding mode. Valid values are codingMode10 (for
      mono) or codingMode20 (for stereo).

      - **SampleRate** *(float) --* Sample rate in Hz.

    - **PassThroughSettings** *(dict) --* Pass Through Settings
    """


_ClientUpdateChannelClassResponseChannelEncoderSettingsAudioDescriptionsRemixSettingsChannelMappingsInputChannelLevelsTypeDef = TypedDict(
    "_ClientUpdateChannelClassResponseChannelEncoderSettingsAudioDescriptionsRemixSettingsChannelMappingsInputChannelLevelsTypeDef",
    {"Gain": int, "InputChannel": int},
    total=False,
)


class ClientUpdateChannelClassResponseChannelEncoderSettingsAudioDescriptionsRemixSettingsChannelMappingsInputChannelLevelsTypeDef(
    _ClientUpdateChannelClassResponseChannelEncoderSettingsAudioDescriptionsRemixSettingsChannelMappingsInputChannelLevelsTypeDef
):
    """
    Type definition for
    `ClientUpdateChannelClassResponseChannelEncoderSettingsAudioDescriptionsRemixSettingsChannelMappings`
    `InputChannelLevels`

    - **Gain** *(integer) --* Remixing value. Units are in dB and acceptable values are within the
    range from -60 (mute) and 6 dB.

    - **InputChannel** *(integer) --* The index of the input channel used as a source.
    """


_ClientUpdateChannelClassResponseChannelEncoderSettingsAudioDescriptionsRemixSettingsChannelMappingsTypeDef = TypedDict(
    "_ClientUpdateChannelClassResponseChannelEncoderSettingsAudioDescriptionsRemixSettingsChannelMappingsTypeDef",
    {
        "InputChannelLevels": List[
            ClientUpdateChannelClassResponseChannelEncoderSettingsAudioDescriptionsRemixSettingsChannelMappingsInputChannelLevelsTypeDef
        ],
        "OutputChannel": int,
    },
    total=False,
)


class ClientUpdateChannelClassResponseChannelEncoderSettingsAudioDescriptionsRemixSettingsChannelMappingsTypeDef(
    _ClientUpdateChannelClassResponseChannelEncoderSettingsAudioDescriptionsRemixSettingsChannelMappingsTypeDef
):
    """
    Type definition for
    `ClientUpdateChannelClassResponseChannelEncoderSettingsAudioDescriptionsRemixSettings`
    `ChannelMappings`

    - **InputChannelLevels** *(list) --* Indices and gain values for each input channel that should
    be remixed into this output channel.

      - *(dict) --* Input Channel Level

        - **Gain** *(integer) --* Remixing value. Units are in dB and acceptable values are within
        the range from -60 (mute) and 6 dB.

        - **InputChannel** *(integer) --* The index of the input channel used as a source.

    - **OutputChannel** *(integer) --* The index of the output channel being produced.
    """


_ClientUpdateChannelClassResponseChannelEncoderSettingsAudioDescriptionsRemixSettingsTypeDef = TypedDict(
    "_ClientUpdateChannelClassResponseChannelEncoderSettingsAudioDescriptionsRemixSettingsTypeDef",
    {
        "ChannelMappings": List[
            ClientUpdateChannelClassResponseChannelEncoderSettingsAudioDescriptionsRemixSettingsChannelMappingsTypeDef
        ],
        "ChannelsIn": int,
        "ChannelsOut": int,
    },
    total=False,
)


class ClientUpdateChannelClassResponseChannelEncoderSettingsAudioDescriptionsRemixSettingsTypeDef(
    _ClientUpdateChannelClassResponseChannelEncoderSettingsAudioDescriptionsRemixSettingsTypeDef
):
    """
    Type definition for `ClientUpdateChannelClassResponseChannelEncoderSettingsAudioDescriptions`
    `RemixSettings`

    - **ChannelMappings** *(list) --* Mapping of input channels to output channels, with appropriate
    gain adjustments.

      - *(dict) --* Audio Channel Mapping

        - **InputChannelLevels** *(list) --* Indices and gain values for each input channel that
        should be remixed into this output channel.

          - *(dict) --* Input Channel Level

            - **Gain** *(integer) --* Remixing value. Units are in dB and acceptable values are
            within the range from -60 (mute) and 6 dB.

            - **InputChannel** *(integer) --* The index of the input channel used as a source.

        - **OutputChannel** *(integer) --* The index of the output channel being produced.

    - **ChannelsIn** *(integer) --* Number of input channels to be used.

    - **ChannelsOut** *(integer) --* Number of output channels to be produced. Valid values: 1, 2,
    4, 6, 8
    """


_ClientUpdateChannelClassResponseChannelEncoderSettingsAudioDescriptionsTypeDef = TypedDict(
    "_ClientUpdateChannelClassResponseChannelEncoderSettingsAudioDescriptionsTypeDef",
    {
        "AudioNormalizationSettings": ClientUpdateChannelClassResponseChannelEncoderSettingsAudioDescriptionsAudioNormalizationSettingsTypeDef,
        "AudioSelectorName": str,
        "AudioType": str,
        "AudioTypeControl": str,
        "CodecSettings": ClientUpdateChannelClassResponseChannelEncoderSettingsAudioDescriptionsCodecSettingsTypeDef,
        "LanguageCode": str,
        "LanguageCodeControl": str,
        "Name": str,
        "RemixSettings": ClientUpdateChannelClassResponseChannelEncoderSettingsAudioDescriptionsRemixSettingsTypeDef,
        "StreamName": str,
    },
    total=False,
)


class ClientUpdateChannelClassResponseChannelEncoderSettingsAudioDescriptionsTypeDef(
    _ClientUpdateChannelClassResponseChannelEncoderSettingsAudioDescriptionsTypeDef
):
    """
    Type definition for `ClientUpdateChannelClassResponseChannelEncoderSettings` `AudioDescriptions`

    - **AudioNormalizationSettings** *(dict) --* Advanced audio normalization settings.

      - **Algorithm** *(string) --* Audio normalization algorithm to use. itu17701 conforms to the
      CALM Act specification, itu17702 conforms to the EBU R-128 specification.

      - **AlgorithmControl** *(string) --* When set to correctAudio the output audio is corrected
      using the chosen algorithm. If set to measureOnly, the audio will be measured but not
      adjusted.

      - **TargetLkfs** *(float) --* Target LKFS(loudness) to adjust volume to. If no value is
      entered, a default value will be used according to the chosen algorithm. The CALM Act (1770-1)
      recommends a target of -24 LKFS. The EBU R-128 specification (1770-2) recommends a target of
      -23 LKFS.

    - **AudioSelectorName** *(string) --* The name of the AudioSelector used as the source for this
    AudioDescription.

    - **AudioType** *(string) --* Applies only if audioTypeControl is useConfigured. The values for
    audioType are defined in ISO-IEC 13818-1.

    - **AudioTypeControl** *(string) --* Determines how audio type is determined. followInput: If
    the input contains an ISO 639 audioType, then that value is passed through to the output. If the
    input contains no ISO 639 audioType, the value in Audio Type is included in the output.
    useConfigured: The value in Audio Type is included in the output. Note that this field and
    audioType are both ignored if inputType is broadcasterMixedAd.

    - **CodecSettings** *(dict) --* Audio codec settings.

      - **AacSettings** *(dict) --* Aac Settings

        - **Bitrate** *(float) --* Average bitrate in bits/second. Valid values depend on rate
        control mode and profile.

        - **CodingMode** *(string) --* Mono, Stereo, or 5.1 channel layout. Valid values depend on
        rate control mode and profile. The adReceiverMix setting receives a stereo description plus
        control track and emits a mono AAC encode of the description track, with control data
        emitted in the PES header as per ETSI TS 101 154 Annex E.

        - **InputType** *(string) --* Set to "broadcasterMixedAd" when input contains pre-mixed main
        audio + AD (narration) as a stereo pair. The Audio Type field (audioType) will be set to 3,
        which signals to downstream systems that this stream contains "broadcaster mixed AD". Note
        that the input received by the encoder must contain pre-mixed audio; the encoder does not
        perform the mixing. The values in audioTypeControl and audioType (in AudioDescription) are
        ignored when set to broadcasterMixedAd. Leave set to "normal" when input does not contain
        pre-mixed audio + AD.

        - **Profile** *(string) --* AAC Profile.

        - **RateControlMode** *(string) --* Rate Control Mode.

        - **RawFormat** *(string) --* Sets LATM / LOAS AAC output for raw containers.

        - **SampleRate** *(float) --* Sample rate in Hz. Valid values depend on rate control mode
        and profile.

        - **Spec** *(string) --* Use MPEG-2 AAC audio instead of MPEG-4 AAC audio for raw or MPEG-2
        Transport Stream containers.

        - **VbrQuality** *(string) --* VBR Quality Level - Only used if rateControlMode is VBR.

      - **Ac3Settings** *(dict) --* Ac3 Settings

        - **Bitrate** *(float) --* Average bitrate in bits/second. Valid bitrates depend on the
        coding mode.

        - **BitstreamMode** *(string) --* Specifies the bitstream mode (bsmod) for the emitted AC-3
        stream. See ATSC A/52-2012 for background on these values.

        - **CodingMode** *(string) --* Dolby Digital coding mode. Determines number of channels.

        - **Dialnorm** *(integer) --* Sets the dialnorm for the output. If excluded and input audio
        is Dolby Digital, dialnorm will be passed through.

        - **DrcProfile** *(string) --* If set to filmStandard, adds dynamic range compression
        signaling to the output bitstream as defined in the Dolby Digital specification.

        - **LfeFilter** *(string) --* When set to enabled, applies a 120Hz lowpass filter to the LFE
        channel prior to encoding. Only valid in codingMode32Lfe mode.

        - **MetadataControl** *(string) --* When set to "followInput", encoder metadata will be
        sourced from the DD, DD+, or DolbyE decoder that supplied this audio data. If audio was not
        supplied from one of these streams, then the static metadata settings will be used.

      - **Eac3Settings** *(dict) --* Eac3 Settings

        - **AttenuationControl** *(string) --* When set to attenuate3Db, applies a 3 dB attenuation
        to the surround channels. Only used for 3/2 coding mode.

        - **Bitrate** *(float) --* Average bitrate in bits/second. Valid bitrates depend on the
        coding mode.

        - **BitstreamMode** *(string) --* Specifies the bitstream mode (bsmod) for the emitted
        E-AC-3 stream. See ATSC A/52-2012 (Annex E) for background on these values.

        - **CodingMode** *(string) --* Dolby Digital Plus coding mode. Determines number of
        channels.

        - **DcFilter** *(string) --* When set to enabled, activates a DC highpass filter for all
        input channels.

        - **Dialnorm** *(integer) --* Sets the dialnorm for the output. If blank and input audio is
        Dolby Digital Plus, dialnorm will be passed through.

        - **DrcLine** *(string) --* Sets the Dolby dynamic range compression profile.

        - **DrcRf** *(string) --* Sets the profile for heavy Dolby dynamic range compression,
        ensures that the instantaneous signal peaks do not exceed specified levels.

        - **LfeControl** *(string) --* When encoding 3/2 audio, setting to lfe enables the LFE
        channel

        - **LfeFilter** *(string) --* When set to enabled, applies a 120Hz lowpass filter to the LFE
        channel prior to encoding. Only valid with codingMode32 coding mode.

        - **LoRoCenterMixLevel** *(float) --* Left only/Right only center mix level. Only used for
        3/2 coding mode.

        - **LoRoSurroundMixLevel** *(float) --* Left only/Right only surround mix level. Only used
        for 3/2 coding mode.

        - **LtRtCenterMixLevel** *(float) --* Left total/Right total center mix level. Only used for
        3/2 coding mode.

        - **LtRtSurroundMixLevel** *(float) --* Left total/Right total surround mix level. Only used
        for 3/2 coding mode.

        - **MetadataControl** *(string) --* When set to followInput, encoder metadata will be
        sourced from the DD, DD+, or DolbyE decoder that supplied this audio data. If audio was not
        supplied from one of these streams, then the static metadata settings will be used.

        - **PassthroughControl** *(string) --* When set to whenPossible, input DD+ audio will be
        passed through if it is present on the input. This detection is dynamic over the life of the
        transcode. Inputs that alternate between DD+ and non-DD+ content will have a consistent DD+
        output as the system alternates between passthrough and encoding.

        - **PhaseControl** *(string) --* When set to shift90Degrees, applies a 90-degree phase shift
        to the surround channels. Only used for 3/2 coding mode.

        - **StereoDownmix** *(string) --* Stereo downmix preference. Only used for 3/2 coding mode.

        - **SurroundExMode** *(string) --* When encoding 3/2 audio, sets whether an extra center
        back surround channel is matrix encoded into the left and right surround channels.

        - **SurroundMode** *(string) --* When encoding 2/0 audio, sets whether Dolby Surround is
        matrix encoded into the two channels.

      - **Mp2Settings** *(dict) --* Mp2 Settings

        - **Bitrate** *(float) --* Average bitrate in bits/second.

        - **CodingMode** *(string) --* The MPEG2 Audio coding mode. Valid values are codingMode10
        (for mono) or codingMode20 (for stereo).

        - **SampleRate** *(float) --* Sample rate in Hz.

      - **PassThroughSettings** *(dict) --* Pass Through Settings

    - **LanguageCode** *(string) --* Indicates the language of the audio output track. Only used if
    languageControlMode is useConfigured, or there is no ISO 639 language code specified in the
    input.

    - **LanguageCodeControl** *(string) --* Choosing followInput will cause the ISO 639 language
    code of the output to follow the ISO 639 language code of the input. The languageCode will be
    used when useConfigured is set, or when followInput is selected but there is no ISO 639 language
    code specified by the input.

    - **Name** *(string) --* The name of this AudioDescription. Outputs will use this name to
    uniquely identify this AudioDescription. Description names should be unique within this Live
    Event.

    - **RemixSettings** *(dict) --* Settings that control how input audio channels are remixed into
    the output audio channels.

      - **ChannelMappings** *(list) --* Mapping of input channels to output channels, with
      appropriate gain adjustments.

        - *(dict) --* Audio Channel Mapping

          - **InputChannelLevels** *(list) --* Indices and gain values for each input channel that
          should be remixed into this output channel.

            - *(dict) --* Input Channel Level

              - **Gain** *(integer) --* Remixing value. Units are in dB and acceptable values are
              within the range from -60 (mute) and 6 dB.

              - **InputChannel** *(integer) --* The index of the input channel used as a source.

          - **OutputChannel** *(integer) --* The index of the output channel being produced.

      - **ChannelsIn** *(integer) --* Number of input channels to be used.

      - **ChannelsOut** *(integer) --* Number of output channels to be produced. Valid values: 1, 2,
      4, 6, 8

    - **StreamName** *(string) --* Used for MS Smooth and Apple HLS outputs. Indicates the name
    displayed by the player (eg. English, or Director Commentary).
    """


_ClientUpdateChannelClassResponseChannelEncoderSettingsAvailBlankingAvailBlankingImageTypeDef = TypedDict(
    "_ClientUpdateChannelClassResponseChannelEncoderSettingsAvailBlankingAvailBlankingImageTypeDef",
    {"PasswordParam": str, "Uri": str, "Username": str},
    total=False,
)


class ClientUpdateChannelClassResponseChannelEncoderSettingsAvailBlankingAvailBlankingImageTypeDef(
    _ClientUpdateChannelClassResponseChannelEncoderSettingsAvailBlankingAvailBlankingImageTypeDef
):
    """
    Type definition for `ClientUpdateChannelClassResponseChannelEncoderSettingsAvailBlanking`
    `AvailBlankingImage`

    - **PasswordParam** *(string) --* key used to extract the password from EC2 Parameter store

    - **Uri** *(string) --* Uniform Resource Identifier - This should be a path to a file accessible
    to the Live system (eg. a http:// URI) depending on the output type. For example, a RTMP
    destination should have a uri simliar to: "rtmp://fmsserver/live".

    - **Username** *(string) --* Documentation update needed
    """


_ClientUpdateChannelClassResponseChannelEncoderSettingsAvailBlankingTypeDef = TypedDict(
    "_ClientUpdateChannelClassResponseChannelEncoderSettingsAvailBlankingTypeDef",
    {
        "AvailBlankingImage": ClientUpdateChannelClassResponseChannelEncoderSettingsAvailBlankingAvailBlankingImageTypeDef,
        "State": str,
    },
    total=False,
)


class ClientUpdateChannelClassResponseChannelEncoderSettingsAvailBlankingTypeDef(
    _ClientUpdateChannelClassResponseChannelEncoderSettingsAvailBlankingTypeDef
):
    """
    Type definition for `ClientUpdateChannelClassResponseChannelEncoderSettings` `AvailBlanking`

    - **AvailBlankingImage** *(dict) --* Blanking image to be used. Leave empty for solid black.
    Only bmp and png images are supported.

      - **PasswordParam** *(string) --* key used to extract the password from EC2 Parameter store

      - **Uri** *(string) --* Uniform Resource Identifier - This should be a path to a file
      accessible to the Live system (eg. a http:// URI) depending on the output type. For example, a
      RTMP destination should have a uri simliar to: "rtmp://fmsserver/live".

      - **Username** *(string) --* Documentation update needed

    - **State** *(string) --* When set to enabled, causes video, audio and captions to be blanked
    when insertion metadata is added.
    """


_ClientUpdateChannelClassResponseChannelEncoderSettingsAvailConfigurationAvailSettingsScte35SpliceInsertTypeDef = TypedDict(
    "_ClientUpdateChannelClassResponseChannelEncoderSettingsAvailConfigurationAvailSettingsScte35SpliceInsertTypeDef",
    {"AdAvailOffset": int, "NoRegionalBlackoutFlag": str, "WebDeliveryAllowedFlag": str},
    total=False,
)


class ClientUpdateChannelClassResponseChannelEncoderSettingsAvailConfigurationAvailSettingsScte35SpliceInsertTypeDef(
    _ClientUpdateChannelClassResponseChannelEncoderSettingsAvailConfigurationAvailSettingsScte35SpliceInsertTypeDef
):
    """
    Type definition for
    `ClientUpdateChannelClassResponseChannelEncoderSettingsAvailConfigurationAvailSettings`
    `Scte35SpliceInsert`

    - **AdAvailOffset** *(integer) --* When specified, this offset (in milliseconds) is added to the
    input Ad Avail PTS time. This only applies to embedded SCTE 104/35 messages and does not apply
    to OOB messages.

    - **NoRegionalBlackoutFlag** *(string) --* When set to ignore, Segment Descriptors with
    noRegionalBlackoutFlag set to 0 will no longer trigger blackouts or Ad Avail slates

    - **WebDeliveryAllowedFlag** *(string) --* When set to ignore, Segment Descriptors with
    webDeliveryAllowedFlag set to 0 will no longer trigger blackouts or Ad Avail slates
    """


_ClientUpdateChannelClassResponseChannelEncoderSettingsAvailConfigurationAvailSettingsScte35TimeSignalAposTypeDef = TypedDict(
    "_ClientUpdateChannelClassResponseChannelEncoderSettingsAvailConfigurationAvailSettingsScte35TimeSignalAposTypeDef",
    {"AdAvailOffset": int, "NoRegionalBlackoutFlag": str, "WebDeliveryAllowedFlag": str},
    total=False,
)


class ClientUpdateChannelClassResponseChannelEncoderSettingsAvailConfigurationAvailSettingsScte35TimeSignalAposTypeDef(
    _ClientUpdateChannelClassResponseChannelEncoderSettingsAvailConfigurationAvailSettingsScte35TimeSignalAposTypeDef
):
    """
    Type definition for
    `ClientUpdateChannelClassResponseChannelEncoderSettingsAvailConfigurationAvailSettings`
    `Scte35TimeSignalApos`

    - **AdAvailOffset** *(integer) --* When specified, this offset (in milliseconds) is added to the
    input Ad Avail PTS time. This only applies to embedded SCTE 104/35 messages and does not apply
    to OOB messages.

    - **NoRegionalBlackoutFlag** *(string) --* When set to ignore, Segment Descriptors with
    noRegionalBlackoutFlag set to 0 will no longer trigger blackouts or Ad Avail slates

    - **WebDeliveryAllowedFlag** *(string) --* When set to ignore, Segment Descriptors with
    webDeliveryAllowedFlag set to 0 will no longer trigger blackouts or Ad Avail slates
    """


_ClientUpdateChannelClassResponseChannelEncoderSettingsAvailConfigurationAvailSettingsTypeDef = TypedDict(
    "_ClientUpdateChannelClassResponseChannelEncoderSettingsAvailConfigurationAvailSettingsTypeDef",
    {
        "Scte35SpliceInsert": ClientUpdateChannelClassResponseChannelEncoderSettingsAvailConfigurationAvailSettingsScte35SpliceInsertTypeDef,
        "Scte35TimeSignalApos": ClientUpdateChannelClassResponseChannelEncoderSettingsAvailConfigurationAvailSettingsScte35TimeSignalAposTypeDef,
    },
    total=False,
)


class ClientUpdateChannelClassResponseChannelEncoderSettingsAvailConfigurationAvailSettingsTypeDef(
    _ClientUpdateChannelClassResponseChannelEncoderSettingsAvailConfigurationAvailSettingsTypeDef
):
    """
    Type definition for `ClientUpdateChannelClassResponseChannelEncoderSettingsAvailConfiguration`
    `AvailSettings`

    - **Scte35SpliceInsert** *(dict) --* Scte35 Splice Insert

      - **AdAvailOffset** *(integer) --* When specified, this offset (in milliseconds) is added to
      the input Ad Avail PTS time. This only applies to embedded SCTE 104/35 messages and does not
      apply to OOB messages.

      - **NoRegionalBlackoutFlag** *(string) --* When set to ignore, Segment Descriptors with
      noRegionalBlackoutFlag set to 0 will no longer trigger blackouts or Ad Avail slates

      - **WebDeliveryAllowedFlag** *(string) --* When set to ignore, Segment Descriptors with
      webDeliveryAllowedFlag set to 0 will no longer trigger blackouts or Ad Avail slates

    - **Scte35TimeSignalApos** *(dict) --* Scte35 Time Signal Apos

      - **AdAvailOffset** *(integer) --* When specified, this offset (in milliseconds) is added to
      the input Ad Avail PTS time. This only applies to embedded SCTE 104/35 messages and does not
      apply to OOB messages.

      - **NoRegionalBlackoutFlag** *(string) --* When set to ignore, Segment Descriptors with
      noRegionalBlackoutFlag set to 0 will no longer trigger blackouts or Ad Avail slates

      - **WebDeliveryAllowedFlag** *(string) --* When set to ignore, Segment Descriptors with
      webDeliveryAllowedFlag set to 0 will no longer trigger blackouts or Ad Avail slates
    """


_ClientUpdateChannelClassResponseChannelEncoderSettingsAvailConfigurationTypeDef = TypedDict(
    "_ClientUpdateChannelClassResponseChannelEncoderSettingsAvailConfigurationTypeDef",
    {
        "AvailSettings": ClientUpdateChannelClassResponseChannelEncoderSettingsAvailConfigurationAvailSettingsTypeDef
    },
    total=False,
)


class ClientUpdateChannelClassResponseChannelEncoderSettingsAvailConfigurationTypeDef(
    _ClientUpdateChannelClassResponseChannelEncoderSettingsAvailConfigurationTypeDef
):
    """
    Type definition for `ClientUpdateChannelClassResponseChannelEncoderSettings`
    `AvailConfiguration`

    - **AvailSettings** *(dict) --* Ad avail settings.

      - **Scte35SpliceInsert** *(dict) --* Scte35 Splice Insert

        - **AdAvailOffset** *(integer) --* When specified, this offset (in milliseconds) is added to
        the input Ad Avail PTS time. This only applies to embedded SCTE 104/35 messages and does not
        apply to OOB messages.

        - **NoRegionalBlackoutFlag** *(string) --* When set to ignore, Segment Descriptors with
        noRegionalBlackoutFlag set to 0 will no longer trigger blackouts or Ad Avail slates

        - **WebDeliveryAllowedFlag** *(string) --* When set to ignore, Segment Descriptors with
        webDeliveryAllowedFlag set to 0 will no longer trigger blackouts or Ad Avail slates

      - **Scte35TimeSignalApos** *(dict) --* Scte35 Time Signal Apos

        - **AdAvailOffset** *(integer) --* When specified, this offset (in milliseconds) is added to
        the input Ad Avail PTS time. This only applies to embedded SCTE 104/35 messages and does not
        apply to OOB messages.

        - **NoRegionalBlackoutFlag** *(string) --* When set to ignore, Segment Descriptors with
        noRegionalBlackoutFlag set to 0 will no longer trigger blackouts or Ad Avail slates

        - **WebDeliveryAllowedFlag** *(string) --* When set to ignore, Segment Descriptors with
        webDeliveryAllowedFlag set to 0 will no longer trigger blackouts or Ad Avail slates
    """


_ClientUpdateChannelClassResponseChannelEncoderSettingsBlackoutSlateBlackoutSlateImageTypeDef = TypedDict(
    "_ClientUpdateChannelClassResponseChannelEncoderSettingsBlackoutSlateBlackoutSlateImageTypeDef",
    {"PasswordParam": str, "Uri": str, "Username": str},
    total=False,
)


class ClientUpdateChannelClassResponseChannelEncoderSettingsBlackoutSlateBlackoutSlateImageTypeDef(
    _ClientUpdateChannelClassResponseChannelEncoderSettingsBlackoutSlateBlackoutSlateImageTypeDef
):
    """
    Type definition for `ClientUpdateChannelClassResponseChannelEncoderSettingsBlackoutSlate`
    `BlackoutSlateImage`

    - **PasswordParam** *(string) --* key used to extract the password from EC2 Parameter store

    - **Uri** *(string) --* Uniform Resource Identifier - This should be a path to a file accessible
    to the Live system (eg. a http:// URI) depending on the output type. For example, a RTMP
    destination should have a uri simliar to: "rtmp://fmsserver/live".

    - **Username** *(string) --* Documentation update needed
    """


_ClientUpdateChannelClassResponseChannelEncoderSettingsBlackoutSlateNetworkEndBlackoutImageTypeDef = TypedDict(
    "_ClientUpdateChannelClassResponseChannelEncoderSettingsBlackoutSlateNetworkEndBlackoutImageTypeDef",
    {"PasswordParam": str, "Uri": str, "Username": str},
    total=False,
)


class ClientUpdateChannelClassResponseChannelEncoderSettingsBlackoutSlateNetworkEndBlackoutImageTypeDef(
    _ClientUpdateChannelClassResponseChannelEncoderSettingsBlackoutSlateNetworkEndBlackoutImageTypeDef
):
    """
    Type definition for `ClientUpdateChannelClassResponseChannelEncoderSettingsBlackoutSlate`
    `NetworkEndBlackoutImage`

    - **PasswordParam** *(string) --* key used to extract the password from EC2 Parameter store

    - **Uri** *(string) --* Uniform Resource Identifier - This should be a path to a file accessible
    to the Live system (eg. a http:// URI) depending on the output type. For example, a RTMP
    destination should have a uri simliar to: "rtmp://fmsserver/live".

    - **Username** *(string) --* Documentation update needed
    """


_ClientUpdateChannelClassResponseChannelEncoderSettingsBlackoutSlateTypeDef = TypedDict(
    "_ClientUpdateChannelClassResponseChannelEncoderSettingsBlackoutSlateTypeDef",
    {
        "BlackoutSlateImage": ClientUpdateChannelClassResponseChannelEncoderSettingsBlackoutSlateBlackoutSlateImageTypeDef,
        "NetworkEndBlackout": str,
        "NetworkEndBlackoutImage": ClientUpdateChannelClassResponseChannelEncoderSettingsBlackoutSlateNetworkEndBlackoutImageTypeDef,
        "NetworkId": str,
        "State": str,
    },
    total=False,
)


class ClientUpdateChannelClassResponseChannelEncoderSettingsBlackoutSlateTypeDef(
    _ClientUpdateChannelClassResponseChannelEncoderSettingsBlackoutSlateTypeDef
):
    """
    Type definition for `ClientUpdateChannelClassResponseChannelEncoderSettings` `BlackoutSlate`

    - **BlackoutSlateImage** *(dict) --* Blackout slate image to be used. Leave empty for solid
    black. Only bmp and png images are supported.

      - **PasswordParam** *(string) --* key used to extract the password from EC2 Parameter store

      - **Uri** *(string) --* Uniform Resource Identifier - This should be a path to a file
      accessible to the Live system (eg. a http:// URI) depending on the output type. For example, a
      RTMP destination should have a uri simliar to: "rtmp://fmsserver/live".

      - **Username** *(string) --* Documentation update needed

    - **NetworkEndBlackout** *(string) --* Setting to enabled causes the encoder to blackout the
    video, audio, and captions, and raise the "Network Blackout Image" slate when an SCTE104/35
    Network End Segmentation Descriptor is encountered. The blackout will be lifted when the Network
    Start Segmentation Descriptor is encountered. The Network End and Network Start descriptors must
    contain a network ID that matches the value entered in "Network ID".

    - **NetworkEndBlackoutImage** *(dict) --* Path to local file to use as Network End Blackout
    image. Image will be scaled to fill the entire output raster.

      - **PasswordParam** *(string) --* key used to extract the password from EC2 Parameter store

      - **Uri** *(string) --* Uniform Resource Identifier - This should be a path to a file
      accessible to the Live system (eg. a http:// URI) depending on the output type. For example, a
      RTMP destination should have a uri simliar to: "rtmp://fmsserver/live".

      - **Username** *(string) --* Documentation update needed

    - **NetworkId** *(string) --* Provides Network ID that matches EIDR ID format (e.g.,
    "10.XXXX/XXXX-XXXX-XXXX-XXXX-XXXX-C").

    - **State** *(string) --* When set to enabled, causes video, audio and captions to be blanked
    when indicated by program metadata.
    """


_ClientUpdateChannelClassResponseChannelEncoderSettingsCaptionDescriptionsDestinationSettingsBurnInDestinationSettingsFontTypeDef = TypedDict(
    "_ClientUpdateChannelClassResponseChannelEncoderSettingsCaptionDescriptionsDestinationSettingsBurnInDestinationSettingsFontTypeDef",
    {"PasswordParam": str, "Uri": str, "Username": str},
    total=False,
)


class ClientUpdateChannelClassResponseChannelEncoderSettingsCaptionDescriptionsDestinationSettingsBurnInDestinationSettingsFontTypeDef(
    _ClientUpdateChannelClassResponseChannelEncoderSettingsCaptionDescriptionsDestinationSettingsBurnInDestinationSettingsFontTypeDef
):
    """
    Type definition for
    `ClientUpdateChannelClassResponseChannelEncoderSettingsCaptionDescriptionsDestinationSettingsBurnInDestinationSettings`
    `Font`

    - **PasswordParam** *(string) --* key used to extract the password from EC2 Parameter store

    - **Uri** *(string) --* Uniform Resource Identifier - This should be a path to a file accessible
    to the Live system (eg. a http:// URI) depending on the output type. For example, a RTMP
    destination should have a uri simliar to: "rtmp://fmsserver/live".

    - **Username** *(string) --* Documentation update needed
    """


_ClientUpdateChannelClassResponseChannelEncoderSettingsCaptionDescriptionsDestinationSettingsBurnInDestinationSettingsTypeDef = TypedDict(
    "_ClientUpdateChannelClassResponseChannelEncoderSettingsCaptionDescriptionsDestinationSettingsBurnInDestinationSettingsTypeDef",
    {
        "Alignment": str,
        "BackgroundColor": str,
        "BackgroundOpacity": int,
        "Font": ClientUpdateChannelClassResponseChannelEncoderSettingsCaptionDescriptionsDestinationSettingsBurnInDestinationSettingsFontTypeDef,
        "FontColor": str,
        "FontOpacity": int,
        "FontResolution": int,
        "FontSize": str,
        "OutlineColor": str,
        "OutlineSize": int,
        "ShadowColor": str,
        "ShadowOpacity": int,
        "ShadowXOffset": int,
        "ShadowYOffset": int,
        "TeletextGridControl": str,
        "XPosition": int,
        "YPosition": int,
    },
    total=False,
)


class ClientUpdateChannelClassResponseChannelEncoderSettingsCaptionDescriptionsDestinationSettingsBurnInDestinationSettingsTypeDef(
    _ClientUpdateChannelClassResponseChannelEncoderSettingsCaptionDescriptionsDestinationSettingsBurnInDestinationSettingsTypeDef
):
    """
    Type definition for
    `ClientUpdateChannelClassResponseChannelEncoderSettingsCaptionDescriptionsDestinationSettings`
    `BurnInDestinationSettings`

    - **Alignment** *(string) --* If no explicit xPosition or yPosition is provided, setting
    alignment to centered will place the captions at the bottom center of the output. Similarly,
    setting a left alignment will align captions to the bottom left of the output. If x and y
    positions are given in conjunction with the alignment parameter, the font will be justified
    (either left or centered) relative to those coordinates. Selecting "smart" justification will
    left-justify live subtitles and center-justify pre-recorded subtitles. All burn-in and DVB-Sub
    font settings must match.

    - **BackgroundColor** *(string) --* Specifies the color of the rectangle behind the captions.
    All burn-in and DVB-Sub font settings must match.

    - **BackgroundOpacity** *(integer) --* Specifies the opacity of the background rectangle. 255 is
    opaque; 0 is transparent. Leaving this parameter out is equivalent to setting it to 0
    (transparent). All burn-in and DVB-Sub font settings must match.

    - **Font** *(dict) --* External font file used for caption burn-in. File extension must be 'ttf'
    or 'tte'. Although the user can select output fonts for many different types of input captions,
    embedded, STL and teletext sources use a strict grid system. Using external fonts with these
    caption sources could cause unexpected display of proportional fonts. All burn-in and DVB-Sub
    font settings must match.

      - **PasswordParam** *(string) --* key used to extract the password from EC2 Parameter store

      - **Uri** *(string) --* Uniform Resource Identifier - This should be a path to a file
      accessible to the Live system (eg. a http:// URI) depending on the output type. For example, a
      RTMP destination should have a uri simliar to: "rtmp://fmsserver/live".

      - **Username** *(string) --* Documentation update needed

    - **FontColor** *(string) --* Specifies the color of the burned-in captions. This option is not
    valid for source captions that are STL, 608/embedded or teletext. These source settings are
    already pre-defined by the caption stream. All burn-in and DVB-Sub font settings must match.

    - **FontOpacity** *(integer) --* Specifies the opacity of the burned-in captions. 255 is opaque;
    0 is transparent. All burn-in and DVB-Sub font settings must match.

    - **FontResolution** *(integer) --* Font resolution in DPI (dots per inch); default is 96 dpi.
    All burn-in and DVB-Sub font settings must match.

    - **FontSize** *(string) --* When set to 'auto' fontSize will scale depending on the size of the
    output. Giving a positive integer will specify the exact font size in points. All burn-in and
    DVB-Sub font settings must match.

    - **OutlineColor** *(string) --* Specifies font outline color. This option is not valid for
    source captions that are either 608/embedded or teletext. These source settings are already
    pre-defined by the caption stream. All burn-in and DVB-Sub font settings must match.

    - **OutlineSize** *(integer) --* Specifies font outline size in pixels. This option is not valid
    for source captions that are either 608/embedded or teletext. These source settings are already
    pre-defined by the caption stream. All burn-in and DVB-Sub font settings must match.

    - **ShadowColor** *(string) --* Specifies the color of the shadow cast by the captions. All
    burn-in and DVB-Sub font settings must match.

    - **ShadowOpacity** *(integer) --* Specifies the opacity of the shadow. 255 is opaque; 0 is
    transparent. Leaving this parameter out is equivalent to setting it to 0 (transparent). All
    burn-in and DVB-Sub font settings must match.

    - **ShadowXOffset** *(integer) --* Specifies the horizontal offset of the shadow relative to the
    captions in pixels. A value of -2 would result in a shadow offset 2 pixels to the left. All
    burn-in and DVB-Sub font settings must match.

    - **ShadowYOffset** *(integer) --* Specifies the vertical offset of the shadow relative to the
    captions in pixels. A value of -2 would result in a shadow offset 2 pixels above the text. All
    burn-in and DVB-Sub font settings must match.

    - **TeletextGridControl** *(string) --* Controls whether a fixed grid size will be used to
    generate the output subtitles bitmap. Only applicable for Teletext inputs and DVB-Sub/Burn-in
    outputs.

    - **XPosition** *(integer) --* Specifies the horizontal position of the caption relative to the
    left side of the output in pixels. A value of 10 would result in the captions starting 10 pixels
    from the left of the output. If no explicit xPosition is provided, the horizontal caption
    position will be determined by the alignment parameter. All burn-in and DVB-Sub font settings
    must match.

    - **YPosition** *(integer) --* Specifies the vertical position of the caption relative to the
    top of the output in pixels. A value of 10 would result in the captions starting 10 pixels from
    the top of the output. If no explicit yPosition is provided, the caption will be positioned
    towards the bottom of the output. All burn-in and DVB-Sub font settings must match.
    """


_ClientUpdateChannelClassResponseChannelEncoderSettingsCaptionDescriptionsDestinationSettingsDvbSubDestinationSettingsFontTypeDef = TypedDict(
    "_ClientUpdateChannelClassResponseChannelEncoderSettingsCaptionDescriptionsDestinationSettingsDvbSubDestinationSettingsFontTypeDef",
    {"PasswordParam": str, "Uri": str, "Username": str},
    total=False,
)


class ClientUpdateChannelClassResponseChannelEncoderSettingsCaptionDescriptionsDestinationSettingsDvbSubDestinationSettingsFontTypeDef(
    _ClientUpdateChannelClassResponseChannelEncoderSettingsCaptionDescriptionsDestinationSettingsDvbSubDestinationSettingsFontTypeDef
):
    """
    Type definition for
    `ClientUpdateChannelClassResponseChannelEncoderSettingsCaptionDescriptionsDestinationSettingsDvbSubDestinationSettings`
    `Font`

    - **PasswordParam** *(string) --* key used to extract the password from EC2 Parameter store

    - **Uri** *(string) --* Uniform Resource Identifier - This should be a path to a file accessible
    to the Live system (eg. a http:// URI) depending on the output type. For example, a RTMP
    destination should have a uri simliar to: "rtmp://fmsserver/live".

    - **Username** *(string) --* Documentation update needed
    """


_ClientUpdateChannelClassResponseChannelEncoderSettingsCaptionDescriptionsDestinationSettingsDvbSubDestinationSettingsTypeDef = TypedDict(
    "_ClientUpdateChannelClassResponseChannelEncoderSettingsCaptionDescriptionsDestinationSettingsDvbSubDestinationSettingsTypeDef",
    {
        "Alignment": str,
        "BackgroundColor": str,
        "BackgroundOpacity": int,
        "Font": ClientUpdateChannelClassResponseChannelEncoderSettingsCaptionDescriptionsDestinationSettingsDvbSubDestinationSettingsFontTypeDef,
        "FontColor": str,
        "FontOpacity": int,
        "FontResolution": int,
        "FontSize": str,
        "OutlineColor": str,
        "OutlineSize": int,
        "ShadowColor": str,
        "ShadowOpacity": int,
        "ShadowXOffset": int,
        "ShadowYOffset": int,
        "TeletextGridControl": str,
        "XPosition": int,
        "YPosition": int,
    },
    total=False,
)


class ClientUpdateChannelClassResponseChannelEncoderSettingsCaptionDescriptionsDestinationSettingsDvbSubDestinationSettingsTypeDef(
    _ClientUpdateChannelClassResponseChannelEncoderSettingsCaptionDescriptionsDestinationSettingsDvbSubDestinationSettingsTypeDef
):
    """
    Type definition for
    `ClientUpdateChannelClassResponseChannelEncoderSettingsCaptionDescriptionsDestinationSettings`
    `DvbSubDestinationSettings`

    - **Alignment** *(string) --* If no explicit xPosition or yPosition is provided, setting
    alignment to centered will place the captions at the bottom center of the output. Similarly,
    setting a left alignment will align captions to the bottom left of the output. If x and y
    positions are given in conjunction with the alignment parameter, the font will be justified
    (either left or centered) relative to those coordinates. Selecting "smart" justification will
    left-justify live subtitles and center-justify pre-recorded subtitles. This option is not valid
    for source captions that are STL or 608/embedded. These source settings are already pre-defined
    by the caption stream. All burn-in and DVB-Sub font settings must match.

    - **BackgroundColor** *(string) --* Specifies the color of the rectangle behind the captions.
    All burn-in and DVB-Sub font settings must match.

    - **BackgroundOpacity** *(integer) --* Specifies the opacity of the background rectangle. 255 is
    opaque; 0 is transparent. Leaving this parameter blank is equivalent to setting it to 0
    (transparent). All burn-in and DVB-Sub font settings must match.

    - **Font** *(dict) --* External font file used for caption burn-in. File extension must be 'ttf'
    or 'tte'. Although the user can select output fonts for many different types of input captions,
    embedded, STL and teletext sources use a strict grid system. Using external fonts with these
    caption sources could cause unexpected display of proportional fonts. All burn-in and DVB-Sub
    font settings must match.

      - **PasswordParam** *(string) --* key used to extract the password from EC2 Parameter store

      - **Uri** *(string) --* Uniform Resource Identifier - This should be a path to a file
      accessible to the Live system (eg. a http:// URI) depending on the output type. For example, a
      RTMP destination should have a uri simliar to: "rtmp://fmsserver/live".

      - **Username** *(string) --* Documentation update needed

    - **FontColor** *(string) --* Specifies the color of the burned-in captions. This option is not
    valid for source captions that are STL, 608/embedded or teletext. These source settings are
    already pre-defined by the caption stream. All burn-in and DVB-Sub font settings must match.

    - **FontOpacity** *(integer) --* Specifies the opacity of the burned-in captions. 255 is opaque;
    0 is transparent. All burn-in and DVB-Sub font settings must match.

    - **FontResolution** *(integer) --* Font resolution in DPI (dots per inch); default is 96 dpi.
    All burn-in and DVB-Sub font settings must match.

    - **FontSize** *(string) --* When set to auto fontSize will scale depending on the size of the
    output. Giving a positive integer will specify the exact font size in points. All burn-in and
    DVB-Sub font settings must match.

    - **OutlineColor** *(string) --* Specifies font outline color. This option is not valid for
    source captions that are either 608/embedded or teletext. These source settings are already
    pre-defined by the caption stream. All burn-in and DVB-Sub font settings must match.

    - **OutlineSize** *(integer) --* Specifies font outline size in pixels. This option is not valid
    for source captions that are either 608/embedded or teletext. These source settings are already
    pre-defined by the caption stream. All burn-in and DVB-Sub font settings must match.

    - **ShadowColor** *(string) --* Specifies the color of the shadow cast by the captions. All
    burn-in and DVB-Sub font settings must match.

    - **ShadowOpacity** *(integer) --* Specifies the opacity of the shadow. 255 is opaque; 0 is
    transparent. Leaving this parameter blank is equivalent to setting it to 0 (transparent). All
    burn-in and DVB-Sub font settings must match.

    - **ShadowXOffset** *(integer) --* Specifies the horizontal offset of the shadow relative to the
    captions in pixels. A value of -2 would result in a shadow offset 2 pixels to the left. All
    burn-in and DVB-Sub font settings must match.

    - **ShadowYOffset** *(integer) --* Specifies the vertical offset of the shadow relative to the
    captions in pixels. A value of -2 would result in a shadow offset 2 pixels above the text. All
    burn-in and DVB-Sub font settings must match.

    - **TeletextGridControl** *(string) --* Controls whether a fixed grid size will be used to
    generate the output subtitles bitmap. Only applicable for Teletext inputs and DVB-Sub/Burn-in
    outputs.

    - **XPosition** *(integer) --* Specifies the horizontal position of the caption relative to the
    left side of the output in pixels. A value of 10 would result in the captions starting 10 pixels
    from the left of the output. If no explicit xPosition is provided, the horizontal caption
    position will be determined by the alignment parameter. This option is not valid for source
    captions that are STL, 608/embedded or teletext. These source settings are already pre-defined
    by the caption stream. All burn-in and DVB-Sub font settings must match.

    - **YPosition** *(integer) --* Specifies the vertical position of the caption relative to the
    top of the output in pixels. A value of 10 would result in the captions starting 10 pixels from
    the top of the output. If no explicit yPosition is provided, the caption will be positioned
    towards the bottom of the output. This option is not valid for source captions that are STL,
    608/embedded or teletext. These source settings are already pre-defined by the caption stream.
    All burn-in and DVB-Sub font settings must match.
    """


_ClientUpdateChannelClassResponseChannelEncoderSettingsCaptionDescriptionsDestinationSettingsTtmlDestinationSettingsTypeDef = TypedDict(
    "_ClientUpdateChannelClassResponseChannelEncoderSettingsCaptionDescriptionsDestinationSettingsTtmlDestinationSettingsTypeDef",
    {"StyleControl": str},
    total=False,
)


class ClientUpdateChannelClassResponseChannelEncoderSettingsCaptionDescriptionsDestinationSettingsTtmlDestinationSettingsTypeDef(
    _ClientUpdateChannelClassResponseChannelEncoderSettingsCaptionDescriptionsDestinationSettingsTtmlDestinationSettingsTypeDef
):
    """
    Type definition for
    `ClientUpdateChannelClassResponseChannelEncoderSettingsCaptionDescriptionsDestinationSettings`
    `TtmlDestinationSettings`

    - **StyleControl** *(string) --* When set to passthrough, passes through style and position
    information from a TTML-like input source (TTML, SMPTE-TT, CFF-TT) to the CFF-TT output or TTML
    output.
    """


_ClientUpdateChannelClassResponseChannelEncoderSettingsCaptionDescriptionsDestinationSettingsTypeDef = TypedDict(
    "_ClientUpdateChannelClassResponseChannelEncoderSettingsCaptionDescriptionsDestinationSettingsTypeDef",
    {
        "AribDestinationSettings": Dict,
        "BurnInDestinationSettings": ClientUpdateChannelClassResponseChannelEncoderSettingsCaptionDescriptionsDestinationSettingsBurnInDestinationSettingsTypeDef,
        "DvbSubDestinationSettings": ClientUpdateChannelClassResponseChannelEncoderSettingsCaptionDescriptionsDestinationSettingsDvbSubDestinationSettingsTypeDef,
        "EmbeddedDestinationSettings": Dict,
        "EmbeddedPlusScte20DestinationSettings": Dict,
        "RtmpCaptionInfoDestinationSettings": Dict,
        "Scte20PlusEmbeddedDestinationSettings": Dict,
        "Scte27DestinationSettings": Dict,
        "SmpteTtDestinationSettings": Dict,
        "TeletextDestinationSettings": Dict,
        "TtmlDestinationSettings": ClientUpdateChannelClassResponseChannelEncoderSettingsCaptionDescriptionsDestinationSettingsTtmlDestinationSettingsTypeDef,
        "WebvttDestinationSettings": Dict[str, Any],
    },
    total=False,
)


class ClientUpdateChannelClassResponseChannelEncoderSettingsCaptionDescriptionsDestinationSettingsTypeDef(
    _ClientUpdateChannelClassResponseChannelEncoderSettingsCaptionDescriptionsDestinationSettingsTypeDef
):
    """
    Type definition for `ClientUpdateChannelClassResponseChannelEncoderSettingsCaptionDescriptions`
    `DestinationSettings`

    - **AribDestinationSettings** *(dict) --* Arib Destination Settings

    - **BurnInDestinationSettings** *(dict) --* Burn In Destination Settings

      - **Alignment** *(string) --* If no explicit xPosition or yPosition is provided, setting
      alignment to centered will place the captions at the bottom center of the output. Similarly,
      setting a left alignment will align captions to the bottom left of the output. If x and y
      positions are given in conjunction with the alignment parameter, the font will be justified
      (either left or centered) relative to those coordinates. Selecting "smart" justification will
      left-justify live subtitles and center-justify pre-recorded subtitles. All burn-in and DVB-Sub
      font settings must match.

      - **BackgroundColor** *(string) --* Specifies the color of the rectangle behind the captions.
      All burn-in and DVB-Sub font settings must match.

      - **BackgroundOpacity** *(integer) --* Specifies the opacity of the background rectangle. 255
      is opaque; 0 is transparent. Leaving this parameter out is equivalent to setting it to 0
      (transparent). All burn-in and DVB-Sub font settings must match.

      - **Font** *(dict) --* External font file used for caption burn-in. File extension must be
      'ttf' or 'tte'. Although the user can select output fonts for many different types of input
      captions, embedded, STL and teletext sources use a strict grid system. Using external fonts
      with these caption sources could cause unexpected display of proportional fonts. All burn-in
      and DVB-Sub font settings must match.

        - **PasswordParam** *(string) --* key used to extract the password from EC2 Parameter store

        - **Uri** *(string) --* Uniform Resource Identifier - This should be a path to a file
        accessible to the Live system (eg. a http:// URI) depending on the output type. For example,
        a RTMP destination should have a uri simliar to: "rtmp://fmsserver/live".

        - **Username** *(string) --* Documentation update needed

      - **FontColor** *(string) --* Specifies the color of the burned-in captions. This option is
      not valid for source captions that are STL, 608/embedded or teletext. These source settings
      are already pre-defined by the caption stream. All burn-in and DVB-Sub font settings must
      match.

      - **FontOpacity** *(integer) --* Specifies the opacity of the burned-in captions. 255 is
      opaque; 0 is transparent. All burn-in and DVB-Sub font settings must match.

      - **FontResolution** *(integer) --* Font resolution in DPI (dots per inch); default is 96 dpi.
      All burn-in and DVB-Sub font settings must match.

      - **FontSize** *(string) --* When set to 'auto' fontSize will scale depending on the size of
      the output. Giving a positive integer will specify the exact font size in points. All burn-in
      and DVB-Sub font settings must match.

      - **OutlineColor** *(string) --* Specifies font outline color. This option is not valid for
      source captions that are either 608/embedded or teletext. These source settings are already
      pre-defined by the caption stream. All burn-in and DVB-Sub font settings must match.

      - **OutlineSize** *(integer) --* Specifies font outline size in pixels. This option is not
      valid for source captions that are either 608/embedded or teletext. These source settings are
      already pre-defined by the caption stream. All burn-in and DVB-Sub font settings must match.

      - **ShadowColor** *(string) --* Specifies the color of the shadow cast by the captions. All
      burn-in and DVB-Sub font settings must match.

      - **ShadowOpacity** *(integer) --* Specifies the opacity of the shadow. 255 is opaque; 0 is
      transparent. Leaving this parameter out is equivalent to setting it to 0 (transparent). All
      burn-in and DVB-Sub font settings must match.

      - **ShadowXOffset** *(integer) --* Specifies the horizontal offset of the shadow relative to
      the captions in pixels. A value of -2 would result in a shadow offset 2 pixels to the left.
      All burn-in and DVB-Sub font settings must match.

      - **ShadowYOffset** *(integer) --* Specifies the vertical offset of the shadow relative to the
      captions in pixels. A value of -2 would result in a shadow offset 2 pixels above the text. All
      burn-in and DVB-Sub font settings must match.

      - **TeletextGridControl** *(string) --* Controls whether a fixed grid size will be used to
      generate the output subtitles bitmap. Only applicable for Teletext inputs and DVB-Sub/Burn-in
      outputs.

      - **XPosition** *(integer) --* Specifies the horizontal position of the caption relative to
      the left side of the output in pixels. A value of 10 would result in the captions starting 10
      pixels from the left of the output. If no explicit xPosition is provided, the horizontal
      caption position will be determined by the alignment parameter. All burn-in and DVB-Sub font
      settings must match.

      - **YPosition** *(integer) --* Specifies the vertical position of the caption relative to the
      top of the output in pixels. A value of 10 would result in the captions starting 10 pixels
      from the top of the output. If no explicit yPosition is provided, the caption will be
      positioned towards the bottom of the output. All burn-in and DVB-Sub font settings must match.

    - **DvbSubDestinationSettings** *(dict) --* Dvb Sub Destination Settings

      - **Alignment** *(string) --* If no explicit xPosition or yPosition is provided, setting
      alignment to centered will place the captions at the bottom center of the output. Similarly,
      setting a left alignment will align captions to the bottom left of the output. If x and y
      positions are given in conjunction with the alignment parameter, the font will be justified
      (either left or centered) relative to those coordinates. Selecting "smart" justification will
      left-justify live subtitles and center-justify pre-recorded subtitles. This option is not
      valid for source captions that are STL or 608/embedded. These source settings are already
      pre-defined by the caption stream. All burn-in and DVB-Sub font settings must match.

      - **BackgroundColor** *(string) --* Specifies the color of the rectangle behind the captions.
      All burn-in and DVB-Sub font settings must match.

      - **BackgroundOpacity** *(integer) --* Specifies the opacity of the background rectangle. 255
      is opaque; 0 is transparent. Leaving this parameter blank is equivalent to setting it to 0
      (transparent). All burn-in and DVB-Sub font settings must match.

      - **Font** *(dict) --* External font file used for caption burn-in. File extension must be
      'ttf' or 'tte'. Although the user can select output fonts for many different types of input
      captions, embedded, STL and teletext sources use a strict grid system. Using external fonts
      with these caption sources could cause unexpected display of proportional fonts. All burn-in
      and DVB-Sub font settings must match.

        - **PasswordParam** *(string) --* key used to extract the password from EC2 Parameter store

        - **Uri** *(string) --* Uniform Resource Identifier - This should be a path to a file
        accessible to the Live system (eg. a http:// URI) depending on the output type. For example,
        a RTMP destination should have a uri simliar to: "rtmp://fmsserver/live".

        - **Username** *(string) --* Documentation update needed

      - **FontColor** *(string) --* Specifies the color of the burned-in captions. This option is
      not valid for source captions that are STL, 608/embedded or teletext. These source settings
      are already pre-defined by the caption stream. All burn-in and DVB-Sub font settings must
      match.

      - **FontOpacity** *(integer) --* Specifies the opacity of the burned-in captions. 255 is
      opaque; 0 is transparent. All burn-in and DVB-Sub font settings must match.

      - **FontResolution** *(integer) --* Font resolution in DPI (dots per inch); default is 96 dpi.
      All burn-in and DVB-Sub font settings must match.

      - **FontSize** *(string) --* When set to auto fontSize will scale depending on the size of the
      output. Giving a positive integer will specify the exact font size in points. All burn-in and
      DVB-Sub font settings must match.

      - **OutlineColor** *(string) --* Specifies font outline color. This option is not valid for
      source captions that are either 608/embedded or teletext. These source settings are already
      pre-defined by the caption stream. All burn-in and DVB-Sub font settings must match.

      - **OutlineSize** *(integer) --* Specifies font outline size in pixels. This option is not
      valid for source captions that are either 608/embedded or teletext. These source settings are
      already pre-defined by the caption stream. All burn-in and DVB-Sub font settings must match.

      - **ShadowColor** *(string) --* Specifies the color of the shadow cast by the captions. All
      burn-in and DVB-Sub font settings must match.

      - **ShadowOpacity** *(integer) --* Specifies the opacity of the shadow. 255 is opaque; 0 is
      transparent. Leaving this parameter blank is equivalent to setting it to 0 (transparent). All
      burn-in and DVB-Sub font settings must match.

      - **ShadowXOffset** *(integer) --* Specifies the horizontal offset of the shadow relative to
      the captions in pixels. A value of -2 would result in a shadow offset 2 pixels to the left.
      All burn-in and DVB-Sub font settings must match.

      - **ShadowYOffset** *(integer) --* Specifies the vertical offset of the shadow relative to the
      captions in pixels. A value of -2 would result in a shadow offset 2 pixels above the text. All
      burn-in and DVB-Sub font settings must match.

      - **TeletextGridControl** *(string) --* Controls whether a fixed grid size will be used to
      generate the output subtitles bitmap. Only applicable for Teletext inputs and DVB-Sub/Burn-in
      outputs.

      - **XPosition** *(integer) --* Specifies the horizontal position of the caption relative to
      the left side of the output in pixels. A value of 10 would result in the captions starting 10
      pixels from the left of the output. If no explicit xPosition is provided, the horizontal
      caption position will be determined by the alignment parameter. This option is not valid for
      source captions that are STL, 608/embedded or teletext. These source settings are already
      pre-defined by the caption stream. All burn-in and DVB-Sub font settings must match.

      - **YPosition** *(integer) --* Specifies the vertical position of the caption relative to the
      top of the output in pixels. A value of 10 would result in the captions starting 10 pixels
      from the top of the output. If no explicit yPosition is provided, the caption will be
      positioned towards the bottom of the output. This option is not valid for source captions that
      are STL, 608/embedded or teletext. These source settings are already pre-defined by the
      caption stream. All burn-in and DVB-Sub font settings must match.

    - **EmbeddedDestinationSettings** *(dict) --* Embedded Destination Settings

    - **EmbeddedPlusScte20DestinationSettings** *(dict) --* Embedded Plus Scte20 Destination
    Settings

    - **RtmpCaptionInfoDestinationSettings** *(dict) --* Rtmp Caption Info Destination Settings

    - **Scte20PlusEmbeddedDestinationSettings** *(dict) --* Scte20 Plus Embedded Destination
    Settings

    - **Scte27DestinationSettings** *(dict) --* Scte27 Destination Settings

    - **SmpteTtDestinationSettings** *(dict) --* Smpte Tt Destination Settings

    - **TeletextDestinationSettings** *(dict) --* Teletext Destination Settings

    - **TtmlDestinationSettings** *(dict) --* Ttml Destination Settings

      - **StyleControl** *(string) --* When set to passthrough, passes through style and position
      information from a TTML-like input source (TTML, SMPTE-TT, CFF-TT) to the CFF-TT output or
      TTML output.

    - **WebvttDestinationSettings** *(dict) --* Webvtt Destination Settings
    """


_ClientUpdateChannelClassResponseChannelEncoderSettingsCaptionDescriptionsTypeDef = TypedDict(
    "_ClientUpdateChannelClassResponseChannelEncoderSettingsCaptionDescriptionsTypeDef",
    {
        "CaptionSelectorName": str,
        "DestinationSettings": ClientUpdateChannelClassResponseChannelEncoderSettingsCaptionDescriptionsDestinationSettingsTypeDef,
        "LanguageCode": str,
        "LanguageDescription": str,
        "Name": str,
    },
    total=False,
)


class ClientUpdateChannelClassResponseChannelEncoderSettingsCaptionDescriptionsTypeDef(
    _ClientUpdateChannelClassResponseChannelEncoderSettingsCaptionDescriptionsTypeDef
):
    """
    Type definition for `ClientUpdateChannelClassResponseChannelEncoderSettings`
    `CaptionDescriptions`

    - **CaptionSelectorName** *(string) --* Specifies which input caption selector to use as a
    caption source when generating output captions. This field should match a captionSelector name.

    - **DestinationSettings** *(dict) --* Additional settings for captions destination that depend
    on the destination type.

      - **AribDestinationSettings** *(dict) --* Arib Destination Settings

      - **BurnInDestinationSettings** *(dict) --* Burn In Destination Settings

        - **Alignment** *(string) --* If no explicit xPosition or yPosition is provided, setting
        alignment to centered will place the captions at the bottom center of the output. Similarly,
        setting a left alignment will align captions to the bottom left of the output. If x and y
        positions are given in conjunction with the alignment parameter, the font will be justified
        (either left or centered) relative to those coordinates. Selecting "smart" justification
        will left-justify live subtitles and center-justify pre-recorded subtitles. All burn-in and
        DVB-Sub font settings must match.

        - **BackgroundColor** *(string) --* Specifies the color of the rectangle behind the
        captions. All burn-in and DVB-Sub font settings must match.

        - **BackgroundOpacity** *(integer) --* Specifies the opacity of the background rectangle.
        255 is opaque; 0 is transparent. Leaving this parameter out is equivalent to setting it to 0
        (transparent). All burn-in and DVB-Sub font settings must match.

        - **Font** *(dict) --* External font file used for caption burn-in. File extension must be
        'ttf' or 'tte'. Although the user can select output fonts for many different types of input
        captions, embedded, STL and teletext sources use a strict grid system. Using external fonts
        with these caption sources could cause unexpected display of proportional fonts. All burn-in
        and DVB-Sub font settings must match.

          - **PasswordParam** *(string) --* key used to extract the password from EC2 Parameter
          store

          - **Uri** *(string) --* Uniform Resource Identifier - This should be a path to a file
          accessible to the Live system (eg. a http:// URI) depending on the output type. For
          example, a RTMP destination should have a uri simliar to: "rtmp://fmsserver/live".

          - **Username** *(string) --* Documentation update needed

        - **FontColor** *(string) --* Specifies the color of the burned-in captions. This option is
        not valid for source captions that are STL, 608/embedded or teletext. These source settings
        are already pre-defined by the caption stream. All burn-in and DVB-Sub font settings must
        match.

        - **FontOpacity** *(integer) --* Specifies the opacity of the burned-in captions. 255 is
        opaque; 0 is transparent. All burn-in and DVB-Sub font settings must match.

        - **FontResolution** *(integer) --* Font resolution in DPI (dots per inch); default is 96
        dpi. All burn-in and DVB-Sub font settings must match.

        - **FontSize** *(string) --* When set to 'auto' fontSize will scale depending on the size of
        the output. Giving a positive integer will specify the exact font size in points. All
        burn-in and DVB-Sub font settings must match.

        - **OutlineColor** *(string) --* Specifies font outline color. This option is not valid for
        source captions that are either 608/embedded or teletext. These source settings are already
        pre-defined by the caption stream. All burn-in and DVB-Sub font settings must match.

        - **OutlineSize** *(integer) --* Specifies font outline size in pixels. This option is not
        valid for source captions that are either 608/embedded or teletext. These source settings
        are already pre-defined by the caption stream. All burn-in and DVB-Sub font settings must
        match.

        - **ShadowColor** *(string) --* Specifies the color of the shadow cast by the captions. All
        burn-in and DVB-Sub font settings must match.

        - **ShadowOpacity** *(integer) --* Specifies the opacity of the shadow. 255 is opaque; 0 is
        transparent. Leaving this parameter out is equivalent to setting it to 0 (transparent). All
        burn-in and DVB-Sub font settings must match.

        - **ShadowXOffset** *(integer) --* Specifies the horizontal offset of the shadow relative to
        the captions in pixels. A value of -2 would result in a shadow offset 2 pixels to the left.
        All burn-in and DVB-Sub font settings must match.

        - **ShadowYOffset** *(integer) --* Specifies the vertical offset of the shadow relative to
        the captions in pixels. A value of -2 would result in a shadow offset 2 pixels above the
        text. All burn-in and DVB-Sub font settings must match.

        - **TeletextGridControl** *(string) --* Controls whether a fixed grid size will be used to
        generate the output subtitles bitmap. Only applicable for Teletext inputs and
        DVB-Sub/Burn-in outputs.

        - **XPosition** *(integer) --* Specifies the horizontal position of the caption relative to
        the left side of the output in pixels. A value of 10 would result in the captions starting
        10 pixels from the left of the output. If no explicit xPosition is provided, the horizontal
        caption position will be determined by the alignment parameter. All burn-in and DVB-Sub font
        settings must match.

        - **YPosition** *(integer) --* Specifies the vertical position of the caption relative to
        the top of the output in pixels. A value of 10 would result in the captions starting 10
        pixels from the top of the output. If no explicit yPosition is provided, the caption will be
        positioned towards the bottom of the output. All burn-in and DVB-Sub font settings must
        match.

      - **DvbSubDestinationSettings** *(dict) --* Dvb Sub Destination Settings

        - **Alignment** *(string) --* If no explicit xPosition or yPosition is provided, setting
        alignment to centered will place the captions at the bottom center of the output. Similarly,
        setting a left alignment will align captions to the bottom left of the output. If x and y
        positions are given in conjunction with the alignment parameter, the font will be justified
        (either left or centered) relative to those coordinates. Selecting "smart" justification
        will left-justify live subtitles and center-justify pre-recorded subtitles. This option is
        not valid for source captions that are STL or 608/embedded. These source settings are
        already pre-defined by the caption stream. All burn-in and DVB-Sub font settings must match.

        - **BackgroundColor** *(string) --* Specifies the color of the rectangle behind the
        captions. All burn-in and DVB-Sub font settings must match.

        - **BackgroundOpacity** *(integer) --* Specifies the opacity of the background rectangle.
        255 is opaque; 0 is transparent. Leaving this parameter blank is equivalent to setting it to
        0 (transparent). All burn-in and DVB-Sub font settings must match.

        - **Font** *(dict) --* External font file used for caption burn-in. File extension must be
        'ttf' or 'tte'. Although the user can select output fonts for many different types of input
        captions, embedded, STL and teletext sources use a strict grid system. Using external fonts
        with these caption sources could cause unexpected display of proportional fonts. All burn-in
        and DVB-Sub font settings must match.

          - **PasswordParam** *(string) --* key used to extract the password from EC2 Parameter
          store

          - **Uri** *(string) --* Uniform Resource Identifier - This should be a path to a file
          accessible to the Live system (eg. a http:// URI) depending on the output type. For
          example, a RTMP destination should have a uri simliar to: "rtmp://fmsserver/live".

          - **Username** *(string) --* Documentation update needed

        - **FontColor** *(string) --* Specifies the color of the burned-in captions. This option is
        not valid for source captions that are STL, 608/embedded or teletext. These source settings
        are already pre-defined by the caption stream. All burn-in and DVB-Sub font settings must
        match.

        - **FontOpacity** *(integer) --* Specifies the opacity of the burned-in captions. 255 is
        opaque; 0 is transparent. All burn-in and DVB-Sub font settings must match.

        - **FontResolution** *(integer) --* Font resolution in DPI (dots per inch); default is 96
        dpi. All burn-in and DVB-Sub font settings must match.

        - **FontSize** *(string) --* When set to auto fontSize will scale depending on the size of
        the output. Giving a positive integer will specify the exact font size in points. All
        burn-in and DVB-Sub font settings must match.

        - **OutlineColor** *(string) --* Specifies font outline color. This option is not valid for
        source captions that are either 608/embedded or teletext. These source settings are already
        pre-defined by the caption stream. All burn-in and DVB-Sub font settings must match.

        - **OutlineSize** *(integer) --* Specifies font outline size in pixels. This option is not
        valid for source captions that are either 608/embedded or teletext. These source settings
        are already pre-defined by the caption stream. All burn-in and DVB-Sub font settings must
        match.

        - **ShadowColor** *(string) --* Specifies the color of the shadow cast by the captions. All
        burn-in and DVB-Sub font settings must match.

        - **ShadowOpacity** *(integer) --* Specifies the opacity of the shadow. 255 is opaque; 0 is
        transparent. Leaving this parameter blank is equivalent to setting it to 0 (transparent).
        All burn-in and DVB-Sub font settings must match.

        - **ShadowXOffset** *(integer) --* Specifies the horizontal offset of the shadow relative to
        the captions in pixels. A value of -2 would result in a shadow offset 2 pixels to the left.
        All burn-in and DVB-Sub font settings must match.

        - **ShadowYOffset** *(integer) --* Specifies the vertical offset of the shadow relative to
        the captions in pixels. A value of -2 would result in a shadow offset 2 pixels above the
        text. All burn-in and DVB-Sub font settings must match.

        - **TeletextGridControl** *(string) --* Controls whether a fixed grid size will be used to
        generate the output subtitles bitmap. Only applicable for Teletext inputs and
        DVB-Sub/Burn-in outputs.

        - **XPosition** *(integer) --* Specifies the horizontal position of the caption relative to
        the left side of the output in pixels. A value of 10 would result in the captions starting
        10 pixels from the left of the output. If no explicit xPosition is provided, the horizontal
        caption position will be determined by the alignment parameter. This option is not valid for
        source captions that are STL, 608/embedded or teletext. These source settings are already
        pre-defined by the caption stream. All burn-in and DVB-Sub font settings must match.

        - **YPosition** *(integer) --* Specifies the vertical position of the caption relative to
        the top of the output in pixels. A value of 10 would result in the captions starting 10
        pixels from the top of the output. If no explicit yPosition is provided, the caption will be
        positioned towards the bottom of the output. This option is not valid for source captions
        that are STL, 608/embedded or teletext. These source settings are already pre-defined by the
        caption stream. All burn-in and DVB-Sub font settings must match.

      - **EmbeddedDestinationSettings** *(dict) --* Embedded Destination Settings

      - **EmbeddedPlusScte20DestinationSettings** *(dict) --* Embedded Plus Scte20 Destination
      Settings

      - **RtmpCaptionInfoDestinationSettings** *(dict) --* Rtmp Caption Info Destination Settings

      - **Scte20PlusEmbeddedDestinationSettings** *(dict) --* Scte20 Plus Embedded Destination
      Settings

      - **Scte27DestinationSettings** *(dict) --* Scte27 Destination Settings

      - **SmpteTtDestinationSettings** *(dict) --* Smpte Tt Destination Settings

      - **TeletextDestinationSettings** *(dict) --* Teletext Destination Settings

      - **TtmlDestinationSettings** *(dict) --* Ttml Destination Settings

        - **StyleControl** *(string) --* When set to passthrough, passes through style and position
        information from a TTML-like input source (TTML, SMPTE-TT, CFF-TT) to the CFF-TT output or
        TTML output.

      - **WebvttDestinationSettings** *(dict) --* Webvtt Destination Settings

    - **LanguageCode** *(string) --* ISO 639-2 three-digit code:
    http://www.loc.gov/standards/iso639-2/

    - **LanguageDescription** *(string) --* Human readable information to indicate captions
    available for players (eg. English, or Spanish).

    - **Name** *(string) --* Name of the caption description. Used to associate a caption
    description with an output. Names must be unique within an event.
    """


_ClientUpdateChannelClassResponseChannelEncoderSettingsGlobalConfigurationInputLossBehaviorInputLossImageSlateTypeDef = TypedDict(
    "_ClientUpdateChannelClassResponseChannelEncoderSettingsGlobalConfigurationInputLossBehaviorInputLossImageSlateTypeDef",
    {"PasswordParam": str, "Uri": str, "Username": str},
    total=False,
)


class ClientUpdateChannelClassResponseChannelEncoderSettingsGlobalConfigurationInputLossBehaviorInputLossImageSlateTypeDef(
    _ClientUpdateChannelClassResponseChannelEncoderSettingsGlobalConfigurationInputLossBehaviorInputLossImageSlateTypeDef
):
    """
    Type definition for
    `ClientUpdateChannelClassResponseChannelEncoderSettingsGlobalConfigurationInputLossBehavior`
    `InputLossImageSlate`

    - **PasswordParam** *(string) --* key used to extract the password from EC2 Parameter store

    - **Uri** *(string) --* Uniform Resource Identifier - This should be a path to a file accessible
    to the Live system (eg. a http:// URI) depending on the output type. For example, a RTMP
    destination should have a uri simliar to: "rtmp://fmsserver/live".

    - **Username** *(string) --* Documentation update needed
    """


_ClientUpdateChannelClassResponseChannelEncoderSettingsGlobalConfigurationInputLossBehaviorTypeDef = TypedDict(
    "_ClientUpdateChannelClassResponseChannelEncoderSettingsGlobalConfigurationInputLossBehaviorTypeDef",
    {
        "BlackFrameMsec": int,
        "InputLossImageColor": str,
        "InputLossImageSlate": ClientUpdateChannelClassResponseChannelEncoderSettingsGlobalConfigurationInputLossBehaviorInputLossImageSlateTypeDef,
        "InputLossImageType": str,
        "RepeatFrameMsec": int,
    },
    total=False,
)


class ClientUpdateChannelClassResponseChannelEncoderSettingsGlobalConfigurationInputLossBehaviorTypeDef(
    _ClientUpdateChannelClassResponseChannelEncoderSettingsGlobalConfigurationInputLossBehaviorTypeDef
):
    """
    Type definition for `ClientUpdateChannelClassResponseChannelEncoderSettingsGlobalConfiguration`
    `InputLossBehavior`

    - **BlackFrameMsec** *(integer) --* Documentation update needed

    - **InputLossImageColor** *(string) --* When input loss image type is "color" this field
    specifies the color to use. Value: 6 hex characters representing the values of RGB.

    - **InputLossImageSlate** *(dict) --* When input loss image type is "slate" these fields specify
    the parameters for accessing the slate.

      - **PasswordParam** *(string) --* key used to extract the password from EC2 Parameter store

      - **Uri** *(string) --* Uniform Resource Identifier - This should be a path to a file
      accessible to the Live system (eg. a http:// URI) depending on the output type. For example, a
      RTMP destination should have a uri simliar to: "rtmp://fmsserver/live".

      - **Username** *(string) --* Documentation update needed

    - **InputLossImageType** *(string) --* Indicates whether to substitute a solid color or a slate
    into the output after input loss exceeds blackFrameMsec.

    - **RepeatFrameMsec** *(integer) --* Documentation update needed
    """


_ClientUpdateChannelClassResponseChannelEncoderSettingsGlobalConfigurationTypeDef = TypedDict(
    "_ClientUpdateChannelClassResponseChannelEncoderSettingsGlobalConfigurationTypeDef",
    {
        "InitialAudioGain": int,
        "InputEndAction": str,
        "InputLossBehavior": ClientUpdateChannelClassResponseChannelEncoderSettingsGlobalConfigurationInputLossBehaviorTypeDef,
        "OutputLockingMode": str,
        "OutputTimingSource": str,
        "SupportLowFramerateInputs": str,
    },
    total=False,
)


class ClientUpdateChannelClassResponseChannelEncoderSettingsGlobalConfigurationTypeDef(
    _ClientUpdateChannelClassResponseChannelEncoderSettingsGlobalConfigurationTypeDef
):
    """
    Type definition for `ClientUpdateChannelClassResponseChannelEncoderSettings`
    `GlobalConfiguration`

    - **InitialAudioGain** *(integer) --* Value to set the initial audio gain for the Live Event.

    - **InputEndAction** *(string) --* Indicates the action to take when the current input completes
    (e.g. end-of-file). When switchAndLoopInputs is configured the encoder will restart at the
    beginning of the first input. When "none" is configured the encoder will transcode either black,
    a solid color, or a user specified slate images per the "Input Loss Behavior" configuration
    until the next input switch occurs (which is controlled through the Channel Schedule API).

    - **InputLossBehavior** *(dict) --* Settings for system actions when input is lost.

      - **BlackFrameMsec** *(integer) --* Documentation update needed

      - **InputLossImageColor** *(string) --* When input loss image type is "color" this field
      specifies the color to use. Value: 6 hex characters representing the values of RGB.

      - **InputLossImageSlate** *(dict) --* When input loss image type is "slate" these fields
      specify the parameters for accessing the slate.

        - **PasswordParam** *(string) --* key used to extract the password from EC2 Parameter store

        - **Uri** *(string) --* Uniform Resource Identifier - This should be a path to a file
        accessible to the Live system (eg. a http:// URI) depending on the output type. For example,
        a RTMP destination should have a uri simliar to: "rtmp://fmsserver/live".

        - **Username** *(string) --* Documentation update needed

      - **InputLossImageType** *(string) --* Indicates whether to substitute a solid color or a
      slate into the output after input loss exceeds blackFrameMsec.

      - **RepeatFrameMsec** *(integer) --* Documentation update needed

    - **OutputLockingMode** *(string) --* Indicates how MediaLive pipelines are synchronized.
    PIPELINELOCKING - MediaLive will attempt to synchronize the output of each pipeline to the
    other. EPOCHLOCKING - MediaLive will attempt to synchronize the output of each pipeline to the
    Unix epoch.

    - **OutputTimingSource** *(string) --* Indicates whether the rate of frames emitted by the Live
    encoder should be paced by its system clock (which optionally may be locked to another source
    via NTP) or should be locked to the clock of the source that is providing the input stream.

    - **SupportLowFramerateInputs** *(string) --* Adjusts video input buffer for streams with very
    low video framerates. This is commonly set to enabled for music channels with less than one
    video frame per second.
    """


_ClientUpdateChannelClassResponseChannelEncoderSettingsNielsenConfigurationTypeDef = TypedDict(
    "_ClientUpdateChannelClassResponseChannelEncoderSettingsNielsenConfigurationTypeDef",
    {"DistributorId": str, "NielsenPcmToId3Tagging": str},
    total=False,
)


class ClientUpdateChannelClassResponseChannelEncoderSettingsNielsenConfigurationTypeDef(
    _ClientUpdateChannelClassResponseChannelEncoderSettingsNielsenConfigurationTypeDef
):
    """
    Type definition for `ClientUpdateChannelClassResponseChannelEncoderSettings`
    `NielsenConfiguration`

    - **DistributorId** *(string) --* Enter the Distributor ID assigned to your organization by
    Nielsen.

    - **NielsenPcmToId3Tagging** *(string) --* Enables Nielsen PCM to ID3 tagging
    """


_ClientUpdateChannelClassResponseChannelEncoderSettingsOutputGroupsOutputGroupSettingsArchiveGroupSettingsDestinationTypeDef = TypedDict(
    "_ClientUpdateChannelClassResponseChannelEncoderSettingsOutputGroupsOutputGroupSettingsArchiveGroupSettingsDestinationTypeDef",
    {"DestinationRefId": str},
    total=False,
)


class ClientUpdateChannelClassResponseChannelEncoderSettingsOutputGroupsOutputGroupSettingsArchiveGroupSettingsDestinationTypeDef(
    _ClientUpdateChannelClassResponseChannelEncoderSettingsOutputGroupsOutputGroupSettingsArchiveGroupSettingsDestinationTypeDef
):
    """
    Type definition for
    `ClientUpdateChannelClassResponseChannelEncoderSettingsOutputGroupsOutputGroupSettingsArchiveGroupSettings`
    `Destination`

    - **DestinationRefId** *(string) --* Placeholder documentation for __string
    """


_ClientUpdateChannelClassResponseChannelEncoderSettingsOutputGroupsOutputGroupSettingsArchiveGroupSettingsTypeDef = TypedDict(
    "_ClientUpdateChannelClassResponseChannelEncoderSettingsOutputGroupsOutputGroupSettingsArchiveGroupSettingsTypeDef",
    {
        "Destination": ClientUpdateChannelClassResponseChannelEncoderSettingsOutputGroupsOutputGroupSettingsArchiveGroupSettingsDestinationTypeDef,
        "RolloverInterval": int,
    },
    total=False,
)


class ClientUpdateChannelClassResponseChannelEncoderSettingsOutputGroupsOutputGroupSettingsArchiveGroupSettingsTypeDef(
    _ClientUpdateChannelClassResponseChannelEncoderSettingsOutputGroupsOutputGroupSettingsArchiveGroupSettingsTypeDef
):
    """
    Type definition for
    `ClientUpdateChannelClassResponseChannelEncoderSettingsOutputGroupsOutputGroupSettings`
    `ArchiveGroupSettings`

    - **Destination** *(dict) --* A directory and base filename where archive files should be
    written.

      - **DestinationRefId** *(string) --* Placeholder documentation for __string

    - **RolloverInterval** *(integer) --* Number of seconds to write to archive file before closing
    and starting a new one.
    """


_ClientUpdateChannelClassResponseChannelEncoderSettingsOutputGroupsOutputGroupSettingsFrameCaptureGroupSettingsDestinationTypeDef = TypedDict(
    "_ClientUpdateChannelClassResponseChannelEncoderSettingsOutputGroupsOutputGroupSettingsFrameCaptureGroupSettingsDestinationTypeDef",
    {"DestinationRefId": str},
    total=False,
)


class ClientUpdateChannelClassResponseChannelEncoderSettingsOutputGroupsOutputGroupSettingsFrameCaptureGroupSettingsDestinationTypeDef(
    _ClientUpdateChannelClassResponseChannelEncoderSettingsOutputGroupsOutputGroupSettingsFrameCaptureGroupSettingsDestinationTypeDef
):
    """
    Type definition for
    `ClientUpdateChannelClassResponseChannelEncoderSettingsOutputGroupsOutputGroupSettingsFrameCaptureGroupSettings`
    `Destination`

    - **DestinationRefId** *(string) --* Placeholder documentation for __string
    """


_ClientUpdateChannelClassResponseChannelEncoderSettingsOutputGroupsOutputGroupSettingsFrameCaptureGroupSettingsTypeDef = TypedDict(
    "_ClientUpdateChannelClassResponseChannelEncoderSettingsOutputGroupsOutputGroupSettingsFrameCaptureGroupSettingsTypeDef",
    {
        "Destination": ClientUpdateChannelClassResponseChannelEncoderSettingsOutputGroupsOutputGroupSettingsFrameCaptureGroupSettingsDestinationTypeDef
    },
    total=False,
)


class ClientUpdateChannelClassResponseChannelEncoderSettingsOutputGroupsOutputGroupSettingsFrameCaptureGroupSettingsTypeDef(
    _ClientUpdateChannelClassResponseChannelEncoderSettingsOutputGroupsOutputGroupSettingsFrameCaptureGroupSettingsTypeDef
):
    """
    Type definition for
    `ClientUpdateChannelClassResponseChannelEncoderSettingsOutputGroupsOutputGroupSettings`
    `FrameCaptureGroupSettings`

    - **Destination** *(dict) --* The destination for the frame capture files. Either the URI for an
    Amazon S3 bucket and object, plus a file name prefix (for example,
    s3ssl://sportsDelivery/highlights/20180820/curling_) or the URI for a MediaStore container, plus
    a file name prefix (for example, mediastoressl://sportsDelivery/20180820/curling_). The final
    file names consist of the prefix from the destination field (for example, "curling_") + name
    modifier + the counter (5 digits, starting from 00001) + extension (which is always .jpg). For
    example, curlingLow.00001.jpg

      - **DestinationRefId** *(string) --* Placeholder documentation for __string
    """


_ClientUpdateChannelClassResponseChannelEncoderSettingsOutputGroupsOutputGroupSettingsHlsGroupSettingsCaptionLanguageMappingsTypeDef = TypedDict(
    "_ClientUpdateChannelClassResponseChannelEncoderSettingsOutputGroupsOutputGroupSettingsHlsGroupSettingsCaptionLanguageMappingsTypeDef",
    {"CaptionChannel": int, "LanguageCode": str, "LanguageDescription": str},
    total=False,
)


class ClientUpdateChannelClassResponseChannelEncoderSettingsOutputGroupsOutputGroupSettingsHlsGroupSettingsCaptionLanguageMappingsTypeDef(
    _ClientUpdateChannelClassResponseChannelEncoderSettingsOutputGroupsOutputGroupSettingsHlsGroupSettingsCaptionLanguageMappingsTypeDef
):
    """
    Type definition for
    `ClientUpdateChannelClassResponseChannelEncoderSettingsOutputGroupsOutputGroupSettingsHlsGroupSettings`
    `CaptionLanguageMappings`

    - **CaptionChannel** *(integer) --* The closed caption channel being described by this
    CaptionLanguageMapping. Each channel mapping must have a unique channel number (maximum of 4)

    - **LanguageCode** *(string) --* Three character ISO 639-2 language code (see
    http://www.loc.gov/standards/iso639-2)

    - **LanguageDescription** *(string) --* Textual description of language
    """


_ClientUpdateChannelClassResponseChannelEncoderSettingsOutputGroupsOutputGroupSettingsHlsGroupSettingsDestinationTypeDef = TypedDict(
    "_ClientUpdateChannelClassResponseChannelEncoderSettingsOutputGroupsOutputGroupSettingsHlsGroupSettingsDestinationTypeDef",
    {"DestinationRefId": str},
    total=False,
)


class ClientUpdateChannelClassResponseChannelEncoderSettingsOutputGroupsOutputGroupSettingsHlsGroupSettingsDestinationTypeDef(
    _ClientUpdateChannelClassResponseChannelEncoderSettingsOutputGroupsOutputGroupSettingsHlsGroupSettingsDestinationTypeDef
):
    """
    Type definition for
    `ClientUpdateChannelClassResponseChannelEncoderSettingsOutputGroupsOutputGroupSettingsHlsGroupSettings`
    `Destination`

    - **DestinationRefId** *(string) --* Placeholder documentation for __string
    """


_ClientUpdateChannelClassResponseChannelEncoderSettingsOutputGroupsOutputGroupSettingsHlsGroupSettingsHlsCdnSettingsHlsAkamaiSettingsTypeDef = TypedDict(
    "_ClientUpdateChannelClassResponseChannelEncoderSettingsOutputGroupsOutputGroupSettingsHlsGroupSettingsHlsCdnSettingsHlsAkamaiSettingsTypeDef",
    {
        "ConnectionRetryInterval": int,
        "FilecacheDuration": int,
        "HttpTransferMode": str,
        "NumRetries": int,
        "RestartDelay": int,
        "Salt": str,
        "Token": str,
    },
    total=False,
)


class ClientUpdateChannelClassResponseChannelEncoderSettingsOutputGroupsOutputGroupSettingsHlsGroupSettingsHlsCdnSettingsHlsAkamaiSettingsTypeDef(
    _ClientUpdateChannelClassResponseChannelEncoderSettingsOutputGroupsOutputGroupSettingsHlsGroupSettingsHlsCdnSettingsHlsAkamaiSettingsTypeDef
):
    """
    Type definition for
    `ClientUpdateChannelClassResponseChannelEncoderSettingsOutputGroupsOutputGroupSettingsHlsGroupSettingsHlsCdnSettings`
    `HlsAkamaiSettings`

    - **ConnectionRetryInterval** *(integer) --* Number of seconds to wait before retrying
    connection to the CDN if the connection is lost.

    - **FilecacheDuration** *(integer) --* Size in seconds of file cache for streaming outputs.

    - **HttpTransferMode** *(string) --* Specify whether or not to use chunked transfer encoding to
    Akamai. User should contact Akamai to enable this feature.

    - **NumRetries** *(integer) --* Number of retry attempts that will be made before the Live Event
    is put into an error state.

    - **RestartDelay** *(integer) --* If a streaming output fails, number of seconds to wait until a
    restart is initiated. A value of 0 means never restart.

    - **Salt** *(string) --* Salt for authenticated Akamai.

    - **Token** *(string) --* Token parameter for authenticated akamai. If not specified, _gda_ is
    used.
    """


_ClientUpdateChannelClassResponseChannelEncoderSettingsOutputGroupsOutputGroupSettingsHlsGroupSettingsHlsCdnSettingsHlsBasicPutSettingsTypeDef = TypedDict(
    "_ClientUpdateChannelClassResponseChannelEncoderSettingsOutputGroupsOutputGroupSettingsHlsGroupSettingsHlsCdnSettingsHlsBasicPutSettingsTypeDef",
    {
        "ConnectionRetryInterval": int,
        "FilecacheDuration": int,
        "NumRetries": int,
        "RestartDelay": int,
    },
    total=False,
)


class ClientUpdateChannelClassResponseChannelEncoderSettingsOutputGroupsOutputGroupSettingsHlsGroupSettingsHlsCdnSettingsHlsBasicPutSettingsTypeDef(
    _ClientUpdateChannelClassResponseChannelEncoderSettingsOutputGroupsOutputGroupSettingsHlsGroupSettingsHlsCdnSettingsHlsBasicPutSettingsTypeDef
):
    """
    Type definition for
    `ClientUpdateChannelClassResponseChannelEncoderSettingsOutputGroupsOutputGroupSettingsHlsGroupSettingsHlsCdnSettings`
    `HlsBasicPutSettings`

    - **ConnectionRetryInterval** *(integer) --* Number of seconds to wait before retrying
    connection to the CDN if the connection is lost.

    - **FilecacheDuration** *(integer) --* Size in seconds of file cache for streaming outputs.

    - **NumRetries** *(integer) --* Number of retry attempts that will be made before the Live Event
    is put into an error state.

    - **RestartDelay** *(integer) --* If a streaming output fails, number of seconds to wait until a
    restart is initiated. A value of 0 means never restart.
    """


_ClientUpdateChannelClassResponseChannelEncoderSettingsOutputGroupsOutputGroupSettingsHlsGroupSettingsHlsCdnSettingsHlsMediaStoreSettingsTypeDef = TypedDict(
    "_ClientUpdateChannelClassResponseChannelEncoderSettingsOutputGroupsOutputGroupSettingsHlsGroupSettingsHlsCdnSettingsHlsMediaStoreSettingsTypeDef",
    {
        "ConnectionRetryInterval": int,
        "FilecacheDuration": int,
        "MediaStoreStorageClass": str,
        "NumRetries": int,
        "RestartDelay": int,
    },
    total=False,
)


class ClientUpdateChannelClassResponseChannelEncoderSettingsOutputGroupsOutputGroupSettingsHlsGroupSettingsHlsCdnSettingsHlsMediaStoreSettingsTypeDef(
    _ClientUpdateChannelClassResponseChannelEncoderSettingsOutputGroupsOutputGroupSettingsHlsGroupSettingsHlsCdnSettingsHlsMediaStoreSettingsTypeDef
):
    """
    Type definition for
    `ClientUpdateChannelClassResponseChannelEncoderSettingsOutputGroupsOutputGroupSettingsHlsGroupSettingsHlsCdnSettings`
    `HlsMediaStoreSettings`

    - **ConnectionRetryInterval** *(integer) --* Number of seconds to wait before retrying
    connection to the CDN if the connection is lost.

    - **FilecacheDuration** *(integer) --* Size in seconds of file cache for streaming outputs.

    - **MediaStoreStorageClass** *(string) --* When set to temporal, output files are stored in
    non-persistent memory for faster reading and writing.

    - **NumRetries** *(integer) --* Number of retry attempts that will be made before the Live Event
    is put into an error state.

    - **RestartDelay** *(integer) --* If a streaming output fails, number of seconds to wait until a
    restart is initiated. A value of 0 means never restart.
    """


_ClientUpdateChannelClassResponseChannelEncoderSettingsOutputGroupsOutputGroupSettingsHlsGroupSettingsHlsCdnSettingsHlsWebdavSettingsTypeDef = TypedDict(
    "_ClientUpdateChannelClassResponseChannelEncoderSettingsOutputGroupsOutputGroupSettingsHlsGroupSettingsHlsCdnSettingsHlsWebdavSettingsTypeDef",
    {
        "ConnectionRetryInterval": int,
        "FilecacheDuration": int,
        "HttpTransferMode": str,
        "NumRetries": int,
        "RestartDelay": int,
    },
    total=False,
)


class ClientUpdateChannelClassResponseChannelEncoderSettingsOutputGroupsOutputGroupSettingsHlsGroupSettingsHlsCdnSettingsHlsWebdavSettingsTypeDef(
    _ClientUpdateChannelClassResponseChannelEncoderSettingsOutputGroupsOutputGroupSettingsHlsGroupSettingsHlsCdnSettingsHlsWebdavSettingsTypeDef
):
    """
    Type definition for
    `ClientUpdateChannelClassResponseChannelEncoderSettingsOutputGroupsOutputGroupSettingsHlsGroupSettingsHlsCdnSettings`
    `HlsWebdavSettings`

    - **ConnectionRetryInterval** *(integer) --* Number of seconds to wait before retrying
    connection to the CDN if the connection is lost.

    - **FilecacheDuration** *(integer) --* Size in seconds of file cache for streaming outputs.

    - **HttpTransferMode** *(string) --* Specify whether or not to use chunked transfer encoding to
    WebDAV.

    - **NumRetries** *(integer) --* Number of retry attempts that will be made before the Live Event
    is put into an error state.

    - **RestartDelay** *(integer) --* If a streaming output fails, number of seconds to wait until a
    restart is initiated. A value of 0 means never restart.
    """


_ClientUpdateChannelClassResponseChannelEncoderSettingsOutputGroupsOutputGroupSettingsHlsGroupSettingsHlsCdnSettingsTypeDef = TypedDict(
    "_ClientUpdateChannelClassResponseChannelEncoderSettingsOutputGroupsOutputGroupSettingsHlsGroupSettingsHlsCdnSettingsTypeDef",
    {
        "HlsAkamaiSettings": ClientUpdateChannelClassResponseChannelEncoderSettingsOutputGroupsOutputGroupSettingsHlsGroupSettingsHlsCdnSettingsHlsAkamaiSettingsTypeDef,
        "HlsBasicPutSettings": ClientUpdateChannelClassResponseChannelEncoderSettingsOutputGroupsOutputGroupSettingsHlsGroupSettingsHlsCdnSettingsHlsBasicPutSettingsTypeDef,
        "HlsMediaStoreSettings": ClientUpdateChannelClassResponseChannelEncoderSettingsOutputGroupsOutputGroupSettingsHlsGroupSettingsHlsCdnSettingsHlsMediaStoreSettingsTypeDef,
        "HlsWebdavSettings": ClientUpdateChannelClassResponseChannelEncoderSettingsOutputGroupsOutputGroupSettingsHlsGroupSettingsHlsCdnSettingsHlsWebdavSettingsTypeDef,
    },
    total=False,
)


class ClientUpdateChannelClassResponseChannelEncoderSettingsOutputGroupsOutputGroupSettingsHlsGroupSettingsHlsCdnSettingsTypeDef(
    _ClientUpdateChannelClassResponseChannelEncoderSettingsOutputGroupsOutputGroupSettingsHlsGroupSettingsHlsCdnSettingsTypeDef
):
    """
    Type definition for
    `ClientUpdateChannelClassResponseChannelEncoderSettingsOutputGroupsOutputGroupSettingsHlsGroupSettings`
    `HlsCdnSettings`

    - **HlsAkamaiSettings** *(dict) --* Hls Akamai Settings

      - **ConnectionRetryInterval** *(integer) --* Number of seconds to wait before retrying
      connection to the CDN if the connection is lost.

      - **FilecacheDuration** *(integer) --* Size in seconds of file cache for streaming outputs.

      - **HttpTransferMode** *(string) --* Specify whether or not to use chunked transfer encoding
      to Akamai. User should contact Akamai to enable this feature.

      - **NumRetries** *(integer) --* Number of retry attempts that will be made before the Live
      Event is put into an error state.

      - **RestartDelay** *(integer) --* If a streaming output fails, number of seconds to wait until
      a restart is initiated. A value of 0 means never restart.

      - **Salt** *(string) --* Salt for authenticated Akamai.

      - **Token** *(string) --* Token parameter for authenticated akamai. If not specified, _gda_ is
      used.

    - **HlsBasicPutSettings** *(dict) --* Hls Basic Put Settings

      - **ConnectionRetryInterval** *(integer) --* Number of seconds to wait before retrying
      connection to the CDN if the connection is lost.

      - **FilecacheDuration** *(integer) --* Size in seconds of file cache for streaming outputs.

      - **NumRetries** *(integer) --* Number of retry attempts that will be made before the Live
      Event is put into an error state.

      - **RestartDelay** *(integer) --* If a streaming output fails, number of seconds to wait until
      a restart is initiated. A value of 0 means never restart.

    - **HlsMediaStoreSettings** *(dict) --* Hls Media Store Settings

      - **ConnectionRetryInterval** *(integer) --* Number of seconds to wait before retrying
      connection to the CDN if the connection is lost.

      - **FilecacheDuration** *(integer) --* Size in seconds of file cache for streaming outputs.

      - **MediaStoreStorageClass** *(string) --* When set to temporal, output files are stored in
      non-persistent memory for faster reading and writing.

      - **NumRetries** *(integer) --* Number of retry attempts that will be made before the Live
      Event is put into an error state.

      - **RestartDelay** *(integer) --* If a streaming output fails, number of seconds to wait until
      a restart is initiated. A value of 0 means never restart.

    - **HlsWebdavSettings** *(dict) --* Hls Webdav Settings

      - **ConnectionRetryInterval** *(integer) --* Number of seconds to wait before retrying
      connection to the CDN if the connection is lost.

      - **FilecacheDuration** *(integer) --* Size in seconds of file cache for streaming outputs.

      - **HttpTransferMode** *(string) --* Specify whether or not to use chunked transfer encoding
      to WebDAV.

      - **NumRetries** *(integer) --* Number of retry attempts that will be made before the Live
      Event is put into an error state.

      - **RestartDelay** *(integer) --* If a streaming output fails, number of seconds to wait until
      a restart is initiated. A value of 0 means never restart.
    """


_ClientUpdateChannelClassResponseChannelEncoderSettingsOutputGroupsOutputGroupSettingsHlsGroupSettingsKeyProviderSettingsStaticKeySettingsKeyProviderServerTypeDef = TypedDict(
    "_ClientUpdateChannelClassResponseChannelEncoderSettingsOutputGroupsOutputGroupSettingsHlsGroupSettingsKeyProviderSettingsStaticKeySettingsKeyProviderServerTypeDef",
    {"PasswordParam": str, "Uri": str, "Username": str},
    total=False,
)


class ClientUpdateChannelClassResponseChannelEncoderSettingsOutputGroupsOutputGroupSettingsHlsGroupSettingsKeyProviderSettingsStaticKeySettingsKeyProviderServerTypeDef(
    _ClientUpdateChannelClassResponseChannelEncoderSettingsOutputGroupsOutputGroupSettingsHlsGroupSettingsKeyProviderSettingsStaticKeySettingsKeyProviderServerTypeDef
):
    """
    Type definition for
    `ClientUpdateChannelClassResponseChannelEncoderSettingsOutputGroupsOutputGroupSettingsHlsGroupSettingsKeyProviderSettingsStaticKeySettings`
    `KeyProviderServer`

    - **PasswordParam** *(string) --* key used to extract the password from EC2 Parameter store

    - **Uri** *(string) --* Uniform Resource Identifier - This should be a path to a file accessible
    to the Live system (eg. a http:// URI) depending on the output type. For example, a RTMP
    destination should have a uri simliar to: "rtmp://fmsserver/live".

    - **Username** *(string) --* Documentation update needed
    """


_ClientUpdateChannelClassResponseChannelEncoderSettingsOutputGroupsOutputGroupSettingsHlsGroupSettingsKeyProviderSettingsStaticKeySettingsTypeDef = TypedDict(
    "_ClientUpdateChannelClassResponseChannelEncoderSettingsOutputGroupsOutputGroupSettingsHlsGroupSettingsKeyProviderSettingsStaticKeySettingsTypeDef",
    {
        "KeyProviderServer": ClientUpdateChannelClassResponseChannelEncoderSettingsOutputGroupsOutputGroupSettingsHlsGroupSettingsKeyProviderSettingsStaticKeySettingsKeyProviderServerTypeDef,
        "StaticKeyValue": str,
    },
    total=False,
)


class ClientUpdateChannelClassResponseChannelEncoderSettingsOutputGroupsOutputGroupSettingsHlsGroupSettingsKeyProviderSettingsStaticKeySettingsTypeDef(
    _ClientUpdateChannelClassResponseChannelEncoderSettingsOutputGroupsOutputGroupSettingsHlsGroupSettingsKeyProviderSettingsStaticKeySettingsTypeDef
):
    """
    Type definition for
    `ClientUpdateChannelClassResponseChannelEncoderSettingsOutputGroupsOutputGroupSettingsHlsGroupSettingsKeyProviderSettings`
    `StaticKeySettings`

    - **KeyProviderServer** *(dict) --* The URL of the license server used for protecting content.

      - **PasswordParam** *(string) --* key used to extract the password from EC2 Parameter store

      - **Uri** *(string) --* Uniform Resource Identifier - This should be a path to a file
      accessible to the Live system (eg. a http:// URI) depending on the output type. For example, a
      RTMP destination should have a uri simliar to: "rtmp://fmsserver/live".

      - **Username** *(string) --* Documentation update needed

    - **StaticKeyValue** *(string) --* Static key value as a 32 character hexadecimal string.
    """


_ClientUpdateChannelClassResponseChannelEncoderSettingsOutputGroupsOutputGroupSettingsHlsGroupSettingsKeyProviderSettingsTypeDef = TypedDict(
    "_ClientUpdateChannelClassResponseChannelEncoderSettingsOutputGroupsOutputGroupSettingsHlsGroupSettingsKeyProviderSettingsTypeDef",
    {
        "StaticKeySettings": ClientUpdateChannelClassResponseChannelEncoderSettingsOutputGroupsOutputGroupSettingsHlsGroupSettingsKeyProviderSettingsStaticKeySettingsTypeDef
    },
    total=False,
)


class ClientUpdateChannelClassResponseChannelEncoderSettingsOutputGroupsOutputGroupSettingsHlsGroupSettingsKeyProviderSettingsTypeDef(
    _ClientUpdateChannelClassResponseChannelEncoderSettingsOutputGroupsOutputGroupSettingsHlsGroupSettingsKeyProviderSettingsTypeDef
):
    """
    Type definition for
    `ClientUpdateChannelClassResponseChannelEncoderSettingsOutputGroupsOutputGroupSettingsHlsGroupSettings`
    `KeyProviderSettings`

    - **StaticKeySettings** *(dict) --* Static Key Settings

      - **KeyProviderServer** *(dict) --* The URL of the license server used for protecting content.

        - **PasswordParam** *(string) --* key used to extract the password from EC2 Parameter store

        - **Uri** *(string) --* Uniform Resource Identifier - This should be a path to a file
        accessible to the Live system (eg. a http:// URI) depending on the output type. For example,
        a RTMP destination should have a uri simliar to: "rtmp://fmsserver/live".

        - **Username** *(string) --* Documentation update needed

      - **StaticKeyValue** *(string) --* Static key value as a 32 character hexadecimal string.
    """


_ClientUpdateChannelClassResponseChannelEncoderSettingsOutputGroupsOutputGroupSettingsHlsGroupSettingsTypeDef = TypedDict(
    "_ClientUpdateChannelClassResponseChannelEncoderSettingsOutputGroupsOutputGroupSettingsHlsGroupSettingsTypeDef",
    {
        "AdMarkers": List[str],
        "BaseUrlContent": str,
        "BaseUrlManifest": str,
        "CaptionLanguageMappings": List[
            ClientUpdateChannelClassResponseChannelEncoderSettingsOutputGroupsOutputGroupSettingsHlsGroupSettingsCaptionLanguageMappingsTypeDef
        ],
        "CaptionLanguageSetting": str,
        "ClientCache": str,
        "CodecSpecification": str,
        "ConstantIv": str,
        "Destination": ClientUpdateChannelClassResponseChannelEncoderSettingsOutputGroupsOutputGroupSettingsHlsGroupSettingsDestinationTypeDef,
        "DirectoryStructure": str,
        "EncryptionType": str,
        "HlsCdnSettings": ClientUpdateChannelClassResponseChannelEncoderSettingsOutputGroupsOutputGroupSettingsHlsGroupSettingsHlsCdnSettingsTypeDef,
        "IFrameOnlyPlaylists": str,
        "IndexNSegments": int,
        "InputLossAction": str,
        "IvInManifest": str,
        "IvSource": str,
        "KeepSegments": int,
        "KeyFormat": str,
        "KeyFormatVersions": str,
        "KeyProviderSettings": ClientUpdateChannelClassResponseChannelEncoderSettingsOutputGroupsOutputGroupSettingsHlsGroupSettingsKeyProviderSettingsTypeDef,
        "ManifestCompression": str,
        "ManifestDurationFormat": str,
        "MinSegmentLength": int,
        "Mode": str,
        "OutputSelection": str,
        "ProgramDateTime": str,
        "ProgramDateTimePeriod": int,
        "RedundantManifest": str,
        "SegmentLength": int,
        "SegmentationMode": str,
        "SegmentsPerSubdirectory": int,
        "StreamInfResolution": str,
        "TimedMetadataId3Frame": str,
        "TimedMetadataId3Period": int,
        "TimestampDeltaMilliseconds": int,
        "TsFileMode": str,
    },
    total=False,
)


class ClientUpdateChannelClassResponseChannelEncoderSettingsOutputGroupsOutputGroupSettingsHlsGroupSettingsTypeDef(
    _ClientUpdateChannelClassResponseChannelEncoderSettingsOutputGroupsOutputGroupSettingsHlsGroupSettingsTypeDef
):
    """
    Type definition for
    `ClientUpdateChannelClassResponseChannelEncoderSettingsOutputGroupsOutputGroupSettings`
    `HlsGroupSettings`

    - **AdMarkers** *(list) --* Choose one or more ad marker types to pass SCTE35 signals through to
    this group of Apple HLS outputs.

      - *(string) --* Hls Ad Markers

    - **BaseUrlContent** *(string) --* A partial URI prefix that will be prepended to each output in
    the media .m3u8 file. Can be used if base manifest is delivered from a different URL than the
    main .m3u8 file.

    - **BaseUrlManifest** *(string) --* A partial URI prefix that will be prepended to each output
    in the media .m3u8 file. Can be used if base manifest is delivered from a different URL than the
    main .m3u8 file.

    - **CaptionLanguageMappings** *(list) --* Mapping of up to 4 caption channels to caption
    languages. Is only meaningful if captionLanguageSetting is set to "insert".

      - *(dict) --* Maps a caption channel to an ISO 693-2 language code
      (http://www.loc.gov/standards/iso639-2), with an optional description.

        - **CaptionChannel** *(integer) --* The closed caption channel being described by this
        CaptionLanguageMapping. Each channel mapping must have a unique channel number (maximum of
        4)

        - **LanguageCode** *(string) --* Three character ISO 639-2 language code (see
        http://www.loc.gov/standards/iso639-2)

        - **LanguageDescription** *(string) --* Textual description of language

    - **CaptionLanguageSetting** *(string) --* Applies only to 608 Embedded output captions. insert:
    Include CLOSED-CAPTIONS lines in the manifest. Specify at least one language in the CC1 Language
    Code field. One CLOSED-CAPTION line is added for each Language Code you specify. Make sure to
    specify the languages in the order in which they appear in the original source (if the source is
    embedded format) or the order of the caption selectors (if the source is other than embedded).
    Otherwise, languages in the manifest will not match up properly with the output captions. none:
    Include CLOSED-CAPTIONS=NONE line in the manifest. omit: Omit any CLOSED-CAPTIONS line from the
    manifest.

    - **ClientCache** *(string) --* When set to "disabled", sets the #EXT-X-ALLOW-CACHE:no tag in
    the manifest, which prevents clients from saving media segments for later replay.

    - **CodecSpecification** *(string) --* Specification to use (RFC-6381 or the default RFC-4281)
    during m3u8 playlist generation.

    - **ConstantIv** *(string) --* For use with encryptionType. This is a 128-bit, 16-byte hex value
    represented by a 32-character text string. If ivSource is set to "explicit" then this parameter
    is required and is used as the IV for encryption.

    - **Destination** *(dict) --* A directory or HTTP destination for the HLS segments, manifest
    files, and encryption keys (if enabled).

      - **DestinationRefId** *(string) --* Placeholder documentation for __string

    - **DirectoryStructure** *(string) --* Place segments in subdirectories.

    - **EncryptionType** *(string) --* Encrypts the segments with the given encryption scheme.
    Exclude this parameter if no encryption is desired.

    - **HlsCdnSettings** *(dict) --* Parameters that control interactions with the CDN.

      - **HlsAkamaiSettings** *(dict) --* Hls Akamai Settings

        - **ConnectionRetryInterval** *(integer) --* Number of seconds to wait before retrying
        connection to the CDN if the connection is lost.

        - **FilecacheDuration** *(integer) --* Size in seconds of file cache for streaming outputs.

        - **HttpTransferMode** *(string) --* Specify whether or not to use chunked transfer encoding
        to Akamai. User should contact Akamai to enable this feature.

        - **NumRetries** *(integer) --* Number of retry attempts that will be made before the Live
        Event is put into an error state.

        - **RestartDelay** *(integer) --* If a streaming output fails, number of seconds to wait
        until a restart is initiated. A value of 0 means never restart.

        - **Salt** *(string) --* Salt for authenticated Akamai.

        - **Token** *(string) --* Token parameter for authenticated akamai. If not specified, _gda_
        is used.

      - **HlsBasicPutSettings** *(dict) --* Hls Basic Put Settings

        - **ConnectionRetryInterval** *(integer) --* Number of seconds to wait before retrying
        connection to the CDN if the connection is lost.

        - **FilecacheDuration** *(integer) --* Size in seconds of file cache for streaming outputs.

        - **NumRetries** *(integer) --* Number of retry attempts that will be made before the Live
        Event is put into an error state.

        - **RestartDelay** *(integer) --* If a streaming output fails, number of seconds to wait
        until a restart is initiated. A value of 0 means never restart.

      - **HlsMediaStoreSettings** *(dict) --* Hls Media Store Settings

        - **ConnectionRetryInterval** *(integer) --* Number of seconds to wait before retrying
        connection to the CDN if the connection is lost.

        - **FilecacheDuration** *(integer) --* Size in seconds of file cache for streaming outputs.

        - **MediaStoreStorageClass** *(string) --* When set to temporal, output files are stored in
        non-persistent memory for faster reading and writing.

        - **NumRetries** *(integer) --* Number of retry attempts that will be made before the Live
        Event is put into an error state.

        - **RestartDelay** *(integer) --* If a streaming output fails, number of seconds to wait
        until a restart is initiated. A value of 0 means never restart.

      - **HlsWebdavSettings** *(dict) --* Hls Webdav Settings

        - **ConnectionRetryInterval** *(integer) --* Number of seconds to wait before retrying
        connection to the CDN if the connection is lost.

        - **FilecacheDuration** *(integer) --* Size in seconds of file cache for streaming outputs.

        - **HttpTransferMode** *(string) --* Specify whether or not to use chunked transfer encoding
        to WebDAV.

        - **NumRetries** *(integer) --* Number of retry attempts that will be made before the Live
        Event is put into an error state.

        - **RestartDelay** *(integer) --* If a streaming output fails, number of seconds to wait
        until a restart is initiated. A value of 0 means never restart.

    - **IFrameOnlyPlaylists** *(string) --* DISABLED: Do not create an I-frame-only manifest, but do
    create the master and media manifests (according to the Output Selection field). STANDARD:
    Create an I-frame-only manifest for each output that contains video, as well as the other
    manifests (according to the Output Selection field). The I-frame manifest contains a
    #EXT-X-I-FRAMES-ONLY tag to indicate it is I-frame only, and one or more #EXT-X-BYTERANGE
    entries identifying the I-frame position. For example, #EXT-X-BYTERANGE:160364@1461888"

    - **IndexNSegments** *(integer) --* Applies only if Mode field is LIVE. Specifies the maximum
    number of segments in the media manifest file. After this maximum, older segments are removed
    from the media manifest. This number must be less than or equal to the Keep Segments field.

    - **InputLossAction** *(string) --* Parameter that control output group behavior on input loss.

    - **IvInManifest** *(string) --* For use with encryptionType. The IV (Initialization Vector) is
    a 128-bit number used in conjunction with the key for encrypting blocks. If set to "include", IV
    is listed in the manifest, otherwise the IV is not in the manifest.

    - **IvSource** *(string) --* For use with encryptionType. The IV (Initialization Vector) is a
    128-bit number used in conjunction with the key for encrypting blocks. If this setting is
    "followsSegmentNumber", it will cause the IV to change every segment (to match the segment
    number). If this is set to "explicit", you must enter a constantIv value.

    - **KeepSegments** *(integer) --* Applies only if Mode field is LIVE. Specifies the number of
    media segments (.ts files) to retain in the destination directory.

    - **KeyFormat** *(string) --* The value specifies how the key is represented in the resource
    identified by the URI. If parameter is absent, an implicit value of "identity" is used. A
    reverse DNS string can also be given.

    - **KeyFormatVersions** *(string) --* Either a single positive integer version value or a slash
    delimited list of version values (1/2/3).

    - **KeyProviderSettings** *(dict) --* The key provider settings.

      - **StaticKeySettings** *(dict) --* Static Key Settings

        - **KeyProviderServer** *(dict) --* The URL of the license server used for protecting
        content.

          - **PasswordParam** *(string) --* key used to extract the password from EC2 Parameter
          store

          - **Uri** *(string) --* Uniform Resource Identifier - This should be a path to a file
          accessible to the Live system (eg. a http:// URI) depending on the output type. For
          example, a RTMP destination should have a uri simliar to: "rtmp://fmsserver/live".

          - **Username** *(string) --* Documentation update needed

        - **StaticKeyValue** *(string) --* Static key value as a 32 character hexadecimal string.

    - **ManifestCompression** *(string) --* When set to gzip, compresses HLS playlist.

    - **ManifestDurationFormat** *(string) --* Indicates whether the output manifest should use
    floating point or integer values for segment duration.

    - **MinSegmentLength** *(integer) --* When set, minimumSegmentLength is enforced by looking
    ahead and back within the specified range for a nearby avail and extending the segment size if
    needed.

    - **Mode** *(string) --* If "vod", all segments are indexed and kept permanently in the
    destination and manifest. If "live", only the number segments specified in keepSegments and
    indexNSegments are kept; newer segments replace older segments, which may prevent players from
    rewinding all the way to the beginning of the event. VOD mode uses HLS EXT-X-PLAYLIST-TYPE of
    EVENT while the channel is running, converting it to a "VOD" type manifest on completion of the
    stream.

    - **OutputSelection** *(string) --* MANIFESTSANDSEGMENTS: Generates manifests (master manifest,
    if applicable, and media manifests) for this output group. SEGMENTSONLY: Does not generate any
    manifests for this output group.

    - **ProgramDateTime** *(string) --* Includes or excludes EXT-X-PROGRAM-DATE-TIME tag in .m3u8
    manifest files. The value is calculated as follows: either the program date and time are
    initialized using the input timecode source, or the time is initialized using the input timecode
    source and the date is initialized using the timestampOffset.

    - **ProgramDateTimePeriod** *(integer) --* Period of insertion of EXT-X-PROGRAM-DATE-TIME entry,
    in seconds.

    - **RedundantManifest** *(string) --* ENABLED: The master manifest (.m3u8 file) for each
    pipeline includes information about both pipelines: first its own media files, then the media
    files of the other pipeline. This feature allows playout device that support stale manifest
    detection to switch from one manifest to the other, when the current manifest seems to be stale.
    There are still two destinations and two master manifests, but both master manifests reference
    the media files from both pipelines. DISABLED: The master manifest (.m3u8 file) for each
    pipeline includes information about its own pipeline only. For an HLS output group with
    MediaPackage as the destination, the DISABLED behavior is always followed. MediaPackage
    regenerates the manifests it serves to players so a redundant manifest from MediaLive is
    irrelevant.

    - **SegmentLength** *(integer) --* Length of MPEG-2 Transport Stream segments to create (in
    seconds). Note that segments will end on the next keyframe after this number of seconds, so
    actual segment length may be longer.

    - **SegmentationMode** *(string) --* useInputSegmentation has been deprecated. The configured
    segment size is always used.

    - **SegmentsPerSubdirectory** *(integer) --* Number of segments to write to a subdirectory
    before starting a new one. directoryStructure must be subdirectoryPerStream for this setting to
    have an effect.

    - **StreamInfResolution** *(string) --* Include or exclude RESOLUTION attribute for video in
    EXT-X-STREAM-INF tag of variant manifest.

    - **TimedMetadataId3Frame** *(string) --* Indicates ID3 frame that has the timecode.

    - **TimedMetadataId3Period** *(integer) --* Timed Metadata interval in seconds.

    - **TimestampDeltaMilliseconds** *(integer) --* Provides an extra millisecond delta offset to
    fine tune the timestamps.

    - **TsFileMode** *(string) --* SEGMENTEDFILES: Emit the program as segments - multiple .ts media
    files. SINGLEFILE: Applies only if Mode field is VOD. Emit the program as a single .ts media
    file. The media manifest includes #EXT-X-BYTERANGE tags to index segments for playback. A
    typical use for this value is when sending the output to AWS Elemental MediaConvert, which can
    accept only a single media file. Playback while the channel is running is not guaranteed due to
    HTTP server caching.
    """


_ClientUpdateChannelClassResponseChannelEncoderSettingsOutputGroupsOutputGroupSettingsMediaPackageGroupSettingsDestinationTypeDef = TypedDict(
    "_ClientUpdateChannelClassResponseChannelEncoderSettingsOutputGroupsOutputGroupSettingsMediaPackageGroupSettingsDestinationTypeDef",
    {"DestinationRefId": str},
    total=False,
)


class ClientUpdateChannelClassResponseChannelEncoderSettingsOutputGroupsOutputGroupSettingsMediaPackageGroupSettingsDestinationTypeDef(
    _ClientUpdateChannelClassResponseChannelEncoderSettingsOutputGroupsOutputGroupSettingsMediaPackageGroupSettingsDestinationTypeDef
):
    """
    Type definition for
    `ClientUpdateChannelClassResponseChannelEncoderSettingsOutputGroupsOutputGroupSettingsMediaPackageGroupSettings`
    `Destination`

    - **DestinationRefId** *(string) --* Placeholder documentation for __string
    """


_ClientUpdateChannelClassResponseChannelEncoderSettingsOutputGroupsOutputGroupSettingsMediaPackageGroupSettingsTypeDef = TypedDict(
    "_ClientUpdateChannelClassResponseChannelEncoderSettingsOutputGroupsOutputGroupSettingsMediaPackageGroupSettingsTypeDef",
    {
        "Destination": ClientUpdateChannelClassResponseChannelEncoderSettingsOutputGroupsOutputGroupSettingsMediaPackageGroupSettingsDestinationTypeDef
    },
    total=False,
)


class ClientUpdateChannelClassResponseChannelEncoderSettingsOutputGroupsOutputGroupSettingsMediaPackageGroupSettingsTypeDef(
    _ClientUpdateChannelClassResponseChannelEncoderSettingsOutputGroupsOutputGroupSettingsMediaPackageGroupSettingsTypeDef
):
    """
    Type definition for
    `ClientUpdateChannelClassResponseChannelEncoderSettingsOutputGroupsOutputGroupSettings`
    `MediaPackageGroupSettings`

    - **Destination** *(dict) --* MediaPackage channel destination.

      - **DestinationRefId** *(string) --* Placeholder documentation for __string
    """


_ClientUpdateChannelClassResponseChannelEncoderSettingsOutputGroupsOutputGroupSettingsMsSmoothGroupSettingsDestinationTypeDef = TypedDict(
    "_ClientUpdateChannelClassResponseChannelEncoderSettingsOutputGroupsOutputGroupSettingsMsSmoothGroupSettingsDestinationTypeDef",
    {"DestinationRefId": str},
    total=False,
)


class ClientUpdateChannelClassResponseChannelEncoderSettingsOutputGroupsOutputGroupSettingsMsSmoothGroupSettingsDestinationTypeDef(
    _ClientUpdateChannelClassResponseChannelEncoderSettingsOutputGroupsOutputGroupSettingsMsSmoothGroupSettingsDestinationTypeDef
):
    """
    Type definition for
    `ClientUpdateChannelClassResponseChannelEncoderSettingsOutputGroupsOutputGroupSettingsMsSmoothGroupSettings`
    `Destination`

    - **DestinationRefId** *(string) --* Placeholder documentation for __string
    """


_ClientUpdateChannelClassResponseChannelEncoderSettingsOutputGroupsOutputGroupSettingsMsSmoothGroupSettingsTypeDef = TypedDict(
    "_ClientUpdateChannelClassResponseChannelEncoderSettingsOutputGroupsOutputGroupSettingsMsSmoothGroupSettingsTypeDef",
    {
        "AcquisitionPointId": str,
        "AudioOnlyTimecodeControl": str,
        "CertificateMode": str,
        "ConnectionRetryInterval": int,
        "Destination": ClientUpdateChannelClassResponseChannelEncoderSettingsOutputGroupsOutputGroupSettingsMsSmoothGroupSettingsDestinationTypeDef,
        "EventId": str,
        "EventIdMode": str,
        "EventStopBehavior": str,
        "FilecacheDuration": int,
        "FragmentLength": int,
        "InputLossAction": str,
        "NumRetries": int,
        "RestartDelay": int,
        "SegmentationMode": str,
        "SendDelayMs": int,
        "SparseTrackType": str,
        "StreamManifestBehavior": str,
        "TimestampOffset": str,
        "TimestampOffsetMode": str,
    },
    total=False,
)


class ClientUpdateChannelClassResponseChannelEncoderSettingsOutputGroupsOutputGroupSettingsMsSmoothGroupSettingsTypeDef(
    _ClientUpdateChannelClassResponseChannelEncoderSettingsOutputGroupsOutputGroupSettingsMsSmoothGroupSettingsTypeDef
):
    """
    Type definition for
    `ClientUpdateChannelClassResponseChannelEncoderSettingsOutputGroupsOutputGroupSettings`
    `MsSmoothGroupSettings`

    - **AcquisitionPointId** *(string) --* The value of the "Acquisition Point Identity" element
    used in each message placed in the sparse track. Only enabled if sparseTrackType is not "none".

    - **AudioOnlyTimecodeControl** *(string) --* If set to passthrough for an audio-only MS Smooth
    output, the fragment absolute time will be set to the current timecode. This option does not
    write timecodes to the audio elementary stream.

    - **CertificateMode** *(string) --* If set to verifyAuthenticity, verify the https certificate
    chain to a trusted Certificate Authority (CA). This will cause https outputs to self-signed
    certificates to fail.

    - **ConnectionRetryInterval** *(integer) --* Number of seconds to wait before retrying
    connection to the IIS server if the connection is lost. Content will be cached during this time
    and the cache will be be delivered to the IIS server once the connection is re-established.

    - **Destination** *(dict) --* Smooth Streaming publish point on an IIS server. Elemental Live
    acts as a "Push" encoder to IIS.

      - **DestinationRefId** *(string) --* Placeholder documentation for __string

    - **EventId** *(string) --* MS Smooth event ID to be sent to the IIS server. Should only be
    specified if eventIdMode is set to useConfigured.

    - **EventIdMode** *(string) --* Specifies whether or not to send an event ID to the IIS server.
    If no event ID is sent and the same Live Event is used without changing the publishing point,
    clients might see cached video from the previous run. Options: - "useConfigured" - use the value
    provided in eventId - "useTimestamp" - generate and send an event ID based on the current
    timestamp - "noEventId" - do not send an event ID to the IIS server.

    - **EventStopBehavior** *(string) --* When set to sendEos, send EOS signal to IIS server when
    stopping the event

    - **FilecacheDuration** *(integer) --* Size in seconds of file cache for streaming outputs.

    - **FragmentLength** *(integer) --* Length of mp4 fragments to generate (in seconds). Fragment
    length must be compatible with GOP size and framerate.

    - **InputLossAction** *(string) --* Parameter that control output group behavior on input loss.

    - **NumRetries** *(integer) --* Number of retry attempts.

    - **RestartDelay** *(integer) --* Number of seconds before initiating a restart due to output
    failure, due to exhausting the numRetries on one segment, or exceeding filecacheDuration.

    - **SegmentationMode** *(string) --* useInputSegmentation has been deprecated. The configured
    segment size is always used.

    - **SendDelayMs** *(integer) --* Number of milliseconds to delay the output from the second
    pipeline.

    - **SparseTrackType** *(string) --* If set to scte35, use incoming SCTE-35 messages to generate
    a sparse track in this group of MS-Smooth outputs.

    - **StreamManifestBehavior** *(string) --* When set to send, send stream manifest so publishing
    point doesn't start until all streams start.

    - **TimestampOffset** *(string) --* Timestamp offset for the event. Only used if
    timestampOffsetMode is set to useConfiguredOffset.

    - **TimestampOffsetMode** *(string) --* Type of timestamp date offset to use. -
    useEventStartDate: Use the date the event was started as the offset - useConfiguredOffset: Use
    an explicitly configured date as the offset
    """


_ClientUpdateChannelClassResponseChannelEncoderSettingsOutputGroupsOutputGroupSettingsRtmpGroupSettingsTypeDef = TypedDict(
    "_ClientUpdateChannelClassResponseChannelEncoderSettingsOutputGroupsOutputGroupSettingsRtmpGroupSettingsTypeDef",
    {
        "AuthenticationScheme": str,
        "CacheFullBehavior": str,
        "CacheLength": int,
        "CaptionData": str,
        "InputLossAction": str,
        "RestartDelay": int,
    },
    total=False,
)


class ClientUpdateChannelClassResponseChannelEncoderSettingsOutputGroupsOutputGroupSettingsRtmpGroupSettingsTypeDef(
    _ClientUpdateChannelClassResponseChannelEncoderSettingsOutputGroupsOutputGroupSettingsRtmpGroupSettingsTypeDef
):
    """
    Type definition for
    `ClientUpdateChannelClassResponseChannelEncoderSettingsOutputGroupsOutputGroupSettings`
    `RtmpGroupSettings`

    - **AuthenticationScheme** *(string) --* Authentication scheme to use when connecting with CDN

    - **CacheFullBehavior** *(string) --* Controls behavior when content cache fills up. If remote
    origin server stalls the RTMP connection and does not accept content fast enough the 'Media
    Cache' will fill up. When the cache reaches the duration specified by cacheLength the cache will
    stop accepting new content. If set to disconnectImmediately, the RTMP output will force a
    disconnect. Clear the media cache, and reconnect after restartDelay seconds. If set to
    waitForServer, the RTMP output will wait up to 5 minutes to allow the origin server to begin
    accepting data again.

    - **CacheLength** *(integer) --* Cache length, in seconds, is used to calculate buffer size.

    - **CaptionData** *(string) --* Controls the types of data that passes to onCaptionInfo outputs.
    If set to 'all' then 608 and 708 carried DTVCC data will be passed. If set to
    'field1AndField2608' then DTVCC data will be stripped out, but 608 data from both fields will be
    passed. If set to 'field1608' then only the data carried in 608 from field 1 video will be
    passed.

    - **InputLossAction** *(string) --* Controls the behavior of this RTMP group if input becomes
    unavailable. - emitOutput: Emit a slate until input returns. - pauseOutput: Stop transmitting
    data until input returns. This does not close the underlying RTMP connection.

    - **RestartDelay** *(integer) --* If a streaming output fails, number of seconds to wait until a
    restart is initiated. A value of 0 means never restart.
    """


_ClientUpdateChannelClassResponseChannelEncoderSettingsOutputGroupsOutputGroupSettingsUdpGroupSettingsTypeDef = TypedDict(
    "_ClientUpdateChannelClassResponseChannelEncoderSettingsOutputGroupsOutputGroupSettingsUdpGroupSettingsTypeDef",
    {"InputLossAction": str, "TimedMetadataId3Frame": str, "TimedMetadataId3Period": int},
    total=False,
)


class ClientUpdateChannelClassResponseChannelEncoderSettingsOutputGroupsOutputGroupSettingsUdpGroupSettingsTypeDef(
    _ClientUpdateChannelClassResponseChannelEncoderSettingsOutputGroupsOutputGroupSettingsUdpGroupSettingsTypeDef
):
    """
    Type definition for
    `ClientUpdateChannelClassResponseChannelEncoderSettingsOutputGroupsOutputGroupSettings`
    `UdpGroupSettings`

    - **InputLossAction** *(string) --* Specifies behavior of last resort when input video is lost,
    and no more backup inputs are available. When dropTs is selected the entire transport stream
    will stop being emitted. When dropProgram is selected the program can be dropped from the
    transport stream (and replaced with null packets to meet the TS bitrate requirement). Or, when
    emitProgram is chosen the transport stream will continue to be produced normally with repeat
    frames, black frames, or slate frames substituted for the absent input video.

    - **TimedMetadataId3Frame** *(string) --* Indicates ID3 frame that has the timecode.

    - **TimedMetadataId3Period** *(integer) --* Timed Metadata interval in seconds.
    """


_ClientUpdateChannelClassResponseChannelEncoderSettingsOutputGroupsOutputGroupSettingsTypeDef = TypedDict(
    "_ClientUpdateChannelClassResponseChannelEncoderSettingsOutputGroupsOutputGroupSettingsTypeDef",
    {
        "ArchiveGroupSettings": ClientUpdateChannelClassResponseChannelEncoderSettingsOutputGroupsOutputGroupSettingsArchiveGroupSettingsTypeDef,
        "FrameCaptureGroupSettings": ClientUpdateChannelClassResponseChannelEncoderSettingsOutputGroupsOutputGroupSettingsFrameCaptureGroupSettingsTypeDef,
        "HlsGroupSettings": ClientUpdateChannelClassResponseChannelEncoderSettingsOutputGroupsOutputGroupSettingsHlsGroupSettingsTypeDef,
        "MediaPackageGroupSettings": ClientUpdateChannelClassResponseChannelEncoderSettingsOutputGroupsOutputGroupSettingsMediaPackageGroupSettingsTypeDef,
        "MsSmoothGroupSettings": ClientUpdateChannelClassResponseChannelEncoderSettingsOutputGroupsOutputGroupSettingsMsSmoothGroupSettingsTypeDef,
        "MultiplexGroupSettings": Dict,
        "RtmpGroupSettings": ClientUpdateChannelClassResponseChannelEncoderSettingsOutputGroupsOutputGroupSettingsRtmpGroupSettingsTypeDef,
        "UdpGroupSettings": ClientUpdateChannelClassResponseChannelEncoderSettingsOutputGroupsOutputGroupSettingsUdpGroupSettingsTypeDef,
    },
    total=False,
)


class ClientUpdateChannelClassResponseChannelEncoderSettingsOutputGroupsOutputGroupSettingsTypeDef(
    _ClientUpdateChannelClassResponseChannelEncoderSettingsOutputGroupsOutputGroupSettingsTypeDef
):
    """
    Type definition for `ClientUpdateChannelClassResponseChannelEncoderSettingsOutputGroups`
    `OutputGroupSettings`

    - **ArchiveGroupSettings** *(dict) --* Archive Group Settings

      - **Destination** *(dict) --* A directory and base filename where archive files should be
      written.

        - **DestinationRefId** *(string) --* Placeholder documentation for __string

      - **RolloverInterval** *(integer) --* Number of seconds to write to archive file before
      closing and starting a new one.

    - **FrameCaptureGroupSettings** *(dict) --* Frame Capture Group Settings

      - **Destination** *(dict) --* The destination for the frame capture files. Either the URI for
      an Amazon S3 bucket and object, plus a file name prefix (for example,
      s3ssl://sportsDelivery/highlights/20180820/curling_) or the URI for a MediaStore container,
      plus a file name prefix (for example, mediastoressl://sportsDelivery/20180820/curling_). The
      final file names consist of the prefix from the destination field (for example, "curling_") +
      name modifier + the counter (5 digits, starting from 00001) + extension (which is always
      .jpg). For example, curlingLow.00001.jpg

        - **DestinationRefId** *(string) --* Placeholder documentation for __string

    - **HlsGroupSettings** *(dict) --* Hls Group Settings

      - **AdMarkers** *(list) --* Choose one or more ad marker types to pass SCTE35 signals through
      to this group of Apple HLS outputs.

        - *(string) --* Hls Ad Markers

      - **BaseUrlContent** *(string) --* A partial URI prefix that will be prepended to each output
      in the media .m3u8 file. Can be used if base manifest is delivered from a different URL than
      the main .m3u8 file.

      - **BaseUrlManifest** *(string) --* A partial URI prefix that will be prepended to each output
      in the media .m3u8 file. Can be used if base manifest is delivered from a different URL than
      the main .m3u8 file.

      - **CaptionLanguageMappings** *(list) --* Mapping of up to 4 caption channels to caption
      languages. Is only meaningful if captionLanguageSetting is set to "insert".

        - *(dict) --* Maps a caption channel to an ISO 693-2 language code
        (http://www.loc.gov/standards/iso639-2), with an optional description.

          - **CaptionChannel** *(integer) --* The closed caption channel being described by this
          CaptionLanguageMapping. Each channel mapping must have a unique channel number (maximum of
          4)

          - **LanguageCode** *(string) --* Three character ISO 639-2 language code (see
          http://www.loc.gov/standards/iso639-2)

          - **LanguageDescription** *(string) --* Textual description of language

      - **CaptionLanguageSetting** *(string) --* Applies only to 608 Embedded output captions.
      insert: Include CLOSED-CAPTIONS lines in the manifest. Specify at least one language in the
      CC1 Language Code field. One CLOSED-CAPTION line is added for each Language Code you specify.
      Make sure to specify the languages in the order in which they appear in the original source
      (if the source is embedded format) or the order of the caption selectors (if the source is
      other than embedded). Otherwise, languages in the manifest will not match up properly with the
      output captions. none: Include CLOSED-CAPTIONS=NONE line in the manifest. omit: Omit any
      CLOSED-CAPTIONS line from the manifest.

      - **ClientCache** *(string) --* When set to "disabled", sets the #EXT-X-ALLOW-CACHE:no tag in
      the manifest, which prevents clients from saving media segments for later replay.

      - **CodecSpecification** *(string) --* Specification to use (RFC-6381 or the default RFC-4281)
      during m3u8 playlist generation.

      - **ConstantIv** *(string) --* For use with encryptionType. This is a 128-bit, 16-byte hex
      value represented by a 32-character text string. If ivSource is set to "explicit" then this
      parameter is required and is used as the IV for encryption.

      - **Destination** *(dict) --* A directory or HTTP destination for the HLS segments, manifest
      files, and encryption keys (if enabled).

        - **DestinationRefId** *(string) --* Placeholder documentation for __string

      - **DirectoryStructure** *(string) --* Place segments in subdirectories.

      - **EncryptionType** *(string) --* Encrypts the segments with the given encryption scheme.
      Exclude this parameter if no encryption is desired.

      - **HlsCdnSettings** *(dict) --* Parameters that control interactions with the CDN.

        - **HlsAkamaiSettings** *(dict) --* Hls Akamai Settings

          - **ConnectionRetryInterval** *(integer) --* Number of seconds to wait before retrying
          connection to the CDN if the connection is lost.

          - **FilecacheDuration** *(integer) --* Size in seconds of file cache for streaming
          outputs.

          - **HttpTransferMode** *(string) --* Specify whether or not to use chunked transfer
          encoding to Akamai. User should contact Akamai to enable this feature.

          - **NumRetries** *(integer) --* Number of retry attempts that will be made before the Live
          Event is put into an error state.

          - **RestartDelay** *(integer) --* If a streaming output fails, number of seconds to wait
          until a restart is initiated. A value of 0 means never restart.

          - **Salt** *(string) --* Salt for authenticated Akamai.

          - **Token** *(string) --* Token parameter for authenticated akamai. If not specified,
          _gda_ is used.

        - **HlsBasicPutSettings** *(dict) --* Hls Basic Put Settings

          - **ConnectionRetryInterval** *(integer) --* Number of seconds to wait before retrying
          connection to the CDN if the connection is lost.

          - **FilecacheDuration** *(integer) --* Size in seconds of file cache for streaming
          outputs.

          - **NumRetries** *(integer) --* Number of retry attempts that will be made before the Live
          Event is put into an error state.

          - **RestartDelay** *(integer) --* If a streaming output fails, number of seconds to wait
          until a restart is initiated. A value of 0 means never restart.

        - **HlsMediaStoreSettings** *(dict) --* Hls Media Store Settings

          - **ConnectionRetryInterval** *(integer) --* Number of seconds to wait before retrying
          connection to the CDN if the connection is lost.

          - **FilecacheDuration** *(integer) --* Size in seconds of file cache for streaming
          outputs.

          - **MediaStoreStorageClass** *(string) --* When set to temporal, output files are stored
          in non-persistent memory for faster reading and writing.

          - **NumRetries** *(integer) --* Number of retry attempts that will be made before the Live
          Event is put into an error state.

          - **RestartDelay** *(integer) --* If a streaming output fails, number of seconds to wait
          until a restart is initiated. A value of 0 means never restart.

        - **HlsWebdavSettings** *(dict) --* Hls Webdav Settings

          - **ConnectionRetryInterval** *(integer) --* Number of seconds to wait before retrying
          connection to the CDN if the connection is lost.

          - **FilecacheDuration** *(integer) --* Size in seconds of file cache for streaming
          outputs.

          - **HttpTransferMode** *(string) --* Specify whether or not to use chunked transfer
          encoding to WebDAV.

          - **NumRetries** *(integer) --* Number of retry attempts that will be made before the Live
          Event is put into an error state.

          - **RestartDelay** *(integer) --* If a streaming output fails, number of seconds to wait
          until a restart is initiated. A value of 0 means never restart.

      - **IFrameOnlyPlaylists** *(string) --* DISABLED: Do not create an I-frame-only manifest, but
      do create the master and media manifests (according to the Output Selection field). STANDARD:
      Create an I-frame-only manifest for each output that contains video, as well as the other
      manifests (according to the Output Selection field). The I-frame manifest contains a
      #EXT-X-I-FRAMES-ONLY tag to indicate it is I-frame only, and one or more #EXT-X-BYTERANGE
      entries identifying the I-frame position. For example, #EXT-X-BYTERANGE:160364@1461888"

      - **IndexNSegments** *(integer) --* Applies only if Mode field is LIVE. Specifies the maximum
      number of segments in the media manifest file. After this maximum, older segments are removed
      from the media manifest. This number must be less than or equal to the Keep Segments field.

      - **InputLossAction** *(string) --* Parameter that control output group behavior on input
      loss.

      - **IvInManifest** *(string) --* For use with encryptionType. The IV (Initialization Vector)
      is a 128-bit number used in conjunction with the key for encrypting blocks. If set to
      "include", IV is listed in the manifest, otherwise the IV is not in the manifest.

      - **IvSource** *(string) --* For use with encryptionType. The IV (Initialization Vector) is a
      128-bit number used in conjunction with the key for encrypting blocks. If this setting is
      "followsSegmentNumber", it will cause the IV to change every segment (to match the segment
      number). If this is set to "explicit", you must enter a constantIv value.

      - **KeepSegments** *(integer) --* Applies only if Mode field is LIVE. Specifies the number of
      media segments (.ts files) to retain in the destination directory.

      - **KeyFormat** *(string) --* The value specifies how the key is represented in the resource
      identified by the URI. If parameter is absent, an implicit value of "identity" is used. A
      reverse DNS string can also be given.

      - **KeyFormatVersions** *(string) --* Either a single positive integer version value or a
      slash delimited list of version values (1/2/3).

      - **KeyProviderSettings** *(dict) --* The key provider settings.

        - **StaticKeySettings** *(dict) --* Static Key Settings

          - **KeyProviderServer** *(dict) --* The URL of the license server used for protecting
          content.

            - **PasswordParam** *(string) --* key used to extract the password from EC2 Parameter
            store

            - **Uri** *(string) --* Uniform Resource Identifier - This should be a path to a file
            accessible to the Live system (eg. a http:// URI) depending on the output type. For
            example, a RTMP destination should have a uri simliar to: "rtmp://fmsserver/live".

            - **Username** *(string) --* Documentation update needed

          - **StaticKeyValue** *(string) --* Static key value as a 32 character hexadecimal string.

      - **ManifestCompression** *(string) --* When set to gzip, compresses HLS playlist.

      - **ManifestDurationFormat** *(string) --* Indicates whether the output manifest should use
      floating point or integer values for segment duration.

      - **MinSegmentLength** *(integer) --* When set, minimumSegmentLength is enforced by looking
      ahead and back within the specified range for a nearby avail and extending the segment size if
      needed.

      - **Mode** *(string) --* If "vod", all segments are indexed and kept permanently in the
      destination and manifest. If "live", only the number segments specified in keepSegments and
      indexNSegments are kept; newer segments replace older segments, which may prevent players from
      rewinding all the way to the beginning of the event. VOD mode uses HLS EXT-X-PLAYLIST-TYPE of
      EVENT while the channel is running, converting it to a "VOD" type manifest on completion of
      the stream.

      - **OutputSelection** *(string) --* MANIFESTSANDSEGMENTS: Generates manifests (master
      manifest, if applicable, and media manifests) for this output group. SEGMENTSONLY: Does not
      generate any manifests for this output group.

      - **ProgramDateTime** *(string) --* Includes or excludes EXT-X-PROGRAM-DATE-TIME tag in .m3u8
      manifest files. The value is calculated as follows: either the program date and time are
      initialized using the input timecode source, or the time is initialized using the input
      timecode source and the date is initialized using the timestampOffset.

      - **ProgramDateTimePeriod** *(integer) --* Period of insertion of EXT-X-PROGRAM-DATE-TIME
      entry, in seconds.

      - **RedundantManifest** *(string) --* ENABLED: The master manifest (.m3u8 file) for each
      pipeline includes information about both pipelines: first its own media files, then the media
      files of the other pipeline. This feature allows playout device that support stale manifest
      detection to switch from one manifest to the other, when the current manifest seems to be
      stale. There are still two destinations and two master manifests, but both master manifests
      reference the media files from both pipelines. DISABLED: The master manifest (.m3u8 file) for
      each pipeline includes information about its own pipeline only. For an HLS output group with
      MediaPackage as the destination, the DISABLED behavior is always followed. MediaPackage
      regenerates the manifests it serves to players so a redundant manifest from MediaLive is
      irrelevant.

      - **SegmentLength** *(integer) --* Length of MPEG-2 Transport Stream segments to create (in
      seconds). Note that segments will end on the next keyframe after this number of seconds, so
      actual segment length may be longer.

      - **SegmentationMode** *(string) --* useInputSegmentation has been deprecated. The configured
      segment size is always used.

      - **SegmentsPerSubdirectory** *(integer) --* Number of segments to write to a subdirectory
      before starting a new one. directoryStructure must be subdirectoryPerStream for this setting
      to have an effect.

      - **StreamInfResolution** *(string) --* Include or exclude RESOLUTION attribute for video in
      EXT-X-STREAM-INF tag of variant manifest.

      - **TimedMetadataId3Frame** *(string) --* Indicates ID3 frame that has the timecode.

      - **TimedMetadataId3Period** *(integer) --* Timed Metadata interval in seconds.

      - **TimestampDeltaMilliseconds** *(integer) --* Provides an extra millisecond delta offset to
      fine tune the timestamps.

      - **TsFileMode** *(string) --* SEGMENTEDFILES: Emit the program as segments - multiple .ts
      media files. SINGLEFILE: Applies only if Mode field is VOD. Emit the program as a single .ts
      media file. The media manifest includes #EXT-X-BYTERANGE tags to index segments for playback.
      A typical use for this value is when sending the output to AWS Elemental MediaConvert, which
      can accept only a single media file. Playback while the channel is running is not guaranteed
      due to HTTP server caching.

    - **MediaPackageGroupSettings** *(dict) --* Media Package Group Settings

      - **Destination** *(dict) --* MediaPackage channel destination.

        - **DestinationRefId** *(string) --* Placeholder documentation for __string

    - **MsSmoothGroupSettings** *(dict) --* Ms Smooth Group Settings

      - **AcquisitionPointId** *(string) --* The value of the "Acquisition Point Identity" element
      used in each message placed in the sparse track. Only enabled if sparseTrackType is not
      "none".

      - **AudioOnlyTimecodeControl** *(string) --* If set to passthrough for an audio-only MS Smooth
      output, the fragment absolute time will be set to the current timecode. This option does not
      write timecodes to the audio elementary stream.

      - **CertificateMode** *(string) --* If set to verifyAuthenticity, verify the https certificate
      chain to a trusted Certificate Authority (CA). This will cause https outputs to self-signed
      certificates to fail.

      - **ConnectionRetryInterval** *(integer) --* Number of seconds to wait before retrying
      connection to the IIS server if the connection is lost. Content will be cached during this
      time and the cache will be be delivered to the IIS server once the connection is
      re-established.

      - **Destination** *(dict) --* Smooth Streaming publish point on an IIS server. Elemental Live
      acts as a "Push" encoder to IIS.

        - **DestinationRefId** *(string) --* Placeholder documentation for __string

      - **EventId** *(string) --* MS Smooth event ID to be sent to the IIS server. Should only be
      specified if eventIdMode is set to useConfigured.

      - **EventIdMode** *(string) --* Specifies whether or not to send an event ID to the IIS
      server. If no event ID is sent and the same Live Event is used without changing the publishing
      point, clients might see cached video from the previous run. Options: - "useConfigured" - use
      the value provided in eventId - "useTimestamp" - generate and send an event ID based on the
      current timestamp - "noEventId" - do not send an event ID to the IIS server.

      - **EventStopBehavior** *(string) --* When set to sendEos, send EOS signal to IIS server when
      stopping the event

      - **FilecacheDuration** *(integer) --* Size in seconds of file cache for streaming outputs.

      - **FragmentLength** *(integer) --* Length of mp4 fragments to generate (in seconds). Fragment
      length must be compatible with GOP size and framerate.

      - **InputLossAction** *(string) --* Parameter that control output group behavior on input
      loss.

      - **NumRetries** *(integer) --* Number of retry attempts.

      - **RestartDelay** *(integer) --* Number of seconds before initiating a restart due to output
      failure, due to exhausting the numRetries on one segment, or exceeding filecacheDuration.

      - **SegmentationMode** *(string) --* useInputSegmentation has been deprecated. The configured
      segment size is always used.

      - **SendDelayMs** *(integer) --* Number of milliseconds to delay the output from the second
      pipeline.

      - **SparseTrackType** *(string) --* If set to scte35, use incoming SCTE-35 messages to
      generate a sparse track in this group of MS-Smooth outputs.

      - **StreamManifestBehavior** *(string) --* When set to send, send stream manifest so
      publishing point doesn't start until all streams start.

      - **TimestampOffset** *(string) --* Timestamp offset for the event. Only used if
      timestampOffsetMode is set to useConfiguredOffset.

      - **TimestampOffsetMode** *(string) --* Type of timestamp date offset to use. -
      useEventStartDate: Use the date the event was started as the offset - useConfiguredOffset: Use
      an explicitly configured date as the offset

    - **MultiplexGroupSettings** *(dict) --* Multiplex Group Settings

    - **RtmpGroupSettings** *(dict) --* Rtmp Group Settings

      - **AuthenticationScheme** *(string) --* Authentication scheme to use when connecting with CDN

      - **CacheFullBehavior** *(string) --* Controls behavior when content cache fills up. If remote
      origin server stalls the RTMP connection and does not accept content fast enough the 'Media
      Cache' will fill up. When the cache reaches the duration specified by cacheLength the cache
      will stop accepting new content. If set to disconnectImmediately, the RTMP output will force a
      disconnect. Clear the media cache, and reconnect after restartDelay seconds. If set to
      waitForServer, the RTMP output will wait up to 5 minutes to allow the origin server to begin
      accepting data again.

      - **CacheLength** *(integer) --* Cache length, in seconds, is used to calculate buffer size.

      - **CaptionData** *(string) --* Controls the types of data that passes to onCaptionInfo
      outputs. If set to 'all' then 608 and 708 carried DTVCC data will be passed. If set to
      'field1AndField2608' then DTVCC data will be stripped out, but 608 data from both fields will
      be passed. If set to 'field1608' then only the data carried in 608 from field 1 video will be
      passed.

      - **InputLossAction** *(string) --* Controls the behavior of this RTMP group if input becomes
      unavailable. - emitOutput: Emit a slate until input returns. - pauseOutput: Stop transmitting
      data until input returns. This does not close the underlying RTMP connection.

      - **RestartDelay** *(integer) --* If a streaming output fails, number of seconds to wait until
      a restart is initiated. A value of 0 means never restart.

    - **UdpGroupSettings** *(dict) --* Udp Group Settings

      - **InputLossAction** *(string) --* Specifies behavior of last resort when input video is
      lost, and no more backup inputs are available. When dropTs is selected the entire transport
      stream will stop being emitted. When dropProgram is selected the program can be dropped from
      the transport stream (and replaced with null packets to meet the TS bitrate requirement). Or,
      when emitProgram is chosen the transport stream will continue to be produced normally with
      repeat frames, black frames, or slate frames substituted for the absent input video.

      - **TimedMetadataId3Frame** *(string) --* Indicates ID3 frame that has the timecode.

      - **TimedMetadataId3Period** *(integer) --* Timed Metadata interval in seconds.
    """


_ClientUpdateChannelClassResponseChannelEncoderSettingsOutputGroupsOutputsOutputSettingsArchiveOutputSettingsContainerSettingsM2tsSettingsDvbNitSettingsTypeDef = TypedDict(
    "_ClientUpdateChannelClassResponseChannelEncoderSettingsOutputGroupsOutputsOutputSettingsArchiveOutputSettingsContainerSettingsM2tsSettingsDvbNitSettingsTypeDef",
    {"NetworkId": int, "NetworkName": str, "RepInterval": int},
    total=False,
)


class ClientUpdateChannelClassResponseChannelEncoderSettingsOutputGroupsOutputsOutputSettingsArchiveOutputSettingsContainerSettingsM2tsSettingsDvbNitSettingsTypeDef(
    _ClientUpdateChannelClassResponseChannelEncoderSettingsOutputGroupsOutputsOutputSettingsArchiveOutputSettingsContainerSettingsM2tsSettingsDvbNitSettingsTypeDef
):
    """
    Type definition for
    `ClientUpdateChannelClassResponseChannelEncoderSettingsOutputGroupsOutputsOutputSettingsArchiveOutputSettingsContainerSettingsM2tsSettings`
    `DvbNitSettings`

    - **NetworkId** *(integer) --* The numeric value placed in the Network Information Table (NIT).

    - **NetworkName** *(string) --* The network name text placed in the networkNameDescriptor inside
    the Network Information Table. Maximum length is 256 characters.

    - **RepInterval** *(integer) --* The number of milliseconds between instances of this table in
    the output transport stream.
    """


_ClientUpdateChannelClassResponseChannelEncoderSettingsOutputGroupsOutputsOutputSettingsArchiveOutputSettingsContainerSettingsM2tsSettingsDvbSdtSettingsTypeDef = TypedDict(
    "_ClientUpdateChannelClassResponseChannelEncoderSettingsOutputGroupsOutputsOutputSettingsArchiveOutputSettingsContainerSettingsM2tsSettingsDvbSdtSettingsTypeDef",
    {"OutputSdt": str, "RepInterval": int, "ServiceName": str, "ServiceProviderName": str},
    total=False,
)


class ClientUpdateChannelClassResponseChannelEncoderSettingsOutputGroupsOutputsOutputSettingsArchiveOutputSettingsContainerSettingsM2tsSettingsDvbSdtSettingsTypeDef(
    _ClientUpdateChannelClassResponseChannelEncoderSettingsOutputGroupsOutputsOutputSettingsArchiveOutputSettingsContainerSettingsM2tsSettingsDvbSdtSettingsTypeDef
):
    """
    Type definition for
    `ClientUpdateChannelClassResponseChannelEncoderSettingsOutputGroupsOutputsOutputSettingsArchiveOutputSettingsContainerSettingsM2tsSettings`
    `DvbSdtSettings`

    - **OutputSdt** *(string) --* Selects method of inserting SDT information into output stream.
    The sdtFollow setting copies SDT information from input stream to output stream. The
    sdtFollowIfPresent setting copies SDT information from input stream to output stream if SDT
    information is present in the input, otherwise it will fall back on the user-defined values. The
    sdtManual setting means user will enter the SDT information. The sdtNone setting means output
    stream will not contain SDT information.

    - **RepInterval** *(integer) --* The number of milliseconds between instances of this table in
    the output transport stream.

    - **ServiceName** *(string) --* The service name placed in the serviceDescriptor in the Service
    Description Table. Maximum length is 256 characters.

    - **ServiceProviderName** *(string) --* The service provider name placed in the
    serviceDescriptor in the Service Description Table. Maximum length is 256 characters.
    """


_ClientUpdateChannelClassResponseChannelEncoderSettingsOutputGroupsOutputsOutputSettingsArchiveOutputSettingsContainerSettingsM2tsSettingsDvbTdtSettingsTypeDef = TypedDict(
    "_ClientUpdateChannelClassResponseChannelEncoderSettingsOutputGroupsOutputsOutputSettingsArchiveOutputSettingsContainerSettingsM2tsSettingsDvbTdtSettingsTypeDef",
    {"RepInterval": int},
    total=False,
)


class ClientUpdateChannelClassResponseChannelEncoderSettingsOutputGroupsOutputsOutputSettingsArchiveOutputSettingsContainerSettingsM2tsSettingsDvbTdtSettingsTypeDef(
    _ClientUpdateChannelClassResponseChannelEncoderSettingsOutputGroupsOutputsOutputSettingsArchiveOutputSettingsContainerSettingsM2tsSettingsDvbTdtSettingsTypeDef
):
    """
    Type definition for
    `ClientUpdateChannelClassResponseChannelEncoderSettingsOutputGroupsOutputsOutputSettingsArchiveOutputSettingsContainerSettingsM2tsSettings`
    `DvbTdtSettings`

    - **RepInterval** *(integer) --* The number of milliseconds between instances of this table in
    the output transport stream.
    """


_ClientUpdateChannelClassResponseChannelEncoderSettingsOutputGroupsOutputsOutputSettingsArchiveOutputSettingsContainerSettingsM2tsSettingsTypeDef = TypedDict(
    "_ClientUpdateChannelClassResponseChannelEncoderSettingsOutputGroupsOutputsOutputSettingsArchiveOutputSettingsContainerSettingsM2tsSettingsTypeDef",
    {
        "AbsentInputAudioBehavior": str,
        "Arib": str,
        "AribCaptionsPid": str,
        "AribCaptionsPidControl": str,
        "AudioBufferModel": str,
        "AudioFramesPerPes": int,
        "AudioPids": str,
        "AudioStreamType": str,
        "Bitrate": int,
        "BufferModel": str,
        "CcDescriptor": str,
        "DvbNitSettings": ClientUpdateChannelClassResponseChannelEncoderSettingsOutputGroupsOutputsOutputSettingsArchiveOutputSettingsContainerSettingsM2tsSettingsDvbNitSettingsTypeDef,
        "DvbSdtSettings": ClientUpdateChannelClassResponseChannelEncoderSettingsOutputGroupsOutputsOutputSettingsArchiveOutputSettingsContainerSettingsM2tsSettingsDvbSdtSettingsTypeDef,
        "DvbSubPids": str,
        "DvbTdtSettings": ClientUpdateChannelClassResponseChannelEncoderSettingsOutputGroupsOutputsOutputSettingsArchiveOutputSettingsContainerSettingsM2tsSettingsDvbTdtSettingsTypeDef,
        "DvbTeletextPid": str,
        "Ebif": str,
        "EbpAudioInterval": str,
        "EbpLookaheadMs": int,
        "EbpPlacement": str,
        "EcmPid": str,
        "EsRateInPes": str,
        "EtvPlatformPid": str,
        "EtvSignalPid": str,
        "FragmentTime": float,
        "Klv": str,
        "KlvDataPids": str,
        "NielsenId3Behavior": str,
        "NullPacketBitrate": float,
        "PatInterval": int,
        "PcrControl": str,
        "PcrPeriod": int,
        "PcrPid": str,
        "PmtInterval": int,
        "PmtPid": str,
        "ProgramNum": int,
        "RateMode": str,
        "Scte27Pids": str,
        "Scte35Control": str,
        "Scte35Pid": str,
        "SegmentationMarkers": str,
        "SegmentationStyle": str,
        "SegmentationTime": float,
        "TimedMetadataBehavior": str,
        "TimedMetadataPid": str,
        "TransportStreamId": int,
        "VideoPid": str,
    },
    total=False,
)


class ClientUpdateChannelClassResponseChannelEncoderSettingsOutputGroupsOutputsOutputSettingsArchiveOutputSettingsContainerSettingsM2tsSettingsTypeDef(
    _ClientUpdateChannelClassResponseChannelEncoderSettingsOutputGroupsOutputsOutputSettingsArchiveOutputSettingsContainerSettingsM2tsSettingsTypeDef
):
    """
    Type definition for
    `ClientUpdateChannelClassResponseChannelEncoderSettingsOutputGroupsOutputsOutputSettingsArchiveOutputSettingsContainerSettings`
    `M2tsSettings`

    - **AbsentInputAudioBehavior** *(string) --* When set to drop, output audio streams will be
    removed from the program if the selected input audio stream is removed from the input. This
    allows the output audio configuration to dynamically change based on input configuration. If
    this is set to encodeSilence, all output audio streams will output encoded silence when not
    connected to an active input stream.

    - **Arib** *(string) --* When set to enabled, uses ARIB-compliant field muxing and removes video
    descriptor.

    - **AribCaptionsPid** *(string) --* Packet Identifier (PID) for ARIB Captions in the transport
    stream. Can be entered as a decimal or hexadecimal value. Valid values are 32 (or 0x20)..8182
    (or 0x1ff6).

    - **AribCaptionsPidControl** *(string) --* If set to auto, pid number used for ARIB Captions
    will be auto-selected from unused pids. If set to useConfigured, ARIB Captions will be on the
    configured pid number.

    - **AudioBufferModel** *(string) --* When set to dvb, uses DVB buffer model for Dolby Digital
    audio. When set to atsc, the ATSC model is used.

    - **AudioFramesPerPes** *(integer) --* The number of audio frames to insert for each PES packet.

    - **AudioPids** *(string) --* Packet Identifier (PID) of the elementary audio stream(s) in the
    transport stream. Multiple values are accepted, and can be entered in ranges and/or by comma
    separation. Can be entered as decimal or hexadecimal values. Each PID specified must be in the
    range of 32 (or 0x20)..8182 (or 0x1ff6).

    - **AudioStreamType** *(string) --* When set to atsc, uses stream type = 0x81 for AC3 and stream
    type = 0x87 for EAC3. When set to dvb, uses stream type = 0x06.

    - **Bitrate** *(integer) --* The output bitrate of the transport stream in bits per second.
    Setting to 0 lets the muxer automatically determine the appropriate bitrate.

    - **BufferModel** *(string) --* If set to multiplex, use multiplex buffer model for accurate
    interleaving. Setting to bufferModel to none can lead to lower latency, but low-memory devices
    may not be able to play back the stream without interruptions.

    - **CcDescriptor** *(string) --* When set to enabled, generates captionServiceDescriptor in PMT.

    - **DvbNitSettings** *(dict) --* Inserts DVB Network Information Table (NIT) at the specified
    table repetition interval.

      - **NetworkId** *(integer) --* The numeric value placed in the Network Information Table
      (NIT).

      - **NetworkName** *(string) --* The network name text placed in the networkNameDescriptor
      inside the Network Information Table. Maximum length is 256 characters.

      - **RepInterval** *(integer) --* The number of milliseconds between instances of this table in
      the output transport stream.

    - **DvbSdtSettings** *(dict) --* Inserts DVB Service Description Table (SDT) at the specified
    table repetition interval.

      - **OutputSdt** *(string) --* Selects method of inserting SDT information into output stream.
      The sdtFollow setting copies SDT information from input stream to output stream. The
      sdtFollowIfPresent setting copies SDT information from input stream to output stream if SDT
      information is present in the input, otherwise it will fall back on the user-defined values.
      The sdtManual setting means user will enter the SDT information. The sdtNone setting means
      output stream will not contain SDT information.

      - **RepInterval** *(integer) --* The number of milliseconds between instances of this table in
      the output transport stream.

      - **ServiceName** *(string) --* The service name placed in the serviceDescriptor in the
      Service Description Table. Maximum length is 256 characters.

      - **ServiceProviderName** *(string) --* The service provider name placed in the
      serviceDescriptor in the Service Description Table. Maximum length is 256 characters.

    - **DvbSubPids** *(string) --* Packet Identifier (PID) for input source DVB Subtitle data to
    this output. Multiple values are accepted, and can be entered in ranges and/or by comma
    separation. Can be entered as decimal or hexadecimal values. Each PID specified must be in the
    range of 32 (or 0x20)..8182 (or 0x1ff6).

    - **DvbTdtSettings** *(dict) --* Inserts DVB Time and Date Table (TDT) at the specified table
    repetition interval.

      - **RepInterval** *(integer) --* The number of milliseconds between instances of this table in
      the output transport stream.

    - **DvbTeletextPid** *(string) --* Packet Identifier (PID) for input source DVB Teletext data to
    this output. Can be entered as a decimal or hexadecimal value. Valid values are 32 (or
    0x20)..8182 (or 0x1ff6).

    - **Ebif** *(string) --* If set to passthrough, passes any EBIF data from the input source to
    this output.

    - **EbpAudioInterval** *(string) --* When videoAndFixedIntervals is selected, audio EBP markers
    will be added to partitions 3 and 4. The interval between these additional markers will be
    fixed, and will be slightly shorter than the video EBP marker interval. Only available when EBP
    Cablelabs segmentation markers are selected. Partitions 1 and 2 will always follow the video
    interval.

    - **EbpLookaheadMs** *(integer) --* When set, enforces that Encoder Boundary Points do not come
    within the specified time interval of each other by looking ahead at input video. If another EBP
    is going to come in within the specified time interval, the current EBP is not emitted, and the
    segment is "stretched" to the next marker. The lookahead value does not add latency to the
    system. The Live Event must be configured elsewhere to create sufficient latency to make the
    lookahead accurate.

    - **EbpPlacement** *(string) --* Controls placement of EBP on Audio PIDs. If set to
    videoAndAudioPids, EBP markers will be placed on the video PID and all audio PIDs. If set to
    videoPid, EBP markers will be placed on only the video PID.

    - **EcmPid** *(string) --* This field is unused and deprecated.

    - **EsRateInPes** *(string) --* Include or exclude the ES Rate field in the PES header.

    - **EtvPlatformPid** *(string) --* Packet Identifier (PID) for input source ETV Platform data to
    this output. Can be entered as a decimal or hexadecimal value. Valid values are 32 (or
    0x20)..8182 (or 0x1ff6).

    - **EtvSignalPid** *(string) --* Packet Identifier (PID) for input source ETV Signal data to
    this output. Can be entered as a decimal or hexadecimal value. Valid values are 32 (or
    0x20)..8182 (or 0x1ff6).

    - **FragmentTime** *(float) --* The length in seconds of each fragment. Only used with EBP
    markers.

    - **Klv** *(string) --* If set to passthrough, passes any KLV data from the input source to this
    output.

    - **KlvDataPids** *(string) --* Packet Identifier (PID) for input source KLV data to this
    output. Multiple values are accepted, and can be entered in ranges and/or by comma separation.
    Can be entered as decimal or hexadecimal values. Each PID specified must be in the range of 32
    (or 0x20)..8182 (or 0x1ff6).

    - **NielsenId3Behavior** *(string) --* If set to passthrough, Nielsen inaudible tones for media
    tracking will be detected in the input audio and an equivalent ID3 tag will be inserted in the
    output.

    - **NullPacketBitrate** *(float) --* Value in bits per second of extra null packets to insert
    into the transport stream. This can be used if a downstream encryption system requires periodic
    null packets.

    - **PatInterval** *(integer) --* The number of milliseconds between instances of this table in
    the output transport stream. Valid values are 0, 10..1000.

    - **PcrControl** *(string) --* When set to pcrEveryPesPacket, a Program Clock Reference value is
    inserted for every Packetized Elementary Stream (PES) header. This parameter is effective only
    when the PCR PID is the same as the video or audio elementary stream.

    - **PcrPeriod** *(integer) --* Maximum time in milliseconds between Program Clock Reference
    (PCRs) inserted into the transport stream.

    - **PcrPid** *(string) --* Packet Identifier (PID) of the Program Clock Reference (PCR) in the
    transport stream. When no value is given, the encoder will assign the same value as the Video
    PID. Can be entered as a decimal or hexadecimal value. Valid values are 32 (or 0x20)..8182 (or
    0x1ff6).

    - **PmtInterval** *(integer) --* The number of milliseconds between instances of this table in
    the output transport stream. Valid values are 0, 10..1000.

    - **PmtPid** *(string) --* Packet Identifier (PID) for the Program Map Table (PMT) in the
    transport stream. Can be entered as a decimal or hexadecimal value. Valid values are 32 (or
    0x20)..8182 (or 0x1ff6).

    - **ProgramNum** *(integer) --* The value of the program number field in the Program Map Table.

    - **RateMode** *(string) --* When vbr, does not insert null packets into transport stream to
    fill specified bitrate. The bitrate setting acts as the maximum bitrate when vbr is set.

    - **Scte27Pids** *(string) --* Packet Identifier (PID) for input source SCTE-27 data to this
    output. Multiple values are accepted, and can be entered in ranges and/or by comma separation.
    Can be entered as decimal or hexadecimal values. Each PID specified must be in the range of 32
    (or 0x20)..8182 (or 0x1ff6).

    - **Scte35Control** *(string) --* Optionally pass SCTE-35 signals from the input source to this
    output.

    - **Scte35Pid** *(string) --* Packet Identifier (PID) of the SCTE-35 stream in the transport
    stream. Can be entered as a decimal or hexadecimal value. Valid values are 32 (or 0x20)..8182
    (or 0x1ff6).

    - **SegmentationMarkers** *(string) --* Inserts segmentation markers at each segmentationTime
    period. raiSegstart sets the Random Access Indicator bit in the adaptation field. raiAdapt sets
    the RAI bit and adds the current timecode in the private data bytes. psiSegstart inserts PAT and
    PMT tables at the start of segments. ebp adds Encoder Boundary Point information to the
    adaptation field as per OpenCable specification OC-SP-EBP-I01-130118. ebpLegacy adds Encoder
    Boundary Point information to the adaptation field using a legacy proprietary format.

    - **SegmentationStyle** *(string) --* The segmentation style parameter controls how segmentation
    markers are inserted into the transport stream. With avails, it is possible that segments may be
    truncated, which can influence where future segmentation markers are inserted. When a
    segmentation style of "resetCadence" is selected and a segment is truncated due to an avail, we
    will reset the segmentation cadence. This means the subsequent segment will have a duration of
    $segmentationTime seconds. When a segmentation style of "maintainCadence" is selected and a
    segment is truncated due to an avail, we will not reset the segmentation cadence. This means the
    subsequent segment will likely be truncated as well. However, all segments after that will have
    a duration of $segmentationTime seconds. Note that EBP lookahead is a slight exception to this
    rule.

    - **SegmentationTime** *(float) --* The length in seconds of each segment. Required unless
    markers is set to None_.

    - **TimedMetadataBehavior** *(string) --* When set to passthrough, timed metadata will be passed
    through from input to output.

    - **TimedMetadataPid** *(string) --* Packet Identifier (PID) of the timed metadata stream in the
    transport stream. Can be entered as a decimal or hexadecimal value. Valid values are 32 (or
    0x20)..8182 (or 0x1ff6).

    - **TransportStreamId** *(integer) --* The value of the transport stream ID field in the Program
    Map Table.

    - **VideoPid** *(string) --* Packet Identifier (PID) of the elementary video stream in the
    transport stream. Can be entered as a decimal or hexadecimal value. Valid values are 32 (or
    0x20)..8182 (or 0x1ff6).
    """


_ClientUpdateChannelClassResponseChannelEncoderSettingsOutputGroupsOutputsOutputSettingsArchiveOutputSettingsContainerSettingsTypeDef = TypedDict(
    "_ClientUpdateChannelClassResponseChannelEncoderSettingsOutputGroupsOutputsOutputSettingsArchiveOutputSettingsContainerSettingsTypeDef",
    {
        "M2tsSettings": ClientUpdateChannelClassResponseChannelEncoderSettingsOutputGroupsOutputsOutputSettingsArchiveOutputSettingsContainerSettingsM2tsSettingsTypeDef
    },
    total=False,
)


class ClientUpdateChannelClassResponseChannelEncoderSettingsOutputGroupsOutputsOutputSettingsArchiveOutputSettingsContainerSettingsTypeDef(
    _ClientUpdateChannelClassResponseChannelEncoderSettingsOutputGroupsOutputsOutputSettingsArchiveOutputSettingsContainerSettingsTypeDef
):
    """
    Type definition for
    `ClientUpdateChannelClassResponseChannelEncoderSettingsOutputGroupsOutputsOutputSettingsArchiveOutputSettings`
    `ContainerSettings`

    - **M2tsSettings** *(dict) --* M2ts Settings

      - **AbsentInputAudioBehavior** *(string) --* When set to drop, output audio streams will be
      removed from the program if the selected input audio stream is removed from the input. This
      allows the output audio configuration to dynamically change based on input configuration. If
      this is set to encodeSilence, all output audio streams will output encoded silence when not
      connected to an active input stream.

      - **Arib** *(string) --* When set to enabled, uses ARIB-compliant field muxing and removes
      video descriptor.

      - **AribCaptionsPid** *(string) --* Packet Identifier (PID) for ARIB Captions in the transport
      stream. Can be entered as a decimal or hexadecimal value. Valid values are 32 (or 0x20)..8182
      (or 0x1ff6).

      - **AribCaptionsPidControl** *(string) --* If set to auto, pid number used for ARIB Captions
      will be auto-selected from unused pids. If set to useConfigured, ARIB Captions will be on the
      configured pid number.

      - **AudioBufferModel** *(string) --* When set to dvb, uses DVB buffer model for Dolby Digital
      audio. When set to atsc, the ATSC model is used.

      - **AudioFramesPerPes** *(integer) --* The number of audio frames to insert for each PES
      packet.

      - **AudioPids** *(string) --* Packet Identifier (PID) of the elementary audio stream(s) in the
      transport stream. Multiple values are accepted, and can be entered in ranges and/or by comma
      separation. Can be entered as decimal or hexadecimal values. Each PID specified must be in the
      range of 32 (or 0x20)..8182 (or 0x1ff6).

      - **AudioStreamType** *(string) --* When set to atsc, uses stream type = 0x81 for AC3 and
      stream type = 0x87 for EAC3. When set to dvb, uses stream type = 0x06.

      - **Bitrate** *(integer) --* The output bitrate of the transport stream in bits per second.
      Setting to 0 lets the muxer automatically determine the appropriate bitrate.

      - **BufferModel** *(string) --* If set to multiplex, use multiplex buffer model for accurate
      interleaving. Setting to bufferModel to none can lead to lower latency, but low-memory devices
      may not be able to play back the stream without interruptions.

      - **CcDescriptor** *(string) --* When set to enabled, generates captionServiceDescriptor in
      PMT.

      - **DvbNitSettings** *(dict) --* Inserts DVB Network Information Table (NIT) at the specified
      table repetition interval.

        - **NetworkId** *(integer) --* The numeric value placed in the Network Information Table
        (NIT).

        - **NetworkName** *(string) --* The network name text placed in the networkNameDescriptor
        inside the Network Information Table. Maximum length is 256 characters.

        - **RepInterval** *(integer) --* The number of milliseconds between instances of this table
        in the output transport stream.

      - **DvbSdtSettings** *(dict) --* Inserts DVB Service Description Table (SDT) at the specified
      table repetition interval.

        - **OutputSdt** *(string) --* Selects method of inserting SDT information into output
        stream. The sdtFollow setting copies SDT information from input stream to output stream. The
        sdtFollowIfPresent setting copies SDT information from input stream to output stream if SDT
        information is present in the input, otherwise it will fall back on the user-defined values.
        The sdtManual setting means user will enter the SDT information. The sdtNone setting means
        output stream will not contain SDT information.

        - **RepInterval** *(integer) --* The number of milliseconds between instances of this table
        in the output transport stream.

        - **ServiceName** *(string) --* The service name placed in the serviceDescriptor in the
        Service Description Table. Maximum length is 256 characters.

        - **ServiceProviderName** *(string) --* The service provider name placed in the
        serviceDescriptor in the Service Description Table. Maximum length is 256 characters.

      - **DvbSubPids** *(string) --* Packet Identifier (PID) for input source DVB Subtitle data to
      this output. Multiple values are accepted, and can be entered in ranges and/or by comma
      separation. Can be entered as decimal or hexadecimal values. Each PID specified must be in the
      range of 32 (or 0x20)..8182 (or 0x1ff6).

      - **DvbTdtSettings** *(dict) --* Inserts DVB Time and Date Table (TDT) at the specified table
      repetition interval.

        - **RepInterval** *(integer) --* The number of milliseconds between instances of this table
        in the output transport stream.

      - **DvbTeletextPid** *(string) --* Packet Identifier (PID) for input source DVB Teletext data
      to this output. Can be entered as a decimal or hexadecimal value. Valid values are 32 (or
      0x20)..8182 (or 0x1ff6).

      - **Ebif** *(string) --* If set to passthrough, passes any EBIF data from the input source to
      this output.

      - **EbpAudioInterval** *(string) --* When videoAndFixedIntervals is selected, audio EBP
      markers will be added to partitions 3 and 4. The interval between these additional markers
      will be fixed, and will be slightly shorter than the video EBP marker interval. Only available
      when EBP Cablelabs segmentation markers are selected. Partitions 1 and 2 will always follow
      the video interval.

      - **EbpLookaheadMs** *(integer) --* When set, enforces that Encoder Boundary Points do not
      come within the specified time interval of each other by looking ahead at input video. If
      another EBP is going to come in within the specified time interval, the current EBP is not
      emitted, and the segment is "stretched" to the next marker. The lookahead value does not add
      latency to the system. The Live Event must be configured elsewhere to create sufficient
      latency to make the lookahead accurate.

      - **EbpPlacement** *(string) --* Controls placement of EBP on Audio PIDs. If set to
      videoAndAudioPids, EBP markers will be placed on the video PID and all audio PIDs. If set to
      videoPid, EBP markers will be placed on only the video PID.

      - **EcmPid** *(string) --* This field is unused and deprecated.

      - **EsRateInPes** *(string) --* Include or exclude the ES Rate field in the PES header.

      - **EtvPlatformPid** *(string) --* Packet Identifier (PID) for input source ETV Platform data
      to this output. Can be entered as a decimal or hexadecimal value. Valid values are 32 (or
      0x20)..8182 (or 0x1ff6).

      - **EtvSignalPid** *(string) --* Packet Identifier (PID) for input source ETV Signal data to
      this output. Can be entered as a decimal or hexadecimal value. Valid values are 32 (or
      0x20)..8182 (or 0x1ff6).

      - **FragmentTime** *(float) --* The length in seconds of each fragment. Only used with EBP
      markers.

      - **Klv** *(string) --* If set to passthrough, passes any KLV data from the input source to
      this output.

      - **KlvDataPids** *(string) --* Packet Identifier (PID) for input source KLV data to this
      output. Multiple values are accepted, and can be entered in ranges and/or by comma separation.
      Can be entered as decimal or hexadecimal values. Each PID specified must be in the range of 32
      (or 0x20)..8182 (or 0x1ff6).

      - **NielsenId3Behavior** *(string) --* If set to passthrough, Nielsen inaudible tones for
      media tracking will be detected in the input audio and an equivalent ID3 tag will be inserted
      in the output.

      - **NullPacketBitrate** *(float) --* Value in bits per second of extra null packets to insert
      into the transport stream. This can be used if a downstream encryption system requires
      periodic null packets.

      - **PatInterval** *(integer) --* The number of milliseconds between instances of this table in
      the output transport stream. Valid values are 0, 10..1000.

      - **PcrControl** *(string) --* When set to pcrEveryPesPacket, a Program Clock Reference value
      is inserted for every Packetized Elementary Stream (PES) header. This parameter is effective
      only when the PCR PID is the same as the video or audio elementary stream.

      - **PcrPeriod** *(integer) --* Maximum time in milliseconds between Program Clock Reference
      (PCRs) inserted into the transport stream.

      - **PcrPid** *(string) --* Packet Identifier (PID) of the Program Clock Reference (PCR) in the
      transport stream. When no value is given, the encoder will assign the same value as the Video
      PID. Can be entered as a decimal or hexadecimal value. Valid values are 32 (or 0x20)..8182 (or
      0x1ff6).

      - **PmtInterval** *(integer) --* The number of milliseconds between instances of this table in
      the output transport stream. Valid values are 0, 10..1000.

      - **PmtPid** *(string) --* Packet Identifier (PID) for the Program Map Table (PMT) in the
      transport stream. Can be entered as a decimal or hexadecimal value. Valid values are 32 (or
      0x20)..8182 (or 0x1ff6).

      - **ProgramNum** *(integer) --* The value of the program number field in the Program Map
      Table.

      - **RateMode** *(string) --* When vbr, does not insert null packets into transport stream to
      fill specified bitrate. The bitrate setting acts as the maximum bitrate when vbr is set.

      - **Scte27Pids** *(string) --* Packet Identifier (PID) for input source SCTE-27 data to this
      output. Multiple values are accepted, and can be entered in ranges and/or by comma separation.
      Can be entered as decimal or hexadecimal values. Each PID specified must be in the range of 32
      (or 0x20)..8182 (or 0x1ff6).

      - **Scte35Control** *(string) --* Optionally pass SCTE-35 signals from the input source to
      this output.

      - **Scte35Pid** *(string) --* Packet Identifier (PID) of the SCTE-35 stream in the transport
      stream. Can be entered as a decimal or hexadecimal value. Valid values are 32 (or 0x20)..8182
      (or 0x1ff6).

      - **SegmentationMarkers** *(string) --* Inserts segmentation markers at each segmentationTime
      period. raiSegstart sets the Random Access Indicator bit in the adaptation field. raiAdapt
      sets the RAI bit and adds the current timecode in the private data bytes. psiSegstart inserts
      PAT and PMT tables at the start of segments. ebp adds Encoder Boundary Point information to
      the adaptation field as per OpenCable specification OC-SP-EBP-I01-130118. ebpLegacy adds
      Encoder Boundary Point information to the adaptation field using a legacy proprietary format.

      - **SegmentationStyle** *(string) --* The segmentation style parameter controls how
      segmentation markers are inserted into the transport stream. With avails, it is possible that
      segments may be truncated, which can influence where future segmentation markers are inserted.
      When a segmentation style of "resetCadence" is selected and a segment is truncated due to an
      avail, we will reset the segmentation cadence. This means the subsequent segment will have a
      duration of $segmentationTime seconds. When a segmentation style of "maintainCadence" is
      selected and a segment is truncated due to an avail, we will not reset the segmentation
      cadence. This means the subsequent segment will likely be truncated as well. However, all
      segments after that will have a duration of $segmentationTime seconds. Note that EBP lookahead
      is a slight exception to this rule.

      - **SegmentationTime** *(float) --* The length in seconds of each segment. Required unless
      markers is set to None_.

      - **TimedMetadataBehavior** *(string) --* When set to passthrough, timed metadata will be
      passed through from input to output.

      - **TimedMetadataPid** *(string) --* Packet Identifier (PID) of the timed metadata stream in
      the transport stream. Can be entered as a decimal or hexadecimal value. Valid values are 32
      (or 0x20)..8182 (or 0x1ff6).

      - **TransportStreamId** *(integer) --* The value of the transport stream ID field in the
      Program Map Table.

      - **VideoPid** *(string) --* Packet Identifier (PID) of the elementary video stream in the
      transport stream. Can be entered as a decimal or hexadecimal value. Valid values are 32 (or
      0x20)..8182 (or 0x1ff6).
    """


_ClientUpdateChannelClassResponseChannelEncoderSettingsOutputGroupsOutputsOutputSettingsArchiveOutputSettingsTypeDef = TypedDict(
    "_ClientUpdateChannelClassResponseChannelEncoderSettingsOutputGroupsOutputsOutputSettingsArchiveOutputSettingsTypeDef",
    {
        "ContainerSettings": ClientUpdateChannelClassResponseChannelEncoderSettingsOutputGroupsOutputsOutputSettingsArchiveOutputSettingsContainerSettingsTypeDef,
        "Extension": str,
        "NameModifier": str,
    },
    total=False,
)


class ClientUpdateChannelClassResponseChannelEncoderSettingsOutputGroupsOutputsOutputSettingsArchiveOutputSettingsTypeDef(
    _ClientUpdateChannelClassResponseChannelEncoderSettingsOutputGroupsOutputsOutputSettingsArchiveOutputSettingsTypeDef
):
    """
    Type definition for
    `ClientUpdateChannelClassResponseChannelEncoderSettingsOutputGroupsOutputsOutputSettings`
    `ArchiveOutputSettings`

    - **ContainerSettings** *(dict) --* Settings specific to the container type of the file.

      - **M2tsSettings** *(dict) --* M2ts Settings

        - **AbsentInputAudioBehavior** *(string) --* When set to drop, output audio streams will be
        removed from the program if the selected input audio stream is removed from the input. This
        allows the output audio configuration to dynamically change based on input configuration. If
        this is set to encodeSilence, all output audio streams will output encoded silence when not
        connected to an active input stream.

        - **Arib** *(string) --* When set to enabled, uses ARIB-compliant field muxing and removes
        video descriptor.

        - **AribCaptionsPid** *(string) --* Packet Identifier (PID) for ARIB Captions in the
        transport stream. Can be entered as a decimal or hexadecimal value. Valid values are 32 (or
        0x20)..8182 (or 0x1ff6).

        - **AribCaptionsPidControl** *(string) --* If set to auto, pid number used for ARIB Captions
        will be auto-selected from unused pids. If set to useConfigured, ARIB Captions will be on
        the configured pid number.

        - **AudioBufferModel** *(string) --* When set to dvb, uses DVB buffer model for Dolby
        Digital audio. When set to atsc, the ATSC model is used.

        - **AudioFramesPerPes** *(integer) --* The number of audio frames to insert for each PES
        packet.

        - **AudioPids** *(string) --* Packet Identifier (PID) of the elementary audio stream(s) in
        the transport stream. Multiple values are accepted, and can be entered in ranges and/or by
        comma separation. Can be entered as decimal or hexadecimal values. Each PID specified must
        be in the range of 32 (or 0x20)..8182 (or 0x1ff6).

        - **AudioStreamType** *(string) --* When set to atsc, uses stream type =
             0x81 for AC3 and
        stream type = 0x87 for EAC3. When set to dvb, uses stream type = 0x06.

        - **Bitrate** *(integer) --* The output bitrate of the transport stream in bits per second.
        Setting to 0 lets the muxer automatically determine the appropriate bitrate.

        - **BufferModel** *(string) --* If set to multiplex, use multiplex buffer model for accurate
        interleaving. Setting to bufferModel to none can lead to lower latency, but low-memory
        devices may not be able to play back the stream without interruptions.

        - **CcDescriptor** *(string) --* When set to enabled, generates captionServiceDescriptor in
        PMT.

        - **DvbNitSettings** *(dict) --* Inserts DVB Network Information Table (NIT) at the
        specified table repetition interval.

          - **NetworkId** *(integer) --* The numeric value placed in the Network Information Table
          (NIT).

          - **NetworkName** *(string) --* The network name text placed in the networkNameDescriptor
          inside the Network Information Table. Maximum length is 256 characters.

          - **RepInterval** *(integer) --* The number of milliseconds between instances of this
          table in the output transport stream.

        - **DvbSdtSettings** *(dict) --* Inserts DVB Service Description Table (SDT) at the
        specified table repetition interval.

          - **OutputSdt** *(string) --* Selects method of inserting SDT information into output
          stream. The sdtFollow setting copies SDT information from input stream to output stream.
          The sdtFollowIfPresent setting copies SDT information from input stream to output stream
          if SDT information is present in the input, otherwise it will fall back on the
          user-defined values. The sdtManual setting means user will enter the SDT information. The
          sdtNone setting means output stream will not contain SDT information.

          - **RepInterval** *(integer) --* The number of milliseconds between instances of this
          table in the output transport stream.

          - **ServiceName** *(string) --* The service name placed in the serviceDescriptor in the
          Service Description Table. Maximum length is 256 characters.

          - **ServiceProviderName** *(string) --* The service provider name placed in the
          serviceDescriptor in the Service Description Table. Maximum length is 256 characters.

        - **DvbSubPids** *(string) --* Packet Identifier (PID) for input source DVB Subtitle data to
        this output. Multiple values are accepted, and can be entered in ranges and/or by comma
        separation. Can be entered as decimal or hexadecimal values. Each PID specified must be in
        the range of 32 (or 0x20)..8182 (or 0x1ff6).

        - **DvbTdtSettings** *(dict) --* Inserts DVB Time and Date Table (TDT) at the specified
        table repetition interval.

          - **RepInterval** *(integer) --* The number of milliseconds between instances of this
          table in the output transport stream.

        - **DvbTeletextPid** *(string) --* Packet Identifier (PID) for input source DVB Teletext
        data to this output. Can be entered as a decimal or hexadecimal value. Valid values are 32
        (or 0x20)..8182 (or 0x1ff6).

        - **Ebif** *(string) --* If set to passthrough, passes any EBIF data from the input source
        to this output.

        - **EbpAudioInterval** *(string) --* When videoAndFixedIntervals is selected, audio EBP
        markers will be added to partitions 3 and 4. The interval between these additional markers
        will be fixed, and will be slightly shorter than the video EBP marker interval. Only
        available when EBP Cablelabs segmentation markers are selected. Partitions 1 and 2 will
        always follow the video interval.

        - **EbpLookaheadMs** *(integer) --* When set, enforces that Encoder Boundary Points do not
        come within the specified time interval of each other by looking ahead at input video. If
        another EBP is going to come in within the specified time interval, the current EBP is not
        emitted, and the segment is "stretched" to the next marker. The lookahead value does not add
        latency to the system. The Live Event must be configured elsewhere to create sufficient
        latency to make the lookahead accurate.

        - **EbpPlacement** *(string) --* Controls placement of EBP on Audio PIDs. If set to
        videoAndAudioPids, EBP markers will be placed on the video PID and all audio PIDs. If set to
        videoPid, EBP markers will be placed on only the video PID.

        - **EcmPid** *(string) --* This field is unused and deprecated.

        - **EsRateInPes** *(string) --* Include or exclude the ES Rate field in the PES header.

        - **EtvPlatformPid** *(string) --* Packet Identifier (PID) for input source ETV Platform
        data to this output. Can be entered as a decimal or hexadecimal value. Valid values are 32
        (or 0x20)..8182 (or 0x1ff6).

        - **EtvSignalPid** *(string) --* Packet Identifier (PID) for input source ETV Signal data to
        this output. Can be entered as a decimal or hexadecimal value. Valid values are 32 (or
        0x20)..8182 (or 0x1ff6).

        - **FragmentTime** *(float) --* The length in seconds of each fragment. Only used with EBP
        markers.

        - **Klv** *(string) --* If set to passthrough, passes any KLV data from the input source to
        this output.

        - **KlvDataPids** *(string) --* Packet Identifier (PID) for input source KLV data to this
        output. Multiple values are accepted, and can be entered in ranges and/or by comma
        separation. Can be entered as decimal or hexadecimal values. Each PID specified must be in
        the range of 32 (or 0x20)..8182 (or 0x1ff6).

        - **NielsenId3Behavior** *(string) --* If set to passthrough, Nielsen inaudible tones for
        media tracking will be detected in the input audio and an equivalent ID3 tag will be
        inserted in the output.

        - **NullPacketBitrate** *(float) --* Value in bits per second of extra null packets to
        insert into the transport stream. This can be used if a downstream encryption system
        requires periodic null packets.

        - **PatInterval** *(integer) --* The number of milliseconds between instances of this table
        in the output transport stream. Valid values are 0, 10..1000.

        - **PcrControl** *(string) --* When set to pcrEveryPesPacket, a Program Clock Reference
        value is inserted for every Packetized Elementary Stream (PES) header. This parameter is
        effective only when the PCR PID is the same as the video or audio elementary stream.

        - **PcrPeriod** *(integer) --* Maximum time in milliseconds between Program Clock Reference
        (PCRs) inserted into the transport stream.

        - **PcrPid** *(string) --* Packet Identifier (PID) of the Program Clock Reference (PCR) in
        the transport stream. When no value is given, the encoder will assign the same value as the
        Video PID. Can be entered as a decimal or hexadecimal value. Valid values are 32 (or
        0x20)..8182 (or 0x1ff6).

        - **PmtInterval** *(integer) --* The number of milliseconds between instances of this table
        in the output transport stream. Valid values are 0, 10..1000.

        - **PmtPid** *(string) --* Packet Identifier (PID) for the Program Map Table (PMT) in the
        transport stream. Can be entered as a decimal or hexadecimal value. Valid values are 32 (or
        0x20)..8182 (or 0x1ff6).

        - **ProgramNum** *(integer) --* The value of the program number field in the Program Map
        Table.

        - **RateMode** *(string) --* When vbr, does not insert null packets into transport stream to
        fill specified bitrate. The bitrate setting acts as the maximum bitrate when vbr is set.

        - **Scte27Pids** *(string) --* Packet Identifier (PID) for input source SCTE-27 data to this
        output. Multiple values are accepted, and can be entered in ranges and/or by comma
        separation. Can be entered as decimal or hexadecimal values. Each PID specified must be in
        the range of 32 (or 0x20)..8182 (or 0x1ff6).

        - **Scte35Control** *(string) --* Optionally pass SCTE-35 signals from the input source to
        this output.

        - **Scte35Pid** *(string) --* Packet Identifier (PID) of the SCTE-35 stream in the transport
        stream. Can be entered as a decimal or hexadecimal value. Valid values are 32 (or
        0x20)..8182 (or 0x1ff6).

        - **SegmentationMarkers** *(string) --* Inserts segmentation markers at each
        segmentationTime period. raiSegstart sets the Random Access Indicator bit in the adaptation
        field. raiAdapt sets the RAI bit and adds the current timecode in the private data bytes.
        psiSegstart inserts PAT and PMT tables at the start of segments. ebp adds Encoder Boundary
        Point information to the adaptation field as per OpenCable specification
        OC-SP-EBP-I01-130118. ebpLegacy adds Encoder Boundary Point information to the adaptation
        field using a legacy proprietary format.

        - **SegmentationStyle** *(string) --* The segmentation style parameter controls how
        segmentation markers are inserted into the transport stream. With avails, it is possible
        that segments may be truncated, which can influence where future segmentation markers are
        inserted. When a segmentation style of "resetCadence" is selected and a segment is truncated
        due to an avail, we will reset the segmentation cadence. This means the subsequent segment
        will have a duration of $segmentationTime seconds. When a segmentation style of
        "maintainCadence" is selected and a segment is truncated due to an avail, we will not reset
        the segmentation cadence. This means the subsequent segment will likely be truncated as
        well. However, all segments after that will have a duration of $segmentationTime seconds.
        Note that EBP lookahead is a slight exception to this rule.

        - **SegmentationTime** *(float) --* The length in seconds of each segment. Required unless
        markers is set to None_.

        - **TimedMetadataBehavior** *(string) --* When set to passthrough, timed metadata will be
        passed through from input to output.

        - **TimedMetadataPid** *(string) --* Packet Identifier (PID) of the timed metadata stream in
        the transport stream. Can be entered as a decimal or hexadecimal value. Valid values are 32
        (or 0x20)..8182 (or 0x1ff6).

        - **TransportStreamId** *(integer) --* The value of the transport stream ID field in the
        Program Map Table.

        - **VideoPid** *(string) --* Packet Identifier (PID) of the elementary video stream in the
        transport stream. Can be entered as a decimal or hexadecimal value. Valid values are 32 (or
        0x20)..8182 (or 0x1ff6).

    - **Extension** *(string) --* Output file extension. If excluded, this will be auto-selected
    from the container type.

    - **NameModifier** *(string) --* String concatenated to the end of the destination filename.
    Required for multiple outputs of the same type.
    """


_ClientUpdateChannelClassResponseChannelEncoderSettingsOutputGroupsOutputsOutputSettingsFrameCaptureOutputSettingsTypeDef = TypedDict(
    "_ClientUpdateChannelClassResponseChannelEncoderSettingsOutputGroupsOutputsOutputSettingsFrameCaptureOutputSettingsTypeDef",
    {"NameModifier": str},
    total=False,
)


class ClientUpdateChannelClassResponseChannelEncoderSettingsOutputGroupsOutputsOutputSettingsFrameCaptureOutputSettingsTypeDef(
    _ClientUpdateChannelClassResponseChannelEncoderSettingsOutputGroupsOutputsOutputSettingsFrameCaptureOutputSettingsTypeDef
):
    """
    Type definition for
    `ClientUpdateChannelClassResponseChannelEncoderSettingsOutputGroupsOutputsOutputSettings`
    `FrameCaptureOutputSettings`

    - **NameModifier** *(string) --* Required if the output group contains more than one output.
    This modifier forms part of the output file name.
    """


_ClientUpdateChannelClassResponseChannelEncoderSettingsOutputGroupsOutputsOutputSettingsHlsOutputSettingsHlsSettingsAudioOnlyHlsSettingsAudioOnlyImageTypeDef = TypedDict(
    "_ClientUpdateChannelClassResponseChannelEncoderSettingsOutputGroupsOutputsOutputSettingsHlsOutputSettingsHlsSettingsAudioOnlyHlsSettingsAudioOnlyImageTypeDef",
    {"PasswordParam": str, "Uri": str, "Username": str},
    total=False,
)


class ClientUpdateChannelClassResponseChannelEncoderSettingsOutputGroupsOutputsOutputSettingsHlsOutputSettingsHlsSettingsAudioOnlyHlsSettingsAudioOnlyImageTypeDef(
    _ClientUpdateChannelClassResponseChannelEncoderSettingsOutputGroupsOutputsOutputSettingsHlsOutputSettingsHlsSettingsAudioOnlyHlsSettingsAudioOnlyImageTypeDef
):
    """
    Type definition for
    `ClientUpdateChannelClassResponseChannelEncoderSettingsOutputGroupsOutputsOutputSettingsHlsOutputSettingsHlsSettingsAudioOnlyHlsSettings`
    `AudioOnlyImage`

    - **PasswordParam** *(string) --* key used to extract the password from EC2 Parameter store

    - **Uri** *(string) --* Uniform Resource Identifier - This should be a path to a file accessible
    to the Live system (eg. a http:// URI) depending on the output type. For example, a RTMP
    destination should have a uri simliar to: "rtmp://fmsserver/live".

    - **Username** *(string) --* Documentation update needed
    """


_ClientUpdateChannelClassResponseChannelEncoderSettingsOutputGroupsOutputsOutputSettingsHlsOutputSettingsHlsSettingsAudioOnlyHlsSettingsTypeDef = TypedDict(
    "_ClientUpdateChannelClassResponseChannelEncoderSettingsOutputGroupsOutputsOutputSettingsHlsOutputSettingsHlsSettingsAudioOnlyHlsSettingsTypeDef",
    {
        "AudioGroupId": str,
        "AudioOnlyImage": ClientUpdateChannelClassResponseChannelEncoderSettingsOutputGroupsOutputsOutputSettingsHlsOutputSettingsHlsSettingsAudioOnlyHlsSettingsAudioOnlyImageTypeDef,
        "AudioTrackType": str,
    },
    total=False,
)


class ClientUpdateChannelClassResponseChannelEncoderSettingsOutputGroupsOutputsOutputSettingsHlsOutputSettingsHlsSettingsAudioOnlyHlsSettingsTypeDef(
    _ClientUpdateChannelClassResponseChannelEncoderSettingsOutputGroupsOutputsOutputSettingsHlsOutputSettingsHlsSettingsAudioOnlyHlsSettingsTypeDef
):
    """
    Type definition for
    `ClientUpdateChannelClassResponseChannelEncoderSettingsOutputGroupsOutputsOutputSettingsHlsOutputSettingsHlsSettings`
    `AudioOnlyHlsSettings`

    - **AudioGroupId** *(string) --* Specifies the group to which the audio Rendition belongs.

    - **AudioOnlyImage** *(dict) --* Optional. Specifies the .jpg or .png image to use as the cover
    art for an audio-only output. We recommend a low bit-size file because the image increases the
    output audio bandwidth. The image is attached to the audio as an ID3 tag, frame type APIC,
    picture type 0x10, as per the "ID3 tag version 2.4.0 - Native Frames" standard.

      - **PasswordParam** *(string) --* key used to extract the password from EC2 Parameter store

      - **Uri** *(string) --* Uniform Resource Identifier - This should be a path to a file
      accessible to the Live system (eg. a http:// URI) depending on the output type. For example, a
      RTMP destination should have a uri simliar to: "rtmp://fmsserver/live".

      - **Username** *(string) --* Documentation update needed

    - **AudioTrackType** *(string) --* Four types of audio-only tracks are supported: Audio-Only
    Variant Stream The client can play back this audio-only stream instead of video in low-bandwidth
    scenarios. Represented as an EXT-X-STREAM-INF in the HLS manifest. Alternate Audio, Auto Select,
    Default Alternate rendition that the client should try to play back by default. Represented as
    an EXT-X-MEDIA in the HLS manifest with DEFAULT=YES, AUTOSELECT=YES Alternate Audio, Auto
    Select, Not Default Alternate rendition that the client may try to play back by default.
    Represented as an EXT-X-MEDIA in the HLS manifest with DEFAULT=NO, AUTOSELECT=YES Alternate
    Audio, not Auto Select Alternate rendition that the client will not try to play back by default.
    Represented as an EXT-X-MEDIA in the HLS manifest with DEFAULT=NO, AUTOSELECT=NO
    """


_ClientUpdateChannelClassResponseChannelEncoderSettingsOutputGroupsOutputsOutputSettingsHlsOutputSettingsHlsSettingsStandardHlsSettingsM3u8SettingsTypeDef = TypedDict(
    "_ClientUpdateChannelClassResponseChannelEncoderSettingsOutputGroupsOutputsOutputSettingsHlsOutputSettingsHlsSettingsStandardHlsSettingsM3u8SettingsTypeDef",
    {
        "AudioFramesPerPes": int,
        "AudioPids": str,
        "EcmPid": str,
        "NielsenId3Behavior": str,
        "PatInterval": int,
        "PcrControl": str,
        "PcrPeriod": int,
        "PcrPid": str,
        "PmtInterval": int,
        "PmtPid": str,
        "ProgramNum": int,
        "Scte35Behavior": str,
        "Scte35Pid": str,
        "TimedMetadataBehavior": str,
        "TimedMetadataPid": str,
        "TransportStreamId": int,
        "VideoPid": str,
    },
    total=False,
)


class ClientUpdateChannelClassResponseChannelEncoderSettingsOutputGroupsOutputsOutputSettingsHlsOutputSettingsHlsSettingsStandardHlsSettingsM3u8SettingsTypeDef(
    _ClientUpdateChannelClassResponseChannelEncoderSettingsOutputGroupsOutputsOutputSettingsHlsOutputSettingsHlsSettingsStandardHlsSettingsM3u8SettingsTypeDef
):
    """
    Type definition for
    `ClientUpdateChannelClassResponseChannelEncoderSettingsOutputGroupsOutputsOutputSettingsHlsOutputSettingsHlsSettingsStandardHlsSettings`
    `M3u8Settings`

    - **AudioFramesPerPes** *(integer) --* The number of audio frames to insert for each PES packet.

    - **AudioPids** *(string) --* Packet Identifier (PID) of the elementary audio stream(s) in the
    transport stream. Multiple values are accepted, and can be entered in ranges and/or by comma
    separation. Can be entered as decimal or hexadecimal values.

    - **EcmPid** *(string) --* This parameter is unused and deprecated.

    - **NielsenId3Behavior** *(string) --* If set to passthrough, Nielsen inaudible tones for media
    tracking will be detected in the input audio and an equivalent ID3 tag will be inserted in the
    output.

    - **PatInterval** *(integer) --* The number of milliseconds between instances of this table in
    the output transport stream. A value of \\"0\\" writes out the PMT once per segment file.

    - **PcrControl** *(string) --* When set to pcrEveryPesPacket, a Program Clock Reference value is
    inserted for every Packetized Elementary Stream (PES) header. This parameter is effective only
    when the PCR PID is the same as the video or audio elementary stream.

    - **PcrPeriod** *(integer) --* Maximum time in milliseconds between Program Clock References
    (PCRs) inserted into the transport stream.

    - **PcrPid** *(string) --* Packet Identifier (PID) of the Program Clock Reference (PCR) in the
    transport stream. When no value is given, the encoder will assign the same value as the Video
    PID. Can be entered as a decimal or hexadecimal value.

    - **PmtInterval** *(integer) --* The number of milliseconds between instances of this table in
    the output transport stream. A value of \\"0\\" writes out the PMT once per segment file.

    - **PmtPid** *(string) --* Packet Identifier (PID) for the Program Map Table (PMT) in the
    transport stream. Can be entered as a decimal or hexadecimal value.

    - **ProgramNum** *(integer) --* The value of the program number field in the Program Map Table.

    - **Scte35Behavior** *(string) --* If set to passthrough, passes any SCTE-35 signals from the
    input source to this output.

    - **Scte35Pid** *(string) --* Packet Identifier (PID) of the SCTE-35 stream in the transport
    stream. Can be entered as a decimal or hexadecimal value.

    - **TimedMetadataBehavior** *(string) --* When set to passthrough, timed metadata is passed
    through from input to output.

    - **TimedMetadataPid** *(string) --* Packet Identifier (PID) of the timed metadata stream in the
    transport stream. Can be entered as a decimal or hexadecimal value. Valid values are 32 (or
    0x20)..8182 (or 0x1ff6).

    - **TransportStreamId** *(integer) --* The value of the transport stream ID field in the Program
    Map Table.

    - **VideoPid** *(string) --* Packet Identifier (PID) of the elementary video stream in the
    transport stream. Can be entered as a decimal or hexadecimal value.
    """


_ClientUpdateChannelClassResponseChannelEncoderSettingsOutputGroupsOutputsOutputSettingsHlsOutputSettingsHlsSettingsStandardHlsSettingsTypeDef = TypedDict(
    "_ClientUpdateChannelClassResponseChannelEncoderSettingsOutputGroupsOutputsOutputSettingsHlsOutputSettingsHlsSettingsStandardHlsSettingsTypeDef",
    {
        "AudioRenditionSets": str,
        "M3u8Settings": ClientUpdateChannelClassResponseChannelEncoderSettingsOutputGroupsOutputsOutputSettingsHlsOutputSettingsHlsSettingsStandardHlsSettingsM3u8SettingsTypeDef,
    },
    total=False,
)


class ClientUpdateChannelClassResponseChannelEncoderSettingsOutputGroupsOutputsOutputSettingsHlsOutputSettingsHlsSettingsStandardHlsSettingsTypeDef(
    _ClientUpdateChannelClassResponseChannelEncoderSettingsOutputGroupsOutputsOutputSettingsHlsOutputSettingsHlsSettingsStandardHlsSettingsTypeDef
):
    """
    Type definition for
    `ClientUpdateChannelClassResponseChannelEncoderSettingsOutputGroupsOutputsOutputSettingsHlsOutputSettingsHlsSettings`
    `StandardHlsSettings`

    - **AudioRenditionSets** *(string) --* List all the audio groups that are used with the video
    output stream. Input all the audio GROUP-IDs that are associated to the video, separate by ','.

    - **M3u8Settings** *(dict) --* Settings information for the .m3u8 container

      - **AudioFramesPerPes** *(integer) --* The number of audio frames to insert for each PES
      packet.

      - **AudioPids** *(string) --* Packet Identifier (PID) of the elementary audio stream(s) in the
      transport stream. Multiple values are accepted, and can be entered in ranges and/or by comma
      separation. Can be entered as decimal or hexadecimal values.

      - **EcmPid** *(string) --* This parameter is unused and deprecated.

      - **NielsenId3Behavior** *(string) --* If set to passthrough, Nielsen inaudible tones for
      media tracking will be detected in the input audio and an equivalent ID3 tag will be inserted
      in the output.

      - **PatInterval** *(integer) --* The number of milliseconds between instances of this table in
      the output transport stream. A value of \\"0\\" writes out the PMT once per segment file.

      - **PcrControl** *(string) --* When set to pcrEveryPesPacket, a Program Clock Reference value
      is inserted for every Packetized Elementary Stream (PES) header. This parameter is effective
      only when the PCR PID is the same as the video or audio elementary stream.

      - **PcrPeriod** *(integer) --* Maximum time in milliseconds between Program Clock References
      (PCRs) inserted into the transport stream.

      - **PcrPid** *(string) --* Packet Identifier (PID) of the Program Clock Reference (PCR) in the
      transport stream. When no value is given, the encoder will assign the same value as the Video
      PID. Can be entered as a decimal or hexadecimal value.

      - **PmtInterval** *(integer) --* The number of milliseconds between instances of this table in
      the output transport stream. A value of \\"0\\" writes out the PMT once per segment file.

      - **PmtPid** *(string) --* Packet Identifier (PID) for the Program Map Table (PMT) in the
      transport stream. Can be entered as a decimal or hexadecimal value.

      - **ProgramNum** *(integer) --* The value of the program number field in the Program Map
      Table.

      - **Scte35Behavior** *(string) --* If set to passthrough, passes any SCTE-35 signals from the
      input source to this output.

      - **Scte35Pid** *(string) --* Packet Identifier (PID) of the SCTE-35 stream in the transport
      stream. Can be entered as a decimal or hexadecimal value.

      - **TimedMetadataBehavior** *(string) --* When set to passthrough, timed metadata is passed
      through from input to output.

      - **TimedMetadataPid** *(string) --* Packet Identifier (PID) of the timed metadata stream in
      the transport stream. Can be entered as a decimal or hexadecimal value. Valid values are 32
      (or 0x20)..8182 (or 0x1ff6).

      - **TransportStreamId** *(integer) --* The value of the transport stream ID field in the
      Program Map Table.

      - **VideoPid** *(string) --* Packet Identifier (PID) of the elementary video stream in the
      transport stream. Can be entered as a decimal or hexadecimal value.
    """


_ClientUpdateChannelClassResponseChannelEncoderSettingsOutputGroupsOutputsOutputSettingsHlsOutputSettingsHlsSettingsTypeDef = TypedDict(
    "_ClientUpdateChannelClassResponseChannelEncoderSettingsOutputGroupsOutputsOutputSettingsHlsOutputSettingsHlsSettingsTypeDef",
    {
        "AudioOnlyHlsSettings": ClientUpdateChannelClassResponseChannelEncoderSettingsOutputGroupsOutputsOutputSettingsHlsOutputSettingsHlsSettingsAudioOnlyHlsSettingsTypeDef,
        "StandardHlsSettings": ClientUpdateChannelClassResponseChannelEncoderSettingsOutputGroupsOutputsOutputSettingsHlsOutputSettingsHlsSettingsStandardHlsSettingsTypeDef,
    },
    total=False,
)


class ClientUpdateChannelClassResponseChannelEncoderSettingsOutputGroupsOutputsOutputSettingsHlsOutputSettingsHlsSettingsTypeDef(
    _ClientUpdateChannelClassResponseChannelEncoderSettingsOutputGroupsOutputsOutputSettingsHlsOutputSettingsHlsSettingsTypeDef
):
    """
    Type definition for
    `ClientUpdateChannelClassResponseChannelEncoderSettingsOutputGroupsOutputsOutputSettingsHlsOutputSettings`
    `HlsSettings`

    - **AudioOnlyHlsSettings** *(dict) --* Audio Only Hls Settings

      - **AudioGroupId** *(string) --* Specifies the group to which the audio Rendition belongs.

      - **AudioOnlyImage** *(dict) --* Optional. Specifies the .jpg or .png image to use as the
      cover art for an audio-only output. We recommend a low bit-size file because the image
      increases the output audio bandwidth. The image is attached to the audio as an ID3 tag, frame
      type APIC, picture type 0x10, as per the "ID3 tag version 2.4.0 - Native Frames" standard.

        - **PasswordParam** *(string) --* key used to extract the password from EC2 Parameter store

        - **Uri** *(string) --* Uniform Resource Identifier - This should be a path to a file
        accessible to the Live system (eg. a http:// URI) depending on the output type. For example,
        a RTMP destination should have a uri simliar to: "rtmp://fmsserver/live".

        - **Username** *(string) --* Documentation update needed

      - **AudioTrackType** *(string) --* Four types of audio-only tracks are supported: Audio-Only
      Variant Stream The client can play back this audio-only stream instead of video in
      low-bandwidth scenarios. Represented as an EXT-X-STREAM-INF in the HLS manifest. Alternate
      Audio, Auto Select, Default Alternate rendition that the client should try to play back by
      default. Represented as an EXT-X-MEDIA in the HLS manifest with DEFAULT=YES, AUTOSELECT=YES
      Alternate Audio, Auto Select, Not Default Alternate rendition that the client may try to play
      back by default. Represented as an EXT-X-MEDIA in the HLS manifest with DEFAULT=NO,
      AUTOSELECT=YES Alternate Audio, not Auto Select Alternate rendition that the client will not
      try to play back by default. Represented as an EXT-X-MEDIA in the HLS manifest with
      DEFAULT=NO, AUTOSELECT=NO

    - **StandardHlsSettings** *(dict) --* Standard Hls Settings

      - **AudioRenditionSets** *(string) --* List all the audio groups that are used with the video
      output stream. Input all the audio GROUP-IDs that are associated to the video, separate by
      ','.

      - **M3u8Settings** *(dict) --* Settings information for the .m3u8 container

        - **AudioFramesPerPes** *(integer) --* The number of audio frames to insert for each PES
        packet.

        - **AudioPids** *(string) --* Packet Identifier (PID) of the elementary audio stream(s) in
        the transport stream. Multiple values are accepted, and can be entered in ranges and/or by
        comma separation. Can be entered as decimal or hexadecimal values.

        - **EcmPid** *(string) --* This parameter is unused and deprecated.

        - **NielsenId3Behavior** *(string) --* If set to passthrough, Nielsen inaudible tones for
        media tracking will be detected in the input audio and an equivalent ID3 tag will be
        inserted in the output.

        - **PatInterval** *(integer) --* The number of milliseconds between instances of this table
        in the output transport stream. A value of \\"0\\" writes out the PMT once per segment file.

        - **PcrControl** *(string) --* When set to pcrEveryPesPacket, a Program Clock Reference
        value is inserted for every Packetized Elementary Stream (PES) header. This parameter is
        effective only when the PCR PID is the same as the video or audio elementary stream.

        - **PcrPeriod** *(integer) --* Maximum time in milliseconds between Program Clock References
        (PCRs) inserted into the transport stream.

        - **PcrPid** *(string) --* Packet Identifier (PID) of the Program Clock Reference (PCR) in
        the transport stream. When no value is given, the encoder will assign the same value as the
        Video PID. Can be entered as a decimal or hexadecimal value.

        - **PmtInterval** *(integer) --* The number of milliseconds between instances of this table
        in the output transport stream. A value of \\"0\\" writes out the PMT once per segment file.

        - **PmtPid** *(string) --* Packet Identifier (PID) for the Program Map Table (PMT) in the
        transport stream. Can be entered as a decimal or hexadecimal value.

        - **ProgramNum** *(integer) --* The value of the program number field in the Program Map
        Table.

        - **Scte35Behavior** *(string) --* If set to passthrough, passes any SCTE-35 signals from
        the input source to this output.

        - **Scte35Pid** *(string) --* Packet Identifier (PID) of the SCTE-35 stream in the transport
        stream. Can be entered as a decimal or hexadecimal value.

        - **TimedMetadataBehavior** *(string) --* When set to passthrough, timed metadata is passed
        through from input to output.

        - **TimedMetadataPid** *(string) --* Packet Identifier (PID) of the timed metadata stream in
        the transport stream. Can be entered as a decimal or hexadecimal value. Valid values are 32
        (or 0x20)..8182 (or 0x1ff6).

        - **TransportStreamId** *(integer) --* The value of the transport stream ID field in the
        Program Map Table.

        - **VideoPid** *(string) --* Packet Identifier (PID) of the elementary video stream in the
        transport stream. Can be entered as a decimal or hexadecimal value.
    """


_ClientUpdateChannelClassResponseChannelEncoderSettingsOutputGroupsOutputsOutputSettingsHlsOutputSettingsTypeDef = TypedDict(
    "_ClientUpdateChannelClassResponseChannelEncoderSettingsOutputGroupsOutputsOutputSettingsHlsOutputSettingsTypeDef",
    {
        "HlsSettings": ClientUpdateChannelClassResponseChannelEncoderSettingsOutputGroupsOutputsOutputSettingsHlsOutputSettingsHlsSettingsTypeDef,
        "NameModifier": str,
        "SegmentModifier": str,
    },
    total=False,
)


class ClientUpdateChannelClassResponseChannelEncoderSettingsOutputGroupsOutputsOutputSettingsHlsOutputSettingsTypeDef(
    _ClientUpdateChannelClassResponseChannelEncoderSettingsOutputGroupsOutputsOutputSettingsHlsOutputSettingsTypeDef
):
    """
    Type definition for
    `ClientUpdateChannelClassResponseChannelEncoderSettingsOutputGroupsOutputsOutputSettings`
    `HlsOutputSettings`

    - **HlsSettings** *(dict) --* Settings regarding the underlying stream. These settings are
    different for audio-only outputs.

      - **AudioOnlyHlsSettings** *(dict) --* Audio Only Hls Settings

        - **AudioGroupId** *(string) --* Specifies the group to which the audio Rendition belongs.

        - **AudioOnlyImage** *(dict) --* Optional. Specifies the .jpg or .png image to use as the
        cover art for an audio-only output. We recommend a low bit-size file because the image
        increases the output audio bandwidth. The image is attached to the audio as an ID3 tag,
        frame type APIC, picture type 0x10, as per the "ID3 tag version 2.4.0 - Native Frames"
        standard.

          - **PasswordParam** *(string) --* key used to extract the password from EC2 Parameter
          store

          - **Uri** *(string) --* Uniform Resource Identifier - This should be a path to a file
          accessible to the Live system (eg. a http:// URI) depending on the output type. For
          example, a RTMP destination should have a uri simliar to: "rtmp://fmsserver/live".

          - **Username** *(string) --* Documentation update needed

        - **AudioTrackType** *(string) --* Four types of audio-only tracks are supported: Audio-Only
        Variant Stream The client can play back this audio-only stream instead of video in
        low-bandwidth scenarios. Represented as an EXT-X-STREAM-INF in the HLS manifest. Alternate
        Audio, Auto Select, Default Alternate rendition that the client should try to play back by
        default. Represented as an EXT-X-MEDIA in the HLS manifest with DEFAULT=YES, AUTOSELECT=
            YES
        Alternate Audio, Auto Select, Not Default Alternate rendition that the client may try to
        play back by default. Represented as an EXT-X-MEDIA in the HLS manifest with DEFAULT=NO,
        AUTOSELECT=
            YES Alternate Audio, not Auto Select Alternate rendition that the client will not
        try to play back by default. Represented as an EXT-X-MEDIA in the HLS manifest with
        DEFAULT=NO, AUTOSELECT=NO

      - **StandardHlsSettings** *(dict) --* Standard Hls Settings

        - **AudioRenditionSets** *(string) --* List all the audio groups that are used with the
        video output stream. Input all the audio GROUP-IDs that are associated to the video,
        separate by ','.

        - **M3u8Settings** *(dict) --* Settings information for the .m3u8 container

          - **AudioFramesPerPes** *(integer) --* The number of audio frames to insert for each PES
          packet.

          - **AudioPids** *(string) --* Packet Identifier (PID) of the elementary audio stream(s) in
          the transport stream. Multiple values are accepted, and can be entered in ranges and/or by
          comma separation. Can be entered as decimal or hexadecimal values.

          - **EcmPid** *(string) --* This parameter is unused and deprecated.

          - **NielsenId3Behavior** *(string) --* If set to passthrough, Nielsen inaudible tones for
          media tracking will be detected in the input audio and an equivalent ID3 tag will be
          inserted in the output.

          - **PatInterval** *(integer) --* The number of milliseconds between instances of this
          table in the output transport stream. A value of \\"0\\" writes out the PMT once per
          segment file.

          - **PcrControl** *(string) --* When set to pcrEveryPesPacket, a Program Clock Reference
          value is inserted for every Packetized Elementary Stream (PES) header. This parameter is
          effective only when the PCR PID is the same as the video or audio elementary stream.

          - **PcrPeriod** *(integer) --* Maximum time in milliseconds between Program Clock
          References (PCRs) inserted into the transport stream.

          - **PcrPid** *(string) --* Packet Identifier (PID) of the Program Clock Reference (PCR) in
          the transport stream. When no value is given, the encoder will assign the same value as
          the Video PID. Can be entered as a decimal or hexadecimal value.

          - **PmtInterval** *(integer) --* The number of milliseconds between instances of this
          table in the output transport stream. A value of \\"0\\" writes out the PMT once per
          segment file.

          - **PmtPid** *(string) --* Packet Identifier (PID) for the Program Map Table (PMT) in the
          transport stream. Can be entered as a decimal or hexadecimal value.

          - **ProgramNum** *(integer) --* The value of the program number field in the Program Map
          Table.

          - **Scte35Behavior** *(string) --* If set to passthrough, passes any SCTE-35 signals from
          the input source to this output.

          - **Scte35Pid** *(string) --* Packet Identifier (PID) of the SCTE-35 stream in the
          transport stream. Can be entered as a decimal or hexadecimal value.

          - **TimedMetadataBehavior** *(string) --* When set to passthrough, timed metadata is
          passed through from input to output.

          - **TimedMetadataPid** *(string) --* Packet Identifier (PID) of the timed metadata stream
          in the transport stream. Can be entered as a decimal or hexadecimal value. Valid values
          are 32 (or 0x20)..8182 (or 0x1ff6).

          - **TransportStreamId** *(integer) --* The value of the transport stream ID field in the
          Program Map Table.

          - **VideoPid** *(string) --* Packet Identifier (PID) of the elementary video stream in the
          transport stream. Can be entered as a decimal or hexadecimal value.

    - **NameModifier** *(string) --* String concatenated to the end of the destination filename.
    Accepts \\"Format Identifiers\\":#formatIdentifierParameters.

    - **SegmentModifier** *(string) --* String concatenated to end of segment filenames.
    """


_ClientUpdateChannelClassResponseChannelEncoderSettingsOutputGroupsOutputsOutputSettingsMsSmoothOutputSettingsTypeDef = TypedDict(
    "_ClientUpdateChannelClassResponseChannelEncoderSettingsOutputGroupsOutputsOutputSettingsMsSmoothOutputSettingsTypeDef",
    {"H265PackagingType": str, "NameModifier": str},
    total=False,
)


class ClientUpdateChannelClassResponseChannelEncoderSettingsOutputGroupsOutputsOutputSettingsMsSmoothOutputSettingsTypeDef(
    _ClientUpdateChannelClassResponseChannelEncoderSettingsOutputGroupsOutputsOutputSettingsMsSmoothOutputSettingsTypeDef
):
    """
    Type definition for
    `ClientUpdateChannelClassResponseChannelEncoderSettingsOutputGroupsOutputsOutputSettings`
    `MsSmoothOutputSettings`

    - **H265PackagingType** *(string) --* Only applicable when this output is referencing an H.265
    video description. Specifies whether MP4 segments should be packaged as HEV1 or HVC1.

    - **NameModifier** *(string) --* String concatenated to the end of the destination filename.
    Required for multiple outputs of the same type.
    """


_ClientUpdateChannelClassResponseChannelEncoderSettingsOutputGroupsOutputsOutputSettingsMultiplexOutputSettingsDestinationTypeDef = TypedDict(
    "_ClientUpdateChannelClassResponseChannelEncoderSettingsOutputGroupsOutputsOutputSettingsMultiplexOutputSettingsDestinationTypeDef",
    {"DestinationRefId": str},
    total=False,
)


class ClientUpdateChannelClassResponseChannelEncoderSettingsOutputGroupsOutputsOutputSettingsMultiplexOutputSettingsDestinationTypeDef(
    _ClientUpdateChannelClassResponseChannelEncoderSettingsOutputGroupsOutputsOutputSettingsMultiplexOutputSettingsDestinationTypeDef
):
    """
    Type definition for
    `ClientUpdateChannelClassResponseChannelEncoderSettingsOutputGroupsOutputsOutputSettingsMultiplexOutputSettings`
    `Destination`

    - **DestinationRefId** *(string) --* Placeholder documentation for __string
    """


_ClientUpdateChannelClassResponseChannelEncoderSettingsOutputGroupsOutputsOutputSettingsMultiplexOutputSettingsTypeDef = TypedDict(
    "_ClientUpdateChannelClassResponseChannelEncoderSettingsOutputGroupsOutputsOutputSettingsMultiplexOutputSettingsTypeDef",
    {
        "Destination": ClientUpdateChannelClassResponseChannelEncoderSettingsOutputGroupsOutputsOutputSettingsMultiplexOutputSettingsDestinationTypeDef
    },
    total=False,
)


class ClientUpdateChannelClassResponseChannelEncoderSettingsOutputGroupsOutputsOutputSettingsMultiplexOutputSettingsTypeDef(
    _ClientUpdateChannelClassResponseChannelEncoderSettingsOutputGroupsOutputsOutputSettingsMultiplexOutputSettingsTypeDef
):
    """
    Type definition for
    `ClientUpdateChannelClassResponseChannelEncoderSettingsOutputGroupsOutputsOutputSettings`
    `MultiplexOutputSettings`

    - **Destination** *(dict) --* Destination is a Multiplex.

      - **DestinationRefId** *(string) --* Placeholder documentation for __string
    """


_ClientUpdateChannelClassResponseChannelEncoderSettingsOutputGroupsOutputsOutputSettingsRtmpOutputSettingsDestinationTypeDef = TypedDict(
    "_ClientUpdateChannelClassResponseChannelEncoderSettingsOutputGroupsOutputsOutputSettingsRtmpOutputSettingsDestinationTypeDef",
    {"DestinationRefId": str},
    total=False,
)


class ClientUpdateChannelClassResponseChannelEncoderSettingsOutputGroupsOutputsOutputSettingsRtmpOutputSettingsDestinationTypeDef(
    _ClientUpdateChannelClassResponseChannelEncoderSettingsOutputGroupsOutputsOutputSettingsRtmpOutputSettingsDestinationTypeDef
):
    """
    Type definition for
    `ClientUpdateChannelClassResponseChannelEncoderSettingsOutputGroupsOutputsOutputSettingsRtmpOutputSettings`
    `Destination`

    - **DestinationRefId** *(string) --* Placeholder documentation for __string
    """


_ClientUpdateChannelClassResponseChannelEncoderSettingsOutputGroupsOutputsOutputSettingsRtmpOutputSettingsTypeDef = TypedDict(
    "_ClientUpdateChannelClassResponseChannelEncoderSettingsOutputGroupsOutputsOutputSettingsRtmpOutputSettingsTypeDef",
    {
        "CertificateMode": str,
        "ConnectionRetryInterval": int,
        "Destination": ClientUpdateChannelClassResponseChannelEncoderSettingsOutputGroupsOutputsOutputSettingsRtmpOutputSettingsDestinationTypeDef,
        "NumRetries": int,
    },
    total=False,
)


class ClientUpdateChannelClassResponseChannelEncoderSettingsOutputGroupsOutputsOutputSettingsRtmpOutputSettingsTypeDef(
    _ClientUpdateChannelClassResponseChannelEncoderSettingsOutputGroupsOutputsOutputSettingsRtmpOutputSettingsTypeDef
):
    """
    Type definition for
    `ClientUpdateChannelClassResponseChannelEncoderSettingsOutputGroupsOutputsOutputSettings`
    `RtmpOutputSettings`

    - **CertificateMode** *(string) --* If set to verifyAuthenticity, verify the tls certificate
    chain to a trusted Certificate Authority (CA). This will cause rtmps outputs with self-signed
    certificates to fail.

    - **ConnectionRetryInterval** *(integer) --* Number of seconds to wait before retrying a
    connection to the Flash Media server if the connection is lost.

    - **Destination** *(dict) --* The RTMP endpoint excluding the stream name (eg.
    rtmp://host/appname). For connection to Akamai, a username and password must be supplied. URI
    fields accept format identifiers.

      - **DestinationRefId** *(string) --* Placeholder documentation for __string

    - **NumRetries** *(integer) --* Number of retry attempts.
    """


_ClientUpdateChannelClassResponseChannelEncoderSettingsOutputGroupsOutputsOutputSettingsUdpOutputSettingsContainerSettingsM2tsSettingsDvbNitSettingsTypeDef = TypedDict(
    "_ClientUpdateChannelClassResponseChannelEncoderSettingsOutputGroupsOutputsOutputSettingsUdpOutputSettingsContainerSettingsM2tsSettingsDvbNitSettingsTypeDef",
    {"NetworkId": int, "NetworkName": str, "RepInterval": int},
    total=False,
)


class ClientUpdateChannelClassResponseChannelEncoderSettingsOutputGroupsOutputsOutputSettingsUdpOutputSettingsContainerSettingsM2tsSettingsDvbNitSettingsTypeDef(
    _ClientUpdateChannelClassResponseChannelEncoderSettingsOutputGroupsOutputsOutputSettingsUdpOutputSettingsContainerSettingsM2tsSettingsDvbNitSettingsTypeDef
):
    """
    Type definition for
    `ClientUpdateChannelClassResponseChannelEncoderSettingsOutputGroupsOutputsOutputSettingsUdpOutputSettingsContainerSettingsM2tsSettings`
    `DvbNitSettings`

    - **NetworkId** *(integer) --* The numeric value placed in the Network Information Table (NIT).

    - **NetworkName** *(string) --* The network name text placed in the networkNameDescriptor inside
    the Network Information Table. Maximum length is 256 characters.

    - **RepInterval** *(integer) --* The number of milliseconds between instances of this table in
    the output transport stream.
    """


_ClientUpdateChannelClassResponseChannelEncoderSettingsOutputGroupsOutputsOutputSettingsUdpOutputSettingsContainerSettingsM2tsSettingsDvbSdtSettingsTypeDef = TypedDict(
    "_ClientUpdateChannelClassResponseChannelEncoderSettingsOutputGroupsOutputsOutputSettingsUdpOutputSettingsContainerSettingsM2tsSettingsDvbSdtSettingsTypeDef",
    {"OutputSdt": str, "RepInterval": int, "ServiceName": str, "ServiceProviderName": str},
    total=False,
)


class ClientUpdateChannelClassResponseChannelEncoderSettingsOutputGroupsOutputsOutputSettingsUdpOutputSettingsContainerSettingsM2tsSettingsDvbSdtSettingsTypeDef(
    _ClientUpdateChannelClassResponseChannelEncoderSettingsOutputGroupsOutputsOutputSettingsUdpOutputSettingsContainerSettingsM2tsSettingsDvbSdtSettingsTypeDef
):
    """
    Type definition for
    `ClientUpdateChannelClassResponseChannelEncoderSettingsOutputGroupsOutputsOutputSettingsUdpOutputSettingsContainerSettingsM2tsSettings`
    `DvbSdtSettings`

    - **OutputSdt** *(string) --* Selects method of inserting SDT information into output stream.
    The sdtFollow setting copies SDT information from input stream to output stream. The
    sdtFollowIfPresent setting copies SDT information from input stream to output stream if SDT
    information is present in the input, otherwise it will fall back on the user-defined values. The
    sdtManual setting means user will enter the SDT information. The sdtNone setting means output
    stream will not contain SDT information.

    - **RepInterval** *(integer) --* The number of milliseconds between instances of this table in
    the output transport stream.

    - **ServiceName** *(string) --* The service name placed in the serviceDescriptor in the Service
    Description Table. Maximum length is 256 characters.

    - **ServiceProviderName** *(string) --* The service provider name placed in the
    serviceDescriptor in the Service Description Table. Maximum length is 256 characters.
    """


_ClientUpdateChannelClassResponseChannelEncoderSettingsOutputGroupsOutputsOutputSettingsUdpOutputSettingsContainerSettingsM2tsSettingsDvbTdtSettingsTypeDef = TypedDict(
    "_ClientUpdateChannelClassResponseChannelEncoderSettingsOutputGroupsOutputsOutputSettingsUdpOutputSettingsContainerSettingsM2tsSettingsDvbTdtSettingsTypeDef",
    {"RepInterval": int},
    total=False,
)


class ClientUpdateChannelClassResponseChannelEncoderSettingsOutputGroupsOutputsOutputSettingsUdpOutputSettingsContainerSettingsM2tsSettingsDvbTdtSettingsTypeDef(
    _ClientUpdateChannelClassResponseChannelEncoderSettingsOutputGroupsOutputsOutputSettingsUdpOutputSettingsContainerSettingsM2tsSettingsDvbTdtSettingsTypeDef
):
    """
    Type definition for
    `ClientUpdateChannelClassResponseChannelEncoderSettingsOutputGroupsOutputsOutputSettingsUdpOutputSettingsContainerSettingsM2tsSettings`
    `DvbTdtSettings`

    - **RepInterval** *(integer) --* The number of milliseconds between instances of this table in
    the output transport stream.
    """


_ClientUpdateChannelClassResponseChannelEncoderSettingsOutputGroupsOutputsOutputSettingsUdpOutputSettingsContainerSettingsM2tsSettingsTypeDef = TypedDict(
    "_ClientUpdateChannelClassResponseChannelEncoderSettingsOutputGroupsOutputsOutputSettingsUdpOutputSettingsContainerSettingsM2tsSettingsTypeDef",
    {
        "AbsentInputAudioBehavior": str,
        "Arib": str,
        "AribCaptionsPid": str,
        "AribCaptionsPidControl": str,
        "AudioBufferModel": str,
        "AudioFramesPerPes": int,
        "AudioPids": str,
        "AudioStreamType": str,
        "Bitrate": int,
        "BufferModel": str,
        "CcDescriptor": str,
        "DvbNitSettings": ClientUpdateChannelClassResponseChannelEncoderSettingsOutputGroupsOutputsOutputSettingsUdpOutputSettingsContainerSettingsM2tsSettingsDvbNitSettingsTypeDef,
        "DvbSdtSettings": ClientUpdateChannelClassResponseChannelEncoderSettingsOutputGroupsOutputsOutputSettingsUdpOutputSettingsContainerSettingsM2tsSettingsDvbSdtSettingsTypeDef,
        "DvbSubPids": str,
        "DvbTdtSettings": ClientUpdateChannelClassResponseChannelEncoderSettingsOutputGroupsOutputsOutputSettingsUdpOutputSettingsContainerSettingsM2tsSettingsDvbTdtSettingsTypeDef,
        "DvbTeletextPid": str,
        "Ebif": str,
        "EbpAudioInterval": str,
        "EbpLookaheadMs": int,
        "EbpPlacement": str,
        "EcmPid": str,
        "EsRateInPes": str,
        "EtvPlatformPid": str,
        "EtvSignalPid": str,
        "FragmentTime": float,
        "Klv": str,
        "KlvDataPids": str,
        "NielsenId3Behavior": str,
        "NullPacketBitrate": float,
        "PatInterval": int,
        "PcrControl": str,
        "PcrPeriod": int,
        "PcrPid": str,
        "PmtInterval": int,
        "PmtPid": str,
        "ProgramNum": int,
        "RateMode": str,
        "Scte27Pids": str,
        "Scte35Control": str,
        "Scte35Pid": str,
        "SegmentationMarkers": str,
        "SegmentationStyle": str,
        "SegmentationTime": float,
        "TimedMetadataBehavior": str,
        "TimedMetadataPid": str,
        "TransportStreamId": int,
        "VideoPid": str,
    },
    total=False,
)


class ClientUpdateChannelClassResponseChannelEncoderSettingsOutputGroupsOutputsOutputSettingsUdpOutputSettingsContainerSettingsM2tsSettingsTypeDef(
    _ClientUpdateChannelClassResponseChannelEncoderSettingsOutputGroupsOutputsOutputSettingsUdpOutputSettingsContainerSettingsM2tsSettingsTypeDef
):
    """
    Type definition for
    `ClientUpdateChannelClassResponseChannelEncoderSettingsOutputGroupsOutputsOutputSettingsUdpOutputSettingsContainerSettings`
    `M2tsSettings`

    - **AbsentInputAudioBehavior** *(string) --* When set to drop, output audio streams will be
    removed from the program if the selected input audio stream is removed from the input. This
    allows the output audio configuration to dynamically change based on input configuration. If
    this is set to encodeSilence, all output audio streams will output encoded silence when not
    connected to an active input stream.

    - **Arib** *(string) --* When set to enabled, uses ARIB-compliant field muxing and removes video
    descriptor.

    - **AribCaptionsPid** *(string) --* Packet Identifier (PID) for ARIB Captions in the transport
    stream. Can be entered as a decimal or hexadecimal value. Valid values are 32 (or 0x20)..8182
    (or 0x1ff6).

    - **AribCaptionsPidControl** *(string) --* If set to auto, pid number used for ARIB Captions
    will be auto-selected from unused pids. If set to useConfigured, ARIB Captions will be on the
    configured pid number.

    - **AudioBufferModel** *(string) --* When set to dvb, uses DVB buffer model for Dolby Digital
    audio. When set to atsc, the ATSC model is used.

    - **AudioFramesPerPes** *(integer) --* The number of audio frames to insert for each PES packet.

    - **AudioPids** *(string) --* Packet Identifier (PID) of the elementary audio stream(s) in the
    transport stream. Multiple values are accepted, and can be entered in ranges and/or by comma
    separation. Can be entered as decimal or hexadecimal values. Each PID specified must be in the
    range of 32 (or 0x20)..8182 (or 0x1ff6).

    - **AudioStreamType** *(string) --* When set to atsc, uses stream type = 0x81 for AC3 and stream
    type = 0x87 for EAC3. When set to dvb, uses stream type = 0x06.

    - **Bitrate** *(integer) --* The output bitrate of the transport stream in bits per second.
    Setting to 0 lets the muxer automatically determine the appropriate bitrate.

    - **BufferModel** *(string) --* If set to multiplex, use multiplex buffer model for accurate
    interleaving. Setting to bufferModel to none can lead to lower latency, but low-memory devices
    may not be able to play back the stream without interruptions.

    - **CcDescriptor** *(string) --* When set to enabled, generates captionServiceDescriptor in PMT.

    - **DvbNitSettings** *(dict) --* Inserts DVB Network Information Table (NIT) at the specified
    table repetition interval.

      - **NetworkId** *(integer) --* The numeric value placed in the Network Information Table
      (NIT).

      - **NetworkName** *(string) --* The network name text placed in the networkNameDescriptor
      inside the Network Information Table. Maximum length is 256 characters.

      - **RepInterval** *(integer) --* The number of milliseconds between instances of this table in
      the output transport stream.

    - **DvbSdtSettings** *(dict) --* Inserts DVB Service Description Table (SDT) at the specified
    table repetition interval.

      - **OutputSdt** *(string) --* Selects method of inserting SDT information into output stream.
      The sdtFollow setting copies SDT information from input stream to output stream. The
      sdtFollowIfPresent setting copies SDT information from input stream to output stream if SDT
      information is present in the input, otherwise it will fall back on the user-defined values.
      The sdtManual setting means user will enter the SDT information. The sdtNone setting means
      output stream will not contain SDT information.

      - **RepInterval** *(integer) --* The number of milliseconds between instances of this table in
      the output transport stream.

      - **ServiceName** *(string) --* The service name placed in the serviceDescriptor in the
      Service Description Table. Maximum length is 256 characters.

      - **ServiceProviderName** *(string) --* The service provider name placed in the
      serviceDescriptor in the Service Description Table. Maximum length is 256 characters.

    - **DvbSubPids** *(string) --* Packet Identifier (PID) for input source DVB Subtitle data to
    this output. Multiple values are accepted, and can be entered in ranges and/or by comma
    separation. Can be entered as decimal or hexadecimal values. Each PID specified must be in the
    range of 32 (or 0x20)..8182 (or 0x1ff6).

    - **DvbTdtSettings** *(dict) --* Inserts DVB Time and Date Table (TDT) at the specified table
    repetition interval.

      - **RepInterval** *(integer) --* The number of milliseconds between instances of this table in
      the output transport stream.

    - **DvbTeletextPid** *(string) --* Packet Identifier (PID) for input source DVB Teletext data to
    this output. Can be entered as a decimal or hexadecimal value. Valid values are 32 (or
    0x20)..8182 (or 0x1ff6).

    - **Ebif** *(string) --* If set to passthrough, passes any EBIF data from the input source to
    this output.

    - **EbpAudioInterval** *(string) --* When videoAndFixedIntervals is selected, audio EBP markers
    will be added to partitions 3 and 4. The interval between these additional markers will be
    fixed, and will be slightly shorter than the video EBP marker interval. Only available when EBP
    Cablelabs segmentation markers are selected. Partitions 1 and 2 will always follow the video
    interval.

    - **EbpLookaheadMs** *(integer) --* When set, enforces that Encoder Boundary Points do not come
    within the specified time interval of each other by looking ahead at input video. If another EBP
    is going to come in within the specified time interval, the current EBP is not emitted, and the
    segment is "stretched" to the next marker. The lookahead value does not add latency to the
    system. The Live Event must be configured elsewhere to create sufficient latency to make the
    lookahead accurate.

    - **EbpPlacement** *(string) --* Controls placement of EBP on Audio PIDs. If set to
    videoAndAudioPids, EBP markers will be placed on the video PID and all audio PIDs. If set to
    videoPid, EBP markers will be placed on only the video PID.

    - **EcmPid** *(string) --* This field is unused and deprecated.

    - **EsRateInPes** *(string) --* Include or exclude the ES Rate field in the PES header.

    - **EtvPlatformPid** *(string) --* Packet Identifier (PID) for input source ETV Platform data to
    this output. Can be entered as a decimal or hexadecimal value. Valid values are 32 (or
    0x20)..8182 (or 0x1ff6).

    - **EtvSignalPid** *(string) --* Packet Identifier (PID) for input source ETV Signal data to
    this output. Can be entered as a decimal or hexadecimal value. Valid values are 32 (or
    0x20)..8182 (or 0x1ff6).

    - **FragmentTime** *(float) --* The length in seconds of each fragment. Only used with EBP
    markers.

    - **Klv** *(string) --* If set to passthrough, passes any KLV data from the input source to this
    output.

    - **KlvDataPids** *(string) --* Packet Identifier (PID) for input source KLV data to this
    output. Multiple values are accepted, and can be entered in ranges and/or by comma separation.
    Can be entered as decimal or hexadecimal values. Each PID specified must be in the range of 32
    (or 0x20)..8182 (or 0x1ff6).

    - **NielsenId3Behavior** *(string) --* If set to passthrough, Nielsen inaudible tones for media
    tracking will be detected in the input audio and an equivalent ID3 tag will be inserted in the
    output.

    - **NullPacketBitrate** *(float) --* Value in bits per second of extra null packets to insert
    into the transport stream. This can be used if a downstream encryption system requires periodic
    null packets.

    - **PatInterval** *(integer) --* The number of milliseconds between instances of this table in
    the output transport stream. Valid values are 0, 10..1000.

    - **PcrControl** *(string) --* When set to pcrEveryPesPacket, a Program Clock Reference value is
    inserted for every Packetized Elementary Stream (PES) header. This parameter is effective only
    when the PCR PID is the same as the video or audio elementary stream.

    - **PcrPeriod** *(integer) --* Maximum time in milliseconds between Program Clock Reference
    (PCRs) inserted into the transport stream.

    - **PcrPid** *(string) --* Packet Identifier (PID) of the Program Clock Reference (PCR) in the
    transport stream. When no value is given, the encoder will assign the same value as the Video
    PID. Can be entered as a decimal or hexadecimal value. Valid values are 32 (or 0x20)..8182 (or
    0x1ff6).

    - **PmtInterval** *(integer) --* The number of milliseconds between instances of this table in
    the output transport stream. Valid values are 0, 10..1000.

    - **PmtPid** *(string) --* Packet Identifier (PID) for the Program Map Table (PMT) in the
    transport stream. Can be entered as a decimal or hexadecimal value. Valid values are 32 (or
    0x20)..8182 (or 0x1ff6).

    - **ProgramNum** *(integer) --* The value of the program number field in the Program Map Table.

    - **RateMode** *(string) --* When vbr, does not insert null packets into transport stream to
    fill specified bitrate. The bitrate setting acts as the maximum bitrate when vbr is set.

    - **Scte27Pids** *(string) --* Packet Identifier (PID) for input source SCTE-27 data to this
    output. Multiple values are accepted, and can be entered in ranges and/or by comma separation.
    Can be entered as decimal or hexadecimal values. Each PID specified must be in the range of 32
    (or 0x20)..8182 (or 0x1ff6).

    - **Scte35Control** *(string) --* Optionally pass SCTE-35 signals from the input source to this
    output.

    - **Scte35Pid** *(string) --* Packet Identifier (PID) of the SCTE-35 stream in the transport
    stream. Can be entered as a decimal or hexadecimal value. Valid values are 32 (or 0x20)..8182
    (or 0x1ff6).

    - **SegmentationMarkers** *(string) --* Inserts segmentation markers at each segmentationTime
    period. raiSegstart sets the Random Access Indicator bit in the adaptation field. raiAdapt sets
    the RAI bit and adds the current timecode in the private data bytes. psiSegstart inserts PAT and
    PMT tables at the start of segments. ebp adds Encoder Boundary Point information to the
    adaptation field as per OpenCable specification OC-SP-EBP-I01-130118. ebpLegacy adds Encoder
    Boundary Point information to the adaptation field using a legacy proprietary format.

    - **SegmentationStyle** *(string) --* The segmentation style parameter controls how segmentation
    markers are inserted into the transport stream. With avails, it is possible that segments may be
    truncated, which can influence where future segmentation markers are inserted. When a
    segmentation style of "resetCadence" is selected and a segment is truncated due to an avail, we
    will reset the segmentation cadence. This means the subsequent segment will have a duration of
    $segmentationTime seconds. When a segmentation style of "maintainCadence" is selected and a
    segment is truncated due to an avail, we will not reset the segmentation cadence. This means the
    subsequent segment will likely be truncated as well. However, all segments after that will have
    a duration of $segmentationTime seconds. Note that EBP lookahead is a slight exception to this
    rule.

    - **SegmentationTime** *(float) --* The length in seconds of each segment. Required unless
    markers is set to None_.

    - **TimedMetadataBehavior** *(string) --* When set to passthrough, timed metadata will be passed
    through from input to output.

    - **TimedMetadataPid** *(string) --* Packet Identifier (PID) of the timed metadata stream in the
    transport stream. Can be entered as a decimal or hexadecimal value. Valid values are 32 (or
    0x20)..8182 (or 0x1ff6).

    - **TransportStreamId** *(integer) --* The value of the transport stream ID field in the Program
    Map Table.

    - **VideoPid** *(string) --* Packet Identifier (PID) of the elementary video stream in the
    transport stream. Can be entered as a decimal or hexadecimal value. Valid values are 32 (or
    0x20)..8182 (or 0x1ff6).
    """


_ClientUpdateChannelClassResponseChannelEncoderSettingsOutputGroupsOutputsOutputSettingsUdpOutputSettingsContainerSettingsTypeDef = TypedDict(
    "_ClientUpdateChannelClassResponseChannelEncoderSettingsOutputGroupsOutputsOutputSettingsUdpOutputSettingsContainerSettingsTypeDef",
    {
        "M2tsSettings": ClientUpdateChannelClassResponseChannelEncoderSettingsOutputGroupsOutputsOutputSettingsUdpOutputSettingsContainerSettingsM2tsSettingsTypeDef
    },
    total=False,
)


class ClientUpdateChannelClassResponseChannelEncoderSettingsOutputGroupsOutputsOutputSettingsUdpOutputSettingsContainerSettingsTypeDef(
    _ClientUpdateChannelClassResponseChannelEncoderSettingsOutputGroupsOutputsOutputSettingsUdpOutputSettingsContainerSettingsTypeDef
):
    """
    Type definition for
    `ClientUpdateChannelClassResponseChannelEncoderSettingsOutputGroupsOutputsOutputSettingsUdpOutputSettings`
    `ContainerSettings`

    - **M2tsSettings** *(dict) --* M2ts Settings

      - **AbsentInputAudioBehavior** *(string) --* When set to drop, output audio streams will be
      removed from the program if the selected input audio stream is removed from the input. This
      allows the output audio configuration to dynamically change based on input configuration. If
      this is set to encodeSilence, all output audio streams will output encoded silence when not
      connected to an active input stream.

      - **Arib** *(string) --* When set to enabled, uses ARIB-compliant field muxing and removes
      video descriptor.

      - **AribCaptionsPid** *(string) --* Packet Identifier (PID) for ARIB Captions in the transport
      stream. Can be entered as a decimal or hexadecimal value. Valid values are 32 (or 0x20)..8182
      (or 0x1ff6).

      - **AribCaptionsPidControl** *(string) --* If set to auto, pid number used for ARIB Captions
      will be auto-selected from unused pids. If set to useConfigured, ARIB Captions will be on the
      configured pid number.

      - **AudioBufferModel** *(string) --* When set to dvb, uses DVB buffer model for Dolby Digital
      audio. When set to atsc, the ATSC model is used.

      - **AudioFramesPerPes** *(integer) --* The number of audio frames to insert for each PES
      packet.

      - **AudioPids** *(string) --* Packet Identifier (PID) of the elementary audio stream(s) in the
      transport stream. Multiple values are accepted, and can be entered in ranges and/or by comma
      separation. Can be entered as decimal or hexadecimal values. Each PID specified must be in the
      range of 32 (or 0x20)..8182 (or 0x1ff6).

      - **AudioStreamType** *(string) --* When set to atsc, uses stream type = 0x81 for AC3 and
      stream type = 0x87 for EAC3. When set to dvb, uses stream type = 0x06.

      - **Bitrate** *(integer) --* The output bitrate of the transport stream in bits per second.
      Setting to 0 lets the muxer automatically determine the appropriate bitrate.

      - **BufferModel** *(string) --* If set to multiplex, use multiplex buffer model for accurate
      interleaving. Setting to bufferModel to none can lead to lower latency, but low-memory devices
      may not be able to play back the stream without interruptions.

      - **CcDescriptor** *(string) --* When set to enabled, generates captionServiceDescriptor in
      PMT.

      - **DvbNitSettings** *(dict) --* Inserts DVB Network Information Table (NIT) at the specified
      table repetition interval.

        - **NetworkId** *(integer) --* The numeric value placed in the Network Information Table
        (NIT).

        - **NetworkName** *(string) --* The network name text placed in the networkNameDescriptor
        inside the Network Information Table. Maximum length is 256 characters.

        - **RepInterval** *(integer) --* The number of milliseconds between instances of this table
        in the output transport stream.

      - **DvbSdtSettings** *(dict) --* Inserts DVB Service Description Table (SDT) at the specified
      table repetition interval.

        - **OutputSdt** *(string) --* Selects method of inserting SDT information into output
        stream. The sdtFollow setting copies SDT information from input stream to output stream. The
        sdtFollowIfPresent setting copies SDT information from input stream to output stream if SDT
        information is present in the input, otherwise it will fall back on the user-defined values.
        The sdtManual setting means user will enter the SDT information. The sdtNone setting means
        output stream will not contain SDT information.

        - **RepInterval** *(integer) --* The number of milliseconds between instances of this table
        in the output transport stream.

        - **ServiceName** *(string) --* The service name placed in the serviceDescriptor in the
        Service Description Table. Maximum length is 256 characters.

        - **ServiceProviderName** *(string) --* The service provider name placed in the
        serviceDescriptor in the Service Description Table. Maximum length is 256 characters.

      - **DvbSubPids** *(string) --* Packet Identifier (PID) for input source DVB Subtitle data to
      this output. Multiple values are accepted, and can be entered in ranges and/or by comma
      separation. Can be entered as decimal or hexadecimal values. Each PID specified must be in the
      range of 32 (or 0x20)..8182 (or 0x1ff6).

      - **DvbTdtSettings** *(dict) --* Inserts DVB Time and Date Table (TDT) at the specified table
      repetition interval.

        - **RepInterval** *(integer) --* The number of milliseconds between instances of this table
        in the output transport stream.

      - **DvbTeletextPid** *(string) --* Packet Identifier (PID) for input source DVB Teletext data
      to this output. Can be entered as a decimal or hexadecimal value. Valid values are 32 (or
      0x20)..8182 (or 0x1ff6).

      - **Ebif** *(string) --* If set to passthrough, passes any EBIF data from the input source to
      this output.

      - **EbpAudioInterval** *(string) --* When videoAndFixedIntervals is selected, audio EBP
      markers will be added to partitions 3 and 4. The interval between these additional markers
      will be fixed, and will be slightly shorter than the video EBP marker interval. Only available
      when EBP Cablelabs segmentation markers are selected. Partitions 1 and 2 will always follow
      the video interval.

      - **EbpLookaheadMs** *(integer) --* When set, enforces that Encoder Boundary Points do not
      come within the specified time interval of each other by looking ahead at input video. If
      another EBP is going to come in within the specified time interval, the current EBP is not
      emitted, and the segment is "stretched" to the next marker. The lookahead value does not add
      latency to the system. The Live Event must be configured elsewhere to create sufficient
      latency to make the lookahead accurate.

      - **EbpPlacement** *(string) --* Controls placement of EBP on Audio PIDs. If set to
      videoAndAudioPids, EBP markers will be placed on the video PID and all audio PIDs. If set to
      videoPid, EBP markers will be placed on only the video PID.

      - **EcmPid** *(string) --* This field is unused and deprecated.

      - **EsRateInPes** *(string) --* Include or exclude the ES Rate field in the PES header.

      - **EtvPlatformPid** *(string) --* Packet Identifier (PID) for input source ETV Platform data
      to this output. Can be entered as a decimal or hexadecimal value. Valid values are 32 (or
      0x20)..8182 (or 0x1ff6).

      - **EtvSignalPid** *(string) --* Packet Identifier (PID) for input source ETV Signal data to
      this output. Can be entered as a decimal or hexadecimal value. Valid values are 32 (or
      0x20)..8182 (or 0x1ff6).

      - **FragmentTime** *(float) --* The length in seconds of each fragment. Only used with EBP
      markers.

      - **Klv** *(string) --* If set to passthrough, passes any KLV data from the input source to
      this output.

      - **KlvDataPids** *(string) --* Packet Identifier (PID) for input source KLV data to this
      output. Multiple values are accepted, and can be entered in ranges and/or by comma separation.
      Can be entered as decimal or hexadecimal values. Each PID specified must be in the range of 32
      (or 0x20)..8182 (or 0x1ff6).

      - **NielsenId3Behavior** *(string) --* If set to passthrough, Nielsen inaudible tones for
      media tracking will be detected in the input audio and an equivalent ID3 tag will be inserted
      in the output.

      - **NullPacketBitrate** *(float) --* Value in bits per second of extra null packets to insert
      into the transport stream. This can be used if a downstream encryption system requires
      periodic null packets.

      - **PatInterval** *(integer) --* The number of milliseconds between instances of this table in
      the output transport stream. Valid values are 0, 10..1000.

      - **PcrControl** *(string) --* When set to pcrEveryPesPacket, a Program Clock Reference value
      is inserted for every Packetized Elementary Stream (PES) header. This parameter is effective
      only when the PCR PID is the same as the video or audio elementary stream.

      - **PcrPeriod** *(integer) --* Maximum time in milliseconds between Program Clock Reference
      (PCRs) inserted into the transport stream.

      - **PcrPid** *(string) --* Packet Identifier (PID) of the Program Clock Reference (PCR) in the
      transport stream. When no value is given, the encoder will assign the same value as the Video
      PID. Can be entered as a decimal or hexadecimal value. Valid values are 32 (or 0x20)..8182 (or
      0x1ff6).

      - **PmtInterval** *(integer) --* The number of milliseconds between instances of this table in
      the output transport stream. Valid values are 0, 10..1000.

      - **PmtPid** *(string) --* Packet Identifier (PID) for the Program Map Table (PMT) in the
      transport stream. Can be entered as a decimal or hexadecimal value. Valid values are 32 (or
      0x20)..8182 (or 0x1ff6).

      - **ProgramNum** *(integer) --* The value of the program number field in the Program Map
      Table.

      - **RateMode** *(string) --* When vbr, does not insert null packets into transport stream to
      fill specified bitrate. The bitrate setting acts as the maximum bitrate when vbr is set.

      - **Scte27Pids** *(string) --* Packet Identifier (PID) for input source SCTE-27 data to this
      output. Multiple values are accepted, and can be entered in ranges and/or by comma separation.
      Can be entered as decimal or hexadecimal values. Each PID specified must be in the range of 32
      (or 0x20)..8182 (or 0x1ff6).

      - **Scte35Control** *(string) --* Optionally pass SCTE-35 signals from the input source to
      this output.

      - **Scte35Pid** *(string) --* Packet Identifier (PID) of the SCTE-35 stream in the transport
      stream. Can be entered as a decimal or hexadecimal value. Valid values are 32 (or 0x20)..8182
      (or 0x1ff6).

      - **SegmentationMarkers** *(string) --* Inserts segmentation markers at each segmentationTime
      period. raiSegstart sets the Random Access Indicator bit in the adaptation field. raiAdapt
      sets the RAI bit and adds the current timecode in the private data bytes. psiSegstart inserts
      PAT and PMT tables at the start of segments. ebp adds Encoder Boundary Point information to
      the adaptation field as per OpenCable specification OC-SP-EBP-I01-130118. ebpLegacy adds
      Encoder Boundary Point information to the adaptation field using a legacy proprietary format.

      - **SegmentationStyle** *(string) --* The segmentation style parameter controls how
      segmentation markers are inserted into the transport stream. With avails, it is possible that
      segments may be truncated, which can influence where future segmentation markers are inserted.
      When a segmentation style of "resetCadence" is selected and a segment is truncated due to an
      avail, we will reset the segmentation cadence. This means the subsequent segment will have a
      duration of $segmentationTime seconds. When a segmentation style of "maintainCadence" is
      selected and a segment is truncated due to an avail, we will not reset the segmentation
      cadence. This means the subsequent segment will likely be truncated as well. However, all
      segments after that will have a duration of $segmentationTime seconds. Note that EBP lookahead
      is a slight exception to this rule.

      - **SegmentationTime** *(float) --* The length in seconds of each segment. Required unless
      markers is set to None_.

      - **TimedMetadataBehavior** *(string) --* When set to passthrough, timed metadata will be
      passed through from input to output.

      - **TimedMetadataPid** *(string) --* Packet Identifier (PID) of the timed metadata stream in
      the transport stream. Can be entered as a decimal or hexadecimal value. Valid values are 32
      (or 0x20)..8182 (or 0x1ff6).

      - **TransportStreamId** *(integer) --* The value of the transport stream ID field in the
      Program Map Table.

      - **VideoPid** *(string) --* Packet Identifier (PID) of the elementary video stream in the
      transport stream. Can be entered as a decimal or hexadecimal value. Valid values are 32 (or
      0x20)..8182 (or 0x1ff6).
    """


_ClientUpdateChannelClassResponseChannelEncoderSettingsOutputGroupsOutputsOutputSettingsUdpOutputSettingsDestinationTypeDef = TypedDict(
    "_ClientUpdateChannelClassResponseChannelEncoderSettingsOutputGroupsOutputsOutputSettingsUdpOutputSettingsDestinationTypeDef",
    {"DestinationRefId": str},
    total=False,
)


class ClientUpdateChannelClassResponseChannelEncoderSettingsOutputGroupsOutputsOutputSettingsUdpOutputSettingsDestinationTypeDef(
    _ClientUpdateChannelClassResponseChannelEncoderSettingsOutputGroupsOutputsOutputSettingsUdpOutputSettingsDestinationTypeDef
):
    """
    Type definition for
    `ClientUpdateChannelClassResponseChannelEncoderSettingsOutputGroupsOutputsOutputSettingsUdpOutputSettings`
    `Destination`

    - **DestinationRefId** *(string) --* Placeholder documentation for __string
    """


_ClientUpdateChannelClassResponseChannelEncoderSettingsOutputGroupsOutputsOutputSettingsUdpOutputSettingsFecOutputSettingsTypeDef = TypedDict(
    "_ClientUpdateChannelClassResponseChannelEncoderSettingsOutputGroupsOutputsOutputSettingsUdpOutputSettingsFecOutputSettingsTypeDef",
    {"ColumnDepth": int, "IncludeFec": str, "RowLength": int},
    total=False,
)


class ClientUpdateChannelClassResponseChannelEncoderSettingsOutputGroupsOutputsOutputSettingsUdpOutputSettingsFecOutputSettingsTypeDef(
    _ClientUpdateChannelClassResponseChannelEncoderSettingsOutputGroupsOutputsOutputSettingsUdpOutputSettingsFecOutputSettingsTypeDef
):
    """
    Type definition for
    `ClientUpdateChannelClassResponseChannelEncoderSettingsOutputGroupsOutputsOutputSettingsUdpOutputSettings`
    `FecOutputSettings`

    - **ColumnDepth** *(integer) --* Parameter D from SMPTE 2022-1. The height of the FEC protection
    matrix. The number of transport stream packets per column error correction packet. Must be
    between 4 and 20, inclusive.

    - **IncludeFec** *(string) --* Enables column only or column and row based FEC

    - **RowLength** *(integer) --* Parameter L from SMPTE 2022-1. The width of the FEC protection
    matrix. Must be between 1 and 20, inclusive. If only Column FEC is used, then larger values
    increase robustness. If Row FEC is used, then this is the number of transport stream packets per
    row error correction packet, and the value must be between 4 and 20, inclusive, if includeFec is
    columnAndRow. If includeFec is column, this value must be 1 to 20, inclusive.
    """


_ClientUpdateChannelClassResponseChannelEncoderSettingsOutputGroupsOutputsOutputSettingsUdpOutputSettingsTypeDef = TypedDict(
    "_ClientUpdateChannelClassResponseChannelEncoderSettingsOutputGroupsOutputsOutputSettingsUdpOutputSettingsTypeDef",
    {
        "BufferMsec": int,
        "ContainerSettings": ClientUpdateChannelClassResponseChannelEncoderSettingsOutputGroupsOutputsOutputSettingsUdpOutputSettingsContainerSettingsTypeDef,
        "Destination": ClientUpdateChannelClassResponseChannelEncoderSettingsOutputGroupsOutputsOutputSettingsUdpOutputSettingsDestinationTypeDef,
        "FecOutputSettings": ClientUpdateChannelClassResponseChannelEncoderSettingsOutputGroupsOutputsOutputSettingsUdpOutputSettingsFecOutputSettingsTypeDef,
    },
    total=False,
)


class ClientUpdateChannelClassResponseChannelEncoderSettingsOutputGroupsOutputsOutputSettingsUdpOutputSettingsTypeDef(
    _ClientUpdateChannelClassResponseChannelEncoderSettingsOutputGroupsOutputsOutputSettingsUdpOutputSettingsTypeDef
):
    """
    Type definition for
    `ClientUpdateChannelClassResponseChannelEncoderSettingsOutputGroupsOutputsOutputSettings`
    `UdpOutputSettings`

    - **BufferMsec** *(integer) --* UDP output buffering in milliseconds. Larger values increase
    latency through the transcoder but simultaneously assist the transcoder in maintaining a
    constant, low-jitter UDP/RTP output while accommodating clock recovery, input switching, input
    disruptions, picture reordering, etc.

    - **ContainerSettings** *(dict) --* Udp Container Settings

      - **M2tsSettings** *(dict) --* M2ts Settings

        - **AbsentInputAudioBehavior** *(string) --* When set to drop, output audio streams will be
        removed from the program if the selected input audio stream is removed from the input. This
        allows the output audio configuration to dynamically change based on input configuration. If
        this is set to encodeSilence, all output audio streams will output encoded silence when not
        connected to an active input stream.

        - **Arib** *(string) --* When set to enabled, uses ARIB-compliant field muxing and removes
        video descriptor.

        - **AribCaptionsPid** *(string) --* Packet Identifier (PID) for ARIB Captions in the
        transport stream. Can be entered as a decimal or hexadecimal value. Valid values are 32 (or
        0x20)..8182 (or 0x1ff6).

        - **AribCaptionsPidControl** *(string) --* If set to auto, pid number used for ARIB Captions
        will be auto-selected from unused pids. If set to useConfigured, ARIB Captions will be on
        the configured pid number.

        - **AudioBufferModel** *(string) --* When set to dvb, uses DVB buffer model for Dolby
        Digital audio. When set to atsc, the ATSC model is used.

        - **AudioFramesPerPes** *(integer) --* The number of audio frames to insert for each PES
        packet.

        - **AudioPids** *(string) --* Packet Identifier (PID) of the elementary audio stream(s) in
        the transport stream. Multiple values are accepted, and can be entered in ranges and/or by
        comma separation. Can be entered as decimal or hexadecimal values. Each PID specified must
        be in the range of 32 (or 0x20)..8182 (or 0x1ff6).

        - **AudioStreamType** *(string) --* When set to atsc, uses stream type =
             0x81 for AC3 and
        stream type = 0x87 for EAC3. When set to dvb, uses stream type = 0x06.

        - **Bitrate** *(integer) --* The output bitrate of the transport stream in bits per second.
        Setting to 0 lets the muxer automatically determine the appropriate bitrate.

        - **BufferModel** *(string) --* If set to multiplex, use multiplex buffer model for accurate
        interleaving. Setting to bufferModel to none can lead to lower latency, but low-memory
        devices may not be able to play back the stream without interruptions.

        - **CcDescriptor** *(string) --* When set to enabled, generates captionServiceDescriptor in
        PMT.

        - **DvbNitSettings** *(dict) --* Inserts DVB Network Information Table (NIT) at the
        specified table repetition interval.

          - **NetworkId** *(integer) --* The numeric value placed in the Network Information Table
          (NIT).

          - **NetworkName** *(string) --* The network name text placed in the networkNameDescriptor
          inside the Network Information Table. Maximum length is 256 characters.

          - **RepInterval** *(integer) --* The number of milliseconds between instances of this
          table in the output transport stream.

        - **DvbSdtSettings** *(dict) --* Inserts DVB Service Description Table (SDT) at the
        specified table repetition interval.

          - **OutputSdt** *(string) --* Selects method of inserting SDT information into output
          stream. The sdtFollow setting copies SDT information from input stream to output stream.
          The sdtFollowIfPresent setting copies SDT information from input stream to output stream
          if SDT information is present in the input, otherwise it will fall back on the
          user-defined values. The sdtManual setting means user will enter the SDT information. The
          sdtNone setting means output stream will not contain SDT information.

          - **RepInterval** *(integer) --* The number of milliseconds between instances of this
          table in the output transport stream.

          - **ServiceName** *(string) --* The service name placed in the serviceDescriptor in the
          Service Description Table. Maximum length is 256 characters.

          - **ServiceProviderName** *(string) --* The service provider name placed in the
          serviceDescriptor in the Service Description Table. Maximum length is 256 characters.

        - **DvbSubPids** *(string) --* Packet Identifier (PID) for input source DVB Subtitle data to
        this output. Multiple values are accepted, and can be entered in ranges and/or by comma
        separation. Can be entered as decimal or hexadecimal values. Each PID specified must be in
        the range of 32 (or 0x20)..8182 (or 0x1ff6).

        - **DvbTdtSettings** *(dict) --* Inserts DVB Time and Date Table (TDT) at the specified
        table repetition interval.

          - **RepInterval** *(integer) --* The number of milliseconds between instances of this
          table in the output transport stream.

        - **DvbTeletextPid** *(string) --* Packet Identifier (PID) for input source DVB Teletext
        data to this output. Can be entered as a decimal or hexadecimal value. Valid values are 32
        (or 0x20)..8182 (or 0x1ff6).

        - **Ebif** *(string) --* If set to passthrough, passes any EBIF data from the input source
        to this output.

        - **EbpAudioInterval** *(string) --* When videoAndFixedIntervals is selected, audio EBP
        markers will be added to partitions 3 and 4. The interval between these additional markers
        will be fixed, and will be slightly shorter than the video EBP marker interval. Only
        available when EBP Cablelabs segmentation markers are selected. Partitions 1 and 2 will
        always follow the video interval.

        - **EbpLookaheadMs** *(integer) --* When set, enforces that Encoder Boundary Points do not
        come within the specified time interval of each other by looking ahead at input video. If
        another EBP is going to come in within the specified time interval, the current EBP is not
        emitted, and the segment is "stretched" to the next marker. The lookahead value does not add
        latency to the system. The Live Event must be configured elsewhere to create sufficient
        latency to make the lookahead accurate.

        - **EbpPlacement** *(string) --* Controls placement of EBP on Audio PIDs. If set to
        videoAndAudioPids, EBP markers will be placed on the video PID and all audio PIDs. If set to
        videoPid, EBP markers will be placed on only the video PID.

        - **EcmPid** *(string) --* This field is unused and deprecated.

        - **EsRateInPes** *(string) --* Include or exclude the ES Rate field in the PES header.

        - **EtvPlatformPid** *(string) --* Packet Identifier (PID) for input source ETV Platform
        data to this output. Can be entered as a decimal or hexadecimal value. Valid values are 32
        (or 0x20)..8182 (or 0x1ff6).

        - **EtvSignalPid** *(string) --* Packet Identifier (PID) for input source ETV Signal data to
        this output. Can be entered as a decimal or hexadecimal value. Valid values are 32 (or
        0x20)..8182 (or 0x1ff6).

        - **FragmentTime** *(float) --* The length in seconds of each fragment. Only used with EBP
        markers.

        - **Klv** *(string) --* If set to passthrough, passes any KLV data from the input source to
        this output.

        - **KlvDataPids** *(string) --* Packet Identifier (PID) for input source KLV data to this
        output. Multiple values are accepted, and can be entered in ranges and/or by comma
        separation. Can be entered as decimal or hexadecimal values. Each PID specified must be in
        the range of 32 (or 0x20)..8182 (or 0x1ff6).

        - **NielsenId3Behavior** *(string) --* If set to passthrough, Nielsen inaudible tones for
        media tracking will be detected in the input audio and an equivalent ID3 tag will be
        inserted in the output.

        - **NullPacketBitrate** *(float) --* Value in bits per second of extra null packets to
        insert into the transport stream. This can be used if a downstream encryption system
        requires periodic null packets.

        - **PatInterval** *(integer) --* The number of milliseconds between instances of this table
        in the output transport stream. Valid values are 0, 10..1000.

        - **PcrControl** *(string) --* When set to pcrEveryPesPacket, a Program Clock Reference
        value is inserted for every Packetized Elementary Stream (PES) header. This parameter is
        effective only when the PCR PID is the same as the video or audio elementary stream.

        - **PcrPeriod** *(integer) --* Maximum time in milliseconds between Program Clock Reference
        (PCRs) inserted into the transport stream.

        - **PcrPid** *(string) --* Packet Identifier (PID) of the Program Clock Reference (PCR) in
        the transport stream. When no value is given, the encoder will assign the same value as the
        Video PID. Can be entered as a decimal or hexadecimal value. Valid values are 32 (or
        0x20)..8182 (or 0x1ff6).

        - **PmtInterval** *(integer) --* The number of milliseconds between instances of this table
        in the output transport stream. Valid values are 0, 10..1000.

        - **PmtPid** *(string) --* Packet Identifier (PID) for the Program Map Table (PMT) in the
        transport stream. Can be entered as a decimal or hexadecimal value. Valid values are 32 (or
        0x20)..8182 (or 0x1ff6).

        - **ProgramNum** *(integer) --* The value of the program number field in the Program Map
        Table.

        - **RateMode** *(string) --* When vbr, does not insert null packets into transport stream to
        fill specified bitrate. The bitrate setting acts as the maximum bitrate when vbr is set.

        - **Scte27Pids** *(string) --* Packet Identifier (PID) for input source SCTE-27 data to this
        output. Multiple values are accepted, and can be entered in ranges and/or by comma
        separation. Can be entered as decimal or hexadecimal values. Each PID specified must be in
        the range of 32 (or 0x20)..8182 (or 0x1ff6).

        - **Scte35Control** *(string) --* Optionally pass SCTE-35 signals from the input source to
        this output.

        - **Scte35Pid** *(string) --* Packet Identifier (PID) of the SCTE-35 stream in the transport
        stream. Can be entered as a decimal or hexadecimal value. Valid values are 32 (or
        0x20)..8182 (or 0x1ff6).

        - **SegmentationMarkers** *(string) --* Inserts segmentation markers at each
        segmentationTime period. raiSegstart sets the Random Access Indicator bit in the adaptation
        field. raiAdapt sets the RAI bit and adds the current timecode in the private data bytes.
        psiSegstart inserts PAT and PMT tables at the start of segments. ebp adds Encoder Boundary
        Point information to the adaptation field as per OpenCable specification
        OC-SP-EBP-I01-130118. ebpLegacy adds Encoder Boundary Point information to the adaptation
        field using a legacy proprietary format.

        - **SegmentationStyle** *(string) --* The segmentation style parameter controls how
        segmentation markers are inserted into the transport stream. With avails, it is possible
        that segments may be truncated, which can influence where future segmentation markers are
        inserted. When a segmentation style of "resetCadence" is selected and a segment is truncated
        due to an avail, we will reset the segmentation cadence. This means the subsequent segment
        will have a duration of $segmentationTime seconds. When a segmentation style of
        "maintainCadence" is selected and a segment is truncated due to an avail, we will not reset
        the segmentation cadence. This means the subsequent segment will likely be truncated as
        well. However, all segments after that will have a duration of $segmentationTime seconds.
        Note that EBP lookahead is a slight exception to this rule.

        - **SegmentationTime** *(float) --* The length in seconds of each segment. Required unless
        markers is set to None_.

        - **TimedMetadataBehavior** *(string) --* When set to passthrough, timed metadata will be
        passed through from input to output.

        - **TimedMetadataPid** *(string) --* Packet Identifier (PID) of the timed metadata stream in
        the transport stream. Can be entered as a decimal or hexadecimal value. Valid values are 32
        (or 0x20)..8182 (or 0x1ff6).

        - **TransportStreamId** *(integer) --* The value of the transport stream ID field in the
        Program Map Table.

        - **VideoPid** *(string) --* Packet Identifier (PID) of the elementary video stream in the
        transport stream. Can be entered as a decimal or hexadecimal value. Valid values are 32 (or
        0x20)..8182 (or 0x1ff6).

    - **Destination** *(dict) --* Destination address and port number for RTP or UDP packets. Can be
    unicast or multicast RTP or UDP (eg. rtp://239.10.10.10:5001 or udp://10.100.100.100:5002).

      - **DestinationRefId** *(string) --* Placeholder documentation for __string

    - **FecOutputSettings** *(dict) --* Settings for enabling and adjusting Forward Error Correction
    on UDP outputs.

      - **ColumnDepth** *(integer) --* Parameter D from SMPTE 2022-1. The height of the FEC
      protection matrix. The number of transport stream packets per column error correction packet.
      Must be between 4 and 20, inclusive.

      - **IncludeFec** *(string) --* Enables column only or column and row based FEC

      - **RowLength** *(integer) --* Parameter L from SMPTE 2022-1. The width of the FEC protection
      matrix. Must be between 1 and 20, inclusive. If only Column FEC is used, then larger values
      increase robustness. If Row FEC is used, then this is the number of transport stream packets
      per row error correction packet, and the value must be between 4 and 20, inclusive, if
      includeFec is columnAndRow. If includeFec is column, this value must be 1 to 20, inclusive.
    """


_ClientUpdateChannelClassResponseChannelEncoderSettingsOutputGroupsOutputsOutputSettingsTypeDef = TypedDict(
    "_ClientUpdateChannelClassResponseChannelEncoderSettingsOutputGroupsOutputsOutputSettingsTypeDef",
    {
        "ArchiveOutputSettings": ClientUpdateChannelClassResponseChannelEncoderSettingsOutputGroupsOutputsOutputSettingsArchiveOutputSettingsTypeDef,
        "FrameCaptureOutputSettings": ClientUpdateChannelClassResponseChannelEncoderSettingsOutputGroupsOutputsOutputSettingsFrameCaptureOutputSettingsTypeDef,
        "HlsOutputSettings": ClientUpdateChannelClassResponseChannelEncoderSettingsOutputGroupsOutputsOutputSettingsHlsOutputSettingsTypeDef,
        "MediaPackageOutputSettings": Dict,
        "MsSmoothOutputSettings": ClientUpdateChannelClassResponseChannelEncoderSettingsOutputGroupsOutputsOutputSettingsMsSmoothOutputSettingsTypeDef,
        "MultiplexOutputSettings": ClientUpdateChannelClassResponseChannelEncoderSettingsOutputGroupsOutputsOutputSettingsMultiplexOutputSettingsTypeDef,
        "RtmpOutputSettings": ClientUpdateChannelClassResponseChannelEncoderSettingsOutputGroupsOutputsOutputSettingsRtmpOutputSettingsTypeDef,
        "UdpOutputSettings": ClientUpdateChannelClassResponseChannelEncoderSettingsOutputGroupsOutputsOutputSettingsUdpOutputSettingsTypeDef,
    },
    total=False,
)


class ClientUpdateChannelClassResponseChannelEncoderSettingsOutputGroupsOutputsOutputSettingsTypeDef(
    _ClientUpdateChannelClassResponseChannelEncoderSettingsOutputGroupsOutputsOutputSettingsTypeDef
):
    """
    Type definition for `ClientUpdateChannelClassResponseChannelEncoderSettingsOutputGroupsOutputs`
    `OutputSettings`

    - **ArchiveOutputSettings** *(dict) --* Archive Output Settings

      - **ContainerSettings** *(dict) --* Settings specific to the container type of the file.

        - **M2tsSettings** *(dict) --* M2ts Settings

          - **AbsentInputAudioBehavior** *(string) --* When set to drop, output audio streams will
          be removed from the program if the selected input audio stream is removed from the input.
          This allows the output audio configuration to dynamically change based on input
          configuration. If this is set to encodeSilence, all output audio streams will output
          encoded silence when not connected to an active input stream.

          - **Arib** *(string) --* When set to enabled, uses ARIB-compliant field muxing and removes
          video descriptor.

          - **AribCaptionsPid** *(string) --* Packet Identifier (PID) for ARIB Captions in the
          transport stream. Can be entered as a decimal or hexadecimal value. Valid values are 32
          (or 0x20)..8182 (or 0x1ff6).

          - **AribCaptionsPidControl** *(string) --* If set to auto, pid number used for ARIB
          Captions will be auto-selected from unused pids. If set to useConfigured, ARIB Captions
          will be on the configured pid number.

          - **AudioBufferModel** *(string) --* When set to dvb, uses DVB buffer model for Dolby
          Digital audio. When set to atsc, the ATSC model is used.

          - **AudioFramesPerPes** *(integer) --* The number of audio frames to insert for each PES
          packet.

          - **AudioPids** *(string) --* Packet Identifier (PID) of the elementary audio stream(s) in
          the transport stream. Multiple values are accepted, and can be entered in ranges and/or by
          comma separation. Can be entered as decimal or hexadecimal values. Each PID specified must
          be in the range of 32 (or 0x20)..8182 (or 0x1ff6).

          - **AudioStreamType** *(string) --* When set to atsc, uses stream type =
               0x81 for AC3 and
          stream type = 0x87 for EAC3. When set to dvb, uses stream type = 0x06.

          - **Bitrate** *(integer) --* The output bitrate of the transport stream in bits per
          second. Setting to 0 lets the muxer automatically determine the appropriate bitrate.

          - **BufferModel** *(string) --* If set to multiplex, use multiplex buffer model for
          accurate interleaving. Setting to bufferModel to none can lead to lower latency, but
          low-memory devices may not be able to play back the stream without interruptions.

          - **CcDescriptor** *(string) --* When set to enabled, generates captionServiceDescriptor
          in PMT.

          - **DvbNitSettings** *(dict) --* Inserts DVB Network Information Table (NIT) at the
          specified table repetition interval.

            - **NetworkId** *(integer) --* The numeric value placed in the Network Information Table
            (NIT).

            - **NetworkName** *(string) --* The network name text placed in the
            networkNameDescriptor inside the Network Information Table. Maximum length is 256
            characters.

            - **RepInterval** *(integer) --* The number of milliseconds between instances of this
            table in the output transport stream.

          - **DvbSdtSettings** *(dict) --* Inserts DVB Service Description Table (SDT) at the
          specified table repetition interval.

            - **OutputSdt** *(string) --* Selects method of inserting SDT information into output
            stream. The sdtFollow setting copies SDT information from input stream to output stream.
            The sdtFollowIfPresent setting copies SDT information from input stream to output stream
            if SDT information is present in the input, otherwise it will fall back on the
            user-defined values. The sdtManual setting means user will enter the SDT information.
            The sdtNone setting means output stream will not contain SDT information.

            - **RepInterval** *(integer) --* The number of milliseconds between instances of this
            table in the output transport stream.

            - **ServiceName** *(string) --* The service name placed in the serviceDescriptor in the
            Service Description Table. Maximum length is 256 characters.

            - **ServiceProviderName** *(string) --* The service provider name placed in the
            serviceDescriptor in the Service Description Table. Maximum length is 256 characters.

          - **DvbSubPids** *(string) --* Packet Identifier (PID) for input source DVB Subtitle data
          to this output. Multiple values are accepted, and can be entered in ranges and/or by comma
          separation. Can be entered as decimal or hexadecimal values. Each PID specified must be in
          the range of 32 (or 0x20)..8182 (or 0x1ff6).

          - **DvbTdtSettings** *(dict) --* Inserts DVB Time and Date Table (TDT) at the specified
          table repetition interval.

            - **RepInterval** *(integer) --* The number of milliseconds between instances of this
            table in the output transport stream.

          - **DvbTeletextPid** *(string) --* Packet Identifier (PID) for input source DVB Teletext
          data to this output. Can be entered as a decimal or hexadecimal value. Valid values are 32
          (or 0x20)..8182 (or 0x1ff6).

          - **Ebif** *(string) --* If set to passthrough, passes any EBIF data from the input source
          to this output.

          - **EbpAudioInterval** *(string) --* When videoAndFixedIntervals is selected, audio EBP
          markers will be added to partitions 3 and 4. The interval between these additional markers
          will be fixed, and will be slightly shorter than the video EBP marker interval. Only
          available when EBP Cablelabs segmentation markers are selected. Partitions 1 and 2 will
          always follow the video interval.

          - **EbpLookaheadMs** *(integer) --* When set, enforces that Encoder Boundary Points do not
          come within the specified time interval of each other by looking ahead at input video. If
          another EBP is going to come in within the specified time interval, the current EBP is not
          emitted, and the segment is "stretched" to the next marker. The lookahead value does not
          add latency to the system. The Live Event must be configured elsewhere to create
          sufficient latency to make the lookahead accurate.

          - **EbpPlacement** *(string) --* Controls placement of EBP on Audio PIDs. If set to
          videoAndAudioPids, EBP markers will be placed on the video PID and all audio PIDs. If set
          to videoPid, EBP markers will be placed on only the video PID.

          - **EcmPid** *(string) --* This field is unused and deprecated.

          - **EsRateInPes** *(string) --* Include or exclude the ES Rate field in the PES header.

          - **EtvPlatformPid** *(string) --* Packet Identifier (PID) for input source ETV Platform
          data to this output. Can be entered as a decimal or hexadecimal value. Valid values are 32
          (or 0x20)..8182 (or 0x1ff6).

          - **EtvSignalPid** *(string) --* Packet Identifier (PID) for input source ETV Signal data
          to this output. Can be entered as a decimal or hexadecimal value. Valid values are 32 (or
          0x20)..8182 (or 0x1ff6).

          - **FragmentTime** *(float) --* The length in seconds of each fragment. Only used with EBP
          markers.

          - **Klv** *(string) --* If set to passthrough, passes any KLV data from the input source
          to this output.

          - **KlvDataPids** *(string) --* Packet Identifier (PID) for input source KLV data to this
          output. Multiple values are accepted, and can be entered in ranges and/or by comma
          separation. Can be entered as decimal or hexadecimal values. Each PID specified must be in
          the range of 32 (or 0x20)..8182 (or 0x1ff6).

          - **NielsenId3Behavior** *(string) --* If set to passthrough, Nielsen inaudible tones for
          media tracking will be detected in the input audio and an equivalent ID3 tag will be
          inserted in the output.

          - **NullPacketBitrate** *(float) --* Value in bits per second of extra null packets to
          insert into the transport stream. This can be used if a downstream encryption system
          requires periodic null packets.

          - **PatInterval** *(integer) --* The number of milliseconds between instances of this
          table in the output transport stream. Valid values are 0, 10..1000.

          - **PcrControl** *(string) --* When set to pcrEveryPesPacket, a Program Clock Reference
          value is inserted for every Packetized Elementary Stream (PES) header. This parameter is
          effective only when the PCR PID is the same as the video or audio elementary stream.

          - **PcrPeriod** *(integer) --* Maximum time in milliseconds between Program Clock
          Reference (PCRs) inserted into the transport stream.

          - **PcrPid** *(string) --* Packet Identifier (PID) of the Program Clock Reference (PCR) in
          the transport stream. When no value is given, the encoder will assign the same value as
          the Video PID. Can be entered as a decimal or hexadecimal value. Valid values are 32 (or
          0x20)..8182 (or 0x1ff6).

          - **PmtInterval** *(integer) --* The number of milliseconds between instances of this
          table in the output transport stream. Valid values are 0, 10..1000.

          - **PmtPid** *(string) --* Packet Identifier (PID) for the Program Map Table (PMT) in the
          transport stream. Can be entered as a decimal or hexadecimal value. Valid values are 32
          (or 0x20)..8182 (or 0x1ff6).

          - **ProgramNum** *(integer) --* The value of the program number field in the Program Map
          Table.

          - **RateMode** *(string) --* When vbr, does not insert null packets into transport stream
          to fill specified bitrate. The bitrate setting acts as the maximum bitrate when vbr is
          set.

          - **Scte27Pids** *(string) --* Packet Identifier (PID) for input source SCTE-27 data to
          this output. Multiple values are accepted, and can be entered in ranges and/or by comma
          separation. Can be entered as decimal or hexadecimal values. Each PID specified must be in
          the range of 32 (or 0x20)..8182 (or 0x1ff6).

          - **Scte35Control** *(string) --* Optionally pass SCTE-35 signals from the input source to
          this output.

          - **Scte35Pid** *(string) --* Packet Identifier (PID) of the SCTE-35 stream in the
          transport stream. Can be entered as a decimal or hexadecimal value. Valid values are 32
          (or 0x20)..8182 (or 0x1ff6).

          - **SegmentationMarkers** *(string) --* Inserts segmentation markers at each
          segmentationTime period. raiSegstart sets the Random Access Indicator bit in the
          adaptation field. raiAdapt sets the RAI bit and adds the current timecode in the private
          data bytes. psiSegstart inserts PAT and PMT tables at the start of segments. ebp adds
          Encoder Boundary Point information to the adaptation field as per OpenCable specification
          OC-SP-EBP-I01-130118. ebpLegacy adds Encoder Boundary Point information to the adaptation
          field using a legacy proprietary format.

          - **SegmentationStyle** *(string) --* The segmentation style parameter controls how
          segmentation markers are inserted into the transport stream. With avails, it is possible
          that segments may be truncated, which can influence where future segmentation markers are
          inserted. When a segmentation style of "resetCadence" is selected and a segment is
          truncated due to an avail, we will reset the segmentation cadence. This means the
          subsequent segment will have a duration of $segmentationTime seconds. When a segmentation
          style of "maintainCadence" is selected and a segment is truncated due to an avail, we will
          not reset the segmentation cadence. This means the subsequent segment will likely be
          truncated as well. However, all segments after that will have a duration of
          $segmentationTime seconds. Note that EBP lookahead is a slight exception to this rule.

          - **SegmentationTime** *(float) --* The length in seconds of each segment. Required unless
          markers is set to None_.

          - **TimedMetadataBehavior** *(string) --* When set to passthrough, timed metadata will be
          passed through from input to output.

          - **TimedMetadataPid** *(string) --* Packet Identifier (PID) of the timed metadata stream
          in the transport stream. Can be entered as a decimal or hexadecimal value. Valid values
          are 32 (or 0x20)..8182 (or 0x1ff6).

          - **TransportStreamId** *(integer) --* The value of the transport stream ID field in the
          Program Map Table.

          - **VideoPid** *(string) --* Packet Identifier (PID) of the elementary video stream in the
          transport stream. Can be entered as a decimal or hexadecimal value. Valid values are 32
          (or 0x20)..8182 (or 0x1ff6).

      - **Extension** *(string) --* Output file extension. If excluded, this will be auto-selected
      from the container type.

      - **NameModifier** *(string) --* String concatenated to the end of the destination filename.
      Required for multiple outputs of the same type.

    - **FrameCaptureOutputSettings** *(dict) --* Frame Capture Output Settings

      - **NameModifier** *(string) --* Required if the output group contains more than one output.
      This modifier forms part of the output file name.

    - **HlsOutputSettings** *(dict) --* Hls Output Settings

      - **HlsSettings** *(dict) --* Settings regarding the underlying stream. These settings are
      different for audio-only outputs.

        - **AudioOnlyHlsSettings** *(dict) --* Audio Only Hls Settings

          - **AudioGroupId** *(string) --* Specifies the group to which the audio Rendition belongs.

          - **AudioOnlyImage** *(dict) --* Optional. Specifies the .jpg or .png image to use as the
          cover art for an audio-only output. We recommend a low bit-size file because the image
          increases the output audio bandwidth. The image is attached to the audio as an ID3 tag,
          frame type APIC, picture type 0x10, as per the "ID3 tag version 2.4.0 - Native Frames"
          standard.

            - **PasswordParam** *(string) --* key used to extract the password from EC2 Parameter
            store

            - **Uri** *(string) --* Uniform Resource Identifier - This should be a path to a file
            accessible to the Live system (eg. a http:// URI) depending on the output type. For
            example, a RTMP destination should have a uri simliar to: "rtmp://fmsserver/live".

            - **Username** *(string) --* Documentation update needed

          - **AudioTrackType** *(string) --* Four types of audio-only tracks are supported:
          Audio-Only Variant Stream The client can play back this audio-only stream instead of video
          in low-bandwidth scenarios. Represented as an EXT-X-STREAM-INF in the HLS manifest.
          Alternate Audio, Auto Select, Default Alternate rendition that the client should try to
          play back by default. Represented as an EXT-X-MEDIA in the HLS manifest with DEFAULT=YES,
          AUTOSELECT=
              YES Alternate Audio, Auto Select, Not Default Alternate rendition that the
          client may try to play back by default. Represented as an EXT-X-MEDIA in the HLS manifest
          with DEFAULT=NO, AUTOSELECT=
              YES Alternate Audio, not Auto Select Alternate rendition that
          the client will not try to play back by default. Represented as an EXT-X-MEDIA in the HLS
          manifest with DEFAULT=NO, AUTOSELECT=NO

        - **StandardHlsSettings** *(dict) --* Standard Hls Settings

          - **AudioRenditionSets** *(string) --* List all the audio groups that are used with the
          video output stream. Input all the audio GROUP-IDs that are associated to the video,
          separate by ','.

          - **M3u8Settings** *(dict) --* Settings information for the .m3u8 container

            - **AudioFramesPerPes** *(integer) --* The number of audio frames to insert for each PES
            packet.

            - **AudioPids** *(string) --* Packet Identifier (PID) of the elementary audio stream(s)
            in the transport stream. Multiple values are accepted, and can be entered in ranges
            and/or by comma separation. Can be entered as decimal or hexadecimal values.

            - **EcmPid** *(string) --* This parameter is unused and deprecated.

            - **NielsenId3Behavior** *(string) --* If set to passthrough, Nielsen inaudible tones
            for media tracking will be detected in the input audio and an equivalent ID3 tag will be
            inserted in the output.

            - **PatInterval** *(integer) --* The number of milliseconds between instances of this
            table in the output transport stream. A value of \\"0\\" writes out the PMT once per
            segment file.

            - **PcrControl** *(string) --* When set to pcrEveryPesPacket, a Program Clock Reference
            value is inserted for every Packetized Elementary Stream (PES) header. This parameter is
            effective only when the PCR PID is the same as the video or audio elementary stream.

            - **PcrPeriod** *(integer) --* Maximum time in milliseconds between Program Clock
            References (PCRs) inserted into the transport stream.

            - **PcrPid** *(string) --* Packet Identifier (PID) of the Program Clock Reference (PCR)
            in the transport stream. When no value is given, the encoder will assign the same value
            as the Video PID. Can be entered as a decimal or hexadecimal value.

            - **PmtInterval** *(integer) --* The number of milliseconds between instances of this
            table in the output transport stream. A value of \\"0\\" writes out the PMT once per
            segment file.

            - **PmtPid** *(string) --* Packet Identifier (PID) for the Program Map Table (PMT) in
            the transport stream. Can be entered as a decimal or hexadecimal value.

            - **ProgramNum** *(integer) --* The value of the program number field in the Program Map
            Table.

            - **Scte35Behavior** *(string) --* If set to passthrough, passes any SCTE-35 signals
            from the input source to this output.

            - **Scte35Pid** *(string) --* Packet Identifier (PID) of the SCTE-35 stream in the
            transport stream. Can be entered as a decimal or hexadecimal value.

            - **TimedMetadataBehavior** *(string) --* When set to passthrough, timed metadata is
            passed through from input to output.

            - **TimedMetadataPid** *(string) --* Packet Identifier (PID) of the timed metadata
            stream in the transport stream. Can be entered as a decimal or hexadecimal value. Valid
            values are 32 (or 0x20)..8182 (or 0x1ff6).

            - **TransportStreamId** *(integer) --* The value of the transport stream ID field in the
            Program Map Table.

            - **VideoPid** *(string) --* Packet Identifier (PID) of the elementary video stream in
            the transport stream. Can be entered as a decimal or hexadecimal value.

      - **NameModifier** *(string) --* String concatenated to the end of the destination filename.
      Accepts \\"Format Identifiers\\":#formatIdentifierParameters.

      - **SegmentModifier** *(string) --* String concatenated to end of segment filenames.

    - **MediaPackageOutputSettings** *(dict) --* Media Package Output Settings

    - **MsSmoothOutputSettings** *(dict) --* Ms Smooth Output Settings

      - **H265PackagingType** *(string) --* Only applicable when this output is referencing an H.265
      video description. Specifies whether MP4 segments should be packaged as HEV1 or HVC1.

      - **NameModifier** *(string) --* String concatenated to the end of the destination filename.
      Required for multiple outputs of the same type.

    - **MultiplexOutputSettings** *(dict) --* Multiplex Output Settings

      - **Destination** *(dict) --* Destination is a Multiplex.

        - **DestinationRefId** *(string) --* Placeholder documentation for __string

    - **RtmpOutputSettings** *(dict) --* Rtmp Output Settings

      - **CertificateMode** *(string) --* If set to verifyAuthenticity, verify the tls certificate
      chain to a trusted Certificate Authority (CA). This will cause rtmps outputs with self-signed
      certificates to fail.

      - **ConnectionRetryInterval** *(integer) --* Number of seconds to wait before retrying a
      connection to the Flash Media server if the connection is lost.

      - **Destination** *(dict) --* The RTMP endpoint excluding the stream name (eg.
      rtmp://host/appname). For connection to Akamai, a username and password must be supplied. URI
      fields accept format identifiers.

        - **DestinationRefId** *(string) --* Placeholder documentation for __string

      - **NumRetries** *(integer) --* Number of retry attempts.

    - **UdpOutputSettings** *(dict) --* Udp Output Settings

      - **BufferMsec** *(integer) --* UDP output buffering in milliseconds. Larger values increase
      latency through the transcoder but simultaneously assist the transcoder in maintaining a
      constant, low-jitter UDP/RTP output while accommodating clock recovery, input switching, input
      disruptions, picture reordering, etc.

      - **ContainerSettings** *(dict) --* Udp Container Settings

        - **M2tsSettings** *(dict) --* M2ts Settings

          - **AbsentInputAudioBehavior** *(string) --* When set to drop, output audio streams will
          be removed from the program if the selected input audio stream is removed from the input.
          This allows the output audio configuration to dynamically change based on input
          configuration. If this is set to encodeSilence, all output audio streams will output
          encoded silence when not connected to an active input stream.

          - **Arib** *(string) --* When set to enabled, uses ARIB-compliant field muxing and removes
          video descriptor.

          - **AribCaptionsPid** *(string) --* Packet Identifier (PID) for ARIB Captions in the
          transport stream. Can be entered as a decimal or hexadecimal value. Valid values are 32
          (or 0x20)..8182 (or 0x1ff6).

          - **AribCaptionsPidControl** *(string) --* If set to auto, pid number used for ARIB
          Captions will be auto-selected from unused pids. If set to useConfigured, ARIB Captions
          will be on the configured pid number.

          - **AudioBufferModel** *(string) --* When set to dvb, uses DVB buffer model for Dolby
          Digital audio. When set to atsc, the ATSC model is used.

          - **AudioFramesPerPes** *(integer) --* The number of audio frames to insert for each PES
          packet.

          - **AudioPids** *(string) --* Packet Identifier (PID) of the elementary audio stream(s) in
          the transport stream. Multiple values are accepted, and can be entered in ranges and/or by
          comma separation. Can be entered as decimal or hexadecimal values. Each PID specified must
          be in the range of 32 (or 0x20)..8182 (or 0x1ff6).

          - **AudioStreamType** *(string) --* When set to atsc, uses stream type =
               0x81 for AC3 and
          stream type = 0x87 for EAC3. When set to dvb, uses stream type = 0x06.

          - **Bitrate** *(integer) --* The output bitrate of the transport stream in bits per
          second. Setting to 0 lets the muxer automatically determine the appropriate bitrate.

          - **BufferModel** *(string) --* If set to multiplex, use multiplex buffer model for
          accurate interleaving. Setting to bufferModel to none can lead to lower latency, but
          low-memory devices may not be able to play back the stream without interruptions.

          - **CcDescriptor** *(string) --* When set to enabled, generates captionServiceDescriptor
          in PMT.

          - **DvbNitSettings** *(dict) --* Inserts DVB Network Information Table (NIT) at the
          specified table repetition interval.

            - **NetworkId** *(integer) --* The numeric value placed in the Network Information Table
            (NIT).

            - **NetworkName** *(string) --* The network name text placed in the
            networkNameDescriptor inside the Network Information Table. Maximum length is 256
            characters.

            - **RepInterval** *(integer) --* The number of milliseconds between instances of this
            table in the output transport stream.

          - **DvbSdtSettings** *(dict) --* Inserts DVB Service Description Table (SDT) at the
          specified table repetition interval.

            - **OutputSdt** *(string) --* Selects method of inserting SDT information into output
            stream. The sdtFollow setting copies SDT information from input stream to output stream.
            The sdtFollowIfPresent setting copies SDT information from input stream to output stream
            if SDT information is present in the input, otherwise it will fall back on the
            user-defined values. The sdtManual setting means user will enter the SDT information.
            The sdtNone setting means output stream will not contain SDT information.

            - **RepInterval** *(integer) --* The number of milliseconds between instances of this
            table in the output transport stream.

            - **ServiceName** *(string) --* The service name placed in the serviceDescriptor in the
            Service Description Table. Maximum length is 256 characters.

            - **ServiceProviderName** *(string) --* The service provider name placed in the
            serviceDescriptor in the Service Description Table. Maximum length is 256 characters.

          - **DvbSubPids** *(string) --* Packet Identifier (PID) for input source DVB Subtitle data
          to this output. Multiple values are accepted, and can be entered in ranges and/or by comma
          separation. Can be entered as decimal or hexadecimal values. Each PID specified must be in
          the range of 32 (or 0x20)..8182 (or 0x1ff6).

          - **DvbTdtSettings** *(dict) --* Inserts DVB Time and Date Table (TDT) at the specified
          table repetition interval.

            - **RepInterval** *(integer) --* The number of milliseconds between instances of this
            table in the output transport stream.

          - **DvbTeletextPid** *(string) --* Packet Identifier (PID) for input source DVB Teletext
          data to this output. Can be entered as a decimal or hexadecimal value. Valid values are 32
          (or 0x20)..8182 (or 0x1ff6).

          - **Ebif** *(string) --* If set to passthrough, passes any EBIF data from the input source
          to this output.

          - **EbpAudioInterval** *(string) --* When videoAndFixedIntervals is selected, audio EBP
          markers will be added to partitions 3 and 4. The interval between these additional markers
          will be fixed, and will be slightly shorter than the video EBP marker interval. Only
          available when EBP Cablelabs segmentation markers are selected. Partitions 1 and 2 will
          always follow the video interval.

          - **EbpLookaheadMs** *(integer) --* When set, enforces that Encoder Boundary Points do not
          come within the specified time interval of each other by looking ahead at input video. If
          another EBP is going to come in within the specified time interval, the current EBP is not
          emitted, and the segment is "stretched" to the next marker. The lookahead value does not
          add latency to the system. The Live Event must be configured elsewhere to create
          sufficient latency to make the lookahead accurate.

          - **EbpPlacement** *(string) --* Controls placement of EBP on Audio PIDs. If set to
          videoAndAudioPids, EBP markers will be placed on the video PID and all audio PIDs. If set
          to videoPid, EBP markers will be placed on only the video PID.

          - **EcmPid** *(string) --* This field is unused and deprecated.

          - **EsRateInPes** *(string) --* Include or exclude the ES Rate field in the PES header.

          - **EtvPlatformPid** *(string) --* Packet Identifier (PID) for input source ETV Platform
          data to this output. Can be entered as a decimal or hexadecimal value. Valid values are 32
          (or 0x20)..8182 (or 0x1ff6).

          - **EtvSignalPid** *(string) --* Packet Identifier (PID) for input source ETV Signal data
          to this output. Can be entered as a decimal or hexadecimal value. Valid values are 32 (or
          0x20)..8182 (or 0x1ff6).

          - **FragmentTime** *(float) --* The length in seconds of each fragment. Only used with EBP
          markers.

          - **Klv** *(string) --* If set to passthrough, passes any KLV data from the input source
          to this output.

          - **KlvDataPids** *(string) --* Packet Identifier (PID) for input source KLV data to this
          output. Multiple values are accepted, and can be entered in ranges and/or by comma
          separation. Can be entered as decimal or hexadecimal values. Each PID specified must be in
          the range of 32 (or 0x20)..8182 (or 0x1ff6).

          - **NielsenId3Behavior** *(string) --* If set to passthrough, Nielsen inaudible tones for
          media tracking will be detected in the input audio and an equivalent ID3 tag will be
          inserted in the output.

          - **NullPacketBitrate** *(float) --* Value in bits per second of extra null packets to
          insert into the transport stream. This can be used if a downstream encryption system
          requires periodic null packets.

          - **PatInterval** *(integer) --* The number of milliseconds between instances of this
          table in the output transport stream. Valid values are 0, 10..1000.

          - **PcrControl** *(string) --* When set to pcrEveryPesPacket, a Program Clock Reference
          value is inserted for every Packetized Elementary Stream (PES) header. This parameter is
          effective only when the PCR PID is the same as the video or audio elementary stream.

          - **PcrPeriod** *(integer) --* Maximum time in milliseconds between Program Clock
          Reference (PCRs) inserted into the transport stream.

          - **PcrPid** *(string) --* Packet Identifier (PID) of the Program Clock Reference (PCR) in
          the transport stream. When no value is given, the encoder will assign the same value as
          the Video PID. Can be entered as a decimal or hexadecimal value. Valid values are 32 (or
          0x20)..8182 (or 0x1ff6).

          - **PmtInterval** *(integer) --* The number of milliseconds between instances of this
          table in the output transport stream. Valid values are 0, 10..1000.

          - **PmtPid** *(string) --* Packet Identifier (PID) for the Program Map Table (PMT) in the
          transport stream. Can be entered as a decimal or hexadecimal value. Valid values are 32
          (or 0x20)..8182 (or 0x1ff6).

          - **ProgramNum** *(integer) --* The value of the program number field in the Program Map
          Table.

          - **RateMode** *(string) --* When vbr, does not insert null packets into transport stream
          to fill specified bitrate. The bitrate setting acts as the maximum bitrate when vbr is
          set.

          - **Scte27Pids** *(string) --* Packet Identifier (PID) for input source SCTE-27 data to
          this output. Multiple values are accepted, and can be entered in ranges and/or by comma
          separation. Can be entered as decimal or hexadecimal values. Each PID specified must be in
          the range of 32 (or 0x20)..8182 (or 0x1ff6).

          - **Scte35Control** *(string) --* Optionally pass SCTE-35 signals from the input source to
          this output.

          - **Scte35Pid** *(string) --* Packet Identifier (PID) of the SCTE-35 stream in the
          transport stream. Can be entered as a decimal or hexadecimal value. Valid values are 32
          (or 0x20)..8182 (or 0x1ff6).

          - **SegmentationMarkers** *(string) --* Inserts segmentation markers at each
          segmentationTime period. raiSegstart sets the Random Access Indicator bit in the
          adaptation field. raiAdapt sets the RAI bit and adds the current timecode in the private
          data bytes. psiSegstart inserts PAT and PMT tables at the start of segments. ebp adds
          Encoder Boundary Point information to the adaptation field as per OpenCable specification
          OC-SP-EBP-I01-130118. ebpLegacy adds Encoder Boundary Point information to the adaptation
          field using a legacy proprietary format.

          - **SegmentationStyle** *(string) --* The segmentation style parameter controls how
          segmentation markers are inserted into the transport stream. With avails, it is possible
          that segments may be truncated, which can influence where future segmentation markers are
          inserted. When a segmentation style of "resetCadence" is selected and a segment is
          truncated due to an avail, we will reset the segmentation cadence. This means the
          subsequent segment will have a duration of $segmentationTime seconds. When a segmentation
          style of "maintainCadence" is selected and a segment is truncated due to an avail, we will
          not reset the segmentation cadence. This means the subsequent segment will likely be
          truncated as well. However, all segments after that will have a duration of
          $segmentationTime seconds. Note that EBP lookahead is a slight exception to this rule.

          - **SegmentationTime** *(float) --* The length in seconds of each segment. Required unless
          markers is set to None_.

          - **TimedMetadataBehavior** *(string) --* When set to passthrough, timed metadata will be
          passed through from input to output.

          - **TimedMetadataPid** *(string) --* Packet Identifier (PID) of the timed metadata stream
          in the transport stream. Can be entered as a decimal or hexadecimal value. Valid values
          are 32 (or 0x20)..8182 (or 0x1ff6).

          - **TransportStreamId** *(integer) --* The value of the transport stream ID field in the
          Program Map Table.

          - **VideoPid** *(string) --* Packet Identifier (PID) of the elementary video stream in the
          transport stream. Can be entered as a decimal or hexadecimal value. Valid values are 32
          (or 0x20)..8182 (or 0x1ff6).

      - **Destination** *(dict) --* Destination address and port number for RTP or UDP packets. Can
      be unicast or multicast RTP or UDP (eg. rtp://239.10.10.10:5001 or udp://10.100.100.100:5002).

        - **DestinationRefId** *(string) --* Placeholder documentation for __string

      - **FecOutputSettings** *(dict) --* Settings for enabling and adjusting Forward Error
      Correction on UDP outputs.

        - **ColumnDepth** *(integer) --* Parameter D from SMPTE 2022-1. The height of the FEC
        protection matrix. The number of transport stream packets per column error correction
        packet. Must be between 4 and 20, inclusive.

        - **IncludeFec** *(string) --* Enables column only or column and row based FEC

        - **RowLength** *(integer) --* Parameter L from SMPTE 2022-1. The width of the FEC
        protection matrix. Must be between 1 and 20, inclusive. If only Column FEC is used, then
        larger values increase robustness. If Row FEC is used, then this is the number of transport
        stream packets per row error correction packet, and the value must be between 4 and 20,
        inclusive, if includeFec is columnAndRow. If includeFec is column, this value must be 1 to
        20, inclusive.
    """


_ClientUpdateChannelClassResponseChannelEncoderSettingsOutputGroupsOutputsTypeDef = TypedDict(
    "_ClientUpdateChannelClassResponseChannelEncoderSettingsOutputGroupsOutputsTypeDef",
    {
        "AudioDescriptionNames": List[str],
        "CaptionDescriptionNames": List[str],
        "OutputName": str,
        "OutputSettings": ClientUpdateChannelClassResponseChannelEncoderSettingsOutputGroupsOutputsOutputSettingsTypeDef,
        "VideoDescriptionName": str,
    },
    total=False,
)


class ClientUpdateChannelClassResponseChannelEncoderSettingsOutputGroupsOutputsTypeDef(
    _ClientUpdateChannelClassResponseChannelEncoderSettingsOutputGroupsOutputsTypeDef
):
    """
    Type definition for `ClientUpdateChannelClassResponseChannelEncoderSettingsOutputGroups`
    `Outputs`

    - **AudioDescriptionNames** *(list) --* The names of the AudioDescriptions used as audio sources
    for this output.

      - *(string) --* Placeholder documentation for __string

    - **CaptionDescriptionNames** *(list) --* The names of the CaptionDescriptions used as caption
    sources for this output.

      - *(string) --* Placeholder documentation for __string

    - **OutputName** *(string) --* The name used to identify an output.

    - **OutputSettings** *(dict) --* Output type-specific settings.

      - **ArchiveOutputSettings** *(dict) --* Archive Output Settings

        - **ContainerSettings** *(dict) --* Settings specific to the container type of the file.

          - **M2tsSettings** *(dict) --* M2ts Settings

            - **AbsentInputAudioBehavior** *(string) --* When set to drop, output audio streams will
            be removed from the program if the selected input audio stream is removed from the
            input. This allows the output audio configuration to dynamically change based on input
            configuration. If this is set to encodeSilence, all output audio streams will output
            encoded silence when not connected to an active input stream.

            - **Arib** *(string) --* When set to enabled, uses ARIB-compliant field muxing and
            removes video descriptor.

            - **AribCaptionsPid** *(string) --* Packet Identifier (PID) for ARIB Captions in the
            transport stream. Can be entered as a decimal or hexadecimal value. Valid values are 32
            (or 0x20)..8182 (or 0x1ff6).

            - **AribCaptionsPidControl** *(string) --* If set to auto, pid number used for ARIB
            Captions will be auto-selected from unused pids. If set to useConfigured, ARIB Captions
            will be on the configured pid number.

            - **AudioBufferModel** *(string) --* When set to dvb, uses DVB buffer model for Dolby
            Digital audio. When set to atsc, the ATSC model is used.

            - **AudioFramesPerPes** *(integer) --* The number of audio frames to insert for each PES
            packet.

            - **AudioPids** *(string) --* Packet Identifier (PID) of the elementary audio stream(s)
            in the transport stream. Multiple values are accepted, and can be entered in ranges
            and/or by comma separation. Can be entered as decimal or hexadecimal values. Each PID
            specified must be in the range of 32 (or 0x20)..8182 (or 0x1ff6).

            - **AudioStreamType** *(string) --* When set to atsc, uses stream type =
                 0x81 for AC3
            and stream type = 0x87 for EAC3. When set to dvb, uses stream type = 0x06.

            - **Bitrate** *(integer) --* The output bitrate of the transport stream in bits per
            second. Setting to 0 lets the muxer automatically determine the appropriate bitrate.

            - **BufferModel** *(string) --* If set to multiplex, use multiplex buffer model for
            accurate interleaving. Setting to bufferModel to none can lead to lower latency, but
            low-memory devices may not be able to play back the stream without interruptions.

            - **CcDescriptor** *(string) --* When set to enabled, generates captionServiceDescriptor
            in PMT.

            - **DvbNitSettings** *(dict) --* Inserts DVB Network Information Table (NIT) at the
            specified table repetition interval.

              - **NetworkId** *(integer) --* The numeric value placed in the Network Information
              Table (NIT).

              - **NetworkName** *(string) --* The network name text placed in the
              networkNameDescriptor inside the Network Information Table. Maximum length is 256
              characters.

              - **RepInterval** *(integer) --* The number of milliseconds between instances of this
              table in the output transport stream.

            - **DvbSdtSettings** *(dict) --* Inserts DVB Service Description Table (SDT) at the
            specified table repetition interval.

              - **OutputSdt** *(string) --* Selects method of inserting SDT information into output
              stream. The sdtFollow setting copies SDT information from input stream to output
              stream. The sdtFollowIfPresent setting copies SDT information from input stream to
              output stream if SDT information is present in the input, otherwise it will fall back
              on the user-defined values. The sdtManual setting means user will enter the SDT
              information. The sdtNone setting means output stream will not contain SDT information.

              - **RepInterval** *(integer) --* The number of milliseconds between instances of this
              table in the output transport stream.

              - **ServiceName** *(string) --* The service name placed in the serviceDescriptor in
              the Service Description Table. Maximum length is 256 characters.

              - **ServiceProviderName** *(string) --* The service provider name placed in the
              serviceDescriptor in the Service Description Table. Maximum length is 256 characters.

            - **DvbSubPids** *(string) --* Packet Identifier (PID) for input source DVB Subtitle
            data to this output. Multiple values are accepted, and can be entered in ranges and/or
            by comma separation. Can be entered as decimal or hexadecimal values. Each PID specified
            must be in the range of 32 (or 0x20)..8182 (or 0x1ff6).

            - **DvbTdtSettings** *(dict) --* Inserts DVB Time and Date Table (TDT) at the specified
            table repetition interval.

              - **RepInterval** *(integer) --* The number of milliseconds between instances of this
              table in the output transport stream.

            - **DvbTeletextPid** *(string) --* Packet Identifier (PID) for input source DVB Teletext
            data to this output. Can be entered as a decimal or hexadecimal value. Valid values are
            32 (or 0x20)..8182 (or 0x1ff6).

            - **Ebif** *(string) --* If set to passthrough, passes any EBIF data from the input
            source to this output.

            - **EbpAudioInterval** *(string) --* When videoAndFixedIntervals is selected, audio EBP
            markers will be added to partitions 3 and 4. The interval between these additional
            markers will be fixed, and will be slightly shorter than the video EBP marker interval.
            Only available when EBP Cablelabs segmentation markers are selected. Partitions 1 and 2
            will always follow the video interval.

            - **EbpLookaheadMs** *(integer) --* When set, enforces that Encoder Boundary Points do
            not come within the specified time interval of each other by looking ahead at input
            video. If another EBP is going to come in within the specified time interval, the
            current EBP is not emitted, and the segment is "stretched" to the next marker. The
            lookahead value does not add latency to the system. The Live Event must be configured
            elsewhere to create sufficient latency to make the lookahead accurate.

            - **EbpPlacement** *(string) --* Controls placement of EBP on Audio PIDs. If set to
            videoAndAudioPids, EBP markers will be placed on the video PID and all audio PIDs. If
            set to videoPid, EBP markers will be placed on only the video PID.

            - **EcmPid** *(string) --* This field is unused and deprecated.

            - **EsRateInPes** *(string) --* Include or exclude the ES Rate field in the PES header.

            - **EtvPlatformPid** *(string) --* Packet Identifier (PID) for input source ETV Platform
            data to this output. Can be entered as a decimal or hexadecimal value. Valid values are
            32 (or 0x20)..8182 (or 0x1ff6).

            - **EtvSignalPid** *(string) --* Packet Identifier (PID) for input source ETV Signal
            data to this output. Can be entered as a decimal or hexadecimal value. Valid values are
            32 (or 0x20)..8182 (or 0x1ff6).

            - **FragmentTime** *(float) --* The length in seconds of each fragment. Only used with
            EBP markers.

            - **Klv** *(string) --* If set to passthrough, passes any KLV data from the input source
            to this output.

            - **KlvDataPids** *(string) --* Packet Identifier (PID) for input source KLV data to
            this output. Multiple values are accepted, and can be entered in ranges and/or by comma
            separation. Can be entered as decimal or hexadecimal values. Each PID specified must be
            in the range of 32 (or 0x20)..8182 (or 0x1ff6).

            - **NielsenId3Behavior** *(string) --* If set to passthrough, Nielsen inaudible tones
            for media tracking will be detected in the input audio and an equivalent ID3 tag will be
            inserted in the output.

            - **NullPacketBitrate** *(float) --* Value in bits per second of extra null packets to
            insert into the transport stream. This can be used if a downstream encryption system
            requires periodic null packets.

            - **PatInterval** *(integer) --* The number of milliseconds between instances of this
            table in the output transport stream. Valid values are 0, 10..1000.

            - **PcrControl** *(string) --* When set to pcrEveryPesPacket, a Program Clock Reference
            value is inserted for every Packetized Elementary Stream (PES) header. This parameter is
            effective only when the PCR PID is the same as the video or audio elementary stream.

            - **PcrPeriod** *(integer) --* Maximum time in milliseconds between Program Clock
            Reference (PCRs) inserted into the transport stream.

            - **PcrPid** *(string) --* Packet Identifier (PID) of the Program Clock Reference (PCR)
            in the transport stream. When no value is given, the encoder will assign the same value
            as the Video PID. Can be entered as a decimal or hexadecimal value. Valid values are 32
            (or 0x20)..8182 (or 0x1ff6).

            - **PmtInterval** *(integer) --* The number of milliseconds between instances of this
            table in the output transport stream. Valid values are 0, 10..1000.

            - **PmtPid** *(string) --* Packet Identifier (PID) for the Program Map Table (PMT) in
            the transport stream. Can be entered as a decimal or hexadecimal value. Valid values are
            32 (or 0x20)..8182 (or 0x1ff6).

            - **ProgramNum** *(integer) --* The value of the program number field in the Program Map
            Table.

            - **RateMode** *(string) --* When vbr, does not insert null packets into transport
            stream to fill specified bitrate. The bitrate setting acts as the maximum bitrate when
            vbr is set.

            - **Scte27Pids** *(string) --* Packet Identifier (PID) for input source SCTE-27 data to
            this output. Multiple values are accepted, and can be entered in ranges and/or by comma
            separation. Can be entered as decimal or hexadecimal values. Each PID specified must be
            in the range of 32 (or 0x20)..8182 (or 0x1ff6).

            - **Scte35Control** *(string) --* Optionally pass SCTE-35 signals from the input source
            to this output.

            - **Scte35Pid** *(string) --* Packet Identifier (PID) of the SCTE-35 stream in the
            transport stream. Can be entered as a decimal or hexadecimal value. Valid values are 32
            (or 0x20)..8182 (or 0x1ff6).

            - **SegmentationMarkers** *(string) --* Inserts segmentation markers at each
            segmentationTime period. raiSegstart sets the Random Access Indicator bit in the
            adaptation field. raiAdapt sets the RAI bit and adds the current timecode in the private
            data bytes. psiSegstart inserts PAT and PMT tables at the start of segments. ebp adds
            Encoder Boundary Point information to the adaptation field as per OpenCable
            specification OC-SP-EBP-I01-130118. ebpLegacy adds Encoder Boundary Point information to
            the adaptation field using a legacy proprietary format.

            - **SegmentationStyle** *(string) --* The segmentation style parameter controls how
            segmentation markers are inserted into the transport stream. With avails, it is possible
            that segments may be truncated, which can influence where future segmentation markers
            are inserted. When a segmentation style of "resetCadence" is selected and a segment is
            truncated due to an avail, we will reset the segmentation cadence. This means the
            subsequent segment will have a duration of $segmentationTime seconds. When a
            segmentation style of "maintainCadence" is selected and a segment is truncated due to an
            avail, we will not reset the segmentation cadence. This means the subsequent segment
            will likely be truncated as well. However, all segments after that will have a duration
            of $segmentationTime seconds. Note that EBP lookahead is a slight exception to this
            rule.

            - **SegmentationTime** *(float) --* The length in seconds of each segment. Required
            unless markers is set to None_.

            - **TimedMetadataBehavior** *(string) --* When set to passthrough, timed metadata will
            be passed through from input to output.

            - **TimedMetadataPid** *(string) --* Packet Identifier (PID) of the timed metadata
            stream in the transport stream. Can be entered as a decimal or hexadecimal value. Valid
            values are 32 (or 0x20)..8182 (or 0x1ff6).

            - **TransportStreamId** *(integer) --* The value of the transport stream ID field in the
            Program Map Table.

            - **VideoPid** *(string) --* Packet Identifier (PID) of the elementary video stream in
            the transport stream. Can be entered as a decimal or hexadecimal value. Valid values are
            32 (or 0x20)..8182 (or 0x1ff6).

        - **Extension** *(string) --* Output file extension. If excluded, this will be auto-selected
        from the container type.

        - **NameModifier** *(string) --* String concatenated to the end of the destination filename.
        Required for multiple outputs of the same type.

      - **FrameCaptureOutputSettings** *(dict) --* Frame Capture Output Settings

        - **NameModifier** *(string) --* Required if the output group contains more than one output.
        This modifier forms part of the output file name.

      - **HlsOutputSettings** *(dict) --* Hls Output Settings

        - **HlsSettings** *(dict) --* Settings regarding the underlying stream. These settings are
        different for audio-only outputs.

          - **AudioOnlyHlsSettings** *(dict) --* Audio Only Hls Settings

            - **AudioGroupId** *(string) --* Specifies the group to which the audio Rendition
            belongs.

            - **AudioOnlyImage** *(dict) --* Optional. Specifies the .jpg or .png image to use as
            the cover art for an audio-only output. We recommend a low bit-size file because the
            image increases the output audio bandwidth. The image is attached to the audio as an ID3
            tag, frame type APIC, picture type 0x10, as per the "ID3 tag version 2.4.0 - Native
            Frames" standard.

              - **PasswordParam** *(string) --* key used to extract the password from EC2 Parameter
              store

              - **Uri** *(string) --* Uniform Resource Identifier - This should be a path to a file
              accessible to the Live system (eg. a http:// URI) depending on the output type. For
              example, a RTMP destination should have a uri simliar to: "rtmp://fmsserver/live".

              - **Username** *(string) --* Documentation update needed

            - **AudioTrackType** *(string) --* Four types of audio-only tracks are supported:
            Audio-Only Variant Stream The client can play back this audio-only stream instead of
            video in low-bandwidth scenarios. Represented as an EXT-X-STREAM-INF in the HLS
            manifest. Alternate Audio, Auto Select, Default Alternate rendition that the client
            should try to play back by default. Represented as an EXT-X-MEDIA in the HLS manifest
            with DEFAULT=YES, AUTOSELECT=
                YES Alternate Audio, Auto Select, Not Default Alternate
            rendition that the client may try to play back by default. Represented as an EXT-X-MEDIA
            in the HLS manifest with DEFAULT=NO, AUTOSELECT=
                YES Alternate Audio, not Auto Select
            Alternate rendition that the client will not try to play back by default. Represented as
            an EXT-X-MEDIA in the HLS manifest with DEFAULT=NO, AUTOSELECT=NO

          - **StandardHlsSettings** *(dict) --* Standard Hls Settings

            - **AudioRenditionSets** *(string) --* List all the audio groups that are used with the
            video output stream. Input all the audio GROUP-IDs that are associated to the video,
            separate by ','.

            - **M3u8Settings** *(dict) --* Settings information for the .m3u8 container

              - **AudioFramesPerPes** *(integer) --* The number of audio frames to insert for each
              PES packet.

              - **AudioPids** *(string) --* Packet Identifier (PID) of the elementary audio
              stream(s) in the transport stream. Multiple values are accepted, and can be entered in
              ranges and/or by comma separation. Can be entered as decimal or hexadecimal values.

              - **EcmPid** *(string) --* This parameter is unused and deprecated.

              - **NielsenId3Behavior** *(string) --* If set to passthrough, Nielsen inaudible tones
              for media tracking will be detected in the input audio and an equivalent ID3 tag will
              be inserted in the output.

              - **PatInterval** *(integer) --* The number of milliseconds between instances of this
              table in the output transport stream. A value of \\"0\\" writes out the PMT once per
              segment file.

              - **PcrControl** *(string) --* When set to pcrEveryPesPacket, a Program Clock
              Reference value is inserted for every Packetized Elementary Stream (PES) header. This
              parameter is effective only when the PCR PID is the same as the video or audio
              elementary stream.

              - **PcrPeriod** *(integer) --* Maximum time in milliseconds between Program Clock
              References (PCRs) inserted into the transport stream.

              - **PcrPid** *(string) --* Packet Identifier (PID) of the Program Clock Reference
              (PCR) in the transport stream. When no value is given, the encoder will assign the
              same value as the Video PID. Can be entered as a decimal or hexadecimal value.

              - **PmtInterval** *(integer) --* The number of milliseconds between instances of this
              table in the output transport stream. A value of \\"0\\" writes out the PMT once per
              segment file.

              - **PmtPid** *(string) --* Packet Identifier (PID) for the Program Map Table (PMT) in
              the transport stream. Can be entered as a decimal or hexadecimal value.

              - **ProgramNum** *(integer) --* The value of the program number field in the Program
              Map Table.

              - **Scte35Behavior** *(string) --* If set to passthrough, passes any SCTE-35 signals
              from the input source to this output.

              - **Scte35Pid** *(string) --* Packet Identifier (PID) of the SCTE-35 stream in the
              transport stream. Can be entered as a decimal or hexadecimal value.

              - **TimedMetadataBehavior** *(string) --* When set to passthrough, timed metadata is
              passed through from input to output.

              - **TimedMetadataPid** *(string) --* Packet Identifier (PID) of the timed metadata
              stream in the transport stream. Can be entered as a decimal or hexadecimal value.
              Valid values are 32 (or 0x20)..8182 (or 0x1ff6).

              - **TransportStreamId** *(integer) --* The value of the transport stream ID field in
              the Program Map Table.

              - **VideoPid** *(string) --* Packet Identifier (PID) of the elementary video stream in
              the transport stream. Can be entered as a decimal or hexadecimal value.

        - **NameModifier** *(string) --* String concatenated to the end of the destination filename.
        Accepts \\"Format Identifiers\\":#formatIdentifierParameters.

        - **SegmentModifier** *(string) --* String concatenated to end of segment filenames.

      - **MediaPackageOutputSettings** *(dict) --* Media Package Output Settings

      - **MsSmoothOutputSettings** *(dict) --* Ms Smooth Output Settings

        - **H265PackagingType** *(string) --* Only applicable when this output is referencing an
        H.265 video description. Specifies whether MP4 segments should be packaged as HEV1 or HVC1.

        - **NameModifier** *(string) --* String concatenated to the end of the destination filename.
        Required for multiple outputs of the same type.

      - **MultiplexOutputSettings** *(dict) --* Multiplex Output Settings

        - **Destination** *(dict) --* Destination is a Multiplex.

          - **DestinationRefId** *(string) --* Placeholder documentation for __string

      - **RtmpOutputSettings** *(dict) --* Rtmp Output Settings

        - **CertificateMode** *(string) --* If set to verifyAuthenticity, verify the tls certificate
        chain to a trusted Certificate Authority (CA). This will cause rtmps outputs with
        self-signed certificates to fail.

        - **ConnectionRetryInterval** *(integer) --* Number of seconds to wait before retrying a
        connection to the Flash Media server if the connection is lost.

        - **Destination** *(dict) --* The RTMP endpoint excluding the stream name (eg.
        rtmp://host/appname). For connection to Akamai, a username and password must be supplied.
        URI fields accept format identifiers.

          - **DestinationRefId** *(string) --* Placeholder documentation for __string

        - **NumRetries** *(integer) --* Number of retry attempts.

      - **UdpOutputSettings** *(dict) --* Udp Output Settings

        - **BufferMsec** *(integer) --* UDP output buffering in milliseconds. Larger values increase
        latency through the transcoder but simultaneously assist the transcoder in maintaining a
        constant, low-jitter UDP/RTP output while accommodating clock recovery, input switching,
        input disruptions, picture reordering, etc.

        - **ContainerSettings** *(dict) --* Udp Container Settings

          - **M2tsSettings** *(dict) --* M2ts Settings

            - **AbsentInputAudioBehavior** *(string) --* When set to drop, output audio streams will
            be removed from the program if the selected input audio stream is removed from the
            input. This allows the output audio configuration to dynamically change based on input
            configuration. If this is set to encodeSilence, all output audio streams will output
            encoded silence when not connected to an active input stream.

            - **Arib** *(string) --* When set to enabled, uses ARIB-compliant field muxing and
            removes video descriptor.

            - **AribCaptionsPid** *(string) --* Packet Identifier (PID) for ARIB Captions in the
            transport stream. Can be entered as a decimal or hexadecimal value. Valid values are 32
            (or 0x20)..8182 (or 0x1ff6).

            - **AribCaptionsPidControl** *(string) --* If set to auto, pid number used for ARIB
            Captions will be auto-selected from unused pids. If set to useConfigured, ARIB Captions
            will be on the configured pid number.

            - **AudioBufferModel** *(string) --* When set to dvb, uses DVB buffer model for Dolby
            Digital audio. When set to atsc, the ATSC model is used.

            - **AudioFramesPerPes** *(integer) --* The number of audio frames to insert for each PES
            packet.

            - **AudioPids** *(string) --* Packet Identifier (PID) of the elementary audio stream(s)
            in the transport stream. Multiple values are accepted, and can be entered in ranges
            and/or by comma separation. Can be entered as decimal or hexadecimal values. Each PID
            specified must be in the range of 32 (or 0x20)..8182 (or 0x1ff6).

            - **AudioStreamType** *(string) --* When set to atsc, uses stream type =
                 0x81 for AC3
            and stream type = 0x87 for EAC3. When set to dvb, uses stream type = 0x06.

            - **Bitrate** *(integer) --* The output bitrate of the transport stream in bits per
            second. Setting to 0 lets the muxer automatically determine the appropriate bitrate.

            - **BufferModel** *(string) --* If set to multiplex, use multiplex buffer model for
            accurate interleaving. Setting to bufferModel to none can lead to lower latency, but
            low-memory devices may not be able to play back the stream without interruptions.

            - **CcDescriptor** *(string) --* When set to enabled, generates captionServiceDescriptor
            in PMT.

            - **DvbNitSettings** *(dict) --* Inserts DVB Network Information Table (NIT) at the
            specified table repetition interval.

              - **NetworkId** *(integer) --* The numeric value placed in the Network Information
              Table (NIT).

              - **NetworkName** *(string) --* The network name text placed in the
              networkNameDescriptor inside the Network Information Table. Maximum length is 256
              characters.

              - **RepInterval** *(integer) --* The number of milliseconds between instances of this
              table in the output transport stream.

            - **DvbSdtSettings** *(dict) --* Inserts DVB Service Description Table (SDT) at the
            specified table repetition interval.

              - **OutputSdt** *(string) --* Selects method of inserting SDT information into output
              stream. The sdtFollow setting copies SDT information from input stream to output
              stream. The sdtFollowIfPresent setting copies SDT information from input stream to
              output stream if SDT information is present in the input, otherwise it will fall back
              on the user-defined values. The sdtManual setting means user will enter the SDT
              information. The sdtNone setting means output stream will not contain SDT information.

              - **RepInterval** *(integer) --* The number of milliseconds between instances of this
              table in the output transport stream.

              - **ServiceName** *(string) --* The service name placed in the serviceDescriptor in
              the Service Description Table. Maximum length is 256 characters.

              - **ServiceProviderName** *(string) --* The service provider name placed in the
              serviceDescriptor in the Service Description Table. Maximum length is 256 characters.

            - **DvbSubPids** *(string) --* Packet Identifier (PID) for input source DVB Subtitle
            data to this output. Multiple values are accepted, and can be entered in ranges and/or
            by comma separation. Can be entered as decimal or hexadecimal values. Each PID specified
            must be in the range of 32 (or 0x20)..8182 (or 0x1ff6).

            - **DvbTdtSettings** *(dict) --* Inserts DVB Time and Date Table (TDT) at the specified
            table repetition interval.

              - **RepInterval** *(integer) --* The number of milliseconds between instances of this
              table in the output transport stream.

            - **DvbTeletextPid** *(string) --* Packet Identifier (PID) for input source DVB Teletext
            data to this output. Can be entered as a decimal or hexadecimal value. Valid values are
            32 (or 0x20)..8182 (or 0x1ff6).

            - **Ebif** *(string) --* If set to passthrough, passes any EBIF data from the input
            source to this output.

            - **EbpAudioInterval** *(string) --* When videoAndFixedIntervals is selected, audio EBP
            markers will be added to partitions 3 and 4. The interval between these additional
            markers will be fixed, and will be slightly shorter than the video EBP marker interval.
            Only available when EBP Cablelabs segmentation markers are selected. Partitions 1 and 2
            will always follow the video interval.

            - **EbpLookaheadMs** *(integer) --* When set, enforces that Encoder Boundary Points do
            not come within the specified time interval of each other by looking ahead at input
            video. If another EBP is going to come in within the specified time interval, the
            current EBP is not emitted, and the segment is "stretched" to the next marker. The
            lookahead value does not add latency to the system. The Live Event must be configured
            elsewhere to create sufficient latency to make the lookahead accurate.

            - **EbpPlacement** *(string) --* Controls placement of EBP on Audio PIDs. If set to
            videoAndAudioPids, EBP markers will be placed on the video PID and all audio PIDs. If
            set to videoPid, EBP markers will be placed on only the video PID.

            - **EcmPid** *(string) --* This field is unused and deprecated.

            - **EsRateInPes** *(string) --* Include or exclude the ES Rate field in the PES header.

            - **EtvPlatformPid** *(string) --* Packet Identifier (PID) for input source ETV Platform
            data to this output. Can be entered as a decimal or hexadecimal value. Valid values are
            32 (or 0x20)..8182 (or 0x1ff6).

            - **EtvSignalPid** *(string) --* Packet Identifier (PID) for input source ETV Signal
            data to this output. Can be entered as a decimal or hexadecimal value. Valid values are
            32 (or 0x20)..8182 (or 0x1ff6).

            - **FragmentTime** *(float) --* The length in seconds of each fragment. Only used with
            EBP markers.

            - **Klv** *(string) --* If set to passthrough, passes any KLV data from the input source
            to this output.

            - **KlvDataPids** *(string) --* Packet Identifier (PID) for input source KLV data to
            this output. Multiple values are accepted, and can be entered in ranges and/or by comma
            separation. Can be entered as decimal or hexadecimal values. Each PID specified must be
            in the range of 32 (or 0x20)..8182 (or 0x1ff6).

            - **NielsenId3Behavior** *(string) --* If set to passthrough, Nielsen inaudible tones
            for media tracking will be detected in the input audio and an equivalent ID3 tag will be
            inserted in the output.

            - **NullPacketBitrate** *(float) --* Value in bits per second of extra null packets to
            insert into the transport stream. This can be used if a downstream encryption system
            requires periodic null packets.

            - **PatInterval** *(integer) --* The number of milliseconds between instances of this
            table in the output transport stream. Valid values are 0, 10..1000.

            - **PcrControl** *(string) --* When set to pcrEveryPesPacket, a Program Clock Reference
            value is inserted for every Packetized Elementary Stream (PES) header. This parameter is
            effective only when the PCR PID is the same as the video or audio elementary stream.

            - **PcrPeriod** *(integer) --* Maximum time in milliseconds between Program Clock
            Reference (PCRs) inserted into the transport stream.

            - **PcrPid** *(string) --* Packet Identifier (PID) of the Program Clock Reference (PCR)
            in the transport stream. When no value is given, the encoder will assign the same value
            as the Video PID. Can be entered as a decimal or hexadecimal value. Valid values are 32
            (or 0x20)..8182 (or 0x1ff6).

            - **PmtInterval** *(integer) --* The number of milliseconds between instances of this
            table in the output transport stream. Valid values are 0, 10..1000.

            - **PmtPid** *(string) --* Packet Identifier (PID) for the Program Map Table (PMT) in
            the transport stream. Can be entered as a decimal or hexadecimal value. Valid values are
            32 (or 0x20)..8182 (or 0x1ff6).

            - **ProgramNum** *(integer) --* The value of the program number field in the Program Map
            Table.

            - **RateMode** *(string) --* When vbr, does not insert null packets into transport
            stream to fill specified bitrate. The bitrate setting acts as the maximum bitrate when
            vbr is set.

            - **Scte27Pids** *(string) --* Packet Identifier (PID) for input source SCTE-27 data to
            this output. Multiple values are accepted, and can be entered in ranges and/or by comma
            separation. Can be entered as decimal or hexadecimal values. Each PID specified must be
            in the range of 32 (or 0x20)..8182 (or 0x1ff6).

            - **Scte35Control** *(string) --* Optionally pass SCTE-35 signals from the input source
            to this output.

            - **Scte35Pid** *(string) --* Packet Identifier (PID) of the SCTE-35 stream in the
            transport stream. Can be entered as a decimal or hexadecimal value. Valid values are 32
            (or 0x20)..8182 (or 0x1ff6).

            - **SegmentationMarkers** *(string) --* Inserts segmentation markers at each
            segmentationTime period. raiSegstart sets the Random Access Indicator bit in the
            adaptation field. raiAdapt sets the RAI bit and adds the current timecode in the private
            data bytes. psiSegstart inserts PAT and PMT tables at the start of segments. ebp adds
            Encoder Boundary Point information to the adaptation field as per OpenCable
            specification OC-SP-EBP-I01-130118. ebpLegacy adds Encoder Boundary Point information to
            the adaptation field using a legacy proprietary format.

            - **SegmentationStyle** *(string) --* The segmentation style parameter controls how
            segmentation markers are inserted into the transport stream. With avails, it is possible
            that segments may be truncated, which can influence where future segmentation markers
            are inserted. When a segmentation style of "resetCadence" is selected and a segment is
            truncated due to an avail, we will reset the segmentation cadence. This means the
            subsequent segment will have a duration of $segmentationTime seconds. When a
            segmentation style of "maintainCadence" is selected and a segment is truncated due to an
            avail, we will not reset the segmentation cadence. This means the subsequent segment
            will likely be truncated as well. However, all segments after that will have a duration
            of $segmentationTime seconds. Note that EBP lookahead is a slight exception to this
            rule.

            - **SegmentationTime** *(float) --* The length in seconds of each segment. Required
            unless markers is set to None_.

            - **TimedMetadataBehavior** *(string) --* When set to passthrough, timed metadata will
            be passed through from input to output.

            - **TimedMetadataPid** *(string) --* Packet Identifier (PID) of the timed metadata
            stream in the transport stream. Can be entered as a decimal or hexadecimal value. Valid
            values are 32 (or 0x20)..8182 (or 0x1ff6).

            - **TransportStreamId** *(integer) --* The value of the transport stream ID field in the
            Program Map Table.

            - **VideoPid** *(string) --* Packet Identifier (PID) of the elementary video stream in
            the transport stream. Can be entered as a decimal or hexadecimal value. Valid values are
            32 (or 0x20)..8182 (or 0x1ff6).

        - **Destination** *(dict) --* Destination address and port number for RTP or UDP packets.
        Can be unicast or multicast RTP or UDP (eg. rtp://239.10.10.10:5001 or
        udp://10.100.100.100:5002).

          - **DestinationRefId** *(string) --* Placeholder documentation for __string

        - **FecOutputSettings** *(dict) --* Settings for enabling and adjusting Forward Error
        Correction on UDP outputs.

          - **ColumnDepth** *(integer) --* Parameter D from SMPTE 2022-1. The height of the FEC
          protection matrix. The number of transport stream packets per column error correction
          packet. Must be between 4 and 20, inclusive.

          - **IncludeFec** *(string) --* Enables column only or column and row based FEC

          - **RowLength** *(integer) --* Parameter L from SMPTE 2022-1. The width of the FEC
          protection matrix. Must be between 1 and 20, inclusive. If only Column FEC is used, then
          larger values increase robustness. If Row FEC is used, then this is the number of
          transport stream packets per row error correction packet, and the value must be between 4
          and 20, inclusive, if includeFec is columnAndRow. If includeFec is column, this value must
          be 1 to 20, inclusive.

    - **VideoDescriptionName** *(string) --* The name of the VideoDescription used as the source for
    this output.
    """


_ClientUpdateChannelClassResponseChannelEncoderSettingsOutputGroupsTypeDef = TypedDict(
    "_ClientUpdateChannelClassResponseChannelEncoderSettingsOutputGroupsTypeDef",
    {
        "Name": str,
        "OutputGroupSettings": ClientUpdateChannelClassResponseChannelEncoderSettingsOutputGroupsOutputGroupSettingsTypeDef,
        "Outputs": List[
            ClientUpdateChannelClassResponseChannelEncoderSettingsOutputGroupsOutputsTypeDef
        ],
    },
    total=False,
)


class ClientUpdateChannelClassResponseChannelEncoderSettingsOutputGroupsTypeDef(
    _ClientUpdateChannelClassResponseChannelEncoderSettingsOutputGroupsTypeDef
):
    """
    Type definition for `ClientUpdateChannelClassResponseChannelEncoderSettings` `OutputGroups`

    - **Name** *(string) --* Custom output group name optionally defined by the user. Only letters,
    numbers, and the underscore character allowed; only 32 characters allowed.

    - **OutputGroupSettings** *(dict) --* Settings associated with the output group.

      - **ArchiveGroupSettings** *(dict) --* Archive Group Settings

        - **Destination** *(dict) --* A directory and base filename where archive files should be
        written.

          - **DestinationRefId** *(string) --* Placeholder documentation for __string

        - **RolloverInterval** *(integer) --* Number of seconds to write to archive file before
        closing and starting a new one.

      - **FrameCaptureGroupSettings** *(dict) --* Frame Capture Group Settings

        - **Destination** *(dict) --* The destination for the frame capture files. Either the URI
        for an Amazon S3 bucket and object, plus a file name prefix (for example,
        s3ssl://sportsDelivery/highlights/20180820/curling_) or the URI for a MediaStore container,
        plus a file name prefix (for example, mediastoressl://sportsDelivery/20180820/curling_). The
        final file names consist of the prefix from the destination field (for example, "curling_")
        + name modifier + the counter (5 digits, starting from 00001) + extension (which is always
        .jpg). For example, curlingLow.00001.jpg

          - **DestinationRefId** *(string) --* Placeholder documentation for __string

      - **HlsGroupSettings** *(dict) --* Hls Group Settings

        - **AdMarkers** *(list) --* Choose one or more ad marker types to pass SCTE35 signals
        through to this group of Apple HLS outputs.

          - *(string) --* Hls Ad Markers

        - **BaseUrlContent** *(string) --* A partial URI prefix that will be prepended to each
        output in the media .m3u8 file. Can be used if base manifest is delivered from a different
        URL than the main .m3u8 file.

        - **BaseUrlManifest** *(string) --* A partial URI prefix that will be prepended to each
        output in the media .m3u8 file. Can be used if base manifest is delivered from a different
        URL than the main .m3u8 file.

        - **CaptionLanguageMappings** *(list) --* Mapping of up to 4 caption channels to caption
        languages. Is only meaningful if captionLanguageSetting is set to "insert".

          - *(dict) --* Maps a caption channel to an ISO 693-2 language code
          (http://www.loc.gov/standards/iso639-2), with an optional description.

            - **CaptionChannel** *(integer) --* The closed caption channel being described by this
            CaptionLanguageMapping. Each channel mapping must have a unique channel number (maximum
            of 4)

            - **LanguageCode** *(string) --* Three character ISO 639-2 language code (see
            http://www.loc.gov/standards/iso639-2)

            - **LanguageDescription** *(string) --* Textual description of language

        - **CaptionLanguageSetting** *(string) --* Applies only to 608 Embedded output captions.
        insert: Include CLOSED-CAPTIONS lines in the manifest. Specify at least one language in the
        CC1 Language Code field. One CLOSED-CAPTION line is added for each Language Code you
        specify. Make sure to specify the languages in the order in which they appear in the
        original source (if the source is embedded format) or the order of the caption selectors (if
        the source is other than embedded). Otherwise, languages in the manifest will not match up
        properly with the output captions. none: Include CLOSED-CAPTIONS=
            NONE line in the manifest.
        omit: Omit any CLOSED-CAPTIONS line from the manifest.

        - **ClientCache** *(string) --* When set to "disabled", sets the #EXT-X-ALLOW-CACHE:no tag
        in the manifest, which prevents clients from saving media segments for later replay.

        - **CodecSpecification** *(string) --* Specification to use (RFC-6381 or the default
        RFC-4281) during m3u8 playlist generation.

        - **ConstantIv** *(string) --* For use with encryptionType. This is a 128-bit, 16-byte hex
        value represented by a 32-character text string. If ivSource is set to "explicit" then this
        parameter is required and is used as the IV for encryption.

        - **Destination** *(dict) --* A directory or HTTP destination for the HLS segments, manifest
        files, and encryption keys (if enabled).

          - **DestinationRefId** *(string) --* Placeholder documentation for __string

        - **DirectoryStructure** *(string) --* Place segments in subdirectories.

        - **EncryptionType** *(string) --* Encrypts the segments with the given encryption scheme.
        Exclude this parameter if no encryption is desired.

        - **HlsCdnSettings** *(dict) --* Parameters that control interactions with the CDN.

          - **HlsAkamaiSettings** *(dict) --* Hls Akamai Settings

            - **ConnectionRetryInterval** *(integer) --* Number of seconds to wait before retrying
            connection to the CDN if the connection is lost.

            - **FilecacheDuration** *(integer) --* Size in seconds of file cache for streaming
            outputs.

            - **HttpTransferMode** *(string) --* Specify whether or not to use chunked transfer
            encoding to Akamai. User should contact Akamai to enable this feature.

            - **NumRetries** *(integer) --* Number of retry attempts that will be made before the
            Live Event is put into an error state.

            - **RestartDelay** *(integer) --* If a streaming output fails, number of seconds to wait
            until a restart is initiated. A value of 0 means never restart.

            - **Salt** *(string) --* Salt for authenticated Akamai.

            - **Token** *(string) --* Token parameter for authenticated akamai. If not specified,
            _gda_ is used.

          - **HlsBasicPutSettings** *(dict) --* Hls Basic Put Settings

            - **ConnectionRetryInterval** *(integer) --* Number of seconds to wait before retrying
            connection to the CDN if the connection is lost.

            - **FilecacheDuration** *(integer) --* Size in seconds of file cache for streaming
            outputs.

            - **NumRetries** *(integer) --* Number of retry attempts that will be made before the
            Live Event is put into an error state.

            - **RestartDelay** *(integer) --* If a streaming output fails, number of seconds to wait
            until a restart is initiated. A value of 0 means never restart.

          - **HlsMediaStoreSettings** *(dict) --* Hls Media Store Settings

            - **ConnectionRetryInterval** *(integer) --* Number of seconds to wait before retrying
            connection to the CDN if the connection is lost.

            - **FilecacheDuration** *(integer) --* Size in seconds of file cache for streaming
            outputs.

            - **MediaStoreStorageClass** *(string) --* When set to temporal, output files are stored
            in non-persistent memory for faster reading and writing.

            - **NumRetries** *(integer) --* Number of retry attempts that will be made before the
            Live Event is put into an error state.

            - **RestartDelay** *(integer) --* If a streaming output fails, number of seconds to wait
            until a restart is initiated. A value of 0 means never restart.

          - **HlsWebdavSettings** *(dict) --* Hls Webdav Settings

            - **ConnectionRetryInterval** *(integer) --* Number of seconds to wait before retrying
            connection to the CDN if the connection is lost.

            - **FilecacheDuration** *(integer) --* Size in seconds of file cache for streaming
            outputs.

            - **HttpTransferMode** *(string) --* Specify whether or not to use chunked transfer
            encoding to WebDAV.

            - **NumRetries** *(integer) --* Number of retry attempts that will be made before the
            Live Event is put into an error state.

            - **RestartDelay** *(integer) --* If a streaming output fails, number of seconds to wait
            until a restart is initiated. A value of 0 means never restart.

        - **IFrameOnlyPlaylists** *(string) --* DISABLED: Do not create an I-frame-only manifest,
        but do create the master and media manifests (according to the Output Selection field).
        STANDARD: Create an I-frame-only manifest for each output that contains video, as well as
        the other manifests (according to the Output Selection field). The I-frame manifest contains
        a #EXT-X-I-FRAMES-ONLY tag to indicate it is I-frame only, and one or more #EXT-X-BYTERANGE
        entries identifying the I-frame position. For example, #EXT-X-BYTERANGE:160364@1461888"

        - **IndexNSegments** *(integer) --* Applies only if Mode field is LIVE. Specifies the
        maximum number of segments in the media manifest file. After this maximum, older segments
        are removed from the media manifest. This number must be less than or equal to the Keep
        Segments field.

        - **InputLossAction** *(string) --* Parameter that control output group behavior on input
        loss.

        - **IvInManifest** *(string) --* For use with encryptionType. The IV (Initialization Vector)
        is a 128-bit number used in conjunction with the key for encrypting blocks. If set to
        "include", IV is listed in the manifest, otherwise the IV is not in the manifest.

        - **IvSource** *(string) --* For use with encryptionType. The IV (Initialization Vector) is
        a 128-bit number used in conjunction with the key for encrypting blocks. If this setting is
        "followsSegmentNumber", it will cause the IV to change every segment (to match the segment
        number). If this is set to "explicit", you must enter a constantIv value.

        - **KeepSegments** *(integer) --* Applies only if Mode field is LIVE. Specifies the number
        of media segments (.ts files) to retain in the destination directory.

        - **KeyFormat** *(string) --* The value specifies how the key is represented in the resource
        identified by the URI. If parameter is absent, an implicit value of "identity" is used. A
        reverse DNS string can also be given.

        - **KeyFormatVersions** *(string) --* Either a single positive integer version value or a
        slash delimited list of version values (1/2/3).

        - **KeyProviderSettings** *(dict) --* The key provider settings.

          - **StaticKeySettings** *(dict) --* Static Key Settings

            - **KeyProviderServer** *(dict) --* The URL of the license server used for protecting
            content.

              - **PasswordParam** *(string) --* key used to extract the password from EC2 Parameter
              store

              - **Uri** *(string) --* Uniform Resource Identifier - This should be a path to a file
              accessible to the Live system (eg. a http:// URI) depending on the output type. For
              example, a RTMP destination should have a uri simliar to: "rtmp://fmsserver/live".

              - **Username** *(string) --* Documentation update needed

            - **StaticKeyValue** *(string) --* Static key value as a 32 character hexadecimal
            string.

        - **ManifestCompression** *(string) --* When set to gzip, compresses HLS playlist.

        - **ManifestDurationFormat** *(string) --* Indicates whether the output manifest should use
        floating point or integer values for segment duration.

        - **MinSegmentLength** *(integer) --* When set, minimumSegmentLength is enforced by looking
        ahead and back within the specified range for a nearby avail and extending the segment size
        if needed.

        - **Mode** *(string) --* If "vod", all segments are indexed and kept permanently in the
        destination and manifest. If "live", only the number segments specified in keepSegments and
        indexNSegments are kept; newer segments replace older segments, which may prevent players
        from rewinding all the way to the beginning of the event. VOD mode uses HLS
        EXT-X-PLAYLIST-TYPE of EVENT while the channel is running, converting it to a "VOD" type
        manifest on completion of the stream.

        - **OutputSelection** *(string) --* MANIFESTSANDSEGMENTS: Generates manifests (master
        manifest, if applicable, and media manifests) for this output group. SEGMENTSONLY: Does not
        generate any manifests for this output group.

        - **ProgramDateTime** *(string) --* Includes or excludes EXT-X-PROGRAM-DATE-TIME tag in
        .m3u8 manifest files. The value is calculated as follows: either the program date and time
        are initialized using the input timecode source, or the time is initialized using the input
        timecode source and the date is initialized using the timestampOffset.

        - **ProgramDateTimePeriod** *(integer) --* Period of insertion of EXT-X-PROGRAM-DATE-TIME
        entry, in seconds.

        - **RedundantManifest** *(string) --* ENABLED: The master manifest (.m3u8 file) for each
        pipeline includes information about both pipelines: first its own media files, then the
        media files of the other pipeline. This feature allows playout device that support stale
        manifest detection to switch from one manifest to the other, when the current manifest seems
        to be stale. There are still two destinations and two master manifests, but both master
        manifests reference the media files from both pipelines. DISABLED: The master manifest
        (.m3u8 file) for each pipeline includes information about its own pipeline only. For an HLS
        output group with MediaPackage as the destination, the DISABLED behavior is always followed.
        MediaPackage regenerates the manifests it serves to players so a redundant manifest from
        MediaLive is irrelevant.

        - **SegmentLength** *(integer) --* Length of MPEG-2 Transport Stream segments to create (in
        seconds). Note that segments will end on the next keyframe after this number of seconds, so
        actual segment length may be longer.

        - **SegmentationMode** *(string) --* useInputSegmentation has been deprecated. The
        configured segment size is always used.

        - **SegmentsPerSubdirectory** *(integer) --* Number of segments to write to a subdirectory
        before starting a new one. directoryStructure must be subdirectoryPerStream for this setting
        to have an effect.

        - **StreamInfResolution** *(string) --* Include or exclude RESOLUTION attribute for video in
        EXT-X-STREAM-INF tag of variant manifest.

        - **TimedMetadataId3Frame** *(string) --* Indicates ID3 frame that has the timecode.

        - **TimedMetadataId3Period** *(integer) --* Timed Metadata interval in seconds.

        - **TimestampDeltaMilliseconds** *(integer) --* Provides an extra millisecond delta offset
        to fine tune the timestamps.

        - **TsFileMode** *(string) --* SEGMENTEDFILES: Emit the program as segments - multiple .ts
        media files. SINGLEFILE: Applies only if Mode field is VOD. Emit the program as a single .ts
        media file. The media manifest includes #EXT-X-BYTERANGE tags to index segments for
        playback. A typical use for this value is when sending the output to AWS Elemental
        MediaConvert, which can accept only a single media file. Playback while the channel is
        running is not guaranteed due to HTTP server caching.

      - **MediaPackageGroupSettings** *(dict) --* Media Package Group Settings

        - **Destination** *(dict) --* MediaPackage channel destination.

          - **DestinationRefId** *(string) --* Placeholder documentation for __string

      - **MsSmoothGroupSettings** *(dict) --* Ms Smooth Group Settings

        - **AcquisitionPointId** *(string) --* The value of the "Acquisition Point Identity" element
        used in each message placed in the sparse track. Only enabled if sparseTrackType is not
        "none".

        - **AudioOnlyTimecodeControl** *(string) --* If set to passthrough for an audio-only MS
        Smooth output, the fragment absolute time will be set to the current timecode. This option
        does not write timecodes to the audio elementary stream.

        - **CertificateMode** *(string) --* If set to verifyAuthenticity, verify the https
        certificate chain to a trusted Certificate Authority (CA). This will cause https outputs to
        self-signed certificates to fail.

        - **ConnectionRetryInterval** *(integer) --* Number of seconds to wait before retrying
        connection to the IIS server if the connection is lost. Content will be cached during this
        time and the cache will be be delivered to the IIS server once the connection is
        re-established.

        - **Destination** *(dict) --* Smooth Streaming publish point on an IIS server. Elemental
        Live acts as a "Push" encoder to IIS.

          - **DestinationRefId** *(string) --* Placeholder documentation for __string

        - **EventId** *(string) --* MS Smooth event ID to be sent to the IIS server. Should only be
        specified if eventIdMode is set to useConfigured.

        - **EventIdMode** *(string) --* Specifies whether or not to send an event ID to the IIS
        server. If no event ID is sent and the same Live Event is used without changing the
        publishing point, clients might see cached video from the previous run. Options: -
        "useConfigured" - use the value provided in eventId - "useTimestamp" - generate and send an
        event ID based on the current timestamp - "noEventId" - do not send an event ID to the IIS
        server.

        - **EventStopBehavior** *(string) --* When set to sendEos, send EOS signal to IIS server
        when stopping the event

        - **FilecacheDuration** *(integer) --* Size in seconds of file cache for streaming outputs.

        - **FragmentLength** *(integer) --* Length of mp4 fragments to generate (in seconds).
        Fragment length must be compatible with GOP size and framerate.

        - **InputLossAction** *(string) --* Parameter that control output group behavior on input
        loss.

        - **NumRetries** *(integer) --* Number of retry attempts.

        - **RestartDelay** *(integer) --* Number of seconds before initiating a restart due to
        output failure, due to exhausting the numRetries on one segment, or exceeding
        filecacheDuration.

        - **SegmentationMode** *(string) --* useInputSegmentation has been deprecated. The
        configured segment size is always used.

        - **SendDelayMs** *(integer) --* Number of milliseconds to delay the output from the second
        pipeline.

        - **SparseTrackType** *(string) --* If set to scte35, use incoming SCTE-35 messages to
        generate a sparse track in this group of MS-Smooth outputs.

        - **StreamManifestBehavior** *(string) --* When set to send, send stream manifest so
        publishing point doesn't start until all streams start.

        - **TimestampOffset** *(string) --* Timestamp offset for the event. Only used if
        timestampOffsetMode is set to useConfiguredOffset.

        - **TimestampOffsetMode** *(string) --* Type of timestamp date offset to use. -
        useEventStartDate: Use the date the event was started as the offset - useConfiguredOffset:
        Use an explicitly configured date as the offset

      - **MultiplexGroupSettings** *(dict) --* Multiplex Group Settings

      - **RtmpGroupSettings** *(dict) --* Rtmp Group Settings

        - **AuthenticationScheme** *(string) --* Authentication scheme to use when connecting with
        CDN

        - **CacheFullBehavior** *(string) --* Controls behavior when content cache fills up. If
        remote origin server stalls the RTMP connection and does not accept content fast enough the
        'Media Cache' will fill up. When the cache reaches the duration specified by cacheLength the
        cache will stop accepting new content. If set to disconnectImmediately, the RTMP output will
        force a disconnect. Clear the media cache, and reconnect after restartDelay seconds. If set
        to waitForServer, the RTMP output will wait up to 5 minutes to allow the origin server to
        begin accepting data again.

        - **CacheLength** *(integer) --* Cache length, in seconds, is used to calculate buffer size.

        - **CaptionData** *(string) --* Controls the types of data that passes to onCaptionInfo
        outputs. If set to 'all' then 608 and 708 carried DTVCC data will be passed. If set to
        'field1AndField2608' then DTVCC data will be stripped out, but 608 data from both fields
        will be passed. If set to 'field1608' then only the data carried in 608 from field 1 video
        will be passed.

        - **InputLossAction** *(string) --* Controls the behavior of this RTMP group if input
        becomes unavailable. - emitOutput: Emit a slate until input returns. - pauseOutput: Stop
        transmitting data until input returns. This does not close the underlying RTMP connection.

        - **RestartDelay** *(integer) --* If a streaming output fails, number of seconds to wait
        until a restart is initiated. A value of 0 means never restart.

      - **UdpGroupSettings** *(dict) --* Udp Group Settings

        - **InputLossAction** *(string) --* Specifies behavior of last resort when input video is
        lost, and no more backup inputs are available. When dropTs is selected the entire transport
        stream will stop being emitted. When dropProgram is selected the program can be dropped from
        the transport stream (and replaced with null packets to meet the TS bitrate requirement).
        Or, when emitProgram is chosen the transport stream will continue to be produced normally
        with repeat frames, black frames, or slate frames substituted for the absent input video.

        - **TimedMetadataId3Frame** *(string) --* Indicates ID3 frame that has the timecode.

        - **TimedMetadataId3Period** *(integer) --* Timed Metadata interval in seconds.

    - **Outputs** *(list) --* Placeholder documentation for __listOfOutput

      - *(dict) --* Output settings. There can be multiple outputs within a group.

        - **AudioDescriptionNames** *(list) --* The names of the AudioDescriptions used as audio
        sources for this output.

          - *(string) --* Placeholder documentation for __string

        - **CaptionDescriptionNames** *(list) --* The names of the CaptionDescriptions used as
        caption sources for this output.

          - *(string) --* Placeholder documentation for __string

        - **OutputName** *(string) --* The name used to identify an output.

        - **OutputSettings** *(dict) --* Output type-specific settings.

          - **ArchiveOutputSettings** *(dict) --* Archive Output Settings

            - **ContainerSettings** *(dict) --* Settings specific to the container type of the file.

              - **M2tsSettings** *(dict) --* M2ts Settings

                - **AbsentInputAudioBehavior** *(string) --* When set to drop, output audio streams
                will be removed from the program if the selected input audio stream is removed from
                the input. This allows the output audio configuration to dynamically change based on
                input configuration. If this is set to encodeSilence, all output audio streams will
                output encoded silence when not connected to an active input stream.

                - **Arib** *(string) --* When set to enabled, uses ARIB-compliant field muxing and
                removes video descriptor.

                - **AribCaptionsPid** *(string) --* Packet Identifier (PID) for ARIB Captions in the
                transport stream. Can be entered as a decimal or hexadecimal value. Valid values are
                32 (or 0x20)..8182 (or 0x1ff6).

                - **AribCaptionsPidControl** *(string) --* If set to auto, pid number used for ARIB
                Captions will be auto-selected from unused pids. If set to useConfigured, ARIB
                Captions will be on the configured pid number.

                - **AudioBufferModel** *(string) --* When set to dvb, uses DVB buffer model for
                Dolby Digital audio. When set to atsc, the ATSC model is used.

                - **AudioFramesPerPes** *(integer) --* The number of audio frames to insert for each
                PES packet.

                - **AudioPids** *(string) --* Packet Identifier (PID) of the elementary audio
                stream(s) in the transport stream. Multiple values are accepted, and can be entered
                in ranges and/or by comma separation. Can be entered as decimal or hexadecimal
                values. Each PID specified must be in the range of 32 (or 0x20)..8182 (or 0x1ff6).

                - **AudioStreamType** *(string) --* When set to atsc, uses stream type =
                     0x81 for
                AC3 and stream type = 0x87 for EAC3. When set to dvb, uses stream type =
                     0x06.

                - **Bitrate** *(integer) --* The output bitrate of the transport stream in bits per
                second. Setting to 0 lets the muxer automatically determine the appropriate bitrate.

                - **BufferModel** *(string) --* If set to multiplex, use multiplex buffer model for
                accurate interleaving. Setting to bufferModel to none can lead to lower latency, but
                low-memory devices may not be able to play back the stream without interruptions.

                - **CcDescriptor** *(string) --* When set to enabled, generates
                captionServiceDescriptor in PMT.

                - **DvbNitSettings** *(dict) --* Inserts DVB Network Information Table (NIT) at the
                specified table repetition interval.

                  - **NetworkId** *(integer) --* The numeric value placed in the Network Information
                  Table (NIT).

                  - **NetworkName** *(string) --* The network name text placed in the
                  networkNameDescriptor inside the Network Information Table. Maximum length is 256
                  characters.

                  - **RepInterval** *(integer) --* The number of milliseconds between instances of
                  this table in the output transport stream.

                - **DvbSdtSettings** *(dict) --* Inserts DVB Service Description Table (SDT) at the
                specified table repetition interval.

                  - **OutputSdt** *(string) --* Selects method of inserting SDT information into
                  output stream. The sdtFollow setting copies SDT information from input stream to
                  output stream. The sdtFollowIfPresent setting copies SDT information from input
                  stream to output stream if SDT information is present in the input, otherwise it
                  will fall back on the user-defined values. The sdtManual setting means user will
                  enter the SDT information. The sdtNone setting means output stream will not
                  contain SDT information.

                  - **RepInterval** *(integer) --* The number of milliseconds between instances of
                  this table in the output transport stream.

                  - **ServiceName** *(string) --* The service name placed in the serviceDescriptor
                  in the Service Description Table. Maximum length is 256 characters.

                  - **ServiceProviderName** *(string) --* The service provider name placed in the
                  serviceDescriptor in the Service Description Table. Maximum length is 256
                  characters.

                - **DvbSubPids** *(string) --* Packet Identifier (PID) for input source DVB Subtitle
                data to this output. Multiple values are accepted, and can be entered in ranges
                and/or by comma separation. Can be entered as decimal or hexadecimal values. Each
                PID specified must be in the range of 32 (or 0x20)..8182 (or 0x1ff6).

                - **DvbTdtSettings** *(dict) --* Inserts DVB Time and Date Table (TDT) at the
                specified table repetition interval.

                  - **RepInterval** *(integer) --* The number of milliseconds between instances of
                  this table in the output transport stream.

                - **DvbTeletextPid** *(string) --* Packet Identifier (PID) for input source DVB
                Teletext data to this output. Can be entered as a decimal or hexadecimal value.
                Valid values are 32 (or 0x20)..8182 (or 0x1ff6).

                - **Ebif** *(string) --* If set to passthrough, passes any EBIF data from the input
                source to this output.

                - **EbpAudioInterval** *(string) --* When videoAndFixedIntervals is selected, audio
                EBP markers will be added to partitions 3 and 4. The interval between these
                additional markers will be fixed, and will be slightly shorter than the video EBP
                marker interval. Only available when EBP Cablelabs segmentation markers are
                selected. Partitions 1 and 2 will always follow the video interval.

                - **EbpLookaheadMs** *(integer) --* When set, enforces that Encoder Boundary Points
                do not come within the specified time interval of each other by looking ahead at
                input video. If another EBP is going to come in within the specified time interval,
                the current EBP is not emitted, and the segment is "stretched" to the next marker.
                The lookahead value does not add latency to the system. The Live Event must be
                configured elsewhere to create sufficient latency to make the lookahead accurate.

                - **EbpPlacement** *(string) --* Controls placement of EBP on Audio PIDs. If set to
                videoAndAudioPids, EBP markers will be placed on the video PID and all audio PIDs.
                If set to videoPid, EBP markers will be placed on only the video PID.

                - **EcmPid** *(string) --* This field is unused and deprecated.

                - **EsRateInPes** *(string) --* Include or exclude the ES Rate field in the PES
                header.

                - **EtvPlatformPid** *(string) --* Packet Identifier (PID) for input source ETV
                Platform data to this output. Can be entered as a decimal or hexadecimal value.
                Valid values are 32 (or 0x20)..8182 (or 0x1ff6).

                - **EtvSignalPid** *(string) --* Packet Identifier (PID) for input source ETV Signal
                data to this output. Can be entered as a decimal or hexadecimal value. Valid values
                are 32 (or 0x20)..8182 (or 0x1ff6).

                - **FragmentTime** *(float) --* The length in seconds of each fragment. Only used
                with EBP markers.

                - **Klv** *(string) --* If set to passthrough, passes any KLV data from the input
                source to this output.

                - **KlvDataPids** *(string) --* Packet Identifier (PID) for input source KLV data to
                this output. Multiple values are accepted, and can be entered in ranges and/or by
                comma separation. Can be entered as decimal or hexadecimal values. Each PID
                specified must be in the range of 32 (or 0x20)..8182 (or 0x1ff6).

                - **NielsenId3Behavior** *(string) --* If set to passthrough, Nielsen inaudible
                tones for media tracking will be detected in the input audio and an equivalent ID3
                tag will be inserted in the output.

                - **NullPacketBitrate** *(float) --* Value in bits per second of extra null packets
                to insert into the transport stream. This can be used if a downstream encryption
                system requires periodic null packets.

                - **PatInterval** *(integer) --* The number of milliseconds between instances of
                this table in the output transport stream. Valid values are 0, 10..1000.

                - **PcrControl** *(string) --* When set to pcrEveryPesPacket, a Program Clock
                Reference value is inserted for every Packetized Elementary Stream (PES) header.
                This parameter is effective only when the PCR PID is the same as the video or audio
                elementary stream.

                - **PcrPeriod** *(integer) --* Maximum time in milliseconds between Program Clock
                Reference (PCRs) inserted into the transport stream.

                - **PcrPid** *(string) --* Packet Identifier (PID) of the Program Clock Reference
                (PCR) in the transport stream. When no value is given, the encoder will assign the
                same value as the Video PID. Can be entered as a decimal or hexadecimal value. Valid
                values are 32 (or 0x20)..8182 (or 0x1ff6).

                - **PmtInterval** *(integer) --* The number of milliseconds between instances of
                this table in the output transport stream. Valid values are 0, 10..1000.

                - **PmtPid** *(string) --* Packet Identifier (PID) for the Program Map Table (PMT)
                in the transport stream. Can be entered as a decimal or hexadecimal value. Valid
                values are 32 (or 0x20)..8182 (or 0x1ff6).

                - **ProgramNum** *(integer) --* The value of the program number field in the Program
                Map Table.

                - **RateMode** *(string) --* When vbr, does not insert null packets into transport
                stream to fill specified bitrate. The bitrate setting acts as the maximum bitrate
                when vbr is set.

                - **Scte27Pids** *(string) --* Packet Identifier (PID) for input source SCTE-27 data
                to this output. Multiple values are accepted, and can be entered in ranges and/or by
                comma separation. Can be entered as decimal or hexadecimal values. Each PID
                specified must be in the range of 32 (or 0x20)..8182 (or 0x1ff6).

                - **Scte35Control** *(string) --* Optionally pass SCTE-35 signals from the input
                source to this output.

                - **Scte35Pid** *(string) --* Packet Identifier (PID) of the SCTE-35 stream in the
                transport stream. Can be entered as a decimal or hexadecimal value. Valid values are
                32 (or 0x20)..8182 (or 0x1ff6).

                - **SegmentationMarkers** *(string) --* Inserts segmentation markers at each
                segmentationTime period. raiSegstart sets the Random Access Indicator bit in the
                adaptation field. raiAdapt sets the RAI bit and adds the current timecode in the
                private data bytes. psiSegstart inserts PAT and PMT tables at the start of segments.
                ebp adds Encoder Boundary Point information to the adaptation field as per OpenCable
                specification OC-SP-EBP-I01-130118. ebpLegacy adds Encoder Boundary Point
                information to the adaptation field using a legacy proprietary format.

                - **SegmentationStyle** *(string) --* The segmentation style parameter controls how
                segmentation markers are inserted into the transport stream. With avails, it is
                possible that segments may be truncated, which can influence where future
                segmentation markers are inserted. When a segmentation style of "resetCadence" is
                selected and a segment is truncated due to an avail, we will reset the segmentation
                cadence. This means the subsequent segment will have a duration of $segmentationTime
                seconds. When a segmentation style of "maintainCadence" is selected and a segment is
                truncated due to an avail, we will not reset the segmentation cadence. This means
                the subsequent segment will likely be truncated as well. However, all segments after
                that will have a duration of $segmentationTime seconds. Note that EBP lookahead is a
                slight exception to this rule.

                - **SegmentationTime** *(float) --* The length in seconds of each segment. Required
                unless markers is set to None_.

                - **TimedMetadataBehavior** *(string) --* When set to passthrough, timed metadata
                will be passed through from input to output.

                - **TimedMetadataPid** *(string) --* Packet Identifier (PID) of the timed metadata
                stream in the transport stream. Can be entered as a decimal or hexadecimal value.
                Valid values are 32 (or 0x20)..8182 (or 0x1ff6).

                - **TransportStreamId** *(integer) --* The value of the transport stream ID field in
                the Program Map Table.

                - **VideoPid** *(string) --* Packet Identifier (PID) of the elementary video stream
                in the transport stream. Can be entered as a decimal or hexadecimal value. Valid
                values are 32 (or 0x20)..8182 (or 0x1ff6).

            - **Extension** *(string) --* Output file extension. If excluded, this will be
            auto-selected from the container type.

            - **NameModifier** *(string) --* String concatenated to the end of the destination
            filename. Required for multiple outputs of the same type.

          - **FrameCaptureOutputSettings** *(dict) --* Frame Capture Output Settings

            - **NameModifier** *(string) --* Required if the output group contains more than one
            output. This modifier forms part of the output file name.

          - **HlsOutputSettings** *(dict) --* Hls Output Settings

            - **HlsSettings** *(dict) --* Settings regarding the underlying stream. These settings
            are different for audio-only outputs.

              - **AudioOnlyHlsSettings** *(dict) --* Audio Only Hls Settings

                - **AudioGroupId** *(string) --* Specifies the group to which the audio Rendition
                belongs.

                - **AudioOnlyImage** *(dict) --* Optional. Specifies the .jpg or .png image to use
                as the cover art for an audio-only output. We recommend a low bit-size file because
                the image increases the output audio bandwidth. The image is attached to the audio
                as an ID3 tag, frame type APIC, picture type 0x10, as per the "ID3 tag version 2.4.0
                - Native Frames" standard.

                  - **PasswordParam** *(string) --* key used to extract the password from EC2
                  Parameter store

                  - **Uri** *(string) --* Uniform Resource Identifier - This should be a path to a
                  file accessible to the Live system (eg. a http:// URI) depending on the output
                  type. For example, a RTMP destination should have a uri simliar to:
                  "rtmp://fmsserver/live".

                  - **Username** *(string) --* Documentation update needed

                - **AudioTrackType** *(string) --* Four types of audio-only tracks are supported:
                Audio-Only Variant Stream The client can play back this audio-only stream instead of
                video in low-bandwidth scenarios. Represented as an EXT-X-STREAM-INF in the HLS
                manifest. Alternate Audio, Auto Select, Default Alternate rendition that the client
                should try to play back by default. Represented as an EXT-X-MEDIA in the HLS
                manifest with DEFAULT=YES, AUTOSELECT=
                    YES Alternate Audio, Auto Select, Not Default
                Alternate rendition that the client may try to play back by default. Represented as
                an EXT-X-MEDIA in the HLS manifest with DEFAULT=NO, AUTOSELECT=
                    YES Alternate Audio,
                not Auto Select Alternate rendition that the client will not try to play back by
                default. Represented as an EXT-X-MEDIA in the HLS manifest with DEFAULT=
                    NO,
                AUTOSELECT=NO

              - **StandardHlsSettings** *(dict) --* Standard Hls Settings

                - **AudioRenditionSets** *(string) --* List all the audio groups that are used with
                the video output stream. Input all the audio GROUP-IDs that are associated to the
                video, separate by ','.

                - **M3u8Settings** *(dict) --* Settings information for the .m3u8 container

                  - **AudioFramesPerPes** *(integer) --* The number of audio frames to insert for
                  each PES packet.

                  - **AudioPids** *(string) --* Packet Identifier (PID) of the elementary audio
                  stream(s) in the transport stream. Multiple values are accepted, and can be
                  entered in ranges and/or by comma separation. Can be entered as decimal or
                  hexadecimal values.

                  - **EcmPid** *(string) --* This parameter is unused and deprecated.

                  - **NielsenId3Behavior** *(string) --* If set to passthrough, Nielsen inaudible
                  tones for media tracking will be detected in the input audio and an equivalent ID3
                  tag will be inserted in the output.

                  - **PatInterval** *(integer) --* The number of milliseconds between instances of
                  this table in the output transport stream. A value of \\"0\\" writes out the PMT
                  once per segment file.

                  - **PcrControl** *(string) --* When set to pcrEveryPesPacket, a Program Clock
                  Reference value is inserted for every Packetized Elementary Stream (PES) header.
                  This parameter is effective only when the PCR PID is the same as the video or
                  audio elementary stream.

                  - **PcrPeriod** *(integer) --* Maximum time in milliseconds between Program Clock
                  References (PCRs) inserted into the transport stream.

                  - **PcrPid** *(string) --* Packet Identifier (PID) of the Program Clock Reference
                  (PCR) in the transport stream. When no value is given, the encoder will assign the
                  same value as the Video PID. Can be entered as a decimal or hexadecimal value.

                  - **PmtInterval** *(integer) --* The number of milliseconds between instances of
                  this table in the output transport stream. A value of \\"0\\" writes out the PMT
                  once per segment file.

                  - **PmtPid** *(string) --* Packet Identifier (PID) for the Program Map Table (PMT)
                  in the transport stream. Can be entered as a decimal or hexadecimal value.

                  - **ProgramNum** *(integer) --* The value of the program number field in the
                  Program Map Table.

                  - **Scte35Behavior** *(string) --* If set to passthrough, passes any SCTE-35
                  signals from the input source to this output.

                  - **Scte35Pid** *(string) --* Packet Identifier (PID) of the SCTE-35 stream in the
                  transport stream. Can be entered as a decimal or hexadecimal value.

                  - **TimedMetadataBehavior** *(string) --* When set to passthrough, timed metadata
                  is passed through from input to output.

                  - **TimedMetadataPid** *(string) --* Packet Identifier (PID) of the timed metadata
                  stream in the transport stream. Can be entered as a decimal or hexadecimal value.
                  Valid values are 32 (or 0x20)..8182 (or 0x1ff6).

                  - **TransportStreamId** *(integer) --* The value of the transport stream ID field
                  in the Program Map Table.

                  - **VideoPid** *(string) --* Packet Identifier (PID) of the elementary video
                  stream in the transport stream. Can be entered as a decimal or hexadecimal value.

            - **NameModifier** *(string) --* String concatenated to the end of the destination
            filename. Accepts \\"Format Identifiers\\":#formatIdentifierParameters.

            - **SegmentModifier** *(string) --* String concatenated to end of segment filenames.

          - **MediaPackageOutputSettings** *(dict) --* Media Package Output Settings

          - **MsSmoothOutputSettings** *(dict) --* Ms Smooth Output Settings

            - **H265PackagingType** *(string) --* Only applicable when this output is referencing an
            H.265 video description. Specifies whether MP4 segments should be packaged as HEV1 or
            HVC1.

            - **NameModifier** *(string) --* String concatenated to the end of the destination
            filename. Required for multiple outputs of the same type.

          - **MultiplexOutputSettings** *(dict) --* Multiplex Output Settings

            - **Destination** *(dict) --* Destination is a Multiplex.

              - **DestinationRefId** *(string) --* Placeholder documentation for __string

          - **RtmpOutputSettings** *(dict) --* Rtmp Output Settings

            - **CertificateMode** *(string) --* If set to verifyAuthenticity, verify the tls
            certificate chain to a trusted Certificate Authority (CA). This will cause rtmps outputs
            with self-signed certificates to fail.

            - **ConnectionRetryInterval** *(integer) --* Number of seconds to wait before retrying a
            connection to the Flash Media server if the connection is lost.

            - **Destination** *(dict) --* The RTMP endpoint excluding the stream name (eg.
            rtmp://host/appname). For connection to Akamai, a username and password must be
            supplied. URI fields accept format identifiers.

              - **DestinationRefId** *(string) --* Placeholder documentation for __string

            - **NumRetries** *(integer) --* Number of retry attempts.

          - **UdpOutputSettings** *(dict) --* Udp Output Settings

            - **BufferMsec** *(integer) --* UDP output buffering in milliseconds. Larger values
            increase latency through the transcoder but simultaneously assist the transcoder in
            maintaining a constant, low-jitter UDP/RTP output while accommodating clock recovery,
            input switching, input disruptions, picture reordering, etc.

            - **ContainerSettings** *(dict) --* Udp Container Settings

              - **M2tsSettings** *(dict) --* M2ts Settings

                - **AbsentInputAudioBehavior** *(string) --* When set to drop, output audio streams
                will be removed from the program if the selected input audio stream is removed from
                the input. This allows the output audio configuration to dynamically change based on
                input configuration. If this is set to encodeSilence, all output audio streams will
                output encoded silence when not connected to an active input stream.

                - **Arib** *(string) --* When set to enabled, uses ARIB-compliant field muxing and
                removes video descriptor.

                - **AribCaptionsPid** *(string) --* Packet Identifier (PID) for ARIB Captions in the
                transport stream. Can be entered as a decimal or hexadecimal value. Valid values are
                32 (or 0x20)..8182 (or 0x1ff6).

                - **AribCaptionsPidControl** *(string) --* If set to auto, pid number used for ARIB
                Captions will be auto-selected from unused pids. If set to useConfigured, ARIB
                Captions will be on the configured pid number.

                - **AudioBufferModel** *(string) --* When set to dvb, uses DVB buffer model for
                Dolby Digital audio. When set to atsc, the ATSC model is used.

                - **AudioFramesPerPes** *(integer) --* The number of audio frames to insert for each
                PES packet.

                - **AudioPids** *(string) --* Packet Identifier (PID) of the elementary audio
                stream(s) in the transport stream. Multiple values are accepted, and can be entered
                in ranges and/or by comma separation. Can be entered as decimal or hexadecimal
                values. Each PID specified must be in the range of 32 (or 0x20)..8182 (or 0x1ff6).

                - **AudioStreamType** *(string) --* When set to atsc, uses stream type =
                     0x81 for
                AC3 and stream type = 0x87 for EAC3. When set to dvb, uses stream type =
                     0x06.

                - **Bitrate** *(integer) --* The output bitrate of the transport stream in bits per
                second. Setting to 0 lets the muxer automatically determine the appropriate bitrate.

                - **BufferModel** *(string) --* If set to multiplex, use multiplex buffer model for
                accurate interleaving. Setting to bufferModel to none can lead to lower latency, but
                low-memory devices may not be able to play back the stream without interruptions.

                - **CcDescriptor** *(string) --* When set to enabled, generates
                captionServiceDescriptor in PMT.

                - **DvbNitSettings** *(dict) --* Inserts DVB Network Information Table (NIT) at the
                specified table repetition interval.

                  - **NetworkId** *(integer) --* The numeric value placed in the Network Information
                  Table (NIT).

                  - **NetworkName** *(string) --* The network name text placed in the
                  networkNameDescriptor inside the Network Information Table. Maximum length is 256
                  characters.

                  - **RepInterval** *(integer) --* The number of milliseconds between instances of
                  this table in the output transport stream.

                - **DvbSdtSettings** *(dict) --* Inserts DVB Service Description Table (SDT) at the
                specified table repetition interval.

                  - **OutputSdt** *(string) --* Selects method of inserting SDT information into
                  output stream. The sdtFollow setting copies SDT information from input stream to
                  output stream. The sdtFollowIfPresent setting copies SDT information from input
                  stream to output stream if SDT information is present in the input, otherwise it
                  will fall back on the user-defined values. The sdtManual setting means user will
                  enter the SDT information. The sdtNone setting means output stream will not
                  contain SDT information.

                  - **RepInterval** *(integer) --* The number of milliseconds between instances of
                  this table in the output transport stream.

                  - **ServiceName** *(string) --* The service name placed in the serviceDescriptor
                  in the Service Description Table. Maximum length is 256 characters.

                  - **ServiceProviderName** *(string) --* The service provider name placed in the
                  serviceDescriptor in the Service Description Table. Maximum length is 256
                  characters.

                - **DvbSubPids** *(string) --* Packet Identifier (PID) for input source DVB Subtitle
                data to this output. Multiple values are accepted, and can be entered in ranges
                and/or by comma separation. Can be entered as decimal or hexadecimal values. Each
                PID specified must be in the range of 32 (or 0x20)..8182 (or 0x1ff6).

                - **DvbTdtSettings** *(dict) --* Inserts DVB Time and Date Table (TDT) at the
                specified table repetition interval.

                  - **RepInterval** *(integer) --* The number of milliseconds between instances of
                  this table in the output transport stream.

                - **DvbTeletextPid** *(string) --* Packet Identifier (PID) for input source DVB
                Teletext data to this output. Can be entered as a decimal or hexadecimal value.
                Valid values are 32 (or 0x20)..8182 (or 0x1ff6).

                - **Ebif** *(string) --* If set to passthrough, passes any EBIF data from the input
                source to this output.

                - **EbpAudioInterval** *(string) --* When videoAndFixedIntervals is selected, audio
                EBP markers will be added to partitions 3 and 4. The interval between these
                additional markers will be fixed, and will be slightly shorter than the video EBP
                marker interval. Only available when EBP Cablelabs segmentation markers are
                selected. Partitions 1 and 2 will always follow the video interval.

                - **EbpLookaheadMs** *(integer) --* When set, enforces that Encoder Boundary Points
                do not come within the specified time interval of each other by looking ahead at
                input video. If another EBP is going to come in within the specified time interval,
                the current EBP is not emitted, and the segment is "stretched" to the next marker.
                The lookahead value does not add latency to the system. The Live Event must be
                configured elsewhere to create sufficient latency to make the lookahead accurate.

                - **EbpPlacement** *(string) --* Controls placement of EBP on Audio PIDs. If set to
                videoAndAudioPids, EBP markers will be placed on the video PID and all audio PIDs.
                If set to videoPid, EBP markers will be placed on only the video PID.

                - **EcmPid** *(string) --* This field is unused and deprecated.

                - **EsRateInPes** *(string) --* Include or exclude the ES Rate field in the PES
                header.

                - **EtvPlatformPid** *(string) --* Packet Identifier (PID) for input source ETV
                Platform data to this output. Can be entered as a decimal or hexadecimal value.
                Valid values are 32 (or 0x20)..8182 (or 0x1ff6).

                - **EtvSignalPid** *(string) --* Packet Identifier (PID) for input source ETV Signal
                data to this output. Can be entered as a decimal or hexadecimal value. Valid values
                are 32 (or 0x20)..8182 (or 0x1ff6).

                - **FragmentTime** *(float) --* The length in seconds of each fragment. Only used
                with EBP markers.

                - **Klv** *(string) --* If set to passthrough, passes any KLV data from the input
                source to this output.

                - **KlvDataPids** *(string) --* Packet Identifier (PID) for input source KLV data to
                this output. Multiple values are accepted, and can be entered in ranges and/or by
                comma separation. Can be entered as decimal or hexadecimal values. Each PID
                specified must be in the range of 32 (or 0x20)..8182 (or 0x1ff6).

                - **NielsenId3Behavior** *(string) --* If set to passthrough, Nielsen inaudible
                tones for media tracking will be detected in the input audio and an equivalent ID3
                tag will be inserted in the output.

                - **NullPacketBitrate** *(float) --* Value in bits per second of extra null packets
                to insert into the transport stream. This can be used if a downstream encryption
                system requires periodic null packets.

                - **PatInterval** *(integer) --* The number of milliseconds between instances of
                this table in the output transport stream. Valid values are 0, 10..1000.

                - **PcrControl** *(string) --* When set to pcrEveryPesPacket, a Program Clock
                Reference value is inserted for every Packetized Elementary Stream (PES) header.
                This parameter is effective only when the PCR PID is the same as the video or audio
                elementary stream.

                - **PcrPeriod** *(integer) --* Maximum time in milliseconds between Program Clock
                Reference (PCRs) inserted into the transport stream.

                - **PcrPid** *(string) --* Packet Identifier (PID) of the Program Clock Reference
                (PCR) in the transport stream. When no value is given, the encoder will assign the
                same value as the Video PID. Can be entered as a decimal or hexadecimal value. Valid
                values are 32 (or 0x20)..8182 (or 0x1ff6).

                - **PmtInterval** *(integer) --* The number of milliseconds between instances of
                this table in the output transport stream. Valid values are 0, 10..1000.

                - **PmtPid** *(string) --* Packet Identifier (PID) for the Program Map Table (PMT)
                in the transport stream. Can be entered as a decimal or hexadecimal value. Valid
                values are 32 (or 0x20)..8182 (or 0x1ff6).

                - **ProgramNum** *(integer) --* The value of the program number field in the Program
                Map Table.

                - **RateMode** *(string) --* When vbr, does not insert null packets into transport
                stream to fill specified bitrate. The bitrate setting acts as the maximum bitrate
                when vbr is set.

                - **Scte27Pids** *(string) --* Packet Identifier (PID) for input source SCTE-27 data
                to this output. Multiple values are accepted, and can be entered in ranges and/or by
                comma separation. Can be entered as decimal or hexadecimal values. Each PID
                specified must be in the range of 32 (or 0x20)..8182 (or 0x1ff6).

                - **Scte35Control** *(string) --* Optionally pass SCTE-35 signals from the input
                source to this output.

                - **Scte35Pid** *(string) --* Packet Identifier (PID) of the SCTE-35 stream in the
                transport stream. Can be entered as a decimal or hexadecimal value. Valid values are
                32 (or 0x20)..8182 (or 0x1ff6).

                - **SegmentationMarkers** *(string) --* Inserts segmentation markers at each
                segmentationTime period. raiSegstart sets the Random Access Indicator bit in the
                adaptation field. raiAdapt sets the RAI bit and adds the current timecode in the
                private data bytes. psiSegstart inserts PAT and PMT tables at the start of segments.
                ebp adds Encoder Boundary Point information to the adaptation field as per OpenCable
                specification OC-SP-EBP-I01-130118. ebpLegacy adds Encoder Boundary Point
                information to the adaptation field using a legacy proprietary format.

                - **SegmentationStyle** *(string) --* The segmentation style parameter controls how
                segmentation markers are inserted into the transport stream. With avails, it is
                possible that segments may be truncated, which can influence where future
                segmentation markers are inserted. When a segmentation style of "resetCadence" is
                selected and a segment is truncated due to an avail, we will reset the segmentation
                cadence. This means the subsequent segment will have a duration of $segmentationTime
                seconds. When a segmentation style of "maintainCadence" is selected and a segment is
                truncated due to an avail, we will not reset the segmentation cadence. This means
                the subsequent segment will likely be truncated as well. However, all segments after
                that will have a duration of $segmentationTime seconds. Note that EBP lookahead is a
                slight exception to this rule.

                - **SegmentationTime** *(float) --* The length in seconds of each segment. Required
                unless markers is set to None_.

                - **TimedMetadataBehavior** *(string) --* When set to passthrough, timed metadata
                will be passed through from input to output.

                - **TimedMetadataPid** *(string) --* Packet Identifier (PID) of the timed metadata
                stream in the transport stream. Can be entered as a decimal or hexadecimal value.
                Valid values are 32 (or 0x20)..8182 (or 0x1ff6).

                - **TransportStreamId** *(integer) --* The value of the transport stream ID field in
                the Program Map Table.

                - **VideoPid** *(string) --* Packet Identifier (PID) of the elementary video stream
                in the transport stream. Can be entered as a decimal or hexadecimal value. Valid
                values are 32 (or 0x20)..8182 (or 0x1ff6).

            - **Destination** *(dict) --* Destination address and port number for RTP or UDP
            packets. Can be unicast or multicast RTP or UDP (eg. rtp://239.10.10.10:5001 or
            udp://10.100.100.100:5002).

              - **DestinationRefId** *(string) --* Placeholder documentation for __string

            - **FecOutputSettings** *(dict) --* Settings for enabling and adjusting Forward Error
            Correction on UDP outputs.

              - **ColumnDepth** *(integer) --* Parameter D from SMPTE 2022-1. The height of the FEC
              protection matrix. The number of transport stream packets per column error correction
              packet. Must be between 4 and 20, inclusive.

              - **IncludeFec** *(string) --* Enables column only or column and row based FEC

              - **RowLength** *(integer) --* Parameter L from SMPTE 2022-1. The width of the FEC
              protection matrix. Must be between 1 and 20, inclusive. If only Column FEC is used,
              then larger values increase robustness. If Row FEC is used, then this is the number of
              transport stream packets per row error correction packet, and the value must be
              between 4 and 20, inclusive, if includeFec is columnAndRow. If includeFec is column,
              this value must be 1 to 20, inclusive.

        - **VideoDescriptionName** *(string) --* The name of the VideoDescription used as the source
        for this output.
    """


_ClientUpdateChannelClassResponseChannelEncoderSettingsTimecodeConfigTypeDef = TypedDict(
    "_ClientUpdateChannelClassResponseChannelEncoderSettingsTimecodeConfigTypeDef",
    {"Source": str, "SyncThreshold": int},
    total=False,
)


class ClientUpdateChannelClassResponseChannelEncoderSettingsTimecodeConfigTypeDef(
    _ClientUpdateChannelClassResponseChannelEncoderSettingsTimecodeConfigTypeDef
):
    """
    Type definition for `ClientUpdateChannelClassResponseChannelEncoderSettings` `TimecodeConfig`

    - **Source** *(string) --* Identifies the source for the timecode that will be associated with
    the events outputs. -Embedded (embedded): Initialize the output timecode with timecode from the
    the source. If no embedded timecode is detected in the source, the system falls back to using
    "Start at 0" (zerobased). -System Clock (systemclock): Use the UTC time. -Start at 0
    (zerobased): The time of the first frame of the event will be 00:00:00:00.

    - **SyncThreshold** *(integer) --* Threshold in frames beyond which output timecode is
    resynchronized to the input timecode. Discrepancies below this threshold are permitted to avoid
    unnecessary discontinuities in the output timecode. No timecode sync when this is not specified.
    """


_ClientUpdateChannelClassResponseChannelEncoderSettingsVideoDescriptionsCodecSettingsFrameCaptureSettingsTypeDef = TypedDict(
    "_ClientUpdateChannelClassResponseChannelEncoderSettingsVideoDescriptionsCodecSettingsFrameCaptureSettingsTypeDef",
    {"CaptureInterval": int},
    total=False,
)


class ClientUpdateChannelClassResponseChannelEncoderSettingsVideoDescriptionsCodecSettingsFrameCaptureSettingsTypeDef(
    _ClientUpdateChannelClassResponseChannelEncoderSettingsVideoDescriptionsCodecSettingsFrameCaptureSettingsTypeDef
):
    """
    Type definition for
    `ClientUpdateChannelClassResponseChannelEncoderSettingsVideoDescriptionsCodecSettings`
    `FrameCaptureSettings`

    - **CaptureInterval** *(integer) --* The frequency at which to capture frames for inclusion in
    the output. May be specified in either seconds or milliseconds, as specified by
    captureIntervalUnits.
    """


_ClientUpdateChannelClassResponseChannelEncoderSettingsVideoDescriptionsCodecSettingsH264SettingsColorSpaceSettingsTypeDef = TypedDict(
    "_ClientUpdateChannelClassResponseChannelEncoderSettingsVideoDescriptionsCodecSettingsH264SettingsColorSpaceSettingsTypeDef",
    {
        "ColorSpacePassthroughSettings": Dict,
        "Rec601Settings": Dict,
        "Rec709Settings": Dict[str, Any],
    },
    total=False,
)


class ClientUpdateChannelClassResponseChannelEncoderSettingsVideoDescriptionsCodecSettingsH264SettingsColorSpaceSettingsTypeDef(
    _ClientUpdateChannelClassResponseChannelEncoderSettingsVideoDescriptionsCodecSettingsH264SettingsColorSpaceSettingsTypeDef
):
    """
    Type definition for
    `ClientUpdateChannelClassResponseChannelEncoderSettingsVideoDescriptionsCodecSettingsH264Settings`
    `ColorSpaceSettings`

    - **ColorSpacePassthroughSettings** *(dict) --* Passthrough applies no color space conversion to
    the output

    - **Rec601Settings** *(dict) --* Rec601 Settings

    - **Rec709Settings** *(dict) --* Rec709 Settings
    """


_ClientUpdateChannelClassResponseChannelEncoderSettingsVideoDescriptionsCodecSettingsH264SettingsTypeDef = TypedDict(
    "_ClientUpdateChannelClassResponseChannelEncoderSettingsVideoDescriptionsCodecSettingsH264SettingsTypeDef",
    {
        "AdaptiveQuantization": str,
        "AfdSignaling": str,
        "Bitrate": int,
        "BufFillPct": int,
        "BufSize": int,
        "ColorMetadata": str,
        "ColorSpaceSettings": ClientUpdateChannelClassResponseChannelEncoderSettingsVideoDescriptionsCodecSettingsH264SettingsColorSpaceSettingsTypeDef,
        "EntropyEncoding": str,
        "FixedAfd": str,
        "FlickerAq": str,
        "FramerateControl": str,
        "FramerateDenominator": int,
        "FramerateNumerator": int,
        "GopBReference": str,
        "GopClosedCadence": int,
        "GopNumBFrames": int,
        "GopSize": float,
        "GopSizeUnits": str,
        "Level": str,
        "LookAheadRateControl": str,
        "MaxBitrate": int,
        "MinIInterval": int,
        "NumRefFrames": int,
        "ParControl": str,
        "ParDenominator": int,
        "ParNumerator": int,
        "Profile": str,
        "QvbrQualityLevel": int,
        "RateControlMode": str,
        "ScanType": str,
        "SceneChangeDetect": str,
        "Slices": int,
        "Softness": int,
        "SpatialAq": str,
        "SubgopLength": str,
        "Syntax": str,
        "TemporalAq": str,
        "TimecodeInsertion": str,
    },
    total=False,
)


class ClientUpdateChannelClassResponseChannelEncoderSettingsVideoDescriptionsCodecSettingsH264SettingsTypeDef(
    _ClientUpdateChannelClassResponseChannelEncoderSettingsVideoDescriptionsCodecSettingsH264SettingsTypeDef
):
    """
    Type definition for
    `ClientUpdateChannelClassResponseChannelEncoderSettingsVideoDescriptionsCodecSettings`
    `H264Settings`

    - **AdaptiveQuantization** *(string) --* Adaptive quantization. Allows intra-frame quantizers to
    vary to improve visual quality.

    - **AfdSignaling** *(string) --* Indicates that AFD values will be written into the output
    stream. If afdSignaling is "auto", the system will try to preserve the input AFD value (in cases
    where multiple AFD values are valid). If set to "fixed", the AFD value will be the value
    configured in the fixedAfd parameter.

    - **Bitrate** *(integer) --* Average bitrate in bits/second. Required when the rate control mode
    is VBR or CBR. Not used for QVBR. In an MS Smooth output group, each output must have a unique
    value when its bitrate is rounded down to the nearest multiple of 1000.

    - **BufFillPct** *(integer) --* Percentage of the buffer that should initially be filled (HRD
    buffer model).

    - **BufSize** *(integer) --* Size of buffer (HRD buffer model) in bits.

    - **ColorMetadata** *(string) --* Includes colorspace metadata in the output.

    - **ColorSpaceSettings** *(dict) --* Color Space settings

      - **ColorSpacePassthroughSettings** *(dict) --* Passthrough applies no color space conversion
      to the output

      - **Rec601Settings** *(dict) --* Rec601 Settings

      - **Rec709Settings** *(dict) --* Rec709 Settings

    - **EntropyEncoding** *(string) --* Entropy encoding mode. Use cabac (must be in Main or High
    profile) or cavlc.

    - **FixedAfd** *(string) --* Four bit AFD value to write on all frames of video in the output
    stream. Only valid when afdSignaling is set to 'Fixed'.

    - **FlickerAq** *(string) --* If set to enabled, adjust quantization within each frame to reduce
    flicker or 'pop' on I-frames.

    - **FramerateControl** *(string) --* This field indicates how the output video frame rate is
    specified. If "specified" is selected then the output video frame rate is determined by
    framerateNumerator and framerateDenominator, else if "initializeFromSource" is selected then the
    output video frame rate will be set equal to the input video frame rate of the first input.

    - **FramerateDenominator** *(integer) --* Framerate denominator.

    - **FramerateNumerator** *(integer) --* Framerate numerator - framerate is a fraction, e.g.
    24000 / 1001 = 23.976 fps.

    - **GopBReference** *(string) --* Documentation update needed

    - **GopClosedCadence** *(integer) --* Frequency of closed GOPs. In streaming applications, it is
    recommended that this be set to 1 so a decoder joining mid-stream will receive an IDR frame as
    quickly as possible. Setting this value to 0 will break output segmenting.

    - **GopNumBFrames** *(integer) --* Number of B-frames between reference frames.

    - **GopSize** *(float) --* GOP size (keyframe interval) in units of either frames or seconds per
    gopSizeUnits. If gopSizeUnits is frames, gopSize must be an integer and must be greater than or
    equal to 1. If gopSizeUnits is seconds, gopSize must be greater than 0, but need not be an
    integer.

    - **GopSizeUnits** *(string) --* Indicates if the gopSize is specified in frames or seconds. If
    seconds the system will convert the gopSize into a frame count at run time.

    - **Level** *(string) --* H.264 Level.

    - **LookAheadRateControl** *(string) --* Amount of lookahead. A value of low can decrease
    latency and memory usage, while high can produce better quality for certain content.

    - **MaxBitrate** *(integer) --* For QVBR: See the tooltip for Quality level For VBR: Set the
    maximum bitrate in order to accommodate expected spikes in the complexity of the video.

    - **MinIInterval** *(integer) --* Only meaningful if sceneChangeDetect is set to enabled.
    Defaults to 5 if multiplex rate control is used. Enforces separation between repeated (cadence)
    I-frames and I-frames inserted by Scene Change Detection. If a scene change I-frame is within
    I-interval frames of a cadence I-frame, the GOP is shrunk and/or stretched to the scene change
    I-frame. GOP stretch requires enabling lookahead as well as setting I-interval. The normal
    cadence resumes for the next GOP. Note: Maximum GOP stretch = GOP size + Min-I-interval - 1

    - **NumRefFrames** *(integer) --* Number of reference frames to use. The encoder may use more
    than requested if using B-frames and/or interlaced encoding.

    - **ParControl** *(string) --* This field indicates how the output pixel aspect ratio is
    specified. If "specified" is selected then the output video pixel aspect ratio is determined by
    parNumerator and parDenominator, else if "initializeFromSource" is selected then the output
    pixsel aspect ratio will be set equal to the input video pixel aspect ratio of the first input.

    - **ParDenominator** *(integer) --* Pixel Aspect Ratio denominator.

    - **ParNumerator** *(integer) --* Pixel Aspect Ratio numerator.

    - **Profile** *(string) --* H.264 Profile.

    - **QvbrQualityLevel** *(integer) --* Controls the target quality for the video encode. Applies
    only when the rate control mode is QVBR. Set values for the QVBR quality level field and Max
    bitrate field that suit your most important viewing devices. Recommended values are: - Primary
    screen: Quality level: 8 to 10. Max bitrate: 4M - PC or tablet: Quality level: 7. Max bitrate:
    1.5M to 3M - Smartphone: Quality level: 6. Max bitrate: 1M to 1.5M

    - **RateControlMode** *(string) --* Rate control mode. QVBR: Quality will match the specified
    quality level except when it is constrained by the maximum bitrate. Recommended if you or your
    viewers pay for bandwidth. VBR: Quality and bitrate vary, depending on the video complexity.
    Recommended instead of QVBR if you want to maintain a specific average bitrate over the duration
    of the channel. CBR: Quality varies, depending on the video complexity. Recommended only if you
    distribute your assets to devices that cannot handle variable bitrates.

    - **ScanType** *(string) --* Sets the scan type of the output to progressive or top-field-first
    interlaced.

    - **SceneChangeDetect** *(string) --* Scene change detection. - On: inserts I-frames when scene
    change is detected. - Off: does not force an I-frame when scene change is detected.

    - **Slices** *(integer) --* Number of slices per picture. Must be less than or equal to the
    number of macroblock rows for progressive pictures, and less than or equal to half the number of
    macroblock rows for interlaced pictures. This field is optional; when no value is specified the
    encoder will choose the number of slices based on encode resolution.

    - **Softness** *(integer) --* Softness. Selects quantizer matrix, larger values reduce
    high-frequency content in the encoded image.

    - **SpatialAq** *(string) --* If set to enabled, adjust quantization within each frame based on
    spatial variation of content complexity.

    - **SubgopLength** *(string) --* If set to fixed, use gopNumBFrames B-frames per sub-GOP. If set
    to dynamic, optimize the number of B-frames used for each sub-GOP to improve visual quality.

    - **Syntax** *(string) --* Produces a bitstream compliant with SMPTE RP-2027.

    - **TemporalAq** *(string) --* If set to enabled, adjust quantization within each frame based on
    temporal variation of content complexity.

    - **TimecodeInsertion** *(string) --* Determines how timecodes should be inserted into the video
    elementary stream. - 'disabled': Do not include timecodes - 'picTimingSei': Pass through picture
    timing SEI messages from the source specified in Timecode Config
    """


_ClientUpdateChannelClassResponseChannelEncoderSettingsVideoDescriptionsCodecSettingsH265SettingsColorSpaceSettingsHdr10SettingsTypeDef = TypedDict(
    "_ClientUpdateChannelClassResponseChannelEncoderSettingsVideoDescriptionsCodecSettingsH265SettingsColorSpaceSettingsHdr10SettingsTypeDef",
    {"MaxCll": int, "MaxFall": int},
    total=False,
)


class ClientUpdateChannelClassResponseChannelEncoderSettingsVideoDescriptionsCodecSettingsH265SettingsColorSpaceSettingsHdr10SettingsTypeDef(
    _ClientUpdateChannelClassResponseChannelEncoderSettingsVideoDescriptionsCodecSettingsH265SettingsColorSpaceSettingsHdr10SettingsTypeDef
):
    """
    Type definition for
    `ClientUpdateChannelClassResponseChannelEncoderSettingsVideoDescriptionsCodecSettingsH265SettingsColorSpaceSettings`
    `Hdr10Settings`

    - **MaxCll** *(integer) --* Maximum Content Light Level An integer metadata value defining the
    maximum light level, in nits, of any single pixel within an encoded HDR video stream or file.

    - **MaxFall** *(integer) --* Maximum Frame Average Light Level An integer metadata value
    defining the maximum average light level, in nits, for any single frame within an encoded HDR
    video stream or file.
    """


_ClientUpdateChannelClassResponseChannelEncoderSettingsVideoDescriptionsCodecSettingsH265SettingsColorSpaceSettingsTypeDef = TypedDict(
    "_ClientUpdateChannelClassResponseChannelEncoderSettingsVideoDescriptionsCodecSettingsH265SettingsColorSpaceSettingsTypeDef",
    {
        "ColorSpacePassthroughSettings": Dict,
        "Hdr10Settings": ClientUpdateChannelClassResponseChannelEncoderSettingsVideoDescriptionsCodecSettingsH265SettingsColorSpaceSettingsHdr10SettingsTypeDef,
        "Rec601Settings": Dict,
        "Rec709Settings": Dict[str, Any],
    },
    total=False,
)


class ClientUpdateChannelClassResponseChannelEncoderSettingsVideoDescriptionsCodecSettingsH265SettingsColorSpaceSettingsTypeDef(
    _ClientUpdateChannelClassResponseChannelEncoderSettingsVideoDescriptionsCodecSettingsH265SettingsColorSpaceSettingsTypeDef
):
    """
    Type definition for
    `ClientUpdateChannelClassResponseChannelEncoderSettingsVideoDescriptionsCodecSettingsH265Settings`
    `ColorSpaceSettings`

    - **ColorSpacePassthroughSettings** *(dict) --* Passthrough applies no color space conversion to
    the output

    - **Hdr10Settings** *(dict) --* Hdr10 Settings

      - **MaxCll** *(integer) --* Maximum Content Light Level An integer metadata value defining the
      maximum light level, in nits, of any single pixel within an encoded HDR video stream or file.

      - **MaxFall** *(integer) --* Maximum Frame Average Light Level An integer metadata value
      defining the maximum average light level, in nits, for any single frame within an encoded HDR
      video stream or file.

    - **Rec601Settings** *(dict) --* Rec601 Settings

    - **Rec709Settings** *(dict) --* Rec709 Settings
    """


_ClientUpdateChannelClassResponseChannelEncoderSettingsVideoDescriptionsCodecSettingsH265SettingsTypeDef = TypedDict(
    "_ClientUpdateChannelClassResponseChannelEncoderSettingsVideoDescriptionsCodecSettingsH265SettingsTypeDef",
    {
        "AdaptiveQuantization": str,
        "AfdSignaling": str,
        "AlternativeTransferFunction": str,
        "Bitrate": int,
        "BufSize": int,
        "ColorMetadata": str,
        "ColorSpaceSettings": ClientUpdateChannelClassResponseChannelEncoderSettingsVideoDescriptionsCodecSettingsH265SettingsColorSpaceSettingsTypeDef,
        "FixedAfd": str,
        "FlickerAq": str,
        "FramerateDenominator": int,
        "FramerateNumerator": int,
        "GopClosedCadence": int,
        "GopSize": float,
        "GopSizeUnits": str,
        "Level": str,
        "LookAheadRateControl": str,
        "MaxBitrate": int,
        "MinIInterval": int,
        "ParDenominator": int,
        "ParNumerator": int,
        "Profile": str,
        "QvbrQualityLevel": int,
        "RateControlMode": str,
        "ScanType": str,
        "SceneChangeDetect": str,
        "Slices": int,
        "Tier": str,
        "TimecodeInsertion": str,
    },
    total=False,
)


class ClientUpdateChannelClassResponseChannelEncoderSettingsVideoDescriptionsCodecSettingsH265SettingsTypeDef(
    _ClientUpdateChannelClassResponseChannelEncoderSettingsVideoDescriptionsCodecSettingsH265SettingsTypeDef
):
    """
    Type definition for
    `ClientUpdateChannelClassResponseChannelEncoderSettingsVideoDescriptionsCodecSettings`
    `H265Settings`

    - **AdaptiveQuantization** *(string) --* Adaptive quantization. Allows intra-frame quantizers to
    vary to improve visual quality.

    - **AfdSignaling** *(string) --* Indicates that AFD values will be written into the output
    stream. If afdSignaling is "auto", the system will try to preserve the input AFD value (in cases
    where multiple AFD values are valid). If set to "fixed", the AFD value will be the value
    configured in the fixedAfd parameter.

    - **AlternativeTransferFunction** *(string) --* Whether or not EML should insert an Alternative
    Transfer Function SEI message to support backwards compatibility with non-HDR decoders and
    displays.

    - **Bitrate** *(integer) --* Average bitrate in bits/second. Required when the rate control mode
    is VBR or CBR. Not used for QVBR. In an MS Smooth output group, each output must have a unique
    value when its bitrate is rounded down to the nearest multiple of 1000.

    - **BufSize** *(integer) --* Size of buffer (HRD buffer model) in bits.

    - **ColorMetadata** *(string) --* Includes colorspace metadata in the output.

    - **ColorSpaceSettings** *(dict) --* Color Space settings

      - **ColorSpacePassthroughSettings** *(dict) --* Passthrough applies no color space conversion
      to the output

      - **Hdr10Settings** *(dict) --* Hdr10 Settings

        - **MaxCll** *(integer) --* Maximum Content Light Level An integer metadata value defining
        the maximum light level, in nits, of any single pixel within an encoded HDR video stream or
        file.

        - **MaxFall** *(integer) --* Maximum Frame Average Light Level An integer metadata value
        defining the maximum average light level, in nits, for any single frame within an encoded
        HDR video stream or file.

      - **Rec601Settings** *(dict) --* Rec601 Settings

      - **Rec709Settings** *(dict) --* Rec709 Settings

    - **FixedAfd** *(string) --* Four bit AFD value to write on all frames of video in the output
    stream. Only valid when afdSignaling is set to 'Fixed'.

    - **FlickerAq** *(string) --* If set to enabled, adjust quantization within each frame to reduce
    flicker or 'pop' on I-frames.

    - **FramerateDenominator** *(integer) --* Framerate denominator.

    - **FramerateNumerator** *(integer) --* Framerate numerator - framerate is a fraction, e.g.
    24000 / 1001 = 23.976 fps.

    - **GopClosedCadence** *(integer) --* Frequency of closed GOPs. In streaming applications, it is
    recommended that this be set to 1 so a decoder joining mid-stream will receive an IDR frame as
    quickly as possible. Setting this value to 0 will break output segmenting.

    - **GopSize** *(float) --* GOP size (keyframe interval) in units of either frames or seconds per
    gopSizeUnits. If gopSizeUnits is frames, gopSize must be an integer and must be greater than or
    equal to 1. If gopSizeUnits is seconds, gopSize must be greater than 0, but need not be an
    integer.

    - **GopSizeUnits** *(string) --* Indicates if the gopSize is specified in frames or seconds. If
    seconds the system will convert the gopSize into a frame count at run time.

    - **Level** *(string) --* H.265 Level.

    - **LookAheadRateControl** *(string) --* Amount of lookahead. A value of low can decrease
    latency and memory usage, while high can produce better quality for certain content.

    - **MaxBitrate** *(integer) --* For QVBR: See the tooltip for Quality level

    - **MinIInterval** *(integer) --* Only meaningful if sceneChangeDetect is set to enabled.
    Defaults to 5 if multiplex rate control is used. Enforces separation between repeated (cadence)
    I-frames and I-frames inserted by Scene Change Detection. If a scene change I-frame is within
    I-interval frames of a cadence I-frame, the GOP is shrunk and/or stretched to the scene change
    I-frame. GOP stretch requires enabling lookahead as well as setting I-interval. The normal
    cadence resumes for the next GOP. Note: Maximum GOP stretch = GOP size + Min-I-interval - 1

    - **ParDenominator** *(integer) --* Pixel Aspect Ratio denominator.

    - **ParNumerator** *(integer) --* Pixel Aspect Ratio numerator.

    - **Profile** *(string) --* H.265 Profile.

    - **QvbrQualityLevel** *(integer) --* Controls the target quality for the video encode. Applies
    only when the rate control mode is QVBR. Set values for the QVBR quality level field and Max
    bitrate field that suit your most important viewing devices. Recommended values are: - Primary
    screen: Quality level: 8 to 10. Max bitrate: 4M - PC or tablet: Quality level: 7. Max bitrate:
    1.5M to 3M - Smartphone: Quality level: 6. Max bitrate: 1M to 1.5M

    - **RateControlMode** *(string) --* Rate control mode. QVBR: Quality will match the specified
    quality level except when it is constrained by the maximum bitrate. Recommended if you or your
    viewers pay for bandwidth. CBR: Quality varies, depending on the video complexity. Recommended
    only if you distribute your assets to devices that cannot handle variable bitrates.

    - **ScanType** *(string) --* Sets the scan type of the output to progressive or top-field-first
    interlaced.

    - **SceneChangeDetect** *(string) --* Scene change detection.

    - **Slices** *(integer) --* Number of slices per picture. Must be less than or equal to the
    number of macroblock rows for progressive pictures, and less than or equal to half the number of
    macroblock rows for interlaced pictures. This field is optional; when no value is specified the
    encoder will choose the number of slices based on encode resolution.

    - **Tier** *(string) --* H.265 Tier.

    - **TimecodeInsertion** *(string) --* Determines how timecodes should be inserted into the video
    elementary stream. - 'disabled': Do not include timecodes - 'picTimingSei': Pass through picture
    timing SEI messages from the source specified in Timecode Config
    """


_ClientUpdateChannelClassResponseChannelEncoderSettingsVideoDescriptionsCodecSettingsTypeDef = TypedDict(
    "_ClientUpdateChannelClassResponseChannelEncoderSettingsVideoDescriptionsCodecSettingsTypeDef",
    {
        "FrameCaptureSettings": ClientUpdateChannelClassResponseChannelEncoderSettingsVideoDescriptionsCodecSettingsFrameCaptureSettingsTypeDef,
        "H264Settings": ClientUpdateChannelClassResponseChannelEncoderSettingsVideoDescriptionsCodecSettingsH264SettingsTypeDef,
        "H265Settings": ClientUpdateChannelClassResponseChannelEncoderSettingsVideoDescriptionsCodecSettingsH265SettingsTypeDef,
    },
    total=False,
)


class ClientUpdateChannelClassResponseChannelEncoderSettingsVideoDescriptionsCodecSettingsTypeDef(
    _ClientUpdateChannelClassResponseChannelEncoderSettingsVideoDescriptionsCodecSettingsTypeDef
):
    """
    Type definition for `ClientUpdateChannelClassResponseChannelEncoderSettingsVideoDescriptions`
    `CodecSettings`

    - **FrameCaptureSettings** *(dict) --* Frame Capture Settings

      - **CaptureInterval** *(integer) --* The frequency at which to capture frames for inclusion in
      the output. May be specified in either seconds or milliseconds, as specified by
      captureIntervalUnits.

    - **H264Settings** *(dict) --* H264 Settings

      - **AdaptiveQuantization** *(string) --* Adaptive quantization. Allows intra-frame quantizers
      to vary to improve visual quality.

      - **AfdSignaling** *(string) --* Indicates that AFD values will be written into the output
      stream. If afdSignaling is "auto", the system will try to preserve the input AFD value (in
      cases where multiple AFD values are valid). If set to "fixed", the AFD value will be the value
      configured in the fixedAfd parameter.

      - **Bitrate** *(integer) --* Average bitrate in bits/second. Required when the rate control
      mode is VBR or CBR. Not used for QVBR. In an MS Smooth output group, each output must have a
      unique value when its bitrate is rounded down to the nearest multiple of 1000.

      - **BufFillPct** *(integer) --* Percentage of the buffer that should initially be filled (HRD
      buffer model).

      - **BufSize** *(integer) --* Size of buffer (HRD buffer model) in bits.

      - **ColorMetadata** *(string) --* Includes colorspace metadata in the output.

      - **ColorSpaceSettings** *(dict) --* Color Space settings

        - **ColorSpacePassthroughSettings** *(dict) --* Passthrough applies no color space
        conversion to the output

        - **Rec601Settings** *(dict) --* Rec601 Settings

        - **Rec709Settings** *(dict) --* Rec709 Settings

      - **EntropyEncoding** *(string) --* Entropy encoding mode. Use cabac (must be in Main or High
      profile) or cavlc.

      - **FixedAfd** *(string) --* Four bit AFD value to write on all frames of video in the output
      stream. Only valid when afdSignaling is set to 'Fixed'.

      - **FlickerAq** *(string) --* If set to enabled, adjust quantization within each frame to
      reduce flicker or 'pop' on I-frames.

      - **FramerateControl** *(string) --* This field indicates how the output video frame rate is
      specified. If "specified" is selected then the output video frame rate is determined by
      framerateNumerator and framerateDenominator, else if "initializeFromSource" is selected then
      the output video frame rate will be set equal to the input video frame rate of the first
      input.

      - **FramerateDenominator** *(integer) --* Framerate denominator.

      - **FramerateNumerator** *(integer) --* Framerate numerator - framerate is a fraction, e.g.
      24000 / 1001 = 23.976 fps.

      - **GopBReference** *(string) --* Documentation update needed

      - **GopClosedCadence** *(integer) --* Frequency of closed GOPs. In streaming applications, it
      is recommended that this be set to 1 so a decoder joining mid-stream will receive an IDR frame
      as quickly as possible. Setting this value to 0 will break output segmenting.

      - **GopNumBFrames** *(integer) --* Number of B-frames between reference frames.

      - **GopSize** *(float) --* GOP size (keyframe interval) in units of either frames or seconds
      per gopSizeUnits. If gopSizeUnits is frames, gopSize must be an integer and must be greater
      than or equal to 1. If gopSizeUnits is seconds, gopSize must be greater than 0, but need not
      be an integer.

      - **GopSizeUnits** *(string) --* Indicates if the gopSize is specified in frames or seconds.
      If seconds the system will convert the gopSize into a frame count at run time.

      - **Level** *(string) --* H.264 Level.

      - **LookAheadRateControl** *(string) --* Amount of lookahead. A value of low can decrease
      latency and memory usage, while high can produce better quality for certain content.

      - **MaxBitrate** *(integer) --* For QVBR: See the tooltip for Quality level For VBR: Set the
      maximum bitrate in order to accommodate expected spikes in the complexity of the video.

      - **MinIInterval** *(integer) --* Only meaningful if sceneChangeDetect is set to enabled.
      Defaults to 5 if multiplex rate control is used. Enforces separation between repeated
      (cadence) I-frames and I-frames inserted by Scene Change Detection. If a scene change I-frame
      is within I-interval frames of a cadence I-frame, the GOP is shrunk and/or stretched to the
      scene change I-frame. GOP stretch requires enabling lookahead as well as setting I-interval.
      The normal cadence resumes for the next GOP. Note: Maximum GOP stretch = GOP size +
      Min-I-interval - 1

      - **NumRefFrames** *(integer) --* Number of reference frames to use. The encoder may use more
      than requested if using B-frames and/or interlaced encoding.

      - **ParControl** *(string) --* This field indicates how the output pixel aspect ratio is
      specified. If "specified" is selected then the output video pixel aspect ratio is determined
      by parNumerator and parDenominator, else if "initializeFromSource" is selected then the output
      pixsel aspect ratio will be set equal to the input video pixel aspect ratio of the first
      input.

      - **ParDenominator** *(integer) --* Pixel Aspect Ratio denominator.

      - **ParNumerator** *(integer) --* Pixel Aspect Ratio numerator.

      - **Profile** *(string) --* H.264 Profile.

      - **QvbrQualityLevel** *(integer) --* Controls the target quality for the video encode.
      Applies only when the rate control mode is QVBR. Set values for the QVBR quality level field
      and Max bitrate field that suit your most important viewing devices. Recommended values are: -
      Primary screen: Quality level: 8 to 10. Max bitrate: 4M - PC or tablet: Quality level: 7. Max
      bitrate: 1.5M to 3M - Smartphone: Quality level: 6. Max bitrate: 1M to 1.5M

      - **RateControlMode** *(string) --* Rate control mode. QVBR: Quality will match the specified
      quality level except when it is constrained by the maximum bitrate. Recommended if you or your
      viewers pay for bandwidth. VBR: Quality and bitrate vary, depending on the video complexity.
      Recommended instead of QVBR if you want to maintain a specific average bitrate over the
      duration of the channel. CBR: Quality varies, depending on the video complexity. Recommended
      only if you distribute your assets to devices that cannot handle variable bitrates.

      - **ScanType** *(string) --* Sets the scan type of the output to progressive or
      top-field-first interlaced.

      - **SceneChangeDetect** *(string) --* Scene change detection. - On: inserts I-frames when
      scene change is detected. - Off: does not force an I-frame when scene change is detected.

      - **Slices** *(integer) --* Number of slices per picture. Must be less than or equal to the
      number of macroblock rows for progressive pictures, and less than or equal to half the number
      of macroblock rows for interlaced pictures. This field is optional; when no value is specified
      the encoder will choose the number of slices based on encode resolution.

      - **Softness** *(integer) --* Softness. Selects quantizer matrix, larger values reduce
      high-frequency content in the encoded image.

      - **SpatialAq** *(string) --* If set to enabled, adjust quantization within each frame based
      on spatial variation of content complexity.

      - **SubgopLength** *(string) --* If set to fixed, use gopNumBFrames B-frames per sub-GOP. If
      set to dynamic, optimize the number of B-frames used for each sub-GOP to improve visual
      quality.

      - **Syntax** *(string) --* Produces a bitstream compliant with SMPTE RP-2027.

      - **TemporalAq** *(string) --* If set to enabled, adjust quantization within each frame based
      on temporal variation of content complexity.

      - **TimecodeInsertion** *(string) --* Determines how timecodes should be inserted into the
      video elementary stream. - 'disabled': Do not include timecodes - 'picTimingSei': Pass through
      picture timing SEI messages from the source specified in Timecode Config

    - **H265Settings** *(dict) --* H265 Settings

      - **AdaptiveQuantization** *(string) --* Adaptive quantization. Allows intra-frame quantizers
      to vary to improve visual quality.

      - **AfdSignaling** *(string) --* Indicates that AFD values will be written into the output
      stream. If afdSignaling is "auto", the system will try to preserve the input AFD value (in
      cases where multiple AFD values are valid). If set to "fixed", the AFD value will be the value
      configured in the fixedAfd parameter.

      - **AlternativeTransferFunction** *(string) --* Whether or not EML should insert an
      Alternative Transfer Function SEI message to support backwards compatibility with non-HDR
      decoders and displays.

      - **Bitrate** *(integer) --* Average bitrate in bits/second. Required when the rate control
      mode is VBR or CBR. Not used for QVBR. In an MS Smooth output group, each output must have a
      unique value when its bitrate is rounded down to the nearest multiple of 1000.

      - **BufSize** *(integer) --* Size of buffer (HRD buffer model) in bits.

      - **ColorMetadata** *(string) --* Includes colorspace metadata in the output.

      - **ColorSpaceSettings** *(dict) --* Color Space settings

        - **ColorSpacePassthroughSettings** *(dict) --* Passthrough applies no color space
        conversion to the output

        - **Hdr10Settings** *(dict) --* Hdr10 Settings

          - **MaxCll** *(integer) --* Maximum Content Light Level An integer metadata value defining
          the maximum light level, in nits, of any single pixel within an encoded HDR video stream
          or file.

          - **MaxFall** *(integer) --* Maximum Frame Average Light Level An integer metadata value
          defining the maximum average light level, in nits, for any single frame within an encoded
          HDR video stream or file.

        - **Rec601Settings** *(dict) --* Rec601 Settings

        - **Rec709Settings** *(dict) --* Rec709 Settings

      - **FixedAfd** *(string) --* Four bit AFD value to write on all frames of video in the output
      stream. Only valid when afdSignaling is set to 'Fixed'.

      - **FlickerAq** *(string) --* If set to enabled, adjust quantization within each frame to
      reduce flicker or 'pop' on I-frames.

      - **FramerateDenominator** *(integer) --* Framerate denominator.

      - **FramerateNumerator** *(integer) --* Framerate numerator - framerate is a fraction, e.g.
      24000 / 1001 = 23.976 fps.

      - **GopClosedCadence** *(integer) --* Frequency of closed GOPs. In streaming applications, it
      is recommended that this be set to 1 so a decoder joining mid-stream will receive an IDR frame
      as quickly as possible. Setting this value to 0 will break output segmenting.

      - **GopSize** *(float) --* GOP size (keyframe interval) in units of either frames or seconds
      per gopSizeUnits. If gopSizeUnits is frames, gopSize must be an integer and must be greater
      than or equal to 1. If gopSizeUnits is seconds, gopSize must be greater than 0, but need not
      be an integer.

      - **GopSizeUnits** *(string) --* Indicates if the gopSize is specified in frames or seconds.
      If seconds the system will convert the gopSize into a frame count at run time.

      - **Level** *(string) --* H.265 Level.

      - **LookAheadRateControl** *(string) --* Amount of lookahead. A value of low can decrease
      latency and memory usage, while high can produce better quality for certain content.

      - **MaxBitrate** *(integer) --* For QVBR: See the tooltip for Quality level

      - **MinIInterval** *(integer) --* Only meaningful if sceneChangeDetect is set to enabled.
      Defaults to 5 if multiplex rate control is used. Enforces separation between repeated
      (cadence) I-frames and I-frames inserted by Scene Change Detection. If a scene change I-frame
      is within I-interval frames of a cadence I-frame, the GOP is shrunk and/or stretched to the
      scene change I-frame. GOP stretch requires enabling lookahead as well as setting I-interval.
      The normal cadence resumes for the next GOP. Note: Maximum GOP stretch = GOP size +
      Min-I-interval - 1

      - **ParDenominator** *(integer) --* Pixel Aspect Ratio denominator.

      - **ParNumerator** *(integer) --* Pixel Aspect Ratio numerator.

      - **Profile** *(string) --* H.265 Profile.

      - **QvbrQualityLevel** *(integer) --* Controls the target quality for the video encode.
      Applies only when the rate control mode is QVBR. Set values for the QVBR quality level field
      and Max bitrate field that suit your most important viewing devices. Recommended values are: -
      Primary screen: Quality level: 8 to 10. Max bitrate: 4M - PC or tablet: Quality level: 7. Max
      bitrate: 1.5M to 3M - Smartphone: Quality level: 6. Max bitrate: 1M to 1.5M

      - **RateControlMode** *(string) --* Rate control mode. QVBR: Quality will match the specified
      quality level except when it is constrained by the maximum bitrate. Recommended if you or your
      viewers pay for bandwidth. CBR: Quality varies, depending on the video complexity. Recommended
      only if you distribute your assets to devices that cannot handle variable bitrates.

      - **ScanType** *(string) --* Sets the scan type of the output to progressive or
      top-field-first interlaced.

      - **SceneChangeDetect** *(string) --* Scene change detection.

      - **Slices** *(integer) --* Number of slices per picture. Must be less than or equal to the
      number of macroblock rows for progressive pictures, and less than or equal to half the number
      of macroblock rows for interlaced pictures. This field is optional; when no value is specified
      the encoder will choose the number of slices based on encode resolution.

      - **Tier** *(string) --* H.265 Tier.

      - **TimecodeInsertion** *(string) --* Determines how timecodes should be inserted into the
      video elementary stream. - 'disabled': Do not include timecodes - 'picTimingSei': Pass through
      picture timing SEI messages from the source specified in Timecode Config
    """


_ClientUpdateChannelClassResponseChannelEncoderSettingsVideoDescriptionsTypeDef = TypedDict(
    "_ClientUpdateChannelClassResponseChannelEncoderSettingsVideoDescriptionsTypeDef",
    {
        "CodecSettings": ClientUpdateChannelClassResponseChannelEncoderSettingsVideoDescriptionsCodecSettingsTypeDef,
        "Height": int,
        "Name": str,
        "RespondToAfd": str,
        "ScalingBehavior": str,
        "Sharpness": int,
        "Width": int,
    },
    total=False,
)


class ClientUpdateChannelClassResponseChannelEncoderSettingsVideoDescriptionsTypeDef(
    _ClientUpdateChannelClassResponseChannelEncoderSettingsVideoDescriptionsTypeDef
):
    """
    Type definition for `ClientUpdateChannelClassResponseChannelEncoderSettings` `VideoDescriptions`

    - **CodecSettings** *(dict) --* Video codec settings.

      - **FrameCaptureSettings** *(dict) --* Frame Capture Settings

        - **CaptureInterval** *(integer) --* The frequency at which to capture frames for inclusion
        in the output. May be specified in either seconds or milliseconds, as specified by
        captureIntervalUnits.

      - **H264Settings** *(dict) --* H264 Settings

        - **AdaptiveQuantization** *(string) --* Adaptive quantization. Allows intra-frame
        quantizers to vary to improve visual quality.

        - **AfdSignaling** *(string) --* Indicates that AFD values will be written into the output
        stream. If afdSignaling is "auto", the system will try to preserve the input AFD value (in
        cases where multiple AFD values are valid). If set to "fixed", the AFD value will be the
        value configured in the fixedAfd parameter.

        - **Bitrate** *(integer) --* Average bitrate in bits/second. Required when the rate control
        mode is VBR or CBR. Not used for QVBR. In an MS Smooth output group, each output must have a
        unique value when its bitrate is rounded down to the nearest multiple of 1000.

        - **BufFillPct** *(integer) --* Percentage of the buffer that should initially be filled
        (HRD buffer model).

        - **BufSize** *(integer) --* Size of buffer (HRD buffer model) in bits.

        - **ColorMetadata** *(string) --* Includes colorspace metadata in the output.

        - **ColorSpaceSettings** *(dict) --* Color Space settings

          - **ColorSpacePassthroughSettings** *(dict) --* Passthrough applies no color space
          conversion to the output

          - **Rec601Settings** *(dict) --* Rec601 Settings

          - **Rec709Settings** *(dict) --* Rec709 Settings

        - **EntropyEncoding** *(string) --* Entropy encoding mode. Use cabac (must be in Main or
        High profile) or cavlc.

        - **FixedAfd** *(string) --* Four bit AFD value to write on all frames of video in the
        output stream. Only valid when afdSignaling is set to 'Fixed'.

        - **FlickerAq** *(string) --* If set to enabled, adjust quantization within each frame to
        reduce flicker or 'pop' on I-frames.

        - **FramerateControl** *(string) --* This field indicates how the output video frame rate is
        specified. If "specified" is selected then the output video frame rate is determined by
        framerateNumerator and framerateDenominator, else if "initializeFromSource" is selected then
        the output video frame rate will be set equal to the input video frame rate of the first
        input.

        - **FramerateDenominator** *(integer) --* Framerate denominator.

        - **FramerateNumerator** *(integer) --* Framerate numerator - framerate is a fraction, e.g.
        24000 / 1001 = 23.976 fps.

        - **GopBReference** *(string) --* Documentation update needed

        - **GopClosedCadence** *(integer) --* Frequency of closed GOPs. In streaming applications,
        it is recommended that this be set to 1 so a decoder joining mid-stream will receive an IDR
        frame as quickly as possible. Setting this value to 0 will break output segmenting.

        - **GopNumBFrames** *(integer) --* Number of B-frames between reference frames.

        - **GopSize** *(float) --* GOP size (keyframe interval) in units of either frames or seconds
        per gopSizeUnits. If gopSizeUnits is frames, gopSize must be an integer and must be greater
        than or equal to 1. If gopSizeUnits is seconds, gopSize must be greater than 0, but need not
        be an integer.

        - **GopSizeUnits** *(string) --* Indicates if the gopSize is specified in frames or seconds.
        If seconds the system will convert the gopSize into a frame count at run time.

        - **Level** *(string) --* H.264 Level.

        - **LookAheadRateControl** *(string) --* Amount of lookahead. A value of low can decrease
        latency and memory usage, while high can produce better quality for certain content.

        - **MaxBitrate** *(integer) --* For QVBR: See the tooltip for Quality level For VBR: Set the
        maximum bitrate in order to accommodate expected spikes in the complexity of the video.

        - **MinIInterval** *(integer) --* Only meaningful if sceneChangeDetect is set to enabled.
        Defaults to 5 if multiplex rate control is used. Enforces separation between repeated
        (cadence) I-frames and I-frames inserted by Scene Change Detection. If a scene change
        I-frame is within I-interval frames of a cadence I-frame, the GOP is shrunk and/or stretched
        to the scene change I-frame. GOP stretch requires enabling lookahead as well as setting
        I-interval. The normal cadence resumes for the next GOP. Note: Maximum GOP stretch = GOP
        size + Min-I-interval - 1

        - **NumRefFrames** *(integer) --* Number of reference frames to use. The encoder may use
        more than requested if using B-frames and/or interlaced encoding.

        - **ParControl** *(string) --* This field indicates how the output pixel aspect ratio is
        specified. If "specified" is selected then the output video pixel aspect ratio is determined
        by parNumerator and parDenominator, else if "initializeFromSource" is selected then the
        output pixsel aspect ratio will be set equal to the input video pixel aspect ratio of the
        first input.

        - **ParDenominator** *(integer) --* Pixel Aspect Ratio denominator.

        - **ParNumerator** *(integer) --* Pixel Aspect Ratio numerator.

        - **Profile** *(string) --* H.264 Profile.

        - **QvbrQualityLevel** *(integer) --* Controls the target quality for the video encode.
        Applies only when the rate control mode is QVBR. Set values for the QVBR quality level field
        and Max bitrate field that suit your most important viewing devices. Recommended values are:
        - Primary screen: Quality level: 8 to 10. Max bitrate: 4M - PC or tablet: Quality level: 7.
        Max bitrate: 1.5M to 3M - Smartphone: Quality level: 6. Max bitrate: 1M to 1.5M

        - **RateControlMode** *(string) --* Rate control mode. QVBR: Quality will match the
        specified quality level except when it is constrained by the maximum bitrate. Recommended if
        you or your viewers pay for bandwidth. VBR: Quality and bitrate vary, depending on the video
        complexity. Recommended instead of QVBR if you want to maintain a specific average bitrate
        over the duration of the channel. CBR: Quality varies, depending on the video complexity.
        Recommended only if you distribute your assets to devices that cannot handle variable
        bitrates.

        - **ScanType** *(string) --* Sets the scan type of the output to progressive or
        top-field-first interlaced.

        - **SceneChangeDetect** *(string) --* Scene change detection. - On: inserts I-frames when
        scene change is detected. - Off: does not force an I-frame when scene change is detected.

        - **Slices** *(integer) --* Number of slices per picture. Must be less than or equal to the
        number of macroblock rows for progressive pictures, and less than or equal to half the
        number of macroblock rows for interlaced pictures. This field is optional; when no value is
        specified the encoder will choose the number of slices based on encode resolution.

        - **Softness** *(integer) --* Softness. Selects quantizer matrix, larger values reduce
        high-frequency content in the encoded image.

        - **SpatialAq** *(string) --* If set to enabled, adjust quantization within each frame based
        on spatial variation of content complexity.

        - **SubgopLength** *(string) --* If set to fixed, use gopNumBFrames B-frames per sub-GOP. If
        set to dynamic, optimize the number of B-frames used for each sub-GOP to improve visual
        quality.

        - **Syntax** *(string) --* Produces a bitstream compliant with SMPTE RP-2027.

        - **TemporalAq** *(string) --* If set to enabled, adjust quantization within each frame
        based on temporal variation of content complexity.

        - **TimecodeInsertion** *(string) --* Determines how timecodes should be inserted into the
        video elementary stream. - 'disabled': Do not include timecodes - 'picTimingSei': Pass
        through picture timing SEI messages from the source specified in Timecode Config

      - **H265Settings** *(dict) --* H265 Settings

        - **AdaptiveQuantization** *(string) --* Adaptive quantization. Allows intra-frame
        quantizers to vary to improve visual quality.

        - **AfdSignaling** *(string) --* Indicates that AFD values will be written into the output
        stream. If afdSignaling is "auto", the system will try to preserve the input AFD value (in
        cases where multiple AFD values are valid). If set to "fixed", the AFD value will be the
        value configured in the fixedAfd parameter.

        - **AlternativeTransferFunction** *(string) --* Whether or not EML should insert an
        Alternative Transfer Function SEI message to support backwards compatibility with non-HDR
        decoders and displays.

        - **Bitrate** *(integer) --* Average bitrate in bits/second. Required when the rate control
        mode is VBR or CBR. Not used for QVBR. In an MS Smooth output group, each output must have a
        unique value when its bitrate is rounded down to the nearest multiple of 1000.

        - **BufSize** *(integer) --* Size of buffer (HRD buffer model) in bits.

        - **ColorMetadata** *(string) --* Includes colorspace metadata in the output.

        - **ColorSpaceSettings** *(dict) --* Color Space settings

          - **ColorSpacePassthroughSettings** *(dict) --* Passthrough applies no color space
          conversion to the output

          - **Hdr10Settings** *(dict) --* Hdr10 Settings

            - **MaxCll** *(integer) --* Maximum Content Light Level An integer metadata value
            defining the maximum light level, in nits, of any single pixel within an encoded HDR
            video stream or file.

            - **MaxFall** *(integer) --* Maximum Frame Average Light Level An integer metadata value
            defining the maximum average light level, in nits, for any single frame within an
            encoded HDR video stream or file.

          - **Rec601Settings** *(dict) --* Rec601 Settings

          - **Rec709Settings** *(dict) --* Rec709 Settings

        - **FixedAfd** *(string) --* Four bit AFD value to write on all frames of video in the
        output stream. Only valid when afdSignaling is set to 'Fixed'.

        - **FlickerAq** *(string) --* If set to enabled, adjust quantization within each frame to
        reduce flicker or 'pop' on I-frames.

        - **FramerateDenominator** *(integer) --* Framerate denominator.

        - **FramerateNumerator** *(integer) --* Framerate numerator - framerate is a fraction, e.g.
        24000 / 1001 = 23.976 fps.

        - **GopClosedCadence** *(integer) --* Frequency of closed GOPs. In streaming applications,
        it is recommended that this be set to 1 so a decoder joining mid-stream will receive an IDR
        frame as quickly as possible. Setting this value to 0 will break output segmenting.

        - **GopSize** *(float) --* GOP size (keyframe interval) in units of either frames or seconds
        per gopSizeUnits. If gopSizeUnits is frames, gopSize must be an integer and must be greater
        than or equal to 1. If gopSizeUnits is seconds, gopSize must be greater than 0, but need not
        be an integer.

        - **GopSizeUnits** *(string) --* Indicates if the gopSize is specified in frames or seconds.
        If seconds the system will convert the gopSize into a frame count at run time.

        - **Level** *(string) --* H.265 Level.

        - **LookAheadRateControl** *(string) --* Amount of lookahead. A value of low can decrease
        latency and memory usage, while high can produce better quality for certain content.

        - **MaxBitrate** *(integer) --* For QVBR: See the tooltip for Quality level

        - **MinIInterval** *(integer) --* Only meaningful if sceneChangeDetect is set to enabled.
        Defaults to 5 if multiplex rate control is used. Enforces separation between repeated
        (cadence) I-frames and I-frames inserted by Scene Change Detection. If a scene change
        I-frame is within I-interval frames of a cadence I-frame, the GOP is shrunk and/or stretched
        to the scene change I-frame. GOP stretch requires enabling lookahead as well as setting
        I-interval. The normal cadence resumes for the next GOP. Note: Maximum GOP stretch = GOP
        size + Min-I-interval - 1

        - **ParDenominator** *(integer) --* Pixel Aspect Ratio denominator.

        - **ParNumerator** *(integer) --* Pixel Aspect Ratio numerator.

        - **Profile** *(string) --* H.265 Profile.

        - **QvbrQualityLevel** *(integer) --* Controls the target quality for the video encode.
        Applies only when the rate control mode is QVBR. Set values for the QVBR quality level field
        and Max bitrate field that suit your most important viewing devices. Recommended values are:
        - Primary screen: Quality level: 8 to 10. Max bitrate: 4M - PC or tablet: Quality level: 7.
        Max bitrate: 1.5M to 3M - Smartphone: Quality level: 6. Max bitrate: 1M to 1.5M

        - **RateControlMode** *(string) --* Rate control mode. QVBR: Quality will match the
        specified quality level except when it is constrained by the maximum bitrate. Recommended if
        you or your viewers pay for bandwidth. CBR: Quality varies, depending on the video
        complexity. Recommended only if you distribute your assets to devices that cannot handle
        variable bitrates.

        - **ScanType** *(string) --* Sets the scan type of the output to progressive or
        top-field-first interlaced.

        - **SceneChangeDetect** *(string) --* Scene change detection.

        - **Slices** *(integer) --* Number of slices per picture. Must be less than or equal to the
        number of macroblock rows for progressive pictures, and less than or equal to half the
        number of macroblock rows for interlaced pictures. This field is optional; when no value is
        specified the encoder will choose the number of slices based on encode resolution.

        - **Tier** *(string) --* H.265 Tier.

        - **TimecodeInsertion** *(string) --* Determines how timecodes should be inserted into the
        video elementary stream. - 'disabled': Do not include timecodes - 'picTimingSei': Pass
        through picture timing SEI messages from the source specified in Timecode Config

    - **Height** *(integer) --* Output video height, in pixels. Must be an even number. For most
    codecs, you can leave this field and width blank in order to use the height and width
    (resolution) from the source. Note, however, that leaving blank is not recommended. For the
    Frame Capture codec, height and width are required.

    - **Name** *(string) --* The name of this VideoDescription. Outputs will use this name to
    uniquely identify this Description. Description names should be unique within this Live Event.

    - **RespondToAfd** *(string) --* Indicates how to respond to the AFD values in the input stream.
    RESPOND causes input video to be clipped, depending on the AFD value, input display aspect
    ratio, and output display aspect ratio, and (except for FRAMECAPTURE codec) includes the values
    in the output. PASSTHROUGH (does not apply to FRAMECAPTURE codec) ignores the AFD values and
    includes the values in the output, so input video is not clipped. NONE ignores the AFD values
    and does not include the values through to the output, so input video is not clipped.

    - **ScalingBehavior** *(string) --* STRETCHTOOUTPUT configures the output position to stretch
    the video to the specified output resolution (height and width). This option will override any
    position value. DEFAULT may insert black boxes (pillar boxes or letter boxes) around the video
    to provide the specified output resolution.

    - **Sharpness** *(integer) --* Changes the strength of the anti-alias filter used for scaling. 0
    is the softest setting, 100 is the sharpest. A setting of 50 is recommended for most content.

    - **Width** *(integer) --* Output video width, in pixels. Must be an even number. For most
    codecs, you can leave this field and height blank in order to use the height and width
    (resolution) from the source. Note, however, that leaving blank is not recommended. For the
    Frame Capture codec, height and width are required.
    """


_ClientUpdateChannelClassResponseChannelEncoderSettingsTypeDef = TypedDict(
    "_ClientUpdateChannelClassResponseChannelEncoderSettingsTypeDef",
    {
        "AudioDescriptions": List[
            ClientUpdateChannelClassResponseChannelEncoderSettingsAudioDescriptionsTypeDef
        ],
        "AvailBlanking": ClientUpdateChannelClassResponseChannelEncoderSettingsAvailBlankingTypeDef,
        "AvailConfiguration": ClientUpdateChannelClassResponseChannelEncoderSettingsAvailConfigurationTypeDef,
        "BlackoutSlate": ClientUpdateChannelClassResponseChannelEncoderSettingsBlackoutSlateTypeDef,
        "CaptionDescriptions": List[
            ClientUpdateChannelClassResponseChannelEncoderSettingsCaptionDescriptionsTypeDef
        ],
        "GlobalConfiguration": ClientUpdateChannelClassResponseChannelEncoderSettingsGlobalConfigurationTypeDef,
        "NielsenConfiguration": ClientUpdateChannelClassResponseChannelEncoderSettingsNielsenConfigurationTypeDef,
        "OutputGroups": List[
            ClientUpdateChannelClassResponseChannelEncoderSettingsOutputGroupsTypeDef
        ],
        "TimecodeConfig": ClientUpdateChannelClassResponseChannelEncoderSettingsTimecodeConfigTypeDef,
        "VideoDescriptions": List[
            ClientUpdateChannelClassResponseChannelEncoderSettingsVideoDescriptionsTypeDef
        ],
    },
    total=False,
)


class ClientUpdateChannelClassResponseChannelEncoderSettingsTypeDef(
    _ClientUpdateChannelClassResponseChannelEncoderSettingsTypeDef
):
    """
    Type definition for `ClientUpdateChannelClassResponseChannel` `EncoderSettings`

    - **AudioDescriptions** *(list) --* Placeholder documentation for __listOfAudioDescription

      - *(dict) --* Audio Description

        - **AudioNormalizationSettings** *(dict) --* Advanced audio normalization settings.

          - **Algorithm** *(string) --* Audio normalization algorithm to use. itu17701 conforms to
          the CALM Act specification, itu17702 conforms to the EBU R-128 specification.

          - **AlgorithmControl** *(string) --* When set to correctAudio the output audio is
          corrected using the chosen algorithm. If set to measureOnly, the audio will be measured
          but not adjusted.

          - **TargetLkfs** *(float) --* Target LKFS(loudness) to adjust volume to. If no value is
          entered, a default value will be used according to the chosen algorithm. The CALM Act
          (1770-1) recommends a target of -24 LKFS. The EBU R-128 specification (1770-2) recommends
          a target of -23 LKFS.

        - **AudioSelectorName** *(string) --* The name of the AudioSelector used as the source for
        this AudioDescription.

        - **AudioType** *(string) --* Applies only if audioTypeControl is useConfigured. The values
        for audioType are defined in ISO-IEC 13818-1.

        - **AudioTypeControl** *(string) --* Determines how audio type is determined. followInput:
        If the input contains an ISO 639 audioType, then that value is passed through to the output.
        If the input contains no ISO 639 audioType, the value in Audio Type is included in the
        output. useConfigured: The value in Audio Type is included in the output. Note that this
        field and audioType are both ignored if inputType is broadcasterMixedAd.

        - **CodecSettings** *(dict) --* Audio codec settings.

          - **AacSettings** *(dict) --* Aac Settings

            - **Bitrate** *(float) --* Average bitrate in bits/second. Valid values depend on rate
            control mode and profile.

            - **CodingMode** *(string) --* Mono, Stereo, or 5.1 channel layout. Valid values depend
            on rate control mode and profile. The adReceiverMix setting receives a stereo
            description plus control track and emits a mono AAC encode of the description track,
            with control data emitted in the PES header as per ETSI TS 101 154 Annex E.

            - **InputType** *(string) --* Set to "broadcasterMixedAd" when input contains pre-mixed
            main audio + AD (narration) as a stereo pair. The Audio Type field (audioType) will be
            set to 3, which signals to downstream systems that this stream contains "broadcaster
            mixed AD". Note that the input received by the encoder must contain pre-mixed audio; the
            encoder does not perform the mixing. The values in audioTypeControl and audioType (in
            AudioDescription) are ignored when set to broadcasterMixedAd. Leave set to "normal" when
            input does not contain pre-mixed audio + AD.

            - **Profile** *(string) --* AAC Profile.

            - **RateControlMode** *(string) --* Rate Control Mode.

            - **RawFormat** *(string) --* Sets LATM / LOAS AAC output for raw containers.

            - **SampleRate** *(float) --* Sample rate in Hz. Valid values depend on rate control
            mode and profile.

            - **Spec** *(string) --* Use MPEG-2 AAC audio instead of MPEG-4 AAC audio for raw or
            MPEG-2 Transport Stream containers.

            - **VbrQuality** *(string) --* VBR Quality Level - Only used if rateControlMode is VBR.

          - **Ac3Settings** *(dict) --* Ac3 Settings

            - **Bitrate** *(float) --* Average bitrate in bits/second. Valid bitrates depend on the
            coding mode.

            - **BitstreamMode** *(string) --* Specifies the bitstream mode (bsmod) for the emitted
            AC-3 stream. See ATSC A/52-2012 for background on these values.

            - **CodingMode** *(string) --* Dolby Digital coding mode. Determines number of channels.

            - **Dialnorm** *(integer) --* Sets the dialnorm for the output. If excluded and input
            audio is Dolby Digital, dialnorm will be passed through.

            - **DrcProfile** *(string) --* If set to filmStandard, adds dynamic range compression
            signaling to the output bitstream as defined in the Dolby Digital specification.

            - **LfeFilter** *(string) --* When set to enabled, applies a 120Hz lowpass filter to the
            LFE channel prior to encoding. Only valid in codingMode32Lfe mode.

            - **MetadataControl** *(string) --* When set to "followInput", encoder metadata will be
            sourced from the DD, DD+, or DolbyE decoder that supplied this audio data. If audio was
            not supplied from one of these streams, then the static metadata settings will be used.

          - **Eac3Settings** *(dict) --* Eac3 Settings

            - **AttenuationControl** *(string) --* When set to attenuate3Db, applies a 3 dB
            attenuation to the surround channels. Only used for 3/2 coding mode.

            - **Bitrate** *(float) --* Average bitrate in bits/second. Valid bitrates depend on the
            coding mode.

            - **BitstreamMode** *(string) --* Specifies the bitstream mode (bsmod) for the emitted
            E-AC-3 stream. See ATSC A/52-2012 (Annex E) for background on these values.

            - **CodingMode** *(string) --* Dolby Digital Plus coding mode. Determines number of
            channels.

            - **DcFilter** *(string) --* When set to enabled, activates a DC highpass filter for all
            input channels.

            - **Dialnorm** *(integer) --* Sets the dialnorm for the output. If blank and input audio
            is Dolby Digital Plus, dialnorm will be passed through.

            - **DrcLine** *(string) --* Sets the Dolby dynamic range compression profile.

            - **DrcRf** *(string) --* Sets the profile for heavy Dolby dynamic range compression,
            ensures that the instantaneous signal peaks do not exceed specified levels.

            - **LfeControl** *(string) --* When encoding 3/2 audio, setting to lfe enables the LFE
            channel

            - **LfeFilter** *(string) --* When set to enabled, applies a 120Hz lowpass filter to the
            LFE channel prior to encoding. Only valid with codingMode32 coding mode.

            - **LoRoCenterMixLevel** *(float) --* Left only/Right only center mix level. Only used
            for 3/2 coding mode.

            - **LoRoSurroundMixLevel** *(float) --* Left only/Right only surround mix level. Only
            used for 3/2 coding mode.

            - **LtRtCenterMixLevel** *(float) --* Left total/Right total center mix level. Only used
            for 3/2 coding mode.

            - **LtRtSurroundMixLevel** *(float) --* Left total/Right total surround mix level. Only
            used for 3/2 coding mode.

            - **MetadataControl** *(string) --* When set to followInput, encoder metadata will be
            sourced from the DD, DD+, or DolbyE decoder that supplied this audio data. If audio was
            not supplied from one of these streams, then the static metadata settings will be used.

            - **PassthroughControl** *(string) --* When set to whenPossible, input DD+ audio will be
            passed through if it is present on the input. This detection is dynamic over the life of
            the transcode. Inputs that alternate between DD+ and non-DD+ content will have a
            consistent DD+ output as the system alternates between passthrough and encoding.

            - **PhaseControl** *(string) --* When set to shift90Degrees, applies a 90-degree phase
            shift to the surround channels. Only used for 3/2 coding mode.

            - **StereoDownmix** *(string) --* Stereo downmix preference. Only used for 3/2 coding
            mode.

            - **SurroundExMode** *(string) --* When encoding 3/2 audio, sets whether an extra center
            back surround channel is matrix encoded into the left and right surround channels.

            - **SurroundMode** *(string) --* When encoding 2/0 audio, sets whether Dolby Surround is
            matrix encoded into the two channels.

          - **Mp2Settings** *(dict) --* Mp2 Settings

            - **Bitrate** *(float) --* Average bitrate in bits/second.

            - **CodingMode** *(string) --* The MPEG2 Audio coding mode. Valid values are
            codingMode10 (for mono) or codingMode20 (for stereo).

            - **SampleRate** *(float) --* Sample rate in Hz.

          - **PassThroughSettings** *(dict) --* Pass Through Settings

        - **LanguageCode** *(string) --* Indicates the language of the audio output track. Only used
        if languageControlMode is useConfigured, or there is no ISO 639 language code specified in
        the input.

        - **LanguageCodeControl** *(string) --* Choosing followInput will cause the ISO 639 language
        code of the output to follow the ISO 639 language code of the input. The languageCode will
        be used when useConfigured is set, or when followInput is selected but there is no ISO 639
        language code specified by the input.

        - **Name** *(string) --* The name of this AudioDescription. Outputs will use this name to
        uniquely identify this AudioDescription. Description names should be unique within this Live
        Event.

        - **RemixSettings** *(dict) --* Settings that control how input audio channels are remixed
        into the output audio channels.

          - **ChannelMappings** *(list) --* Mapping of input channels to output channels, with
          appropriate gain adjustments.

            - *(dict) --* Audio Channel Mapping

              - **InputChannelLevels** *(list) --* Indices and gain values for each input channel
              that should be remixed into this output channel.

                - *(dict) --* Input Channel Level

                  - **Gain** *(integer) --* Remixing value. Units are in dB and acceptable values
                  are within the range from -60 (mute) and 6 dB.

                  - **InputChannel** *(integer) --* The index of the input channel used as a source.

              - **OutputChannel** *(integer) --* The index of the output channel being produced.

          - **ChannelsIn** *(integer) --* Number of input channels to be used.

          - **ChannelsOut** *(integer) --* Number of output channels to be produced. Valid values:
          1, 2, 4, 6, 8

        - **StreamName** *(string) --* Used for MS Smooth and Apple HLS outputs. Indicates the name
        displayed by the player (eg. English, or Director Commentary).

    - **AvailBlanking** *(dict) --* Settings for ad avail blanking.

      - **AvailBlankingImage** *(dict) --* Blanking image to be used. Leave empty for solid black.
      Only bmp and png images are supported.

        - **PasswordParam** *(string) --* key used to extract the password from EC2 Parameter store

        - **Uri** *(string) --* Uniform Resource Identifier - This should be a path to a file
        accessible to the Live system (eg. a http:// URI) depending on the output type. For example,
        a RTMP destination should have a uri simliar to: "rtmp://fmsserver/live".

        - **Username** *(string) --* Documentation update needed

      - **State** *(string) --* When set to enabled, causes video, audio and captions to be blanked
      when insertion metadata is added.

    - **AvailConfiguration** *(dict) --* Event-wide configuration settings for ad avail insertion.

      - **AvailSettings** *(dict) --* Ad avail settings.

        - **Scte35SpliceInsert** *(dict) --* Scte35 Splice Insert

          - **AdAvailOffset** *(integer) --* When specified, this offset (in milliseconds) is added
          to the input Ad Avail PTS time. This only applies to embedded SCTE 104/35 messages and
          does not apply to OOB messages.

          - **NoRegionalBlackoutFlag** *(string) --* When set to ignore, Segment Descriptors with
          noRegionalBlackoutFlag set to 0 will no longer trigger blackouts or Ad Avail slates

          - **WebDeliveryAllowedFlag** *(string) --* When set to ignore, Segment Descriptors with
          webDeliveryAllowedFlag set to 0 will no longer trigger blackouts or Ad Avail slates

        - **Scte35TimeSignalApos** *(dict) --* Scte35 Time Signal Apos

          - **AdAvailOffset** *(integer) --* When specified, this offset (in milliseconds) is added
          to the input Ad Avail PTS time. This only applies to embedded SCTE 104/35 messages and
          does not apply to OOB messages.

          - **NoRegionalBlackoutFlag** *(string) --* When set to ignore, Segment Descriptors with
          noRegionalBlackoutFlag set to 0 will no longer trigger blackouts or Ad Avail slates

          - **WebDeliveryAllowedFlag** *(string) --* When set to ignore, Segment Descriptors with
          webDeliveryAllowedFlag set to 0 will no longer trigger blackouts or Ad Avail slates

    - **BlackoutSlate** *(dict) --* Settings for blackout slate.

      - **BlackoutSlateImage** *(dict) --* Blackout slate image to be used. Leave empty for solid
      black. Only bmp and png images are supported.

        - **PasswordParam** *(string) --* key used to extract the password from EC2 Parameter store

        - **Uri** *(string) --* Uniform Resource Identifier - This should be a path to a file
        accessible to the Live system (eg. a http:// URI) depending on the output type. For example,
        a RTMP destination should have a uri simliar to: "rtmp://fmsserver/live".

        - **Username** *(string) --* Documentation update needed

      - **NetworkEndBlackout** *(string) --* Setting to enabled causes the encoder to blackout the
      video, audio, and captions, and raise the "Network Blackout Image" slate when an SCTE104/35
      Network End Segmentation Descriptor is encountered. The blackout will be lifted when the
      Network Start Segmentation Descriptor is encountered. The Network End and Network Start
      descriptors must contain a network ID that matches the value entered in "Network ID".

      - **NetworkEndBlackoutImage** *(dict) --* Path to local file to use as Network End Blackout
      image. Image will be scaled to fill the entire output raster.

        - **PasswordParam** *(string) --* key used to extract the password from EC2 Parameter store

        - **Uri** *(string) --* Uniform Resource Identifier - This should be a path to a file
        accessible to the Live system (eg. a http:// URI) depending on the output type. For example,
        a RTMP destination should have a uri simliar to: "rtmp://fmsserver/live".

        - **Username** *(string) --* Documentation update needed

      - **NetworkId** *(string) --* Provides Network ID that matches EIDR ID format (e.g.,
      "10.XXXX/XXXX-XXXX-XXXX-XXXX-XXXX-C").

      - **State** *(string) --* When set to enabled, causes video, audio and captions to be blanked
      when indicated by program metadata.

    - **CaptionDescriptions** *(list) --* Settings for caption decriptions

      - *(dict) --* Caption Description

        - **CaptionSelectorName** *(string) --* Specifies which input caption selector to use as a
        caption source when generating output captions. This field should match a captionSelector
        name.

        - **DestinationSettings** *(dict) --* Additional settings for captions destination that
        depend on the destination type.

          - **AribDestinationSettings** *(dict) --* Arib Destination Settings

          - **BurnInDestinationSettings** *(dict) --* Burn In Destination Settings

            - **Alignment** *(string) --* If no explicit xPosition or yPosition is provided, setting
            alignment to centered will place the captions at the bottom center of the output.
            Similarly, setting a left alignment will align captions to the bottom left of the
            output. If x and y positions are given in conjunction with the alignment parameter, the
            font will be justified (either left or centered) relative to those coordinates.
            Selecting "smart" justification will left-justify live subtitles and center-justify
            pre-recorded subtitles. All burn-in and DVB-Sub font settings must match.

            - **BackgroundColor** *(string) --* Specifies the color of the rectangle behind the
            captions. All burn-in and DVB-Sub font settings must match.

            - **BackgroundOpacity** *(integer) --* Specifies the opacity of the background
            rectangle. 255 is opaque; 0 is transparent. Leaving this parameter out is equivalent to
            setting it to 0 (transparent). All burn-in and DVB-Sub font settings must match.

            - **Font** *(dict) --* External font file used for caption burn-in. File extension must
            be 'ttf' or 'tte'. Although the user can select output fonts for many different types of
            input captions, embedded, STL and teletext sources use a strict grid system. Using
            external fonts with these caption sources could cause unexpected display of proportional
            fonts. All burn-in and DVB-Sub font settings must match.

              - **PasswordParam** *(string) --* key used to extract the password from EC2 Parameter
              store

              - **Uri** *(string) --* Uniform Resource Identifier - This should be a path to a file
              accessible to the Live system (eg. a http:// URI) depending on the output type. For
              example, a RTMP destination should have a uri simliar to: "rtmp://fmsserver/live".

              - **Username** *(string) --* Documentation update needed

            - **FontColor** *(string) --* Specifies the color of the burned-in captions. This option
            is not valid for source captions that are STL, 608/embedded or teletext. These source
            settings are already pre-defined by the caption stream. All burn-in and DVB-Sub font
            settings must match.

            - **FontOpacity** *(integer) --* Specifies the opacity of the burned-in captions. 255 is
            opaque; 0 is transparent. All burn-in and DVB-Sub font settings must match.

            - **FontResolution** *(integer) --* Font resolution in DPI (dots per inch); default is
            96 dpi. All burn-in and DVB-Sub font settings must match.

            - **FontSize** *(string) --* When set to 'auto' fontSize will scale depending on the
            size of the output. Giving a positive integer will specify the exact font size in
            points. All burn-in and DVB-Sub font settings must match.

            - **OutlineColor** *(string) --* Specifies font outline color. This option is not valid
            for source captions that are either 608/embedded or teletext. These source settings are
            already pre-defined by the caption stream. All burn-in and DVB-Sub font settings must
            match.

            - **OutlineSize** *(integer) --* Specifies font outline size in pixels. This option is
            not valid for source captions that are either 608/embedded or teletext. These source
            settings are already pre-defined by the caption stream. All burn-in and DVB-Sub font
            settings must match.

            - **ShadowColor** *(string) --* Specifies the color of the shadow cast by the captions.
            All burn-in and DVB-Sub font settings must match.

            - **ShadowOpacity** *(integer) --* Specifies the opacity of the shadow. 255 is opaque; 0
            is transparent. Leaving this parameter out is equivalent to setting it to 0
            (transparent). All burn-in and DVB-Sub font settings must match.

            - **ShadowXOffset** *(integer) --* Specifies the horizontal offset of the shadow
            relative to the captions in pixels. A value of -2 would result in a shadow offset 2
            pixels to the left. All burn-in and DVB-Sub font settings must match.

            - **ShadowYOffset** *(integer) --* Specifies the vertical offset of the shadow relative
            to the captions in pixels. A value of -2 would result in a shadow offset 2 pixels above
            the text. All burn-in and DVB-Sub font settings must match.

            - **TeletextGridControl** *(string) --* Controls whether a fixed grid size will be used
            to generate the output subtitles bitmap. Only applicable for Teletext inputs and
            DVB-Sub/Burn-in outputs.

            - **XPosition** *(integer) --* Specifies the horizontal position of the caption relative
            to the left side of the output in pixels. A value of 10 would result in the captions
            starting 10 pixels from the left of the output. If no explicit xPosition is provided,
            the horizontal caption position will be determined by the alignment parameter. All
            burn-in and DVB-Sub font settings must match.

            - **YPosition** *(integer) --* Specifies the vertical position of the caption relative
            to the top of the output in pixels. A value of 10 would result in the captions starting
            10 pixels from the top of the output. If no explicit yPosition is provided, the caption
            will be positioned towards the bottom of the output. All burn-in and DVB-Sub font
            settings must match.

          - **DvbSubDestinationSettings** *(dict) --* Dvb Sub Destination Settings

            - **Alignment** *(string) --* If no explicit xPosition or yPosition is provided, setting
            alignment to centered will place the captions at the bottom center of the output.
            Similarly, setting a left alignment will align captions to the bottom left of the
            output. If x and y positions are given in conjunction with the alignment parameter, the
            font will be justified (either left or centered) relative to those coordinates.
            Selecting "smart" justification will left-justify live subtitles and center-justify
            pre-recorded subtitles. This option is not valid for source captions that are STL or
            608/embedded. These source settings are already pre-defined by the caption stream. All
            burn-in and DVB-Sub font settings must match.

            - **BackgroundColor** *(string) --* Specifies the color of the rectangle behind the
            captions. All burn-in and DVB-Sub font settings must match.

            - **BackgroundOpacity** *(integer) --* Specifies the opacity of the background
            rectangle. 255 is opaque; 0 is transparent. Leaving this parameter blank is equivalent
            to setting it to 0 (transparent). All burn-in and DVB-Sub font settings must match.

            - **Font** *(dict) --* External font file used for caption burn-in. File extension must
            be 'ttf' or 'tte'. Although the user can select output fonts for many different types of
            input captions, embedded, STL and teletext sources use a strict grid system. Using
            external fonts with these caption sources could cause unexpected display of proportional
            fonts. All burn-in and DVB-Sub font settings must match.

              - **PasswordParam** *(string) --* key used to extract the password from EC2 Parameter
              store

              - **Uri** *(string) --* Uniform Resource Identifier - This should be a path to a file
              accessible to the Live system (eg. a http:// URI) depending on the output type. For
              example, a RTMP destination should have a uri simliar to: "rtmp://fmsserver/live".

              - **Username** *(string) --* Documentation update needed

            - **FontColor** *(string) --* Specifies the color of the burned-in captions. This option
            is not valid for source captions that are STL, 608/embedded or teletext. These source
            settings are already pre-defined by the caption stream. All burn-in and DVB-Sub font
            settings must match.

            - **FontOpacity** *(integer) --* Specifies the opacity of the burned-in captions. 255 is
            opaque; 0 is transparent. All burn-in and DVB-Sub font settings must match.

            - **FontResolution** *(integer) --* Font resolution in DPI (dots per inch); default is
            96 dpi. All burn-in and DVB-Sub font settings must match.

            - **FontSize** *(string) --* When set to auto fontSize will scale depending on the size
            of the output. Giving a positive integer will specify the exact font size in points. All
            burn-in and DVB-Sub font settings must match.

            - **OutlineColor** *(string) --* Specifies font outline color. This option is not valid
            for source captions that are either 608/embedded or teletext. These source settings are
            already pre-defined by the caption stream. All burn-in and DVB-Sub font settings must
            match.

            - **OutlineSize** *(integer) --* Specifies font outline size in pixels. This option is
            not valid for source captions that are either 608/embedded or teletext. These source
            settings are already pre-defined by the caption stream. All burn-in and DVB-Sub font
            settings must match.

            - **ShadowColor** *(string) --* Specifies the color of the shadow cast by the captions.
            All burn-in and DVB-Sub font settings must match.

            - **ShadowOpacity** *(integer) --* Specifies the opacity of the shadow. 255 is opaque; 0
            is transparent. Leaving this parameter blank is equivalent to setting it to 0
            (transparent). All burn-in and DVB-Sub font settings must match.

            - **ShadowXOffset** *(integer) --* Specifies the horizontal offset of the shadow
            relative to the captions in pixels. A value of -2 would result in a shadow offset 2
            pixels to the left. All burn-in and DVB-Sub font settings must match.

            - **ShadowYOffset** *(integer) --* Specifies the vertical offset of the shadow relative
            to the captions in pixels. A value of -2 would result in a shadow offset 2 pixels above
            the text. All burn-in and DVB-Sub font settings must match.

            - **TeletextGridControl** *(string) --* Controls whether a fixed grid size will be used
            to generate the output subtitles bitmap. Only applicable for Teletext inputs and
            DVB-Sub/Burn-in outputs.

            - **XPosition** *(integer) --* Specifies the horizontal position of the caption relative
            to the left side of the output in pixels. A value of 10 would result in the captions
            starting 10 pixels from the left of the output. If no explicit xPosition is provided,
            the horizontal caption position will be determined by the alignment parameter. This
            option is not valid for source captions that are STL, 608/embedded or teletext. These
            source settings are already pre-defined by the caption stream. All burn-in and DVB-Sub
            font settings must match.

            - **YPosition** *(integer) --* Specifies the vertical position of the caption relative
            to the top of the output in pixels. A value of 10 would result in the captions starting
            10 pixels from the top of the output. If no explicit yPosition is provided, the caption
            will be positioned towards the bottom of the output. This option is not valid for source
            captions that are STL, 608/embedded or teletext. These source settings are already
            pre-defined by the caption stream. All burn-in and DVB-Sub font settings must match.

          - **EmbeddedDestinationSettings** *(dict) --* Embedded Destination Settings

          - **EmbeddedPlusScte20DestinationSettings** *(dict) --* Embedded Plus Scte20 Destination
          Settings

          - **RtmpCaptionInfoDestinationSettings** *(dict) --* Rtmp Caption Info Destination
          Settings

          - **Scte20PlusEmbeddedDestinationSettings** *(dict) --* Scte20 Plus Embedded Destination
          Settings

          - **Scte27DestinationSettings** *(dict) --* Scte27 Destination Settings

          - **SmpteTtDestinationSettings** *(dict) --* Smpte Tt Destination Settings

          - **TeletextDestinationSettings** *(dict) --* Teletext Destination Settings

          - **TtmlDestinationSettings** *(dict) --* Ttml Destination Settings

            - **StyleControl** *(string) --* When set to passthrough, passes through style and
            position information from a TTML-like input source (TTML, SMPTE-TT, CFF-TT) to the
            CFF-TT output or TTML output.

          - **WebvttDestinationSettings** *(dict) --* Webvtt Destination Settings

        - **LanguageCode** *(string) --* ISO 639-2 three-digit code:
        http://www.loc.gov/standards/iso639-2/

        - **LanguageDescription** *(string) --* Human readable information to indicate captions
        available for players (eg. English, or Spanish).

        - **Name** *(string) --* Name of the caption description. Used to associate a caption
        description with an output. Names must be unique within an event.

    - **GlobalConfiguration** *(dict) --* Configuration settings that apply to the event as a whole.

      - **InitialAudioGain** *(integer) --* Value to set the initial audio gain for the Live Event.

      - **InputEndAction** *(string) --* Indicates the action to take when the current input
      completes (e.g. end-of-file). When switchAndLoopInputs is configured the encoder will restart
      at the beginning of the first input. When "none" is configured the encoder will transcode
      either black, a solid color, or a user specified slate images per the "Input Loss Behavior"
      configuration until the next input switch occurs (which is controlled through the Channel
      Schedule API).

      - **InputLossBehavior** *(dict) --* Settings for system actions when input is lost.

        - **BlackFrameMsec** *(integer) --* Documentation update needed

        - **InputLossImageColor** *(string) --* When input loss image type is "color" this field
        specifies the color to use. Value: 6 hex characters representing the values of RGB.

        - **InputLossImageSlate** *(dict) --* When input loss image type is "slate" these fields
        specify the parameters for accessing the slate.

          - **PasswordParam** *(string) --* key used to extract the password from EC2 Parameter
          store

          - **Uri** *(string) --* Uniform Resource Identifier - This should be a path to a file
          accessible to the Live system (eg. a http:// URI) depending on the output type. For
          example, a RTMP destination should have a uri simliar to: "rtmp://fmsserver/live".

          - **Username** *(string) --* Documentation update needed

        - **InputLossImageType** *(string) --* Indicates whether to substitute a solid color or a
        slate into the output after input loss exceeds blackFrameMsec.

        - **RepeatFrameMsec** *(integer) --* Documentation update needed

      - **OutputLockingMode** *(string) --* Indicates how MediaLive pipelines are synchronized.
      PIPELINELOCKING - MediaLive will attempt to synchronize the output of each pipeline to the
      other. EPOCHLOCKING - MediaLive will attempt to synchronize the output of each pipeline to the
      Unix epoch.

      - **OutputTimingSource** *(string) --* Indicates whether the rate of frames emitted by the
      Live encoder should be paced by its system clock (which optionally may be locked to another
      source via NTP) or should be locked to the clock of the source that is providing the input
      stream.

      - **SupportLowFramerateInputs** *(string) --* Adjusts video input buffer for streams with very
      low video framerates. This is commonly set to enabled for music channels with less than one
      video frame per second.

    - **NielsenConfiguration** *(dict) --* Nielsen configuration settings.

      - **DistributorId** *(string) --* Enter the Distributor ID assigned to your organization by
      Nielsen.

      - **NielsenPcmToId3Tagging** *(string) --* Enables Nielsen PCM to ID3 tagging

    - **OutputGroups** *(list) --* Placeholder documentation for __listOfOutputGroup

      - *(dict) --* Output groups for this Live Event. Output groups contain information about where
      streams should be distributed.

        - **Name** *(string) --* Custom output group name optionally defined by the user. Only
        letters, numbers, and the underscore character allowed; only 32 characters allowed.

        - **OutputGroupSettings** *(dict) --* Settings associated with the output group.

          - **ArchiveGroupSettings** *(dict) --* Archive Group Settings

            - **Destination** *(dict) --* A directory and base filename where archive files should
            be written.

              - **DestinationRefId** *(string) --* Placeholder documentation for __string

            - **RolloverInterval** *(integer) --* Number of seconds to write to archive file before
            closing and starting a new one.

          - **FrameCaptureGroupSettings** *(dict) --* Frame Capture Group Settings

            - **Destination** *(dict) --* The destination for the frame capture files. Either the
            URI for an Amazon S3 bucket and object, plus a file name prefix (for example,
            s3ssl://sportsDelivery/highlights/20180820/curling_) or the URI for a MediaStore
            container, plus a file name prefix (for example,
            mediastoressl://sportsDelivery/20180820/curling_). The final file names consist of the
            prefix from the destination field (for example, "curling_") + name modifier + the
            counter (5 digits, starting from 00001) + extension (which is always .jpg). For example,
            curlingLow.00001.jpg

              - **DestinationRefId** *(string) --* Placeholder documentation for __string

          - **HlsGroupSettings** *(dict) --* Hls Group Settings

            - **AdMarkers** *(list) --* Choose one or more ad marker types to pass SCTE35 signals
            through to this group of Apple HLS outputs.

              - *(string) --* Hls Ad Markers

            - **BaseUrlContent** *(string) --* A partial URI prefix that will be prepended to each
            output in the media .m3u8 file. Can be used if base manifest is delivered from a
            different URL than the main .m3u8 file.

            - **BaseUrlManifest** *(string) --* A partial URI prefix that will be prepended to each
            output in the media .m3u8 file. Can be used if base manifest is delivered from a
            different URL than the main .m3u8 file.

            - **CaptionLanguageMappings** *(list) --* Mapping of up to 4 caption channels to caption
            languages. Is only meaningful if captionLanguageSetting is set to "insert".

              - *(dict) --* Maps a caption channel to an ISO 693-2 language code
              (http://www.loc.gov/standards/iso639-2), with an optional description.

                - **CaptionChannel** *(integer) --* The closed caption channel being described by
                this CaptionLanguageMapping. Each channel mapping must have a unique channel number
                (maximum of 4)

                - **LanguageCode** *(string) --* Three character ISO 639-2 language code (see
                http://www.loc.gov/standards/iso639-2)

                - **LanguageDescription** *(string) --* Textual description of language

            - **CaptionLanguageSetting** *(string) --* Applies only to 608 Embedded output captions.
            insert: Include CLOSED-CAPTIONS lines in the manifest. Specify at least one language in
            the CC1 Language Code field. One CLOSED-CAPTION line is added for each Language Code you
            specify. Make sure to specify the languages in the order in which they appear in the
            original source (if the source is embedded format) or the order of the caption selectors
            (if the source is other than embedded). Otherwise, languages in the manifest will not
            match up properly with the output captions. none: Include CLOSED-CAPTIONS=
                NONE line in
            the manifest. omit: Omit any CLOSED-CAPTIONS line from the manifest.

            - **ClientCache** *(string) --* When set to "disabled", sets the #EXT-X-ALLOW-CACHE:no
            tag in the manifest, which prevents clients from saving media segments for later replay.

            - **CodecSpecification** *(string) --* Specification to use (RFC-6381 or the default
            RFC-4281) during m3u8 playlist generation.

            - **ConstantIv** *(string) --* For use with encryptionType. This is a 128-bit, 16-byte
            hex value represented by a 32-character text string. If ivSource is set to "explicit"
            then this parameter is required and is used as the IV for encryption.

            - **Destination** *(dict) --* A directory or HTTP destination for the HLS segments,
            manifest files, and encryption keys (if enabled).

              - **DestinationRefId** *(string) --* Placeholder documentation for __string

            - **DirectoryStructure** *(string) --* Place segments in subdirectories.

            - **EncryptionType** *(string) --* Encrypts the segments with the given encryption
            scheme. Exclude this parameter if no encryption is desired.

            - **HlsCdnSettings** *(dict) --* Parameters that control interactions with the CDN.

              - **HlsAkamaiSettings** *(dict) --* Hls Akamai Settings

                - **ConnectionRetryInterval** *(integer) --* Number of seconds to wait before
                retrying connection to the CDN if the connection is lost.

                - **FilecacheDuration** *(integer) --* Size in seconds of file cache for streaming
                outputs.

                - **HttpTransferMode** *(string) --* Specify whether or not to use chunked transfer
                encoding to Akamai. User should contact Akamai to enable this feature.

                - **NumRetries** *(integer) --* Number of retry attempts that will be made before
                the Live Event is put into an error state.

                - **RestartDelay** *(integer) --* If a streaming output fails, number of seconds to
                wait until a restart is initiated. A value of 0 means never restart.

                - **Salt** *(string) --* Salt for authenticated Akamai.

                - **Token** *(string) --* Token parameter for authenticated akamai. If not
                specified, _gda_ is used.

              - **HlsBasicPutSettings** *(dict) --* Hls Basic Put Settings

                - **ConnectionRetryInterval** *(integer) --* Number of seconds to wait before
                retrying connection to the CDN if the connection is lost.

                - **FilecacheDuration** *(integer) --* Size in seconds of file cache for streaming
                outputs.

                - **NumRetries** *(integer) --* Number of retry attempts that will be made before
                the Live Event is put into an error state.

                - **RestartDelay** *(integer) --* If a streaming output fails, number of seconds to
                wait until a restart is initiated. A value of 0 means never restart.

              - **HlsMediaStoreSettings** *(dict) --* Hls Media Store Settings

                - **ConnectionRetryInterval** *(integer) --* Number of seconds to wait before
                retrying connection to the CDN if the connection is lost.

                - **FilecacheDuration** *(integer) --* Size in seconds of file cache for streaming
                outputs.

                - **MediaStoreStorageClass** *(string) --* When set to temporal, output files are
                stored in non-persistent memory for faster reading and writing.

                - **NumRetries** *(integer) --* Number of retry attempts that will be made before
                the Live Event is put into an error state.

                - **RestartDelay** *(integer) --* If a streaming output fails, number of seconds to
                wait until a restart is initiated. A value of 0 means never restart.

              - **HlsWebdavSettings** *(dict) --* Hls Webdav Settings

                - **ConnectionRetryInterval** *(integer) --* Number of seconds to wait before
                retrying connection to the CDN if the connection is lost.

                - **FilecacheDuration** *(integer) --* Size in seconds of file cache for streaming
                outputs.

                - **HttpTransferMode** *(string) --* Specify whether or not to use chunked transfer
                encoding to WebDAV.

                - **NumRetries** *(integer) --* Number of retry attempts that will be made before
                the Live Event is put into an error state.

                - **RestartDelay** *(integer) --* If a streaming output fails, number of seconds to
                wait until a restart is initiated. A value of 0 means never restart.

            - **IFrameOnlyPlaylists** *(string) --* DISABLED: Do not create an I-frame-only
            manifest, but do create the master and media manifests (according to the Output
            Selection field). STANDARD: Create an I-frame-only manifest for each output that
            contains video, as well as the other manifests (according to the Output Selection
            field). The I-frame manifest contains a #EXT-X-I-FRAMES-ONLY tag to indicate it is
            I-frame only, and one or more #EXT-X-BYTERANGE entries identifying the I-frame position.
            For example, #EXT-X-BYTERANGE:160364@1461888"

            - **IndexNSegments** *(integer) --* Applies only if Mode field is LIVE. Specifies the
            maximum number of segments in the media manifest file. After this maximum, older
            segments are removed from the media manifest. This number must be less than or equal to
            the Keep Segments field.

            - **InputLossAction** *(string) --* Parameter that control output group behavior on
            input loss.

            - **IvInManifest** *(string) --* For use with encryptionType. The IV (Initialization
            Vector) is a 128-bit number used in conjunction with the key for encrypting blocks. If
            set to "include", IV is listed in the manifest, otherwise the IV is not in the manifest.

            - **IvSource** *(string) --* For use with encryptionType. The IV (Initialization Vector)
            is a 128-bit number used in conjunction with the key for encrypting blocks. If this
            setting is "followsSegmentNumber", it will cause the IV to change every segment (to
            match the segment number). If this is set to "explicit", you must enter a constantIv
            value.

            - **KeepSegments** *(integer) --* Applies only if Mode field is LIVE. Specifies the
            number of media segments (.ts files) to retain in the destination directory.

            - **KeyFormat** *(string) --* The value specifies how the key is represented in the
            resource identified by the URI. If parameter is absent, an implicit value of "identity"
            is used. A reverse DNS string can also be given.

            - **KeyFormatVersions** *(string) --* Either a single positive integer version value or
            a slash delimited list of version values (1/2/3).

            - **KeyProviderSettings** *(dict) --* The key provider settings.

              - **StaticKeySettings** *(dict) --* Static Key Settings

                - **KeyProviderServer** *(dict) --* The URL of the license server used for
                protecting content.

                  - **PasswordParam** *(string) --* key used to extract the password from EC2
                  Parameter store

                  - **Uri** *(string) --* Uniform Resource Identifier - This should be a path to a
                  file accessible to the Live system (eg. a http:// URI) depending on the output
                  type. For example, a RTMP destination should have a uri simliar to:
                  "rtmp://fmsserver/live".

                  - **Username** *(string) --* Documentation update needed

                - **StaticKeyValue** *(string) --* Static key value as a 32 character hexadecimal
                string.

            - **ManifestCompression** *(string) --* When set to gzip, compresses HLS playlist.

            - **ManifestDurationFormat** *(string) --* Indicates whether the output manifest should
            use floating point or integer values for segment duration.

            - **MinSegmentLength** *(integer) --* When set, minimumSegmentLength is enforced by
            looking ahead and back within the specified range for a nearby avail and extending the
            segment size if needed.

            - **Mode** *(string) --* If "vod", all segments are indexed and kept permanently in the
            destination and manifest. If "live", only the number segments specified in keepSegments
            and indexNSegments are kept; newer segments replace older segments, which may prevent
            players from rewinding all the way to the beginning of the event. VOD mode uses HLS
            EXT-X-PLAYLIST-TYPE of EVENT while the channel is running, converting it to a "VOD" type
            manifest on completion of the stream.

            - **OutputSelection** *(string) --* MANIFESTSANDSEGMENTS: Generates manifests (master
            manifest, if applicable, and media manifests) for this output group. SEGMENTSONLY: Does
            not generate any manifests for this output group.

            - **ProgramDateTime** *(string) --* Includes or excludes EXT-X-PROGRAM-DATE-TIME tag in
            .m3u8 manifest files. The value is calculated as follows: either the program date and
            time are initialized using the input timecode source, or the time is initialized using
            the input timecode source and the date is initialized using the timestampOffset.

            - **ProgramDateTimePeriod** *(integer) --* Period of insertion of
            EXT-X-PROGRAM-DATE-TIME entry, in seconds.

            - **RedundantManifest** *(string) --* ENABLED: The master manifest (.m3u8 file) for each
            pipeline includes information about both pipelines: first its own media files, then the
            media files of the other pipeline. This feature allows playout device that support stale
            manifest detection to switch from one manifest to the other, when the current manifest
            seems to be stale. There are still two destinations and two master manifests, but both
            master manifests reference the media files from both pipelines. DISABLED: The master
            manifest (.m3u8 file) for each pipeline includes information about its own pipeline
            only. For an HLS output group with MediaPackage as the destination, the DISABLED
            behavior is always followed. MediaPackage regenerates the manifests it serves to players
            so a redundant manifest from MediaLive is irrelevant.

            - **SegmentLength** *(integer) --* Length of MPEG-2 Transport Stream segments to create
            (in seconds). Note that segments will end on the next keyframe after this number of
            seconds, so actual segment length may be longer.

            - **SegmentationMode** *(string) --* useInputSegmentation has been deprecated. The
            configured segment size is always used.

            - **SegmentsPerSubdirectory** *(integer) --* Number of segments to write to a
            subdirectory before starting a new one. directoryStructure must be subdirectoryPerStream
            for this setting to have an effect.

            - **StreamInfResolution** *(string) --* Include or exclude RESOLUTION attribute for
            video in EXT-X-STREAM-INF tag of variant manifest.

            - **TimedMetadataId3Frame** *(string) --* Indicates ID3 frame that has the timecode.

            - **TimedMetadataId3Period** *(integer) --* Timed Metadata interval in seconds.

            - **TimestampDeltaMilliseconds** *(integer) --* Provides an extra millisecond delta
            offset to fine tune the timestamps.

            - **TsFileMode** *(string) --* SEGMENTEDFILES: Emit the program as segments - multiple
            .ts media files. SINGLEFILE: Applies only if Mode field is VOD. Emit the program as a
            single .ts media file. The media manifest includes #EXT-X-BYTERANGE tags to index
            segments for playback. A typical use for this value is when sending the output to AWS
            Elemental MediaConvert, which can accept only a single media file. Playback while the
            channel is running is not guaranteed due to HTTP server caching.

          - **MediaPackageGroupSettings** *(dict) --* Media Package Group Settings

            - **Destination** *(dict) --* MediaPackage channel destination.

              - **DestinationRefId** *(string) --* Placeholder documentation for __string

          - **MsSmoothGroupSettings** *(dict) --* Ms Smooth Group Settings

            - **AcquisitionPointId** *(string) --* The value of the "Acquisition Point Identity"
            element used in each message placed in the sparse track. Only enabled if sparseTrackType
            is not "none".

            - **AudioOnlyTimecodeControl** *(string) --* If set to passthrough for an audio-only MS
            Smooth output, the fragment absolute time will be set to the current timecode. This
            option does not write timecodes to the audio elementary stream.

            - **CertificateMode** *(string) --* If set to verifyAuthenticity, verify the https
            certificate chain to a trusted Certificate Authority (CA). This will cause https outputs
            to self-signed certificates to fail.

            - **ConnectionRetryInterval** *(integer) --* Number of seconds to wait before retrying
            connection to the IIS server if the connection is lost. Content will be cached during
            this time and the cache will be be delivered to the IIS server once the connection is
            re-established.

            - **Destination** *(dict) --* Smooth Streaming publish point on an IIS server. Elemental
            Live acts as a "Push" encoder to IIS.

              - **DestinationRefId** *(string) --* Placeholder documentation for __string

            - **EventId** *(string) --* MS Smooth event ID to be sent to the IIS server. Should only
            be specified if eventIdMode is set to useConfigured.

            - **EventIdMode** *(string) --* Specifies whether or not to send an event ID to the IIS
            server. If no event ID is sent and the same Live Event is used without changing the
            publishing point, clients might see cached video from the previous run. Options: -
            "useConfigured" - use the value provided in eventId - "useTimestamp" - generate and send
            an event ID based on the current timestamp - "noEventId" - do not send an event ID to
            the IIS server.

            - **EventStopBehavior** *(string) --* When set to sendEos, send EOS signal to IIS server
            when stopping the event

            - **FilecacheDuration** *(integer) --* Size in seconds of file cache for streaming
            outputs.

            - **FragmentLength** *(integer) --* Length of mp4 fragments to generate (in seconds).
            Fragment length must be compatible with GOP size and framerate.

            - **InputLossAction** *(string) --* Parameter that control output group behavior on
            input loss.

            - **NumRetries** *(integer) --* Number of retry attempts.

            - **RestartDelay** *(integer) --* Number of seconds before initiating a restart due to
            output failure, due to exhausting the numRetries on one segment, or exceeding
            filecacheDuration.

            - **SegmentationMode** *(string) --* useInputSegmentation has been deprecated. The
            configured segment size is always used.

            - **SendDelayMs** *(integer) --* Number of milliseconds to delay the output from the
            second pipeline.

            - **SparseTrackType** *(string) --* If set to scte35, use incoming SCTE-35 messages to
            generate a sparse track in this group of MS-Smooth outputs.

            - **StreamManifestBehavior** *(string) --* When set to send, send stream manifest so
            publishing point doesn't start until all streams start.

            - **TimestampOffset** *(string) --* Timestamp offset for the event. Only used if
            timestampOffsetMode is set to useConfiguredOffset.

            - **TimestampOffsetMode** *(string) --* Type of timestamp date offset to use. -
            useEventStartDate: Use the date the event was started as the offset -
            useConfiguredOffset: Use an explicitly configured date as the offset

          - **MultiplexGroupSettings** *(dict) --* Multiplex Group Settings

          - **RtmpGroupSettings** *(dict) --* Rtmp Group Settings

            - **AuthenticationScheme** *(string) --* Authentication scheme to use when connecting
            with CDN

            - **CacheFullBehavior** *(string) --* Controls behavior when content cache fills up. If
            remote origin server stalls the RTMP connection and does not accept content fast enough
            the 'Media Cache' will fill up. When the cache reaches the duration specified by
            cacheLength the cache will stop accepting new content. If set to disconnectImmediately,
            the RTMP output will force a disconnect. Clear the media cache, and reconnect after
            restartDelay seconds. If set to waitForServer, the RTMP output will wait up to 5 minutes
            to allow the origin server to begin accepting data again.

            - **CacheLength** *(integer) --* Cache length, in seconds, is used to calculate buffer
            size.

            - **CaptionData** *(string) --* Controls the types of data that passes to onCaptionInfo
            outputs. If set to 'all' then 608 and 708 carried DTVCC data will be passed. If set to
            'field1AndField2608' then DTVCC data will be stripped out, but 608 data from both fields
            will be passed. If set to 'field1608' then only the data carried in 608 from field 1
            video will be passed.

            - **InputLossAction** *(string) --* Controls the behavior of this RTMP group if input
            becomes unavailable. - emitOutput: Emit a slate until input returns. - pauseOutput: Stop
            transmitting data until input returns. This does not close the underlying RTMP
            connection.

            - **RestartDelay** *(integer) --* If a streaming output fails, number of seconds to wait
            until a restart is initiated. A value of 0 means never restart.

          - **UdpGroupSettings** *(dict) --* Udp Group Settings

            - **InputLossAction** *(string) --* Specifies behavior of last resort when input video
            is lost, and no more backup inputs are available. When dropTs is selected the entire
            transport stream will stop being emitted. When dropProgram is selected the program can
            be dropped from the transport stream (and replaced with null packets to meet the TS
            bitrate requirement). Or, when emitProgram is chosen the transport stream will continue
            to be produced normally with repeat frames, black frames, or slate frames substituted
            for the absent input video.

            - **TimedMetadataId3Frame** *(string) --* Indicates ID3 frame that has the timecode.

            - **TimedMetadataId3Period** *(integer) --* Timed Metadata interval in seconds.

        - **Outputs** *(list) --* Placeholder documentation for __listOfOutput

          - *(dict) --* Output settings. There can be multiple outputs within a group.

            - **AudioDescriptionNames** *(list) --* The names of the AudioDescriptions used as audio
            sources for this output.

              - *(string) --* Placeholder documentation for __string

            - **CaptionDescriptionNames** *(list) --* The names of the CaptionDescriptions used as
            caption sources for this output.

              - *(string) --* Placeholder documentation for __string

            - **OutputName** *(string) --* The name used to identify an output.

            - **OutputSettings** *(dict) --* Output type-specific settings.

              - **ArchiveOutputSettings** *(dict) --* Archive Output Settings

                - **ContainerSettings** *(dict) --* Settings specific to the container type of the
                file.

                  - **M2tsSettings** *(dict) --* M2ts Settings

                    - **AbsentInputAudioBehavior** *(string) --* When set to drop, output audio
                    streams will be removed from the program if the selected input audio stream is
                    removed from the input. This allows the output audio configuration to
                    dynamically change based on input configuration. If this is set to
                    encodeSilence, all output audio streams will output encoded silence when not
                    connected to an active input stream.

                    - **Arib** *(string) --* When set to enabled, uses ARIB-compliant field muxing
                    and removes video descriptor.

                    - **AribCaptionsPid** *(string) --* Packet Identifier (PID) for ARIB Captions in
                    the transport stream. Can be entered as a decimal or hexadecimal value. Valid
                    values are 32 (or 0x20)..8182 (or 0x1ff6).

                    - **AribCaptionsPidControl** *(string) --* If set to auto, pid number used for
                    ARIB Captions will be auto-selected from unused pids. If set to useConfigured,
                    ARIB Captions will be on the configured pid number.

                    - **AudioBufferModel** *(string) --* When set to dvb, uses DVB buffer model for
                    Dolby Digital audio. When set to atsc, the ATSC model is used.

                    - **AudioFramesPerPes** *(integer) --* The number of audio frames to insert for
                    each PES packet.

                    - **AudioPids** *(string) --* Packet Identifier (PID) of the elementary audio
                    stream(s) in the transport stream. Multiple values are accepted, and can be
                    entered in ranges and/or by comma separation. Can be entered as decimal or
                    hexadecimal values. Each PID specified must be in the range of 32 (or
                    0x20)..8182 (or 0x1ff6).

                    - **AudioStreamType** *(string) --* When set to atsc, uses stream type = 0x81
                    for AC3 and stream type =
                         0x87 for EAC3. When set to dvb, uses stream type =
                    0x06.

                    - **Bitrate** *(integer) --* The output bitrate of the transport stream in bits
                    per second. Setting to 0 lets the muxer automatically determine the appropriate
                    bitrate.

                    - **BufferModel** *(string) --* If set to multiplex, use multiplex buffer model
                    for accurate interleaving. Setting to bufferModel to none can lead to lower
                    latency, but low-memory devices may not be able to play back the stream without
                    interruptions.

                    - **CcDescriptor** *(string) --* When set to enabled, generates
                    captionServiceDescriptor in PMT.

                    - **DvbNitSettings** *(dict) --* Inserts DVB Network Information Table (NIT) at
                    the specified table repetition interval.

                      - **NetworkId** *(integer) --* The numeric value placed in the Network
                      Information Table (NIT).

                      - **NetworkName** *(string) --* The network name text placed in the
                      networkNameDescriptor inside the Network Information Table. Maximum length is
                      256 characters.

                      - **RepInterval** *(integer) --* The number of milliseconds between instances
                      of this table in the output transport stream.

                    - **DvbSdtSettings** *(dict) --* Inserts DVB Service Description Table (SDT) at
                    the specified table repetition interval.

                      - **OutputSdt** *(string) --* Selects method of inserting SDT information into
                      output stream. The sdtFollow setting copies SDT information from input stream
                      to output stream. The sdtFollowIfPresent setting copies SDT information from
                      input stream to output stream if SDT information is present in the input,
                      otherwise it will fall back on the user-defined values. The sdtManual setting
                      means user will enter the SDT information. The sdtNone setting means output
                      stream will not contain SDT information.

                      - **RepInterval** *(integer) --* The number of milliseconds between instances
                      of this table in the output transport stream.

                      - **ServiceName** *(string) --* The service name placed in the
                      serviceDescriptor in the Service Description Table. Maximum length is 256
                      characters.

                      - **ServiceProviderName** *(string) --* The service provider name placed in
                      the serviceDescriptor in the Service Description Table. Maximum length is 256
                      characters.

                    - **DvbSubPids** *(string) --* Packet Identifier (PID) for input source DVB
                    Subtitle data to this output. Multiple values are accepted, and can be entered
                    in ranges and/or by comma separation. Can be entered as decimal or hexadecimal
                    values. Each PID specified must be in the range of 32 (or 0x20)..8182 (or
                    0x1ff6).

                    - **DvbTdtSettings** *(dict) --* Inserts DVB Time and Date Table (TDT) at the
                    specified table repetition interval.

                      - **RepInterval** *(integer) --* The number of milliseconds between instances
                      of this table in the output transport stream.

                    - **DvbTeletextPid** *(string) --* Packet Identifier (PID) for input source DVB
                    Teletext data to this output. Can be entered as a decimal or hexadecimal value.
                    Valid values are 32 (or 0x20)..8182 (or 0x1ff6).

                    - **Ebif** *(string) --* If set to passthrough, passes any EBIF data from the
                    input source to this output.

                    - **EbpAudioInterval** *(string) --* When videoAndFixedIntervals is selected,
                    audio EBP markers will be added to partitions 3 and 4. The interval between
                    these additional markers will be fixed, and will be slightly shorter than the
                    video EBP marker interval. Only available when EBP Cablelabs segmentation
                    markers are selected. Partitions 1 and 2 will always follow the video interval.

                    - **EbpLookaheadMs** *(integer) --* When set, enforces that Encoder Boundary
                    Points do not come within the specified time interval of each other by looking
                    ahead at input video. If another EBP is going to come in within the specified
                    time interval, the current EBP is not emitted, and the segment is "stretched" to
                    the next marker. The lookahead value does not add latency to the system. The
                    Live Event must be configured elsewhere to create sufficient latency to make the
                    lookahead accurate.

                    - **EbpPlacement** *(string) --* Controls placement of EBP on Audio PIDs. If set
                    to videoAndAudioPids, EBP markers will be placed on the video PID and all audio
                    PIDs. If set to videoPid, EBP markers will be placed on only the video PID.

                    - **EcmPid** *(string) --* This field is unused and deprecated.

                    - **EsRateInPes** *(string) --* Include or exclude the ES Rate field in the PES
                    header.

                    - **EtvPlatformPid** *(string) --* Packet Identifier (PID) for input source ETV
                    Platform data to this output. Can be entered as a decimal or hexadecimal value.
                    Valid values are 32 (or 0x20)..8182 (or 0x1ff6).

                    - **EtvSignalPid** *(string) --* Packet Identifier (PID) for input source ETV
                    Signal data to this output. Can be entered as a decimal or hexadecimal value.
                    Valid values are 32 (or 0x20)..8182 (or 0x1ff6).

                    - **FragmentTime** *(float) --* The length in seconds of each fragment. Only
                    used with EBP markers.

                    - **Klv** *(string) --* If set to passthrough, passes any KLV data from the
                    input source to this output.

                    - **KlvDataPids** *(string) --* Packet Identifier (PID) for input source KLV
                    data to this output. Multiple values are accepted, and can be entered in ranges
                    and/or by comma separation. Can be entered as decimal or hexadecimal values.
                    Each PID specified must be in the range of 32 (or 0x20)..8182 (or 0x1ff6).

                    - **NielsenId3Behavior** *(string) --* If set to passthrough, Nielsen inaudible
                    tones for media tracking will be detected in the input audio and an equivalent
                    ID3 tag will be inserted in the output.

                    - **NullPacketBitrate** *(float) --* Value in bits per second of extra null
                    packets to insert into the transport stream. This can be used if a downstream
                    encryption system requires periodic null packets.

                    - **PatInterval** *(integer) --* The number of milliseconds between instances of
                    this table in the output transport stream. Valid values are 0, 10..1000.

                    - **PcrControl** *(string) --* When set to pcrEveryPesPacket, a Program Clock
                    Reference value is inserted for every Packetized Elementary Stream (PES) header.
                    This parameter is effective only when the PCR PID is the same as the video or
                    audio elementary stream.

                    - **PcrPeriod** *(integer) --* Maximum time in milliseconds between Program
                    Clock Reference (PCRs) inserted into the transport stream.

                    - **PcrPid** *(string) --* Packet Identifier (PID) of the Program Clock
                    Reference (PCR) in the transport stream. When no value is given, the encoder
                    will assign the same value as the Video PID. Can be entered as a decimal or
                    hexadecimal value. Valid values are 32 (or 0x20)..8182 (or 0x1ff6).

                    - **PmtInterval** *(integer) --* The number of milliseconds between instances of
                    this table in the output transport stream. Valid values are 0, 10..1000.

                    - **PmtPid** *(string) --* Packet Identifier (PID) for the Program Map Table
                    (PMT) in the transport stream. Can be entered as a decimal or hexadecimal value.
                    Valid values are 32 (or 0x20)..8182 (or 0x1ff6).

                    - **ProgramNum** *(integer) --* The value of the program number field in the
                    Program Map Table.

                    - **RateMode** *(string) --* When vbr, does not insert null packets into
                    transport stream to fill specified bitrate. The bitrate setting acts as the
                    maximum bitrate when vbr is set.

                    - **Scte27Pids** *(string) --* Packet Identifier (PID) for input source SCTE-27
                    data to this output. Multiple values are accepted, and can be entered in ranges
                    and/or by comma separation. Can be entered as decimal or hexadecimal values.
                    Each PID specified must be in the range of 32 (or 0x20)..8182 (or 0x1ff6).

                    - **Scte35Control** *(string) --* Optionally pass SCTE-35 signals from the input
                    source to this output.

                    - **Scte35Pid** *(string) --* Packet Identifier (PID) of the SCTE-35 stream in
                    the transport stream. Can be entered as a decimal or hexadecimal value. Valid
                    values are 32 (or 0x20)..8182 (or 0x1ff6).

                    - **SegmentationMarkers** *(string) --* Inserts segmentation markers at each
                    segmentationTime period. raiSegstart sets the Random Access Indicator bit in the
                    adaptation field. raiAdapt sets the RAI bit and adds the current timecode in the
                    private data bytes. psiSegstart inserts PAT and PMT tables at the start of
                    segments. ebp adds Encoder Boundary Point information to the adaptation field as
                    per OpenCable specification OC-SP-EBP-I01-130118. ebpLegacy adds Encoder
                    Boundary Point information to the adaptation field using a legacy proprietary
                    format.

                    - **SegmentationStyle** *(string) --* The segmentation style parameter controls
                    how segmentation markers are inserted into the transport stream. With avails, it
                    is possible that segments may be truncated, which can influence where future
                    segmentation markers are inserted. When a segmentation style of "resetCadence"
                    is selected and a segment is truncated due to an avail, we will reset the
                    segmentation cadence. This means the subsequent segment will have a duration of
                    $segmentationTime seconds. When a segmentation style of "maintainCadence" is
                    selected and a segment is truncated due to an avail, we will not reset the
                    segmentation cadence. This means the subsequent segment will likely be truncated
                    as well. However, all segments after that will have a duration of
                    $segmentationTime seconds. Note that EBP lookahead is a slight exception to this
                    rule.

                    - **SegmentationTime** *(float) --* The length in seconds of each segment.
                    Required unless markers is set to None_.

                    - **TimedMetadataBehavior** *(string) --* When set to passthrough, timed
                    metadata will be passed through from input to output.

                    - **TimedMetadataPid** *(string) --* Packet Identifier (PID) of the timed
                    metadata stream in the transport stream. Can be entered as a decimal or
                    hexadecimal value. Valid values are 32 (or 0x20)..8182 (or 0x1ff6).

                    - **TransportStreamId** *(integer) --* The value of the transport stream ID
                    field in the Program Map Table.

                    - **VideoPid** *(string) --* Packet Identifier (PID) of the elementary video
                    stream in the transport stream. Can be entered as a decimal or hexadecimal
                    value. Valid values are 32 (or 0x20)..8182 (or 0x1ff6).

                - **Extension** *(string) --* Output file extension. If excluded, this will be
                auto-selected from the container type.

                - **NameModifier** *(string) --* String concatenated to the end of the destination
                filename. Required for multiple outputs of the same type.

              - **FrameCaptureOutputSettings** *(dict) --* Frame Capture Output Settings

                - **NameModifier** *(string) --* Required if the output group contains more than one
                output. This modifier forms part of the output file name.

              - **HlsOutputSettings** *(dict) --* Hls Output Settings

                - **HlsSettings** *(dict) --* Settings regarding the underlying stream. These
                settings are different for audio-only outputs.

                  - **AudioOnlyHlsSettings** *(dict) --* Audio Only Hls Settings

                    - **AudioGroupId** *(string) --* Specifies the group to which the audio
                    Rendition belongs.

                    - **AudioOnlyImage** *(dict) --* Optional. Specifies the .jpg or .png image to
                    use as the cover art for an audio-only output. We recommend a low bit-size file
                    because the image increases the output audio bandwidth. The image is attached to
                    the audio as an ID3 tag, frame type APIC, picture type 0x10, as per the "ID3 tag
                    version 2.4.0 - Native Frames" standard.

                      - **PasswordParam** *(string) --* key used to extract the password from EC2
                      Parameter store

                      - **Uri** *(string) --* Uniform Resource Identifier - This should be a path to
                      a file accessible to the Live system (eg. a http:// URI) depending on the
                      output type. For example, a RTMP destination should have a uri simliar to:
                      "rtmp://fmsserver/live".

                      - **Username** *(string) --* Documentation update needed

                    - **AudioTrackType** *(string) --* Four types of audio-only tracks are
                    supported: Audio-Only Variant Stream The client can play back this audio-only
                    stream instead of video in low-bandwidth scenarios. Represented as an
                    EXT-X-STREAM-INF in the HLS manifest. Alternate Audio, Auto Select, Default
                    Alternate rendition that the client should try to play back by default.
                    Represented as an EXT-X-MEDIA in the HLS manifest with DEFAULT=
                        YES,
                    AUTOSELECT=
                        YES Alternate Audio, Auto Select, Not Default Alternate rendition
                    that the client may try to play back by default. Represented as an EXT-X-MEDIA
                    in the HLS manifest with DEFAULT=NO, AUTOSELECT=
                        YES Alternate Audio, not Auto
                    Select Alternate rendition that the client will not try to play back by default.
                    Represented as an EXT-X-MEDIA in the HLS manifest with DEFAULT=
                        NO, AUTOSELECT=NO

                  - **StandardHlsSettings** *(dict) --* Standard Hls Settings

                    - **AudioRenditionSets** *(string) --* List all the audio groups that are used
                    with the video output stream. Input all the audio GROUP-IDs that are associated
                    to the video, separate by ','.

                    - **M3u8Settings** *(dict) --* Settings information for the .m3u8 container

                      - **AudioFramesPerPes** *(integer) --* The number of audio frames to insert
                      for each PES packet.

                      - **AudioPids** *(string) --* Packet Identifier (PID) of the elementary audio
                      stream(s) in the transport stream. Multiple values are accepted, and can be
                      entered in ranges and/or by comma separation. Can be entered as decimal or
                      hexadecimal values.

                      - **EcmPid** *(string) --* This parameter is unused and deprecated.

                      - **NielsenId3Behavior** *(string) --* If set to passthrough, Nielsen
                      inaudible tones for media tracking will be detected in the input audio and an
                      equivalent ID3 tag will be inserted in the output.

                      - **PatInterval** *(integer) --* The number of milliseconds between instances
                      of this table in the output transport stream. A value of \\"0\\" writes out
                      the PMT once per segment file.

                      - **PcrControl** *(string) --* When set to pcrEveryPesPacket, a Program Clock
                      Reference value is inserted for every Packetized Elementary Stream (PES)
                      header. This parameter is effective only when the PCR PID is the same as the
                      video or audio elementary stream.

                      - **PcrPeriod** *(integer) --* Maximum time in milliseconds between Program
                      Clock References (PCRs) inserted into the transport stream.

                      - **PcrPid** *(string) --* Packet Identifier (PID) of the Program Clock
                      Reference (PCR) in the transport stream. When no value is given, the encoder
                      will assign the same value as the Video PID. Can be entered as a decimal or
                      hexadecimal value.

                      - **PmtInterval** *(integer) --* The number of milliseconds between instances
                      of this table in the output transport stream. A value of \\"0\\" writes out
                      the PMT once per segment file.

                      - **PmtPid** *(string) --* Packet Identifier (PID) for the Program Map Table
                      (PMT) in the transport stream. Can be entered as a decimal or hexadecimal
                      value.

                      - **ProgramNum** *(integer) --* The value of the program number field in the
                      Program Map Table.

                      - **Scte35Behavior** *(string) --* If set to passthrough, passes any SCTE-35
                      signals from the input source to this output.

                      - **Scte35Pid** *(string) --* Packet Identifier (PID) of the SCTE-35 stream in
                      the transport stream. Can be entered as a decimal or hexadecimal value.

                      - **TimedMetadataBehavior** *(string) --* When set to passthrough, timed
                      metadata is passed through from input to output.

                      - **TimedMetadataPid** *(string) --* Packet Identifier (PID) of the timed
                      metadata stream in the transport stream. Can be entered as a decimal or
                      hexadecimal value. Valid values are 32 (or 0x20)..8182 (or 0x1ff6).

                      - **TransportStreamId** *(integer) --* The value of the transport stream ID
                      field in the Program Map Table.

                      - **VideoPid** *(string) --* Packet Identifier (PID) of the elementary video
                      stream in the transport stream. Can be entered as a decimal or hexadecimal
                      value.

                - **NameModifier** *(string) --* String concatenated to the end of the destination
                filename. Accepts \\"Format Identifiers\\":#formatIdentifierParameters.

                - **SegmentModifier** *(string) --* String concatenated to end of segment filenames.

              - **MediaPackageOutputSettings** *(dict) --* Media Package Output Settings

              - **MsSmoothOutputSettings** *(dict) --* Ms Smooth Output Settings

                - **H265PackagingType** *(string) --* Only applicable when this output is
                referencing an H.265 video description. Specifies whether MP4 segments should be
                packaged as HEV1 or HVC1.

                - **NameModifier** *(string) --* String concatenated to the end of the destination
                filename. Required for multiple outputs of the same type.

              - **MultiplexOutputSettings** *(dict) --* Multiplex Output Settings

                - **Destination** *(dict) --* Destination is a Multiplex.

                  - **DestinationRefId** *(string) --* Placeholder documentation for __string

              - **RtmpOutputSettings** *(dict) --* Rtmp Output Settings

                - **CertificateMode** *(string) --* If set to verifyAuthenticity, verify the tls
                certificate chain to a trusted Certificate Authority (CA). This will cause rtmps
                outputs with self-signed certificates to fail.

                - **ConnectionRetryInterval** *(integer) --* Number of seconds to wait before
                retrying a connection to the Flash Media server if the connection is lost.

                - **Destination** *(dict) --* The RTMP endpoint excluding the stream name (eg.
                rtmp://host/appname). For connection to Akamai, a username and password must be
                supplied. URI fields accept format identifiers.

                  - **DestinationRefId** *(string) --* Placeholder documentation for __string

                - **NumRetries** *(integer) --* Number of retry attempts.

              - **UdpOutputSettings** *(dict) --* Udp Output Settings

                - **BufferMsec** *(integer) --* UDP output buffering in milliseconds. Larger values
                increase latency through the transcoder but simultaneously assist the transcoder in
                maintaining a constant, low-jitter UDP/RTP output while accommodating clock
                recovery, input switching, input disruptions, picture reordering, etc.

                - **ContainerSettings** *(dict) --* Udp Container Settings

                  - **M2tsSettings** *(dict) --* M2ts Settings

                    - **AbsentInputAudioBehavior** *(string) --* When set to drop, output audio
                    streams will be removed from the program if the selected input audio stream is
                    removed from the input. This allows the output audio configuration to
                    dynamically change based on input configuration. If this is set to
                    encodeSilence, all output audio streams will output encoded silence when not
                    connected to an active input stream.

                    - **Arib** *(string) --* When set to enabled, uses ARIB-compliant field muxing
                    and removes video descriptor.

                    - **AribCaptionsPid** *(string) --* Packet Identifier (PID) for ARIB Captions in
                    the transport stream. Can be entered as a decimal or hexadecimal value. Valid
                    values are 32 (or 0x20)..8182 (or 0x1ff6).

                    - **AribCaptionsPidControl** *(string) --* If set to auto, pid number used for
                    ARIB Captions will be auto-selected from unused pids. If set to useConfigured,
                    ARIB Captions will be on the configured pid number.

                    - **AudioBufferModel** *(string) --* When set to dvb, uses DVB buffer model for
                    Dolby Digital audio. When set to atsc, the ATSC model is used.

                    - **AudioFramesPerPes** *(integer) --* The number of audio frames to insert for
                    each PES packet.

                    - **AudioPids** *(string) --* Packet Identifier (PID) of the elementary audio
                    stream(s) in the transport stream. Multiple values are accepted, and can be
                    entered in ranges and/or by comma separation. Can be entered as decimal or
                    hexadecimal values. Each PID specified must be in the range of 32 (or
                    0x20)..8182 (or 0x1ff6).

                    - **AudioStreamType** *(string) --* When set to atsc, uses stream type = 0x81
                    for AC3 and stream type =
                         0x87 for EAC3. When set to dvb, uses stream type =
                    0x06.

                    - **Bitrate** *(integer) --* The output bitrate of the transport stream in bits
                    per second. Setting to 0 lets the muxer automatically determine the appropriate
                    bitrate.

                    - **BufferModel** *(string) --* If set to multiplex, use multiplex buffer model
                    for accurate interleaving. Setting to bufferModel to none can lead to lower
                    latency, but low-memory devices may not be able to play back the stream without
                    interruptions.

                    - **CcDescriptor** *(string) --* When set to enabled, generates
                    captionServiceDescriptor in PMT.

                    - **DvbNitSettings** *(dict) --* Inserts DVB Network Information Table (NIT) at
                    the specified table repetition interval.

                      - **NetworkId** *(integer) --* The numeric value placed in the Network
                      Information Table (NIT).

                      - **NetworkName** *(string) --* The network name text placed in the
                      networkNameDescriptor inside the Network Information Table. Maximum length is
                      256 characters.

                      - **RepInterval** *(integer) --* The number of milliseconds between instances
                      of this table in the output transport stream.

                    - **DvbSdtSettings** *(dict) --* Inserts DVB Service Description Table (SDT) at
                    the specified table repetition interval.

                      - **OutputSdt** *(string) --* Selects method of inserting SDT information into
                      output stream. The sdtFollow setting copies SDT information from input stream
                      to output stream. The sdtFollowIfPresent setting copies SDT information from
                      input stream to output stream if SDT information is present in the input,
                      otherwise it will fall back on the user-defined values. The sdtManual setting
                      means user will enter the SDT information. The sdtNone setting means output
                      stream will not contain SDT information.

                      - **RepInterval** *(integer) --* The number of milliseconds between instances
                      of this table in the output transport stream.

                      - **ServiceName** *(string) --* The service name placed in the
                      serviceDescriptor in the Service Description Table. Maximum length is 256
                      characters.

                      - **ServiceProviderName** *(string) --* The service provider name placed in
                      the serviceDescriptor in the Service Description Table. Maximum length is 256
                      characters.

                    - **DvbSubPids** *(string) --* Packet Identifier (PID) for input source DVB
                    Subtitle data to this output. Multiple values are accepted, and can be entered
                    in ranges and/or by comma separation. Can be entered as decimal or hexadecimal
                    values. Each PID specified must be in the range of 32 (or 0x20)..8182 (or
                    0x1ff6).

                    - **DvbTdtSettings** *(dict) --* Inserts DVB Time and Date Table (TDT) at the
                    specified table repetition interval.

                      - **RepInterval** *(integer) --* The number of milliseconds between instances
                      of this table in the output transport stream.

                    - **DvbTeletextPid** *(string) --* Packet Identifier (PID) for input source DVB
                    Teletext data to this output. Can be entered as a decimal or hexadecimal value.
                    Valid values are 32 (or 0x20)..8182 (or 0x1ff6).

                    - **Ebif** *(string) --* If set to passthrough, passes any EBIF data from the
                    input source to this output.

                    - **EbpAudioInterval** *(string) --* When videoAndFixedIntervals is selected,
                    audio EBP markers will be added to partitions 3 and 4. The interval between
                    these additional markers will be fixed, and will be slightly shorter than the
                    video EBP marker interval. Only available when EBP Cablelabs segmentation
                    markers are selected. Partitions 1 and 2 will always follow the video interval.

                    - **EbpLookaheadMs** *(integer) --* When set, enforces that Encoder Boundary
                    Points do not come within the specified time interval of each other by looking
                    ahead at input video. If another EBP is going to come in within the specified
                    time interval, the current EBP is not emitted, and the segment is "stretched" to
                    the next marker. The lookahead value does not add latency to the system. The
                    Live Event must be configured elsewhere to create sufficient latency to make the
                    lookahead accurate.

                    - **EbpPlacement** *(string) --* Controls placement of EBP on Audio PIDs. If set
                    to videoAndAudioPids, EBP markers will be placed on the video PID and all audio
                    PIDs. If set to videoPid, EBP markers will be placed on only the video PID.

                    - **EcmPid** *(string) --* This field is unused and deprecated.

                    - **EsRateInPes** *(string) --* Include or exclude the ES Rate field in the PES
                    header.

                    - **EtvPlatformPid** *(string) --* Packet Identifier (PID) for input source ETV
                    Platform data to this output. Can be entered as a decimal or hexadecimal value.
                    Valid values are 32 (or 0x20)..8182 (or 0x1ff6).

                    - **EtvSignalPid** *(string) --* Packet Identifier (PID) for input source ETV
                    Signal data to this output. Can be entered as a decimal or hexadecimal value.
                    Valid values are 32 (or 0x20)..8182 (or 0x1ff6).

                    - **FragmentTime** *(float) --* The length in seconds of each fragment. Only
                    used with EBP markers.

                    - **Klv** *(string) --* If set to passthrough, passes any KLV data from the
                    input source to this output.

                    - **KlvDataPids** *(string) --* Packet Identifier (PID) for input source KLV
                    data to this output. Multiple values are accepted, and can be entered in ranges
                    and/or by comma separation. Can be entered as decimal or hexadecimal values.
                    Each PID specified must be in the range of 32 (or 0x20)..8182 (or 0x1ff6).

                    - **NielsenId3Behavior** *(string) --* If set to passthrough, Nielsen inaudible
                    tones for media tracking will be detected in the input audio and an equivalent
                    ID3 tag will be inserted in the output.

                    - **NullPacketBitrate** *(float) --* Value in bits per second of extra null
                    packets to insert into the transport stream. This can be used if a downstream
                    encryption system requires periodic null packets.

                    - **PatInterval** *(integer) --* The number of milliseconds between instances of
                    this table in the output transport stream. Valid values are 0, 10..1000.

                    - **PcrControl** *(string) --* When set to pcrEveryPesPacket, a Program Clock
                    Reference value is inserted for every Packetized Elementary Stream (PES) header.
                    This parameter is effective only when the PCR PID is the same as the video or
                    audio elementary stream.

                    - **PcrPeriod** *(integer) --* Maximum time in milliseconds between Program
                    Clock Reference (PCRs) inserted into the transport stream.

                    - **PcrPid** *(string) --* Packet Identifier (PID) of the Program Clock
                    Reference (PCR) in the transport stream. When no value is given, the encoder
                    will assign the same value as the Video PID. Can be entered as a decimal or
                    hexadecimal value. Valid values are 32 (or 0x20)..8182 (or 0x1ff6).

                    - **PmtInterval** *(integer) --* The number of milliseconds between instances of
                    this table in the output transport stream. Valid values are 0, 10..1000.

                    - **PmtPid** *(string) --* Packet Identifier (PID) for the Program Map Table
                    (PMT) in the transport stream. Can be entered as a decimal or hexadecimal value.
                    Valid values are 32 (or 0x20)..8182 (or 0x1ff6).

                    - **ProgramNum** *(integer) --* The value of the program number field in the
                    Program Map Table.

                    - **RateMode** *(string) --* When vbr, does not insert null packets into
                    transport stream to fill specified bitrate. The bitrate setting acts as the
                    maximum bitrate when vbr is set.

                    - **Scte27Pids** *(string) --* Packet Identifier (PID) for input source SCTE-27
                    data to this output. Multiple values are accepted, and can be entered in ranges
                    and/or by comma separation. Can be entered as decimal or hexadecimal values.
                    Each PID specified must be in the range of 32 (or 0x20)..8182 (or 0x1ff6).

                    - **Scte35Control** *(string) --* Optionally pass SCTE-35 signals from the input
                    source to this output.

                    - **Scte35Pid** *(string) --* Packet Identifier (PID) of the SCTE-35 stream in
                    the transport stream. Can be entered as a decimal or hexadecimal value. Valid
                    values are 32 (or 0x20)..8182 (or 0x1ff6).

                    - **SegmentationMarkers** *(string) --* Inserts segmentation markers at each
                    segmentationTime period. raiSegstart sets the Random Access Indicator bit in the
                    adaptation field. raiAdapt sets the RAI bit and adds the current timecode in the
                    private data bytes. psiSegstart inserts PAT and PMT tables at the start of
                    segments. ebp adds Encoder Boundary Point information to the adaptation field as
                    per OpenCable specification OC-SP-EBP-I01-130118. ebpLegacy adds Encoder
                    Boundary Point information to the adaptation field using a legacy proprietary
                    format.

                    - **SegmentationStyle** *(string) --* The segmentation style parameter controls
                    how segmentation markers are inserted into the transport stream. With avails, it
                    is possible that segments may be truncated, which can influence where future
                    segmentation markers are inserted. When a segmentation style of "resetCadence"
                    is selected and a segment is truncated due to an avail, we will reset the
                    segmentation cadence. This means the subsequent segment will have a duration of
                    $segmentationTime seconds. When a segmentation style of "maintainCadence" is
                    selected and a segment is truncated due to an avail, we will not reset the
                    segmentation cadence. This means the subsequent segment will likely be truncated
                    as well. However, all segments after that will have a duration of
                    $segmentationTime seconds. Note that EBP lookahead is a slight exception to this
                    rule.

                    - **SegmentationTime** *(float) --* The length in seconds of each segment.
                    Required unless markers is set to None_.

                    - **TimedMetadataBehavior** *(string) --* When set to passthrough, timed
                    metadata will be passed through from input to output.

                    - **TimedMetadataPid** *(string) --* Packet Identifier (PID) of the timed
                    metadata stream in the transport stream. Can be entered as a decimal or
                    hexadecimal value. Valid values are 32 (or 0x20)..8182 (or 0x1ff6).

                    - **TransportStreamId** *(integer) --* The value of the transport stream ID
                    field in the Program Map Table.

                    - **VideoPid** *(string) --* Packet Identifier (PID) of the elementary video
                    stream in the transport stream. Can be entered as a decimal or hexadecimal
                    value. Valid values are 32 (or 0x20)..8182 (or 0x1ff6).

                - **Destination** *(dict) --* Destination address and port number for RTP or UDP
                packets. Can be unicast or multicast RTP or UDP (eg. rtp://239.10.10.10:5001 or
                udp://10.100.100.100:5002).

                  - **DestinationRefId** *(string) --* Placeholder documentation for __string

                - **FecOutputSettings** *(dict) --* Settings for enabling and adjusting Forward
                Error Correction on UDP outputs.

                  - **ColumnDepth** *(integer) --* Parameter D from SMPTE 2022-1. The height of the
                  FEC protection matrix. The number of transport stream packets per column error
                  correction packet. Must be between 4 and 20, inclusive.

                  - **IncludeFec** *(string) --* Enables column only or column and row based FEC

                  - **RowLength** *(integer) --* Parameter L from SMPTE 2022-1. The width of the FEC
                  protection matrix. Must be between 1 and 20, inclusive. If only Column FEC is
                  used, then larger values increase robustness. If Row FEC is used, then this is the
                  number of transport stream packets per row error correction packet, and the value
                  must be between 4 and 20, inclusive, if includeFec is columnAndRow. If includeFec
                  is column, this value must be 1 to 20, inclusive.

            - **VideoDescriptionName** *(string) --* The name of the VideoDescription used as the
            source for this output.

    - **TimecodeConfig** *(dict) --* Contains settings used to acquire and adjust timecode
    information from inputs.

      - **Source** *(string) --* Identifies the source for the timecode that will be associated with
      the events outputs. -Embedded (embedded): Initialize the output timecode with timecode from
      the the source. If no embedded timecode is detected in the source, the system falls back to
      using "Start at 0" (zerobased). -System Clock (systemclock): Use the UTC time. -Start at 0
      (zerobased): The time of the first frame of the event will be 00:00:00:00.

      - **SyncThreshold** *(integer) --* Threshold in frames beyond which output timecode is
      resynchronized to the input timecode. Discrepancies below this threshold are permitted to
      avoid unnecessary discontinuities in the output timecode. No timecode sync when this is not
      specified.

    - **VideoDescriptions** *(list) --* Placeholder documentation for __listOfVideoDescription

      - *(dict) --* Video settings for this stream.

        - **CodecSettings** *(dict) --* Video codec settings.

          - **FrameCaptureSettings** *(dict) --* Frame Capture Settings

            - **CaptureInterval** *(integer) --* The frequency at which to capture frames for
            inclusion in the output. May be specified in either seconds or milliseconds, as
            specified by captureIntervalUnits.

          - **H264Settings** *(dict) --* H264 Settings

            - **AdaptiveQuantization** *(string) --* Adaptive quantization. Allows intra-frame
            quantizers to vary to improve visual quality.

            - **AfdSignaling** *(string) --* Indicates that AFD values will be written into the
            output stream. If afdSignaling is "auto", the system will try to preserve the input AFD
            value (in cases where multiple AFD values are valid). If set to "fixed", the AFD value
            will be the value configured in the fixedAfd parameter.

            - **Bitrate** *(integer) --* Average bitrate in bits/second. Required when the rate
            control mode is VBR or CBR. Not used for QVBR. In an MS Smooth output group, each output
            must have a unique value when its bitrate is rounded down to the nearest multiple of
            1000.

            - **BufFillPct** *(integer) --* Percentage of the buffer that should initially be filled
            (HRD buffer model).

            - **BufSize** *(integer) --* Size of buffer (HRD buffer model) in bits.

            - **ColorMetadata** *(string) --* Includes colorspace metadata in the output.

            - **ColorSpaceSettings** *(dict) --* Color Space settings

              - **ColorSpacePassthroughSettings** *(dict) --* Passthrough applies no color space
              conversion to the output

              - **Rec601Settings** *(dict) --* Rec601 Settings

              - **Rec709Settings** *(dict) --* Rec709 Settings

            - **EntropyEncoding** *(string) --* Entropy encoding mode. Use cabac (must be in Main or
            High profile) or cavlc.

            - **FixedAfd** *(string) --* Four bit AFD value to write on all frames of video in the
            output stream. Only valid when afdSignaling is set to 'Fixed'.

            - **FlickerAq** *(string) --* If set to enabled, adjust quantization within each frame
            to reduce flicker or 'pop' on I-frames.

            - **FramerateControl** *(string) --* This field indicates how the output video frame
            rate is specified. If "specified" is selected then the output video frame rate is
            determined by framerateNumerator and framerateDenominator, else if
            "initializeFromSource" is selected then the output video frame rate will be set equal to
            the input video frame rate of the first input.

            - **FramerateDenominator** *(integer) --* Framerate denominator.

            - **FramerateNumerator** *(integer) --* Framerate numerator - framerate is a fraction,
            e.g. 24000 / 1001 = 23.976 fps.

            - **GopBReference** *(string) --* Documentation update needed

            - **GopClosedCadence** *(integer) --* Frequency of closed GOPs. In streaming
            applications, it is recommended that this be set to 1 so a decoder joining mid-stream
            will receive an IDR frame as quickly as possible. Setting this value to 0 will break
            output segmenting.

            - **GopNumBFrames** *(integer) --* Number of B-frames between reference frames.

            - **GopSize** *(float) --* GOP size (keyframe interval) in units of either frames or
            seconds per gopSizeUnits. If gopSizeUnits is frames, gopSize must be an integer and must
            be greater than or equal to 1. If gopSizeUnits is seconds, gopSize must be greater than
            0, but need not be an integer.

            - **GopSizeUnits** *(string) --* Indicates if the gopSize is specified in frames or
            seconds. If seconds the system will convert the gopSize into a frame count at run time.

            - **Level** *(string) --* H.264 Level.

            - **LookAheadRateControl** *(string) --* Amount of lookahead. A value of low can
            decrease latency and memory usage, while high can produce better quality for certain
            content.

            - **MaxBitrate** *(integer) --* For QVBR: See the tooltip for Quality level For VBR: Set
            the maximum bitrate in order to accommodate expected spikes in the complexity of the
            video.

            - **MinIInterval** *(integer) --* Only meaningful if sceneChangeDetect is set to
            enabled. Defaults to 5 if multiplex rate control is used. Enforces separation between
            repeated (cadence) I-frames and I-frames inserted by Scene Change Detection. If a scene
            change I-frame is within I-interval frames of a cadence I-frame, the GOP is shrunk
            and/or stretched to the scene change I-frame. GOP stretch requires enabling lookahead as
            well as setting I-interval. The normal cadence resumes for the next GOP. Note: Maximum
            GOP stretch = GOP size + Min-I-interval - 1

            - **NumRefFrames** *(integer) --* Number of reference frames to use. The encoder may use
            more than requested if using B-frames and/or interlaced encoding.

            - **ParControl** *(string) --* This field indicates how the output pixel aspect ratio is
            specified. If "specified" is selected then the output video pixel aspect ratio is
            determined by parNumerator and parDenominator, else if "initializeFromSource" is
            selected then the output pixsel aspect ratio will be set equal to the input video pixel
            aspect ratio of the first input.

            - **ParDenominator** *(integer) --* Pixel Aspect Ratio denominator.

            - **ParNumerator** *(integer) --* Pixel Aspect Ratio numerator.

            - **Profile** *(string) --* H.264 Profile.

            - **QvbrQualityLevel** *(integer) --* Controls the target quality for the video encode.
            Applies only when the rate control mode is QVBR. Set values for the QVBR quality level
            field and Max bitrate field that suit your most important viewing devices. Recommended
            values are: - Primary screen: Quality level: 8 to 10. Max bitrate: 4M - PC or tablet:
            Quality level: 7. Max bitrate: 1.5M to 3M - Smartphone: Quality level: 6. Max bitrate:
            1M to 1.5M

            - **RateControlMode** *(string) --* Rate control mode. QVBR: Quality will match the
            specified quality level except when it is constrained by the maximum bitrate.
            Recommended if you or your viewers pay for bandwidth. VBR: Quality and bitrate vary,
            depending on the video complexity. Recommended instead of QVBR if you want to maintain a
            specific average bitrate over the duration of the channel. CBR: Quality varies,
            depending on the video complexity. Recommended only if you distribute your assets to
            devices that cannot handle variable bitrates.

            - **ScanType** *(string) --* Sets the scan type of the output to progressive or
            top-field-first interlaced.

            - **SceneChangeDetect** *(string) --* Scene change detection. - On: inserts I-frames
            when scene change is detected. - Off: does not force an I-frame when scene change is
            detected.

            - **Slices** *(integer) --* Number of slices per picture. Must be less than or equal to
            the number of macroblock rows for progressive pictures, and less than or equal to half
            the number of macroblock rows for interlaced pictures. This field is optional; when no
            value is specified the encoder will choose the number of slices based on encode
            resolution.

            - **Softness** *(integer) --* Softness. Selects quantizer matrix, larger values reduce
            high-frequency content in the encoded image.

            - **SpatialAq** *(string) --* If set to enabled, adjust quantization within each frame
            based on spatial variation of content complexity.

            - **SubgopLength** *(string) --* If set to fixed, use gopNumBFrames B-frames per
            sub-GOP. If set to dynamic, optimize the number of B-frames used for each sub-GOP to
            improve visual quality.

            - **Syntax** *(string) --* Produces a bitstream compliant with SMPTE RP-2027.

            - **TemporalAq** *(string) --* If set to enabled, adjust quantization within each frame
            based on temporal variation of content complexity.

            - **TimecodeInsertion** *(string) --* Determines how timecodes should be inserted into
            the video elementary stream. - 'disabled': Do not include timecodes - 'picTimingSei':
            Pass through picture timing SEI messages from the source specified in Timecode Config

          - **H265Settings** *(dict) --* H265 Settings

            - **AdaptiveQuantization** *(string) --* Adaptive quantization. Allows intra-frame
            quantizers to vary to improve visual quality.

            - **AfdSignaling** *(string) --* Indicates that AFD values will be written into the
            output stream. If afdSignaling is "auto", the system will try to preserve the input AFD
            value (in cases where multiple AFD values are valid). If set to "fixed", the AFD value
            will be the value configured in the fixedAfd parameter.

            - **AlternativeTransferFunction** *(string) --* Whether or not EML should insert an
            Alternative Transfer Function SEI message to support backwards compatibility with
            non-HDR decoders and displays.

            - **Bitrate** *(integer) --* Average bitrate in bits/second. Required when the rate
            control mode is VBR or CBR. Not used for QVBR. In an MS Smooth output group, each output
            must have a unique value when its bitrate is rounded down to the nearest multiple of
            1000.

            - **BufSize** *(integer) --* Size of buffer (HRD buffer model) in bits.

            - **ColorMetadata** *(string) --* Includes colorspace metadata in the output.

            - **ColorSpaceSettings** *(dict) --* Color Space settings

              - **ColorSpacePassthroughSettings** *(dict) --* Passthrough applies no color space
              conversion to the output

              - **Hdr10Settings** *(dict) --* Hdr10 Settings

                - **MaxCll** *(integer) --* Maximum Content Light Level An integer metadata value
                defining the maximum light level, in nits, of any single pixel within an encoded HDR
                video stream or file.

                - **MaxFall** *(integer) --* Maximum Frame Average Light Level An integer metadata
                value defining the maximum average light level, in nits, for any single frame within
                an encoded HDR video stream or file.

              - **Rec601Settings** *(dict) --* Rec601 Settings

              - **Rec709Settings** *(dict) --* Rec709 Settings

            - **FixedAfd** *(string) --* Four bit AFD value to write on all frames of video in the
            output stream. Only valid when afdSignaling is set to 'Fixed'.

            - **FlickerAq** *(string) --* If set to enabled, adjust quantization within each frame
            to reduce flicker or 'pop' on I-frames.

            - **FramerateDenominator** *(integer) --* Framerate denominator.

            - **FramerateNumerator** *(integer) --* Framerate numerator - framerate is a fraction,
            e.g. 24000 / 1001 = 23.976 fps.

            - **GopClosedCadence** *(integer) --* Frequency of closed GOPs. In streaming
            applications, it is recommended that this be set to 1 so a decoder joining mid-stream
            will receive an IDR frame as quickly as possible. Setting this value to 0 will break
            output segmenting.

            - **GopSize** *(float) --* GOP size (keyframe interval) in units of either frames or
            seconds per gopSizeUnits. If gopSizeUnits is frames, gopSize must be an integer and must
            be greater than or equal to 1. If gopSizeUnits is seconds, gopSize must be greater than
            0, but need not be an integer.

            - **GopSizeUnits** *(string) --* Indicates if the gopSize is specified in frames or
            seconds. If seconds the system will convert the gopSize into a frame count at run time.

            - **Level** *(string) --* H.265 Level.

            - **LookAheadRateControl** *(string) --* Amount of lookahead. A value of low can
            decrease latency and memory usage, while high can produce better quality for certain
            content.

            - **MaxBitrate** *(integer) --* For QVBR: See the tooltip for Quality level

            - **MinIInterval** *(integer) --* Only meaningful if sceneChangeDetect is set to
            enabled. Defaults to 5 if multiplex rate control is used. Enforces separation between
            repeated (cadence) I-frames and I-frames inserted by Scene Change Detection. If a scene
            change I-frame is within I-interval frames of a cadence I-frame, the GOP is shrunk
            and/or stretched to the scene change I-frame. GOP stretch requires enabling lookahead as
            well as setting I-interval. The normal cadence resumes for the next GOP. Note: Maximum
            GOP stretch = GOP size + Min-I-interval - 1

            - **ParDenominator** *(integer) --* Pixel Aspect Ratio denominator.

            - **ParNumerator** *(integer) --* Pixel Aspect Ratio numerator.

            - **Profile** *(string) --* H.265 Profile.

            - **QvbrQualityLevel** *(integer) --* Controls the target quality for the video encode.
            Applies only when the rate control mode is QVBR. Set values for the QVBR quality level
            field and Max bitrate field that suit your most important viewing devices. Recommended
            values are: - Primary screen: Quality level: 8 to 10. Max bitrate: 4M - PC or tablet:
            Quality level: 7. Max bitrate: 1.5M to 3M - Smartphone: Quality level: 6. Max bitrate:
            1M to 1.5M

            - **RateControlMode** *(string) --* Rate control mode. QVBR: Quality will match the
            specified quality level except when it is constrained by the maximum bitrate.
            Recommended if you or your viewers pay for bandwidth. CBR: Quality varies, depending on
            the video complexity. Recommended only if you distribute your assets to devices that
            cannot handle variable bitrates.

            - **ScanType** *(string) --* Sets the scan type of the output to progressive or
            top-field-first interlaced.

            - **SceneChangeDetect** *(string) --* Scene change detection.

            - **Slices** *(integer) --* Number of slices per picture. Must be less than or equal to
            the number of macroblock rows for progressive pictures, and less than or equal to half
            the number of macroblock rows for interlaced pictures. This field is optional; when no
            value is specified the encoder will choose the number of slices based on encode
            resolution.

            - **Tier** *(string) --* H.265 Tier.

            - **TimecodeInsertion** *(string) --* Determines how timecodes should be inserted into
            the video elementary stream. - 'disabled': Do not include timecodes - 'picTimingSei':
            Pass through picture timing SEI messages from the source specified in Timecode Config

        - **Height** *(integer) --* Output video height, in pixels. Must be an even number. For most
        codecs, you can leave this field and width blank in order to use the height and width
        (resolution) from the source. Note, however, that leaving blank is not recommended. For the
        Frame Capture codec, height and width are required.

        - **Name** *(string) --* The name of this VideoDescription. Outputs will use this name to
        uniquely identify this Description. Description names should be unique within this Live
        Event.

        - **RespondToAfd** *(string) --* Indicates how to respond to the AFD values in the input
        stream. RESPOND causes input video to be clipped, depending on the AFD value, input display
        aspect ratio, and output display aspect ratio, and (except for FRAMECAPTURE codec) includes
        the values in the output. PASSTHROUGH (does not apply to FRAMECAPTURE codec) ignores the AFD
        values and includes the values in the output, so input video is not clipped. NONE ignores
        the AFD values and does not include the values through to the output, so input video is not
        clipped.

        - **ScalingBehavior** *(string) --* STRETCHTOOUTPUT configures the output position to
        stretch the video to the specified output resolution (height and width). This option will
        override any position value. DEFAULT may insert black boxes (pillar boxes or letter boxes)
        around the video to provide the specified output resolution.

        - **Sharpness** *(integer) --* Changes the strength of the anti-alias filter used for
        scaling. 0 is the softest setting, 100 is the sharpest. A setting of 50 is recommended for
        most content.

        - **Width** *(integer) --* Output video width, in pixels. Must be an even number. For most
        codecs, you can leave this field and height blank in order to use the height and width
        (resolution) from the source. Note, however, that leaving blank is not recommended. For the
        Frame Capture codec, height and width are required.
    """


_ClientUpdateChannelClassResponseChannelInputAttachmentsInputSettingsAudioSelectorsSelectorSettingsAudioLanguageSelectionTypeDef = TypedDict(
    "_ClientUpdateChannelClassResponseChannelInputAttachmentsInputSettingsAudioSelectorsSelectorSettingsAudioLanguageSelectionTypeDef",
    {"LanguageCode": str, "LanguageSelectionPolicy": str},
    total=False,
)


class ClientUpdateChannelClassResponseChannelInputAttachmentsInputSettingsAudioSelectorsSelectorSettingsAudioLanguageSelectionTypeDef(
    _ClientUpdateChannelClassResponseChannelInputAttachmentsInputSettingsAudioSelectorsSelectorSettingsAudioLanguageSelectionTypeDef
):
    """
    Type definition for
    `ClientUpdateChannelClassResponseChannelInputAttachmentsInputSettingsAudioSelectorsSelectorSettings`
    `AudioLanguageSelection`

    - **LanguageCode** *(string) --* Selects a specific three-letter language code from within an
    audio source.

    - **LanguageSelectionPolicy** *(string) --* When set to "strict", the transport stream demux
    strictly identifies audio streams by their language descriptor. If a PMT update occurs such that
    an audio stream matching the initially selected language is no longer present then mute will be
    encoded until the language returns. If "loose", then on a PMT update the demux will choose
    another audio stream in the program with the same stream type if it can't find one with the same
    language.
    """


_ClientUpdateChannelClassResponseChannelInputAttachmentsInputSettingsAudioSelectorsSelectorSettingsAudioPidSelectionTypeDef = TypedDict(
    "_ClientUpdateChannelClassResponseChannelInputAttachmentsInputSettingsAudioSelectorsSelectorSettingsAudioPidSelectionTypeDef",
    {"Pid": int},
    total=False,
)


class ClientUpdateChannelClassResponseChannelInputAttachmentsInputSettingsAudioSelectorsSelectorSettingsAudioPidSelectionTypeDef(
    _ClientUpdateChannelClassResponseChannelInputAttachmentsInputSettingsAudioSelectorsSelectorSettingsAudioPidSelectionTypeDef
):
    """
    Type definition for
    `ClientUpdateChannelClassResponseChannelInputAttachmentsInputSettingsAudioSelectorsSelectorSettings`
    `AudioPidSelection`

    - **Pid** *(integer) --* Selects a specific PID from within a source.
    """


_ClientUpdateChannelClassResponseChannelInputAttachmentsInputSettingsAudioSelectorsSelectorSettingsTypeDef = TypedDict(
    "_ClientUpdateChannelClassResponseChannelInputAttachmentsInputSettingsAudioSelectorsSelectorSettingsTypeDef",
    {
        "AudioLanguageSelection": ClientUpdateChannelClassResponseChannelInputAttachmentsInputSettingsAudioSelectorsSelectorSettingsAudioLanguageSelectionTypeDef,
        "AudioPidSelection": ClientUpdateChannelClassResponseChannelInputAttachmentsInputSettingsAudioSelectorsSelectorSettingsAudioPidSelectionTypeDef,
    },
    total=False,
)


class ClientUpdateChannelClassResponseChannelInputAttachmentsInputSettingsAudioSelectorsSelectorSettingsTypeDef(
    _ClientUpdateChannelClassResponseChannelInputAttachmentsInputSettingsAudioSelectorsSelectorSettingsTypeDef
):
    """
    Type definition for
    `ClientUpdateChannelClassResponseChannelInputAttachmentsInputSettingsAudioSelectors`
    `SelectorSettings`

    - **AudioLanguageSelection** *(dict) --* Audio Language Selection

      - **LanguageCode** *(string) --* Selects a specific three-letter language code from within an
      audio source.

      - **LanguageSelectionPolicy** *(string) --* When set to "strict", the transport stream demux
      strictly identifies audio streams by their language descriptor. If a PMT update occurs such
      that an audio stream matching the initially selected language is no longer present then mute
      will be encoded until the language returns. If "loose", then on a PMT update the demux will
      choose another audio stream in the program with the same stream type if it can't find one with
      the same language.

    - **AudioPidSelection** *(dict) --* Audio Pid Selection

      - **Pid** *(integer) --* Selects a specific PID from within a source.
    """


_ClientUpdateChannelClassResponseChannelInputAttachmentsInputSettingsAudioSelectorsTypeDef = TypedDict(
    "_ClientUpdateChannelClassResponseChannelInputAttachmentsInputSettingsAudioSelectorsTypeDef",
    {
        "Name": str,
        "SelectorSettings": ClientUpdateChannelClassResponseChannelInputAttachmentsInputSettingsAudioSelectorsSelectorSettingsTypeDef,
    },
    total=False,
)


class ClientUpdateChannelClassResponseChannelInputAttachmentsInputSettingsAudioSelectorsTypeDef(
    _ClientUpdateChannelClassResponseChannelInputAttachmentsInputSettingsAudioSelectorsTypeDef
):
    """
    Type definition for `ClientUpdateChannelClassResponseChannelInputAttachmentsInputSettings`
    `AudioSelectors`

    - **Name** *(string) --* The name of this AudioSelector. AudioDescriptions will use this name to
    uniquely identify this Selector. Selector names should be unique per input.

    - **SelectorSettings** *(dict) --* The audio selector settings.

      - **AudioLanguageSelection** *(dict) --* Audio Language Selection

        - **LanguageCode** *(string) --* Selects a specific three-letter language code from within
        an audio source.

        - **LanguageSelectionPolicy** *(string) --* When set to "strict", the transport stream demux
        strictly identifies audio streams by their language descriptor. If a PMT update occurs such
        that an audio stream matching the initially selected language is no longer present then mute
        will be encoded until the language returns. If "loose", then on a PMT update the demux will
        choose another audio stream in the program with the same stream type if it can't find one
        with the same language.

      - **AudioPidSelection** *(dict) --* Audio Pid Selection

        - **Pid** *(integer) --* Selects a specific PID from within a source.
    """


_ClientUpdateChannelClassResponseChannelInputAttachmentsInputSettingsCaptionSelectorsSelectorSettingsDvbSubSourceSettingsTypeDef = TypedDict(
    "_ClientUpdateChannelClassResponseChannelInputAttachmentsInputSettingsCaptionSelectorsSelectorSettingsDvbSubSourceSettingsTypeDef",
    {"Pid": int},
    total=False,
)


class ClientUpdateChannelClassResponseChannelInputAttachmentsInputSettingsCaptionSelectorsSelectorSettingsDvbSubSourceSettingsTypeDef(
    _ClientUpdateChannelClassResponseChannelInputAttachmentsInputSettingsCaptionSelectorsSelectorSettingsDvbSubSourceSettingsTypeDef
):
    """
    Type definition for
    `ClientUpdateChannelClassResponseChannelInputAttachmentsInputSettingsCaptionSelectorsSelectorSettings`
    `DvbSubSourceSettings`

    - **Pid** *(integer) --* When using DVB-Sub with Burn-In or SMPTE-TT, use this PID for the
    source content. Unused for DVB-Sub passthrough. All DVB-Sub content is passed through,
    regardless of selectors.
    """


_ClientUpdateChannelClassResponseChannelInputAttachmentsInputSettingsCaptionSelectorsSelectorSettingsEmbeddedSourceSettingsTypeDef = TypedDict(
    "_ClientUpdateChannelClassResponseChannelInputAttachmentsInputSettingsCaptionSelectorsSelectorSettingsEmbeddedSourceSettingsTypeDef",
    {
        "Convert608To708": str,
        "Scte20Detection": str,
        "Source608ChannelNumber": int,
        "Source608TrackNumber": int,
    },
    total=False,
)


class ClientUpdateChannelClassResponseChannelInputAttachmentsInputSettingsCaptionSelectorsSelectorSettingsEmbeddedSourceSettingsTypeDef(
    _ClientUpdateChannelClassResponseChannelInputAttachmentsInputSettingsCaptionSelectorsSelectorSettingsEmbeddedSourceSettingsTypeDef
):
    """
    Type definition for
    `ClientUpdateChannelClassResponseChannelInputAttachmentsInputSettingsCaptionSelectorsSelectorSettings`
    `EmbeddedSourceSettings`

    - **Convert608To708** *(string) --* If upconvert, 608 data is both passed through via the "608
    compatibility bytes" fields of the 708 wrapper as well as translated into 708. 708 data present
    in the source content will be discarded.

    - **Scte20Detection** *(string) --* Set to "auto" to handle streams with intermittent and/or
    non-aligned SCTE-20 and Embedded captions.

    - **Source608ChannelNumber** *(integer) --* Specifies the 608/708 channel number within the
    video track from which to extract captions. Unused for passthrough.

    - **Source608TrackNumber** *(integer) --* This field is unused and deprecated.
    """


_ClientUpdateChannelClassResponseChannelInputAttachmentsInputSettingsCaptionSelectorsSelectorSettingsScte20SourceSettingsTypeDef = TypedDict(
    "_ClientUpdateChannelClassResponseChannelInputAttachmentsInputSettingsCaptionSelectorsSelectorSettingsScte20SourceSettingsTypeDef",
    {"Convert608To708": str, "Source608ChannelNumber": int},
    total=False,
)


class ClientUpdateChannelClassResponseChannelInputAttachmentsInputSettingsCaptionSelectorsSelectorSettingsScte20SourceSettingsTypeDef(
    _ClientUpdateChannelClassResponseChannelInputAttachmentsInputSettingsCaptionSelectorsSelectorSettingsScte20SourceSettingsTypeDef
):
    """
    Type definition for
    `ClientUpdateChannelClassResponseChannelInputAttachmentsInputSettingsCaptionSelectorsSelectorSettings`
    `Scte20SourceSettings`

    - **Convert608To708** *(string) --* If upconvert, 608 data is both passed through via the "608
    compatibility bytes" fields of the 708 wrapper as well as translated into 708. 708 data present
    in the source content will be discarded.

    - **Source608ChannelNumber** *(integer) --* Specifies the 608/708 channel number within the
    video track from which to extract captions. Unused for passthrough.
    """


_ClientUpdateChannelClassResponseChannelInputAttachmentsInputSettingsCaptionSelectorsSelectorSettingsScte27SourceSettingsTypeDef = TypedDict(
    "_ClientUpdateChannelClassResponseChannelInputAttachmentsInputSettingsCaptionSelectorsSelectorSettingsScte27SourceSettingsTypeDef",
    {"Pid": int},
    total=False,
)


class ClientUpdateChannelClassResponseChannelInputAttachmentsInputSettingsCaptionSelectorsSelectorSettingsScte27SourceSettingsTypeDef(
    _ClientUpdateChannelClassResponseChannelInputAttachmentsInputSettingsCaptionSelectorsSelectorSettingsScte27SourceSettingsTypeDef
):
    """
    Type definition for
    `ClientUpdateChannelClassResponseChannelInputAttachmentsInputSettingsCaptionSelectorsSelectorSettings`
    `Scte27SourceSettings`

    - **Pid** *(integer) --* The pid field is used in conjunction with the caption selector
    languageCode field as follows: - Specify PID and Language: Extracts captions from that PID; the
    language is "informational". - Specify PID and omit Language: Extracts the specified PID. - Omit
    PID and specify Language: Extracts the specified language, whichever PID that happens to be. -
    Omit PID and omit Language: Valid only if source is DVB-Sub that is being passed through; all
    languages will be passed through.
    """


_ClientUpdateChannelClassResponseChannelInputAttachmentsInputSettingsCaptionSelectorsSelectorSettingsTeletextSourceSettingsTypeDef = TypedDict(
    "_ClientUpdateChannelClassResponseChannelInputAttachmentsInputSettingsCaptionSelectorsSelectorSettingsTeletextSourceSettingsTypeDef",
    {"PageNumber": str},
    total=False,
)


class ClientUpdateChannelClassResponseChannelInputAttachmentsInputSettingsCaptionSelectorsSelectorSettingsTeletextSourceSettingsTypeDef(
    _ClientUpdateChannelClassResponseChannelInputAttachmentsInputSettingsCaptionSelectorsSelectorSettingsTeletextSourceSettingsTypeDef
):
    """
    Type definition for
    `ClientUpdateChannelClassResponseChannelInputAttachmentsInputSettingsCaptionSelectorsSelectorSettings`
    `TeletextSourceSettings`

    - **PageNumber** *(string) --* Specifies the teletext page number within the data stream from
    which to extract captions. Range of 0x100 (256) to 0x8FF (2303). Unused for passthrough. Should
    be specified as a hexadecimal string with no "0x" prefix.
    """


_ClientUpdateChannelClassResponseChannelInputAttachmentsInputSettingsCaptionSelectorsSelectorSettingsTypeDef = TypedDict(
    "_ClientUpdateChannelClassResponseChannelInputAttachmentsInputSettingsCaptionSelectorsSelectorSettingsTypeDef",
    {
        "AribSourceSettings": Dict,
        "DvbSubSourceSettings": ClientUpdateChannelClassResponseChannelInputAttachmentsInputSettingsCaptionSelectorsSelectorSettingsDvbSubSourceSettingsTypeDef,
        "EmbeddedSourceSettings": ClientUpdateChannelClassResponseChannelInputAttachmentsInputSettingsCaptionSelectorsSelectorSettingsEmbeddedSourceSettingsTypeDef,
        "Scte20SourceSettings": ClientUpdateChannelClassResponseChannelInputAttachmentsInputSettingsCaptionSelectorsSelectorSettingsScte20SourceSettingsTypeDef,
        "Scte27SourceSettings": ClientUpdateChannelClassResponseChannelInputAttachmentsInputSettingsCaptionSelectorsSelectorSettingsScte27SourceSettingsTypeDef,
        "TeletextSourceSettings": ClientUpdateChannelClassResponseChannelInputAttachmentsInputSettingsCaptionSelectorsSelectorSettingsTeletextSourceSettingsTypeDef,
    },
    total=False,
)


class ClientUpdateChannelClassResponseChannelInputAttachmentsInputSettingsCaptionSelectorsSelectorSettingsTypeDef(
    _ClientUpdateChannelClassResponseChannelInputAttachmentsInputSettingsCaptionSelectorsSelectorSettingsTypeDef
):
    """
    Type definition for
    `ClientUpdateChannelClassResponseChannelInputAttachmentsInputSettingsCaptionSelectors`
    `SelectorSettings`

    - **AribSourceSettings** *(dict) --* Arib Source Settings

    - **DvbSubSourceSettings** *(dict) --* Dvb Sub Source Settings

      - **Pid** *(integer) --* When using DVB-Sub with Burn-In or SMPTE-TT, use this PID for the
      source content. Unused for DVB-Sub passthrough. All DVB-Sub content is passed through,
      regardless of selectors.

    - **EmbeddedSourceSettings** *(dict) --* Embedded Source Settings

      - **Convert608To708** *(string) --* If upconvert, 608 data is both passed through via the "608
      compatibility bytes" fields of the 708 wrapper as well as translated into 708. 708 data
      present in the source content will be discarded.

      - **Scte20Detection** *(string) --* Set to "auto" to handle streams with intermittent and/or
      non-aligned SCTE-20 and Embedded captions.

      - **Source608ChannelNumber** *(integer) --* Specifies the 608/708 channel number within the
      video track from which to extract captions. Unused for passthrough.

      - **Source608TrackNumber** *(integer) --* This field is unused and deprecated.

    - **Scte20SourceSettings** *(dict) --* Scte20 Source Settings

      - **Convert608To708** *(string) --* If upconvert, 608 data is both passed through via the "608
      compatibility bytes" fields of the 708 wrapper as well as translated into 708. 708 data
      present in the source content will be discarded.

      - **Source608ChannelNumber** *(integer) --* Specifies the 608/708 channel number within the
      video track from which to extract captions. Unused for passthrough.

    - **Scte27SourceSettings** *(dict) --* Scte27 Source Settings

      - **Pid** *(integer) --* The pid field is used in conjunction with the caption selector
      languageCode field as follows: - Specify PID and Language: Extracts captions from that PID;
      the language is "informational". - Specify PID and omit Language: Extracts the specified PID.
      - Omit PID and specify Language: Extracts the specified language, whichever PID that happens
      to be. - Omit PID and omit Language: Valid only if source is DVB-Sub that is being passed
      through; all languages will be passed through.

    - **TeletextSourceSettings** *(dict) --* Teletext Source Settings

      - **PageNumber** *(string) --* Specifies the teletext page number within the data stream from
      which to extract captions. Range of 0x100 (256) to 0x8FF (2303). Unused for passthrough.
      Should be specified as a hexadecimal string with no "0x" prefix.
    """


_ClientUpdateChannelClassResponseChannelInputAttachmentsInputSettingsCaptionSelectorsTypeDef = TypedDict(
    "_ClientUpdateChannelClassResponseChannelInputAttachmentsInputSettingsCaptionSelectorsTypeDef",
    {
        "LanguageCode": str,
        "Name": str,
        "SelectorSettings": ClientUpdateChannelClassResponseChannelInputAttachmentsInputSettingsCaptionSelectorsSelectorSettingsTypeDef,
    },
    total=False,
)


class ClientUpdateChannelClassResponseChannelInputAttachmentsInputSettingsCaptionSelectorsTypeDef(
    _ClientUpdateChannelClassResponseChannelInputAttachmentsInputSettingsCaptionSelectorsTypeDef
):
    """
    Type definition for `ClientUpdateChannelClassResponseChannelInputAttachmentsInputSettings`
    `CaptionSelectors`

    - **LanguageCode** *(string) --* When specified this field indicates the three letter language
    code of the caption track to extract from the source.

    - **Name** *(string) --* Name identifier for a caption selector. This name is used to associate
    this caption selector with one or more caption descriptions. Names must be unique within an
    event.

    - **SelectorSettings** *(dict) --* Caption selector settings.

      - **AribSourceSettings** *(dict) --* Arib Source Settings

      - **DvbSubSourceSettings** *(dict) --* Dvb Sub Source Settings

        - **Pid** *(integer) --* When using DVB-Sub with Burn-In or SMPTE-TT, use this PID for the
        source content. Unused for DVB-Sub passthrough. All DVB-Sub content is passed through,
        regardless of selectors.

      - **EmbeddedSourceSettings** *(dict) --* Embedded Source Settings

        - **Convert608To708** *(string) --* If upconvert, 608 data is both passed through via the
        "608 compatibility bytes" fields of the 708 wrapper as well as translated into 708. 708 data
        present in the source content will be discarded.

        - **Scte20Detection** *(string) --* Set to "auto" to handle streams with intermittent and/or
        non-aligned SCTE-20 and Embedded captions.

        - **Source608ChannelNumber** *(integer) --* Specifies the 608/708 channel number within the
        video track from which to extract captions. Unused for passthrough.

        - **Source608TrackNumber** *(integer) --* This field is unused and deprecated.

      - **Scte20SourceSettings** *(dict) --* Scte20 Source Settings

        - **Convert608To708** *(string) --* If upconvert, 608 data is both passed through via the
        "608 compatibility bytes" fields of the 708 wrapper as well as translated into 708. 708 data
        present in the source content will be discarded.

        - **Source608ChannelNumber** *(integer) --* Specifies the 608/708 channel number within the
        video track from which to extract captions. Unused for passthrough.

      - **Scte27SourceSettings** *(dict) --* Scte27 Source Settings

        - **Pid** *(integer) --* The pid field is used in conjunction with the caption selector
        languageCode field as follows: - Specify PID and Language: Extracts captions from that PID;
        the language is "informational". - Specify PID and omit Language: Extracts the specified
        PID. - Omit PID and specify Language: Extracts the specified language, whichever PID that
        happens to be. - Omit PID and omit Language: Valid only if source is DVB-Sub that is being
        passed through; all languages will be passed through.

      - **TeletextSourceSettings** *(dict) --* Teletext Source Settings

        - **PageNumber** *(string) --* Specifies the teletext page number within the data stream
        from which to extract captions. Range of 0x100 (256) to 0x8FF (2303). Unused for
        passthrough. Should be specified as a hexadecimal string with no "0x" prefix.
    """


_ClientUpdateChannelClassResponseChannelInputAttachmentsInputSettingsNetworkInputSettingsHlsInputSettingsTypeDef = TypedDict(
    "_ClientUpdateChannelClassResponseChannelInputAttachmentsInputSettingsNetworkInputSettingsHlsInputSettingsTypeDef",
    {"Bandwidth": int, "BufferSegments": int, "Retries": int, "RetryInterval": int},
    total=False,
)


class ClientUpdateChannelClassResponseChannelInputAttachmentsInputSettingsNetworkInputSettingsHlsInputSettingsTypeDef(
    _ClientUpdateChannelClassResponseChannelInputAttachmentsInputSettingsNetworkInputSettingsHlsInputSettingsTypeDef
):
    """
    Type definition for
    `ClientUpdateChannelClassResponseChannelInputAttachmentsInputSettingsNetworkInputSettings`
    `HlsInputSettings`

    - **Bandwidth** *(integer) --* When specified the HLS stream with the m3u8 BANDWIDTH that most
    closely matches this value will be chosen, otherwise the highest bandwidth stream in the m3u8
    will be chosen. The bitrate is specified in bits per second, as in an HLS manifest.

    - **BufferSegments** *(integer) --* When specified, reading of the HLS input will begin this
    many buffer segments from the end (most recently written segment). When not specified, the HLS
    input will begin with the first segment specified in the m3u8.

    - **Retries** *(integer) --* The number of consecutive times that attempts to read a manifest or
    segment must fail before the input is considered unavailable.

    - **RetryInterval** *(integer) --* The number of seconds between retries when an attempt to read
    a manifest or segment fails.
    """


_ClientUpdateChannelClassResponseChannelInputAttachmentsInputSettingsNetworkInputSettingsTypeDef = TypedDict(
    "_ClientUpdateChannelClassResponseChannelInputAttachmentsInputSettingsNetworkInputSettingsTypeDef",
    {
        "HlsInputSettings": ClientUpdateChannelClassResponseChannelInputAttachmentsInputSettingsNetworkInputSettingsHlsInputSettingsTypeDef,
        "ServerValidation": str,
    },
    total=False,
)


class ClientUpdateChannelClassResponseChannelInputAttachmentsInputSettingsNetworkInputSettingsTypeDef(
    _ClientUpdateChannelClassResponseChannelInputAttachmentsInputSettingsNetworkInputSettingsTypeDef
):
    """
    Type definition for `ClientUpdateChannelClassResponseChannelInputAttachmentsInputSettings`
    `NetworkInputSettings`

    - **HlsInputSettings** *(dict) --* Specifies HLS input settings when the uri is for a HLS
    manifest.

      - **Bandwidth** *(integer) --* When specified the HLS stream with the m3u8 BANDWIDTH that most
      closely matches this value will be chosen, otherwise the highest bandwidth stream in the m3u8
      will be chosen. The bitrate is specified in bits per second, as in an HLS manifest.

      - **BufferSegments** *(integer) --* When specified, reading of the HLS input will begin this
      many buffer segments from the end (most recently written segment). When not specified, the HLS
      input will begin with the first segment specified in the m3u8.

      - **Retries** *(integer) --* The number of consecutive times that attempts to read a manifest
      or segment must fail before the input is considered unavailable.

      - **RetryInterval** *(integer) --* The number of seconds between retries when an attempt to
      read a manifest or segment fails.

    - **ServerValidation** *(string) --* Check HTTPS server certificates. When set to
    checkCryptographyOnly, cryptography in the certificate will be checked, but not the server's
    name. Certain subdomains (notably S3 buckets that use dots in the bucket name) do not strictly
    match the corresponding certificate's wildcard pattern and would otherwise cause the event to
    error. This setting is ignored for protocols that do not use https.
    """


_ClientUpdateChannelClassResponseChannelInputAttachmentsInputSettingsVideoSelectorSelectorSettingsVideoSelectorPidTypeDef = TypedDict(
    "_ClientUpdateChannelClassResponseChannelInputAttachmentsInputSettingsVideoSelectorSelectorSettingsVideoSelectorPidTypeDef",
    {"Pid": int},
    total=False,
)


class ClientUpdateChannelClassResponseChannelInputAttachmentsInputSettingsVideoSelectorSelectorSettingsVideoSelectorPidTypeDef(
    _ClientUpdateChannelClassResponseChannelInputAttachmentsInputSettingsVideoSelectorSelectorSettingsVideoSelectorPidTypeDef
):
    """
    Type definition for
    `ClientUpdateChannelClassResponseChannelInputAttachmentsInputSettingsVideoSelectorSelectorSettings`
    `VideoSelectorPid`

    - **Pid** *(integer) --* Selects a specific PID from within a video source.
    """


_ClientUpdateChannelClassResponseChannelInputAttachmentsInputSettingsVideoSelectorSelectorSettingsVideoSelectorProgramIdTypeDef = TypedDict(
    "_ClientUpdateChannelClassResponseChannelInputAttachmentsInputSettingsVideoSelectorSelectorSettingsVideoSelectorProgramIdTypeDef",
    {"ProgramId": int},
    total=False,
)


class ClientUpdateChannelClassResponseChannelInputAttachmentsInputSettingsVideoSelectorSelectorSettingsVideoSelectorProgramIdTypeDef(
    _ClientUpdateChannelClassResponseChannelInputAttachmentsInputSettingsVideoSelectorSelectorSettingsVideoSelectorProgramIdTypeDef
):
    """
    Type definition for
    `ClientUpdateChannelClassResponseChannelInputAttachmentsInputSettingsVideoSelectorSelectorSettings`
    `VideoSelectorProgramId`

    - **ProgramId** *(integer) --* Selects a specific program from within a multi-program transport
    stream. If the program doesn't exist, the first program within the transport stream will be
    selected by default.
    """


_ClientUpdateChannelClassResponseChannelInputAttachmentsInputSettingsVideoSelectorSelectorSettingsTypeDef = TypedDict(
    "_ClientUpdateChannelClassResponseChannelInputAttachmentsInputSettingsVideoSelectorSelectorSettingsTypeDef",
    {
        "VideoSelectorPid": ClientUpdateChannelClassResponseChannelInputAttachmentsInputSettingsVideoSelectorSelectorSettingsVideoSelectorPidTypeDef,
        "VideoSelectorProgramId": ClientUpdateChannelClassResponseChannelInputAttachmentsInputSettingsVideoSelectorSelectorSettingsVideoSelectorProgramIdTypeDef,
    },
    total=False,
)


class ClientUpdateChannelClassResponseChannelInputAttachmentsInputSettingsVideoSelectorSelectorSettingsTypeDef(
    _ClientUpdateChannelClassResponseChannelInputAttachmentsInputSettingsVideoSelectorSelectorSettingsTypeDef
):
    """
    Type definition for
    `ClientUpdateChannelClassResponseChannelInputAttachmentsInputSettingsVideoSelector`
    `SelectorSettings`

    - **VideoSelectorPid** *(dict) --* Video Selector Pid

      - **Pid** *(integer) --* Selects a specific PID from within a video source.

    - **VideoSelectorProgramId** *(dict) --* Video Selector Program Id

      - **ProgramId** *(integer) --* Selects a specific program from within a multi-program
      transport stream. If the program doesn't exist, the first program within the transport stream
      will be selected by default.
    """


_ClientUpdateChannelClassResponseChannelInputAttachmentsInputSettingsVideoSelectorTypeDef = TypedDict(
    "_ClientUpdateChannelClassResponseChannelInputAttachmentsInputSettingsVideoSelectorTypeDef",
    {
        "ColorSpace": str,
        "ColorSpaceUsage": str,
        "SelectorSettings": ClientUpdateChannelClassResponseChannelInputAttachmentsInputSettingsVideoSelectorSelectorSettingsTypeDef,
    },
    total=False,
)


class ClientUpdateChannelClassResponseChannelInputAttachmentsInputSettingsVideoSelectorTypeDef(
    _ClientUpdateChannelClassResponseChannelInputAttachmentsInputSettingsVideoSelectorTypeDef
):
    """
    Type definition for `ClientUpdateChannelClassResponseChannelInputAttachmentsInputSettings`
    `VideoSelector`

    - **ColorSpace** *(string) --* Specifies the color space of an input. This setting works in
    tandem with colorSpaceUsage and a video description's colorSpaceSettingsChoice to determine if
    any conversion will be performed.

    - **ColorSpaceUsage** *(string) --* Applies only if colorSpace is a value other than follow.
    This field controls how the value in the colorSpace field will be used. fallback means that when
    the input does include color space data, that data will be used, but when the input has no color
    space data, the value in colorSpace will be used. Choose fallback if your input is sometimes
    missing color space data, but when it does have color space data, that data is correct. force
    means to always use the value in colorSpace. Choose force if your input usually has no color
    space data or might have unreliable color space data.

    - **SelectorSettings** *(dict) --* The video selector settings.

      - **VideoSelectorPid** *(dict) --* Video Selector Pid

        - **Pid** *(integer) --* Selects a specific PID from within a video source.

      - **VideoSelectorProgramId** *(dict) --* Video Selector Program Id

        - **ProgramId** *(integer) --* Selects a specific program from within a multi-program
        transport stream. If the program doesn't exist, the first program within the transport
        stream will be selected by default.
    """


_ClientUpdateChannelClassResponseChannelInputAttachmentsInputSettingsTypeDef = TypedDict(
    "_ClientUpdateChannelClassResponseChannelInputAttachmentsInputSettingsTypeDef",
    {
        "AudioSelectors": List[
            ClientUpdateChannelClassResponseChannelInputAttachmentsInputSettingsAudioSelectorsTypeDef
        ],
        "CaptionSelectors": List[
            ClientUpdateChannelClassResponseChannelInputAttachmentsInputSettingsCaptionSelectorsTypeDef
        ],
        "DeblockFilter": str,
        "DenoiseFilter": str,
        "FilterStrength": int,
        "InputFilter": str,
        "NetworkInputSettings": ClientUpdateChannelClassResponseChannelInputAttachmentsInputSettingsNetworkInputSettingsTypeDef,
        "SourceEndBehavior": str,
        "VideoSelector": ClientUpdateChannelClassResponseChannelInputAttachmentsInputSettingsVideoSelectorTypeDef,
    },
    total=False,
)


class ClientUpdateChannelClassResponseChannelInputAttachmentsInputSettingsTypeDef(
    _ClientUpdateChannelClassResponseChannelInputAttachmentsInputSettingsTypeDef
):
    """
    Type definition for `ClientUpdateChannelClassResponseChannelInputAttachments` `InputSettings`

    - **AudioSelectors** *(list) --* Used to select the audio stream to decode for inputs that have
    multiple available.

      - *(dict) --* Audio Selector

        - **Name** *(string) --* The name of this AudioSelector. AudioDescriptions will use this
        name to uniquely identify this Selector. Selector names should be unique per input.

        - **SelectorSettings** *(dict) --* The audio selector settings.

          - **AudioLanguageSelection** *(dict) --* Audio Language Selection

            - **LanguageCode** *(string) --* Selects a specific three-letter language code from
            within an audio source.

            - **LanguageSelectionPolicy** *(string) --* When set to "strict", the transport stream
            demux strictly identifies audio streams by their language descriptor. If a PMT update
            occurs such that an audio stream matching the initially selected language is no longer
            present then mute will be encoded until the language returns. If "loose", then on a PMT
            update the demux will choose another audio stream in the program with the same stream
            type if it can't find one with the same language.

          - **AudioPidSelection** *(dict) --* Audio Pid Selection

            - **Pid** *(integer) --* Selects a specific PID from within a source.

    - **CaptionSelectors** *(list) --* Used to select the caption input to use for inputs that have
    multiple available.

      - *(dict) --* Output groups for this Live Event. Output groups contain information about where
      streams should be distributed.

        - **LanguageCode** *(string) --* When specified this field indicates the three letter
        language code of the caption track to extract from the source.

        - **Name** *(string) --* Name identifier for a caption selector. This name is used to
        associate this caption selector with one or more caption descriptions. Names must be unique
        within an event.

        - **SelectorSettings** *(dict) --* Caption selector settings.

          - **AribSourceSettings** *(dict) --* Arib Source Settings

          - **DvbSubSourceSettings** *(dict) --* Dvb Sub Source Settings

            - **Pid** *(integer) --* When using DVB-Sub with Burn-In or SMPTE-TT, use this PID for
            the source content. Unused for DVB-Sub passthrough. All DVB-Sub content is passed
            through, regardless of selectors.

          - **EmbeddedSourceSettings** *(dict) --* Embedded Source Settings

            - **Convert608To708** *(string) --* If upconvert, 608 data is both passed through via
            the "608 compatibility bytes" fields of the 708 wrapper as well as translated into 708.
            708 data present in the source content will be discarded.

            - **Scte20Detection** *(string) --* Set to "auto" to handle streams with intermittent
            and/or non-aligned SCTE-20 and Embedded captions.

            - **Source608ChannelNumber** *(integer) --* Specifies the 608/708 channel number within
            the video track from which to extract captions. Unused for passthrough.

            - **Source608TrackNumber** *(integer) --* This field is unused and deprecated.

          - **Scte20SourceSettings** *(dict) --* Scte20 Source Settings

            - **Convert608To708** *(string) --* If upconvert, 608 data is both passed through via
            the "608 compatibility bytes" fields of the 708 wrapper as well as translated into 708.
            708 data present in the source content will be discarded.

            - **Source608ChannelNumber** *(integer) --* Specifies the 608/708 channel number within
            the video track from which to extract captions. Unused for passthrough.

          - **Scte27SourceSettings** *(dict) --* Scte27 Source Settings

            - **Pid** *(integer) --* The pid field is used in conjunction with the caption selector
            languageCode field as follows: - Specify PID and Language: Extracts captions from that
            PID; the language is "informational". - Specify PID and omit Language: Extracts the
            specified PID. - Omit PID and specify Language: Extracts the specified language,
            whichever PID that happens to be. - Omit PID and omit Language: Valid only if source is
            DVB-Sub that is being passed through; all languages will be passed through.

          - **TeletextSourceSettings** *(dict) --* Teletext Source Settings

            - **PageNumber** *(string) --* Specifies the teletext page number within the data stream
            from which to extract captions. Range of 0x100 (256) to 0x8FF (2303). Unused for
            passthrough. Should be specified as a hexadecimal string with no "0x" prefix.

    - **DeblockFilter** *(string) --* Enable or disable the deblock filter when filtering.

    - **DenoiseFilter** *(string) --* Enable or disable the denoise filter when filtering.

    - **FilterStrength** *(integer) --* Adjusts the magnitude of filtering from 1 (minimal) to 5
    (strongest).

    - **InputFilter** *(string) --* Turns on the filter for this input. MPEG-2 inputs have the
    deblocking filter enabled by default. 1) auto - filtering will be applied depending on input
    type/quality 2) disabled - no filtering will be applied to the input 3) forced - filtering will
    be applied regardless of input type

    - **NetworkInputSettings** *(dict) --* Input settings.

      - **HlsInputSettings** *(dict) --* Specifies HLS input settings when the uri is for a HLS
      manifest.

        - **Bandwidth** *(integer) --* When specified the HLS stream with the m3u8 BANDWIDTH that
        most closely matches this value will be chosen, otherwise the highest bandwidth stream in
        the m3u8 will be chosen. The bitrate is specified in bits per second, as in an HLS manifest.

        - **BufferSegments** *(integer) --* When specified, reading of the HLS input will begin this
        many buffer segments from the end (most recently written segment). When not specified, the
        HLS input will begin with the first segment specified in the m3u8.

        - **Retries** *(integer) --* The number of consecutive times that attempts to read a
        manifest or segment must fail before the input is considered unavailable.

        - **RetryInterval** *(integer) --* The number of seconds between retries when an attempt to
        read a manifest or segment fails.

      - **ServerValidation** *(string) --* Check HTTPS server certificates. When set to
      checkCryptographyOnly, cryptography in the certificate will be checked, but not the server's
      name. Certain subdomains (notably S3 buckets that use dots in the bucket name) do not strictly
      match the corresponding certificate's wildcard pattern and would otherwise cause the event to
      error. This setting is ignored for protocols that do not use https.

    - **SourceEndBehavior** *(string) --* Loop input if it is a file. This allows a file input to be
    streamed indefinitely.

    - **VideoSelector** *(dict) --* Informs which video elementary stream to decode for input types
    that have multiple available.

      - **ColorSpace** *(string) --* Specifies the color space of an input. This setting works in
      tandem with colorSpaceUsage and a video description's colorSpaceSettingsChoice to determine if
      any conversion will be performed.

      - **ColorSpaceUsage** *(string) --* Applies only if colorSpace is a value other than follow.
      This field controls how the value in the colorSpace field will be used. fallback means that
      when the input does include color space data, that data will be used, but when the input has
      no color space data, the value in colorSpace will be used. Choose fallback if your input is
      sometimes missing color space data, but when it does have color space data, that data is
      correct. force means to always use the value in colorSpace. Choose force if your input usually
      has no color space data or might have unreliable color space data.

      - **SelectorSettings** *(dict) --* The video selector settings.

        - **VideoSelectorPid** *(dict) --* Video Selector Pid

          - **Pid** *(integer) --* Selects a specific PID from within a video source.

        - **VideoSelectorProgramId** *(dict) --* Video Selector Program Id

          - **ProgramId** *(integer) --* Selects a specific program from within a multi-program
          transport stream. If the program doesn't exist, the first program within the transport
          stream will be selected by default.
    """


_ClientUpdateChannelClassResponseChannelInputAttachmentsTypeDef = TypedDict(
    "_ClientUpdateChannelClassResponseChannelInputAttachmentsTypeDef",
    {
        "InputAttachmentName": str,
        "InputId": str,
        "InputSettings": ClientUpdateChannelClassResponseChannelInputAttachmentsInputSettingsTypeDef,
    },
    total=False,
)


class ClientUpdateChannelClassResponseChannelInputAttachmentsTypeDef(
    _ClientUpdateChannelClassResponseChannelInputAttachmentsTypeDef
):
    """
    Type definition for `ClientUpdateChannelClassResponseChannel` `InputAttachments`

    - **InputAttachmentName** *(string) --* User-specified name for the attachment. This is required
    if the user wants to use this input in an input switch action.

    - **InputId** *(string) --* The ID of the input

    - **InputSettings** *(dict) --* Settings of an input (caption selector, etc.)

      - **AudioSelectors** *(list) --* Used to select the audio stream to decode for inputs that
      have multiple available.

        - *(dict) --* Audio Selector

          - **Name** *(string) --* The name of this AudioSelector. AudioDescriptions will use this
          name to uniquely identify this Selector. Selector names should be unique per input.

          - **SelectorSettings** *(dict) --* The audio selector settings.

            - **AudioLanguageSelection** *(dict) --* Audio Language Selection

              - **LanguageCode** *(string) --* Selects a specific three-letter language code from
              within an audio source.

              - **LanguageSelectionPolicy** *(string) --* When set to "strict", the transport stream
              demux strictly identifies audio streams by their language descriptor. If a PMT update
              occurs such that an audio stream matching the initially selected language is no longer
              present then mute will be encoded until the language returns. If "loose", then on a
              PMT update the demux will choose another audio stream in the program with the same
              stream type if it can't find one with the same language.

            - **AudioPidSelection** *(dict) --* Audio Pid Selection

              - **Pid** *(integer) --* Selects a specific PID from within a source.

      - **CaptionSelectors** *(list) --* Used to select the caption input to use for inputs that
      have multiple available.

        - *(dict) --* Output groups for this Live Event. Output groups contain information about
        where streams should be distributed.

          - **LanguageCode** *(string) --* When specified this field indicates the three letter
          language code of the caption track to extract from the source.

          - **Name** *(string) --* Name identifier for a caption selector. This name is used to
          associate this caption selector with one or more caption descriptions. Names must be
          unique within an event.

          - **SelectorSettings** *(dict) --* Caption selector settings.

            - **AribSourceSettings** *(dict) --* Arib Source Settings

            - **DvbSubSourceSettings** *(dict) --* Dvb Sub Source Settings

              - **Pid** *(integer) --* When using DVB-Sub with Burn-In or SMPTE-TT, use this PID for
              the source content. Unused for DVB-Sub passthrough. All DVB-Sub content is passed
              through, regardless of selectors.

            - **EmbeddedSourceSettings** *(dict) --* Embedded Source Settings

              - **Convert608To708** *(string) --* If upconvert, 608 data is both passed through via
              the "608 compatibility bytes" fields of the 708 wrapper as well as translated into
              708. 708 data present in the source content will be discarded.

              - **Scte20Detection** *(string) --* Set to "auto" to handle streams with intermittent
              and/or non-aligned SCTE-20 and Embedded captions.

              - **Source608ChannelNumber** *(integer) --* Specifies the 608/708 channel number
              within the video track from which to extract captions. Unused for passthrough.

              - **Source608TrackNumber** *(integer) --* This field is unused and deprecated.

            - **Scte20SourceSettings** *(dict) --* Scte20 Source Settings

              - **Convert608To708** *(string) --* If upconvert, 608 data is both passed through via
              the "608 compatibility bytes" fields of the 708 wrapper as well as translated into
              708. 708 data present in the source content will be discarded.

              - **Source608ChannelNumber** *(integer) --* Specifies the 608/708 channel number
              within the video track from which to extract captions. Unused for passthrough.

            - **Scte27SourceSettings** *(dict) --* Scte27 Source Settings

              - **Pid** *(integer) --* The pid field is used in conjunction with the caption
              selector languageCode field as follows: - Specify PID and Language: Extracts captions
              from that PID; the language is "informational". - Specify PID and omit Language:
              Extracts the specified PID. - Omit PID and specify Language: Extracts the specified
              language, whichever PID that happens to be. - Omit PID and omit Language: Valid only
              if source is DVB-Sub that is being passed through; all languages will be passed
              through.

            - **TeletextSourceSettings** *(dict) --* Teletext Source Settings

              - **PageNumber** *(string) --* Specifies the teletext page number within the data
              stream from which to extract captions. Range of 0x100 (256) to 0x8FF (2303). Unused
              for passthrough. Should be specified as a hexadecimal string with no "0x" prefix.

      - **DeblockFilter** *(string) --* Enable or disable the deblock filter when filtering.

      - **DenoiseFilter** *(string) --* Enable or disable the denoise filter when filtering.

      - **FilterStrength** *(integer) --* Adjusts the magnitude of filtering from 1 (minimal) to 5
      (strongest).

      - **InputFilter** *(string) --* Turns on the filter for this input. MPEG-2 inputs have the
      deblocking filter enabled by default. 1) auto - filtering will be applied depending on input
      type/quality 2) disabled - no filtering will be applied to the input 3) forced - filtering
      will be applied regardless of input type

      - **NetworkInputSettings** *(dict) --* Input settings.

        - **HlsInputSettings** *(dict) --* Specifies HLS input settings when the uri is for a HLS
        manifest.

          - **Bandwidth** *(integer) --* When specified the HLS stream with the m3u8 BANDWIDTH that
          most closely matches this value will be chosen, otherwise the highest bandwidth stream in
          the m3u8 will be chosen. The bitrate is specified in bits per second, as in an HLS
          manifest.

          - **BufferSegments** *(integer) --* When specified, reading of the HLS input will begin
          this many buffer segments from the end (most recently written segment). When not
          specified, the HLS input will begin with the first segment specified in the m3u8.

          - **Retries** *(integer) --* The number of consecutive times that attempts to read a
          manifest or segment must fail before the input is considered unavailable.

          - **RetryInterval** *(integer) --* The number of seconds between retries when an attempt
          to read a manifest or segment fails.

        - **ServerValidation** *(string) --* Check HTTPS server certificates. When set to
        checkCryptographyOnly, cryptography in the certificate will be checked, but not the server's
        name. Certain subdomains (notably S3 buckets that use dots in the bucket name) do not
        strictly match the corresponding certificate's wildcard pattern and would otherwise cause
        the event to error. This setting is ignored for protocols that do not use https.

      - **SourceEndBehavior** *(string) --* Loop input if it is a file. This allows a file input to
      be streamed indefinitely.

      - **VideoSelector** *(dict) --* Informs which video elementary stream to decode for input
      types that have multiple available.

        - **ColorSpace** *(string) --* Specifies the color space of an input. This setting works in
        tandem with colorSpaceUsage and a video description's colorSpaceSettingsChoice to determine
        if any conversion will be performed.

        - **ColorSpaceUsage** *(string) --* Applies only if colorSpace is a value other than follow.
        This field controls how the value in the colorSpace field will be used. fallback means that
        when the input does include color space data, that data will be used, but when the input has
        no color space data, the value in colorSpace will be used. Choose fallback if your input is
        sometimes missing color space data, but when it does have color space data, that data is
        correct. force means to always use the value in colorSpace. Choose force if your input
        usually has no color space data or might have unreliable color space data.

        - **SelectorSettings** *(dict) --* The video selector settings.

          - **VideoSelectorPid** *(dict) --* Video Selector Pid

            - **Pid** *(integer) --* Selects a specific PID from within a video source.

          - **VideoSelectorProgramId** *(dict) --* Video Selector Program Id

            - **ProgramId** *(integer) --* Selects a specific program from within a multi-program
            transport stream. If the program doesn't exist, the first program within the transport
            stream will be selected by default.
    """


_ClientUpdateChannelClassResponseChannelInputSpecificationTypeDef = TypedDict(
    "_ClientUpdateChannelClassResponseChannelInputSpecificationTypeDef",
    {"Codec": str, "MaximumBitrate": str, "Resolution": str},
    total=False,
)


class ClientUpdateChannelClassResponseChannelInputSpecificationTypeDef(
    _ClientUpdateChannelClassResponseChannelInputSpecificationTypeDef
):
    """
    Type definition for `ClientUpdateChannelClassResponseChannel` `InputSpecification`

    - **Codec** *(string) --* Input codec

    - **MaximumBitrate** *(string) --* Maximum input bitrate, categorized coarsely

    - **Resolution** *(string) --* Input resolution, categorized coarsely
    """


_ClientUpdateChannelClassResponseChannelPipelineDetailsTypeDef = TypedDict(
    "_ClientUpdateChannelClassResponseChannelPipelineDetailsTypeDef",
    {"ActiveInputAttachmentName": str, "ActiveInputSwitchActionName": str, "PipelineId": str},
    total=False,
)


class ClientUpdateChannelClassResponseChannelPipelineDetailsTypeDef(
    _ClientUpdateChannelClassResponseChannelPipelineDetailsTypeDef
):
    """
    Type definition for `ClientUpdateChannelClassResponseChannel` `PipelineDetails`

    - **ActiveInputAttachmentName** *(string) --* The name of the active input attachment currently
    being ingested by this pipeline.

    - **ActiveInputSwitchActionName** *(string) --* The name of the input switch schedule action
    that occurred most recently and that resulted in the switch to the current input attachment for
    this pipeline.

    - **PipelineId** *(string) --* Pipeline ID
    """


_ClientUpdateChannelClassResponseChannelTypeDef = TypedDict(
    "_ClientUpdateChannelClassResponseChannelTypeDef",
    {
        "Arn": str,
        "ChannelClass": str,
        "Destinations": List[ClientUpdateChannelClassResponseChannelDestinationsTypeDef],
        "EgressEndpoints": List[ClientUpdateChannelClassResponseChannelEgressEndpointsTypeDef],
        "EncoderSettings": ClientUpdateChannelClassResponseChannelEncoderSettingsTypeDef,
        "Id": str,
        "InputAttachments": List[ClientUpdateChannelClassResponseChannelInputAttachmentsTypeDef],
        "InputSpecification": ClientUpdateChannelClassResponseChannelInputSpecificationTypeDef,
        "LogLevel": str,
        "Name": str,
        "PipelineDetails": List[ClientUpdateChannelClassResponseChannelPipelineDetailsTypeDef],
        "PipelinesRunningCount": int,
        "RoleArn": str,
        "State": str,
        "Tags": Dict[str, str],
    },
    total=False,
)


class ClientUpdateChannelClassResponseChannelTypeDef(
    _ClientUpdateChannelClassResponseChannelTypeDef
):
    """
    Type definition for `ClientUpdateChannelClassResponse` `Channel`

    - **Arn** *(string) --* The unique arn of the channel.

    - **ChannelClass** *(string) --* The class for this channel. STANDARD for a channel with two
    pipelines or SINGLE_PIPELINE for a channel with one pipeline.

    - **Destinations** *(list) --* A list of destinations of the channel. For UDP outputs, there is
    one destination per output. For other types (HLS, for example), there is one destination per
    packager.

      - *(dict) --* Placeholder documentation for OutputDestination

        - **Id** *(string) --* User-specified id. This is used in an output group or an output.

        - **MediaPackageSettings** *(list) --* Destination settings for a MediaPackage output; one
        destination for both encoders.

          - *(dict) --* MediaPackage Output Destination Settings

            - **ChannelId** *(string) --* ID of the channel in MediaPackage that is the destination
            for this output group. You do not need to specify the individual inputs in MediaPackage;
            MediaLive will handle the connection of the two MediaLive pipelines to the two
            MediaPackage inputs. The MediaPackage channel and MediaLive channel must be in the same
            region.

        - **MultiplexSettings** *(dict) --* Destination settings for a Multiplex output; one
        destination for both encoders.

          - **MultiplexId** *(string) --* The ID of the Multiplex that the encoder is providing
          output to. You do not need to specify the individual inputs to the Multiplex; MediaLive
          will handle the connection of the two MediaLive pipelines to the two Multiplex instances.
          The Multiplex must be in the same region as the Channel.

          - **ProgramName** *(string) --* The program name of the Multiplex program that the encoder
          is providing output to.

        - **Settings** *(list) --* Destination settings for a standard output; one destination for
        each redundant encoder.

          - *(dict) --* Placeholder documentation for OutputDestinationSettings

            - **PasswordParam** *(string) --* key used to extract the password from EC2 Parameter
            store

            - **StreamName** *(string) --* Stream name for RTMP destinations (URLs of type rtmp://)

            - **Url** *(string) --* A URL specifying a destination

            - **Username** *(string) --* username for destination

    - **EgressEndpoints** *(list) --* The endpoints where outgoing connections initiate from

      - *(dict) --* Placeholder documentation for ChannelEgressEndpoint

        - **SourceIp** *(string) --* Public IP of where a channel's output comes from

    - **EncoderSettings** *(dict) --* Encoder Settings

      - **AudioDescriptions** *(list) --* Placeholder documentation for __listOfAudioDescription

        - *(dict) --* Audio Description

          - **AudioNormalizationSettings** *(dict) --* Advanced audio normalization settings.

            - **Algorithm** *(string) --* Audio normalization algorithm to use. itu17701 conforms to
            the CALM Act specification, itu17702 conforms to the EBU R-128 specification.

            - **AlgorithmControl** *(string) --* When set to correctAudio the output audio is
            corrected using the chosen algorithm. If set to measureOnly, the audio will be measured
            but not adjusted.

            - **TargetLkfs** *(float) --* Target LKFS(loudness) to adjust volume to. If no value is
            entered, a default value will be used according to the chosen algorithm. The CALM Act
            (1770-1) recommends a target of -24 LKFS. The EBU R-128 specification (1770-2)
            recommends a target of -23 LKFS.

          - **AudioSelectorName** *(string) --* The name of the AudioSelector used as the source for
          this AudioDescription.

          - **AudioType** *(string) --* Applies only if audioTypeControl is useConfigured. The
          values for audioType are defined in ISO-IEC 13818-1.

          - **AudioTypeControl** *(string) --* Determines how audio type is determined. followInput:
          If the input contains an ISO 639 audioType, then that value is passed through to the
          output. If the input contains no ISO 639 audioType, the value in Audio Type is included in
          the output. useConfigured: The value in Audio Type is included in the output. Note that
          this field and audioType are both ignored if inputType is broadcasterMixedAd.

          - **CodecSettings** *(dict) --* Audio codec settings.

            - **AacSettings** *(dict) --* Aac Settings

              - **Bitrate** *(float) --* Average bitrate in bits/second. Valid values depend on rate
              control mode and profile.

              - **CodingMode** *(string) --* Mono, Stereo, or 5.1 channel layout. Valid values
              depend on rate control mode and profile. The adReceiverMix setting receives a stereo
              description plus control track and emits a mono AAC encode of the description track,
              with control data emitted in the PES header as per ETSI TS 101 154 Annex E.

              - **InputType** *(string) --* Set to "broadcasterMixedAd" when input contains
              pre-mixed main audio + AD (narration) as a stereo pair. The Audio Type field
              (audioType) will be set to 3, which signals to downstream systems that this stream
              contains "broadcaster mixed AD". Note that the input received by the encoder must
              contain pre-mixed audio; the encoder does not perform the mixing. The values in
              audioTypeControl and audioType (in AudioDescription) are ignored when set to
              broadcasterMixedAd. Leave set to "normal" when input does not contain pre-mixed audio
              + AD.

              - **Profile** *(string) --* AAC Profile.

              - **RateControlMode** *(string) --* Rate Control Mode.

              - **RawFormat** *(string) --* Sets LATM / LOAS AAC output for raw containers.

              - **SampleRate** *(float) --* Sample rate in Hz. Valid values depend on rate control
              mode and profile.

              - **Spec** *(string) --* Use MPEG-2 AAC audio instead of MPEG-4 AAC audio for raw or
              MPEG-2 Transport Stream containers.

              - **VbrQuality** *(string) --* VBR Quality Level - Only used if rateControlMode is
              VBR.

            - **Ac3Settings** *(dict) --* Ac3 Settings

              - **Bitrate** *(float) --* Average bitrate in bits/second. Valid bitrates depend on
              the coding mode.

              - **BitstreamMode** *(string) --* Specifies the bitstream mode (bsmod) for the emitted
              AC-3 stream. See ATSC A/52-2012 for background on these values.

              - **CodingMode** *(string) --* Dolby Digital coding mode. Determines number of
              channels.

              - **Dialnorm** *(integer) --* Sets the dialnorm for the output. If excluded and input
              audio is Dolby Digital, dialnorm will be passed through.

              - **DrcProfile** *(string) --* If set to filmStandard, adds dynamic range compression
              signaling to the output bitstream as defined in the Dolby Digital specification.

              - **LfeFilter** *(string) --* When set to enabled, applies a 120Hz lowpass filter to
              the LFE channel prior to encoding. Only valid in codingMode32Lfe mode.

              - **MetadataControl** *(string) --* When set to "followInput", encoder metadata will
              be sourced from the DD, DD+, or DolbyE decoder that supplied this audio data. If audio
              was not supplied from one of these streams, then the static metadata settings will be
              used.

            - **Eac3Settings** *(dict) --* Eac3 Settings

              - **AttenuationControl** *(string) --* When set to attenuate3Db, applies a 3 dB
              attenuation to the surround channels. Only used for 3/2 coding mode.

              - **Bitrate** *(float) --* Average bitrate in bits/second. Valid bitrates depend on
              the coding mode.

              - **BitstreamMode** *(string) --* Specifies the bitstream mode (bsmod) for the emitted
              E-AC-3 stream. See ATSC A/52-2012 (Annex E) for background on these values.

              - **CodingMode** *(string) --* Dolby Digital Plus coding mode. Determines number of
              channels.

              - **DcFilter** *(string) --* When set to enabled, activates a DC highpass filter for
              all input channels.

              - **Dialnorm** *(integer) --* Sets the dialnorm for the output. If blank and input
              audio is Dolby Digital Plus, dialnorm will be passed through.

              - **DrcLine** *(string) --* Sets the Dolby dynamic range compression profile.

              - **DrcRf** *(string) --* Sets the profile for heavy Dolby dynamic range compression,
              ensures that the instantaneous signal peaks do not exceed specified levels.

              - **LfeControl** *(string) --* When encoding 3/2 audio, setting to lfe enables the LFE
              channel

              - **LfeFilter** *(string) --* When set to enabled, applies a 120Hz lowpass filter to
              the LFE channel prior to encoding. Only valid with codingMode32 coding mode.

              - **LoRoCenterMixLevel** *(float) --* Left only/Right only center mix level. Only used
              for 3/2 coding mode.

              - **LoRoSurroundMixLevel** *(float) --* Left only/Right only surround mix level. Only
              used for 3/2 coding mode.

              - **LtRtCenterMixLevel** *(float) --* Left total/Right total center mix level. Only
              used for 3/2 coding mode.

              - **LtRtSurroundMixLevel** *(float) --* Left total/Right total surround mix level.
              Only used for 3/2 coding mode.

              - **MetadataControl** *(string) --* When set to followInput, encoder metadata will be
              sourced from the DD, DD+, or DolbyE decoder that supplied this audio data. If audio
              was not supplied from one of these streams, then the static metadata settings will be
              used.

              - **PassthroughControl** *(string) --* When set to whenPossible, input DD+ audio will
              be passed through if it is present on the input. This detection is dynamic over the
              life of the transcode. Inputs that alternate between DD+ and non-DD+ content will have
              a consistent DD+ output as the system alternates between passthrough and encoding.

              - **PhaseControl** *(string) --* When set to shift90Degrees, applies a 90-degree phase
              shift to the surround channels. Only used for 3/2 coding mode.

              - **StereoDownmix** *(string) --* Stereo downmix preference. Only used for 3/2 coding
              mode.

              - **SurroundExMode** *(string) --* When encoding 3/2 audio, sets whether an extra
              center back surround channel is matrix encoded into the left and right surround
              channels.

              - **SurroundMode** *(string) --* When encoding 2/0 audio, sets whether Dolby Surround
              is matrix encoded into the two channels.

            - **Mp2Settings** *(dict) --* Mp2 Settings

              - **Bitrate** *(float) --* Average bitrate in bits/second.

              - **CodingMode** *(string) --* The MPEG2 Audio coding mode. Valid values are
              codingMode10 (for mono) or codingMode20 (for stereo).

              - **SampleRate** *(float) --* Sample rate in Hz.

            - **PassThroughSettings** *(dict) --* Pass Through Settings

          - **LanguageCode** *(string) --* Indicates the language of the audio output track. Only
          used if languageControlMode is useConfigured, or there is no ISO 639 language code
          specified in the input.

          - **LanguageCodeControl** *(string) --* Choosing followInput will cause the ISO 639
          language code of the output to follow the ISO 639 language code of the input. The
          languageCode will be used when useConfigured is set, or when followInput is selected but
          there is no ISO 639 language code specified by the input.

          - **Name** *(string) --* The name of this AudioDescription. Outputs will use this name to
          uniquely identify this AudioDescription. Description names should be unique within this
          Live Event.

          - **RemixSettings** *(dict) --* Settings that control how input audio channels are remixed
          into the output audio channels.

            - **ChannelMappings** *(list) --* Mapping of input channels to output channels, with
            appropriate gain adjustments.

              - *(dict) --* Audio Channel Mapping

                - **InputChannelLevels** *(list) --* Indices and gain values for each input channel
                that should be remixed into this output channel.

                  - *(dict) --* Input Channel Level

                    - **Gain** *(integer) --* Remixing value. Units are in dB and acceptable values
                    are within the range from -60 (mute) and 6 dB.

                    - **InputChannel** *(integer) --* The index of the input channel used as a
                    source.

                - **OutputChannel** *(integer) --* The index of the output channel being produced.

            - **ChannelsIn** *(integer) --* Number of input channels to be used.

            - **ChannelsOut** *(integer) --* Number of output channels to be produced. Valid values:
            1, 2, 4, 6, 8

          - **StreamName** *(string) --* Used for MS Smooth and Apple HLS outputs. Indicates the
          name displayed by the player (eg. English, or Director Commentary).

      - **AvailBlanking** *(dict) --* Settings for ad avail blanking.

        - **AvailBlankingImage** *(dict) --* Blanking image to be used. Leave empty for solid black.
        Only bmp and png images are supported.

          - **PasswordParam** *(string) --* key used to extract the password from EC2 Parameter
          store

          - **Uri** *(string) --* Uniform Resource Identifier - This should be a path to a file
          accessible to the Live system (eg. a http:// URI) depending on the output type. For
          example, a RTMP destination should have a uri simliar to: "rtmp://fmsserver/live".

          - **Username** *(string) --* Documentation update needed

        - **State** *(string) --* When set to enabled, causes video, audio and captions to be
        blanked when insertion metadata is added.

      - **AvailConfiguration** *(dict) --* Event-wide configuration settings for ad avail insertion.

        - **AvailSettings** *(dict) --* Ad avail settings.

          - **Scte35SpliceInsert** *(dict) --* Scte35 Splice Insert

            - **AdAvailOffset** *(integer) --* When specified, this offset (in milliseconds) is
            added to the input Ad Avail PTS time. This only applies to embedded SCTE 104/35 messages
            and does not apply to OOB messages.

            - **NoRegionalBlackoutFlag** *(string) --* When set to ignore, Segment Descriptors with
            noRegionalBlackoutFlag set to 0 will no longer trigger blackouts or Ad Avail slates

            - **WebDeliveryAllowedFlag** *(string) --* When set to ignore, Segment Descriptors with
            webDeliveryAllowedFlag set to 0 will no longer trigger blackouts or Ad Avail slates

          - **Scte35TimeSignalApos** *(dict) --* Scte35 Time Signal Apos

            - **AdAvailOffset** *(integer) --* When specified, this offset (in milliseconds) is
            added to the input Ad Avail PTS time. This only applies to embedded SCTE 104/35 messages
            and does not apply to OOB messages.

            - **NoRegionalBlackoutFlag** *(string) --* When set to ignore, Segment Descriptors with
            noRegionalBlackoutFlag set to 0 will no longer trigger blackouts or Ad Avail slates

            - **WebDeliveryAllowedFlag** *(string) --* When set to ignore, Segment Descriptors with
            webDeliveryAllowedFlag set to 0 will no longer trigger blackouts or Ad Avail slates

      - **BlackoutSlate** *(dict) --* Settings for blackout slate.

        - **BlackoutSlateImage** *(dict) --* Blackout slate image to be used. Leave empty for solid
        black. Only bmp and png images are supported.

          - **PasswordParam** *(string) --* key used to extract the password from EC2 Parameter
          store

          - **Uri** *(string) --* Uniform Resource Identifier - This should be a path to a file
          accessible to the Live system (eg. a http:// URI) depending on the output type. For
          example, a RTMP destination should have a uri simliar to: "rtmp://fmsserver/live".

          - **Username** *(string) --* Documentation update needed

        - **NetworkEndBlackout** *(string) --* Setting to enabled causes the encoder to blackout the
        video, audio, and captions, and raise the "Network Blackout Image" slate when an SCTE104/35
        Network End Segmentation Descriptor is encountered. The blackout will be lifted when the
        Network Start Segmentation Descriptor is encountered. The Network End and Network Start
        descriptors must contain a network ID that matches the value entered in "Network ID".

        - **NetworkEndBlackoutImage** *(dict) --* Path to local file to use as Network End Blackout
        image. Image will be scaled to fill the entire output raster.

          - **PasswordParam** *(string) --* key used to extract the password from EC2 Parameter
          store

          - **Uri** *(string) --* Uniform Resource Identifier - This should be a path to a file
          accessible to the Live system (eg. a http:// URI) depending on the output type. For
          example, a RTMP destination should have a uri simliar to: "rtmp://fmsserver/live".

          - **Username** *(string) --* Documentation update needed

        - **NetworkId** *(string) --* Provides Network ID that matches EIDR ID format (e.g.,
        "10.XXXX/XXXX-XXXX-XXXX-XXXX-XXXX-C").

        - **State** *(string) --* When set to enabled, causes video, audio and captions to be
        blanked when indicated by program metadata.

      - **CaptionDescriptions** *(list) --* Settings for caption decriptions

        - *(dict) --* Caption Description

          - **CaptionSelectorName** *(string) --* Specifies which input caption selector to use as a
          caption source when generating output captions. This field should match a captionSelector
          name.

          - **DestinationSettings** *(dict) --* Additional settings for captions destination that
          depend on the destination type.

            - **AribDestinationSettings** *(dict) --* Arib Destination Settings

            - **BurnInDestinationSettings** *(dict) --* Burn In Destination Settings

              - **Alignment** *(string) --* If no explicit xPosition or yPosition is provided,
              setting alignment to centered will place the captions at the bottom center of the
              output. Similarly, setting a left alignment will align captions to the bottom left of
              the output. If x and y positions are given in conjunction with the alignment
              parameter, the font will be justified (either left or centered) relative to those
              coordinates. Selecting "smart" justification will left-justify live subtitles and
              center-justify pre-recorded subtitles. All burn-in and DVB-Sub font settings must
              match.

              - **BackgroundColor** *(string) --* Specifies the color of the rectangle behind the
              captions. All burn-in and DVB-Sub font settings must match.

              - **BackgroundOpacity** *(integer) --* Specifies the opacity of the background
              rectangle. 255 is opaque; 0 is transparent. Leaving this parameter out is equivalent
              to setting it to 0 (transparent). All burn-in and DVB-Sub font settings must match.

              - **Font** *(dict) --* External font file used for caption burn-in. File extension
              must be 'ttf' or 'tte'. Although the user can select output fonts for many different
              types of input captions, embedded, STL and teletext sources use a strict grid system.
              Using external fonts with these caption sources could cause unexpected display of
              proportional fonts. All burn-in and DVB-Sub font settings must match.

                - **PasswordParam** *(string) --* key used to extract the password from EC2
                Parameter store

                - **Uri** *(string) --* Uniform Resource Identifier - This should be a path to a
                file accessible to the Live system (eg. a http:// URI) depending on the output type.
                For example, a RTMP destination should have a uri simliar to:
                "rtmp://fmsserver/live".

                - **Username** *(string) --* Documentation update needed

              - **FontColor** *(string) --* Specifies the color of the burned-in captions. This
              option is not valid for source captions that are STL, 608/embedded or teletext. These
              source settings are already pre-defined by the caption stream. All burn-in and DVB-Sub
              font settings must match.

              - **FontOpacity** *(integer) --* Specifies the opacity of the burned-in captions. 255
              is opaque; 0 is transparent. All burn-in and DVB-Sub font settings must match.

              - **FontResolution** *(integer) --* Font resolution in DPI (dots per inch); default is
              96 dpi. All burn-in and DVB-Sub font settings must match.

              - **FontSize** *(string) --* When set to 'auto' fontSize will scale depending on the
              size of the output. Giving a positive integer will specify the exact font size in
              points. All burn-in and DVB-Sub font settings must match.

              - **OutlineColor** *(string) --* Specifies font outline color. This option is not
              valid for source captions that are either 608/embedded or teletext. These source
              settings are already pre-defined by the caption stream. All burn-in and DVB-Sub font
              settings must match.

              - **OutlineSize** *(integer) --* Specifies font outline size in pixels. This option is
              not valid for source captions that are either 608/embedded or teletext. These source
              settings are already pre-defined by the caption stream. All burn-in and DVB-Sub font
              settings must match.

              - **ShadowColor** *(string) --* Specifies the color of the shadow cast by the
              captions. All burn-in and DVB-Sub font settings must match.

              - **ShadowOpacity** *(integer) --* Specifies the opacity of the shadow. 255 is opaque;
              0 is transparent. Leaving this parameter out is equivalent to setting it to 0
              (transparent). All burn-in and DVB-Sub font settings must match.

              - **ShadowXOffset** *(integer) --* Specifies the horizontal offset of the shadow
              relative to the captions in pixels. A value of -2 would result in a shadow offset 2
              pixels to the left. All burn-in and DVB-Sub font settings must match.

              - **ShadowYOffset** *(integer) --* Specifies the vertical offset of the shadow
              relative to the captions in pixels. A value of -2 would result in a shadow offset 2
              pixels above the text. All burn-in and DVB-Sub font settings must match.

              - **TeletextGridControl** *(string) --* Controls whether a fixed grid size will be
              used to generate the output subtitles bitmap. Only applicable for Teletext inputs and
              DVB-Sub/Burn-in outputs.

              - **XPosition** *(integer) --* Specifies the horizontal position of the caption
              relative to the left side of the output in pixels. A value of 10 would result in the
              captions starting 10 pixels from the left of the output. If no explicit xPosition is
              provided, the horizontal caption position will be determined by the alignment
              parameter. All burn-in and DVB-Sub font settings must match.

              - **YPosition** *(integer) --* Specifies the vertical position of the caption relative
              to the top of the output in pixels. A value of 10 would result in the captions
              starting 10 pixels from the top of the output. If no explicit yPosition is provided,
              the caption will be positioned towards the bottom of the output. All burn-in and
              DVB-Sub font settings must match.

            - **DvbSubDestinationSettings** *(dict) --* Dvb Sub Destination Settings

              - **Alignment** *(string) --* If no explicit xPosition or yPosition is provided,
              setting alignment to centered will place the captions at the bottom center of the
              output. Similarly, setting a left alignment will align captions to the bottom left of
              the output. If x and y positions are given in conjunction with the alignment
              parameter, the font will be justified (either left or centered) relative to those
              coordinates. Selecting "smart" justification will left-justify live subtitles and
              center-justify pre-recorded subtitles. This option is not valid for source captions
              that are STL or 608/embedded. These source settings are already pre-defined by the
              caption stream. All burn-in and DVB-Sub font settings must match.

              - **BackgroundColor** *(string) --* Specifies the color of the rectangle behind the
              captions. All burn-in and DVB-Sub font settings must match.

              - **BackgroundOpacity** *(integer) --* Specifies the opacity of the background
              rectangle. 255 is opaque; 0 is transparent. Leaving this parameter blank is equivalent
              to setting it to 0 (transparent). All burn-in and DVB-Sub font settings must match.

              - **Font** *(dict) --* External font file used for caption burn-in. File extension
              must be 'ttf' or 'tte'. Although the user can select output fonts for many different
              types of input captions, embedded, STL and teletext sources use a strict grid system.
              Using external fonts with these caption sources could cause unexpected display of
              proportional fonts. All burn-in and DVB-Sub font settings must match.

                - **PasswordParam** *(string) --* key used to extract the password from EC2
                Parameter store

                - **Uri** *(string) --* Uniform Resource Identifier - This should be a path to a
                file accessible to the Live system (eg. a http:// URI) depending on the output type.
                For example, a RTMP destination should have a uri simliar to:
                "rtmp://fmsserver/live".

                - **Username** *(string) --* Documentation update needed

              - **FontColor** *(string) --* Specifies the color of the burned-in captions. This
              option is not valid for source captions that are STL, 608/embedded or teletext. These
              source settings are already pre-defined by the caption stream. All burn-in and DVB-Sub
              font settings must match.

              - **FontOpacity** *(integer) --* Specifies the opacity of the burned-in captions. 255
              is opaque; 0 is transparent. All burn-in and DVB-Sub font settings must match.

              - **FontResolution** *(integer) --* Font resolution in DPI (dots per inch); default is
              96 dpi. All burn-in and DVB-Sub font settings must match.

              - **FontSize** *(string) --* When set to auto fontSize will scale depending on the
              size of the output. Giving a positive integer will specify the exact font size in
              points. All burn-in and DVB-Sub font settings must match.

              - **OutlineColor** *(string) --* Specifies font outline color. This option is not
              valid for source captions that are either 608/embedded or teletext. These source
              settings are already pre-defined by the caption stream. All burn-in and DVB-Sub font
              settings must match.

              - **OutlineSize** *(integer) --* Specifies font outline size in pixels. This option is
              not valid for source captions that are either 608/embedded or teletext. These source
              settings are already pre-defined by the caption stream. All burn-in and DVB-Sub font
              settings must match.

              - **ShadowColor** *(string) --* Specifies the color of the shadow cast by the
              captions. All burn-in and DVB-Sub font settings must match.

              - **ShadowOpacity** *(integer) --* Specifies the opacity of the shadow. 255 is opaque;
              0 is transparent. Leaving this parameter blank is equivalent to setting it to 0
              (transparent). All burn-in and DVB-Sub font settings must match.

              - **ShadowXOffset** *(integer) --* Specifies the horizontal offset of the shadow
              relative to the captions in pixels. A value of -2 would result in a shadow offset 2
              pixels to the left. All burn-in and DVB-Sub font settings must match.

              - **ShadowYOffset** *(integer) --* Specifies the vertical offset of the shadow
              relative to the captions in pixels. A value of -2 would result in a shadow offset 2
              pixels above the text. All burn-in and DVB-Sub font settings must match.

              - **TeletextGridControl** *(string) --* Controls whether a fixed grid size will be
              used to generate the output subtitles bitmap. Only applicable for Teletext inputs and
              DVB-Sub/Burn-in outputs.

              - **XPosition** *(integer) --* Specifies the horizontal position of the caption
              relative to the left side of the output in pixels. A value of 10 would result in the
              captions starting 10 pixels from the left of the output. If no explicit xPosition is
              provided, the horizontal caption position will be determined by the alignment
              parameter. This option is not valid for source captions that are STL, 608/embedded or
              teletext. These source settings are already pre-defined by the caption stream. All
              burn-in and DVB-Sub font settings must match.

              - **YPosition** *(integer) --* Specifies the vertical position of the caption relative
              to the top of the output in pixels. A value of 10 would result in the captions
              starting 10 pixels from the top of the output. If no explicit yPosition is provided,
              the caption will be positioned towards the bottom of the output. This option is not
              valid for source captions that are STL, 608/embedded or teletext. These source
              settings are already pre-defined by the caption stream. All burn-in and DVB-Sub font
              settings must match.

            - **EmbeddedDestinationSettings** *(dict) --* Embedded Destination Settings

            - **EmbeddedPlusScte20DestinationSettings** *(dict) --* Embedded Plus Scte20 Destination
            Settings

            - **RtmpCaptionInfoDestinationSettings** *(dict) --* Rtmp Caption Info Destination
            Settings

            - **Scte20PlusEmbeddedDestinationSettings** *(dict) --* Scte20 Plus Embedded Destination
            Settings

            - **Scte27DestinationSettings** *(dict) --* Scte27 Destination Settings

            - **SmpteTtDestinationSettings** *(dict) --* Smpte Tt Destination Settings

            - **TeletextDestinationSettings** *(dict) --* Teletext Destination Settings

            - **TtmlDestinationSettings** *(dict) --* Ttml Destination Settings

              - **StyleControl** *(string) --* When set to passthrough, passes through style and
              position information from a TTML-like input source (TTML, SMPTE-TT, CFF-TT) to the
              CFF-TT output or TTML output.

            - **WebvttDestinationSettings** *(dict) --* Webvtt Destination Settings

          - **LanguageCode** *(string) --* ISO 639-2 three-digit code:
          http://www.loc.gov/standards/iso639-2/

          - **LanguageDescription** *(string) --* Human readable information to indicate captions
          available for players (eg. English, or Spanish).

          - **Name** *(string) --* Name of the caption description. Used to associate a caption
          description with an output. Names must be unique within an event.

      - **GlobalConfiguration** *(dict) --* Configuration settings that apply to the event as a
      whole.

        - **InitialAudioGain** *(integer) --* Value to set the initial audio gain for the Live
        Event.

        - **InputEndAction** *(string) --* Indicates the action to take when the current input
        completes (e.g. end-of-file). When switchAndLoopInputs is configured the encoder will
        restart at the beginning of the first input. When "none" is configured the encoder will
        transcode either black, a solid color, or a user specified slate images per the "Input Loss
        Behavior" configuration until the next input switch occurs (which is controlled through the
        Channel Schedule API).

        - **InputLossBehavior** *(dict) --* Settings for system actions when input is lost.

          - **BlackFrameMsec** *(integer) --* Documentation update needed

          - **InputLossImageColor** *(string) --* When input loss image type is "color" this field
          specifies the color to use. Value: 6 hex characters representing the values of RGB.

          - **InputLossImageSlate** *(dict) --* When input loss image type is "slate" these fields
          specify the parameters for accessing the slate.

            - **PasswordParam** *(string) --* key used to extract the password from EC2 Parameter
            store

            - **Uri** *(string) --* Uniform Resource Identifier - This should be a path to a file
            accessible to the Live system (eg. a http:// URI) depending on the output type. For
            example, a RTMP destination should have a uri simliar to: "rtmp://fmsserver/live".

            - **Username** *(string) --* Documentation update needed

          - **InputLossImageType** *(string) --* Indicates whether to substitute a solid color or a
          slate into the output after input loss exceeds blackFrameMsec.

          - **RepeatFrameMsec** *(integer) --* Documentation update needed

        - **OutputLockingMode** *(string) --* Indicates how MediaLive pipelines are synchronized.
        PIPELINELOCKING - MediaLive will attempt to synchronize the output of each pipeline to the
        other. EPOCHLOCKING - MediaLive will attempt to synchronize the output of each pipeline to
        the Unix epoch.

        - **OutputTimingSource** *(string) --* Indicates whether the rate of frames emitted by the
        Live encoder should be paced by its system clock (which optionally may be locked to another
        source via NTP) or should be locked to the clock of the source that is providing the input
        stream.

        - **SupportLowFramerateInputs** *(string) --* Adjusts video input buffer for streams with
        very low video framerates. This is commonly set to enabled for music channels with less than
        one video frame per second.

      - **NielsenConfiguration** *(dict) --* Nielsen configuration settings.

        - **DistributorId** *(string) --* Enter the Distributor ID assigned to your organization by
        Nielsen.

        - **NielsenPcmToId3Tagging** *(string) --* Enables Nielsen PCM to ID3 tagging

      - **OutputGroups** *(list) --* Placeholder documentation for __listOfOutputGroup

        - *(dict) --* Output groups for this Live Event. Output groups contain information about
        where streams should be distributed.

          - **Name** *(string) --* Custom output group name optionally defined by the user. Only
          letters, numbers, and the underscore character allowed; only 32 characters allowed.

          - **OutputGroupSettings** *(dict) --* Settings associated with the output group.

            - **ArchiveGroupSettings** *(dict) --* Archive Group Settings

              - **Destination** *(dict) --* A directory and base filename where archive files should
              be written.

                - **DestinationRefId** *(string) --* Placeholder documentation for __string

              - **RolloverInterval** *(integer) --* Number of seconds to write to archive file
              before closing and starting a new one.

            - **FrameCaptureGroupSettings** *(dict) --* Frame Capture Group Settings

              - **Destination** *(dict) --* The destination for the frame capture files. Either the
              URI for an Amazon S3 bucket and object, plus a file name prefix (for example,
              s3ssl://sportsDelivery/highlights/20180820/curling_) or the URI for a MediaStore
              container, plus a file name prefix (for example,
              mediastoressl://sportsDelivery/20180820/curling_). The final file names consist of the
              prefix from the destination field (for example, "curling_") + name modifier + the
              counter (5 digits, starting from 00001) + extension (which is always .jpg). For
              example, curlingLow.00001.jpg

                - **DestinationRefId** *(string) --* Placeholder documentation for __string

            - **HlsGroupSettings** *(dict) --* Hls Group Settings

              - **AdMarkers** *(list) --* Choose one or more ad marker types to pass SCTE35 signals
              through to this group of Apple HLS outputs.

                - *(string) --* Hls Ad Markers

              - **BaseUrlContent** *(string) --* A partial URI prefix that will be prepended to each
              output in the media .m3u8 file. Can be used if base manifest is delivered from a
              different URL than the main .m3u8 file.

              - **BaseUrlManifest** *(string) --* A partial URI prefix that will be prepended to
              each output in the media .m3u8 file. Can be used if base manifest is delivered from a
              different URL than the main .m3u8 file.

              - **CaptionLanguageMappings** *(list) --* Mapping of up to 4 caption channels to
              caption languages. Is only meaningful if captionLanguageSetting is set to "insert".

                - *(dict) --* Maps a caption channel to an ISO 693-2 language code
                (http://www.loc.gov/standards/iso639-2), with an optional description.

                  - **CaptionChannel** *(integer) --* The closed caption channel being described by
                  this CaptionLanguageMapping. Each channel mapping must have a unique channel
                  number (maximum of 4)

                  - **LanguageCode** *(string) --* Three character ISO 639-2 language code (see
                  http://www.loc.gov/standards/iso639-2)

                  - **LanguageDescription** *(string) --* Textual description of language

              - **CaptionLanguageSetting** *(string) --* Applies only to 608 Embedded output
              captions. insert: Include CLOSED-CAPTIONS lines in the manifest. Specify at least one
              language in the CC1 Language Code field. One CLOSED-CAPTION line is added for each
              Language Code you specify. Make sure to specify the languages in the order in which
              they appear in the original source (if the source is embedded format) or the order of
              the caption selectors (if the source is other than embedded). Otherwise, languages in
              the manifest will not match up properly with the output captions. none: Include
              CLOSED-CAPTIONS=
                  NONE line in the manifest. omit: Omit any CLOSED-CAPTIONS line from
              the manifest.

              - **ClientCache** *(string) --* When set to "disabled", sets the #EXT-X-ALLOW-CACHE:no
              tag in the manifest, which prevents clients from saving media segments for later
              replay.

              - **CodecSpecification** *(string) --* Specification to use (RFC-6381 or the default
              RFC-4281) during m3u8 playlist generation.

              - **ConstantIv** *(string) --* For use with encryptionType. This is a 128-bit, 16-byte
              hex value represented by a 32-character text string. If ivSource is set to "explicit"
              then this parameter is required and is used as the IV for encryption.

              - **Destination** *(dict) --* A directory or HTTP destination for the HLS segments,
              manifest files, and encryption keys (if enabled).

                - **DestinationRefId** *(string) --* Placeholder documentation for __string

              - **DirectoryStructure** *(string) --* Place segments in subdirectories.

              - **EncryptionType** *(string) --* Encrypts the segments with the given encryption
              scheme. Exclude this parameter if no encryption is desired.

              - **HlsCdnSettings** *(dict) --* Parameters that control interactions with the CDN.

                - **HlsAkamaiSettings** *(dict) --* Hls Akamai Settings

                  - **ConnectionRetryInterval** *(integer) --* Number of seconds to wait before
                  retrying connection to the CDN if the connection is lost.

                  - **FilecacheDuration** *(integer) --* Size in seconds of file cache for streaming
                  outputs.

                  - **HttpTransferMode** *(string) --* Specify whether or not to use chunked
                  transfer encoding to Akamai. User should contact Akamai to enable this feature.

                  - **NumRetries** *(integer) --* Number of retry attempts that will be made before
                  the Live Event is put into an error state.

                  - **RestartDelay** *(integer) --* If a streaming output fails, number of seconds
                  to wait until a restart is initiated. A value of 0 means never restart.

                  - **Salt** *(string) --* Salt for authenticated Akamai.

                  - **Token** *(string) --* Token parameter for authenticated akamai. If not
                  specified, _gda_ is used.

                - **HlsBasicPutSettings** *(dict) --* Hls Basic Put Settings

                  - **ConnectionRetryInterval** *(integer) --* Number of seconds to wait before
                  retrying connection to the CDN if the connection is lost.

                  - **FilecacheDuration** *(integer) --* Size in seconds of file cache for streaming
                  outputs.

                  - **NumRetries** *(integer) --* Number of retry attempts that will be made before
                  the Live Event is put into an error state.

                  - **RestartDelay** *(integer) --* If a streaming output fails, number of seconds
                  to wait until a restart is initiated. A value of 0 means never restart.

                - **HlsMediaStoreSettings** *(dict) --* Hls Media Store Settings

                  - **ConnectionRetryInterval** *(integer) --* Number of seconds to wait before
                  retrying connection to the CDN if the connection is lost.

                  - **FilecacheDuration** *(integer) --* Size in seconds of file cache for streaming
                  outputs.

                  - **MediaStoreStorageClass** *(string) --* When set to temporal, output files are
                  stored in non-persistent memory for faster reading and writing.

                  - **NumRetries** *(integer) --* Number of retry attempts that will be made before
                  the Live Event is put into an error state.

                  - **RestartDelay** *(integer) --* If a streaming output fails, number of seconds
                  to wait until a restart is initiated. A value of 0 means never restart.

                - **HlsWebdavSettings** *(dict) --* Hls Webdav Settings

                  - **ConnectionRetryInterval** *(integer) --* Number of seconds to wait before
                  retrying connection to the CDN if the connection is lost.

                  - **FilecacheDuration** *(integer) --* Size in seconds of file cache for streaming
                  outputs.

                  - **HttpTransferMode** *(string) --* Specify whether or not to use chunked
                  transfer encoding to WebDAV.

                  - **NumRetries** *(integer) --* Number of retry attempts that will be made before
                  the Live Event is put into an error state.

                  - **RestartDelay** *(integer) --* If a streaming output fails, number of seconds
                  to wait until a restart is initiated. A value of 0 means never restart.

              - **IFrameOnlyPlaylists** *(string) --* DISABLED: Do not create an I-frame-only
              manifest, but do create the master and media manifests (according to the Output
              Selection field). STANDARD: Create an I-frame-only manifest for each output that
              contains video, as well as the other manifests (according to the Output Selection
              field). The I-frame manifest contains a #EXT-X-I-FRAMES-ONLY tag to indicate it is
              I-frame only, and one or more #EXT-X-BYTERANGE entries identifying the I-frame
              position. For example, #EXT-X-BYTERANGE:160364@1461888"

              - **IndexNSegments** *(integer) --* Applies only if Mode field is LIVE. Specifies the
              maximum number of segments in the media manifest file. After this maximum, older
              segments are removed from the media manifest. This number must be less than or equal
              to the Keep Segments field.

              - **InputLossAction** *(string) --* Parameter that control output group behavior on
              input loss.

              - **IvInManifest** *(string) --* For use with encryptionType. The IV (Initialization
              Vector) is a 128-bit number used in conjunction with the key for encrypting blocks. If
              set to "include", IV is listed in the manifest, otherwise the IV is not in the
              manifest.

              - **IvSource** *(string) --* For use with encryptionType. The IV (Initialization
              Vector) is a 128-bit number used in conjunction with the key for encrypting blocks. If
              this setting is "followsSegmentNumber", it will cause the IV to change every segment
              (to match the segment number). If this is set to "explicit", you must enter a
              constantIv value.

              - **KeepSegments** *(integer) --* Applies only if Mode field is LIVE. Specifies the
              number of media segments (.ts files) to retain in the destination directory.

              - **KeyFormat** *(string) --* The value specifies how the key is represented in the
              resource identified by the URI. If parameter is absent, an implicit value of
              "identity" is used. A reverse DNS string can also be given.

              - **KeyFormatVersions** *(string) --* Either a single positive integer version value
              or a slash delimited list of version values (1/2/3).

              - **KeyProviderSettings** *(dict) --* The key provider settings.

                - **StaticKeySettings** *(dict) --* Static Key Settings

                  - **KeyProviderServer** *(dict) --* The URL of the license server used for
                  protecting content.

                    - **PasswordParam** *(string) --* key used to extract the password from EC2
                    Parameter store

                    - **Uri** *(string) --* Uniform Resource Identifier - This should be a path to a
                    file accessible to the Live system (eg. a http:// URI) depending on the output
                    type. For example, a RTMP destination should have a uri simliar to:
                    "rtmp://fmsserver/live".

                    - **Username** *(string) --* Documentation update needed

                  - **StaticKeyValue** *(string) --* Static key value as a 32 character hexadecimal
                  string.

              - **ManifestCompression** *(string) --* When set to gzip, compresses HLS playlist.

              - **ManifestDurationFormat** *(string) --* Indicates whether the output manifest
              should use floating point or integer values for segment duration.

              - **MinSegmentLength** *(integer) --* When set, minimumSegmentLength is enforced by
              looking ahead and back within the specified range for a nearby avail and extending the
              segment size if needed.

              - **Mode** *(string) --* If "vod", all segments are indexed and kept permanently in
              the destination and manifest. If "live", only the number segments specified in
              keepSegments and indexNSegments are kept; newer segments replace older segments, which
              may prevent players from rewinding all the way to the beginning of the event. VOD mode
              uses HLS EXT-X-PLAYLIST-TYPE of EVENT while the channel is running, converting it to a
              "VOD" type manifest on completion of the stream.

              - **OutputSelection** *(string) --* MANIFESTSANDSEGMENTS: Generates manifests (master
              manifest, if applicable, and media manifests) for this output group. SEGMENTSONLY:
              Does not generate any manifests for this output group.

              - **ProgramDateTime** *(string) --* Includes or excludes EXT-X-PROGRAM-DATE-TIME tag
              in .m3u8 manifest files. The value is calculated as follows: either the program date
              and time are initialized using the input timecode source, or the time is initialized
              using the input timecode source and the date is initialized using the timestampOffset.

              - **ProgramDateTimePeriod** *(integer) --* Period of insertion of
              EXT-X-PROGRAM-DATE-TIME entry, in seconds.

              - **RedundantManifest** *(string) --* ENABLED: The master manifest (.m3u8 file) for
              each pipeline includes information about both pipelines: first its own media files,
              then the media files of the other pipeline. This feature allows playout device that
              support stale manifest detection to switch from one manifest to the other, when the
              current manifest seems to be stale. There are still two destinations and two master
              manifests, but both master manifests reference the media files from both pipelines.
              DISABLED: The master manifest (.m3u8 file) for each pipeline includes information
              about its own pipeline only. For an HLS output group with MediaPackage as the
              destination, the DISABLED behavior is always followed. MediaPackage regenerates the
              manifests it serves to players so a redundant manifest from MediaLive is irrelevant.

              - **SegmentLength** *(integer) --* Length of MPEG-2 Transport Stream segments to
              create (in seconds). Note that segments will end on the next keyframe after this
              number of seconds, so actual segment length may be longer.

              - **SegmentationMode** *(string) --* useInputSegmentation has been deprecated. The
              configured segment size is always used.

              - **SegmentsPerSubdirectory** *(integer) --* Number of segments to write to a
              subdirectory before starting a new one. directoryStructure must be
              subdirectoryPerStream for this setting to have an effect.

              - **StreamInfResolution** *(string) --* Include or exclude RESOLUTION attribute for
              video in EXT-X-STREAM-INF tag of variant manifest.

              - **TimedMetadataId3Frame** *(string) --* Indicates ID3 frame that has the timecode.

              - **TimedMetadataId3Period** *(integer) --* Timed Metadata interval in seconds.

              - **TimestampDeltaMilliseconds** *(integer) --* Provides an extra millisecond delta
              offset to fine tune the timestamps.

              - **TsFileMode** *(string) --* SEGMENTEDFILES: Emit the program as segments - multiple
              .ts media files. SINGLEFILE: Applies only if Mode field is VOD. Emit the program as a
              single .ts media file. The media manifest includes #EXT-X-BYTERANGE tags to index
              segments for playback. A typical use for this value is when sending the output to AWS
              Elemental MediaConvert, which can accept only a single media file. Playback while the
              channel is running is not guaranteed due to HTTP server caching.

            - **MediaPackageGroupSettings** *(dict) --* Media Package Group Settings

              - **Destination** *(dict) --* MediaPackage channel destination.

                - **DestinationRefId** *(string) --* Placeholder documentation for __string

            - **MsSmoothGroupSettings** *(dict) --* Ms Smooth Group Settings

              - **AcquisitionPointId** *(string) --* The value of the "Acquisition Point Identity"
              element used in each message placed in the sparse track. Only enabled if
              sparseTrackType is not "none".

              - **AudioOnlyTimecodeControl** *(string) --* If set to passthrough for an audio-only
              MS Smooth output, the fragment absolute time will be set to the current timecode. This
              option does not write timecodes to the audio elementary stream.

              - **CertificateMode** *(string) --* If set to verifyAuthenticity, verify the https
              certificate chain to a trusted Certificate Authority (CA). This will cause https
              outputs to self-signed certificates to fail.

              - **ConnectionRetryInterval** *(integer) --* Number of seconds to wait before retrying
              connection to the IIS server if the connection is lost. Content will be cached during
              this time and the cache will be be delivered to the IIS server once the connection is
              re-established.

              - **Destination** *(dict) --* Smooth Streaming publish point on an IIS server.
              Elemental Live acts as a "Push" encoder to IIS.

                - **DestinationRefId** *(string) --* Placeholder documentation for __string

              - **EventId** *(string) --* MS Smooth event ID to be sent to the IIS server. Should
              only be specified if eventIdMode is set to useConfigured.

              - **EventIdMode** *(string) --* Specifies whether or not to send an event ID to the
              IIS server. If no event ID is sent and the same Live Event is used without changing
              the publishing point, clients might see cached video from the previous run. Options: -
              "useConfigured" - use the value provided in eventId - "useTimestamp" - generate and
              send an event ID based on the current timestamp - "noEventId" - do not send an event
              ID to the IIS server.

              - **EventStopBehavior** *(string) --* When set to sendEos, send EOS signal to IIS
              server when stopping the event

              - **FilecacheDuration** *(integer) --* Size in seconds of file cache for streaming
              outputs.

              - **FragmentLength** *(integer) --* Length of mp4 fragments to generate (in seconds).
              Fragment length must be compatible with GOP size and framerate.

              - **InputLossAction** *(string) --* Parameter that control output group behavior on
              input loss.

              - **NumRetries** *(integer) --* Number of retry attempts.

              - **RestartDelay** *(integer) --* Number of seconds before initiating a restart due to
              output failure, due to exhausting the numRetries on one segment, or exceeding
              filecacheDuration.

              - **SegmentationMode** *(string) --* useInputSegmentation has been deprecated. The
              configured segment size is always used.

              - **SendDelayMs** *(integer) --* Number of milliseconds to delay the output from the
              second pipeline.

              - **SparseTrackType** *(string) --* If set to scte35, use incoming SCTE-35 messages to
              generate a sparse track in this group of MS-Smooth outputs.

              - **StreamManifestBehavior** *(string) --* When set to send, send stream manifest so
              publishing point doesn't start until all streams start.

              - **TimestampOffset** *(string) --* Timestamp offset for the event. Only used if
              timestampOffsetMode is set to useConfiguredOffset.

              - **TimestampOffsetMode** *(string) --* Type of timestamp date offset to use. -
              useEventStartDate: Use the date the event was started as the offset -
              useConfiguredOffset: Use an explicitly configured date as the offset

            - **MultiplexGroupSettings** *(dict) --* Multiplex Group Settings

            - **RtmpGroupSettings** *(dict) --* Rtmp Group Settings

              - **AuthenticationScheme** *(string) --* Authentication scheme to use when connecting
              with CDN

              - **CacheFullBehavior** *(string) --* Controls behavior when content cache fills up.
              If remote origin server stalls the RTMP connection and does not accept content fast
              enough the 'Media Cache' will fill up. When the cache reaches the duration specified
              by cacheLength the cache will stop accepting new content. If set to
              disconnectImmediately, the RTMP output will force a disconnect. Clear the media cache,
              and reconnect after restartDelay seconds. If set to waitForServer, the RTMP output
              will wait up to 5 minutes to allow the origin server to begin accepting data again.

              - **CacheLength** *(integer) --* Cache length, in seconds, is used to calculate buffer
              size.

              - **CaptionData** *(string) --* Controls the types of data that passes to
              onCaptionInfo outputs. If set to 'all' then 608 and 708 carried DTVCC data will be
              passed. If set to 'field1AndField2608' then DTVCC data will be stripped out, but 608
              data from both fields will be passed. If set to 'field1608' then only the data carried
              in 608 from field 1 video will be passed.

              - **InputLossAction** *(string) --* Controls the behavior of this RTMP group if input
              becomes unavailable. - emitOutput: Emit a slate until input returns. - pauseOutput:
              Stop transmitting data until input returns. This does not close the underlying RTMP
              connection.

              - **RestartDelay** *(integer) --* If a streaming output fails, number of seconds to
              wait until a restart is initiated. A value of 0 means never restart.

            - **UdpGroupSettings** *(dict) --* Udp Group Settings

              - **InputLossAction** *(string) --* Specifies behavior of last resort when input video
              is lost, and no more backup inputs are available. When dropTs is selected the entire
              transport stream will stop being emitted. When dropProgram is selected the program can
              be dropped from the transport stream (and replaced with null packets to meet the TS
              bitrate requirement). Or, when emitProgram is chosen the transport stream will
              continue to be produced normally with repeat frames, black frames, or slate frames
              substituted for the absent input video.

              - **TimedMetadataId3Frame** *(string) --* Indicates ID3 frame that has the timecode.

              - **TimedMetadataId3Period** *(integer) --* Timed Metadata interval in seconds.

          - **Outputs** *(list) --* Placeholder documentation for __listOfOutput

            - *(dict) --* Output settings. There can be multiple outputs within a group.

              - **AudioDescriptionNames** *(list) --* The names of the AudioDescriptions used as
              audio sources for this output.

                - *(string) --* Placeholder documentation for __string

              - **CaptionDescriptionNames** *(list) --* The names of the CaptionDescriptions used as
              caption sources for this output.

                - *(string) --* Placeholder documentation for __string

              - **OutputName** *(string) --* The name used to identify an output.

              - **OutputSettings** *(dict) --* Output type-specific settings.

                - **ArchiveOutputSettings** *(dict) --* Archive Output Settings

                  - **ContainerSettings** *(dict) --* Settings specific to the container type of the
                  file.

                    - **M2tsSettings** *(dict) --* M2ts Settings

                      - **AbsentInputAudioBehavior** *(string) --* When set to drop, output audio
                      streams will be removed from the program if the selected input audio stream is
                      removed from the input. This allows the output audio configuration to
                      dynamically change based on input configuration. If this is set to
                      encodeSilence, all output audio streams will output encoded silence when not
                      connected to an active input stream.

                      - **Arib** *(string) --* When set to enabled, uses ARIB-compliant field muxing
                      and removes video descriptor.

                      - **AribCaptionsPid** *(string) --* Packet Identifier (PID) for ARIB Captions
                      in the transport stream. Can be entered as a decimal or hexadecimal value.
                      Valid values are 32 (or 0x20)..8182 (or 0x1ff6).

                      - **AribCaptionsPidControl** *(string) --* If set to auto, pid number used for
                      ARIB Captions will be auto-selected from unused pids. If set to useConfigured,
                      ARIB Captions will be on the configured pid number.

                      - **AudioBufferModel** *(string) --* When set to dvb, uses DVB buffer model
                      for Dolby Digital audio. When set to atsc, the ATSC model is used.

                      - **AudioFramesPerPes** *(integer) --* The number of audio frames to insert
                      for each PES packet.

                      - **AudioPids** *(string) --* Packet Identifier (PID) of the elementary audio
                      stream(s) in the transport stream. Multiple values are accepted, and can be
                      entered in ranges and/or by comma separation. Can be entered as decimal or
                      hexadecimal values. Each PID specified must be in the range of 32 (or
                      0x20)..8182 (or 0x1ff6).

                      - **AudioStreamType** *(string) --* When set to atsc, uses stream type = 0x81
                      for AC3 and stream type =
                           0x87 for EAC3. When set to dvb, uses stream type =
                      0x06.

                      - **Bitrate** *(integer) --* The output bitrate of the transport stream in
                      bits per second. Setting to 0 lets the muxer automatically determine the
                      appropriate bitrate.

                      - **BufferModel** *(string) --* If set to multiplex, use multiplex buffer
                      model for accurate interleaving. Setting to bufferModel to none can lead to
                      lower latency, but low-memory devices may not be able to play back the stream
                      without interruptions.

                      - **CcDescriptor** *(string) --* When set to enabled, generates
                      captionServiceDescriptor in PMT.

                      - **DvbNitSettings** *(dict) --* Inserts DVB Network Information Table (NIT)
                      at the specified table repetition interval.

                        - **NetworkId** *(integer) --* The numeric value placed in the Network
                        Information Table (NIT).

                        - **NetworkName** *(string) --* The network name text placed in the
                        networkNameDescriptor inside the Network Information Table. Maximum length
                        is 256 characters.

                        - **RepInterval** *(integer) --* The number of milliseconds between
                        instances of this table in the output transport stream.

                      - **DvbSdtSettings** *(dict) --* Inserts DVB Service Description Table (SDT)
                      at the specified table repetition interval.

                        - **OutputSdt** *(string) --* Selects method of inserting SDT information
                        into output stream. The sdtFollow setting copies SDT information from input
                        stream to output stream. The sdtFollowIfPresent setting copies SDT
                        information from input stream to output stream if SDT information is present
                        in the input, otherwise it will fall back on the user-defined values. The
                        sdtManual setting means user will enter the SDT information. The sdtNone
                        setting means output stream will not contain SDT information.

                        - **RepInterval** *(integer) --* The number of milliseconds between
                        instances of this table in the output transport stream.

                        - **ServiceName** *(string) --* The service name placed in the
                        serviceDescriptor in the Service Description Table. Maximum length is 256
                        characters.

                        - **ServiceProviderName** *(string) --* The service provider name placed in
                        the serviceDescriptor in the Service Description Table. Maximum length is
                        256 characters.

                      - **DvbSubPids** *(string) --* Packet Identifier (PID) for input source DVB
                      Subtitle data to this output. Multiple values are accepted, and can be entered
                      in ranges and/or by comma separation. Can be entered as decimal or hexadecimal
                      values. Each PID specified must be in the range of 32 (or 0x20)..8182 (or
                      0x1ff6).

                      - **DvbTdtSettings** *(dict) --* Inserts DVB Time and Date Table (TDT) at the
                      specified table repetition interval.

                        - **RepInterval** *(integer) --* The number of milliseconds between
                        instances of this table in the output transport stream.

                      - **DvbTeletextPid** *(string) --* Packet Identifier (PID) for input source
                      DVB Teletext data to this output. Can be entered as a decimal or hexadecimal
                      value. Valid values are 32 (or 0x20)..8182 (or 0x1ff6).

                      - **Ebif** *(string) --* If set to passthrough, passes any EBIF data from the
                      input source to this output.

                      - **EbpAudioInterval** *(string) --* When videoAndFixedIntervals is selected,
                      audio EBP markers will be added to partitions 3 and 4. The interval between
                      these additional markers will be fixed, and will be slightly shorter than the
                      video EBP marker interval. Only available when EBP Cablelabs segmentation
                      markers are selected. Partitions 1 and 2 will always follow the video
                      interval.

                      - **EbpLookaheadMs** *(integer) --* When set, enforces that Encoder Boundary
                      Points do not come within the specified time interval of each other by looking
                      ahead at input video. If another EBP is going to come in within the specified
                      time interval, the current EBP is not emitted, and the segment is "stretched"
                      to the next marker. The lookahead value does not add latency to the system.
                      The Live Event must be configured elsewhere to create sufficient latency to
                      make the lookahead accurate.

                      - **EbpPlacement** *(string) --* Controls placement of EBP on Audio PIDs. If
                      set to videoAndAudioPids, EBP markers will be placed on the video PID and all
                      audio PIDs. If set to videoPid, EBP markers will be placed on only the video
                      PID.

                      - **EcmPid** *(string) --* This field is unused and deprecated.

                      - **EsRateInPes** *(string) --* Include or exclude the ES Rate field in the
                      PES header.

                      - **EtvPlatformPid** *(string) --* Packet Identifier (PID) for input source
                      ETV Platform data to this output. Can be entered as a decimal or hexadecimal
                      value. Valid values are 32 (or 0x20)..8182 (or 0x1ff6).

                      - **EtvSignalPid** *(string) --* Packet Identifier (PID) for input source ETV
                      Signal data to this output. Can be entered as a decimal or hexadecimal value.
                      Valid values are 32 (or 0x20)..8182 (or 0x1ff6).

                      - **FragmentTime** *(float) --* The length in seconds of each fragment. Only
                      used with EBP markers.

                      - **Klv** *(string) --* If set to passthrough, passes any KLV data from the
                      input source to this output.

                      - **KlvDataPids** *(string) --* Packet Identifier (PID) for input source KLV
                      data to this output. Multiple values are accepted, and can be entered in
                      ranges and/or by comma separation. Can be entered as decimal or hexadecimal
                      values. Each PID specified must be in the range of 32 (or 0x20)..8182 (or
                      0x1ff6).

                      - **NielsenId3Behavior** *(string) --* If set to passthrough, Nielsen
                      inaudible tones for media tracking will be detected in the input audio and an
                      equivalent ID3 tag will be inserted in the output.

                      - **NullPacketBitrate** *(float) --* Value in bits per second of extra null
                      packets to insert into the transport stream. This can be used if a downstream
                      encryption system requires periodic null packets.

                      - **PatInterval** *(integer) --* The number of milliseconds between instances
                      of this table in the output transport stream. Valid values are 0, 10..1000.

                      - **PcrControl** *(string) --* When set to pcrEveryPesPacket, a Program Clock
                      Reference value is inserted for every Packetized Elementary Stream (PES)
                      header. This parameter is effective only when the PCR PID is the same as the
                      video or audio elementary stream.

                      - **PcrPeriod** *(integer) --* Maximum time in milliseconds between Program
                      Clock Reference (PCRs) inserted into the transport stream.

                      - **PcrPid** *(string) --* Packet Identifier (PID) of the Program Clock
                      Reference (PCR) in the transport stream. When no value is given, the encoder
                      will assign the same value as the Video PID. Can be entered as a decimal or
                      hexadecimal value. Valid values are 32 (or 0x20)..8182 (or 0x1ff6).

                      - **PmtInterval** *(integer) --* The number of milliseconds between instances
                      of this table in the output transport stream. Valid values are 0, 10..1000.

                      - **PmtPid** *(string) --* Packet Identifier (PID) for the Program Map Table
                      (PMT) in the transport stream. Can be entered as a decimal or hexadecimal
                      value. Valid values are 32 (or 0x20)..8182 (or 0x1ff6).

                      - **ProgramNum** *(integer) --* The value of the program number field in the
                      Program Map Table.

                      - **RateMode** *(string) --* When vbr, does not insert null packets into
                      transport stream to fill specified bitrate. The bitrate setting acts as the
                      maximum bitrate when vbr is set.

                      - **Scte27Pids** *(string) --* Packet Identifier (PID) for input source
                      SCTE-27 data to this output. Multiple values are accepted, and can be entered
                      in ranges and/or by comma separation. Can be entered as decimal or hexadecimal
                      values. Each PID specified must be in the range of 32 (or 0x20)..8182 (or
                      0x1ff6).

                      - **Scte35Control** *(string) --* Optionally pass SCTE-35 signals from the
                      input source to this output.

                      - **Scte35Pid** *(string) --* Packet Identifier (PID) of the SCTE-35 stream in
                      the transport stream. Can be entered as a decimal or hexadecimal value. Valid
                      values are 32 (or 0x20)..8182 (or 0x1ff6).

                      - **SegmentationMarkers** *(string) --* Inserts segmentation markers at each
                      segmentationTime period. raiSegstart sets the Random Access Indicator bit in
                      the adaptation field. raiAdapt sets the RAI bit and adds the current timecode
                      in the private data bytes. psiSegstart inserts PAT and PMT tables at the start
                      of segments. ebp adds Encoder Boundary Point information to the adaptation
                      field as per OpenCable specification OC-SP-EBP-I01-130118. ebpLegacy adds
                      Encoder Boundary Point information to the adaptation field using a legacy
                      proprietary format.

                      - **SegmentationStyle** *(string) --* The segmentation style parameter
                      controls how segmentation markers are inserted into the transport stream. With
                      avails, it is possible that segments may be truncated, which can influence
                      where future segmentation markers are inserted. When a segmentation style of
                      "resetCadence" is selected and a segment is truncated due to an avail, we will
                      reset the segmentation cadence. This means the subsequent segment will have a
                      duration of $segmentationTime seconds. When a segmentation style of
                      "maintainCadence" is selected and a segment is truncated due to an avail, we
                      will not reset the segmentation cadence. This means the subsequent segment
                      will likely be truncated as well. However, all segments after that will have a
                      duration of $segmentationTime seconds. Note that EBP lookahead is a slight
                      exception to this rule.

                      - **SegmentationTime** *(float) --* The length in seconds of each segment.
                      Required unless markers is set to None_.

                      - **TimedMetadataBehavior** *(string) --* When set to passthrough, timed
                      metadata will be passed through from input to output.

                      - **TimedMetadataPid** *(string) --* Packet Identifier (PID) of the timed
                      metadata stream in the transport stream. Can be entered as a decimal or
                      hexadecimal value. Valid values are 32 (or 0x20)..8182 (or 0x1ff6).

                      - **TransportStreamId** *(integer) --* The value of the transport stream ID
                      field in the Program Map Table.

                      - **VideoPid** *(string) --* Packet Identifier (PID) of the elementary video
                      stream in the transport stream. Can be entered as a decimal or hexadecimal
                      value. Valid values are 32 (or 0x20)..8182 (or 0x1ff6).

                  - **Extension** *(string) --* Output file extension. If excluded, this will be
                  auto-selected from the container type.

                  - **NameModifier** *(string) --* String concatenated to the end of the destination
                  filename. Required for multiple outputs of the same type.

                - **FrameCaptureOutputSettings** *(dict) --* Frame Capture Output Settings

                  - **NameModifier** *(string) --* Required if the output group contains more than
                  one output. This modifier forms part of the output file name.

                - **HlsOutputSettings** *(dict) --* Hls Output Settings

                  - **HlsSettings** *(dict) --* Settings regarding the underlying stream. These
                  settings are different for audio-only outputs.

                    - **AudioOnlyHlsSettings** *(dict) --* Audio Only Hls Settings

                      - **AudioGroupId** *(string) --* Specifies the group to which the audio
                      Rendition belongs.

                      - **AudioOnlyImage** *(dict) --* Optional. Specifies the .jpg or .png image to
                      use as the cover art for an audio-only output. We recommend a low bit-size
                      file because the image increases the output audio bandwidth. The image is
                      attached to the audio as an ID3 tag, frame type APIC, picture type 0x10, as
                      per the "ID3 tag version 2.4.0 - Native Frames" standard.

                        - **PasswordParam** *(string) --* key used to extract the password from EC2
                        Parameter store

                        - **Uri** *(string) --* Uniform Resource Identifier - This should be a path
                        to a file accessible to the Live system (eg. a http:// URI) depending on the
                        output type. For example, a RTMP destination should have a uri simliar to:
                        "rtmp://fmsserver/live".

                        - **Username** *(string) --* Documentation update needed

                      - **AudioTrackType** *(string) --* Four types of audio-only tracks are
                      supported: Audio-Only Variant Stream The client can play back this audio-only
                      stream instead of video in low-bandwidth scenarios. Represented as an
                      EXT-X-STREAM-INF in the HLS manifest. Alternate Audio, Auto Select, Default
                      Alternate rendition that the client should try to play back by default.
                      Represented as an EXT-X-MEDIA in the HLS manifest with DEFAULT=YES,
                      AUTOSELECT=
                          YES Alternate Audio, Auto Select, Not Default Alternate rendition
                      that the client may try to play back by default. Represented as an EXT-X-MEDIA
                      in the HLS manifest with DEFAULT=NO, AUTOSELECT=
                          YES Alternate Audio, not Auto
                      Select Alternate rendition that the client will not try to play back by
                      default. Represented as an EXT-X-MEDIA in the HLS manifest with DEFAULT=NO,
                      AUTOSELECT=NO

                    - **StandardHlsSettings** *(dict) --* Standard Hls Settings

                      - **AudioRenditionSets** *(string) --* List all the audio groups that are used
                      with the video output stream. Input all the audio GROUP-IDs that are
                      associated to the video, separate by ','.

                      - **M3u8Settings** *(dict) --* Settings information for the .m3u8 container

                        - **AudioFramesPerPes** *(integer) --* The number of audio frames to insert
                        for each PES packet.

                        - **AudioPids** *(string) --* Packet Identifier (PID) of the elementary
                        audio stream(s) in the transport stream. Multiple values are accepted, and
                        can be entered in ranges and/or by comma separation. Can be entered as
                        decimal or hexadecimal values.

                        - **EcmPid** *(string) --* This parameter is unused and deprecated.

                        - **NielsenId3Behavior** *(string) --* If set to passthrough, Nielsen
                        inaudible tones for media tracking will be detected in the input audio and
                        an equivalent ID3 tag will be inserted in the output.

                        - **PatInterval** *(integer) --* The number of milliseconds between
                        instances of this table in the output transport stream. A value of \\"0\\"
                        writes out the PMT once per segment file.

                        - **PcrControl** *(string) --* When set to pcrEveryPesPacket, a Program
                        Clock Reference value is inserted for every Packetized Elementary Stream
                        (PES) header. This parameter is effective only when the PCR PID is the same
                        as the video or audio elementary stream.

                        - **PcrPeriod** *(integer) --* Maximum time in milliseconds between Program
                        Clock References (PCRs) inserted into the transport stream.

                        - **PcrPid** *(string) --* Packet Identifier (PID) of the Program Clock
                        Reference (PCR) in the transport stream. When no value is given, the encoder
                        will assign the same value as the Video PID. Can be entered as a decimal or
                        hexadecimal value.

                        - **PmtInterval** *(integer) --* The number of milliseconds between
                        instances of this table in the output transport stream. A value of \\"0\\"
                        writes out the PMT once per segment file.

                        - **PmtPid** *(string) --* Packet Identifier (PID) for the Program Map Table
                        (PMT) in the transport stream. Can be entered as a decimal or hexadecimal
                        value.

                        - **ProgramNum** *(integer) --* The value of the program number field in the
                        Program Map Table.

                        - **Scte35Behavior** *(string) --* If set to passthrough, passes any SCTE-35
                        signals from the input source to this output.

                        - **Scte35Pid** *(string) --* Packet Identifier (PID) of the SCTE-35 stream
                        in the transport stream. Can be entered as a decimal or hexadecimal value.

                        - **TimedMetadataBehavior** *(string) --* When set to passthrough, timed
                        metadata is passed through from input to output.

                        - **TimedMetadataPid** *(string) --* Packet Identifier (PID) of the timed
                        metadata stream in the transport stream. Can be entered as a decimal or
                        hexadecimal value. Valid values are 32 (or 0x20)..8182 (or 0x1ff6).

                        - **TransportStreamId** *(integer) --* The value of the transport stream ID
                        field in the Program Map Table.

                        - **VideoPid** *(string) --* Packet Identifier (PID) of the elementary video
                        stream in the transport stream. Can be entered as a decimal or hexadecimal
                        value.

                  - **NameModifier** *(string) --* String concatenated to the end of the destination
                  filename. Accepts \\"Format Identifiers\\":#formatIdentifierParameters.

                  - **SegmentModifier** *(string) --* String concatenated to end of segment
                  filenames.

                - **MediaPackageOutputSettings** *(dict) --* Media Package Output Settings

                - **MsSmoothOutputSettings** *(dict) --* Ms Smooth Output Settings

                  - **H265PackagingType** *(string) --* Only applicable when this output is
                  referencing an H.265 video description. Specifies whether MP4 segments should be
                  packaged as HEV1 or HVC1.

                  - **NameModifier** *(string) --* String concatenated to the end of the destination
                  filename. Required for multiple outputs of the same type.

                - **MultiplexOutputSettings** *(dict) --* Multiplex Output Settings

                  - **Destination** *(dict) --* Destination is a Multiplex.

                    - **DestinationRefId** *(string) --* Placeholder documentation for __string

                - **RtmpOutputSettings** *(dict) --* Rtmp Output Settings

                  - **CertificateMode** *(string) --* If set to verifyAuthenticity, verify the tls
                  certificate chain to a trusted Certificate Authority (CA). This will cause rtmps
                  outputs with self-signed certificates to fail.

                  - **ConnectionRetryInterval** *(integer) --* Number of seconds to wait before
                  retrying a connection to the Flash Media server if the connection is lost.

                  - **Destination** *(dict) --* The RTMP endpoint excluding the stream name (eg.
                  rtmp://host/appname). For connection to Akamai, a username and password must be
                  supplied. URI fields accept format identifiers.

                    - **DestinationRefId** *(string) --* Placeholder documentation for __string

                  - **NumRetries** *(integer) --* Number of retry attempts.

                - **UdpOutputSettings** *(dict) --* Udp Output Settings

                  - **BufferMsec** *(integer) --* UDP output buffering in milliseconds. Larger
                  values increase latency through the transcoder but simultaneously assist the
                  transcoder in maintaining a constant, low-jitter UDP/RTP output while
                  accommodating clock recovery, input switching, input disruptions, picture
                  reordering, etc.

                  - **ContainerSettings** *(dict) --* Udp Container Settings

                    - **M2tsSettings** *(dict) --* M2ts Settings

                      - **AbsentInputAudioBehavior** *(string) --* When set to drop, output audio
                      streams will be removed from the program if the selected input audio stream is
                      removed from the input. This allows the output audio configuration to
                      dynamically change based on input configuration. If this is set to
                      encodeSilence, all output audio streams will output encoded silence when not
                      connected to an active input stream.

                      - **Arib** *(string) --* When set to enabled, uses ARIB-compliant field muxing
                      and removes video descriptor.

                      - **AribCaptionsPid** *(string) --* Packet Identifier (PID) for ARIB Captions
                      in the transport stream. Can be entered as a decimal or hexadecimal value.
                      Valid values are 32 (or 0x20)..8182 (or 0x1ff6).

                      - **AribCaptionsPidControl** *(string) --* If set to auto, pid number used for
                      ARIB Captions will be auto-selected from unused pids. If set to useConfigured,
                      ARIB Captions will be on the configured pid number.

                      - **AudioBufferModel** *(string) --* When set to dvb, uses DVB buffer model
                      for Dolby Digital audio. When set to atsc, the ATSC model is used.

                      - **AudioFramesPerPes** *(integer) --* The number of audio frames to insert
                      for each PES packet.

                      - **AudioPids** *(string) --* Packet Identifier (PID) of the elementary audio
                      stream(s) in the transport stream. Multiple values are accepted, and can be
                      entered in ranges and/or by comma separation. Can be entered as decimal or
                      hexadecimal values. Each PID specified must be in the range of 32 (or
                      0x20)..8182 (or 0x1ff6).

                      - **AudioStreamType** *(string) --* When set to atsc, uses stream type = 0x81
                      for AC3 and stream type =
                           0x87 for EAC3. When set to dvb, uses stream type =
                      0x06.

                      - **Bitrate** *(integer) --* The output bitrate of the transport stream in
                      bits per second. Setting to 0 lets the muxer automatically determine the
                      appropriate bitrate.

                      - **BufferModel** *(string) --* If set to multiplex, use multiplex buffer
                      model for accurate interleaving. Setting to bufferModel to none can lead to
                      lower latency, but low-memory devices may not be able to play back the stream
                      without interruptions.

                      - **CcDescriptor** *(string) --* When set to enabled, generates
                      captionServiceDescriptor in PMT.

                      - **DvbNitSettings** *(dict) --* Inserts DVB Network Information Table (NIT)
                      at the specified table repetition interval.

                        - **NetworkId** *(integer) --* The numeric value placed in the Network
                        Information Table (NIT).

                        - **NetworkName** *(string) --* The network name text placed in the
                        networkNameDescriptor inside the Network Information Table. Maximum length
                        is 256 characters.

                        - **RepInterval** *(integer) --* The number of milliseconds between
                        instances of this table in the output transport stream.

                      - **DvbSdtSettings** *(dict) --* Inserts DVB Service Description Table (SDT)
                      at the specified table repetition interval.

                        - **OutputSdt** *(string) --* Selects method of inserting SDT information
                        into output stream. The sdtFollow setting copies SDT information from input
                        stream to output stream. The sdtFollowIfPresent setting copies SDT
                        information from input stream to output stream if SDT information is present
                        in the input, otherwise it will fall back on the user-defined values. The
                        sdtManual setting means user will enter the SDT information. The sdtNone
                        setting means output stream will not contain SDT information.

                        - **RepInterval** *(integer) --* The number of milliseconds between
                        instances of this table in the output transport stream.

                        - **ServiceName** *(string) --* The service name placed in the
                        serviceDescriptor in the Service Description Table. Maximum length is 256
                        characters.

                        - **ServiceProviderName** *(string) --* The service provider name placed in
                        the serviceDescriptor in the Service Description Table. Maximum length is
                        256 characters.

                      - **DvbSubPids** *(string) --* Packet Identifier (PID) for input source DVB
                      Subtitle data to this output. Multiple values are accepted, and can be entered
                      in ranges and/or by comma separation. Can be entered as decimal or hexadecimal
                      values. Each PID specified must be in the range of 32 (or 0x20)..8182 (or
                      0x1ff6).

                      - **DvbTdtSettings** *(dict) --* Inserts DVB Time and Date Table (TDT) at the
                      specified table repetition interval.

                        - **RepInterval** *(integer) --* The number of milliseconds between
                        instances of this table in the output transport stream.

                      - **DvbTeletextPid** *(string) --* Packet Identifier (PID) for input source
                      DVB Teletext data to this output. Can be entered as a decimal or hexadecimal
                      value. Valid values are 32 (or 0x20)..8182 (or 0x1ff6).

                      - **Ebif** *(string) --* If set to passthrough, passes any EBIF data from the
                      input source to this output.

                      - **EbpAudioInterval** *(string) --* When videoAndFixedIntervals is selected,
                      audio EBP markers will be added to partitions 3 and 4. The interval between
                      these additional markers will be fixed, and will be slightly shorter than the
                      video EBP marker interval. Only available when EBP Cablelabs segmentation
                      markers are selected. Partitions 1 and 2 will always follow the video
                      interval.

                      - **EbpLookaheadMs** *(integer) --* When set, enforces that Encoder Boundary
                      Points do not come within the specified time interval of each other by looking
                      ahead at input video. If another EBP is going to come in within the specified
                      time interval, the current EBP is not emitted, and the segment is "stretched"
                      to the next marker. The lookahead value does not add latency to the system.
                      The Live Event must be configured elsewhere to create sufficient latency to
                      make the lookahead accurate.

                      - **EbpPlacement** *(string) --* Controls placement of EBP on Audio PIDs. If
                      set to videoAndAudioPids, EBP markers will be placed on the video PID and all
                      audio PIDs. If set to videoPid, EBP markers will be placed on only the video
                      PID.

                      - **EcmPid** *(string) --* This field is unused and deprecated.

                      - **EsRateInPes** *(string) --* Include or exclude the ES Rate field in the
                      PES header.

                      - **EtvPlatformPid** *(string) --* Packet Identifier (PID) for input source
                      ETV Platform data to this output. Can be entered as a decimal or hexadecimal
                      value. Valid values are 32 (or 0x20)..8182 (or 0x1ff6).

                      - **EtvSignalPid** *(string) --* Packet Identifier (PID) for input source ETV
                      Signal data to this output. Can be entered as a decimal or hexadecimal value.
                      Valid values are 32 (or 0x20)..8182 (or 0x1ff6).

                      - **FragmentTime** *(float) --* The length in seconds of each fragment. Only
                      used with EBP markers.

                      - **Klv** *(string) --* If set to passthrough, passes any KLV data from the
                      input source to this output.

                      - **KlvDataPids** *(string) --* Packet Identifier (PID) for input source KLV
                      data to this output. Multiple values are accepted, and can be entered in
                      ranges and/or by comma separation. Can be entered as decimal or hexadecimal
                      values. Each PID specified must be in the range of 32 (or 0x20)..8182 (or
                      0x1ff6).

                      - **NielsenId3Behavior** *(string) --* If set to passthrough, Nielsen
                      inaudible tones for media tracking will be detected in the input audio and an
                      equivalent ID3 tag will be inserted in the output.

                      - **NullPacketBitrate** *(float) --* Value in bits per second of extra null
                      packets to insert into the transport stream. This can be used if a downstream
                      encryption system requires periodic null packets.

                      - **PatInterval** *(integer) --* The number of milliseconds between instances
                      of this table in the output transport stream. Valid values are 0, 10..1000.

                      - **PcrControl** *(string) --* When set to pcrEveryPesPacket, a Program Clock
                      Reference value is inserted for every Packetized Elementary Stream (PES)
                      header. This parameter is effective only when the PCR PID is the same as the
                      video or audio elementary stream.

                      - **PcrPeriod** *(integer) --* Maximum time in milliseconds between Program
                      Clock Reference (PCRs) inserted into the transport stream.

                      - **PcrPid** *(string) --* Packet Identifier (PID) of the Program Clock
                      Reference (PCR) in the transport stream. When no value is given, the encoder
                      will assign the same value as the Video PID. Can be entered as a decimal or
                      hexadecimal value. Valid values are 32 (or 0x20)..8182 (or 0x1ff6).

                      - **PmtInterval** *(integer) --* The number of milliseconds between instances
                      of this table in the output transport stream. Valid values are 0, 10..1000.

                      - **PmtPid** *(string) --* Packet Identifier (PID) for the Program Map Table
                      (PMT) in the transport stream. Can be entered as a decimal or hexadecimal
                      value. Valid values are 32 (or 0x20)..8182 (or 0x1ff6).

                      - **ProgramNum** *(integer) --* The value of the program number field in the
                      Program Map Table.

                      - **RateMode** *(string) --* When vbr, does not insert null packets into
                      transport stream to fill specified bitrate. The bitrate setting acts as the
                      maximum bitrate when vbr is set.

                      - **Scte27Pids** *(string) --* Packet Identifier (PID) for input source
                      SCTE-27 data to this output. Multiple values are accepted, and can be entered
                      in ranges and/or by comma separation. Can be entered as decimal or hexadecimal
                      values. Each PID specified must be in the range of 32 (or 0x20)..8182 (or
                      0x1ff6).

                      - **Scte35Control** *(string) --* Optionally pass SCTE-35 signals from the
                      input source to this output.

                      - **Scte35Pid** *(string) --* Packet Identifier (PID) of the SCTE-35 stream in
                      the transport stream. Can be entered as a decimal or hexadecimal value. Valid
                      values are 32 (or 0x20)..8182 (or 0x1ff6).

                      - **SegmentationMarkers** *(string) --* Inserts segmentation markers at each
                      segmentationTime period. raiSegstart sets the Random Access Indicator bit in
                      the adaptation field. raiAdapt sets the RAI bit and adds the current timecode
                      in the private data bytes. psiSegstart inserts PAT and PMT tables at the start
                      of segments. ebp adds Encoder Boundary Point information to the adaptation
                      field as per OpenCable specification OC-SP-EBP-I01-130118. ebpLegacy adds
                      Encoder Boundary Point information to the adaptation field using a legacy
                      proprietary format.

                      - **SegmentationStyle** *(string) --* The segmentation style parameter
                      controls how segmentation markers are inserted into the transport stream. With
                      avails, it is possible that segments may be truncated, which can influence
                      where future segmentation markers are inserted. When a segmentation style of
                      "resetCadence" is selected and a segment is truncated due to an avail, we will
                      reset the segmentation cadence. This means the subsequent segment will have a
                      duration of $segmentationTime seconds. When a segmentation style of
                      "maintainCadence" is selected and a segment is truncated due to an avail, we
                      will not reset the segmentation cadence. This means the subsequent segment
                      will likely be truncated as well. However, all segments after that will have a
                      duration of $segmentationTime seconds. Note that EBP lookahead is a slight
                      exception to this rule.

                      - **SegmentationTime** *(float) --* The length in seconds of each segment.
                      Required unless markers is set to None_.

                      - **TimedMetadataBehavior** *(string) --* When set to passthrough, timed
                      metadata will be passed through from input to output.

                      - **TimedMetadataPid** *(string) --* Packet Identifier (PID) of the timed
                      metadata stream in the transport stream. Can be entered as a decimal or
                      hexadecimal value. Valid values are 32 (or 0x20)..8182 (or 0x1ff6).

                      - **TransportStreamId** *(integer) --* The value of the transport stream ID
                      field in the Program Map Table.

                      - **VideoPid** *(string) --* Packet Identifier (PID) of the elementary video
                      stream in the transport stream. Can be entered as a decimal or hexadecimal
                      value. Valid values are 32 (or 0x20)..8182 (or 0x1ff6).

                  - **Destination** *(dict) --* Destination address and port number for RTP or UDP
                  packets. Can be unicast or multicast RTP or UDP (eg. rtp://239.10.10.10:5001 or
                  udp://10.100.100.100:5002).

                    - **DestinationRefId** *(string) --* Placeholder documentation for __string

                  - **FecOutputSettings** *(dict) --* Settings for enabling and adjusting Forward
                  Error Correction on UDP outputs.

                    - **ColumnDepth** *(integer) --* Parameter D from SMPTE 2022-1. The height of
                    the FEC protection matrix. The number of transport stream packets per column
                    error correction packet. Must be between 4 and 20, inclusive.

                    - **IncludeFec** *(string) --* Enables column only or column and row based FEC

                    - **RowLength** *(integer) --* Parameter L from SMPTE 2022-1. The width of the
                    FEC protection matrix. Must be between 1 and 20, inclusive. If only Column FEC
                    is used, then larger values increase robustness. If Row FEC is used, then this
                    is the number of transport stream packets per row error correction packet, and
                    the value must be between 4 and 20, inclusive, if includeFec is columnAndRow. If
                    includeFec is column, this value must be 1 to 20, inclusive.

              - **VideoDescriptionName** *(string) --* The name of the VideoDescription used as the
              source for this output.

      - **TimecodeConfig** *(dict) --* Contains settings used to acquire and adjust timecode
      information from inputs.

        - **Source** *(string) --* Identifies the source for the timecode that will be associated
        with the events outputs. -Embedded (embedded): Initialize the output timecode with timecode
        from the the source. If no embedded timecode is detected in the source, the system falls
        back to using "Start at 0" (zerobased). -System Clock (systemclock): Use the UTC time.
        -Start at 0 (zerobased): The time of the first frame of the event will be 00:00:00:00.

        - **SyncThreshold** *(integer) --* Threshold in frames beyond which output timecode is
        resynchronized to the input timecode. Discrepancies below this threshold are permitted to
        avoid unnecessary discontinuities in the output timecode. No timecode sync when this is not
        specified.

      - **VideoDescriptions** *(list) --* Placeholder documentation for __listOfVideoDescription

        - *(dict) --* Video settings for this stream.

          - **CodecSettings** *(dict) --* Video codec settings.

            - **FrameCaptureSettings** *(dict) --* Frame Capture Settings

              - **CaptureInterval** *(integer) --* The frequency at which to capture frames for
              inclusion in the output. May be specified in either seconds or milliseconds, as
              specified by captureIntervalUnits.

            - **H264Settings** *(dict) --* H264 Settings

              - **AdaptiveQuantization** *(string) --* Adaptive quantization. Allows intra-frame
              quantizers to vary to improve visual quality.

              - **AfdSignaling** *(string) --* Indicates that AFD values will be written into the
              output stream. If afdSignaling is "auto", the system will try to preserve the input
              AFD value (in cases where multiple AFD values are valid). If set to "fixed", the AFD
              value will be the value configured in the fixedAfd parameter.

              - **Bitrate** *(integer) --* Average bitrate in bits/second. Required when the rate
              control mode is VBR or CBR. Not used for QVBR. In an MS Smooth output group, each
              output must have a unique value when its bitrate is rounded down to the nearest
              multiple of 1000.

              - **BufFillPct** *(integer) --* Percentage of the buffer that should initially be
              filled (HRD buffer model).

              - **BufSize** *(integer) --* Size of buffer (HRD buffer model) in bits.

              - **ColorMetadata** *(string) --* Includes colorspace metadata in the output.

              - **ColorSpaceSettings** *(dict) --* Color Space settings

                - **ColorSpacePassthroughSettings** *(dict) --* Passthrough applies no color space
                conversion to the output

                - **Rec601Settings** *(dict) --* Rec601 Settings

                - **Rec709Settings** *(dict) --* Rec709 Settings

              - **EntropyEncoding** *(string) --* Entropy encoding mode. Use cabac (must be in Main
              or High profile) or cavlc.

              - **FixedAfd** *(string) --* Four bit AFD value to write on all frames of video in the
              output stream. Only valid when afdSignaling is set to 'Fixed'.

              - **FlickerAq** *(string) --* If set to enabled, adjust quantization within each frame
              to reduce flicker or 'pop' on I-frames.

              - **FramerateControl** *(string) --* This field indicates how the output video frame
              rate is specified. If "specified" is selected then the output video frame rate is
              determined by framerateNumerator and framerateDenominator, else if
              "initializeFromSource" is selected then the output video frame rate will be set equal
              to the input video frame rate of the first input.

              - **FramerateDenominator** *(integer) --* Framerate denominator.

              - **FramerateNumerator** *(integer) --* Framerate numerator - framerate is a fraction,
              e.g. 24000 / 1001 = 23.976 fps.

              - **GopBReference** *(string) --* Documentation update needed

              - **GopClosedCadence** *(integer) --* Frequency of closed GOPs. In streaming
              applications, it is recommended that this be set to 1 so a decoder joining mid-stream
              will receive an IDR frame as quickly as possible. Setting this value to 0 will break
              output segmenting.

              - **GopNumBFrames** *(integer) --* Number of B-frames between reference frames.

              - **GopSize** *(float) --* GOP size (keyframe interval) in units of either frames or
              seconds per gopSizeUnits. If gopSizeUnits is frames, gopSize must be an integer and
              must be greater than or equal to 1. If gopSizeUnits is seconds, gopSize must be
              greater than 0, but need not be an integer.

              - **GopSizeUnits** *(string) --* Indicates if the gopSize is specified in frames or
              seconds. If seconds the system will convert the gopSize into a frame count at run
              time.

              - **Level** *(string) --* H.264 Level.

              - **LookAheadRateControl** *(string) --* Amount of lookahead. A value of low can
              decrease latency and memory usage, while high can produce better quality for certain
              content.

              - **MaxBitrate** *(integer) --* For QVBR: See the tooltip for Quality level For VBR:
              Set the maximum bitrate in order to accommodate expected spikes in the complexity of
              the video.

              - **MinIInterval** *(integer) --* Only meaningful if sceneChangeDetect is set to
              enabled. Defaults to 5 if multiplex rate control is used. Enforces separation between
              repeated (cadence) I-frames and I-frames inserted by Scene Change Detection. If a
              scene change I-frame is within I-interval frames of a cadence I-frame, the GOP is
              shrunk and/or stretched to the scene change I-frame. GOP stretch requires enabling
              lookahead as well as setting I-interval. The normal cadence resumes for the next GOP.
              Note: Maximum GOP stretch = GOP size + Min-I-interval - 1

              - **NumRefFrames** *(integer) --* Number of reference frames to use. The encoder may
              use more than requested if using B-frames and/or interlaced encoding.

              - **ParControl** *(string) --* This field indicates how the output pixel aspect ratio
              is specified. If "specified" is selected then the output video pixel aspect ratio is
              determined by parNumerator and parDenominator, else if "initializeFromSource" is
              selected then the output pixsel aspect ratio will be set equal to the input video
              pixel aspect ratio of the first input.

              - **ParDenominator** *(integer) --* Pixel Aspect Ratio denominator.

              - **ParNumerator** *(integer) --* Pixel Aspect Ratio numerator.

              - **Profile** *(string) --* H.264 Profile.

              - **QvbrQualityLevel** *(integer) --* Controls the target quality for the video
              encode. Applies only when the rate control mode is QVBR. Set values for the QVBR
              quality level field and Max bitrate field that suit your most important viewing
              devices. Recommended values are: - Primary screen: Quality level: 8 to 10. Max
              bitrate: 4M - PC or tablet: Quality level: 7. Max bitrate: 1.5M to 3M - Smartphone:
              Quality level: 6. Max bitrate: 1M to 1.5M

              - **RateControlMode** *(string) --* Rate control mode. QVBR: Quality will match the
              specified quality level except when it is constrained by the maximum bitrate.
              Recommended if you or your viewers pay for bandwidth. VBR: Quality and bitrate vary,
              depending on the video complexity. Recommended instead of QVBR if you want to maintain
              a specific average bitrate over the duration of the channel. CBR: Quality varies,
              depending on the video complexity. Recommended only if you distribute your assets to
              devices that cannot handle variable bitrates.

              - **ScanType** *(string) --* Sets the scan type of the output to progressive or
              top-field-first interlaced.

              - **SceneChangeDetect** *(string) --* Scene change detection. - On: inserts I-frames
              when scene change is detected. - Off: does not force an I-frame when scene change is
              detected.

              - **Slices** *(integer) --* Number of slices per picture. Must be less than or equal
              to the number of macroblock rows for progressive pictures, and less than or equal to
              half the number of macroblock rows for interlaced pictures. This field is optional;
              when no value is specified the encoder will choose the number of slices based on
              encode resolution.

              - **Softness** *(integer) --* Softness. Selects quantizer matrix, larger values reduce
              high-frequency content in the encoded image.

              - **SpatialAq** *(string) --* If set to enabled, adjust quantization within each frame
              based on spatial variation of content complexity.

              - **SubgopLength** *(string) --* If set to fixed, use gopNumBFrames B-frames per
              sub-GOP. If set to dynamic, optimize the number of B-frames used for each sub-GOP to
              improve visual quality.

              - **Syntax** *(string) --* Produces a bitstream compliant with SMPTE RP-2027.

              - **TemporalAq** *(string) --* If set to enabled, adjust quantization within each
              frame based on temporal variation of content complexity.

              - **TimecodeInsertion** *(string) --* Determines how timecodes should be inserted into
              the video elementary stream. - 'disabled': Do not include timecodes - 'picTimingSei':
              Pass through picture timing SEI messages from the source specified in Timecode Config

            - **H265Settings** *(dict) --* H265 Settings

              - **AdaptiveQuantization** *(string) --* Adaptive quantization. Allows intra-frame
              quantizers to vary to improve visual quality.

              - **AfdSignaling** *(string) --* Indicates that AFD values will be written into the
              output stream. If afdSignaling is "auto", the system will try to preserve the input
              AFD value (in cases where multiple AFD values are valid). If set to "fixed", the AFD
              value will be the value configured in the fixedAfd parameter.

              - **AlternativeTransferFunction** *(string) --* Whether or not EML should insert an
              Alternative Transfer Function SEI message to support backwards compatibility with
              non-HDR decoders and displays.

              - **Bitrate** *(integer) --* Average bitrate in bits/second. Required when the rate
              control mode is VBR or CBR. Not used for QVBR. In an MS Smooth output group, each
              output must have a unique value when its bitrate is rounded down to the nearest
              multiple of 1000.

              - **BufSize** *(integer) --* Size of buffer (HRD buffer model) in bits.

              - **ColorMetadata** *(string) --* Includes colorspace metadata in the output.

              - **ColorSpaceSettings** *(dict) --* Color Space settings

                - **ColorSpacePassthroughSettings** *(dict) --* Passthrough applies no color space
                conversion to the output

                - **Hdr10Settings** *(dict) --* Hdr10 Settings

                  - **MaxCll** *(integer) --* Maximum Content Light Level An integer metadata value
                  defining the maximum light level, in nits, of any single pixel within an encoded
                  HDR video stream or file.

                  - **MaxFall** *(integer) --* Maximum Frame Average Light Level An integer metadata
                  value defining the maximum average light level, in nits, for any single frame
                  within an encoded HDR video stream or file.

                - **Rec601Settings** *(dict) --* Rec601 Settings

                - **Rec709Settings** *(dict) --* Rec709 Settings

              - **FixedAfd** *(string) --* Four bit AFD value to write on all frames of video in the
              output stream. Only valid when afdSignaling is set to 'Fixed'.

              - **FlickerAq** *(string) --* If set to enabled, adjust quantization within each frame
              to reduce flicker or 'pop' on I-frames.

              - **FramerateDenominator** *(integer) --* Framerate denominator.

              - **FramerateNumerator** *(integer) --* Framerate numerator - framerate is a fraction,
              e.g. 24000 / 1001 = 23.976 fps.

              - **GopClosedCadence** *(integer) --* Frequency of closed GOPs. In streaming
              applications, it is recommended that this be set to 1 so a decoder joining mid-stream
              will receive an IDR frame as quickly as possible. Setting this value to 0 will break
              output segmenting.

              - **GopSize** *(float) --* GOP size (keyframe interval) in units of either frames or
              seconds per gopSizeUnits. If gopSizeUnits is frames, gopSize must be an integer and
              must be greater than or equal to 1. If gopSizeUnits is seconds, gopSize must be
              greater than 0, but need not be an integer.

              - **GopSizeUnits** *(string) --* Indicates if the gopSize is specified in frames or
              seconds. If seconds the system will convert the gopSize into a frame count at run
              time.

              - **Level** *(string) --* H.265 Level.

              - **LookAheadRateControl** *(string) --* Amount of lookahead. A value of low can
              decrease latency and memory usage, while high can produce better quality for certain
              content.

              - **MaxBitrate** *(integer) --* For QVBR: See the tooltip for Quality level

              - **MinIInterval** *(integer) --* Only meaningful if sceneChangeDetect is set to
              enabled. Defaults to 5 if multiplex rate control is used. Enforces separation between
              repeated (cadence) I-frames and I-frames inserted by Scene Change Detection. If a
              scene change I-frame is within I-interval frames of a cadence I-frame, the GOP is
              shrunk and/or stretched to the scene change I-frame. GOP stretch requires enabling
              lookahead as well as setting I-interval. The normal cadence resumes for the next GOP.
              Note: Maximum GOP stretch = GOP size + Min-I-interval - 1

              - **ParDenominator** *(integer) --* Pixel Aspect Ratio denominator.

              - **ParNumerator** *(integer) --* Pixel Aspect Ratio numerator.

              - **Profile** *(string) --* H.265 Profile.

              - **QvbrQualityLevel** *(integer) --* Controls the target quality for the video
              encode. Applies only when the rate control mode is QVBR. Set values for the QVBR
              quality level field and Max bitrate field that suit your most important viewing
              devices. Recommended values are: - Primary screen: Quality level: 8 to 10. Max
              bitrate: 4M - PC or tablet: Quality level: 7. Max bitrate: 1.5M to 3M - Smartphone:
              Quality level: 6. Max bitrate: 1M to 1.5M

              - **RateControlMode** *(string) --* Rate control mode. QVBR: Quality will match the
              specified quality level except when it is constrained by the maximum bitrate.
              Recommended if you or your viewers pay for bandwidth. CBR: Quality varies, depending
              on the video complexity. Recommended only if you distribute your assets to devices
              that cannot handle variable bitrates.

              - **ScanType** *(string) --* Sets the scan type of the output to progressive or
              top-field-first interlaced.

              - **SceneChangeDetect** *(string) --* Scene change detection.

              - **Slices** *(integer) --* Number of slices per picture. Must be less than or equal
              to the number of macroblock rows for progressive pictures, and less than or equal to
              half the number of macroblock rows for interlaced pictures. This field is optional;
              when no value is specified the encoder will choose the number of slices based on
              encode resolution.

              - **Tier** *(string) --* H.265 Tier.

              - **TimecodeInsertion** *(string) --* Determines how timecodes should be inserted into
              the video elementary stream. - 'disabled': Do not include timecodes - 'picTimingSei':
              Pass through picture timing SEI messages from the source specified in Timecode Config

          - **Height** *(integer) --* Output video height, in pixels. Must be an even number. For
          most codecs, you can leave this field and width blank in order to use the height and width
          (resolution) from the source. Note, however, that leaving blank is not recommended. For
          the Frame Capture codec, height and width are required.

          - **Name** *(string) --* The name of this VideoDescription. Outputs will use this name to
          uniquely identify this Description. Description names should be unique within this Live
          Event.

          - **RespondToAfd** *(string) --* Indicates how to respond to the AFD values in the input
          stream. RESPOND causes input video to be clipped, depending on the AFD value, input
          display aspect ratio, and output display aspect ratio, and (except for FRAMECAPTURE codec)
          includes the values in the output. PASSTHROUGH (does not apply to FRAMECAPTURE codec)
          ignores the AFD values and includes the values in the output, so input video is not
          clipped. NONE ignores the AFD values and does not include the values through to the
          output, so input video is not clipped.

          - **ScalingBehavior** *(string) --* STRETCHTOOUTPUT configures the output position to
          stretch the video to the specified output resolution (height and width). This option will
          override any position value. DEFAULT may insert black boxes (pillar boxes or letter boxes)
          around the video to provide the specified output resolution.

          - **Sharpness** *(integer) --* Changes the strength of the anti-alias filter used for
          scaling. 0 is the softest setting, 100 is the sharpest. A setting of 50 is recommended for
          most content.

          - **Width** *(integer) --* Output video width, in pixels. Must be an even number. For most
          codecs, you can leave this field and height blank in order to use the height and width
          (resolution) from the source. Note, however, that leaving blank is not recommended. For
          the Frame Capture codec, height and width are required.

    - **Id** *(string) --* The unique id of the channel.

    - **InputAttachments** *(list) --* List of input attachments for channel.

      - *(dict) --* Placeholder documentation for InputAttachment

        - **InputAttachmentName** *(string) --* User-specified name for the attachment. This is
        required if the user wants to use this input in an input switch action.

        - **InputId** *(string) --* The ID of the input

        - **InputSettings** *(dict) --* Settings of an input (caption selector, etc.)

          - **AudioSelectors** *(list) --* Used to select the audio stream to decode for inputs that
          have multiple available.

            - *(dict) --* Audio Selector

              - **Name** *(string) --* The name of this AudioSelector. AudioDescriptions will use
              this name to uniquely identify this Selector. Selector names should be unique per
              input.

              - **SelectorSettings** *(dict) --* The audio selector settings.

                - **AudioLanguageSelection** *(dict) --* Audio Language Selection

                  - **LanguageCode** *(string) --* Selects a specific three-letter language code
                  from within an audio source.

                  - **LanguageSelectionPolicy** *(string) --* When set to "strict", the transport
                  stream demux strictly identifies audio streams by their language descriptor. If a
                  PMT update occurs such that an audio stream matching the initially selected
                  language is no longer present then mute will be encoded until the language
                  returns. If "loose", then on a PMT update the demux will choose another audio
                  stream in the program with the same stream type if it can't find one with the same
                  language.

                - **AudioPidSelection** *(dict) --* Audio Pid Selection

                  - **Pid** *(integer) --* Selects a specific PID from within a source.

          - **CaptionSelectors** *(list) --* Used to select the caption input to use for inputs that
          have multiple available.

            - *(dict) --* Output groups for this Live Event. Output groups contain information about
            where streams should be distributed.

              - **LanguageCode** *(string) --* When specified this field indicates the three letter
              language code of the caption track to extract from the source.

              - **Name** *(string) --* Name identifier for a caption selector. This name is used to
              associate this caption selector with one or more caption descriptions. Names must be
              unique within an event.

              - **SelectorSettings** *(dict) --* Caption selector settings.

                - **AribSourceSettings** *(dict) --* Arib Source Settings

                - **DvbSubSourceSettings** *(dict) --* Dvb Sub Source Settings

                  - **Pid** *(integer) --* When using DVB-Sub with Burn-In or SMPTE-TT, use this PID
                  for the source content. Unused for DVB-Sub passthrough. All DVB-Sub content is
                  passed through, regardless of selectors.

                - **EmbeddedSourceSettings** *(dict) --* Embedded Source Settings

                  - **Convert608To708** *(string) --* If upconvert, 608 data is both passed through
                  via the "608 compatibility bytes" fields of the 708 wrapper as well as translated
                  into 708. 708 data present in the source content will be discarded.

                  - **Scte20Detection** *(string) --* Set to "auto" to handle streams with
                  intermittent and/or non-aligned SCTE-20 and Embedded captions.

                  - **Source608ChannelNumber** *(integer) --* Specifies the 608/708 channel number
                  within the video track from which to extract captions. Unused for passthrough.

                  - **Source608TrackNumber** *(integer) --* This field is unused and deprecated.

                - **Scte20SourceSettings** *(dict) --* Scte20 Source Settings

                  - **Convert608To708** *(string) --* If upconvert, 608 data is both passed through
                  via the "608 compatibility bytes" fields of the 708 wrapper as well as translated
                  into 708. 708 data present in the source content will be discarded.

                  - **Source608ChannelNumber** *(integer) --* Specifies the 608/708 channel number
                  within the video track from which to extract captions. Unused for passthrough.

                - **Scte27SourceSettings** *(dict) --* Scte27 Source Settings

                  - **Pid** *(integer) --* The pid field is used in conjunction with the caption
                  selector languageCode field as follows: - Specify PID and Language: Extracts
                  captions from that PID; the language is "informational". - Specify PID and omit
                  Language: Extracts the specified PID. - Omit PID and specify Language: Extracts
                  the specified language, whichever PID that happens to be. - Omit PID and omit
                  Language: Valid only if source is DVB-Sub that is being passed through; all
                  languages will be passed through.

                - **TeletextSourceSettings** *(dict) --* Teletext Source Settings

                  - **PageNumber** *(string) --* Specifies the teletext page number within the data
                  stream from which to extract captions. Range of 0x100 (256) to 0x8FF (2303).
                  Unused for passthrough. Should be specified as a hexadecimal string with no "0x"
                  prefix.

          - **DeblockFilter** *(string) --* Enable or disable the deblock filter when filtering.

          - **DenoiseFilter** *(string) --* Enable or disable the denoise filter when filtering.

          - **FilterStrength** *(integer) --* Adjusts the magnitude of filtering from 1 (minimal) to
          5 (strongest).

          - **InputFilter** *(string) --* Turns on the filter for this input. MPEG-2 inputs have the
          deblocking filter enabled by default. 1) auto - filtering will be applied depending on
          input type/quality 2) disabled - no filtering will be applied to the input 3) forced -
          filtering will be applied regardless of input type

          - **NetworkInputSettings** *(dict) --* Input settings.

            - **HlsInputSettings** *(dict) --* Specifies HLS input settings when the uri is for a
            HLS manifest.

              - **Bandwidth** *(integer) --* When specified the HLS stream with the m3u8 BANDWIDTH
              that most closely matches this value will be chosen, otherwise the highest bandwidth
              stream in the m3u8 will be chosen. The bitrate is specified in bits per second, as in
              an HLS manifest.

              - **BufferSegments** *(integer) --* When specified, reading of the HLS input will
              begin this many buffer segments from the end (most recently written segment). When not
              specified, the HLS input will begin with the first segment specified in the m3u8.

              - **Retries** *(integer) --* The number of consecutive times that attempts to read a
              manifest or segment must fail before the input is considered unavailable.

              - **RetryInterval** *(integer) --* The number of seconds between retries when an
              attempt to read a manifest or segment fails.

            - **ServerValidation** *(string) --* Check HTTPS server certificates. When set to
            checkCryptographyOnly, cryptography in the certificate will be checked, but not the
            server's name. Certain subdomains (notably S3 buckets that use dots in the bucket name)
            do not strictly match the corresponding certificate's wildcard pattern and would
            otherwise cause the event to error. This setting is ignored for protocols that do not
            use https.

          - **SourceEndBehavior** *(string) --* Loop input if it is a file. This allows a file input
          to be streamed indefinitely.

          - **VideoSelector** *(dict) --* Informs which video elementary stream to decode for input
          types that have multiple available.

            - **ColorSpace** *(string) --* Specifies the color space of an input. This setting works
            in tandem with colorSpaceUsage and a video description's colorSpaceSettingsChoice to
            determine if any conversion will be performed.

            - **ColorSpaceUsage** *(string) --* Applies only if colorSpace is a value other than
            follow. This field controls how the value in the colorSpace field will be used. fallback
            means that when the input does include color space data, that data will be used, but
            when the input has no color space data, the value in colorSpace will be used. Choose
            fallback if your input is sometimes missing color space data, but when it does have
            color space data, that data is correct. force means to always use the value in
            colorSpace. Choose force if your input usually has no color space data or might have
            unreliable color space data.

            - **SelectorSettings** *(dict) --* The video selector settings.

              - **VideoSelectorPid** *(dict) --* Video Selector Pid

                - **Pid** *(integer) --* Selects a specific PID from within a video source.

              - **VideoSelectorProgramId** *(dict) --* Video Selector Program Id

                - **ProgramId** *(integer) --* Selects a specific program from within a
                multi-program transport stream. If the program doesn't exist, the first program
                within the transport stream will be selected by default.

    - **InputSpecification** *(dict) --* Placeholder documentation for InputSpecification

      - **Codec** *(string) --* Input codec

      - **MaximumBitrate** *(string) --* Maximum input bitrate, categorized coarsely

      - **Resolution** *(string) --* Input resolution, categorized coarsely

    - **LogLevel** *(string) --* The log level being written to CloudWatch Logs.

    - **Name** *(string) --* The name of the channel. (user-mutable)

    - **PipelineDetails** *(list) --* Runtime details for the pipelines of a running channel.

      - *(dict) --* Runtime details of a pipeline when a channel is running.

        - **ActiveInputAttachmentName** *(string) --* The name of the active input attachment
        currently being ingested by this pipeline.

        - **ActiveInputSwitchActionName** *(string) --* The name of the input switch schedule action
        that occurred most recently and that resulted in the switch to the current input attachment
        for this pipeline.

        - **PipelineId** *(string) --* Pipeline ID

    - **PipelinesRunningCount** *(integer) --* The number of currently healthy pipelines.

    - **RoleArn** *(string) --* The Amazon Resource Name (ARN) of the role assumed when running the
    Channel.

    - **State** *(string) --* Placeholder documentation for ChannelState

    - **Tags** *(dict) --* A collection of key-value pairs.

      - *(string) --* Placeholder documentation for __string

        - *(string) --* Placeholder documentation for __string
    """


_ClientUpdateChannelClassResponseTypeDef = TypedDict(
    "_ClientUpdateChannelClassResponseTypeDef",
    {"Channel": ClientUpdateChannelClassResponseChannelTypeDef},
    total=False,
)


class ClientUpdateChannelClassResponseTypeDef(_ClientUpdateChannelClassResponseTypeDef):
    """
    Type definition for `ClientUpdateChannelClass` `Response`

    - **Channel** *(dict) --* Placeholder documentation for Channel

      - **Arn** *(string) --* The unique arn of the channel.

      - **ChannelClass** *(string) --* The class for this channel. STANDARD for a channel with two
      pipelines or SINGLE_PIPELINE for a channel with one pipeline.

      - **Destinations** *(list) --* A list of destinations of the channel. For UDP outputs, there
      is one destination per output. For other types (HLS, for example), there is one destination
      per packager.

        - *(dict) --* Placeholder documentation for OutputDestination

          - **Id** *(string) --* User-specified id. This is used in an output group or an output.

          - **MediaPackageSettings** *(list) --* Destination settings for a MediaPackage output; one
          destination for both encoders.

            - *(dict) --* MediaPackage Output Destination Settings

              - **ChannelId** *(string) --* ID of the channel in MediaPackage that is the
              destination for this output group. You do not need to specify the individual inputs in
              MediaPackage; MediaLive will handle the connection of the two MediaLive pipelines to
              the two MediaPackage inputs. The MediaPackage channel and MediaLive channel must be in
              the same region.

          - **MultiplexSettings** *(dict) --* Destination settings for a Multiplex output; one
          destination for both encoders.

            - **MultiplexId** *(string) --* The ID of the Multiplex that the encoder is providing
            output to. You do not need to specify the individual inputs to the Multiplex; MediaLive
            will handle the connection of the two MediaLive pipelines to the two Multiplex
            instances. The Multiplex must be in the same region as the Channel.

            - **ProgramName** *(string) --* The program name of the Multiplex program that the
            encoder is providing output to.

          - **Settings** *(list) --* Destination settings for a standard output; one destination for
          each redundant encoder.

            - *(dict) --* Placeholder documentation for OutputDestinationSettings

              - **PasswordParam** *(string) --* key used to extract the password from EC2 Parameter
              store

              - **StreamName** *(string) --* Stream name for RTMP destinations (URLs of type
              rtmp://)

              - **Url** *(string) --* A URL specifying a destination

              - **Username** *(string) --* username for destination

      - **EgressEndpoints** *(list) --* The endpoints where outgoing connections initiate from

        - *(dict) --* Placeholder documentation for ChannelEgressEndpoint

          - **SourceIp** *(string) --* Public IP of where a channel's output comes from

      - **EncoderSettings** *(dict) --* Encoder Settings

        - **AudioDescriptions** *(list) --* Placeholder documentation for __listOfAudioDescription

          - *(dict) --* Audio Description

            - **AudioNormalizationSettings** *(dict) --* Advanced audio normalization settings.

              - **Algorithm** *(string) --* Audio normalization algorithm to use. itu17701 conforms
              to the CALM Act specification, itu17702 conforms to the EBU R-128 specification.

              - **AlgorithmControl** *(string) --* When set to correctAudio the output audio is
              corrected using the chosen algorithm. If set to measureOnly, the audio will be
              measured but not adjusted.

              - **TargetLkfs** *(float) --* Target LKFS(loudness) to adjust volume to. If no value
              is entered, a default value will be used according to the chosen algorithm. The CALM
              Act (1770-1) recommends a target of -24 LKFS. The EBU R-128 specification (1770-2)
              recommends a target of -23 LKFS.

            - **AudioSelectorName** *(string) --* The name of the AudioSelector used as the source
            for this AudioDescription.

            - **AudioType** *(string) --* Applies only if audioTypeControl is useConfigured. The
            values for audioType are defined in ISO-IEC 13818-1.

            - **AudioTypeControl** *(string) --* Determines how audio type is determined.
            followInput: If the input contains an ISO 639 audioType, then that value is passed
            through to the output. If the input contains no ISO 639 audioType, the value in Audio
            Type is included in the output. useConfigured: The value in Audio Type is included in
            the output. Note that this field and audioType are both ignored if inputType is
            broadcasterMixedAd.

            - **CodecSettings** *(dict) --* Audio codec settings.

              - **AacSettings** *(dict) --* Aac Settings

                - **Bitrate** *(float) --* Average bitrate in bits/second. Valid values depend on
                rate control mode and profile.

                - **CodingMode** *(string) --* Mono, Stereo, or 5.1 channel layout. Valid values
                depend on rate control mode and profile. The adReceiverMix setting receives a stereo
                description plus control track and emits a mono AAC encode of the description track,
                with control data emitted in the PES header as per ETSI TS 101 154 Annex E.

                - **InputType** *(string) --* Set to "broadcasterMixedAd" when input contains
                pre-mixed main audio + AD (narration) as a stereo pair. The Audio Type field
                (audioType) will be set to 3, which signals to downstream systems that this stream
                contains "broadcaster mixed AD". Note that the input received by the encoder must
                contain pre-mixed audio; the encoder does not perform the mixing. The values in
                audioTypeControl and audioType (in AudioDescription) are ignored when set to
                broadcasterMixedAd. Leave set to "normal" when input does not contain pre-mixed
                audio + AD.

                - **Profile** *(string) --* AAC Profile.

                - **RateControlMode** *(string) --* Rate Control Mode.

                - **RawFormat** *(string) --* Sets LATM / LOAS AAC output for raw containers.

                - **SampleRate** *(float) --* Sample rate in Hz. Valid values depend on rate control
                mode and profile.

                - **Spec** *(string) --* Use MPEG-2 AAC audio instead of MPEG-4 AAC audio for raw or
                MPEG-2 Transport Stream containers.

                - **VbrQuality** *(string) --* VBR Quality Level - Only used if rateControlMode is
                VBR.

              - **Ac3Settings** *(dict) --* Ac3 Settings

                - **Bitrate** *(float) --* Average bitrate in bits/second. Valid bitrates depend on
                the coding mode.

                - **BitstreamMode** *(string) --* Specifies the bitstream mode (bsmod) for the
                emitted AC-3 stream. See ATSC A/52-2012 for background on these values.

                - **CodingMode** *(string) --* Dolby Digital coding mode. Determines number of
                channels.

                - **Dialnorm** *(integer) --* Sets the dialnorm for the output. If excluded and
                input audio is Dolby Digital, dialnorm will be passed through.

                - **DrcProfile** *(string) --* If set to filmStandard, adds dynamic range
                compression signaling to the output bitstream as defined in the Dolby Digital
                specification.

                - **LfeFilter** *(string) --* When set to enabled, applies a 120Hz lowpass filter to
                the LFE channel prior to encoding. Only valid in codingMode32Lfe mode.

                - **MetadataControl** *(string) --* When set to "followInput", encoder metadata will
                be sourced from the DD, DD+, or DolbyE decoder that supplied this audio data. If
                audio was not supplied from one of these streams, then the static metadata settings
                will be used.

              - **Eac3Settings** *(dict) --* Eac3 Settings

                - **AttenuationControl** *(string) --* When set to attenuate3Db, applies a 3 dB
                attenuation to the surround channels. Only used for 3/2 coding mode.

                - **Bitrate** *(float) --* Average bitrate in bits/second. Valid bitrates depend on
                the coding mode.

                - **BitstreamMode** *(string) --* Specifies the bitstream mode (bsmod) for the
                emitted E-AC-3 stream. See ATSC A/52-2012 (Annex E) for background on these values.

                - **CodingMode** *(string) --* Dolby Digital Plus coding mode. Determines number of
                channels.

                - **DcFilter** *(string) --* When set to enabled, activates a DC highpass filter for
                all input channels.

                - **Dialnorm** *(integer) --* Sets the dialnorm for the output. If blank and input
                audio is Dolby Digital Plus, dialnorm will be passed through.

                - **DrcLine** *(string) --* Sets the Dolby dynamic range compression profile.

                - **DrcRf** *(string) --* Sets the profile for heavy Dolby dynamic range
                compression, ensures that the instantaneous signal peaks do not exceed specified
                levels.

                - **LfeControl** *(string) --* When encoding 3/2 audio, setting to lfe enables the
                LFE channel

                - **LfeFilter** *(string) --* When set to enabled, applies a 120Hz lowpass filter to
                the LFE channel prior to encoding. Only valid with codingMode32 coding mode.

                - **LoRoCenterMixLevel** *(float) --* Left only/Right only center mix level. Only
                used for 3/2 coding mode.

                - **LoRoSurroundMixLevel** *(float) --* Left only/Right only surround mix level.
                Only used for 3/2 coding mode.

                - **LtRtCenterMixLevel** *(float) --* Left total/Right total center mix level. Only
                used for 3/2 coding mode.

                - **LtRtSurroundMixLevel** *(float) --* Left total/Right total surround mix level.
                Only used for 3/2 coding mode.

                - **MetadataControl** *(string) --* When set to followInput, encoder metadata will
                be sourced from the DD, DD+, or DolbyE decoder that supplied this audio data. If
                audio was not supplied from one of these streams, then the static metadata settings
                will be used.

                - **PassthroughControl** *(string) --* When set to whenPossible, input DD+ audio
                will be passed through if it is present on the input. This detection is dynamic over
                the life of the transcode. Inputs that alternate between DD+ and non-DD+ content
                will have a consistent DD+ output as the system alternates between passthrough and
                encoding.

                - **PhaseControl** *(string) --* When set to shift90Degrees, applies a 90-degree
                phase shift to the surround channels. Only used for 3/2 coding mode.

                - **StereoDownmix** *(string) --* Stereo downmix preference. Only used for 3/2
                coding mode.

                - **SurroundExMode** *(string) --* When encoding 3/2 audio, sets whether an extra
                center back surround channel is matrix encoded into the left and right surround
                channels.

                - **SurroundMode** *(string) --* When encoding 2/0 audio, sets whether Dolby
                Surround is matrix encoded into the two channels.

              - **Mp2Settings** *(dict) --* Mp2 Settings

                - **Bitrate** *(float) --* Average bitrate in bits/second.

                - **CodingMode** *(string) --* The MPEG2 Audio coding mode. Valid values are
                codingMode10 (for mono) or codingMode20 (for stereo).

                - **SampleRate** *(float) --* Sample rate in Hz.

              - **PassThroughSettings** *(dict) --* Pass Through Settings

            - **LanguageCode** *(string) --* Indicates the language of the audio output track. Only
            used if languageControlMode is useConfigured, or there is no ISO 639 language code
            specified in the input.

            - **LanguageCodeControl** *(string) --* Choosing followInput will cause the ISO 639
            language code of the output to follow the ISO 639 language code of the input. The
            languageCode will be used when useConfigured is set, or when followInput is selected but
            there is no ISO 639 language code specified by the input.

            - **Name** *(string) --* The name of this AudioDescription. Outputs will use this name
            to uniquely identify this AudioDescription. Description names should be unique within
            this Live Event.

            - **RemixSettings** *(dict) --* Settings that control how input audio channels are
            remixed into the output audio channels.

              - **ChannelMappings** *(list) --* Mapping of input channels to output channels, with
              appropriate gain adjustments.

                - *(dict) --* Audio Channel Mapping

                  - **InputChannelLevels** *(list) --* Indices and gain values for each input
                  channel that should be remixed into this output channel.

                    - *(dict) --* Input Channel Level

                      - **Gain** *(integer) --* Remixing value. Units are in dB and acceptable
                      values are within the range from -60 (mute) and 6 dB.

                      - **InputChannel** *(integer) --* The index of the input channel used as a
                      source.

                  - **OutputChannel** *(integer) --* The index of the output channel being produced.

              - **ChannelsIn** *(integer) --* Number of input channels to be used.

              - **ChannelsOut** *(integer) --* Number of output channels to be produced. Valid
              values: 1, 2, 4, 6, 8

            - **StreamName** *(string) --* Used for MS Smooth and Apple HLS outputs. Indicates the
            name displayed by the player (eg. English, or Director Commentary).

        - **AvailBlanking** *(dict) --* Settings for ad avail blanking.

          - **AvailBlankingImage** *(dict) --* Blanking image to be used. Leave empty for solid
          black. Only bmp and png images are supported.

            - **PasswordParam** *(string) --* key used to extract the password from EC2 Parameter
            store

            - **Uri** *(string) --* Uniform Resource Identifier - This should be a path to a file
            accessible to the Live system (eg. a http:// URI) depending on the output type. For
            example, a RTMP destination should have a uri simliar to: "rtmp://fmsserver/live".

            - **Username** *(string) --* Documentation update needed

          - **State** *(string) --* When set to enabled, causes video, audio and captions to be
          blanked when insertion metadata is added.

        - **AvailConfiguration** *(dict) --* Event-wide configuration settings for ad avail
        insertion.

          - **AvailSettings** *(dict) --* Ad avail settings.

            - **Scte35SpliceInsert** *(dict) --* Scte35 Splice Insert

              - **AdAvailOffset** *(integer) --* When specified, this offset (in milliseconds) is
              added to the input Ad Avail PTS time. This only applies to embedded SCTE 104/35
              messages and does not apply to OOB messages.

              - **NoRegionalBlackoutFlag** *(string) --* When set to ignore, Segment Descriptors
              with noRegionalBlackoutFlag set to 0 will no longer trigger blackouts or Ad Avail
              slates

              - **WebDeliveryAllowedFlag** *(string) --* When set to ignore, Segment Descriptors
              with webDeliveryAllowedFlag set to 0 will no longer trigger blackouts or Ad Avail
              slates

            - **Scte35TimeSignalApos** *(dict) --* Scte35 Time Signal Apos

              - **AdAvailOffset** *(integer) --* When specified, this offset (in milliseconds) is
              added to the input Ad Avail PTS time. This only applies to embedded SCTE 104/35
              messages and does not apply to OOB messages.

              - **NoRegionalBlackoutFlag** *(string) --* When set to ignore, Segment Descriptors
              with noRegionalBlackoutFlag set to 0 will no longer trigger blackouts or Ad Avail
              slates

              - **WebDeliveryAllowedFlag** *(string) --* When set to ignore, Segment Descriptors
              with webDeliveryAllowedFlag set to 0 will no longer trigger blackouts or Ad Avail
              slates

        - **BlackoutSlate** *(dict) --* Settings for blackout slate.

          - **BlackoutSlateImage** *(dict) --* Blackout slate image to be used. Leave empty for
          solid black. Only bmp and png images are supported.

            - **PasswordParam** *(string) --* key used to extract the password from EC2 Parameter
            store

            - **Uri** *(string) --* Uniform Resource Identifier - This should be a path to a file
            accessible to the Live system (eg. a http:// URI) depending on the output type. For
            example, a RTMP destination should have a uri simliar to: "rtmp://fmsserver/live".

            - **Username** *(string) --* Documentation update needed

          - **NetworkEndBlackout** *(string) --* Setting to enabled causes the encoder to blackout
          the video, audio, and captions, and raise the "Network Blackout Image" slate when an
          SCTE104/35 Network End Segmentation Descriptor is encountered. The blackout will be lifted
          when the Network Start Segmentation Descriptor is encountered. The Network End and Network
          Start descriptors must contain a network ID that matches the value entered in "Network
          ID".

          - **NetworkEndBlackoutImage** *(dict) --* Path to local file to use as Network End
          Blackout image. Image will be scaled to fill the entire output raster.

            - **PasswordParam** *(string) --* key used to extract the password from EC2 Parameter
            store

            - **Uri** *(string) --* Uniform Resource Identifier - This should be a path to a file
            accessible to the Live system (eg. a http:// URI) depending on the output type. For
            example, a RTMP destination should have a uri simliar to: "rtmp://fmsserver/live".

            - **Username** *(string) --* Documentation update needed

          - **NetworkId** *(string) --* Provides Network ID that matches EIDR ID format (e.g.,
          "10.XXXX/XXXX-XXXX-XXXX-XXXX-XXXX-C").

          - **State** *(string) --* When set to enabled, causes video, audio and captions to be
          blanked when indicated by program metadata.

        - **CaptionDescriptions** *(list) --* Settings for caption decriptions

          - *(dict) --* Caption Description

            - **CaptionSelectorName** *(string) --* Specifies which input caption selector to use as
            a caption source when generating output captions. This field should match a
            captionSelector name.

            - **DestinationSettings** *(dict) --* Additional settings for captions destination that
            depend on the destination type.

              - **AribDestinationSettings** *(dict) --* Arib Destination Settings

              - **BurnInDestinationSettings** *(dict) --* Burn In Destination Settings

                - **Alignment** *(string) --* If no explicit xPosition or yPosition is provided,
                setting alignment to centered will place the captions at the bottom center of the
                output. Similarly, setting a left alignment will align captions to the bottom left
                of the output. If x and y positions are given in conjunction with the alignment
                parameter, the font will be justified (either left or centered) relative to those
                coordinates. Selecting "smart" justification will left-justify live subtitles and
                center-justify pre-recorded subtitles. All burn-in and DVB-Sub font settings must
                match.

                - **BackgroundColor** *(string) --* Specifies the color of the rectangle behind the
                captions. All burn-in and DVB-Sub font settings must match.

                - **BackgroundOpacity** *(integer) --* Specifies the opacity of the background
                rectangle. 255 is opaque; 0 is transparent. Leaving this parameter out is equivalent
                to setting it to 0 (transparent). All burn-in and DVB-Sub font settings must match.

                - **Font** *(dict) --* External font file used for caption burn-in. File extension
                must be 'ttf' or 'tte'. Although the user can select output fonts for many different
                types of input captions, embedded, STL and teletext sources use a strict grid
                system. Using external fonts with these caption sources could cause unexpected
                display of proportional fonts. All burn-in and DVB-Sub font settings must match.

                  - **PasswordParam** *(string) --* key used to extract the password from EC2
                  Parameter store

                  - **Uri** *(string) --* Uniform Resource Identifier - This should be a path to a
                  file accessible to the Live system (eg. a http:// URI) depending on the output
                  type. For example, a RTMP destination should have a uri simliar to:
                  "rtmp://fmsserver/live".

                  - **Username** *(string) --* Documentation update needed

                - **FontColor** *(string) --* Specifies the color of the burned-in captions. This
                option is not valid for source captions that are STL, 608/embedded or teletext.
                These source settings are already pre-defined by the caption stream. All burn-in and
                DVB-Sub font settings must match.

                - **FontOpacity** *(integer) --* Specifies the opacity of the burned-in captions.
                255 is opaque; 0 is transparent. All burn-in and DVB-Sub font settings must match.

                - **FontResolution** *(integer) --* Font resolution in DPI (dots per inch); default
                is 96 dpi. All burn-in and DVB-Sub font settings must match.

                - **FontSize** *(string) --* When set to 'auto' fontSize will scale depending on the
                size of the output. Giving a positive integer will specify the exact font size in
                points. All burn-in and DVB-Sub font settings must match.

                - **OutlineColor** *(string) --* Specifies font outline color. This option is not
                valid for source captions that are either 608/embedded or teletext. These source
                settings are already pre-defined by the caption stream. All burn-in and DVB-Sub font
                settings must match.

                - **OutlineSize** *(integer) --* Specifies font outline size in pixels. This option
                is not valid for source captions that are either 608/embedded or teletext. These
                source settings are already pre-defined by the caption stream. All burn-in and
                DVB-Sub font settings must match.

                - **ShadowColor** *(string) --* Specifies the color of the shadow cast by the
                captions. All burn-in and DVB-Sub font settings must match.

                - **ShadowOpacity** *(integer) --* Specifies the opacity of the shadow. 255 is
                opaque; 0 is transparent. Leaving this parameter out is equivalent to setting it to
                0 (transparent). All burn-in and DVB-Sub font settings must match.

                - **ShadowXOffset** *(integer) --* Specifies the horizontal offset of the shadow
                relative to the captions in pixels. A value of -2 would result in a shadow offset 2
                pixels to the left. All burn-in and DVB-Sub font settings must match.

                - **ShadowYOffset** *(integer) --* Specifies the vertical offset of the shadow
                relative to the captions in pixels. A value of -2 would result in a shadow offset 2
                pixels above the text. All burn-in and DVB-Sub font settings must match.

                - **TeletextGridControl** *(string) --* Controls whether a fixed grid size will be
                used to generate the output subtitles bitmap. Only applicable for Teletext inputs
                and DVB-Sub/Burn-in outputs.

                - **XPosition** *(integer) --* Specifies the horizontal position of the caption
                relative to the left side of the output in pixels. A value of 10 would result in the
                captions starting 10 pixels from the left of the output. If no explicit xPosition is
                provided, the horizontal caption position will be determined by the alignment
                parameter. All burn-in and DVB-Sub font settings must match.

                - **YPosition** *(integer) --* Specifies the vertical position of the caption
                relative to the top of the output in pixels. A value of 10 would result in the
                captions starting 10 pixels from the top of the output. If no explicit yPosition is
                provided, the caption will be positioned towards the bottom of the output. All
                burn-in and DVB-Sub font settings must match.

              - **DvbSubDestinationSettings** *(dict) --* Dvb Sub Destination Settings

                - **Alignment** *(string) --* If no explicit xPosition or yPosition is provided,
                setting alignment to centered will place the captions at the bottom center of the
                output. Similarly, setting a left alignment will align captions to the bottom left
                of the output. If x and y positions are given in conjunction with the alignment
                parameter, the font will be justified (either left or centered) relative to those
                coordinates. Selecting "smart" justification will left-justify live subtitles and
                center-justify pre-recorded subtitles. This option is not valid for source captions
                that are STL or 608/embedded. These source settings are already pre-defined by the
                caption stream. All burn-in and DVB-Sub font settings must match.

                - **BackgroundColor** *(string) --* Specifies the color of the rectangle behind the
                captions. All burn-in and DVB-Sub font settings must match.

                - **BackgroundOpacity** *(integer) --* Specifies the opacity of the background
                rectangle. 255 is opaque; 0 is transparent. Leaving this parameter blank is
                equivalent to setting it to 0 (transparent). All burn-in and DVB-Sub font settings
                must match.

                - **Font** *(dict) --* External font file used for caption burn-in. File extension
                must be 'ttf' or 'tte'. Although the user can select output fonts for many different
                types of input captions, embedded, STL and teletext sources use a strict grid
                system. Using external fonts with these caption sources could cause unexpected
                display of proportional fonts. All burn-in and DVB-Sub font settings must match.

                  - **PasswordParam** *(string) --* key used to extract the password from EC2
                  Parameter store

                  - **Uri** *(string) --* Uniform Resource Identifier - This should be a path to a
                  file accessible to the Live system (eg. a http:// URI) depending on the output
                  type. For example, a RTMP destination should have a uri simliar to:
                  "rtmp://fmsserver/live".

                  - **Username** *(string) --* Documentation update needed

                - **FontColor** *(string) --* Specifies the color of the burned-in captions. This
                option is not valid for source captions that are STL, 608/embedded or teletext.
                These source settings are already pre-defined by the caption stream. All burn-in and
                DVB-Sub font settings must match.

                - **FontOpacity** *(integer) --* Specifies the opacity of the burned-in captions.
                255 is opaque; 0 is transparent. All burn-in and DVB-Sub font settings must match.

                - **FontResolution** *(integer) --* Font resolution in DPI (dots per inch); default
                is 96 dpi. All burn-in and DVB-Sub font settings must match.

                - **FontSize** *(string) --* When set to auto fontSize will scale depending on the
                size of the output. Giving a positive integer will specify the exact font size in
                points. All burn-in and DVB-Sub font settings must match.

                - **OutlineColor** *(string) --* Specifies font outline color. This option is not
                valid for source captions that are either 608/embedded or teletext. These source
                settings are already pre-defined by the caption stream. All burn-in and DVB-Sub font
                settings must match.

                - **OutlineSize** *(integer) --* Specifies font outline size in pixels. This option
                is not valid for source captions that are either 608/embedded or teletext. These
                source settings are already pre-defined by the caption stream. All burn-in and
                DVB-Sub font settings must match.

                - **ShadowColor** *(string) --* Specifies the color of the shadow cast by the
                captions. All burn-in and DVB-Sub font settings must match.

                - **ShadowOpacity** *(integer) --* Specifies the opacity of the shadow. 255 is
                opaque; 0 is transparent. Leaving this parameter blank is equivalent to setting it
                to 0 (transparent). All burn-in and DVB-Sub font settings must match.

                - **ShadowXOffset** *(integer) --* Specifies the horizontal offset of the shadow
                relative to the captions in pixels. A value of -2 would result in a shadow offset 2
                pixels to the left. All burn-in and DVB-Sub font settings must match.

                - **ShadowYOffset** *(integer) --* Specifies the vertical offset of the shadow
                relative to the captions in pixels. A value of -2 would result in a shadow offset 2
                pixels above the text. All burn-in and DVB-Sub font settings must match.

                - **TeletextGridControl** *(string) --* Controls whether a fixed grid size will be
                used to generate the output subtitles bitmap. Only applicable for Teletext inputs
                and DVB-Sub/Burn-in outputs.

                - **XPosition** *(integer) --* Specifies the horizontal position of the caption
                relative to the left side of the output in pixels. A value of 10 would result in the
                captions starting 10 pixels from the left of the output. If no explicit xPosition is
                provided, the horizontal caption position will be determined by the alignment
                parameter. This option is not valid for source captions that are STL, 608/embedded
                or teletext. These source settings are already pre-defined by the caption stream.
                All burn-in and DVB-Sub font settings must match.

                - **YPosition** *(integer) --* Specifies the vertical position of the caption
                relative to the top of the output in pixels. A value of 10 would result in the
                captions starting 10 pixels from the top of the output. If no explicit yPosition is
                provided, the caption will be positioned towards the bottom of the output. This
                option is not valid for source captions that are STL, 608/embedded or teletext.
                These source settings are already pre-defined by the caption stream. All burn-in and
                DVB-Sub font settings must match.

              - **EmbeddedDestinationSettings** *(dict) --* Embedded Destination Settings

              - **EmbeddedPlusScte20DestinationSettings** *(dict) --* Embedded Plus Scte20
              Destination Settings

              - **RtmpCaptionInfoDestinationSettings** *(dict) --* Rtmp Caption Info Destination
              Settings

              - **Scte20PlusEmbeddedDestinationSettings** *(dict) --* Scte20 Plus Embedded
              Destination Settings

              - **Scte27DestinationSettings** *(dict) --* Scte27 Destination Settings

              - **SmpteTtDestinationSettings** *(dict) --* Smpte Tt Destination Settings

              - **TeletextDestinationSettings** *(dict) --* Teletext Destination Settings

              - **TtmlDestinationSettings** *(dict) --* Ttml Destination Settings

                - **StyleControl** *(string) --* When set to passthrough, passes through style and
                position information from a TTML-like input source (TTML, SMPTE-TT, CFF-TT) to the
                CFF-TT output or TTML output.

              - **WebvttDestinationSettings** *(dict) --* Webvtt Destination Settings

            - **LanguageCode** *(string) --* ISO 639-2 three-digit code:
            http://www.loc.gov/standards/iso639-2/

            - **LanguageDescription** *(string) --* Human readable information to indicate captions
            available for players (eg. English, or Spanish).

            - **Name** *(string) --* Name of the caption description. Used to associate a caption
            description with an output. Names must be unique within an event.

        - **GlobalConfiguration** *(dict) --* Configuration settings that apply to the event as a
        whole.

          - **InitialAudioGain** *(integer) --* Value to set the initial audio gain for the Live
          Event.

          - **InputEndAction** *(string) --* Indicates the action to take when the current input
          completes (e.g. end-of-file). When switchAndLoopInputs is configured the encoder will
          restart at the beginning of the first input. When "none" is configured the encoder will
          transcode either black, a solid color, or a user specified slate images per the "Input
          Loss Behavior" configuration until the next input switch occurs (which is controlled
          through the Channel Schedule API).

          - **InputLossBehavior** *(dict) --* Settings for system actions when input is lost.

            - **BlackFrameMsec** *(integer) --* Documentation update needed

            - **InputLossImageColor** *(string) --* When input loss image type is "color" this field
            specifies the color to use. Value: 6 hex characters representing the values of RGB.

            - **InputLossImageSlate** *(dict) --* When input loss image type is "slate" these fields
            specify the parameters for accessing the slate.

              - **PasswordParam** *(string) --* key used to extract the password from EC2 Parameter
              store

              - **Uri** *(string) --* Uniform Resource Identifier - This should be a path to a file
              accessible to the Live system (eg. a http:// URI) depending on the output type. For
              example, a RTMP destination should have a uri simliar to: "rtmp://fmsserver/live".

              - **Username** *(string) --* Documentation update needed

            - **InputLossImageType** *(string) --* Indicates whether to substitute a solid color or
            a slate into the output after input loss exceeds blackFrameMsec.

            - **RepeatFrameMsec** *(integer) --* Documentation update needed

          - **OutputLockingMode** *(string) --* Indicates how MediaLive pipelines are synchronized.
          PIPELINELOCKING - MediaLive will attempt to synchronize the output of each pipeline to the
          other. EPOCHLOCKING - MediaLive will attempt to synchronize the output of each pipeline to
          the Unix epoch.

          - **OutputTimingSource** *(string) --* Indicates whether the rate of frames emitted by the
          Live encoder should be paced by its system clock (which optionally may be locked to
          another source via NTP) or should be locked to the clock of the source that is providing
          the input stream.

          - **SupportLowFramerateInputs** *(string) --* Adjusts video input buffer for streams with
          very low video framerates. This is commonly set to enabled for music channels with less
          than one video frame per second.

        - **NielsenConfiguration** *(dict) --* Nielsen configuration settings.

          - **DistributorId** *(string) --* Enter the Distributor ID assigned to your organization
          by Nielsen.

          - **NielsenPcmToId3Tagging** *(string) --* Enables Nielsen PCM to ID3 tagging

        - **OutputGroups** *(list) --* Placeholder documentation for __listOfOutputGroup

          - *(dict) --* Output groups for this Live Event. Output groups contain information about
          where streams should be distributed.

            - **Name** *(string) --* Custom output group name optionally defined by the user. Only
            letters, numbers, and the underscore character allowed; only 32 characters allowed.

            - **OutputGroupSettings** *(dict) --* Settings associated with the output group.

              - **ArchiveGroupSettings** *(dict) --* Archive Group Settings

                - **Destination** *(dict) --* A directory and base filename where archive files
                should be written.

                  - **DestinationRefId** *(string) --* Placeholder documentation for __string

                - **RolloverInterval** *(integer) --* Number of seconds to write to archive file
                before closing and starting a new one.

              - **FrameCaptureGroupSettings** *(dict) --* Frame Capture Group Settings

                - **Destination** *(dict) --* The destination for the frame capture files. Either
                the URI for an Amazon S3 bucket and object, plus a file name prefix (for example,
                s3ssl://sportsDelivery/highlights/20180820/curling_) or the URI for a MediaStore
                container, plus a file name prefix (for example,
                mediastoressl://sportsDelivery/20180820/curling_). The final file names consist of
                the prefix from the destination field (for example, "curling_") + name modifier +
                the counter (5 digits, starting from 00001) + extension (which is always .jpg). For
                example, curlingLow.00001.jpg

                  - **DestinationRefId** *(string) --* Placeholder documentation for __string

              - **HlsGroupSettings** *(dict) --* Hls Group Settings

                - **AdMarkers** *(list) --* Choose one or more ad marker types to pass SCTE35
                signals through to this group of Apple HLS outputs.

                  - *(string) --* Hls Ad Markers

                - **BaseUrlContent** *(string) --* A partial URI prefix that will be prepended to
                each output in the media .m3u8 file. Can be used if base manifest is delivered from
                a different URL than the main .m3u8 file.

                - **BaseUrlManifest** *(string) --* A partial URI prefix that will be prepended to
                each output in the media .m3u8 file. Can be used if base manifest is delivered from
                a different URL than the main .m3u8 file.

                - **CaptionLanguageMappings** *(list) --* Mapping of up to 4 caption channels to
                caption languages. Is only meaningful if captionLanguageSetting is set to "insert".

                  - *(dict) --* Maps a caption channel to an ISO 693-2 language code
                  (http://www.loc.gov/standards/iso639-2), with an optional description.

                    - **CaptionChannel** *(integer) --* The closed caption channel being described
                    by this CaptionLanguageMapping. Each channel mapping must have a unique channel
                    number (maximum of 4)

                    - **LanguageCode** *(string) --* Three character ISO 639-2 language code (see
                    http://www.loc.gov/standards/iso639-2)

                    - **LanguageDescription** *(string) --* Textual description of language

                - **CaptionLanguageSetting** *(string) --* Applies only to 608 Embedded output
                captions. insert: Include CLOSED-CAPTIONS lines in the manifest. Specify at least
                one language in the CC1 Language Code field. One CLOSED-CAPTION line is added for
                each Language Code you specify. Make sure to specify the languages in the order in
                which they appear in the original source (if the source is embedded format) or the
                order of the caption selectors (if the source is other than embedded). Otherwise,
                languages in the manifest will not match up properly with the output captions. none:
                Include CLOSED-CAPTIONS=
                    NONE line in the manifest. omit: Omit any CLOSED-CAPTIONS
                line from the manifest.

                - **ClientCache** *(string) --* When set to "disabled", sets the
                #EXT-X-ALLOW-CACHE:no tag in the manifest, which prevents clients from saving media
                segments for later replay.

                - **CodecSpecification** *(string) --* Specification to use (RFC-6381 or the default
                RFC-4281) during m3u8 playlist generation.

                - **ConstantIv** *(string) --* For use with encryptionType. This is a 128-bit,
                16-byte hex value represented by a 32-character text string. If ivSource is set to
                "explicit" then this parameter is required and is used as the IV for encryption.

                - **Destination** *(dict) --* A directory or HTTP destination for the HLS segments,
                manifest files, and encryption keys (if enabled).

                  - **DestinationRefId** *(string) --* Placeholder documentation for __string

                - **DirectoryStructure** *(string) --* Place segments in subdirectories.

                - **EncryptionType** *(string) --* Encrypts the segments with the given encryption
                scheme. Exclude this parameter if no encryption is desired.

                - **HlsCdnSettings** *(dict) --* Parameters that control interactions with the CDN.

                  - **HlsAkamaiSettings** *(dict) --* Hls Akamai Settings

                    - **ConnectionRetryInterval** *(integer) --* Number of seconds to wait before
                    retrying connection to the CDN if the connection is lost.

                    - **FilecacheDuration** *(integer) --* Size in seconds of file cache for
                    streaming outputs.

                    - **HttpTransferMode** *(string) --* Specify whether or not to use chunked
                    transfer encoding to Akamai. User should contact Akamai to enable this feature.

                    - **NumRetries** *(integer) --* Number of retry attempts that will be made
                    before the Live Event is put into an error state.

                    - **RestartDelay** *(integer) --* If a streaming output fails, number of seconds
                    to wait until a restart is initiated. A value of 0 means never restart.

                    - **Salt** *(string) --* Salt for authenticated Akamai.

                    - **Token** *(string) --* Token parameter for authenticated akamai. If not
                    specified, _gda_ is used.

                  - **HlsBasicPutSettings** *(dict) --* Hls Basic Put Settings

                    - **ConnectionRetryInterval** *(integer) --* Number of seconds to wait before
                    retrying connection to the CDN if the connection is lost.

                    - **FilecacheDuration** *(integer) --* Size in seconds of file cache for
                    streaming outputs.

                    - **NumRetries** *(integer) --* Number of retry attempts that will be made
                    before the Live Event is put into an error state.

                    - **RestartDelay** *(integer) --* If a streaming output fails, number of seconds
                    to wait until a restart is initiated. A value of 0 means never restart.

                  - **HlsMediaStoreSettings** *(dict) --* Hls Media Store Settings

                    - **ConnectionRetryInterval** *(integer) --* Number of seconds to wait before
                    retrying connection to the CDN if the connection is lost.

                    - **FilecacheDuration** *(integer) --* Size in seconds of file cache for
                    streaming outputs.

                    - **MediaStoreStorageClass** *(string) --* When set to temporal, output files
                    are stored in non-persistent memory for faster reading and writing.

                    - **NumRetries** *(integer) --* Number of retry attempts that will be made
                    before the Live Event is put into an error state.

                    - **RestartDelay** *(integer) --* If a streaming output fails, number of seconds
                    to wait until a restart is initiated. A value of 0 means never restart.

                  - **HlsWebdavSettings** *(dict) --* Hls Webdav Settings

                    - **ConnectionRetryInterval** *(integer) --* Number of seconds to wait before
                    retrying connection to the CDN if the connection is lost.

                    - **FilecacheDuration** *(integer) --* Size in seconds of file cache for
                    streaming outputs.

                    - **HttpTransferMode** *(string) --* Specify whether or not to use chunked
                    transfer encoding to WebDAV.

                    - **NumRetries** *(integer) --* Number of retry attempts that will be made
                    before the Live Event is put into an error state.

                    - **RestartDelay** *(integer) --* If a streaming output fails, number of seconds
                    to wait until a restart is initiated. A value of 0 means never restart.

                - **IFrameOnlyPlaylists** *(string) --* DISABLED: Do not create an I-frame-only
                manifest, but do create the master and media manifests (according to the Output
                Selection field). STANDARD: Create an I-frame-only manifest for each output that
                contains video, as well as the other manifests (according to the Output Selection
                field). The I-frame manifest contains a #EXT-X-I-FRAMES-ONLY tag to indicate it is
                I-frame only, and one or more #EXT-X-BYTERANGE entries identifying the I-frame
                position. For example, #EXT-X-BYTERANGE:160364@1461888"

                - **IndexNSegments** *(integer) --* Applies only if Mode field is LIVE. Specifies
                the maximum number of segments in the media manifest file. After this maximum, older
                segments are removed from the media manifest. This number must be less than or equal
                to the Keep Segments field.

                - **InputLossAction** *(string) --* Parameter that control output group behavior on
                input loss.

                - **IvInManifest** *(string) --* For use with encryptionType. The IV (Initialization
                Vector) is a 128-bit number used in conjunction with the key for encrypting blocks.
                If set to "include", IV is listed in the manifest, otherwise the IV is not in the
                manifest.

                - **IvSource** *(string) --* For use with encryptionType. The IV (Initialization
                Vector) is a 128-bit number used in conjunction with the key for encrypting blocks.
                If this setting is "followsSegmentNumber", it will cause the IV to change every
                segment (to match the segment number). If this is set to "explicit", you must enter
                a constantIv value.

                - **KeepSegments** *(integer) --* Applies only if Mode field is LIVE. Specifies the
                number of media segments (.ts files) to retain in the destination directory.

                - **KeyFormat** *(string) --* The value specifies how the key is represented in the
                resource identified by the URI. If parameter is absent, an implicit value of
                "identity" is used. A reverse DNS string can also be given.

                - **KeyFormatVersions** *(string) --* Either a single positive integer version value
                or a slash delimited list of version values (1/2/3).

                - **KeyProviderSettings** *(dict) --* The key provider settings.

                  - **StaticKeySettings** *(dict) --* Static Key Settings

                    - **KeyProviderServer** *(dict) --* The URL of the license server used for
                    protecting content.

                      - **PasswordParam** *(string) --* key used to extract the password from EC2
                      Parameter store

                      - **Uri** *(string) --* Uniform Resource Identifier - This should be a path to
                      a file accessible to the Live system (eg. a http:// URI) depending on the
                      output type. For example, a RTMP destination should have a uri simliar to:
                      "rtmp://fmsserver/live".

                      - **Username** *(string) --* Documentation update needed

                    - **StaticKeyValue** *(string) --* Static key value as a 32 character
                    hexadecimal string.

                - **ManifestCompression** *(string) --* When set to gzip, compresses HLS playlist.

                - **ManifestDurationFormat** *(string) --* Indicates whether the output manifest
                should use floating point or integer values for segment duration.

                - **MinSegmentLength** *(integer) --* When set, minimumSegmentLength is enforced by
                looking ahead and back within the specified range for a nearby avail and extending
                the segment size if needed.

                - **Mode** *(string) --* If "vod", all segments are indexed and kept permanently in
                the destination and manifest. If "live", only the number segments specified in
                keepSegments and indexNSegments are kept; newer segments replace older segments,
                which may prevent players from rewinding all the way to the beginning of the event.
                VOD mode uses HLS EXT-X-PLAYLIST-TYPE of EVENT while the channel is running,
                converting it to a "VOD" type manifest on completion of the stream.

                - **OutputSelection** *(string) --* MANIFESTSANDSEGMENTS: Generates manifests
                (master manifest, if applicable, and media manifests) for this output group.
                SEGMENTSONLY: Does not generate any manifests for this output group.

                - **ProgramDateTime** *(string) --* Includes or excludes EXT-X-PROGRAM-DATE-TIME tag
                in .m3u8 manifest files. The value is calculated as follows: either the program date
                and time are initialized using the input timecode source, or the time is initialized
                using the input timecode source and the date is initialized using the
                timestampOffset.

                - **ProgramDateTimePeriod** *(integer) --* Period of insertion of
                EXT-X-PROGRAM-DATE-TIME entry, in seconds.

                - **RedundantManifest** *(string) --* ENABLED: The master manifest (.m3u8 file) for
                each pipeline includes information about both pipelines: first its own media files,
                then the media files of the other pipeline. This feature allows playout device that
                support stale manifest detection to switch from one manifest to the other, when the
                current manifest seems to be stale. There are still two destinations and two master
                manifests, but both master manifests reference the media files from both pipelines.
                DISABLED: The master manifest (.m3u8 file) for each pipeline includes information
                about its own pipeline only. For an HLS output group with MediaPackage as the
                destination, the DISABLED behavior is always followed. MediaPackage regenerates the
                manifests it serves to players so a redundant manifest from MediaLive is irrelevant.

                - **SegmentLength** *(integer) --* Length of MPEG-2 Transport Stream segments to
                create (in seconds). Note that segments will end on the next keyframe after this
                number of seconds, so actual segment length may be longer.

                - **SegmentationMode** *(string) --* useInputSegmentation has been deprecated. The
                configured segment size is always used.

                - **SegmentsPerSubdirectory** *(integer) --* Number of segments to write to a
                subdirectory before starting a new one. directoryStructure must be
                subdirectoryPerStream for this setting to have an effect.

                - **StreamInfResolution** *(string) --* Include or exclude RESOLUTION attribute for
                video in EXT-X-STREAM-INF tag of variant manifest.

                - **TimedMetadataId3Frame** *(string) --* Indicates ID3 frame that has the timecode.

                - **TimedMetadataId3Period** *(integer) --* Timed Metadata interval in seconds.

                - **TimestampDeltaMilliseconds** *(integer) --* Provides an extra millisecond delta
                offset to fine tune the timestamps.

                - **TsFileMode** *(string) --* SEGMENTEDFILES: Emit the program as segments -
                multiple .ts media files. SINGLEFILE: Applies only if Mode field is VOD. Emit the
                program as a single .ts media file. The media manifest includes #EXT-X-BYTERANGE
                tags to index segments for playback. A typical use for this value is when sending
                the output to AWS Elemental MediaConvert, which can accept only a single media file.
                Playback while the channel is running is not guaranteed due to HTTP server caching.

              - **MediaPackageGroupSettings** *(dict) --* Media Package Group Settings

                - **Destination** *(dict) --* MediaPackage channel destination.

                  - **DestinationRefId** *(string) --* Placeholder documentation for __string

              - **MsSmoothGroupSettings** *(dict) --* Ms Smooth Group Settings

                - **AcquisitionPointId** *(string) --* The value of the "Acquisition Point Identity"
                element used in each message placed in the sparse track. Only enabled if
                sparseTrackType is not "none".

                - **AudioOnlyTimecodeControl** *(string) --* If set to passthrough for an audio-only
                MS Smooth output, the fragment absolute time will be set to the current timecode.
                This option does not write timecodes to the audio elementary stream.

                - **CertificateMode** *(string) --* If set to verifyAuthenticity, verify the https
                certificate chain to a trusted Certificate Authority (CA). This will cause https
                outputs to self-signed certificates to fail.

                - **ConnectionRetryInterval** *(integer) --* Number of seconds to wait before
                retrying connection to the IIS server if the connection is lost. Content will be
                cached during this time and the cache will be be delivered to the IIS server once
                the connection is re-established.

                - **Destination** *(dict) --* Smooth Streaming publish point on an IIS server.
                Elemental Live acts as a "Push" encoder to IIS.

                  - **DestinationRefId** *(string) --* Placeholder documentation for __string

                - **EventId** *(string) --* MS Smooth event ID to be sent to the IIS server. Should
                only be specified if eventIdMode is set to useConfigured.

                - **EventIdMode** *(string) --* Specifies whether or not to send an event ID to the
                IIS server. If no event ID is sent and the same Live Event is used without changing
                the publishing point, clients might see cached video from the previous run. Options:
                - "useConfigured" - use the value provided in eventId - "useTimestamp" - generate
                and send an event ID based on the current timestamp - "noEventId" - do not send an
                event ID to the IIS server.

                - **EventStopBehavior** *(string) --* When set to sendEos, send EOS signal to IIS
                server when stopping the event

                - **FilecacheDuration** *(integer) --* Size in seconds of file cache for streaming
                outputs.

                - **FragmentLength** *(integer) --* Length of mp4 fragments to generate (in
                seconds). Fragment length must be compatible with GOP size and framerate.

                - **InputLossAction** *(string) --* Parameter that control output group behavior on
                input loss.

                - **NumRetries** *(integer) --* Number of retry attempts.

                - **RestartDelay** *(integer) --* Number of seconds before initiating a restart due
                to output failure, due to exhausting the numRetries on one segment, or exceeding
                filecacheDuration.

                - **SegmentationMode** *(string) --* useInputSegmentation has been deprecated. The
                configured segment size is always used.

                - **SendDelayMs** *(integer) --* Number of milliseconds to delay the output from the
                second pipeline.

                - **SparseTrackType** *(string) --* If set to scte35, use incoming SCTE-35 messages
                to generate a sparse track in this group of MS-Smooth outputs.

                - **StreamManifestBehavior** *(string) --* When set to send, send stream manifest so
                publishing point doesn't start until all streams start.

                - **TimestampOffset** *(string) --* Timestamp offset for the event. Only used if
                timestampOffsetMode is set to useConfiguredOffset.

                - **TimestampOffsetMode** *(string) --* Type of timestamp date offset to use. -
                useEventStartDate: Use the date the event was started as the offset -
                useConfiguredOffset: Use an explicitly configured date as the offset

              - **MultiplexGroupSettings** *(dict) --* Multiplex Group Settings

              - **RtmpGroupSettings** *(dict) --* Rtmp Group Settings

                - **AuthenticationScheme** *(string) --* Authentication scheme to use when
                connecting with CDN

                - **CacheFullBehavior** *(string) --* Controls behavior when content cache fills up.
                If remote origin server stalls the RTMP connection and does not accept content fast
                enough the 'Media Cache' will fill up. When the cache reaches the duration specified
                by cacheLength the cache will stop accepting new content. If set to
                disconnectImmediately, the RTMP output will force a disconnect. Clear the media
                cache, and reconnect after restartDelay seconds. If set to waitForServer, the RTMP
                output will wait up to 5 minutes to allow the origin server to begin accepting data
                again.

                - **CacheLength** *(integer) --* Cache length, in seconds, is used to calculate
                buffer size.

                - **CaptionData** *(string) --* Controls the types of data that passes to
                onCaptionInfo outputs. If set to 'all' then 608 and 708 carried DTVCC data will be
                passed. If set to 'field1AndField2608' then DTVCC data will be stripped out, but 608
                data from both fields will be passed. If set to 'field1608' then only the data
                carried in 608 from field 1 video will be passed.

                - **InputLossAction** *(string) --* Controls the behavior of this RTMP group if
                input becomes unavailable. - emitOutput: Emit a slate until input returns. -
                pauseOutput: Stop transmitting data until input returns. This does not close the
                underlying RTMP connection.

                - **RestartDelay** *(integer) --* If a streaming output fails, number of seconds to
                wait until a restart is initiated. A value of 0 means never restart.

              - **UdpGroupSettings** *(dict) --* Udp Group Settings

                - **InputLossAction** *(string) --* Specifies behavior of last resort when input
                video is lost, and no more backup inputs are available. When dropTs is selected the
                entire transport stream will stop being emitted. When dropProgram is selected the
                program can be dropped from the transport stream (and replaced with null packets to
                meet the TS bitrate requirement). Or, when emitProgram is chosen the transport
                stream will continue to be produced normally with repeat frames, black frames, or
                slate frames substituted for the absent input video.

                - **TimedMetadataId3Frame** *(string) --* Indicates ID3 frame that has the timecode.

                - **TimedMetadataId3Period** *(integer) --* Timed Metadata interval in seconds.

            - **Outputs** *(list) --* Placeholder documentation for __listOfOutput

              - *(dict) --* Output settings. There can be multiple outputs within a group.

                - **AudioDescriptionNames** *(list) --* The names of the AudioDescriptions used as
                audio sources for this output.

                  - *(string) --* Placeholder documentation for __string

                - **CaptionDescriptionNames** *(list) --* The names of the CaptionDescriptions used
                as caption sources for this output.

                  - *(string) --* Placeholder documentation for __string

                - **OutputName** *(string) --* The name used to identify an output.

                - **OutputSettings** *(dict) --* Output type-specific settings.

                  - **ArchiveOutputSettings** *(dict) --* Archive Output Settings

                    - **ContainerSettings** *(dict) --* Settings specific to the container type of
                    the file.

                      - **M2tsSettings** *(dict) --* M2ts Settings

                        - **AbsentInputAudioBehavior** *(string) --* When set to drop, output audio
                        streams will be removed from the program if the selected input audio stream
                        is removed from the input. This allows the output audio configuration to
                        dynamically change based on input configuration. If this is set to
                        encodeSilence, all output audio streams will output encoded silence when not
                        connected to an active input stream.

                        - **Arib** *(string) --* When set to enabled, uses ARIB-compliant field
                        muxing and removes video descriptor.

                        - **AribCaptionsPid** *(string) --* Packet Identifier (PID) for ARIB
                        Captions in the transport stream. Can be entered as a decimal or hexadecimal
                        value. Valid values are 32 (or 0x20)..8182 (or 0x1ff6).

                        - **AribCaptionsPidControl** *(string) --* If set to auto, pid number used
                        for ARIB Captions will be auto-selected from unused pids. If set to
                        useConfigured, ARIB Captions will be on the configured pid number.

                        - **AudioBufferModel** *(string) --* When set to dvb, uses DVB buffer model
                        for Dolby Digital audio. When set to atsc, the ATSC model is used.

                        - **AudioFramesPerPes** *(integer) --* The number of audio frames to insert
                        for each PES packet.

                        - **AudioPids** *(string) --* Packet Identifier (PID) of the elementary
                        audio stream(s) in the transport stream. Multiple values are accepted, and
                        can be entered in ranges and/or by comma separation. Can be entered as
                        decimal or hexadecimal values. Each PID specified must be in the range of 32
                        (or 0x20)..8182 (or 0x1ff6).

                        - **AudioStreamType** *(string) --* When set to atsc, uses stream type =
                        0x81 for AC3 and stream type =
                             0x87 for EAC3. When set to dvb, uses stream
                        type = 0x06.

                        - **Bitrate** *(integer) --* The output bitrate of the transport stream in
                        bits per second. Setting to 0 lets the muxer automatically determine the
                        appropriate bitrate.

                        - **BufferModel** *(string) --* If set to multiplex, use multiplex buffer
                        model for accurate interleaving. Setting to bufferModel to none can lead to
                        lower latency, but low-memory devices may not be able to play back the
                        stream without interruptions.

                        - **CcDescriptor** *(string) --* When set to enabled, generates
                        captionServiceDescriptor in PMT.

                        - **DvbNitSettings** *(dict) --* Inserts DVB Network Information Table (NIT)
                        at the specified table repetition interval.

                          - **NetworkId** *(integer) --* The numeric value placed in the Network
                          Information Table (NIT).

                          - **NetworkName** *(string) --* The network name text placed in the
                          networkNameDescriptor inside the Network Information Table. Maximum length
                          is 256 characters.

                          - **RepInterval** *(integer) --* The number of milliseconds between
                          instances of this table in the output transport stream.

                        - **DvbSdtSettings** *(dict) --* Inserts DVB Service Description Table (SDT)
                        at the specified table repetition interval.

                          - **OutputSdt** *(string) --* Selects method of inserting SDT information
                          into output stream. The sdtFollow setting copies SDT information from
                          input stream to output stream. The sdtFollowIfPresent setting copies SDT
                          information from input stream to output stream if SDT information is
                          present in the input, otherwise it will fall back on the user-defined
                          values. The sdtManual setting means user will enter the SDT information.
                          The sdtNone setting means output stream will not contain SDT information.

                          - **RepInterval** *(integer) --* The number of milliseconds between
                          instances of this table in the output transport stream.

                          - **ServiceName** *(string) --* The service name placed in the
                          serviceDescriptor in the Service Description Table. Maximum length is 256
                          characters.

                          - **ServiceProviderName** *(string) --* The service provider name placed
                          in the serviceDescriptor in the Service Description Table. Maximum length
                          is 256 characters.

                        - **DvbSubPids** *(string) --* Packet Identifier (PID) for input source DVB
                        Subtitle data to this output. Multiple values are accepted, and can be
                        entered in ranges and/or by comma separation. Can be entered as decimal or
                        hexadecimal values. Each PID specified must be in the range of 32 (or
                        0x20)..8182 (or 0x1ff6).

                        - **DvbTdtSettings** *(dict) --* Inserts DVB Time and Date Table (TDT) at
                        the specified table repetition interval.

                          - **RepInterval** *(integer) --* The number of milliseconds between
                          instances of this table in the output transport stream.

                        - **DvbTeletextPid** *(string) --* Packet Identifier (PID) for input source
                        DVB Teletext data to this output. Can be entered as a decimal or hexadecimal
                        value. Valid values are 32 (or 0x20)..8182 (or 0x1ff6).

                        - **Ebif** *(string) --* If set to passthrough, passes any EBIF data from
                        the input source to this output.

                        - **EbpAudioInterval** *(string) --* When videoAndFixedIntervals is
                        selected, audio EBP markers will be added to partitions 3 and 4. The
                        interval between these additional markers will be fixed, and will be
                        slightly shorter than the video EBP marker interval. Only available when EBP
                        Cablelabs segmentation markers are selected. Partitions 1 and 2 will always
                        follow the video interval.

                        - **EbpLookaheadMs** *(integer) --* When set, enforces that Encoder Boundary
                        Points do not come within the specified time interval of each other by
                        looking ahead at input video. If another EBP is going to come in within the
                        specified time interval, the current EBP is not emitted, and the segment is
                        "stretched" to the next marker. The lookahead value does not add latency to
                        the system. The Live Event must be configured elsewhere to create sufficient
                        latency to make the lookahead accurate.

                        - **EbpPlacement** *(string) --* Controls placement of EBP on Audio PIDs. If
                        set to videoAndAudioPids, EBP markers will be placed on the video PID and
                        all audio PIDs. If set to videoPid, EBP markers will be placed on only the
                        video PID.

                        - **EcmPid** *(string) --* This field is unused and deprecated.

                        - **EsRateInPes** *(string) --* Include or exclude the ES Rate field in the
                        PES header.

                        - **EtvPlatformPid** *(string) --* Packet Identifier (PID) for input source
                        ETV Platform data to this output. Can be entered as a decimal or hexadecimal
                        value. Valid values are 32 (or 0x20)..8182 (or 0x1ff6).

                        - **EtvSignalPid** *(string) --* Packet Identifier (PID) for input source
                        ETV Signal data to this output. Can be entered as a decimal or hexadecimal
                        value. Valid values are 32 (or 0x20)..8182 (or 0x1ff6).

                        - **FragmentTime** *(float) --* The length in seconds of each fragment. Only
                        used with EBP markers.

                        - **Klv** *(string) --* If set to passthrough, passes any KLV data from the
                        input source to this output.

                        - **KlvDataPids** *(string) --* Packet Identifier (PID) for input source KLV
                        data to this output. Multiple values are accepted, and can be entered in
                        ranges and/or by comma separation. Can be entered as decimal or hexadecimal
                        values. Each PID specified must be in the range of 32 (or 0x20)..8182 (or
                        0x1ff6).

                        - **NielsenId3Behavior** *(string) --* If set to passthrough, Nielsen
                        inaudible tones for media tracking will be detected in the input audio and
                        an equivalent ID3 tag will be inserted in the output.

                        - **NullPacketBitrate** *(float) --* Value in bits per second of extra null
                        packets to insert into the transport stream. This can be used if a
                        downstream encryption system requires periodic null packets.

                        - **PatInterval** *(integer) --* The number of milliseconds between
                        instances of this table in the output transport stream. Valid values are 0,
                        10..1000.

                        - **PcrControl** *(string) --* When set to pcrEveryPesPacket, a Program
                        Clock Reference value is inserted for every Packetized Elementary Stream
                        (PES) header. This parameter is effective only when the PCR PID is the same
                        as the video or audio elementary stream.

                        - **PcrPeriod** *(integer) --* Maximum time in milliseconds between Program
                        Clock Reference (PCRs) inserted into the transport stream.

                        - **PcrPid** *(string) --* Packet Identifier (PID) of the Program Clock
                        Reference (PCR) in the transport stream. When no value is given, the encoder
                        will assign the same value as the Video PID. Can be entered as a decimal or
                        hexadecimal value. Valid values are 32 (or 0x20)..8182 (or 0x1ff6).

                        - **PmtInterval** *(integer) --* The number of milliseconds between
                        instances of this table in the output transport stream. Valid values are 0,
                        10..1000.

                        - **PmtPid** *(string) --* Packet Identifier (PID) for the Program Map Table
                        (PMT) in the transport stream. Can be entered as a decimal or hexadecimal
                        value. Valid values are 32 (or 0x20)..8182 (or 0x1ff6).

                        - **ProgramNum** *(integer) --* The value of the program number field in the
                        Program Map Table.

                        - **RateMode** *(string) --* When vbr, does not insert null packets into
                        transport stream to fill specified bitrate. The bitrate setting acts as the
                        maximum bitrate when vbr is set.

                        - **Scte27Pids** *(string) --* Packet Identifier (PID) for input source
                        SCTE-27 data to this output. Multiple values are accepted, and can be
                        entered in ranges and/or by comma separation. Can be entered as decimal or
                        hexadecimal values. Each PID specified must be in the range of 32 (or
                        0x20)..8182 (or 0x1ff6).

                        - **Scte35Control** *(string) --* Optionally pass SCTE-35 signals from the
                        input source to this output.

                        - **Scte35Pid** *(string) --* Packet Identifier (PID) of the SCTE-35 stream
                        in the transport stream. Can be entered as a decimal or hexadecimal value.
                        Valid values are 32 (or 0x20)..8182 (or 0x1ff6).

                        - **SegmentationMarkers** *(string) --* Inserts segmentation markers at each
                        segmentationTime period. raiSegstart sets the Random Access Indicator bit in
                        the adaptation field. raiAdapt sets the RAI bit and adds the current
                        timecode in the private data bytes. psiSegstart inserts PAT and PMT tables
                        at the start of segments. ebp adds Encoder Boundary Point information to the
                        adaptation field as per OpenCable specification OC-SP-EBP-I01-130118.
                        ebpLegacy adds Encoder Boundary Point information to the adaptation field
                        using a legacy proprietary format.

                        - **SegmentationStyle** *(string) --* The segmentation style parameter
                        controls how segmentation markers are inserted into the transport stream.
                        With avails, it is possible that segments may be truncated, which can
                        influence where future segmentation markers are inserted. When a
                        segmentation style of "resetCadence" is selected and a segment is truncated
                        due to an avail, we will reset the segmentation cadence. This means the
                        subsequent segment will have a duration of $segmentationTime seconds. When a
                        segmentation style of "maintainCadence" is selected and a segment is
                        truncated due to an avail, we will not reset the segmentation cadence. This
                        means the subsequent segment will likely be truncated as well. However, all
                        segments after that will have a duration of $segmentationTime seconds. Note
                        that EBP lookahead is a slight exception to this rule.

                        - **SegmentationTime** *(float) --* The length in seconds of each segment.
                        Required unless markers is set to None_.

                        - **TimedMetadataBehavior** *(string) --* When set to passthrough, timed
                        metadata will be passed through from input to output.

                        - **TimedMetadataPid** *(string) --* Packet Identifier (PID) of the timed
                        metadata stream in the transport stream. Can be entered as a decimal or
                        hexadecimal value. Valid values are 32 (or 0x20)..8182 (or 0x1ff6).

                        - **TransportStreamId** *(integer) --* The value of the transport stream ID
                        field in the Program Map Table.

                        - **VideoPid** *(string) --* Packet Identifier (PID) of the elementary video
                        stream in the transport stream. Can be entered as a decimal or hexadecimal
                        value. Valid values are 32 (or 0x20)..8182 (or 0x1ff6).

                    - **Extension** *(string) --* Output file extension. If excluded, this will be
                    auto-selected from the container type.

                    - **NameModifier** *(string) --* String concatenated to the end of the
                    destination filename. Required for multiple outputs of the same type.

                  - **FrameCaptureOutputSettings** *(dict) --* Frame Capture Output Settings

                    - **NameModifier** *(string) --* Required if the output group contains more than
                    one output. This modifier forms part of the output file name.

                  - **HlsOutputSettings** *(dict) --* Hls Output Settings

                    - **HlsSettings** *(dict) --* Settings regarding the underlying stream. These
                    settings are different for audio-only outputs.

                      - **AudioOnlyHlsSettings** *(dict) --* Audio Only Hls Settings

                        - **AudioGroupId** *(string) --* Specifies the group to which the audio
                        Rendition belongs.

                        - **AudioOnlyImage** *(dict) --* Optional. Specifies the .jpg or .png image
                        to use as the cover art for an audio-only output. We recommend a low
                        bit-size file because the image increases the output audio bandwidth. The
                        image is attached to the audio as an ID3 tag, frame type APIC, picture type
                        0x10, as per the "ID3 tag version 2.4.0 - Native Frames" standard.

                          - **PasswordParam** *(string) --* key used to extract the password from
                          EC2 Parameter store

                          - **Uri** *(string) --* Uniform Resource Identifier - This should be a
                          path to a file accessible to the Live system (eg. a http:// URI) depending
                          on the output type. For example, a RTMP destination should have a uri
                          simliar to: "rtmp://fmsserver/live".

                          - **Username** *(string) --* Documentation update needed

                        - **AudioTrackType** *(string) --* Four types of audio-only tracks are
                        supported: Audio-Only Variant Stream The client can play back this
                        audio-only stream instead of video in low-bandwidth scenarios. Represented
                        as an EXT-X-STREAM-INF in the HLS manifest. Alternate Audio, Auto Select,
                        Default Alternate rendition that the client should try to play back by
                        default. Represented as an EXT-X-MEDIA in the HLS manifest with DEFAULT=YES,
                        AUTOSELECT=
                            YES Alternate Audio, Auto Select, Not Default Alternate rendition
                        that the client may try to play back by default. Represented as an
                        EXT-X-MEDIA in the HLS manifest with DEFAULT=
                            NO, AUTOSELECT=YES Alternate
                        Audio, not Auto Select Alternate rendition that the client will not try to
                        play back by default. Represented as an EXT-X-MEDIA in the HLS manifest with
                        DEFAULT=NO, AUTOSELECT=NO

                      - **StandardHlsSettings** *(dict) --* Standard Hls Settings

                        - **AudioRenditionSets** *(string) --* List all the audio groups that are
                        used with the video output stream. Input all the audio GROUP-IDs that are
                        associated to the video, separate by ','.

                        - **M3u8Settings** *(dict) --* Settings information for the .m3u8 container

                          - **AudioFramesPerPes** *(integer) --* The number of audio frames to
                          insert for each PES packet.

                          - **AudioPids** *(string) --* Packet Identifier (PID) of the elementary
                          audio stream(s) in the transport stream. Multiple values are accepted, and
                          can be entered in ranges and/or by comma separation. Can be entered as
                          decimal or hexadecimal values.

                          - **EcmPid** *(string) --* This parameter is unused and deprecated.

                          - **NielsenId3Behavior** *(string) --* If set to passthrough, Nielsen
                          inaudible tones for media tracking will be detected in the input audio and
                          an equivalent ID3 tag will be inserted in the output.

                          - **PatInterval** *(integer) --* The number of milliseconds between
                          instances of this table in the output transport stream. A value of \\"0\\"
                          writes out the PMT once per segment file.

                          - **PcrControl** *(string) --* When set to pcrEveryPesPacket, a Program
                          Clock Reference value is inserted for every Packetized Elementary Stream
                          (PES) header. This parameter is effective only when the PCR PID is the
                          same as the video or audio elementary stream.

                          - **PcrPeriod** *(integer) --* Maximum time in milliseconds between
                          Program Clock References (PCRs) inserted into the transport stream.

                          - **PcrPid** *(string) --* Packet Identifier (PID) of the Program Clock
                          Reference (PCR) in the transport stream. When no value is given, the
                          encoder will assign the same value as the Video PID. Can be entered as a
                          decimal or hexadecimal value.

                          - **PmtInterval** *(integer) --* The number of milliseconds between
                          instances of this table in the output transport stream. A value of \\"0\\"
                          writes out the PMT once per segment file.

                          - **PmtPid** *(string) --* Packet Identifier (PID) for the Program Map
                          Table (PMT) in the transport stream. Can be entered as a decimal or
                          hexadecimal value.

                          - **ProgramNum** *(integer) --* The value of the program number field in
                          the Program Map Table.

                          - **Scte35Behavior** *(string) --* If set to passthrough, passes any
                          SCTE-35 signals from the input source to this output.

                          - **Scte35Pid** *(string) --* Packet Identifier (PID) of the SCTE-35
                          stream in the transport stream. Can be entered as a decimal or hexadecimal
                          value.

                          - **TimedMetadataBehavior** *(string) --* When set to passthrough, timed
                          metadata is passed through from input to output.

                          - **TimedMetadataPid** *(string) --* Packet Identifier (PID) of the timed
                          metadata stream in the transport stream. Can be entered as a decimal or
                          hexadecimal value. Valid values are 32 (or 0x20)..8182 (or 0x1ff6).

                          - **TransportStreamId** *(integer) --* The value of the transport stream
                          ID field in the Program Map Table.

                          - **VideoPid** *(string) --* Packet Identifier (PID) of the elementary
                          video stream in the transport stream. Can be entered as a decimal or
                          hexadecimal value.

                    - **NameModifier** *(string) --* String concatenated to the end of the
                    destination filename. Accepts \\"Format
                    Identifiers\\":#formatIdentifierParameters.

                    - **SegmentModifier** *(string) --* String concatenated to end of segment
                    filenames.

                  - **MediaPackageOutputSettings** *(dict) --* Media Package Output Settings

                  - **MsSmoothOutputSettings** *(dict) --* Ms Smooth Output Settings

                    - **H265PackagingType** *(string) --* Only applicable when this output is
                    referencing an H.265 video description. Specifies whether MP4 segments should be
                    packaged as HEV1 or HVC1.

                    - **NameModifier** *(string) --* String concatenated to the end of the
                    destination filename. Required for multiple outputs of the same type.

                  - **MultiplexOutputSettings** *(dict) --* Multiplex Output Settings

                    - **Destination** *(dict) --* Destination is a Multiplex.

                      - **DestinationRefId** *(string) --* Placeholder documentation for __string

                  - **RtmpOutputSettings** *(dict) --* Rtmp Output Settings

                    - **CertificateMode** *(string) --* If set to verifyAuthenticity, verify the tls
                    certificate chain to a trusted Certificate Authority (CA). This will cause rtmps
                    outputs with self-signed certificates to fail.

                    - **ConnectionRetryInterval** *(integer) --* Number of seconds to wait before
                    retrying a connection to the Flash Media server if the connection is lost.

                    - **Destination** *(dict) --* The RTMP endpoint excluding the stream name (eg.
                    rtmp://host/appname). For connection to Akamai, a username and password must be
                    supplied. URI fields accept format identifiers.

                      - **DestinationRefId** *(string) --* Placeholder documentation for __string

                    - **NumRetries** *(integer) --* Number of retry attempts.

                  - **UdpOutputSettings** *(dict) --* Udp Output Settings

                    - **BufferMsec** *(integer) --* UDP output buffering in milliseconds. Larger
                    values increase latency through the transcoder but simultaneously assist the
                    transcoder in maintaining a constant, low-jitter UDP/RTP output while
                    accommodating clock recovery, input switching, input disruptions, picture
                    reordering, etc.

                    - **ContainerSettings** *(dict) --* Udp Container Settings

                      - **M2tsSettings** *(dict) --* M2ts Settings

                        - **AbsentInputAudioBehavior** *(string) --* When set to drop, output audio
                        streams will be removed from the program if the selected input audio stream
                        is removed from the input. This allows the output audio configuration to
                        dynamically change based on input configuration. If this is set to
                        encodeSilence, all output audio streams will output encoded silence when not
                        connected to an active input stream.

                        - **Arib** *(string) --* When set to enabled, uses ARIB-compliant field
                        muxing and removes video descriptor.

                        - **AribCaptionsPid** *(string) --* Packet Identifier (PID) for ARIB
                        Captions in the transport stream. Can be entered as a decimal or hexadecimal
                        value. Valid values are 32 (or 0x20)..8182 (or 0x1ff6).

                        - **AribCaptionsPidControl** *(string) --* If set to auto, pid number used
                        for ARIB Captions will be auto-selected from unused pids. If set to
                        useConfigured, ARIB Captions will be on the configured pid number.

                        - **AudioBufferModel** *(string) --* When set to dvb, uses DVB buffer model
                        for Dolby Digital audio. When set to atsc, the ATSC model is used.

                        - **AudioFramesPerPes** *(integer) --* The number of audio frames to insert
                        for each PES packet.

                        - **AudioPids** *(string) --* Packet Identifier (PID) of the elementary
                        audio stream(s) in the transport stream. Multiple values are accepted, and
                        can be entered in ranges and/or by comma separation. Can be entered as
                        decimal or hexadecimal values. Each PID specified must be in the range of 32
                        (or 0x20)..8182 (or 0x1ff6).

                        - **AudioStreamType** *(string) --* When set to atsc, uses stream type =
                        0x81 for AC3 and stream type =
                             0x87 for EAC3. When set to dvb, uses stream
                        type = 0x06.

                        - **Bitrate** *(integer) --* The output bitrate of the transport stream in
                        bits per second. Setting to 0 lets the muxer automatically determine the
                        appropriate bitrate.

                        - **BufferModel** *(string) --* If set to multiplex, use multiplex buffer
                        model for accurate interleaving. Setting to bufferModel to none can lead to
                        lower latency, but low-memory devices may not be able to play back the
                        stream without interruptions.

                        - **CcDescriptor** *(string) --* When set to enabled, generates
                        captionServiceDescriptor in PMT.

                        - **DvbNitSettings** *(dict) --* Inserts DVB Network Information Table (NIT)
                        at the specified table repetition interval.

                          - **NetworkId** *(integer) --* The numeric value placed in the Network
                          Information Table (NIT).

                          - **NetworkName** *(string) --* The network name text placed in the
                          networkNameDescriptor inside the Network Information Table. Maximum length
                          is 256 characters.

                          - **RepInterval** *(integer) --* The number of milliseconds between
                          instances of this table in the output transport stream.

                        - **DvbSdtSettings** *(dict) --* Inserts DVB Service Description Table (SDT)
                        at the specified table repetition interval.

                          - **OutputSdt** *(string) --* Selects method of inserting SDT information
                          into output stream. The sdtFollow setting copies SDT information from
                          input stream to output stream. The sdtFollowIfPresent setting copies SDT
                          information from input stream to output stream if SDT information is
                          present in the input, otherwise it will fall back on the user-defined
                          values. The sdtManual setting means user will enter the SDT information.
                          The sdtNone setting means output stream will not contain SDT information.

                          - **RepInterval** *(integer) --* The number of milliseconds between
                          instances of this table in the output transport stream.

                          - **ServiceName** *(string) --* The service name placed in the
                          serviceDescriptor in the Service Description Table. Maximum length is 256
                          characters.

                          - **ServiceProviderName** *(string) --* The service provider name placed
                          in the serviceDescriptor in the Service Description Table. Maximum length
                          is 256 characters.

                        - **DvbSubPids** *(string) --* Packet Identifier (PID) for input source DVB
                        Subtitle data to this output. Multiple values are accepted, and can be
                        entered in ranges and/or by comma separation. Can be entered as decimal or
                        hexadecimal values. Each PID specified must be in the range of 32 (or
                        0x20)..8182 (or 0x1ff6).

                        - **DvbTdtSettings** *(dict) --* Inserts DVB Time and Date Table (TDT) at
                        the specified table repetition interval.

                          - **RepInterval** *(integer) --* The number of milliseconds between
                          instances of this table in the output transport stream.

                        - **DvbTeletextPid** *(string) --* Packet Identifier (PID) for input source
                        DVB Teletext data to this output. Can be entered as a decimal or hexadecimal
                        value. Valid values are 32 (or 0x20)..8182 (or 0x1ff6).

                        - **Ebif** *(string) --* If set to passthrough, passes any EBIF data from
                        the input source to this output.

                        - **EbpAudioInterval** *(string) --* When videoAndFixedIntervals is
                        selected, audio EBP markers will be added to partitions 3 and 4. The
                        interval between these additional markers will be fixed, and will be
                        slightly shorter than the video EBP marker interval. Only available when EBP
                        Cablelabs segmentation markers are selected. Partitions 1 and 2 will always
                        follow the video interval.

                        - **EbpLookaheadMs** *(integer) --* When set, enforces that Encoder Boundary
                        Points do not come within the specified time interval of each other by
                        looking ahead at input video. If another EBP is going to come in within the
                        specified time interval, the current EBP is not emitted, and the segment is
                        "stretched" to the next marker. The lookahead value does not add latency to
                        the system. The Live Event must be configured elsewhere to create sufficient
                        latency to make the lookahead accurate.

                        - **EbpPlacement** *(string) --* Controls placement of EBP on Audio PIDs. If
                        set to videoAndAudioPids, EBP markers will be placed on the video PID and
                        all audio PIDs. If set to videoPid, EBP markers will be placed on only the
                        video PID.

                        - **EcmPid** *(string) --* This field is unused and deprecated.

                        - **EsRateInPes** *(string) --* Include or exclude the ES Rate field in the
                        PES header.

                        - **EtvPlatformPid** *(string) --* Packet Identifier (PID) for input source
                        ETV Platform data to this output. Can be entered as a decimal or hexadecimal
                        value. Valid values are 32 (or 0x20)..8182 (or 0x1ff6).

                        - **EtvSignalPid** *(string) --* Packet Identifier (PID) for input source
                        ETV Signal data to this output. Can be entered as a decimal or hexadecimal
                        value. Valid values are 32 (or 0x20)..8182 (or 0x1ff6).

                        - **FragmentTime** *(float) --* The length in seconds of each fragment. Only
                        used with EBP markers.

                        - **Klv** *(string) --* If set to passthrough, passes any KLV data from the
                        input source to this output.

                        - **KlvDataPids** *(string) --* Packet Identifier (PID) for input source KLV
                        data to this output. Multiple values are accepted, and can be entered in
                        ranges and/or by comma separation. Can be entered as decimal or hexadecimal
                        values. Each PID specified must be in the range of 32 (or 0x20)..8182 (or
                        0x1ff6).

                        - **NielsenId3Behavior** *(string) --* If set to passthrough, Nielsen
                        inaudible tones for media tracking will be detected in the input audio and
                        an equivalent ID3 tag will be inserted in the output.

                        - **NullPacketBitrate** *(float) --* Value in bits per second of extra null
                        packets to insert into the transport stream. This can be used if a
                        downstream encryption system requires periodic null packets.

                        - **PatInterval** *(integer) --* The number of milliseconds between
                        instances of this table in the output transport stream. Valid values are 0,
                        10..1000.

                        - **PcrControl** *(string) --* When set to pcrEveryPesPacket, a Program
                        Clock Reference value is inserted for every Packetized Elementary Stream
                        (PES) header. This parameter is effective only when the PCR PID is the same
                        as the video or audio elementary stream.

                        - **PcrPeriod** *(integer) --* Maximum time in milliseconds between Program
                        Clock Reference (PCRs) inserted into the transport stream.

                        - **PcrPid** *(string) --* Packet Identifier (PID) of the Program Clock
                        Reference (PCR) in the transport stream. When no value is given, the encoder
                        will assign the same value as the Video PID. Can be entered as a decimal or
                        hexadecimal value. Valid values are 32 (or 0x20)..8182 (or 0x1ff6).

                        - **PmtInterval** *(integer) --* The number of milliseconds between
                        instances of this table in the output transport stream. Valid values are 0,
                        10..1000.

                        - **PmtPid** *(string) --* Packet Identifier (PID) for the Program Map Table
                        (PMT) in the transport stream. Can be entered as a decimal or hexadecimal
                        value. Valid values are 32 (or 0x20)..8182 (or 0x1ff6).

                        - **ProgramNum** *(integer) --* The value of the program number field in the
                        Program Map Table.

                        - **RateMode** *(string) --* When vbr, does not insert null packets into
                        transport stream to fill specified bitrate. The bitrate setting acts as the
                        maximum bitrate when vbr is set.

                        - **Scte27Pids** *(string) --* Packet Identifier (PID) for input source
                        SCTE-27 data to this output. Multiple values are accepted, and can be
                        entered in ranges and/or by comma separation. Can be entered as decimal or
                        hexadecimal values. Each PID specified must be in the range of 32 (or
                        0x20)..8182 (or 0x1ff6).

                        - **Scte35Control** *(string) --* Optionally pass SCTE-35 signals from the
                        input source to this output.

                        - **Scte35Pid** *(string) --* Packet Identifier (PID) of the SCTE-35 stream
                        in the transport stream. Can be entered as a decimal or hexadecimal value.
                        Valid values are 32 (or 0x20)..8182 (or 0x1ff6).

                        - **SegmentationMarkers** *(string) --* Inserts segmentation markers at each
                        segmentationTime period. raiSegstart sets the Random Access Indicator bit in
                        the adaptation field. raiAdapt sets the RAI bit and adds the current
                        timecode in the private data bytes. psiSegstart inserts PAT and PMT tables
                        at the start of segments. ebp adds Encoder Boundary Point information to the
                        adaptation field as per OpenCable specification OC-SP-EBP-I01-130118.
                        ebpLegacy adds Encoder Boundary Point information to the adaptation field
                        using a legacy proprietary format.

                        - **SegmentationStyle** *(string) --* The segmentation style parameter
                        controls how segmentation markers are inserted into the transport stream.
                        With avails, it is possible that segments may be truncated, which can
                        influence where future segmentation markers are inserted. When a
                        segmentation style of "resetCadence" is selected and a segment is truncated
                        due to an avail, we will reset the segmentation cadence. This means the
                        subsequent segment will have a duration of $segmentationTime seconds. When a
                        segmentation style of "maintainCadence" is selected and a segment is
                        truncated due to an avail, we will not reset the segmentation cadence. This
                        means the subsequent segment will likely be truncated as well. However, all
                        segments after that will have a duration of $segmentationTime seconds. Note
                        that EBP lookahead is a slight exception to this rule.

                        - **SegmentationTime** *(float) --* The length in seconds of each segment.
                        Required unless markers is set to None_.

                        - **TimedMetadataBehavior** *(string) --* When set to passthrough, timed
                        metadata will be passed through from input to output.

                        - **TimedMetadataPid** *(string) --* Packet Identifier (PID) of the timed
                        metadata stream in the transport stream. Can be entered as a decimal or
                        hexadecimal value. Valid values are 32 (or 0x20)..8182 (or 0x1ff6).

                        - **TransportStreamId** *(integer) --* The value of the transport stream ID
                        field in the Program Map Table.

                        - **VideoPid** *(string) --* Packet Identifier (PID) of the elementary video
                        stream in the transport stream. Can be entered as a decimal or hexadecimal
                        value. Valid values are 32 (or 0x20)..8182 (or 0x1ff6).

                    - **Destination** *(dict) --* Destination address and port number for RTP or UDP
                    packets. Can be unicast or multicast RTP or UDP (eg. rtp://239.10.10.10:5001 or
                    udp://10.100.100.100:5002).

                      - **DestinationRefId** *(string) --* Placeholder documentation for __string

                    - **FecOutputSettings** *(dict) --* Settings for enabling and adjusting Forward
                    Error Correction on UDP outputs.

                      - **ColumnDepth** *(integer) --* Parameter D from SMPTE 2022-1. The height of
                      the FEC protection matrix. The number of transport stream packets per column
                      error correction packet. Must be between 4 and 20, inclusive.

                      - **IncludeFec** *(string) --* Enables column only or column and row based FEC

                      - **RowLength** *(integer) --* Parameter L from SMPTE 2022-1. The width of the
                      FEC protection matrix. Must be between 1 and 20, inclusive. If only Column FEC
                      is used, then larger values increase robustness. If Row FEC is used, then this
                      is the number of transport stream packets per row error correction packet, and
                      the value must be between 4 and 20, inclusive, if includeFec is columnAndRow.
                      If includeFec is column, this value must be 1 to 20, inclusive.

                - **VideoDescriptionName** *(string) --* The name of the VideoDescription used as
                the source for this output.

        - **TimecodeConfig** *(dict) --* Contains settings used to acquire and adjust timecode
        information from inputs.

          - **Source** *(string) --* Identifies the source for the timecode that will be associated
          with the events outputs. -Embedded (embedded): Initialize the output timecode with
          timecode from the the source. If no embedded timecode is detected in the source, the
          system falls back to using "Start at 0" (zerobased). -System Clock (systemclock): Use the
          UTC time. -Start at 0 (zerobased): The time of the first frame of the event will be
          00:00:00:00.

          - **SyncThreshold** *(integer) --* Threshold in frames beyond which output timecode is
          resynchronized to the input timecode. Discrepancies below this threshold are permitted to
          avoid unnecessary discontinuities in the output timecode. No timecode sync when this is
          not specified.

        - **VideoDescriptions** *(list) --* Placeholder documentation for __listOfVideoDescription

          - *(dict) --* Video settings for this stream.

            - **CodecSettings** *(dict) --* Video codec settings.

              - **FrameCaptureSettings** *(dict) --* Frame Capture Settings

                - **CaptureInterval** *(integer) --* The frequency at which to capture frames for
                inclusion in the output. May be specified in either seconds or milliseconds, as
                specified by captureIntervalUnits.

              - **H264Settings** *(dict) --* H264 Settings

                - **AdaptiveQuantization** *(string) --* Adaptive quantization. Allows intra-frame
                quantizers to vary to improve visual quality.

                - **AfdSignaling** *(string) --* Indicates that AFD values will be written into the
                output stream. If afdSignaling is "auto", the system will try to preserve the input
                AFD value (in cases where multiple AFD values are valid). If set to "fixed", the AFD
                value will be the value configured in the fixedAfd parameter.

                - **Bitrate** *(integer) --* Average bitrate in bits/second. Required when the rate
                control mode is VBR or CBR. Not used for QVBR. In an MS Smooth output group, each
                output must have a unique value when its bitrate is rounded down to the nearest
                multiple of 1000.

                - **BufFillPct** *(integer) --* Percentage of the buffer that should initially be
                filled (HRD buffer model).

                - **BufSize** *(integer) --* Size of buffer (HRD buffer model) in bits.

                - **ColorMetadata** *(string) --* Includes colorspace metadata in the output.

                - **ColorSpaceSettings** *(dict) --* Color Space settings

                  - **ColorSpacePassthroughSettings** *(dict) --* Passthrough applies no color space
                  conversion to the output

                  - **Rec601Settings** *(dict) --* Rec601 Settings

                  - **Rec709Settings** *(dict) --* Rec709 Settings

                - **EntropyEncoding** *(string) --* Entropy encoding mode. Use cabac (must be in
                Main or High profile) or cavlc.

                - **FixedAfd** *(string) --* Four bit AFD value to write on all frames of video in
                the output stream. Only valid when afdSignaling is set to 'Fixed'.

                - **FlickerAq** *(string) --* If set to enabled, adjust quantization within each
                frame to reduce flicker or 'pop' on I-frames.

                - **FramerateControl** *(string) --* This field indicates how the output video frame
                rate is specified. If "specified" is selected then the output video frame rate is
                determined by framerateNumerator and framerateDenominator, else if
                "initializeFromSource" is selected then the output video frame rate will be set
                equal to the input video frame rate of the first input.

                - **FramerateDenominator** *(integer) --* Framerate denominator.

                - **FramerateNumerator** *(integer) --* Framerate numerator - framerate is a
                fraction, e.g. 24000 / 1001 = 23.976 fps.

                - **GopBReference** *(string) --* Documentation update needed

                - **GopClosedCadence** *(integer) --* Frequency of closed GOPs. In streaming
                applications, it is recommended that this be set to 1 so a decoder joining
                mid-stream will receive an IDR frame as quickly as possible. Setting this value to 0
                will break output segmenting.

                - **GopNumBFrames** *(integer) --* Number of B-frames between reference frames.

                - **GopSize** *(float) --* GOP size (keyframe interval) in units of either frames or
                seconds per gopSizeUnits. If gopSizeUnits is frames, gopSize must be an integer and
                must be greater than or equal to 1. If gopSizeUnits is seconds, gopSize must be
                greater than 0, but need not be an integer.

                - **GopSizeUnits** *(string) --* Indicates if the gopSize is specified in frames or
                seconds. If seconds the system will convert the gopSize into a frame count at run
                time.

                - **Level** *(string) --* H.264 Level.

                - **LookAheadRateControl** *(string) --* Amount of lookahead. A value of low can
                decrease latency and memory usage, while high can produce better quality for certain
                content.

                - **MaxBitrate** *(integer) --* For QVBR: See the tooltip for Quality level For VBR:
                Set the maximum bitrate in order to accommodate expected spikes in the complexity of
                the video.

                - **MinIInterval** *(integer) --* Only meaningful if sceneChangeDetect is set to
                enabled. Defaults to 5 if multiplex rate control is used. Enforces separation
                between repeated (cadence) I-frames and I-frames inserted by Scene Change Detection.
                If a scene change I-frame is within I-interval frames of a cadence I-frame, the GOP
                is shrunk and/or stretched to the scene change I-frame. GOP stretch requires
                enabling lookahead as well as setting I-interval. The normal cadence resumes for the
                next GOP. Note: Maximum GOP stretch = GOP size + Min-I-interval - 1

                - **NumRefFrames** *(integer) --* Number of reference frames to use. The encoder may
                use more than requested if using B-frames and/or interlaced encoding.

                - **ParControl** *(string) --* This field indicates how the output pixel aspect
                ratio is specified. If "specified" is selected then the output video pixel aspect
                ratio is determined by parNumerator and parDenominator, else if
                "initializeFromSource" is selected then the output pixsel aspect ratio will be set
                equal to the input video pixel aspect ratio of the first input.

                - **ParDenominator** *(integer) --* Pixel Aspect Ratio denominator.

                - **ParNumerator** *(integer) --* Pixel Aspect Ratio numerator.

                - **Profile** *(string) --* H.264 Profile.

                - **QvbrQualityLevel** *(integer) --* Controls the target quality for the video
                encode. Applies only when the rate control mode is QVBR. Set values for the QVBR
                quality level field and Max bitrate field that suit your most important viewing
                devices. Recommended values are: - Primary screen: Quality level: 8 to 10. Max
                bitrate: 4M - PC or tablet: Quality level: 7. Max bitrate: 1.5M to 3M - Smartphone:
                Quality level: 6. Max bitrate: 1M to 1.5M

                - **RateControlMode** *(string) --* Rate control mode. QVBR: Quality will match the
                specified quality level except when it is constrained by the maximum bitrate.
                Recommended if you or your viewers pay for bandwidth. VBR: Quality and bitrate vary,
                depending on the video complexity. Recommended instead of QVBR if you want to
                maintain a specific average bitrate over the duration of the channel. CBR: Quality
                varies, depending on the video complexity. Recommended only if you distribute your
                assets to devices that cannot handle variable bitrates.

                - **ScanType** *(string) --* Sets the scan type of the output to progressive or
                top-field-first interlaced.

                - **SceneChangeDetect** *(string) --* Scene change detection. - On: inserts I-frames
                when scene change is detected. - Off: does not force an I-frame when scene change is
                detected.

                - **Slices** *(integer) --* Number of slices per picture. Must be less than or equal
                to the number of macroblock rows for progressive pictures, and less than or equal to
                half the number of macroblock rows for interlaced pictures. This field is optional;
                when no value is specified the encoder will choose the number of slices based on
                encode resolution.

                - **Softness** *(integer) --* Softness. Selects quantizer matrix, larger values
                reduce high-frequency content in the encoded image.

                - **SpatialAq** *(string) --* If set to enabled, adjust quantization within each
                frame based on spatial variation of content complexity.

                - **SubgopLength** *(string) --* If set to fixed, use gopNumBFrames B-frames per
                sub-GOP. If set to dynamic, optimize the number of B-frames used for each sub-GOP to
                improve visual quality.

                - **Syntax** *(string) --* Produces a bitstream compliant with SMPTE RP-2027.

                - **TemporalAq** *(string) --* If set to enabled, adjust quantization within each
                frame based on temporal variation of content complexity.

                - **TimecodeInsertion** *(string) --* Determines how timecodes should be inserted
                into the video elementary stream. - 'disabled': Do not include timecodes -
                'picTimingSei': Pass through picture timing SEI messages from the source specified
                in Timecode Config

              - **H265Settings** *(dict) --* H265 Settings

                - **AdaptiveQuantization** *(string) --* Adaptive quantization. Allows intra-frame
                quantizers to vary to improve visual quality.

                - **AfdSignaling** *(string) --* Indicates that AFD values will be written into the
                output stream. If afdSignaling is "auto", the system will try to preserve the input
                AFD value (in cases where multiple AFD values are valid). If set to "fixed", the AFD
                value will be the value configured in the fixedAfd parameter.

                - **AlternativeTransferFunction** *(string) --* Whether or not EML should insert an
                Alternative Transfer Function SEI message to support backwards compatibility with
                non-HDR decoders and displays.

                - **Bitrate** *(integer) --* Average bitrate in bits/second. Required when the rate
                control mode is VBR or CBR. Not used for QVBR. In an MS Smooth output group, each
                output must have a unique value when its bitrate is rounded down to the nearest
                multiple of 1000.

                - **BufSize** *(integer) --* Size of buffer (HRD buffer model) in bits.

                - **ColorMetadata** *(string) --* Includes colorspace metadata in the output.

                - **ColorSpaceSettings** *(dict) --* Color Space settings

                  - **ColorSpacePassthroughSettings** *(dict) --* Passthrough applies no color space
                  conversion to the output

                  - **Hdr10Settings** *(dict) --* Hdr10 Settings

                    - **MaxCll** *(integer) --* Maximum Content Light Level An integer metadata
                    value defining the maximum light level, in nits, of any single pixel within an
                    encoded HDR video stream or file.

                    - **MaxFall** *(integer) --* Maximum Frame Average Light Level An integer
                    metadata value defining the maximum average light level, in nits, for any single
                    frame within an encoded HDR video stream or file.

                  - **Rec601Settings** *(dict) --* Rec601 Settings

                  - **Rec709Settings** *(dict) --* Rec709 Settings

                - **FixedAfd** *(string) --* Four bit AFD value to write on all frames of video in
                the output stream. Only valid when afdSignaling is set to 'Fixed'.

                - **FlickerAq** *(string) --* If set to enabled, adjust quantization within each
                frame to reduce flicker or 'pop' on I-frames.

                - **FramerateDenominator** *(integer) --* Framerate denominator.

                - **FramerateNumerator** *(integer) --* Framerate numerator - framerate is a
                fraction, e.g. 24000 / 1001 = 23.976 fps.

                - **GopClosedCadence** *(integer) --* Frequency of closed GOPs. In streaming
                applications, it is recommended that this be set to 1 so a decoder joining
                mid-stream will receive an IDR frame as quickly as possible. Setting this value to 0
                will break output segmenting.

                - **GopSize** *(float) --* GOP size (keyframe interval) in units of either frames or
                seconds per gopSizeUnits. If gopSizeUnits is frames, gopSize must be an integer and
                must be greater than or equal to 1. If gopSizeUnits is seconds, gopSize must be
                greater than 0, but need not be an integer.

                - **GopSizeUnits** *(string) --* Indicates if the gopSize is specified in frames or
                seconds. If seconds the system will convert the gopSize into a frame count at run
                time.

                - **Level** *(string) --* H.265 Level.

                - **LookAheadRateControl** *(string) --* Amount of lookahead. A value of low can
                decrease latency and memory usage, while high can produce better quality for certain
                content.

                - **MaxBitrate** *(integer) --* For QVBR: See the tooltip for Quality level

                - **MinIInterval** *(integer) --* Only meaningful if sceneChangeDetect is set to
                enabled. Defaults to 5 if multiplex rate control is used. Enforces separation
                between repeated (cadence) I-frames and I-frames inserted by Scene Change Detection.
                If a scene change I-frame is within I-interval frames of a cadence I-frame, the GOP
                is shrunk and/or stretched to the scene change I-frame. GOP stretch requires
                enabling lookahead as well as setting I-interval. The normal cadence resumes for the
                next GOP. Note: Maximum GOP stretch = GOP size + Min-I-interval - 1

                - **ParDenominator** *(integer) --* Pixel Aspect Ratio denominator.

                - **ParNumerator** *(integer) --* Pixel Aspect Ratio numerator.

                - **Profile** *(string) --* H.265 Profile.

                - **QvbrQualityLevel** *(integer) --* Controls the target quality for the video
                encode. Applies only when the rate control mode is QVBR. Set values for the QVBR
                quality level field and Max bitrate field that suit your most important viewing
                devices. Recommended values are: - Primary screen: Quality level: 8 to 10. Max
                bitrate: 4M - PC or tablet: Quality level: 7. Max bitrate: 1.5M to 3M - Smartphone:
                Quality level: 6. Max bitrate: 1M to 1.5M

                - **RateControlMode** *(string) --* Rate control mode. QVBR: Quality will match the
                specified quality level except when it is constrained by the maximum bitrate.
                Recommended if you or your viewers pay for bandwidth. CBR: Quality varies, depending
                on the video complexity. Recommended only if you distribute your assets to devices
                that cannot handle variable bitrates.

                - **ScanType** *(string) --* Sets the scan type of the output to progressive or
                top-field-first interlaced.

                - **SceneChangeDetect** *(string) --* Scene change detection.

                - **Slices** *(integer) --* Number of slices per picture. Must be less than or equal
                to the number of macroblock rows for progressive pictures, and less than or equal to
                half the number of macroblock rows for interlaced pictures. This field is optional;
                when no value is specified the encoder will choose the number of slices based on
                encode resolution.

                - **Tier** *(string) --* H.265 Tier.

                - **TimecodeInsertion** *(string) --* Determines how timecodes should be inserted
                into the video elementary stream. - 'disabled': Do not include timecodes -
                'picTimingSei': Pass through picture timing SEI messages from the source specified
                in Timecode Config

            - **Height** *(integer) --* Output video height, in pixels. Must be an even number. For
            most codecs, you can leave this field and width blank in order to use the height and
            width (resolution) from the source. Note, however, that leaving blank is not
            recommended. For the Frame Capture codec, height and width are required.

            - **Name** *(string) --* The name of this VideoDescription. Outputs will use this name
            to uniquely identify this Description. Description names should be unique within this
            Live Event.

            - **RespondToAfd** *(string) --* Indicates how to respond to the AFD values in the input
            stream. RESPOND causes input video to be clipped, depending on the AFD value, input
            display aspect ratio, and output display aspect ratio, and (except for FRAMECAPTURE
            codec) includes the values in the output. PASSTHROUGH (does not apply to FRAMECAPTURE
            codec) ignores the AFD values and includes the values in the output, so input video is
            not clipped. NONE ignores the AFD values and does not include the values through to the
            output, so input video is not clipped.

            - **ScalingBehavior** *(string) --* STRETCHTOOUTPUT configures the output position to
            stretch the video to the specified output resolution (height and width). This option
            will override any position value. DEFAULT may insert black boxes (pillar boxes or letter
            boxes) around the video to provide the specified output resolution.

            - **Sharpness** *(integer) --* Changes the strength of the anti-alias filter used for
            scaling. 0 is the softest setting, 100 is the sharpest. A setting of 50 is recommended
            for most content.

            - **Width** *(integer) --* Output video width, in pixels. Must be an even number. For
            most codecs, you can leave this field and height blank in order to use the height and
            width (resolution) from the source. Note, however, that leaving blank is not
            recommended. For the Frame Capture codec, height and width are required.

      - **Id** *(string) --* The unique id of the channel.

      - **InputAttachments** *(list) --* List of input attachments for channel.

        - *(dict) --* Placeholder documentation for InputAttachment

          - **InputAttachmentName** *(string) --* User-specified name for the attachment. This is
          required if the user wants to use this input in an input switch action.

          - **InputId** *(string) --* The ID of the input

          - **InputSettings** *(dict) --* Settings of an input (caption selector, etc.)

            - **AudioSelectors** *(list) --* Used to select the audio stream to decode for inputs
            that have multiple available.

              - *(dict) --* Audio Selector

                - **Name** *(string) --* The name of this AudioSelector. AudioDescriptions will use
                this name to uniquely identify this Selector. Selector names should be unique per
                input.

                - **SelectorSettings** *(dict) --* The audio selector settings.

                  - **AudioLanguageSelection** *(dict) --* Audio Language Selection

                    - **LanguageCode** *(string) --* Selects a specific three-letter language code
                    from within an audio source.

                    - **LanguageSelectionPolicy** *(string) --* When set to "strict", the transport
                    stream demux strictly identifies audio streams by their language descriptor. If
                    a PMT update occurs such that an audio stream matching the initially selected
                    language is no longer present then mute will be encoded until the language
                    returns. If "loose", then on a PMT update the demux will choose another audio
                    stream in the program with the same stream type if it can't find one with the
                    same language.

                  - **AudioPidSelection** *(dict) --* Audio Pid Selection

                    - **Pid** *(integer) --* Selects a specific PID from within a source.

            - **CaptionSelectors** *(list) --* Used to select the caption input to use for inputs
            that have multiple available.

              - *(dict) --* Output groups for this Live Event. Output groups contain information
              about where streams should be distributed.

                - **LanguageCode** *(string) --* When specified this field indicates the three
                letter language code of the caption track to extract from the source.

                - **Name** *(string) --* Name identifier for a caption selector. This name is used
                to associate this caption selector with one or more caption descriptions. Names must
                be unique within an event.

                - **SelectorSettings** *(dict) --* Caption selector settings.

                  - **AribSourceSettings** *(dict) --* Arib Source Settings

                  - **DvbSubSourceSettings** *(dict) --* Dvb Sub Source Settings

                    - **Pid** *(integer) --* When using DVB-Sub with Burn-In or SMPTE-TT, use this
                    PID for the source content. Unused for DVB-Sub passthrough. All DVB-Sub content
                    is passed through, regardless of selectors.

                  - **EmbeddedSourceSettings** *(dict) --* Embedded Source Settings

                    - **Convert608To708** *(string) --* If upconvert, 608 data is both passed
                    through via the "608 compatibility bytes" fields of the 708 wrapper as well as
                    translated into 708. 708 data present in the source content will be discarded.

                    - **Scte20Detection** *(string) --* Set to "auto" to handle streams with
                    intermittent and/or non-aligned SCTE-20 and Embedded captions.

                    - **Source608ChannelNumber** *(integer) --* Specifies the 608/708 channel number
                    within the video track from which to extract captions. Unused for passthrough.

                    - **Source608TrackNumber** *(integer) --* This field is unused and deprecated.

                  - **Scte20SourceSettings** *(dict) --* Scte20 Source Settings

                    - **Convert608To708** *(string) --* If upconvert, 608 data is both passed
                    through via the "608 compatibility bytes" fields of the 708 wrapper as well as
                    translated into 708. 708 data present in the source content will be discarded.

                    - **Source608ChannelNumber** *(integer) --* Specifies the 608/708 channel number
                    within the video track from which to extract captions. Unused for passthrough.

                  - **Scte27SourceSettings** *(dict) --* Scte27 Source Settings

                    - **Pid** *(integer) --* The pid field is used in conjunction with the caption
                    selector languageCode field as follows: - Specify PID and Language: Extracts
                    captions from that PID; the language is "informational". - Specify PID and omit
                    Language: Extracts the specified PID. - Omit PID and specify Language: Extracts
                    the specified language, whichever PID that happens to be. - Omit PID and omit
                    Language: Valid only if source is DVB-Sub that is being passed through; all
                    languages will be passed through.

                  - **TeletextSourceSettings** *(dict) --* Teletext Source Settings

                    - **PageNumber** *(string) --* Specifies the teletext page number within the
                    data stream from which to extract captions. Range of 0x100 (256) to 0x8FF
                    (2303). Unused for passthrough. Should be specified as a hexadecimal string with
                    no "0x" prefix.

            - **DeblockFilter** *(string) --* Enable or disable the deblock filter when filtering.

            - **DenoiseFilter** *(string) --* Enable or disable the denoise filter when filtering.

            - **FilterStrength** *(integer) --* Adjusts the magnitude of filtering from 1 (minimal)
            to 5 (strongest).

            - **InputFilter** *(string) --* Turns on the filter for this input. MPEG-2 inputs have
            the deblocking filter enabled by default. 1) auto - filtering will be applied depending
            on input type/quality 2) disabled - no filtering will be applied to the input 3) forced
            - filtering will be applied regardless of input type

            - **NetworkInputSettings** *(dict) --* Input settings.

              - **HlsInputSettings** *(dict) --* Specifies HLS input settings when the uri is for a
              HLS manifest.

                - **Bandwidth** *(integer) --* When specified the HLS stream with the m3u8 BANDWIDTH
                that most closely matches this value will be chosen, otherwise the highest bandwidth
                stream in the m3u8 will be chosen. The bitrate is specified in bits per second, as
                in an HLS manifest.

                - **BufferSegments** *(integer) --* When specified, reading of the HLS input will
                begin this many buffer segments from the end (most recently written segment). When
                not specified, the HLS input will begin with the first segment specified in the
                m3u8.

                - **Retries** *(integer) --* The number of consecutive times that attempts to read a
                manifest or segment must fail before the input is considered unavailable.

                - **RetryInterval** *(integer) --* The number of seconds between retries when an
                attempt to read a manifest or segment fails.

              - **ServerValidation** *(string) --* Check HTTPS server certificates. When set to
              checkCryptographyOnly, cryptography in the certificate will be checked, but not the
              server's name. Certain subdomains (notably S3 buckets that use dots in the bucket
              name) do not strictly match the corresponding certificate's wildcard pattern and would
              otherwise cause the event to error. This setting is ignored for protocols that do not
              use https.

            - **SourceEndBehavior** *(string) --* Loop input if it is a file. This allows a file
            input to be streamed indefinitely.

            - **VideoSelector** *(dict) --* Informs which video elementary stream to decode for
            input types that have multiple available.

              - **ColorSpace** *(string) --* Specifies the color space of an input. This setting
              works in tandem with colorSpaceUsage and a video description's
              colorSpaceSettingsChoice to determine if any conversion will be performed.

              - **ColorSpaceUsage** *(string) --* Applies only if colorSpace is a value other than
              follow. This field controls how the value in the colorSpace field will be used.
              fallback means that when the input does include color space data, that data will be
              used, but when the input has no color space data, the value in colorSpace will be
              used. Choose fallback if your input is sometimes missing color space data, but when it
              does have color space data, that data is correct. force means to always use the value
              in colorSpace. Choose force if your input usually has no color space data or might
              have unreliable color space data.

              - **SelectorSettings** *(dict) --* The video selector settings.

                - **VideoSelectorPid** *(dict) --* Video Selector Pid

                  - **Pid** *(integer) --* Selects a specific PID from within a video source.

                - **VideoSelectorProgramId** *(dict) --* Video Selector Program Id

                  - **ProgramId** *(integer) --* Selects a specific program from within a
                  multi-program transport stream. If the program doesn't exist, the first program
                  within the transport stream will be selected by default.

      - **InputSpecification** *(dict) --* Placeholder documentation for InputSpecification

        - **Codec** *(string) --* Input codec

        - **MaximumBitrate** *(string) --* Maximum input bitrate, categorized coarsely

        - **Resolution** *(string) --* Input resolution, categorized coarsely

      - **LogLevel** *(string) --* The log level being written to CloudWatch Logs.

      - **Name** *(string) --* The name of the channel. (user-mutable)

      - **PipelineDetails** *(list) --* Runtime details for the pipelines of a running channel.

        - *(dict) --* Runtime details of a pipeline when a channel is running.

          - **ActiveInputAttachmentName** *(string) --* The name of the active input attachment
          currently being ingested by this pipeline.

          - **ActiveInputSwitchActionName** *(string) --* The name of the input switch schedule
          action that occurred most recently and that resulted in the switch to the current input
          attachment for this pipeline.

          - **PipelineId** *(string) --* Pipeline ID

      - **PipelinesRunningCount** *(integer) --* The number of currently healthy pipelines.

      - **RoleArn** *(string) --* The Amazon Resource Name (ARN) of the role assumed when running
      the Channel.

      - **State** *(string) --* Placeholder documentation for ChannelState

      - **Tags** *(dict) --* A collection of key-value pairs.

        - *(string) --* Placeholder documentation for __string

          - *(string) --* Placeholder documentation for __string
    """


_ClientUpdateChannelDestinationsMediaPackageSettingsTypeDef = TypedDict(
    "_ClientUpdateChannelDestinationsMediaPackageSettingsTypeDef", {"ChannelId": str}, total=False
)


class ClientUpdateChannelDestinationsMediaPackageSettingsTypeDef(
    _ClientUpdateChannelDestinationsMediaPackageSettingsTypeDef
):
    """
    Type definition for `ClientUpdateChannelDestinations` `MediaPackageSettings`

    - **ChannelId** *(string) --* ID of the channel in MediaPackage that is the destination for this
    output group. You do not need to specify the individual inputs in MediaPackage; MediaLive will
    handle the connection of the two MediaLive pipelines to the two MediaPackage inputs. The
    MediaPackage channel and MediaLive channel must be in the same region.
    """


_ClientUpdateChannelDestinationsMultiplexSettingsTypeDef = TypedDict(
    "_ClientUpdateChannelDestinationsMultiplexSettingsTypeDef",
    {"MultiplexId": str, "ProgramName": str},
    total=False,
)


class ClientUpdateChannelDestinationsMultiplexSettingsTypeDef(
    _ClientUpdateChannelDestinationsMultiplexSettingsTypeDef
):
    """
    Type definition for `ClientUpdateChannelDestinations` `MultiplexSettings`

    - **MultiplexId** *(string) --* The ID of the Multiplex that the encoder is providing output to.
    You do not need to specify the individual inputs to the Multiplex; MediaLive will handle the
    connection of the two MediaLive pipelines to the two Multiplex instances. The Multiplex must be
    in the same region as the Channel.

    - **ProgramName** *(string) --* The program name of the Multiplex program that the encoder is
    providing output to.
    """


_ClientUpdateChannelDestinationsSettingsTypeDef = TypedDict(
    "_ClientUpdateChannelDestinationsSettingsTypeDef",
    {"PasswordParam": str, "StreamName": str, "Url": str, "Username": str},
    total=False,
)


class ClientUpdateChannelDestinationsSettingsTypeDef(
    _ClientUpdateChannelDestinationsSettingsTypeDef
):
    """
    Type definition for `ClientUpdateChannelDestinations` `Settings`

    - **PasswordParam** *(string) --* key used to extract the password from EC2 Parameter store

    - **StreamName** *(string) --* Stream name for RTMP destinations (URLs of type rtmp://)

    - **Url** *(string) --* A URL specifying a destination

    - **Username** *(string) --* username for destination
    """


_ClientUpdateChannelDestinationsTypeDef = TypedDict(
    "_ClientUpdateChannelDestinationsTypeDef",
    {
        "Id": str,
        "MediaPackageSettings": List[ClientUpdateChannelDestinationsMediaPackageSettingsTypeDef],
        "MultiplexSettings": ClientUpdateChannelDestinationsMultiplexSettingsTypeDef,
        "Settings": List[ClientUpdateChannelDestinationsSettingsTypeDef],
    },
    total=False,
)


class ClientUpdateChannelDestinationsTypeDef(_ClientUpdateChannelDestinationsTypeDef):
    """
    Type definition for `ClientUpdateChannel` `Destinations`

    - **Id** *(string) --* User-specified id. This is used in an output group or an output.

    - **MediaPackageSettings** *(list) --* Destination settings for a MediaPackage output; one
    destination for both encoders.

      - *(dict) --* MediaPackage Output Destination Settings

        - **ChannelId** *(string) --* ID of the channel in MediaPackage that is the destination for
        this output group. You do not need to specify the individual inputs in MediaPackage;
        MediaLive will handle the connection of the two MediaLive pipelines to the two MediaPackage
        inputs. The MediaPackage channel and MediaLive channel must be in the same region.

    - **MultiplexSettings** *(dict) --* Destination settings for a Multiplex output; one destination
    for both encoders.

      - **MultiplexId** *(string) --* The ID of the Multiplex that the encoder is providing output
      to. You do not need to specify the individual inputs to the Multiplex; MediaLive will handle
      the connection of the two MediaLive pipelines to the two Multiplex instances. The Multiplex
      must be in the same region as the Channel.

      - **ProgramName** *(string) --* The program name of the Multiplex program that the encoder is
      providing output to.

    - **Settings** *(list) --* Destination settings for a standard output; one destination for each
    redundant encoder.

      - *(dict) --* Placeholder documentation for OutputDestinationSettings

        - **PasswordParam** *(string) --* key used to extract the password from EC2 Parameter store

        - **StreamName** *(string) --* Stream name for RTMP destinations (URLs of type rtmp://)

        - **Url** *(string) --* A URL specifying a destination

        - **Username** *(string) --* username for destination
    """


_ClientUpdateChannelEncoderSettingsAudioDescriptionsAudioNormalizationSettingsTypeDef = TypedDict(
    "_ClientUpdateChannelEncoderSettingsAudioDescriptionsAudioNormalizationSettingsTypeDef",
    {"Algorithm": str, "AlgorithmControl": str, "TargetLkfs": float},
    total=False,
)


class ClientUpdateChannelEncoderSettingsAudioDescriptionsAudioNormalizationSettingsTypeDef(
    _ClientUpdateChannelEncoderSettingsAudioDescriptionsAudioNormalizationSettingsTypeDef
):
    """
    Type definition for `ClientUpdateChannelEncoderSettingsAudioDescriptions`
    `AudioNormalizationSettings`

    - **Algorithm** *(string) --* Audio normalization algorithm to use. itu17701 conforms to the
    CALM Act specification, itu17702 conforms to the EBU R-128 specification.

    - **AlgorithmControl** *(string) --* When set to correctAudio the output audio is corrected
    using the chosen algorithm. If set to measureOnly, the audio will be measured but not adjusted.

    - **TargetLkfs** *(float) --* Target LKFS(loudness) to adjust volume to. If no value is entered,
    a default value will be used according to the chosen algorithm. The CALM Act (1770-1) recommends
    a target of -24 LKFS. The EBU R-128 specification (1770-2) recommends a target of -23 LKFS.
    """


_ClientUpdateChannelEncoderSettingsAudioDescriptionsCodecSettingsAacSettingsTypeDef = TypedDict(
    "_ClientUpdateChannelEncoderSettingsAudioDescriptionsCodecSettingsAacSettingsTypeDef",
    {
        "Bitrate": float,
        "CodingMode": str,
        "InputType": str,
        "Profile": str,
        "RateControlMode": str,
        "RawFormat": str,
        "SampleRate": float,
        "Spec": str,
        "VbrQuality": str,
    },
    total=False,
)


class ClientUpdateChannelEncoderSettingsAudioDescriptionsCodecSettingsAacSettingsTypeDef(
    _ClientUpdateChannelEncoderSettingsAudioDescriptionsCodecSettingsAacSettingsTypeDef
):
    """
    Type definition for `ClientUpdateChannelEncoderSettingsAudioDescriptionsCodecSettings`
    `AacSettings`

    - **Bitrate** *(float) --* Average bitrate in bits/second. Valid values depend on rate control
    mode and profile.

    - **CodingMode** *(string) --* Mono, Stereo, or 5.1 channel layout. Valid values depend on rate
    control mode and profile. The adReceiverMix setting receives a stereo description plus control
    track and emits a mono AAC encode of the description track, with control data emitted in the PES
    header as per ETSI TS 101 154 Annex E.

    - **InputType** *(string) --* Set to "broadcasterMixedAd" when input contains pre-mixed main
    audio + AD (narration) as a stereo pair. The Audio Type field (audioType) will be set to 3,
    which signals to downstream systems that this stream contains "broadcaster mixed AD". Note that
    the input received by the encoder must contain pre-mixed audio; the encoder does not perform the
    mixing. The values in audioTypeControl and audioType (in AudioDescription) are ignored when set
    to broadcasterMixedAd. Leave set to "normal" when input does not contain pre-mixed audio + AD.

    - **Profile** *(string) --* AAC Profile.

    - **RateControlMode** *(string) --* Rate Control Mode.

    - **RawFormat** *(string) --* Sets LATM / LOAS AAC output for raw containers.

    - **SampleRate** *(float) --* Sample rate in Hz. Valid values depend on rate control mode and
    profile.

    - **Spec** *(string) --* Use MPEG-2 AAC audio instead of MPEG-4 AAC audio for raw or MPEG-2
    Transport Stream containers.

    - **VbrQuality** *(string) --* VBR Quality Level - Only used if rateControlMode is VBR.
    """


_ClientUpdateChannelEncoderSettingsAudioDescriptionsCodecSettingsAc3SettingsTypeDef = TypedDict(
    "_ClientUpdateChannelEncoderSettingsAudioDescriptionsCodecSettingsAc3SettingsTypeDef",
    {
        "Bitrate": float,
        "BitstreamMode": str,
        "CodingMode": str,
        "Dialnorm": int,
        "DrcProfile": str,
        "LfeFilter": str,
        "MetadataControl": str,
    },
    total=False,
)


class ClientUpdateChannelEncoderSettingsAudioDescriptionsCodecSettingsAc3SettingsTypeDef(
    _ClientUpdateChannelEncoderSettingsAudioDescriptionsCodecSettingsAc3SettingsTypeDef
):
    """
    Type definition for `ClientUpdateChannelEncoderSettingsAudioDescriptionsCodecSettings`
    `Ac3Settings`

    - **Bitrate** *(float) --* Average bitrate in bits/second. Valid bitrates depend on the coding
    mode.

    - **BitstreamMode** *(string) --* Specifies the bitstream mode (bsmod) for the emitted AC-3
    stream. See ATSC A/52-2012 for background on these values.

    - **CodingMode** *(string) --* Dolby Digital coding mode. Determines number of channels.

    - **Dialnorm** *(integer) --* Sets the dialnorm for the output. If excluded and input audio is
    Dolby Digital, dialnorm will be passed through.

    - **DrcProfile** *(string) --* If set to filmStandard, adds dynamic range compression signaling
    to the output bitstream as defined in the Dolby Digital specification.

    - **LfeFilter** *(string) --* When set to enabled, applies a 120Hz lowpass filter to the LFE
    channel prior to encoding. Only valid in codingMode32Lfe mode.

    - **MetadataControl** *(string) --* When set to "followInput", encoder metadata will be sourced
    from the DD, DD+, or DolbyE decoder that supplied this audio data. If audio was not supplied
    from one of these streams, then the static metadata settings will be used.
    """


_ClientUpdateChannelEncoderSettingsAudioDescriptionsCodecSettingsEac3SettingsTypeDef = TypedDict(
    "_ClientUpdateChannelEncoderSettingsAudioDescriptionsCodecSettingsEac3SettingsTypeDef",
    {
        "AttenuationControl": str,
        "Bitrate": float,
        "BitstreamMode": str,
        "CodingMode": str,
        "DcFilter": str,
        "Dialnorm": int,
        "DrcLine": str,
        "DrcRf": str,
        "LfeControl": str,
        "LfeFilter": str,
        "LoRoCenterMixLevel": float,
        "LoRoSurroundMixLevel": float,
        "LtRtCenterMixLevel": float,
        "LtRtSurroundMixLevel": float,
        "MetadataControl": str,
        "PassthroughControl": str,
        "PhaseControl": str,
        "StereoDownmix": str,
        "SurroundExMode": str,
        "SurroundMode": str,
    },
    total=False,
)


class ClientUpdateChannelEncoderSettingsAudioDescriptionsCodecSettingsEac3SettingsTypeDef(
    _ClientUpdateChannelEncoderSettingsAudioDescriptionsCodecSettingsEac3SettingsTypeDef
):
    """
    Type definition for `ClientUpdateChannelEncoderSettingsAudioDescriptionsCodecSettings`
    `Eac3Settings`

    - **AttenuationControl** *(string) --* When set to attenuate3Db, applies a 3 dB attenuation to
    the surround channels. Only used for 3/2 coding mode.

    - **Bitrate** *(float) --* Average bitrate in bits/second. Valid bitrates depend on the coding
    mode.

    - **BitstreamMode** *(string) --* Specifies the bitstream mode (bsmod) for the emitted E-AC-3
    stream. See ATSC A/52-2012 (Annex E) for background on these values.

    - **CodingMode** *(string) --* Dolby Digital Plus coding mode. Determines number of channels.

    - **DcFilter** *(string) --* When set to enabled, activates a DC highpass filter for all input
    channels.

    - **Dialnorm** *(integer) --* Sets the dialnorm for the output. If blank and input audio is
    Dolby Digital Plus, dialnorm will be passed through.

    - **DrcLine** *(string) --* Sets the Dolby dynamic range compression profile.

    - **DrcRf** *(string) --* Sets the profile for heavy Dolby dynamic range compression, ensures
    that the instantaneous signal peaks do not exceed specified levels.

    - **LfeControl** *(string) --* When encoding 3/2 audio, setting to lfe enables the LFE channel

    - **LfeFilter** *(string) --* When set to enabled, applies a 120Hz lowpass filter to the LFE
    channel prior to encoding. Only valid with codingMode32 coding mode.

    - **LoRoCenterMixLevel** *(float) --* Left only/Right only center mix level. Only used for 3/2
    coding mode.

    - **LoRoSurroundMixLevel** *(float) --* Left only/Right only surround mix level. Only used for
    3/2 coding mode.

    - **LtRtCenterMixLevel** *(float) --* Left total/Right total center mix level. Only used for 3/2
    coding mode.

    - **LtRtSurroundMixLevel** *(float) --* Left total/Right total surround mix level. Only used for
    3/2 coding mode.

    - **MetadataControl** *(string) --* When set to followInput, encoder metadata will be sourced
    from the DD, DD+, or DolbyE decoder that supplied this audio data. If audio was not supplied
    from one of these streams, then the static metadata settings will be used.

    - **PassthroughControl** *(string) --* When set to whenPossible, input DD+ audio will be passed
    through if it is present on the input. This detection is dynamic over the life of the transcode.
    Inputs that alternate between DD+ and non-DD+ content will have a consistent DD+ output as the
    system alternates between passthrough and encoding.

    - **PhaseControl** *(string) --* When set to shift90Degrees, applies a 90-degree phase shift to
    the surround channels. Only used for 3/2 coding mode.

    - **StereoDownmix** *(string) --* Stereo downmix preference. Only used for 3/2 coding mode.

    - **SurroundExMode** *(string) --* When encoding 3/2 audio, sets whether an extra center back
    surround channel is matrix encoded into the left and right surround channels.

    - **SurroundMode** *(string) --* When encoding 2/0 audio, sets whether Dolby Surround is matrix
    encoded into the two channels.
    """


_ClientUpdateChannelEncoderSettingsAudioDescriptionsCodecSettingsMp2SettingsTypeDef = TypedDict(
    "_ClientUpdateChannelEncoderSettingsAudioDescriptionsCodecSettingsMp2SettingsTypeDef",
    {"Bitrate": float, "CodingMode": str, "SampleRate": float},
    total=False,
)


class ClientUpdateChannelEncoderSettingsAudioDescriptionsCodecSettingsMp2SettingsTypeDef(
    _ClientUpdateChannelEncoderSettingsAudioDescriptionsCodecSettingsMp2SettingsTypeDef
):
    """
    Type definition for `ClientUpdateChannelEncoderSettingsAudioDescriptionsCodecSettings`
    `Mp2Settings`

    - **Bitrate** *(float) --* Average bitrate in bits/second.

    - **CodingMode** *(string) --* The MPEG2 Audio coding mode. Valid values are codingMode10 (for
    mono) or codingMode20 (for stereo).

    - **SampleRate** *(float) --* Sample rate in Hz.
    """


_ClientUpdateChannelEncoderSettingsAudioDescriptionsCodecSettingsTypeDef = TypedDict(
    "_ClientUpdateChannelEncoderSettingsAudioDescriptionsCodecSettingsTypeDef",
    {
        "AacSettings": ClientUpdateChannelEncoderSettingsAudioDescriptionsCodecSettingsAacSettingsTypeDef,
        "Ac3Settings": ClientUpdateChannelEncoderSettingsAudioDescriptionsCodecSettingsAc3SettingsTypeDef,
        "Eac3Settings": ClientUpdateChannelEncoderSettingsAudioDescriptionsCodecSettingsEac3SettingsTypeDef,
        "Mp2Settings": ClientUpdateChannelEncoderSettingsAudioDescriptionsCodecSettingsMp2SettingsTypeDef,
        "PassThroughSettings": Dict[str, Any],
    },
    total=False,
)


class ClientUpdateChannelEncoderSettingsAudioDescriptionsCodecSettingsTypeDef(
    _ClientUpdateChannelEncoderSettingsAudioDescriptionsCodecSettingsTypeDef
):
    """
    Type definition for `ClientUpdateChannelEncoderSettingsAudioDescriptions` `CodecSettings`

    - **AacSettings** *(dict) --* Aac Settings

      - **Bitrate** *(float) --* Average bitrate in bits/second. Valid values depend on rate control
      mode and profile.

      - **CodingMode** *(string) --* Mono, Stereo, or 5.1 channel layout. Valid values depend on
      rate control mode and profile. The adReceiverMix setting receives a stereo description plus
      control track and emits a mono AAC encode of the description track, with control data emitted
      in the PES header as per ETSI TS 101 154 Annex E.

      - **InputType** *(string) --* Set to "broadcasterMixedAd" when input contains pre-mixed main
      audio + AD (narration) as a stereo pair. The Audio Type field (audioType) will be set to 3,
      which signals to downstream systems that this stream contains "broadcaster mixed AD". Note
      that the input received by the encoder must contain pre-mixed audio; the encoder does not
      perform the mixing. The values in audioTypeControl and audioType (in AudioDescription) are
      ignored when set to broadcasterMixedAd. Leave set to "normal" when input does not contain
      pre-mixed audio + AD.

      - **Profile** *(string) --* AAC Profile.

      - **RateControlMode** *(string) --* Rate Control Mode.

      - **RawFormat** *(string) --* Sets LATM / LOAS AAC output for raw containers.

      - **SampleRate** *(float) --* Sample rate in Hz. Valid values depend on rate control mode and
      profile.

      - **Spec** *(string) --* Use MPEG-2 AAC audio instead of MPEG-4 AAC audio for raw or MPEG-2
      Transport Stream containers.

      - **VbrQuality** *(string) --* VBR Quality Level - Only used if rateControlMode is VBR.

    - **Ac3Settings** *(dict) --* Ac3 Settings

      - **Bitrate** *(float) --* Average bitrate in bits/second. Valid bitrates depend on the coding
      mode.

      - **BitstreamMode** *(string) --* Specifies the bitstream mode (bsmod) for the emitted AC-3
      stream. See ATSC A/52-2012 for background on these values.

      - **CodingMode** *(string) --* Dolby Digital coding mode. Determines number of channels.

      - **Dialnorm** *(integer) --* Sets the dialnorm for the output. If excluded and input audio is
      Dolby Digital, dialnorm will be passed through.

      - **DrcProfile** *(string) --* If set to filmStandard, adds dynamic range compression
      signaling to the output bitstream as defined in the Dolby Digital specification.

      - **LfeFilter** *(string) --* When set to enabled, applies a 120Hz lowpass filter to the LFE
      channel prior to encoding. Only valid in codingMode32Lfe mode.

      - **MetadataControl** *(string) --* When set to "followInput", encoder metadata will be
      sourced from the DD, DD+, or DolbyE decoder that supplied this audio data. If audio was not
      supplied from one of these streams, then the static metadata settings will be used.

    - **Eac3Settings** *(dict) --* Eac3 Settings

      - **AttenuationControl** *(string) --* When set to attenuate3Db, applies a 3 dB attenuation to
      the surround channels. Only used for 3/2 coding mode.

      - **Bitrate** *(float) --* Average bitrate in bits/second. Valid bitrates depend on the coding
      mode.

      - **BitstreamMode** *(string) --* Specifies the bitstream mode (bsmod) for the emitted E-AC-3
      stream. See ATSC A/52-2012 (Annex E) for background on these values.

      - **CodingMode** *(string) --* Dolby Digital Plus coding mode. Determines number of channels.

      - **DcFilter** *(string) --* When set to enabled, activates a DC highpass filter for all input
      channels.

      - **Dialnorm** *(integer) --* Sets the dialnorm for the output. If blank and input audio is
      Dolby Digital Plus, dialnorm will be passed through.

      - **DrcLine** *(string) --* Sets the Dolby dynamic range compression profile.

      - **DrcRf** *(string) --* Sets the profile for heavy Dolby dynamic range compression, ensures
      that the instantaneous signal peaks do not exceed specified levels.

      - **LfeControl** *(string) --* When encoding 3/2 audio, setting to lfe enables the LFE channel

      - **LfeFilter** *(string) --* When set to enabled, applies a 120Hz lowpass filter to the LFE
      channel prior to encoding. Only valid with codingMode32 coding mode.

      - **LoRoCenterMixLevel** *(float) --* Left only/Right only center mix level. Only used for 3/2
      coding mode.

      - **LoRoSurroundMixLevel** *(float) --* Left only/Right only surround mix level. Only used for
      3/2 coding mode.

      - **LtRtCenterMixLevel** *(float) --* Left total/Right total center mix level. Only used for
      3/2 coding mode.

      - **LtRtSurroundMixLevel** *(float) --* Left total/Right total surround mix level. Only used
      for 3/2 coding mode.

      - **MetadataControl** *(string) --* When set to followInput, encoder metadata will be sourced
      from the DD, DD+, or DolbyE decoder that supplied this audio data. If audio was not supplied
      from one of these streams, then the static metadata settings will be used.

      - **PassthroughControl** *(string) --* When set to whenPossible, input DD+ audio will be
      passed through if it is present on the input. This detection is dynamic over the life of the
      transcode. Inputs that alternate between DD+ and non-DD+ content will have a consistent DD+
      output as the system alternates between passthrough and encoding.

      - **PhaseControl** *(string) --* When set to shift90Degrees, applies a 90-degree phase shift
      to the surround channels. Only used for 3/2 coding mode.

      - **StereoDownmix** *(string) --* Stereo downmix preference. Only used for 3/2 coding mode.

      - **SurroundExMode** *(string) --* When encoding 3/2 audio, sets whether an extra center back
      surround channel is matrix encoded into the left and right surround channels.

      - **SurroundMode** *(string) --* When encoding 2/0 audio, sets whether Dolby Surround is
      matrix encoded into the two channels.

    - **Mp2Settings** *(dict) --* Mp2 Settings

      - **Bitrate** *(float) --* Average bitrate in bits/second.

      - **CodingMode** *(string) --* The MPEG2 Audio coding mode. Valid values are codingMode10 (for
      mono) or codingMode20 (for stereo).

      - **SampleRate** *(float) --* Sample rate in Hz.

    - **PassThroughSettings** *(dict) --* Pass Through Settings
    """


_ClientUpdateChannelEncoderSettingsAudioDescriptionsRemixSettingsChannelMappingsInputChannelLevelsTypeDef = TypedDict(
    "_ClientUpdateChannelEncoderSettingsAudioDescriptionsRemixSettingsChannelMappingsInputChannelLevelsTypeDef",
    {"Gain": int, "InputChannel": int},
)


class ClientUpdateChannelEncoderSettingsAudioDescriptionsRemixSettingsChannelMappingsInputChannelLevelsTypeDef(
    _ClientUpdateChannelEncoderSettingsAudioDescriptionsRemixSettingsChannelMappingsInputChannelLevelsTypeDef
):
    """
    Type definition for
    `ClientUpdateChannelEncoderSettingsAudioDescriptionsRemixSettingsChannelMappings`
    `InputChannelLevels`

    - **Gain** *(integer) --* **[REQUIRED]** Remixing value. Units are in dB and acceptable values
    are within the range from -60 (mute) and 6 dB.

    - **InputChannel** *(integer) --* **[REQUIRED]** The index of the input channel used as a
    source.
    """


_ClientUpdateChannelEncoderSettingsAudioDescriptionsRemixSettingsChannelMappingsTypeDef = TypedDict(
    "_ClientUpdateChannelEncoderSettingsAudioDescriptionsRemixSettingsChannelMappingsTypeDef",
    {
        "InputChannelLevels": List[
            ClientUpdateChannelEncoderSettingsAudioDescriptionsRemixSettingsChannelMappingsInputChannelLevelsTypeDef
        ],
        "OutputChannel": int,
    },
)


class ClientUpdateChannelEncoderSettingsAudioDescriptionsRemixSettingsChannelMappingsTypeDef(
    _ClientUpdateChannelEncoderSettingsAudioDescriptionsRemixSettingsChannelMappingsTypeDef
):
    """
    Type definition for `ClientUpdateChannelEncoderSettingsAudioDescriptionsRemixSettings`
    `ChannelMappings`

    - **InputChannelLevels** *(list) --* **[REQUIRED]** Indices and gain values for each input
    channel that should be remixed into this output channel.

      - *(dict) --* Input Channel Level

        - **Gain** *(integer) --* **[REQUIRED]** Remixing value. Units are in dB and acceptable
        values are within the range from -60 (mute) and 6 dB.

        - **InputChannel** *(integer) --* **[REQUIRED]** The index of the input channel used as a
        source.

    - **OutputChannel** *(integer) --* **[REQUIRED]** The index of the output channel being
    produced.
    """


_RequiredClientUpdateChannelEncoderSettingsAudioDescriptionsRemixSettingsTypeDef = TypedDict(
    "_RequiredClientUpdateChannelEncoderSettingsAudioDescriptionsRemixSettingsTypeDef",
    {
        "ChannelMappings": List[
            ClientUpdateChannelEncoderSettingsAudioDescriptionsRemixSettingsChannelMappingsTypeDef
        ]
    },
)
_OptionalClientUpdateChannelEncoderSettingsAudioDescriptionsRemixSettingsTypeDef = TypedDict(
    "_OptionalClientUpdateChannelEncoderSettingsAudioDescriptionsRemixSettingsTypeDef",
    {"ChannelsIn": int, "ChannelsOut": int},
    total=False,
)


class ClientUpdateChannelEncoderSettingsAudioDescriptionsRemixSettingsTypeDef(
    _RequiredClientUpdateChannelEncoderSettingsAudioDescriptionsRemixSettingsTypeDef,
    _OptionalClientUpdateChannelEncoderSettingsAudioDescriptionsRemixSettingsTypeDef,
):
    """
    Type definition for `ClientUpdateChannelEncoderSettingsAudioDescriptions` `RemixSettings`

    - **ChannelMappings** *(list) --* **[REQUIRED]** Mapping of input channels to output channels,
    with appropriate gain adjustments.

      - *(dict) --* Audio Channel Mapping

        - **InputChannelLevels** *(list) --* **[REQUIRED]** Indices and gain values for each input
        channel that should be remixed into this output channel.

          - *(dict) --* Input Channel Level

            - **Gain** *(integer) --* **[REQUIRED]** Remixing value. Units are in dB and acceptable
            values are within the range from -60 (mute) and 6 dB.

            - **InputChannel** *(integer) --* **[REQUIRED]** The index of the input channel used as
            a source.

        - **OutputChannel** *(integer) --* **[REQUIRED]** The index of the output channel being
        produced.

    - **ChannelsIn** *(integer) --* Number of input channels to be used.

    - **ChannelsOut** *(integer) --* Number of output channels to be produced. Valid values: 1, 2,
    4, 6, 8
    """


_RequiredClientUpdateChannelEncoderSettingsAudioDescriptionsTypeDef = TypedDict(
    "_RequiredClientUpdateChannelEncoderSettingsAudioDescriptionsTypeDef",
    {"AudioSelectorName": str, "Name": str},
)
_OptionalClientUpdateChannelEncoderSettingsAudioDescriptionsTypeDef = TypedDict(
    "_OptionalClientUpdateChannelEncoderSettingsAudioDescriptionsTypeDef",
    {
        "AudioNormalizationSettings": ClientUpdateChannelEncoderSettingsAudioDescriptionsAudioNormalizationSettingsTypeDef,
        "AudioType": str,
        "AudioTypeControl": str,
        "CodecSettings": ClientUpdateChannelEncoderSettingsAudioDescriptionsCodecSettingsTypeDef,
        "LanguageCode": str,
        "LanguageCodeControl": str,
        "RemixSettings": ClientUpdateChannelEncoderSettingsAudioDescriptionsRemixSettingsTypeDef,
        "StreamName": str,
    },
    total=False,
)


class ClientUpdateChannelEncoderSettingsAudioDescriptionsTypeDef(
    _RequiredClientUpdateChannelEncoderSettingsAudioDescriptionsTypeDef,
    _OptionalClientUpdateChannelEncoderSettingsAudioDescriptionsTypeDef,
):
    """
    Type definition for `ClientUpdateChannelEncoderSettings` `AudioDescriptions`

    - **AudioNormalizationSettings** *(dict) --* Advanced audio normalization settings.

      - **Algorithm** *(string) --* Audio normalization algorithm to use. itu17701 conforms to the
      CALM Act specification, itu17702 conforms to the EBU R-128 specification.

      - **AlgorithmControl** *(string) --* When set to correctAudio the output audio is corrected
      using the chosen algorithm. If set to measureOnly, the audio will be measured but not
      adjusted.

      - **TargetLkfs** *(float) --* Target LKFS(loudness) to adjust volume to. If no value is
      entered, a default value will be used according to the chosen algorithm. The CALM Act (1770-1)
      recommends a target of -24 LKFS. The EBU R-128 specification (1770-2) recommends a target of
      -23 LKFS.

    - **AudioSelectorName** *(string) --* **[REQUIRED]** The name of the AudioSelector used as the
    source for this AudioDescription.

    - **AudioType** *(string) --* Applies only if audioTypeControl is useConfigured. The values for
    audioType are defined in ISO-IEC 13818-1.

    - **AudioTypeControl** *(string) --* Determines how audio type is determined. followInput: If
    the input contains an ISO 639 audioType, then that value is passed through to the output. If the
    input contains no ISO 639 audioType, the value in Audio Type is included in the output.
    useConfigured: The value in Audio Type is included in the output. Note that this field and
    audioType are both ignored if inputType is broadcasterMixedAd.

    - **CodecSettings** *(dict) --* Audio codec settings.

      - **AacSettings** *(dict) --* Aac Settings

        - **Bitrate** *(float) --* Average bitrate in bits/second. Valid values depend on rate
        control mode and profile.

        - **CodingMode** *(string) --* Mono, Stereo, or 5.1 channel layout. Valid values depend on
        rate control mode and profile. The adReceiverMix setting receives a stereo description plus
        control track and emits a mono AAC encode of the description track, with control data
        emitted in the PES header as per ETSI TS 101 154 Annex E.

        - **InputType** *(string) --* Set to "broadcasterMixedAd" when input contains pre-mixed main
        audio + AD (narration) as a stereo pair. The Audio Type field (audioType) will be set to 3,
        which signals to downstream systems that this stream contains "broadcaster mixed AD". Note
        that the input received by the encoder must contain pre-mixed audio; the encoder does not
        perform the mixing. The values in audioTypeControl and audioType (in AudioDescription) are
        ignored when set to broadcasterMixedAd. Leave set to "normal" when input does not contain
        pre-mixed audio + AD.

        - **Profile** *(string) --* AAC Profile.

        - **RateControlMode** *(string) --* Rate Control Mode.

        - **RawFormat** *(string) --* Sets LATM / LOAS AAC output for raw containers.

        - **SampleRate** *(float) --* Sample rate in Hz. Valid values depend on rate control mode
        and profile.

        - **Spec** *(string) --* Use MPEG-2 AAC audio instead of MPEG-4 AAC audio for raw or MPEG-2
        Transport Stream containers.

        - **VbrQuality** *(string) --* VBR Quality Level - Only used if rateControlMode is VBR.

      - **Ac3Settings** *(dict) --* Ac3 Settings

        - **Bitrate** *(float) --* Average bitrate in bits/second. Valid bitrates depend on the
        coding mode.

        - **BitstreamMode** *(string) --* Specifies the bitstream mode (bsmod) for the emitted AC-3
        stream. See ATSC A/52-2012 for background on these values.

        - **CodingMode** *(string) --* Dolby Digital coding mode. Determines number of channels.

        - **Dialnorm** *(integer) --* Sets the dialnorm for the output. If excluded and input audio
        is Dolby Digital, dialnorm will be passed through.

        - **DrcProfile** *(string) --* If set to filmStandard, adds dynamic range compression
        signaling to the output bitstream as defined in the Dolby Digital specification.

        - **LfeFilter** *(string) --* When set to enabled, applies a 120Hz lowpass filter to the LFE
        channel prior to encoding. Only valid in codingMode32Lfe mode.

        - **MetadataControl** *(string) --* When set to "followInput", encoder metadata will be
        sourced from the DD, DD+, or DolbyE decoder that supplied this audio data. If audio was not
        supplied from one of these streams, then the static metadata settings will be used.

      - **Eac3Settings** *(dict) --* Eac3 Settings

        - **AttenuationControl** *(string) --* When set to attenuate3Db, applies a 3 dB attenuation
        to the surround channels. Only used for 3/2 coding mode.

        - **Bitrate** *(float) --* Average bitrate in bits/second. Valid bitrates depend on the
        coding mode.

        - **BitstreamMode** *(string) --* Specifies the bitstream mode (bsmod) for the emitted
        E-AC-3 stream. See ATSC A/52-2012 (Annex E) for background on these values.

        - **CodingMode** *(string) --* Dolby Digital Plus coding mode. Determines number of
        channels.

        - **DcFilter** *(string) --* When set to enabled, activates a DC highpass filter for all
        input channels.

        - **Dialnorm** *(integer) --* Sets the dialnorm for the output. If blank and input audio is
        Dolby Digital Plus, dialnorm will be passed through.

        - **DrcLine** *(string) --* Sets the Dolby dynamic range compression profile.

        - **DrcRf** *(string) --* Sets the profile for heavy Dolby dynamic range compression,
        ensures that the instantaneous signal peaks do not exceed specified levels.

        - **LfeControl** *(string) --* When encoding 3/2 audio, setting to lfe enables the LFE
        channel

        - **LfeFilter** *(string) --* When set to enabled, applies a 120Hz lowpass filter to the LFE
        channel prior to encoding. Only valid with codingMode32 coding mode.

        - **LoRoCenterMixLevel** *(float) --* Left only/Right only center mix level. Only used for
        3/2 coding mode.

        - **LoRoSurroundMixLevel** *(float) --* Left only/Right only surround mix level. Only used
        for 3/2 coding mode.

        - **LtRtCenterMixLevel** *(float) --* Left total/Right total center mix level. Only used for
        3/2 coding mode.

        - **LtRtSurroundMixLevel** *(float) --* Left total/Right total surround mix level. Only used
        for 3/2 coding mode.

        - **MetadataControl** *(string) --* When set to followInput, encoder metadata will be
        sourced from the DD, DD+, or DolbyE decoder that supplied this audio data. If audio was not
        supplied from one of these streams, then the static metadata settings will be used.

        - **PassthroughControl** *(string) --* When set to whenPossible, input DD+ audio will be
        passed through if it is present on the input. This detection is dynamic over the life of the
        transcode. Inputs that alternate between DD+ and non-DD+ content will have a consistent DD+
        output as the system alternates between passthrough and encoding.

        - **PhaseControl** *(string) --* When set to shift90Degrees, applies a 90-degree phase shift
        to the surround channels. Only used for 3/2 coding mode.

        - **StereoDownmix** *(string) --* Stereo downmix preference. Only used for 3/2 coding mode.

        - **SurroundExMode** *(string) --* When encoding 3/2 audio, sets whether an extra center
        back surround channel is matrix encoded into the left and right surround channels.

        - **SurroundMode** *(string) --* When encoding 2/0 audio, sets whether Dolby Surround is
        matrix encoded into the two channels.

      - **Mp2Settings** *(dict) --* Mp2 Settings

        - **Bitrate** *(float) --* Average bitrate in bits/second.

        - **CodingMode** *(string) --* The MPEG2 Audio coding mode. Valid values are codingMode10
        (for mono) or codingMode20 (for stereo).

        - **SampleRate** *(float) --* Sample rate in Hz.

      - **PassThroughSettings** *(dict) --* Pass Through Settings

    - **LanguageCode** *(string) --* Indicates the language of the audio output track. Only used if
    languageControlMode is useConfigured, or there is no ISO 639 language code specified in the
    input.

    - **LanguageCodeControl** *(string) --* Choosing followInput will cause the ISO 639 language
    code of the output to follow the ISO 639 language code of the input. The languageCode will be
    used when useConfigured is set, or when followInput is selected but there is no ISO 639 language
    code specified by the input.

    - **Name** *(string) --* **[REQUIRED]** The name of this AudioDescription. Outputs will use this
    name to uniquely identify this AudioDescription. Description names should be unique within this
    Live Event.

    - **RemixSettings** *(dict) --* Settings that control how input audio channels are remixed into
    the output audio channels.

      - **ChannelMappings** *(list) --* **[REQUIRED]** Mapping of input channels to output channels,
      with appropriate gain adjustments.

        - *(dict) --* Audio Channel Mapping

          - **InputChannelLevels** *(list) --* **[REQUIRED]** Indices and gain values for each input
          channel that should be remixed into this output channel.

            - *(dict) --* Input Channel Level

              - **Gain** *(integer) --* **[REQUIRED]** Remixing value. Units are in dB and
              acceptable values are within the range from -60 (mute) and 6 dB.

              - **InputChannel** *(integer) --* **[REQUIRED]** The index of the input channel used
              as a source.

          - **OutputChannel** *(integer) --* **[REQUIRED]** The index of the output channel being
          produced.

      - **ChannelsIn** *(integer) --* Number of input channels to be used.

      - **ChannelsOut** *(integer) --* Number of output channels to be produced. Valid values: 1, 2,
      4, 6, 8

    - **StreamName** *(string) --* Used for MS Smooth and Apple HLS outputs. Indicates the name
    displayed by the player (eg. English, or Director Commentary).
    """


_RequiredClientUpdateChannelEncoderSettingsAvailBlankingAvailBlankingImageTypeDef = TypedDict(
    "_RequiredClientUpdateChannelEncoderSettingsAvailBlankingAvailBlankingImageTypeDef",
    {"Uri": str},
)
_OptionalClientUpdateChannelEncoderSettingsAvailBlankingAvailBlankingImageTypeDef = TypedDict(
    "_OptionalClientUpdateChannelEncoderSettingsAvailBlankingAvailBlankingImageTypeDef",
    {"PasswordParam": str, "Username": str},
    total=False,
)


class ClientUpdateChannelEncoderSettingsAvailBlankingAvailBlankingImageTypeDef(
    _RequiredClientUpdateChannelEncoderSettingsAvailBlankingAvailBlankingImageTypeDef,
    _OptionalClientUpdateChannelEncoderSettingsAvailBlankingAvailBlankingImageTypeDef,
):
    """
    Type definition for `ClientUpdateChannelEncoderSettingsAvailBlanking` `AvailBlankingImage`

    - **PasswordParam** *(string) --* key used to extract the password from EC2 Parameter store

    - **Uri** *(string) --* **[REQUIRED]** Uniform Resource Identifier - This should be a path to a
    file accessible to the Live system (eg. a http:// URI) depending on the output type. For
    example, a RTMP destination should have a uri simliar to: "rtmp://fmsserver/live".

    - **Username** *(string) --* Documentation update needed
    """


_ClientUpdateChannelEncoderSettingsAvailBlankingTypeDef = TypedDict(
    "_ClientUpdateChannelEncoderSettingsAvailBlankingTypeDef",
    {
        "AvailBlankingImage": ClientUpdateChannelEncoderSettingsAvailBlankingAvailBlankingImageTypeDef,
        "State": str,
    },
    total=False,
)


class ClientUpdateChannelEncoderSettingsAvailBlankingTypeDef(
    _ClientUpdateChannelEncoderSettingsAvailBlankingTypeDef
):
    """
    Type definition for `ClientUpdateChannelEncoderSettings` `AvailBlanking`

    - **AvailBlankingImage** *(dict) --* Blanking image to be used. Leave empty for solid black.
    Only bmp and png images are supported.

      - **PasswordParam** *(string) --* key used to extract the password from EC2 Parameter store

      - **Uri** *(string) --* **[REQUIRED]** Uniform Resource Identifier - This should be a path to
      a file accessible to the Live system (eg. a http:// URI) depending on the output type. For
      example, a RTMP destination should have a uri simliar to: "rtmp://fmsserver/live".

      - **Username** *(string) --* Documentation update needed

    - **State** *(string) --* When set to enabled, causes video, audio and captions to be blanked
    when insertion metadata is added.
    """


_ClientUpdateChannelEncoderSettingsAvailConfigurationAvailSettingsScte35SpliceInsertTypeDef = TypedDict(
    "_ClientUpdateChannelEncoderSettingsAvailConfigurationAvailSettingsScte35SpliceInsertTypeDef",
    {"AdAvailOffset": int, "NoRegionalBlackoutFlag": str, "WebDeliveryAllowedFlag": str},
    total=False,
)


class ClientUpdateChannelEncoderSettingsAvailConfigurationAvailSettingsScte35SpliceInsertTypeDef(
    _ClientUpdateChannelEncoderSettingsAvailConfigurationAvailSettingsScte35SpliceInsertTypeDef
):
    """
    Type definition for `ClientUpdateChannelEncoderSettingsAvailConfigurationAvailSettings`
    `Scte35SpliceInsert`

    - **AdAvailOffset** *(integer) --* When specified, this offset (in milliseconds) is added to the
    input Ad Avail PTS time. This only applies to embedded SCTE 104/35 messages and does not apply
    to OOB messages.

    - **NoRegionalBlackoutFlag** *(string) --* When set to ignore, Segment Descriptors with
    noRegionalBlackoutFlag set to 0 will no longer trigger blackouts or Ad Avail slates

    - **WebDeliveryAllowedFlag** *(string) --* When set to ignore, Segment Descriptors with
    webDeliveryAllowedFlag set to 0 will no longer trigger blackouts or Ad Avail slates
    """


_ClientUpdateChannelEncoderSettingsAvailConfigurationAvailSettingsScte35TimeSignalAposTypeDef = TypedDict(
    "_ClientUpdateChannelEncoderSettingsAvailConfigurationAvailSettingsScte35TimeSignalAposTypeDef",
    {"AdAvailOffset": int, "NoRegionalBlackoutFlag": str, "WebDeliveryAllowedFlag": str},
    total=False,
)


class ClientUpdateChannelEncoderSettingsAvailConfigurationAvailSettingsScte35TimeSignalAposTypeDef(
    _ClientUpdateChannelEncoderSettingsAvailConfigurationAvailSettingsScte35TimeSignalAposTypeDef
):
    """
    Type definition for `ClientUpdateChannelEncoderSettingsAvailConfigurationAvailSettings`
    `Scte35TimeSignalApos`

    - **AdAvailOffset** *(integer) --* When specified, this offset (in milliseconds) is added to the
    input Ad Avail PTS time. This only applies to embedded SCTE 104/35 messages and does not apply
    to OOB messages.

    - **NoRegionalBlackoutFlag** *(string) --* When set to ignore, Segment Descriptors with
    noRegionalBlackoutFlag set to 0 will no longer trigger blackouts or Ad Avail slates

    - **WebDeliveryAllowedFlag** *(string) --* When set to ignore, Segment Descriptors with
    webDeliveryAllowedFlag set to 0 will no longer trigger blackouts or Ad Avail slates
    """


_ClientUpdateChannelEncoderSettingsAvailConfigurationAvailSettingsTypeDef = TypedDict(
    "_ClientUpdateChannelEncoderSettingsAvailConfigurationAvailSettingsTypeDef",
    {
        "Scte35SpliceInsert": ClientUpdateChannelEncoderSettingsAvailConfigurationAvailSettingsScte35SpliceInsertTypeDef,
        "Scte35TimeSignalApos": ClientUpdateChannelEncoderSettingsAvailConfigurationAvailSettingsScte35TimeSignalAposTypeDef,
    },
    total=False,
)


class ClientUpdateChannelEncoderSettingsAvailConfigurationAvailSettingsTypeDef(
    _ClientUpdateChannelEncoderSettingsAvailConfigurationAvailSettingsTypeDef
):
    """
    Type definition for `ClientUpdateChannelEncoderSettingsAvailConfiguration` `AvailSettings`

    - **Scte35SpliceInsert** *(dict) --* Scte35 Splice Insert

      - **AdAvailOffset** *(integer) --* When specified, this offset (in milliseconds) is added to
      the input Ad Avail PTS time. This only applies to embedded SCTE 104/35 messages and does not
      apply to OOB messages.

      - **NoRegionalBlackoutFlag** *(string) --* When set to ignore, Segment Descriptors with
      noRegionalBlackoutFlag set to 0 will no longer trigger blackouts or Ad Avail slates

      - **WebDeliveryAllowedFlag** *(string) --* When set to ignore, Segment Descriptors with
      webDeliveryAllowedFlag set to 0 will no longer trigger blackouts or Ad Avail slates

    - **Scte35TimeSignalApos** *(dict) --* Scte35 Time Signal Apos

      - **AdAvailOffset** *(integer) --* When specified, this offset (in milliseconds) is added to
      the input Ad Avail PTS time. This only applies to embedded SCTE 104/35 messages and does not
      apply to OOB messages.

      - **NoRegionalBlackoutFlag** *(string) --* When set to ignore, Segment Descriptors with
      noRegionalBlackoutFlag set to 0 will no longer trigger blackouts or Ad Avail slates

      - **WebDeliveryAllowedFlag** *(string) --* When set to ignore, Segment Descriptors with
      webDeliveryAllowedFlag set to 0 will no longer trigger blackouts or Ad Avail slates
    """


_ClientUpdateChannelEncoderSettingsAvailConfigurationTypeDef = TypedDict(
    "_ClientUpdateChannelEncoderSettingsAvailConfigurationTypeDef",
    {"AvailSettings": ClientUpdateChannelEncoderSettingsAvailConfigurationAvailSettingsTypeDef},
    total=False,
)


class ClientUpdateChannelEncoderSettingsAvailConfigurationTypeDef(
    _ClientUpdateChannelEncoderSettingsAvailConfigurationTypeDef
):
    """
    Type definition for `ClientUpdateChannelEncoderSettings` `AvailConfiguration`

    - **AvailSettings** *(dict) --* Ad avail settings.

      - **Scte35SpliceInsert** *(dict) --* Scte35 Splice Insert

        - **AdAvailOffset** *(integer) --* When specified, this offset (in milliseconds) is added to
        the input Ad Avail PTS time. This only applies to embedded SCTE 104/35 messages and does not
        apply to OOB messages.

        - **NoRegionalBlackoutFlag** *(string) --* When set to ignore, Segment Descriptors with
        noRegionalBlackoutFlag set to 0 will no longer trigger blackouts or Ad Avail slates

        - **WebDeliveryAllowedFlag** *(string) --* When set to ignore, Segment Descriptors with
        webDeliveryAllowedFlag set to 0 will no longer trigger blackouts or Ad Avail slates

      - **Scte35TimeSignalApos** *(dict) --* Scte35 Time Signal Apos

        - **AdAvailOffset** *(integer) --* When specified, this offset (in milliseconds) is added to
        the input Ad Avail PTS time. This only applies to embedded SCTE 104/35 messages and does not
        apply to OOB messages.

        - **NoRegionalBlackoutFlag** *(string) --* When set to ignore, Segment Descriptors with
        noRegionalBlackoutFlag set to 0 will no longer trigger blackouts or Ad Avail slates

        - **WebDeliveryAllowedFlag** *(string) --* When set to ignore, Segment Descriptors with
        webDeliveryAllowedFlag set to 0 will no longer trigger blackouts or Ad Avail slates
    """


_RequiredClientUpdateChannelEncoderSettingsBlackoutSlateBlackoutSlateImageTypeDef = TypedDict(
    "_RequiredClientUpdateChannelEncoderSettingsBlackoutSlateBlackoutSlateImageTypeDef",
    {"Uri": str},
)
_OptionalClientUpdateChannelEncoderSettingsBlackoutSlateBlackoutSlateImageTypeDef = TypedDict(
    "_OptionalClientUpdateChannelEncoderSettingsBlackoutSlateBlackoutSlateImageTypeDef",
    {"PasswordParam": str, "Username": str},
    total=False,
)


class ClientUpdateChannelEncoderSettingsBlackoutSlateBlackoutSlateImageTypeDef(
    _RequiredClientUpdateChannelEncoderSettingsBlackoutSlateBlackoutSlateImageTypeDef,
    _OptionalClientUpdateChannelEncoderSettingsBlackoutSlateBlackoutSlateImageTypeDef,
):
    """
    Type definition for `ClientUpdateChannelEncoderSettingsBlackoutSlate` `BlackoutSlateImage`

    - **PasswordParam** *(string) --* key used to extract the password from EC2 Parameter store

    - **Uri** *(string) --* **[REQUIRED]** Uniform Resource Identifier - This should be a path to a
    file accessible to the Live system (eg. a http:// URI) depending on the output type. For
    example, a RTMP destination should have a uri simliar to: "rtmp://fmsserver/live".

    - **Username** *(string) --* Documentation update needed
    """


_RequiredClientUpdateChannelEncoderSettingsBlackoutSlateNetworkEndBlackoutImageTypeDef = TypedDict(
    "_RequiredClientUpdateChannelEncoderSettingsBlackoutSlateNetworkEndBlackoutImageTypeDef",
    {"Uri": str},
)
_OptionalClientUpdateChannelEncoderSettingsBlackoutSlateNetworkEndBlackoutImageTypeDef = TypedDict(
    "_OptionalClientUpdateChannelEncoderSettingsBlackoutSlateNetworkEndBlackoutImageTypeDef",
    {"PasswordParam": str, "Username": str},
    total=False,
)


class ClientUpdateChannelEncoderSettingsBlackoutSlateNetworkEndBlackoutImageTypeDef(
    _RequiredClientUpdateChannelEncoderSettingsBlackoutSlateNetworkEndBlackoutImageTypeDef,
    _OptionalClientUpdateChannelEncoderSettingsBlackoutSlateNetworkEndBlackoutImageTypeDef,
):
    """
    Type definition for `ClientUpdateChannelEncoderSettingsBlackoutSlate` `NetworkEndBlackoutImage`

    - **PasswordParam** *(string) --* key used to extract the password from EC2 Parameter store

    - **Uri** *(string) --* **[REQUIRED]** Uniform Resource Identifier - This should be a path to a
    file accessible to the Live system (eg. a http:// URI) depending on the output type. For
    example, a RTMP destination should have a uri simliar to: "rtmp://fmsserver/live".

    - **Username** *(string) --* Documentation update needed
    """


_ClientUpdateChannelEncoderSettingsBlackoutSlateTypeDef = TypedDict(
    "_ClientUpdateChannelEncoderSettingsBlackoutSlateTypeDef",
    {
        "BlackoutSlateImage": ClientUpdateChannelEncoderSettingsBlackoutSlateBlackoutSlateImageTypeDef,
        "NetworkEndBlackout": str,
        "NetworkEndBlackoutImage": ClientUpdateChannelEncoderSettingsBlackoutSlateNetworkEndBlackoutImageTypeDef,
        "NetworkId": str,
        "State": str,
    },
    total=False,
)


class ClientUpdateChannelEncoderSettingsBlackoutSlateTypeDef(
    _ClientUpdateChannelEncoderSettingsBlackoutSlateTypeDef
):
    """
    Type definition for `ClientUpdateChannelEncoderSettings` `BlackoutSlate`

    - **BlackoutSlateImage** *(dict) --* Blackout slate image to be used. Leave empty for solid
    black. Only bmp and png images are supported.

      - **PasswordParam** *(string) --* key used to extract the password from EC2 Parameter store

      - **Uri** *(string) --* **[REQUIRED]** Uniform Resource Identifier - This should be a path to
      a file accessible to the Live system (eg. a http:// URI) depending on the output type. For
      example, a RTMP destination should have a uri simliar to: "rtmp://fmsserver/live".

      - **Username** *(string) --* Documentation update needed

    - **NetworkEndBlackout** *(string) --* Setting to enabled causes the encoder to blackout the
    video, audio, and captions, and raise the "Network Blackout Image" slate when an SCTE104/35
    Network End Segmentation Descriptor is encountered. The blackout will be lifted when the Network
    Start Segmentation Descriptor is encountered. The Network End and Network Start descriptors must
    contain a network ID that matches the value entered in "Network ID".

    - **NetworkEndBlackoutImage** *(dict) --* Path to local file to use as Network End Blackout
    image. Image will be scaled to fill the entire output raster.

      - **PasswordParam** *(string) --* key used to extract the password from EC2 Parameter store

      - **Uri** *(string) --* **[REQUIRED]** Uniform Resource Identifier - This should be a path to
      a file accessible to the Live system (eg. a http:// URI) depending on the output type. For
      example, a RTMP destination should have a uri simliar to: "rtmp://fmsserver/live".

      - **Username** *(string) --* Documentation update needed

    - **NetworkId** *(string) --* Provides Network ID that matches EIDR ID format (e.g.,
    "10.XXXX/XXXX-XXXX-XXXX-XXXX-XXXX-C").

    - **State** *(string) --* When set to enabled, causes video, audio and captions to be blanked
    when indicated by program metadata.
    """


_RequiredClientUpdateChannelEncoderSettingsCaptionDescriptionsDestinationSettingsBurnInDestinationSettingsFontTypeDef = TypedDict(
    "_RequiredClientUpdateChannelEncoderSettingsCaptionDescriptionsDestinationSettingsBurnInDestinationSettingsFontTypeDef",
    {"Uri": str},
)
_OptionalClientUpdateChannelEncoderSettingsCaptionDescriptionsDestinationSettingsBurnInDestinationSettingsFontTypeDef = TypedDict(
    "_OptionalClientUpdateChannelEncoderSettingsCaptionDescriptionsDestinationSettingsBurnInDestinationSettingsFontTypeDef",
    {"PasswordParam": str, "Username": str},
    total=False,
)


class ClientUpdateChannelEncoderSettingsCaptionDescriptionsDestinationSettingsBurnInDestinationSettingsFontTypeDef(
    _RequiredClientUpdateChannelEncoderSettingsCaptionDescriptionsDestinationSettingsBurnInDestinationSettingsFontTypeDef,
    _OptionalClientUpdateChannelEncoderSettingsCaptionDescriptionsDestinationSettingsBurnInDestinationSettingsFontTypeDef,
):
    """
    Type definition for
    `ClientUpdateChannelEncoderSettingsCaptionDescriptionsDestinationSettingsBurnInDestinationSettings`
    `Font`

    - **PasswordParam** *(string) --* key used to extract the password from EC2 Parameter store

    - **Uri** *(string) --* **[REQUIRED]** Uniform Resource Identifier - This should be a path to a
    file accessible to the Live system (eg. a http:// URI) depending on the output type. For
    example, a RTMP destination should have a uri simliar to: "rtmp://fmsserver/live".

    - **Username** *(string) --* Documentation update needed
    """


_ClientUpdateChannelEncoderSettingsCaptionDescriptionsDestinationSettingsBurnInDestinationSettingsTypeDef = TypedDict(
    "_ClientUpdateChannelEncoderSettingsCaptionDescriptionsDestinationSettingsBurnInDestinationSettingsTypeDef",
    {
        "Alignment": str,
        "BackgroundColor": str,
        "BackgroundOpacity": int,
        "Font": ClientUpdateChannelEncoderSettingsCaptionDescriptionsDestinationSettingsBurnInDestinationSettingsFontTypeDef,
        "FontColor": str,
        "FontOpacity": int,
        "FontResolution": int,
        "FontSize": str,
        "OutlineColor": str,
        "OutlineSize": int,
        "ShadowColor": str,
        "ShadowOpacity": int,
        "ShadowXOffset": int,
        "ShadowYOffset": int,
        "TeletextGridControl": str,
        "XPosition": int,
        "YPosition": int,
    },
    total=False,
)


class ClientUpdateChannelEncoderSettingsCaptionDescriptionsDestinationSettingsBurnInDestinationSettingsTypeDef(
    _ClientUpdateChannelEncoderSettingsCaptionDescriptionsDestinationSettingsBurnInDestinationSettingsTypeDef
):
    """
    Type definition for `ClientUpdateChannelEncoderSettingsCaptionDescriptionsDestinationSettings`
    `BurnInDestinationSettings`

    - **Alignment** *(string) --* If no explicit xPosition or yPosition is provided, setting
    alignment to centered will place the captions at the bottom center of the output. Similarly,
    setting a left alignment will align captions to the bottom left of the output. If x and y
    positions are given in conjunction with the alignment parameter, the font will be justified
    (either left or centered) relative to those coordinates. Selecting "smart" justification will
    left-justify live subtitles and center-justify pre-recorded subtitles. All burn-in and DVB-Sub
    font settings must match.

    - **BackgroundColor** *(string) --* Specifies the color of the rectangle behind the captions.
    All burn-in and DVB-Sub font settings must match.

    - **BackgroundOpacity** *(integer) --* Specifies the opacity of the background rectangle. 255 is
    opaque; 0 is transparent. Leaving this parameter out is equivalent to setting it to 0
    (transparent). All burn-in and DVB-Sub font settings must match.

    - **Font** *(dict) --* External font file used for caption burn-in. File extension must be 'ttf'
    or 'tte'. Although the user can select output fonts for many different types of input captions,
    embedded, STL and teletext sources use a strict grid system. Using external fonts with these
    caption sources could cause unexpected display of proportional fonts. All burn-in and DVB-Sub
    font settings must match.

      - **PasswordParam** *(string) --* key used to extract the password from EC2 Parameter store

      - **Uri** *(string) --* **[REQUIRED]** Uniform Resource Identifier - This should be a path to
      a file accessible to the Live system (eg. a http:// URI) depending on the output type. For
      example, a RTMP destination should have a uri simliar to: "rtmp://fmsserver/live".

      - **Username** *(string) --* Documentation update needed

    - **FontColor** *(string) --* Specifies the color of the burned-in captions. This option is not
    valid for source captions that are STL, 608/embedded or teletext. These source settings are
    already pre-defined by the caption stream. All burn-in and DVB-Sub font settings must match.

    - **FontOpacity** *(integer) --* Specifies the opacity of the burned-in captions. 255 is opaque;
    0 is transparent. All burn-in and DVB-Sub font settings must match.

    - **FontResolution** *(integer) --* Font resolution in DPI (dots per inch); default is 96 dpi.
    All burn-in and DVB-Sub font settings must match.

    - **FontSize** *(string) --* When set to 'auto' fontSize will scale depending on the size of the
    output. Giving a positive integer will specify the exact font size in points. All burn-in and
    DVB-Sub font settings must match.

    - **OutlineColor** *(string) --* Specifies font outline color. This option is not valid for
    source captions that are either 608/embedded or teletext. These source settings are already
    pre-defined by the caption stream. All burn-in and DVB-Sub font settings must match.

    - **OutlineSize** *(integer) --* Specifies font outline size in pixels. This option is not valid
    for source captions that are either 608/embedded or teletext. These source settings are already
    pre-defined by the caption stream. All burn-in and DVB-Sub font settings must match.

    - **ShadowColor** *(string) --* Specifies the color of the shadow cast by the captions. All
    burn-in and DVB-Sub font settings must match.

    - **ShadowOpacity** *(integer) --* Specifies the opacity of the shadow. 255 is opaque; 0 is
    transparent. Leaving this parameter out is equivalent to setting it to 0 (transparent). All
    burn-in and DVB-Sub font settings must match.

    - **ShadowXOffset** *(integer) --* Specifies the horizontal offset of the shadow relative to the
    captions in pixels. A value of -2 would result in a shadow offset 2 pixels to the left. All
    burn-in and DVB-Sub font settings must match.

    - **ShadowYOffset** *(integer) --* Specifies the vertical offset of the shadow relative to the
    captions in pixels. A value of -2 would result in a shadow offset 2 pixels above the text. All
    burn-in and DVB-Sub font settings must match.

    - **TeletextGridControl** *(string) --* Controls whether a fixed grid size will be used to
    generate the output subtitles bitmap. Only applicable for Teletext inputs and DVB-Sub/Burn-in
    outputs.

    - **XPosition** *(integer) --* Specifies the horizontal position of the caption relative to the
    left side of the output in pixels. A value of 10 would result in the captions starting 10 pixels
    from the left of the output. If no explicit xPosition is provided, the horizontal caption
    position will be determined by the alignment parameter. All burn-in and DVB-Sub font settings
    must match.

    - **YPosition** *(integer) --* Specifies the vertical position of the caption relative to the
    top of the output in pixels. A value of 10 would result in the captions starting 10 pixels from
    the top of the output. If no explicit yPosition is provided, the caption will be positioned
    towards the bottom of the output. All burn-in and DVB-Sub font settings must match.
    """


_RequiredClientUpdateChannelEncoderSettingsCaptionDescriptionsDestinationSettingsDvbSubDestinationSettingsFontTypeDef = TypedDict(
    "_RequiredClientUpdateChannelEncoderSettingsCaptionDescriptionsDestinationSettingsDvbSubDestinationSettingsFontTypeDef",
    {"Uri": str},
)
_OptionalClientUpdateChannelEncoderSettingsCaptionDescriptionsDestinationSettingsDvbSubDestinationSettingsFontTypeDef = TypedDict(
    "_OptionalClientUpdateChannelEncoderSettingsCaptionDescriptionsDestinationSettingsDvbSubDestinationSettingsFontTypeDef",
    {"PasswordParam": str, "Username": str},
    total=False,
)


class ClientUpdateChannelEncoderSettingsCaptionDescriptionsDestinationSettingsDvbSubDestinationSettingsFontTypeDef(
    _RequiredClientUpdateChannelEncoderSettingsCaptionDescriptionsDestinationSettingsDvbSubDestinationSettingsFontTypeDef,
    _OptionalClientUpdateChannelEncoderSettingsCaptionDescriptionsDestinationSettingsDvbSubDestinationSettingsFontTypeDef,
):
    """
    Type definition for
    `ClientUpdateChannelEncoderSettingsCaptionDescriptionsDestinationSettingsDvbSubDestinationSettings`
    `Font`

    - **PasswordParam** *(string) --* key used to extract the password from EC2 Parameter store

    - **Uri** *(string) --* **[REQUIRED]** Uniform Resource Identifier - This should be a path to a
    file accessible to the Live system (eg. a http:// URI) depending on the output type. For
    example, a RTMP destination should have a uri simliar to: "rtmp://fmsserver/live".

    - **Username** *(string) --* Documentation update needed
    """


_ClientUpdateChannelEncoderSettingsCaptionDescriptionsDestinationSettingsDvbSubDestinationSettingsTypeDef = TypedDict(
    "_ClientUpdateChannelEncoderSettingsCaptionDescriptionsDestinationSettingsDvbSubDestinationSettingsTypeDef",
    {
        "Alignment": str,
        "BackgroundColor": str,
        "BackgroundOpacity": int,
        "Font": ClientUpdateChannelEncoderSettingsCaptionDescriptionsDestinationSettingsDvbSubDestinationSettingsFontTypeDef,
        "FontColor": str,
        "FontOpacity": int,
        "FontResolution": int,
        "FontSize": str,
        "OutlineColor": str,
        "OutlineSize": int,
        "ShadowColor": str,
        "ShadowOpacity": int,
        "ShadowXOffset": int,
        "ShadowYOffset": int,
        "TeletextGridControl": str,
        "XPosition": int,
        "YPosition": int,
    },
    total=False,
)


class ClientUpdateChannelEncoderSettingsCaptionDescriptionsDestinationSettingsDvbSubDestinationSettingsTypeDef(
    _ClientUpdateChannelEncoderSettingsCaptionDescriptionsDestinationSettingsDvbSubDestinationSettingsTypeDef
):
    """
    Type definition for `ClientUpdateChannelEncoderSettingsCaptionDescriptionsDestinationSettings`
    `DvbSubDestinationSettings`

    - **Alignment** *(string) --* If no explicit xPosition or yPosition is provided, setting
    alignment to centered will place the captions at the bottom center of the output. Similarly,
    setting a left alignment will align captions to the bottom left of the output. If x and y
    positions are given in conjunction with the alignment parameter, the font will be justified
    (either left or centered) relative to those coordinates. Selecting "smart" justification will
    left-justify live subtitles and center-justify pre-recorded subtitles. This option is not valid
    for source captions that are STL or 608/embedded. These source settings are already pre-defined
    by the caption stream. All burn-in and DVB-Sub font settings must match.

    - **BackgroundColor** *(string) --* Specifies the color of the rectangle behind the captions.
    All burn-in and DVB-Sub font settings must match.

    - **BackgroundOpacity** *(integer) --* Specifies the opacity of the background rectangle. 255 is
    opaque; 0 is transparent. Leaving this parameter blank is equivalent to setting it to 0
    (transparent). All burn-in and DVB-Sub font settings must match.

    - **Font** *(dict) --* External font file used for caption burn-in. File extension must be 'ttf'
    or 'tte'. Although the user can select output fonts for many different types of input captions,
    embedded, STL and teletext sources use a strict grid system. Using external fonts with these
    caption sources could cause unexpected display of proportional fonts. All burn-in and DVB-Sub
    font settings must match.

      - **PasswordParam** *(string) --* key used to extract the password from EC2 Parameter store

      - **Uri** *(string) --* **[REQUIRED]** Uniform Resource Identifier - This should be a path to
      a file accessible to the Live system (eg. a http:// URI) depending on the output type. For
      example, a RTMP destination should have a uri simliar to: "rtmp://fmsserver/live".

      - **Username** *(string) --* Documentation update needed

    - **FontColor** *(string) --* Specifies the color of the burned-in captions. This option is not
    valid for source captions that are STL, 608/embedded or teletext. These source settings are
    already pre-defined by the caption stream. All burn-in and DVB-Sub font settings must match.

    - **FontOpacity** *(integer) --* Specifies the opacity of the burned-in captions. 255 is opaque;
    0 is transparent. All burn-in and DVB-Sub font settings must match.

    - **FontResolution** *(integer) --* Font resolution in DPI (dots per inch); default is 96 dpi.
    All burn-in and DVB-Sub font settings must match.

    - **FontSize** *(string) --* When set to auto fontSize will scale depending on the size of the
    output. Giving a positive integer will specify the exact font size in points. All burn-in and
    DVB-Sub font settings must match.

    - **OutlineColor** *(string) --* Specifies font outline color. This option is not valid for
    source captions that are either 608/embedded or teletext. These source settings are already
    pre-defined by the caption stream. All burn-in and DVB-Sub font settings must match.

    - **OutlineSize** *(integer) --* Specifies font outline size in pixels. This option is not valid
    for source captions that are either 608/embedded or teletext. These source settings are already
    pre-defined by the caption stream. All burn-in and DVB-Sub font settings must match.

    - **ShadowColor** *(string) --* Specifies the color of the shadow cast by the captions. All
    burn-in and DVB-Sub font settings must match.

    - **ShadowOpacity** *(integer) --* Specifies the opacity of the shadow. 255 is opaque; 0 is
    transparent. Leaving this parameter blank is equivalent to setting it to 0 (transparent). All
    burn-in and DVB-Sub font settings must match.

    - **ShadowXOffset** *(integer) --* Specifies the horizontal offset of the shadow relative to the
    captions in pixels. A value of -2 would result in a shadow offset 2 pixels to the left. All
    burn-in and DVB-Sub font settings must match.

    - **ShadowYOffset** *(integer) --* Specifies the vertical offset of the shadow relative to the
    captions in pixels. A value of -2 would result in a shadow offset 2 pixels above the text. All
    burn-in and DVB-Sub font settings must match.

    - **TeletextGridControl** *(string) --* Controls whether a fixed grid size will be used to
    generate the output subtitles bitmap. Only applicable for Teletext inputs and DVB-Sub/Burn-in
    outputs.

    - **XPosition** *(integer) --* Specifies the horizontal position of the caption relative to the
    left side of the output in pixels. A value of 10 would result in the captions starting 10 pixels
    from the left of the output. If no explicit xPosition is provided, the horizontal caption
    position will be determined by the alignment parameter. This option is not valid for source
    captions that are STL, 608/embedded or teletext. These source settings are already pre-defined
    by the caption stream. All burn-in and DVB-Sub font settings must match.

    - **YPosition** *(integer) --* Specifies the vertical position of the caption relative to the
    top of the output in pixels. A value of 10 would result in the captions starting 10 pixels from
    the top of the output. If no explicit yPosition is provided, the caption will be positioned
    towards the bottom of the output. This option is not valid for source captions that are STL,
    608/embedded or teletext. These source settings are already pre-defined by the caption stream.
    All burn-in and DVB-Sub font settings must match.
    """


_ClientUpdateChannelEncoderSettingsCaptionDescriptionsDestinationSettingsTtmlDestinationSettingsTypeDef = TypedDict(
    "_ClientUpdateChannelEncoderSettingsCaptionDescriptionsDestinationSettingsTtmlDestinationSettingsTypeDef",
    {"StyleControl": str},
    total=False,
)


class ClientUpdateChannelEncoderSettingsCaptionDescriptionsDestinationSettingsTtmlDestinationSettingsTypeDef(
    _ClientUpdateChannelEncoderSettingsCaptionDescriptionsDestinationSettingsTtmlDestinationSettingsTypeDef
):
    """
    Type definition for `ClientUpdateChannelEncoderSettingsCaptionDescriptionsDestinationSettings`
    `TtmlDestinationSettings`

    - **StyleControl** *(string) --* When set to passthrough, passes through style and position
    information from a TTML-like input source (TTML, SMPTE-TT, CFF-TT) to the CFF-TT output or TTML
    output.
    """


_ClientUpdateChannelEncoderSettingsCaptionDescriptionsDestinationSettingsTypeDef = TypedDict(
    "_ClientUpdateChannelEncoderSettingsCaptionDescriptionsDestinationSettingsTypeDef",
    {
        "AribDestinationSettings": Dict,
        "BurnInDestinationSettings": ClientUpdateChannelEncoderSettingsCaptionDescriptionsDestinationSettingsBurnInDestinationSettingsTypeDef,
        "DvbSubDestinationSettings": ClientUpdateChannelEncoderSettingsCaptionDescriptionsDestinationSettingsDvbSubDestinationSettingsTypeDef,
        "EmbeddedDestinationSettings": Dict,
        "EmbeddedPlusScte20DestinationSettings": Dict,
        "RtmpCaptionInfoDestinationSettings": Dict,
        "Scte20PlusEmbeddedDestinationSettings": Dict,
        "Scte27DestinationSettings": Dict,
        "SmpteTtDestinationSettings": Dict,
        "TeletextDestinationSettings": Dict,
        "TtmlDestinationSettings": ClientUpdateChannelEncoderSettingsCaptionDescriptionsDestinationSettingsTtmlDestinationSettingsTypeDef,
        "WebvttDestinationSettings": Dict[str, Any],
    },
    total=False,
)


class ClientUpdateChannelEncoderSettingsCaptionDescriptionsDestinationSettingsTypeDef(
    _ClientUpdateChannelEncoderSettingsCaptionDescriptionsDestinationSettingsTypeDef
):
    """
    Type definition for `ClientUpdateChannelEncoderSettingsCaptionDescriptions`
    `DestinationSettings`

    - **AribDestinationSettings** *(dict) --* Arib Destination Settings

    - **BurnInDestinationSettings** *(dict) --* Burn In Destination Settings

      - **Alignment** *(string) --* If no explicit xPosition or yPosition is provided, setting
      alignment to centered will place the captions at the bottom center of the output. Similarly,
      setting a left alignment will align captions to the bottom left of the output. If x and y
      positions are given in conjunction with the alignment parameter, the font will be justified
      (either left or centered) relative to those coordinates. Selecting "smart" justification will
      left-justify live subtitles and center-justify pre-recorded subtitles. All burn-in and DVB-Sub
      font settings must match.

      - **BackgroundColor** *(string) --* Specifies the color of the rectangle behind the captions.
      All burn-in and DVB-Sub font settings must match.

      - **BackgroundOpacity** *(integer) --* Specifies the opacity of the background rectangle. 255
      is opaque; 0 is transparent. Leaving this parameter out is equivalent to setting it to 0
      (transparent). All burn-in and DVB-Sub font settings must match.

      - **Font** *(dict) --* External font file used for caption burn-in. File extension must be
      'ttf' or 'tte'. Although the user can select output fonts for many different types of input
      captions, embedded, STL and teletext sources use a strict grid system. Using external fonts
      with these caption sources could cause unexpected display of proportional fonts. All burn-in
      and DVB-Sub font settings must match.

        - **PasswordParam** *(string) --* key used to extract the password from EC2 Parameter store

        - **Uri** *(string) --* **[REQUIRED]** Uniform Resource Identifier - This should be a path
        to a file accessible to the Live system (eg. a http:// URI) depending on the output type.
        For example, a RTMP destination should have a uri simliar to: "rtmp://fmsserver/live".

        - **Username** *(string) --* Documentation update needed

      - **FontColor** *(string) --* Specifies the color of the burned-in captions. This option is
      not valid for source captions that are STL, 608/embedded or teletext. These source settings
      are already pre-defined by the caption stream. All burn-in and DVB-Sub font settings must
      match.

      - **FontOpacity** *(integer) --* Specifies the opacity of the burned-in captions. 255 is
      opaque; 0 is transparent. All burn-in and DVB-Sub font settings must match.

      - **FontResolution** *(integer) --* Font resolution in DPI (dots per inch); default is 96 dpi.
      All burn-in and DVB-Sub font settings must match.

      - **FontSize** *(string) --* When set to 'auto' fontSize will scale depending on the size of
      the output. Giving a positive integer will specify the exact font size in points. All burn-in
      and DVB-Sub font settings must match.

      - **OutlineColor** *(string) --* Specifies font outline color. This option is not valid for
      source captions that are either 608/embedded or teletext. These source settings are already
      pre-defined by the caption stream. All burn-in and DVB-Sub font settings must match.

      - **OutlineSize** *(integer) --* Specifies font outline size in pixels. This option is not
      valid for source captions that are either 608/embedded or teletext. These source settings are
      already pre-defined by the caption stream. All burn-in and DVB-Sub font settings must match.

      - **ShadowColor** *(string) --* Specifies the color of the shadow cast by the captions. All
      burn-in and DVB-Sub font settings must match.

      - **ShadowOpacity** *(integer) --* Specifies the opacity of the shadow. 255 is opaque; 0 is
      transparent. Leaving this parameter out is equivalent to setting it to 0 (transparent). All
      burn-in and DVB-Sub font settings must match.

      - **ShadowXOffset** *(integer) --* Specifies the horizontal offset of the shadow relative to
      the captions in pixels. A value of -2 would result in a shadow offset 2 pixels to the left.
      All burn-in and DVB-Sub font settings must match.

      - **ShadowYOffset** *(integer) --* Specifies the vertical offset of the shadow relative to the
      captions in pixels. A value of -2 would result in a shadow offset 2 pixels above the text. All
      burn-in and DVB-Sub font settings must match.

      - **TeletextGridControl** *(string) --* Controls whether a fixed grid size will be used to
      generate the output subtitles bitmap. Only applicable for Teletext inputs and DVB-Sub/Burn-in
      outputs.

      - **XPosition** *(integer) --* Specifies the horizontal position of the caption relative to
      the left side of the output in pixels. A value of 10 would result in the captions starting 10
      pixels from the left of the output. If no explicit xPosition is provided, the horizontal
      caption position will be determined by the alignment parameter. All burn-in and DVB-Sub font
      settings must match.

      - **YPosition** *(integer) --* Specifies the vertical position of the caption relative to the
      top of the output in pixels. A value of 10 would result in the captions starting 10 pixels
      from the top of the output. If no explicit yPosition is provided, the caption will be
      positioned towards the bottom of the output. All burn-in and DVB-Sub font settings must match.

    - **DvbSubDestinationSettings** *(dict) --* Dvb Sub Destination Settings

      - **Alignment** *(string) --* If no explicit xPosition or yPosition is provided, setting
      alignment to centered will place the captions at the bottom center of the output. Similarly,
      setting a left alignment will align captions to the bottom left of the output. If x and y
      positions are given in conjunction with the alignment parameter, the font will be justified
      (either left or centered) relative to those coordinates. Selecting "smart" justification will
      left-justify live subtitles and center-justify pre-recorded subtitles. This option is not
      valid for source captions that are STL or 608/embedded. These source settings are already
      pre-defined by the caption stream. All burn-in and DVB-Sub font settings must match.

      - **BackgroundColor** *(string) --* Specifies the color of the rectangle behind the captions.
      All burn-in and DVB-Sub font settings must match.

      - **BackgroundOpacity** *(integer) --* Specifies the opacity of the background rectangle. 255
      is opaque; 0 is transparent. Leaving this parameter blank is equivalent to setting it to 0
      (transparent). All burn-in and DVB-Sub font settings must match.

      - **Font** *(dict) --* External font file used for caption burn-in. File extension must be
      'ttf' or 'tte'. Although the user can select output fonts for many different types of input
      captions, embedded, STL and teletext sources use a strict grid system. Using external fonts
      with these caption sources could cause unexpected display of proportional fonts. All burn-in
      and DVB-Sub font settings must match.

        - **PasswordParam** *(string) --* key used to extract the password from EC2 Parameter store

        - **Uri** *(string) --* **[REQUIRED]** Uniform Resource Identifier - This should be a path
        to a file accessible to the Live system (eg. a http:// URI) depending on the output type.
        For example, a RTMP destination should have a uri simliar to: "rtmp://fmsserver/live".

        - **Username** *(string) --* Documentation update needed

      - **FontColor** *(string) --* Specifies the color of the burned-in captions. This option is
      not valid for source captions that are STL, 608/embedded or teletext. These source settings
      are already pre-defined by the caption stream. All burn-in and DVB-Sub font settings must
      match.

      - **FontOpacity** *(integer) --* Specifies the opacity of the burned-in captions. 255 is
      opaque; 0 is transparent. All burn-in and DVB-Sub font settings must match.

      - **FontResolution** *(integer) --* Font resolution in DPI (dots per inch); default is 96 dpi.
      All burn-in and DVB-Sub font settings must match.

      - **FontSize** *(string) --* When set to auto fontSize will scale depending on the size of the
      output. Giving a positive integer will specify the exact font size in points. All burn-in and
      DVB-Sub font settings must match.

      - **OutlineColor** *(string) --* Specifies font outline color. This option is not valid for
      source captions that are either 608/embedded or teletext. These source settings are already
      pre-defined by the caption stream. All burn-in and DVB-Sub font settings must match.

      - **OutlineSize** *(integer) --* Specifies font outline size in pixels. This option is not
      valid for source captions that are either 608/embedded or teletext. These source settings are
      already pre-defined by the caption stream. All burn-in and DVB-Sub font settings must match.

      - **ShadowColor** *(string) --* Specifies the color of the shadow cast by the captions. All
      burn-in and DVB-Sub font settings must match.

      - **ShadowOpacity** *(integer) --* Specifies the opacity of the shadow. 255 is opaque; 0 is
      transparent. Leaving this parameter blank is equivalent to setting it to 0 (transparent). All
      burn-in and DVB-Sub font settings must match.

      - **ShadowXOffset** *(integer) --* Specifies the horizontal offset of the shadow relative to
      the captions in pixels. A value of -2 would result in a shadow offset 2 pixels to the left.
      All burn-in and DVB-Sub font settings must match.

      - **ShadowYOffset** *(integer) --* Specifies the vertical offset of the shadow relative to the
      captions in pixels. A value of -2 would result in a shadow offset 2 pixels above the text. All
      burn-in and DVB-Sub font settings must match.

      - **TeletextGridControl** *(string) --* Controls whether a fixed grid size will be used to
      generate the output subtitles bitmap. Only applicable for Teletext inputs and DVB-Sub/Burn-in
      outputs.

      - **XPosition** *(integer) --* Specifies the horizontal position of the caption relative to
      the left side of the output in pixels. A value of 10 would result in the captions starting 10
      pixels from the left of the output. If no explicit xPosition is provided, the horizontal
      caption position will be determined by the alignment parameter. This option is not valid for
      source captions that are STL, 608/embedded or teletext. These source settings are already
      pre-defined by the caption stream. All burn-in and DVB-Sub font settings must match.

      - **YPosition** *(integer) --* Specifies the vertical position of the caption relative to the
      top of the output in pixels. A value of 10 would result in the captions starting 10 pixels
      from the top of the output. If no explicit yPosition is provided, the caption will be
      positioned towards the bottom of the output. This option is not valid for source captions that
      are STL, 608/embedded or teletext. These source settings are already pre-defined by the
      caption stream. All burn-in and DVB-Sub font settings must match.

    - **EmbeddedDestinationSettings** *(dict) --* Embedded Destination Settings

    - **EmbeddedPlusScte20DestinationSettings** *(dict) --* Embedded Plus Scte20 Destination
    Settings

    - **RtmpCaptionInfoDestinationSettings** *(dict) --* Rtmp Caption Info Destination Settings

    - **Scte20PlusEmbeddedDestinationSettings** *(dict) --* Scte20 Plus Embedded Destination
    Settings

    - **Scte27DestinationSettings** *(dict) --* Scte27 Destination Settings

    - **SmpteTtDestinationSettings** *(dict) --* Smpte Tt Destination Settings

    - **TeletextDestinationSettings** *(dict) --* Teletext Destination Settings

    - **TtmlDestinationSettings** *(dict) --* Ttml Destination Settings

      - **StyleControl** *(string) --* When set to passthrough, passes through style and position
      information from a TTML-like input source (TTML, SMPTE-TT, CFF-TT) to the CFF-TT output or
      TTML output.

    - **WebvttDestinationSettings** *(dict) --* Webvtt Destination Settings
    """


_RequiredClientUpdateChannelEncoderSettingsCaptionDescriptionsTypeDef = TypedDict(
    "_RequiredClientUpdateChannelEncoderSettingsCaptionDescriptionsTypeDef",
    {"CaptionSelectorName": str, "Name": str},
)
_OptionalClientUpdateChannelEncoderSettingsCaptionDescriptionsTypeDef = TypedDict(
    "_OptionalClientUpdateChannelEncoderSettingsCaptionDescriptionsTypeDef",
    {
        "DestinationSettings": ClientUpdateChannelEncoderSettingsCaptionDescriptionsDestinationSettingsTypeDef,
        "LanguageCode": str,
        "LanguageDescription": str,
    },
    total=False,
)


class ClientUpdateChannelEncoderSettingsCaptionDescriptionsTypeDef(
    _RequiredClientUpdateChannelEncoderSettingsCaptionDescriptionsTypeDef,
    _OptionalClientUpdateChannelEncoderSettingsCaptionDescriptionsTypeDef,
):
    """
    Type definition for `ClientUpdateChannelEncoderSettings` `CaptionDescriptions`

    - **CaptionSelectorName** *(string) --* **[REQUIRED]** Specifies which input caption selector to
    use as a caption source when generating output captions. This field should match a
    captionSelector name.

    - **DestinationSettings** *(dict) --* Additional settings for captions destination that depend
    on the destination type.

      - **AribDestinationSettings** *(dict) --* Arib Destination Settings

      - **BurnInDestinationSettings** *(dict) --* Burn In Destination Settings

        - **Alignment** *(string) --* If no explicit xPosition or yPosition is provided, setting
        alignment to centered will place the captions at the bottom center of the output. Similarly,
        setting a left alignment will align captions to the bottom left of the output. If x and y
        positions are given in conjunction with the alignment parameter, the font will be justified
        (either left or centered) relative to those coordinates. Selecting "smart" justification
        will left-justify live subtitles and center-justify pre-recorded subtitles. All burn-in and
        DVB-Sub font settings must match.

        - **BackgroundColor** *(string) --* Specifies the color of the rectangle behind the
        captions. All burn-in and DVB-Sub font settings must match.

        - **BackgroundOpacity** *(integer) --* Specifies the opacity of the background rectangle.
        255 is opaque; 0 is transparent. Leaving this parameter out is equivalent to setting it to 0
        (transparent). All burn-in and DVB-Sub font settings must match.

        - **Font** *(dict) --* External font file used for caption burn-in. File extension must be
        'ttf' or 'tte'. Although the user can select output fonts for many different types of input
        captions, embedded, STL and teletext sources use a strict grid system. Using external fonts
        with these caption sources could cause unexpected display of proportional fonts. All burn-in
        and DVB-Sub font settings must match.

          - **PasswordParam** *(string) --* key used to extract the password from EC2 Parameter
          store

          - **Uri** *(string) --* **[REQUIRED]** Uniform Resource Identifier - This should be a path
          to a file accessible to the Live system (eg. a http:// URI) depending on the output type.
          For example, a RTMP destination should have a uri simliar to: "rtmp://fmsserver/live".

          - **Username** *(string) --* Documentation update needed

        - **FontColor** *(string) --* Specifies the color of the burned-in captions. This option is
        not valid for source captions that are STL, 608/embedded or teletext. These source settings
        are already pre-defined by the caption stream. All burn-in and DVB-Sub font settings must
        match.

        - **FontOpacity** *(integer) --* Specifies the opacity of the burned-in captions. 255 is
        opaque; 0 is transparent. All burn-in and DVB-Sub font settings must match.

        - **FontResolution** *(integer) --* Font resolution in DPI (dots per inch); default is 96
        dpi. All burn-in and DVB-Sub font settings must match.

        - **FontSize** *(string) --* When set to 'auto' fontSize will scale depending on the size of
        the output. Giving a positive integer will specify the exact font size in points. All
        burn-in and DVB-Sub font settings must match.

        - **OutlineColor** *(string) --* Specifies font outline color. This option is not valid for
        source captions that are either 608/embedded or teletext. These source settings are already
        pre-defined by the caption stream. All burn-in and DVB-Sub font settings must match.

        - **OutlineSize** *(integer) --* Specifies font outline size in pixels. This option is not
        valid for source captions that are either 608/embedded or teletext. These source settings
        are already pre-defined by the caption stream. All burn-in and DVB-Sub font settings must
        match.

        - **ShadowColor** *(string) --* Specifies the color of the shadow cast by the captions. All
        burn-in and DVB-Sub font settings must match.

        - **ShadowOpacity** *(integer) --* Specifies the opacity of the shadow. 255 is opaque; 0 is
        transparent. Leaving this parameter out is equivalent to setting it to 0 (transparent). All
        burn-in and DVB-Sub font settings must match.

        - **ShadowXOffset** *(integer) --* Specifies the horizontal offset of the shadow relative to
        the captions in pixels. A value of -2 would result in a shadow offset 2 pixels to the left.
        All burn-in and DVB-Sub font settings must match.

        - **ShadowYOffset** *(integer) --* Specifies the vertical offset of the shadow relative to
        the captions in pixels. A value of -2 would result in a shadow offset 2 pixels above the
        text. All burn-in and DVB-Sub font settings must match.

        - **TeletextGridControl** *(string) --* Controls whether a fixed grid size will be used to
        generate the output subtitles bitmap. Only applicable for Teletext inputs and
        DVB-Sub/Burn-in outputs.

        - **XPosition** *(integer) --* Specifies the horizontal position of the caption relative to
        the left side of the output in pixels. A value of 10 would result in the captions starting
        10 pixels from the left of the output. If no explicit xPosition is provided, the horizontal
        caption position will be determined by the alignment parameter. All burn-in and DVB-Sub font
        settings must match.

        - **YPosition** *(integer) --* Specifies the vertical position of the caption relative to
        the top of the output in pixels. A value of 10 would result in the captions starting 10
        pixels from the top of the output. If no explicit yPosition is provided, the caption will be
        positioned towards the bottom of the output. All burn-in and DVB-Sub font settings must
        match.

      - **DvbSubDestinationSettings** *(dict) --* Dvb Sub Destination Settings

        - **Alignment** *(string) --* If no explicit xPosition or yPosition is provided, setting
        alignment to centered will place the captions at the bottom center of the output. Similarly,
        setting a left alignment will align captions to the bottom left of the output. If x and y
        positions are given in conjunction with the alignment parameter, the font will be justified
        (either left or centered) relative to those coordinates. Selecting "smart" justification
        will left-justify live subtitles and center-justify pre-recorded subtitles. This option is
        not valid for source captions that are STL or 608/embedded. These source settings are
        already pre-defined by the caption stream. All burn-in and DVB-Sub font settings must match.

        - **BackgroundColor** *(string) --* Specifies the color of the rectangle behind the
        captions. All burn-in and DVB-Sub font settings must match.

        - **BackgroundOpacity** *(integer) --* Specifies the opacity of the background rectangle.
        255 is opaque; 0 is transparent. Leaving this parameter blank is equivalent to setting it to
        0 (transparent). All burn-in and DVB-Sub font settings must match.

        - **Font** *(dict) --* External font file used for caption burn-in. File extension must be
        'ttf' or 'tte'. Although the user can select output fonts for many different types of input
        captions, embedded, STL and teletext sources use a strict grid system. Using external fonts
        with these caption sources could cause unexpected display of proportional fonts. All burn-in
        and DVB-Sub font settings must match.

          - **PasswordParam** *(string) --* key used to extract the password from EC2 Parameter
          store

          - **Uri** *(string) --* **[REQUIRED]** Uniform Resource Identifier - This should be a path
          to a file accessible to the Live system (eg. a http:// URI) depending on the output type.
          For example, a RTMP destination should have a uri simliar to: "rtmp://fmsserver/live".

          - **Username** *(string) --* Documentation update needed

        - **FontColor** *(string) --* Specifies the color of the burned-in captions. This option is
        not valid for source captions that are STL, 608/embedded or teletext. These source settings
        are already pre-defined by the caption stream. All burn-in and DVB-Sub font settings must
        match.

        - **FontOpacity** *(integer) --* Specifies the opacity of the burned-in captions. 255 is
        opaque; 0 is transparent. All burn-in and DVB-Sub font settings must match.

        - **FontResolution** *(integer) --* Font resolution in DPI (dots per inch); default is 96
        dpi. All burn-in and DVB-Sub font settings must match.

        - **FontSize** *(string) --* When set to auto fontSize will scale depending on the size of
        the output. Giving a positive integer will specify the exact font size in points. All
        burn-in and DVB-Sub font settings must match.

        - **OutlineColor** *(string) --* Specifies font outline color. This option is not valid for
        source captions that are either 608/embedded or teletext. These source settings are already
        pre-defined by the caption stream. All burn-in and DVB-Sub font settings must match.

        - **OutlineSize** *(integer) --* Specifies font outline size in pixels. This option is not
        valid for source captions that are either 608/embedded or teletext. These source settings
        are already pre-defined by the caption stream. All burn-in and DVB-Sub font settings must
        match.

        - **ShadowColor** *(string) --* Specifies the color of the shadow cast by the captions. All
        burn-in and DVB-Sub font settings must match.

        - **ShadowOpacity** *(integer) --* Specifies the opacity of the shadow. 255 is opaque; 0 is
        transparent. Leaving this parameter blank is equivalent to setting it to 0 (transparent).
        All burn-in and DVB-Sub font settings must match.

        - **ShadowXOffset** *(integer) --* Specifies the horizontal offset of the shadow relative to
        the captions in pixels. A value of -2 would result in a shadow offset 2 pixels to the left.
        All burn-in and DVB-Sub font settings must match.

        - **ShadowYOffset** *(integer) --* Specifies the vertical offset of the shadow relative to
        the captions in pixels. A value of -2 would result in a shadow offset 2 pixels above the
        text. All burn-in and DVB-Sub font settings must match.

        - **TeletextGridControl** *(string) --* Controls whether a fixed grid size will be used to
        generate the output subtitles bitmap. Only applicable for Teletext inputs and
        DVB-Sub/Burn-in outputs.

        - **XPosition** *(integer) --* Specifies the horizontal position of the caption relative to
        the left side of the output in pixels. A value of 10 would result in the captions starting
        10 pixels from the left of the output. If no explicit xPosition is provided, the horizontal
        caption position will be determined by the alignment parameter. This option is not valid for
        source captions that are STL, 608/embedded or teletext. These source settings are already
        pre-defined by the caption stream. All burn-in and DVB-Sub font settings must match.

        - **YPosition** *(integer) --* Specifies the vertical position of the caption relative to
        the top of the output in pixels. A value of 10 would result in the captions starting 10
        pixels from the top of the output. If no explicit yPosition is provided, the caption will be
        positioned towards the bottom of the output. This option is not valid for source captions
        that are STL, 608/embedded or teletext. These source settings are already pre-defined by the
        caption stream. All burn-in and DVB-Sub font settings must match.

      - **EmbeddedDestinationSettings** *(dict) --* Embedded Destination Settings

      - **EmbeddedPlusScte20DestinationSettings** *(dict) --* Embedded Plus Scte20 Destination
      Settings

      - **RtmpCaptionInfoDestinationSettings** *(dict) --* Rtmp Caption Info Destination Settings

      - **Scte20PlusEmbeddedDestinationSettings** *(dict) --* Scte20 Plus Embedded Destination
      Settings

      - **Scte27DestinationSettings** *(dict) --* Scte27 Destination Settings

      - **SmpteTtDestinationSettings** *(dict) --* Smpte Tt Destination Settings

      - **TeletextDestinationSettings** *(dict) --* Teletext Destination Settings

      - **TtmlDestinationSettings** *(dict) --* Ttml Destination Settings

        - **StyleControl** *(string) --* When set to passthrough, passes through style and position
        information from a TTML-like input source (TTML, SMPTE-TT, CFF-TT) to the CFF-TT output or
        TTML output.

      - **WebvttDestinationSettings** *(dict) --* Webvtt Destination Settings

    - **LanguageCode** *(string) --* ISO 639-2 three-digit code:
    http://www.loc.gov/standards/iso639-2/

    - **LanguageDescription** *(string) --* Human readable information to indicate captions
    available for players (eg. English, or Spanish).

    - **Name** *(string) --* **[REQUIRED]** Name of the caption description. Used to associate a
    caption description with an output. Names must be unique within an event.
    """


_RequiredClientUpdateChannelEncoderSettingsGlobalConfigurationInputLossBehaviorInputLossImageSlateTypeDef = TypedDict(
    "_RequiredClientUpdateChannelEncoderSettingsGlobalConfigurationInputLossBehaviorInputLossImageSlateTypeDef",
    {"Uri": str},
)
_OptionalClientUpdateChannelEncoderSettingsGlobalConfigurationInputLossBehaviorInputLossImageSlateTypeDef = TypedDict(
    "_OptionalClientUpdateChannelEncoderSettingsGlobalConfigurationInputLossBehaviorInputLossImageSlateTypeDef",
    {"PasswordParam": str, "Username": str},
    total=False,
)


class ClientUpdateChannelEncoderSettingsGlobalConfigurationInputLossBehaviorInputLossImageSlateTypeDef(
    _RequiredClientUpdateChannelEncoderSettingsGlobalConfigurationInputLossBehaviorInputLossImageSlateTypeDef,
    _OptionalClientUpdateChannelEncoderSettingsGlobalConfigurationInputLossBehaviorInputLossImageSlateTypeDef,
):
    """
    Type definition for `ClientUpdateChannelEncoderSettingsGlobalConfigurationInputLossBehavior`
    `InputLossImageSlate`

    - **PasswordParam** *(string) --* key used to extract the password from EC2 Parameter store

    - **Uri** *(string) --* **[REQUIRED]** Uniform Resource Identifier - This should be a path to a
    file accessible to the Live system (eg. a http:// URI) depending on the output type. For
    example, a RTMP destination should have a uri simliar to: "rtmp://fmsserver/live".

    - **Username** *(string) --* Documentation update needed
    """


_ClientUpdateChannelEncoderSettingsGlobalConfigurationInputLossBehaviorTypeDef = TypedDict(
    "_ClientUpdateChannelEncoderSettingsGlobalConfigurationInputLossBehaviorTypeDef",
    {
        "BlackFrameMsec": int,
        "InputLossImageColor": str,
        "InputLossImageSlate": ClientUpdateChannelEncoderSettingsGlobalConfigurationInputLossBehaviorInputLossImageSlateTypeDef,
        "InputLossImageType": str,
        "RepeatFrameMsec": int,
    },
    total=False,
)


class ClientUpdateChannelEncoderSettingsGlobalConfigurationInputLossBehaviorTypeDef(
    _ClientUpdateChannelEncoderSettingsGlobalConfigurationInputLossBehaviorTypeDef
):
    """
    Type definition for `ClientUpdateChannelEncoderSettingsGlobalConfiguration` `InputLossBehavior`

    - **BlackFrameMsec** *(integer) --* Documentation update needed

    - **InputLossImageColor** *(string) --* When input loss image type is "color" this field
    specifies the color to use. Value: 6 hex characters representing the values of RGB.

    - **InputLossImageSlate** *(dict) --* When input loss image type is "slate" these fields specify
    the parameters for accessing the slate.

      - **PasswordParam** *(string) --* key used to extract the password from EC2 Parameter store

      - **Uri** *(string) --* **[REQUIRED]** Uniform Resource Identifier - This should be a path to
      a file accessible to the Live system (eg. a http:// URI) depending on the output type. For
      example, a RTMP destination should have a uri simliar to: "rtmp://fmsserver/live".

      - **Username** *(string) --* Documentation update needed

    - **InputLossImageType** *(string) --* Indicates whether to substitute a solid color or a slate
    into the output after input loss exceeds blackFrameMsec.

    - **RepeatFrameMsec** *(integer) --* Documentation update needed
    """


_ClientUpdateChannelEncoderSettingsGlobalConfigurationTypeDef = TypedDict(
    "_ClientUpdateChannelEncoderSettingsGlobalConfigurationTypeDef",
    {
        "InitialAudioGain": int,
        "InputEndAction": str,
        "InputLossBehavior": ClientUpdateChannelEncoderSettingsGlobalConfigurationInputLossBehaviorTypeDef,
        "OutputLockingMode": str,
        "OutputTimingSource": str,
        "SupportLowFramerateInputs": str,
    },
    total=False,
)


class ClientUpdateChannelEncoderSettingsGlobalConfigurationTypeDef(
    _ClientUpdateChannelEncoderSettingsGlobalConfigurationTypeDef
):
    """
    Type definition for `ClientUpdateChannelEncoderSettings` `GlobalConfiguration`

    - **InitialAudioGain** *(integer) --* Value to set the initial audio gain for the Live Event.

    - **InputEndAction** *(string) --* Indicates the action to take when the current input completes
    (e.g. end-of-file). When switchAndLoopInputs is configured the encoder will restart at the
    beginning of the first input. When "none" is configured the encoder will transcode either black,
    a solid color, or a user specified slate images per the "Input Loss Behavior" configuration
    until the next input switch occurs (which is controlled through the Channel Schedule API).

    - **InputLossBehavior** *(dict) --* Settings for system actions when input is lost.

      - **BlackFrameMsec** *(integer) --* Documentation update needed

      - **InputLossImageColor** *(string) --* When input loss image type is "color" this field
      specifies the color to use. Value: 6 hex characters representing the values of RGB.

      - **InputLossImageSlate** *(dict) --* When input loss image type is "slate" these fields
      specify the parameters for accessing the slate.

        - **PasswordParam** *(string) --* key used to extract the password from EC2 Parameter store

        - **Uri** *(string) --* **[REQUIRED]** Uniform Resource Identifier - This should be a path
        to a file accessible to the Live system (eg. a http:// URI) depending on the output type.
        For example, a RTMP destination should have a uri simliar to: "rtmp://fmsserver/live".

        - **Username** *(string) --* Documentation update needed

      - **InputLossImageType** *(string) --* Indicates whether to substitute a solid color or a
      slate into the output after input loss exceeds blackFrameMsec.

      - **RepeatFrameMsec** *(integer) --* Documentation update needed

    - **OutputLockingMode** *(string) --* Indicates how MediaLive pipelines are synchronized.
    PIPELINELOCKING - MediaLive will attempt to synchronize the output of each pipeline to the
    other. EPOCHLOCKING - MediaLive will attempt to synchronize the output of each pipeline to the
    Unix epoch.

    - **OutputTimingSource** *(string) --* Indicates whether the rate of frames emitted by the Live
    encoder should be paced by its system clock (which optionally may be locked to another source
    via NTP) or should be locked to the clock of the source that is providing the input stream.

    - **SupportLowFramerateInputs** *(string) --* Adjusts video input buffer for streams with very
    low video framerates. This is commonly set to enabled for music channels with less than one
    video frame per second.
    """


_ClientUpdateChannelEncoderSettingsNielsenConfigurationTypeDef = TypedDict(
    "_ClientUpdateChannelEncoderSettingsNielsenConfigurationTypeDef",
    {"DistributorId": str, "NielsenPcmToId3Tagging": str},
    total=False,
)


class ClientUpdateChannelEncoderSettingsNielsenConfigurationTypeDef(
    _ClientUpdateChannelEncoderSettingsNielsenConfigurationTypeDef
):
    """
    Type definition for `ClientUpdateChannelEncoderSettings` `NielsenConfiguration`

    - **DistributorId** *(string) --* Enter the Distributor ID assigned to your organization by
    Nielsen.

    - **NielsenPcmToId3Tagging** *(string) --* Enables Nielsen PCM to ID3 tagging
    """


_ClientUpdateChannelEncoderSettingsOutputGroupsOutputGroupSettingsArchiveGroupSettingsDestinationTypeDef = TypedDict(
    "_ClientUpdateChannelEncoderSettingsOutputGroupsOutputGroupSettingsArchiveGroupSettingsDestinationTypeDef",
    {"DestinationRefId": str},
    total=False,
)


class ClientUpdateChannelEncoderSettingsOutputGroupsOutputGroupSettingsArchiveGroupSettingsDestinationTypeDef(
    _ClientUpdateChannelEncoderSettingsOutputGroupsOutputGroupSettingsArchiveGroupSettingsDestinationTypeDef
):
    """
    Type definition for
    `ClientUpdateChannelEncoderSettingsOutputGroupsOutputGroupSettingsArchiveGroupSettings`
    `Destination`

    - **DestinationRefId** *(string) --* Placeholder documentation for __string
    """


_RequiredClientUpdateChannelEncoderSettingsOutputGroupsOutputGroupSettingsArchiveGroupSettingsTypeDef = TypedDict(
    "_RequiredClientUpdateChannelEncoderSettingsOutputGroupsOutputGroupSettingsArchiveGroupSettingsTypeDef",
    {
        "Destination": ClientUpdateChannelEncoderSettingsOutputGroupsOutputGroupSettingsArchiveGroupSettingsDestinationTypeDef
    },
)
_OptionalClientUpdateChannelEncoderSettingsOutputGroupsOutputGroupSettingsArchiveGroupSettingsTypeDef = TypedDict(
    "_OptionalClientUpdateChannelEncoderSettingsOutputGroupsOutputGroupSettingsArchiveGroupSettingsTypeDef",
    {"RolloverInterval": int},
    total=False,
)


class ClientUpdateChannelEncoderSettingsOutputGroupsOutputGroupSettingsArchiveGroupSettingsTypeDef(
    _RequiredClientUpdateChannelEncoderSettingsOutputGroupsOutputGroupSettingsArchiveGroupSettingsTypeDef,
    _OptionalClientUpdateChannelEncoderSettingsOutputGroupsOutputGroupSettingsArchiveGroupSettingsTypeDef,
):
    """
    Type definition for `ClientUpdateChannelEncoderSettingsOutputGroupsOutputGroupSettings`
    `ArchiveGroupSettings`

    - **Destination** *(dict) --* **[REQUIRED]** A directory and base filename where archive files
    should be written.

      - **DestinationRefId** *(string) --* Placeholder documentation for __string

    - **RolloverInterval** *(integer) --* Number of seconds to write to archive file before closing
    and starting a new one.
    """


_ClientUpdateChannelEncoderSettingsOutputGroupsOutputGroupSettingsFrameCaptureGroupSettingsDestinationTypeDef = TypedDict(
    "_ClientUpdateChannelEncoderSettingsOutputGroupsOutputGroupSettingsFrameCaptureGroupSettingsDestinationTypeDef",
    {"DestinationRefId": str},
    total=False,
)


class ClientUpdateChannelEncoderSettingsOutputGroupsOutputGroupSettingsFrameCaptureGroupSettingsDestinationTypeDef(
    _ClientUpdateChannelEncoderSettingsOutputGroupsOutputGroupSettingsFrameCaptureGroupSettingsDestinationTypeDef
):
    """
    Type definition for
    `ClientUpdateChannelEncoderSettingsOutputGroupsOutputGroupSettingsFrameCaptureGroupSettings`
    `Destination`

    - **DestinationRefId** *(string) --* Placeholder documentation for __string
    """


_ClientUpdateChannelEncoderSettingsOutputGroupsOutputGroupSettingsFrameCaptureGroupSettingsTypeDef = TypedDict(
    "_ClientUpdateChannelEncoderSettingsOutputGroupsOutputGroupSettingsFrameCaptureGroupSettingsTypeDef",
    {
        "Destination": ClientUpdateChannelEncoderSettingsOutputGroupsOutputGroupSettingsFrameCaptureGroupSettingsDestinationTypeDef
    },
)


class ClientUpdateChannelEncoderSettingsOutputGroupsOutputGroupSettingsFrameCaptureGroupSettingsTypeDef(
    _ClientUpdateChannelEncoderSettingsOutputGroupsOutputGroupSettingsFrameCaptureGroupSettingsTypeDef
):
    """
    Type definition for `ClientUpdateChannelEncoderSettingsOutputGroupsOutputGroupSettings`
    `FrameCaptureGroupSettings`

    - **Destination** *(dict) --* **[REQUIRED]** The destination for the frame capture files. Either
    the URI for an Amazon S3 bucket and object, plus a file name prefix (for example,
    s3ssl://sportsDelivery/highlights/20180820/curling_) or the URI for a MediaStore container, plus
    a file name prefix (for example, mediastoressl://sportsDelivery/20180820/curling_). The final
    file names consist of the prefix from the destination field (for example, "curling_") + name
    modifier + the counter (5 digits, starting from 00001) + extension (which is always .jpg). For
    example, curlingLow.00001.jpg

      - **DestinationRefId** *(string) --* Placeholder documentation for __string
    """


_ClientUpdateChannelEncoderSettingsOutputGroupsOutputGroupSettingsHlsGroupSettingsCaptionLanguageMappingsTypeDef = TypedDict(
    "_ClientUpdateChannelEncoderSettingsOutputGroupsOutputGroupSettingsHlsGroupSettingsCaptionLanguageMappingsTypeDef",
    {"CaptionChannel": int, "LanguageCode": str, "LanguageDescription": str},
)


class ClientUpdateChannelEncoderSettingsOutputGroupsOutputGroupSettingsHlsGroupSettingsCaptionLanguageMappingsTypeDef(
    _ClientUpdateChannelEncoderSettingsOutputGroupsOutputGroupSettingsHlsGroupSettingsCaptionLanguageMappingsTypeDef
):
    """
    Type definition for
    `ClientUpdateChannelEncoderSettingsOutputGroupsOutputGroupSettingsHlsGroupSettings`
    `CaptionLanguageMappings`

    - **CaptionChannel** *(integer) --* **[REQUIRED]** The closed caption channel being described by
    this CaptionLanguageMapping. Each channel mapping must have a unique channel number (maximum of
    4)

    - **LanguageCode** *(string) --* **[REQUIRED]** Three character ISO 639-2 language code (see
    http://www.loc.gov/standards/iso639-2)

    - **LanguageDescription** *(string) --* **[REQUIRED]** Textual description of language
    """


_ClientUpdateChannelEncoderSettingsOutputGroupsOutputGroupSettingsHlsGroupSettingsDestinationTypeDef = TypedDict(
    "_ClientUpdateChannelEncoderSettingsOutputGroupsOutputGroupSettingsHlsGroupSettingsDestinationTypeDef",
    {"DestinationRefId": str},
    total=False,
)


class ClientUpdateChannelEncoderSettingsOutputGroupsOutputGroupSettingsHlsGroupSettingsDestinationTypeDef(
    _ClientUpdateChannelEncoderSettingsOutputGroupsOutputGroupSettingsHlsGroupSettingsDestinationTypeDef
):
    """
    Type definition for
    `ClientUpdateChannelEncoderSettingsOutputGroupsOutputGroupSettingsHlsGroupSettings`
    `Destination`

    - **DestinationRefId** *(string) --* Placeholder documentation for __string
    """


_ClientUpdateChannelEncoderSettingsOutputGroupsOutputGroupSettingsHlsGroupSettingsHlsCdnSettingsHlsAkamaiSettingsTypeDef = TypedDict(
    "_ClientUpdateChannelEncoderSettingsOutputGroupsOutputGroupSettingsHlsGroupSettingsHlsCdnSettingsHlsAkamaiSettingsTypeDef",
    {
        "ConnectionRetryInterval": int,
        "FilecacheDuration": int,
        "HttpTransferMode": str,
        "NumRetries": int,
        "RestartDelay": int,
        "Salt": str,
        "Token": str,
    },
    total=False,
)


class ClientUpdateChannelEncoderSettingsOutputGroupsOutputGroupSettingsHlsGroupSettingsHlsCdnSettingsHlsAkamaiSettingsTypeDef(
    _ClientUpdateChannelEncoderSettingsOutputGroupsOutputGroupSettingsHlsGroupSettingsHlsCdnSettingsHlsAkamaiSettingsTypeDef
):
    """
    Type definition for
    `ClientUpdateChannelEncoderSettingsOutputGroupsOutputGroupSettingsHlsGroupSettingsHlsCdnSettings`
    `HlsAkamaiSettings`

    - **ConnectionRetryInterval** *(integer) --* Number of seconds to wait before retrying
    connection to the CDN if the connection is lost.

    - **FilecacheDuration** *(integer) --* Size in seconds of file cache for streaming outputs.

    - **HttpTransferMode** *(string) --* Specify whether or not to use chunked transfer encoding to
    Akamai. User should contact Akamai to enable this feature.

    - **NumRetries** *(integer) --* Number of retry attempts that will be made before the Live Event
    is put into an error state.

    - **RestartDelay** *(integer) --* If a streaming output fails, number of seconds to wait until a
    restart is initiated. A value of 0 means never restart.

    - **Salt** *(string) --* Salt for authenticated Akamai.

    - **Token** *(string) --* Token parameter for authenticated akamai. If not specified, _gda_ is
    used.
    """


_ClientUpdateChannelEncoderSettingsOutputGroupsOutputGroupSettingsHlsGroupSettingsHlsCdnSettingsHlsBasicPutSettingsTypeDef = TypedDict(
    "_ClientUpdateChannelEncoderSettingsOutputGroupsOutputGroupSettingsHlsGroupSettingsHlsCdnSettingsHlsBasicPutSettingsTypeDef",
    {
        "ConnectionRetryInterval": int,
        "FilecacheDuration": int,
        "NumRetries": int,
        "RestartDelay": int,
    },
    total=False,
)


class ClientUpdateChannelEncoderSettingsOutputGroupsOutputGroupSettingsHlsGroupSettingsHlsCdnSettingsHlsBasicPutSettingsTypeDef(
    _ClientUpdateChannelEncoderSettingsOutputGroupsOutputGroupSettingsHlsGroupSettingsHlsCdnSettingsHlsBasicPutSettingsTypeDef
):
    """
    Type definition for
    `ClientUpdateChannelEncoderSettingsOutputGroupsOutputGroupSettingsHlsGroupSettingsHlsCdnSettings`
    `HlsBasicPutSettings`

    - **ConnectionRetryInterval** *(integer) --* Number of seconds to wait before retrying
    connection to the CDN if the connection is lost.

    - **FilecacheDuration** *(integer) --* Size in seconds of file cache for streaming outputs.

    - **NumRetries** *(integer) --* Number of retry attempts that will be made before the Live Event
    is put into an error state.

    - **RestartDelay** *(integer) --* If a streaming output fails, number of seconds to wait until a
    restart is initiated. A value of 0 means never restart.
    """


_ClientUpdateChannelEncoderSettingsOutputGroupsOutputGroupSettingsHlsGroupSettingsHlsCdnSettingsHlsMediaStoreSettingsTypeDef = TypedDict(
    "_ClientUpdateChannelEncoderSettingsOutputGroupsOutputGroupSettingsHlsGroupSettingsHlsCdnSettingsHlsMediaStoreSettingsTypeDef",
    {
        "ConnectionRetryInterval": int,
        "FilecacheDuration": int,
        "MediaStoreStorageClass": str,
        "NumRetries": int,
        "RestartDelay": int,
    },
    total=False,
)


class ClientUpdateChannelEncoderSettingsOutputGroupsOutputGroupSettingsHlsGroupSettingsHlsCdnSettingsHlsMediaStoreSettingsTypeDef(
    _ClientUpdateChannelEncoderSettingsOutputGroupsOutputGroupSettingsHlsGroupSettingsHlsCdnSettingsHlsMediaStoreSettingsTypeDef
):
    """
    Type definition for
    `ClientUpdateChannelEncoderSettingsOutputGroupsOutputGroupSettingsHlsGroupSettingsHlsCdnSettings`
    `HlsMediaStoreSettings`

    - **ConnectionRetryInterval** *(integer) --* Number of seconds to wait before retrying
    connection to the CDN if the connection is lost.

    - **FilecacheDuration** *(integer) --* Size in seconds of file cache for streaming outputs.

    - **MediaStoreStorageClass** *(string) --* When set to temporal, output files are stored in
    non-persistent memory for faster reading and writing.

    - **NumRetries** *(integer) --* Number of retry attempts that will be made before the Live Event
    is put into an error state.

    - **RestartDelay** *(integer) --* If a streaming output fails, number of seconds to wait until a
    restart is initiated. A value of 0 means never restart.
    """


_ClientUpdateChannelEncoderSettingsOutputGroupsOutputGroupSettingsHlsGroupSettingsHlsCdnSettingsHlsWebdavSettingsTypeDef = TypedDict(
    "_ClientUpdateChannelEncoderSettingsOutputGroupsOutputGroupSettingsHlsGroupSettingsHlsCdnSettingsHlsWebdavSettingsTypeDef",
    {
        "ConnectionRetryInterval": int,
        "FilecacheDuration": int,
        "HttpTransferMode": str,
        "NumRetries": int,
        "RestartDelay": int,
    },
    total=False,
)


class ClientUpdateChannelEncoderSettingsOutputGroupsOutputGroupSettingsHlsGroupSettingsHlsCdnSettingsHlsWebdavSettingsTypeDef(
    _ClientUpdateChannelEncoderSettingsOutputGroupsOutputGroupSettingsHlsGroupSettingsHlsCdnSettingsHlsWebdavSettingsTypeDef
):
    """
    Type definition for
    `ClientUpdateChannelEncoderSettingsOutputGroupsOutputGroupSettingsHlsGroupSettingsHlsCdnSettings`
    `HlsWebdavSettings`

    - **ConnectionRetryInterval** *(integer) --* Number of seconds to wait before retrying
    connection to the CDN if the connection is lost.

    - **FilecacheDuration** *(integer) --* Size in seconds of file cache for streaming outputs.

    - **HttpTransferMode** *(string) --* Specify whether or not to use chunked transfer encoding to
    WebDAV.

    - **NumRetries** *(integer) --* Number of retry attempts that will be made before the Live Event
    is put into an error state.

    - **RestartDelay** *(integer) --* If a streaming output fails, number of seconds to wait until a
    restart is initiated. A value of 0 means never restart.
    """


_ClientUpdateChannelEncoderSettingsOutputGroupsOutputGroupSettingsHlsGroupSettingsHlsCdnSettingsTypeDef = TypedDict(
    "_ClientUpdateChannelEncoderSettingsOutputGroupsOutputGroupSettingsHlsGroupSettingsHlsCdnSettingsTypeDef",
    {
        "HlsAkamaiSettings": ClientUpdateChannelEncoderSettingsOutputGroupsOutputGroupSettingsHlsGroupSettingsHlsCdnSettingsHlsAkamaiSettingsTypeDef,
        "HlsBasicPutSettings": ClientUpdateChannelEncoderSettingsOutputGroupsOutputGroupSettingsHlsGroupSettingsHlsCdnSettingsHlsBasicPutSettingsTypeDef,
        "HlsMediaStoreSettings": ClientUpdateChannelEncoderSettingsOutputGroupsOutputGroupSettingsHlsGroupSettingsHlsCdnSettingsHlsMediaStoreSettingsTypeDef,
        "HlsWebdavSettings": ClientUpdateChannelEncoderSettingsOutputGroupsOutputGroupSettingsHlsGroupSettingsHlsCdnSettingsHlsWebdavSettingsTypeDef,
    },
    total=False,
)


class ClientUpdateChannelEncoderSettingsOutputGroupsOutputGroupSettingsHlsGroupSettingsHlsCdnSettingsTypeDef(
    _ClientUpdateChannelEncoderSettingsOutputGroupsOutputGroupSettingsHlsGroupSettingsHlsCdnSettingsTypeDef
):
    """
    Type definition for
    `ClientUpdateChannelEncoderSettingsOutputGroupsOutputGroupSettingsHlsGroupSettings`
    `HlsCdnSettings`

    - **HlsAkamaiSettings** *(dict) --* Hls Akamai Settings

      - **ConnectionRetryInterval** *(integer) --* Number of seconds to wait before retrying
      connection to the CDN if the connection is lost.

      - **FilecacheDuration** *(integer) --* Size in seconds of file cache for streaming outputs.

      - **HttpTransferMode** *(string) --* Specify whether or not to use chunked transfer encoding
      to Akamai. User should contact Akamai to enable this feature.

      - **NumRetries** *(integer) --* Number of retry attempts that will be made before the Live
      Event is put into an error state.

      - **RestartDelay** *(integer) --* If a streaming output fails, number of seconds to wait until
      a restart is initiated. A value of 0 means never restart.

      - **Salt** *(string) --* Salt for authenticated Akamai.

      - **Token** *(string) --* Token parameter for authenticated akamai. If not specified, _gda_ is
      used.

    - **HlsBasicPutSettings** *(dict) --* Hls Basic Put Settings

      - **ConnectionRetryInterval** *(integer) --* Number of seconds to wait before retrying
      connection to the CDN if the connection is lost.

      - **FilecacheDuration** *(integer) --* Size in seconds of file cache for streaming outputs.

      - **NumRetries** *(integer) --* Number of retry attempts that will be made before the Live
      Event is put into an error state.

      - **RestartDelay** *(integer) --* If a streaming output fails, number of seconds to wait until
      a restart is initiated. A value of 0 means never restart.

    - **HlsMediaStoreSettings** *(dict) --* Hls Media Store Settings

      - **ConnectionRetryInterval** *(integer) --* Number of seconds to wait before retrying
      connection to the CDN if the connection is lost.

      - **FilecacheDuration** *(integer) --* Size in seconds of file cache for streaming outputs.

      - **MediaStoreStorageClass** *(string) --* When set to temporal, output files are stored in
      non-persistent memory for faster reading and writing.

      - **NumRetries** *(integer) --* Number of retry attempts that will be made before the Live
      Event is put into an error state.

      - **RestartDelay** *(integer) --* If a streaming output fails, number of seconds to wait until
      a restart is initiated. A value of 0 means never restart.

    - **HlsWebdavSettings** *(dict) --* Hls Webdav Settings

      - **ConnectionRetryInterval** *(integer) --* Number of seconds to wait before retrying
      connection to the CDN if the connection is lost.

      - **FilecacheDuration** *(integer) --* Size in seconds of file cache for streaming outputs.

      - **HttpTransferMode** *(string) --* Specify whether or not to use chunked transfer encoding
      to WebDAV.

      - **NumRetries** *(integer) --* Number of retry attempts that will be made before the Live
      Event is put into an error state.

      - **RestartDelay** *(integer) --* If a streaming output fails, number of seconds to wait until
      a restart is initiated. A value of 0 means never restart.
    """


_RequiredClientUpdateChannelEncoderSettingsOutputGroupsOutputGroupSettingsHlsGroupSettingsKeyProviderSettingsStaticKeySettingsKeyProviderServerTypeDef = TypedDict(
    "_RequiredClientUpdateChannelEncoderSettingsOutputGroupsOutputGroupSettingsHlsGroupSettingsKeyProviderSettingsStaticKeySettingsKeyProviderServerTypeDef",
    {"Uri": str},
)
_OptionalClientUpdateChannelEncoderSettingsOutputGroupsOutputGroupSettingsHlsGroupSettingsKeyProviderSettingsStaticKeySettingsKeyProviderServerTypeDef = TypedDict(
    "_OptionalClientUpdateChannelEncoderSettingsOutputGroupsOutputGroupSettingsHlsGroupSettingsKeyProviderSettingsStaticKeySettingsKeyProviderServerTypeDef",
    {"PasswordParam": str, "Username": str},
    total=False,
)


class ClientUpdateChannelEncoderSettingsOutputGroupsOutputGroupSettingsHlsGroupSettingsKeyProviderSettingsStaticKeySettingsKeyProviderServerTypeDef(
    _RequiredClientUpdateChannelEncoderSettingsOutputGroupsOutputGroupSettingsHlsGroupSettingsKeyProviderSettingsStaticKeySettingsKeyProviderServerTypeDef,
    _OptionalClientUpdateChannelEncoderSettingsOutputGroupsOutputGroupSettingsHlsGroupSettingsKeyProviderSettingsStaticKeySettingsKeyProviderServerTypeDef,
):
    """
    Type definition for
    `ClientUpdateChannelEncoderSettingsOutputGroupsOutputGroupSettingsHlsGroupSettingsKeyProviderSettingsStaticKeySettings`
    `KeyProviderServer`

    - **PasswordParam** *(string) --* key used to extract the password from EC2 Parameter store

    - **Uri** *(string) --* **[REQUIRED]** Uniform Resource Identifier - This should be a path to a
    file accessible to the Live system (eg. a http:// URI) depending on the output type. For
    example, a RTMP destination should have a uri simliar to: "rtmp://fmsserver/live".

    - **Username** *(string) --* Documentation update needed
    """


_RequiredClientUpdateChannelEncoderSettingsOutputGroupsOutputGroupSettingsHlsGroupSettingsKeyProviderSettingsStaticKeySettingsTypeDef = TypedDict(
    "_RequiredClientUpdateChannelEncoderSettingsOutputGroupsOutputGroupSettingsHlsGroupSettingsKeyProviderSettingsStaticKeySettingsTypeDef",
    {"StaticKeyValue": str},
)
_OptionalClientUpdateChannelEncoderSettingsOutputGroupsOutputGroupSettingsHlsGroupSettingsKeyProviderSettingsStaticKeySettingsTypeDef = TypedDict(
    "_OptionalClientUpdateChannelEncoderSettingsOutputGroupsOutputGroupSettingsHlsGroupSettingsKeyProviderSettingsStaticKeySettingsTypeDef",
    {
        "KeyProviderServer": ClientUpdateChannelEncoderSettingsOutputGroupsOutputGroupSettingsHlsGroupSettingsKeyProviderSettingsStaticKeySettingsKeyProviderServerTypeDef
    },
    total=False,
)


class ClientUpdateChannelEncoderSettingsOutputGroupsOutputGroupSettingsHlsGroupSettingsKeyProviderSettingsStaticKeySettingsTypeDef(
    _RequiredClientUpdateChannelEncoderSettingsOutputGroupsOutputGroupSettingsHlsGroupSettingsKeyProviderSettingsStaticKeySettingsTypeDef,
    _OptionalClientUpdateChannelEncoderSettingsOutputGroupsOutputGroupSettingsHlsGroupSettingsKeyProviderSettingsStaticKeySettingsTypeDef,
):
    """
    Type definition for
    `ClientUpdateChannelEncoderSettingsOutputGroupsOutputGroupSettingsHlsGroupSettingsKeyProviderSettings`
    `StaticKeySettings`

    - **KeyProviderServer** *(dict) --* The URL of the license server used for protecting content.

      - **PasswordParam** *(string) --* key used to extract the password from EC2 Parameter store

      - **Uri** *(string) --* **[REQUIRED]** Uniform Resource Identifier - This should be a path to
      a file accessible to the Live system (eg. a http:// URI) depending on the output type. For
      example, a RTMP destination should have a uri simliar to: "rtmp://fmsserver/live".

      - **Username** *(string) --* Documentation update needed

    - **StaticKeyValue** *(string) --* **[REQUIRED]** Static key value as a 32 character hexadecimal
    string.
    """


_ClientUpdateChannelEncoderSettingsOutputGroupsOutputGroupSettingsHlsGroupSettingsKeyProviderSettingsTypeDef = TypedDict(
    "_ClientUpdateChannelEncoderSettingsOutputGroupsOutputGroupSettingsHlsGroupSettingsKeyProviderSettingsTypeDef",
    {
        "StaticKeySettings": ClientUpdateChannelEncoderSettingsOutputGroupsOutputGroupSettingsHlsGroupSettingsKeyProviderSettingsStaticKeySettingsTypeDef
    },
    total=False,
)


class ClientUpdateChannelEncoderSettingsOutputGroupsOutputGroupSettingsHlsGroupSettingsKeyProviderSettingsTypeDef(
    _ClientUpdateChannelEncoderSettingsOutputGroupsOutputGroupSettingsHlsGroupSettingsKeyProviderSettingsTypeDef
):
    """
    Type definition for
    `ClientUpdateChannelEncoderSettingsOutputGroupsOutputGroupSettingsHlsGroupSettings`
    `KeyProviderSettings`

    - **StaticKeySettings** *(dict) --* Static Key Settings

      - **KeyProviderServer** *(dict) --* The URL of the license server used for protecting content.

        - **PasswordParam** *(string) --* key used to extract the password from EC2 Parameter store

        - **Uri** *(string) --* **[REQUIRED]** Uniform Resource Identifier - This should be a path
        to a file accessible to the Live system (eg. a http:// URI) depending on the output type.
        For example, a RTMP destination should have a uri simliar to: "rtmp://fmsserver/live".

        - **Username** *(string) --* Documentation update needed

      - **StaticKeyValue** *(string) --* **[REQUIRED]** Static key value as a 32 character
      hexadecimal string.
    """


_RequiredClientUpdateChannelEncoderSettingsOutputGroupsOutputGroupSettingsHlsGroupSettingsTypeDef = TypedDict(
    "_RequiredClientUpdateChannelEncoderSettingsOutputGroupsOutputGroupSettingsHlsGroupSettingsTypeDef",
    {
        "Destination": ClientUpdateChannelEncoderSettingsOutputGroupsOutputGroupSettingsHlsGroupSettingsDestinationTypeDef
    },
)
_OptionalClientUpdateChannelEncoderSettingsOutputGroupsOutputGroupSettingsHlsGroupSettingsTypeDef = TypedDict(
    "_OptionalClientUpdateChannelEncoderSettingsOutputGroupsOutputGroupSettingsHlsGroupSettingsTypeDef",
    {
        "AdMarkers": List[str],
        "BaseUrlContent": str,
        "BaseUrlManifest": str,
        "CaptionLanguageMappings": List[
            ClientUpdateChannelEncoderSettingsOutputGroupsOutputGroupSettingsHlsGroupSettingsCaptionLanguageMappingsTypeDef
        ],
        "CaptionLanguageSetting": str,
        "ClientCache": str,
        "CodecSpecification": str,
        "ConstantIv": str,
        "DirectoryStructure": str,
        "EncryptionType": str,
        "HlsCdnSettings": ClientUpdateChannelEncoderSettingsOutputGroupsOutputGroupSettingsHlsGroupSettingsHlsCdnSettingsTypeDef,
        "IFrameOnlyPlaylists": str,
        "IndexNSegments": int,
        "InputLossAction": str,
        "IvInManifest": str,
        "IvSource": str,
        "KeepSegments": int,
        "KeyFormat": str,
        "KeyFormatVersions": str,
        "KeyProviderSettings": ClientUpdateChannelEncoderSettingsOutputGroupsOutputGroupSettingsHlsGroupSettingsKeyProviderSettingsTypeDef,
        "ManifestCompression": str,
        "ManifestDurationFormat": str,
        "MinSegmentLength": int,
        "Mode": str,
        "OutputSelection": str,
        "ProgramDateTime": str,
        "ProgramDateTimePeriod": int,
        "RedundantManifest": str,
        "SegmentLength": int,
        "SegmentationMode": str,
        "SegmentsPerSubdirectory": int,
        "StreamInfResolution": str,
        "TimedMetadataId3Frame": str,
        "TimedMetadataId3Period": int,
        "TimestampDeltaMilliseconds": int,
        "TsFileMode": str,
    },
    total=False,
)


class ClientUpdateChannelEncoderSettingsOutputGroupsOutputGroupSettingsHlsGroupSettingsTypeDef(
    _RequiredClientUpdateChannelEncoderSettingsOutputGroupsOutputGroupSettingsHlsGroupSettingsTypeDef,
    _OptionalClientUpdateChannelEncoderSettingsOutputGroupsOutputGroupSettingsHlsGroupSettingsTypeDef,
):
    """
    Type definition for `ClientUpdateChannelEncoderSettingsOutputGroupsOutputGroupSettings`
    `HlsGroupSettings`

    - **AdMarkers** *(list) --* Choose one or more ad marker types to pass SCTE35 signals through to
    this group of Apple HLS outputs.

      - *(string) --* Hls Ad Markers

    - **BaseUrlContent** *(string) --* A partial URI prefix that will be prepended to each output in
    the media .m3u8 file. Can be used if base manifest is delivered from a different URL than the
    main .m3u8 file.

    - **BaseUrlManifest** *(string) --* A partial URI prefix that will be prepended to each output
    in the media .m3u8 file. Can be used if base manifest is delivered from a different URL than the
    main .m3u8 file.

    - **CaptionLanguageMappings** *(list) --* Mapping of up to 4 caption channels to caption
    languages. Is only meaningful if captionLanguageSetting is set to "insert".

      - *(dict) --* Maps a caption channel to an ISO 693-2 language code
      (http://www.loc.gov/standards/iso639-2), with an optional description.

        - **CaptionChannel** *(integer) --* **[REQUIRED]** The closed caption channel being
        described by this CaptionLanguageMapping. Each channel mapping must have a unique channel
        number (maximum of 4)

        - **LanguageCode** *(string) --* **[REQUIRED]** Three character ISO 639-2 language code (see
        http://www.loc.gov/standards/iso639-2)

        - **LanguageDescription** *(string) --* **[REQUIRED]** Textual description of language

    - **CaptionLanguageSetting** *(string) --* Applies only to 608 Embedded output captions. insert:
    Include CLOSED-CAPTIONS lines in the manifest. Specify at least one language in the CC1 Language
    Code field. One CLOSED-CAPTION line is added for each Language Code you specify. Make sure to
    specify the languages in the order in which they appear in the original source (if the source is
    embedded format) or the order of the caption selectors (if the source is other than embedded).
    Otherwise, languages in the manifest will not match up properly with the output captions. none:
    Include CLOSED-CAPTIONS=NONE line in the manifest. omit: Omit any CLOSED-CAPTIONS line from the
    manifest.

    - **ClientCache** *(string) --* When set to "disabled", sets the #EXT-X-ALLOW-CACHE:no tag in
    the manifest, which prevents clients from saving media segments for later replay.

    - **CodecSpecification** *(string) --* Specification to use (RFC-6381 or the default RFC-4281)
    during m3u8 playlist generation.

    - **ConstantIv** *(string) --* For use with encryptionType. This is a 128-bit, 16-byte hex value
    represented by a 32-character text string. If ivSource is set to "explicit" then this parameter
    is required and is used as the IV for encryption.

    - **Destination** *(dict) --* **[REQUIRED]** A directory or HTTP destination for the HLS
    segments, manifest files, and encryption keys (if enabled).

      - **DestinationRefId** *(string) --* Placeholder documentation for __string

    - **DirectoryStructure** *(string) --* Place segments in subdirectories.

    - **EncryptionType** *(string) --* Encrypts the segments with the given encryption scheme.
    Exclude this parameter if no encryption is desired.

    - **HlsCdnSettings** *(dict) --* Parameters that control interactions with the CDN.

      - **HlsAkamaiSettings** *(dict) --* Hls Akamai Settings

        - **ConnectionRetryInterval** *(integer) --* Number of seconds to wait before retrying
        connection to the CDN if the connection is lost.

        - **FilecacheDuration** *(integer) --* Size in seconds of file cache for streaming outputs.

        - **HttpTransferMode** *(string) --* Specify whether or not to use chunked transfer encoding
        to Akamai. User should contact Akamai to enable this feature.

        - **NumRetries** *(integer) --* Number of retry attempts that will be made before the Live
        Event is put into an error state.

        - **RestartDelay** *(integer) --* If a streaming output fails, number of seconds to wait
        until a restart is initiated. A value of 0 means never restart.

        - **Salt** *(string) --* Salt for authenticated Akamai.

        - **Token** *(string) --* Token parameter for authenticated akamai. If not specified, _gda_
        is used.

      - **HlsBasicPutSettings** *(dict) --* Hls Basic Put Settings

        - **ConnectionRetryInterval** *(integer) --* Number of seconds to wait before retrying
        connection to the CDN if the connection is lost.

        - **FilecacheDuration** *(integer) --* Size in seconds of file cache for streaming outputs.

        - **NumRetries** *(integer) --* Number of retry attempts that will be made before the Live
        Event is put into an error state.

        - **RestartDelay** *(integer) --* If a streaming output fails, number of seconds to wait
        until a restart is initiated. A value of 0 means never restart.

      - **HlsMediaStoreSettings** *(dict) --* Hls Media Store Settings

        - **ConnectionRetryInterval** *(integer) --* Number of seconds to wait before retrying
        connection to the CDN if the connection is lost.

        - **FilecacheDuration** *(integer) --* Size in seconds of file cache for streaming outputs.

        - **MediaStoreStorageClass** *(string) --* When set to temporal, output files are stored in
        non-persistent memory for faster reading and writing.

        - **NumRetries** *(integer) --* Number of retry attempts that will be made before the Live
        Event is put into an error state.

        - **RestartDelay** *(integer) --* If a streaming output fails, number of seconds to wait
        until a restart is initiated. A value of 0 means never restart.

      - **HlsWebdavSettings** *(dict) --* Hls Webdav Settings

        - **ConnectionRetryInterval** *(integer) --* Number of seconds to wait before retrying
        connection to the CDN if the connection is lost.

        - **FilecacheDuration** *(integer) --* Size in seconds of file cache for streaming outputs.

        - **HttpTransferMode** *(string) --* Specify whether or not to use chunked transfer encoding
        to WebDAV.

        - **NumRetries** *(integer) --* Number of retry attempts that will be made before the Live
        Event is put into an error state.

        - **RestartDelay** *(integer) --* If a streaming output fails, number of seconds to wait
        until a restart is initiated. A value of 0 means never restart.

    - **IFrameOnlyPlaylists** *(string) --* DISABLED: Do not create an I-frame-only manifest, but do
    create the master and media manifests (according to the Output Selection field). STANDARD:
    Create an I-frame-only manifest for each output that contains video, as well as the other
    manifests (according to the Output Selection field). The I-frame manifest contains a
    #EXT-X-I-FRAMES-ONLY tag to indicate it is I-frame only, and one or more #EXT-X-BYTERANGE
    entries identifying the I-frame position. For example, #EXT-X-BYTERANGE:160364@1461888"

    - **IndexNSegments** *(integer) --* Applies only if Mode field is LIVE. Specifies the maximum
    number of segments in the media manifest file. After this maximum, older segments are removed
    from the media manifest. This number must be less than or equal to the Keep Segments field.

    - **InputLossAction** *(string) --* Parameter that control output group behavior on input loss.

    - **IvInManifest** *(string) --* For use with encryptionType. The IV (Initialization Vector) is
    a 128-bit number used in conjunction with the key for encrypting blocks. If set to "include", IV
    is listed in the manifest, otherwise the IV is not in the manifest.

    - **IvSource** *(string) --* For use with encryptionType. The IV (Initialization Vector) is a
    128-bit number used in conjunction with the key for encrypting blocks. If this setting is
    "followsSegmentNumber", it will cause the IV to change every segment (to match the segment
    number). If this is set to "explicit", you must enter a constantIv value.

    - **KeepSegments** *(integer) --* Applies only if Mode field is LIVE. Specifies the number of
    media segments (.ts files) to retain in the destination directory.

    - **KeyFormat** *(string) --* The value specifies how the key is represented in the resource
    identified by the URI. If parameter is absent, an implicit value of "identity" is used. A
    reverse DNS string can also be given.

    - **KeyFormatVersions** *(string) --* Either a single positive integer version value or a slash
    delimited list of version values (1/2/3).

    - **KeyProviderSettings** *(dict) --* The key provider settings.

      - **StaticKeySettings** *(dict) --* Static Key Settings

        - **KeyProviderServer** *(dict) --* The URL of the license server used for protecting
        content.

          - **PasswordParam** *(string) --* key used to extract the password from EC2 Parameter
          store

          - **Uri** *(string) --* **[REQUIRED]** Uniform Resource Identifier - This should be a path
          to a file accessible to the Live system (eg. a http:// URI) depending on the output type.
          For example, a RTMP destination should have a uri simliar to: "rtmp://fmsserver/live".

          - **Username** *(string) --* Documentation update needed

        - **StaticKeyValue** *(string) --* **[REQUIRED]** Static key value as a 32 character
        hexadecimal string.

    - **ManifestCompression** *(string) --* When set to gzip, compresses HLS playlist.

    - **ManifestDurationFormat** *(string) --* Indicates whether the output manifest should use
    floating point or integer values for segment duration.

    - **MinSegmentLength** *(integer) --* When set, minimumSegmentLength is enforced by looking
    ahead and back within the specified range for a nearby avail and extending the segment size if
    needed.

    - **Mode** *(string) --* If "vod", all segments are indexed and kept permanently in the
    destination and manifest. If "live", only the number segments specified in keepSegments and
    indexNSegments are kept; newer segments replace older segments, which may prevent players from
    rewinding all the way to the beginning of the event. VOD mode uses HLS EXT-X-PLAYLIST-TYPE of
    EVENT while the channel is running, converting it to a "VOD" type manifest on completion of the
    stream.

    - **OutputSelection** *(string) --* MANIFESTSANDSEGMENTS: Generates manifests (master manifest,
    if applicable, and media manifests) for this output group. SEGMENTSONLY: Does not generate any
    manifests for this output group.

    - **ProgramDateTime** *(string) --* Includes or excludes EXT-X-PROGRAM-DATE-TIME tag in .m3u8
    manifest files. The value is calculated as follows: either the program date and time are
    initialized using the input timecode source, or the time is initialized using the input timecode
    source and the date is initialized using the timestampOffset.

    - **ProgramDateTimePeriod** *(integer) --* Period of insertion of EXT-X-PROGRAM-DATE-TIME entry,
    in seconds.

    - **RedundantManifest** *(string) --* ENABLED: The master manifest (.m3u8 file) for each
    pipeline includes information about both pipelines: first its own media files, then the media
    files of the other pipeline. This feature allows playout device that support stale manifest
    detection to switch from one manifest to the other, when the current manifest seems to be stale.
    There are still two destinations and two master manifests, but both master manifests reference
    the media files from both pipelines. DISABLED: The master manifest (.m3u8 file) for each
    pipeline includes information about its own pipeline only. For an HLS output group with
    MediaPackage as the destination, the DISABLED behavior is always followed. MediaPackage
    regenerates the manifests it serves to players so a redundant manifest from MediaLive is
    irrelevant.

    - **SegmentLength** *(integer) --* Length of MPEG-2 Transport Stream segments to create (in
    seconds). Note that segments will end on the next keyframe after this number of seconds, so
    actual segment length may be longer.

    - **SegmentationMode** *(string) --* useInputSegmentation has been deprecated. The configured
    segment size is always used.

    - **SegmentsPerSubdirectory** *(integer) --* Number of segments to write to a subdirectory
    before starting a new one. directoryStructure must be subdirectoryPerStream for this setting to
    have an effect.

    - **StreamInfResolution** *(string) --* Include or exclude RESOLUTION attribute for video in
    EXT-X-STREAM-INF tag of variant manifest.

    - **TimedMetadataId3Frame** *(string) --* Indicates ID3 frame that has the timecode.

    - **TimedMetadataId3Period** *(integer) --* Timed Metadata interval in seconds.

    - **TimestampDeltaMilliseconds** *(integer) --* Provides an extra millisecond delta offset to
    fine tune the timestamps.

    - **TsFileMode** *(string) --* SEGMENTEDFILES: Emit the program as segments - multiple .ts media
    files. SINGLEFILE: Applies only if Mode field is VOD. Emit the program as a single .ts media
    file. The media manifest includes #EXT-X-BYTERANGE tags to index segments for playback. A
    typical use for this value is when sending the output to AWS Elemental MediaConvert, which can
    accept only a single media file. Playback while the channel is running is not guaranteed due to
    HTTP server caching.
    """


_ClientUpdateChannelEncoderSettingsOutputGroupsOutputGroupSettingsMediaPackageGroupSettingsDestinationTypeDef = TypedDict(
    "_ClientUpdateChannelEncoderSettingsOutputGroupsOutputGroupSettingsMediaPackageGroupSettingsDestinationTypeDef",
    {"DestinationRefId": str},
    total=False,
)


class ClientUpdateChannelEncoderSettingsOutputGroupsOutputGroupSettingsMediaPackageGroupSettingsDestinationTypeDef(
    _ClientUpdateChannelEncoderSettingsOutputGroupsOutputGroupSettingsMediaPackageGroupSettingsDestinationTypeDef
):
    """
    Type definition for
    `ClientUpdateChannelEncoderSettingsOutputGroupsOutputGroupSettingsMediaPackageGroupSettings`
    `Destination`

    - **DestinationRefId** *(string) --* Placeholder documentation for __string
    """


_ClientUpdateChannelEncoderSettingsOutputGroupsOutputGroupSettingsMediaPackageGroupSettingsTypeDef = TypedDict(
    "_ClientUpdateChannelEncoderSettingsOutputGroupsOutputGroupSettingsMediaPackageGroupSettingsTypeDef",
    {
        "Destination": ClientUpdateChannelEncoderSettingsOutputGroupsOutputGroupSettingsMediaPackageGroupSettingsDestinationTypeDef
    },
)


class ClientUpdateChannelEncoderSettingsOutputGroupsOutputGroupSettingsMediaPackageGroupSettingsTypeDef(
    _ClientUpdateChannelEncoderSettingsOutputGroupsOutputGroupSettingsMediaPackageGroupSettingsTypeDef
):
    """
    Type definition for `ClientUpdateChannelEncoderSettingsOutputGroupsOutputGroupSettings`
    `MediaPackageGroupSettings`

    - **Destination** *(dict) --* **[REQUIRED]** MediaPackage channel destination.

      - **DestinationRefId** *(string) --* Placeholder documentation for __string
    """


_ClientUpdateChannelEncoderSettingsOutputGroupsOutputGroupSettingsMsSmoothGroupSettingsDestinationTypeDef = TypedDict(
    "_ClientUpdateChannelEncoderSettingsOutputGroupsOutputGroupSettingsMsSmoothGroupSettingsDestinationTypeDef",
    {"DestinationRefId": str},
    total=False,
)


class ClientUpdateChannelEncoderSettingsOutputGroupsOutputGroupSettingsMsSmoothGroupSettingsDestinationTypeDef(
    _ClientUpdateChannelEncoderSettingsOutputGroupsOutputGroupSettingsMsSmoothGroupSettingsDestinationTypeDef
):
    """
    Type definition for
    `ClientUpdateChannelEncoderSettingsOutputGroupsOutputGroupSettingsMsSmoothGroupSettings`
    `Destination`

    - **DestinationRefId** *(string) --* Placeholder documentation for __string
    """


_RequiredClientUpdateChannelEncoderSettingsOutputGroupsOutputGroupSettingsMsSmoothGroupSettingsTypeDef = TypedDict(
    "_RequiredClientUpdateChannelEncoderSettingsOutputGroupsOutputGroupSettingsMsSmoothGroupSettingsTypeDef",
    {
        "Destination": ClientUpdateChannelEncoderSettingsOutputGroupsOutputGroupSettingsMsSmoothGroupSettingsDestinationTypeDef
    },
)
_OptionalClientUpdateChannelEncoderSettingsOutputGroupsOutputGroupSettingsMsSmoothGroupSettingsTypeDef = TypedDict(
    "_OptionalClientUpdateChannelEncoderSettingsOutputGroupsOutputGroupSettingsMsSmoothGroupSettingsTypeDef",
    {
        "AcquisitionPointId": str,
        "AudioOnlyTimecodeControl": str,
        "CertificateMode": str,
        "ConnectionRetryInterval": int,
        "EventId": str,
        "EventIdMode": str,
        "EventStopBehavior": str,
        "FilecacheDuration": int,
        "FragmentLength": int,
        "InputLossAction": str,
        "NumRetries": int,
        "RestartDelay": int,
        "SegmentationMode": str,
        "SendDelayMs": int,
        "SparseTrackType": str,
        "StreamManifestBehavior": str,
        "TimestampOffset": str,
        "TimestampOffsetMode": str,
    },
    total=False,
)


class ClientUpdateChannelEncoderSettingsOutputGroupsOutputGroupSettingsMsSmoothGroupSettingsTypeDef(
    _RequiredClientUpdateChannelEncoderSettingsOutputGroupsOutputGroupSettingsMsSmoothGroupSettingsTypeDef,
    _OptionalClientUpdateChannelEncoderSettingsOutputGroupsOutputGroupSettingsMsSmoothGroupSettingsTypeDef,
):
    """
    Type definition for `ClientUpdateChannelEncoderSettingsOutputGroupsOutputGroupSettings`
    `MsSmoothGroupSettings`

    - **AcquisitionPointId** *(string) --* The value of the "Acquisition Point Identity" element
    used in each message placed in the sparse track. Only enabled if sparseTrackType is not "none".

    - **AudioOnlyTimecodeControl** *(string) --* If set to passthrough for an audio-only MS Smooth
    output, the fragment absolute time will be set to the current timecode. This option does not
    write timecodes to the audio elementary stream.

    - **CertificateMode** *(string) --* If set to verifyAuthenticity, verify the https certificate
    chain to a trusted Certificate Authority (CA). This will cause https outputs to self-signed
    certificates to fail.

    - **ConnectionRetryInterval** *(integer) --* Number of seconds to wait before retrying
    connection to the IIS server if the connection is lost. Content will be cached during this time
    and the cache will be be delivered to the IIS server once the connection is re-established.

    - **Destination** *(dict) --* **[REQUIRED]** Smooth Streaming publish point on an IIS server.
    Elemental Live acts as a "Push" encoder to IIS.

      - **DestinationRefId** *(string) --* Placeholder documentation for __string

    - **EventId** *(string) --* MS Smooth event ID to be sent to the IIS server. Should only be
    specified if eventIdMode is set to useConfigured.

    - **EventIdMode** *(string) --* Specifies whether or not to send an event ID to the IIS server.
    If no event ID is sent and the same Live Event is used without changing the publishing point,
    clients might see cached video from the previous run. Options: - "useConfigured" - use the value
    provided in eventId - "useTimestamp" - generate and send an event ID based on the current
    timestamp - "noEventId" - do not send an event ID to the IIS server.

    - **EventStopBehavior** *(string) --* When set to sendEos, send EOS signal to IIS server when
    stopping the event

    - **FilecacheDuration** *(integer) --* Size in seconds of file cache for streaming outputs.

    - **FragmentLength** *(integer) --* Length of mp4 fragments to generate (in seconds). Fragment
    length must be compatible with GOP size and framerate.

    - **InputLossAction** *(string) --* Parameter that control output group behavior on input loss.

    - **NumRetries** *(integer) --* Number of retry attempts.

    - **RestartDelay** *(integer) --* Number of seconds before initiating a restart due to output
    failure, due to exhausting the numRetries on one segment, or exceeding filecacheDuration.

    - **SegmentationMode** *(string) --* useInputSegmentation has been deprecated. The configured
    segment size is always used.

    - **SendDelayMs** *(integer) --* Number of milliseconds to delay the output from the second
    pipeline.

    - **SparseTrackType** *(string) --* If set to scte35, use incoming SCTE-35 messages to generate
    a sparse track in this group of MS-Smooth outputs.

    - **StreamManifestBehavior** *(string) --* When set to send, send stream manifest so publishing
    point doesn't start until all streams start.

    - **TimestampOffset** *(string) --* Timestamp offset for the event. Only used if
    timestampOffsetMode is set to useConfiguredOffset.

    - **TimestampOffsetMode** *(string) --* Type of timestamp date offset to use. -
    useEventStartDate: Use the date the event was started as the offset - useConfiguredOffset: Use
    an explicitly configured date as the offset
    """


_ClientUpdateChannelEncoderSettingsOutputGroupsOutputGroupSettingsRtmpGroupSettingsTypeDef = TypedDict(
    "_ClientUpdateChannelEncoderSettingsOutputGroupsOutputGroupSettingsRtmpGroupSettingsTypeDef",
    {
        "AuthenticationScheme": str,
        "CacheFullBehavior": str,
        "CacheLength": int,
        "CaptionData": str,
        "InputLossAction": str,
        "RestartDelay": int,
    },
    total=False,
)


class ClientUpdateChannelEncoderSettingsOutputGroupsOutputGroupSettingsRtmpGroupSettingsTypeDef(
    _ClientUpdateChannelEncoderSettingsOutputGroupsOutputGroupSettingsRtmpGroupSettingsTypeDef
):
    """
    Type definition for `ClientUpdateChannelEncoderSettingsOutputGroupsOutputGroupSettings`
    `RtmpGroupSettings`

    - **AuthenticationScheme** *(string) --* Authentication scheme to use when connecting with CDN

    - **CacheFullBehavior** *(string) --* Controls behavior when content cache fills up. If remote
    origin server stalls the RTMP connection and does not accept content fast enough the 'Media
    Cache' will fill up. When the cache reaches the duration specified by cacheLength the cache will
    stop accepting new content. If set to disconnectImmediately, the RTMP output will force a
    disconnect. Clear the media cache, and reconnect after restartDelay seconds. If set to
    waitForServer, the RTMP output will wait up to 5 minutes to allow the origin server to begin
    accepting data again.

    - **CacheLength** *(integer) --* Cache length, in seconds, is used to calculate buffer size.

    - **CaptionData** *(string) --* Controls the types of data that passes to onCaptionInfo outputs.
    If set to 'all' then 608 and 708 carried DTVCC data will be passed. If set to
    'field1AndField2608' then DTVCC data will be stripped out, but 608 data from both fields will be
    passed. If set to 'field1608' then only the data carried in 608 from field 1 video will be
    passed.

    - **InputLossAction** *(string) --* Controls the behavior of this RTMP group if input becomes
    unavailable. - emitOutput: Emit a slate until input returns. - pauseOutput: Stop transmitting
    data until input returns. This does not close the underlying RTMP connection.

    - **RestartDelay** *(integer) --* If a streaming output fails, number of seconds to wait until a
    restart is initiated. A value of 0 means never restart.
    """


_ClientUpdateChannelEncoderSettingsOutputGroupsOutputGroupSettingsUdpGroupSettingsTypeDef = TypedDict(
    "_ClientUpdateChannelEncoderSettingsOutputGroupsOutputGroupSettingsUdpGroupSettingsTypeDef",
    {"InputLossAction": str, "TimedMetadataId3Frame": str, "TimedMetadataId3Period": int},
    total=False,
)


class ClientUpdateChannelEncoderSettingsOutputGroupsOutputGroupSettingsUdpGroupSettingsTypeDef(
    _ClientUpdateChannelEncoderSettingsOutputGroupsOutputGroupSettingsUdpGroupSettingsTypeDef
):
    """
    Type definition for `ClientUpdateChannelEncoderSettingsOutputGroupsOutputGroupSettings`
    `UdpGroupSettings`

    - **InputLossAction** *(string) --* Specifies behavior of last resort when input video is lost,
    and no more backup inputs are available. When dropTs is selected the entire transport stream
    will stop being emitted. When dropProgram is selected the program can be dropped from the
    transport stream (and replaced with null packets to meet the TS bitrate requirement). Or, when
    emitProgram is chosen the transport stream will continue to be produced normally with repeat
    frames, black frames, or slate frames substituted for the absent input video.

    - **TimedMetadataId3Frame** *(string) --* Indicates ID3 frame that has the timecode.

    - **TimedMetadataId3Period** *(integer) --* Timed Metadata interval in seconds.
    """


_ClientUpdateChannelEncoderSettingsOutputGroupsOutputGroupSettingsTypeDef = TypedDict(
    "_ClientUpdateChannelEncoderSettingsOutputGroupsOutputGroupSettingsTypeDef",
    {
        "ArchiveGroupSettings": ClientUpdateChannelEncoderSettingsOutputGroupsOutputGroupSettingsArchiveGroupSettingsTypeDef,
        "FrameCaptureGroupSettings": ClientUpdateChannelEncoderSettingsOutputGroupsOutputGroupSettingsFrameCaptureGroupSettingsTypeDef,
        "HlsGroupSettings": ClientUpdateChannelEncoderSettingsOutputGroupsOutputGroupSettingsHlsGroupSettingsTypeDef,
        "MediaPackageGroupSettings": ClientUpdateChannelEncoderSettingsOutputGroupsOutputGroupSettingsMediaPackageGroupSettingsTypeDef,
        "MsSmoothGroupSettings": ClientUpdateChannelEncoderSettingsOutputGroupsOutputGroupSettingsMsSmoothGroupSettingsTypeDef,
        "MultiplexGroupSettings": Dict,
        "RtmpGroupSettings": ClientUpdateChannelEncoderSettingsOutputGroupsOutputGroupSettingsRtmpGroupSettingsTypeDef,
        "UdpGroupSettings": ClientUpdateChannelEncoderSettingsOutputGroupsOutputGroupSettingsUdpGroupSettingsTypeDef,
    },
    total=False,
)


class ClientUpdateChannelEncoderSettingsOutputGroupsOutputGroupSettingsTypeDef(
    _ClientUpdateChannelEncoderSettingsOutputGroupsOutputGroupSettingsTypeDef
):
    """
    Type definition for `ClientUpdateChannelEncoderSettingsOutputGroups` `OutputGroupSettings`

    - **ArchiveGroupSettings** *(dict) --* Archive Group Settings

      - **Destination** *(dict) --* **[REQUIRED]** A directory and base filename where archive files
      should be written.

        - **DestinationRefId** *(string) --* Placeholder documentation for __string

      - **RolloverInterval** *(integer) --* Number of seconds to write to archive file before
      closing and starting a new one.

    - **FrameCaptureGroupSettings** *(dict) --* Frame Capture Group Settings

      - **Destination** *(dict) --* **[REQUIRED]** The destination for the frame capture files.
      Either the URI for an Amazon S3 bucket and object, plus a file name prefix (for example,
      s3ssl://sportsDelivery/highlights/20180820/curling_) or the URI for a MediaStore container,
      plus a file name prefix (for example, mediastoressl://sportsDelivery/20180820/curling_). The
      final file names consist of the prefix from the destination field (for example, "curling_") +
      name modifier + the counter (5 digits, starting from 00001) + extension (which is always
      .jpg). For example, curlingLow.00001.jpg

        - **DestinationRefId** *(string) --* Placeholder documentation for __string

    - **HlsGroupSettings** *(dict) --* Hls Group Settings

      - **AdMarkers** *(list) --* Choose one or more ad marker types to pass SCTE35 signals through
      to this group of Apple HLS outputs.

        - *(string) --* Hls Ad Markers

      - **BaseUrlContent** *(string) --* A partial URI prefix that will be prepended to each output
      in the media .m3u8 file. Can be used if base manifest is delivered from a different URL than
      the main .m3u8 file.

      - **BaseUrlManifest** *(string) --* A partial URI prefix that will be prepended to each output
      in the media .m3u8 file. Can be used if base manifest is delivered from a different URL than
      the main .m3u8 file.

      - **CaptionLanguageMappings** *(list) --* Mapping of up to 4 caption channels to caption
      languages. Is only meaningful if captionLanguageSetting is set to "insert".

        - *(dict) --* Maps a caption channel to an ISO 693-2 language code
        (http://www.loc.gov/standards/iso639-2), with an optional description.

          - **CaptionChannel** *(integer) --* **[REQUIRED]** The closed caption channel being
          described by this CaptionLanguageMapping. Each channel mapping must have a unique channel
          number (maximum of 4)

          - **LanguageCode** *(string) --* **[REQUIRED]** Three character ISO 639-2 language code
          (see http://www.loc.gov/standards/iso639-2)

          - **LanguageDescription** *(string) --* **[REQUIRED]** Textual description of language

      - **CaptionLanguageSetting** *(string) --* Applies only to 608 Embedded output captions.
      insert: Include CLOSED-CAPTIONS lines in the manifest. Specify at least one language in the
      CC1 Language Code field. One CLOSED-CAPTION line is added for each Language Code you specify.
      Make sure to specify the languages in the order in which they appear in the original source
      (if the source is embedded format) or the order of the caption selectors (if the source is
      other than embedded). Otherwise, languages in the manifest will not match up properly with the
      output captions. none: Include CLOSED-CAPTIONS=NONE line in the manifest. omit: Omit any
      CLOSED-CAPTIONS line from the manifest.

      - **ClientCache** *(string) --* When set to "disabled", sets the #EXT-X-ALLOW-CACHE:no tag in
      the manifest, which prevents clients from saving media segments for later replay.

      - **CodecSpecification** *(string) --* Specification to use (RFC-6381 or the default RFC-4281)
      during m3u8 playlist generation.

      - **ConstantIv** *(string) --* For use with encryptionType. This is a 128-bit, 16-byte hex
      value represented by a 32-character text string. If ivSource is set to "explicit" then this
      parameter is required and is used as the IV for encryption.

      - **Destination** *(dict) --* **[REQUIRED]** A directory or HTTP destination for the HLS
      segments, manifest files, and encryption keys (if enabled).

        - **DestinationRefId** *(string) --* Placeholder documentation for __string

      - **DirectoryStructure** *(string) --* Place segments in subdirectories.

      - **EncryptionType** *(string) --* Encrypts the segments with the given encryption scheme.
      Exclude this parameter if no encryption is desired.

      - **HlsCdnSettings** *(dict) --* Parameters that control interactions with the CDN.

        - **HlsAkamaiSettings** *(dict) --* Hls Akamai Settings

          - **ConnectionRetryInterval** *(integer) --* Number of seconds to wait before retrying
          connection to the CDN if the connection is lost.

          - **FilecacheDuration** *(integer) --* Size in seconds of file cache for streaming
          outputs.

          - **HttpTransferMode** *(string) --* Specify whether or not to use chunked transfer
          encoding to Akamai. User should contact Akamai to enable this feature.

          - **NumRetries** *(integer) --* Number of retry attempts that will be made before the Live
          Event is put into an error state.

          - **RestartDelay** *(integer) --* If a streaming output fails, number of seconds to wait
          until a restart is initiated. A value of 0 means never restart.

          - **Salt** *(string) --* Salt for authenticated Akamai.

          - **Token** *(string) --* Token parameter for authenticated akamai. If not specified,
          _gda_ is used.

        - **HlsBasicPutSettings** *(dict) --* Hls Basic Put Settings

          - **ConnectionRetryInterval** *(integer) --* Number of seconds to wait before retrying
          connection to the CDN if the connection is lost.

          - **FilecacheDuration** *(integer) --* Size in seconds of file cache for streaming
          outputs.

          - **NumRetries** *(integer) --* Number of retry attempts that will be made before the Live
          Event is put into an error state.

          - **RestartDelay** *(integer) --* If a streaming output fails, number of seconds to wait
          until a restart is initiated. A value of 0 means never restart.

        - **HlsMediaStoreSettings** *(dict) --* Hls Media Store Settings

          - **ConnectionRetryInterval** *(integer) --* Number of seconds to wait before retrying
          connection to the CDN if the connection is lost.

          - **FilecacheDuration** *(integer) --* Size in seconds of file cache for streaming
          outputs.

          - **MediaStoreStorageClass** *(string) --* When set to temporal, output files are stored
          in non-persistent memory for faster reading and writing.

          - **NumRetries** *(integer) --* Number of retry attempts that will be made before the Live
          Event is put into an error state.

          - **RestartDelay** *(integer) --* If a streaming output fails, number of seconds to wait
          until a restart is initiated. A value of 0 means never restart.

        - **HlsWebdavSettings** *(dict) --* Hls Webdav Settings

          - **ConnectionRetryInterval** *(integer) --* Number of seconds to wait before retrying
          connection to the CDN if the connection is lost.

          - **FilecacheDuration** *(integer) --* Size in seconds of file cache for streaming
          outputs.

          - **HttpTransferMode** *(string) --* Specify whether or not to use chunked transfer
          encoding to WebDAV.

          - **NumRetries** *(integer) --* Number of retry attempts that will be made before the Live
          Event is put into an error state.

          - **RestartDelay** *(integer) --* If a streaming output fails, number of seconds to wait
          until a restart is initiated. A value of 0 means never restart.

      - **IFrameOnlyPlaylists** *(string) --* DISABLED: Do not create an I-frame-only manifest, but
      do create the master and media manifests (according to the Output Selection field). STANDARD:
      Create an I-frame-only manifest for each output that contains video, as well as the other
      manifests (according to the Output Selection field). The I-frame manifest contains a
      #EXT-X-I-FRAMES-ONLY tag to indicate it is I-frame only, and one or more #EXT-X-BYTERANGE
      entries identifying the I-frame position. For example, #EXT-X-BYTERANGE:160364@1461888"

      - **IndexNSegments** *(integer) --* Applies only if Mode field is LIVE. Specifies the maximum
      number of segments in the media manifest file. After this maximum, older segments are removed
      from the media manifest. This number must be less than or equal to the Keep Segments field.

      - **InputLossAction** *(string) --* Parameter that control output group behavior on input
      loss.

      - **IvInManifest** *(string) --* For use with encryptionType. The IV (Initialization Vector)
      is a 128-bit number used in conjunction with the key for encrypting blocks. If set to
      "include", IV is listed in the manifest, otherwise the IV is not in the manifest.

      - **IvSource** *(string) --* For use with encryptionType. The IV (Initialization Vector) is a
      128-bit number used in conjunction with the key for encrypting blocks. If this setting is
      "followsSegmentNumber", it will cause the IV to change every segment (to match the segment
      number). If this is set to "explicit", you must enter a constantIv value.

      - **KeepSegments** *(integer) --* Applies only if Mode field is LIVE. Specifies the number of
      media segments (.ts files) to retain in the destination directory.

      - **KeyFormat** *(string) --* The value specifies how the key is represented in the resource
      identified by the URI. If parameter is absent, an implicit value of "identity" is used. A
      reverse DNS string can also be given.

      - **KeyFormatVersions** *(string) --* Either a single positive integer version value or a
      slash delimited list of version values (1/2/3).

      - **KeyProviderSettings** *(dict) --* The key provider settings.

        - **StaticKeySettings** *(dict) --* Static Key Settings

          - **KeyProviderServer** *(dict) --* The URL of the license server used for protecting
          content.

            - **PasswordParam** *(string) --* key used to extract the password from EC2 Parameter
            store

            - **Uri** *(string) --* **[REQUIRED]** Uniform Resource Identifier - This should be a
            path to a file accessible to the Live system (eg. a http:// URI) depending on the output
            type. For example, a RTMP destination should have a uri simliar to:
            "rtmp://fmsserver/live".

            - **Username** *(string) --* Documentation update needed

          - **StaticKeyValue** *(string) --* **[REQUIRED]** Static key value as a 32 character
          hexadecimal string.

      - **ManifestCompression** *(string) --* When set to gzip, compresses HLS playlist.

      - **ManifestDurationFormat** *(string) --* Indicates whether the output manifest should use
      floating point or integer values for segment duration.

      - **MinSegmentLength** *(integer) --* When set, minimumSegmentLength is enforced by looking
      ahead and back within the specified range for a nearby avail and extending the segment size if
      needed.

      - **Mode** *(string) --* If "vod", all segments are indexed and kept permanently in the
      destination and manifest. If "live", only the number segments specified in keepSegments and
      indexNSegments are kept; newer segments replace older segments, which may prevent players from
      rewinding all the way to the beginning of the event. VOD mode uses HLS EXT-X-PLAYLIST-TYPE of
      EVENT while the channel is running, converting it to a "VOD" type manifest on completion of
      the stream.

      - **OutputSelection** *(string) --* MANIFESTSANDSEGMENTS: Generates manifests (master
      manifest, if applicable, and media manifests) for this output group. SEGMENTSONLY: Does not
      generate any manifests for this output group.

      - **ProgramDateTime** *(string) --* Includes or excludes EXT-X-PROGRAM-DATE-TIME tag in .m3u8
      manifest files. The value is calculated as follows: either the program date and time are
      initialized using the input timecode source, or the time is initialized using the input
      timecode source and the date is initialized using the timestampOffset.

      - **ProgramDateTimePeriod** *(integer) --* Period of insertion of EXT-X-PROGRAM-DATE-TIME
      entry, in seconds.

      - **RedundantManifest** *(string) --* ENABLED: The master manifest (.m3u8 file) for each
      pipeline includes information about both pipelines: first its own media files, then the media
      files of the other pipeline. This feature allows playout device that support stale manifest
      detection to switch from one manifest to the other, when the current manifest seems to be
      stale. There are still two destinations and two master manifests, but both master manifests
      reference the media files from both pipelines. DISABLED: The master manifest (.m3u8 file) for
      each pipeline includes information about its own pipeline only. For an HLS output group with
      MediaPackage as the destination, the DISABLED behavior is always followed. MediaPackage
      regenerates the manifests it serves to players so a redundant manifest from MediaLive is
      irrelevant.

      - **SegmentLength** *(integer) --* Length of MPEG-2 Transport Stream segments to create (in
      seconds). Note that segments will end on the next keyframe after this number of seconds, so
      actual segment length may be longer.

      - **SegmentationMode** *(string) --* useInputSegmentation has been deprecated. The configured
      segment size is always used.

      - **SegmentsPerSubdirectory** *(integer) --* Number of segments to write to a subdirectory
      before starting a new one. directoryStructure must be subdirectoryPerStream for this setting
      to have an effect.

      - **StreamInfResolution** *(string) --* Include or exclude RESOLUTION attribute for video in
      EXT-X-STREAM-INF tag of variant manifest.

      - **TimedMetadataId3Frame** *(string) --* Indicates ID3 frame that has the timecode.

      - **TimedMetadataId3Period** *(integer) --* Timed Metadata interval in seconds.

      - **TimestampDeltaMilliseconds** *(integer) --* Provides an extra millisecond delta offset to
      fine tune the timestamps.

      - **TsFileMode** *(string) --* SEGMENTEDFILES: Emit the program as segments - multiple .ts
      media files. SINGLEFILE: Applies only if Mode field is VOD. Emit the program as a single .ts
      media file. The media manifest includes #EXT-X-BYTERANGE tags to index segments for playback.
      A typical use for this value is when sending the output to AWS Elemental MediaConvert, which
      can accept only a single media file. Playback while the channel is running is not guaranteed
      due to HTTP server caching.

    - **MediaPackageGroupSettings** *(dict) --* Media Package Group Settings

      - **Destination** *(dict) --* **[REQUIRED]** MediaPackage channel destination.

        - **DestinationRefId** *(string) --* Placeholder documentation for __string

    - **MsSmoothGroupSettings** *(dict) --* Ms Smooth Group Settings

      - **AcquisitionPointId** *(string) --* The value of the "Acquisition Point Identity" element
      used in each message placed in the sparse track. Only enabled if sparseTrackType is not
      "none".

      - **AudioOnlyTimecodeControl** *(string) --* If set to passthrough for an audio-only MS Smooth
      output, the fragment absolute time will be set to the current timecode. This option does not
      write timecodes to the audio elementary stream.

      - **CertificateMode** *(string) --* If set to verifyAuthenticity, verify the https certificate
      chain to a trusted Certificate Authority (CA). This will cause https outputs to self-signed
      certificates to fail.

      - **ConnectionRetryInterval** *(integer) --* Number of seconds to wait before retrying
      connection to the IIS server if the connection is lost. Content will be cached during this
      time and the cache will be be delivered to the IIS server once the connection is
      re-established.

      - **Destination** *(dict) --* **[REQUIRED]** Smooth Streaming publish point on an IIS server.
      Elemental Live acts as a "Push" encoder to IIS.

        - **DestinationRefId** *(string) --* Placeholder documentation for __string

      - **EventId** *(string) --* MS Smooth event ID to be sent to the IIS server. Should only be
      specified if eventIdMode is set to useConfigured.

      - **EventIdMode** *(string) --* Specifies whether or not to send an event ID to the IIS
      server. If no event ID is sent and the same Live Event is used without changing the publishing
      point, clients might see cached video from the previous run. Options: - "useConfigured" - use
      the value provided in eventId - "useTimestamp" - generate and send an event ID based on the
      current timestamp - "noEventId" - do not send an event ID to the IIS server.

      - **EventStopBehavior** *(string) --* When set to sendEos, send EOS signal to IIS server when
      stopping the event

      - **FilecacheDuration** *(integer) --* Size in seconds of file cache for streaming outputs.

      - **FragmentLength** *(integer) --* Length of mp4 fragments to generate (in seconds). Fragment
      length must be compatible with GOP size and framerate.

      - **InputLossAction** *(string) --* Parameter that control output group behavior on input
      loss.

      - **NumRetries** *(integer) --* Number of retry attempts.

      - **RestartDelay** *(integer) --* Number of seconds before initiating a restart due to output
      failure, due to exhausting the numRetries on one segment, or exceeding filecacheDuration.

      - **SegmentationMode** *(string) --* useInputSegmentation has been deprecated. The configured
      segment size is always used.

      - **SendDelayMs** *(integer) --* Number of milliseconds to delay the output from the second
      pipeline.

      - **SparseTrackType** *(string) --* If set to scte35, use incoming SCTE-35 messages to
      generate a sparse track in this group of MS-Smooth outputs.

      - **StreamManifestBehavior** *(string) --* When set to send, send stream manifest so
      publishing point doesn't start until all streams start.

      - **TimestampOffset** *(string) --* Timestamp offset for the event. Only used if
      timestampOffsetMode is set to useConfiguredOffset.

      - **TimestampOffsetMode** *(string) --* Type of timestamp date offset to use. -
      useEventStartDate: Use the date the event was started as the offset - useConfiguredOffset: Use
      an explicitly configured date as the offset

    - **MultiplexGroupSettings** *(dict) --* Multiplex Group Settings

    - **RtmpGroupSettings** *(dict) --* Rtmp Group Settings

      - **AuthenticationScheme** *(string) --* Authentication scheme to use when connecting with CDN

      - **CacheFullBehavior** *(string) --* Controls behavior when content cache fills up. If remote
      origin server stalls the RTMP connection and does not accept content fast enough the 'Media
      Cache' will fill up. When the cache reaches the duration specified by cacheLength the cache
      will stop accepting new content. If set to disconnectImmediately, the RTMP output will force a
      disconnect. Clear the media cache, and reconnect after restartDelay seconds. If set to
      waitForServer, the RTMP output will wait up to 5 minutes to allow the origin server to begin
      accepting data again.

      - **CacheLength** *(integer) --* Cache length, in seconds, is used to calculate buffer size.

      - **CaptionData** *(string) --* Controls the types of data that passes to onCaptionInfo
      outputs. If set to 'all' then 608 and 708 carried DTVCC data will be passed. If set to
      'field1AndField2608' then DTVCC data will be stripped out, but 608 data from both fields will
      be passed. If set to 'field1608' then only the data carried in 608 from field 1 video will be
      passed.

      - **InputLossAction** *(string) --* Controls the behavior of this RTMP group if input becomes
      unavailable. - emitOutput: Emit a slate until input returns. - pauseOutput: Stop transmitting
      data until input returns. This does not close the underlying RTMP connection.

      - **RestartDelay** *(integer) --* If a streaming output fails, number of seconds to wait until
      a restart is initiated. A value of 0 means never restart.

    - **UdpGroupSettings** *(dict) --* Udp Group Settings

      - **InputLossAction** *(string) --* Specifies behavior of last resort when input video is
      lost, and no more backup inputs are available. When dropTs is selected the entire transport
      stream will stop being emitted. When dropProgram is selected the program can be dropped from
      the transport stream (and replaced with null packets to meet the TS bitrate requirement). Or,
      when emitProgram is chosen the transport stream will continue to be produced normally with
      repeat frames, black frames, or slate frames substituted for the absent input video.

      - **TimedMetadataId3Frame** *(string) --* Indicates ID3 frame that has the timecode.

      - **TimedMetadataId3Period** *(integer) --* Timed Metadata interval in seconds.
    """


_RequiredClientUpdateChannelEncoderSettingsOutputGroupsOutputsOutputSettingsArchiveOutputSettingsContainerSettingsM2tsSettingsDvbNitSettingsTypeDef = TypedDict(
    "_RequiredClientUpdateChannelEncoderSettingsOutputGroupsOutputsOutputSettingsArchiveOutputSettingsContainerSettingsM2tsSettingsDvbNitSettingsTypeDef",
    {"NetworkId": int, "NetworkName": str},
)
_OptionalClientUpdateChannelEncoderSettingsOutputGroupsOutputsOutputSettingsArchiveOutputSettingsContainerSettingsM2tsSettingsDvbNitSettingsTypeDef = TypedDict(
    "_OptionalClientUpdateChannelEncoderSettingsOutputGroupsOutputsOutputSettingsArchiveOutputSettingsContainerSettingsM2tsSettingsDvbNitSettingsTypeDef",
    {"RepInterval": int},
    total=False,
)


class ClientUpdateChannelEncoderSettingsOutputGroupsOutputsOutputSettingsArchiveOutputSettingsContainerSettingsM2tsSettingsDvbNitSettingsTypeDef(
    _RequiredClientUpdateChannelEncoderSettingsOutputGroupsOutputsOutputSettingsArchiveOutputSettingsContainerSettingsM2tsSettingsDvbNitSettingsTypeDef,
    _OptionalClientUpdateChannelEncoderSettingsOutputGroupsOutputsOutputSettingsArchiveOutputSettingsContainerSettingsM2tsSettingsDvbNitSettingsTypeDef,
):
    """
    Type definition for
    `ClientUpdateChannelEncoderSettingsOutputGroupsOutputsOutputSettingsArchiveOutputSettingsContainerSettingsM2tsSettings`
    `DvbNitSettings`

    - **NetworkId** *(integer) --* **[REQUIRED]** The numeric value placed in the Network
    Information Table (NIT).

    - **NetworkName** *(string) --* **[REQUIRED]** The network name text placed in the
    networkNameDescriptor inside the Network Information Table. Maximum length is 256 characters.

    - **RepInterval** *(integer) --* The number of milliseconds between instances of this table in
    the output transport stream.
    """


_ClientUpdateChannelEncoderSettingsOutputGroupsOutputsOutputSettingsArchiveOutputSettingsContainerSettingsM2tsSettingsDvbSdtSettingsTypeDef = TypedDict(
    "_ClientUpdateChannelEncoderSettingsOutputGroupsOutputsOutputSettingsArchiveOutputSettingsContainerSettingsM2tsSettingsDvbSdtSettingsTypeDef",
    {"OutputSdt": str, "RepInterval": int, "ServiceName": str, "ServiceProviderName": str},
    total=False,
)


class ClientUpdateChannelEncoderSettingsOutputGroupsOutputsOutputSettingsArchiveOutputSettingsContainerSettingsM2tsSettingsDvbSdtSettingsTypeDef(
    _ClientUpdateChannelEncoderSettingsOutputGroupsOutputsOutputSettingsArchiveOutputSettingsContainerSettingsM2tsSettingsDvbSdtSettingsTypeDef
):
    """
    Type definition for
    `ClientUpdateChannelEncoderSettingsOutputGroupsOutputsOutputSettingsArchiveOutputSettingsContainerSettingsM2tsSettings`
    `DvbSdtSettings`

    - **OutputSdt** *(string) --* Selects method of inserting SDT information into output stream.
    The sdtFollow setting copies SDT information from input stream to output stream. The
    sdtFollowIfPresent setting copies SDT information from input stream to output stream if SDT
    information is present in the input, otherwise it will fall back on the user-defined values. The
    sdtManual setting means user will enter the SDT information. The sdtNone setting means output
    stream will not contain SDT information.

    - **RepInterval** *(integer) --* The number of milliseconds between instances of this table in
    the output transport stream.

    - **ServiceName** *(string) --* The service name placed in the serviceDescriptor in the Service
    Description Table. Maximum length is 256 characters.

    - **ServiceProviderName** *(string) --* The service provider name placed in the
    serviceDescriptor in the Service Description Table. Maximum length is 256 characters.
    """


_ClientUpdateChannelEncoderSettingsOutputGroupsOutputsOutputSettingsArchiveOutputSettingsContainerSettingsM2tsSettingsDvbTdtSettingsTypeDef = TypedDict(
    "_ClientUpdateChannelEncoderSettingsOutputGroupsOutputsOutputSettingsArchiveOutputSettingsContainerSettingsM2tsSettingsDvbTdtSettingsTypeDef",
    {"RepInterval": int},
    total=False,
)


class ClientUpdateChannelEncoderSettingsOutputGroupsOutputsOutputSettingsArchiveOutputSettingsContainerSettingsM2tsSettingsDvbTdtSettingsTypeDef(
    _ClientUpdateChannelEncoderSettingsOutputGroupsOutputsOutputSettingsArchiveOutputSettingsContainerSettingsM2tsSettingsDvbTdtSettingsTypeDef
):
    """
    Type definition for
    `ClientUpdateChannelEncoderSettingsOutputGroupsOutputsOutputSettingsArchiveOutputSettingsContainerSettingsM2tsSettings`
    `DvbTdtSettings`

    - **RepInterval** *(integer) --* The number of milliseconds between instances of this table in
    the output transport stream.
    """


_ClientUpdateChannelEncoderSettingsOutputGroupsOutputsOutputSettingsArchiveOutputSettingsContainerSettingsM2tsSettingsTypeDef = TypedDict(
    "_ClientUpdateChannelEncoderSettingsOutputGroupsOutputsOutputSettingsArchiveOutputSettingsContainerSettingsM2tsSettingsTypeDef",
    {
        "AbsentInputAudioBehavior": str,
        "Arib": str,
        "AribCaptionsPid": str,
        "AribCaptionsPidControl": str,
        "AudioBufferModel": str,
        "AudioFramesPerPes": int,
        "AudioPids": str,
        "AudioStreamType": str,
        "Bitrate": int,
        "BufferModel": str,
        "CcDescriptor": str,
        "DvbNitSettings": ClientUpdateChannelEncoderSettingsOutputGroupsOutputsOutputSettingsArchiveOutputSettingsContainerSettingsM2tsSettingsDvbNitSettingsTypeDef,
        "DvbSdtSettings": ClientUpdateChannelEncoderSettingsOutputGroupsOutputsOutputSettingsArchiveOutputSettingsContainerSettingsM2tsSettingsDvbSdtSettingsTypeDef,
        "DvbSubPids": str,
        "DvbTdtSettings": ClientUpdateChannelEncoderSettingsOutputGroupsOutputsOutputSettingsArchiveOutputSettingsContainerSettingsM2tsSettingsDvbTdtSettingsTypeDef,
        "DvbTeletextPid": str,
        "Ebif": str,
        "EbpAudioInterval": str,
        "EbpLookaheadMs": int,
        "EbpPlacement": str,
        "EcmPid": str,
        "EsRateInPes": str,
        "EtvPlatformPid": str,
        "EtvSignalPid": str,
        "FragmentTime": float,
        "Klv": str,
        "KlvDataPids": str,
        "NielsenId3Behavior": str,
        "NullPacketBitrate": float,
        "PatInterval": int,
        "PcrControl": str,
        "PcrPeriod": int,
        "PcrPid": str,
        "PmtInterval": int,
        "PmtPid": str,
        "ProgramNum": int,
        "RateMode": str,
        "Scte27Pids": str,
        "Scte35Control": str,
        "Scte35Pid": str,
        "SegmentationMarkers": str,
        "SegmentationStyle": str,
        "SegmentationTime": float,
        "TimedMetadataBehavior": str,
        "TimedMetadataPid": str,
        "TransportStreamId": int,
        "VideoPid": str,
    },
    total=False,
)


class ClientUpdateChannelEncoderSettingsOutputGroupsOutputsOutputSettingsArchiveOutputSettingsContainerSettingsM2tsSettingsTypeDef(
    _ClientUpdateChannelEncoderSettingsOutputGroupsOutputsOutputSettingsArchiveOutputSettingsContainerSettingsM2tsSettingsTypeDef
):
    """
    Type definition for
    `ClientUpdateChannelEncoderSettingsOutputGroupsOutputsOutputSettingsArchiveOutputSettingsContainerSettings`
    `M2tsSettings`

    - **AbsentInputAudioBehavior** *(string) --* When set to drop, output audio streams will be
    removed from the program if the selected input audio stream is removed from the input. This
    allows the output audio configuration to dynamically change based on input configuration. If
    this is set to encodeSilence, all output audio streams will output encoded silence when not
    connected to an active input stream.

    - **Arib** *(string) --* When set to enabled, uses ARIB-compliant field muxing and removes video
    descriptor.

    - **AribCaptionsPid** *(string) --* Packet Identifier (PID) for ARIB Captions in the transport
    stream. Can be entered as a decimal or hexadecimal value. Valid values are 32 (or 0x20)..8182
    (or 0x1ff6).

    - **AribCaptionsPidControl** *(string) --* If set to auto, pid number used for ARIB Captions
    will be auto-selected from unused pids. If set to useConfigured, ARIB Captions will be on the
    configured pid number.

    - **AudioBufferModel** *(string) --* When set to dvb, uses DVB buffer model for Dolby Digital
    audio. When set to atsc, the ATSC model is used.

    - **AudioFramesPerPes** *(integer) --* The number of audio frames to insert for each PES packet.

    - **AudioPids** *(string) --* Packet Identifier (PID) of the elementary audio stream(s) in the
    transport stream. Multiple values are accepted, and can be entered in ranges and/or by comma
    separation. Can be entered as decimal or hexadecimal values. Each PID specified must be in the
    range of 32 (or 0x20)..8182 (or 0x1ff6).

    - **AudioStreamType** *(string) --* When set to atsc, uses stream type = 0x81 for AC3 and stream
    type = 0x87 for EAC3. When set to dvb, uses stream type = 0x06.

    - **Bitrate** *(integer) --* The output bitrate of the transport stream in bits per second.
    Setting to 0 lets the muxer automatically determine the appropriate bitrate.

    - **BufferModel** *(string) --* If set to multiplex, use multiplex buffer model for accurate
    interleaving. Setting to bufferModel to none can lead to lower latency, but low-memory devices
    may not be able to play back the stream without interruptions.

    - **CcDescriptor** *(string) --* When set to enabled, generates captionServiceDescriptor in PMT.

    - **DvbNitSettings** *(dict) --* Inserts DVB Network Information Table (NIT) at the specified
    table repetition interval.

      - **NetworkId** *(integer) --* **[REQUIRED]** The numeric value placed in the Network
      Information Table (NIT).

      - **NetworkName** *(string) --* **[REQUIRED]** The network name text placed in the
      networkNameDescriptor inside the Network Information Table. Maximum length is 256 characters.

      - **RepInterval** *(integer) --* The number of milliseconds between instances of this table in
      the output transport stream.

    - **DvbSdtSettings** *(dict) --* Inserts DVB Service Description Table (SDT) at the specified
    table repetition interval.

      - **OutputSdt** *(string) --* Selects method of inserting SDT information into output stream.
      The sdtFollow setting copies SDT information from input stream to output stream. The
      sdtFollowIfPresent setting copies SDT information from input stream to output stream if SDT
      information is present in the input, otherwise it will fall back on the user-defined values.
      The sdtManual setting means user will enter the SDT information. The sdtNone setting means
      output stream will not contain SDT information.

      - **RepInterval** *(integer) --* The number of milliseconds between instances of this table in
      the output transport stream.

      - **ServiceName** *(string) --* The service name placed in the serviceDescriptor in the
      Service Description Table. Maximum length is 256 characters.

      - **ServiceProviderName** *(string) --* The service provider name placed in the
      serviceDescriptor in the Service Description Table. Maximum length is 256 characters.

    - **DvbSubPids** *(string) --* Packet Identifier (PID) for input source DVB Subtitle data to
    this output. Multiple values are accepted, and can be entered in ranges and/or by comma
    separation. Can be entered as decimal or hexadecimal values. Each PID specified must be in the
    range of 32 (or 0x20)..8182 (or 0x1ff6).

    - **DvbTdtSettings** *(dict) --* Inserts DVB Time and Date Table (TDT) at the specified table
    repetition interval.

      - **RepInterval** *(integer) --* The number of milliseconds between instances of this table in
      the output transport stream.

    - **DvbTeletextPid** *(string) --* Packet Identifier (PID) for input source DVB Teletext data to
    this output. Can be entered as a decimal or hexadecimal value. Valid values are 32 (or
    0x20)..8182 (or 0x1ff6).

    - **Ebif** *(string) --* If set to passthrough, passes any EBIF data from the input source to
    this output.

    - **EbpAudioInterval** *(string) --* When videoAndFixedIntervals is selected, audio EBP markers
    will be added to partitions 3 and 4. The interval between these additional markers will be
    fixed, and will be slightly shorter than the video EBP marker interval. Only available when EBP
    Cablelabs segmentation markers are selected. Partitions 1 and 2 will always follow the video
    interval.

    - **EbpLookaheadMs** *(integer) --* When set, enforces that Encoder Boundary Points do not come
    within the specified time interval of each other by looking ahead at input video. If another EBP
    is going to come in within the specified time interval, the current EBP is not emitted, and the
    segment is "stretched" to the next marker. The lookahead value does not add latency to the
    system. The Live Event must be configured elsewhere to create sufficient latency to make the
    lookahead accurate.

    - **EbpPlacement** *(string) --* Controls placement of EBP on Audio PIDs. If set to
    videoAndAudioPids, EBP markers will be placed on the video PID and all audio PIDs. If set to
    videoPid, EBP markers will be placed on only the video PID.

    - **EcmPid** *(string) --* This field is unused and deprecated.

    - **EsRateInPes** *(string) --* Include or exclude the ES Rate field in the PES header.

    - **EtvPlatformPid** *(string) --* Packet Identifier (PID) for input source ETV Platform data to
    this output. Can be entered as a decimal or hexadecimal value. Valid values are 32 (or
    0x20)..8182 (or 0x1ff6).

    - **EtvSignalPid** *(string) --* Packet Identifier (PID) for input source ETV Signal data to
    this output. Can be entered as a decimal or hexadecimal value. Valid values are 32 (or
    0x20)..8182 (or 0x1ff6).

    - **FragmentTime** *(float) --* The length in seconds of each fragment. Only used with EBP
    markers.

    - **Klv** *(string) --* If set to passthrough, passes any KLV data from the input source to this
    output.

    - **KlvDataPids** *(string) --* Packet Identifier (PID) for input source KLV data to this
    output. Multiple values are accepted, and can be entered in ranges and/or by comma separation.
    Can be entered as decimal or hexadecimal values. Each PID specified must be in the range of 32
    (or 0x20)..8182 (or 0x1ff6).

    - **NielsenId3Behavior** *(string) --* If set to passthrough, Nielsen inaudible tones for media
    tracking will be detected in the input audio and an equivalent ID3 tag will be inserted in the
    output.

    - **NullPacketBitrate** *(float) --* Value in bits per second of extra null packets to insert
    into the transport stream. This can be used if a downstream encryption system requires periodic
    null packets.

    - **PatInterval** *(integer) --* The number of milliseconds between instances of this table in
    the output transport stream. Valid values are 0, 10..1000.

    - **PcrControl** *(string) --* When set to pcrEveryPesPacket, a Program Clock Reference value is
    inserted for every Packetized Elementary Stream (PES) header. This parameter is effective only
    when the PCR PID is the same as the video or audio elementary stream.

    - **PcrPeriod** *(integer) --* Maximum time in milliseconds between Program Clock Reference
    (PCRs) inserted into the transport stream.

    - **PcrPid** *(string) --* Packet Identifier (PID) of the Program Clock Reference (PCR) in the
    transport stream. When no value is given, the encoder will assign the same value as the Video
    PID. Can be entered as a decimal or hexadecimal value. Valid values are 32 (or 0x20)..8182 (or
    0x1ff6).

    - **PmtInterval** *(integer) --* The number of milliseconds between instances of this table in
    the output transport stream. Valid values are 0, 10..1000.

    - **PmtPid** *(string) --* Packet Identifier (PID) for the Program Map Table (PMT) in the
    transport stream. Can be entered as a decimal or hexadecimal value. Valid values are 32 (or
    0x20)..8182 (or 0x1ff6).

    - **ProgramNum** *(integer) --* The value of the program number field in the Program Map Table.

    - **RateMode** *(string) --* When vbr, does not insert null packets into transport stream to
    fill specified bitrate. The bitrate setting acts as the maximum bitrate when vbr is set.

    - **Scte27Pids** *(string) --* Packet Identifier (PID) for input source SCTE-27 data to this
    output. Multiple values are accepted, and can be entered in ranges and/or by comma separation.
    Can be entered as decimal or hexadecimal values. Each PID specified must be in the range of 32
    (or 0x20)..8182 (or 0x1ff6).

    - **Scte35Control** *(string) --* Optionally pass SCTE-35 signals from the input source to this
    output.

    - **Scte35Pid** *(string) --* Packet Identifier (PID) of the SCTE-35 stream in the transport
    stream. Can be entered as a decimal or hexadecimal value. Valid values are 32 (or 0x20)..8182
    (or 0x1ff6).

    - **SegmentationMarkers** *(string) --* Inserts segmentation markers at each segmentationTime
    period. raiSegstart sets the Random Access Indicator bit in the adaptation field. raiAdapt sets
    the RAI bit and adds the current timecode in the private data bytes. psiSegstart inserts PAT and
    PMT tables at the start of segments. ebp adds Encoder Boundary Point information to the
    adaptation field as per OpenCable specification OC-SP-EBP-I01-130118. ebpLegacy adds Encoder
    Boundary Point information to the adaptation field using a legacy proprietary format.

    - **SegmentationStyle** *(string) --* The segmentation style parameter controls how segmentation
    markers are inserted into the transport stream. With avails, it is possible that segments may be
    truncated, which can influence where future segmentation markers are inserted. When a
    segmentation style of "resetCadence" is selected and a segment is truncated due to an avail, we
    will reset the segmentation cadence. This means the subsequent segment will have a duration of
    $segmentationTime seconds. When a segmentation style of "maintainCadence" is selected and a
    segment is truncated due to an avail, we will not reset the segmentation cadence. This means the
    subsequent segment will likely be truncated as well. However, all segments after that will have
    a duration of $segmentationTime seconds. Note that EBP lookahead is a slight exception to this
    rule.

    - **SegmentationTime** *(float) --* The length in seconds of each segment. Required unless
    markers is set to None_.

    - **TimedMetadataBehavior** *(string) --* When set to passthrough, timed metadata will be passed
    through from input to output.

    - **TimedMetadataPid** *(string) --* Packet Identifier (PID) of the timed metadata stream in the
    transport stream. Can be entered as a decimal or hexadecimal value. Valid values are 32 (or
    0x20)..8182 (or 0x1ff6).

    - **TransportStreamId** *(integer) --* The value of the transport stream ID field in the Program
    Map Table.

    - **VideoPid** *(string) --* Packet Identifier (PID) of the elementary video stream in the
    transport stream. Can be entered as a decimal or hexadecimal value. Valid values are 32 (or
    0x20)..8182 (or 0x1ff6).
    """


_ClientUpdateChannelEncoderSettingsOutputGroupsOutputsOutputSettingsArchiveOutputSettingsContainerSettingsTypeDef = TypedDict(
    "_ClientUpdateChannelEncoderSettingsOutputGroupsOutputsOutputSettingsArchiveOutputSettingsContainerSettingsTypeDef",
    {
        "M2tsSettings": ClientUpdateChannelEncoderSettingsOutputGroupsOutputsOutputSettingsArchiveOutputSettingsContainerSettingsM2tsSettingsTypeDef
    },
    total=False,
)


class ClientUpdateChannelEncoderSettingsOutputGroupsOutputsOutputSettingsArchiveOutputSettingsContainerSettingsTypeDef(
    _ClientUpdateChannelEncoderSettingsOutputGroupsOutputsOutputSettingsArchiveOutputSettingsContainerSettingsTypeDef
):
    """
    Type definition for
    `ClientUpdateChannelEncoderSettingsOutputGroupsOutputsOutputSettingsArchiveOutputSettings`
    `ContainerSettings`

    - **M2tsSettings** *(dict) --* M2ts Settings

      - **AbsentInputAudioBehavior** *(string) --* When set to drop, output audio streams will be
      removed from the program if the selected input audio stream is removed from the input. This
      allows the output audio configuration to dynamically change based on input configuration. If
      this is set to encodeSilence, all output audio streams will output encoded silence when not
      connected to an active input stream.

      - **Arib** *(string) --* When set to enabled, uses ARIB-compliant field muxing and removes
      video descriptor.

      - **AribCaptionsPid** *(string) --* Packet Identifier (PID) for ARIB Captions in the transport
      stream. Can be entered as a decimal or hexadecimal value. Valid values are 32 (or 0x20)..8182
      (or 0x1ff6).

      - **AribCaptionsPidControl** *(string) --* If set to auto, pid number used for ARIB Captions
      will be auto-selected from unused pids. If set to useConfigured, ARIB Captions will be on the
      configured pid number.

      - **AudioBufferModel** *(string) --* When set to dvb, uses DVB buffer model for Dolby Digital
      audio. When set to atsc, the ATSC model is used.

      - **AudioFramesPerPes** *(integer) --* The number of audio frames to insert for each PES
      packet.

      - **AudioPids** *(string) --* Packet Identifier (PID) of the elementary audio stream(s) in the
      transport stream. Multiple values are accepted, and can be entered in ranges and/or by comma
      separation. Can be entered as decimal or hexadecimal values. Each PID specified must be in the
      range of 32 (or 0x20)..8182 (or 0x1ff6).

      - **AudioStreamType** *(string) --* When set to atsc, uses stream type = 0x81 for AC3 and
      stream type = 0x87 for EAC3. When set to dvb, uses stream type = 0x06.

      - **Bitrate** *(integer) --* The output bitrate of the transport stream in bits per second.
      Setting to 0 lets the muxer automatically determine the appropriate bitrate.

      - **BufferModel** *(string) --* If set to multiplex, use multiplex buffer model for accurate
      interleaving. Setting to bufferModel to none can lead to lower latency, but low-memory devices
      may not be able to play back the stream without interruptions.

      - **CcDescriptor** *(string) --* When set to enabled, generates captionServiceDescriptor in
      PMT.

      - **DvbNitSettings** *(dict) --* Inserts DVB Network Information Table (NIT) at the specified
      table repetition interval.

        - **NetworkId** *(integer) --* **[REQUIRED]** The numeric value placed in the Network
        Information Table (NIT).

        - **NetworkName** *(string) --* **[REQUIRED]** The network name text placed in the
        networkNameDescriptor inside the Network Information Table. Maximum length is 256
        characters.

        - **RepInterval** *(integer) --* The number of milliseconds between instances of this table
        in the output transport stream.

      - **DvbSdtSettings** *(dict) --* Inserts DVB Service Description Table (SDT) at the specified
      table repetition interval.

        - **OutputSdt** *(string) --* Selects method of inserting SDT information into output
        stream. The sdtFollow setting copies SDT information from input stream to output stream. The
        sdtFollowIfPresent setting copies SDT information from input stream to output stream if SDT
        information is present in the input, otherwise it will fall back on the user-defined values.
        The sdtManual setting means user will enter the SDT information. The sdtNone setting means
        output stream will not contain SDT information.

        - **RepInterval** *(integer) --* The number of milliseconds between instances of this table
        in the output transport stream.

        - **ServiceName** *(string) --* The service name placed in the serviceDescriptor in the
        Service Description Table. Maximum length is 256 characters.

        - **ServiceProviderName** *(string) --* The service provider name placed in the
        serviceDescriptor in the Service Description Table. Maximum length is 256 characters.

      - **DvbSubPids** *(string) --* Packet Identifier (PID) for input source DVB Subtitle data to
      this output. Multiple values are accepted, and can be entered in ranges and/or by comma
      separation. Can be entered as decimal or hexadecimal values. Each PID specified must be in the
      range of 32 (or 0x20)..8182 (or 0x1ff6).

      - **DvbTdtSettings** *(dict) --* Inserts DVB Time and Date Table (TDT) at the specified table
      repetition interval.

        - **RepInterval** *(integer) --* The number of milliseconds between instances of this table
        in the output transport stream.

      - **DvbTeletextPid** *(string) --* Packet Identifier (PID) for input source DVB Teletext data
      to this output. Can be entered as a decimal or hexadecimal value. Valid values are 32 (or
      0x20)..8182 (or 0x1ff6).

      - **Ebif** *(string) --* If set to passthrough, passes any EBIF data from the input source to
      this output.

      - **EbpAudioInterval** *(string) --* When videoAndFixedIntervals is selected, audio EBP
      markers will be added to partitions 3 and 4. The interval between these additional markers
      will be fixed, and will be slightly shorter than the video EBP marker interval. Only available
      when EBP Cablelabs segmentation markers are selected. Partitions 1 and 2 will always follow
      the video interval.

      - **EbpLookaheadMs** *(integer) --* When set, enforces that Encoder Boundary Points do not
      come within the specified time interval of each other by looking ahead at input video. If
      another EBP is going to come in within the specified time interval, the current EBP is not
      emitted, and the segment is "stretched" to the next marker. The lookahead value does not add
      latency to the system. The Live Event must be configured elsewhere to create sufficient
      latency to make the lookahead accurate.

      - **EbpPlacement** *(string) --* Controls placement of EBP on Audio PIDs. If set to
      videoAndAudioPids, EBP markers will be placed on the video PID and all audio PIDs. If set to
      videoPid, EBP markers will be placed on only the video PID.

      - **EcmPid** *(string) --* This field is unused and deprecated.

      - **EsRateInPes** *(string) --* Include or exclude the ES Rate field in the PES header.

      - **EtvPlatformPid** *(string) --* Packet Identifier (PID) for input source ETV Platform data
      to this output. Can be entered as a decimal or hexadecimal value. Valid values are 32 (or
      0x20)..8182 (or 0x1ff6).

      - **EtvSignalPid** *(string) --* Packet Identifier (PID) for input source ETV Signal data to
      this output. Can be entered as a decimal or hexadecimal value. Valid values are 32 (or
      0x20)..8182 (or 0x1ff6).

      - **FragmentTime** *(float) --* The length in seconds of each fragment. Only used with EBP
      markers.

      - **Klv** *(string) --* If set to passthrough, passes any KLV data from the input source to
      this output.

      - **KlvDataPids** *(string) --* Packet Identifier (PID) for input source KLV data to this
      output. Multiple values are accepted, and can be entered in ranges and/or by comma separation.
      Can be entered as decimal or hexadecimal values. Each PID specified must be in the range of 32
      (or 0x20)..8182 (or 0x1ff6).

      - **NielsenId3Behavior** *(string) --* If set to passthrough, Nielsen inaudible tones for
      media tracking will be detected in the input audio and an equivalent ID3 tag will be inserted
      in the output.

      - **NullPacketBitrate** *(float) --* Value in bits per second of extra null packets to insert
      into the transport stream. This can be used if a downstream encryption system requires
      periodic null packets.

      - **PatInterval** *(integer) --* The number of milliseconds between instances of this table in
      the output transport stream. Valid values are 0, 10..1000.

      - **PcrControl** *(string) --* When set to pcrEveryPesPacket, a Program Clock Reference value
      is inserted for every Packetized Elementary Stream (PES) header. This parameter is effective
      only when the PCR PID is the same as the video or audio elementary stream.

      - **PcrPeriod** *(integer) --* Maximum time in milliseconds between Program Clock Reference
      (PCRs) inserted into the transport stream.

      - **PcrPid** *(string) --* Packet Identifier (PID) of the Program Clock Reference (PCR) in the
      transport stream. When no value is given, the encoder will assign the same value as the Video
      PID. Can be entered as a decimal or hexadecimal value. Valid values are 32 (or 0x20)..8182 (or
      0x1ff6).

      - **PmtInterval** *(integer) --* The number of milliseconds between instances of this table in
      the output transport stream. Valid values are 0, 10..1000.

      - **PmtPid** *(string) --* Packet Identifier (PID) for the Program Map Table (PMT) in the
      transport stream. Can be entered as a decimal or hexadecimal value. Valid values are 32 (or
      0x20)..8182 (or 0x1ff6).

      - **ProgramNum** *(integer) --* The value of the program number field in the Program Map
      Table.

      - **RateMode** *(string) --* When vbr, does not insert null packets into transport stream to
      fill specified bitrate. The bitrate setting acts as the maximum bitrate when vbr is set.

      - **Scte27Pids** *(string) --* Packet Identifier (PID) for input source SCTE-27 data to this
      output. Multiple values are accepted, and can be entered in ranges and/or by comma separation.
      Can be entered as decimal or hexadecimal values. Each PID specified must be in the range of 32
      (or 0x20)..8182 (or 0x1ff6).

      - **Scte35Control** *(string) --* Optionally pass SCTE-35 signals from the input source to
      this output.

      - **Scte35Pid** *(string) --* Packet Identifier (PID) of the SCTE-35 stream in the transport
      stream. Can be entered as a decimal or hexadecimal value. Valid values are 32 (or 0x20)..8182
      (or 0x1ff6).

      - **SegmentationMarkers** *(string) --* Inserts segmentation markers at each segmentationTime
      period. raiSegstart sets the Random Access Indicator bit in the adaptation field. raiAdapt
      sets the RAI bit and adds the current timecode in the private data bytes. psiSegstart inserts
      PAT and PMT tables at the start of segments. ebp adds Encoder Boundary Point information to
      the adaptation field as per OpenCable specification OC-SP-EBP-I01-130118. ebpLegacy adds
      Encoder Boundary Point information to the adaptation field using a legacy proprietary format.

      - **SegmentationStyle** *(string) --* The segmentation style parameter controls how
      segmentation markers are inserted into the transport stream. With avails, it is possible that
      segments may be truncated, which can influence where future segmentation markers are inserted.
      When a segmentation style of "resetCadence" is selected and a segment is truncated due to an
      avail, we will reset the segmentation cadence. This means the subsequent segment will have a
      duration of $segmentationTime seconds. When a segmentation style of "maintainCadence" is
      selected and a segment is truncated due to an avail, we will not reset the segmentation
      cadence. This means the subsequent segment will likely be truncated as well. However, all
      segments after that will have a duration of $segmentationTime seconds. Note that EBP lookahead
      is a slight exception to this rule.

      - **SegmentationTime** *(float) --* The length in seconds of each segment. Required unless
      markers is set to None_.

      - **TimedMetadataBehavior** *(string) --* When set to passthrough, timed metadata will be
      passed through from input to output.

      - **TimedMetadataPid** *(string) --* Packet Identifier (PID) of the timed metadata stream in
      the transport stream. Can be entered as a decimal or hexadecimal value. Valid values are 32
      (or 0x20)..8182 (or 0x1ff6).

      - **TransportStreamId** *(integer) --* The value of the transport stream ID field in the
      Program Map Table.

      - **VideoPid** *(string) --* Packet Identifier (PID) of the elementary video stream in the
      transport stream. Can be entered as a decimal or hexadecimal value. Valid values are 32 (or
      0x20)..8182 (or 0x1ff6).
    """


_RequiredClientUpdateChannelEncoderSettingsOutputGroupsOutputsOutputSettingsArchiveOutputSettingsTypeDef = TypedDict(
    "_RequiredClientUpdateChannelEncoderSettingsOutputGroupsOutputsOutputSettingsArchiveOutputSettingsTypeDef",
    {
        "ContainerSettings": ClientUpdateChannelEncoderSettingsOutputGroupsOutputsOutputSettingsArchiveOutputSettingsContainerSettingsTypeDef
    },
)
_OptionalClientUpdateChannelEncoderSettingsOutputGroupsOutputsOutputSettingsArchiveOutputSettingsTypeDef = TypedDict(
    "_OptionalClientUpdateChannelEncoderSettingsOutputGroupsOutputsOutputSettingsArchiveOutputSettingsTypeDef",
    {"Extension": str, "NameModifier": str},
    total=False,
)


class ClientUpdateChannelEncoderSettingsOutputGroupsOutputsOutputSettingsArchiveOutputSettingsTypeDef(
    _RequiredClientUpdateChannelEncoderSettingsOutputGroupsOutputsOutputSettingsArchiveOutputSettingsTypeDef,
    _OptionalClientUpdateChannelEncoderSettingsOutputGroupsOutputsOutputSettingsArchiveOutputSettingsTypeDef,
):
    """
    Type definition for `ClientUpdateChannelEncoderSettingsOutputGroupsOutputsOutputSettings`
    `ArchiveOutputSettings`

    - **ContainerSettings** *(dict) --* **[REQUIRED]** Settings specific to the container type of
    the file.

      - **M2tsSettings** *(dict) --* M2ts Settings

        - **AbsentInputAudioBehavior** *(string) --* When set to drop, output audio streams will be
        removed from the program if the selected input audio stream is removed from the input. This
        allows the output audio configuration to dynamically change based on input configuration. If
        this is set to encodeSilence, all output audio streams will output encoded silence when not
        connected to an active input stream.

        - **Arib** *(string) --* When set to enabled, uses ARIB-compliant field muxing and removes
        video descriptor.

        - **AribCaptionsPid** *(string) --* Packet Identifier (PID) for ARIB Captions in the
        transport stream. Can be entered as a decimal or hexadecimal value. Valid values are 32 (or
        0x20)..8182 (or 0x1ff6).

        - **AribCaptionsPidControl** *(string) --* If set to auto, pid number used for ARIB Captions
        will be auto-selected from unused pids. If set to useConfigured, ARIB Captions will be on
        the configured pid number.

        - **AudioBufferModel** *(string) --* When set to dvb, uses DVB buffer model for Dolby
        Digital audio. When set to atsc, the ATSC model is used.

        - **AudioFramesPerPes** *(integer) --* The number of audio frames to insert for each PES
        packet.

        - **AudioPids** *(string) --* Packet Identifier (PID) of the elementary audio stream(s) in
        the transport stream. Multiple values are accepted, and can be entered in ranges and/or by
        comma separation. Can be entered as decimal or hexadecimal values. Each PID specified must
        be in the range of 32 (or 0x20)..8182 (or 0x1ff6).

        - **AudioStreamType** *(string) --* When set to atsc, uses stream type =
             0x81 for AC3 and
        stream type = 0x87 for EAC3. When set to dvb, uses stream type = 0x06.

        - **Bitrate** *(integer) --* The output bitrate of the transport stream in bits per second.
        Setting to 0 lets the muxer automatically determine the appropriate bitrate.

        - **BufferModel** *(string) --* If set to multiplex, use multiplex buffer model for accurate
        interleaving. Setting to bufferModel to none can lead to lower latency, but low-memory
        devices may not be able to play back the stream without interruptions.

        - **CcDescriptor** *(string) --* When set to enabled, generates captionServiceDescriptor in
        PMT.

        - **DvbNitSettings** *(dict) --* Inserts DVB Network Information Table (NIT) at the
        specified table repetition interval.

          - **NetworkId** *(integer) --* **[REQUIRED]** The numeric value placed in the Network
          Information Table (NIT).

          - **NetworkName** *(string) --* **[REQUIRED]** The network name text placed in the
          networkNameDescriptor inside the Network Information Table. Maximum length is 256
          characters.

          - **RepInterval** *(integer) --* The number of milliseconds between instances of this
          table in the output transport stream.

        - **DvbSdtSettings** *(dict) --* Inserts DVB Service Description Table (SDT) at the
        specified table repetition interval.

          - **OutputSdt** *(string) --* Selects method of inserting SDT information into output
          stream. The sdtFollow setting copies SDT information from input stream to output stream.
          The sdtFollowIfPresent setting copies SDT information from input stream to output stream
          if SDT information is present in the input, otherwise it will fall back on the
          user-defined values. The sdtManual setting means user will enter the SDT information. The
          sdtNone setting means output stream will not contain SDT information.

          - **RepInterval** *(integer) --* The number of milliseconds between instances of this
          table in the output transport stream.

          - **ServiceName** *(string) --* The service name placed in the serviceDescriptor in the
          Service Description Table. Maximum length is 256 characters.

          - **ServiceProviderName** *(string) --* The service provider name placed in the
          serviceDescriptor in the Service Description Table. Maximum length is 256 characters.

        - **DvbSubPids** *(string) --* Packet Identifier (PID) for input source DVB Subtitle data to
        this output. Multiple values are accepted, and can be entered in ranges and/or by comma
        separation. Can be entered as decimal or hexadecimal values. Each PID specified must be in
        the range of 32 (or 0x20)..8182 (or 0x1ff6).

        - **DvbTdtSettings** *(dict) --* Inserts DVB Time and Date Table (TDT) at the specified
        table repetition interval.

          - **RepInterval** *(integer) --* The number of milliseconds between instances of this
          table in the output transport stream.

        - **DvbTeletextPid** *(string) --* Packet Identifier (PID) for input source DVB Teletext
        data to this output. Can be entered as a decimal or hexadecimal value. Valid values are 32
        (or 0x20)..8182 (or 0x1ff6).

        - **Ebif** *(string) --* If set to passthrough, passes any EBIF data from the input source
        to this output.

        - **EbpAudioInterval** *(string) --* When videoAndFixedIntervals is selected, audio EBP
        markers will be added to partitions 3 and 4. The interval between these additional markers
        will be fixed, and will be slightly shorter than the video EBP marker interval. Only
        available when EBP Cablelabs segmentation markers are selected. Partitions 1 and 2 will
        always follow the video interval.

        - **EbpLookaheadMs** *(integer) --* When set, enforces that Encoder Boundary Points do not
        come within the specified time interval of each other by looking ahead at input video. If
        another EBP is going to come in within the specified time interval, the current EBP is not
        emitted, and the segment is "stretched" to the next marker. The lookahead value does not add
        latency to the system. The Live Event must be configured elsewhere to create sufficient
        latency to make the lookahead accurate.

        - **EbpPlacement** *(string) --* Controls placement of EBP on Audio PIDs. If set to
        videoAndAudioPids, EBP markers will be placed on the video PID and all audio PIDs. If set to
        videoPid, EBP markers will be placed on only the video PID.

        - **EcmPid** *(string) --* This field is unused and deprecated.

        - **EsRateInPes** *(string) --* Include or exclude the ES Rate field in the PES header.

        - **EtvPlatformPid** *(string) --* Packet Identifier (PID) for input source ETV Platform
        data to this output. Can be entered as a decimal or hexadecimal value. Valid values are 32
        (or 0x20)..8182 (or 0x1ff6).

        - **EtvSignalPid** *(string) --* Packet Identifier (PID) for input source ETV Signal data to
        this output. Can be entered as a decimal or hexadecimal value. Valid values are 32 (or
        0x20)..8182 (or 0x1ff6).

        - **FragmentTime** *(float) --* The length in seconds of each fragment. Only used with EBP
        markers.

        - **Klv** *(string) --* If set to passthrough, passes any KLV data from the input source to
        this output.

        - **KlvDataPids** *(string) --* Packet Identifier (PID) for input source KLV data to this
        output. Multiple values are accepted, and can be entered in ranges and/or by comma
        separation. Can be entered as decimal or hexadecimal values. Each PID specified must be in
        the range of 32 (or 0x20)..8182 (or 0x1ff6).

        - **NielsenId3Behavior** *(string) --* If set to passthrough, Nielsen inaudible tones for
        media tracking will be detected in the input audio and an equivalent ID3 tag will be
        inserted in the output.

        - **NullPacketBitrate** *(float) --* Value in bits per second of extra null packets to
        insert into the transport stream. This can be used if a downstream encryption system
        requires periodic null packets.

        - **PatInterval** *(integer) --* The number of milliseconds between instances of this table
        in the output transport stream. Valid values are 0, 10..1000.

        - **PcrControl** *(string) --* When set to pcrEveryPesPacket, a Program Clock Reference
        value is inserted for every Packetized Elementary Stream (PES) header. This parameter is
        effective only when the PCR PID is the same as the video or audio elementary stream.

        - **PcrPeriod** *(integer) --* Maximum time in milliseconds between Program Clock Reference
        (PCRs) inserted into the transport stream.

        - **PcrPid** *(string) --* Packet Identifier (PID) of the Program Clock Reference (PCR) in
        the transport stream. When no value is given, the encoder will assign the same value as the
        Video PID. Can be entered as a decimal or hexadecimal value. Valid values are 32 (or
        0x20)..8182 (or 0x1ff6).

        - **PmtInterval** *(integer) --* The number of milliseconds between instances of this table
        in the output transport stream. Valid values are 0, 10..1000.

        - **PmtPid** *(string) --* Packet Identifier (PID) for the Program Map Table (PMT) in the
        transport stream. Can be entered as a decimal or hexadecimal value. Valid values are 32 (or
        0x20)..8182 (or 0x1ff6).

        - **ProgramNum** *(integer) --* The value of the program number field in the Program Map
        Table.

        - **RateMode** *(string) --* When vbr, does not insert null packets into transport stream to
        fill specified bitrate. The bitrate setting acts as the maximum bitrate when vbr is set.

        - **Scte27Pids** *(string) --* Packet Identifier (PID) for input source SCTE-27 data to this
        output. Multiple values are accepted, and can be entered in ranges and/or by comma
        separation. Can be entered as decimal or hexadecimal values. Each PID specified must be in
        the range of 32 (or 0x20)..8182 (or 0x1ff6).

        - **Scte35Control** *(string) --* Optionally pass SCTE-35 signals from the input source to
        this output.

        - **Scte35Pid** *(string) --* Packet Identifier (PID) of the SCTE-35 stream in the transport
        stream. Can be entered as a decimal or hexadecimal value. Valid values are 32 (or
        0x20)..8182 (or 0x1ff6).

        - **SegmentationMarkers** *(string) --* Inserts segmentation markers at each
        segmentationTime period. raiSegstart sets the Random Access Indicator bit in the adaptation
        field. raiAdapt sets the RAI bit and adds the current timecode in the private data bytes.
        psiSegstart inserts PAT and PMT tables at the start of segments. ebp adds Encoder Boundary
        Point information to the adaptation field as per OpenCable specification
        OC-SP-EBP-I01-130118. ebpLegacy adds Encoder Boundary Point information to the adaptation
        field using a legacy proprietary format.

        - **SegmentationStyle** *(string) --* The segmentation style parameter controls how
        segmentation markers are inserted into the transport stream. With avails, it is possible
        that segments may be truncated, which can influence where future segmentation markers are
        inserted. When a segmentation style of "resetCadence" is selected and a segment is truncated
        due to an avail, we will reset the segmentation cadence. This means the subsequent segment
        will have a duration of $segmentationTime seconds. When a segmentation style of
        "maintainCadence" is selected and a segment is truncated due to an avail, we will not reset
        the segmentation cadence. This means the subsequent segment will likely be truncated as
        well. However, all segments after that will have a duration of $segmentationTime seconds.
        Note that EBP lookahead is a slight exception to this rule.

        - **SegmentationTime** *(float) --* The length in seconds of each segment. Required unless
        markers is set to None_.

        - **TimedMetadataBehavior** *(string) --* When set to passthrough, timed metadata will be
        passed through from input to output.

        - **TimedMetadataPid** *(string) --* Packet Identifier (PID) of the timed metadata stream in
        the transport stream. Can be entered as a decimal or hexadecimal value. Valid values are 32
        (or 0x20)..8182 (or 0x1ff6).

        - **TransportStreamId** *(integer) --* The value of the transport stream ID field in the
        Program Map Table.

        - **VideoPid** *(string) --* Packet Identifier (PID) of the elementary video stream in the
        transport stream. Can be entered as a decimal or hexadecimal value. Valid values are 32 (or
        0x20)..8182 (or 0x1ff6).

    - **Extension** *(string) --* Output file extension. If excluded, this will be auto-selected
    from the container type.

    - **NameModifier** *(string) --* String concatenated to the end of the destination filename.
    Required for multiple outputs of the same type.
    """


_ClientUpdateChannelEncoderSettingsOutputGroupsOutputsOutputSettingsFrameCaptureOutputSettingsTypeDef = TypedDict(
    "_ClientUpdateChannelEncoderSettingsOutputGroupsOutputsOutputSettingsFrameCaptureOutputSettingsTypeDef",
    {"NameModifier": str},
    total=False,
)


class ClientUpdateChannelEncoderSettingsOutputGroupsOutputsOutputSettingsFrameCaptureOutputSettingsTypeDef(
    _ClientUpdateChannelEncoderSettingsOutputGroupsOutputsOutputSettingsFrameCaptureOutputSettingsTypeDef
):
    """
    Type definition for `ClientUpdateChannelEncoderSettingsOutputGroupsOutputsOutputSettings`
    `FrameCaptureOutputSettings`

    - **NameModifier** *(string) --* Required if the output group contains more than one output.
    This modifier forms part of the output file name.
    """


_RequiredClientUpdateChannelEncoderSettingsOutputGroupsOutputsOutputSettingsHlsOutputSettingsHlsSettingsAudioOnlyHlsSettingsAudioOnlyImageTypeDef = TypedDict(
    "_RequiredClientUpdateChannelEncoderSettingsOutputGroupsOutputsOutputSettingsHlsOutputSettingsHlsSettingsAudioOnlyHlsSettingsAudioOnlyImageTypeDef",
    {"Uri": str},
)
_OptionalClientUpdateChannelEncoderSettingsOutputGroupsOutputsOutputSettingsHlsOutputSettingsHlsSettingsAudioOnlyHlsSettingsAudioOnlyImageTypeDef = TypedDict(
    "_OptionalClientUpdateChannelEncoderSettingsOutputGroupsOutputsOutputSettingsHlsOutputSettingsHlsSettingsAudioOnlyHlsSettingsAudioOnlyImageTypeDef",
    {"PasswordParam": str, "Username": str},
    total=False,
)


class ClientUpdateChannelEncoderSettingsOutputGroupsOutputsOutputSettingsHlsOutputSettingsHlsSettingsAudioOnlyHlsSettingsAudioOnlyImageTypeDef(
    _RequiredClientUpdateChannelEncoderSettingsOutputGroupsOutputsOutputSettingsHlsOutputSettingsHlsSettingsAudioOnlyHlsSettingsAudioOnlyImageTypeDef,
    _OptionalClientUpdateChannelEncoderSettingsOutputGroupsOutputsOutputSettingsHlsOutputSettingsHlsSettingsAudioOnlyHlsSettingsAudioOnlyImageTypeDef,
):
    """
    Type definition for
    `ClientUpdateChannelEncoderSettingsOutputGroupsOutputsOutputSettingsHlsOutputSettingsHlsSettingsAudioOnlyHlsSettings`
    `AudioOnlyImage`

    - **PasswordParam** *(string) --* key used to extract the password from EC2 Parameter store

    - **Uri** *(string) --* **[REQUIRED]** Uniform Resource Identifier - This should be a path to a
    file accessible to the Live system (eg. a http:// URI) depending on the output type. For
    example, a RTMP destination should have a uri simliar to: "rtmp://fmsserver/live".

    - **Username** *(string) --* Documentation update needed
    """


_ClientUpdateChannelEncoderSettingsOutputGroupsOutputsOutputSettingsHlsOutputSettingsHlsSettingsAudioOnlyHlsSettingsTypeDef = TypedDict(
    "_ClientUpdateChannelEncoderSettingsOutputGroupsOutputsOutputSettingsHlsOutputSettingsHlsSettingsAudioOnlyHlsSettingsTypeDef",
    {
        "AudioGroupId": str,
        "AudioOnlyImage": ClientUpdateChannelEncoderSettingsOutputGroupsOutputsOutputSettingsHlsOutputSettingsHlsSettingsAudioOnlyHlsSettingsAudioOnlyImageTypeDef,
        "AudioTrackType": str,
    },
    total=False,
)


class ClientUpdateChannelEncoderSettingsOutputGroupsOutputsOutputSettingsHlsOutputSettingsHlsSettingsAudioOnlyHlsSettingsTypeDef(
    _ClientUpdateChannelEncoderSettingsOutputGroupsOutputsOutputSettingsHlsOutputSettingsHlsSettingsAudioOnlyHlsSettingsTypeDef
):
    """
    Type definition for
    `ClientUpdateChannelEncoderSettingsOutputGroupsOutputsOutputSettingsHlsOutputSettingsHlsSettings`
    `AudioOnlyHlsSettings`

    - **AudioGroupId** *(string) --* Specifies the group to which the audio Rendition belongs.

    - **AudioOnlyImage** *(dict) --* Optional. Specifies the .jpg or .png image to use as the cover
    art for an audio-only output. We recommend a low bit-size file because the image increases the
    output audio bandwidth. The image is attached to the audio as an ID3 tag, frame type APIC,
    picture type 0x10, as per the "ID3 tag version 2.4.0 - Native Frames" standard.

      - **PasswordParam** *(string) --* key used to extract the password from EC2 Parameter store

      - **Uri** *(string) --* **[REQUIRED]** Uniform Resource Identifier - This should be a path to
      a file accessible to the Live system (eg. a http:// URI) depending on the output type. For
      example, a RTMP destination should have a uri simliar to: "rtmp://fmsserver/live".

      - **Username** *(string) --* Documentation update needed

    - **AudioTrackType** *(string) --* Four types of audio-only tracks are supported: Audio-Only
    Variant Stream The client can play back this audio-only stream instead of video in low-bandwidth
    scenarios. Represented as an EXT-X-STREAM-INF in the HLS manifest. Alternate Audio, Auto Select,
    Default Alternate rendition that the client should try to play back by default. Represented as
    an EXT-X-MEDIA in the HLS manifest with DEFAULT=YES, AUTOSELECT=YES Alternate Audio, Auto
    Select, Not Default Alternate rendition that the client may try to play back by default.
    Represented as an EXT-X-MEDIA in the HLS manifest with DEFAULT=NO, AUTOSELECT=YES Alternate
    Audio, not Auto Select Alternate rendition that the client will not try to play back by default.
    Represented as an EXT-X-MEDIA in the HLS manifest with DEFAULT=NO, AUTOSELECT=NO
    """


_ClientUpdateChannelEncoderSettingsOutputGroupsOutputsOutputSettingsHlsOutputSettingsHlsSettingsStandardHlsSettingsM3u8SettingsTypeDef = TypedDict(
    "_ClientUpdateChannelEncoderSettingsOutputGroupsOutputsOutputSettingsHlsOutputSettingsHlsSettingsStandardHlsSettingsM3u8SettingsTypeDef",
    {
        "AudioFramesPerPes": int,
        "AudioPids": str,
        "EcmPid": str,
        "NielsenId3Behavior": str,
        "PatInterval": int,
        "PcrControl": str,
        "PcrPeriod": int,
        "PcrPid": str,
        "PmtInterval": int,
        "PmtPid": str,
        "ProgramNum": int,
        "Scte35Behavior": str,
        "Scte35Pid": str,
        "TimedMetadataBehavior": str,
        "TimedMetadataPid": str,
        "TransportStreamId": int,
        "VideoPid": str,
    },
    total=False,
)


class ClientUpdateChannelEncoderSettingsOutputGroupsOutputsOutputSettingsHlsOutputSettingsHlsSettingsStandardHlsSettingsM3u8SettingsTypeDef(
    _ClientUpdateChannelEncoderSettingsOutputGroupsOutputsOutputSettingsHlsOutputSettingsHlsSettingsStandardHlsSettingsM3u8SettingsTypeDef
):
    """
    Type definition for
    `ClientUpdateChannelEncoderSettingsOutputGroupsOutputsOutputSettingsHlsOutputSettingsHlsSettingsStandardHlsSettings`
    `M3u8Settings`

    - **AudioFramesPerPes** *(integer) --* The number of audio frames to insert for each PES packet.

    - **AudioPids** *(string) --* Packet Identifier (PID) of the elementary audio stream(s) in the
    transport stream. Multiple values are accepted, and can be entered in ranges and/or by comma
    separation. Can be entered as decimal or hexadecimal values.

    - **EcmPid** *(string) --* This parameter is unused and deprecated.

    - **NielsenId3Behavior** *(string) --* If set to passthrough, Nielsen inaudible tones for media
    tracking will be detected in the input audio and an equivalent ID3 tag will be inserted in the
    output.

    - **PatInterval** *(integer) --* The number of milliseconds between instances of this table in
    the output transport stream. A value of \\"0\\" writes out the PMT once per segment file.

    - **PcrControl** *(string) --* When set to pcrEveryPesPacket, a Program Clock Reference value is
    inserted for every Packetized Elementary Stream (PES) header. This parameter is effective only
    when the PCR PID is the same as the video or audio elementary stream.

    - **PcrPeriod** *(integer) --* Maximum time in milliseconds between Program Clock References
    (PCRs) inserted into the transport stream.

    - **PcrPid** *(string) --* Packet Identifier (PID) of the Program Clock Reference (PCR) in the
    transport stream. When no value is given, the encoder will assign the same value as the Video
    PID. Can be entered as a decimal or hexadecimal value.

    - **PmtInterval** *(integer) --* The number of milliseconds between instances of this table in
    the output transport stream. A value of \\"0\\" writes out the PMT once per segment file.

    - **PmtPid** *(string) --* Packet Identifier (PID) for the Program Map Table (PMT) in the
    transport stream. Can be entered as a decimal or hexadecimal value.

    - **ProgramNum** *(integer) --* The value of the program number field in the Program Map Table.

    - **Scte35Behavior** *(string) --* If set to passthrough, passes any SCTE-35 signals from the
    input source to this output.

    - **Scte35Pid** *(string) --* Packet Identifier (PID) of the SCTE-35 stream in the transport
    stream. Can be entered as a decimal or hexadecimal value.

    - **TimedMetadataBehavior** *(string) --* When set to passthrough, timed metadata is passed
    through from input to output.

    - **TimedMetadataPid** *(string) --* Packet Identifier (PID) of the timed metadata stream in the
    transport stream. Can be entered as a decimal or hexadecimal value. Valid values are 32 (or
    0x20)..8182 (or 0x1ff6).

    - **TransportStreamId** *(integer) --* The value of the transport stream ID field in the Program
    Map Table.

    - **VideoPid** *(string) --* Packet Identifier (PID) of the elementary video stream in the
    transport stream. Can be entered as a decimal or hexadecimal value.
    """


_RequiredClientUpdateChannelEncoderSettingsOutputGroupsOutputsOutputSettingsHlsOutputSettingsHlsSettingsStandardHlsSettingsTypeDef = TypedDict(
    "_RequiredClientUpdateChannelEncoderSettingsOutputGroupsOutputsOutputSettingsHlsOutputSettingsHlsSettingsStandardHlsSettingsTypeDef",
    {
        "M3u8Settings": ClientUpdateChannelEncoderSettingsOutputGroupsOutputsOutputSettingsHlsOutputSettingsHlsSettingsStandardHlsSettingsM3u8SettingsTypeDef
    },
)
_OptionalClientUpdateChannelEncoderSettingsOutputGroupsOutputsOutputSettingsHlsOutputSettingsHlsSettingsStandardHlsSettingsTypeDef = TypedDict(
    "_OptionalClientUpdateChannelEncoderSettingsOutputGroupsOutputsOutputSettingsHlsOutputSettingsHlsSettingsStandardHlsSettingsTypeDef",
    {"AudioRenditionSets": str},
    total=False,
)


class ClientUpdateChannelEncoderSettingsOutputGroupsOutputsOutputSettingsHlsOutputSettingsHlsSettingsStandardHlsSettingsTypeDef(
    _RequiredClientUpdateChannelEncoderSettingsOutputGroupsOutputsOutputSettingsHlsOutputSettingsHlsSettingsStandardHlsSettingsTypeDef,
    _OptionalClientUpdateChannelEncoderSettingsOutputGroupsOutputsOutputSettingsHlsOutputSettingsHlsSettingsStandardHlsSettingsTypeDef,
):
    """
    Type definition for
    `ClientUpdateChannelEncoderSettingsOutputGroupsOutputsOutputSettingsHlsOutputSettingsHlsSettings`
    `StandardHlsSettings`

    - **AudioRenditionSets** *(string) --* List all the audio groups that are used with the video
    output stream. Input all the audio GROUP-IDs that are associated to the video, separate by ','.

    - **M3u8Settings** *(dict) --* **[REQUIRED]** Settings information for the .m3u8 container

      - **AudioFramesPerPes** *(integer) --* The number of audio frames to insert for each PES
      packet.

      - **AudioPids** *(string) --* Packet Identifier (PID) of the elementary audio stream(s) in the
      transport stream. Multiple values are accepted, and can be entered in ranges and/or by comma
      separation. Can be entered as decimal or hexadecimal values.

      - **EcmPid** *(string) --* This parameter is unused and deprecated.

      - **NielsenId3Behavior** *(string) --* If set to passthrough, Nielsen inaudible tones for
      media tracking will be detected in the input audio and an equivalent ID3 tag will be inserted
      in the output.

      - **PatInterval** *(integer) --* The number of milliseconds between instances of this table in
      the output transport stream. A value of \\"0\\" writes out the PMT once per segment file.

      - **PcrControl** *(string) --* When set to pcrEveryPesPacket, a Program Clock Reference value
      is inserted for every Packetized Elementary Stream (PES) header. This parameter is effective
      only when the PCR PID is the same as the video or audio elementary stream.

      - **PcrPeriod** *(integer) --* Maximum time in milliseconds between Program Clock References
      (PCRs) inserted into the transport stream.

      - **PcrPid** *(string) --* Packet Identifier (PID) of the Program Clock Reference (PCR) in the
      transport stream. When no value is given, the encoder will assign the same value as the Video
      PID. Can be entered as a decimal or hexadecimal value.

      - **PmtInterval** *(integer) --* The number of milliseconds between instances of this table in
      the output transport stream. A value of \\"0\\" writes out the PMT once per segment file.

      - **PmtPid** *(string) --* Packet Identifier (PID) for the Program Map Table (PMT) in the
      transport stream. Can be entered as a decimal or hexadecimal value.

      - **ProgramNum** *(integer) --* The value of the program number field in the Program Map
      Table.

      - **Scte35Behavior** *(string) --* If set to passthrough, passes any SCTE-35 signals from the
      input source to this output.

      - **Scte35Pid** *(string) --* Packet Identifier (PID) of the SCTE-35 stream in the transport
      stream. Can be entered as a decimal or hexadecimal value.

      - **TimedMetadataBehavior** *(string) --* When set to passthrough, timed metadata is passed
      through from input to output.

      - **TimedMetadataPid** *(string) --* Packet Identifier (PID) of the timed metadata stream in
      the transport stream. Can be entered as a decimal or hexadecimal value. Valid values are 32
      (or 0x20)..8182 (or 0x1ff6).

      - **TransportStreamId** *(integer) --* The value of the transport stream ID field in the
      Program Map Table.

      - **VideoPid** *(string) --* Packet Identifier (PID) of the elementary video stream in the
      transport stream. Can be entered as a decimal or hexadecimal value.
    """


_ClientUpdateChannelEncoderSettingsOutputGroupsOutputsOutputSettingsHlsOutputSettingsHlsSettingsTypeDef = TypedDict(
    "_ClientUpdateChannelEncoderSettingsOutputGroupsOutputsOutputSettingsHlsOutputSettingsHlsSettingsTypeDef",
    {
        "AudioOnlyHlsSettings": ClientUpdateChannelEncoderSettingsOutputGroupsOutputsOutputSettingsHlsOutputSettingsHlsSettingsAudioOnlyHlsSettingsTypeDef,
        "StandardHlsSettings": ClientUpdateChannelEncoderSettingsOutputGroupsOutputsOutputSettingsHlsOutputSettingsHlsSettingsStandardHlsSettingsTypeDef,
    },
    total=False,
)


class ClientUpdateChannelEncoderSettingsOutputGroupsOutputsOutputSettingsHlsOutputSettingsHlsSettingsTypeDef(
    _ClientUpdateChannelEncoderSettingsOutputGroupsOutputsOutputSettingsHlsOutputSettingsHlsSettingsTypeDef
):
    """
    Type definition for
    `ClientUpdateChannelEncoderSettingsOutputGroupsOutputsOutputSettingsHlsOutputSettings`
    `HlsSettings`

    - **AudioOnlyHlsSettings** *(dict) --* Audio Only Hls Settings

      - **AudioGroupId** *(string) --* Specifies the group to which the audio Rendition belongs.

      - **AudioOnlyImage** *(dict) --* Optional. Specifies the .jpg or .png image to use as the
      cover art for an audio-only output. We recommend a low bit-size file because the image
      increases the output audio bandwidth. The image is attached to the audio as an ID3 tag, frame
      type APIC, picture type 0x10, as per the "ID3 tag version 2.4.0 - Native Frames" standard.

        - **PasswordParam** *(string) --* key used to extract the password from EC2 Parameter store

        - **Uri** *(string) --* **[REQUIRED]** Uniform Resource Identifier - This should be a path
        to a file accessible to the Live system (eg. a http:// URI) depending on the output type.
        For example, a RTMP destination should have a uri simliar to: "rtmp://fmsserver/live".

        - **Username** *(string) --* Documentation update needed

      - **AudioTrackType** *(string) --* Four types of audio-only tracks are supported: Audio-Only
      Variant Stream The client can play back this audio-only stream instead of video in
      low-bandwidth scenarios. Represented as an EXT-X-STREAM-INF in the HLS manifest. Alternate
      Audio, Auto Select, Default Alternate rendition that the client should try to play back by
      default. Represented as an EXT-X-MEDIA in the HLS manifest with DEFAULT=YES, AUTOSELECT=YES
      Alternate Audio, Auto Select, Not Default Alternate rendition that the client may try to play
      back by default. Represented as an EXT-X-MEDIA in the HLS manifest with DEFAULT=NO,
      AUTOSELECT=YES Alternate Audio, not Auto Select Alternate rendition that the client will not
      try to play back by default. Represented as an EXT-X-MEDIA in the HLS manifest with
      DEFAULT=NO, AUTOSELECT=NO

    - **StandardHlsSettings** *(dict) --* Standard Hls Settings

      - **AudioRenditionSets** *(string) --* List all the audio groups that are used with the video
      output stream. Input all the audio GROUP-IDs that are associated to the video, separate by
      ','.

      - **M3u8Settings** *(dict) --* **[REQUIRED]** Settings information for the .m3u8 container

        - **AudioFramesPerPes** *(integer) --* The number of audio frames to insert for each PES
        packet.

        - **AudioPids** *(string) --* Packet Identifier (PID) of the elementary audio stream(s) in
        the transport stream. Multiple values are accepted, and can be entered in ranges and/or by
        comma separation. Can be entered as decimal or hexadecimal values.

        - **EcmPid** *(string) --* This parameter is unused and deprecated.

        - **NielsenId3Behavior** *(string) --* If set to passthrough, Nielsen inaudible tones for
        media tracking will be detected in the input audio and an equivalent ID3 tag will be
        inserted in the output.

        - **PatInterval** *(integer) --* The number of milliseconds between instances of this table
        in the output transport stream. A value of \\"0\\" writes out the PMT once per segment file.

        - **PcrControl** *(string) --* When set to pcrEveryPesPacket, a Program Clock Reference
        value is inserted for every Packetized Elementary Stream (PES) header. This parameter is
        effective only when the PCR PID is the same as the video or audio elementary stream.

        - **PcrPeriod** *(integer) --* Maximum time in milliseconds between Program Clock References
        (PCRs) inserted into the transport stream.

        - **PcrPid** *(string) --* Packet Identifier (PID) of the Program Clock Reference (PCR) in
        the transport stream. When no value is given, the encoder will assign the same value as the
        Video PID. Can be entered as a decimal or hexadecimal value.

        - **PmtInterval** *(integer) --* The number of milliseconds between instances of this table
        in the output transport stream. A value of \\"0\\" writes out the PMT once per segment file.

        - **PmtPid** *(string) --* Packet Identifier (PID) for the Program Map Table (PMT) in the
        transport stream. Can be entered as a decimal or hexadecimal value.

        - **ProgramNum** *(integer) --* The value of the program number field in the Program Map
        Table.

        - **Scte35Behavior** *(string) --* If set to passthrough, passes any SCTE-35 signals from
        the input source to this output.

        - **Scte35Pid** *(string) --* Packet Identifier (PID) of the SCTE-35 stream in the transport
        stream. Can be entered as a decimal or hexadecimal value.

        - **TimedMetadataBehavior** *(string) --* When set to passthrough, timed metadata is passed
        through from input to output.

        - **TimedMetadataPid** *(string) --* Packet Identifier (PID) of the timed metadata stream in
        the transport stream. Can be entered as a decimal or hexadecimal value. Valid values are 32
        (or 0x20)..8182 (or 0x1ff6).

        - **TransportStreamId** *(integer) --* The value of the transport stream ID field in the
        Program Map Table.

        - **VideoPid** *(string) --* Packet Identifier (PID) of the elementary video stream in the
        transport stream. Can be entered as a decimal or hexadecimal value.
    """


_RequiredClientUpdateChannelEncoderSettingsOutputGroupsOutputsOutputSettingsHlsOutputSettingsTypeDef = TypedDict(
    "_RequiredClientUpdateChannelEncoderSettingsOutputGroupsOutputsOutputSettingsHlsOutputSettingsTypeDef",
    {
        "HlsSettings": ClientUpdateChannelEncoderSettingsOutputGroupsOutputsOutputSettingsHlsOutputSettingsHlsSettingsTypeDef
    },
)
_OptionalClientUpdateChannelEncoderSettingsOutputGroupsOutputsOutputSettingsHlsOutputSettingsTypeDef = TypedDict(
    "_OptionalClientUpdateChannelEncoderSettingsOutputGroupsOutputsOutputSettingsHlsOutputSettingsTypeDef",
    {"NameModifier": str, "SegmentModifier": str},
    total=False,
)


class ClientUpdateChannelEncoderSettingsOutputGroupsOutputsOutputSettingsHlsOutputSettingsTypeDef(
    _RequiredClientUpdateChannelEncoderSettingsOutputGroupsOutputsOutputSettingsHlsOutputSettingsTypeDef,
    _OptionalClientUpdateChannelEncoderSettingsOutputGroupsOutputsOutputSettingsHlsOutputSettingsTypeDef,
):
    """
    Type definition for `ClientUpdateChannelEncoderSettingsOutputGroupsOutputsOutputSettings`
    `HlsOutputSettings`

    - **HlsSettings** *(dict) --* **[REQUIRED]** Settings regarding the underlying stream. These
    settings are different for audio-only outputs.

      - **AudioOnlyHlsSettings** *(dict) --* Audio Only Hls Settings

        - **AudioGroupId** *(string) --* Specifies the group to which the audio Rendition belongs.

        - **AudioOnlyImage** *(dict) --* Optional. Specifies the .jpg or .png image to use as the
        cover art for an audio-only output. We recommend a low bit-size file because the image
        increases the output audio bandwidth. The image is attached to the audio as an ID3 tag,
        frame type APIC, picture type 0x10, as per the "ID3 tag version 2.4.0 - Native Frames"
        standard.

          - **PasswordParam** *(string) --* key used to extract the password from EC2 Parameter
          store

          - **Uri** *(string) --* **[REQUIRED]** Uniform Resource Identifier - This should be a path
          to a file accessible to the Live system (eg. a http:// URI) depending on the output type.
          For example, a RTMP destination should have a uri simliar to: "rtmp://fmsserver/live".

          - **Username** *(string) --* Documentation update needed

        - **AudioTrackType** *(string) --* Four types of audio-only tracks are supported: Audio-Only
        Variant Stream The client can play back this audio-only stream instead of video in
        low-bandwidth scenarios. Represented as an EXT-X-STREAM-INF in the HLS manifest. Alternate
        Audio, Auto Select, Default Alternate rendition that the client should try to play back by
        default. Represented as an EXT-X-MEDIA in the HLS manifest with DEFAULT=YES, AUTOSELECT=
            YES
        Alternate Audio, Auto Select, Not Default Alternate rendition that the client may try to
        play back by default. Represented as an EXT-X-MEDIA in the HLS manifest with DEFAULT=NO,
        AUTOSELECT=
            YES Alternate Audio, not Auto Select Alternate rendition that the client will not
        try to play back by default. Represented as an EXT-X-MEDIA in the HLS manifest with
        DEFAULT=NO, AUTOSELECT=NO

      - **StandardHlsSettings** *(dict) --* Standard Hls Settings

        - **AudioRenditionSets** *(string) --* List all the audio groups that are used with the
        video output stream. Input all the audio GROUP-IDs that are associated to the video,
        separate by ','.

        - **M3u8Settings** *(dict) --* **[REQUIRED]** Settings information for the .m3u8 container

          - **AudioFramesPerPes** *(integer) --* The number of audio frames to insert for each PES
          packet.

          - **AudioPids** *(string) --* Packet Identifier (PID) of the elementary audio stream(s) in
          the transport stream. Multiple values are accepted, and can be entered in ranges and/or by
          comma separation. Can be entered as decimal or hexadecimal values.

          - **EcmPid** *(string) --* This parameter is unused and deprecated.

          - **NielsenId3Behavior** *(string) --* If set to passthrough, Nielsen inaudible tones for
          media tracking will be detected in the input audio and an equivalent ID3 tag will be
          inserted in the output.

          - **PatInterval** *(integer) --* The number of milliseconds between instances of this
          table in the output transport stream. A value of \\"0\\" writes out the PMT once per
          segment file.

          - **PcrControl** *(string) --* When set to pcrEveryPesPacket, a Program Clock Reference
          value is inserted for every Packetized Elementary Stream (PES) header. This parameter is
          effective only when the PCR PID is the same as the video or audio elementary stream.

          - **PcrPeriod** *(integer) --* Maximum time in milliseconds between Program Clock
          References (PCRs) inserted into the transport stream.

          - **PcrPid** *(string) --* Packet Identifier (PID) of the Program Clock Reference (PCR) in
          the transport stream. When no value is given, the encoder will assign the same value as
          the Video PID. Can be entered as a decimal or hexadecimal value.

          - **PmtInterval** *(integer) --* The number of milliseconds between instances of this
          table in the output transport stream. A value of \\"0\\" writes out the PMT once per
          segment file.

          - **PmtPid** *(string) --* Packet Identifier (PID) for the Program Map Table (PMT) in the
          transport stream. Can be entered as a decimal or hexadecimal value.

          - **ProgramNum** *(integer) --* The value of the program number field in the Program Map
          Table.

          - **Scte35Behavior** *(string) --* If set to passthrough, passes any SCTE-35 signals from
          the input source to this output.

          - **Scte35Pid** *(string) --* Packet Identifier (PID) of the SCTE-35 stream in the
          transport stream. Can be entered as a decimal or hexadecimal value.

          - **TimedMetadataBehavior** *(string) --* When set to passthrough, timed metadata is
          passed through from input to output.

          - **TimedMetadataPid** *(string) --* Packet Identifier (PID) of the timed metadata stream
          in the transport stream. Can be entered as a decimal or hexadecimal value. Valid values
          are 32 (or 0x20)..8182 (or 0x1ff6).

          - **TransportStreamId** *(integer) --* The value of the transport stream ID field in the
          Program Map Table.

          - **VideoPid** *(string) --* Packet Identifier (PID) of the elementary video stream in the
          transport stream. Can be entered as a decimal or hexadecimal value.

    - **NameModifier** *(string) --* String concatenated to the end of the destination filename.
    Accepts \\"Format Identifiers\\":#formatIdentifierParameters.

    - **SegmentModifier** *(string) --* String concatenated to end of segment filenames.
    """


_ClientUpdateChannelEncoderSettingsOutputGroupsOutputsOutputSettingsMsSmoothOutputSettingsTypeDef = TypedDict(
    "_ClientUpdateChannelEncoderSettingsOutputGroupsOutputsOutputSettingsMsSmoothOutputSettingsTypeDef",
    {"H265PackagingType": str, "NameModifier": str},
    total=False,
)


class ClientUpdateChannelEncoderSettingsOutputGroupsOutputsOutputSettingsMsSmoothOutputSettingsTypeDef(
    _ClientUpdateChannelEncoderSettingsOutputGroupsOutputsOutputSettingsMsSmoothOutputSettingsTypeDef
):
    """
    Type definition for `ClientUpdateChannelEncoderSettingsOutputGroupsOutputsOutputSettings`
    `MsSmoothOutputSettings`

    - **H265PackagingType** *(string) --* Only applicable when this output is referencing an H.265
    video description. Specifies whether MP4 segments should be packaged as HEV1 or HVC1.

    - **NameModifier** *(string) --* String concatenated to the end of the destination filename.
    Required for multiple outputs of the same type.
    """


_ClientUpdateChannelEncoderSettingsOutputGroupsOutputsOutputSettingsMultiplexOutputSettingsDestinationTypeDef = TypedDict(
    "_ClientUpdateChannelEncoderSettingsOutputGroupsOutputsOutputSettingsMultiplexOutputSettingsDestinationTypeDef",
    {"DestinationRefId": str},
    total=False,
)


class ClientUpdateChannelEncoderSettingsOutputGroupsOutputsOutputSettingsMultiplexOutputSettingsDestinationTypeDef(
    _ClientUpdateChannelEncoderSettingsOutputGroupsOutputsOutputSettingsMultiplexOutputSettingsDestinationTypeDef
):
    """
    Type definition for
    `ClientUpdateChannelEncoderSettingsOutputGroupsOutputsOutputSettingsMultiplexOutputSettings`
    `Destination`

    - **DestinationRefId** *(string) --* Placeholder documentation for __string
    """


_ClientUpdateChannelEncoderSettingsOutputGroupsOutputsOutputSettingsMultiplexOutputSettingsTypeDef = TypedDict(
    "_ClientUpdateChannelEncoderSettingsOutputGroupsOutputsOutputSettingsMultiplexOutputSettingsTypeDef",
    {
        "Destination": ClientUpdateChannelEncoderSettingsOutputGroupsOutputsOutputSettingsMultiplexOutputSettingsDestinationTypeDef
    },
)


class ClientUpdateChannelEncoderSettingsOutputGroupsOutputsOutputSettingsMultiplexOutputSettingsTypeDef(
    _ClientUpdateChannelEncoderSettingsOutputGroupsOutputsOutputSettingsMultiplexOutputSettingsTypeDef
):
    """
    Type definition for `ClientUpdateChannelEncoderSettingsOutputGroupsOutputsOutputSettings`
    `MultiplexOutputSettings`

    - **Destination** *(dict) --* **[REQUIRED]** Destination is a Multiplex.

      - **DestinationRefId** *(string) --* Placeholder documentation for __string
    """


_ClientUpdateChannelEncoderSettingsOutputGroupsOutputsOutputSettingsRtmpOutputSettingsDestinationTypeDef = TypedDict(
    "_ClientUpdateChannelEncoderSettingsOutputGroupsOutputsOutputSettingsRtmpOutputSettingsDestinationTypeDef",
    {"DestinationRefId": str},
    total=False,
)


class ClientUpdateChannelEncoderSettingsOutputGroupsOutputsOutputSettingsRtmpOutputSettingsDestinationTypeDef(
    _ClientUpdateChannelEncoderSettingsOutputGroupsOutputsOutputSettingsRtmpOutputSettingsDestinationTypeDef
):
    """
    Type definition for
    `ClientUpdateChannelEncoderSettingsOutputGroupsOutputsOutputSettingsRtmpOutputSettings`
    `Destination`

    - **DestinationRefId** *(string) --* Placeholder documentation for __string
    """


_RequiredClientUpdateChannelEncoderSettingsOutputGroupsOutputsOutputSettingsRtmpOutputSettingsTypeDef = TypedDict(
    "_RequiredClientUpdateChannelEncoderSettingsOutputGroupsOutputsOutputSettingsRtmpOutputSettingsTypeDef",
    {
        "Destination": ClientUpdateChannelEncoderSettingsOutputGroupsOutputsOutputSettingsRtmpOutputSettingsDestinationTypeDef
    },
)
_OptionalClientUpdateChannelEncoderSettingsOutputGroupsOutputsOutputSettingsRtmpOutputSettingsTypeDef = TypedDict(
    "_OptionalClientUpdateChannelEncoderSettingsOutputGroupsOutputsOutputSettingsRtmpOutputSettingsTypeDef",
    {"CertificateMode": str, "ConnectionRetryInterval": int, "NumRetries": int},
    total=False,
)


class ClientUpdateChannelEncoderSettingsOutputGroupsOutputsOutputSettingsRtmpOutputSettingsTypeDef(
    _RequiredClientUpdateChannelEncoderSettingsOutputGroupsOutputsOutputSettingsRtmpOutputSettingsTypeDef,
    _OptionalClientUpdateChannelEncoderSettingsOutputGroupsOutputsOutputSettingsRtmpOutputSettingsTypeDef,
):
    """
    Type definition for `ClientUpdateChannelEncoderSettingsOutputGroupsOutputsOutputSettings`
    `RtmpOutputSettings`

    - **CertificateMode** *(string) --* If set to verifyAuthenticity, verify the tls certificate
    chain to a trusted Certificate Authority (CA). This will cause rtmps outputs with self-signed
    certificates to fail.

    - **ConnectionRetryInterval** *(integer) --* Number of seconds to wait before retrying a
    connection to the Flash Media server if the connection is lost.

    - **Destination** *(dict) --* **[REQUIRED]** The RTMP endpoint excluding the stream name (eg.
    rtmp://host/appname). For connection to Akamai, a username and password must be supplied. URI
    fields accept format identifiers.

      - **DestinationRefId** *(string) --* Placeholder documentation for __string

    - **NumRetries** *(integer) --* Number of retry attempts.
    """


_RequiredClientUpdateChannelEncoderSettingsOutputGroupsOutputsOutputSettingsUdpOutputSettingsContainerSettingsM2tsSettingsDvbNitSettingsTypeDef = TypedDict(
    "_RequiredClientUpdateChannelEncoderSettingsOutputGroupsOutputsOutputSettingsUdpOutputSettingsContainerSettingsM2tsSettingsDvbNitSettingsTypeDef",
    {"NetworkId": int, "NetworkName": str},
)
_OptionalClientUpdateChannelEncoderSettingsOutputGroupsOutputsOutputSettingsUdpOutputSettingsContainerSettingsM2tsSettingsDvbNitSettingsTypeDef = TypedDict(
    "_OptionalClientUpdateChannelEncoderSettingsOutputGroupsOutputsOutputSettingsUdpOutputSettingsContainerSettingsM2tsSettingsDvbNitSettingsTypeDef",
    {"RepInterval": int},
    total=False,
)


class ClientUpdateChannelEncoderSettingsOutputGroupsOutputsOutputSettingsUdpOutputSettingsContainerSettingsM2tsSettingsDvbNitSettingsTypeDef(
    _RequiredClientUpdateChannelEncoderSettingsOutputGroupsOutputsOutputSettingsUdpOutputSettingsContainerSettingsM2tsSettingsDvbNitSettingsTypeDef,
    _OptionalClientUpdateChannelEncoderSettingsOutputGroupsOutputsOutputSettingsUdpOutputSettingsContainerSettingsM2tsSettingsDvbNitSettingsTypeDef,
):
    """
    Type definition for
    `ClientUpdateChannelEncoderSettingsOutputGroupsOutputsOutputSettingsUdpOutputSettingsContainerSettingsM2tsSettings`
    `DvbNitSettings`

    - **NetworkId** *(integer) --* **[REQUIRED]** The numeric value placed in the Network
    Information Table (NIT).

    - **NetworkName** *(string) --* **[REQUIRED]** The network name text placed in the
    networkNameDescriptor inside the Network Information Table. Maximum length is 256 characters.

    - **RepInterval** *(integer) --* The number of milliseconds between instances of this table in
    the output transport stream.
    """


_ClientUpdateChannelEncoderSettingsOutputGroupsOutputsOutputSettingsUdpOutputSettingsContainerSettingsM2tsSettingsDvbSdtSettingsTypeDef = TypedDict(
    "_ClientUpdateChannelEncoderSettingsOutputGroupsOutputsOutputSettingsUdpOutputSettingsContainerSettingsM2tsSettingsDvbSdtSettingsTypeDef",
    {"OutputSdt": str, "RepInterval": int, "ServiceName": str, "ServiceProviderName": str},
    total=False,
)


class ClientUpdateChannelEncoderSettingsOutputGroupsOutputsOutputSettingsUdpOutputSettingsContainerSettingsM2tsSettingsDvbSdtSettingsTypeDef(
    _ClientUpdateChannelEncoderSettingsOutputGroupsOutputsOutputSettingsUdpOutputSettingsContainerSettingsM2tsSettingsDvbSdtSettingsTypeDef
):
    """
    Type definition for
    `ClientUpdateChannelEncoderSettingsOutputGroupsOutputsOutputSettingsUdpOutputSettingsContainerSettingsM2tsSettings`
    `DvbSdtSettings`

    - **OutputSdt** *(string) --* Selects method of inserting SDT information into output stream.
    The sdtFollow setting copies SDT information from input stream to output stream. The
    sdtFollowIfPresent setting copies SDT information from input stream to output stream if SDT
    information is present in the input, otherwise it will fall back on the user-defined values. The
    sdtManual setting means user will enter the SDT information. The sdtNone setting means output
    stream will not contain SDT information.

    - **RepInterval** *(integer) --* The number of milliseconds between instances of this table in
    the output transport stream.

    - **ServiceName** *(string) --* The service name placed in the serviceDescriptor in the Service
    Description Table. Maximum length is 256 characters.

    - **ServiceProviderName** *(string) --* The service provider name placed in the
    serviceDescriptor in the Service Description Table. Maximum length is 256 characters.
    """


_ClientUpdateChannelEncoderSettingsOutputGroupsOutputsOutputSettingsUdpOutputSettingsContainerSettingsM2tsSettingsDvbTdtSettingsTypeDef = TypedDict(
    "_ClientUpdateChannelEncoderSettingsOutputGroupsOutputsOutputSettingsUdpOutputSettingsContainerSettingsM2tsSettingsDvbTdtSettingsTypeDef",
    {"RepInterval": int},
    total=False,
)


class ClientUpdateChannelEncoderSettingsOutputGroupsOutputsOutputSettingsUdpOutputSettingsContainerSettingsM2tsSettingsDvbTdtSettingsTypeDef(
    _ClientUpdateChannelEncoderSettingsOutputGroupsOutputsOutputSettingsUdpOutputSettingsContainerSettingsM2tsSettingsDvbTdtSettingsTypeDef
):
    """
    Type definition for
    `ClientUpdateChannelEncoderSettingsOutputGroupsOutputsOutputSettingsUdpOutputSettingsContainerSettingsM2tsSettings`
    `DvbTdtSettings`

    - **RepInterval** *(integer) --* The number of milliseconds between instances of this table in
    the output transport stream.
    """


_ClientUpdateChannelEncoderSettingsOutputGroupsOutputsOutputSettingsUdpOutputSettingsContainerSettingsM2tsSettingsTypeDef = TypedDict(
    "_ClientUpdateChannelEncoderSettingsOutputGroupsOutputsOutputSettingsUdpOutputSettingsContainerSettingsM2tsSettingsTypeDef",
    {
        "AbsentInputAudioBehavior": str,
        "Arib": str,
        "AribCaptionsPid": str,
        "AribCaptionsPidControl": str,
        "AudioBufferModel": str,
        "AudioFramesPerPes": int,
        "AudioPids": str,
        "AudioStreamType": str,
        "Bitrate": int,
        "BufferModel": str,
        "CcDescriptor": str,
        "DvbNitSettings": ClientUpdateChannelEncoderSettingsOutputGroupsOutputsOutputSettingsUdpOutputSettingsContainerSettingsM2tsSettingsDvbNitSettingsTypeDef,
        "DvbSdtSettings": ClientUpdateChannelEncoderSettingsOutputGroupsOutputsOutputSettingsUdpOutputSettingsContainerSettingsM2tsSettingsDvbSdtSettingsTypeDef,
        "DvbSubPids": str,
        "DvbTdtSettings": ClientUpdateChannelEncoderSettingsOutputGroupsOutputsOutputSettingsUdpOutputSettingsContainerSettingsM2tsSettingsDvbTdtSettingsTypeDef,
        "DvbTeletextPid": str,
        "Ebif": str,
        "EbpAudioInterval": str,
        "EbpLookaheadMs": int,
        "EbpPlacement": str,
        "EcmPid": str,
        "EsRateInPes": str,
        "EtvPlatformPid": str,
        "EtvSignalPid": str,
        "FragmentTime": float,
        "Klv": str,
        "KlvDataPids": str,
        "NielsenId3Behavior": str,
        "NullPacketBitrate": float,
        "PatInterval": int,
        "PcrControl": str,
        "PcrPeriod": int,
        "PcrPid": str,
        "PmtInterval": int,
        "PmtPid": str,
        "ProgramNum": int,
        "RateMode": str,
        "Scte27Pids": str,
        "Scte35Control": str,
        "Scte35Pid": str,
        "SegmentationMarkers": str,
        "SegmentationStyle": str,
        "SegmentationTime": float,
        "TimedMetadataBehavior": str,
        "TimedMetadataPid": str,
        "TransportStreamId": int,
        "VideoPid": str,
    },
    total=False,
)


class ClientUpdateChannelEncoderSettingsOutputGroupsOutputsOutputSettingsUdpOutputSettingsContainerSettingsM2tsSettingsTypeDef(
    _ClientUpdateChannelEncoderSettingsOutputGroupsOutputsOutputSettingsUdpOutputSettingsContainerSettingsM2tsSettingsTypeDef
):
    """
    Type definition for
    `ClientUpdateChannelEncoderSettingsOutputGroupsOutputsOutputSettingsUdpOutputSettingsContainerSettings`
    `M2tsSettings`

    - **AbsentInputAudioBehavior** *(string) --* When set to drop, output audio streams will be
    removed from the program if the selected input audio stream is removed from the input. This
    allows the output audio configuration to dynamically change based on input configuration. If
    this is set to encodeSilence, all output audio streams will output encoded silence when not
    connected to an active input stream.

    - **Arib** *(string) --* When set to enabled, uses ARIB-compliant field muxing and removes video
    descriptor.

    - **AribCaptionsPid** *(string) --* Packet Identifier (PID) for ARIB Captions in the transport
    stream. Can be entered as a decimal or hexadecimal value. Valid values are 32 (or 0x20)..8182
    (or 0x1ff6).

    - **AribCaptionsPidControl** *(string) --* If set to auto, pid number used for ARIB Captions
    will be auto-selected from unused pids. If set to useConfigured, ARIB Captions will be on the
    configured pid number.

    - **AudioBufferModel** *(string) --* When set to dvb, uses DVB buffer model for Dolby Digital
    audio. When set to atsc, the ATSC model is used.

    - **AudioFramesPerPes** *(integer) --* The number of audio frames to insert for each PES packet.

    - **AudioPids** *(string) --* Packet Identifier (PID) of the elementary audio stream(s) in the
    transport stream. Multiple values are accepted, and can be entered in ranges and/or by comma
    separation. Can be entered as decimal or hexadecimal values. Each PID specified must be in the
    range of 32 (or 0x20)..8182 (or 0x1ff6).

    - **AudioStreamType** *(string) --* When set to atsc, uses stream type = 0x81 for AC3 and stream
    type = 0x87 for EAC3. When set to dvb, uses stream type = 0x06.

    - **Bitrate** *(integer) --* The output bitrate of the transport stream in bits per second.
    Setting to 0 lets the muxer automatically determine the appropriate bitrate.

    - **BufferModel** *(string) --* If set to multiplex, use multiplex buffer model for accurate
    interleaving. Setting to bufferModel to none can lead to lower latency, but low-memory devices
    may not be able to play back the stream without interruptions.

    - **CcDescriptor** *(string) --* When set to enabled, generates captionServiceDescriptor in PMT.

    - **DvbNitSettings** *(dict) --* Inserts DVB Network Information Table (NIT) at the specified
    table repetition interval.

      - **NetworkId** *(integer) --* **[REQUIRED]** The numeric value placed in the Network
      Information Table (NIT).

      - **NetworkName** *(string) --* **[REQUIRED]** The network name text placed in the
      networkNameDescriptor inside the Network Information Table. Maximum length is 256 characters.

      - **RepInterval** *(integer) --* The number of milliseconds between instances of this table in
      the output transport stream.

    - **DvbSdtSettings** *(dict) --* Inserts DVB Service Description Table (SDT) at the specified
    table repetition interval.

      - **OutputSdt** *(string) --* Selects method of inserting SDT information into output stream.
      The sdtFollow setting copies SDT information from input stream to output stream. The
      sdtFollowIfPresent setting copies SDT information from input stream to output stream if SDT
      information is present in the input, otherwise it will fall back on the user-defined values.
      The sdtManual setting means user will enter the SDT information. The sdtNone setting means
      output stream will not contain SDT information.

      - **RepInterval** *(integer) --* The number of milliseconds between instances of this table in
      the output transport stream.

      - **ServiceName** *(string) --* The service name placed in the serviceDescriptor in the
      Service Description Table. Maximum length is 256 characters.

      - **ServiceProviderName** *(string) --* The service provider name placed in the
      serviceDescriptor in the Service Description Table. Maximum length is 256 characters.

    - **DvbSubPids** *(string) --* Packet Identifier (PID) for input source DVB Subtitle data to
    this output. Multiple values are accepted, and can be entered in ranges and/or by comma
    separation. Can be entered as decimal or hexadecimal values. Each PID specified must be in the
    range of 32 (or 0x20)..8182 (or 0x1ff6).

    - **DvbTdtSettings** *(dict) --* Inserts DVB Time and Date Table (TDT) at the specified table
    repetition interval.

      - **RepInterval** *(integer) --* The number of milliseconds between instances of this table in
      the output transport stream.

    - **DvbTeletextPid** *(string) --* Packet Identifier (PID) for input source DVB Teletext data to
    this output. Can be entered as a decimal or hexadecimal value. Valid values are 32 (or
    0x20)..8182 (or 0x1ff6).

    - **Ebif** *(string) --* If set to passthrough, passes any EBIF data from the input source to
    this output.

    - **EbpAudioInterval** *(string) --* When videoAndFixedIntervals is selected, audio EBP markers
    will be added to partitions 3 and 4. The interval between these additional markers will be
    fixed, and will be slightly shorter than the video EBP marker interval. Only available when EBP
    Cablelabs segmentation markers are selected. Partitions 1 and 2 will always follow the video
    interval.

    - **EbpLookaheadMs** *(integer) --* When set, enforces that Encoder Boundary Points do not come
    within the specified time interval of each other by looking ahead at input video. If another EBP
    is going to come in within the specified time interval, the current EBP is not emitted, and the
    segment is "stretched" to the next marker. The lookahead value does not add latency to the
    system. The Live Event must be configured elsewhere to create sufficient latency to make the
    lookahead accurate.

    - **EbpPlacement** *(string) --* Controls placement of EBP on Audio PIDs. If set to
    videoAndAudioPids, EBP markers will be placed on the video PID and all audio PIDs. If set to
    videoPid, EBP markers will be placed on only the video PID.

    - **EcmPid** *(string) --* This field is unused and deprecated.

    - **EsRateInPes** *(string) --* Include or exclude the ES Rate field in the PES header.

    - **EtvPlatformPid** *(string) --* Packet Identifier (PID) for input source ETV Platform data to
    this output. Can be entered as a decimal or hexadecimal value. Valid values are 32 (or
    0x20)..8182 (or 0x1ff6).

    - **EtvSignalPid** *(string) --* Packet Identifier (PID) for input source ETV Signal data to
    this output. Can be entered as a decimal or hexadecimal value. Valid values are 32 (or
    0x20)..8182 (or 0x1ff6).

    - **FragmentTime** *(float) --* The length in seconds of each fragment. Only used with EBP
    markers.

    - **Klv** *(string) --* If set to passthrough, passes any KLV data from the input source to this
    output.

    - **KlvDataPids** *(string) --* Packet Identifier (PID) for input source KLV data to this
    output. Multiple values are accepted, and can be entered in ranges and/or by comma separation.
    Can be entered as decimal or hexadecimal values. Each PID specified must be in the range of 32
    (or 0x20)..8182 (or 0x1ff6).

    - **NielsenId3Behavior** *(string) --* If set to passthrough, Nielsen inaudible tones for media
    tracking will be detected in the input audio and an equivalent ID3 tag will be inserted in the
    output.

    - **NullPacketBitrate** *(float) --* Value in bits per second of extra null packets to insert
    into the transport stream. This can be used if a downstream encryption system requires periodic
    null packets.

    - **PatInterval** *(integer) --* The number of milliseconds between instances of this table in
    the output transport stream. Valid values are 0, 10..1000.

    - **PcrControl** *(string) --* When set to pcrEveryPesPacket, a Program Clock Reference value is
    inserted for every Packetized Elementary Stream (PES) header. This parameter is effective only
    when the PCR PID is the same as the video or audio elementary stream.

    - **PcrPeriod** *(integer) --* Maximum time in milliseconds between Program Clock Reference
    (PCRs) inserted into the transport stream.

    - **PcrPid** *(string) --* Packet Identifier (PID) of the Program Clock Reference (PCR) in the
    transport stream. When no value is given, the encoder will assign the same value as the Video
    PID. Can be entered as a decimal or hexadecimal value. Valid values are 32 (or 0x20)..8182 (or
    0x1ff6).

    - **PmtInterval** *(integer) --* The number of milliseconds between instances of this table in
    the output transport stream. Valid values are 0, 10..1000.

    - **PmtPid** *(string) --* Packet Identifier (PID) for the Program Map Table (PMT) in the
    transport stream. Can be entered as a decimal or hexadecimal value. Valid values are 32 (or
    0x20)..8182 (or 0x1ff6).

    - **ProgramNum** *(integer) --* The value of the program number field in the Program Map Table.

    - **RateMode** *(string) --* When vbr, does not insert null packets into transport stream to
    fill specified bitrate. The bitrate setting acts as the maximum bitrate when vbr is set.

    - **Scte27Pids** *(string) --* Packet Identifier (PID) for input source SCTE-27 data to this
    output. Multiple values are accepted, and can be entered in ranges and/or by comma separation.
    Can be entered as decimal or hexadecimal values. Each PID specified must be in the range of 32
    (or 0x20)..8182 (or 0x1ff6).

    - **Scte35Control** *(string) --* Optionally pass SCTE-35 signals from the input source to this
    output.

    - **Scte35Pid** *(string) --* Packet Identifier (PID) of the SCTE-35 stream in the transport
    stream. Can be entered as a decimal or hexadecimal value. Valid values are 32 (or 0x20)..8182
    (or 0x1ff6).

    - **SegmentationMarkers** *(string) --* Inserts segmentation markers at each segmentationTime
    period. raiSegstart sets the Random Access Indicator bit in the adaptation field. raiAdapt sets
    the RAI bit and adds the current timecode in the private data bytes. psiSegstart inserts PAT and
    PMT tables at the start of segments. ebp adds Encoder Boundary Point information to the
    adaptation field as per OpenCable specification OC-SP-EBP-I01-130118. ebpLegacy adds Encoder
    Boundary Point information to the adaptation field using a legacy proprietary format.

    - **SegmentationStyle** *(string) --* The segmentation style parameter controls how segmentation
    markers are inserted into the transport stream. With avails, it is possible that segments may be
    truncated, which can influence where future segmentation markers are inserted. When a
    segmentation style of "resetCadence" is selected and a segment is truncated due to an avail, we
    will reset the segmentation cadence. This means the subsequent segment will have a duration of
    $segmentationTime seconds. When a segmentation style of "maintainCadence" is selected and a
    segment is truncated due to an avail, we will not reset the segmentation cadence. This means the
    subsequent segment will likely be truncated as well. However, all segments after that will have
    a duration of $segmentationTime seconds. Note that EBP lookahead is a slight exception to this
    rule.

    - **SegmentationTime** *(float) --* The length in seconds of each segment. Required unless
    markers is set to None_.

    - **TimedMetadataBehavior** *(string) --* When set to passthrough, timed metadata will be passed
    through from input to output.

    - **TimedMetadataPid** *(string) --* Packet Identifier (PID) of the timed metadata stream in the
    transport stream. Can be entered as a decimal or hexadecimal value. Valid values are 32 (or
    0x20)..8182 (or 0x1ff6).

    - **TransportStreamId** *(integer) --* The value of the transport stream ID field in the Program
    Map Table.

    - **VideoPid** *(string) --* Packet Identifier (PID) of the elementary video stream in the
    transport stream. Can be entered as a decimal or hexadecimal value. Valid values are 32 (or
    0x20)..8182 (or 0x1ff6).
    """


_ClientUpdateChannelEncoderSettingsOutputGroupsOutputsOutputSettingsUdpOutputSettingsContainerSettingsTypeDef = TypedDict(
    "_ClientUpdateChannelEncoderSettingsOutputGroupsOutputsOutputSettingsUdpOutputSettingsContainerSettingsTypeDef",
    {
        "M2tsSettings": ClientUpdateChannelEncoderSettingsOutputGroupsOutputsOutputSettingsUdpOutputSettingsContainerSettingsM2tsSettingsTypeDef
    },
    total=False,
)


class ClientUpdateChannelEncoderSettingsOutputGroupsOutputsOutputSettingsUdpOutputSettingsContainerSettingsTypeDef(
    _ClientUpdateChannelEncoderSettingsOutputGroupsOutputsOutputSettingsUdpOutputSettingsContainerSettingsTypeDef
):
    """
    Type definition for
    `ClientUpdateChannelEncoderSettingsOutputGroupsOutputsOutputSettingsUdpOutputSettings`
    `ContainerSettings`

    - **M2tsSettings** *(dict) --* M2ts Settings

      - **AbsentInputAudioBehavior** *(string) --* When set to drop, output audio streams will be
      removed from the program if the selected input audio stream is removed from the input. This
      allows the output audio configuration to dynamically change based on input configuration. If
      this is set to encodeSilence, all output audio streams will output encoded silence when not
      connected to an active input stream.

      - **Arib** *(string) --* When set to enabled, uses ARIB-compliant field muxing and removes
      video descriptor.

      - **AribCaptionsPid** *(string) --* Packet Identifier (PID) for ARIB Captions in the transport
      stream. Can be entered as a decimal or hexadecimal value. Valid values are 32 (or 0x20)..8182
      (or 0x1ff6).

      - **AribCaptionsPidControl** *(string) --* If set to auto, pid number used for ARIB Captions
      will be auto-selected from unused pids. If set to useConfigured, ARIB Captions will be on the
      configured pid number.

      - **AudioBufferModel** *(string) --* When set to dvb, uses DVB buffer model for Dolby Digital
      audio. When set to atsc, the ATSC model is used.

      - **AudioFramesPerPes** *(integer) --* The number of audio frames to insert for each PES
      packet.

      - **AudioPids** *(string) --* Packet Identifier (PID) of the elementary audio stream(s) in the
      transport stream. Multiple values are accepted, and can be entered in ranges and/or by comma
      separation. Can be entered as decimal or hexadecimal values. Each PID specified must be in the
      range of 32 (or 0x20)..8182 (or 0x1ff6).

      - **AudioStreamType** *(string) --* When set to atsc, uses stream type = 0x81 for AC3 and
      stream type = 0x87 for EAC3. When set to dvb, uses stream type = 0x06.

      - **Bitrate** *(integer) --* The output bitrate of the transport stream in bits per second.
      Setting to 0 lets the muxer automatically determine the appropriate bitrate.

      - **BufferModel** *(string) --* If set to multiplex, use multiplex buffer model for accurate
      interleaving. Setting to bufferModel to none can lead to lower latency, but low-memory devices
      may not be able to play back the stream without interruptions.

      - **CcDescriptor** *(string) --* When set to enabled, generates captionServiceDescriptor in
      PMT.

      - **DvbNitSettings** *(dict) --* Inserts DVB Network Information Table (NIT) at the specified
      table repetition interval.

        - **NetworkId** *(integer) --* **[REQUIRED]** The numeric value placed in the Network
        Information Table (NIT).

        - **NetworkName** *(string) --* **[REQUIRED]** The network name text placed in the
        networkNameDescriptor inside the Network Information Table. Maximum length is 256
        characters.

        - **RepInterval** *(integer) --* The number of milliseconds between instances of this table
        in the output transport stream.

      - **DvbSdtSettings** *(dict) --* Inserts DVB Service Description Table (SDT) at the specified
      table repetition interval.

        - **OutputSdt** *(string) --* Selects method of inserting SDT information into output
        stream. The sdtFollow setting copies SDT information from input stream to output stream. The
        sdtFollowIfPresent setting copies SDT information from input stream to output stream if SDT
        information is present in the input, otherwise it will fall back on the user-defined values.
        The sdtManual setting means user will enter the SDT information. The sdtNone setting means
        output stream will not contain SDT information.

        - **RepInterval** *(integer) --* The number of milliseconds between instances of this table
        in the output transport stream.

        - **ServiceName** *(string) --* The service name placed in the serviceDescriptor in the
        Service Description Table. Maximum length is 256 characters.

        - **ServiceProviderName** *(string) --* The service provider name placed in the
        serviceDescriptor in the Service Description Table. Maximum length is 256 characters.

      - **DvbSubPids** *(string) --* Packet Identifier (PID) for input source DVB Subtitle data to
      this output. Multiple values are accepted, and can be entered in ranges and/or by comma
      separation. Can be entered as decimal or hexadecimal values. Each PID specified must be in the
      range of 32 (or 0x20)..8182 (or 0x1ff6).

      - **DvbTdtSettings** *(dict) --* Inserts DVB Time and Date Table (TDT) at the specified table
      repetition interval.

        - **RepInterval** *(integer) --* The number of milliseconds between instances of this table
        in the output transport stream.

      - **DvbTeletextPid** *(string) --* Packet Identifier (PID) for input source DVB Teletext data
      to this output. Can be entered as a decimal or hexadecimal value. Valid values are 32 (or
      0x20)..8182 (or 0x1ff6).

      - **Ebif** *(string) --* If set to passthrough, passes any EBIF data from the input source to
      this output.

      - **EbpAudioInterval** *(string) --* When videoAndFixedIntervals is selected, audio EBP
      markers will be added to partitions 3 and 4. The interval between these additional markers
      will be fixed, and will be slightly shorter than the video EBP marker interval. Only available
      when EBP Cablelabs segmentation markers are selected. Partitions 1 and 2 will always follow
      the video interval.

      - **EbpLookaheadMs** *(integer) --* When set, enforces that Encoder Boundary Points do not
      come within the specified time interval of each other by looking ahead at input video. If
      another EBP is going to come in within the specified time interval, the current EBP is not
      emitted, and the segment is "stretched" to the next marker. The lookahead value does not add
      latency to the system. The Live Event must be configured elsewhere to create sufficient
      latency to make the lookahead accurate.

      - **EbpPlacement** *(string) --* Controls placement of EBP on Audio PIDs. If set to
      videoAndAudioPids, EBP markers will be placed on the video PID and all audio PIDs. If set to
      videoPid, EBP markers will be placed on only the video PID.

      - **EcmPid** *(string) --* This field is unused and deprecated.

      - **EsRateInPes** *(string) --* Include or exclude the ES Rate field in the PES header.

      - **EtvPlatformPid** *(string) --* Packet Identifier (PID) for input source ETV Platform data
      to this output. Can be entered as a decimal or hexadecimal value. Valid values are 32 (or
      0x20)..8182 (or 0x1ff6).

      - **EtvSignalPid** *(string) --* Packet Identifier (PID) for input source ETV Signal data to
      this output. Can be entered as a decimal or hexadecimal value. Valid values are 32 (or
      0x20)..8182 (or 0x1ff6).

      - **FragmentTime** *(float) --* The length in seconds of each fragment. Only used with EBP
      markers.

      - **Klv** *(string) --* If set to passthrough, passes any KLV data from the input source to
      this output.

      - **KlvDataPids** *(string) --* Packet Identifier (PID) for input source KLV data to this
      output. Multiple values are accepted, and can be entered in ranges and/or by comma separation.
      Can be entered as decimal or hexadecimal values. Each PID specified must be in the range of 32
      (or 0x20)..8182 (or 0x1ff6).

      - **NielsenId3Behavior** *(string) --* If set to passthrough, Nielsen inaudible tones for
      media tracking will be detected in the input audio and an equivalent ID3 tag will be inserted
      in the output.

      - **NullPacketBitrate** *(float) --* Value in bits per second of extra null packets to insert
      into the transport stream. This can be used if a downstream encryption system requires
      periodic null packets.

      - **PatInterval** *(integer) --* The number of milliseconds between instances of this table in
      the output transport stream. Valid values are 0, 10..1000.

      - **PcrControl** *(string) --* When set to pcrEveryPesPacket, a Program Clock Reference value
      is inserted for every Packetized Elementary Stream (PES) header. This parameter is effective
      only when the PCR PID is the same as the video or audio elementary stream.

      - **PcrPeriod** *(integer) --* Maximum time in milliseconds between Program Clock Reference
      (PCRs) inserted into the transport stream.

      - **PcrPid** *(string) --* Packet Identifier (PID) of the Program Clock Reference (PCR) in the
      transport stream. When no value is given, the encoder will assign the same value as the Video
      PID. Can be entered as a decimal or hexadecimal value. Valid values are 32 (or 0x20)..8182 (or
      0x1ff6).

      - **PmtInterval** *(integer) --* The number of milliseconds between instances of this table in
      the output transport stream. Valid values are 0, 10..1000.

      - **PmtPid** *(string) --* Packet Identifier (PID) for the Program Map Table (PMT) in the
      transport stream. Can be entered as a decimal or hexadecimal value. Valid values are 32 (or
      0x20)..8182 (or 0x1ff6).

      - **ProgramNum** *(integer) --* The value of the program number field in the Program Map
      Table.

      - **RateMode** *(string) --* When vbr, does not insert null packets into transport stream to
      fill specified bitrate. The bitrate setting acts as the maximum bitrate when vbr is set.

      - **Scte27Pids** *(string) --* Packet Identifier (PID) for input source SCTE-27 data to this
      output. Multiple values are accepted, and can be entered in ranges and/or by comma separation.
      Can be entered as decimal or hexadecimal values. Each PID specified must be in the range of 32
      (or 0x20)..8182 (or 0x1ff6).

      - **Scte35Control** *(string) --* Optionally pass SCTE-35 signals from the input source to
      this output.

      - **Scte35Pid** *(string) --* Packet Identifier (PID) of the SCTE-35 stream in the transport
      stream. Can be entered as a decimal or hexadecimal value. Valid values are 32 (or 0x20)..8182
      (or 0x1ff6).

      - **SegmentationMarkers** *(string) --* Inserts segmentation markers at each segmentationTime
      period. raiSegstart sets the Random Access Indicator bit in the adaptation field. raiAdapt
      sets the RAI bit and adds the current timecode in the private data bytes. psiSegstart inserts
      PAT and PMT tables at the start of segments. ebp adds Encoder Boundary Point information to
      the adaptation field as per OpenCable specification OC-SP-EBP-I01-130118. ebpLegacy adds
      Encoder Boundary Point information to the adaptation field using a legacy proprietary format.

      - **SegmentationStyle** *(string) --* The segmentation style parameter controls how
      segmentation markers are inserted into the transport stream. With avails, it is possible that
      segments may be truncated, which can influence where future segmentation markers are inserted.
      When a segmentation style of "resetCadence" is selected and a segment is truncated due to an
      avail, we will reset the segmentation cadence. This means the subsequent segment will have a
      duration of $segmentationTime seconds. When a segmentation style of "maintainCadence" is
      selected and a segment is truncated due to an avail, we will not reset the segmentation
      cadence. This means the subsequent segment will likely be truncated as well. However, all
      segments after that will have a duration of $segmentationTime seconds. Note that EBP lookahead
      is a slight exception to this rule.

      - **SegmentationTime** *(float) --* The length in seconds of each segment. Required unless
      markers is set to None_.

      - **TimedMetadataBehavior** *(string) --* When set to passthrough, timed metadata will be
      passed through from input to output.

      - **TimedMetadataPid** *(string) --* Packet Identifier (PID) of the timed metadata stream in
      the transport stream. Can be entered as a decimal or hexadecimal value. Valid values are 32
      (or 0x20)..8182 (or 0x1ff6).

      - **TransportStreamId** *(integer) --* The value of the transport stream ID field in the
      Program Map Table.

      - **VideoPid** *(string) --* Packet Identifier (PID) of the elementary video stream in the
      transport stream. Can be entered as a decimal or hexadecimal value. Valid values are 32 (or
      0x20)..8182 (or 0x1ff6).
    """


_ClientUpdateChannelEncoderSettingsOutputGroupsOutputsOutputSettingsUdpOutputSettingsDestinationTypeDef = TypedDict(
    "_ClientUpdateChannelEncoderSettingsOutputGroupsOutputsOutputSettingsUdpOutputSettingsDestinationTypeDef",
    {"DestinationRefId": str},
    total=False,
)


class ClientUpdateChannelEncoderSettingsOutputGroupsOutputsOutputSettingsUdpOutputSettingsDestinationTypeDef(
    _ClientUpdateChannelEncoderSettingsOutputGroupsOutputsOutputSettingsUdpOutputSettingsDestinationTypeDef
):
    """
    Type definition for
    `ClientUpdateChannelEncoderSettingsOutputGroupsOutputsOutputSettingsUdpOutputSettings`
    `Destination`

    - **DestinationRefId** *(string) --* Placeholder documentation for __string
    """


_ClientUpdateChannelEncoderSettingsOutputGroupsOutputsOutputSettingsUdpOutputSettingsFecOutputSettingsTypeDef = TypedDict(
    "_ClientUpdateChannelEncoderSettingsOutputGroupsOutputsOutputSettingsUdpOutputSettingsFecOutputSettingsTypeDef",
    {"ColumnDepth": int, "IncludeFec": str, "RowLength": int},
    total=False,
)


class ClientUpdateChannelEncoderSettingsOutputGroupsOutputsOutputSettingsUdpOutputSettingsFecOutputSettingsTypeDef(
    _ClientUpdateChannelEncoderSettingsOutputGroupsOutputsOutputSettingsUdpOutputSettingsFecOutputSettingsTypeDef
):
    """
    Type definition for
    `ClientUpdateChannelEncoderSettingsOutputGroupsOutputsOutputSettingsUdpOutputSettings`
    `FecOutputSettings`

    - **ColumnDepth** *(integer) --* Parameter D from SMPTE 2022-1. The height of the FEC protection
    matrix. The number of transport stream packets per column error correction packet. Must be
    between 4 and 20, inclusive.

    - **IncludeFec** *(string) --* Enables column only or column and row based FEC

    - **RowLength** *(integer) --* Parameter L from SMPTE 2022-1. The width of the FEC protection
    matrix. Must be between 1 and 20, inclusive. If only Column FEC is used, then larger values
    increase robustness. If Row FEC is used, then this is the number of transport stream packets per
    row error correction packet, and the value must be between 4 and 20, inclusive, if includeFec is
    columnAndRow. If includeFec is column, this value must be 1 to 20, inclusive.
    """


_RequiredClientUpdateChannelEncoderSettingsOutputGroupsOutputsOutputSettingsUdpOutputSettingsTypeDef = TypedDict(
    "_RequiredClientUpdateChannelEncoderSettingsOutputGroupsOutputsOutputSettingsUdpOutputSettingsTypeDef",
    {
        "ContainerSettings": ClientUpdateChannelEncoderSettingsOutputGroupsOutputsOutputSettingsUdpOutputSettingsContainerSettingsTypeDef,
        "Destination": ClientUpdateChannelEncoderSettingsOutputGroupsOutputsOutputSettingsUdpOutputSettingsDestinationTypeDef,
    },
)
_OptionalClientUpdateChannelEncoderSettingsOutputGroupsOutputsOutputSettingsUdpOutputSettingsTypeDef = TypedDict(
    "_OptionalClientUpdateChannelEncoderSettingsOutputGroupsOutputsOutputSettingsUdpOutputSettingsTypeDef",
    {
        "BufferMsec": int,
        "FecOutputSettings": ClientUpdateChannelEncoderSettingsOutputGroupsOutputsOutputSettingsUdpOutputSettingsFecOutputSettingsTypeDef,
    },
    total=False,
)


class ClientUpdateChannelEncoderSettingsOutputGroupsOutputsOutputSettingsUdpOutputSettingsTypeDef(
    _RequiredClientUpdateChannelEncoderSettingsOutputGroupsOutputsOutputSettingsUdpOutputSettingsTypeDef,
    _OptionalClientUpdateChannelEncoderSettingsOutputGroupsOutputsOutputSettingsUdpOutputSettingsTypeDef,
):
    """
    Type definition for `ClientUpdateChannelEncoderSettingsOutputGroupsOutputsOutputSettings`
    `UdpOutputSettings`

    - **BufferMsec** *(integer) --* UDP output buffering in milliseconds. Larger values increase
    latency through the transcoder but simultaneously assist the transcoder in maintaining a
    constant, low-jitter UDP/RTP output while accommodating clock recovery, input switching, input
    disruptions, picture reordering, etc.

    - **ContainerSettings** *(dict) --* **[REQUIRED]** Udp Container Settings

      - **M2tsSettings** *(dict) --* M2ts Settings

        - **AbsentInputAudioBehavior** *(string) --* When set to drop, output audio streams will be
        removed from the program if the selected input audio stream is removed from the input. This
        allows the output audio configuration to dynamically change based on input configuration. If
        this is set to encodeSilence, all output audio streams will output encoded silence when not
        connected to an active input stream.

        - **Arib** *(string) --* When set to enabled, uses ARIB-compliant field muxing and removes
        video descriptor.

        - **AribCaptionsPid** *(string) --* Packet Identifier (PID) for ARIB Captions in the
        transport stream. Can be entered as a decimal or hexadecimal value. Valid values are 32 (or
        0x20)..8182 (or 0x1ff6).

        - **AribCaptionsPidControl** *(string) --* If set to auto, pid number used for ARIB Captions
        will be auto-selected from unused pids. If set to useConfigured, ARIB Captions will be on
        the configured pid number.

        - **AudioBufferModel** *(string) --* When set to dvb, uses DVB buffer model for Dolby
        Digital audio. When set to atsc, the ATSC model is used.

        - **AudioFramesPerPes** *(integer) --* The number of audio frames to insert for each PES
        packet.

        - **AudioPids** *(string) --* Packet Identifier (PID) of the elementary audio stream(s) in
        the transport stream. Multiple values are accepted, and can be entered in ranges and/or by
        comma separation. Can be entered as decimal or hexadecimal values. Each PID specified must
        be in the range of 32 (or 0x20)..8182 (or 0x1ff6).

        - **AudioStreamType** *(string) --* When set to atsc, uses stream type =
             0x81 for AC3 and
        stream type = 0x87 for EAC3. When set to dvb, uses stream type = 0x06.

        - **Bitrate** *(integer) --* The output bitrate of the transport stream in bits per second.
        Setting to 0 lets the muxer automatically determine the appropriate bitrate.

        - **BufferModel** *(string) --* If set to multiplex, use multiplex buffer model for accurate
        interleaving. Setting to bufferModel to none can lead to lower latency, but low-memory
        devices may not be able to play back the stream without interruptions.

        - **CcDescriptor** *(string) --* When set to enabled, generates captionServiceDescriptor in
        PMT.

        - **DvbNitSettings** *(dict) --* Inserts DVB Network Information Table (NIT) at the
        specified table repetition interval.

          - **NetworkId** *(integer) --* **[REQUIRED]** The numeric value placed in the Network
          Information Table (NIT).

          - **NetworkName** *(string) --* **[REQUIRED]** The network name text placed in the
          networkNameDescriptor inside the Network Information Table. Maximum length is 256
          characters.

          - **RepInterval** *(integer) --* The number of milliseconds between instances of this
          table in the output transport stream.

        - **DvbSdtSettings** *(dict) --* Inserts DVB Service Description Table (SDT) at the
        specified table repetition interval.

          - **OutputSdt** *(string) --* Selects method of inserting SDT information into output
          stream. The sdtFollow setting copies SDT information from input stream to output stream.
          The sdtFollowIfPresent setting copies SDT information from input stream to output stream
          if SDT information is present in the input, otherwise it will fall back on the
          user-defined values. The sdtManual setting means user will enter the SDT information. The
          sdtNone setting means output stream will not contain SDT information.

          - **RepInterval** *(integer) --* The number of milliseconds between instances of this
          table in the output transport stream.

          - **ServiceName** *(string) --* The service name placed in the serviceDescriptor in the
          Service Description Table. Maximum length is 256 characters.

          - **ServiceProviderName** *(string) --* The service provider name placed in the
          serviceDescriptor in the Service Description Table. Maximum length is 256 characters.

        - **DvbSubPids** *(string) --* Packet Identifier (PID) for input source DVB Subtitle data to
        this output. Multiple values are accepted, and can be entered in ranges and/or by comma
        separation. Can be entered as decimal or hexadecimal values. Each PID specified must be in
        the range of 32 (or 0x20)..8182 (or 0x1ff6).

        - **DvbTdtSettings** *(dict) --* Inserts DVB Time and Date Table (TDT) at the specified
        table repetition interval.

          - **RepInterval** *(integer) --* The number of milliseconds between instances of this
          table in the output transport stream.

        - **DvbTeletextPid** *(string) --* Packet Identifier (PID) for input source DVB Teletext
        data to this output. Can be entered as a decimal or hexadecimal value. Valid values are 32
        (or 0x20)..8182 (or 0x1ff6).

        - **Ebif** *(string) --* If set to passthrough, passes any EBIF data from the input source
        to this output.

        - **EbpAudioInterval** *(string) --* When videoAndFixedIntervals is selected, audio EBP
        markers will be added to partitions 3 and 4. The interval between these additional markers
        will be fixed, and will be slightly shorter than the video EBP marker interval. Only
        available when EBP Cablelabs segmentation markers are selected. Partitions 1 and 2 will
        always follow the video interval.

        - **EbpLookaheadMs** *(integer) --* When set, enforces that Encoder Boundary Points do not
        come within the specified time interval of each other by looking ahead at input video. If
        another EBP is going to come in within the specified time interval, the current EBP is not
        emitted, and the segment is "stretched" to the next marker. The lookahead value does not add
        latency to the system. The Live Event must be configured elsewhere to create sufficient
        latency to make the lookahead accurate.

        - **EbpPlacement** *(string) --* Controls placement of EBP on Audio PIDs. If set to
        videoAndAudioPids, EBP markers will be placed on the video PID and all audio PIDs. If set to
        videoPid, EBP markers will be placed on only the video PID.

        - **EcmPid** *(string) --* This field is unused and deprecated.

        - **EsRateInPes** *(string) --* Include or exclude the ES Rate field in the PES header.

        - **EtvPlatformPid** *(string) --* Packet Identifier (PID) for input source ETV Platform
        data to this output. Can be entered as a decimal or hexadecimal value. Valid values are 32
        (or 0x20)..8182 (or 0x1ff6).

        - **EtvSignalPid** *(string) --* Packet Identifier (PID) for input source ETV Signal data to
        this output. Can be entered as a decimal or hexadecimal value. Valid values are 32 (or
        0x20)..8182 (or 0x1ff6).

        - **FragmentTime** *(float) --* The length in seconds of each fragment. Only used with EBP
        markers.

        - **Klv** *(string) --* If set to passthrough, passes any KLV data from the input source to
        this output.

        - **KlvDataPids** *(string) --* Packet Identifier (PID) for input source KLV data to this
        output. Multiple values are accepted, and can be entered in ranges and/or by comma
        separation. Can be entered as decimal or hexadecimal values. Each PID specified must be in
        the range of 32 (or 0x20)..8182 (or 0x1ff6).

        - **NielsenId3Behavior** *(string) --* If set to passthrough, Nielsen inaudible tones for
        media tracking will be detected in the input audio and an equivalent ID3 tag will be
        inserted in the output.

        - **NullPacketBitrate** *(float) --* Value in bits per second of extra null packets to
        insert into the transport stream. This can be used if a downstream encryption system
        requires periodic null packets.

        - **PatInterval** *(integer) --* The number of milliseconds between instances of this table
        in the output transport stream. Valid values are 0, 10..1000.

        - **PcrControl** *(string) --* When set to pcrEveryPesPacket, a Program Clock Reference
        value is inserted for every Packetized Elementary Stream (PES) header. This parameter is
        effective only when the PCR PID is the same as the video or audio elementary stream.

        - **PcrPeriod** *(integer) --* Maximum time in milliseconds between Program Clock Reference
        (PCRs) inserted into the transport stream.

        - **PcrPid** *(string) --* Packet Identifier (PID) of the Program Clock Reference (PCR) in
        the transport stream. When no value is given, the encoder will assign the same value as the
        Video PID. Can be entered as a decimal or hexadecimal value. Valid values are 32 (or
        0x20)..8182 (or 0x1ff6).

        - **PmtInterval** *(integer) --* The number of milliseconds between instances of this table
        in the output transport stream. Valid values are 0, 10..1000.

        - **PmtPid** *(string) --* Packet Identifier (PID) for the Program Map Table (PMT) in the
        transport stream. Can be entered as a decimal or hexadecimal value. Valid values are 32 (or
        0x20)..8182 (or 0x1ff6).

        - **ProgramNum** *(integer) --* The value of the program number field in the Program Map
        Table.

        - **RateMode** *(string) --* When vbr, does not insert null packets into transport stream to
        fill specified bitrate. The bitrate setting acts as the maximum bitrate when vbr is set.

        - **Scte27Pids** *(string) --* Packet Identifier (PID) for input source SCTE-27 data to this
        output. Multiple values are accepted, and can be entered in ranges and/or by comma
        separation. Can be entered as decimal or hexadecimal values. Each PID specified must be in
        the range of 32 (or 0x20)..8182 (or 0x1ff6).

        - **Scte35Control** *(string) --* Optionally pass SCTE-35 signals from the input source to
        this output.

        - **Scte35Pid** *(string) --* Packet Identifier (PID) of the SCTE-35 stream in the transport
        stream. Can be entered as a decimal or hexadecimal value. Valid values are 32 (or
        0x20)..8182 (or 0x1ff6).

        - **SegmentationMarkers** *(string) --* Inserts segmentation markers at each
        segmentationTime period. raiSegstart sets the Random Access Indicator bit in the adaptation
        field. raiAdapt sets the RAI bit and adds the current timecode in the private data bytes.
        psiSegstart inserts PAT and PMT tables at the start of segments. ebp adds Encoder Boundary
        Point information to the adaptation field as per OpenCable specification
        OC-SP-EBP-I01-130118. ebpLegacy adds Encoder Boundary Point information to the adaptation
        field using a legacy proprietary format.

        - **SegmentationStyle** *(string) --* The segmentation style parameter controls how
        segmentation markers are inserted into the transport stream. With avails, it is possible
        that segments may be truncated, which can influence where future segmentation markers are
        inserted. When a segmentation style of "resetCadence" is selected and a segment is truncated
        due to an avail, we will reset the segmentation cadence. This means the subsequent segment
        will have a duration of $segmentationTime seconds. When a segmentation style of
        "maintainCadence" is selected and a segment is truncated due to an avail, we will not reset
        the segmentation cadence. This means the subsequent segment will likely be truncated as
        well. However, all segments after that will have a duration of $segmentationTime seconds.
        Note that EBP lookahead is a slight exception to this rule.

        - **SegmentationTime** *(float) --* The length in seconds of each segment. Required unless
        markers is set to None_.

        - **TimedMetadataBehavior** *(string) --* When set to passthrough, timed metadata will be
        passed through from input to output.

        - **TimedMetadataPid** *(string) --* Packet Identifier (PID) of the timed metadata stream in
        the transport stream. Can be entered as a decimal or hexadecimal value. Valid values are 32
        (or 0x20)..8182 (or 0x1ff6).

        - **TransportStreamId** *(integer) --* The value of the transport stream ID field in the
        Program Map Table.

        - **VideoPid** *(string) --* Packet Identifier (PID) of the elementary video stream in the
        transport stream. Can be entered as a decimal or hexadecimal value. Valid values are 32 (or
        0x20)..8182 (or 0x1ff6).

    - **Destination** *(dict) --* **[REQUIRED]** Destination address and port number for RTP or UDP
    packets. Can be unicast or multicast RTP or UDP (eg. rtp://239.10.10.10:5001 or
    udp://10.100.100.100:5002).

      - **DestinationRefId** *(string) --* Placeholder documentation for __string

    - **FecOutputSettings** *(dict) --* Settings for enabling and adjusting Forward Error Correction
    on UDP outputs.

      - **ColumnDepth** *(integer) --* Parameter D from SMPTE 2022-1. The height of the FEC
      protection matrix. The number of transport stream packets per column error correction packet.
      Must be between 4 and 20, inclusive.

      - **IncludeFec** *(string) --* Enables column only or column and row based FEC

      - **RowLength** *(integer) --* Parameter L from SMPTE 2022-1. The width of the FEC protection
      matrix. Must be between 1 and 20, inclusive. If only Column FEC is used, then larger values
      increase robustness. If Row FEC is used, then this is the number of transport stream packets
      per row error correction packet, and the value must be between 4 and 20, inclusive, if
      includeFec is columnAndRow. If includeFec is column, this value must be 1 to 20, inclusive.
    """


_ClientUpdateChannelEncoderSettingsOutputGroupsOutputsOutputSettingsTypeDef = TypedDict(
    "_ClientUpdateChannelEncoderSettingsOutputGroupsOutputsOutputSettingsTypeDef",
    {
        "ArchiveOutputSettings": ClientUpdateChannelEncoderSettingsOutputGroupsOutputsOutputSettingsArchiveOutputSettingsTypeDef,
        "FrameCaptureOutputSettings": ClientUpdateChannelEncoderSettingsOutputGroupsOutputsOutputSettingsFrameCaptureOutputSettingsTypeDef,
        "HlsOutputSettings": ClientUpdateChannelEncoderSettingsOutputGroupsOutputsOutputSettingsHlsOutputSettingsTypeDef,
        "MediaPackageOutputSettings": Dict,
        "MsSmoothOutputSettings": ClientUpdateChannelEncoderSettingsOutputGroupsOutputsOutputSettingsMsSmoothOutputSettingsTypeDef,
        "MultiplexOutputSettings": ClientUpdateChannelEncoderSettingsOutputGroupsOutputsOutputSettingsMultiplexOutputSettingsTypeDef,
        "RtmpOutputSettings": ClientUpdateChannelEncoderSettingsOutputGroupsOutputsOutputSettingsRtmpOutputSettingsTypeDef,
        "UdpOutputSettings": ClientUpdateChannelEncoderSettingsOutputGroupsOutputsOutputSettingsUdpOutputSettingsTypeDef,
    },
    total=False,
)


class ClientUpdateChannelEncoderSettingsOutputGroupsOutputsOutputSettingsTypeDef(
    _ClientUpdateChannelEncoderSettingsOutputGroupsOutputsOutputSettingsTypeDef
):
    """
    Type definition for `ClientUpdateChannelEncoderSettingsOutputGroupsOutputs` `OutputSettings`

    - **ArchiveOutputSettings** *(dict) --* Archive Output Settings

      - **ContainerSettings** *(dict) --* **[REQUIRED]** Settings specific to the container type of
      the file.

        - **M2tsSettings** *(dict) --* M2ts Settings

          - **AbsentInputAudioBehavior** *(string) --* When set to drop, output audio streams will
          be removed from the program if the selected input audio stream is removed from the input.
          This allows the output audio configuration to dynamically change based on input
          configuration. If this is set to encodeSilence, all output audio streams will output
          encoded silence when not connected to an active input stream.

          - **Arib** *(string) --* When set to enabled, uses ARIB-compliant field muxing and removes
          video descriptor.

          - **AribCaptionsPid** *(string) --* Packet Identifier (PID) for ARIB Captions in the
          transport stream. Can be entered as a decimal or hexadecimal value. Valid values are 32
          (or 0x20)..8182 (or 0x1ff6).

          - **AribCaptionsPidControl** *(string) --* If set to auto, pid number used for ARIB
          Captions will be auto-selected from unused pids. If set to useConfigured, ARIB Captions
          will be on the configured pid number.

          - **AudioBufferModel** *(string) --* When set to dvb, uses DVB buffer model for Dolby
          Digital audio. When set to atsc, the ATSC model is used.

          - **AudioFramesPerPes** *(integer) --* The number of audio frames to insert for each PES
          packet.

          - **AudioPids** *(string) --* Packet Identifier (PID) of the elementary audio stream(s) in
          the transport stream. Multiple values are accepted, and can be entered in ranges and/or by
          comma separation. Can be entered as decimal or hexadecimal values. Each PID specified must
          be in the range of 32 (or 0x20)..8182 (or 0x1ff6).

          - **AudioStreamType** *(string) --* When set to atsc, uses stream type =
               0x81 for AC3 and
          stream type = 0x87 for EAC3. When set to dvb, uses stream type = 0x06.

          - **Bitrate** *(integer) --* The output bitrate of the transport stream in bits per
          second. Setting to 0 lets the muxer automatically determine the appropriate bitrate.

          - **BufferModel** *(string) --* If set to multiplex, use multiplex buffer model for
          accurate interleaving. Setting to bufferModel to none can lead to lower latency, but
          low-memory devices may not be able to play back the stream without interruptions.

          - **CcDescriptor** *(string) --* When set to enabled, generates captionServiceDescriptor
          in PMT.

          - **DvbNitSettings** *(dict) --* Inserts DVB Network Information Table (NIT) at the
          specified table repetition interval.

            - **NetworkId** *(integer) --* **[REQUIRED]** The numeric value placed in the Network
            Information Table (NIT).

            - **NetworkName** *(string) --* **[REQUIRED]** The network name text placed in the
            networkNameDescriptor inside the Network Information Table. Maximum length is 256
            characters.

            - **RepInterval** *(integer) --* The number of milliseconds between instances of this
            table in the output transport stream.

          - **DvbSdtSettings** *(dict) --* Inserts DVB Service Description Table (SDT) at the
          specified table repetition interval.

            - **OutputSdt** *(string) --* Selects method of inserting SDT information into output
            stream. The sdtFollow setting copies SDT information from input stream to output stream.
            The sdtFollowIfPresent setting copies SDT information from input stream to output stream
            if SDT information is present in the input, otherwise it will fall back on the
            user-defined values. The sdtManual setting means user will enter the SDT information.
            The sdtNone setting means output stream will not contain SDT information.

            - **RepInterval** *(integer) --* The number of milliseconds between instances of this
            table in the output transport stream.

            - **ServiceName** *(string) --* The service name placed in the serviceDescriptor in the
            Service Description Table. Maximum length is 256 characters.

            - **ServiceProviderName** *(string) --* The service provider name placed in the
            serviceDescriptor in the Service Description Table. Maximum length is 256 characters.

          - **DvbSubPids** *(string) --* Packet Identifier (PID) for input source DVB Subtitle data
          to this output. Multiple values are accepted, and can be entered in ranges and/or by comma
          separation. Can be entered as decimal or hexadecimal values. Each PID specified must be in
          the range of 32 (or 0x20)..8182 (or 0x1ff6).

          - **DvbTdtSettings** *(dict) --* Inserts DVB Time and Date Table (TDT) at the specified
          table repetition interval.

            - **RepInterval** *(integer) --* The number of milliseconds between instances of this
            table in the output transport stream.

          - **DvbTeletextPid** *(string) --* Packet Identifier (PID) for input source DVB Teletext
          data to this output. Can be entered as a decimal or hexadecimal value. Valid values are 32
          (or 0x20)..8182 (or 0x1ff6).

          - **Ebif** *(string) --* If set to passthrough, passes any EBIF data from the input source
          to this output.

          - **EbpAudioInterval** *(string) --* When videoAndFixedIntervals is selected, audio EBP
          markers will be added to partitions 3 and 4. The interval between these additional markers
          will be fixed, and will be slightly shorter than the video EBP marker interval. Only
          available when EBP Cablelabs segmentation markers are selected. Partitions 1 and 2 will
          always follow the video interval.

          - **EbpLookaheadMs** *(integer) --* When set, enforces that Encoder Boundary Points do not
          come within the specified time interval of each other by looking ahead at input video. If
          another EBP is going to come in within the specified time interval, the current EBP is not
          emitted, and the segment is "stretched" to the next marker. The lookahead value does not
          add latency to the system. The Live Event must be configured elsewhere to create
          sufficient latency to make the lookahead accurate.

          - **EbpPlacement** *(string) --* Controls placement of EBP on Audio PIDs. If set to
          videoAndAudioPids, EBP markers will be placed on the video PID and all audio PIDs. If set
          to videoPid, EBP markers will be placed on only the video PID.

          - **EcmPid** *(string) --* This field is unused and deprecated.

          - **EsRateInPes** *(string) --* Include or exclude the ES Rate field in the PES header.

          - **EtvPlatformPid** *(string) --* Packet Identifier (PID) for input source ETV Platform
          data to this output. Can be entered as a decimal or hexadecimal value. Valid values are 32
          (or 0x20)..8182 (or 0x1ff6).

          - **EtvSignalPid** *(string) --* Packet Identifier (PID) for input source ETV Signal data
          to this output. Can be entered as a decimal or hexadecimal value. Valid values are 32 (or
          0x20)..8182 (or 0x1ff6).

          - **FragmentTime** *(float) --* The length in seconds of each fragment. Only used with EBP
          markers.

          - **Klv** *(string) --* If set to passthrough, passes any KLV data from the input source
          to this output.

          - **KlvDataPids** *(string) --* Packet Identifier (PID) for input source KLV data to this
          output. Multiple values are accepted, and can be entered in ranges and/or by comma
          separation. Can be entered as decimal or hexadecimal values. Each PID specified must be in
          the range of 32 (or 0x20)..8182 (or 0x1ff6).

          - **NielsenId3Behavior** *(string) --* If set to passthrough, Nielsen inaudible tones for
          media tracking will be detected in the input audio and an equivalent ID3 tag will be
          inserted in the output.

          - **NullPacketBitrate** *(float) --* Value in bits per second of extra null packets to
          insert into the transport stream. This can be used if a downstream encryption system
          requires periodic null packets.

          - **PatInterval** *(integer) --* The number of milliseconds between instances of this
          table in the output transport stream. Valid values are 0, 10..1000.

          - **PcrControl** *(string) --* When set to pcrEveryPesPacket, a Program Clock Reference
          value is inserted for every Packetized Elementary Stream (PES) header. This parameter is
          effective only when the PCR PID is the same as the video or audio elementary stream.

          - **PcrPeriod** *(integer) --* Maximum time in milliseconds between Program Clock
          Reference (PCRs) inserted into the transport stream.

          - **PcrPid** *(string) --* Packet Identifier (PID) of the Program Clock Reference (PCR) in
          the transport stream. When no value is given, the encoder will assign the same value as
          the Video PID. Can be entered as a decimal or hexadecimal value. Valid values are 32 (or
          0x20)..8182 (or 0x1ff6).

          - **PmtInterval** *(integer) --* The number of milliseconds between instances of this
          table in the output transport stream. Valid values are 0, 10..1000.

          - **PmtPid** *(string) --* Packet Identifier (PID) for the Program Map Table (PMT) in the
          transport stream. Can be entered as a decimal or hexadecimal value. Valid values are 32
          (or 0x20)..8182 (or 0x1ff6).

          - **ProgramNum** *(integer) --* The value of the program number field in the Program Map
          Table.

          - **RateMode** *(string) --* When vbr, does not insert null packets into transport stream
          to fill specified bitrate. The bitrate setting acts as the maximum bitrate when vbr is
          set.

          - **Scte27Pids** *(string) --* Packet Identifier (PID) for input source SCTE-27 data to
          this output. Multiple values are accepted, and can be entered in ranges and/or by comma
          separation. Can be entered as decimal or hexadecimal values. Each PID specified must be in
          the range of 32 (or 0x20)..8182 (or 0x1ff6).

          - **Scte35Control** *(string) --* Optionally pass SCTE-35 signals from the input source to
          this output.

          - **Scte35Pid** *(string) --* Packet Identifier (PID) of the SCTE-35 stream in the
          transport stream. Can be entered as a decimal or hexadecimal value. Valid values are 32
          (or 0x20)..8182 (or 0x1ff6).

          - **SegmentationMarkers** *(string) --* Inserts segmentation markers at each
          segmentationTime period. raiSegstart sets the Random Access Indicator bit in the
          adaptation field. raiAdapt sets the RAI bit and adds the current timecode in the private
          data bytes. psiSegstart inserts PAT and PMT tables at the start of segments. ebp adds
          Encoder Boundary Point information to the adaptation field as per OpenCable specification
          OC-SP-EBP-I01-130118. ebpLegacy adds Encoder Boundary Point information to the adaptation
          field using a legacy proprietary format.

          - **SegmentationStyle** *(string) --* The segmentation style parameter controls how
          segmentation markers are inserted into the transport stream. With avails, it is possible
          that segments may be truncated, which can influence where future segmentation markers are
          inserted. When a segmentation style of "resetCadence" is selected and a segment is
          truncated due to an avail, we will reset the segmentation cadence. This means the
          subsequent segment will have a duration of $segmentationTime seconds. When a segmentation
          style of "maintainCadence" is selected and a segment is truncated due to an avail, we will
          not reset the segmentation cadence. This means the subsequent segment will likely be
          truncated as well. However, all segments after that will have a duration of
          $segmentationTime seconds. Note that EBP lookahead is a slight exception to this rule.

          - **SegmentationTime** *(float) --* The length in seconds of each segment. Required unless
          markers is set to None_.

          - **TimedMetadataBehavior** *(string) --* When set to passthrough, timed metadata will be
          passed through from input to output.

          - **TimedMetadataPid** *(string) --* Packet Identifier (PID) of the timed metadata stream
          in the transport stream. Can be entered as a decimal or hexadecimal value. Valid values
          are 32 (or 0x20)..8182 (or 0x1ff6).

          - **TransportStreamId** *(integer) --* The value of the transport stream ID field in the
          Program Map Table.

          - **VideoPid** *(string) --* Packet Identifier (PID) of the elementary video stream in the
          transport stream. Can be entered as a decimal or hexadecimal value. Valid values are 32
          (or 0x20)..8182 (or 0x1ff6).

      - **Extension** *(string) --* Output file extension. If excluded, this will be auto-selected
      from the container type.

      - **NameModifier** *(string) --* String concatenated to the end of the destination filename.
      Required for multiple outputs of the same type.

    - **FrameCaptureOutputSettings** *(dict) --* Frame Capture Output Settings

      - **NameModifier** *(string) --* Required if the output group contains more than one output.
      This modifier forms part of the output file name.

    - **HlsOutputSettings** *(dict) --* Hls Output Settings

      - **HlsSettings** *(dict) --* **[REQUIRED]** Settings regarding the underlying stream. These
      settings are different for audio-only outputs.

        - **AudioOnlyHlsSettings** *(dict) --* Audio Only Hls Settings

          - **AudioGroupId** *(string) --* Specifies the group to which the audio Rendition belongs.

          - **AudioOnlyImage** *(dict) --* Optional. Specifies the .jpg or .png image to use as the
          cover art for an audio-only output. We recommend a low bit-size file because the image
          increases the output audio bandwidth. The image is attached to the audio as an ID3 tag,
          frame type APIC, picture type 0x10, as per the "ID3 tag version 2.4.0 - Native Frames"
          standard.

            - **PasswordParam** *(string) --* key used to extract the password from EC2 Parameter
            store

            - **Uri** *(string) --* **[REQUIRED]** Uniform Resource Identifier - This should be a
            path to a file accessible to the Live system (eg. a http:// URI) depending on the output
            type. For example, a RTMP destination should have a uri simliar to:
            "rtmp://fmsserver/live".

            - **Username** *(string) --* Documentation update needed

          - **AudioTrackType** *(string) --* Four types of audio-only tracks are supported:
          Audio-Only Variant Stream The client can play back this audio-only stream instead of video
          in low-bandwidth scenarios. Represented as an EXT-X-STREAM-INF in the HLS manifest.
          Alternate Audio, Auto Select, Default Alternate rendition that the client should try to
          play back by default. Represented as an EXT-X-MEDIA in the HLS manifest with DEFAULT=YES,
          AUTOSELECT=
              YES Alternate Audio, Auto Select, Not Default Alternate rendition that the
          client may try to play back by default. Represented as an EXT-X-MEDIA in the HLS manifest
          with DEFAULT=NO, AUTOSELECT=
              YES Alternate Audio, not Auto Select Alternate rendition that
          the client will not try to play back by default. Represented as an EXT-X-MEDIA in the HLS
          manifest with DEFAULT=NO, AUTOSELECT=NO

        - **StandardHlsSettings** *(dict) --* Standard Hls Settings

          - **AudioRenditionSets** *(string) --* List all the audio groups that are used with the
          video output stream. Input all the audio GROUP-IDs that are associated to the video,
          separate by ','.

          - **M3u8Settings** *(dict) --* **[REQUIRED]** Settings information for the .m3u8 container

            - **AudioFramesPerPes** *(integer) --* The number of audio frames to insert for each PES
            packet.

            - **AudioPids** *(string) --* Packet Identifier (PID) of the elementary audio stream(s)
            in the transport stream. Multiple values are accepted, and can be entered in ranges
            and/or by comma separation. Can be entered as decimal or hexadecimal values.

            - **EcmPid** *(string) --* This parameter is unused and deprecated.

            - **NielsenId3Behavior** *(string) --* If set to passthrough, Nielsen inaudible tones
            for media tracking will be detected in the input audio and an equivalent ID3 tag will be
            inserted in the output.

            - **PatInterval** *(integer) --* The number of milliseconds between instances of this
            table in the output transport stream. A value of \\"0\\" writes out the PMT once per
            segment file.

            - **PcrControl** *(string) --* When set to pcrEveryPesPacket, a Program Clock Reference
            value is inserted for every Packetized Elementary Stream (PES) header. This parameter is
            effective only when the PCR PID is the same as the video or audio elementary stream.

            - **PcrPeriod** *(integer) --* Maximum time in milliseconds between Program Clock
            References (PCRs) inserted into the transport stream.

            - **PcrPid** *(string) --* Packet Identifier (PID) of the Program Clock Reference (PCR)
            in the transport stream. When no value is given, the encoder will assign the same value
            as the Video PID. Can be entered as a decimal or hexadecimal value.

            - **PmtInterval** *(integer) --* The number of milliseconds between instances of this
            table in the output transport stream. A value of \\"0\\" writes out the PMT once per
            segment file.

            - **PmtPid** *(string) --* Packet Identifier (PID) for the Program Map Table (PMT) in
            the transport stream. Can be entered as a decimal or hexadecimal value.

            - **ProgramNum** *(integer) --* The value of the program number field in the Program Map
            Table.

            - **Scte35Behavior** *(string) --* If set to passthrough, passes any SCTE-35 signals
            from the input source to this output.

            - **Scte35Pid** *(string) --* Packet Identifier (PID) of the SCTE-35 stream in the
            transport stream. Can be entered as a decimal or hexadecimal value.

            - **TimedMetadataBehavior** *(string) --* When set to passthrough, timed metadata is
            passed through from input to output.

            - **TimedMetadataPid** *(string) --* Packet Identifier (PID) of the timed metadata
            stream in the transport stream. Can be entered as a decimal or hexadecimal value. Valid
            values are 32 (or 0x20)..8182 (or 0x1ff6).

            - **TransportStreamId** *(integer) --* The value of the transport stream ID field in the
            Program Map Table.

            - **VideoPid** *(string) --* Packet Identifier (PID) of the elementary video stream in
            the transport stream. Can be entered as a decimal or hexadecimal value.

      - **NameModifier** *(string) --* String concatenated to the end of the destination filename.
      Accepts \\"Format Identifiers\\":#formatIdentifierParameters.

      - **SegmentModifier** *(string) --* String concatenated to end of segment filenames.

    - **MediaPackageOutputSettings** *(dict) --* Media Package Output Settings

    - **MsSmoothOutputSettings** *(dict) --* Ms Smooth Output Settings

      - **H265PackagingType** *(string) --* Only applicable when this output is referencing an H.265
      video description. Specifies whether MP4 segments should be packaged as HEV1 or HVC1.

      - **NameModifier** *(string) --* String concatenated to the end of the destination filename.
      Required for multiple outputs of the same type.

    - **MultiplexOutputSettings** *(dict) --* Multiplex Output Settings

      - **Destination** *(dict) --* **[REQUIRED]** Destination is a Multiplex.

        - **DestinationRefId** *(string) --* Placeholder documentation for __string

    - **RtmpOutputSettings** *(dict) --* Rtmp Output Settings

      - **CertificateMode** *(string) --* If set to verifyAuthenticity, verify the tls certificate
      chain to a trusted Certificate Authority (CA). This will cause rtmps outputs with self-signed
      certificates to fail.

      - **ConnectionRetryInterval** *(integer) --* Number of seconds to wait before retrying a
      connection to the Flash Media server if the connection is lost.

      - **Destination** *(dict) --* **[REQUIRED]** The RTMP endpoint excluding the stream name (eg.
      rtmp://host/appname). For connection to Akamai, a username and password must be supplied. URI
      fields accept format identifiers.

        - **DestinationRefId** *(string) --* Placeholder documentation for __string

      - **NumRetries** *(integer) --* Number of retry attempts.

    - **UdpOutputSettings** *(dict) --* Udp Output Settings

      - **BufferMsec** *(integer) --* UDP output buffering in milliseconds. Larger values increase
      latency through the transcoder but simultaneously assist the transcoder in maintaining a
      constant, low-jitter UDP/RTP output while accommodating clock recovery, input switching, input
      disruptions, picture reordering, etc.

      - **ContainerSettings** *(dict) --* **[REQUIRED]** Udp Container Settings

        - **M2tsSettings** *(dict) --* M2ts Settings

          - **AbsentInputAudioBehavior** *(string) --* When set to drop, output audio streams will
          be removed from the program if the selected input audio stream is removed from the input.
          This allows the output audio configuration to dynamically change based on input
          configuration. If this is set to encodeSilence, all output audio streams will output
          encoded silence when not connected to an active input stream.

          - **Arib** *(string) --* When set to enabled, uses ARIB-compliant field muxing and removes
          video descriptor.

          - **AribCaptionsPid** *(string) --* Packet Identifier (PID) for ARIB Captions in the
          transport stream. Can be entered as a decimal or hexadecimal value. Valid values are 32
          (or 0x20)..8182 (or 0x1ff6).

          - **AribCaptionsPidControl** *(string) --* If set to auto, pid number used for ARIB
          Captions will be auto-selected from unused pids. If set to useConfigured, ARIB Captions
          will be on the configured pid number.

          - **AudioBufferModel** *(string) --* When set to dvb, uses DVB buffer model for Dolby
          Digital audio. When set to atsc, the ATSC model is used.

          - **AudioFramesPerPes** *(integer) --* The number of audio frames to insert for each PES
          packet.

          - **AudioPids** *(string) --* Packet Identifier (PID) of the elementary audio stream(s) in
          the transport stream. Multiple values are accepted, and can be entered in ranges and/or by
          comma separation. Can be entered as decimal or hexadecimal values. Each PID specified must
          be in the range of 32 (or 0x20)..8182 (or 0x1ff6).

          - **AudioStreamType** *(string) --* When set to atsc, uses stream type =
               0x81 for AC3 and
          stream type = 0x87 for EAC3. When set to dvb, uses stream type = 0x06.

          - **Bitrate** *(integer) --* The output bitrate of the transport stream in bits per
          second. Setting to 0 lets the muxer automatically determine the appropriate bitrate.

          - **BufferModel** *(string) --* If set to multiplex, use multiplex buffer model for
          accurate interleaving. Setting to bufferModel to none can lead to lower latency, but
          low-memory devices may not be able to play back the stream without interruptions.

          - **CcDescriptor** *(string) --* When set to enabled, generates captionServiceDescriptor
          in PMT.

          - **DvbNitSettings** *(dict) --* Inserts DVB Network Information Table (NIT) at the
          specified table repetition interval.

            - **NetworkId** *(integer) --* **[REQUIRED]** The numeric value placed in the Network
            Information Table (NIT).

            - **NetworkName** *(string) --* **[REQUIRED]** The network name text placed in the
            networkNameDescriptor inside the Network Information Table. Maximum length is 256
            characters.

            - **RepInterval** *(integer) --* The number of milliseconds between instances of this
            table in the output transport stream.

          - **DvbSdtSettings** *(dict) --* Inserts DVB Service Description Table (SDT) at the
          specified table repetition interval.

            - **OutputSdt** *(string) --* Selects method of inserting SDT information into output
            stream. The sdtFollow setting copies SDT information from input stream to output stream.
            The sdtFollowIfPresent setting copies SDT information from input stream to output stream
            if SDT information is present in the input, otherwise it will fall back on the
            user-defined values. The sdtManual setting means user will enter the SDT information.
            The sdtNone setting means output stream will not contain SDT information.

            - **RepInterval** *(integer) --* The number of milliseconds between instances of this
            table in the output transport stream.

            - **ServiceName** *(string) --* The service name placed in the serviceDescriptor in the
            Service Description Table. Maximum length is 256 characters.

            - **ServiceProviderName** *(string) --* The service provider name placed in the
            serviceDescriptor in the Service Description Table. Maximum length is 256 characters.

          - **DvbSubPids** *(string) --* Packet Identifier (PID) for input source DVB Subtitle data
          to this output. Multiple values are accepted, and can be entered in ranges and/or by comma
          separation. Can be entered as decimal or hexadecimal values. Each PID specified must be in
          the range of 32 (or 0x20)..8182 (or 0x1ff6).

          - **DvbTdtSettings** *(dict) --* Inserts DVB Time and Date Table (TDT) at the specified
          table repetition interval.

            - **RepInterval** *(integer) --* The number of milliseconds between instances of this
            table in the output transport stream.

          - **DvbTeletextPid** *(string) --* Packet Identifier (PID) for input source DVB Teletext
          data to this output. Can be entered as a decimal or hexadecimal value. Valid values are 32
          (or 0x20)..8182 (or 0x1ff6).

          - **Ebif** *(string) --* If set to passthrough, passes any EBIF data from the input source
          to this output.

          - **EbpAudioInterval** *(string) --* When videoAndFixedIntervals is selected, audio EBP
          markers will be added to partitions 3 and 4. The interval between these additional markers
          will be fixed, and will be slightly shorter than the video EBP marker interval. Only
          available when EBP Cablelabs segmentation markers are selected. Partitions 1 and 2 will
          always follow the video interval.

          - **EbpLookaheadMs** *(integer) --* When set, enforces that Encoder Boundary Points do not
          come within the specified time interval of each other by looking ahead at input video. If
          another EBP is going to come in within the specified time interval, the current EBP is not
          emitted, and the segment is "stretched" to the next marker. The lookahead value does not
          add latency to the system. The Live Event must be configured elsewhere to create
          sufficient latency to make the lookahead accurate.

          - **EbpPlacement** *(string) --* Controls placement of EBP on Audio PIDs. If set to
          videoAndAudioPids, EBP markers will be placed on the video PID and all audio PIDs. If set
          to videoPid, EBP markers will be placed on only the video PID.

          - **EcmPid** *(string) --* This field is unused and deprecated.

          - **EsRateInPes** *(string) --* Include or exclude the ES Rate field in the PES header.

          - **EtvPlatformPid** *(string) --* Packet Identifier (PID) for input source ETV Platform
          data to this output. Can be entered as a decimal or hexadecimal value. Valid values are 32
          (or 0x20)..8182 (or 0x1ff6).

          - **EtvSignalPid** *(string) --* Packet Identifier (PID) for input source ETV Signal data
          to this output. Can be entered as a decimal or hexadecimal value. Valid values are 32 (or
          0x20)..8182 (or 0x1ff6).

          - **FragmentTime** *(float) --* The length in seconds of each fragment. Only used with EBP
          markers.

          - **Klv** *(string) --* If set to passthrough, passes any KLV data from the input source
          to this output.

          - **KlvDataPids** *(string) --* Packet Identifier (PID) for input source KLV data to this
          output. Multiple values are accepted, and can be entered in ranges and/or by comma
          separation. Can be entered as decimal or hexadecimal values. Each PID specified must be in
          the range of 32 (or 0x20)..8182 (or 0x1ff6).

          - **NielsenId3Behavior** *(string) --* If set to passthrough, Nielsen inaudible tones for
          media tracking will be detected in the input audio and an equivalent ID3 tag will be
          inserted in the output.

          - **NullPacketBitrate** *(float) --* Value in bits per second of extra null packets to
          insert into the transport stream. This can be used if a downstream encryption system
          requires periodic null packets.

          - **PatInterval** *(integer) --* The number of milliseconds between instances of this
          table in the output transport stream. Valid values are 0, 10..1000.

          - **PcrControl** *(string) --* When set to pcrEveryPesPacket, a Program Clock Reference
          value is inserted for every Packetized Elementary Stream (PES) header. This parameter is
          effective only when the PCR PID is the same as the video or audio elementary stream.

          - **PcrPeriod** *(integer) --* Maximum time in milliseconds between Program Clock
          Reference (PCRs) inserted into the transport stream.

          - **PcrPid** *(string) --* Packet Identifier (PID) of the Program Clock Reference (PCR) in
          the transport stream. When no value is given, the encoder will assign the same value as
          the Video PID. Can be entered as a decimal or hexadecimal value. Valid values are 32 (or
          0x20)..8182 (or 0x1ff6).

          - **PmtInterval** *(integer) --* The number of milliseconds between instances of this
          table in the output transport stream. Valid values are 0, 10..1000.

          - **PmtPid** *(string) --* Packet Identifier (PID) for the Program Map Table (PMT) in the
          transport stream. Can be entered as a decimal or hexadecimal value. Valid values are 32
          (or 0x20)..8182 (or 0x1ff6).

          - **ProgramNum** *(integer) --* The value of the program number field in the Program Map
          Table.

          - **RateMode** *(string) --* When vbr, does not insert null packets into transport stream
          to fill specified bitrate. The bitrate setting acts as the maximum bitrate when vbr is
          set.

          - **Scte27Pids** *(string) --* Packet Identifier (PID) for input source SCTE-27 data to
          this output. Multiple values are accepted, and can be entered in ranges and/or by comma
          separation. Can be entered as decimal or hexadecimal values. Each PID specified must be in
          the range of 32 (or 0x20)..8182 (or 0x1ff6).

          - **Scte35Control** *(string) --* Optionally pass SCTE-35 signals from the input source to
          this output.

          - **Scte35Pid** *(string) --* Packet Identifier (PID) of the SCTE-35 stream in the
          transport stream. Can be entered as a decimal or hexadecimal value. Valid values are 32
          (or 0x20)..8182 (or 0x1ff6).

          - **SegmentationMarkers** *(string) --* Inserts segmentation markers at each
          segmentationTime period. raiSegstart sets the Random Access Indicator bit in the
          adaptation field. raiAdapt sets the RAI bit and adds the current timecode in the private
          data bytes. psiSegstart inserts PAT and PMT tables at the start of segments. ebp adds
          Encoder Boundary Point information to the adaptation field as per OpenCable specification
          OC-SP-EBP-I01-130118. ebpLegacy adds Encoder Boundary Point information to the adaptation
          field using a legacy proprietary format.

          - **SegmentationStyle** *(string) --* The segmentation style parameter controls how
          segmentation markers are inserted into the transport stream. With avails, it is possible
          that segments may be truncated, which can influence where future segmentation markers are
          inserted. When a segmentation style of "resetCadence" is selected and a segment is
          truncated due to an avail, we will reset the segmentation cadence. This means the
          subsequent segment will have a duration of $segmentationTime seconds. When a segmentation
          style of "maintainCadence" is selected and a segment is truncated due to an avail, we will
          not reset the segmentation cadence. This means the subsequent segment will likely be
          truncated as well. However, all segments after that will have a duration of
          $segmentationTime seconds. Note that EBP lookahead is a slight exception to this rule.

          - **SegmentationTime** *(float) --* The length in seconds of each segment. Required unless
          markers is set to None_.

          - **TimedMetadataBehavior** *(string) --* When set to passthrough, timed metadata will be
          passed through from input to output.

          - **TimedMetadataPid** *(string) --* Packet Identifier (PID) of the timed metadata stream
          in the transport stream. Can be entered as a decimal or hexadecimal value. Valid values
          are 32 (or 0x20)..8182 (or 0x1ff6).

          - **TransportStreamId** *(integer) --* The value of the transport stream ID field in the
          Program Map Table.

          - **VideoPid** *(string) --* Packet Identifier (PID) of the elementary video stream in the
          transport stream. Can be entered as a decimal or hexadecimal value. Valid values are 32
          (or 0x20)..8182 (or 0x1ff6).

      - **Destination** *(dict) --* **[REQUIRED]** Destination address and port number for RTP or
      UDP packets. Can be unicast or multicast RTP or UDP (eg. rtp://239.10.10.10:5001 or
      udp://10.100.100.100:5002).

        - **DestinationRefId** *(string) --* Placeholder documentation for __string

      - **FecOutputSettings** *(dict) --* Settings for enabling and adjusting Forward Error
      Correction on UDP outputs.

        - **ColumnDepth** *(integer) --* Parameter D from SMPTE 2022-1. The height of the FEC
        protection matrix. The number of transport stream packets per column error correction
        packet. Must be between 4 and 20, inclusive.

        - **IncludeFec** *(string) --* Enables column only or column and row based FEC

        - **RowLength** *(integer) --* Parameter L from SMPTE 2022-1. The width of the FEC
        protection matrix. Must be between 1 and 20, inclusive. If only Column FEC is used, then
        larger values increase robustness. If Row FEC is used, then this is the number of transport
        stream packets per row error correction packet, and the value must be between 4 and 20,
        inclusive, if includeFec is columnAndRow. If includeFec is column, this value must be 1 to
        20, inclusive.
    """


_RequiredClientUpdateChannelEncoderSettingsOutputGroupsOutputsTypeDef = TypedDict(
    "_RequiredClientUpdateChannelEncoderSettingsOutputGroupsOutputsTypeDef",
    {"OutputSettings": ClientUpdateChannelEncoderSettingsOutputGroupsOutputsOutputSettingsTypeDef},
)
_OptionalClientUpdateChannelEncoderSettingsOutputGroupsOutputsTypeDef = TypedDict(
    "_OptionalClientUpdateChannelEncoderSettingsOutputGroupsOutputsTypeDef",
    {
        "AudioDescriptionNames": List[str],
        "CaptionDescriptionNames": List[str],
        "OutputName": str,
        "VideoDescriptionName": str,
    },
    total=False,
)


class ClientUpdateChannelEncoderSettingsOutputGroupsOutputsTypeDef(
    _RequiredClientUpdateChannelEncoderSettingsOutputGroupsOutputsTypeDef,
    _OptionalClientUpdateChannelEncoderSettingsOutputGroupsOutputsTypeDef,
):
    """
    Type definition for `ClientUpdateChannelEncoderSettingsOutputGroups` `Outputs`

    - **AudioDescriptionNames** *(list) --* The names of the AudioDescriptions used as audio sources
    for this output.

      - *(string) --* Placeholder documentation for __string

    - **CaptionDescriptionNames** *(list) --* The names of the CaptionDescriptions used as caption
    sources for this output.

      - *(string) --* Placeholder documentation for __string

    - **OutputName** *(string) --* The name used to identify an output.

    - **OutputSettings** *(dict) --* **[REQUIRED]** Output type-specific settings.

      - **ArchiveOutputSettings** *(dict) --* Archive Output Settings

        - **ContainerSettings** *(dict) --* **[REQUIRED]** Settings specific to the container type
        of the file.

          - **M2tsSettings** *(dict) --* M2ts Settings

            - **AbsentInputAudioBehavior** *(string) --* When set to drop, output audio streams will
            be removed from the program if the selected input audio stream is removed from the
            input. This allows the output audio configuration to dynamically change based on input
            configuration. If this is set to encodeSilence, all output audio streams will output
            encoded silence when not connected to an active input stream.

            - **Arib** *(string) --* When set to enabled, uses ARIB-compliant field muxing and
            removes video descriptor.

            - **AribCaptionsPid** *(string) --* Packet Identifier (PID) for ARIB Captions in the
            transport stream. Can be entered as a decimal or hexadecimal value. Valid values are 32
            (or 0x20)..8182 (or 0x1ff6).

            - **AribCaptionsPidControl** *(string) --* If set to auto, pid number used for ARIB
            Captions will be auto-selected from unused pids. If set to useConfigured, ARIB Captions
            will be on the configured pid number.

            - **AudioBufferModel** *(string) --* When set to dvb, uses DVB buffer model for Dolby
            Digital audio. When set to atsc, the ATSC model is used.

            - **AudioFramesPerPes** *(integer) --* The number of audio frames to insert for each PES
            packet.

            - **AudioPids** *(string) --* Packet Identifier (PID) of the elementary audio stream(s)
            in the transport stream. Multiple values are accepted, and can be entered in ranges
            and/or by comma separation. Can be entered as decimal or hexadecimal values. Each PID
            specified must be in the range of 32 (or 0x20)..8182 (or 0x1ff6).

            - **AudioStreamType** *(string) --* When set to atsc, uses stream type =
                 0x81 for AC3
            and stream type = 0x87 for EAC3. When set to dvb, uses stream type = 0x06.

            - **Bitrate** *(integer) --* The output bitrate of the transport stream in bits per
            second. Setting to 0 lets the muxer automatically determine the appropriate bitrate.

            - **BufferModel** *(string) --* If set to multiplex, use multiplex buffer model for
            accurate interleaving. Setting to bufferModel to none can lead to lower latency, but
            low-memory devices may not be able to play back the stream without interruptions.

            - **CcDescriptor** *(string) --* When set to enabled, generates captionServiceDescriptor
            in PMT.

            - **DvbNitSettings** *(dict) --* Inserts DVB Network Information Table (NIT) at the
            specified table repetition interval.

              - **NetworkId** *(integer) --* **[REQUIRED]** The numeric value placed in the Network
              Information Table (NIT).

              - **NetworkName** *(string) --* **[REQUIRED]** The network name text placed in the
              networkNameDescriptor inside the Network Information Table. Maximum length is 256
              characters.

              - **RepInterval** *(integer) --* The number of milliseconds between instances of this
              table in the output transport stream.

            - **DvbSdtSettings** *(dict) --* Inserts DVB Service Description Table (SDT) at the
            specified table repetition interval.

              - **OutputSdt** *(string) --* Selects method of inserting SDT information into output
              stream. The sdtFollow setting copies SDT information from input stream to output
              stream. The sdtFollowIfPresent setting copies SDT information from input stream to
              output stream if SDT information is present in the input, otherwise it will fall back
              on the user-defined values. The sdtManual setting means user will enter the SDT
              information. The sdtNone setting means output stream will not contain SDT information.

              - **RepInterval** *(integer) --* The number of milliseconds between instances of this
              table in the output transport stream.

              - **ServiceName** *(string) --* The service name placed in the serviceDescriptor in
              the Service Description Table. Maximum length is 256 characters.

              - **ServiceProviderName** *(string) --* The service provider name placed in the
              serviceDescriptor in the Service Description Table. Maximum length is 256 characters.

            - **DvbSubPids** *(string) --* Packet Identifier (PID) for input source DVB Subtitle
            data to this output. Multiple values are accepted, and can be entered in ranges and/or
            by comma separation. Can be entered as decimal or hexadecimal values. Each PID specified
            must be in the range of 32 (or 0x20)..8182 (or 0x1ff6).

            - **DvbTdtSettings** *(dict) --* Inserts DVB Time and Date Table (TDT) at the specified
            table repetition interval.

              - **RepInterval** *(integer) --* The number of milliseconds between instances of this
              table in the output transport stream.

            - **DvbTeletextPid** *(string) --* Packet Identifier (PID) for input source DVB Teletext
            data to this output. Can be entered as a decimal or hexadecimal value. Valid values are
            32 (or 0x20)..8182 (or 0x1ff6).

            - **Ebif** *(string) --* If set to passthrough, passes any EBIF data from the input
            source to this output.

            - **EbpAudioInterval** *(string) --* When videoAndFixedIntervals is selected, audio EBP
            markers will be added to partitions 3 and 4. The interval between these additional
            markers will be fixed, and will be slightly shorter than the video EBP marker interval.
            Only available when EBP Cablelabs segmentation markers are selected. Partitions 1 and 2
            will always follow the video interval.

            - **EbpLookaheadMs** *(integer) --* When set, enforces that Encoder Boundary Points do
            not come within the specified time interval of each other by looking ahead at input
            video. If another EBP is going to come in within the specified time interval, the
            current EBP is not emitted, and the segment is "stretched" to the next marker. The
            lookahead value does not add latency to the system. The Live Event must be configured
            elsewhere to create sufficient latency to make the lookahead accurate.

            - **EbpPlacement** *(string) --* Controls placement of EBP on Audio PIDs. If set to
            videoAndAudioPids, EBP markers will be placed on the video PID and all audio PIDs. If
            set to videoPid, EBP markers will be placed on only the video PID.

            - **EcmPid** *(string) --* This field is unused and deprecated.

            - **EsRateInPes** *(string) --* Include or exclude the ES Rate field in the PES header.

            - **EtvPlatformPid** *(string) --* Packet Identifier (PID) for input source ETV Platform
            data to this output. Can be entered as a decimal or hexadecimal value. Valid values are
            32 (or 0x20)..8182 (or 0x1ff6).

            - **EtvSignalPid** *(string) --* Packet Identifier (PID) for input source ETV Signal
            data to this output. Can be entered as a decimal or hexadecimal value. Valid values are
            32 (or 0x20)..8182 (or 0x1ff6).

            - **FragmentTime** *(float) --* The length in seconds of each fragment. Only used with
            EBP markers.

            - **Klv** *(string) --* If set to passthrough, passes any KLV data from the input source
            to this output.

            - **KlvDataPids** *(string) --* Packet Identifier (PID) for input source KLV data to
            this output. Multiple values are accepted, and can be entered in ranges and/or by comma
            separation. Can be entered as decimal or hexadecimal values. Each PID specified must be
            in the range of 32 (or 0x20)..8182 (or 0x1ff6).

            - **NielsenId3Behavior** *(string) --* If set to passthrough, Nielsen inaudible tones
            for media tracking will be detected in the input audio and an equivalent ID3 tag will be
            inserted in the output.

            - **NullPacketBitrate** *(float) --* Value in bits per second of extra null packets to
            insert into the transport stream. This can be used if a downstream encryption system
            requires periodic null packets.

            - **PatInterval** *(integer) --* The number of milliseconds between instances of this
            table in the output transport stream. Valid values are 0, 10..1000.

            - **PcrControl** *(string) --* When set to pcrEveryPesPacket, a Program Clock Reference
            value is inserted for every Packetized Elementary Stream (PES) header. This parameter is
            effective only when the PCR PID is the same as the video or audio elementary stream.

            - **PcrPeriod** *(integer) --* Maximum time in milliseconds between Program Clock
            Reference (PCRs) inserted into the transport stream.

            - **PcrPid** *(string) --* Packet Identifier (PID) of the Program Clock Reference (PCR)
            in the transport stream. When no value is given, the encoder will assign the same value
            as the Video PID. Can be entered as a decimal or hexadecimal value. Valid values are 32
            (or 0x20)..8182 (or 0x1ff6).

            - **PmtInterval** *(integer) --* The number of milliseconds between instances of this
            table in the output transport stream. Valid values are 0, 10..1000.

            - **PmtPid** *(string) --* Packet Identifier (PID) for the Program Map Table (PMT) in
            the transport stream. Can be entered as a decimal or hexadecimal value. Valid values are
            32 (or 0x20)..8182 (or 0x1ff6).

            - **ProgramNum** *(integer) --* The value of the program number field in the Program Map
            Table.

            - **RateMode** *(string) --* When vbr, does not insert null packets into transport
            stream to fill specified bitrate. The bitrate setting acts as the maximum bitrate when
            vbr is set.

            - **Scte27Pids** *(string) --* Packet Identifier (PID) for input source SCTE-27 data to
            this output. Multiple values are accepted, and can be entered in ranges and/or by comma
            separation. Can be entered as decimal or hexadecimal values. Each PID specified must be
            in the range of 32 (or 0x20)..8182 (or 0x1ff6).

            - **Scte35Control** *(string) --* Optionally pass SCTE-35 signals from the input source
            to this output.

            - **Scte35Pid** *(string) --* Packet Identifier (PID) of the SCTE-35 stream in the
            transport stream. Can be entered as a decimal or hexadecimal value. Valid values are 32
            (or 0x20)..8182 (or 0x1ff6).

            - **SegmentationMarkers** *(string) --* Inserts segmentation markers at each
            segmentationTime period. raiSegstart sets the Random Access Indicator bit in the
            adaptation field. raiAdapt sets the RAI bit and adds the current timecode in the private
            data bytes. psiSegstart inserts PAT and PMT tables at the start of segments. ebp adds
            Encoder Boundary Point information to the adaptation field as per OpenCable
            specification OC-SP-EBP-I01-130118. ebpLegacy adds Encoder Boundary Point information to
            the adaptation field using a legacy proprietary format.

            - **SegmentationStyle** *(string) --* The segmentation style parameter controls how
            segmentation markers are inserted into the transport stream. With avails, it is possible
            that segments may be truncated, which can influence where future segmentation markers
            are inserted. When a segmentation style of "resetCadence" is selected and a segment is
            truncated due to an avail, we will reset the segmentation cadence. This means the
            subsequent segment will have a duration of $segmentationTime seconds. When a
            segmentation style of "maintainCadence" is selected and a segment is truncated due to an
            avail, we will not reset the segmentation cadence. This means the subsequent segment
            will likely be truncated as well. However, all segments after that will have a duration
            of $segmentationTime seconds. Note that EBP lookahead is a slight exception to this
            rule.

            - **SegmentationTime** *(float) --* The length in seconds of each segment. Required
            unless markers is set to None_.

            - **TimedMetadataBehavior** *(string) --* When set to passthrough, timed metadata will
            be passed through from input to output.

            - **TimedMetadataPid** *(string) --* Packet Identifier (PID) of the timed metadata
            stream in the transport stream. Can be entered as a decimal or hexadecimal value. Valid
            values are 32 (or 0x20)..8182 (or 0x1ff6).

            - **TransportStreamId** *(integer) --* The value of the transport stream ID field in the
            Program Map Table.

            - **VideoPid** *(string) --* Packet Identifier (PID) of the elementary video stream in
            the transport stream. Can be entered as a decimal or hexadecimal value. Valid values are
            32 (or 0x20)..8182 (or 0x1ff6).

        - **Extension** *(string) --* Output file extension. If excluded, this will be auto-selected
        from the container type.

        - **NameModifier** *(string) --* String concatenated to the end of the destination filename.
        Required for multiple outputs of the same type.

      - **FrameCaptureOutputSettings** *(dict) --* Frame Capture Output Settings

        - **NameModifier** *(string) --* Required if the output group contains more than one output.
        This modifier forms part of the output file name.

      - **HlsOutputSettings** *(dict) --* Hls Output Settings

        - **HlsSettings** *(dict) --* **[REQUIRED]** Settings regarding the underlying stream. These
        settings are different for audio-only outputs.

          - **AudioOnlyHlsSettings** *(dict) --* Audio Only Hls Settings

            - **AudioGroupId** *(string) --* Specifies the group to which the audio Rendition
            belongs.

            - **AudioOnlyImage** *(dict) --* Optional. Specifies the .jpg or .png image to use as
            the cover art for an audio-only output. We recommend a low bit-size file because the
            image increases the output audio bandwidth. The image is attached to the audio as an ID3
            tag, frame type APIC, picture type 0x10, as per the "ID3 tag version 2.4.0 - Native
            Frames" standard.

              - **PasswordParam** *(string) --* key used to extract the password from EC2 Parameter
              store

              - **Uri** *(string) --* **[REQUIRED]** Uniform Resource Identifier - This should be a
              path to a file accessible to the Live system (eg. a http:// URI) depending on the
              output type. For example, a RTMP destination should have a uri simliar to:
              "rtmp://fmsserver/live".

              - **Username** *(string) --* Documentation update needed

            - **AudioTrackType** *(string) --* Four types of audio-only tracks are supported:
            Audio-Only Variant Stream The client can play back this audio-only stream instead of
            video in low-bandwidth scenarios. Represented as an EXT-X-STREAM-INF in the HLS
            manifest. Alternate Audio, Auto Select, Default Alternate rendition that the client
            should try to play back by default. Represented as an EXT-X-MEDIA in the HLS manifest
            with DEFAULT=YES, AUTOSELECT=
                YES Alternate Audio, Auto Select, Not Default Alternate
            rendition that the client may try to play back by default. Represented as an EXT-X-MEDIA
            in the HLS manifest with DEFAULT=NO, AUTOSELECT=
                YES Alternate Audio, not Auto Select
            Alternate rendition that the client will not try to play back by default. Represented as
            an EXT-X-MEDIA in the HLS manifest with DEFAULT=NO, AUTOSELECT=NO

          - **StandardHlsSettings** *(dict) --* Standard Hls Settings

            - **AudioRenditionSets** *(string) --* List all the audio groups that are used with the
            video output stream. Input all the audio GROUP-IDs that are associated to the video,
            separate by ','.

            - **M3u8Settings** *(dict) --* **[REQUIRED]** Settings information for the .m3u8
            container

              - **AudioFramesPerPes** *(integer) --* The number of audio frames to insert for each
              PES packet.

              - **AudioPids** *(string) --* Packet Identifier (PID) of the elementary audio
              stream(s) in the transport stream. Multiple values are accepted, and can be entered in
              ranges and/or by comma separation. Can be entered as decimal or hexadecimal values.

              - **EcmPid** *(string) --* This parameter is unused and deprecated.

              - **NielsenId3Behavior** *(string) --* If set to passthrough, Nielsen inaudible tones
              for media tracking will be detected in the input audio and an equivalent ID3 tag will
              be inserted in the output.

              - **PatInterval** *(integer) --* The number of milliseconds between instances of this
              table in the output transport stream. A value of \\"0\\" writes out the PMT once per
              segment file.

              - **PcrControl** *(string) --* When set to pcrEveryPesPacket, a Program Clock
              Reference value is inserted for every Packetized Elementary Stream (PES) header. This
              parameter is effective only when the PCR PID is the same as the video or audio
              elementary stream.

              - **PcrPeriod** *(integer) --* Maximum time in milliseconds between Program Clock
              References (PCRs) inserted into the transport stream.

              - **PcrPid** *(string) --* Packet Identifier (PID) of the Program Clock Reference
              (PCR) in the transport stream. When no value is given, the encoder will assign the
              same value as the Video PID. Can be entered as a decimal or hexadecimal value.

              - **PmtInterval** *(integer) --* The number of milliseconds between instances of this
              table in the output transport stream. A value of \\"0\\" writes out the PMT once per
              segment file.

              - **PmtPid** *(string) --* Packet Identifier (PID) for the Program Map Table (PMT) in
              the transport stream. Can be entered as a decimal or hexadecimal value.

              - **ProgramNum** *(integer) --* The value of the program number field in the Program
              Map Table.

              - **Scte35Behavior** *(string) --* If set to passthrough, passes any SCTE-35 signals
              from the input source to this output.

              - **Scte35Pid** *(string) --* Packet Identifier (PID) of the SCTE-35 stream in the
              transport stream. Can be entered as a decimal or hexadecimal value.

              - **TimedMetadataBehavior** *(string) --* When set to passthrough, timed metadata is
              passed through from input to output.

              - **TimedMetadataPid** *(string) --* Packet Identifier (PID) of the timed metadata
              stream in the transport stream. Can be entered as a decimal or hexadecimal value.
              Valid values are 32 (or 0x20)..8182 (or 0x1ff6).

              - **TransportStreamId** *(integer) --* The value of the transport stream ID field in
              the Program Map Table.

              - **VideoPid** *(string) --* Packet Identifier (PID) of the elementary video stream in
              the transport stream. Can be entered as a decimal or hexadecimal value.

        - **NameModifier** *(string) --* String concatenated to the end of the destination filename.
        Accepts \\"Format Identifiers\\":#formatIdentifierParameters.

        - **SegmentModifier** *(string) --* String concatenated to end of segment filenames.

      - **MediaPackageOutputSettings** *(dict) --* Media Package Output Settings

      - **MsSmoothOutputSettings** *(dict) --* Ms Smooth Output Settings

        - **H265PackagingType** *(string) --* Only applicable when this output is referencing an
        H.265 video description. Specifies whether MP4 segments should be packaged as HEV1 or HVC1.

        - **NameModifier** *(string) --* String concatenated to the end of the destination filename.
        Required for multiple outputs of the same type.

      - **MultiplexOutputSettings** *(dict) --* Multiplex Output Settings

        - **Destination** *(dict) --* **[REQUIRED]** Destination is a Multiplex.

          - **DestinationRefId** *(string) --* Placeholder documentation for __string

      - **RtmpOutputSettings** *(dict) --* Rtmp Output Settings

        - **CertificateMode** *(string) --* If set to verifyAuthenticity, verify the tls certificate
        chain to a trusted Certificate Authority (CA). This will cause rtmps outputs with
        self-signed certificates to fail.

        - **ConnectionRetryInterval** *(integer) --* Number of seconds to wait before retrying a
        connection to the Flash Media server if the connection is lost.

        - **Destination** *(dict) --* **[REQUIRED]** The RTMP endpoint excluding the stream name
        (eg. rtmp://host/appname). For connection to Akamai, a username and password must be
        supplied. URI fields accept format identifiers.

          - **DestinationRefId** *(string) --* Placeholder documentation for __string

        - **NumRetries** *(integer) --* Number of retry attempts.

      - **UdpOutputSettings** *(dict) --* Udp Output Settings

        - **BufferMsec** *(integer) --* UDP output buffering in milliseconds. Larger values increase
        latency through the transcoder but simultaneously assist the transcoder in maintaining a
        constant, low-jitter UDP/RTP output while accommodating clock recovery, input switching,
        input disruptions, picture reordering, etc.

        - **ContainerSettings** *(dict) --* **[REQUIRED]** Udp Container Settings

          - **M2tsSettings** *(dict) --* M2ts Settings

            - **AbsentInputAudioBehavior** *(string) --* When set to drop, output audio streams will
            be removed from the program if the selected input audio stream is removed from the
            input. This allows the output audio configuration to dynamically change based on input
            configuration. If this is set to encodeSilence, all output audio streams will output
            encoded silence when not connected to an active input stream.

            - **Arib** *(string) --* When set to enabled, uses ARIB-compliant field muxing and
            removes video descriptor.

            - **AribCaptionsPid** *(string) --* Packet Identifier (PID) for ARIB Captions in the
            transport stream. Can be entered as a decimal or hexadecimal value. Valid values are 32
            (or 0x20)..8182 (or 0x1ff6).

            - **AribCaptionsPidControl** *(string) --* If set to auto, pid number used for ARIB
            Captions will be auto-selected from unused pids. If set to useConfigured, ARIB Captions
            will be on the configured pid number.

            - **AudioBufferModel** *(string) --* When set to dvb, uses DVB buffer model for Dolby
            Digital audio. When set to atsc, the ATSC model is used.

            - **AudioFramesPerPes** *(integer) --* The number of audio frames to insert for each PES
            packet.

            - **AudioPids** *(string) --* Packet Identifier (PID) of the elementary audio stream(s)
            in the transport stream. Multiple values are accepted, and can be entered in ranges
            and/or by comma separation. Can be entered as decimal or hexadecimal values. Each PID
            specified must be in the range of 32 (or 0x20)..8182 (or 0x1ff6).

            - **AudioStreamType** *(string) --* When set to atsc, uses stream type =
                 0x81 for AC3
            and stream type = 0x87 for EAC3. When set to dvb, uses stream type = 0x06.

            - **Bitrate** *(integer) --* The output bitrate of the transport stream in bits per
            second. Setting to 0 lets the muxer automatically determine the appropriate bitrate.

            - **BufferModel** *(string) --* If set to multiplex, use multiplex buffer model for
            accurate interleaving. Setting to bufferModel to none can lead to lower latency, but
            low-memory devices may not be able to play back the stream without interruptions.

            - **CcDescriptor** *(string) --* When set to enabled, generates captionServiceDescriptor
            in PMT.

            - **DvbNitSettings** *(dict) --* Inserts DVB Network Information Table (NIT) at the
            specified table repetition interval.

              - **NetworkId** *(integer) --* **[REQUIRED]** The numeric value placed in the Network
              Information Table (NIT).

              - **NetworkName** *(string) --* **[REQUIRED]** The network name text placed in the
              networkNameDescriptor inside the Network Information Table. Maximum length is 256
              characters.

              - **RepInterval** *(integer) --* The number of milliseconds between instances of this
              table in the output transport stream.

            - **DvbSdtSettings** *(dict) --* Inserts DVB Service Description Table (SDT) at the
            specified table repetition interval.

              - **OutputSdt** *(string) --* Selects method of inserting SDT information into output
              stream. The sdtFollow setting copies SDT information from input stream to output
              stream. The sdtFollowIfPresent setting copies SDT information from input stream to
              output stream if SDT information is present in the input, otherwise it will fall back
              on the user-defined values. The sdtManual setting means user will enter the SDT
              information. The sdtNone setting means output stream will not contain SDT information.

              - **RepInterval** *(integer) --* The number of milliseconds between instances of this
              table in the output transport stream.

              - **ServiceName** *(string) --* The service name placed in the serviceDescriptor in
              the Service Description Table. Maximum length is 256 characters.

              - **ServiceProviderName** *(string) --* The service provider name placed in the
              serviceDescriptor in the Service Description Table. Maximum length is 256 characters.

            - **DvbSubPids** *(string) --* Packet Identifier (PID) for input source DVB Subtitle
            data to this output. Multiple values are accepted, and can be entered in ranges and/or
            by comma separation. Can be entered as decimal or hexadecimal values. Each PID specified
            must be in the range of 32 (or 0x20)..8182 (or 0x1ff6).

            - **DvbTdtSettings** *(dict) --* Inserts DVB Time and Date Table (TDT) at the specified
            table repetition interval.

              - **RepInterval** *(integer) --* The number of milliseconds between instances of this
              table in the output transport stream.

            - **DvbTeletextPid** *(string) --* Packet Identifier (PID) for input source DVB Teletext
            data to this output. Can be entered as a decimal or hexadecimal value. Valid values are
            32 (or 0x20)..8182 (or 0x1ff6).

            - **Ebif** *(string) --* If set to passthrough, passes any EBIF data from the input
            source to this output.

            - **EbpAudioInterval** *(string) --* When videoAndFixedIntervals is selected, audio EBP
            markers will be added to partitions 3 and 4. The interval between these additional
            markers will be fixed, and will be slightly shorter than the video EBP marker interval.
            Only available when EBP Cablelabs segmentation markers are selected. Partitions 1 and 2
            will always follow the video interval.

            - **EbpLookaheadMs** *(integer) --* When set, enforces that Encoder Boundary Points do
            not come within the specified time interval of each other by looking ahead at input
            video. If another EBP is going to come in within the specified time interval, the
            current EBP is not emitted, and the segment is "stretched" to the next marker. The
            lookahead value does not add latency to the system. The Live Event must be configured
            elsewhere to create sufficient latency to make the lookahead accurate.

            - **EbpPlacement** *(string) --* Controls placement of EBP on Audio PIDs. If set to
            videoAndAudioPids, EBP markers will be placed on the video PID and all audio PIDs. If
            set to videoPid, EBP markers will be placed on only the video PID.

            - **EcmPid** *(string) --* This field is unused and deprecated.

            - **EsRateInPes** *(string) --* Include or exclude the ES Rate field in the PES header.

            - **EtvPlatformPid** *(string) --* Packet Identifier (PID) for input source ETV Platform
            data to this output. Can be entered as a decimal or hexadecimal value. Valid values are
            32 (or 0x20)..8182 (or 0x1ff6).

            - **EtvSignalPid** *(string) --* Packet Identifier (PID) for input source ETV Signal
            data to this output. Can be entered as a decimal or hexadecimal value. Valid values are
            32 (or 0x20)..8182 (or 0x1ff6).

            - **FragmentTime** *(float) --* The length in seconds of each fragment. Only used with
            EBP markers.

            - **Klv** *(string) --* If set to passthrough, passes any KLV data from the input source
            to this output.

            - **KlvDataPids** *(string) --* Packet Identifier (PID) for input source KLV data to
            this output. Multiple values are accepted, and can be entered in ranges and/or by comma
            separation. Can be entered as decimal or hexadecimal values. Each PID specified must be
            in the range of 32 (or 0x20)..8182 (or 0x1ff6).

            - **NielsenId3Behavior** *(string) --* If set to passthrough, Nielsen inaudible tones
            for media tracking will be detected in the input audio and an equivalent ID3 tag will be
            inserted in the output.

            - **NullPacketBitrate** *(float) --* Value in bits per second of extra null packets to
            insert into the transport stream. This can be used if a downstream encryption system
            requires periodic null packets.

            - **PatInterval** *(integer) --* The number of milliseconds between instances of this
            table in the output transport stream. Valid values are 0, 10..1000.

            - **PcrControl** *(string) --* When set to pcrEveryPesPacket, a Program Clock Reference
            value is inserted for every Packetized Elementary Stream (PES) header. This parameter is
            effective only when the PCR PID is the same as the video or audio elementary stream.

            - **PcrPeriod** *(integer) --* Maximum time in milliseconds between Program Clock
            Reference (PCRs) inserted into the transport stream.

            - **PcrPid** *(string) --* Packet Identifier (PID) of the Program Clock Reference (PCR)
            in the transport stream. When no value is given, the encoder will assign the same value
            as the Video PID. Can be entered as a decimal or hexadecimal value. Valid values are 32
            (or 0x20)..8182 (or 0x1ff6).

            - **PmtInterval** *(integer) --* The number of milliseconds between instances of this
            table in the output transport stream. Valid values are 0, 10..1000.

            - **PmtPid** *(string) --* Packet Identifier (PID) for the Program Map Table (PMT) in
            the transport stream. Can be entered as a decimal or hexadecimal value. Valid values are
            32 (or 0x20)..8182 (or 0x1ff6).

            - **ProgramNum** *(integer) --* The value of the program number field in the Program Map
            Table.

            - **RateMode** *(string) --* When vbr, does not insert null packets into transport
            stream to fill specified bitrate. The bitrate setting acts as the maximum bitrate when
            vbr is set.

            - **Scte27Pids** *(string) --* Packet Identifier (PID) for input source SCTE-27 data to
            this output. Multiple values are accepted, and can be entered in ranges and/or by comma
            separation. Can be entered as decimal or hexadecimal values. Each PID specified must be
            in the range of 32 (or 0x20)..8182 (or 0x1ff6).

            - **Scte35Control** *(string) --* Optionally pass SCTE-35 signals from the input source
            to this output.

            - **Scte35Pid** *(string) --* Packet Identifier (PID) of the SCTE-35 stream in the
            transport stream. Can be entered as a decimal or hexadecimal value. Valid values are 32
            (or 0x20)..8182 (or 0x1ff6).

            - **SegmentationMarkers** *(string) --* Inserts segmentation markers at each
            segmentationTime period. raiSegstart sets the Random Access Indicator bit in the
            adaptation field. raiAdapt sets the RAI bit and adds the current timecode in the private
            data bytes. psiSegstart inserts PAT and PMT tables at the start of segments. ebp adds
            Encoder Boundary Point information to the adaptation field as per OpenCable
            specification OC-SP-EBP-I01-130118. ebpLegacy adds Encoder Boundary Point information to
            the adaptation field using a legacy proprietary format.

            - **SegmentationStyle** *(string) --* The segmentation style parameter controls how
            segmentation markers are inserted into the transport stream. With avails, it is possible
            that segments may be truncated, which can influence where future segmentation markers
            are inserted. When a segmentation style of "resetCadence" is selected and a segment is
            truncated due to an avail, we will reset the segmentation cadence. This means the
            subsequent segment will have a duration of $segmentationTime seconds. When a
            segmentation style of "maintainCadence" is selected and a segment is truncated due to an
            avail, we will not reset the segmentation cadence. This means the subsequent segment
            will likely be truncated as well. However, all segments after that will have a duration
            of $segmentationTime seconds. Note that EBP lookahead is a slight exception to this
            rule.

            - **SegmentationTime** *(float) --* The length in seconds of each segment. Required
            unless markers is set to None_.

            - **TimedMetadataBehavior** *(string) --* When set to passthrough, timed metadata will
            be passed through from input to output.

            - **TimedMetadataPid** *(string) --* Packet Identifier (PID) of the timed metadata
            stream in the transport stream. Can be entered as a decimal or hexadecimal value. Valid
            values are 32 (or 0x20)..8182 (or 0x1ff6).

            - **TransportStreamId** *(integer) --* The value of the transport stream ID field in the
            Program Map Table.

            - **VideoPid** *(string) --* Packet Identifier (PID) of the elementary video stream in
            the transport stream. Can be entered as a decimal or hexadecimal value. Valid values are
            32 (or 0x20)..8182 (or 0x1ff6).

        - **Destination** *(dict) --* **[REQUIRED]** Destination address and port number for RTP or
        UDP packets. Can be unicast or multicast RTP or UDP (eg. rtp://239.10.10.10:5001 or
        udp://10.100.100.100:5002).

          - **DestinationRefId** *(string) --* Placeholder documentation for __string

        - **FecOutputSettings** *(dict) --* Settings for enabling and adjusting Forward Error
        Correction on UDP outputs.

          - **ColumnDepth** *(integer) --* Parameter D from SMPTE 2022-1. The height of the FEC
          protection matrix. The number of transport stream packets per column error correction
          packet. Must be between 4 and 20, inclusive.

          - **IncludeFec** *(string) --* Enables column only or column and row based FEC

          - **RowLength** *(integer) --* Parameter L from SMPTE 2022-1. The width of the FEC
          protection matrix. Must be between 1 and 20, inclusive. If only Column FEC is used, then
          larger values increase robustness. If Row FEC is used, then this is the number of
          transport stream packets per row error correction packet, and the value must be between 4
          and 20, inclusive, if includeFec is columnAndRow. If includeFec is column, this value must
          be 1 to 20, inclusive.

    - **VideoDescriptionName** *(string) --* The name of the VideoDescription used as the source for
    this output.
    """


_RequiredClientUpdateChannelEncoderSettingsOutputGroupsTypeDef = TypedDict(
    "_RequiredClientUpdateChannelEncoderSettingsOutputGroupsTypeDef",
    {
        "OutputGroupSettings": ClientUpdateChannelEncoderSettingsOutputGroupsOutputGroupSettingsTypeDef,
        "Outputs": List[ClientUpdateChannelEncoderSettingsOutputGroupsOutputsTypeDef],
    },
)
_OptionalClientUpdateChannelEncoderSettingsOutputGroupsTypeDef = TypedDict(
    "_OptionalClientUpdateChannelEncoderSettingsOutputGroupsTypeDef", {"Name": str}, total=False
)


class ClientUpdateChannelEncoderSettingsOutputGroupsTypeDef(
    _RequiredClientUpdateChannelEncoderSettingsOutputGroupsTypeDef,
    _OptionalClientUpdateChannelEncoderSettingsOutputGroupsTypeDef,
):
    """
    Type definition for `ClientUpdateChannelEncoderSettings` `OutputGroups`

    - **Name** *(string) --* Custom output group name optionally defined by the user. Only letters,
    numbers, and the underscore character allowed; only 32 characters allowed.

    - **OutputGroupSettings** *(dict) --* **[REQUIRED]** Settings associated with the output group.

      - **ArchiveGroupSettings** *(dict) --* Archive Group Settings

        - **Destination** *(dict) --* **[REQUIRED]** A directory and base filename where archive
        files should be written.

          - **DestinationRefId** *(string) --* Placeholder documentation for __string

        - **RolloverInterval** *(integer) --* Number of seconds to write to archive file before
        closing and starting a new one.

      - **FrameCaptureGroupSettings** *(dict) --* Frame Capture Group Settings

        - **Destination** *(dict) --* **[REQUIRED]** The destination for the frame capture files.
        Either the URI for an Amazon S3 bucket and object, plus a file name prefix (for example,
        s3ssl://sportsDelivery/highlights/20180820/curling_) or the URI for a MediaStore container,
        plus a file name prefix (for example, mediastoressl://sportsDelivery/20180820/curling_). The
        final file names consist of the prefix from the destination field (for example, "curling_")
        + name modifier + the counter (5 digits, starting from 00001) + extension (which is always
        .jpg). For example, curlingLow.00001.jpg

          - **DestinationRefId** *(string) --* Placeholder documentation for __string

      - **HlsGroupSettings** *(dict) --* Hls Group Settings

        - **AdMarkers** *(list) --* Choose one or more ad marker types to pass SCTE35 signals
        through to this group of Apple HLS outputs.

          - *(string) --* Hls Ad Markers

        - **BaseUrlContent** *(string) --* A partial URI prefix that will be prepended to each
        output in the media .m3u8 file. Can be used if base manifest is delivered from a different
        URL than the main .m3u8 file.

        - **BaseUrlManifest** *(string) --* A partial URI prefix that will be prepended to each
        output in the media .m3u8 file. Can be used if base manifest is delivered from a different
        URL than the main .m3u8 file.

        - **CaptionLanguageMappings** *(list) --* Mapping of up to 4 caption channels to caption
        languages. Is only meaningful if captionLanguageSetting is set to "insert".

          - *(dict) --* Maps a caption channel to an ISO 693-2 language code
          (http://www.loc.gov/standards/iso639-2), with an optional description.

            - **CaptionChannel** *(integer) --* **[REQUIRED]** The closed caption channel being
            described by this CaptionLanguageMapping. Each channel mapping must have a unique
            channel number (maximum of 4)

            - **LanguageCode** *(string) --* **[REQUIRED]** Three character ISO 639-2 language code
            (see http://www.loc.gov/standards/iso639-2)

            - **LanguageDescription** *(string) --* **[REQUIRED]** Textual description of language

        - **CaptionLanguageSetting** *(string) --* Applies only to 608 Embedded output captions.
        insert: Include CLOSED-CAPTIONS lines in the manifest. Specify at least one language in the
        CC1 Language Code field. One CLOSED-CAPTION line is added for each Language Code you
        specify. Make sure to specify the languages in the order in which they appear in the
        original source (if the source is embedded format) or the order of the caption selectors (if
        the source is other than embedded). Otherwise, languages in the manifest will not match up
        properly with the output captions. none: Include CLOSED-CAPTIONS=
            NONE line in the manifest.
        omit: Omit any CLOSED-CAPTIONS line from the manifest.

        - **ClientCache** *(string) --* When set to "disabled", sets the #EXT-X-ALLOW-CACHE:no tag
        in the manifest, which prevents clients from saving media segments for later replay.

        - **CodecSpecification** *(string) --* Specification to use (RFC-6381 or the default
        RFC-4281) during m3u8 playlist generation.

        - **ConstantIv** *(string) --* For use with encryptionType. This is a 128-bit, 16-byte hex
        value represented by a 32-character text string. If ivSource is set to "explicit" then this
        parameter is required and is used as the IV for encryption.

        - **Destination** *(dict) --* **[REQUIRED]** A directory or HTTP destination for the HLS
        segments, manifest files, and encryption keys (if enabled).

          - **DestinationRefId** *(string) --* Placeholder documentation for __string

        - **DirectoryStructure** *(string) --* Place segments in subdirectories.

        - **EncryptionType** *(string) --* Encrypts the segments with the given encryption scheme.
        Exclude this parameter if no encryption is desired.

        - **HlsCdnSettings** *(dict) --* Parameters that control interactions with the CDN.

          - **HlsAkamaiSettings** *(dict) --* Hls Akamai Settings

            - **ConnectionRetryInterval** *(integer) --* Number of seconds to wait before retrying
            connection to the CDN if the connection is lost.

            - **FilecacheDuration** *(integer) --* Size in seconds of file cache for streaming
            outputs.

            - **HttpTransferMode** *(string) --* Specify whether or not to use chunked transfer
            encoding to Akamai. User should contact Akamai to enable this feature.

            - **NumRetries** *(integer) --* Number of retry attempts that will be made before the
            Live Event is put into an error state.

            - **RestartDelay** *(integer) --* If a streaming output fails, number of seconds to wait
            until a restart is initiated. A value of 0 means never restart.

            - **Salt** *(string) --* Salt for authenticated Akamai.

            - **Token** *(string) --* Token parameter for authenticated akamai. If not specified,
            _gda_ is used.

          - **HlsBasicPutSettings** *(dict) --* Hls Basic Put Settings

            - **ConnectionRetryInterval** *(integer) --* Number of seconds to wait before retrying
            connection to the CDN if the connection is lost.

            - **FilecacheDuration** *(integer) --* Size in seconds of file cache for streaming
            outputs.

            - **NumRetries** *(integer) --* Number of retry attempts that will be made before the
            Live Event is put into an error state.

            - **RestartDelay** *(integer) --* If a streaming output fails, number of seconds to wait
            until a restart is initiated. A value of 0 means never restart.

          - **HlsMediaStoreSettings** *(dict) --* Hls Media Store Settings

            - **ConnectionRetryInterval** *(integer) --* Number of seconds to wait before retrying
            connection to the CDN if the connection is lost.

            - **FilecacheDuration** *(integer) --* Size in seconds of file cache for streaming
            outputs.

            - **MediaStoreStorageClass** *(string) --* When set to temporal, output files are stored
            in non-persistent memory for faster reading and writing.

            - **NumRetries** *(integer) --* Number of retry attempts that will be made before the
            Live Event is put into an error state.

            - **RestartDelay** *(integer) --* If a streaming output fails, number of seconds to wait
            until a restart is initiated. A value of 0 means never restart.

          - **HlsWebdavSettings** *(dict) --* Hls Webdav Settings

            - **ConnectionRetryInterval** *(integer) --* Number of seconds to wait before retrying
            connection to the CDN if the connection is lost.

            - **FilecacheDuration** *(integer) --* Size in seconds of file cache for streaming
            outputs.

            - **HttpTransferMode** *(string) --* Specify whether or not to use chunked transfer
            encoding to WebDAV.

            - **NumRetries** *(integer) --* Number of retry attempts that will be made before the
            Live Event is put into an error state.

            - **RestartDelay** *(integer) --* If a streaming output fails, number of seconds to wait
            until a restart is initiated. A value of 0 means never restart.

        - **IFrameOnlyPlaylists** *(string) --* DISABLED: Do not create an I-frame-only manifest,
        but do create the master and media manifests (according to the Output Selection field).
        STANDARD: Create an I-frame-only manifest for each output that contains video, as well as
        the other manifests (according to the Output Selection field). The I-frame manifest contains
        a #EXT-X-I-FRAMES-ONLY tag to indicate it is I-frame only, and one or more #EXT-X-BYTERANGE
        entries identifying the I-frame position. For example, #EXT-X-BYTERANGE:160364@1461888"

        - **IndexNSegments** *(integer) --* Applies only if Mode field is LIVE. Specifies the
        maximum number of segments in the media manifest file. After this maximum, older segments
        are removed from the media manifest. This number must be less than or equal to the Keep
        Segments field.

        - **InputLossAction** *(string) --* Parameter that control output group behavior on input
        loss.

        - **IvInManifest** *(string) --* For use with encryptionType. The IV (Initialization Vector)
        is a 128-bit number used in conjunction with the key for encrypting blocks. If set to
        "include", IV is listed in the manifest, otherwise the IV is not in the manifest.

        - **IvSource** *(string) --* For use with encryptionType. The IV (Initialization Vector) is
        a 128-bit number used in conjunction with the key for encrypting blocks. If this setting is
        "followsSegmentNumber", it will cause the IV to change every segment (to match the segment
        number). If this is set to "explicit", you must enter a constantIv value.

        - **KeepSegments** *(integer) --* Applies only if Mode field is LIVE. Specifies the number
        of media segments (.ts files) to retain in the destination directory.

        - **KeyFormat** *(string) --* The value specifies how the key is represented in the resource
        identified by the URI. If parameter is absent, an implicit value of "identity" is used. A
        reverse DNS string can also be given.

        - **KeyFormatVersions** *(string) --* Either a single positive integer version value or a
        slash delimited list of version values (1/2/3).

        - **KeyProviderSettings** *(dict) --* The key provider settings.

          - **StaticKeySettings** *(dict) --* Static Key Settings

            - **KeyProviderServer** *(dict) --* The URL of the license server used for protecting
            content.

              - **PasswordParam** *(string) --* key used to extract the password from EC2 Parameter
              store

              - **Uri** *(string) --* **[REQUIRED]** Uniform Resource Identifier - This should be a
              path to a file accessible to the Live system (eg. a http:// URI) depending on the
              output type. For example, a RTMP destination should have a uri simliar to:
              "rtmp://fmsserver/live".

              - **Username** *(string) --* Documentation update needed

            - **StaticKeyValue** *(string) --* **[REQUIRED]** Static key value as a 32 character
            hexadecimal string.

        - **ManifestCompression** *(string) --* When set to gzip, compresses HLS playlist.

        - **ManifestDurationFormat** *(string) --* Indicates whether the output manifest should use
        floating point or integer values for segment duration.

        - **MinSegmentLength** *(integer) --* When set, minimumSegmentLength is enforced by looking
        ahead and back within the specified range for a nearby avail and extending the segment size
        if needed.

        - **Mode** *(string) --* If "vod", all segments are indexed and kept permanently in the
        destination and manifest. If "live", only the number segments specified in keepSegments and
        indexNSegments are kept; newer segments replace older segments, which may prevent players
        from rewinding all the way to the beginning of the event. VOD mode uses HLS
        EXT-X-PLAYLIST-TYPE of EVENT while the channel is running, converting it to a "VOD" type
        manifest on completion of the stream.

        - **OutputSelection** *(string) --* MANIFESTSANDSEGMENTS: Generates manifests (master
        manifest, if applicable, and media manifests) for this output group. SEGMENTSONLY: Does not
        generate any manifests for this output group.

        - **ProgramDateTime** *(string) --* Includes or excludes EXT-X-PROGRAM-DATE-TIME tag in
        .m3u8 manifest files. The value is calculated as follows: either the program date and time
        are initialized using the input timecode source, or the time is initialized using the input
        timecode source and the date is initialized using the timestampOffset.

        - **ProgramDateTimePeriod** *(integer) --* Period of insertion of EXT-X-PROGRAM-DATE-TIME
        entry, in seconds.

        - **RedundantManifest** *(string) --* ENABLED: The master manifest (.m3u8 file) for each
        pipeline includes information about both pipelines: first its own media files, then the
        media files of the other pipeline. This feature allows playout device that support stale
        manifest detection to switch from one manifest to the other, when the current manifest seems
        to be stale. There are still two destinations and two master manifests, but both master
        manifests reference the media files from both pipelines. DISABLED: The master manifest
        (.m3u8 file) for each pipeline includes information about its own pipeline only. For an HLS
        output group with MediaPackage as the destination, the DISABLED behavior is always followed.
        MediaPackage regenerates the manifests it serves to players so a redundant manifest from
        MediaLive is irrelevant.

        - **SegmentLength** *(integer) --* Length of MPEG-2 Transport Stream segments to create (in
        seconds). Note that segments will end on the next keyframe after this number of seconds, so
        actual segment length may be longer.

        - **SegmentationMode** *(string) --* useInputSegmentation has been deprecated. The
        configured segment size is always used.

        - **SegmentsPerSubdirectory** *(integer) --* Number of segments to write to a subdirectory
        before starting a new one. directoryStructure must be subdirectoryPerStream for this setting
        to have an effect.

        - **StreamInfResolution** *(string) --* Include or exclude RESOLUTION attribute for video in
        EXT-X-STREAM-INF tag of variant manifest.

        - **TimedMetadataId3Frame** *(string) --* Indicates ID3 frame that has the timecode.

        - **TimedMetadataId3Period** *(integer) --* Timed Metadata interval in seconds.

        - **TimestampDeltaMilliseconds** *(integer) --* Provides an extra millisecond delta offset
        to fine tune the timestamps.

        - **TsFileMode** *(string) --* SEGMENTEDFILES: Emit the program as segments - multiple .ts
        media files. SINGLEFILE: Applies only if Mode field is VOD. Emit the program as a single .ts
        media file. The media manifest includes #EXT-X-BYTERANGE tags to index segments for
        playback. A typical use for this value is when sending the output to AWS Elemental
        MediaConvert, which can accept only a single media file. Playback while the channel is
        running is not guaranteed due to HTTP server caching.

      - **MediaPackageGroupSettings** *(dict) --* Media Package Group Settings

        - **Destination** *(dict) --* **[REQUIRED]** MediaPackage channel destination.

          - **DestinationRefId** *(string) --* Placeholder documentation for __string

      - **MsSmoothGroupSettings** *(dict) --* Ms Smooth Group Settings

        - **AcquisitionPointId** *(string) --* The value of the "Acquisition Point Identity" element
        used in each message placed in the sparse track. Only enabled if sparseTrackType is not
        "none".

        - **AudioOnlyTimecodeControl** *(string) --* If set to passthrough for an audio-only MS
        Smooth output, the fragment absolute time will be set to the current timecode. This option
        does not write timecodes to the audio elementary stream.

        - **CertificateMode** *(string) --* If set to verifyAuthenticity, verify the https
        certificate chain to a trusted Certificate Authority (CA). This will cause https outputs to
        self-signed certificates to fail.

        - **ConnectionRetryInterval** *(integer) --* Number of seconds to wait before retrying
        connection to the IIS server if the connection is lost. Content will be cached during this
        time and the cache will be be delivered to the IIS server once the connection is
        re-established.

        - **Destination** *(dict) --* **[REQUIRED]** Smooth Streaming publish point on an IIS
        server. Elemental Live acts as a "Push" encoder to IIS.

          - **DestinationRefId** *(string) --* Placeholder documentation for __string

        - **EventId** *(string) --* MS Smooth event ID to be sent to the IIS server. Should only be
        specified if eventIdMode is set to useConfigured.

        - **EventIdMode** *(string) --* Specifies whether or not to send an event ID to the IIS
        server. If no event ID is sent and the same Live Event is used without changing the
        publishing point, clients might see cached video from the previous run. Options: -
        "useConfigured" - use the value provided in eventId - "useTimestamp" - generate and send an
        event ID based on the current timestamp - "noEventId" - do not send an event ID to the IIS
        server.

        - **EventStopBehavior** *(string) --* When set to sendEos, send EOS signal to IIS server
        when stopping the event

        - **FilecacheDuration** *(integer) --* Size in seconds of file cache for streaming outputs.

        - **FragmentLength** *(integer) --* Length of mp4 fragments to generate (in seconds).
        Fragment length must be compatible with GOP size and framerate.

        - **InputLossAction** *(string) --* Parameter that control output group behavior on input
        loss.

        - **NumRetries** *(integer) --* Number of retry attempts.

        - **RestartDelay** *(integer) --* Number of seconds before initiating a restart due to
        output failure, due to exhausting the numRetries on one segment, or exceeding
        filecacheDuration.

        - **SegmentationMode** *(string) --* useInputSegmentation has been deprecated. The
        configured segment size is always used.

        - **SendDelayMs** *(integer) --* Number of milliseconds to delay the output from the second
        pipeline.

        - **SparseTrackType** *(string) --* If set to scte35, use incoming SCTE-35 messages to
        generate a sparse track in this group of MS-Smooth outputs.

        - **StreamManifestBehavior** *(string) --* When set to send, send stream manifest so
        publishing point doesn't start until all streams start.

        - **TimestampOffset** *(string) --* Timestamp offset for the event. Only used if
        timestampOffsetMode is set to useConfiguredOffset.

        - **TimestampOffsetMode** *(string) --* Type of timestamp date offset to use. -
        useEventStartDate: Use the date the event was started as the offset - useConfiguredOffset:
        Use an explicitly configured date as the offset

      - **MultiplexGroupSettings** *(dict) --* Multiplex Group Settings

      - **RtmpGroupSettings** *(dict) --* Rtmp Group Settings

        - **AuthenticationScheme** *(string) --* Authentication scheme to use when connecting with
        CDN

        - **CacheFullBehavior** *(string) --* Controls behavior when content cache fills up. If
        remote origin server stalls the RTMP connection and does not accept content fast enough the
        'Media Cache' will fill up. When the cache reaches the duration specified by cacheLength the
        cache will stop accepting new content. If set to disconnectImmediately, the RTMP output will
        force a disconnect. Clear the media cache, and reconnect after restartDelay seconds. If set
        to waitForServer, the RTMP output will wait up to 5 minutes to allow the origin server to
        begin accepting data again.

        - **CacheLength** *(integer) --* Cache length, in seconds, is used to calculate buffer size.

        - **CaptionData** *(string) --* Controls the types of data that passes to onCaptionInfo
        outputs. If set to 'all' then 608 and 708 carried DTVCC data will be passed. If set to
        'field1AndField2608' then DTVCC data will be stripped out, but 608 data from both fields
        will be passed. If set to 'field1608' then only the data carried in 608 from field 1 video
        will be passed.

        - **InputLossAction** *(string) --* Controls the behavior of this RTMP group if input
        becomes unavailable. - emitOutput: Emit a slate until input returns. - pauseOutput: Stop
        transmitting data until input returns. This does not close the underlying RTMP connection.

        - **RestartDelay** *(integer) --* If a streaming output fails, number of seconds to wait
        until a restart is initiated. A value of 0 means never restart.

      - **UdpGroupSettings** *(dict) --* Udp Group Settings

        - **InputLossAction** *(string) --* Specifies behavior of last resort when input video is
        lost, and no more backup inputs are available. When dropTs is selected the entire transport
        stream will stop being emitted. When dropProgram is selected the program can be dropped from
        the transport stream (and replaced with null packets to meet the TS bitrate requirement).
        Or, when emitProgram is chosen the transport stream will continue to be produced normally
        with repeat frames, black frames, or slate frames substituted for the absent input video.

        - **TimedMetadataId3Frame** *(string) --* Indicates ID3 frame that has the timecode.

        - **TimedMetadataId3Period** *(integer) --* Timed Metadata interval in seconds.

    - **Outputs** *(list) --* **[REQUIRED]** Placeholder documentation for __listOfOutput

      - *(dict) --* Output settings. There can be multiple outputs within a group.

        - **AudioDescriptionNames** *(list) --* The names of the AudioDescriptions used as audio
        sources for this output.

          - *(string) --* Placeholder documentation for __string

        - **CaptionDescriptionNames** *(list) --* The names of the CaptionDescriptions used as
        caption sources for this output.

          - *(string) --* Placeholder documentation for __string

        - **OutputName** *(string) --* The name used to identify an output.

        - **OutputSettings** *(dict) --* **[REQUIRED]** Output type-specific settings.

          - **ArchiveOutputSettings** *(dict) --* Archive Output Settings

            - **ContainerSettings** *(dict) --* **[REQUIRED]** Settings specific to the container
            type of the file.

              - **M2tsSettings** *(dict) --* M2ts Settings

                - **AbsentInputAudioBehavior** *(string) --* When set to drop, output audio streams
                will be removed from the program if the selected input audio stream is removed from
                the input. This allows the output audio configuration to dynamically change based on
                input configuration. If this is set to encodeSilence, all output audio streams will
                output encoded silence when not connected to an active input stream.

                - **Arib** *(string) --* When set to enabled, uses ARIB-compliant field muxing and
                removes video descriptor.

                - **AribCaptionsPid** *(string) --* Packet Identifier (PID) for ARIB Captions in the
                transport stream. Can be entered as a decimal or hexadecimal value. Valid values are
                32 (or 0x20)..8182 (or 0x1ff6).

                - **AribCaptionsPidControl** *(string) --* If set to auto, pid number used for ARIB
                Captions will be auto-selected from unused pids. If set to useConfigured, ARIB
                Captions will be on the configured pid number.

                - **AudioBufferModel** *(string) --* When set to dvb, uses DVB buffer model for
                Dolby Digital audio. When set to atsc, the ATSC model is used.

                - **AudioFramesPerPes** *(integer) --* The number of audio frames to insert for each
                PES packet.

                - **AudioPids** *(string) --* Packet Identifier (PID) of the elementary audio
                stream(s) in the transport stream. Multiple values are accepted, and can be entered
                in ranges and/or by comma separation. Can be entered as decimal or hexadecimal
                values. Each PID specified must be in the range of 32 (or 0x20)..8182 (or 0x1ff6).

                - **AudioStreamType** *(string) --* When set to atsc, uses stream type =
                     0x81 for
                AC3 and stream type = 0x87 for EAC3. When set to dvb, uses stream type =
                     0x06.

                - **Bitrate** *(integer) --* The output bitrate of the transport stream in bits per
                second. Setting to 0 lets the muxer automatically determine the appropriate bitrate.

                - **BufferModel** *(string) --* If set to multiplex, use multiplex buffer model for
                accurate interleaving. Setting to bufferModel to none can lead to lower latency, but
                low-memory devices may not be able to play back the stream without interruptions.

                - **CcDescriptor** *(string) --* When set to enabled, generates
                captionServiceDescriptor in PMT.

                - **DvbNitSettings** *(dict) --* Inserts DVB Network Information Table (NIT) at the
                specified table repetition interval.

                  - **NetworkId** *(integer) --* **[REQUIRED]** The numeric value placed in the
                  Network Information Table (NIT).

                  - **NetworkName** *(string) --* **[REQUIRED]** The network name text placed in the
                  networkNameDescriptor inside the Network Information Table. Maximum length is 256
                  characters.

                  - **RepInterval** *(integer) --* The number of milliseconds between instances of
                  this table in the output transport stream.

                - **DvbSdtSettings** *(dict) --* Inserts DVB Service Description Table (SDT) at the
                specified table repetition interval.

                  - **OutputSdt** *(string) --* Selects method of inserting SDT information into
                  output stream. The sdtFollow setting copies SDT information from input stream to
                  output stream. The sdtFollowIfPresent setting copies SDT information from input
                  stream to output stream if SDT information is present in the input, otherwise it
                  will fall back on the user-defined values. The sdtManual setting means user will
                  enter the SDT information. The sdtNone setting means output stream will not
                  contain SDT information.

                  - **RepInterval** *(integer) --* The number of milliseconds between instances of
                  this table in the output transport stream.

                  - **ServiceName** *(string) --* The service name placed in the serviceDescriptor
                  in the Service Description Table. Maximum length is 256 characters.

                  - **ServiceProviderName** *(string) --* The service provider name placed in the
                  serviceDescriptor in the Service Description Table. Maximum length is 256
                  characters.

                - **DvbSubPids** *(string) --* Packet Identifier (PID) for input source DVB Subtitle
                data to this output. Multiple values are accepted, and can be entered in ranges
                and/or by comma separation. Can be entered as decimal or hexadecimal values. Each
                PID specified must be in the range of 32 (or 0x20)..8182 (or 0x1ff6).

                - **DvbTdtSettings** *(dict) --* Inserts DVB Time and Date Table (TDT) at the
                specified table repetition interval.

                  - **RepInterval** *(integer) --* The number of milliseconds between instances of
                  this table in the output transport stream.

                - **DvbTeletextPid** *(string) --* Packet Identifier (PID) for input source DVB
                Teletext data to this output. Can be entered as a decimal or hexadecimal value.
                Valid values are 32 (or 0x20)..8182 (or 0x1ff6).

                - **Ebif** *(string) --* If set to passthrough, passes any EBIF data from the input
                source to this output.

                - **EbpAudioInterval** *(string) --* When videoAndFixedIntervals is selected, audio
                EBP markers will be added to partitions 3 and 4. The interval between these
                additional markers will be fixed, and will be slightly shorter than the video EBP
                marker interval. Only available when EBP Cablelabs segmentation markers are
                selected. Partitions 1 and 2 will always follow the video interval.

                - **EbpLookaheadMs** *(integer) --* When set, enforces that Encoder Boundary Points
                do not come within the specified time interval of each other by looking ahead at
                input video. If another EBP is going to come in within the specified time interval,
                the current EBP is not emitted, and the segment is "stretched" to the next marker.
                The lookahead value does not add latency to the system. The Live Event must be
                configured elsewhere to create sufficient latency to make the lookahead accurate.

                - **EbpPlacement** *(string) --* Controls placement of EBP on Audio PIDs. If set to
                videoAndAudioPids, EBP markers will be placed on the video PID and all audio PIDs.
                If set to videoPid, EBP markers will be placed on only the video PID.

                - **EcmPid** *(string) --* This field is unused and deprecated.

                - **EsRateInPes** *(string) --* Include or exclude the ES Rate field in the PES
                header.

                - **EtvPlatformPid** *(string) --* Packet Identifier (PID) for input source ETV
                Platform data to this output. Can be entered as a decimal or hexadecimal value.
                Valid values are 32 (or 0x20)..8182 (or 0x1ff6).

                - **EtvSignalPid** *(string) --* Packet Identifier (PID) for input source ETV Signal
                data to this output. Can be entered as a decimal or hexadecimal value. Valid values
                are 32 (or 0x20)..8182 (or 0x1ff6).

                - **FragmentTime** *(float) --* The length in seconds of each fragment. Only used
                with EBP markers.

                - **Klv** *(string) --* If set to passthrough, passes any KLV data from the input
                source to this output.

                - **KlvDataPids** *(string) --* Packet Identifier (PID) for input source KLV data to
                this output. Multiple values are accepted, and can be entered in ranges and/or by
                comma separation. Can be entered as decimal or hexadecimal values. Each PID
                specified must be in the range of 32 (or 0x20)..8182 (or 0x1ff6).

                - **NielsenId3Behavior** *(string) --* If set to passthrough, Nielsen inaudible
                tones for media tracking will be detected in the input audio and an equivalent ID3
                tag will be inserted in the output.

                - **NullPacketBitrate** *(float) --* Value in bits per second of extra null packets
                to insert into the transport stream. This can be used if a downstream encryption
                system requires periodic null packets.

                - **PatInterval** *(integer) --* The number of milliseconds between instances of
                this table in the output transport stream. Valid values are 0, 10..1000.

                - **PcrControl** *(string) --* When set to pcrEveryPesPacket, a Program Clock
                Reference value is inserted for every Packetized Elementary Stream (PES) header.
                This parameter is effective only when the PCR PID is the same as the video or audio
                elementary stream.

                - **PcrPeriod** *(integer) --* Maximum time in milliseconds between Program Clock
                Reference (PCRs) inserted into the transport stream.

                - **PcrPid** *(string) --* Packet Identifier (PID) of the Program Clock Reference
                (PCR) in the transport stream. When no value is given, the encoder will assign the
                same value as the Video PID. Can be entered as a decimal or hexadecimal value. Valid
                values are 32 (or 0x20)..8182 (or 0x1ff6).

                - **PmtInterval** *(integer) --* The number of milliseconds between instances of
                this table in the output transport stream. Valid values are 0, 10..1000.

                - **PmtPid** *(string) --* Packet Identifier (PID) for the Program Map Table (PMT)
                in the transport stream. Can be entered as a decimal or hexadecimal value. Valid
                values are 32 (or 0x20)..8182 (or 0x1ff6).

                - **ProgramNum** *(integer) --* The value of the program number field in the Program
                Map Table.

                - **RateMode** *(string) --* When vbr, does not insert null packets into transport
                stream to fill specified bitrate. The bitrate setting acts as the maximum bitrate
                when vbr is set.

                - **Scte27Pids** *(string) --* Packet Identifier (PID) for input source SCTE-27 data
                to this output. Multiple values are accepted, and can be entered in ranges and/or by
                comma separation. Can be entered as decimal or hexadecimal values. Each PID
                specified must be in the range of 32 (or 0x20)..8182 (or 0x1ff6).

                - **Scte35Control** *(string) --* Optionally pass SCTE-35 signals from the input
                source to this output.

                - **Scte35Pid** *(string) --* Packet Identifier (PID) of the SCTE-35 stream in the
                transport stream. Can be entered as a decimal or hexadecimal value. Valid values are
                32 (or 0x20)..8182 (or 0x1ff6).

                - **SegmentationMarkers** *(string) --* Inserts segmentation markers at each
                segmentationTime period. raiSegstart sets the Random Access Indicator bit in the
                adaptation field. raiAdapt sets the RAI bit and adds the current timecode in the
                private data bytes. psiSegstart inserts PAT and PMT tables at the start of segments.
                ebp adds Encoder Boundary Point information to the adaptation field as per OpenCable
                specification OC-SP-EBP-I01-130118. ebpLegacy adds Encoder Boundary Point
                information to the adaptation field using a legacy proprietary format.

                - **SegmentationStyle** *(string) --* The segmentation style parameter controls how
                segmentation markers are inserted into the transport stream. With avails, it is
                possible that segments may be truncated, which can influence where future
                segmentation markers are inserted. When a segmentation style of "resetCadence" is
                selected and a segment is truncated due to an avail, we will reset the segmentation
                cadence. This means the subsequent segment will have a duration of $segmentationTime
                seconds. When a segmentation style of "maintainCadence" is selected and a segment is
                truncated due to an avail, we will not reset the segmentation cadence. This means
                the subsequent segment will likely be truncated as well. However, all segments after
                that will have a duration of $segmentationTime seconds. Note that EBP lookahead is a
                slight exception to this rule.

                - **SegmentationTime** *(float) --* The length in seconds of each segment. Required
                unless markers is set to None_.

                - **TimedMetadataBehavior** *(string) --* When set to passthrough, timed metadata
                will be passed through from input to output.

                - **TimedMetadataPid** *(string) --* Packet Identifier (PID) of the timed metadata
                stream in the transport stream. Can be entered as a decimal or hexadecimal value.
                Valid values are 32 (or 0x20)..8182 (or 0x1ff6).

                - **TransportStreamId** *(integer) --* The value of the transport stream ID field in
                the Program Map Table.

                - **VideoPid** *(string) --* Packet Identifier (PID) of the elementary video stream
                in the transport stream. Can be entered as a decimal or hexadecimal value. Valid
                values are 32 (or 0x20)..8182 (or 0x1ff6).

            - **Extension** *(string) --* Output file extension. If excluded, this will be
            auto-selected from the container type.

            - **NameModifier** *(string) --* String concatenated to the end of the destination
            filename. Required for multiple outputs of the same type.

          - **FrameCaptureOutputSettings** *(dict) --* Frame Capture Output Settings

            - **NameModifier** *(string) --* Required if the output group contains more than one
            output. This modifier forms part of the output file name.

          - **HlsOutputSettings** *(dict) --* Hls Output Settings

            - **HlsSettings** *(dict) --* **[REQUIRED]** Settings regarding the underlying stream.
            These settings are different for audio-only outputs.

              - **AudioOnlyHlsSettings** *(dict) --* Audio Only Hls Settings

                - **AudioGroupId** *(string) --* Specifies the group to which the audio Rendition
                belongs.

                - **AudioOnlyImage** *(dict) --* Optional. Specifies the .jpg or .png image to use
                as the cover art for an audio-only output. We recommend a low bit-size file because
                the image increases the output audio bandwidth. The image is attached to the audio
                as an ID3 tag, frame type APIC, picture type 0x10, as per the "ID3 tag version 2.4.0
                - Native Frames" standard.

                  - **PasswordParam** *(string) --* key used to extract the password from EC2
                  Parameter store

                  - **Uri** *(string) --* **[REQUIRED]** Uniform Resource Identifier - This should
                  be a path to a file accessible to the Live system (eg. a http:// URI) depending on
                  the output type. For example, a RTMP destination should have a uri simliar to:
                  "rtmp://fmsserver/live".

                  - **Username** *(string) --* Documentation update needed

                - **AudioTrackType** *(string) --* Four types of audio-only tracks are supported:
                Audio-Only Variant Stream The client can play back this audio-only stream instead of
                video in low-bandwidth scenarios. Represented as an EXT-X-STREAM-INF in the HLS
                manifest. Alternate Audio, Auto Select, Default Alternate rendition that the client
                should try to play back by default. Represented as an EXT-X-MEDIA in the HLS
                manifest with DEFAULT=YES, AUTOSELECT=
                    YES Alternate Audio, Auto Select, Not Default
                Alternate rendition that the client may try to play back by default. Represented as
                an EXT-X-MEDIA in the HLS manifest with DEFAULT=NO, AUTOSELECT=
                    YES Alternate Audio,
                not Auto Select Alternate rendition that the client will not try to play back by
                default. Represented as an EXT-X-MEDIA in the HLS manifest with DEFAULT=
                    NO,
                AUTOSELECT=NO

              - **StandardHlsSettings** *(dict) --* Standard Hls Settings

                - **AudioRenditionSets** *(string) --* List all the audio groups that are used with
                the video output stream. Input all the audio GROUP-IDs that are associated to the
                video, separate by ','.

                - **M3u8Settings** *(dict) --* **[REQUIRED]** Settings information for the .m3u8
                container

                  - **AudioFramesPerPes** *(integer) --* The number of audio frames to insert for
                  each PES packet.

                  - **AudioPids** *(string) --* Packet Identifier (PID) of the elementary audio
                  stream(s) in the transport stream. Multiple values are accepted, and can be
                  entered in ranges and/or by comma separation. Can be entered as decimal or
                  hexadecimal values.

                  - **EcmPid** *(string) --* This parameter is unused and deprecated.

                  - **NielsenId3Behavior** *(string) --* If set to passthrough, Nielsen inaudible
                  tones for media tracking will be detected in the input audio and an equivalent ID3
                  tag will be inserted in the output.

                  - **PatInterval** *(integer) --* The number of milliseconds between instances of
                  this table in the output transport stream. A value of \\"0\\" writes out the PMT
                  once per segment file.

                  - **PcrControl** *(string) --* When set to pcrEveryPesPacket, a Program Clock
                  Reference value is inserted for every Packetized Elementary Stream (PES) header.
                  This parameter is effective only when the PCR PID is the same as the video or
                  audio elementary stream.

                  - **PcrPeriod** *(integer) --* Maximum time in milliseconds between Program Clock
                  References (PCRs) inserted into the transport stream.

                  - **PcrPid** *(string) --* Packet Identifier (PID) of the Program Clock Reference
                  (PCR) in the transport stream. When no value is given, the encoder will assign the
                  same value as the Video PID. Can be entered as a decimal or hexadecimal value.

                  - **PmtInterval** *(integer) --* The number of milliseconds between instances of
                  this table in the output transport stream. A value of \\"0\\" writes out the PMT
                  once per segment file.

                  - **PmtPid** *(string) --* Packet Identifier (PID) for the Program Map Table (PMT)
                  in the transport stream. Can be entered as a decimal or hexadecimal value.

                  - **ProgramNum** *(integer) --* The value of the program number field in the
                  Program Map Table.

                  - **Scte35Behavior** *(string) --* If set to passthrough, passes any SCTE-35
                  signals from the input source to this output.

                  - **Scte35Pid** *(string) --* Packet Identifier (PID) of the SCTE-35 stream in the
                  transport stream. Can be entered as a decimal or hexadecimal value.

                  - **TimedMetadataBehavior** *(string) --* When set to passthrough, timed metadata
                  is passed through from input to output.

                  - **TimedMetadataPid** *(string) --* Packet Identifier (PID) of the timed metadata
                  stream in the transport stream. Can be entered as a decimal or hexadecimal value.
                  Valid values are 32 (or 0x20)..8182 (or 0x1ff6).

                  - **TransportStreamId** *(integer) --* The value of the transport stream ID field
                  in the Program Map Table.

                  - **VideoPid** *(string) --* Packet Identifier (PID) of the elementary video
                  stream in the transport stream. Can be entered as a decimal or hexadecimal value.

            - **NameModifier** *(string) --* String concatenated to the end of the destination
            filename. Accepts \\"Format Identifiers\\":#formatIdentifierParameters.

            - **SegmentModifier** *(string) --* String concatenated to end of segment filenames.

          - **MediaPackageOutputSettings** *(dict) --* Media Package Output Settings

          - **MsSmoothOutputSettings** *(dict) --* Ms Smooth Output Settings

            - **H265PackagingType** *(string) --* Only applicable when this output is referencing an
            H.265 video description. Specifies whether MP4 segments should be packaged as HEV1 or
            HVC1.

            - **NameModifier** *(string) --* String concatenated to the end of the destination
            filename. Required for multiple outputs of the same type.

          - **MultiplexOutputSettings** *(dict) --* Multiplex Output Settings

            - **Destination** *(dict) --* **[REQUIRED]** Destination is a Multiplex.

              - **DestinationRefId** *(string) --* Placeholder documentation for __string

          - **RtmpOutputSettings** *(dict) --* Rtmp Output Settings

            - **CertificateMode** *(string) --* If set to verifyAuthenticity, verify the tls
            certificate chain to a trusted Certificate Authority (CA). This will cause rtmps outputs
            with self-signed certificates to fail.

            - **ConnectionRetryInterval** *(integer) --* Number of seconds to wait before retrying a
            connection to the Flash Media server if the connection is lost.

            - **Destination** *(dict) --* **[REQUIRED]** The RTMP endpoint excluding the stream name
            (eg. rtmp://host/appname). For connection to Akamai, a username and password must be
            supplied. URI fields accept format identifiers.

              - **DestinationRefId** *(string) --* Placeholder documentation for __string

            - **NumRetries** *(integer) --* Number of retry attempts.

          - **UdpOutputSettings** *(dict) --* Udp Output Settings

            - **BufferMsec** *(integer) --* UDP output buffering in milliseconds. Larger values
            increase latency through the transcoder but simultaneously assist the transcoder in
            maintaining a constant, low-jitter UDP/RTP output while accommodating clock recovery,
            input switching, input disruptions, picture reordering, etc.

            - **ContainerSettings** *(dict) --* **[REQUIRED]** Udp Container Settings

              - **M2tsSettings** *(dict) --* M2ts Settings

                - **AbsentInputAudioBehavior** *(string) --* When set to drop, output audio streams
                will be removed from the program if the selected input audio stream is removed from
                the input. This allows the output audio configuration to dynamically change based on
                input configuration. If this is set to encodeSilence, all output audio streams will
                output encoded silence when not connected to an active input stream.

                - **Arib** *(string) --* When set to enabled, uses ARIB-compliant field muxing and
                removes video descriptor.

                - **AribCaptionsPid** *(string) --* Packet Identifier (PID) for ARIB Captions in the
                transport stream. Can be entered as a decimal or hexadecimal value. Valid values are
                32 (or 0x20)..8182 (or 0x1ff6).

                - **AribCaptionsPidControl** *(string) --* If set to auto, pid number used for ARIB
                Captions will be auto-selected from unused pids. If set to useConfigured, ARIB
                Captions will be on the configured pid number.

                - **AudioBufferModel** *(string) --* When set to dvb, uses DVB buffer model for
                Dolby Digital audio. When set to atsc, the ATSC model is used.

                - **AudioFramesPerPes** *(integer) --* The number of audio frames to insert for each
                PES packet.

                - **AudioPids** *(string) --* Packet Identifier (PID) of the elementary audio
                stream(s) in the transport stream. Multiple values are accepted, and can be entered
                in ranges and/or by comma separation. Can be entered as decimal or hexadecimal
                values. Each PID specified must be in the range of 32 (or 0x20)..8182 (or 0x1ff6).

                - **AudioStreamType** *(string) --* When set to atsc, uses stream type =
                     0x81 for
                AC3 and stream type = 0x87 for EAC3. When set to dvb, uses stream type =
                     0x06.

                - **Bitrate** *(integer) --* The output bitrate of the transport stream in bits per
                second. Setting to 0 lets the muxer automatically determine the appropriate bitrate.

                - **BufferModel** *(string) --* If set to multiplex, use multiplex buffer model for
                accurate interleaving. Setting to bufferModel to none can lead to lower latency, but
                low-memory devices may not be able to play back the stream without interruptions.

                - **CcDescriptor** *(string) --* When set to enabled, generates
                captionServiceDescriptor in PMT.

                - **DvbNitSettings** *(dict) --* Inserts DVB Network Information Table (NIT) at the
                specified table repetition interval.

                  - **NetworkId** *(integer) --* **[REQUIRED]** The numeric value placed in the
                  Network Information Table (NIT).

                  - **NetworkName** *(string) --* **[REQUIRED]** The network name text placed in the
                  networkNameDescriptor inside the Network Information Table. Maximum length is 256
                  characters.

                  - **RepInterval** *(integer) --* The number of milliseconds between instances of
                  this table in the output transport stream.

                - **DvbSdtSettings** *(dict) --* Inserts DVB Service Description Table (SDT) at the
                specified table repetition interval.

                  - **OutputSdt** *(string) --* Selects method of inserting SDT information into
                  output stream. The sdtFollow setting copies SDT information from input stream to
                  output stream. The sdtFollowIfPresent setting copies SDT information from input
                  stream to output stream if SDT information is present in the input, otherwise it
                  will fall back on the user-defined values. The sdtManual setting means user will
                  enter the SDT information. The sdtNone setting means output stream will not
                  contain SDT information.

                  - **RepInterval** *(integer) --* The number of milliseconds between instances of
                  this table in the output transport stream.

                  - **ServiceName** *(string) --* The service name placed in the serviceDescriptor
                  in the Service Description Table. Maximum length is 256 characters.

                  - **ServiceProviderName** *(string) --* The service provider name placed in the
                  serviceDescriptor in the Service Description Table. Maximum length is 256
                  characters.

                - **DvbSubPids** *(string) --* Packet Identifier (PID) for input source DVB Subtitle
                data to this output. Multiple values are accepted, and can be entered in ranges
                and/or by comma separation. Can be entered as decimal or hexadecimal values. Each
                PID specified must be in the range of 32 (or 0x20)..8182 (or 0x1ff6).

                - **DvbTdtSettings** *(dict) --* Inserts DVB Time and Date Table (TDT) at the
                specified table repetition interval.

                  - **RepInterval** *(integer) --* The number of milliseconds between instances of
                  this table in the output transport stream.

                - **DvbTeletextPid** *(string) --* Packet Identifier (PID) for input source DVB
                Teletext data to this output. Can be entered as a decimal or hexadecimal value.
                Valid values are 32 (or 0x20)..8182 (or 0x1ff6).

                - **Ebif** *(string) --* If set to passthrough, passes any EBIF data from the input
                source to this output.

                - **EbpAudioInterval** *(string) --* When videoAndFixedIntervals is selected, audio
                EBP markers will be added to partitions 3 and 4. The interval between these
                additional markers will be fixed, and will be slightly shorter than the video EBP
                marker interval. Only available when EBP Cablelabs segmentation markers are
                selected. Partitions 1 and 2 will always follow the video interval.

                - **EbpLookaheadMs** *(integer) --* When set, enforces that Encoder Boundary Points
                do not come within the specified time interval of each other by looking ahead at
                input video. If another EBP is going to come in within the specified time interval,
                the current EBP is not emitted, and the segment is "stretched" to the next marker.
                The lookahead value does not add latency to the system. The Live Event must be
                configured elsewhere to create sufficient latency to make the lookahead accurate.

                - **EbpPlacement** *(string) --* Controls placement of EBP on Audio PIDs. If set to
                videoAndAudioPids, EBP markers will be placed on the video PID and all audio PIDs.
                If set to videoPid, EBP markers will be placed on only the video PID.

                - **EcmPid** *(string) --* This field is unused and deprecated.

                - **EsRateInPes** *(string) --* Include or exclude the ES Rate field in the PES
                header.

                - **EtvPlatformPid** *(string) --* Packet Identifier (PID) for input source ETV
                Platform data to this output. Can be entered as a decimal or hexadecimal value.
                Valid values are 32 (or 0x20)..8182 (or 0x1ff6).

                - **EtvSignalPid** *(string) --* Packet Identifier (PID) for input source ETV Signal
                data to this output. Can be entered as a decimal or hexadecimal value. Valid values
                are 32 (or 0x20)..8182 (or 0x1ff6).

                - **FragmentTime** *(float) --* The length in seconds of each fragment. Only used
                with EBP markers.

                - **Klv** *(string) --* If set to passthrough, passes any KLV data from the input
                source to this output.

                - **KlvDataPids** *(string) --* Packet Identifier (PID) for input source KLV data to
                this output. Multiple values are accepted, and can be entered in ranges and/or by
                comma separation. Can be entered as decimal or hexadecimal values. Each PID
                specified must be in the range of 32 (or 0x20)..8182 (or 0x1ff6).

                - **NielsenId3Behavior** *(string) --* If set to passthrough, Nielsen inaudible
                tones for media tracking will be detected in the input audio and an equivalent ID3
                tag will be inserted in the output.

                - **NullPacketBitrate** *(float) --* Value in bits per second of extra null packets
                to insert into the transport stream. This can be used if a downstream encryption
                system requires periodic null packets.

                - **PatInterval** *(integer) --* The number of milliseconds between instances of
                this table in the output transport stream. Valid values are 0, 10..1000.

                - **PcrControl** *(string) --* When set to pcrEveryPesPacket, a Program Clock
                Reference value is inserted for every Packetized Elementary Stream (PES) header.
                This parameter is effective only when the PCR PID is the same as the video or audio
                elementary stream.

                - **PcrPeriod** *(integer) --* Maximum time in milliseconds between Program Clock
                Reference (PCRs) inserted into the transport stream.

                - **PcrPid** *(string) --* Packet Identifier (PID) of the Program Clock Reference
                (PCR) in the transport stream. When no value is given, the encoder will assign the
                same value as the Video PID. Can be entered as a decimal or hexadecimal value. Valid
                values are 32 (or 0x20)..8182 (or 0x1ff6).

                - **PmtInterval** *(integer) --* The number of milliseconds between instances of
                this table in the output transport stream. Valid values are 0, 10..1000.

                - **PmtPid** *(string) --* Packet Identifier (PID) for the Program Map Table (PMT)
                in the transport stream. Can be entered as a decimal or hexadecimal value. Valid
                values are 32 (or 0x20)..8182 (or 0x1ff6).

                - **ProgramNum** *(integer) --* The value of the program number field in the Program
                Map Table.

                - **RateMode** *(string) --* When vbr, does not insert null packets into transport
                stream to fill specified bitrate. The bitrate setting acts as the maximum bitrate
                when vbr is set.

                - **Scte27Pids** *(string) --* Packet Identifier (PID) for input source SCTE-27 data
                to this output. Multiple values are accepted, and can be entered in ranges and/or by
                comma separation. Can be entered as decimal or hexadecimal values. Each PID
                specified must be in the range of 32 (or 0x20)..8182 (or 0x1ff6).

                - **Scte35Control** *(string) --* Optionally pass SCTE-35 signals from the input
                source to this output.

                - **Scte35Pid** *(string) --* Packet Identifier (PID) of the SCTE-35 stream in the
                transport stream. Can be entered as a decimal or hexadecimal value. Valid values are
                32 (or 0x20)..8182 (or 0x1ff6).

                - **SegmentationMarkers** *(string) --* Inserts segmentation markers at each
                segmentationTime period. raiSegstart sets the Random Access Indicator bit in the
                adaptation field. raiAdapt sets the RAI bit and adds the current timecode in the
                private data bytes. psiSegstart inserts PAT and PMT tables at the start of segments.
                ebp adds Encoder Boundary Point information to the adaptation field as per OpenCable
                specification OC-SP-EBP-I01-130118. ebpLegacy adds Encoder Boundary Point
                information to the adaptation field using a legacy proprietary format.

                - **SegmentationStyle** *(string) --* The segmentation style parameter controls how
                segmentation markers are inserted into the transport stream. With avails, it is
                possible that segments may be truncated, which can influence where future
                segmentation markers are inserted. When a segmentation style of "resetCadence" is
                selected and a segment is truncated due to an avail, we will reset the segmentation
                cadence. This means the subsequent segment will have a duration of $segmentationTime
                seconds. When a segmentation style of "maintainCadence" is selected and a segment is
                truncated due to an avail, we will not reset the segmentation cadence. This means
                the subsequent segment will likely be truncated as well. However, all segments after
                that will have a duration of $segmentationTime seconds. Note that EBP lookahead is a
                slight exception to this rule.

                - **SegmentationTime** *(float) --* The length in seconds of each segment. Required
                unless markers is set to None_.

                - **TimedMetadataBehavior** *(string) --* When set to passthrough, timed metadata
                will be passed through from input to output.

                - **TimedMetadataPid** *(string) --* Packet Identifier (PID) of the timed metadata
                stream in the transport stream. Can be entered as a decimal or hexadecimal value.
                Valid values are 32 (or 0x20)..8182 (or 0x1ff6).

                - **TransportStreamId** *(integer) --* The value of the transport stream ID field in
                the Program Map Table.

                - **VideoPid** *(string) --* Packet Identifier (PID) of the elementary video stream
                in the transport stream. Can be entered as a decimal or hexadecimal value. Valid
                values are 32 (or 0x20)..8182 (or 0x1ff6).

            - **Destination** *(dict) --* **[REQUIRED]** Destination address and port number for RTP
            or UDP packets. Can be unicast or multicast RTP or UDP (eg. rtp://239.10.10.10:5001 or
            udp://10.100.100.100:5002).

              - **DestinationRefId** *(string) --* Placeholder documentation for __string

            - **FecOutputSettings** *(dict) --* Settings for enabling and adjusting Forward Error
            Correction on UDP outputs.

              - **ColumnDepth** *(integer) --* Parameter D from SMPTE 2022-1. The height of the FEC
              protection matrix. The number of transport stream packets per column error correction
              packet. Must be between 4 and 20, inclusive.

              - **IncludeFec** *(string) --* Enables column only or column and row based FEC

              - **RowLength** *(integer) --* Parameter L from SMPTE 2022-1. The width of the FEC
              protection matrix. Must be between 1 and 20, inclusive. If only Column FEC is used,
              then larger values increase robustness. If Row FEC is used, then this is the number of
              transport stream packets per row error correction packet, and the value must be
              between 4 and 20, inclusive, if includeFec is columnAndRow. If includeFec is column,
              this value must be 1 to 20, inclusive.

        - **VideoDescriptionName** *(string) --* The name of the VideoDescription used as the source
        for this output.
    """


_RequiredClientUpdateChannelEncoderSettingsTimecodeConfigTypeDef = TypedDict(
    "_RequiredClientUpdateChannelEncoderSettingsTimecodeConfigTypeDef", {"Source": str}
)
_OptionalClientUpdateChannelEncoderSettingsTimecodeConfigTypeDef = TypedDict(
    "_OptionalClientUpdateChannelEncoderSettingsTimecodeConfigTypeDef",
    {"SyncThreshold": int},
    total=False,
)


class ClientUpdateChannelEncoderSettingsTimecodeConfigTypeDef(
    _RequiredClientUpdateChannelEncoderSettingsTimecodeConfigTypeDef,
    _OptionalClientUpdateChannelEncoderSettingsTimecodeConfigTypeDef,
):
    """
    Type definition for `ClientUpdateChannelEncoderSettings` `TimecodeConfig`

    - **Source** *(string) --* **[REQUIRED]** Identifies the source for the timecode that will be
    associated with the events outputs. -Embedded (embedded): Initialize the output timecode with
    timecode from the the source. If no embedded timecode is detected in the source, the system
    falls back to using "Start at 0" (zerobased). -System Clock (systemclock): Use the UTC time.
    -Start at 0 (zerobased): The time of the first frame of the event will be 00:00:00:00.

    - **SyncThreshold** *(integer) --* Threshold in frames beyond which output timecode is
    resynchronized to the input timecode. Discrepancies below this threshold are permitted to avoid
    unnecessary discontinuities in the output timecode. No timecode sync when this is not specified.
    """


_ClientUpdateChannelEncoderSettingsVideoDescriptionsCodecSettingsFrameCaptureSettingsTypeDef = TypedDict(
    "_ClientUpdateChannelEncoderSettingsVideoDescriptionsCodecSettingsFrameCaptureSettingsTypeDef",
    {"CaptureInterval": int},
)


class ClientUpdateChannelEncoderSettingsVideoDescriptionsCodecSettingsFrameCaptureSettingsTypeDef(
    _ClientUpdateChannelEncoderSettingsVideoDescriptionsCodecSettingsFrameCaptureSettingsTypeDef
):
    """
    Type definition for `ClientUpdateChannelEncoderSettingsVideoDescriptionsCodecSettings`
    `FrameCaptureSettings`

    - **CaptureInterval** *(integer) --* **[REQUIRED]** The frequency at which to capture frames for
    inclusion in the output. May be specified in either seconds or milliseconds, as specified by
    captureIntervalUnits.
    """


_ClientUpdateChannelEncoderSettingsVideoDescriptionsCodecSettingsH264SettingsColorSpaceSettingsTypeDef = TypedDict(
    "_ClientUpdateChannelEncoderSettingsVideoDescriptionsCodecSettingsH264SettingsColorSpaceSettingsTypeDef",
    {
        "ColorSpacePassthroughSettings": Dict,
        "Rec601Settings": Dict,
        "Rec709Settings": Dict[str, Any],
    },
    total=False,
)


class ClientUpdateChannelEncoderSettingsVideoDescriptionsCodecSettingsH264SettingsColorSpaceSettingsTypeDef(
    _ClientUpdateChannelEncoderSettingsVideoDescriptionsCodecSettingsH264SettingsColorSpaceSettingsTypeDef
):
    """
    Type definition for
    `ClientUpdateChannelEncoderSettingsVideoDescriptionsCodecSettingsH264Settings`
    `ColorSpaceSettings`

    - **ColorSpacePassthroughSettings** *(dict) --* Passthrough applies no color space conversion to
    the output

    - **Rec601Settings** *(dict) --* Rec601 Settings

    - **Rec709Settings** *(dict) --* Rec709 Settings
    """


_ClientUpdateChannelEncoderSettingsVideoDescriptionsCodecSettingsH264SettingsTypeDef = TypedDict(
    "_ClientUpdateChannelEncoderSettingsVideoDescriptionsCodecSettingsH264SettingsTypeDef",
    {
        "AdaptiveQuantization": str,
        "AfdSignaling": str,
        "Bitrate": int,
        "BufFillPct": int,
        "BufSize": int,
        "ColorMetadata": str,
        "ColorSpaceSettings": ClientUpdateChannelEncoderSettingsVideoDescriptionsCodecSettingsH264SettingsColorSpaceSettingsTypeDef,
        "EntropyEncoding": str,
        "FixedAfd": str,
        "FlickerAq": str,
        "FramerateControl": str,
        "FramerateDenominator": int,
        "FramerateNumerator": int,
        "GopBReference": str,
        "GopClosedCadence": int,
        "GopNumBFrames": int,
        "GopSize": float,
        "GopSizeUnits": str,
        "Level": str,
        "LookAheadRateControl": str,
        "MaxBitrate": int,
        "MinIInterval": int,
        "NumRefFrames": int,
        "ParControl": str,
        "ParDenominator": int,
        "ParNumerator": int,
        "Profile": str,
        "QvbrQualityLevel": int,
        "RateControlMode": str,
        "ScanType": str,
        "SceneChangeDetect": str,
        "Slices": int,
        "Softness": int,
        "SpatialAq": str,
        "SubgopLength": str,
        "Syntax": str,
        "TemporalAq": str,
        "TimecodeInsertion": str,
    },
    total=False,
)


class ClientUpdateChannelEncoderSettingsVideoDescriptionsCodecSettingsH264SettingsTypeDef(
    _ClientUpdateChannelEncoderSettingsVideoDescriptionsCodecSettingsH264SettingsTypeDef
):
    """
    Type definition for `ClientUpdateChannelEncoderSettingsVideoDescriptionsCodecSettings`
    `H264Settings`

    - **AdaptiveQuantization** *(string) --* Adaptive quantization. Allows intra-frame quantizers to
    vary to improve visual quality.

    - **AfdSignaling** *(string) --* Indicates that AFD values will be written into the output
    stream. If afdSignaling is "auto", the system will try to preserve the input AFD value (in cases
    where multiple AFD values are valid). If set to "fixed", the AFD value will be the value
    configured in the fixedAfd parameter.

    - **Bitrate** *(integer) --* Average bitrate in bits/second. Required when the rate control mode
    is VBR or CBR. Not used for QVBR. In an MS Smooth output group, each output must have a unique
    value when its bitrate is rounded down to the nearest multiple of 1000.

    - **BufFillPct** *(integer) --* Percentage of the buffer that should initially be filled (HRD
    buffer model).

    - **BufSize** *(integer) --* Size of buffer (HRD buffer model) in bits.

    - **ColorMetadata** *(string) --* Includes colorspace metadata in the output.

    - **ColorSpaceSettings** *(dict) --* Color Space settings

      - **ColorSpacePassthroughSettings** *(dict) --* Passthrough applies no color space conversion
      to the output

      - **Rec601Settings** *(dict) --* Rec601 Settings

      - **Rec709Settings** *(dict) --* Rec709 Settings

    - **EntropyEncoding** *(string) --* Entropy encoding mode. Use cabac (must be in Main or High
    profile) or cavlc.

    - **FixedAfd** *(string) --* Four bit AFD value to write on all frames of video in the output
    stream. Only valid when afdSignaling is set to 'Fixed'.

    - **FlickerAq** *(string) --* If set to enabled, adjust quantization within each frame to reduce
    flicker or 'pop' on I-frames.

    - **FramerateControl** *(string) --* This field indicates how the output video frame rate is
    specified. If "specified" is selected then the output video frame rate is determined by
    framerateNumerator and framerateDenominator, else if "initializeFromSource" is selected then the
    output video frame rate will be set equal to the input video frame rate of the first input.

    - **FramerateDenominator** *(integer) --* Framerate denominator.

    - **FramerateNumerator** *(integer) --* Framerate numerator - framerate is a fraction, e.g.
    24000 / 1001 = 23.976 fps.

    - **GopBReference** *(string) --* Documentation update needed

    - **GopClosedCadence** *(integer) --* Frequency of closed GOPs. In streaming applications, it is
    recommended that this be set to 1 so a decoder joining mid-stream will receive an IDR frame as
    quickly as possible. Setting this value to 0 will break output segmenting.

    - **GopNumBFrames** *(integer) --* Number of B-frames between reference frames.

    - **GopSize** *(float) --* GOP size (keyframe interval) in units of either frames or seconds per
    gopSizeUnits. If gopSizeUnits is frames, gopSize must be an integer and must be greater than or
    equal to 1. If gopSizeUnits is seconds, gopSize must be greater than 0, but need not be an
    integer.

    - **GopSizeUnits** *(string) --* Indicates if the gopSize is specified in frames or seconds. If
    seconds the system will convert the gopSize into a frame count at run time.

    - **Level** *(string) --* H.264 Level.

    - **LookAheadRateControl** *(string) --* Amount of lookahead. A value of low can decrease
    latency and memory usage, while high can produce better quality for certain content.

    - **MaxBitrate** *(integer) --* For QVBR: See the tooltip for Quality level For VBR: Set the
    maximum bitrate in order to accommodate expected spikes in the complexity of the video.

    - **MinIInterval** *(integer) --* Only meaningful if sceneChangeDetect is set to enabled.
    Defaults to 5 if multiplex rate control is used. Enforces separation between repeated (cadence)
    I-frames and I-frames inserted by Scene Change Detection. If a scene change I-frame is within
    I-interval frames of a cadence I-frame, the GOP is shrunk and/or stretched to the scene change
    I-frame. GOP stretch requires enabling lookahead as well as setting I-interval. The normal
    cadence resumes for the next GOP. Note: Maximum GOP stretch = GOP size + Min-I-interval - 1

    - **NumRefFrames** *(integer) --* Number of reference frames to use. The encoder may use more
    than requested if using B-frames and/or interlaced encoding.

    - **ParControl** *(string) --* This field indicates how the output pixel aspect ratio is
    specified. If "specified" is selected then the output video pixel aspect ratio is determined by
    parNumerator and parDenominator, else if "initializeFromSource" is selected then the output
    pixsel aspect ratio will be set equal to the input video pixel aspect ratio of the first input.

    - **ParDenominator** *(integer) --* Pixel Aspect Ratio denominator.

    - **ParNumerator** *(integer) --* Pixel Aspect Ratio numerator.

    - **Profile** *(string) --* H.264 Profile.

    - **QvbrQualityLevel** *(integer) --* Controls the target quality for the video encode. Applies
    only when the rate control mode is QVBR. Set values for the QVBR quality level field and Max
    bitrate field that suit your most important viewing devices. Recommended values are: - Primary
    screen: Quality level: 8 to 10. Max bitrate: 4M - PC or tablet: Quality level: 7. Max bitrate:
    1.5M to 3M - Smartphone: Quality level: 6. Max bitrate: 1M to 1.5M

    - **RateControlMode** *(string) --* Rate control mode. QVBR: Quality will match the specified
    quality level except when it is constrained by the maximum bitrate. Recommended if you or your
    viewers pay for bandwidth. VBR: Quality and bitrate vary, depending on the video complexity.
    Recommended instead of QVBR if you want to maintain a specific average bitrate over the duration
    of the channel. CBR: Quality varies, depending on the video complexity. Recommended only if you
    distribute your assets to devices that cannot handle variable bitrates.

    - **ScanType** *(string) --* Sets the scan type of the output to progressive or top-field-first
    interlaced.

    - **SceneChangeDetect** *(string) --* Scene change detection. - On: inserts I-frames when scene
    change is detected. - Off: does not force an I-frame when scene change is detected.

    - **Slices** *(integer) --* Number of slices per picture. Must be less than or equal to the
    number of macroblock rows for progressive pictures, and less than or equal to half the number of
    macroblock rows for interlaced pictures. This field is optional; when no value is specified the
    encoder will choose the number of slices based on encode resolution.

    - **Softness** *(integer) --* Softness. Selects quantizer matrix, larger values reduce
    high-frequency content in the encoded image.

    - **SpatialAq** *(string) --* If set to enabled, adjust quantization within each frame based on
    spatial variation of content complexity.

    - **SubgopLength** *(string) --* If set to fixed, use gopNumBFrames B-frames per sub-GOP. If set
    to dynamic, optimize the number of B-frames used for each sub-GOP to improve visual quality.

    - **Syntax** *(string) --* Produces a bitstream compliant with SMPTE RP-2027.

    - **TemporalAq** *(string) --* If set to enabled, adjust quantization within each frame based on
    temporal variation of content complexity.

    - **TimecodeInsertion** *(string) --* Determines how timecodes should be inserted into the video
    elementary stream. - 'disabled': Do not include timecodes - 'picTimingSei': Pass through picture
    timing SEI messages from the source specified in Timecode Config
    """


_ClientUpdateChannelEncoderSettingsVideoDescriptionsCodecSettingsH265SettingsColorSpaceSettingsHdr10SettingsTypeDef = TypedDict(
    "_ClientUpdateChannelEncoderSettingsVideoDescriptionsCodecSettingsH265SettingsColorSpaceSettingsHdr10SettingsTypeDef",
    {"MaxCll": int, "MaxFall": int},
    total=False,
)


class ClientUpdateChannelEncoderSettingsVideoDescriptionsCodecSettingsH265SettingsColorSpaceSettingsHdr10SettingsTypeDef(
    _ClientUpdateChannelEncoderSettingsVideoDescriptionsCodecSettingsH265SettingsColorSpaceSettingsHdr10SettingsTypeDef
):
    """
    Type definition for
    `ClientUpdateChannelEncoderSettingsVideoDescriptionsCodecSettingsH265SettingsColorSpaceSettings`
    `Hdr10Settings`

    - **MaxCll** *(integer) --* Maximum Content Light Level An integer metadata value defining the
    maximum light level, in nits, of any single pixel within an encoded HDR video stream or file.

    - **MaxFall** *(integer) --* Maximum Frame Average Light Level An integer metadata value
    defining the maximum average light level, in nits, for any single frame within an encoded HDR
    video stream or file.
    """


_ClientUpdateChannelEncoderSettingsVideoDescriptionsCodecSettingsH265SettingsColorSpaceSettingsTypeDef = TypedDict(
    "_ClientUpdateChannelEncoderSettingsVideoDescriptionsCodecSettingsH265SettingsColorSpaceSettingsTypeDef",
    {
        "ColorSpacePassthroughSettings": Dict,
        "Hdr10Settings": ClientUpdateChannelEncoderSettingsVideoDescriptionsCodecSettingsH265SettingsColorSpaceSettingsHdr10SettingsTypeDef,
        "Rec601Settings": Dict,
        "Rec709Settings": Dict[str, Any],
    },
    total=False,
)


class ClientUpdateChannelEncoderSettingsVideoDescriptionsCodecSettingsH265SettingsColorSpaceSettingsTypeDef(
    _ClientUpdateChannelEncoderSettingsVideoDescriptionsCodecSettingsH265SettingsColorSpaceSettingsTypeDef
):
    """
    Type definition for
    `ClientUpdateChannelEncoderSettingsVideoDescriptionsCodecSettingsH265Settings`
    `ColorSpaceSettings`

    - **ColorSpacePassthroughSettings** *(dict) --* Passthrough applies no color space conversion to
    the output

    - **Hdr10Settings** *(dict) --* Hdr10 Settings

      - **MaxCll** *(integer) --* Maximum Content Light Level An integer metadata value defining the
      maximum light level, in nits, of any single pixel within an encoded HDR video stream or file.

      - **MaxFall** *(integer) --* Maximum Frame Average Light Level An integer metadata value
      defining the maximum average light level, in nits, for any single frame within an encoded HDR
      video stream or file.

    - **Rec601Settings** *(dict) --* Rec601 Settings

    - **Rec709Settings** *(dict) --* Rec709 Settings
    """


_RequiredClientUpdateChannelEncoderSettingsVideoDescriptionsCodecSettingsH265SettingsTypeDef = TypedDict(
    "_RequiredClientUpdateChannelEncoderSettingsVideoDescriptionsCodecSettingsH265SettingsTypeDef",
    {"FramerateDenominator": int, "FramerateNumerator": int},
)
_OptionalClientUpdateChannelEncoderSettingsVideoDescriptionsCodecSettingsH265SettingsTypeDef = TypedDict(
    "_OptionalClientUpdateChannelEncoderSettingsVideoDescriptionsCodecSettingsH265SettingsTypeDef",
    {
        "AdaptiveQuantization": str,
        "AfdSignaling": str,
        "AlternativeTransferFunction": str,
        "Bitrate": int,
        "BufSize": int,
        "ColorMetadata": str,
        "ColorSpaceSettings": ClientUpdateChannelEncoderSettingsVideoDescriptionsCodecSettingsH265SettingsColorSpaceSettingsTypeDef,
        "FixedAfd": str,
        "FlickerAq": str,
        "GopClosedCadence": int,
        "GopSize": float,
        "GopSizeUnits": str,
        "Level": str,
        "LookAheadRateControl": str,
        "MaxBitrate": int,
        "MinIInterval": int,
        "ParDenominator": int,
        "ParNumerator": int,
        "Profile": str,
        "QvbrQualityLevel": int,
        "RateControlMode": str,
        "ScanType": str,
        "SceneChangeDetect": str,
        "Slices": int,
        "Tier": str,
        "TimecodeInsertion": str,
    },
    total=False,
)


class ClientUpdateChannelEncoderSettingsVideoDescriptionsCodecSettingsH265SettingsTypeDef(
    _RequiredClientUpdateChannelEncoderSettingsVideoDescriptionsCodecSettingsH265SettingsTypeDef,
    _OptionalClientUpdateChannelEncoderSettingsVideoDescriptionsCodecSettingsH265SettingsTypeDef,
):
    """
    Type definition for `ClientUpdateChannelEncoderSettingsVideoDescriptionsCodecSettings`
    `H265Settings`

    - **AdaptiveQuantization** *(string) --* Adaptive quantization. Allows intra-frame quantizers to
    vary to improve visual quality.

    - **AfdSignaling** *(string) --* Indicates that AFD values will be written into the output
    stream. If afdSignaling is "auto", the system will try to preserve the input AFD value (in cases
    where multiple AFD values are valid). If set to "fixed", the AFD value will be the value
    configured in the fixedAfd parameter.

    - **AlternativeTransferFunction** *(string) --* Whether or not EML should insert an Alternative
    Transfer Function SEI message to support backwards compatibility with non-HDR decoders and
    displays.

    - **Bitrate** *(integer) --* Average bitrate in bits/second. Required when the rate control mode
    is VBR or CBR. Not used for QVBR. In an MS Smooth output group, each output must have a unique
    value when its bitrate is rounded down to the nearest multiple of 1000.

    - **BufSize** *(integer) --* Size of buffer (HRD buffer model) in bits.

    - **ColorMetadata** *(string) --* Includes colorspace metadata in the output.

    - **ColorSpaceSettings** *(dict) --* Color Space settings

      - **ColorSpacePassthroughSettings** *(dict) --* Passthrough applies no color space conversion
      to the output

      - **Hdr10Settings** *(dict) --* Hdr10 Settings

        - **MaxCll** *(integer) --* Maximum Content Light Level An integer metadata value defining
        the maximum light level, in nits, of any single pixel within an encoded HDR video stream or
        file.

        - **MaxFall** *(integer) --* Maximum Frame Average Light Level An integer metadata value
        defining the maximum average light level, in nits, for any single frame within an encoded
        HDR video stream or file.

      - **Rec601Settings** *(dict) --* Rec601 Settings

      - **Rec709Settings** *(dict) --* Rec709 Settings

    - **FixedAfd** *(string) --* Four bit AFD value to write on all frames of video in the output
    stream. Only valid when afdSignaling is set to 'Fixed'.

    - **FlickerAq** *(string) --* If set to enabled, adjust quantization within each frame to reduce
    flicker or 'pop' on I-frames.

    - **FramerateDenominator** *(integer) --* **[REQUIRED]** Framerate denominator.

    - **FramerateNumerator** *(integer) --* **[REQUIRED]** Framerate numerator - framerate is a
    fraction, e.g. 24000 / 1001 = 23.976 fps.

    - **GopClosedCadence** *(integer) --* Frequency of closed GOPs. In streaming applications, it is
    recommended that this be set to 1 so a decoder joining mid-stream will receive an IDR frame as
    quickly as possible. Setting this value to 0 will break output segmenting.

    - **GopSize** *(float) --* GOP size (keyframe interval) in units of either frames or seconds per
    gopSizeUnits. If gopSizeUnits is frames, gopSize must be an integer and must be greater than or
    equal to 1. If gopSizeUnits is seconds, gopSize must be greater than 0, but need not be an
    integer.

    - **GopSizeUnits** *(string) --* Indicates if the gopSize is specified in frames or seconds. If
    seconds the system will convert the gopSize into a frame count at run time.

    - **Level** *(string) --* H.265 Level.

    - **LookAheadRateControl** *(string) --* Amount of lookahead. A value of low can decrease
    latency and memory usage, while high can produce better quality for certain content.

    - **MaxBitrate** *(integer) --* For QVBR: See the tooltip for Quality level

    - **MinIInterval** *(integer) --* Only meaningful if sceneChangeDetect is set to enabled.
    Defaults to 5 if multiplex rate control is used. Enforces separation between repeated (cadence)
    I-frames and I-frames inserted by Scene Change Detection. If a scene change I-frame is within
    I-interval frames of a cadence I-frame, the GOP is shrunk and/or stretched to the scene change
    I-frame. GOP stretch requires enabling lookahead as well as setting I-interval. The normal
    cadence resumes for the next GOP. Note: Maximum GOP stretch = GOP size + Min-I-interval - 1

    - **ParDenominator** *(integer) --* Pixel Aspect Ratio denominator.

    - **ParNumerator** *(integer) --* Pixel Aspect Ratio numerator.

    - **Profile** *(string) --* H.265 Profile.

    - **QvbrQualityLevel** *(integer) --* Controls the target quality for the video encode. Applies
    only when the rate control mode is QVBR. Set values for the QVBR quality level field and Max
    bitrate field that suit your most important viewing devices. Recommended values are: - Primary
    screen: Quality level: 8 to 10. Max bitrate: 4M - PC or tablet: Quality level: 7. Max bitrate:
    1.5M to 3M - Smartphone: Quality level: 6. Max bitrate: 1M to 1.5M

    - **RateControlMode** *(string) --* Rate control mode. QVBR: Quality will match the specified
    quality level except when it is constrained by the maximum bitrate. Recommended if you or your
    viewers pay for bandwidth. CBR: Quality varies, depending on the video complexity. Recommended
    only if you distribute your assets to devices that cannot handle variable bitrates.

    - **ScanType** *(string) --* Sets the scan type of the output to progressive or top-field-first
    interlaced.

    - **SceneChangeDetect** *(string) --* Scene change detection.

    - **Slices** *(integer) --* Number of slices per picture. Must be less than or equal to the
    number of macroblock rows for progressive pictures, and less than or equal to half the number of
    macroblock rows for interlaced pictures. This field is optional; when no value is specified the
    encoder will choose the number of slices based on encode resolution.

    - **Tier** *(string) --* H.265 Tier.

    - **TimecodeInsertion** *(string) --* Determines how timecodes should be inserted into the video
    elementary stream. - 'disabled': Do not include timecodes - 'picTimingSei': Pass through picture
    timing SEI messages from the source specified in Timecode Config
    """


_ClientUpdateChannelEncoderSettingsVideoDescriptionsCodecSettingsTypeDef = TypedDict(
    "_ClientUpdateChannelEncoderSettingsVideoDescriptionsCodecSettingsTypeDef",
    {
        "FrameCaptureSettings": ClientUpdateChannelEncoderSettingsVideoDescriptionsCodecSettingsFrameCaptureSettingsTypeDef,
        "H264Settings": ClientUpdateChannelEncoderSettingsVideoDescriptionsCodecSettingsH264SettingsTypeDef,
        "H265Settings": ClientUpdateChannelEncoderSettingsVideoDescriptionsCodecSettingsH265SettingsTypeDef,
    },
    total=False,
)


class ClientUpdateChannelEncoderSettingsVideoDescriptionsCodecSettingsTypeDef(
    _ClientUpdateChannelEncoderSettingsVideoDescriptionsCodecSettingsTypeDef
):
    """
    Type definition for `ClientUpdateChannelEncoderSettingsVideoDescriptions` `CodecSettings`

    - **FrameCaptureSettings** *(dict) --* Frame Capture Settings

      - **CaptureInterval** *(integer) --* **[REQUIRED]** The frequency at which to capture frames
      for inclusion in the output. May be specified in either seconds or milliseconds, as specified
      by captureIntervalUnits.

    - **H264Settings** *(dict) --* H264 Settings

      - **AdaptiveQuantization** *(string) --* Adaptive quantization. Allows intra-frame quantizers
      to vary to improve visual quality.

      - **AfdSignaling** *(string) --* Indicates that AFD values will be written into the output
      stream. If afdSignaling is "auto", the system will try to preserve the input AFD value (in
      cases where multiple AFD values are valid). If set to "fixed", the AFD value will be the value
      configured in the fixedAfd parameter.

      - **Bitrate** *(integer) --* Average bitrate in bits/second. Required when the rate control
      mode is VBR or CBR. Not used for QVBR. In an MS Smooth output group, each output must have a
      unique value when its bitrate is rounded down to the nearest multiple of 1000.

      - **BufFillPct** *(integer) --* Percentage of the buffer that should initially be filled (HRD
      buffer model).

      - **BufSize** *(integer) --* Size of buffer (HRD buffer model) in bits.

      - **ColorMetadata** *(string) --* Includes colorspace metadata in the output.

      - **ColorSpaceSettings** *(dict) --* Color Space settings

        - **ColorSpacePassthroughSettings** *(dict) --* Passthrough applies no color space
        conversion to the output

        - **Rec601Settings** *(dict) --* Rec601 Settings

        - **Rec709Settings** *(dict) --* Rec709 Settings

      - **EntropyEncoding** *(string) --* Entropy encoding mode. Use cabac (must be in Main or High
      profile) or cavlc.

      - **FixedAfd** *(string) --* Four bit AFD value to write on all frames of video in the output
      stream. Only valid when afdSignaling is set to 'Fixed'.

      - **FlickerAq** *(string) --* If set to enabled, adjust quantization within each frame to
      reduce flicker or 'pop' on I-frames.

      - **FramerateControl** *(string) --* This field indicates how the output video frame rate is
      specified. If "specified" is selected then the output video frame rate is determined by
      framerateNumerator and framerateDenominator, else if "initializeFromSource" is selected then
      the output video frame rate will be set equal to the input video frame rate of the first
      input.

      - **FramerateDenominator** *(integer) --* Framerate denominator.

      - **FramerateNumerator** *(integer) --* Framerate numerator - framerate is a fraction, e.g.
      24000 / 1001 = 23.976 fps.

      - **GopBReference** *(string) --* Documentation update needed

      - **GopClosedCadence** *(integer) --* Frequency of closed GOPs. In streaming applications, it
      is recommended that this be set to 1 so a decoder joining mid-stream will receive an IDR frame
      as quickly as possible. Setting this value to 0 will break output segmenting.

      - **GopNumBFrames** *(integer) --* Number of B-frames between reference frames.

      - **GopSize** *(float) --* GOP size (keyframe interval) in units of either frames or seconds
      per gopSizeUnits. If gopSizeUnits is frames, gopSize must be an integer and must be greater
      than or equal to 1. If gopSizeUnits is seconds, gopSize must be greater than 0, but need not
      be an integer.

      - **GopSizeUnits** *(string) --* Indicates if the gopSize is specified in frames or seconds.
      If seconds the system will convert the gopSize into a frame count at run time.

      - **Level** *(string) --* H.264 Level.

      - **LookAheadRateControl** *(string) --* Amount of lookahead. A value of low can decrease
      latency and memory usage, while high can produce better quality for certain content.

      - **MaxBitrate** *(integer) --* For QVBR: See the tooltip for Quality level For VBR: Set the
      maximum bitrate in order to accommodate expected spikes in the complexity of the video.

      - **MinIInterval** *(integer) --* Only meaningful if sceneChangeDetect is set to enabled.
      Defaults to 5 if multiplex rate control is used. Enforces separation between repeated
      (cadence) I-frames and I-frames inserted by Scene Change Detection. If a scene change I-frame
      is within I-interval frames of a cadence I-frame, the GOP is shrunk and/or stretched to the
      scene change I-frame. GOP stretch requires enabling lookahead as well as setting I-interval.
      The normal cadence resumes for the next GOP. Note: Maximum GOP stretch = GOP size +
      Min-I-interval - 1

      - **NumRefFrames** *(integer) --* Number of reference frames to use. The encoder may use more
      than requested if using B-frames and/or interlaced encoding.

      - **ParControl** *(string) --* This field indicates how the output pixel aspect ratio is
      specified. If "specified" is selected then the output video pixel aspect ratio is determined
      by parNumerator and parDenominator, else if "initializeFromSource" is selected then the output
      pixsel aspect ratio will be set equal to the input video pixel aspect ratio of the first
      input.

      - **ParDenominator** *(integer) --* Pixel Aspect Ratio denominator.

      - **ParNumerator** *(integer) --* Pixel Aspect Ratio numerator.

      - **Profile** *(string) --* H.264 Profile.

      - **QvbrQualityLevel** *(integer) --* Controls the target quality for the video encode.
      Applies only when the rate control mode is QVBR. Set values for the QVBR quality level field
      and Max bitrate field that suit your most important viewing devices. Recommended values are: -
      Primary screen: Quality level: 8 to 10. Max bitrate: 4M - PC or tablet: Quality level: 7. Max
      bitrate: 1.5M to 3M - Smartphone: Quality level: 6. Max bitrate: 1M to 1.5M

      - **RateControlMode** *(string) --* Rate control mode. QVBR: Quality will match the specified
      quality level except when it is constrained by the maximum bitrate. Recommended if you or your
      viewers pay for bandwidth. VBR: Quality and bitrate vary, depending on the video complexity.
      Recommended instead of QVBR if you want to maintain a specific average bitrate over the
      duration of the channel. CBR: Quality varies, depending on the video complexity. Recommended
      only if you distribute your assets to devices that cannot handle variable bitrates.

      - **ScanType** *(string) --* Sets the scan type of the output to progressive or
      top-field-first interlaced.

      - **SceneChangeDetect** *(string) --* Scene change detection. - On: inserts I-frames when
      scene change is detected. - Off: does not force an I-frame when scene change is detected.

      - **Slices** *(integer) --* Number of slices per picture. Must be less than or equal to the
      number of macroblock rows for progressive pictures, and less than or equal to half the number
      of macroblock rows for interlaced pictures. This field is optional; when no value is specified
      the encoder will choose the number of slices based on encode resolution.

      - **Softness** *(integer) --* Softness. Selects quantizer matrix, larger values reduce
      high-frequency content in the encoded image.

      - **SpatialAq** *(string) --* If set to enabled, adjust quantization within each frame based
      on spatial variation of content complexity.

      - **SubgopLength** *(string) --* If set to fixed, use gopNumBFrames B-frames per sub-GOP. If
      set to dynamic, optimize the number of B-frames used for each sub-GOP to improve visual
      quality.

      - **Syntax** *(string) --* Produces a bitstream compliant with SMPTE RP-2027.

      - **TemporalAq** *(string) --* If set to enabled, adjust quantization within each frame based
      on temporal variation of content complexity.

      - **TimecodeInsertion** *(string) --* Determines how timecodes should be inserted into the
      video elementary stream. - 'disabled': Do not include timecodes - 'picTimingSei': Pass through
      picture timing SEI messages from the source specified in Timecode Config

    - **H265Settings** *(dict) --* H265 Settings

      - **AdaptiveQuantization** *(string) --* Adaptive quantization. Allows intra-frame quantizers
      to vary to improve visual quality.

      - **AfdSignaling** *(string) --* Indicates that AFD values will be written into the output
      stream. If afdSignaling is "auto", the system will try to preserve the input AFD value (in
      cases where multiple AFD values are valid). If set to "fixed", the AFD value will be the value
      configured in the fixedAfd parameter.

      - **AlternativeTransferFunction** *(string) --* Whether or not EML should insert an
      Alternative Transfer Function SEI message to support backwards compatibility with non-HDR
      decoders and displays.

      - **Bitrate** *(integer) --* Average bitrate in bits/second. Required when the rate control
      mode is VBR or CBR. Not used for QVBR. In an MS Smooth output group, each output must have a
      unique value when its bitrate is rounded down to the nearest multiple of 1000.

      - **BufSize** *(integer) --* Size of buffer (HRD buffer model) in bits.

      - **ColorMetadata** *(string) --* Includes colorspace metadata in the output.

      - **ColorSpaceSettings** *(dict) --* Color Space settings

        - **ColorSpacePassthroughSettings** *(dict) --* Passthrough applies no color space
        conversion to the output

        - **Hdr10Settings** *(dict) --* Hdr10 Settings

          - **MaxCll** *(integer) --* Maximum Content Light Level An integer metadata value defining
          the maximum light level, in nits, of any single pixel within an encoded HDR video stream
          or file.

          - **MaxFall** *(integer) --* Maximum Frame Average Light Level An integer metadata value
          defining the maximum average light level, in nits, for any single frame within an encoded
          HDR video stream or file.

        - **Rec601Settings** *(dict) --* Rec601 Settings

        - **Rec709Settings** *(dict) --* Rec709 Settings

      - **FixedAfd** *(string) --* Four bit AFD value to write on all frames of video in the output
      stream. Only valid when afdSignaling is set to 'Fixed'.

      - **FlickerAq** *(string) --* If set to enabled, adjust quantization within each frame to
      reduce flicker or 'pop' on I-frames.

      - **FramerateDenominator** *(integer) --* **[REQUIRED]** Framerate denominator.

      - **FramerateNumerator** *(integer) --* **[REQUIRED]** Framerate numerator - framerate is a
      fraction, e.g. 24000 / 1001 = 23.976 fps.

      - **GopClosedCadence** *(integer) --* Frequency of closed GOPs. In streaming applications, it
      is recommended that this be set to 1 so a decoder joining mid-stream will receive an IDR frame
      as quickly as possible. Setting this value to 0 will break output segmenting.

      - **GopSize** *(float) --* GOP size (keyframe interval) in units of either frames or seconds
      per gopSizeUnits. If gopSizeUnits is frames, gopSize must be an integer and must be greater
      than or equal to 1. If gopSizeUnits is seconds, gopSize must be greater than 0, but need not
      be an integer.

      - **GopSizeUnits** *(string) --* Indicates if the gopSize is specified in frames or seconds.
      If seconds the system will convert the gopSize into a frame count at run time.

      - **Level** *(string) --* H.265 Level.

      - **LookAheadRateControl** *(string) --* Amount of lookahead. A value of low can decrease
      latency and memory usage, while high can produce better quality for certain content.

      - **MaxBitrate** *(integer) --* For QVBR: See the tooltip for Quality level

      - **MinIInterval** *(integer) --* Only meaningful if sceneChangeDetect is set to enabled.
      Defaults to 5 if multiplex rate control is used. Enforces separation between repeated
      (cadence) I-frames and I-frames inserted by Scene Change Detection. If a scene change I-frame
      is within I-interval frames of a cadence I-frame, the GOP is shrunk and/or stretched to the
      scene change I-frame. GOP stretch requires enabling lookahead as well as setting I-interval.
      The normal cadence resumes for the next GOP. Note: Maximum GOP stretch = GOP size +
      Min-I-interval - 1

      - **ParDenominator** *(integer) --* Pixel Aspect Ratio denominator.

      - **ParNumerator** *(integer) --* Pixel Aspect Ratio numerator.

      - **Profile** *(string) --* H.265 Profile.

      - **QvbrQualityLevel** *(integer) --* Controls the target quality for the video encode.
      Applies only when the rate control mode is QVBR. Set values for the QVBR quality level field
      and Max bitrate field that suit your most important viewing devices. Recommended values are: -
      Primary screen: Quality level: 8 to 10. Max bitrate: 4M - PC or tablet: Quality level: 7. Max
      bitrate: 1.5M to 3M - Smartphone: Quality level: 6. Max bitrate: 1M to 1.5M

      - **RateControlMode** *(string) --* Rate control mode. QVBR: Quality will match the specified
      quality level except when it is constrained by the maximum bitrate. Recommended if you or your
      viewers pay for bandwidth. CBR: Quality varies, depending on the video complexity. Recommended
      only if you distribute your assets to devices that cannot handle variable bitrates.

      - **ScanType** *(string) --* Sets the scan type of the output to progressive or
      top-field-first interlaced.

      - **SceneChangeDetect** *(string) --* Scene change detection.

      - **Slices** *(integer) --* Number of slices per picture. Must be less than or equal to the
      number of macroblock rows for progressive pictures, and less than or equal to half the number
      of macroblock rows for interlaced pictures. This field is optional; when no value is specified
      the encoder will choose the number of slices based on encode resolution.

      - **Tier** *(string) --* H.265 Tier.

      - **TimecodeInsertion** *(string) --* Determines how timecodes should be inserted into the
      video elementary stream. - 'disabled': Do not include timecodes - 'picTimingSei': Pass through
      picture timing SEI messages from the source specified in Timecode Config
    """


_RequiredClientUpdateChannelEncoderSettingsVideoDescriptionsTypeDef = TypedDict(
    "_RequiredClientUpdateChannelEncoderSettingsVideoDescriptionsTypeDef", {"Name": str}
)
_OptionalClientUpdateChannelEncoderSettingsVideoDescriptionsTypeDef = TypedDict(
    "_OptionalClientUpdateChannelEncoderSettingsVideoDescriptionsTypeDef",
    {
        "CodecSettings": ClientUpdateChannelEncoderSettingsVideoDescriptionsCodecSettingsTypeDef,
        "Height": int,
        "RespondToAfd": str,
        "ScalingBehavior": str,
        "Sharpness": int,
        "Width": int,
    },
    total=False,
)


class ClientUpdateChannelEncoderSettingsVideoDescriptionsTypeDef(
    _RequiredClientUpdateChannelEncoderSettingsVideoDescriptionsTypeDef,
    _OptionalClientUpdateChannelEncoderSettingsVideoDescriptionsTypeDef,
):
    """
    Type definition for `ClientUpdateChannelEncoderSettings` `VideoDescriptions`

    - **CodecSettings** *(dict) --* Video codec settings.

      - **FrameCaptureSettings** *(dict) --* Frame Capture Settings

        - **CaptureInterval** *(integer) --* **[REQUIRED]** The frequency at which to capture frames
        for inclusion in the output. May be specified in either seconds or milliseconds, as
        specified by captureIntervalUnits.

      - **H264Settings** *(dict) --* H264 Settings

        - **AdaptiveQuantization** *(string) --* Adaptive quantization. Allows intra-frame
        quantizers to vary to improve visual quality.

        - **AfdSignaling** *(string) --* Indicates that AFD values will be written into the output
        stream. If afdSignaling is "auto", the system will try to preserve the input AFD value (in
        cases where multiple AFD values are valid). If set to "fixed", the AFD value will be the
        value configured in the fixedAfd parameter.

        - **Bitrate** *(integer) --* Average bitrate in bits/second. Required when the rate control
        mode is VBR or CBR. Not used for QVBR. In an MS Smooth output group, each output must have a
        unique value when its bitrate is rounded down to the nearest multiple of 1000.

        - **BufFillPct** *(integer) --* Percentage of the buffer that should initially be filled
        (HRD buffer model).

        - **BufSize** *(integer) --* Size of buffer (HRD buffer model) in bits.

        - **ColorMetadata** *(string) --* Includes colorspace metadata in the output.

        - **ColorSpaceSettings** *(dict) --* Color Space settings

          - **ColorSpacePassthroughSettings** *(dict) --* Passthrough applies no color space
          conversion to the output

          - **Rec601Settings** *(dict) --* Rec601 Settings

          - **Rec709Settings** *(dict) --* Rec709 Settings

        - **EntropyEncoding** *(string) --* Entropy encoding mode. Use cabac (must be in Main or
        High profile) or cavlc.

        - **FixedAfd** *(string) --* Four bit AFD value to write on all frames of video in the
        output stream. Only valid when afdSignaling is set to 'Fixed'.

        - **FlickerAq** *(string) --* If set to enabled, adjust quantization within each frame to
        reduce flicker or 'pop' on I-frames.

        - **FramerateControl** *(string) --* This field indicates how the output video frame rate is
        specified. If "specified" is selected then the output video frame rate is determined by
        framerateNumerator and framerateDenominator, else if "initializeFromSource" is selected then
        the output video frame rate will be set equal to the input video frame rate of the first
        input.

        - **FramerateDenominator** *(integer) --* Framerate denominator.

        - **FramerateNumerator** *(integer) --* Framerate numerator - framerate is a fraction, e.g.
        24000 / 1001 = 23.976 fps.

        - **GopBReference** *(string) --* Documentation update needed

        - **GopClosedCadence** *(integer) --* Frequency of closed GOPs. In streaming applications,
        it is recommended that this be set to 1 so a decoder joining mid-stream will receive an IDR
        frame as quickly as possible. Setting this value to 0 will break output segmenting.

        - **GopNumBFrames** *(integer) --* Number of B-frames between reference frames.

        - **GopSize** *(float) --* GOP size (keyframe interval) in units of either frames or seconds
        per gopSizeUnits. If gopSizeUnits is frames, gopSize must be an integer and must be greater
        than or equal to 1. If gopSizeUnits is seconds, gopSize must be greater than 0, but need not
        be an integer.

        - **GopSizeUnits** *(string) --* Indicates if the gopSize is specified in frames or seconds.
        If seconds the system will convert the gopSize into a frame count at run time.

        - **Level** *(string) --* H.264 Level.

        - **LookAheadRateControl** *(string) --* Amount of lookahead. A value of low can decrease
        latency and memory usage, while high can produce better quality for certain content.

        - **MaxBitrate** *(integer) --* For QVBR: See the tooltip for Quality level For VBR: Set the
        maximum bitrate in order to accommodate expected spikes in the complexity of the video.

        - **MinIInterval** *(integer) --* Only meaningful if sceneChangeDetect is set to enabled.
        Defaults to 5 if multiplex rate control is used. Enforces separation between repeated
        (cadence) I-frames and I-frames inserted by Scene Change Detection. If a scene change
        I-frame is within I-interval frames of a cadence I-frame, the GOP is shrunk and/or stretched
        to the scene change I-frame. GOP stretch requires enabling lookahead as well as setting
        I-interval. The normal cadence resumes for the next GOP. Note: Maximum GOP stretch = GOP
        size + Min-I-interval - 1

        - **NumRefFrames** *(integer) --* Number of reference frames to use. The encoder may use
        more than requested if using B-frames and/or interlaced encoding.

        - **ParControl** *(string) --* This field indicates how the output pixel aspect ratio is
        specified. If "specified" is selected then the output video pixel aspect ratio is determined
        by parNumerator and parDenominator, else if "initializeFromSource" is selected then the
        output pixsel aspect ratio will be set equal to the input video pixel aspect ratio of the
        first input.

        - **ParDenominator** *(integer) --* Pixel Aspect Ratio denominator.

        - **ParNumerator** *(integer) --* Pixel Aspect Ratio numerator.

        - **Profile** *(string) --* H.264 Profile.

        - **QvbrQualityLevel** *(integer) --* Controls the target quality for the video encode.
        Applies only when the rate control mode is QVBR. Set values for the QVBR quality level field
        and Max bitrate field that suit your most important viewing devices. Recommended values are:
        - Primary screen: Quality level: 8 to 10. Max bitrate: 4M - PC or tablet: Quality level: 7.
        Max bitrate: 1.5M to 3M - Smartphone: Quality level: 6. Max bitrate: 1M to 1.5M

        - **RateControlMode** *(string) --* Rate control mode. QVBR: Quality will match the
        specified quality level except when it is constrained by the maximum bitrate. Recommended if
        you or your viewers pay for bandwidth. VBR: Quality and bitrate vary, depending on the video
        complexity. Recommended instead of QVBR if you want to maintain a specific average bitrate
        over the duration of the channel. CBR: Quality varies, depending on the video complexity.
        Recommended only if you distribute your assets to devices that cannot handle variable
        bitrates.

        - **ScanType** *(string) --* Sets the scan type of the output to progressive or
        top-field-first interlaced.

        - **SceneChangeDetect** *(string) --* Scene change detection. - On: inserts I-frames when
        scene change is detected. - Off: does not force an I-frame when scene change is detected.

        - **Slices** *(integer) --* Number of slices per picture. Must be less than or equal to the
        number of macroblock rows for progressive pictures, and less than or equal to half the
        number of macroblock rows for interlaced pictures. This field is optional; when no value is
        specified the encoder will choose the number of slices based on encode resolution.

        - **Softness** *(integer) --* Softness. Selects quantizer matrix, larger values reduce
        high-frequency content in the encoded image.

        - **SpatialAq** *(string) --* If set to enabled, adjust quantization within each frame based
        on spatial variation of content complexity.

        - **SubgopLength** *(string) --* If set to fixed, use gopNumBFrames B-frames per sub-GOP. If
        set to dynamic, optimize the number of B-frames used for each sub-GOP to improve visual
        quality.

        - **Syntax** *(string) --* Produces a bitstream compliant with SMPTE RP-2027.

        - **TemporalAq** *(string) --* If set to enabled, adjust quantization within each frame
        based on temporal variation of content complexity.

        - **TimecodeInsertion** *(string) --* Determines how timecodes should be inserted into the
        video elementary stream. - 'disabled': Do not include timecodes - 'picTimingSei': Pass
        through picture timing SEI messages from the source specified in Timecode Config

      - **H265Settings** *(dict) --* H265 Settings

        - **AdaptiveQuantization** *(string) --* Adaptive quantization. Allows intra-frame
        quantizers to vary to improve visual quality.

        - **AfdSignaling** *(string) --* Indicates that AFD values will be written into the output
        stream. If afdSignaling is "auto", the system will try to preserve the input AFD value (in
        cases where multiple AFD values are valid). If set to "fixed", the AFD value will be the
        value configured in the fixedAfd parameter.

        - **AlternativeTransferFunction** *(string) --* Whether or not EML should insert an
        Alternative Transfer Function SEI message to support backwards compatibility with non-HDR
        decoders and displays.

        - **Bitrate** *(integer) --* Average bitrate in bits/second. Required when the rate control
        mode is VBR or CBR. Not used for QVBR. In an MS Smooth output group, each output must have a
        unique value when its bitrate is rounded down to the nearest multiple of 1000.

        - **BufSize** *(integer) --* Size of buffer (HRD buffer model) in bits.

        - **ColorMetadata** *(string) --* Includes colorspace metadata in the output.

        - **ColorSpaceSettings** *(dict) --* Color Space settings

          - **ColorSpacePassthroughSettings** *(dict) --* Passthrough applies no color space
          conversion to the output

          - **Hdr10Settings** *(dict) --* Hdr10 Settings

            - **MaxCll** *(integer) --* Maximum Content Light Level An integer metadata value
            defining the maximum light level, in nits, of any single pixel within an encoded HDR
            video stream or file.

            - **MaxFall** *(integer) --* Maximum Frame Average Light Level An integer metadata value
            defining the maximum average light level, in nits, for any single frame within an
            encoded HDR video stream or file.

          - **Rec601Settings** *(dict) --* Rec601 Settings

          - **Rec709Settings** *(dict) --* Rec709 Settings

        - **FixedAfd** *(string) --* Four bit AFD value to write on all frames of video in the
        output stream. Only valid when afdSignaling is set to 'Fixed'.

        - **FlickerAq** *(string) --* If set to enabled, adjust quantization within each frame to
        reduce flicker or 'pop' on I-frames.

        - **FramerateDenominator** *(integer) --* **[REQUIRED]** Framerate denominator.

        - **FramerateNumerator** *(integer) --* **[REQUIRED]** Framerate numerator - framerate is a
        fraction, e.g. 24000 / 1001 = 23.976 fps.

        - **GopClosedCadence** *(integer) --* Frequency of closed GOPs. In streaming applications,
        it is recommended that this be set to 1 so a decoder joining mid-stream will receive an IDR
        frame as quickly as possible. Setting this value to 0 will break output segmenting.

        - **GopSize** *(float) --* GOP size (keyframe interval) in units of either frames or seconds
        per gopSizeUnits. If gopSizeUnits is frames, gopSize must be an integer and must be greater
        than or equal to 1. If gopSizeUnits is seconds, gopSize must be greater than 0, but need not
        be an integer.

        - **GopSizeUnits** *(string) --* Indicates if the gopSize is specified in frames or seconds.
        If seconds the system will convert the gopSize into a frame count at run time.

        - **Level** *(string) --* H.265 Level.

        - **LookAheadRateControl** *(string) --* Amount of lookahead. A value of low can decrease
        latency and memory usage, while high can produce better quality for certain content.

        - **MaxBitrate** *(integer) --* For QVBR: See the tooltip for Quality level

        - **MinIInterval** *(integer) --* Only meaningful if sceneChangeDetect is set to enabled.
        Defaults to 5 if multiplex rate control is used. Enforces separation between repeated
        (cadence) I-frames and I-frames inserted by Scene Change Detection. If a scene change
        I-frame is within I-interval frames of a cadence I-frame, the GOP is shrunk and/or stretched
        to the scene change I-frame. GOP stretch requires enabling lookahead as well as setting
        I-interval. The normal cadence resumes for the next GOP. Note: Maximum GOP stretch = GOP
        size + Min-I-interval - 1

        - **ParDenominator** *(integer) --* Pixel Aspect Ratio denominator.

        - **ParNumerator** *(integer) --* Pixel Aspect Ratio numerator.

        - **Profile** *(string) --* H.265 Profile.

        - **QvbrQualityLevel** *(integer) --* Controls the target quality for the video encode.
        Applies only when the rate control mode is QVBR. Set values for the QVBR quality level field
        and Max bitrate field that suit your most important viewing devices. Recommended values are:
        - Primary screen: Quality level: 8 to 10. Max bitrate: 4M - PC or tablet: Quality level: 7.
        Max bitrate: 1.5M to 3M - Smartphone: Quality level: 6. Max bitrate: 1M to 1.5M

        - **RateControlMode** *(string) --* Rate control mode. QVBR: Quality will match the
        specified quality level except when it is constrained by the maximum bitrate. Recommended if
        you or your viewers pay for bandwidth. CBR: Quality varies, depending on the video
        complexity. Recommended only if you distribute your assets to devices that cannot handle
        variable bitrates.

        - **ScanType** *(string) --* Sets the scan type of the output to progressive or
        top-field-first interlaced.

        - **SceneChangeDetect** *(string) --* Scene change detection.

        - **Slices** *(integer) --* Number of slices per picture. Must be less than or equal to the
        number of macroblock rows for progressive pictures, and less than or equal to half the
        number of macroblock rows for interlaced pictures. This field is optional; when no value is
        specified the encoder will choose the number of slices based on encode resolution.

        - **Tier** *(string) --* H.265 Tier.

        - **TimecodeInsertion** *(string) --* Determines how timecodes should be inserted into the
        video elementary stream. - 'disabled': Do not include timecodes - 'picTimingSei': Pass
        through picture timing SEI messages from the source specified in Timecode Config

    - **Height** *(integer) --* Output video height, in pixels. Must be an even number. For most
    codecs, you can leave this field and width blank in order to use the height and width
    (resolution) from the source. Note, however, that leaving blank is not recommended. For the
    Frame Capture codec, height and width are required.

    - **Name** *(string) --* **[REQUIRED]** The name of this VideoDescription. Outputs will use this
    name to uniquely identify this Description. Description names should be unique within this Live
    Event.

    - **RespondToAfd** *(string) --* Indicates how to respond to the AFD values in the input stream.
    RESPOND causes input video to be clipped, depending on the AFD value, input display aspect
    ratio, and output display aspect ratio, and (except for FRAMECAPTURE codec) includes the values
    in the output. PASSTHROUGH (does not apply to FRAMECAPTURE codec) ignores the AFD values and
    includes the values in the output, so input video is not clipped. NONE ignores the AFD values
    and does not include the values through to the output, so input video is not clipped.

    - **ScalingBehavior** *(string) --* STRETCHTOOUTPUT configures the output position to stretch
    the video to the specified output resolution (height and width). This option will override any
    position value. DEFAULT may insert black boxes (pillar boxes or letter boxes) around the video
    to provide the specified output resolution.

    - **Sharpness** *(integer) --* Changes the strength of the anti-alias filter used for scaling. 0
    is the softest setting, 100 is the sharpest. A setting of 50 is recommended for most content.

    - **Width** *(integer) --* Output video width, in pixels. Must be an even number. For most
    codecs, you can leave this field and height blank in order to use the height and width
    (resolution) from the source. Note, however, that leaving blank is not recommended. For the
    Frame Capture codec, height and width are required.
    """


_RequiredClientUpdateChannelEncoderSettingsTypeDef = TypedDict(
    "_RequiredClientUpdateChannelEncoderSettingsTypeDef",
    {
        "AudioDescriptions": List[ClientUpdateChannelEncoderSettingsAudioDescriptionsTypeDef],
        "OutputGroups": List[ClientUpdateChannelEncoderSettingsOutputGroupsTypeDef],
        "TimecodeConfig": ClientUpdateChannelEncoderSettingsTimecodeConfigTypeDef,
        "VideoDescriptions": List[ClientUpdateChannelEncoderSettingsVideoDescriptionsTypeDef],
    },
)
_OptionalClientUpdateChannelEncoderSettingsTypeDef = TypedDict(
    "_OptionalClientUpdateChannelEncoderSettingsTypeDef",
    {
        "AvailBlanking": ClientUpdateChannelEncoderSettingsAvailBlankingTypeDef,
        "AvailConfiguration": ClientUpdateChannelEncoderSettingsAvailConfigurationTypeDef,
        "BlackoutSlate": ClientUpdateChannelEncoderSettingsBlackoutSlateTypeDef,
        "CaptionDescriptions": List[ClientUpdateChannelEncoderSettingsCaptionDescriptionsTypeDef],
        "GlobalConfiguration": ClientUpdateChannelEncoderSettingsGlobalConfigurationTypeDef,
        "NielsenConfiguration": ClientUpdateChannelEncoderSettingsNielsenConfigurationTypeDef,
    },
    total=False,
)


class ClientUpdateChannelEncoderSettingsTypeDef(
    _RequiredClientUpdateChannelEncoderSettingsTypeDef,
    _OptionalClientUpdateChannelEncoderSettingsTypeDef,
):
    """
    Type definition for `ClientUpdateChannel` `EncoderSettings`

    - **AudioDescriptions** *(list) --* **[REQUIRED]** Placeholder documentation for
    __listOfAudioDescription

      - *(dict) --* Audio Description

        - **AudioNormalizationSettings** *(dict) --* Advanced audio normalization settings.

          - **Algorithm** *(string) --* Audio normalization algorithm to use. itu17701 conforms to
          the CALM Act specification, itu17702 conforms to the EBU R-128 specification.

          - **AlgorithmControl** *(string) --* When set to correctAudio the output audio is
          corrected using the chosen algorithm. If set to measureOnly, the audio will be measured
          but not adjusted.

          - **TargetLkfs** *(float) --* Target LKFS(loudness) to adjust volume to. If no value is
          entered, a default value will be used according to the chosen algorithm. The CALM Act
          (1770-1) recommends a target of -24 LKFS. The EBU R-128 specification (1770-2) recommends
          a target of -23 LKFS.

        - **AudioSelectorName** *(string) --* **[REQUIRED]** The name of the AudioSelector used as
        the source for this AudioDescription.

        - **AudioType** *(string) --* Applies only if audioTypeControl is useConfigured. The values
        for audioType are defined in ISO-IEC 13818-1.

        - **AudioTypeControl** *(string) --* Determines how audio type is determined. followInput:
        If the input contains an ISO 639 audioType, then that value is passed through to the output.
        If the input contains no ISO 639 audioType, the value in Audio Type is included in the
        output. useConfigured: The value in Audio Type is included in the output. Note that this
        field and audioType are both ignored if inputType is broadcasterMixedAd.

        - **CodecSettings** *(dict) --* Audio codec settings.

          - **AacSettings** *(dict) --* Aac Settings

            - **Bitrate** *(float) --* Average bitrate in bits/second. Valid values depend on rate
            control mode and profile.

            - **CodingMode** *(string) --* Mono, Stereo, or 5.1 channel layout. Valid values depend
            on rate control mode and profile. The adReceiverMix setting receives a stereo
            description plus control track and emits a mono AAC encode of the description track,
            with control data emitted in the PES header as per ETSI TS 101 154 Annex E.

            - **InputType** *(string) --* Set to "broadcasterMixedAd" when input contains pre-mixed
            main audio + AD (narration) as a stereo pair. The Audio Type field (audioType) will be
            set to 3, which signals to downstream systems that this stream contains "broadcaster
            mixed AD". Note that the input received by the encoder must contain pre-mixed audio; the
            encoder does not perform the mixing. The values in audioTypeControl and audioType (in
            AudioDescription) are ignored when set to broadcasterMixedAd. Leave set to "normal" when
            input does not contain pre-mixed audio + AD.

            - **Profile** *(string) --* AAC Profile.

            - **RateControlMode** *(string) --* Rate Control Mode.

            - **RawFormat** *(string) --* Sets LATM / LOAS AAC output for raw containers.

            - **SampleRate** *(float) --* Sample rate in Hz. Valid values depend on rate control
            mode and profile.

            - **Spec** *(string) --* Use MPEG-2 AAC audio instead of MPEG-4 AAC audio for raw or
            MPEG-2 Transport Stream containers.

            - **VbrQuality** *(string) --* VBR Quality Level - Only used if rateControlMode is VBR.

          - **Ac3Settings** *(dict) --* Ac3 Settings

            - **Bitrate** *(float) --* Average bitrate in bits/second. Valid bitrates depend on the
            coding mode.

            - **BitstreamMode** *(string) --* Specifies the bitstream mode (bsmod) for the emitted
            AC-3 stream. See ATSC A/52-2012 for background on these values.

            - **CodingMode** *(string) --* Dolby Digital coding mode. Determines number of channels.

            - **Dialnorm** *(integer) --* Sets the dialnorm for the output. If excluded and input
            audio is Dolby Digital, dialnorm will be passed through.

            - **DrcProfile** *(string) --* If set to filmStandard, adds dynamic range compression
            signaling to the output bitstream as defined in the Dolby Digital specification.

            - **LfeFilter** *(string) --* When set to enabled, applies a 120Hz lowpass filter to the
            LFE channel prior to encoding. Only valid in codingMode32Lfe mode.

            - **MetadataControl** *(string) --* When set to "followInput", encoder metadata will be
            sourced from the DD, DD+, or DolbyE decoder that supplied this audio data. If audio was
            not supplied from one of these streams, then the static metadata settings will be used.

          - **Eac3Settings** *(dict) --* Eac3 Settings

            - **AttenuationControl** *(string) --* When set to attenuate3Db, applies a 3 dB
            attenuation to the surround channels. Only used for 3/2 coding mode.

            - **Bitrate** *(float) --* Average bitrate in bits/second. Valid bitrates depend on the
            coding mode.

            - **BitstreamMode** *(string) --* Specifies the bitstream mode (bsmod) for the emitted
            E-AC-3 stream. See ATSC A/52-2012 (Annex E) for background on these values.

            - **CodingMode** *(string) --* Dolby Digital Plus coding mode. Determines number of
            channels.

            - **DcFilter** *(string) --* When set to enabled, activates a DC highpass filter for all
            input channels.

            - **Dialnorm** *(integer) --* Sets the dialnorm for the output. If blank and input audio
            is Dolby Digital Plus, dialnorm will be passed through.

            - **DrcLine** *(string) --* Sets the Dolby dynamic range compression profile.

            - **DrcRf** *(string) --* Sets the profile for heavy Dolby dynamic range compression,
            ensures that the instantaneous signal peaks do not exceed specified levels.

            - **LfeControl** *(string) --* When encoding 3/2 audio, setting to lfe enables the LFE
            channel

            - **LfeFilter** *(string) --* When set to enabled, applies a 120Hz lowpass filter to the
            LFE channel prior to encoding. Only valid with codingMode32 coding mode.

            - **LoRoCenterMixLevel** *(float) --* Left only/Right only center mix level. Only used
            for 3/2 coding mode.

            - **LoRoSurroundMixLevel** *(float) --* Left only/Right only surround mix level. Only
            used for 3/2 coding mode.

            - **LtRtCenterMixLevel** *(float) --* Left total/Right total center mix level. Only used
            for 3/2 coding mode.

            - **LtRtSurroundMixLevel** *(float) --* Left total/Right total surround mix level. Only
            used for 3/2 coding mode.

            - **MetadataControl** *(string) --* When set to followInput, encoder metadata will be
            sourced from the DD, DD+, or DolbyE decoder that supplied this audio data. If audio was
            not supplied from one of these streams, then the static metadata settings will be used.

            - **PassthroughControl** *(string) --* When set to whenPossible, input DD+ audio will be
            passed through if it is present on the input. This detection is dynamic over the life of
            the transcode. Inputs that alternate between DD+ and non-DD+ content will have a
            consistent DD+ output as the system alternates between passthrough and encoding.

            - **PhaseControl** *(string) --* When set to shift90Degrees, applies a 90-degree phase
            shift to the surround channels. Only used for 3/2 coding mode.

            - **StereoDownmix** *(string) --* Stereo downmix preference. Only used for 3/2 coding
            mode.

            - **SurroundExMode** *(string) --* When encoding 3/2 audio, sets whether an extra center
            back surround channel is matrix encoded into the left and right surround channels.

            - **SurroundMode** *(string) --* When encoding 2/0 audio, sets whether Dolby Surround is
            matrix encoded into the two channels.

          - **Mp2Settings** *(dict) --* Mp2 Settings

            - **Bitrate** *(float) --* Average bitrate in bits/second.

            - **CodingMode** *(string) --* The MPEG2 Audio coding mode. Valid values are
            codingMode10 (for mono) or codingMode20 (for stereo).

            - **SampleRate** *(float) --* Sample rate in Hz.

          - **PassThroughSettings** *(dict) --* Pass Through Settings

        - **LanguageCode** *(string) --* Indicates the language of the audio output track. Only used
        if languageControlMode is useConfigured, or there is no ISO 639 language code specified in
        the input.

        - **LanguageCodeControl** *(string) --* Choosing followInput will cause the ISO 639 language
        code of the output to follow the ISO 639 language code of the input. The languageCode will
        be used when useConfigured is set, or when followInput is selected but there is no ISO 639
        language code specified by the input.

        - **Name** *(string) --* **[REQUIRED]** The name of this AudioDescription. Outputs will use
        this name to uniquely identify this AudioDescription. Description names should be unique
        within this Live Event.

        - **RemixSettings** *(dict) --* Settings that control how input audio channels are remixed
        into the output audio channels.

          - **ChannelMappings** *(list) --* **[REQUIRED]** Mapping of input channels to output
          channels, with appropriate gain adjustments.

            - *(dict) --* Audio Channel Mapping

              - **InputChannelLevels** *(list) --* **[REQUIRED]** Indices and gain values for each
              input channel that should be remixed into this output channel.

                - *(dict) --* Input Channel Level

                  - **Gain** *(integer) --* **[REQUIRED]** Remixing value. Units are in dB and
                  acceptable values are within the range from -60 (mute) and 6 dB.

                  - **InputChannel** *(integer) --* **[REQUIRED]** The index of the input channel
                  used as a source.

              - **OutputChannel** *(integer) --* **[REQUIRED]** The index of the output channel
              being produced.

          - **ChannelsIn** *(integer) --* Number of input channels to be used.

          - **ChannelsOut** *(integer) --* Number of output channels to be produced. Valid values:
          1, 2, 4, 6, 8

        - **StreamName** *(string) --* Used for MS Smooth and Apple HLS outputs. Indicates the name
        displayed by the player (eg. English, or Director Commentary).

    - **AvailBlanking** *(dict) --* Settings for ad avail blanking.

      - **AvailBlankingImage** *(dict) --* Blanking image to be used. Leave empty for solid black.
      Only bmp and png images are supported.

        - **PasswordParam** *(string) --* key used to extract the password from EC2 Parameter store

        - **Uri** *(string) --* **[REQUIRED]** Uniform Resource Identifier - This should be a path
        to a file accessible to the Live system (eg. a http:// URI) depending on the output type.
        For example, a RTMP destination should have a uri simliar to: "rtmp://fmsserver/live".

        - **Username** *(string) --* Documentation update needed

      - **State** *(string) --* When set to enabled, causes video, audio and captions to be blanked
      when insertion metadata is added.

    - **AvailConfiguration** *(dict) --* Event-wide configuration settings for ad avail insertion.

      - **AvailSettings** *(dict) --* Ad avail settings.

        - **Scte35SpliceInsert** *(dict) --* Scte35 Splice Insert

          - **AdAvailOffset** *(integer) --* When specified, this offset (in milliseconds) is added
          to the input Ad Avail PTS time. This only applies to embedded SCTE 104/35 messages and
          does not apply to OOB messages.

          - **NoRegionalBlackoutFlag** *(string) --* When set to ignore, Segment Descriptors with
          noRegionalBlackoutFlag set to 0 will no longer trigger blackouts or Ad Avail slates

          - **WebDeliveryAllowedFlag** *(string) --* When set to ignore, Segment Descriptors with
          webDeliveryAllowedFlag set to 0 will no longer trigger blackouts or Ad Avail slates

        - **Scte35TimeSignalApos** *(dict) --* Scte35 Time Signal Apos

          - **AdAvailOffset** *(integer) --* When specified, this offset (in milliseconds) is added
          to the input Ad Avail PTS time. This only applies to embedded SCTE 104/35 messages and
          does not apply to OOB messages.

          - **NoRegionalBlackoutFlag** *(string) --* When set to ignore, Segment Descriptors with
          noRegionalBlackoutFlag set to 0 will no longer trigger blackouts or Ad Avail slates

          - **WebDeliveryAllowedFlag** *(string) --* When set to ignore, Segment Descriptors with
          webDeliveryAllowedFlag set to 0 will no longer trigger blackouts or Ad Avail slates

    - **BlackoutSlate** *(dict) --* Settings for blackout slate.

      - **BlackoutSlateImage** *(dict) --* Blackout slate image to be used. Leave empty for solid
      black. Only bmp and png images are supported.

        - **PasswordParam** *(string) --* key used to extract the password from EC2 Parameter store

        - **Uri** *(string) --* **[REQUIRED]** Uniform Resource Identifier - This should be a path
        to a file accessible to the Live system (eg. a http:// URI) depending on the output type.
        For example, a RTMP destination should have a uri simliar to: "rtmp://fmsserver/live".

        - **Username** *(string) --* Documentation update needed

      - **NetworkEndBlackout** *(string) --* Setting to enabled causes the encoder to blackout the
      video, audio, and captions, and raise the "Network Blackout Image" slate when an SCTE104/35
      Network End Segmentation Descriptor is encountered. The blackout will be lifted when the
      Network Start Segmentation Descriptor is encountered. The Network End and Network Start
      descriptors must contain a network ID that matches the value entered in "Network ID".

      - **NetworkEndBlackoutImage** *(dict) --* Path to local file to use as Network End Blackout
      image. Image will be scaled to fill the entire output raster.

        - **PasswordParam** *(string) --* key used to extract the password from EC2 Parameter store

        - **Uri** *(string) --* **[REQUIRED]** Uniform Resource Identifier - This should be a path
        to a file accessible to the Live system (eg. a http:// URI) depending on the output type.
        For example, a RTMP destination should have a uri simliar to: "rtmp://fmsserver/live".

        - **Username** *(string) --* Documentation update needed

      - **NetworkId** *(string) --* Provides Network ID that matches EIDR ID format (e.g.,
      "10.XXXX/XXXX-XXXX-XXXX-XXXX-XXXX-C").

      - **State** *(string) --* When set to enabled, causes video, audio and captions to be blanked
      when indicated by program metadata.

    - **CaptionDescriptions** *(list) --* Settings for caption decriptions

      - *(dict) --* Caption Description

        - **CaptionSelectorName** *(string) --* **[REQUIRED]** Specifies which input caption
        selector to use as a caption source when generating output captions. This field should match
        a captionSelector name.

        - **DestinationSettings** *(dict) --* Additional settings for captions destination that
        depend on the destination type.

          - **AribDestinationSettings** *(dict) --* Arib Destination Settings

          - **BurnInDestinationSettings** *(dict) --* Burn In Destination Settings

            - **Alignment** *(string) --* If no explicit xPosition or yPosition is provided, setting
            alignment to centered will place the captions at the bottom center of the output.
            Similarly, setting a left alignment will align captions to the bottom left of the
            output. If x and y positions are given in conjunction with the alignment parameter, the
            font will be justified (either left or centered) relative to those coordinates.
            Selecting "smart" justification will left-justify live subtitles and center-justify
            pre-recorded subtitles. All burn-in and DVB-Sub font settings must match.

            - **BackgroundColor** *(string) --* Specifies the color of the rectangle behind the
            captions. All burn-in and DVB-Sub font settings must match.

            - **BackgroundOpacity** *(integer) --* Specifies the opacity of the background
            rectangle. 255 is opaque; 0 is transparent. Leaving this parameter out is equivalent to
            setting it to 0 (transparent). All burn-in and DVB-Sub font settings must match.

            - **Font** *(dict) --* External font file used for caption burn-in. File extension must
            be 'ttf' or 'tte'. Although the user can select output fonts for many different types of
            input captions, embedded, STL and teletext sources use a strict grid system. Using
            external fonts with these caption sources could cause unexpected display of proportional
            fonts. All burn-in and DVB-Sub font settings must match.

              - **PasswordParam** *(string) --* key used to extract the password from EC2 Parameter
              store

              - **Uri** *(string) --* **[REQUIRED]** Uniform Resource Identifier - This should be a
              path to a file accessible to the Live system (eg. a http:// URI) depending on the
              output type. For example, a RTMP destination should have a uri simliar to:
              "rtmp://fmsserver/live".

              - **Username** *(string) --* Documentation update needed

            - **FontColor** *(string) --* Specifies the color of the burned-in captions. This option
            is not valid for source captions that are STL, 608/embedded or teletext. These source
            settings are already pre-defined by the caption stream. All burn-in and DVB-Sub font
            settings must match.

            - **FontOpacity** *(integer) --* Specifies the opacity of the burned-in captions. 255 is
            opaque; 0 is transparent. All burn-in and DVB-Sub font settings must match.

            - **FontResolution** *(integer) --* Font resolution in DPI (dots per inch); default is
            96 dpi. All burn-in and DVB-Sub font settings must match.

            - **FontSize** *(string) --* When set to 'auto' fontSize will scale depending on the
            size of the output. Giving a positive integer will specify the exact font size in
            points. All burn-in and DVB-Sub font settings must match.

            - **OutlineColor** *(string) --* Specifies font outline color. This option is not valid
            for source captions that are either 608/embedded or teletext. These source settings are
            already pre-defined by the caption stream. All burn-in and DVB-Sub font settings must
            match.

            - **OutlineSize** *(integer) --* Specifies font outline size in pixels. This option is
            not valid for source captions that are either 608/embedded or teletext. These source
            settings are already pre-defined by the caption stream. All burn-in and DVB-Sub font
            settings must match.

            - **ShadowColor** *(string) --* Specifies the color of the shadow cast by the captions.
            All burn-in and DVB-Sub font settings must match.

            - **ShadowOpacity** *(integer) --* Specifies the opacity of the shadow. 255 is opaque; 0
            is transparent. Leaving this parameter out is equivalent to setting it to 0
            (transparent). All burn-in and DVB-Sub font settings must match.

            - **ShadowXOffset** *(integer) --* Specifies the horizontal offset of the shadow
            relative to the captions in pixels. A value of -2 would result in a shadow offset 2
            pixels to the left. All burn-in and DVB-Sub font settings must match.

            - **ShadowYOffset** *(integer) --* Specifies the vertical offset of the shadow relative
            to the captions in pixels. A value of -2 would result in a shadow offset 2 pixels above
            the text. All burn-in and DVB-Sub font settings must match.

            - **TeletextGridControl** *(string) --* Controls whether a fixed grid size will be used
            to generate the output subtitles bitmap. Only applicable for Teletext inputs and
            DVB-Sub/Burn-in outputs.

            - **XPosition** *(integer) --* Specifies the horizontal position of the caption relative
            to the left side of the output in pixels. A value of 10 would result in the captions
            starting 10 pixels from the left of the output. If no explicit xPosition is provided,
            the horizontal caption position will be determined by the alignment parameter. All
            burn-in and DVB-Sub font settings must match.

            - **YPosition** *(integer) --* Specifies the vertical position of the caption relative
            to the top of the output in pixels. A value of 10 would result in the captions starting
            10 pixels from the top of the output. If no explicit yPosition is provided, the caption
            will be positioned towards the bottom of the output. All burn-in and DVB-Sub font
            settings must match.

          - **DvbSubDestinationSettings** *(dict) --* Dvb Sub Destination Settings

            - **Alignment** *(string) --* If no explicit xPosition or yPosition is provided, setting
            alignment to centered will place the captions at the bottom center of the output.
            Similarly, setting a left alignment will align captions to the bottom left of the
            output. If x and y positions are given in conjunction with the alignment parameter, the
            font will be justified (either left or centered) relative to those coordinates.
            Selecting "smart" justification will left-justify live subtitles and center-justify
            pre-recorded subtitles. This option is not valid for source captions that are STL or
            608/embedded. These source settings are already pre-defined by the caption stream. All
            burn-in and DVB-Sub font settings must match.

            - **BackgroundColor** *(string) --* Specifies the color of the rectangle behind the
            captions. All burn-in and DVB-Sub font settings must match.

            - **BackgroundOpacity** *(integer) --* Specifies the opacity of the background
            rectangle. 255 is opaque; 0 is transparent. Leaving this parameter blank is equivalent
            to setting it to 0 (transparent). All burn-in and DVB-Sub font settings must match.

            - **Font** *(dict) --* External font file used for caption burn-in. File extension must
            be 'ttf' or 'tte'. Although the user can select output fonts for many different types of
            input captions, embedded, STL and teletext sources use a strict grid system. Using
            external fonts with these caption sources could cause unexpected display of proportional
            fonts. All burn-in and DVB-Sub font settings must match.

              - **PasswordParam** *(string) --* key used to extract the password from EC2 Parameter
              store

              - **Uri** *(string) --* **[REQUIRED]** Uniform Resource Identifier - This should be a
              path to a file accessible to the Live system (eg. a http:// URI) depending on the
              output type. For example, a RTMP destination should have a uri simliar to:
              "rtmp://fmsserver/live".

              - **Username** *(string) --* Documentation update needed

            - **FontColor** *(string) --* Specifies the color of the burned-in captions. This option
            is not valid for source captions that are STL, 608/embedded or teletext. These source
            settings are already pre-defined by the caption stream. All burn-in and DVB-Sub font
            settings must match.

            - **FontOpacity** *(integer) --* Specifies the opacity of the burned-in captions. 255 is
            opaque; 0 is transparent. All burn-in and DVB-Sub font settings must match.

            - **FontResolution** *(integer) --* Font resolution in DPI (dots per inch); default is
            96 dpi. All burn-in and DVB-Sub font settings must match.

            - **FontSize** *(string) --* When set to auto fontSize will scale depending on the size
            of the output. Giving a positive integer will specify the exact font size in points. All
            burn-in and DVB-Sub font settings must match.

            - **OutlineColor** *(string) --* Specifies font outline color. This option is not valid
            for source captions that are either 608/embedded or teletext. These source settings are
            already pre-defined by the caption stream. All burn-in and DVB-Sub font settings must
            match.

            - **OutlineSize** *(integer) --* Specifies font outline size in pixels. This option is
            not valid for source captions that are either 608/embedded or teletext. These source
            settings are already pre-defined by the caption stream. All burn-in and DVB-Sub font
            settings must match.

            - **ShadowColor** *(string) --* Specifies the color of the shadow cast by the captions.
            All burn-in and DVB-Sub font settings must match.

            - **ShadowOpacity** *(integer) --* Specifies the opacity of the shadow. 255 is opaque; 0
            is transparent. Leaving this parameter blank is equivalent to setting it to 0
            (transparent). All burn-in and DVB-Sub font settings must match.

            - **ShadowXOffset** *(integer) --* Specifies the horizontal offset of the shadow
            relative to the captions in pixels. A value of -2 would result in a shadow offset 2
            pixels to the left. All burn-in and DVB-Sub font settings must match.

            - **ShadowYOffset** *(integer) --* Specifies the vertical offset of the shadow relative
            to the captions in pixels. A value of -2 would result in a shadow offset 2 pixels above
            the text. All burn-in and DVB-Sub font settings must match.

            - **TeletextGridControl** *(string) --* Controls whether a fixed grid size will be used
            to generate the output subtitles bitmap. Only applicable for Teletext inputs and
            DVB-Sub/Burn-in outputs.

            - **XPosition** *(integer) --* Specifies the horizontal position of the caption relative
            to the left side of the output in pixels. A value of 10 would result in the captions
            starting 10 pixels from the left of the output. If no explicit xPosition is provided,
            the horizontal caption position will be determined by the alignment parameter. This
            option is not valid for source captions that are STL, 608/embedded or teletext. These
            source settings are already pre-defined by the caption stream. All burn-in and DVB-Sub
            font settings must match.

            - **YPosition** *(integer) --* Specifies the vertical position of the caption relative
            to the top of the output in pixels. A value of 10 would result in the captions starting
            10 pixels from the top of the output. If no explicit yPosition is provided, the caption
            will be positioned towards the bottom of the output. This option is not valid for source
            captions that are STL, 608/embedded or teletext. These source settings are already
            pre-defined by the caption stream. All burn-in and DVB-Sub font settings must match.

          - **EmbeddedDestinationSettings** *(dict) --* Embedded Destination Settings

          - **EmbeddedPlusScte20DestinationSettings** *(dict) --* Embedded Plus Scte20 Destination
          Settings

          - **RtmpCaptionInfoDestinationSettings** *(dict) --* Rtmp Caption Info Destination
          Settings

          - **Scte20PlusEmbeddedDestinationSettings** *(dict) --* Scte20 Plus Embedded Destination
          Settings

          - **Scte27DestinationSettings** *(dict) --* Scte27 Destination Settings

          - **SmpteTtDestinationSettings** *(dict) --* Smpte Tt Destination Settings

          - **TeletextDestinationSettings** *(dict) --* Teletext Destination Settings

          - **TtmlDestinationSettings** *(dict) --* Ttml Destination Settings

            - **StyleControl** *(string) --* When set to passthrough, passes through style and
            position information from a TTML-like input source (TTML, SMPTE-TT, CFF-TT) to the
            CFF-TT output or TTML output.

          - **WebvttDestinationSettings** *(dict) --* Webvtt Destination Settings

        - **LanguageCode** *(string) --* ISO 639-2 three-digit code:
        http://www.loc.gov/standards/iso639-2/

        - **LanguageDescription** *(string) --* Human readable information to indicate captions
        available for players (eg. English, or Spanish).

        - **Name** *(string) --* **[REQUIRED]** Name of the caption description. Used to associate a
        caption description with an output. Names must be unique within an event.

    - **GlobalConfiguration** *(dict) --* Configuration settings that apply to the event as a whole.

      - **InitialAudioGain** *(integer) --* Value to set the initial audio gain for the Live Event.

      - **InputEndAction** *(string) --* Indicates the action to take when the current input
      completes (e.g. end-of-file). When switchAndLoopInputs is configured the encoder will restart
      at the beginning of the first input. When "none" is configured the encoder will transcode
      either black, a solid color, or a user specified slate images per the "Input Loss Behavior"
      configuration until the next input switch occurs (which is controlled through the Channel
      Schedule API).

      - **InputLossBehavior** *(dict) --* Settings for system actions when input is lost.

        - **BlackFrameMsec** *(integer) --* Documentation update needed

        - **InputLossImageColor** *(string) --* When input loss image type is "color" this field
        specifies the color to use. Value: 6 hex characters representing the values of RGB.

        - **InputLossImageSlate** *(dict) --* When input loss image type is "slate" these fields
        specify the parameters for accessing the slate.

          - **PasswordParam** *(string) --* key used to extract the password from EC2 Parameter
          store

          - **Uri** *(string) --* **[REQUIRED]** Uniform Resource Identifier - This should be a path
          to a file accessible to the Live system (eg. a http:// URI) depending on the output type.
          For example, a RTMP destination should have a uri simliar to: "rtmp://fmsserver/live".

          - **Username** *(string) --* Documentation update needed

        - **InputLossImageType** *(string) --* Indicates whether to substitute a solid color or a
        slate into the output after input loss exceeds blackFrameMsec.

        - **RepeatFrameMsec** *(integer) --* Documentation update needed

      - **OutputLockingMode** *(string) --* Indicates how MediaLive pipelines are synchronized.
      PIPELINELOCKING - MediaLive will attempt to synchronize the output of each pipeline to the
      other. EPOCHLOCKING - MediaLive will attempt to synchronize the output of each pipeline to the
      Unix epoch.

      - **OutputTimingSource** *(string) --* Indicates whether the rate of frames emitted by the
      Live encoder should be paced by its system clock (which optionally may be locked to another
      source via NTP) or should be locked to the clock of the source that is providing the input
      stream.

      - **SupportLowFramerateInputs** *(string) --* Adjusts video input buffer for streams with very
      low video framerates. This is commonly set to enabled for music channels with less than one
      video frame per second.

    - **NielsenConfiguration** *(dict) --* Nielsen configuration settings.

      - **DistributorId** *(string) --* Enter the Distributor ID assigned to your organization by
      Nielsen.

      - **NielsenPcmToId3Tagging** *(string) --* Enables Nielsen PCM to ID3 tagging

    - **OutputGroups** *(list) --* **[REQUIRED]** Placeholder documentation for __listOfOutputGroup

      - *(dict) --* Output groups for this Live Event. Output groups contain information about where
      streams should be distributed.

        - **Name** *(string) --* Custom output group name optionally defined by the user. Only
        letters, numbers, and the underscore character allowed; only 32 characters allowed.

        - **OutputGroupSettings** *(dict) --* **[REQUIRED]** Settings associated with the output
        group.

          - **ArchiveGroupSettings** *(dict) --* Archive Group Settings

            - **Destination** *(dict) --* **[REQUIRED]** A directory and base filename where archive
            files should be written.

              - **DestinationRefId** *(string) --* Placeholder documentation for __string

            - **RolloverInterval** *(integer) --* Number of seconds to write to archive file before
            closing and starting a new one.

          - **FrameCaptureGroupSettings** *(dict) --* Frame Capture Group Settings

            - **Destination** *(dict) --* **[REQUIRED]** The destination for the frame capture
            files. Either the URI for an Amazon S3 bucket and object, plus a file name prefix (for
            example, s3ssl://sportsDelivery/highlights/20180820/curling_) or the URI for a
            MediaStore container, plus a file name prefix (for example,
            mediastoressl://sportsDelivery/20180820/curling_). The final file names consist of the
            prefix from the destination field (for example, "curling_") + name modifier + the
            counter (5 digits, starting from 00001) + extension (which is always .jpg). For example,
            curlingLow.00001.jpg

              - **DestinationRefId** *(string) --* Placeholder documentation for __string

          - **HlsGroupSettings** *(dict) --* Hls Group Settings

            - **AdMarkers** *(list) --* Choose one or more ad marker types to pass SCTE35 signals
            through to this group of Apple HLS outputs.

              - *(string) --* Hls Ad Markers

            - **BaseUrlContent** *(string) --* A partial URI prefix that will be prepended to each
            output in the media .m3u8 file. Can be used if base manifest is delivered from a
            different URL than the main .m3u8 file.

            - **BaseUrlManifest** *(string) --* A partial URI prefix that will be prepended to each
            output in the media .m3u8 file. Can be used if base manifest is delivered from a
            different URL than the main .m3u8 file.

            - **CaptionLanguageMappings** *(list) --* Mapping of up to 4 caption channels to caption
            languages. Is only meaningful if captionLanguageSetting is set to "insert".

              - *(dict) --* Maps a caption channel to an ISO 693-2 language code
              (http://www.loc.gov/standards/iso639-2), with an optional description.

                - **CaptionChannel** *(integer) --* **[REQUIRED]** The closed caption channel being
                described by this CaptionLanguageMapping. Each channel mapping must have a unique
                channel number (maximum of 4)

                - **LanguageCode** *(string) --* **[REQUIRED]** Three character ISO 639-2 language
                code (see http://www.loc.gov/standards/iso639-2)

                - **LanguageDescription** *(string) --* **[REQUIRED]** Textual description of
                language

            - **CaptionLanguageSetting** *(string) --* Applies only to 608 Embedded output captions.
            insert: Include CLOSED-CAPTIONS lines in the manifest. Specify at least one language in
            the CC1 Language Code field. One CLOSED-CAPTION line is added for each Language Code you
            specify. Make sure to specify the languages in the order in which they appear in the
            original source (if the source is embedded format) or the order of the caption selectors
            (if the source is other than embedded). Otherwise, languages in the manifest will not
            match up properly with the output captions. none: Include CLOSED-CAPTIONS=
                NONE line in
            the manifest. omit: Omit any CLOSED-CAPTIONS line from the manifest.

            - **ClientCache** *(string) --* When set to "disabled", sets the #EXT-X-ALLOW-CACHE:no
            tag in the manifest, which prevents clients from saving media segments for later replay.

            - **CodecSpecification** *(string) --* Specification to use (RFC-6381 or the default
            RFC-4281) during m3u8 playlist generation.

            - **ConstantIv** *(string) --* For use with encryptionType. This is a 128-bit, 16-byte
            hex value represented by a 32-character text string. If ivSource is set to "explicit"
            then this parameter is required and is used as the IV for encryption.

            - **Destination** *(dict) --* **[REQUIRED]** A directory or HTTP destination for the HLS
            segments, manifest files, and encryption keys (if enabled).

              - **DestinationRefId** *(string) --* Placeholder documentation for __string

            - **DirectoryStructure** *(string) --* Place segments in subdirectories.

            - **EncryptionType** *(string) --* Encrypts the segments with the given encryption
            scheme. Exclude this parameter if no encryption is desired.

            - **HlsCdnSettings** *(dict) --* Parameters that control interactions with the CDN.

              - **HlsAkamaiSettings** *(dict) --* Hls Akamai Settings

                - **ConnectionRetryInterval** *(integer) --* Number of seconds to wait before
                retrying connection to the CDN if the connection is lost.

                - **FilecacheDuration** *(integer) --* Size in seconds of file cache for streaming
                outputs.

                - **HttpTransferMode** *(string) --* Specify whether or not to use chunked transfer
                encoding to Akamai. User should contact Akamai to enable this feature.

                - **NumRetries** *(integer) --* Number of retry attempts that will be made before
                the Live Event is put into an error state.

                - **RestartDelay** *(integer) --* If a streaming output fails, number of seconds to
                wait until a restart is initiated. A value of 0 means never restart.

                - **Salt** *(string) --* Salt for authenticated Akamai.

                - **Token** *(string) --* Token parameter for authenticated akamai. If not
                specified, _gda_ is used.

              - **HlsBasicPutSettings** *(dict) --* Hls Basic Put Settings

                - **ConnectionRetryInterval** *(integer) --* Number of seconds to wait before
                retrying connection to the CDN if the connection is lost.

                - **FilecacheDuration** *(integer) --* Size in seconds of file cache for streaming
                outputs.

                - **NumRetries** *(integer) --* Number of retry attempts that will be made before
                the Live Event is put into an error state.

                - **RestartDelay** *(integer) --* If a streaming output fails, number of seconds to
                wait until a restart is initiated. A value of 0 means never restart.

              - **HlsMediaStoreSettings** *(dict) --* Hls Media Store Settings

                - **ConnectionRetryInterval** *(integer) --* Number of seconds to wait before
                retrying connection to the CDN if the connection is lost.

                - **FilecacheDuration** *(integer) --* Size in seconds of file cache for streaming
                outputs.

                - **MediaStoreStorageClass** *(string) --* When set to temporal, output files are
                stored in non-persistent memory for faster reading and writing.

                - **NumRetries** *(integer) --* Number of retry attempts that will be made before
                the Live Event is put into an error state.

                - **RestartDelay** *(integer) --* If a streaming output fails, number of seconds to
                wait until a restart is initiated. A value of 0 means never restart.

              - **HlsWebdavSettings** *(dict) --* Hls Webdav Settings

                - **ConnectionRetryInterval** *(integer) --* Number of seconds to wait before
                retrying connection to the CDN if the connection is lost.

                - **FilecacheDuration** *(integer) --* Size in seconds of file cache for streaming
                outputs.

                - **HttpTransferMode** *(string) --* Specify whether or not to use chunked transfer
                encoding to WebDAV.

                - **NumRetries** *(integer) --* Number of retry attempts that will be made before
                the Live Event is put into an error state.

                - **RestartDelay** *(integer) --* If a streaming output fails, number of seconds to
                wait until a restart is initiated. A value of 0 means never restart.

            - **IFrameOnlyPlaylists** *(string) --* DISABLED: Do not create an I-frame-only
            manifest, but do create the master and media manifests (according to the Output
            Selection field). STANDARD: Create an I-frame-only manifest for each output that
            contains video, as well as the other manifests (according to the Output Selection
            field). The I-frame manifest contains a #EXT-X-I-FRAMES-ONLY tag to indicate it is
            I-frame only, and one or more #EXT-X-BYTERANGE entries identifying the I-frame position.
            For example, #EXT-X-BYTERANGE:160364@1461888"

            - **IndexNSegments** *(integer) --* Applies only if Mode field is LIVE. Specifies the
            maximum number of segments in the media manifest file. After this maximum, older
            segments are removed from the media manifest. This number must be less than or equal to
            the Keep Segments field.

            - **InputLossAction** *(string) --* Parameter that control output group behavior on
            input loss.

            - **IvInManifest** *(string) --* For use with encryptionType. The IV (Initialization
            Vector) is a 128-bit number used in conjunction with the key for encrypting blocks. If
            set to "include", IV is listed in the manifest, otherwise the IV is not in the manifest.

            - **IvSource** *(string) --* For use with encryptionType. The IV (Initialization Vector)
            is a 128-bit number used in conjunction with the key for encrypting blocks. If this
            setting is "followsSegmentNumber", it will cause the IV to change every segment (to
            match the segment number). If this is set to "explicit", you must enter a constantIv
            value.

            - **KeepSegments** *(integer) --* Applies only if Mode field is LIVE. Specifies the
            number of media segments (.ts files) to retain in the destination directory.

            - **KeyFormat** *(string) --* The value specifies how the key is represented in the
            resource identified by the URI. If parameter is absent, an implicit value of "identity"
            is used. A reverse DNS string can also be given.

            - **KeyFormatVersions** *(string) --* Either a single positive integer version value or
            a slash delimited list of version values (1/2/3).

            - **KeyProviderSettings** *(dict) --* The key provider settings.

              - **StaticKeySettings** *(dict) --* Static Key Settings

                - **KeyProviderServer** *(dict) --* The URL of the license server used for
                protecting content.

                  - **PasswordParam** *(string) --* key used to extract the password from EC2
                  Parameter store

                  - **Uri** *(string) --* **[REQUIRED]** Uniform Resource Identifier - This should
                  be a path to a file accessible to the Live system (eg. a http:// URI) depending on
                  the output type. For example, a RTMP destination should have a uri simliar to:
                  "rtmp://fmsserver/live".

                  - **Username** *(string) --* Documentation update needed

                - **StaticKeyValue** *(string) --* **[REQUIRED]** Static key value as a 32 character
                hexadecimal string.

            - **ManifestCompression** *(string) --* When set to gzip, compresses HLS playlist.

            - **ManifestDurationFormat** *(string) --* Indicates whether the output manifest should
            use floating point or integer values for segment duration.

            - **MinSegmentLength** *(integer) --* When set, minimumSegmentLength is enforced by
            looking ahead and back within the specified range for a nearby avail and extending the
            segment size if needed.

            - **Mode** *(string) --* If "vod", all segments are indexed and kept permanently in the
            destination and manifest. If "live", only the number segments specified in keepSegments
            and indexNSegments are kept; newer segments replace older segments, which may prevent
            players from rewinding all the way to the beginning of the event. VOD mode uses HLS
            EXT-X-PLAYLIST-TYPE of EVENT while the channel is running, converting it to a "VOD" type
            manifest on completion of the stream.

            - **OutputSelection** *(string) --* MANIFESTSANDSEGMENTS: Generates manifests (master
            manifest, if applicable, and media manifests) for this output group. SEGMENTSONLY: Does
            not generate any manifests for this output group.

            - **ProgramDateTime** *(string) --* Includes or excludes EXT-X-PROGRAM-DATE-TIME tag in
            .m3u8 manifest files. The value is calculated as follows: either the program date and
            time are initialized using the input timecode source, or the time is initialized using
            the input timecode source and the date is initialized using the timestampOffset.

            - **ProgramDateTimePeriod** *(integer) --* Period of insertion of
            EXT-X-PROGRAM-DATE-TIME entry, in seconds.

            - **RedundantManifest** *(string) --* ENABLED: The master manifest (.m3u8 file) for each
            pipeline includes information about both pipelines: first its own media files, then the
            media files of the other pipeline. This feature allows playout device that support stale
            manifest detection to switch from one manifest to the other, when the current manifest
            seems to be stale. There are still two destinations and two master manifests, but both
            master manifests reference the media files from both pipelines. DISABLED: The master
            manifest (.m3u8 file) for each pipeline includes information about its own pipeline
            only. For an HLS output group with MediaPackage as the destination, the DISABLED
            behavior is always followed. MediaPackage regenerates the manifests it serves to players
            so a redundant manifest from MediaLive is irrelevant.

            - **SegmentLength** *(integer) --* Length of MPEG-2 Transport Stream segments to create
            (in seconds). Note that segments will end on the next keyframe after this number of
            seconds, so actual segment length may be longer.

            - **SegmentationMode** *(string) --* useInputSegmentation has been deprecated. The
            configured segment size is always used.

            - **SegmentsPerSubdirectory** *(integer) --* Number of segments to write to a
            subdirectory before starting a new one. directoryStructure must be subdirectoryPerStream
            for this setting to have an effect.

            - **StreamInfResolution** *(string) --* Include or exclude RESOLUTION attribute for
            video in EXT-X-STREAM-INF tag of variant manifest.

            - **TimedMetadataId3Frame** *(string) --* Indicates ID3 frame that has the timecode.

            - **TimedMetadataId3Period** *(integer) --* Timed Metadata interval in seconds.

            - **TimestampDeltaMilliseconds** *(integer) --* Provides an extra millisecond delta
            offset to fine tune the timestamps.

            - **TsFileMode** *(string) --* SEGMENTEDFILES: Emit the program as segments - multiple
            .ts media files. SINGLEFILE: Applies only if Mode field is VOD. Emit the program as a
            single .ts media file. The media manifest includes #EXT-X-BYTERANGE tags to index
            segments for playback. A typical use for this value is when sending the output to AWS
            Elemental MediaConvert, which can accept only a single media file. Playback while the
            channel is running is not guaranteed due to HTTP server caching.

          - **MediaPackageGroupSettings** *(dict) --* Media Package Group Settings

            - **Destination** *(dict) --* **[REQUIRED]** MediaPackage channel destination.

              - **DestinationRefId** *(string) --* Placeholder documentation for __string

          - **MsSmoothGroupSettings** *(dict) --* Ms Smooth Group Settings

            - **AcquisitionPointId** *(string) --* The value of the "Acquisition Point Identity"
            element used in each message placed in the sparse track. Only enabled if sparseTrackType
            is not "none".

            - **AudioOnlyTimecodeControl** *(string) --* If set to passthrough for an audio-only MS
            Smooth output, the fragment absolute time will be set to the current timecode. This
            option does not write timecodes to the audio elementary stream.

            - **CertificateMode** *(string) --* If set to verifyAuthenticity, verify the https
            certificate chain to a trusted Certificate Authority (CA). This will cause https outputs
            to self-signed certificates to fail.

            - **ConnectionRetryInterval** *(integer) --* Number of seconds to wait before retrying
            connection to the IIS server if the connection is lost. Content will be cached during
            this time and the cache will be be delivered to the IIS server once the connection is
            re-established.

            - **Destination** *(dict) --* **[REQUIRED]** Smooth Streaming publish point on an IIS
            server. Elemental Live acts as a "Push" encoder to IIS.

              - **DestinationRefId** *(string) --* Placeholder documentation for __string

            - **EventId** *(string) --* MS Smooth event ID to be sent to the IIS server. Should only
            be specified if eventIdMode is set to useConfigured.

            - **EventIdMode** *(string) --* Specifies whether or not to send an event ID to the IIS
            server. If no event ID is sent and the same Live Event is used without changing the
            publishing point, clients might see cached video from the previous run. Options: -
            "useConfigured" - use the value provided in eventId - "useTimestamp" - generate and send
            an event ID based on the current timestamp - "noEventId" - do not send an event ID to
            the IIS server.

            - **EventStopBehavior** *(string) --* When set to sendEos, send EOS signal to IIS server
            when stopping the event

            - **FilecacheDuration** *(integer) --* Size in seconds of file cache for streaming
            outputs.

            - **FragmentLength** *(integer) --* Length of mp4 fragments to generate (in seconds).
            Fragment length must be compatible with GOP size and framerate.

            - **InputLossAction** *(string) --* Parameter that control output group behavior on
            input loss.

            - **NumRetries** *(integer) --* Number of retry attempts.

            - **RestartDelay** *(integer) --* Number of seconds before initiating a restart due to
            output failure, due to exhausting the numRetries on one segment, or exceeding
            filecacheDuration.

            - **SegmentationMode** *(string) --* useInputSegmentation has been deprecated. The
            configured segment size is always used.

            - **SendDelayMs** *(integer) --* Number of milliseconds to delay the output from the
            second pipeline.

            - **SparseTrackType** *(string) --* If set to scte35, use incoming SCTE-35 messages to
            generate a sparse track in this group of MS-Smooth outputs.

            - **StreamManifestBehavior** *(string) --* When set to send, send stream manifest so
            publishing point doesn't start until all streams start.

            - **TimestampOffset** *(string) --* Timestamp offset for the event. Only used if
            timestampOffsetMode is set to useConfiguredOffset.

            - **TimestampOffsetMode** *(string) --* Type of timestamp date offset to use. -
            useEventStartDate: Use the date the event was started as the offset -
            useConfiguredOffset: Use an explicitly configured date as the offset

          - **MultiplexGroupSettings** *(dict) --* Multiplex Group Settings

          - **RtmpGroupSettings** *(dict) --* Rtmp Group Settings

            - **AuthenticationScheme** *(string) --* Authentication scheme to use when connecting
            with CDN

            - **CacheFullBehavior** *(string) --* Controls behavior when content cache fills up. If
            remote origin server stalls the RTMP connection and does not accept content fast enough
            the 'Media Cache' will fill up. When the cache reaches the duration specified by
            cacheLength the cache will stop accepting new content. If set to disconnectImmediately,
            the RTMP output will force a disconnect. Clear the media cache, and reconnect after
            restartDelay seconds. If set to waitForServer, the RTMP output will wait up to 5 minutes
            to allow the origin server to begin accepting data again.

            - **CacheLength** *(integer) --* Cache length, in seconds, is used to calculate buffer
            size.

            - **CaptionData** *(string) --* Controls the types of data that passes to onCaptionInfo
            outputs. If set to 'all' then 608 and 708 carried DTVCC data will be passed. If set to
            'field1AndField2608' then DTVCC data will be stripped out, but 608 data from both fields
            will be passed. If set to 'field1608' then only the data carried in 608 from field 1
            video will be passed.

            - **InputLossAction** *(string) --* Controls the behavior of this RTMP group if input
            becomes unavailable. - emitOutput: Emit a slate until input returns. - pauseOutput: Stop
            transmitting data until input returns. This does not close the underlying RTMP
            connection.

            - **RestartDelay** *(integer) --* If a streaming output fails, number of seconds to wait
            until a restart is initiated. A value of 0 means never restart.

          - **UdpGroupSettings** *(dict) --* Udp Group Settings

            - **InputLossAction** *(string) --* Specifies behavior of last resort when input video
            is lost, and no more backup inputs are available. When dropTs is selected the entire
            transport stream will stop being emitted. When dropProgram is selected the program can
            be dropped from the transport stream (and replaced with null packets to meet the TS
            bitrate requirement). Or, when emitProgram is chosen the transport stream will continue
            to be produced normally with repeat frames, black frames, or slate frames substituted
            for the absent input video.

            - **TimedMetadataId3Frame** *(string) --* Indicates ID3 frame that has the timecode.

            - **TimedMetadataId3Period** *(integer) --* Timed Metadata interval in seconds.

        - **Outputs** *(list) --* **[REQUIRED]** Placeholder documentation for __listOfOutput

          - *(dict) --* Output settings. There can be multiple outputs within a group.

            - **AudioDescriptionNames** *(list) --* The names of the AudioDescriptions used as audio
            sources for this output.

              - *(string) --* Placeholder documentation for __string

            - **CaptionDescriptionNames** *(list) --* The names of the CaptionDescriptions used as
            caption sources for this output.

              - *(string) --* Placeholder documentation for __string

            - **OutputName** *(string) --* The name used to identify an output.

            - **OutputSettings** *(dict) --* **[REQUIRED]** Output type-specific settings.

              - **ArchiveOutputSettings** *(dict) --* Archive Output Settings

                - **ContainerSettings** *(dict) --* **[REQUIRED]** Settings specific to the
                container type of the file.

                  - **M2tsSettings** *(dict) --* M2ts Settings

                    - **AbsentInputAudioBehavior** *(string) --* When set to drop, output audio
                    streams will be removed from the program if the selected input audio stream is
                    removed from the input. This allows the output audio configuration to
                    dynamically change based on input configuration. If this is set to
                    encodeSilence, all output audio streams will output encoded silence when not
                    connected to an active input stream.

                    - **Arib** *(string) --* When set to enabled, uses ARIB-compliant field muxing
                    and removes video descriptor.

                    - **AribCaptionsPid** *(string) --* Packet Identifier (PID) for ARIB Captions in
                    the transport stream. Can be entered as a decimal or hexadecimal value. Valid
                    values are 32 (or 0x20)..8182 (or 0x1ff6).

                    - **AribCaptionsPidControl** *(string) --* If set to auto, pid number used for
                    ARIB Captions will be auto-selected from unused pids. If set to useConfigured,
                    ARIB Captions will be on the configured pid number.

                    - **AudioBufferModel** *(string) --* When set to dvb, uses DVB buffer model for
                    Dolby Digital audio. When set to atsc, the ATSC model is used.

                    - **AudioFramesPerPes** *(integer) --* The number of audio frames to insert for
                    each PES packet.

                    - **AudioPids** *(string) --* Packet Identifier (PID) of the elementary audio
                    stream(s) in the transport stream. Multiple values are accepted, and can be
                    entered in ranges and/or by comma separation. Can be entered as decimal or
                    hexadecimal values. Each PID specified must be in the range of 32 (or
                    0x20)..8182 (or 0x1ff6).

                    - **AudioStreamType** *(string) --* When set to atsc, uses stream type = 0x81
                    for AC3 and stream type =
                         0x87 for EAC3. When set to dvb, uses stream type =
                    0x06.

                    - **Bitrate** *(integer) --* The output bitrate of the transport stream in bits
                    per second. Setting to 0 lets the muxer automatically determine the appropriate
                    bitrate.

                    - **BufferModel** *(string) --* If set to multiplex, use multiplex buffer model
                    for accurate interleaving. Setting to bufferModel to none can lead to lower
                    latency, but low-memory devices may not be able to play back the stream without
                    interruptions.

                    - **CcDescriptor** *(string) --* When set to enabled, generates
                    captionServiceDescriptor in PMT.

                    - **DvbNitSettings** *(dict) --* Inserts DVB Network Information Table (NIT) at
                    the specified table repetition interval.

                      - **NetworkId** *(integer) --* **[REQUIRED]** The numeric value placed in the
                      Network Information Table (NIT).

                      - **NetworkName** *(string) --* **[REQUIRED]** The network name text placed in
                      the networkNameDescriptor inside the Network Information Table. Maximum length
                      is 256 characters.

                      - **RepInterval** *(integer) --* The number of milliseconds between instances
                      of this table in the output transport stream.

                    - **DvbSdtSettings** *(dict) --* Inserts DVB Service Description Table (SDT) at
                    the specified table repetition interval.

                      - **OutputSdt** *(string) --* Selects method of inserting SDT information into
                      output stream. The sdtFollow setting copies SDT information from input stream
                      to output stream. The sdtFollowIfPresent setting copies SDT information from
                      input stream to output stream if SDT information is present in the input,
                      otherwise it will fall back on the user-defined values. The sdtManual setting
                      means user will enter the SDT information. The sdtNone setting means output
                      stream will not contain SDT information.

                      - **RepInterval** *(integer) --* The number of milliseconds between instances
                      of this table in the output transport stream.

                      - **ServiceName** *(string) --* The service name placed in the
                      serviceDescriptor in the Service Description Table. Maximum length is 256
                      characters.

                      - **ServiceProviderName** *(string) --* The service provider name placed in
                      the serviceDescriptor in the Service Description Table. Maximum length is 256
                      characters.

                    - **DvbSubPids** *(string) --* Packet Identifier (PID) for input source DVB
                    Subtitle data to this output. Multiple values are accepted, and can be entered
                    in ranges and/or by comma separation. Can be entered as decimal or hexadecimal
                    values. Each PID specified must be in the range of 32 (or 0x20)..8182 (or
                    0x1ff6).

                    - **DvbTdtSettings** *(dict) --* Inserts DVB Time and Date Table (TDT) at the
                    specified table repetition interval.

                      - **RepInterval** *(integer) --* The number of milliseconds between instances
                      of this table in the output transport stream.

                    - **DvbTeletextPid** *(string) --* Packet Identifier (PID) for input source DVB
                    Teletext data to this output. Can be entered as a decimal or hexadecimal value.
                    Valid values are 32 (or 0x20)..8182 (or 0x1ff6).

                    - **Ebif** *(string) --* If set to passthrough, passes any EBIF data from the
                    input source to this output.

                    - **EbpAudioInterval** *(string) --* When videoAndFixedIntervals is selected,
                    audio EBP markers will be added to partitions 3 and 4. The interval between
                    these additional markers will be fixed, and will be slightly shorter than the
                    video EBP marker interval. Only available when EBP Cablelabs segmentation
                    markers are selected. Partitions 1 and 2 will always follow the video interval.

                    - **EbpLookaheadMs** *(integer) --* When set, enforces that Encoder Boundary
                    Points do not come within the specified time interval of each other by looking
                    ahead at input video. If another EBP is going to come in within the specified
                    time interval, the current EBP is not emitted, and the segment is "stretched" to
                    the next marker. The lookahead value does not add latency to the system. The
                    Live Event must be configured elsewhere to create sufficient latency to make the
                    lookahead accurate.

                    - **EbpPlacement** *(string) --* Controls placement of EBP on Audio PIDs. If set
                    to videoAndAudioPids, EBP markers will be placed on the video PID and all audio
                    PIDs. If set to videoPid, EBP markers will be placed on only the video PID.

                    - **EcmPid** *(string) --* This field is unused and deprecated.

                    - **EsRateInPes** *(string) --* Include or exclude the ES Rate field in the PES
                    header.

                    - **EtvPlatformPid** *(string) --* Packet Identifier (PID) for input source ETV
                    Platform data to this output. Can be entered as a decimal or hexadecimal value.
                    Valid values are 32 (or 0x20)..8182 (or 0x1ff6).

                    - **EtvSignalPid** *(string) --* Packet Identifier (PID) for input source ETV
                    Signal data to this output. Can be entered as a decimal or hexadecimal value.
                    Valid values are 32 (or 0x20)..8182 (or 0x1ff6).

                    - **FragmentTime** *(float) --* The length in seconds of each fragment. Only
                    used with EBP markers.

                    - **Klv** *(string) --* If set to passthrough, passes any KLV data from the
                    input source to this output.

                    - **KlvDataPids** *(string) --* Packet Identifier (PID) for input source KLV
                    data to this output. Multiple values are accepted, and can be entered in ranges
                    and/or by comma separation. Can be entered as decimal or hexadecimal values.
                    Each PID specified must be in the range of 32 (or 0x20)..8182 (or 0x1ff6).

                    - **NielsenId3Behavior** *(string) --* If set to passthrough, Nielsen inaudible
                    tones for media tracking will be detected in the input audio and an equivalent
                    ID3 tag will be inserted in the output.

                    - **NullPacketBitrate** *(float) --* Value in bits per second of extra null
                    packets to insert into the transport stream. This can be used if a downstream
                    encryption system requires periodic null packets.

                    - **PatInterval** *(integer) --* The number of milliseconds between instances of
                    this table in the output transport stream. Valid values are 0, 10..1000.

                    - **PcrControl** *(string) --* When set to pcrEveryPesPacket, a Program Clock
                    Reference value is inserted for every Packetized Elementary Stream (PES) header.
                    This parameter is effective only when the PCR PID is the same as the video or
                    audio elementary stream.

                    - **PcrPeriod** *(integer) --* Maximum time in milliseconds between Program
                    Clock Reference (PCRs) inserted into the transport stream.

                    - **PcrPid** *(string) --* Packet Identifier (PID) of the Program Clock
                    Reference (PCR) in the transport stream. When no value is given, the encoder
                    will assign the same value as the Video PID. Can be entered as a decimal or
                    hexadecimal value. Valid values are 32 (or 0x20)..8182 (or 0x1ff6).

                    - **PmtInterval** *(integer) --* The number of milliseconds between instances of
                    this table in the output transport stream. Valid values are 0, 10..1000.

                    - **PmtPid** *(string) --* Packet Identifier (PID) for the Program Map Table
                    (PMT) in the transport stream. Can be entered as a decimal or hexadecimal value.
                    Valid values are 32 (or 0x20)..8182 (or 0x1ff6).

                    - **ProgramNum** *(integer) --* The value of the program number field in the
                    Program Map Table.

                    - **RateMode** *(string) --* When vbr, does not insert null packets into
                    transport stream to fill specified bitrate. The bitrate setting acts as the
                    maximum bitrate when vbr is set.

                    - **Scte27Pids** *(string) --* Packet Identifier (PID) for input source SCTE-27
                    data to this output. Multiple values are accepted, and can be entered in ranges
                    and/or by comma separation. Can be entered as decimal or hexadecimal values.
                    Each PID specified must be in the range of 32 (or 0x20)..8182 (or 0x1ff6).

                    - **Scte35Control** *(string) --* Optionally pass SCTE-35 signals from the input
                    source to this output.

                    - **Scte35Pid** *(string) --* Packet Identifier (PID) of the SCTE-35 stream in
                    the transport stream. Can be entered as a decimal or hexadecimal value. Valid
                    values are 32 (or 0x20)..8182 (or 0x1ff6).

                    - **SegmentationMarkers** *(string) --* Inserts segmentation markers at each
                    segmentationTime period. raiSegstart sets the Random Access Indicator bit in the
                    adaptation field. raiAdapt sets the RAI bit and adds the current timecode in the
                    private data bytes. psiSegstart inserts PAT and PMT tables at the start of
                    segments. ebp adds Encoder Boundary Point information to the adaptation field as
                    per OpenCable specification OC-SP-EBP-I01-130118. ebpLegacy adds Encoder
                    Boundary Point information to the adaptation field using a legacy proprietary
                    format.

                    - **SegmentationStyle** *(string) --* The segmentation style parameter controls
                    how segmentation markers are inserted into the transport stream. With avails, it
                    is possible that segments may be truncated, which can influence where future
                    segmentation markers are inserted. When a segmentation style of "resetCadence"
                    is selected and a segment is truncated due to an avail, we will reset the
                    segmentation cadence. This means the subsequent segment will have a duration of
                    $segmentationTime seconds. When a segmentation style of "maintainCadence" is
                    selected and a segment is truncated due to an avail, we will not reset the
                    segmentation cadence. This means the subsequent segment will likely be truncated
                    as well. However, all segments after that will have a duration of
                    $segmentationTime seconds. Note that EBP lookahead is a slight exception to this
                    rule.

                    - **SegmentationTime** *(float) --* The length in seconds of each segment.
                    Required unless markers is set to None_.

                    - **TimedMetadataBehavior** *(string) --* When set to passthrough, timed
                    metadata will be passed through from input to output.

                    - **TimedMetadataPid** *(string) --* Packet Identifier (PID) of the timed
                    metadata stream in the transport stream. Can be entered as a decimal or
                    hexadecimal value. Valid values are 32 (or 0x20)..8182 (or 0x1ff6).

                    - **TransportStreamId** *(integer) --* The value of the transport stream ID
                    field in the Program Map Table.

                    - **VideoPid** *(string) --* Packet Identifier (PID) of the elementary video
                    stream in the transport stream. Can be entered as a decimal or hexadecimal
                    value. Valid values are 32 (or 0x20)..8182 (or 0x1ff6).

                - **Extension** *(string) --* Output file extension. If excluded, this will be
                auto-selected from the container type.

                - **NameModifier** *(string) --* String concatenated to the end of the destination
                filename. Required for multiple outputs of the same type.

              - **FrameCaptureOutputSettings** *(dict) --* Frame Capture Output Settings

                - **NameModifier** *(string) --* Required if the output group contains more than one
                output. This modifier forms part of the output file name.

              - **HlsOutputSettings** *(dict) --* Hls Output Settings

                - **HlsSettings** *(dict) --* **[REQUIRED]** Settings regarding the underlying
                stream. These settings are different for audio-only outputs.

                  - **AudioOnlyHlsSettings** *(dict) --* Audio Only Hls Settings

                    - **AudioGroupId** *(string) --* Specifies the group to which the audio
                    Rendition belongs.

                    - **AudioOnlyImage** *(dict) --* Optional. Specifies the .jpg or .png image to
                    use as the cover art for an audio-only output. We recommend a low bit-size file
                    because the image increases the output audio bandwidth. The image is attached to
                    the audio as an ID3 tag, frame type APIC, picture type 0x10, as per the "ID3 tag
                    version 2.4.0 - Native Frames" standard.

                      - **PasswordParam** *(string) --* key used to extract the password from EC2
                      Parameter store

                      - **Uri** *(string) --* **[REQUIRED]** Uniform Resource Identifier - This
                      should be a path to a file accessible to the Live system (eg. a http:// URI)
                      depending on the output type. For example, a RTMP destination should have a
                      uri simliar to: "rtmp://fmsserver/live".

                      - **Username** *(string) --* Documentation update needed

                    - **AudioTrackType** *(string) --* Four types of audio-only tracks are
                    supported: Audio-Only Variant Stream The client can play back this audio-only
                    stream instead of video in low-bandwidth scenarios. Represented as an
                    EXT-X-STREAM-INF in the HLS manifest. Alternate Audio, Auto Select, Default
                    Alternate rendition that the client should try to play back by default.
                    Represented as an EXT-X-MEDIA in the HLS manifest with DEFAULT=
                        YES,
                    AUTOSELECT=
                        YES Alternate Audio, Auto Select, Not Default Alternate rendition
                    that the client may try to play back by default. Represented as an EXT-X-MEDIA
                    in the HLS manifest with DEFAULT=NO, AUTOSELECT=
                        YES Alternate Audio, not Auto
                    Select Alternate rendition that the client will not try to play back by default.
                    Represented as an EXT-X-MEDIA in the HLS manifest with DEFAULT=
                        NO, AUTOSELECT=NO

                  - **StandardHlsSettings** *(dict) --* Standard Hls Settings

                    - **AudioRenditionSets** *(string) --* List all the audio groups that are used
                    with the video output stream. Input all the audio GROUP-IDs that are associated
                    to the video, separate by ','.

                    - **M3u8Settings** *(dict) --* **[REQUIRED]** Settings information for the .m3u8
                    container

                      - **AudioFramesPerPes** *(integer) --* The number of audio frames to insert
                      for each PES packet.

                      - **AudioPids** *(string) --* Packet Identifier (PID) of the elementary audio
                      stream(s) in the transport stream. Multiple values are accepted, and can be
                      entered in ranges and/or by comma separation. Can be entered as decimal or
                      hexadecimal values.

                      - **EcmPid** *(string) --* This parameter is unused and deprecated.

                      - **NielsenId3Behavior** *(string) --* If set to passthrough, Nielsen
                      inaudible tones for media tracking will be detected in the input audio and an
                      equivalent ID3 tag will be inserted in the output.

                      - **PatInterval** *(integer) --* The number of milliseconds between instances
                      of this table in the output transport stream. A value of \\"0\\" writes out
                      the PMT once per segment file.

                      - **PcrControl** *(string) --* When set to pcrEveryPesPacket, a Program Clock
                      Reference value is inserted for every Packetized Elementary Stream (PES)
                      header. This parameter is effective only when the PCR PID is the same as the
                      video or audio elementary stream.

                      - **PcrPeriod** *(integer) --* Maximum time in milliseconds between Program
                      Clock References (PCRs) inserted into the transport stream.

                      - **PcrPid** *(string) --* Packet Identifier (PID) of the Program Clock
                      Reference (PCR) in the transport stream. When no value is given, the encoder
                      will assign the same value as the Video PID. Can be entered as a decimal or
                      hexadecimal value.

                      - **PmtInterval** *(integer) --* The number of milliseconds between instances
                      of this table in the output transport stream. A value of \\"0\\" writes out
                      the PMT once per segment file.

                      - **PmtPid** *(string) --* Packet Identifier (PID) for the Program Map Table
                      (PMT) in the transport stream. Can be entered as a decimal or hexadecimal
                      value.

                      - **ProgramNum** *(integer) --* The value of the program number field in the
                      Program Map Table.

                      - **Scte35Behavior** *(string) --* If set to passthrough, passes any SCTE-35
                      signals from the input source to this output.

                      - **Scte35Pid** *(string) --* Packet Identifier (PID) of the SCTE-35 stream in
                      the transport stream. Can be entered as a decimal or hexadecimal value.

                      - **TimedMetadataBehavior** *(string) --* When set to passthrough, timed
                      metadata is passed through from input to output.

                      - **TimedMetadataPid** *(string) --* Packet Identifier (PID) of the timed
                      metadata stream in the transport stream. Can be entered as a decimal or
                      hexadecimal value. Valid values are 32 (or 0x20)..8182 (or 0x1ff6).

                      - **TransportStreamId** *(integer) --* The value of the transport stream ID
                      field in the Program Map Table.

                      - **VideoPid** *(string) --* Packet Identifier (PID) of the elementary video
                      stream in the transport stream. Can be entered as a decimal or hexadecimal
                      value.

                - **NameModifier** *(string) --* String concatenated to the end of the destination
                filename. Accepts \\"Format Identifiers\\":#formatIdentifierParameters.

                - **SegmentModifier** *(string) --* String concatenated to end of segment filenames.

              - **MediaPackageOutputSettings** *(dict) --* Media Package Output Settings

              - **MsSmoothOutputSettings** *(dict) --* Ms Smooth Output Settings

                - **H265PackagingType** *(string) --* Only applicable when this output is
                referencing an H.265 video description. Specifies whether MP4 segments should be
                packaged as HEV1 or HVC1.

                - **NameModifier** *(string) --* String concatenated to the end of the destination
                filename. Required for multiple outputs of the same type.

              - **MultiplexOutputSettings** *(dict) --* Multiplex Output Settings

                - **Destination** *(dict) --* **[REQUIRED]** Destination is a Multiplex.

                  - **DestinationRefId** *(string) --* Placeholder documentation for __string

              - **RtmpOutputSettings** *(dict) --* Rtmp Output Settings

                - **CertificateMode** *(string) --* If set to verifyAuthenticity, verify the tls
                certificate chain to a trusted Certificate Authority (CA). This will cause rtmps
                outputs with self-signed certificates to fail.

                - **ConnectionRetryInterval** *(integer) --* Number of seconds to wait before
                retrying a connection to the Flash Media server if the connection is lost.

                - **Destination** *(dict) --* **[REQUIRED]** The RTMP endpoint excluding the stream
                name (eg. rtmp://host/appname). For connection to Akamai, a username and password
                must be supplied. URI fields accept format identifiers.

                  - **DestinationRefId** *(string) --* Placeholder documentation for __string

                - **NumRetries** *(integer) --* Number of retry attempts.

              - **UdpOutputSettings** *(dict) --* Udp Output Settings

                - **BufferMsec** *(integer) --* UDP output buffering in milliseconds. Larger values
                increase latency through the transcoder but simultaneously assist the transcoder in
                maintaining a constant, low-jitter UDP/RTP output while accommodating clock
                recovery, input switching, input disruptions, picture reordering, etc.

                - **ContainerSettings** *(dict) --* **[REQUIRED]** Udp Container Settings

                  - **M2tsSettings** *(dict) --* M2ts Settings

                    - **AbsentInputAudioBehavior** *(string) --* When set to drop, output audio
                    streams will be removed from the program if the selected input audio stream is
                    removed from the input. This allows the output audio configuration to
                    dynamically change based on input configuration. If this is set to
                    encodeSilence, all output audio streams will output encoded silence when not
                    connected to an active input stream.

                    - **Arib** *(string) --* When set to enabled, uses ARIB-compliant field muxing
                    and removes video descriptor.

                    - **AribCaptionsPid** *(string) --* Packet Identifier (PID) for ARIB Captions in
                    the transport stream. Can be entered as a decimal or hexadecimal value. Valid
                    values are 32 (or 0x20)..8182 (or 0x1ff6).

                    - **AribCaptionsPidControl** *(string) --* If set to auto, pid number used for
                    ARIB Captions will be auto-selected from unused pids. If set to useConfigured,
                    ARIB Captions will be on the configured pid number.

                    - **AudioBufferModel** *(string) --* When set to dvb, uses DVB buffer model for
                    Dolby Digital audio. When set to atsc, the ATSC model is used.

                    - **AudioFramesPerPes** *(integer) --* The number of audio frames to insert for
                    each PES packet.

                    - **AudioPids** *(string) --* Packet Identifier (PID) of the elementary audio
                    stream(s) in the transport stream. Multiple values are accepted, and can be
                    entered in ranges and/or by comma separation. Can be entered as decimal or
                    hexadecimal values. Each PID specified must be in the range of 32 (or
                    0x20)..8182 (or 0x1ff6).

                    - **AudioStreamType** *(string) --* When set to atsc, uses stream type = 0x81
                    for AC3 and stream type =
                         0x87 for EAC3. When set to dvb, uses stream type =
                    0x06.

                    - **Bitrate** *(integer) --* The output bitrate of the transport stream in bits
                    per second. Setting to 0 lets the muxer automatically determine the appropriate
                    bitrate.

                    - **BufferModel** *(string) --* If set to multiplex, use multiplex buffer model
                    for accurate interleaving. Setting to bufferModel to none can lead to lower
                    latency, but low-memory devices may not be able to play back the stream without
                    interruptions.

                    - **CcDescriptor** *(string) --* When set to enabled, generates
                    captionServiceDescriptor in PMT.

                    - **DvbNitSettings** *(dict) --* Inserts DVB Network Information Table (NIT) at
                    the specified table repetition interval.

                      - **NetworkId** *(integer) --* **[REQUIRED]** The numeric value placed in the
                      Network Information Table (NIT).

                      - **NetworkName** *(string) --* **[REQUIRED]** The network name text placed in
                      the networkNameDescriptor inside the Network Information Table. Maximum length
                      is 256 characters.

                      - **RepInterval** *(integer) --* The number of milliseconds between instances
                      of this table in the output transport stream.

                    - **DvbSdtSettings** *(dict) --* Inserts DVB Service Description Table (SDT) at
                    the specified table repetition interval.

                      - **OutputSdt** *(string) --* Selects method of inserting SDT information into
                      output stream. The sdtFollow setting copies SDT information from input stream
                      to output stream. The sdtFollowIfPresent setting copies SDT information from
                      input stream to output stream if SDT information is present in the input,
                      otherwise it will fall back on the user-defined values. The sdtManual setting
                      means user will enter the SDT information. The sdtNone setting means output
                      stream will not contain SDT information.

                      - **RepInterval** *(integer) --* The number of milliseconds between instances
                      of this table in the output transport stream.

                      - **ServiceName** *(string) --* The service name placed in the
                      serviceDescriptor in the Service Description Table. Maximum length is 256
                      characters.

                      - **ServiceProviderName** *(string) --* The service provider name placed in
                      the serviceDescriptor in the Service Description Table. Maximum length is 256
                      characters.

                    - **DvbSubPids** *(string) --* Packet Identifier (PID) for input source DVB
                    Subtitle data to this output. Multiple values are accepted, and can be entered
                    in ranges and/or by comma separation. Can be entered as decimal or hexadecimal
                    values. Each PID specified must be in the range of 32 (or 0x20)..8182 (or
                    0x1ff6).

                    - **DvbTdtSettings** *(dict) --* Inserts DVB Time and Date Table (TDT) at the
                    specified table repetition interval.

                      - **RepInterval** *(integer) --* The number of milliseconds between instances
                      of this table in the output transport stream.

                    - **DvbTeletextPid** *(string) --* Packet Identifier (PID) for input source DVB
                    Teletext data to this output. Can be entered as a decimal or hexadecimal value.
                    Valid values are 32 (or 0x20)..8182 (or 0x1ff6).

                    - **Ebif** *(string) --* If set to passthrough, passes any EBIF data from the
                    input source to this output.

                    - **EbpAudioInterval** *(string) --* When videoAndFixedIntervals is selected,
                    audio EBP markers will be added to partitions 3 and 4. The interval between
                    these additional markers will be fixed, and will be slightly shorter than the
                    video EBP marker interval. Only available when EBP Cablelabs segmentation
                    markers are selected. Partitions 1 and 2 will always follow the video interval.

                    - **EbpLookaheadMs** *(integer) --* When set, enforces that Encoder Boundary
                    Points do not come within the specified time interval of each other by looking
                    ahead at input video. If another EBP is going to come in within the specified
                    time interval, the current EBP is not emitted, and the segment is "stretched" to
                    the next marker. The lookahead value does not add latency to the system. The
                    Live Event must be configured elsewhere to create sufficient latency to make the
                    lookahead accurate.

                    - **EbpPlacement** *(string) --* Controls placement of EBP on Audio PIDs. If set
                    to videoAndAudioPids, EBP markers will be placed on the video PID and all audio
                    PIDs. If set to videoPid, EBP markers will be placed on only the video PID.

                    - **EcmPid** *(string) --* This field is unused and deprecated.

                    - **EsRateInPes** *(string) --* Include or exclude the ES Rate field in the PES
                    header.

                    - **EtvPlatformPid** *(string) --* Packet Identifier (PID) for input source ETV
                    Platform data to this output. Can be entered as a decimal or hexadecimal value.
                    Valid values are 32 (or 0x20)..8182 (or 0x1ff6).

                    - **EtvSignalPid** *(string) --* Packet Identifier (PID) for input source ETV
                    Signal data to this output. Can be entered as a decimal or hexadecimal value.
                    Valid values are 32 (or 0x20)..8182 (or 0x1ff6).

                    - **FragmentTime** *(float) --* The length in seconds of each fragment. Only
                    used with EBP markers.

                    - **Klv** *(string) --* If set to passthrough, passes any KLV data from the
                    input source to this output.

                    - **KlvDataPids** *(string) --* Packet Identifier (PID) for input source KLV
                    data to this output. Multiple values are accepted, and can be entered in ranges
                    and/or by comma separation. Can be entered as decimal or hexadecimal values.
                    Each PID specified must be in the range of 32 (or 0x20)..8182 (or 0x1ff6).

                    - **NielsenId3Behavior** *(string) --* If set to passthrough, Nielsen inaudible
                    tones for media tracking will be detected in the input audio and an equivalent
                    ID3 tag will be inserted in the output.

                    - **NullPacketBitrate** *(float) --* Value in bits per second of extra null
                    packets to insert into the transport stream. This can be used if a downstream
                    encryption system requires periodic null packets.

                    - **PatInterval** *(integer) --* The number of milliseconds between instances of
                    this table in the output transport stream. Valid values are 0, 10..1000.

                    - **PcrControl** *(string) --* When set to pcrEveryPesPacket, a Program Clock
                    Reference value is inserted for every Packetized Elementary Stream (PES) header.
                    This parameter is effective only when the PCR PID is the same as the video or
                    audio elementary stream.

                    - **PcrPeriod** *(integer) --* Maximum time in milliseconds between Program
                    Clock Reference (PCRs) inserted into the transport stream.

                    - **PcrPid** *(string) --* Packet Identifier (PID) of the Program Clock
                    Reference (PCR) in the transport stream. When no value is given, the encoder
                    will assign the same value as the Video PID. Can be entered as a decimal or
                    hexadecimal value. Valid values are 32 (or 0x20)..8182 (or 0x1ff6).

                    - **PmtInterval** *(integer) --* The number of milliseconds between instances of
                    this table in the output transport stream. Valid values are 0, 10..1000.

                    - **PmtPid** *(string) --* Packet Identifier (PID) for the Program Map Table
                    (PMT) in the transport stream. Can be entered as a decimal or hexadecimal value.
                    Valid values are 32 (or 0x20)..8182 (or 0x1ff6).

                    - **ProgramNum** *(integer) --* The value of the program number field in the
                    Program Map Table.

                    - **RateMode** *(string) --* When vbr, does not insert null packets into
                    transport stream to fill specified bitrate. The bitrate setting acts as the
                    maximum bitrate when vbr is set.

                    - **Scte27Pids** *(string) --* Packet Identifier (PID) for input source SCTE-27
                    data to this output. Multiple values are accepted, and can be entered in ranges
                    and/or by comma separation. Can be entered as decimal or hexadecimal values.
                    Each PID specified must be in the range of 32 (or 0x20)..8182 (or 0x1ff6).

                    - **Scte35Control** *(string) --* Optionally pass SCTE-35 signals from the input
                    source to this output.

                    - **Scte35Pid** *(string) --* Packet Identifier (PID) of the SCTE-35 stream in
                    the transport stream. Can be entered as a decimal or hexadecimal value. Valid
                    values are 32 (or 0x20)..8182 (or 0x1ff6).

                    - **SegmentationMarkers** *(string) --* Inserts segmentation markers at each
                    segmentationTime period. raiSegstart sets the Random Access Indicator bit in the
                    adaptation field. raiAdapt sets the RAI bit and adds the current timecode in the
                    private data bytes. psiSegstart inserts PAT and PMT tables at the start of
                    segments. ebp adds Encoder Boundary Point information to the adaptation field as
                    per OpenCable specification OC-SP-EBP-I01-130118. ebpLegacy adds Encoder
                    Boundary Point information to the adaptation field using a legacy proprietary
                    format.

                    - **SegmentationStyle** *(string) --* The segmentation style parameter controls
                    how segmentation markers are inserted into the transport stream. With avails, it
                    is possible that segments may be truncated, which can influence where future
                    segmentation markers are inserted. When a segmentation style of "resetCadence"
                    is selected and a segment is truncated due to an avail, we will reset the
                    segmentation cadence. This means the subsequent segment will have a duration of
                    $segmentationTime seconds. When a segmentation style of "maintainCadence" is
                    selected and a segment is truncated due to an avail, we will not reset the
                    segmentation cadence. This means the subsequent segment will likely be truncated
                    as well. However, all segments after that will have a duration of
                    $segmentationTime seconds. Note that EBP lookahead is a slight exception to this
                    rule.

                    - **SegmentationTime** *(float) --* The length in seconds of each segment.
                    Required unless markers is set to None_.

                    - **TimedMetadataBehavior** *(string) --* When set to passthrough, timed
                    metadata will be passed through from input to output.

                    - **TimedMetadataPid** *(string) --* Packet Identifier (PID) of the timed
                    metadata stream in the transport stream. Can be entered as a decimal or
                    hexadecimal value. Valid values are 32 (or 0x20)..8182 (or 0x1ff6).

                    - **TransportStreamId** *(integer) --* The value of the transport stream ID
                    field in the Program Map Table.

                    - **VideoPid** *(string) --* Packet Identifier (PID) of the elementary video
                    stream in the transport stream. Can be entered as a decimal or hexadecimal
                    value. Valid values are 32 (or 0x20)..8182 (or 0x1ff6).

                - **Destination** *(dict) --* **[REQUIRED]** Destination address and port number for
                RTP or UDP packets. Can be unicast or multicast RTP or UDP (eg.
                rtp://239.10.10.10:5001 or udp://10.100.100.100:5002).

                  - **DestinationRefId** *(string) --* Placeholder documentation for __string

                - **FecOutputSettings** *(dict) --* Settings for enabling and adjusting Forward
                Error Correction on UDP outputs.

                  - **ColumnDepth** *(integer) --* Parameter D from SMPTE 2022-1. The height of the
                  FEC protection matrix. The number of transport stream packets per column error
                  correction packet. Must be between 4 and 20, inclusive.

                  - **IncludeFec** *(string) --* Enables column only or column and row based FEC

                  - **RowLength** *(integer) --* Parameter L from SMPTE 2022-1. The width of the FEC
                  protection matrix. Must be between 1 and 20, inclusive. If only Column FEC is
                  used, then larger values increase robustness. If Row FEC is used, then this is the
                  number of transport stream packets per row error correction packet, and the value
                  must be between 4 and 20, inclusive, if includeFec is columnAndRow. If includeFec
                  is column, this value must be 1 to 20, inclusive.

            - **VideoDescriptionName** *(string) --* The name of the VideoDescription used as the
            source for this output.

    - **TimecodeConfig** *(dict) --* **[REQUIRED]** Contains settings used to acquire and adjust
    timecode information from inputs.

      - **Source** *(string) --* **[REQUIRED]** Identifies the source for the timecode that will be
      associated with the events outputs. -Embedded (embedded): Initialize the output timecode with
      timecode from the the source. If no embedded timecode is detected in the source, the system
      falls back to using "Start at 0" (zerobased). -System Clock (systemclock): Use the UTC time.
      -Start at 0 (zerobased): The time of the first frame of the event will be 00:00:00:00.

      - **SyncThreshold** *(integer) --* Threshold in frames beyond which output timecode is
      resynchronized to the input timecode. Discrepancies below this threshold are permitted to
      avoid unnecessary discontinuities in the output timecode. No timecode sync when this is not
      specified.

    - **VideoDescriptions** *(list) --* **[REQUIRED]** Placeholder documentation for
    __listOfVideoDescription

      - *(dict) --* Video settings for this stream.

        - **CodecSettings** *(dict) --* Video codec settings.

          - **FrameCaptureSettings** *(dict) --* Frame Capture Settings

            - **CaptureInterval** *(integer) --* **[REQUIRED]** The frequency at which to capture
            frames for inclusion in the output. May be specified in either seconds or milliseconds,
            as specified by captureIntervalUnits.

          - **H264Settings** *(dict) --* H264 Settings

            - **AdaptiveQuantization** *(string) --* Adaptive quantization. Allows intra-frame
            quantizers to vary to improve visual quality.

            - **AfdSignaling** *(string) --* Indicates that AFD values will be written into the
            output stream. If afdSignaling is "auto", the system will try to preserve the input AFD
            value (in cases where multiple AFD values are valid). If set to "fixed", the AFD value
            will be the value configured in the fixedAfd parameter.

            - **Bitrate** *(integer) --* Average bitrate in bits/second. Required when the rate
            control mode is VBR or CBR. Not used for QVBR. In an MS Smooth output group, each output
            must have a unique value when its bitrate is rounded down to the nearest multiple of
            1000.

            - **BufFillPct** *(integer) --* Percentage of the buffer that should initially be filled
            (HRD buffer model).

            - **BufSize** *(integer) --* Size of buffer (HRD buffer model) in bits.

            - **ColorMetadata** *(string) --* Includes colorspace metadata in the output.

            - **ColorSpaceSettings** *(dict) --* Color Space settings

              - **ColorSpacePassthroughSettings** *(dict) --* Passthrough applies no color space
              conversion to the output

              - **Rec601Settings** *(dict) --* Rec601 Settings

              - **Rec709Settings** *(dict) --* Rec709 Settings

            - **EntropyEncoding** *(string) --* Entropy encoding mode. Use cabac (must be in Main or
            High profile) or cavlc.

            - **FixedAfd** *(string) --* Four bit AFD value to write on all frames of video in the
            output stream. Only valid when afdSignaling is set to 'Fixed'.

            - **FlickerAq** *(string) --* If set to enabled, adjust quantization within each frame
            to reduce flicker or 'pop' on I-frames.

            - **FramerateControl** *(string) --* This field indicates how the output video frame
            rate is specified. If "specified" is selected then the output video frame rate is
            determined by framerateNumerator and framerateDenominator, else if
            "initializeFromSource" is selected then the output video frame rate will be set equal to
            the input video frame rate of the first input.

            - **FramerateDenominator** *(integer) --* Framerate denominator.

            - **FramerateNumerator** *(integer) --* Framerate numerator - framerate is a fraction,
            e.g. 24000 / 1001 = 23.976 fps.

            - **GopBReference** *(string) --* Documentation update needed

            - **GopClosedCadence** *(integer) --* Frequency of closed GOPs. In streaming
            applications, it is recommended that this be set to 1 so a decoder joining mid-stream
            will receive an IDR frame as quickly as possible. Setting this value to 0 will break
            output segmenting.

            - **GopNumBFrames** *(integer) --* Number of B-frames between reference frames.

            - **GopSize** *(float) --* GOP size (keyframe interval) in units of either frames or
            seconds per gopSizeUnits. If gopSizeUnits is frames, gopSize must be an integer and must
            be greater than or equal to 1. If gopSizeUnits is seconds, gopSize must be greater than
            0, but need not be an integer.

            - **GopSizeUnits** *(string) --* Indicates if the gopSize is specified in frames or
            seconds. If seconds the system will convert the gopSize into a frame count at run time.

            - **Level** *(string) --* H.264 Level.

            - **LookAheadRateControl** *(string) --* Amount of lookahead. A value of low can
            decrease latency and memory usage, while high can produce better quality for certain
            content.

            - **MaxBitrate** *(integer) --* For QVBR: See the tooltip for Quality level For VBR: Set
            the maximum bitrate in order to accommodate expected spikes in the complexity of the
            video.

            - **MinIInterval** *(integer) --* Only meaningful if sceneChangeDetect is set to
            enabled. Defaults to 5 if multiplex rate control is used. Enforces separation between
            repeated (cadence) I-frames and I-frames inserted by Scene Change Detection. If a scene
            change I-frame is within I-interval frames of a cadence I-frame, the GOP is shrunk
            and/or stretched to the scene change I-frame. GOP stretch requires enabling lookahead as
            well as setting I-interval. The normal cadence resumes for the next GOP. Note: Maximum
            GOP stretch = GOP size + Min-I-interval - 1

            - **NumRefFrames** *(integer) --* Number of reference frames to use. The encoder may use
            more than requested if using B-frames and/or interlaced encoding.

            - **ParControl** *(string) --* This field indicates how the output pixel aspect ratio is
            specified. If "specified" is selected then the output video pixel aspect ratio is
            determined by parNumerator and parDenominator, else if "initializeFromSource" is
            selected then the output pixsel aspect ratio will be set equal to the input video pixel
            aspect ratio of the first input.

            - **ParDenominator** *(integer) --* Pixel Aspect Ratio denominator.

            - **ParNumerator** *(integer) --* Pixel Aspect Ratio numerator.

            - **Profile** *(string) --* H.264 Profile.

            - **QvbrQualityLevel** *(integer) --* Controls the target quality for the video encode.
            Applies only when the rate control mode is QVBR. Set values for the QVBR quality level
            field and Max bitrate field that suit your most important viewing devices. Recommended
            values are: - Primary screen: Quality level: 8 to 10. Max bitrate: 4M - PC or tablet:
            Quality level: 7. Max bitrate: 1.5M to 3M - Smartphone: Quality level: 6. Max bitrate:
            1M to 1.5M

            - **RateControlMode** *(string) --* Rate control mode. QVBR: Quality will match the
            specified quality level except when it is constrained by the maximum bitrate.
            Recommended if you or your viewers pay for bandwidth. VBR: Quality and bitrate vary,
            depending on the video complexity. Recommended instead of QVBR if you want to maintain a
            specific average bitrate over the duration of the channel. CBR: Quality varies,
            depending on the video complexity. Recommended only if you distribute your assets to
            devices that cannot handle variable bitrates.

            - **ScanType** *(string) --* Sets the scan type of the output to progressive or
            top-field-first interlaced.

            - **SceneChangeDetect** *(string) --* Scene change detection. - On: inserts I-frames
            when scene change is detected. - Off: does not force an I-frame when scene change is
            detected.

            - **Slices** *(integer) --* Number of slices per picture. Must be less than or equal to
            the number of macroblock rows for progressive pictures, and less than or equal to half
            the number of macroblock rows for interlaced pictures. This field is optional; when no
            value is specified the encoder will choose the number of slices based on encode
            resolution.

            - **Softness** *(integer) --* Softness. Selects quantizer matrix, larger values reduce
            high-frequency content in the encoded image.

            - **SpatialAq** *(string) --* If set to enabled, adjust quantization within each frame
            based on spatial variation of content complexity.

            - **SubgopLength** *(string) --* If set to fixed, use gopNumBFrames B-frames per
            sub-GOP. If set to dynamic, optimize the number of B-frames used for each sub-GOP to
            improve visual quality.

            - **Syntax** *(string) --* Produces a bitstream compliant with SMPTE RP-2027.

            - **TemporalAq** *(string) --* If set to enabled, adjust quantization within each frame
            based on temporal variation of content complexity.

            - **TimecodeInsertion** *(string) --* Determines how timecodes should be inserted into
            the video elementary stream. - 'disabled': Do not include timecodes - 'picTimingSei':
            Pass through picture timing SEI messages from the source specified in Timecode Config

          - **H265Settings** *(dict) --* H265 Settings

            - **AdaptiveQuantization** *(string) --* Adaptive quantization. Allows intra-frame
            quantizers to vary to improve visual quality.

            - **AfdSignaling** *(string) --* Indicates that AFD values will be written into the
            output stream. If afdSignaling is "auto", the system will try to preserve the input AFD
            value (in cases where multiple AFD values are valid). If set to "fixed", the AFD value
            will be the value configured in the fixedAfd parameter.

            - **AlternativeTransferFunction** *(string) --* Whether or not EML should insert an
            Alternative Transfer Function SEI message to support backwards compatibility with
            non-HDR decoders and displays.

            - **Bitrate** *(integer) --* Average bitrate in bits/second. Required when the rate
            control mode is VBR or CBR. Not used for QVBR. In an MS Smooth output group, each output
            must have a unique value when its bitrate is rounded down to the nearest multiple of
            1000.

            - **BufSize** *(integer) --* Size of buffer (HRD buffer model) in bits.

            - **ColorMetadata** *(string) --* Includes colorspace metadata in the output.

            - **ColorSpaceSettings** *(dict) --* Color Space settings

              - **ColorSpacePassthroughSettings** *(dict) --* Passthrough applies no color space
              conversion to the output

              - **Hdr10Settings** *(dict) --* Hdr10 Settings

                - **MaxCll** *(integer) --* Maximum Content Light Level An integer metadata value
                defining the maximum light level, in nits, of any single pixel within an encoded HDR
                video stream or file.

                - **MaxFall** *(integer) --* Maximum Frame Average Light Level An integer metadata
                value defining the maximum average light level, in nits, for any single frame within
                an encoded HDR video stream or file.

              - **Rec601Settings** *(dict) --* Rec601 Settings

              - **Rec709Settings** *(dict) --* Rec709 Settings

            - **FixedAfd** *(string) --* Four bit AFD value to write on all frames of video in the
            output stream. Only valid when afdSignaling is set to 'Fixed'.

            - **FlickerAq** *(string) --* If set to enabled, adjust quantization within each frame
            to reduce flicker or 'pop' on I-frames.

            - **FramerateDenominator** *(integer) --* **[REQUIRED]** Framerate denominator.

            - **FramerateNumerator** *(integer) --* **[REQUIRED]** Framerate numerator - framerate
            is a fraction, e.g. 24000 / 1001 = 23.976 fps.

            - **GopClosedCadence** *(integer) --* Frequency of closed GOPs. In streaming
            applications, it is recommended that this be set to 1 so a decoder joining mid-stream
            will receive an IDR frame as quickly as possible. Setting this value to 0 will break
            output segmenting.

            - **GopSize** *(float) --* GOP size (keyframe interval) in units of either frames or
            seconds per gopSizeUnits. If gopSizeUnits is frames, gopSize must be an integer and must
            be greater than or equal to 1. If gopSizeUnits is seconds, gopSize must be greater than
            0, but need not be an integer.

            - **GopSizeUnits** *(string) --* Indicates if the gopSize is specified in frames or
            seconds. If seconds the system will convert the gopSize into a frame count at run time.

            - **Level** *(string) --* H.265 Level.

            - **LookAheadRateControl** *(string) --* Amount of lookahead. A value of low can
            decrease latency and memory usage, while high can produce better quality for certain
            content.

            - **MaxBitrate** *(integer) --* For QVBR: See the tooltip for Quality level

            - **MinIInterval** *(integer) --* Only meaningful if sceneChangeDetect is set to
            enabled. Defaults to 5 if multiplex rate control is used. Enforces separation between
            repeated (cadence) I-frames and I-frames inserted by Scene Change Detection. If a scene
            change I-frame is within I-interval frames of a cadence I-frame, the GOP is shrunk
            and/or stretched to the scene change I-frame. GOP stretch requires enabling lookahead as
            well as setting I-interval. The normal cadence resumes for the next GOP. Note: Maximum
            GOP stretch = GOP size + Min-I-interval - 1

            - **ParDenominator** *(integer) --* Pixel Aspect Ratio denominator.

            - **ParNumerator** *(integer) --* Pixel Aspect Ratio numerator.

            - **Profile** *(string) --* H.265 Profile.

            - **QvbrQualityLevel** *(integer) --* Controls the target quality for the video encode.
            Applies only when the rate control mode is QVBR. Set values for the QVBR quality level
            field and Max bitrate field that suit your most important viewing devices. Recommended
            values are: - Primary screen: Quality level: 8 to 10. Max bitrate: 4M - PC or tablet:
            Quality level: 7. Max bitrate: 1.5M to 3M - Smartphone: Quality level: 6. Max bitrate:
            1M to 1.5M

            - **RateControlMode** *(string) --* Rate control mode. QVBR: Quality will match the
            specified quality level except when it is constrained by the maximum bitrate.
            Recommended if you or your viewers pay for bandwidth. CBR: Quality varies, depending on
            the video complexity. Recommended only if you distribute your assets to devices that
            cannot handle variable bitrates.

            - **ScanType** *(string) --* Sets the scan type of the output to progressive or
            top-field-first interlaced.

            - **SceneChangeDetect** *(string) --* Scene change detection.

            - **Slices** *(integer) --* Number of slices per picture. Must be less than or equal to
            the number of macroblock rows for progressive pictures, and less than or equal to half
            the number of macroblock rows for interlaced pictures. This field is optional; when no
            value is specified the encoder will choose the number of slices based on encode
            resolution.

            - **Tier** *(string) --* H.265 Tier.

            - **TimecodeInsertion** *(string) --* Determines how timecodes should be inserted into
            the video elementary stream. - 'disabled': Do not include timecodes - 'picTimingSei':
            Pass through picture timing SEI messages from the source specified in Timecode Config

        - **Height** *(integer) --* Output video height, in pixels. Must be an even number. For most
        codecs, you can leave this field and width blank in order to use the height and width
        (resolution) from the source. Note, however, that leaving blank is not recommended. For the
        Frame Capture codec, height and width are required.

        - **Name** *(string) --* **[REQUIRED]** The name of this VideoDescription. Outputs will use
        this name to uniquely identify this Description. Description names should be unique within
        this Live Event.

        - **RespondToAfd** *(string) --* Indicates how to respond to the AFD values in the input
        stream. RESPOND causes input video to be clipped, depending on the AFD value, input display
        aspect ratio, and output display aspect ratio, and (except for FRAMECAPTURE codec) includes
        the values in the output. PASSTHROUGH (does not apply to FRAMECAPTURE codec) ignores the AFD
        values and includes the values in the output, so input video is not clipped. NONE ignores
        the AFD values and does not include the values through to the output, so input video is not
        clipped.

        - **ScalingBehavior** *(string) --* STRETCHTOOUTPUT configures the output position to
        stretch the video to the specified output resolution (height and width). This option will
        override any position value. DEFAULT may insert black boxes (pillar boxes or letter boxes)
        around the video to provide the specified output resolution.

        - **Sharpness** *(integer) --* Changes the strength of the anti-alias filter used for
        scaling. 0 is the softest setting, 100 is the sharpest. A setting of 50 is recommended for
        most content.

        - **Width** *(integer) --* Output video width, in pixels. Must be an even number. For most
        codecs, you can leave this field and height blank in order to use the height and width
        (resolution) from the source. Note, however, that leaving blank is not recommended. For the
        Frame Capture codec, height and width are required.
    """


_RequiredClientUpdateChannelInputAttachmentsInputSettingsAudioSelectorsSelectorSettingsAudioLanguageSelectionTypeDef = TypedDict(
    "_RequiredClientUpdateChannelInputAttachmentsInputSettingsAudioSelectorsSelectorSettingsAudioLanguageSelectionTypeDef",
    {"LanguageCode": str},
)
_OptionalClientUpdateChannelInputAttachmentsInputSettingsAudioSelectorsSelectorSettingsAudioLanguageSelectionTypeDef = TypedDict(
    "_OptionalClientUpdateChannelInputAttachmentsInputSettingsAudioSelectorsSelectorSettingsAudioLanguageSelectionTypeDef",
    {"LanguageSelectionPolicy": str},
    total=False,
)


class ClientUpdateChannelInputAttachmentsInputSettingsAudioSelectorsSelectorSettingsAudioLanguageSelectionTypeDef(
    _RequiredClientUpdateChannelInputAttachmentsInputSettingsAudioSelectorsSelectorSettingsAudioLanguageSelectionTypeDef,
    _OptionalClientUpdateChannelInputAttachmentsInputSettingsAudioSelectorsSelectorSettingsAudioLanguageSelectionTypeDef,
):
    """
    Type definition for
    `ClientUpdateChannelInputAttachmentsInputSettingsAudioSelectorsSelectorSettings`
    `AudioLanguageSelection`

    - **LanguageCode** *(string) --* **[REQUIRED]** Selects a specific three-letter language code
    from within an audio source.

    - **LanguageSelectionPolicy** *(string) --* When set to "strict", the transport stream demux
    strictly identifies audio streams by their language descriptor. If a PMT update occurs such that
    an audio stream matching the initially selected language is no longer present then mute will be
    encoded until the language returns. If "loose", then on a PMT update the demux will choose
    another audio stream in the program with the same stream type if it can't find one with the same
    language.
    """


_ClientUpdateChannelInputAttachmentsInputSettingsAudioSelectorsSelectorSettingsAudioPidSelectionTypeDef = TypedDict(
    "_ClientUpdateChannelInputAttachmentsInputSettingsAudioSelectorsSelectorSettingsAudioPidSelectionTypeDef",
    {"Pid": int},
)


class ClientUpdateChannelInputAttachmentsInputSettingsAudioSelectorsSelectorSettingsAudioPidSelectionTypeDef(
    _ClientUpdateChannelInputAttachmentsInputSettingsAudioSelectorsSelectorSettingsAudioPidSelectionTypeDef
):
    """
    Type definition for
    `ClientUpdateChannelInputAttachmentsInputSettingsAudioSelectorsSelectorSettings`
    `AudioPidSelection`

    - **Pid** *(integer) --* **[REQUIRED]** Selects a specific PID from within a source.
    """


_ClientUpdateChannelInputAttachmentsInputSettingsAudioSelectorsSelectorSettingsTypeDef = TypedDict(
    "_ClientUpdateChannelInputAttachmentsInputSettingsAudioSelectorsSelectorSettingsTypeDef",
    {
        "AudioLanguageSelection": ClientUpdateChannelInputAttachmentsInputSettingsAudioSelectorsSelectorSettingsAudioLanguageSelectionTypeDef,
        "AudioPidSelection": ClientUpdateChannelInputAttachmentsInputSettingsAudioSelectorsSelectorSettingsAudioPidSelectionTypeDef,
    },
    total=False,
)


class ClientUpdateChannelInputAttachmentsInputSettingsAudioSelectorsSelectorSettingsTypeDef(
    _ClientUpdateChannelInputAttachmentsInputSettingsAudioSelectorsSelectorSettingsTypeDef
):
    """
    Type definition for `ClientUpdateChannelInputAttachmentsInputSettingsAudioSelectors`
    `SelectorSettings`

    - **AudioLanguageSelection** *(dict) --* Audio Language Selection

      - **LanguageCode** *(string) --* **[REQUIRED]** Selects a specific three-letter language code
      from within an audio source.

      - **LanguageSelectionPolicy** *(string) --* When set to "strict", the transport stream demux
      strictly identifies audio streams by their language descriptor. If a PMT update occurs such
      that an audio stream matching the initially selected language is no longer present then mute
      will be encoded until the language returns. If "loose", then on a PMT update the demux will
      choose another audio stream in the program with the same stream type if it can't find one with
      the same language.

    - **AudioPidSelection** *(dict) --* Audio Pid Selection

      - **Pid** *(integer) --* **[REQUIRED]** Selects a specific PID from within a source.
    """


_RequiredClientUpdateChannelInputAttachmentsInputSettingsAudioSelectorsTypeDef = TypedDict(
    "_RequiredClientUpdateChannelInputAttachmentsInputSettingsAudioSelectorsTypeDef", {"Name": str}
)
_OptionalClientUpdateChannelInputAttachmentsInputSettingsAudioSelectorsTypeDef = TypedDict(
    "_OptionalClientUpdateChannelInputAttachmentsInputSettingsAudioSelectorsTypeDef",
    {
        "SelectorSettings": ClientUpdateChannelInputAttachmentsInputSettingsAudioSelectorsSelectorSettingsTypeDef
    },
    total=False,
)


class ClientUpdateChannelInputAttachmentsInputSettingsAudioSelectorsTypeDef(
    _RequiredClientUpdateChannelInputAttachmentsInputSettingsAudioSelectorsTypeDef,
    _OptionalClientUpdateChannelInputAttachmentsInputSettingsAudioSelectorsTypeDef,
):
    """
    Type definition for `ClientUpdateChannelInputAttachmentsInputSettings` `AudioSelectors`

    - **Name** *(string) --* **[REQUIRED]** The name of this AudioSelector. AudioDescriptions will
    use this name to uniquely identify this Selector. Selector names should be unique per input.

    - **SelectorSettings** *(dict) --* The audio selector settings.

      - **AudioLanguageSelection** *(dict) --* Audio Language Selection

        - **LanguageCode** *(string) --* **[REQUIRED]** Selects a specific three-letter language
        code from within an audio source.

        - **LanguageSelectionPolicy** *(string) --* When set to "strict", the transport stream demux
        strictly identifies audio streams by their language descriptor. If a PMT update occurs such
        that an audio stream matching the initially selected language is no longer present then mute
        will be encoded until the language returns. If "loose", then on a PMT update the demux will
        choose another audio stream in the program with the same stream type if it can't find one
        with the same language.

      - **AudioPidSelection** *(dict) --* Audio Pid Selection

        - **Pid** *(integer) --* **[REQUIRED]** Selects a specific PID from within a source.
    """


_ClientUpdateChannelInputAttachmentsInputSettingsCaptionSelectorsSelectorSettingsDvbSubSourceSettingsTypeDef = TypedDict(
    "_ClientUpdateChannelInputAttachmentsInputSettingsCaptionSelectorsSelectorSettingsDvbSubSourceSettingsTypeDef",
    {"Pid": int},
    total=False,
)


class ClientUpdateChannelInputAttachmentsInputSettingsCaptionSelectorsSelectorSettingsDvbSubSourceSettingsTypeDef(
    _ClientUpdateChannelInputAttachmentsInputSettingsCaptionSelectorsSelectorSettingsDvbSubSourceSettingsTypeDef
):
    """
    Type definition for
    `ClientUpdateChannelInputAttachmentsInputSettingsCaptionSelectorsSelectorSettings`
    `DvbSubSourceSettings`

    - **Pid** *(integer) --* When using DVB-Sub with Burn-In or SMPTE-TT, use this PID for the
    source content. Unused for DVB-Sub passthrough. All DVB-Sub content is passed through,
    regardless of selectors.
    """


_ClientUpdateChannelInputAttachmentsInputSettingsCaptionSelectorsSelectorSettingsEmbeddedSourceSettingsTypeDef = TypedDict(
    "_ClientUpdateChannelInputAttachmentsInputSettingsCaptionSelectorsSelectorSettingsEmbeddedSourceSettingsTypeDef",
    {
        "Convert608To708": str,
        "Scte20Detection": str,
        "Source608ChannelNumber": int,
        "Source608TrackNumber": int,
    },
    total=False,
)


class ClientUpdateChannelInputAttachmentsInputSettingsCaptionSelectorsSelectorSettingsEmbeddedSourceSettingsTypeDef(
    _ClientUpdateChannelInputAttachmentsInputSettingsCaptionSelectorsSelectorSettingsEmbeddedSourceSettingsTypeDef
):
    """
    Type definition for
    `ClientUpdateChannelInputAttachmentsInputSettingsCaptionSelectorsSelectorSettings`
    `EmbeddedSourceSettings`

    - **Convert608To708** *(string) --* If upconvert, 608 data is both passed through via the "608
    compatibility bytes" fields of the 708 wrapper as well as translated into 708. 708 data present
    in the source content will be discarded.

    - **Scte20Detection** *(string) --* Set to "auto" to handle streams with intermittent and/or
    non-aligned SCTE-20 and Embedded captions.

    - **Source608ChannelNumber** *(integer) --* Specifies the 608/708 channel number within the
    video track from which to extract captions. Unused for passthrough.

    - **Source608TrackNumber** *(integer) --* This field is unused and deprecated.
    """


_ClientUpdateChannelInputAttachmentsInputSettingsCaptionSelectorsSelectorSettingsScte20SourceSettingsTypeDef = TypedDict(
    "_ClientUpdateChannelInputAttachmentsInputSettingsCaptionSelectorsSelectorSettingsScte20SourceSettingsTypeDef",
    {"Convert608To708": str, "Source608ChannelNumber": int},
    total=False,
)


class ClientUpdateChannelInputAttachmentsInputSettingsCaptionSelectorsSelectorSettingsScte20SourceSettingsTypeDef(
    _ClientUpdateChannelInputAttachmentsInputSettingsCaptionSelectorsSelectorSettingsScte20SourceSettingsTypeDef
):
    """
    Type definition for
    `ClientUpdateChannelInputAttachmentsInputSettingsCaptionSelectorsSelectorSettings`
    `Scte20SourceSettings`

    - **Convert608To708** *(string) --* If upconvert, 608 data is both passed through via the "608
    compatibility bytes" fields of the 708 wrapper as well as translated into 708. 708 data present
    in the source content will be discarded.

    - **Source608ChannelNumber** *(integer) --* Specifies the 608/708 channel number within the
    video track from which to extract captions. Unused for passthrough.
    """


_ClientUpdateChannelInputAttachmentsInputSettingsCaptionSelectorsSelectorSettingsScte27SourceSettingsTypeDef = TypedDict(
    "_ClientUpdateChannelInputAttachmentsInputSettingsCaptionSelectorsSelectorSettingsScte27SourceSettingsTypeDef",
    {"Pid": int},
    total=False,
)


class ClientUpdateChannelInputAttachmentsInputSettingsCaptionSelectorsSelectorSettingsScte27SourceSettingsTypeDef(
    _ClientUpdateChannelInputAttachmentsInputSettingsCaptionSelectorsSelectorSettingsScte27SourceSettingsTypeDef
):
    """
    Type definition for
    `ClientUpdateChannelInputAttachmentsInputSettingsCaptionSelectorsSelectorSettings`
    `Scte27SourceSettings`

    - **Pid** *(integer) --* The pid field is used in conjunction with the caption selector
    languageCode field as follows: - Specify PID and Language: Extracts captions from that PID; the
    language is "informational". - Specify PID and omit Language: Extracts the specified PID. - Omit
    PID and specify Language: Extracts the specified language, whichever PID that happens to be. -
    Omit PID and omit Language: Valid only if source is DVB-Sub that is being passed through; all
    languages will be passed through.
    """


_ClientUpdateChannelInputAttachmentsInputSettingsCaptionSelectorsSelectorSettingsTeletextSourceSettingsTypeDef = TypedDict(
    "_ClientUpdateChannelInputAttachmentsInputSettingsCaptionSelectorsSelectorSettingsTeletextSourceSettingsTypeDef",
    {"PageNumber": str},
    total=False,
)


class ClientUpdateChannelInputAttachmentsInputSettingsCaptionSelectorsSelectorSettingsTeletextSourceSettingsTypeDef(
    _ClientUpdateChannelInputAttachmentsInputSettingsCaptionSelectorsSelectorSettingsTeletextSourceSettingsTypeDef
):
    """
    Type definition for
    `ClientUpdateChannelInputAttachmentsInputSettingsCaptionSelectorsSelectorSettings`
    `TeletextSourceSettings`

    - **PageNumber** *(string) --* Specifies the teletext page number within the data stream from
    which to extract captions. Range of 0x100 (256) to 0x8FF (2303). Unused for passthrough. Should
    be specified as a hexadecimal string with no "0x" prefix.
    """


_ClientUpdateChannelInputAttachmentsInputSettingsCaptionSelectorsSelectorSettingsTypeDef = TypedDict(
    "_ClientUpdateChannelInputAttachmentsInputSettingsCaptionSelectorsSelectorSettingsTypeDef",
    {
        "AribSourceSettings": Dict,
        "DvbSubSourceSettings": ClientUpdateChannelInputAttachmentsInputSettingsCaptionSelectorsSelectorSettingsDvbSubSourceSettingsTypeDef,
        "EmbeddedSourceSettings": ClientUpdateChannelInputAttachmentsInputSettingsCaptionSelectorsSelectorSettingsEmbeddedSourceSettingsTypeDef,
        "Scte20SourceSettings": ClientUpdateChannelInputAttachmentsInputSettingsCaptionSelectorsSelectorSettingsScte20SourceSettingsTypeDef,
        "Scte27SourceSettings": ClientUpdateChannelInputAttachmentsInputSettingsCaptionSelectorsSelectorSettingsScte27SourceSettingsTypeDef,
        "TeletextSourceSettings": ClientUpdateChannelInputAttachmentsInputSettingsCaptionSelectorsSelectorSettingsTeletextSourceSettingsTypeDef,
    },
    total=False,
)


class ClientUpdateChannelInputAttachmentsInputSettingsCaptionSelectorsSelectorSettingsTypeDef(
    _ClientUpdateChannelInputAttachmentsInputSettingsCaptionSelectorsSelectorSettingsTypeDef
):
    """
    Type definition for `ClientUpdateChannelInputAttachmentsInputSettingsCaptionSelectors`
    `SelectorSettings`

    - **AribSourceSettings** *(dict) --* Arib Source Settings

    - **DvbSubSourceSettings** *(dict) --* Dvb Sub Source Settings

      - **Pid** *(integer) --* When using DVB-Sub with Burn-In or SMPTE-TT, use this PID for the
      source content. Unused for DVB-Sub passthrough. All DVB-Sub content is passed through,
      regardless of selectors.

    - **EmbeddedSourceSettings** *(dict) --* Embedded Source Settings

      - **Convert608To708** *(string) --* If upconvert, 608 data is both passed through via the "608
      compatibility bytes" fields of the 708 wrapper as well as translated into 708. 708 data
      present in the source content will be discarded.

      - **Scte20Detection** *(string) --* Set to "auto" to handle streams with intermittent and/or
      non-aligned SCTE-20 and Embedded captions.

      - **Source608ChannelNumber** *(integer) --* Specifies the 608/708 channel number within the
      video track from which to extract captions. Unused for passthrough.

      - **Source608TrackNumber** *(integer) --* This field is unused and deprecated.

    - **Scte20SourceSettings** *(dict) --* Scte20 Source Settings

      - **Convert608To708** *(string) --* If upconvert, 608 data is both passed through via the "608
      compatibility bytes" fields of the 708 wrapper as well as translated into 708. 708 data
      present in the source content will be discarded.

      - **Source608ChannelNumber** *(integer) --* Specifies the 608/708 channel number within the
      video track from which to extract captions. Unused for passthrough.

    - **Scte27SourceSettings** *(dict) --* Scte27 Source Settings

      - **Pid** *(integer) --* The pid field is used in conjunction with the caption selector
      languageCode field as follows: - Specify PID and Language: Extracts captions from that PID;
      the language is "informational". - Specify PID and omit Language: Extracts the specified PID.
      - Omit PID and specify Language: Extracts the specified language, whichever PID that happens
      to be. - Omit PID and omit Language: Valid only if source is DVB-Sub that is being passed
      through; all languages will be passed through.

    - **TeletextSourceSettings** *(dict) --* Teletext Source Settings

      - **PageNumber** *(string) --* Specifies the teletext page number within the data stream from
      which to extract captions. Range of 0x100 (256) to 0x8FF (2303). Unused for passthrough.
      Should be specified as a hexadecimal string with no "0x" prefix.
    """


_RequiredClientUpdateChannelInputAttachmentsInputSettingsCaptionSelectorsTypeDef = TypedDict(
    "_RequiredClientUpdateChannelInputAttachmentsInputSettingsCaptionSelectorsTypeDef",
    {"Name": str},
)
_OptionalClientUpdateChannelInputAttachmentsInputSettingsCaptionSelectorsTypeDef = TypedDict(
    "_OptionalClientUpdateChannelInputAttachmentsInputSettingsCaptionSelectorsTypeDef",
    {
        "LanguageCode": str,
        "SelectorSettings": ClientUpdateChannelInputAttachmentsInputSettingsCaptionSelectorsSelectorSettingsTypeDef,
    },
    total=False,
)


class ClientUpdateChannelInputAttachmentsInputSettingsCaptionSelectorsTypeDef(
    _RequiredClientUpdateChannelInputAttachmentsInputSettingsCaptionSelectorsTypeDef,
    _OptionalClientUpdateChannelInputAttachmentsInputSettingsCaptionSelectorsTypeDef,
):
    """
    Type definition for `ClientUpdateChannelInputAttachmentsInputSettings` `CaptionSelectors`

    - **LanguageCode** *(string) --* When specified this field indicates the three letter language
    code of the caption track to extract from the source.

    - **Name** *(string) --* **[REQUIRED]** Name identifier for a caption selector. This name is
    used to associate this caption selector with one or more caption descriptions. Names must be
    unique within an event.

    - **SelectorSettings** *(dict) --* Caption selector settings.

      - **AribSourceSettings** *(dict) --* Arib Source Settings

      - **DvbSubSourceSettings** *(dict) --* Dvb Sub Source Settings

        - **Pid** *(integer) --* When using DVB-Sub with Burn-In or SMPTE-TT, use this PID for the
        source content. Unused for DVB-Sub passthrough. All DVB-Sub content is passed through,
        regardless of selectors.

      - **EmbeddedSourceSettings** *(dict) --* Embedded Source Settings

        - **Convert608To708** *(string) --* If upconvert, 608 data is both passed through via the
        "608 compatibility bytes" fields of the 708 wrapper as well as translated into 708. 708 data
        present in the source content will be discarded.

        - **Scte20Detection** *(string) --* Set to "auto" to handle streams with intermittent and/or
        non-aligned SCTE-20 and Embedded captions.

        - **Source608ChannelNumber** *(integer) --* Specifies the 608/708 channel number within the
        video track from which to extract captions. Unused for passthrough.

        - **Source608TrackNumber** *(integer) --* This field is unused and deprecated.

      - **Scte20SourceSettings** *(dict) --* Scte20 Source Settings

        - **Convert608To708** *(string) --* If upconvert, 608 data is both passed through via the
        "608 compatibility bytes" fields of the 708 wrapper as well as translated into 708. 708 data
        present in the source content will be discarded.

        - **Source608ChannelNumber** *(integer) --* Specifies the 608/708 channel number within the
        video track from which to extract captions. Unused for passthrough.

      - **Scte27SourceSettings** *(dict) --* Scte27 Source Settings

        - **Pid** *(integer) --* The pid field is used in conjunction with the caption selector
        languageCode field as follows: - Specify PID and Language: Extracts captions from that PID;
        the language is "informational". - Specify PID and omit Language: Extracts the specified
        PID. - Omit PID and specify Language: Extracts the specified language, whichever PID that
        happens to be. - Omit PID and omit Language: Valid only if source is DVB-Sub that is being
        passed through; all languages will be passed through.

      - **TeletextSourceSettings** *(dict) --* Teletext Source Settings

        - **PageNumber** *(string) --* Specifies the teletext page number within the data stream
        from which to extract captions. Range of 0x100 (256) to 0x8FF (2303). Unused for
        passthrough. Should be specified as a hexadecimal string with no "0x" prefix.
    """


_ClientUpdateChannelInputAttachmentsInputSettingsNetworkInputSettingsHlsInputSettingsTypeDef = TypedDict(
    "_ClientUpdateChannelInputAttachmentsInputSettingsNetworkInputSettingsHlsInputSettingsTypeDef",
    {"Bandwidth": int, "BufferSegments": int, "Retries": int, "RetryInterval": int},
    total=False,
)


class ClientUpdateChannelInputAttachmentsInputSettingsNetworkInputSettingsHlsInputSettingsTypeDef(
    _ClientUpdateChannelInputAttachmentsInputSettingsNetworkInputSettingsHlsInputSettingsTypeDef
):
    """
    Type definition for `ClientUpdateChannelInputAttachmentsInputSettingsNetworkInputSettings`
    `HlsInputSettings`

    - **Bandwidth** *(integer) --* When specified the HLS stream with the m3u8 BANDWIDTH that most
    closely matches this value will be chosen, otherwise the highest bandwidth stream in the m3u8
    will be chosen. The bitrate is specified in bits per second, as in an HLS manifest.

    - **BufferSegments** *(integer) --* When specified, reading of the HLS input will begin this
    many buffer segments from the end (most recently written segment). When not specified, the HLS
    input will begin with the first segment specified in the m3u8.

    - **Retries** *(integer) --* The number of consecutive times that attempts to read a manifest or
    segment must fail before the input is considered unavailable.

    - **RetryInterval** *(integer) --* The number of seconds between retries when an attempt to read
    a manifest or segment fails.
    """


_ClientUpdateChannelInputAttachmentsInputSettingsNetworkInputSettingsTypeDef = TypedDict(
    "_ClientUpdateChannelInputAttachmentsInputSettingsNetworkInputSettingsTypeDef",
    {
        "HlsInputSettings": ClientUpdateChannelInputAttachmentsInputSettingsNetworkInputSettingsHlsInputSettingsTypeDef,
        "ServerValidation": str,
    },
    total=False,
)


class ClientUpdateChannelInputAttachmentsInputSettingsNetworkInputSettingsTypeDef(
    _ClientUpdateChannelInputAttachmentsInputSettingsNetworkInputSettingsTypeDef
):
    """
    Type definition for `ClientUpdateChannelInputAttachmentsInputSettings` `NetworkInputSettings`

    - **HlsInputSettings** *(dict) --* Specifies HLS input settings when the uri is for a HLS
    manifest.

      - **Bandwidth** *(integer) --* When specified the HLS stream with the m3u8 BANDWIDTH that most
      closely matches this value will be chosen, otherwise the highest bandwidth stream in the m3u8
      will be chosen. The bitrate is specified in bits per second, as in an HLS manifest.

      - **BufferSegments** *(integer) --* When specified, reading of the HLS input will begin this
      many buffer segments from the end (most recently written segment). When not specified, the HLS
      input will begin with the first segment specified in the m3u8.

      - **Retries** *(integer) --* The number of consecutive times that attempts to read a manifest
      or segment must fail before the input is considered unavailable.

      - **RetryInterval** *(integer) --* The number of seconds between retries when an attempt to
      read a manifest or segment fails.

    - **ServerValidation** *(string) --* Check HTTPS server certificates. When set to
    checkCryptographyOnly, cryptography in the certificate will be checked, but not the server's
    name. Certain subdomains (notably S3 buckets that use dots in the bucket name) do not strictly
    match the corresponding certificate's wildcard pattern and would otherwise cause the event to
    error. This setting is ignored for protocols that do not use https.
    """


_ClientUpdateChannelInputAttachmentsInputSettingsVideoSelectorSelectorSettingsVideoSelectorPidTypeDef = TypedDict(
    "_ClientUpdateChannelInputAttachmentsInputSettingsVideoSelectorSelectorSettingsVideoSelectorPidTypeDef",
    {"Pid": int},
    total=False,
)


class ClientUpdateChannelInputAttachmentsInputSettingsVideoSelectorSelectorSettingsVideoSelectorPidTypeDef(
    _ClientUpdateChannelInputAttachmentsInputSettingsVideoSelectorSelectorSettingsVideoSelectorPidTypeDef
):
    """
    Type definition for
    `ClientUpdateChannelInputAttachmentsInputSettingsVideoSelectorSelectorSettings`
    `VideoSelectorPid`

    - **Pid** *(integer) --* Selects a specific PID from within a video source.
    """


_ClientUpdateChannelInputAttachmentsInputSettingsVideoSelectorSelectorSettingsVideoSelectorProgramIdTypeDef = TypedDict(
    "_ClientUpdateChannelInputAttachmentsInputSettingsVideoSelectorSelectorSettingsVideoSelectorProgramIdTypeDef",
    {"ProgramId": int},
    total=False,
)


class ClientUpdateChannelInputAttachmentsInputSettingsVideoSelectorSelectorSettingsVideoSelectorProgramIdTypeDef(
    _ClientUpdateChannelInputAttachmentsInputSettingsVideoSelectorSelectorSettingsVideoSelectorProgramIdTypeDef
):
    """
    Type definition for
    `ClientUpdateChannelInputAttachmentsInputSettingsVideoSelectorSelectorSettings`
    `VideoSelectorProgramId`

    - **ProgramId** *(integer) --* Selects a specific program from within a multi-program transport
    stream. If the program doesn't exist, the first program within the transport stream will be
    selected by default.
    """


_ClientUpdateChannelInputAttachmentsInputSettingsVideoSelectorSelectorSettingsTypeDef = TypedDict(
    "_ClientUpdateChannelInputAttachmentsInputSettingsVideoSelectorSelectorSettingsTypeDef",
    {
        "VideoSelectorPid": ClientUpdateChannelInputAttachmentsInputSettingsVideoSelectorSelectorSettingsVideoSelectorPidTypeDef,
        "VideoSelectorProgramId": ClientUpdateChannelInputAttachmentsInputSettingsVideoSelectorSelectorSettingsVideoSelectorProgramIdTypeDef,
    },
    total=False,
)


class ClientUpdateChannelInputAttachmentsInputSettingsVideoSelectorSelectorSettingsTypeDef(
    _ClientUpdateChannelInputAttachmentsInputSettingsVideoSelectorSelectorSettingsTypeDef
):
    """
    Type definition for `ClientUpdateChannelInputAttachmentsInputSettingsVideoSelector`
    `SelectorSettings`

    - **VideoSelectorPid** *(dict) --* Video Selector Pid

      - **Pid** *(integer) --* Selects a specific PID from within a video source.

    - **VideoSelectorProgramId** *(dict) --* Video Selector Program Id

      - **ProgramId** *(integer) --* Selects a specific program from within a multi-program
      transport stream. If the program doesn't exist, the first program within the transport stream
      will be selected by default.
    """


_ClientUpdateChannelInputAttachmentsInputSettingsVideoSelectorTypeDef = TypedDict(
    "_ClientUpdateChannelInputAttachmentsInputSettingsVideoSelectorTypeDef",
    {
        "ColorSpace": str,
        "ColorSpaceUsage": str,
        "SelectorSettings": ClientUpdateChannelInputAttachmentsInputSettingsVideoSelectorSelectorSettingsTypeDef,
    },
    total=False,
)


class ClientUpdateChannelInputAttachmentsInputSettingsVideoSelectorTypeDef(
    _ClientUpdateChannelInputAttachmentsInputSettingsVideoSelectorTypeDef
):
    """
    Type definition for `ClientUpdateChannelInputAttachmentsInputSettings` `VideoSelector`

    - **ColorSpace** *(string) --* Specifies the color space of an input. This setting works in
    tandem with colorSpaceUsage and a video description's colorSpaceSettingsChoice to determine if
    any conversion will be performed.

    - **ColorSpaceUsage** *(string) --* Applies only if colorSpace is a value other than follow.
    This field controls how the value in the colorSpace field will be used. fallback means that when
    the input does include color space data, that data will be used, but when the input has no color
    space data, the value in colorSpace will be used. Choose fallback if your input is sometimes
    missing color space data, but when it does have color space data, that data is correct. force
    means to always use the value in colorSpace. Choose force if your input usually has no color
    space data or might have unreliable color space data.

    - **SelectorSettings** *(dict) --* The video selector settings.

      - **VideoSelectorPid** *(dict) --* Video Selector Pid

        - **Pid** *(integer) --* Selects a specific PID from within a video source.

      - **VideoSelectorProgramId** *(dict) --* Video Selector Program Id

        - **ProgramId** *(integer) --* Selects a specific program from within a multi-program
        transport stream. If the program doesn't exist, the first program within the transport
        stream will be selected by default.
    """


_ClientUpdateChannelInputAttachmentsInputSettingsTypeDef = TypedDict(
    "_ClientUpdateChannelInputAttachmentsInputSettingsTypeDef",
    {
        "AudioSelectors": List[
            ClientUpdateChannelInputAttachmentsInputSettingsAudioSelectorsTypeDef
        ],
        "CaptionSelectors": List[
            ClientUpdateChannelInputAttachmentsInputSettingsCaptionSelectorsTypeDef
        ],
        "DeblockFilter": str,
        "DenoiseFilter": str,
        "FilterStrength": int,
        "InputFilter": str,
        "NetworkInputSettings": ClientUpdateChannelInputAttachmentsInputSettingsNetworkInputSettingsTypeDef,
        "SourceEndBehavior": str,
        "VideoSelector": ClientUpdateChannelInputAttachmentsInputSettingsVideoSelectorTypeDef,
    },
    total=False,
)


class ClientUpdateChannelInputAttachmentsInputSettingsTypeDef(
    _ClientUpdateChannelInputAttachmentsInputSettingsTypeDef
):
    """
    Type definition for `ClientUpdateChannelInputAttachments` `InputSettings`

    - **AudioSelectors** *(list) --* Used to select the audio stream to decode for inputs that have
    multiple available.

      - *(dict) --* Audio Selector

        - **Name** *(string) --* **[REQUIRED]** The name of this AudioSelector. AudioDescriptions
        will use this name to uniquely identify this Selector. Selector names should be unique per
        input.

        - **SelectorSettings** *(dict) --* The audio selector settings.

          - **AudioLanguageSelection** *(dict) --* Audio Language Selection

            - **LanguageCode** *(string) --* **[REQUIRED]** Selects a specific three-letter language
            code from within an audio source.

            - **LanguageSelectionPolicy** *(string) --* When set to "strict", the transport stream
            demux strictly identifies audio streams by their language descriptor. If a PMT update
            occurs such that an audio stream matching the initially selected language is no longer
            present then mute will be encoded until the language returns. If "loose", then on a PMT
            update the demux will choose another audio stream in the program with the same stream
            type if it can't find one with the same language.

          - **AudioPidSelection** *(dict) --* Audio Pid Selection

            - **Pid** *(integer) --* **[REQUIRED]** Selects a specific PID from within a source.

    - **CaptionSelectors** *(list) --* Used to select the caption input to use for inputs that have
    multiple available.

      - *(dict) --* Output groups for this Live Event. Output groups contain information about where
      streams should be distributed.

        - **LanguageCode** *(string) --* When specified this field indicates the three letter
        language code of the caption track to extract from the source.

        - **Name** *(string) --* **[REQUIRED]** Name identifier for a caption selector. This name is
        used to associate this caption selector with one or more caption descriptions. Names must be
        unique within an event.

        - **SelectorSettings** *(dict) --* Caption selector settings.

          - **AribSourceSettings** *(dict) --* Arib Source Settings

          - **DvbSubSourceSettings** *(dict) --* Dvb Sub Source Settings

            - **Pid** *(integer) --* When using DVB-Sub with Burn-In or SMPTE-TT, use this PID for
            the source content. Unused for DVB-Sub passthrough. All DVB-Sub content is passed
            through, regardless of selectors.

          - **EmbeddedSourceSettings** *(dict) --* Embedded Source Settings

            - **Convert608To708** *(string) --* If upconvert, 608 data is both passed through via
            the "608 compatibility bytes" fields of the 708 wrapper as well as translated into 708.
            708 data present in the source content will be discarded.

            - **Scte20Detection** *(string) --* Set to "auto" to handle streams with intermittent
            and/or non-aligned SCTE-20 and Embedded captions.

            - **Source608ChannelNumber** *(integer) --* Specifies the 608/708 channel number within
            the video track from which to extract captions. Unused for passthrough.

            - **Source608TrackNumber** *(integer) --* This field is unused and deprecated.

          - **Scte20SourceSettings** *(dict) --* Scte20 Source Settings

            - **Convert608To708** *(string) --* If upconvert, 608 data is both passed through via
            the "608 compatibility bytes" fields of the 708 wrapper as well as translated into 708.
            708 data present in the source content will be discarded.

            - **Source608ChannelNumber** *(integer) --* Specifies the 608/708 channel number within
            the video track from which to extract captions. Unused for passthrough.

          - **Scte27SourceSettings** *(dict) --* Scte27 Source Settings

            - **Pid** *(integer) --* The pid field is used in conjunction with the caption selector
            languageCode field as follows: - Specify PID and Language: Extracts captions from that
            PID; the language is "informational". - Specify PID and omit Language: Extracts the
            specified PID. - Omit PID and specify Language: Extracts the specified language,
            whichever PID that happens to be. - Omit PID and omit Language: Valid only if source is
            DVB-Sub that is being passed through; all languages will be passed through.

          - **TeletextSourceSettings** *(dict) --* Teletext Source Settings

            - **PageNumber** *(string) --* Specifies the teletext page number within the data stream
            from which to extract captions. Range of 0x100 (256) to 0x8FF (2303). Unused for
            passthrough. Should be specified as a hexadecimal string with no "0x" prefix.

    - **DeblockFilter** *(string) --* Enable or disable the deblock filter when filtering.

    - **DenoiseFilter** *(string) --* Enable or disable the denoise filter when filtering.

    - **FilterStrength** *(integer) --* Adjusts the magnitude of filtering from 1 (minimal) to 5
    (strongest).

    - **InputFilter** *(string) --* Turns on the filter for this input. MPEG-2 inputs have the
    deblocking filter enabled by default. 1) auto - filtering will be applied depending on input
    type/quality 2) disabled - no filtering will be applied to the input 3) forced - filtering will
    be applied regardless of input type

    - **NetworkInputSettings** *(dict) --* Input settings.

      - **HlsInputSettings** *(dict) --* Specifies HLS input settings when the uri is for a HLS
      manifest.

        - **Bandwidth** *(integer) --* When specified the HLS stream with the m3u8 BANDWIDTH that
        most closely matches this value will be chosen, otherwise the highest bandwidth stream in
        the m3u8 will be chosen. The bitrate is specified in bits per second, as in an HLS manifest.

        - **BufferSegments** *(integer) --* When specified, reading of the HLS input will begin this
        many buffer segments from the end (most recently written segment). When not specified, the
        HLS input will begin with the first segment specified in the m3u8.

        - **Retries** *(integer) --* The number of consecutive times that attempts to read a
        manifest or segment must fail before the input is considered unavailable.

        - **RetryInterval** *(integer) --* The number of seconds between retries when an attempt to
        read a manifest or segment fails.

      - **ServerValidation** *(string) --* Check HTTPS server certificates. When set to
      checkCryptographyOnly, cryptography in the certificate will be checked, but not the server's
      name. Certain subdomains (notably S3 buckets that use dots in the bucket name) do not strictly
      match the corresponding certificate's wildcard pattern and would otherwise cause the event to
      error. This setting is ignored for protocols that do not use https.

    - **SourceEndBehavior** *(string) --* Loop input if it is a file. This allows a file input to be
    streamed indefinitely.

    - **VideoSelector** *(dict) --* Informs which video elementary stream to decode for input types
    that have multiple available.

      - **ColorSpace** *(string) --* Specifies the color space of an input. This setting works in
      tandem with colorSpaceUsage and a video description's colorSpaceSettingsChoice to determine if
      any conversion will be performed.

      - **ColorSpaceUsage** *(string) --* Applies only if colorSpace is a value other than follow.
      This field controls how the value in the colorSpace field will be used. fallback means that
      when the input does include color space data, that data will be used, but when the input has
      no color space data, the value in colorSpace will be used. Choose fallback if your input is
      sometimes missing color space data, but when it does have color space data, that data is
      correct. force means to always use the value in colorSpace. Choose force if your input usually
      has no color space data or might have unreliable color space data.

      - **SelectorSettings** *(dict) --* The video selector settings.

        - **VideoSelectorPid** *(dict) --* Video Selector Pid

          - **Pid** *(integer) --* Selects a specific PID from within a video source.

        - **VideoSelectorProgramId** *(dict) --* Video Selector Program Id

          - **ProgramId** *(integer) --* Selects a specific program from within a multi-program
          transport stream. If the program doesn't exist, the first program within the transport
          stream will be selected by default.
    """


_ClientUpdateChannelInputAttachmentsTypeDef = TypedDict(
    "_ClientUpdateChannelInputAttachmentsTypeDef",
    {
        "InputAttachmentName": str,
        "InputId": str,
        "InputSettings": ClientUpdateChannelInputAttachmentsInputSettingsTypeDef,
    },
    total=False,
)


class ClientUpdateChannelInputAttachmentsTypeDef(_ClientUpdateChannelInputAttachmentsTypeDef):
    """
    Type definition for `ClientUpdateChannel` `InputAttachments`

    - **InputAttachmentName** *(string) --* User-specified name for the attachment. This is required
    if the user wants to use this input in an input switch action.

    - **InputId** *(string) --* The ID of the input

    - **InputSettings** *(dict) --* Settings of an input (caption selector, etc.)

      - **AudioSelectors** *(list) --* Used to select the audio stream to decode for inputs that
      have multiple available.

        - *(dict) --* Audio Selector

          - **Name** *(string) --* **[REQUIRED]** The name of this AudioSelector. AudioDescriptions
          will use this name to uniquely identify this Selector. Selector names should be unique per
          input.

          - **SelectorSettings** *(dict) --* The audio selector settings.

            - **AudioLanguageSelection** *(dict) --* Audio Language Selection

              - **LanguageCode** *(string) --* **[REQUIRED]** Selects a specific three-letter
              language code from within an audio source.

              - **LanguageSelectionPolicy** *(string) --* When set to "strict", the transport stream
              demux strictly identifies audio streams by their language descriptor. If a PMT update
              occurs such that an audio stream matching the initially selected language is no longer
              present then mute will be encoded until the language returns. If "loose", then on a
              PMT update the demux will choose another audio stream in the program with the same
              stream type if it can't find one with the same language.

            - **AudioPidSelection** *(dict) --* Audio Pid Selection

              - **Pid** *(integer) --* **[REQUIRED]** Selects a specific PID from within a source.

      - **CaptionSelectors** *(list) --* Used to select the caption input to use for inputs that
      have multiple available.

        - *(dict) --* Output groups for this Live Event. Output groups contain information about
        where streams should be distributed.

          - **LanguageCode** *(string) --* When specified this field indicates the three letter
          language code of the caption track to extract from the source.

          - **Name** *(string) --* **[REQUIRED]** Name identifier for a caption selector. This name
          is used to associate this caption selector with one or more caption descriptions. Names
          must be unique within an event.

          - **SelectorSettings** *(dict) --* Caption selector settings.

            - **AribSourceSettings** *(dict) --* Arib Source Settings

            - **DvbSubSourceSettings** *(dict) --* Dvb Sub Source Settings

              - **Pid** *(integer) --* When using DVB-Sub with Burn-In or SMPTE-TT, use this PID for
              the source content. Unused for DVB-Sub passthrough. All DVB-Sub content is passed
              through, regardless of selectors.

            - **EmbeddedSourceSettings** *(dict) --* Embedded Source Settings

              - **Convert608To708** *(string) --* If upconvert, 608 data is both passed through via
              the "608 compatibility bytes" fields of the 708 wrapper as well as translated into
              708. 708 data present in the source content will be discarded.

              - **Scte20Detection** *(string) --* Set to "auto" to handle streams with intermittent
              and/or non-aligned SCTE-20 and Embedded captions.

              - **Source608ChannelNumber** *(integer) --* Specifies the 608/708 channel number
              within the video track from which to extract captions. Unused for passthrough.

              - **Source608TrackNumber** *(integer) --* This field is unused and deprecated.

            - **Scte20SourceSettings** *(dict) --* Scte20 Source Settings

              - **Convert608To708** *(string) --* If upconvert, 608 data is both passed through via
              the "608 compatibility bytes" fields of the 708 wrapper as well as translated into
              708. 708 data present in the source content will be discarded.

              - **Source608ChannelNumber** *(integer) --* Specifies the 608/708 channel number
              within the video track from which to extract captions. Unused for passthrough.

            - **Scte27SourceSettings** *(dict) --* Scte27 Source Settings

              - **Pid** *(integer) --* The pid field is used in conjunction with the caption
              selector languageCode field as follows: - Specify PID and Language: Extracts captions
              from that PID; the language is "informational". - Specify PID and omit Language:
              Extracts the specified PID. - Omit PID and specify Language: Extracts the specified
              language, whichever PID that happens to be. - Omit PID and omit Language: Valid only
              if source is DVB-Sub that is being passed through; all languages will be passed
              through.

            - **TeletextSourceSettings** *(dict) --* Teletext Source Settings

              - **PageNumber** *(string) --* Specifies the teletext page number within the data
              stream from which to extract captions. Range of 0x100 (256) to 0x8FF (2303). Unused
              for passthrough. Should be specified as a hexadecimal string with no "0x" prefix.

      - **DeblockFilter** *(string) --* Enable or disable the deblock filter when filtering.

      - **DenoiseFilter** *(string) --* Enable or disable the denoise filter when filtering.

      - **FilterStrength** *(integer) --* Adjusts the magnitude of filtering from 1 (minimal) to 5
      (strongest).

      - **InputFilter** *(string) --* Turns on the filter for this input. MPEG-2 inputs have the
      deblocking filter enabled by default. 1) auto - filtering will be applied depending on input
      type/quality 2) disabled - no filtering will be applied to the input 3) forced - filtering
      will be applied regardless of input type

      - **NetworkInputSettings** *(dict) --* Input settings.

        - **HlsInputSettings** *(dict) --* Specifies HLS input settings when the uri is for a HLS
        manifest.

          - **Bandwidth** *(integer) --* When specified the HLS stream with the m3u8 BANDWIDTH that
          most closely matches this value will be chosen, otherwise the highest bandwidth stream in
          the m3u8 will be chosen. The bitrate is specified in bits per second, as in an HLS
          manifest.

          - **BufferSegments** *(integer) --* When specified, reading of the HLS input will begin
          this many buffer segments from the end (most recently written segment). When not
          specified, the HLS input will begin with the first segment specified in the m3u8.

          - **Retries** *(integer) --* The number of consecutive times that attempts to read a
          manifest or segment must fail before the input is considered unavailable.

          - **RetryInterval** *(integer) --* The number of seconds between retries when an attempt
          to read a manifest or segment fails.

        - **ServerValidation** *(string) --* Check HTTPS server certificates. When set to
        checkCryptographyOnly, cryptography in the certificate will be checked, but not the server's
        name. Certain subdomains (notably S3 buckets that use dots in the bucket name) do not
        strictly match the corresponding certificate's wildcard pattern and would otherwise cause
        the event to error. This setting is ignored for protocols that do not use https.

      - **SourceEndBehavior** *(string) --* Loop input if it is a file. This allows a file input to
      be streamed indefinitely.

      - **VideoSelector** *(dict) --* Informs which video elementary stream to decode for input
      types that have multiple available.

        - **ColorSpace** *(string) --* Specifies the color space of an input. This setting works in
        tandem with colorSpaceUsage and a video description's colorSpaceSettingsChoice to determine
        if any conversion will be performed.

        - **ColorSpaceUsage** *(string) --* Applies only if colorSpace is a value other than follow.
        This field controls how the value in the colorSpace field will be used. fallback means that
        when the input does include color space data, that data will be used, but when the input has
        no color space data, the value in colorSpace will be used. Choose fallback if your input is
        sometimes missing color space data, but when it does have color space data, that data is
        correct. force means to always use the value in colorSpace. Choose force if your input
        usually has no color space data or might have unreliable color space data.

        - **SelectorSettings** *(dict) --* The video selector settings.

          - **VideoSelectorPid** *(dict) --* Video Selector Pid

            - **Pid** *(integer) --* Selects a specific PID from within a video source.

          - **VideoSelectorProgramId** *(dict) --* Video Selector Program Id

            - **ProgramId** *(integer) --* Selects a specific program from within a multi-program
            transport stream. If the program doesn't exist, the first program within the transport
            stream will be selected by default.
    """


_ClientUpdateChannelInputSpecificationTypeDef = TypedDict(
    "_ClientUpdateChannelInputSpecificationTypeDef",
    {"Codec": str, "MaximumBitrate": str, "Resolution": str},
    total=False,
)


class ClientUpdateChannelInputSpecificationTypeDef(_ClientUpdateChannelInputSpecificationTypeDef):
    """
    Type definition for `ClientUpdateChannel` `InputSpecification`

    - **Codec** *(string) --* Input codec

    - **MaximumBitrate** *(string) --* Maximum input bitrate, categorized coarsely

    - **Resolution** *(string) --* Input resolution, categorized coarsely
    """


_ClientUpdateChannelResponseChannelDestinationsMediaPackageSettingsTypeDef = TypedDict(
    "_ClientUpdateChannelResponseChannelDestinationsMediaPackageSettingsTypeDef",
    {"ChannelId": str},
    total=False,
)


class ClientUpdateChannelResponseChannelDestinationsMediaPackageSettingsTypeDef(
    _ClientUpdateChannelResponseChannelDestinationsMediaPackageSettingsTypeDef
):
    """
    Type definition for `ClientUpdateChannelResponseChannelDestinations` `MediaPackageSettings`

    - **ChannelId** *(string) --* ID of the channel in MediaPackage that is the destination for this
    output group. You do not need to specify the individual inputs in MediaPackage; MediaLive will
    handle the connection of the two MediaLive pipelines to the two MediaPackage inputs. The
    MediaPackage channel and MediaLive channel must be in the same region.
    """


_ClientUpdateChannelResponseChannelDestinationsMultiplexSettingsTypeDef = TypedDict(
    "_ClientUpdateChannelResponseChannelDestinationsMultiplexSettingsTypeDef",
    {"MultiplexId": str, "ProgramName": str},
    total=False,
)


class ClientUpdateChannelResponseChannelDestinationsMultiplexSettingsTypeDef(
    _ClientUpdateChannelResponseChannelDestinationsMultiplexSettingsTypeDef
):
    """
    Type definition for `ClientUpdateChannelResponseChannelDestinations` `MultiplexSettings`

    - **MultiplexId** *(string) --* The ID of the Multiplex that the encoder is providing output to.
    You do not need to specify the individual inputs to the Multiplex; MediaLive will handle the
    connection of the two MediaLive pipelines to the two Multiplex instances. The Multiplex must be
    in the same region as the Channel.

    - **ProgramName** *(string) --* The program name of the Multiplex program that the encoder is
    providing output to.
    """


_ClientUpdateChannelResponseChannelDestinationsSettingsTypeDef = TypedDict(
    "_ClientUpdateChannelResponseChannelDestinationsSettingsTypeDef",
    {"PasswordParam": str, "StreamName": str, "Url": str, "Username": str},
    total=False,
)


class ClientUpdateChannelResponseChannelDestinationsSettingsTypeDef(
    _ClientUpdateChannelResponseChannelDestinationsSettingsTypeDef
):
    """
    Type definition for `ClientUpdateChannelResponseChannelDestinations` `Settings`

    - **PasswordParam** *(string) --* key used to extract the password from EC2 Parameter store

    - **StreamName** *(string) --* Stream name for RTMP destinations (URLs of type rtmp://)

    - **Url** *(string) --* A URL specifying a destination

    - **Username** *(string) --* username for destination
    """


_ClientUpdateChannelResponseChannelDestinationsTypeDef = TypedDict(
    "_ClientUpdateChannelResponseChannelDestinationsTypeDef",
    {
        "Id": str,
        "MediaPackageSettings": List[
            ClientUpdateChannelResponseChannelDestinationsMediaPackageSettingsTypeDef
        ],
        "MultiplexSettings": ClientUpdateChannelResponseChannelDestinationsMultiplexSettingsTypeDef,
        "Settings": List[ClientUpdateChannelResponseChannelDestinationsSettingsTypeDef],
    },
    total=False,
)


class ClientUpdateChannelResponseChannelDestinationsTypeDef(
    _ClientUpdateChannelResponseChannelDestinationsTypeDef
):
    """
    Type definition for `ClientUpdateChannelResponseChannel` `Destinations`

    - **Id** *(string) --* User-specified id. This is used in an output group or an output.

    - **MediaPackageSettings** *(list) --* Destination settings for a MediaPackage output; one
    destination for both encoders.

      - *(dict) --* MediaPackage Output Destination Settings

        - **ChannelId** *(string) --* ID of the channel in MediaPackage that is the destination for
        this output group. You do not need to specify the individual inputs in MediaPackage;
        MediaLive will handle the connection of the two MediaLive pipelines to the two MediaPackage
        inputs. The MediaPackage channel and MediaLive channel must be in the same region.

    - **MultiplexSettings** *(dict) --* Destination settings for a Multiplex output; one destination
    for both encoders.

      - **MultiplexId** *(string) --* The ID of the Multiplex that the encoder is providing output
      to. You do not need to specify the individual inputs to the Multiplex; MediaLive will handle
      the connection of the two MediaLive pipelines to the two Multiplex instances. The Multiplex
      must be in the same region as the Channel.

      - **ProgramName** *(string) --* The program name of the Multiplex program that the encoder is
      providing output to.

    - **Settings** *(list) --* Destination settings for a standard output; one destination for each
    redundant encoder.

      - *(dict) --* Placeholder documentation for OutputDestinationSettings

        - **PasswordParam** *(string) --* key used to extract the password from EC2 Parameter store

        - **StreamName** *(string) --* Stream name for RTMP destinations (URLs of type rtmp://)

        - **Url** *(string) --* A URL specifying a destination

        - **Username** *(string) --* username for destination
    """


_ClientUpdateChannelResponseChannelEgressEndpointsTypeDef = TypedDict(
    "_ClientUpdateChannelResponseChannelEgressEndpointsTypeDef", {"SourceIp": str}, total=False
)


class ClientUpdateChannelResponseChannelEgressEndpointsTypeDef(
    _ClientUpdateChannelResponseChannelEgressEndpointsTypeDef
):
    """
    Type definition for `ClientUpdateChannelResponseChannel` `EgressEndpoints`

    - **SourceIp** *(string) --* Public IP of where a channel's output comes from
    """


_ClientUpdateChannelResponseChannelEncoderSettingsAudioDescriptionsAudioNormalizationSettingsTypeDef = TypedDict(
    "_ClientUpdateChannelResponseChannelEncoderSettingsAudioDescriptionsAudioNormalizationSettingsTypeDef",
    {"Algorithm": str, "AlgorithmControl": str, "TargetLkfs": float},
    total=False,
)


class ClientUpdateChannelResponseChannelEncoderSettingsAudioDescriptionsAudioNormalizationSettingsTypeDef(
    _ClientUpdateChannelResponseChannelEncoderSettingsAudioDescriptionsAudioNormalizationSettingsTypeDef
):
    """
    Type definition for `ClientUpdateChannelResponseChannelEncoderSettingsAudioDescriptions`
    `AudioNormalizationSettings`

    - **Algorithm** *(string) --* Audio normalization algorithm to use. itu17701 conforms to the
    CALM Act specification, itu17702 conforms to the EBU R-128 specification.

    - **AlgorithmControl** *(string) --* When set to correctAudio the output audio is corrected
    using the chosen algorithm. If set to measureOnly, the audio will be measured but not adjusted.

    - **TargetLkfs** *(float) --* Target LKFS(loudness) to adjust volume to. If no value is entered,
    a default value will be used according to the chosen algorithm. The CALM Act (1770-1) recommends
    a target of -24 LKFS. The EBU R-128 specification (1770-2) recommends a target of -23 LKFS.
    """


_ClientUpdateChannelResponseChannelEncoderSettingsAudioDescriptionsCodecSettingsAacSettingsTypeDef = TypedDict(
    "_ClientUpdateChannelResponseChannelEncoderSettingsAudioDescriptionsCodecSettingsAacSettingsTypeDef",
    {
        "Bitrate": float,
        "CodingMode": str,
        "InputType": str,
        "Profile": str,
        "RateControlMode": str,
        "RawFormat": str,
        "SampleRate": float,
        "Spec": str,
        "VbrQuality": str,
    },
    total=False,
)


class ClientUpdateChannelResponseChannelEncoderSettingsAudioDescriptionsCodecSettingsAacSettingsTypeDef(
    _ClientUpdateChannelResponseChannelEncoderSettingsAudioDescriptionsCodecSettingsAacSettingsTypeDef
):
    """
    Type definition for
    `ClientUpdateChannelResponseChannelEncoderSettingsAudioDescriptionsCodecSettings` `AacSettings`

    - **Bitrate** *(float) --* Average bitrate in bits/second. Valid values depend on rate control
    mode and profile.

    - **CodingMode** *(string) --* Mono, Stereo, or 5.1 channel layout. Valid values depend on rate
    control mode and profile. The adReceiverMix setting receives a stereo description plus control
    track and emits a mono AAC encode of the description track, with control data emitted in the PES
    header as per ETSI TS 101 154 Annex E.

    - **InputType** *(string) --* Set to "broadcasterMixedAd" when input contains pre-mixed main
    audio + AD (narration) as a stereo pair. The Audio Type field (audioType) will be set to 3,
    which signals to downstream systems that this stream contains "broadcaster mixed AD". Note that
    the input received by the encoder must contain pre-mixed audio; the encoder does not perform the
    mixing. The values in audioTypeControl and audioType (in AudioDescription) are ignored when set
    to broadcasterMixedAd. Leave set to "normal" when input does not contain pre-mixed audio + AD.

    - **Profile** *(string) --* AAC Profile.

    - **RateControlMode** *(string) --* Rate Control Mode.

    - **RawFormat** *(string) --* Sets LATM / LOAS AAC output for raw containers.

    - **SampleRate** *(float) --* Sample rate in Hz. Valid values depend on rate control mode and
    profile.

    - **Spec** *(string) --* Use MPEG-2 AAC audio instead of MPEG-4 AAC audio for raw or MPEG-2
    Transport Stream containers.

    - **VbrQuality** *(string) --* VBR Quality Level - Only used if rateControlMode is VBR.
    """


_ClientUpdateChannelResponseChannelEncoderSettingsAudioDescriptionsCodecSettingsAc3SettingsTypeDef = TypedDict(
    "_ClientUpdateChannelResponseChannelEncoderSettingsAudioDescriptionsCodecSettingsAc3SettingsTypeDef",
    {
        "Bitrate": float,
        "BitstreamMode": str,
        "CodingMode": str,
        "Dialnorm": int,
        "DrcProfile": str,
        "LfeFilter": str,
        "MetadataControl": str,
    },
    total=False,
)


class ClientUpdateChannelResponseChannelEncoderSettingsAudioDescriptionsCodecSettingsAc3SettingsTypeDef(
    _ClientUpdateChannelResponseChannelEncoderSettingsAudioDescriptionsCodecSettingsAc3SettingsTypeDef
):
    """
    Type definition for
    `ClientUpdateChannelResponseChannelEncoderSettingsAudioDescriptionsCodecSettings` `Ac3Settings`

    - **Bitrate** *(float) --* Average bitrate in bits/second. Valid bitrates depend on the coding
    mode.

    - **BitstreamMode** *(string) --* Specifies the bitstream mode (bsmod) for the emitted AC-3
    stream. See ATSC A/52-2012 for background on these values.

    - **CodingMode** *(string) --* Dolby Digital coding mode. Determines number of channels.

    - **Dialnorm** *(integer) --* Sets the dialnorm for the output. If excluded and input audio is
    Dolby Digital, dialnorm will be passed through.

    - **DrcProfile** *(string) --* If set to filmStandard, adds dynamic range compression signaling
    to the output bitstream as defined in the Dolby Digital specification.

    - **LfeFilter** *(string) --* When set to enabled, applies a 120Hz lowpass filter to the LFE
    channel prior to encoding. Only valid in codingMode32Lfe mode.

    - **MetadataControl** *(string) --* When set to "followInput", encoder metadata will be sourced
    from the DD, DD+, or DolbyE decoder that supplied this audio data. If audio was not supplied
    from one of these streams, then the static metadata settings will be used.
    """


_ClientUpdateChannelResponseChannelEncoderSettingsAudioDescriptionsCodecSettingsEac3SettingsTypeDef = TypedDict(
    "_ClientUpdateChannelResponseChannelEncoderSettingsAudioDescriptionsCodecSettingsEac3SettingsTypeDef",
    {
        "AttenuationControl": str,
        "Bitrate": float,
        "BitstreamMode": str,
        "CodingMode": str,
        "DcFilter": str,
        "Dialnorm": int,
        "DrcLine": str,
        "DrcRf": str,
        "LfeControl": str,
        "LfeFilter": str,
        "LoRoCenterMixLevel": float,
        "LoRoSurroundMixLevel": float,
        "LtRtCenterMixLevel": float,
        "LtRtSurroundMixLevel": float,
        "MetadataControl": str,
        "PassthroughControl": str,
        "PhaseControl": str,
        "StereoDownmix": str,
        "SurroundExMode": str,
        "SurroundMode": str,
    },
    total=False,
)


class ClientUpdateChannelResponseChannelEncoderSettingsAudioDescriptionsCodecSettingsEac3SettingsTypeDef(
    _ClientUpdateChannelResponseChannelEncoderSettingsAudioDescriptionsCodecSettingsEac3SettingsTypeDef
):
    """
    Type definition for
    `ClientUpdateChannelResponseChannelEncoderSettingsAudioDescriptionsCodecSettings` `Eac3Settings`

    - **AttenuationControl** *(string) --* When set to attenuate3Db, applies a 3 dB attenuation to
    the surround channels. Only used for 3/2 coding mode.

    - **Bitrate** *(float) --* Average bitrate in bits/second. Valid bitrates depend on the coding
    mode.

    - **BitstreamMode** *(string) --* Specifies the bitstream mode (bsmod) for the emitted E-AC-3
    stream. See ATSC A/52-2012 (Annex E) for background on these values.

    - **CodingMode** *(string) --* Dolby Digital Plus coding mode. Determines number of channels.

    - **DcFilter** *(string) --* When set to enabled, activates a DC highpass filter for all input
    channels.

    - **Dialnorm** *(integer) --* Sets the dialnorm for the output. If blank and input audio is
    Dolby Digital Plus, dialnorm will be passed through.

    - **DrcLine** *(string) --* Sets the Dolby dynamic range compression profile.

    - **DrcRf** *(string) --* Sets the profile for heavy Dolby dynamic range compression, ensures
    that the instantaneous signal peaks do not exceed specified levels.

    - **LfeControl** *(string) --* When encoding 3/2 audio, setting to lfe enables the LFE channel

    - **LfeFilter** *(string) --* When set to enabled, applies a 120Hz lowpass filter to the LFE
    channel prior to encoding. Only valid with codingMode32 coding mode.

    - **LoRoCenterMixLevel** *(float) --* Left only/Right only center mix level. Only used for 3/2
    coding mode.

    - **LoRoSurroundMixLevel** *(float) --* Left only/Right only surround mix level. Only used for
    3/2 coding mode.

    - **LtRtCenterMixLevel** *(float) --* Left total/Right total center mix level. Only used for 3/2
    coding mode.

    - **LtRtSurroundMixLevel** *(float) --* Left total/Right total surround mix level. Only used for
    3/2 coding mode.

    - **MetadataControl** *(string) --* When set to followInput, encoder metadata will be sourced
    from the DD, DD+, or DolbyE decoder that supplied this audio data. If audio was not supplied
    from one of these streams, then the static metadata settings will be used.

    - **PassthroughControl** *(string) --* When set to whenPossible, input DD+ audio will be passed
    through if it is present on the input. This detection is dynamic over the life of the transcode.
    Inputs that alternate between DD+ and non-DD+ content will have a consistent DD+ output as the
    system alternates between passthrough and encoding.

    - **PhaseControl** *(string) --* When set to shift90Degrees, applies a 90-degree phase shift to
    the surround channels. Only used for 3/2 coding mode.

    - **StereoDownmix** *(string) --* Stereo downmix preference. Only used for 3/2 coding mode.

    - **SurroundExMode** *(string) --* When encoding 3/2 audio, sets whether an extra center back
    surround channel is matrix encoded into the left and right surround channels.

    - **SurroundMode** *(string) --* When encoding 2/0 audio, sets whether Dolby Surround is matrix
    encoded into the two channels.
    """


_ClientUpdateChannelResponseChannelEncoderSettingsAudioDescriptionsCodecSettingsMp2SettingsTypeDef = TypedDict(
    "_ClientUpdateChannelResponseChannelEncoderSettingsAudioDescriptionsCodecSettingsMp2SettingsTypeDef",
    {"Bitrate": float, "CodingMode": str, "SampleRate": float},
    total=False,
)


class ClientUpdateChannelResponseChannelEncoderSettingsAudioDescriptionsCodecSettingsMp2SettingsTypeDef(
    _ClientUpdateChannelResponseChannelEncoderSettingsAudioDescriptionsCodecSettingsMp2SettingsTypeDef
):
    """
    Type definition for
    `ClientUpdateChannelResponseChannelEncoderSettingsAudioDescriptionsCodecSettings` `Mp2Settings`

    - **Bitrate** *(float) --* Average bitrate in bits/second.

    - **CodingMode** *(string) --* The MPEG2 Audio coding mode. Valid values are codingMode10 (for
    mono) or codingMode20 (for stereo).

    - **SampleRate** *(float) --* Sample rate in Hz.
    """


_ClientUpdateChannelResponseChannelEncoderSettingsAudioDescriptionsCodecSettingsTypeDef = TypedDict(
    "_ClientUpdateChannelResponseChannelEncoderSettingsAudioDescriptionsCodecSettingsTypeDef",
    {
        "AacSettings": ClientUpdateChannelResponseChannelEncoderSettingsAudioDescriptionsCodecSettingsAacSettingsTypeDef,
        "Ac3Settings": ClientUpdateChannelResponseChannelEncoderSettingsAudioDescriptionsCodecSettingsAc3SettingsTypeDef,
        "Eac3Settings": ClientUpdateChannelResponseChannelEncoderSettingsAudioDescriptionsCodecSettingsEac3SettingsTypeDef,
        "Mp2Settings": ClientUpdateChannelResponseChannelEncoderSettingsAudioDescriptionsCodecSettingsMp2SettingsTypeDef,
        "PassThroughSettings": Dict[str, Any],
    },
    total=False,
)


class ClientUpdateChannelResponseChannelEncoderSettingsAudioDescriptionsCodecSettingsTypeDef(
    _ClientUpdateChannelResponseChannelEncoderSettingsAudioDescriptionsCodecSettingsTypeDef
):
    """
    Type definition for `ClientUpdateChannelResponseChannelEncoderSettingsAudioDescriptions`
    `CodecSettings`

    - **AacSettings** *(dict) --* Aac Settings

      - **Bitrate** *(float) --* Average bitrate in bits/second. Valid values depend on rate control
      mode and profile.

      - **CodingMode** *(string) --* Mono, Stereo, or 5.1 channel layout. Valid values depend on
      rate control mode and profile. The adReceiverMix setting receives a stereo description plus
      control track and emits a mono AAC encode of the description track, with control data emitted
      in the PES header as per ETSI TS 101 154 Annex E.

      - **InputType** *(string) --* Set to "broadcasterMixedAd" when input contains pre-mixed main
      audio + AD (narration) as a stereo pair. The Audio Type field (audioType) will be set to 3,
      which signals to downstream systems that this stream contains "broadcaster mixed AD". Note
      that the input received by the encoder must contain pre-mixed audio; the encoder does not
      perform the mixing. The values in audioTypeControl and audioType (in AudioDescription) are
      ignored when set to broadcasterMixedAd. Leave set to "normal" when input does not contain
      pre-mixed audio + AD.

      - **Profile** *(string) --* AAC Profile.

      - **RateControlMode** *(string) --* Rate Control Mode.

      - **RawFormat** *(string) --* Sets LATM / LOAS AAC output for raw containers.

      - **SampleRate** *(float) --* Sample rate in Hz. Valid values depend on rate control mode and
      profile.

      - **Spec** *(string) --* Use MPEG-2 AAC audio instead of MPEG-4 AAC audio for raw or MPEG-2
      Transport Stream containers.

      - **VbrQuality** *(string) --* VBR Quality Level - Only used if rateControlMode is VBR.

    - **Ac3Settings** *(dict) --* Ac3 Settings

      - **Bitrate** *(float) --* Average bitrate in bits/second. Valid bitrates depend on the coding
      mode.

      - **BitstreamMode** *(string) --* Specifies the bitstream mode (bsmod) for the emitted AC-3
      stream. See ATSC A/52-2012 for background on these values.

      - **CodingMode** *(string) --* Dolby Digital coding mode. Determines number of channels.

      - **Dialnorm** *(integer) --* Sets the dialnorm for the output. If excluded and input audio is
      Dolby Digital, dialnorm will be passed through.

      - **DrcProfile** *(string) --* If set to filmStandard, adds dynamic range compression
      signaling to the output bitstream as defined in the Dolby Digital specification.

      - **LfeFilter** *(string) --* When set to enabled, applies a 120Hz lowpass filter to the LFE
      channel prior to encoding. Only valid in codingMode32Lfe mode.

      - **MetadataControl** *(string) --* When set to "followInput", encoder metadata will be
      sourced from the DD, DD+, or DolbyE decoder that supplied this audio data. If audio was not
      supplied from one of these streams, then the static metadata settings will be used.

    - **Eac3Settings** *(dict) --* Eac3 Settings

      - **AttenuationControl** *(string) --* When set to attenuate3Db, applies a 3 dB attenuation to
      the surround channels. Only used for 3/2 coding mode.

      - **Bitrate** *(float) --* Average bitrate in bits/second. Valid bitrates depend on the coding
      mode.

      - **BitstreamMode** *(string) --* Specifies the bitstream mode (bsmod) for the emitted E-AC-3
      stream. See ATSC A/52-2012 (Annex E) for background on these values.

      - **CodingMode** *(string) --* Dolby Digital Plus coding mode. Determines number of channels.

      - **DcFilter** *(string) --* When set to enabled, activates a DC highpass filter for all input
      channels.

      - **Dialnorm** *(integer) --* Sets the dialnorm for the output. If blank and input audio is
      Dolby Digital Plus, dialnorm will be passed through.

      - **DrcLine** *(string) --* Sets the Dolby dynamic range compression profile.

      - **DrcRf** *(string) --* Sets the profile for heavy Dolby dynamic range compression, ensures
      that the instantaneous signal peaks do not exceed specified levels.

      - **LfeControl** *(string) --* When encoding 3/2 audio, setting to lfe enables the LFE channel

      - **LfeFilter** *(string) --* When set to enabled, applies a 120Hz lowpass filter to the LFE
      channel prior to encoding. Only valid with codingMode32 coding mode.

      - **LoRoCenterMixLevel** *(float) --* Left only/Right only center mix level. Only used for 3/2
      coding mode.

      - **LoRoSurroundMixLevel** *(float) --* Left only/Right only surround mix level. Only used for
      3/2 coding mode.

      - **LtRtCenterMixLevel** *(float) --* Left total/Right total center mix level. Only used for
      3/2 coding mode.

      - **LtRtSurroundMixLevel** *(float) --* Left total/Right total surround mix level. Only used
      for 3/2 coding mode.

      - **MetadataControl** *(string) --* When set to followInput, encoder metadata will be sourced
      from the DD, DD+, or DolbyE decoder that supplied this audio data. If audio was not supplied
      from one of these streams, then the static metadata settings will be used.

      - **PassthroughControl** *(string) --* When set to whenPossible, input DD+ audio will be
      passed through if it is present on the input. This detection is dynamic over the life of the
      transcode. Inputs that alternate between DD+ and non-DD+ content will have a consistent DD+
      output as the system alternates between passthrough and encoding.

      - **PhaseControl** *(string) --* When set to shift90Degrees, applies a 90-degree phase shift
      to the surround channels. Only used for 3/2 coding mode.

      - **StereoDownmix** *(string) --* Stereo downmix preference. Only used for 3/2 coding mode.

      - **SurroundExMode** *(string) --* When encoding 3/2 audio, sets whether an extra center back
      surround channel is matrix encoded into the left and right surround channels.

      - **SurroundMode** *(string) --* When encoding 2/0 audio, sets whether Dolby Surround is
      matrix encoded into the two channels.

    - **Mp2Settings** *(dict) --* Mp2 Settings

      - **Bitrate** *(float) --* Average bitrate in bits/second.

      - **CodingMode** *(string) --* The MPEG2 Audio coding mode. Valid values are codingMode10 (for
      mono) or codingMode20 (for stereo).

      - **SampleRate** *(float) --* Sample rate in Hz.

    - **PassThroughSettings** *(dict) --* Pass Through Settings
    """


_ClientUpdateChannelResponseChannelEncoderSettingsAudioDescriptionsRemixSettingsChannelMappingsInputChannelLevelsTypeDef = TypedDict(
    "_ClientUpdateChannelResponseChannelEncoderSettingsAudioDescriptionsRemixSettingsChannelMappingsInputChannelLevelsTypeDef",
    {"Gain": int, "InputChannel": int},
    total=False,
)


class ClientUpdateChannelResponseChannelEncoderSettingsAudioDescriptionsRemixSettingsChannelMappingsInputChannelLevelsTypeDef(
    _ClientUpdateChannelResponseChannelEncoderSettingsAudioDescriptionsRemixSettingsChannelMappingsInputChannelLevelsTypeDef
):
    """
    Type definition for
    `ClientUpdateChannelResponseChannelEncoderSettingsAudioDescriptionsRemixSettingsChannelMappings`
    `InputChannelLevels`

    - **Gain** *(integer) --* Remixing value. Units are in dB and acceptable values are within the
    range from -60 (mute) and 6 dB.

    - **InputChannel** *(integer) --* The index of the input channel used as a source.
    """


_ClientUpdateChannelResponseChannelEncoderSettingsAudioDescriptionsRemixSettingsChannelMappingsTypeDef = TypedDict(
    "_ClientUpdateChannelResponseChannelEncoderSettingsAudioDescriptionsRemixSettingsChannelMappingsTypeDef",
    {
        "InputChannelLevels": List[
            ClientUpdateChannelResponseChannelEncoderSettingsAudioDescriptionsRemixSettingsChannelMappingsInputChannelLevelsTypeDef
        ],
        "OutputChannel": int,
    },
    total=False,
)


class ClientUpdateChannelResponseChannelEncoderSettingsAudioDescriptionsRemixSettingsChannelMappingsTypeDef(
    _ClientUpdateChannelResponseChannelEncoderSettingsAudioDescriptionsRemixSettingsChannelMappingsTypeDef
):
    """
    Type definition for
    `ClientUpdateChannelResponseChannelEncoderSettingsAudioDescriptionsRemixSettings`
    `ChannelMappings`

    - **InputChannelLevels** *(list) --* Indices and gain values for each input channel that should
    be remixed into this output channel.

      - *(dict) --* Input Channel Level

        - **Gain** *(integer) --* Remixing value. Units are in dB and acceptable values are within
        the range from -60 (mute) and 6 dB.

        - **InputChannel** *(integer) --* The index of the input channel used as a source.

    - **OutputChannel** *(integer) --* The index of the output channel being produced.
    """


_ClientUpdateChannelResponseChannelEncoderSettingsAudioDescriptionsRemixSettingsTypeDef = TypedDict(
    "_ClientUpdateChannelResponseChannelEncoderSettingsAudioDescriptionsRemixSettingsTypeDef",
    {
        "ChannelMappings": List[
            ClientUpdateChannelResponseChannelEncoderSettingsAudioDescriptionsRemixSettingsChannelMappingsTypeDef
        ],
        "ChannelsIn": int,
        "ChannelsOut": int,
    },
    total=False,
)


class ClientUpdateChannelResponseChannelEncoderSettingsAudioDescriptionsRemixSettingsTypeDef(
    _ClientUpdateChannelResponseChannelEncoderSettingsAudioDescriptionsRemixSettingsTypeDef
):
    """
    Type definition for `ClientUpdateChannelResponseChannelEncoderSettingsAudioDescriptions`
    `RemixSettings`

    - **ChannelMappings** *(list) --* Mapping of input channels to output channels, with appropriate
    gain adjustments.

      - *(dict) --* Audio Channel Mapping

        - **InputChannelLevels** *(list) --* Indices and gain values for each input channel that
        should be remixed into this output channel.

          - *(dict) --* Input Channel Level

            - **Gain** *(integer) --* Remixing value. Units are in dB and acceptable values are
            within the range from -60 (mute) and 6 dB.

            - **InputChannel** *(integer) --* The index of the input channel used as a source.

        - **OutputChannel** *(integer) --* The index of the output channel being produced.

    - **ChannelsIn** *(integer) --* Number of input channels to be used.

    - **ChannelsOut** *(integer) --* Number of output channels to be produced. Valid values: 1, 2,
    4, 6, 8
    """


_ClientUpdateChannelResponseChannelEncoderSettingsAudioDescriptionsTypeDef = TypedDict(
    "_ClientUpdateChannelResponseChannelEncoderSettingsAudioDescriptionsTypeDef",
    {
        "AudioNormalizationSettings": ClientUpdateChannelResponseChannelEncoderSettingsAudioDescriptionsAudioNormalizationSettingsTypeDef,
        "AudioSelectorName": str,
        "AudioType": str,
        "AudioTypeControl": str,
        "CodecSettings": ClientUpdateChannelResponseChannelEncoderSettingsAudioDescriptionsCodecSettingsTypeDef,
        "LanguageCode": str,
        "LanguageCodeControl": str,
        "Name": str,
        "RemixSettings": ClientUpdateChannelResponseChannelEncoderSettingsAudioDescriptionsRemixSettingsTypeDef,
        "StreamName": str,
    },
    total=False,
)


class ClientUpdateChannelResponseChannelEncoderSettingsAudioDescriptionsTypeDef(
    _ClientUpdateChannelResponseChannelEncoderSettingsAudioDescriptionsTypeDef
):
    """
    Type definition for `ClientUpdateChannelResponseChannelEncoderSettings` `AudioDescriptions`

    - **AudioNormalizationSettings** *(dict) --* Advanced audio normalization settings.

      - **Algorithm** *(string) --* Audio normalization algorithm to use. itu17701 conforms to the
      CALM Act specification, itu17702 conforms to the EBU R-128 specification.

      - **AlgorithmControl** *(string) --* When set to correctAudio the output audio is corrected
      using the chosen algorithm. If set to measureOnly, the audio will be measured but not
      adjusted.

      - **TargetLkfs** *(float) --* Target LKFS(loudness) to adjust volume to. If no value is
      entered, a default value will be used according to the chosen algorithm. The CALM Act (1770-1)
      recommends a target of -24 LKFS. The EBU R-128 specification (1770-2) recommends a target of
      -23 LKFS.

    - **AudioSelectorName** *(string) --* The name of the AudioSelector used as the source for this
    AudioDescription.

    - **AudioType** *(string) --* Applies only if audioTypeControl is useConfigured. The values for
    audioType are defined in ISO-IEC 13818-1.

    - **AudioTypeControl** *(string) --* Determines how audio type is determined. followInput: If
    the input contains an ISO 639 audioType, then that value is passed through to the output. If the
    input contains no ISO 639 audioType, the value in Audio Type is included in the output.
    useConfigured: The value in Audio Type is included in the output. Note that this field and
    audioType are both ignored if inputType is broadcasterMixedAd.

    - **CodecSettings** *(dict) --* Audio codec settings.

      - **AacSettings** *(dict) --* Aac Settings

        - **Bitrate** *(float) --* Average bitrate in bits/second. Valid values depend on rate
        control mode and profile.

        - **CodingMode** *(string) --* Mono, Stereo, or 5.1 channel layout. Valid values depend on
        rate control mode and profile. The adReceiverMix setting receives a stereo description plus
        control track and emits a mono AAC encode of the description track, with control data
        emitted in the PES header as per ETSI TS 101 154 Annex E.

        - **InputType** *(string) --* Set to "broadcasterMixedAd" when input contains pre-mixed main
        audio + AD (narration) as a stereo pair. The Audio Type field (audioType) will be set to 3,
        which signals to downstream systems that this stream contains "broadcaster mixed AD". Note
        that the input received by the encoder must contain pre-mixed audio; the encoder does not
        perform the mixing. The values in audioTypeControl and audioType (in AudioDescription) are
        ignored when set to broadcasterMixedAd. Leave set to "normal" when input does not contain
        pre-mixed audio + AD.

        - **Profile** *(string) --* AAC Profile.

        - **RateControlMode** *(string) --* Rate Control Mode.

        - **RawFormat** *(string) --* Sets LATM / LOAS AAC output for raw containers.

        - **SampleRate** *(float) --* Sample rate in Hz. Valid values depend on rate control mode
        and profile.

        - **Spec** *(string) --* Use MPEG-2 AAC audio instead of MPEG-4 AAC audio for raw or MPEG-2
        Transport Stream containers.

        - **VbrQuality** *(string) --* VBR Quality Level - Only used if rateControlMode is VBR.

      - **Ac3Settings** *(dict) --* Ac3 Settings

        - **Bitrate** *(float) --* Average bitrate in bits/second. Valid bitrates depend on the
        coding mode.

        - **BitstreamMode** *(string) --* Specifies the bitstream mode (bsmod) for the emitted AC-3
        stream. See ATSC A/52-2012 for background on these values.

        - **CodingMode** *(string) --* Dolby Digital coding mode. Determines number of channels.

        - **Dialnorm** *(integer) --* Sets the dialnorm for the output. If excluded and input audio
        is Dolby Digital, dialnorm will be passed through.

        - **DrcProfile** *(string) --* If set to filmStandard, adds dynamic range compression
        signaling to the output bitstream as defined in the Dolby Digital specification.

        - **LfeFilter** *(string) --* When set to enabled, applies a 120Hz lowpass filter to the LFE
        channel prior to encoding. Only valid in codingMode32Lfe mode.

        - **MetadataControl** *(string) --* When set to "followInput", encoder metadata will be
        sourced from the DD, DD+, or DolbyE decoder that supplied this audio data. If audio was not
        supplied from one of these streams, then the static metadata settings will be used.

      - **Eac3Settings** *(dict) --* Eac3 Settings

        - **AttenuationControl** *(string) --* When set to attenuate3Db, applies a 3 dB attenuation
        to the surround channels. Only used for 3/2 coding mode.

        - **Bitrate** *(float) --* Average bitrate in bits/second. Valid bitrates depend on the
        coding mode.

        - **BitstreamMode** *(string) --* Specifies the bitstream mode (bsmod) for the emitted
        E-AC-3 stream. See ATSC A/52-2012 (Annex E) for background on these values.

        - **CodingMode** *(string) --* Dolby Digital Plus coding mode. Determines number of
        channels.

        - **DcFilter** *(string) --* When set to enabled, activates a DC highpass filter for all
        input channels.

        - **Dialnorm** *(integer) --* Sets the dialnorm for the output. If blank and input audio is
        Dolby Digital Plus, dialnorm will be passed through.

        - **DrcLine** *(string) --* Sets the Dolby dynamic range compression profile.

        - **DrcRf** *(string) --* Sets the profile for heavy Dolby dynamic range compression,
        ensures that the instantaneous signal peaks do not exceed specified levels.

        - **LfeControl** *(string) --* When encoding 3/2 audio, setting to lfe enables the LFE
        channel

        - **LfeFilter** *(string) --* When set to enabled, applies a 120Hz lowpass filter to the LFE
        channel prior to encoding. Only valid with codingMode32 coding mode.

        - **LoRoCenterMixLevel** *(float) --* Left only/Right only center mix level. Only used for
        3/2 coding mode.

        - **LoRoSurroundMixLevel** *(float) --* Left only/Right only surround mix level. Only used
        for 3/2 coding mode.

        - **LtRtCenterMixLevel** *(float) --* Left total/Right total center mix level. Only used for
        3/2 coding mode.

        - **LtRtSurroundMixLevel** *(float) --* Left total/Right total surround mix level. Only used
        for 3/2 coding mode.

        - **MetadataControl** *(string) --* When set to followInput, encoder metadata will be
        sourced from the DD, DD+, or DolbyE decoder that supplied this audio data. If audio was not
        supplied from one of these streams, then the static metadata settings will be used.

        - **PassthroughControl** *(string) --* When set to whenPossible, input DD+ audio will be
        passed through if it is present on the input. This detection is dynamic over the life of the
        transcode. Inputs that alternate between DD+ and non-DD+ content will have a consistent DD+
        output as the system alternates between passthrough and encoding.

        - **PhaseControl** *(string) --* When set to shift90Degrees, applies a 90-degree phase shift
        to the surround channels. Only used for 3/2 coding mode.

        - **StereoDownmix** *(string) --* Stereo downmix preference. Only used for 3/2 coding mode.

        - **SurroundExMode** *(string) --* When encoding 3/2 audio, sets whether an extra center
        back surround channel is matrix encoded into the left and right surround channels.

        - **SurroundMode** *(string) --* When encoding 2/0 audio, sets whether Dolby Surround is
        matrix encoded into the two channels.

      - **Mp2Settings** *(dict) --* Mp2 Settings

        - **Bitrate** *(float) --* Average bitrate in bits/second.

        - **CodingMode** *(string) --* The MPEG2 Audio coding mode. Valid values are codingMode10
        (for mono) or codingMode20 (for stereo).

        - **SampleRate** *(float) --* Sample rate in Hz.

      - **PassThroughSettings** *(dict) --* Pass Through Settings

    - **LanguageCode** *(string) --* Indicates the language of the audio output track. Only used if
    languageControlMode is useConfigured, or there is no ISO 639 language code specified in the
    input.

    - **LanguageCodeControl** *(string) --* Choosing followInput will cause the ISO 639 language
    code of the output to follow the ISO 639 language code of the input. The languageCode will be
    used when useConfigured is set, or when followInput is selected but there is no ISO 639 language
    code specified by the input.

    - **Name** *(string) --* The name of this AudioDescription. Outputs will use this name to
    uniquely identify this AudioDescription. Description names should be unique within this Live
    Event.

    - **RemixSettings** *(dict) --* Settings that control how input audio channels are remixed into
    the output audio channels.

      - **ChannelMappings** *(list) --* Mapping of input channels to output channels, with
      appropriate gain adjustments.

        - *(dict) --* Audio Channel Mapping

          - **InputChannelLevels** *(list) --* Indices and gain values for each input channel that
          should be remixed into this output channel.

            - *(dict) --* Input Channel Level

              - **Gain** *(integer) --* Remixing value. Units are in dB and acceptable values are
              within the range from -60 (mute) and 6 dB.

              - **InputChannel** *(integer) --* The index of the input channel used as a source.

          - **OutputChannel** *(integer) --* The index of the output channel being produced.

      - **ChannelsIn** *(integer) --* Number of input channels to be used.

      - **ChannelsOut** *(integer) --* Number of output channels to be produced. Valid values: 1, 2,
      4, 6, 8

    - **StreamName** *(string) --* Used for MS Smooth and Apple HLS outputs. Indicates the name
    displayed by the player (eg. English, or Director Commentary).
    """


_ClientUpdateChannelResponseChannelEncoderSettingsAvailBlankingAvailBlankingImageTypeDef = TypedDict(
    "_ClientUpdateChannelResponseChannelEncoderSettingsAvailBlankingAvailBlankingImageTypeDef",
    {"PasswordParam": str, "Uri": str, "Username": str},
    total=False,
)


class ClientUpdateChannelResponseChannelEncoderSettingsAvailBlankingAvailBlankingImageTypeDef(
    _ClientUpdateChannelResponseChannelEncoderSettingsAvailBlankingAvailBlankingImageTypeDef
):
    """
    Type definition for `ClientUpdateChannelResponseChannelEncoderSettingsAvailBlanking`
    `AvailBlankingImage`

    - **PasswordParam** *(string) --* key used to extract the password from EC2 Parameter store

    - **Uri** *(string) --* Uniform Resource Identifier - This should be a path to a file accessible
    to the Live system (eg. a http:// URI) depending on the output type. For example, a RTMP
    destination should have a uri simliar to: "rtmp://fmsserver/live".

    - **Username** *(string) --* Documentation update needed
    """


_ClientUpdateChannelResponseChannelEncoderSettingsAvailBlankingTypeDef = TypedDict(
    "_ClientUpdateChannelResponseChannelEncoderSettingsAvailBlankingTypeDef",
    {
        "AvailBlankingImage": ClientUpdateChannelResponseChannelEncoderSettingsAvailBlankingAvailBlankingImageTypeDef,
        "State": str,
    },
    total=False,
)


class ClientUpdateChannelResponseChannelEncoderSettingsAvailBlankingTypeDef(
    _ClientUpdateChannelResponseChannelEncoderSettingsAvailBlankingTypeDef
):
    """
    Type definition for `ClientUpdateChannelResponseChannelEncoderSettings` `AvailBlanking`

    - **AvailBlankingImage** *(dict) --* Blanking image to be used. Leave empty for solid black.
    Only bmp and png images are supported.

      - **PasswordParam** *(string) --* key used to extract the password from EC2 Parameter store

      - **Uri** *(string) --* Uniform Resource Identifier - This should be a path to a file
      accessible to the Live system (eg. a http:// URI) depending on the output type. For example, a
      RTMP destination should have a uri simliar to: "rtmp://fmsserver/live".

      - **Username** *(string) --* Documentation update needed

    - **State** *(string) --* When set to enabled, causes video, audio and captions to be blanked
    when insertion metadata is added.
    """


_ClientUpdateChannelResponseChannelEncoderSettingsAvailConfigurationAvailSettingsScte35SpliceInsertTypeDef = TypedDict(
    "_ClientUpdateChannelResponseChannelEncoderSettingsAvailConfigurationAvailSettingsScte35SpliceInsertTypeDef",
    {"AdAvailOffset": int, "NoRegionalBlackoutFlag": str, "WebDeliveryAllowedFlag": str},
    total=False,
)


class ClientUpdateChannelResponseChannelEncoderSettingsAvailConfigurationAvailSettingsScte35SpliceInsertTypeDef(
    _ClientUpdateChannelResponseChannelEncoderSettingsAvailConfigurationAvailSettingsScte35SpliceInsertTypeDef
):
    """
    Type definition for
    `ClientUpdateChannelResponseChannelEncoderSettingsAvailConfigurationAvailSettings`
    `Scte35SpliceInsert`

    - **AdAvailOffset** *(integer) --* When specified, this offset (in milliseconds) is added to the
    input Ad Avail PTS time. This only applies to embedded SCTE 104/35 messages and does not apply
    to OOB messages.

    - **NoRegionalBlackoutFlag** *(string) --* When set to ignore, Segment Descriptors with
    noRegionalBlackoutFlag set to 0 will no longer trigger blackouts or Ad Avail slates

    - **WebDeliveryAllowedFlag** *(string) --* When set to ignore, Segment Descriptors with
    webDeliveryAllowedFlag set to 0 will no longer trigger blackouts or Ad Avail slates
    """


_ClientUpdateChannelResponseChannelEncoderSettingsAvailConfigurationAvailSettingsScte35TimeSignalAposTypeDef = TypedDict(
    "_ClientUpdateChannelResponseChannelEncoderSettingsAvailConfigurationAvailSettingsScte35TimeSignalAposTypeDef",
    {"AdAvailOffset": int, "NoRegionalBlackoutFlag": str, "WebDeliveryAllowedFlag": str},
    total=False,
)


class ClientUpdateChannelResponseChannelEncoderSettingsAvailConfigurationAvailSettingsScte35TimeSignalAposTypeDef(
    _ClientUpdateChannelResponseChannelEncoderSettingsAvailConfigurationAvailSettingsScte35TimeSignalAposTypeDef
):
    """
    Type definition for
    `ClientUpdateChannelResponseChannelEncoderSettingsAvailConfigurationAvailSettings`
    `Scte35TimeSignalApos`

    - **AdAvailOffset** *(integer) --* When specified, this offset (in milliseconds) is added to the
    input Ad Avail PTS time. This only applies to embedded SCTE 104/35 messages and does not apply
    to OOB messages.

    - **NoRegionalBlackoutFlag** *(string) --* When set to ignore, Segment Descriptors with
    noRegionalBlackoutFlag set to 0 will no longer trigger blackouts or Ad Avail slates

    - **WebDeliveryAllowedFlag** *(string) --* When set to ignore, Segment Descriptors with
    webDeliveryAllowedFlag set to 0 will no longer trigger blackouts or Ad Avail slates
    """


_ClientUpdateChannelResponseChannelEncoderSettingsAvailConfigurationAvailSettingsTypeDef = TypedDict(
    "_ClientUpdateChannelResponseChannelEncoderSettingsAvailConfigurationAvailSettingsTypeDef",
    {
        "Scte35SpliceInsert": ClientUpdateChannelResponseChannelEncoderSettingsAvailConfigurationAvailSettingsScte35SpliceInsertTypeDef,
        "Scte35TimeSignalApos": ClientUpdateChannelResponseChannelEncoderSettingsAvailConfigurationAvailSettingsScte35TimeSignalAposTypeDef,
    },
    total=False,
)


class ClientUpdateChannelResponseChannelEncoderSettingsAvailConfigurationAvailSettingsTypeDef(
    _ClientUpdateChannelResponseChannelEncoderSettingsAvailConfigurationAvailSettingsTypeDef
):
    """
    Type definition for `ClientUpdateChannelResponseChannelEncoderSettingsAvailConfiguration`
    `AvailSettings`

    - **Scte35SpliceInsert** *(dict) --* Scte35 Splice Insert

      - **AdAvailOffset** *(integer) --* When specified, this offset (in milliseconds) is added to
      the input Ad Avail PTS time. This only applies to embedded SCTE 104/35 messages and does not
      apply to OOB messages.

      - **NoRegionalBlackoutFlag** *(string) --* When set to ignore, Segment Descriptors with
      noRegionalBlackoutFlag set to 0 will no longer trigger blackouts or Ad Avail slates

      - **WebDeliveryAllowedFlag** *(string) --* When set to ignore, Segment Descriptors with
      webDeliveryAllowedFlag set to 0 will no longer trigger blackouts or Ad Avail slates

    - **Scte35TimeSignalApos** *(dict) --* Scte35 Time Signal Apos

      - **AdAvailOffset** *(integer) --* When specified, this offset (in milliseconds) is added to
      the input Ad Avail PTS time. This only applies to embedded SCTE 104/35 messages and does not
      apply to OOB messages.

      - **NoRegionalBlackoutFlag** *(string) --* When set to ignore, Segment Descriptors with
      noRegionalBlackoutFlag set to 0 will no longer trigger blackouts or Ad Avail slates

      - **WebDeliveryAllowedFlag** *(string) --* When set to ignore, Segment Descriptors with
      webDeliveryAllowedFlag set to 0 will no longer trigger blackouts or Ad Avail slates
    """


_ClientUpdateChannelResponseChannelEncoderSettingsAvailConfigurationTypeDef = TypedDict(
    "_ClientUpdateChannelResponseChannelEncoderSettingsAvailConfigurationTypeDef",
    {
        "AvailSettings": ClientUpdateChannelResponseChannelEncoderSettingsAvailConfigurationAvailSettingsTypeDef
    },
    total=False,
)


class ClientUpdateChannelResponseChannelEncoderSettingsAvailConfigurationTypeDef(
    _ClientUpdateChannelResponseChannelEncoderSettingsAvailConfigurationTypeDef
):
    """
    Type definition for `ClientUpdateChannelResponseChannelEncoderSettings` `AvailConfiguration`

    - **AvailSettings** *(dict) --* Ad avail settings.

      - **Scte35SpliceInsert** *(dict) --* Scte35 Splice Insert

        - **AdAvailOffset** *(integer) --* When specified, this offset (in milliseconds) is added to
        the input Ad Avail PTS time. This only applies to embedded SCTE 104/35 messages and does not
        apply to OOB messages.

        - **NoRegionalBlackoutFlag** *(string) --* When set to ignore, Segment Descriptors with
        noRegionalBlackoutFlag set to 0 will no longer trigger blackouts or Ad Avail slates

        - **WebDeliveryAllowedFlag** *(string) --* When set to ignore, Segment Descriptors with
        webDeliveryAllowedFlag set to 0 will no longer trigger blackouts or Ad Avail slates

      - **Scte35TimeSignalApos** *(dict) --* Scte35 Time Signal Apos

        - **AdAvailOffset** *(integer) --* When specified, this offset (in milliseconds) is added to
        the input Ad Avail PTS time. This only applies to embedded SCTE 104/35 messages and does not
        apply to OOB messages.

        - **NoRegionalBlackoutFlag** *(string) --* When set to ignore, Segment Descriptors with
        noRegionalBlackoutFlag set to 0 will no longer trigger blackouts or Ad Avail slates

        - **WebDeliveryAllowedFlag** *(string) --* When set to ignore, Segment Descriptors with
        webDeliveryAllowedFlag set to 0 will no longer trigger blackouts or Ad Avail slates
    """


_ClientUpdateChannelResponseChannelEncoderSettingsBlackoutSlateBlackoutSlateImageTypeDef = TypedDict(
    "_ClientUpdateChannelResponseChannelEncoderSettingsBlackoutSlateBlackoutSlateImageTypeDef",
    {"PasswordParam": str, "Uri": str, "Username": str},
    total=False,
)


class ClientUpdateChannelResponseChannelEncoderSettingsBlackoutSlateBlackoutSlateImageTypeDef(
    _ClientUpdateChannelResponseChannelEncoderSettingsBlackoutSlateBlackoutSlateImageTypeDef
):
    """
    Type definition for `ClientUpdateChannelResponseChannelEncoderSettingsBlackoutSlate`
    `BlackoutSlateImage`

    - **PasswordParam** *(string) --* key used to extract the password from EC2 Parameter store

    - **Uri** *(string) --* Uniform Resource Identifier - This should be a path to a file accessible
    to the Live system (eg. a http:// URI) depending on the output type. For example, a RTMP
    destination should have a uri simliar to: "rtmp://fmsserver/live".

    - **Username** *(string) --* Documentation update needed
    """


_ClientUpdateChannelResponseChannelEncoderSettingsBlackoutSlateNetworkEndBlackoutImageTypeDef = TypedDict(
    "_ClientUpdateChannelResponseChannelEncoderSettingsBlackoutSlateNetworkEndBlackoutImageTypeDef",
    {"PasswordParam": str, "Uri": str, "Username": str},
    total=False,
)


class ClientUpdateChannelResponseChannelEncoderSettingsBlackoutSlateNetworkEndBlackoutImageTypeDef(
    _ClientUpdateChannelResponseChannelEncoderSettingsBlackoutSlateNetworkEndBlackoutImageTypeDef
):
    """
    Type definition for `ClientUpdateChannelResponseChannelEncoderSettingsBlackoutSlate`
    `NetworkEndBlackoutImage`

    - **PasswordParam** *(string) --* key used to extract the password from EC2 Parameter store

    - **Uri** *(string) --* Uniform Resource Identifier - This should be a path to a file accessible
    to the Live system (eg. a http:// URI) depending on the output type. For example, a RTMP
    destination should have a uri simliar to: "rtmp://fmsserver/live".

    - **Username** *(string) --* Documentation update needed
    """


_ClientUpdateChannelResponseChannelEncoderSettingsBlackoutSlateTypeDef = TypedDict(
    "_ClientUpdateChannelResponseChannelEncoderSettingsBlackoutSlateTypeDef",
    {
        "BlackoutSlateImage": ClientUpdateChannelResponseChannelEncoderSettingsBlackoutSlateBlackoutSlateImageTypeDef,
        "NetworkEndBlackout": str,
        "NetworkEndBlackoutImage": ClientUpdateChannelResponseChannelEncoderSettingsBlackoutSlateNetworkEndBlackoutImageTypeDef,
        "NetworkId": str,
        "State": str,
    },
    total=False,
)


class ClientUpdateChannelResponseChannelEncoderSettingsBlackoutSlateTypeDef(
    _ClientUpdateChannelResponseChannelEncoderSettingsBlackoutSlateTypeDef
):
    """
    Type definition for `ClientUpdateChannelResponseChannelEncoderSettings` `BlackoutSlate`

    - **BlackoutSlateImage** *(dict) --* Blackout slate image to be used. Leave empty for solid
    black. Only bmp and png images are supported.

      - **PasswordParam** *(string) --* key used to extract the password from EC2 Parameter store

      - **Uri** *(string) --* Uniform Resource Identifier - This should be a path to a file
      accessible to the Live system (eg. a http:// URI) depending on the output type. For example, a
      RTMP destination should have a uri simliar to: "rtmp://fmsserver/live".

      - **Username** *(string) --* Documentation update needed

    - **NetworkEndBlackout** *(string) --* Setting to enabled causes the encoder to blackout the
    video, audio, and captions, and raise the "Network Blackout Image" slate when an SCTE104/35
    Network End Segmentation Descriptor is encountered. The blackout will be lifted when the Network
    Start Segmentation Descriptor is encountered. The Network End and Network Start descriptors must
    contain a network ID that matches the value entered in "Network ID".

    - **NetworkEndBlackoutImage** *(dict) --* Path to local file to use as Network End Blackout
    image. Image will be scaled to fill the entire output raster.

      - **PasswordParam** *(string) --* key used to extract the password from EC2 Parameter store

      - **Uri** *(string) --* Uniform Resource Identifier - This should be a path to a file
      accessible to the Live system (eg. a http:// URI) depending on the output type. For example, a
      RTMP destination should have a uri simliar to: "rtmp://fmsserver/live".

      - **Username** *(string) --* Documentation update needed

    - **NetworkId** *(string) --* Provides Network ID that matches EIDR ID format (e.g.,
    "10.XXXX/XXXX-XXXX-XXXX-XXXX-XXXX-C").

    - **State** *(string) --* When set to enabled, causes video, audio and captions to be blanked
    when indicated by program metadata.
    """


_ClientUpdateChannelResponseChannelEncoderSettingsCaptionDescriptionsDestinationSettingsBurnInDestinationSettingsFontTypeDef = TypedDict(
    "_ClientUpdateChannelResponseChannelEncoderSettingsCaptionDescriptionsDestinationSettingsBurnInDestinationSettingsFontTypeDef",
    {"PasswordParam": str, "Uri": str, "Username": str},
    total=False,
)


class ClientUpdateChannelResponseChannelEncoderSettingsCaptionDescriptionsDestinationSettingsBurnInDestinationSettingsFontTypeDef(
    _ClientUpdateChannelResponseChannelEncoderSettingsCaptionDescriptionsDestinationSettingsBurnInDestinationSettingsFontTypeDef
):
    """
    Type definition for
    `ClientUpdateChannelResponseChannelEncoderSettingsCaptionDescriptionsDestinationSettingsBurnInDestinationSettings`
    `Font`

    - **PasswordParam** *(string) --* key used to extract the password from EC2 Parameter store

    - **Uri** *(string) --* Uniform Resource Identifier - This should be a path to a file accessible
    to the Live system (eg. a http:// URI) depending on the output type. For example, a RTMP
    destination should have a uri simliar to: "rtmp://fmsserver/live".

    - **Username** *(string) --* Documentation update needed
    """


_ClientUpdateChannelResponseChannelEncoderSettingsCaptionDescriptionsDestinationSettingsBurnInDestinationSettingsTypeDef = TypedDict(
    "_ClientUpdateChannelResponseChannelEncoderSettingsCaptionDescriptionsDestinationSettingsBurnInDestinationSettingsTypeDef",
    {
        "Alignment": str,
        "BackgroundColor": str,
        "BackgroundOpacity": int,
        "Font": ClientUpdateChannelResponseChannelEncoderSettingsCaptionDescriptionsDestinationSettingsBurnInDestinationSettingsFontTypeDef,
        "FontColor": str,
        "FontOpacity": int,
        "FontResolution": int,
        "FontSize": str,
        "OutlineColor": str,
        "OutlineSize": int,
        "ShadowColor": str,
        "ShadowOpacity": int,
        "ShadowXOffset": int,
        "ShadowYOffset": int,
        "TeletextGridControl": str,
        "XPosition": int,
        "YPosition": int,
    },
    total=False,
)


class ClientUpdateChannelResponseChannelEncoderSettingsCaptionDescriptionsDestinationSettingsBurnInDestinationSettingsTypeDef(
    _ClientUpdateChannelResponseChannelEncoderSettingsCaptionDescriptionsDestinationSettingsBurnInDestinationSettingsTypeDef
):
    """
    Type definition for
    `ClientUpdateChannelResponseChannelEncoderSettingsCaptionDescriptionsDestinationSettings`
    `BurnInDestinationSettings`

    - **Alignment** *(string) --* If no explicit xPosition or yPosition is provided, setting
    alignment to centered will place the captions at the bottom center of the output. Similarly,
    setting a left alignment will align captions to the bottom left of the output. If x and y
    positions are given in conjunction with the alignment parameter, the font will be justified
    (either left or centered) relative to those coordinates. Selecting "smart" justification will
    left-justify live subtitles and center-justify pre-recorded subtitles. All burn-in and DVB-Sub
    font settings must match.

    - **BackgroundColor** *(string) --* Specifies the color of the rectangle behind the captions.
    All burn-in and DVB-Sub font settings must match.

    - **BackgroundOpacity** *(integer) --* Specifies the opacity of the background rectangle. 255 is
    opaque; 0 is transparent. Leaving this parameter out is equivalent to setting it to 0
    (transparent). All burn-in and DVB-Sub font settings must match.

    - **Font** *(dict) --* External font file used for caption burn-in. File extension must be 'ttf'
    or 'tte'. Although the user can select output fonts for many different types of input captions,
    embedded, STL and teletext sources use a strict grid system. Using external fonts with these
    caption sources could cause unexpected display of proportional fonts. All burn-in and DVB-Sub
    font settings must match.

      - **PasswordParam** *(string) --* key used to extract the password from EC2 Parameter store

      - **Uri** *(string) --* Uniform Resource Identifier - This should be a path to a file
      accessible to the Live system (eg. a http:// URI) depending on the output type. For example, a
      RTMP destination should have a uri simliar to: "rtmp://fmsserver/live".

      - **Username** *(string) --* Documentation update needed

    - **FontColor** *(string) --* Specifies the color of the burned-in captions. This option is not
    valid for source captions that are STL, 608/embedded or teletext. These source settings are
    already pre-defined by the caption stream. All burn-in and DVB-Sub font settings must match.

    - **FontOpacity** *(integer) --* Specifies the opacity of the burned-in captions. 255 is opaque;
    0 is transparent. All burn-in and DVB-Sub font settings must match.

    - **FontResolution** *(integer) --* Font resolution in DPI (dots per inch); default is 96 dpi.
    All burn-in and DVB-Sub font settings must match.

    - **FontSize** *(string) --* When set to 'auto' fontSize will scale depending on the size of the
    output. Giving a positive integer will specify the exact font size in points. All burn-in and
    DVB-Sub font settings must match.

    - **OutlineColor** *(string) --* Specifies font outline color. This option is not valid for
    source captions that are either 608/embedded or teletext. These source settings are already
    pre-defined by the caption stream. All burn-in and DVB-Sub font settings must match.

    - **OutlineSize** *(integer) --* Specifies font outline size in pixels. This option is not valid
    for source captions that are either 608/embedded or teletext. These source settings are already
    pre-defined by the caption stream. All burn-in and DVB-Sub font settings must match.

    - **ShadowColor** *(string) --* Specifies the color of the shadow cast by the captions. All
    burn-in and DVB-Sub font settings must match.

    - **ShadowOpacity** *(integer) --* Specifies the opacity of the shadow. 255 is opaque; 0 is
    transparent. Leaving this parameter out is equivalent to setting it to 0 (transparent). All
    burn-in and DVB-Sub font settings must match.

    - **ShadowXOffset** *(integer) --* Specifies the horizontal offset of the shadow relative to the
    captions in pixels. A value of -2 would result in a shadow offset 2 pixels to the left. All
    burn-in and DVB-Sub font settings must match.

    - **ShadowYOffset** *(integer) --* Specifies the vertical offset of the shadow relative to the
    captions in pixels. A value of -2 would result in a shadow offset 2 pixels above the text. All
    burn-in and DVB-Sub font settings must match.

    - **TeletextGridControl** *(string) --* Controls whether a fixed grid size will be used to
    generate the output subtitles bitmap. Only applicable for Teletext inputs and DVB-Sub/Burn-in
    outputs.

    - **XPosition** *(integer) --* Specifies the horizontal position of the caption relative to the
    left side of the output in pixels. A value of 10 would result in the captions starting 10 pixels
    from the left of the output. If no explicit xPosition is provided, the horizontal caption
    position will be determined by the alignment parameter. All burn-in and DVB-Sub font settings
    must match.

    - **YPosition** *(integer) --* Specifies the vertical position of the caption relative to the
    top of the output in pixels. A value of 10 would result in the captions starting 10 pixels from
    the top of the output. If no explicit yPosition is provided, the caption will be positioned
    towards the bottom of the output. All burn-in and DVB-Sub font settings must match.
    """


_ClientUpdateChannelResponseChannelEncoderSettingsCaptionDescriptionsDestinationSettingsDvbSubDestinationSettingsFontTypeDef = TypedDict(
    "_ClientUpdateChannelResponseChannelEncoderSettingsCaptionDescriptionsDestinationSettingsDvbSubDestinationSettingsFontTypeDef",
    {"PasswordParam": str, "Uri": str, "Username": str},
    total=False,
)


class ClientUpdateChannelResponseChannelEncoderSettingsCaptionDescriptionsDestinationSettingsDvbSubDestinationSettingsFontTypeDef(
    _ClientUpdateChannelResponseChannelEncoderSettingsCaptionDescriptionsDestinationSettingsDvbSubDestinationSettingsFontTypeDef
):
    """
    Type definition for
    `ClientUpdateChannelResponseChannelEncoderSettingsCaptionDescriptionsDestinationSettingsDvbSubDestinationSettings`
    `Font`

    - **PasswordParam** *(string) --* key used to extract the password from EC2 Parameter store

    - **Uri** *(string) --* Uniform Resource Identifier - This should be a path to a file accessible
    to the Live system (eg. a http:// URI) depending on the output type. For example, a RTMP
    destination should have a uri simliar to: "rtmp://fmsserver/live".

    - **Username** *(string) --* Documentation update needed
    """


_ClientUpdateChannelResponseChannelEncoderSettingsCaptionDescriptionsDestinationSettingsDvbSubDestinationSettingsTypeDef = TypedDict(
    "_ClientUpdateChannelResponseChannelEncoderSettingsCaptionDescriptionsDestinationSettingsDvbSubDestinationSettingsTypeDef",
    {
        "Alignment": str,
        "BackgroundColor": str,
        "BackgroundOpacity": int,
        "Font": ClientUpdateChannelResponseChannelEncoderSettingsCaptionDescriptionsDestinationSettingsDvbSubDestinationSettingsFontTypeDef,
        "FontColor": str,
        "FontOpacity": int,
        "FontResolution": int,
        "FontSize": str,
        "OutlineColor": str,
        "OutlineSize": int,
        "ShadowColor": str,
        "ShadowOpacity": int,
        "ShadowXOffset": int,
        "ShadowYOffset": int,
        "TeletextGridControl": str,
        "XPosition": int,
        "YPosition": int,
    },
    total=False,
)


class ClientUpdateChannelResponseChannelEncoderSettingsCaptionDescriptionsDestinationSettingsDvbSubDestinationSettingsTypeDef(
    _ClientUpdateChannelResponseChannelEncoderSettingsCaptionDescriptionsDestinationSettingsDvbSubDestinationSettingsTypeDef
):
    """
    Type definition for
    `ClientUpdateChannelResponseChannelEncoderSettingsCaptionDescriptionsDestinationSettings`
    `DvbSubDestinationSettings`

    - **Alignment** *(string) --* If no explicit xPosition or yPosition is provided, setting
    alignment to centered will place the captions at the bottom center of the output. Similarly,
    setting a left alignment will align captions to the bottom left of the output. If x and y
    positions are given in conjunction with the alignment parameter, the font will be justified
    (either left or centered) relative to those coordinates. Selecting "smart" justification will
    left-justify live subtitles and center-justify pre-recorded subtitles. This option is not valid
    for source captions that are STL or 608/embedded. These source settings are already pre-defined
    by the caption stream. All burn-in and DVB-Sub font settings must match.

    - **BackgroundColor** *(string) --* Specifies the color of the rectangle behind the captions.
    All burn-in and DVB-Sub font settings must match.

    - **BackgroundOpacity** *(integer) --* Specifies the opacity of the background rectangle. 255 is
    opaque; 0 is transparent. Leaving this parameter blank is equivalent to setting it to 0
    (transparent). All burn-in and DVB-Sub font settings must match.

    - **Font** *(dict) --* External font file used for caption burn-in. File extension must be 'ttf'
    or 'tte'. Although the user can select output fonts for many different types of input captions,
    embedded, STL and teletext sources use a strict grid system. Using external fonts with these
    caption sources could cause unexpected display of proportional fonts. All burn-in and DVB-Sub
    font settings must match.

      - **PasswordParam** *(string) --* key used to extract the password from EC2 Parameter store

      - **Uri** *(string) --* Uniform Resource Identifier - This should be a path to a file
      accessible to the Live system (eg. a http:// URI) depending on the output type. For example, a
      RTMP destination should have a uri simliar to: "rtmp://fmsserver/live".

      - **Username** *(string) --* Documentation update needed

    - **FontColor** *(string) --* Specifies the color of the burned-in captions. This option is not
    valid for source captions that are STL, 608/embedded or teletext. These source settings are
    already pre-defined by the caption stream. All burn-in and DVB-Sub font settings must match.

    - **FontOpacity** *(integer) --* Specifies the opacity of the burned-in captions. 255 is opaque;
    0 is transparent. All burn-in and DVB-Sub font settings must match.

    - **FontResolution** *(integer) --* Font resolution in DPI (dots per inch); default is 96 dpi.
    All burn-in and DVB-Sub font settings must match.

    - **FontSize** *(string) --* When set to auto fontSize will scale depending on the size of the
    output. Giving a positive integer will specify the exact font size in points. All burn-in and
    DVB-Sub font settings must match.

    - **OutlineColor** *(string) --* Specifies font outline color. This option is not valid for
    source captions that are either 608/embedded or teletext. These source settings are already
    pre-defined by the caption stream. All burn-in and DVB-Sub font settings must match.

    - **OutlineSize** *(integer) --* Specifies font outline size in pixels. This option is not valid
    for source captions that are either 608/embedded or teletext. These source settings are already
    pre-defined by the caption stream. All burn-in and DVB-Sub font settings must match.

    - **ShadowColor** *(string) --* Specifies the color of the shadow cast by the captions. All
    burn-in and DVB-Sub font settings must match.

    - **ShadowOpacity** *(integer) --* Specifies the opacity of the shadow. 255 is opaque; 0 is
    transparent. Leaving this parameter blank is equivalent to setting it to 0 (transparent). All
    burn-in and DVB-Sub font settings must match.

    - **ShadowXOffset** *(integer) --* Specifies the horizontal offset of the shadow relative to the
    captions in pixels. A value of -2 would result in a shadow offset 2 pixels to the left. All
    burn-in and DVB-Sub font settings must match.

    - **ShadowYOffset** *(integer) --* Specifies the vertical offset of the shadow relative to the
    captions in pixels. A value of -2 would result in a shadow offset 2 pixels above the text. All
    burn-in and DVB-Sub font settings must match.

    - **TeletextGridControl** *(string) --* Controls whether a fixed grid size will be used to
    generate the output subtitles bitmap. Only applicable for Teletext inputs and DVB-Sub/Burn-in
    outputs.

    - **XPosition** *(integer) --* Specifies the horizontal position of the caption relative to the
    left side of the output in pixels. A value of 10 would result in the captions starting 10 pixels
    from the left of the output. If no explicit xPosition is provided, the horizontal caption
    position will be determined by the alignment parameter. This option is not valid for source
    captions that are STL, 608/embedded or teletext. These source settings are already pre-defined
    by the caption stream. All burn-in and DVB-Sub font settings must match.

    - **YPosition** *(integer) --* Specifies the vertical position of the caption relative to the
    top of the output in pixels. A value of 10 would result in the captions starting 10 pixels from
    the top of the output. If no explicit yPosition is provided, the caption will be positioned
    towards the bottom of the output. This option is not valid for source captions that are STL,
    608/embedded or teletext. These source settings are already pre-defined by the caption stream.
    All burn-in and DVB-Sub font settings must match.
    """


_ClientUpdateChannelResponseChannelEncoderSettingsCaptionDescriptionsDestinationSettingsTtmlDestinationSettingsTypeDef = TypedDict(
    "_ClientUpdateChannelResponseChannelEncoderSettingsCaptionDescriptionsDestinationSettingsTtmlDestinationSettingsTypeDef",
    {"StyleControl": str},
    total=False,
)


class ClientUpdateChannelResponseChannelEncoderSettingsCaptionDescriptionsDestinationSettingsTtmlDestinationSettingsTypeDef(
    _ClientUpdateChannelResponseChannelEncoderSettingsCaptionDescriptionsDestinationSettingsTtmlDestinationSettingsTypeDef
):
    """
    Type definition for
    `ClientUpdateChannelResponseChannelEncoderSettingsCaptionDescriptionsDestinationSettings`
    `TtmlDestinationSettings`

    - **StyleControl** *(string) --* When set to passthrough, passes through style and position
    information from a TTML-like input source (TTML, SMPTE-TT, CFF-TT) to the CFF-TT output or TTML
    output.
    """


_ClientUpdateChannelResponseChannelEncoderSettingsCaptionDescriptionsDestinationSettingsTypeDef = TypedDict(
    "_ClientUpdateChannelResponseChannelEncoderSettingsCaptionDescriptionsDestinationSettingsTypeDef",
    {
        "AribDestinationSettings": Dict,
        "BurnInDestinationSettings": ClientUpdateChannelResponseChannelEncoderSettingsCaptionDescriptionsDestinationSettingsBurnInDestinationSettingsTypeDef,
        "DvbSubDestinationSettings": ClientUpdateChannelResponseChannelEncoderSettingsCaptionDescriptionsDestinationSettingsDvbSubDestinationSettingsTypeDef,
        "EmbeddedDestinationSettings": Dict,
        "EmbeddedPlusScte20DestinationSettings": Dict,
        "RtmpCaptionInfoDestinationSettings": Dict,
        "Scte20PlusEmbeddedDestinationSettings": Dict,
        "Scte27DestinationSettings": Dict,
        "SmpteTtDestinationSettings": Dict,
        "TeletextDestinationSettings": Dict,
        "TtmlDestinationSettings": ClientUpdateChannelResponseChannelEncoderSettingsCaptionDescriptionsDestinationSettingsTtmlDestinationSettingsTypeDef,
        "WebvttDestinationSettings": Dict[str, Any],
    },
    total=False,
)


class ClientUpdateChannelResponseChannelEncoderSettingsCaptionDescriptionsDestinationSettingsTypeDef(
    _ClientUpdateChannelResponseChannelEncoderSettingsCaptionDescriptionsDestinationSettingsTypeDef
):
    """
    Type definition for `ClientUpdateChannelResponseChannelEncoderSettingsCaptionDescriptions`
    `DestinationSettings`

    - **AribDestinationSettings** *(dict) --* Arib Destination Settings

    - **BurnInDestinationSettings** *(dict) --* Burn In Destination Settings

      - **Alignment** *(string) --* If no explicit xPosition or yPosition is provided, setting
      alignment to centered will place the captions at the bottom center of the output. Similarly,
      setting a left alignment will align captions to the bottom left of the output. If x and y
      positions are given in conjunction with the alignment parameter, the font will be justified
      (either left or centered) relative to those coordinates. Selecting "smart" justification will
      left-justify live subtitles and center-justify pre-recorded subtitles. All burn-in and DVB-Sub
      font settings must match.

      - **BackgroundColor** *(string) --* Specifies the color of the rectangle behind the captions.
      All burn-in and DVB-Sub font settings must match.

      - **BackgroundOpacity** *(integer) --* Specifies the opacity of the background rectangle. 255
      is opaque; 0 is transparent. Leaving this parameter out is equivalent to setting it to 0
      (transparent). All burn-in and DVB-Sub font settings must match.

      - **Font** *(dict) --* External font file used for caption burn-in. File extension must be
      'ttf' or 'tte'. Although the user can select output fonts for many different types of input
      captions, embedded, STL and teletext sources use a strict grid system. Using external fonts
      with these caption sources could cause unexpected display of proportional fonts. All burn-in
      and DVB-Sub font settings must match.

        - **PasswordParam** *(string) --* key used to extract the password from EC2 Parameter store

        - **Uri** *(string) --* Uniform Resource Identifier - This should be a path to a file
        accessible to the Live system (eg. a http:// URI) depending on the output type. For example,
        a RTMP destination should have a uri simliar to: "rtmp://fmsserver/live".

        - **Username** *(string) --* Documentation update needed

      - **FontColor** *(string) --* Specifies the color of the burned-in captions. This option is
      not valid for source captions that are STL, 608/embedded or teletext. These source settings
      are already pre-defined by the caption stream. All burn-in and DVB-Sub font settings must
      match.

      - **FontOpacity** *(integer) --* Specifies the opacity of the burned-in captions. 255 is
      opaque; 0 is transparent. All burn-in and DVB-Sub font settings must match.

      - **FontResolution** *(integer) --* Font resolution in DPI (dots per inch); default is 96 dpi.
      All burn-in and DVB-Sub font settings must match.

      - **FontSize** *(string) --* When set to 'auto' fontSize will scale depending on the size of
      the output. Giving a positive integer will specify the exact font size in points. All burn-in
      and DVB-Sub font settings must match.

      - **OutlineColor** *(string) --* Specifies font outline color. This option is not valid for
      source captions that are either 608/embedded or teletext. These source settings are already
      pre-defined by the caption stream. All burn-in and DVB-Sub font settings must match.

      - **OutlineSize** *(integer) --* Specifies font outline size in pixels. This option is not
      valid for source captions that are either 608/embedded or teletext. These source settings are
      already pre-defined by the caption stream. All burn-in and DVB-Sub font settings must match.

      - **ShadowColor** *(string) --* Specifies the color of the shadow cast by the captions. All
      burn-in and DVB-Sub font settings must match.

      - **ShadowOpacity** *(integer) --* Specifies the opacity of the shadow. 255 is opaque; 0 is
      transparent. Leaving this parameter out is equivalent to setting it to 0 (transparent). All
      burn-in and DVB-Sub font settings must match.

      - **ShadowXOffset** *(integer) --* Specifies the horizontal offset of the shadow relative to
      the captions in pixels. A value of -2 would result in a shadow offset 2 pixels to the left.
      All burn-in and DVB-Sub font settings must match.

      - **ShadowYOffset** *(integer) --* Specifies the vertical offset of the shadow relative to the
      captions in pixels. A value of -2 would result in a shadow offset 2 pixels above the text. All
      burn-in and DVB-Sub font settings must match.

      - **TeletextGridControl** *(string) --* Controls whether a fixed grid size will be used to
      generate the output subtitles bitmap. Only applicable for Teletext inputs and DVB-Sub/Burn-in
      outputs.

      - **XPosition** *(integer) --* Specifies the horizontal position of the caption relative to
      the left side of the output in pixels. A value of 10 would result in the captions starting 10
      pixels from the left of the output. If no explicit xPosition is provided, the horizontal
      caption position will be determined by the alignment parameter. All burn-in and DVB-Sub font
      settings must match.

      - **YPosition** *(integer) --* Specifies the vertical position of the caption relative to the
      top of the output in pixels. A value of 10 would result in the captions starting 10 pixels
      from the top of the output. If no explicit yPosition is provided, the caption will be
      positioned towards the bottom of the output. All burn-in and DVB-Sub font settings must match.

    - **DvbSubDestinationSettings** *(dict) --* Dvb Sub Destination Settings

      - **Alignment** *(string) --* If no explicit xPosition or yPosition is provided, setting
      alignment to centered will place the captions at the bottom center of the output. Similarly,
      setting a left alignment will align captions to the bottom left of the output. If x and y
      positions are given in conjunction with the alignment parameter, the font will be justified
      (either left or centered) relative to those coordinates. Selecting "smart" justification will
      left-justify live subtitles and center-justify pre-recorded subtitles. This option is not
      valid for source captions that are STL or 608/embedded. These source settings are already
      pre-defined by the caption stream. All burn-in and DVB-Sub font settings must match.

      - **BackgroundColor** *(string) --* Specifies the color of the rectangle behind the captions.
      All burn-in and DVB-Sub font settings must match.

      - **BackgroundOpacity** *(integer) --* Specifies the opacity of the background rectangle. 255
      is opaque; 0 is transparent. Leaving this parameter blank is equivalent to setting it to 0
      (transparent). All burn-in and DVB-Sub font settings must match.

      - **Font** *(dict) --* External font file used for caption burn-in. File extension must be
      'ttf' or 'tte'. Although the user can select output fonts for many different types of input
      captions, embedded, STL and teletext sources use a strict grid system. Using external fonts
      with these caption sources could cause unexpected display of proportional fonts. All burn-in
      and DVB-Sub font settings must match.

        - **PasswordParam** *(string) --* key used to extract the password from EC2 Parameter store

        - **Uri** *(string) --* Uniform Resource Identifier - This should be a path to a file
        accessible to the Live system (eg. a http:// URI) depending on the output type. For example,
        a RTMP destination should have a uri simliar to: "rtmp://fmsserver/live".

        - **Username** *(string) --* Documentation update needed

      - **FontColor** *(string) --* Specifies the color of the burned-in captions. This option is
      not valid for source captions that are STL, 608/embedded or teletext. These source settings
      are already pre-defined by the caption stream. All burn-in and DVB-Sub font settings must
      match.

      - **FontOpacity** *(integer) --* Specifies the opacity of the burned-in captions. 255 is
      opaque; 0 is transparent. All burn-in and DVB-Sub font settings must match.

      - **FontResolution** *(integer) --* Font resolution in DPI (dots per inch); default is 96 dpi.
      All burn-in and DVB-Sub font settings must match.

      - **FontSize** *(string) --* When set to auto fontSize will scale depending on the size of the
      output. Giving a positive integer will specify the exact font size in points. All burn-in and
      DVB-Sub font settings must match.

      - **OutlineColor** *(string) --* Specifies font outline color. This option is not valid for
      source captions that are either 608/embedded or teletext. These source settings are already
      pre-defined by the caption stream. All burn-in and DVB-Sub font settings must match.

      - **OutlineSize** *(integer) --* Specifies font outline size in pixels. This option is not
      valid for source captions that are either 608/embedded or teletext. These source settings are
      already pre-defined by the caption stream. All burn-in and DVB-Sub font settings must match.

      - **ShadowColor** *(string) --* Specifies the color of the shadow cast by the captions. All
      burn-in and DVB-Sub font settings must match.

      - **ShadowOpacity** *(integer) --* Specifies the opacity of the shadow. 255 is opaque; 0 is
      transparent. Leaving this parameter blank is equivalent to setting it to 0 (transparent). All
      burn-in and DVB-Sub font settings must match.

      - **ShadowXOffset** *(integer) --* Specifies the horizontal offset of the shadow relative to
      the captions in pixels. A value of -2 would result in a shadow offset 2 pixels to the left.
      All burn-in and DVB-Sub font settings must match.

      - **ShadowYOffset** *(integer) --* Specifies the vertical offset of the shadow relative to the
      captions in pixels. A value of -2 would result in a shadow offset 2 pixels above the text. All
      burn-in and DVB-Sub font settings must match.

      - **TeletextGridControl** *(string) --* Controls whether a fixed grid size will be used to
      generate the output subtitles bitmap. Only applicable for Teletext inputs and DVB-Sub/Burn-in
      outputs.

      - **XPosition** *(integer) --* Specifies the horizontal position of the caption relative to
      the left side of the output in pixels. A value of 10 would result in the captions starting 10
      pixels from the left of the output. If no explicit xPosition is provided, the horizontal
      caption position will be determined by the alignment parameter. This option is not valid for
      source captions that are STL, 608/embedded or teletext. These source settings are already
      pre-defined by the caption stream. All burn-in and DVB-Sub font settings must match.

      - **YPosition** *(integer) --* Specifies the vertical position of the caption relative to the
      top of the output in pixels. A value of 10 would result in the captions starting 10 pixels
      from the top of the output. If no explicit yPosition is provided, the caption will be
      positioned towards the bottom of the output. This option is not valid for source captions that
      are STL, 608/embedded or teletext. These source settings are already pre-defined by the
      caption stream. All burn-in and DVB-Sub font settings must match.

    - **EmbeddedDestinationSettings** *(dict) --* Embedded Destination Settings

    - **EmbeddedPlusScte20DestinationSettings** *(dict) --* Embedded Plus Scte20 Destination
    Settings

    - **RtmpCaptionInfoDestinationSettings** *(dict) --* Rtmp Caption Info Destination Settings

    - **Scte20PlusEmbeddedDestinationSettings** *(dict) --* Scte20 Plus Embedded Destination
    Settings

    - **Scte27DestinationSettings** *(dict) --* Scte27 Destination Settings

    - **SmpteTtDestinationSettings** *(dict) --* Smpte Tt Destination Settings

    - **TeletextDestinationSettings** *(dict) --* Teletext Destination Settings

    - **TtmlDestinationSettings** *(dict) --* Ttml Destination Settings

      - **StyleControl** *(string) --* When set to passthrough, passes through style and position
      information from a TTML-like input source (TTML, SMPTE-TT, CFF-TT) to the CFF-TT output or
      TTML output.

    - **WebvttDestinationSettings** *(dict) --* Webvtt Destination Settings
    """


_ClientUpdateChannelResponseChannelEncoderSettingsCaptionDescriptionsTypeDef = TypedDict(
    "_ClientUpdateChannelResponseChannelEncoderSettingsCaptionDescriptionsTypeDef",
    {
        "CaptionSelectorName": str,
        "DestinationSettings": ClientUpdateChannelResponseChannelEncoderSettingsCaptionDescriptionsDestinationSettingsTypeDef,
        "LanguageCode": str,
        "LanguageDescription": str,
        "Name": str,
    },
    total=False,
)


class ClientUpdateChannelResponseChannelEncoderSettingsCaptionDescriptionsTypeDef(
    _ClientUpdateChannelResponseChannelEncoderSettingsCaptionDescriptionsTypeDef
):
    """
    Type definition for `ClientUpdateChannelResponseChannelEncoderSettings` `CaptionDescriptions`

    - **CaptionSelectorName** *(string) --* Specifies which input caption selector to use as a
    caption source when generating output captions. This field should match a captionSelector name.

    - **DestinationSettings** *(dict) --* Additional settings for captions destination that depend
    on the destination type.

      - **AribDestinationSettings** *(dict) --* Arib Destination Settings

      - **BurnInDestinationSettings** *(dict) --* Burn In Destination Settings

        - **Alignment** *(string) --* If no explicit xPosition or yPosition is provided, setting
        alignment to centered will place the captions at the bottom center of the output. Similarly,
        setting a left alignment will align captions to the bottom left of the output. If x and y
        positions are given in conjunction with the alignment parameter, the font will be justified
        (either left or centered) relative to those coordinates. Selecting "smart" justification
        will left-justify live subtitles and center-justify pre-recorded subtitles. All burn-in and
        DVB-Sub font settings must match.

        - **BackgroundColor** *(string) --* Specifies the color of the rectangle behind the
        captions. All burn-in and DVB-Sub font settings must match.

        - **BackgroundOpacity** *(integer) --* Specifies the opacity of the background rectangle.
        255 is opaque; 0 is transparent. Leaving this parameter out is equivalent to setting it to 0
        (transparent). All burn-in and DVB-Sub font settings must match.

        - **Font** *(dict) --* External font file used for caption burn-in. File extension must be
        'ttf' or 'tte'. Although the user can select output fonts for many different types of input
        captions, embedded, STL and teletext sources use a strict grid system. Using external fonts
        with these caption sources could cause unexpected display of proportional fonts. All burn-in
        and DVB-Sub font settings must match.

          - **PasswordParam** *(string) --* key used to extract the password from EC2 Parameter
          store

          - **Uri** *(string) --* Uniform Resource Identifier - This should be a path to a file
          accessible to the Live system (eg. a http:// URI) depending on the output type. For
          example, a RTMP destination should have a uri simliar to: "rtmp://fmsserver/live".

          - **Username** *(string) --* Documentation update needed

        - **FontColor** *(string) --* Specifies the color of the burned-in captions. This option is
        not valid for source captions that are STL, 608/embedded or teletext. These source settings
        are already pre-defined by the caption stream. All burn-in and DVB-Sub font settings must
        match.

        - **FontOpacity** *(integer) --* Specifies the opacity of the burned-in captions. 255 is
        opaque; 0 is transparent. All burn-in and DVB-Sub font settings must match.

        - **FontResolution** *(integer) --* Font resolution in DPI (dots per inch); default is 96
        dpi. All burn-in and DVB-Sub font settings must match.

        - **FontSize** *(string) --* When set to 'auto' fontSize will scale depending on the size of
        the output. Giving a positive integer will specify the exact font size in points. All
        burn-in and DVB-Sub font settings must match.

        - **OutlineColor** *(string) --* Specifies font outline color. This option is not valid for
        source captions that are either 608/embedded or teletext. These source settings are already
        pre-defined by the caption stream. All burn-in and DVB-Sub font settings must match.

        - **OutlineSize** *(integer) --* Specifies font outline size in pixels. This option is not
        valid for source captions that are either 608/embedded or teletext. These source settings
        are already pre-defined by the caption stream. All burn-in and DVB-Sub font settings must
        match.

        - **ShadowColor** *(string) --* Specifies the color of the shadow cast by the captions. All
        burn-in and DVB-Sub font settings must match.

        - **ShadowOpacity** *(integer) --* Specifies the opacity of the shadow. 255 is opaque; 0 is
        transparent. Leaving this parameter out is equivalent to setting it to 0 (transparent). All
        burn-in and DVB-Sub font settings must match.

        - **ShadowXOffset** *(integer) --* Specifies the horizontal offset of the shadow relative to
        the captions in pixels. A value of -2 would result in a shadow offset 2 pixels to the left.
        All burn-in and DVB-Sub font settings must match.

        - **ShadowYOffset** *(integer) --* Specifies the vertical offset of the shadow relative to
        the captions in pixels. A value of -2 would result in a shadow offset 2 pixels above the
        text. All burn-in and DVB-Sub font settings must match.

        - **TeletextGridControl** *(string) --* Controls whether a fixed grid size will be used to
        generate the output subtitles bitmap. Only applicable for Teletext inputs and
        DVB-Sub/Burn-in outputs.

        - **XPosition** *(integer) --* Specifies the horizontal position of the caption relative to
        the left side of the output in pixels. A value of 10 would result in the captions starting
        10 pixels from the left of the output. If no explicit xPosition is provided, the horizontal
        caption position will be determined by the alignment parameter. All burn-in and DVB-Sub font
        settings must match.

        - **YPosition** *(integer) --* Specifies the vertical position of the caption relative to
        the top of the output in pixels. A value of 10 would result in the captions starting 10
        pixels from the top of the output. If no explicit yPosition is provided, the caption will be
        positioned towards the bottom of the output. All burn-in and DVB-Sub font settings must
        match.

      - **DvbSubDestinationSettings** *(dict) --* Dvb Sub Destination Settings

        - **Alignment** *(string) --* If no explicit xPosition or yPosition is provided, setting
        alignment to centered will place the captions at the bottom center of the output. Similarly,
        setting a left alignment will align captions to the bottom left of the output. If x and y
        positions are given in conjunction with the alignment parameter, the font will be justified
        (either left or centered) relative to those coordinates. Selecting "smart" justification
        will left-justify live subtitles and center-justify pre-recorded subtitles. This option is
        not valid for source captions that are STL or 608/embedded. These source settings are
        already pre-defined by the caption stream. All burn-in and DVB-Sub font settings must match.

        - **BackgroundColor** *(string) --* Specifies the color of the rectangle behind the
        captions. All burn-in and DVB-Sub font settings must match.

        - **BackgroundOpacity** *(integer) --* Specifies the opacity of the background rectangle.
        255 is opaque; 0 is transparent. Leaving this parameter blank is equivalent to setting it to
        0 (transparent). All burn-in and DVB-Sub font settings must match.

        - **Font** *(dict) --* External font file used for caption burn-in. File extension must be
        'ttf' or 'tte'. Although the user can select output fonts for many different types of input
        captions, embedded, STL and teletext sources use a strict grid system. Using external fonts
        with these caption sources could cause unexpected display of proportional fonts. All burn-in
        and DVB-Sub font settings must match.

          - **PasswordParam** *(string) --* key used to extract the password from EC2 Parameter
          store

          - **Uri** *(string) --* Uniform Resource Identifier - This should be a path to a file
          accessible to the Live system (eg. a http:// URI) depending on the output type. For
          example, a RTMP destination should have a uri simliar to: "rtmp://fmsserver/live".

          - **Username** *(string) --* Documentation update needed

        - **FontColor** *(string) --* Specifies the color of the burned-in captions. This option is
        not valid for source captions that are STL, 608/embedded or teletext. These source settings
        are already pre-defined by the caption stream. All burn-in and DVB-Sub font settings must
        match.

        - **FontOpacity** *(integer) --* Specifies the opacity of the burned-in captions. 255 is
        opaque; 0 is transparent. All burn-in and DVB-Sub font settings must match.

        - **FontResolution** *(integer) --* Font resolution in DPI (dots per inch); default is 96
        dpi. All burn-in and DVB-Sub font settings must match.

        - **FontSize** *(string) --* When set to auto fontSize will scale depending on the size of
        the output. Giving a positive integer will specify the exact font size in points. All
        burn-in and DVB-Sub font settings must match.

        - **OutlineColor** *(string) --* Specifies font outline color. This option is not valid for
        source captions that are either 608/embedded or teletext. These source settings are already
        pre-defined by the caption stream. All burn-in and DVB-Sub font settings must match.

        - **OutlineSize** *(integer) --* Specifies font outline size in pixels. This option is not
        valid for source captions that are either 608/embedded or teletext. These source settings
        are already pre-defined by the caption stream. All burn-in and DVB-Sub font settings must
        match.

        - **ShadowColor** *(string) --* Specifies the color of the shadow cast by the captions. All
        burn-in and DVB-Sub font settings must match.

        - **ShadowOpacity** *(integer) --* Specifies the opacity of the shadow. 255 is opaque; 0 is
        transparent. Leaving this parameter blank is equivalent to setting it to 0 (transparent).
        All burn-in and DVB-Sub font settings must match.

        - **ShadowXOffset** *(integer) --* Specifies the horizontal offset of the shadow relative to
        the captions in pixels. A value of -2 would result in a shadow offset 2 pixels to the left.
        All burn-in and DVB-Sub font settings must match.

        - **ShadowYOffset** *(integer) --* Specifies the vertical offset of the shadow relative to
        the captions in pixels. A value of -2 would result in a shadow offset 2 pixels above the
        text. All burn-in and DVB-Sub font settings must match.

        - **TeletextGridControl** *(string) --* Controls whether a fixed grid size will be used to
        generate the output subtitles bitmap. Only applicable for Teletext inputs and
        DVB-Sub/Burn-in outputs.

        - **XPosition** *(integer) --* Specifies the horizontal position of the caption relative to
        the left side of the output in pixels. A value of 10 would result in the captions starting
        10 pixels from the left of the output. If no explicit xPosition is provided, the horizontal
        caption position will be determined by the alignment parameter. This option is not valid for
        source captions that are STL, 608/embedded or teletext. These source settings are already
        pre-defined by the caption stream. All burn-in and DVB-Sub font settings must match.

        - **YPosition** *(integer) --* Specifies the vertical position of the caption relative to
        the top of the output in pixels. A value of 10 would result in the captions starting 10
        pixels from the top of the output. If no explicit yPosition is provided, the caption will be
        positioned towards the bottom of the output. This option is not valid for source captions
        that are STL, 608/embedded or teletext. These source settings are already pre-defined by the
        caption stream. All burn-in and DVB-Sub font settings must match.

      - **EmbeddedDestinationSettings** *(dict) --* Embedded Destination Settings

      - **EmbeddedPlusScte20DestinationSettings** *(dict) --* Embedded Plus Scte20 Destination
      Settings

      - **RtmpCaptionInfoDestinationSettings** *(dict) --* Rtmp Caption Info Destination Settings

      - **Scte20PlusEmbeddedDestinationSettings** *(dict) --* Scte20 Plus Embedded Destination
      Settings

      - **Scte27DestinationSettings** *(dict) --* Scte27 Destination Settings

      - **SmpteTtDestinationSettings** *(dict) --* Smpte Tt Destination Settings

      - **TeletextDestinationSettings** *(dict) --* Teletext Destination Settings

      - **TtmlDestinationSettings** *(dict) --* Ttml Destination Settings

        - **StyleControl** *(string) --* When set to passthrough, passes through style and position
        information from a TTML-like input source (TTML, SMPTE-TT, CFF-TT) to the CFF-TT output or
        TTML output.

      - **WebvttDestinationSettings** *(dict) --* Webvtt Destination Settings

    - **LanguageCode** *(string) --* ISO 639-2 three-digit code:
    http://www.loc.gov/standards/iso639-2/

    - **LanguageDescription** *(string) --* Human readable information to indicate captions
    available for players (eg. English, or Spanish).

    - **Name** *(string) --* Name of the caption description. Used to associate a caption
    description with an output. Names must be unique within an event.
    """


_ClientUpdateChannelResponseChannelEncoderSettingsGlobalConfigurationInputLossBehaviorInputLossImageSlateTypeDef = TypedDict(
    "_ClientUpdateChannelResponseChannelEncoderSettingsGlobalConfigurationInputLossBehaviorInputLossImageSlateTypeDef",
    {"PasswordParam": str, "Uri": str, "Username": str},
    total=False,
)


class ClientUpdateChannelResponseChannelEncoderSettingsGlobalConfigurationInputLossBehaviorInputLossImageSlateTypeDef(
    _ClientUpdateChannelResponseChannelEncoderSettingsGlobalConfigurationInputLossBehaviorInputLossImageSlateTypeDef
):
    """
    Type definition for
    `ClientUpdateChannelResponseChannelEncoderSettingsGlobalConfigurationInputLossBehavior`
    `InputLossImageSlate`

    - **PasswordParam** *(string) --* key used to extract the password from EC2 Parameter store

    - **Uri** *(string) --* Uniform Resource Identifier - This should be a path to a file accessible
    to the Live system (eg. a http:// URI) depending on the output type. For example, a RTMP
    destination should have a uri simliar to: "rtmp://fmsserver/live".

    - **Username** *(string) --* Documentation update needed
    """


_ClientUpdateChannelResponseChannelEncoderSettingsGlobalConfigurationInputLossBehaviorTypeDef = TypedDict(
    "_ClientUpdateChannelResponseChannelEncoderSettingsGlobalConfigurationInputLossBehaviorTypeDef",
    {
        "BlackFrameMsec": int,
        "InputLossImageColor": str,
        "InputLossImageSlate": ClientUpdateChannelResponseChannelEncoderSettingsGlobalConfigurationInputLossBehaviorInputLossImageSlateTypeDef,
        "InputLossImageType": str,
        "RepeatFrameMsec": int,
    },
    total=False,
)


class ClientUpdateChannelResponseChannelEncoderSettingsGlobalConfigurationInputLossBehaviorTypeDef(
    _ClientUpdateChannelResponseChannelEncoderSettingsGlobalConfigurationInputLossBehaviorTypeDef
):
    """
    Type definition for `ClientUpdateChannelResponseChannelEncoderSettingsGlobalConfiguration`
    `InputLossBehavior`

    - **BlackFrameMsec** *(integer) --* Documentation update needed

    - **InputLossImageColor** *(string) --* When input loss image type is "color" this field
    specifies the color to use. Value: 6 hex characters representing the values of RGB.

    - **InputLossImageSlate** *(dict) --* When input loss image type is "slate" these fields specify
    the parameters for accessing the slate.

      - **PasswordParam** *(string) --* key used to extract the password from EC2 Parameter store

      - **Uri** *(string) --* Uniform Resource Identifier - This should be a path to a file
      accessible to the Live system (eg. a http:// URI) depending on the output type. For example, a
      RTMP destination should have a uri simliar to: "rtmp://fmsserver/live".

      - **Username** *(string) --* Documentation update needed

    - **InputLossImageType** *(string) --* Indicates whether to substitute a solid color or a slate
    into the output after input loss exceeds blackFrameMsec.

    - **RepeatFrameMsec** *(integer) --* Documentation update needed
    """


_ClientUpdateChannelResponseChannelEncoderSettingsGlobalConfigurationTypeDef = TypedDict(
    "_ClientUpdateChannelResponseChannelEncoderSettingsGlobalConfigurationTypeDef",
    {
        "InitialAudioGain": int,
        "InputEndAction": str,
        "InputLossBehavior": ClientUpdateChannelResponseChannelEncoderSettingsGlobalConfigurationInputLossBehaviorTypeDef,
        "OutputLockingMode": str,
        "OutputTimingSource": str,
        "SupportLowFramerateInputs": str,
    },
    total=False,
)


class ClientUpdateChannelResponseChannelEncoderSettingsGlobalConfigurationTypeDef(
    _ClientUpdateChannelResponseChannelEncoderSettingsGlobalConfigurationTypeDef
):
    """
    Type definition for `ClientUpdateChannelResponseChannelEncoderSettings` `GlobalConfiguration`

    - **InitialAudioGain** *(integer) --* Value to set the initial audio gain for the Live Event.

    - **InputEndAction** *(string) --* Indicates the action to take when the current input completes
    (e.g. end-of-file). When switchAndLoopInputs is configured the encoder will restart at the
    beginning of the first input. When "none" is configured the encoder will transcode either black,
    a solid color, or a user specified slate images per the "Input Loss Behavior" configuration
    until the next input switch occurs (which is controlled through the Channel Schedule API).

    - **InputLossBehavior** *(dict) --* Settings for system actions when input is lost.

      - **BlackFrameMsec** *(integer) --* Documentation update needed

      - **InputLossImageColor** *(string) --* When input loss image type is "color" this field
      specifies the color to use. Value: 6 hex characters representing the values of RGB.

      - **InputLossImageSlate** *(dict) --* When input loss image type is "slate" these fields
      specify the parameters for accessing the slate.

        - **PasswordParam** *(string) --* key used to extract the password from EC2 Parameter store

        - **Uri** *(string) --* Uniform Resource Identifier - This should be a path to a file
        accessible to the Live system (eg. a http:// URI) depending on the output type. For example,
        a RTMP destination should have a uri simliar to: "rtmp://fmsserver/live".

        - **Username** *(string) --* Documentation update needed

      - **InputLossImageType** *(string) --* Indicates whether to substitute a solid color or a
      slate into the output after input loss exceeds blackFrameMsec.

      - **RepeatFrameMsec** *(integer) --* Documentation update needed

    - **OutputLockingMode** *(string) --* Indicates how MediaLive pipelines are synchronized.
    PIPELINELOCKING - MediaLive will attempt to synchronize the output of each pipeline to the
    other. EPOCHLOCKING - MediaLive will attempt to synchronize the output of each pipeline to the
    Unix epoch.

    - **OutputTimingSource** *(string) --* Indicates whether the rate of frames emitted by the Live
    encoder should be paced by its system clock (which optionally may be locked to another source
    via NTP) or should be locked to the clock of the source that is providing the input stream.

    - **SupportLowFramerateInputs** *(string) --* Adjusts video input buffer for streams with very
    low video framerates. This is commonly set to enabled for music channels with less than one
    video frame per second.
    """


_ClientUpdateChannelResponseChannelEncoderSettingsNielsenConfigurationTypeDef = TypedDict(
    "_ClientUpdateChannelResponseChannelEncoderSettingsNielsenConfigurationTypeDef",
    {"DistributorId": str, "NielsenPcmToId3Tagging": str},
    total=False,
)


class ClientUpdateChannelResponseChannelEncoderSettingsNielsenConfigurationTypeDef(
    _ClientUpdateChannelResponseChannelEncoderSettingsNielsenConfigurationTypeDef
):
    """
    Type definition for `ClientUpdateChannelResponseChannelEncoderSettings` `NielsenConfiguration`

    - **DistributorId** *(string) --* Enter the Distributor ID assigned to your organization by
    Nielsen.

    - **NielsenPcmToId3Tagging** *(string) --* Enables Nielsen PCM to ID3 tagging
    """


_ClientUpdateChannelResponseChannelEncoderSettingsOutputGroupsOutputGroupSettingsArchiveGroupSettingsDestinationTypeDef = TypedDict(
    "_ClientUpdateChannelResponseChannelEncoderSettingsOutputGroupsOutputGroupSettingsArchiveGroupSettingsDestinationTypeDef",
    {"DestinationRefId": str},
    total=False,
)


class ClientUpdateChannelResponseChannelEncoderSettingsOutputGroupsOutputGroupSettingsArchiveGroupSettingsDestinationTypeDef(
    _ClientUpdateChannelResponseChannelEncoderSettingsOutputGroupsOutputGroupSettingsArchiveGroupSettingsDestinationTypeDef
):
    """
    Type definition for
    `ClientUpdateChannelResponseChannelEncoderSettingsOutputGroupsOutputGroupSettingsArchiveGroupSettings`
    `Destination`

    - **DestinationRefId** *(string) --* Placeholder documentation for __string
    """


_ClientUpdateChannelResponseChannelEncoderSettingsOutputGroupsOutputGroupSettingsArchiveGroupSettingsTypeDef = TypedDict(
    "_ClientUpdateChannelResponseChannelEncoderSettingsOutputGroupsOutputGroupSettingsArchiveGroupSettingsTypeDef",
    {
        "Destination": ClientUpdateChannelResponseChannelEncoderSettingsOutputGroupsOutputGroupSettingsArchiveGroupSettingsDestinationTypeDef,
        "RolloverInterval": int,
    },
    total=False,
)


class ClientUpdateChannelResponseChannelEncoderSettingsOutputGroupsOutputGroupSettingsArchiveGroupSettingsTypeDef(
    _ClientUpdateChannelResponseChannelEncoderSettingsOutputGroupsOutputGroupSettingsArchiveGroupSettingsTypeDef
):
    """
    Type definition for
    `ClientUpdateChannelResponseChannelEncoderSettingsOutputGroupsOutputGroupSettings`
    `ArchiveGroupSettings`

    - **Destination** *(dict) --* A directory and base filename where archive files should be
    written.

      - **DestinationRefId** *(string) --* Placeholder documentation for __string

    - **RolloverInterval** *(integer) --* Number of seconds to write to archive file before closing
    and starting a new one.
    """


_ClientUpdateChannelResponseChannelEncoderSettingsOutputGroupsOutputGroupSettingsFrameCaptureGroupSettingsDestinationTypeDef = TypedDict(
    "_ClientUpdateChannelResponseChannelEncoderSettingsOutputGroupsOutputGroupSettingsFrameCaptureGroupSettingsDestinationTypeDef",
    {"DestinationRefId": str},
    total=False,
)


class ClientUpdateChannelResponseChannelEncoderSettingsOutputGroupsOutputGroupSettingsFrameCaptureGroupSettingsDestinationTypeDef(
    _ClientUpdateChannelResponseChannelEncoderSettingsOutputGroupsOutputGroupSettingsFrameCaptureGroupSettingsDestinationTypeDef
):
    """
    Type definition for
    `ClientUpdateChannelResponseChannelEncoderSettingsOutputGroupsOutputGroupSettingsFrameCaptureGroupSettings`
    `Destination`

    - **DestinationRefId** *(string) --* Placeholder documentation for __string
    """


_ClientUpdateChannelResponseChannelEncoderSettingsOutputGroupsOutputGroupSettingsFrameCaptureGroupSettingsTypeDef = TypedDict(
    "_ClientUpdateChannelResponseChannelEncoderSettingsOutputGroupsOutputGroupSettingsFrameCaptureGroupSettingsTypeDef",
    {
        "Destination": ClientUpdateChannelResponseChannelEncoderSettingsOutputGroupsOutputGroupSettingsFrameCaptureGroupSettingsDestinationTypeDef
    },
    total=False,
)


class ClientUpdateChannelResponseChannelEncoderSettingsOutputGroupsOutputGroupSettingsFrameCaptureGroupSettingsTypeDef(
    _ClientUpdateChannelResponseChannelEncoderSettingsOutputGroupsOutputGroupSettingsFrameCaptureGroupSettingsTypeDef
):
    """
    Type definition for
    `ClientUpdateChannelResponseChannelEncoderSettingsOutputGroupsOutputGroupSettings`
    `FrameCaptureGroupSettings`

    - **Destination** *(dict) --* The destination for the frame capture files. Either the URI for an
    Amazon S3 bucket and object, plus a file name prefix (for example,
    s3ssl://sportsDelivery/highlights/20180820/curling_) or the URI for a MediaStore container, plus
    a file name prefix (for example, mediastoressl://sportsDelivery/20180820/curling_). The final
    file names consist of the prefix from the destination field (for example, "curling_") + name
    modifier + the counter (5 digits, starting from 00001) + extension (which is always .jpg). For
    example, curlingLow.00001.jpg

      - **DestinationRefId** *(string) --* Placeholder documentation for __string
    """


_ClientUpdateChannelResponseChannelEncoderSettingsOutputGroupsOutputGroupSettingsHlsGroupSettingsCaptionLanguageMappingsTypeDef = TypedDict(
    "_ClientUpdateChannelResponseChannelEncoderSettingsOutputGroupsOutputGroupSettingsHlsGroupSettingsCaptionLanguageMappingsTypeDef",
    {"CaptionChannel": int, "LanguageCode": str, "LanguageDescription": str},
    total=False,
)


class ClientUpdateChannelResponseChannelEncoderSettingsOutputGroupsOutputGroupSettingsHlsGroupSettingsCaptionLanguageMappingsTypeDef(
    _ClientUpdateChannelResponseChannelEncoderSettingsOutputGroupsOutputGroupSettingsHlsGroupSettingsCaptionLanguageMappingsTypeDef
):
    """
    Type definition for
    `ClientUpdateChannelResponseChannelEncoderSettingsOutputGroupsOutputGroupSettingsHlsGroupSettings`
    `CaptionLanguageMappings`

    - **CaptionChannel** *(integer) --* The closed caption channel being described by this
    CaptionLanguageMapping. Each channel mapping must have a unique channel number (maximum of 4)

    - **LanguageCode** *(string) --* Three character ISO 639-2 language code (see
    http://www.loc.gov/standards/iso639-2)

    - **LanguageDescription** *(string) --* Textual description of language
    """


_ClientUpdateChannelResponseChannelEncoderSettingsOutputGroupsOutputGroupSettingsHlsGroupSettingsDestinationTypeDef = TypedDict(
    "_ClientUpdateChannelResponseChannelEncoderSettingsOutputGroupsOutputGroupSettingsHlsGroupSettingsDestinationTypeDef",
    {"DestinationRefId": str},
    total=False,
)


class ClientUpdateChannelResponseChannelEncoderSettingsOutputGroupsOutputGroupSettingsHlsGroupSettingsDestinationTypeDef(
    _ClientUpdateChannelResponseChannelEncoderSettingsOutputGroupsOutputGroupSettingsHlsGroupSettingsDestinationTypeDef
):
    """
    Type definition for
    `ClientUpdateChannelResponseChannelEncoderSettingsOutputGroupsOutputGroupSettingsHlsGroupSettings`
    `Destination`

    - **DestinationRefId** *(string) --* Placeholder documentation for __string
    """


_ClientUpdateChannelResponseChannelEncoderSettingsOutputGroupsOutputGroupSettingsHlsGroupSettingsHlsCdnSettingsHlsAkamaiSettingsTypeDef = TypedDict(
    "_ClientUpdateChannelResponseChannelEncoderSettingsOutputGroupsOutputGroupSettingsHlsGroupSettingsHlsCdnSettingsHlsAkamaiSettingsTypeDef",
    {
        "ConnectionRetryInterval": int,
        "FilecacheDuration": int,
        "HttpTransferMode": str,
        "NumRetries": int,
        "RestartDelay": int,
        "Salt": str,
        "Token": str,
    },
    total=False,
)


class ClientUpdateChannelResponseChannelEncoderSettingsOutputGroupsOutputGroupSettingsHlsGroupSettingsHlsCdnSettingsHlsAkamaiSettingsTypeDef(
    _ClientUpdateChannelResponseChannelEncoderSettingsOutputGroupsOutputGroupSettingsHlsGroupSettingsHlsCdnSettingsHlsAkamaiSettingsTypeDef
):
    """
    Type definition for
    `ClientUpdateChannelResponseChannelEncoderSettingsOutputGroupsOutputGroupSettingsHlsGroupSettingsHlsCdnSettings`
    `HlsAkamaiSettings`

    - **ConnectionRetryInterval** *(integer) --* Number of seconds to wait before retrying
    connection to the CDN if the connection is lost.

    - **FilecacheDuration** *(integer) --* Size in seconds of file cache for streaming outputs.

    - **HttpTransferMode** *(string) --* Specify whether or not to use chunked transfer encoding to
    Akamai. User should contact Akamai to enable this feature.

    - **NumRetries** *(integer) --* Number of retry attempts that will be made before the Live Event
    is put into an error state.

    - **RestartDelay** *(integer) --* If a streaming output fails, number of seconds to wait until a
    restart is initiated. A value of 0 means never restart.

    - **Salt** *(string) --* Salt for authenticated Akamai.

    - **Token** *(string) --* Token parameter for authenticated akamai. If not specified, _gda_ is
    used.
    """


_ClientUpdateChannelResponseChannelEncoderSettingsOutputGroupsOutputGroupSettingsHlsGroupSettingsHlsCdnSettingsHlsBasicPutSettingsTypeDef = TypedDict(
    "_ClientUpdateChannelResponseChannelEncoderSettingsOutputGroupsOutputGroupSettingsHlsGroupSettingsHlsCdnSettingsHlsBasicPutSettingsTypeDef",
    {
        "ConnectionRetryInterval": int,
        "FilecacheDuration": int,
        "NumRetries": int,
        "RestartDelay": int,
    },
    total=False,
)


class ClientUpdateChannelResponseChannelEncoderSettingsOutputGroupsOutputGroupSettingsHlsGroupSettingsHlsCdnSettingsHlsBasicPutSettingsTypeDef(
    _ClientUpdateChannelResponseChannelEncoderSettingsOutputGroupsOutputGroupSettingsHlsGroupSettingsHlsCdnSettingsHlsBasicPutSettingsTypeDef
):
    """
    Type definition for
    `ClientUpdateChannelResponseChannelEncoderSettingsOutputGroupsOutputGroupSettingsHlsGroupSettingsHlsCdnSettings`
    `HlsBasicPutSettings`

    - **ConnectionRetryInterval** *(integer) --* Number of seconds to wait before retrying
    connection to the CDN if the connection is lost.

    - **FilecacheDuration** *(integer) --* Size in seconds of file cache for streaming outputs.

    - **NumRetries** *(integer) --* Number of retry attempts that will be made before the Live Event
    is put into an error state.

    - **RestartDelay** *(integer) --* If a streaming output fails, number of seconds to wait until a
    restart is initiated. A value of 0 means never restart.
    """


_ClientUpdateChannelResponseChannelEncoderSettingsOutputGroupsOutputGroupSettingsHlsGroupSettingsHlsCdnSettingsHlsMediaStoreSettingsTypeDef = TypedDict(
    "_ClientUpdateChannelResponseChannelEncoderSettingsOutputGroupsOutputGroupSettingsHlsGroupSettingsHlsCdnSettingsHlsMediaStoreSettingsTypeDef",
    {
        "ConnectionRetryInterval": int,
        "FilecacheDuration": int,
        "MediaStoreStorageClass": str,
        "NumRetries": int,
        "RestartDelay": int,
    },
    total=False,
)


class ClientUpdateChannelResponseChannelEncoderSettingsOutputGroupsOutputGroupSettingsHlsGroupSettingsHlsCdnSettingsHlsMediaStoreSettingsTypeDef(
    _ClientUpdateChannelResponseChannelEncoderSettingsOutputGroupsOutputGroupSettingsHlsGroupSettingsHlsCdnSettingsHlsMediaStoreSettingsTypeDef
):
    """
    Type definition for
    `ClientUpdateChannelResponseChannelEncoderSettingsOutputGroupsOutputGroupSettingsHlsGroupSettingsHlsCdnSettings`
    `HlsMediaStoreSettings`

    - **ConnectionRetryInterval** *(integer) --* Number of seconds to wait before retrying
    connection to the CDN if the connection is lost.

    - **FilecacheDuration** *(integer) --* Size in seconds of file cache for streaming outputs.

    - **MediaStoreStorageClass** *(string) --* When set to temporal, output files are stored in
    non-persistent memory for faster reading and writing.

    - **NumRetries** *(integer) --* Number of retry attempts that will be made before the Live Event
    is put into an error state.

    - **RestartDelay** *(integer) --* If a streaming output fails, number of seconds to wait until a
    restart is initiated. A value of 0 means never restart.
    """


_ClientUpdateChannelResponseChannelEncoderSettingsOutputGroupsOutputGroupSettingsHlsGroupSettingsHlsCdnSettingsHlsWebdavSettingsTypeDef = TypedDict(
    "_ClientUpdateChannelResponseChannelEncoderSettingsOutputGroupsOutputGroupSettingsHlsGroupSettingsHlsCdnSettingsHlsWebdavSettingsTypeDef",
    {
        "ConnectionRetryInterval": int,
        "FilecacheDuration": int,
        "HttpTransferMode": str,
        "NumRetries": int,
        "RestartDelay": int,
    },
    total=False,
)


class ClientUpdateChannelResponseChannelEncoderSettingsOutputGroupsOutputGroupSettingsHlsGroupSettingsHlsCdnSettingsHlsWebdavSettingsTypeDef(
    _ClientUpdateChannelResponseChannelEncoderSettingsOutputGroupsOutputGroupSettingsHlsGroupSettingsHlsCdnSettingsHlsWebdavSettingsTypeDef
):
    """
    Type definition for
    `ClientUpdateChannelResponseChannelEncoderSettingsOutputGroupsOutputGroupSettingsHlsGroupSettingsHlsCdnSettings`
    `HlsWebdavSettings`

    - **ConnectionRetryInterval** *(integer) --* Number of seconds to wait before retrying
    connection to the CDN if the connection is lost.

    - **FilecacheDuration** *(integer) --* Size in seconds of file cache for streaming outputs.

    - **HttpTransferMode** *(string) --* Specify whether or not to use chunked transfer encoding to
    WebDAV.

    - **NumRetries** *(integer) --* Number of retry attempts that will be made before the Live Event
    is put into an error state.

    - **RestartDelay** *(integer) --* If a streaming output fails, number of seconds to wait until a
    restart is initiated. A value of 0 means never restart.
    """


_ClientUpdateChannelResponseChannelEncoderSettingsOutputGroupsOutputGroupSettingsHlsGroupSettingsHlsCdnSettingsTypeDef = TypedDict(
    "_ClientUpdateChannelResponseChannelEncoderSettingsOutputGroupsOutputGroupSettingsHlsGroupSettingsHlsCdnSettingsTypeDef",
    {
        "HlsAkamaiSettings": ClientUpdateChannelResponseChannelEncoderSettingsOutputGroupsOutputGroupSettingsHlsGroupSettingsHlsCdnSettingsHlsAkamaiSettingsTypeDef,
        "HlsBasicPutSettings": ClientUpdateChannelResponseChannelEncoderSettingsOutputGroupsOutputGroupSettingsHlsGroupSettingsHlsCdnSettingsHlsBasicPutSettingsTypeDef,
        "HlsMediaStoreSettings": ClientUpdateChannelResponseChannelEncoderSettingsOutputGroupsOutputGroupSettingsHlsGroupSettingsHlsCdnSettingsHlsMediaStoreSettingsTypeDef,
        "HlsWebdavSettings": ClientUpdateChannelResponseChannelEncoderSettingsOutputGroupsOutputGroupSettingsHlsGroupSettingsHlsCdnSettingsHlsWebdavSettingsTypeDef,
    },
    total=False,
)


class ClientUpdateChannelResponseChannelEncoderSettingsOutputGroupsOutputGroupSettingsHlsGroupSettingsHlsCdnSettingsTypeDef(
    _ClientUpdateChannelResponseChannelEncoderSettingsOutputGroupsOutputGroupSettingsHlsGroupSettingsHlsCdnSettingsTypeDef
):
    """
    Type definition for
    `ClientUpdateChannelResponseChannelEncoderSettingsOutputGroupsOutputGroupSettingsHlsGroupSettings`
    `HlsCdnSettings`

    - **HlsAkamaiSettings** *(dict) --* Hls Akamai Settings

      - **ConnectionRetryInterval** *(integer) --* Number of seconds to wait before retrying
      connection to the CDN if the connection is lost.

      - **FilecacheDuration** *(integer) --* Size in seconds of file cache for streaming outputs.

      - **HttpTransferMode** *(string) --* Specify whether or not to use chunked transfer encoding
      to Akamai. User should contact Akamai to enable this feature.

      - **NumRetries** *(integer) --* Number of retry attempts that will be made before the Live
      Event is put into an error state.

      - **RestartDelay** *(integer) --* If a streaming output fails, number of seconds to wait until
      a restart is initiated. A value of 0 means never restart.

      - **Salt** *(string) --* Salt for authenticated Akamai.

      - **Token** *(string) --* Token parameter for authenticated akamai. If not specified, _gda_ is
      used.

    - **HlsBasicPutSettings** *(dict) --* Hls Basic Put Settings

      - **ConnectionRetryInterval** *(integer) --* Number of seconds to wait before retrying
      connection to the CDN if the connection is lost.

      - **FilecacheDuration** *(integer) --* Size in seconds of file cache for streaming outputs.

      - **NumRetries** *(integer) --* Number of retry attempts that will be made before the Live
      Event is put into an error state.

      - **RestartDelay** *(integer) --* If a streaming output fails, number of seconds to wait until
      a restart is initiated. A value of 0 means never restart.

    - **HlsMediaStoreSettings** *(dict) --* Hls Media Store Settings

      - **ConnectionRetryInterval** *(integer) --* Number of seconds to wait before retrying
      connection to the CDN if the connection is lost.

      - **FilecacheDuration** *(integer) --* Size in seconds of file cache for streaming outputs.

      - **MediaStoreStorageClass** *(string) --* When set to temporal, output files are stored in
      non-persistent memory for faster reading and writing.

      - **NumRetries** *(integer) --* Number of retry attempts that will be made before the Live
      Event is put into an error state.

      - **RestartDelay** *(integer) --* If a streaming output fails, number of seconds to wait until
      a restart is initiated. A value of 0 means never restart.

    - **HlsWebdavSettings** *(dict) --* Hls Webdav Settings

      - **ConnectionRetryInterval** *(integer) --* Number of seconds to wait before retrying
      connection to the CDN if the connection is lost.

      - **FilecacheDuration** *(integer) --* Size in seconds of file cache for streaming outputs.

      - **HttpTransferMode** *(string) --* Specify whether or not to use chunked transfer encoding
      to WebDAV.

      - **NumRetries** *(integer) --* Number of retry attempts that will be made before the Live
      Event is put into an error state.

      - **RestartDelay** *(integer) --* If a streaming output fails, number of seconds to wait until
      a restart is initiated. A value of 0 means never restart.
    """


_ClientUpdateChannelResponseChannelEncoderSettingsOutputGroupsOutputGroupSettingsHlsGroupSettingsKeyProviderSettingsStaticKeySettingsKeyProviderServerTypeDef = TypedDict(
    "_ClientUpdateChannelResponseChannelEncoderSettingsOutputGroupsOutputGroupSettingsHlsGroupSettingsKeyProviderSettingsStaticKeySettingsKeyProviderServerTypeDef",
    {"PasswordParam": str, "Uri": str, "Username": str},
    total=False,
)


class ClientUpdateChannelResponseChannelEncoderSettingsOutputGroupsOutputGroupSettingsHlsGroupSettingsKeyProviderSettingsStaticKeySettingsKeyProviderServerTypeDef(
    _ClientUpdateChannelResponseChannelEncoderSettingsOutputGroupsOutputGroupSettingsHlsGroupSettingsKeyProviderSettingsStaticKeySettingsKeyProviderServerTypeDef
):
    """
    Type definition for
    `ClientUpdateChannelResponseChannelEncoderSettingsOutputGroupsOutputGroupSettingsHlsGroupSettingsKeyProviderSettingsStaticKeySettings`
    `KeyProviderServer`

    - **PasswordParam** *(string) --* key used to extract the password from EC2 Parameter store

    - **Uri** *(string) --* Uniform Resource Identifier - This should be a path to a file accessible
    to the Live system (eg. a http:// URI) depending on the output type. For example, a RTMP
    destination should have a uri simliar to: "rtmp://fmsserver/live".

    - **Username** *(string) --* Documentation update needed
    """


_ClientUpdateChannelResponseChannelEncoderSettingsOutputGroupsOutputGroupSettingsHlsGroupSettingsKeyProviderSettingsStaticKeySettingsTypeDef = TypedDict(
    "_ClientUpdateChannelResponseChannelEncoderSettingsOutputGroupsOutputGroupSettingsHlsGroupSettingsKeyProviderSettingsStaticKeySettingsTypeDef",
    {
        "KeyProviderServer": ClientUpdateChannelResponseChannelEncoderSettingsOutputGroupsOutputGroupSettingsHlsGroupSettingsKeyProviderSettingsStaticKeySettingsKeyProviderServerTypeDef,
        "StaticKeyValue": str,
    },
    total=False,
)


class ClientUpdateChannelResponseChannelEncoderSettingsOutputGroupsOutputGroupSettingsHlsGroupSettingsKeyProviderSettingsStaticKeySettingsTypeDef(
    _ClientUpdateChannelResponseChannelEncoderSettingsOutputGroupsOutputGroupSettingsHlsGroupSettingsKeyProviderSettingsStaticKeySettingsTypeDef
):
    """
    Type definition for
    `ClientUpdateChannelResponseChannelEncoderSettingsOutputGroupsOutputGroupSettingsHlsGroupSettingsKeyProviderSettings`
    `StaticKeySettings`

    - **KeyProviderServer** *(dict) --* The URL of the license server used for protecting content.

      - **PasswordParam** *(string) --* key used to extract the password from EC2 Parameter store

      - **Uri** *(string) --* Uniform Resource Identifier - This should be a path to a file
      accessible to the Live system (eg. a http:// URI) depending on the output type. For example, a
      RTMP destination should have a uri simliar to: "rtmp://fmsserver/live".

      - **Username** *(string) --* Documentation update needed

    - **StaticKeyValue** *(string) --* Static key value as a 32 character hexadecimal string.
    """


_ClientUpdateChannelResponseChannelEncoderSettingsOutputGroupsOutputGroupSettingsHlsGroupSettingsKeyProviderSettingsTypeDef = TypedDict(
    "_ClientUpdateChannelResponseChannelEncoderSettingsOutputGroupsOutputGroupSettingsHlsGroupSettingsKeyProviderSettingsTypeDef",
    {
        "StaticKeySettings": ClientUpdateChannelResponseChannelEncoderSettingsOutputGroupsOutputGroupSettingsHlsGroupSettingsKeyProviderSettingsStaticKeySettingsTypeDef
    },
    total=False,
)


class ClientUpdateChannelResponseChannelEncoderSettingsOutputGroupsOutputGroupSettingsHlsGroupSettingsKeyProviderSettingsTypeDef(
    _ClientUpdateChannelResponseChannelEncoderSettingsOutputGroupsOutputGroupSettingsHlsGroupSettingsKeyProviderSettingsTypeDef
):
    """
    Type definition for
    `ClientUpdateChannelResponseChannelEncoderSettingsOutputGroupsOutputGroupSettingsHlsGroupSettings`
    `KeyProviderSettings`

    - **StaticKeySettings** *(dict) --* Static Key Settings

      - **KeyProviderServer** *(dict) --* The URL of the license server used for protecting content.

        - **PasswordParam** *(string) --* key used to extract the password from EC2 Parameter store

        - **Uri** *(string) --* Uniform Resource Identifier - This should be a path to a file
        accessible to the Live system (eg. a http:// URI) depending on the output type. For example,
        a RTMP destination should have a uri simliar to: "rtmp://fmsserver/live".

        - **Username** *(string) --* Documentation update needed

      - **StaticKeyValue** *(string) --* Static key value as a 32 character hexadecimal string.
    """


_ClientUpdateChannelResponseChannelEncoderSettingsOutputGroupsOutputGroupSettingsHlsGroupSettingsTypeDef = TypedDict(
    "_ClientUpdateChannelResponseChannelEncoderSettingsOutputGroupsOutputGroupSettingsHlsGroupSettingsTypeDef",
    {
        "AdMarkers": List[str],
        "BaseUrlContent": str,
        "BaseUrlManifest": str,
        "CaptionLanguageMappings": List[
            ClientUpdateChannelResponseChannelEncoderSettingsOutputGroupsOutputGroupSettingsHlsGroupSettingsCaptionLanguageMappingsTypeDef
        ],
        "CaptionLanguageSetting": str,
        "ClientCache": str,
        "CodecSpecification": str,
        "ConstantIv": str,
        "Destination": ClientUpdateChannelResponseChannelEncoderSettingsOutputGroupsOutputGroupSettingsHlsGroupSettingsDestinationTypeDef,
        "DirectoryStructure": str,
        "EncryptionType": str,
        "HlsCdnSettings": ClientUpdateChannelResponseChannelEncoderSettingsOutputGroupsOutputGroupSettingsHlsGroupSettingsHlsCdnSettingsTypeDef,
        "IFrameOnlyPlaylists": str,
        "IndexNSegments": int,
        "InputLossAction": str,
        "IvInManifest": str,
        "IvSource": str,
        "KeepSegments": int,
        "KeyFormat": str,
        "KeyFormatVersions": str,
        "KeyProviderSettings": ClientUpdateChannelResponseChannelEncoderSettingsOutputGroupsOutputGroupSettingsHlsGroupSettingsKeyProviderSettingsTypeDef,
        "ManifestCompression": str,
        "ManifestDurationFormat": str,
        "MinSegmentLength": int,
        "Mode": str,
        "OutputSelection": str,
        "ProgramDateTime": str,
        "ProgramDateTimePeriod": int,
        "RedundantManifest": str,
        "SegmentLength": int,
        "SegmentationMode": str,
        "SegmentsPerSubdirectory": int,
        "StreamInfResolution": str,
        "TimedMetadataId3Frame": str,
        "TimedMetadataId3Period": int,
        "TimestampDeltaMilliseconds": int,
        "TsFileMode": str,
    },
    total=False,
)


class ClientUpdateChannelResponseChannelEncoderSettingsOutputGroupsOutputGroupSettingsHlsGroupSettingsTypeDef(
    _ClientUpdateChannelResponseChannelEncoderSettingsOutputGroupsOutputGroupSettingsHlsGroupSettingsTypeDef
):
    """
    Type definition for
    `ClientUpdateChannelResponseChannelEncoderSettingsOutputGroupsOutputGroupSettings`
    `HlsGroupSettings`

    - **AdMarkers** *(list) --* Choose one or more ad marker types to pass SCTE35 signals through to
    this group of Apple HLS outputs.

      - *(string) --* Hls Ad Markers

    - **BaseUrlContent** *(string) --* A partial URI prefix that will be prepended to each output in
    the media .m3u8 file. Can be used if base manifest is delivered from a different URL than the
    main .m3u8 file.

    - **BaseUrlManifest** *(string) --* A partial URI prefix that will be prepended to each output
    in the media .m3u8 file. Can be used if base manifest is delivered from a different URL than the
    main .m3u8 file.

    - **CaptionLanguageMappings** *(list) --* Mapping of up to 4 caption channels to caption
    languages. Is only meaningful if captionLanguageSetting is set to "insert".

      - *(dict) --* Maps a caption channel to an ISO 693-2 language code
      (http://www.loc.gov/standards/iso639-2), with an optional description.

        - **CaptionChannel** *(integer) --* The closed caption channel being described by this
        CaptionLanguageMapping. Each channel mapping must have a unique channel number (maximum of
        4)

        - **LanguageCode** *(string) --* Three character ISO 639-2 language code (see
        http://www.loc.gov/standards/iso639-2)

        - **LanguageDescription** *(string) --* Textual description of language

    - **CaptionLanguageSetting** *(string) --* Applies only to 608 Embedded output captions. insert:
    Include CLOSED-CAPTIONS lines in the manifest. Specify at least one language in the CC1 Language
    Code field. One CLOSED-CAPTION line is added for each Language Code you specify. Make sure to
    specify the languages in the order in which they appear in the original source (if the source is
    embedded format) or the order of the caption selectors (if the source is other than embedded).
    Otherwise, languages in the manifest will not match up properly with the output captions. none:
    Include CLOSED-CAPTIONS=NONE line in the manifest. omit: Omit any CLOSED-CAPTIONS line from the
    manifest.

    - **ClientCache** *(string) --* When set to "disabled", sets the #EXT-X-ALLOW-CACHE:no tag in
    the manifest, which prevents clients from saving media segments for later replay.

    - **CodecSpecification** *(string) --* Specification to use (RFC-6381 or the default RFC-4281)
    during m3u8 playlist generation.

    - **ConstantIv** *(string) --* For use with encryptionType. This is a 128-bit, 16-byte hex value
    represented by a 32-character text string. If ivSource is set to "explicit" then this parameter
    is required and is used as the IV for encryption.

    - **Destination** *(dict) --* A directory or HTTP destination for the HLS segments, manifest
    files, and encryption keys (if enabled).

      - **DestinationRefId** *(string) --* Placeholder documentation for __string

    - **DirectoryStructure** *(string) --* Place segments in subdirectories.

    - **EncryptionType** *(string) --* Encrypts the segments with the given encryption scheme.
    Exclude this parameter if no encryption is desired.

    - **HlsCdnSettings** *(dict) --* Parameters that control interactions with the CDN.

      - **HlsAkamaiSettings** *(dict) --* Hls Akamai Settings

        - **ConnectionRetryInterval** *(integer) --* Number of seconds to wait before retrying
        connection to the CDN if the connection is lost.

        - **FilecacheDuration** *(integer) --* Size in seconds of file cache for streaming outputs.

        - **HttpTransferMode** *(string) --* Specify whether or not to use chunked transfer encoding
        to Akamai. User should contact Akamai to enable this feature.

        - **NumRetries** *(integer) --* Number of retry attempts that will be made before the Live
        Event is put into an error state.

        - **RestartDelay** *(integer) --* If a streaming output fails, number of seconds to wait
        until a restart is initiated. A value of 0 means never restart.

        - **Salt** *(string) --* Salt for authenticated Akamai.

        - **Token** *(string) --* Token parameter for authenticated akamai. If not specified, _gda_
        is used.

      - **HlsBasicPutSettings** *(dict) --* Hls Basic Put Settings

        - **ConnectionRetryInterval** *(integer) --* Number of seconds to wait before retrying
        connection to the CDN if the connection is lost.

        - **FilecacheDuration** *(integer) --* Size in seconds of file cache for streaming outputs.

        - **NumRetries** *(integer) --* Number of retry attempts that will be made before the Live
        Event is put into an error state.

        - **RestartDelay** *(integer) --* If a streaming output fails, number of seconds to wait
        until a restart is initiated. A value of 0 means never restart.

      - **HlsMediaStoreSettings** *(dict) --* Hls Media Store Settings

        - **ConnectionRetryInterval** *(integer) --* Number of seconds to wait before retrying
        connection to the CDN if the connection is lost.

        - **FilecacheDuration** *(integer) --* Size in seconds of file cache for streaming outputs.

        - **MediaStoreStorageClass** *(string) --* When set to temporal, output files are stored in
        non-persistent memory for faster reading and writing.

        - **NumRetries** *(integer) --* Number of retry attempts that will be made before the Live
        Event is put into an error state.

        - **RestartDelay** *(integer) --* If a streaming output fails, number of seconds to wait
        until a restart is initiated. A value of 0 means never restart.

      - **HlsWebdavSettings** *(dict) --* Hls Webdav Settings

        - **ConnectionRetryInterval** *(integer) --* Number of seconds to wait before retrying
        connection to the CDN if the connection is lost.

        - **FilecacheDuration** *(integer) --* Size in seconds of file cache for streaming outputs.

        - **HttpTransferMode** *(string) --* Specify whether or not to use chunked transfer encoding
        to WebDAV.

        - **NumRetries** *(integer) --* Number of retry attempts that will be made before the Live
        Event is put into an error state.

        - **RestartDelay** *(integer) --* If a streaming output fails, number of seconds to wait
        until a restart is initiated. A value of 0 means never restart.

    - **IFrameOnlyPlaylists** *(string) --* DISABLED: Do not create an I-frame-only manifest, but do
    create the master and media manifests (according to the Output Selection field). STANDARD:
    Create an I-frame-only manifest for each output that contains video, as well as the other
    manifests (according to the Output Selection field). The I-frame manifest contains a
    #EXT-X-I-FRAMES-ONLY tag to indicate it is I-frame only, and one or more #EXT-X-BYTERANGE
    entries identifying the I-frame position. For example, #EXT-X-BYTERANGE:160364@1461888"

    - **IndexNSegments** *(integer) --* Applies only if Mode field is LIVE. Specifies the maximum
    number of segments in the media manifest file. After this maximum, older segments are removed
    from the media manifest. This number must be less than or equal to the Keep Segments field.

    - **InputLossAction** *(string) --* Parameter that control output group behavior on input loss.

    - **IvInManifest** *(string) --* For use with encryptionType. The IV (Initialization Vector) is
    a 128-bit number used in conjunction with the key for encrypting blocks. If set to "include", IV
    is listed in the manifest, otherwise the IV is not in the manifest.

    - **IvSource** *(string) --* For use with encryptionType. The IV (Initialization Vector) is a
    128-bit number used in conjunction with the key for encrypting blocks. If this setting is
    "followsSegmentNumber", it will cause the IV to change every segment (to match the segment
    number). If this is set to "explicit", you must enter a constantIv value.

    - **KeepSegments** *(integer) --* Applies only if Mode field is LIVE. Specifies the number of
    media segments (.ts files) to retain in the destination directory.

    - **KeyFormat** *(string) --* The value specifies how the key is represented in the resource
    identified by the URI. If parameter is absent, an implicit value of "identity" is used. A
    reverse DNS string can also be given.

    - **KeyFormatVersions** *(string) --* Either a single positive integer version value or a slash
    delimited list of version values (1/2/3).

    - **KeyProviderSettings** *(dict) --* The key provider settings.

      - **StaticKeySettings** *(dict) --* Static Key Settings

        - **KeyProviderServer** *(dict) --* The URL of the license server used for protecting
        content.

          - **PasswordParam** *(string) --* key used to extract the password from EC2 Parameter
          store

          - **Uri** *(string) --* Uniform Resource Identifier - This should be a path to a file
          accessible to the Live system (eg. a http:// URI) depending on the output type. For
          example, a RTMP destination should have a uri simliar to: "rtmp://fmsserver/live".

          - **Username** *(string) --* Documentation update needed

        - **StaticKeyValue** *(string) --* Static key value as a 32 character hexadecimal string.

    - **ManifestCompression** *(string) --* When set to gzip, compresses HLS playlist.

    - **ManifestDurationFormat** *(string) --* Indicates whether the output manifest should use
    floating point or integer values for segment duration.

    - **MinSegmentLength** *(integer) --* When set, minimumSegmentLength is enforced by looking
    ahead and back within the specified range for a nearby avail and extending the segment size if
    needed.

    - **Mode** *(string) --* If "vod", all segments are indexed and kept permanently in the
    destination and manifest. If "live", only the number segments specified in keepSegments and
    indexNSegments are kept; newer segments replace older segments, which may prevent players from
    rewinding all the way to the beginning of the event. VOD mode uses HLS EXT-X-PLAYLIST-TYPE of
    EVENT while the channel is running, converting it to a "VOD" type manifest on completion of the
    stream.

    - **OutputSelection** *(string) --* MANIFESTSANDSEGMENTS: Generates manifests (master manifest,
    if applicable, and media manifests) for this output group. SEGMENTSONLY: Does not generate any
    manifests for this output group.

    - **ProgramDateTime** *(string) --* Includes or excludes EXT-X-PROGRAM-DATE-TIME tag in .m3u8
    manifest files. The value is calculated as follows: either the program date and time are
    initialized using the input timecode source, or the time is initialized using the input timecode
    source and the date is initialized using the timestampOffset.

    - **ProgramDateTimePeriod** *(integer) --* Period of insertion of EXT-X-PROGRAM-DATE-TIME entry,
    in seconds.

    - **RedundantManifest** *(string) --* ENABLED: The master manifest (.m3u8 file) for each
    pipeline includes information about both pipelines: first its own media files, then the media
    files of the other pipeline. This feature allows playout device that support stale manifest
    detection to switch from one manifest to the other, when the current manifest seems to be stale.
    There are still two destinations and two master manifests, but both master manifests reference
    the media files from both pipelines. DISABLED: The master manifest (.m3u8 file) for each
    pipeline includes information about its own pipeline only. For an HLS output group with
    MediaPackage as the destination, the DISABLED behavior is always followed. MediaPackage
    regenerates the manifests it serves to players so a redundant manifest from MediaLive is
    irrelevant.

    - **SegmentLength** *(integer) --* Length of MPEG-2 Transport Stream segments to create (in
    seconds). Note that segments will end on the next keyframe after this number of seconds, so
    actual segment length may be longer.

    - **SegmentationMode** *(string) --* useInputSegmentation has been deprecated. The configured
    segment size is always used.

    - **SegmentsPerSubdirectory** *(integer) --* Number of segments to write to a subdirectory
    before starting a new one. directoryStructure must be subdirectoryPerStream for this setting to
    have an effect.

    - **StreamInfResolution** *(string) --* Include or exclude RESOLUTION attribute for video in
    EXT-X-STREAM-INF tag of variant manifest.

    - **TimedMetadataId3Frame** *(string) --* Indicates ID3 frame that has the timecode.

    - **TimedMetadataId3Period** *(integer) --* Timed Metadata interval in seconds.

    - **TimestampDeltaMilliseconds** *(integer) --* Provides an extra millisecond delta offset to
    fine tune the timestamps.

    - **TsFileMode** *(string) --* SEGMENTEDFILES: Emit the program as segments - multiple .ts media
    files. SINGLEFILE: Applies only if Mode field is VOD. Emit the program as a single .ts media
    file. The media manifest includes #EXT-X-BYTERANGE tags to index segments for playback. A
    typical use for this value is when sending the output to AWS Elemental MediaConvert, which can
    accept only a single media file. Playback while the channel is running is not guaranteed due to
    HTTP server caching.
    """


_ClientUpdateChannelResponseChannelEncoderSettingsOutputGroupsOutputGroupSettingsMediaPackageGroupSettingsDestinationTypeDef = TypedDict(
    "_ClientUpdateChannelResponseChannelEncoderSettingsOutputGroupsOutputGroupSettingsMediaPackageGroupSettingsDestinationTypeDef",
    {"DestinationRefId": str},
    total=False,
)


class ClientUpdateChannelResponseChannelEncoderSettingsOutputGroupsOutputGroupSettingsMediaPackageGroupSettingsDestinationTypeDef(
    _ClientUpdateChannelResponseChannelEncoderSettingsOutputGroupsOutputGroupSettingsMediaPackageGroupSettingsDestinationTypeDef
):
    """
    Type definition for
    `ClientUpdateChannelResponseChannelEncoderSettingsOutputGroupsOutputGroupSettingsMediaPackageGroupSettings`
    `Destination`

    - **DestinationRefId** *(string) --* Placeholder documentation for __string
    """


_ClientUpdateChannelResponseChannelEncoderSettingsOutputGroupsOutputGroupSettingsMediaPackageGroupSettingsTypeDef = TypedDict(
    "_ClientUpdateChannelResponseChannelEncoderSettingsOutputGroupsOutputGroupSettingsMediaPackageGroupSettingsTypeDef",
    {
        "Destination": ClientUpdateChannelResponseChannelEncoderSettingsOutputGroupsOutputGroupSettingsMediaPackageGroupSettingsDestinationTypeDef
    },
    total=False,
)


class ClientUpdateChannelResponseChannelEncoderSettingsOutputGroupsOutputGroupSettingsMediaPackageGroupSettingsTypeDef(
    _ClientUpdateChannelResponseChannelEncoderSettingsOutputGroupsOutputGroupSettingsMediaPackageGroupSettingsTypeDef
):
    """
    Type definition for
    `ClientUpdateChannelResponseChannelEncoderSettingsOutputGroupsOutputGroupSettings`
    `MediaPackageGroupSettings`

    - **Destination** *(dict) --* MediaPackage channel destination.

      - **DestinationRefId** *(string) --* Placeholder documentation for __string
    """


_ClientUpdateChannelResponseChannelEncoderSettingsOutputGroupsOutputGroupSettingsMsSmoothGroupSettingsDestinationTypeDef = TypedDict(
    "_ClientUpdateChannelResponseChannelEncoderSettingsOutputGroupsOutputGroupSettingsMsSmoothGroupSettingsDestinationTypeDef",
    {"DestinationRefId": str},
    total=False,
)


class ClientUpdateChannelResponseChannelEncoderSettingsOutputGroupsOutputGroupSettingsMsSmoothGroupSettingsDestinationTypeDef(
    _ClientUpdateChannelResponseChannelEncoderSettingsOutputGroupsOutputGroupSettingsMsSmoothGroupSettingsDestinationTypeDef
):
    """
    Type definition for
    `ClientUpdateChannelResponseChannelEncoderSettingsOutputGroupsOutputGroupSettingsMsSmoothGroupSettings`
    `Destination`

    - **DestinationRefId** *(string) --* Placeholder documentation for __string
    """


_ClientUpdateChannelResponseChannelEncoderSettingsOutputGroupsOutputGroupSettingsMsSmoothGroupSettingsTypeDef = TypedDict(
    "_ClientUpdateChannelResponseChannelEncoderSettingsOutputGroupsOutputGroupSettingsMsSmoothGroupSettingsTypeDef",
    {
        "AcquisitionPointId": str,
        "AudioOnlyTimecodeControl": str,
        "CertificateMode": str,
        "ConnectionRetryInterval": int,
        "Destination": ClientUpdateChannelResponseChannelEncoderSettingsOutputGroupsOutputGroupSettingsMsSmoothGroupSettingsDestinationTypeDef,
        "EventId": str,
        "EventIdMode": str,
        "EventStopBehavior": str,
        "FilecacheDuration": int,
        "FragmentLength": int,
        "InputLossAction": str,
        "NumRetries": int,
        "RestartDelay": int,
        "SegmentationMode": str,
        "SendDelayMs": int,
        "SparseTrackType": str,
        "StreamManifestBehavior": str,
        "TimestampOffset": str,
        "TimestampOffsetMode": str,
    },
    total=False,
)


class ClientUpdateChannelResponseChannelEncoderSettingsOutputGroupsOutputGroupSettingsMsSmoothGroupSettingsTypeDef(
    _ClientUpdateChannelResponseChannelEncoderSettingsOutputGroupsOutputGroupSettingsMsSmoothGroupSettingsTypeDef
):
    """
    Type definition for
    `ClientUpdateChannelResponseChannelEncoderSettingsOutputGroupsOutputGroupSettings`
    `MsSmoothGroupSettings`

    - **AcquisitionPointId** *(string) --* The value of the "Acquisition Point Identity" element
    used in each message placed in the sparse track. Only enabled if sparseTrackType is not "none".

    - **AudioOnlyTimecodeControl** *(string) --* If set to passthrough for an audio-only MS Smooth
    output, the fragment absolute time will be set to the current timecode. This option does not
    write timecodes to the audio elementary stream.

    - **CertificateMode** *(string) --* If set to verifyAuthenticity, verify the https certificate
    chain to a trusted Certificate Authority (CA). This will cause https outputs to self-signed
    certificates to fail.

    - **ConnectionRetryInterval** *(integer) --* Number of seconds to wait before retrying
    connection to the IIS server if the connection is lost. Content will be cached during this time
    and the cache will be be delivered to the IIS server once the connection is re-established.

    - **Destination** *(dict) --* Smooth Streaming publish point on an IIS server. Elemental Live
    acts as a "Push" encoder to IIS.

      - **DestinationRefId** *(string) --* Placeholder documentation for __string

    - **EventId** *(string) --* MS Smooth event ID to be sent to the IIS server. Should only be
    specified if eventIdMode is set to useConfigured.

    - **EventIdMode** *(string) --* Specifies whether or not to send an event ID to the IIS server.
    If no event ID is sent and the same Live Event is used without changing the publishing point,
    clients might see cached video from the previous run. Options: - "useConfigured" - use the value
    provided in eventId - "useTimestamp" - generate and send an event ID based on the current
    timestamp - "noEventId" - do not send an event ID to the IIS server.

    - **EventStopBehavior** *(string) --* When set to sendEos, send EOS signal to IIS server when
    stopping the event

    - **FilecacheDuration** *(integer) --* Size in seconds of file cache for streaming outputs.

    - **FragmentLength** *(integer) --* Length of mp4 fragments to generate (in seconds). Fragment
    length must be compatible with GOP size and framerate.

    - **InputLossAction** *(string) --* Parameter that control output group behavior on input loss.

    - **NumRetries** *(integer) --* Number of retry attempts.

    - **RestartDelay** *(integer) --* Number of seconds before initiating a restart due to output
    failure, due to exhausting the numRetries on one segment, or exceeding filecacheDuration.

    - **SegmentationMode** *(string) --* useInputSegmentation has been deprecated. The configured
    segment size is always used.

    - **SendDelayMs** *(integer) --* Number of milliseconds to delay the output from the second
    pipeline.

    - **SparseTrackType** *(string) --* If set to scte35, use incoming SCTE-35 messages to generate
    a sparse track in this group of MS-Smooth outputs.

    - **StreamManifestBehavior** *(string) --* When set to send, send stream manifest so publishing
    point doesn't start until all streams start.

    - **TimestampOffset** *(string) --* Timestamp offset for the event. Only used if
    timestampOffsetMode is set to useConfiguredOffset.

    - **TimestampOffsetMode** *(string) --* Type of timestamp date offset to use. -
    useEventStartDate: Use the date the event was started as the offset - useConfiguredOffset: Use
    an explicitly configured date as the offset
    """


_ClientUpdateChannelResponseChannelEncoderSettingsOutputGroupsOutputGroupSettingsRtmpGroupSettingsTypeDef = TypedDict(
    "_ClientUpdateChannelResponseChannelEncoderSettingsOutputGroupsOutputGroupSettingsRtmpGroupSettingsTypeDef",
    {
        "AuthenticationScheme": str,
        "CacheFullBehavior": str,
        "CacheLength": int,
        "CaptionData": str,
        "InputLossAction": str,
        "RestartDelay": int,
    },
    total=False,
)


class ClientUpdateChannelResponseChannelEncoderSettingsOutputGroupsOutputGroupSettingsRtmpGroupSettingsTypeDef(
    _ClientUpdateChannelResponseChannelEncoderSettingsOutputGroupsOutputGroupSettingsRtmpGroupSettingsTypeDef
):
    """
    Type definition for
    `ClientUpdateChannelResponseChannelEncoderSettingsOutputGroupsOutputGroupSettings`
    `RtmpGroupSettings`

    - **AuthenticationScheme** *(string) --* Authentication scheme to use when connecting with CDN

    - **CacheFullBehavior** *(string) --* Controls behavior when content cache fills up. If remote
    origin server stalls the RTMP connection and does not accept content fast enough the 'Media
    Cache' will fill up. When the cache reaches the duration specified by cacheLength the cache will
    stop accepting new content. If set to disconnectImmediately, the RTMP output will force a
    disconnect. Clear the media cache, and reconnect after restartDelay seconds. If set to
    waitForServer, the RTMP output will wait up to 5 minutes to allow the origin server to begin
    accepting data again.

    - **CacheLength** *(integer) --* Cache length, in seconds, is used to calculate buffer size.

    - **CaptionData** *(string) --* Controls the types of data that passes to onCaptionInfo outputs.
    If set to 'all' then 608 and 708 carried DTVCC data will be passed. If set to
    'field1AndField2608' then DTVCC data will be stripped out, but 608 data from both fields will be
    passed. If set to 'field1608' then only the data carried in 608 from field 1 video will be
    passed.

    - **InputLossAction** *(string) --* Controls the behavior of this RTMP group if input becomes
    unavailable. - emitOutput: Emit a slate until input returns. - pauseOutput: Stop transmitting
    data until input returns. This does not close the underlying RTMP connection.

    - **RestartDelay** *(integer) --* If a streaming output fails, number of seconds to wait until a
    restart is initiated. A value of 0 means never restart.
    """


_ClientUpdateChannelResponseChannelEncoderSettingsOutputGroupsOutputGroupSettingsUdpGroupSettingsTypeDef = TypedDict(
    "_ClientUpdateChannelResponseChannelEncoderSettingsOutputGroupsOutputGroupSettingsUdpGroupSettingsTypeDef",
    {"InputLossAction": str, "TimedMetadataId3Frame": str, "TimedMetadataId3Period": int},
    total=False,
)


class ClientUpdateChannelResponseChannelEncoderSettingsOutputGroupsOutputGroupSettingsUdpGroupSettingsTypeDef(
    _ClientUpdateChannelResponseChannelEncoderSettingsOutputGroupsOutputGroupSettingsUdpGroupSettingsTypeDef
):
    """
    Type definition for
    `ClientUpdateChannelResponseChannelEncoderSettingsOutputGroupsOutputGroupSettings`
    `UdpGroupSettings`

    - **InputLossAction** *(string) --* Specifies behavior of last resort when input video is lost,
    and no more backup inputs are available. When dropTs is selected the entire transport stream
    will stop being emitted. When dropProgram is selected the program can be dropped from the
    transport stream (and replaced with null packets to meet the TS bitrate requirement). Or, when
    emitProgram is chosen the transport stream will continue to be produced normally with repeat
    frames, black frames, or slate frames substituted for the absent input video.

    - **TimedMetadataId3Frame** *(string) --* Indicates ID3 frame that has the timecode.

    - **TimedMetadataId3Period** *(integer) --* Timed Metadata interval in seconds.
    """


_ClientUpdateChannelResponseChannelEncoderSettingsOutputGroupsOutputGroupSettingsTypeDef = TypedDict(
    "_ClientUpdateChannelResponseChannelEncoderSettingsOutputGroupsOutputGroupSettingsTypeDef",
    {
        "ArchiveGroupSettings": ClientUpdateChannelResponseChannelEncoderSettingsOutputGroupsOutputGroupSettingsArchiveGroupSettingsTypeDef,
        "FrameCaptureGroupSettings": ClientUpdateChannelResponseChannelEncoderSettingsOutputGroupsOutputGroupSettingsFrameCaptureGroupSettingsTypeDef,
        "HlsGroupSettings": ClientUpdateChannelResponseChannelEncoderSettingsOutputGroupsOutputGroupSettingsHlsGroupSettingsTypeDef,
        "MediaPackageGroupSettings": ClientUpdateChannelResponseChannelEncoderSettingsOutputGroupsOutputGroupSettingsMediaPackageGroupSettingsTypeDef,
        "MsSmoothGroupSettings": ClientUpdateChannelResponseChannelEncoderSettingsOutputGroupsOutputGroupSettingsMsSmoothGroupSettingsTypeDef,
        "MultiplexGroupSettings": Dict,
        "RtmpGroupSettings": ClientUpdateChannelResponseChannelEncoderSettingsOutputGroupsOutputGroupSettingsRtmpGroupSettingsTypeDef,
        "UdpGroupSettings": ClientUpdateChannelResponseChannelEncoderSettingsOutputGroupsOutputGroupSettingsUdpGroupSettingsTypeDef,
    },
    total=False,
)


class ClientUpdateChannelResponseChannelEncoderSettingsOutputGroupsOutputGroupSettingsTypeDef(
    _ClientUpdateChannelResponseChannelEncoderSettingsOutputGroupsOutputGroupSettingsTypeDef
):
    """
    Type definition for `ClientUpdateChannelResponseChannelEncoderSettingsOutputGroups`
    `OutputGroupSettings`

    - **ArchiveGroupSettings** *(dict) --* Archive Group Settings

      - **Destination** *(dict) --* A directory and base filename where archive files should be
      written.

        - **DestinationRefId** *(string) --* Placeholder documentation for __string

      - **RolloverInterval** *(integer) --* Number of seconds to write to archive file before
      closing and starting a new one.

    - **FrameCaptureGroupSettings** *(dict) --* Frame Capture Group Settings

      - **Destination** *(dict) --* The destination for the frame capture files. Either the URI for
      an Amazon S3 bucket and object, plus a file name prefix (for example,
      s3ssl://sportsDelivery/highlights/20180820/curling_) or the URI for a MediaStore container,
      plus a file name prefix (for example, mediastoressl://sportsDelivery/20180820/curling_). The
      final file names consist of the prefix from the destination field (for example, "curling_") +
      name modifier + the counter (5 digits, starting from 00001) + extension (which is always
      .jpg). For example, curlingLow.00001.jpg

        - **DestinationRefId** *(string) --* Placeholder documentation for __string

    - **HlsGroupSettings** *(dict) --* Hls Group Settings

      - **AdMarkers** *(list) --* Choose one or more ad marker types to pass SCTE35 signals through
      to this group of Apple HLS outputs.

        - *(string) --* Hls Ad Markers

      - **BaseUrlContent** *(string) --* A partial URI prefix that will be prepended to each output
      in the media .m3u8 file. Can be used if base manifest is delivered from a different URL than
      the main .m3u8 file.

      - **BaseUrlManifest** *(string) --* A partial URI prefix that will be prepended to each output
      in the media .m3u8 file. Can be used if base manifest is delivered from a different URL than
      the main .m3u8 file.

      - **CaptionLanguageMappings** *(list) --* Mapping of up to 4 caption channels to caption
      languages. Is only meaningful if captionLanguageSetting is set to "insert".

        - *(dict) --* Maps a caption channel to an ISO 693-2 language code
        (http://www.loc.gov/standards/iso639-2), with an optional description.

          - **CaptionChannel** *(integer) --* The closed caption channel being described by this
          CaptionLanguageMapping. Each channel mapping must have a unique channel number (maximum of
          4)

          - **LanguageCode** *(string) --* Three character ISO 639-2 language code (see
          http://www.loc.gov/standards/iso639-2)

          - **LanguageDescription** *(string) --* Textual description of language

      - **CaptionLanguageSetting** *(string) --* Applies only to 608 Embedded output captions.
      insert: Include CLOSED-CAPTIONS lines in the manifest. Specify at least one language in the
      CC1 Language Code field. One CLOSED-CAPTION line is added for each Language Code you specify.
      Make sure to specify the languages in the order in which they appear in the original source
      (if the source is embedded format) or the order of the caption selectors (if the source is
      other than embedded). Otherwise, languages in the manifest will not match up properly with the
      output captions. none: Include CLOSED-CAPTIONS=NONE line in the manifest. omit: Omit any
      CLOSED-CAPTIONS line from the manifest.

      - **ClientCache** *(string) --* When set to "disabled", sets the #EXT-X-ALLOW-CACHE:no tag in
      the manifest, which prevents clients from saving media segments for later replay.

      - **CodecSpecification** *(string) --* Specification to use (RFC-6381 or the default RFC-4281)
      during m3u8 playlist generation.

      - **ConstantIv** *(string) --* For use with encryptionType. This is a 128-bit, 16-byte hex
      value represented by a 32-character text string. If ivSource is set to "explicit" then this
      parameter is required and is used as the IV for encryption.

      - **Destination** *(dict) --* A directory or HTTP destination for the HLS segments, manifest
      files, and encryption keys (if enabled).

        - **DestinationRefId** *(string) --* Placeholder documentation for __string

      - **DirectoryStructure** *(string) --* Place segments in subdirectories.

      - **EncryptionType** *(string) --* Encrypts the segments with the given encryption scheme.
      Exclude this parameter if no encryption is desired.

      - **HlsCdnSettings** *(dict) --* Parameters that control interactions with the CDN.

        - **HlsAkamaiSettings** *(dict) --* Hls Akamai Settings

          - **ConnectionRetryInterval** *(integer) --* Number of seconds to wait before retrying
          connection to the CDN if the connection is lost.

          - **FilecacheDuration** *(integer) --* Size in seconds of file cache for streaming
          outputs.

          - **HttpTransferMode** *(string) --* Specify whether or not to use chunked transfer
          encoding to Akamai. User should contact Akamai to enable this feature.

          - **NumRetries** *(integer) --* Number of retry attempts that will be made before the Live
          Event is put into an error state.

          - **RestartDelay** *(integer) --* If a streaming output fails, number of seconds to wait
          until a restart is initiated. A value of 0 means never restart.

          - **Salt** *(string) --* Salt for authenticated Akamai.

          - **Token** *(string) --* Token parameter for authenticated akamai. If not specified,
          _gda_ is used.

        - **HlsBasicPutSettings** *(dict) --* Hls Basic Put Settings

          - **ConnectionRetryInterval** *(integer) --* Number of seconds to wait before retrying
          connection to the CDN if the connection is lost.

          - **FilecacheDuration** *(integer) --* Size in seconds of file cache for streaming
          outputs.

          - **NumRetries** *(integer) --* Number of retry attempts that will be made before the Live
          Event is put into an error state.

          - **RestartDelay** *(integer) --* If a streaming output fails, number of seconds to wait
          until a restart is initiated. A value of 0 means never restart.

        - **HlsMediaStoreSettings** *(dict) --* Hls Media Store Settings

          - **ConnectionRetryInterval** *(integer) --* Number of seconds to wait before retrying
          connection to the CDN if the connection is lost.

          - **FilecacheDuration** *(integer) --* Size in seconds of file cache for streaming
          outputs.

          - **MediaStoreStorageClass** *(string) --* When set to temporal, output files are stored
          in non-persistent memory for faster reading and writing.

          - **NumRetries** *(integer) --* Number of retry attempts that will be made before the Live
          Event is put into an error state.

          - **RestartDelay** *(integer) --* If a streaming output fails, number of seconds to wait
          until a restart is initiated. A value of 0 means never restart.

        - **HlsWebdavSettings** *(dict) --* Hls Webdav Settings

          - **ConnectionRetryInterval** *(integer) --* Number of seconds to wait before retrying
          connection to the CDN if the connection is lost.

          - **FilecacheDuration** *(integer) --* Size in seconds of file cache for streaming
          outputs.

          - **HttpTransferMode** *(string) --* Specify whether or not to use chunked transfer
          encoding to WebDAV.

          - **NumRetries** *(integer) --* Number of retry attempts that will be made before the Live
          Event is put into an error state.

          - **RestartDelay** *(integer) --* If a streaming output fails, number of seconds to wait
          until a restart is initiated. A value of 0 means never restart.

      - **IFrameOnlyPlaylists** *(string) --* DISABLED: Do not create an I-frame-only manifest, but
      do create the master and media manifests (according to the Output Selection field). STANDARD:
      Create an I-frame-only manifest for each output that contains video, as well as the other
      manifests (according to the Output Selection field). The I-frame manifest contains a
      #EXT-X-I-FRAMES-ONLY tag to indicate it is I-frame only, and one or more #EXT-X-BYTERANGE
      entries identifying the I-frame position. For example, #EXT-X-BYTERANGE:160364@1461888"

      - **IndexNSegments** *(integer) --* Applies only if Mode field is LIVE. Specifies the maximum
      number of segments in the media manifest file. After this maximum, older segments are removed
      from the media manifest. This number must be less than or equal to the Keep Segments field.

      - **InputLossAction** *(string) --* Parameter that control output group behavior on input
      loss.

      - **IvInManifest** *(string) --* For use with encryptionType. The IV (Initialization Vector)
      is a 128-bit number used in conjunction with the key for encrypting blocks. If set to
      "include", IV is listed in the manifest, otherwise the IV is not in the manifest.

      - **IvSource** *(string) --* For use with encryptionType. The IV (Initialization Vector) is a
      128-bit number used in conjunction with the key for encrypting blocks. If this setting is
      "followsSegmentNumber", it will cause the IV to change every segment (to match the segment
      number). If this is set to "explicit", you must enter a constantIv value.

      - **KeepSegments** *(integer) --* Applies only if Mode field is LIVE. Specifies the number of
      media segments (.ts files) to retain in the destination directory.

      - **KeyFormat** *(string) --* The value specifies how the key is represented in the resource
      identified by the URI. If parameter is absent, an implicit value of "identity" is used. A
      reverse DNS string can also be given.

      - **KeyFormatVersions** *(string) --* Either a single positive integer version value or a
      slash delimited list of version values (1/2/3).

      - **KeyProviderSettings** *(dict) --* The key provider settings.

        - **StaticKeySettings** *(dict) --* Static Key Settings

          - **KeyProviderServer** *(dict) --* The URL of the license server used for protecting
          content.

            - **PasswordParam** *(string) --* key used to extract the password from EC2 Parameter
            store

            - **Uri** *(string) --* Uniform Resource Identifier - This should be a path to a file
            accessible to the Live system (eg. a http:// URI) depending on the output type. For
            example, a RTMP destination should have a uri simliar to: "rtmp://fmsserver/live".

            - **Username** *(string) --* Documentation update needed

          - **StaticKeyValue** *(string) --* Static key value as a 32 character hexadecimal string.

      - **ManifestCompression** *(string) --* When set to gzip, compresses HLS playlist.

      - **ManifestDurationFormat** *(string) --* Indicates whether the output manifest should use
      floating point or integer values for segment duration.

      - **MinSegmentLength** *(integer) --* When set, minimumSegmentLength is enforced by looking
      ahead and back within the specified range for a nearby avail and extending the segment size if
      needed.

      - **Mode** *(string) --* If "vod", all segments are indexed and kept permanently in the
      destination and manifest. If "live", only the number segments specified in keepSegments and
      indexNSegments are kept; newer segments replace older segments, which may prevent players from
      rewinding all the way to the beginning of the event. VOD mode uses HLS EXT-X-PLAYLIST-TYPE of
      EVENT while the channel is running, converting it to a "VOD" type manifest on completion of
      the stream.

      - **OutputSelection** *(string) --* MANIFESTSANDSEGMENTS: Generates manifests (master
      manifest, if applicable, and media manifests) for this output group. SEGMENTSONLY: Does not
      generate any manifests for this output group.

      - **ProgramDateTime** *(string) --* Includes or excludes EXT-X-PROGRAM-DATE-TIME tag in .m3u8
      manifest files. The value is calculated as follows: either the program date and time are
      initialized using the input timecode source, or the time is initialized using the input
      timecode source and the date is initialized using the timestampOffset.

      - **ProgramDateTimePeriod** *(integer) --* Period of insertion of EXT-X-PROGRAM-DATE-TIME
      entry, in seconds.

      - **RedundantManifest** *(string) --* ENABLED: The master manifest (.m3u8 file) for each
      pipeline includes information about both pipelines: first its own media files, then the media
      files of the other pipeline. This feature allows playout device that support stale manifest
      detection to switch from one manifest to the other, when the current manifest seems to be
      stale. There are still two destinations and two master manifests, but both master manifests
      reference the media files from both pipelines. DISABLED: The master manifest (.m3u8 file) for
      each pipeline includes information about its own pipeline only. For an HLS output group with
      MediaPackage as the destination, the DISABLED behavior is always followed. MediaPackage
      regenerates the manifests it serves to players so a redundant manifest from MediaLive is
      irrelevant.

      - **SegmentLength** *(integer) --* Length of MPEG-2 Transport Stream segments to create (in
      seconds). Note that segments will end on the next keyframe after this number of seconds, so
      actual segment length may be longer.

      - **SegmentationMode** *(string) --* useInputSegmentation has been deprecated. The configured
      segment size is always used.

      - **SegmentsPerSubdirectory** *(integer) --* Number of segments to write to a subdirectory
      before starting a new one. directoryStructure must be subdirectoryPerStream for this setting
      to have an effect.

      - **StreamInfResolution** *(string) --* Include or exclude RESOLUTION attribute for video in
      EXT-X-STREAM-INF tag of variant manifest.

      - **TimedMetadataId3Frame** *(string) --* Indicates ID3 frame that has the timecode.

      - **TimedMetadataId3Period** *(integer) --* Timed Metadata interval in seconds.

      - **TimestampDeltaMilliseconds** *(integer) --* Provides an extra millisecond delta offset to
      fine tune the timestamps.

      - **TsFileMode** *(string) --* SEGMENTEDFILES: Emit the program as segments - multiple .ts
      media files. SINGLEFILE: Applies only if Mode field is VOD. Emit the program as a single .ts
      media file. The media manifest includes #EXT-X-BYTERANGE tags to index segments for playback.
      A typical use for this value is when sending the output to AWS Elemental MediaConvert, which
      can accept only a single media file. Playback while the channel is running is not guaranteed
      due to HTTP server caching.

    - **MediaPackageGroupSettings** *(dict) --* Media Package Group Settings

      - **Destination** *(dict) --* MediaPackage channel destination.

        - **DestinationRefId** *(string) --* Placeholder documentation for __string

    - **MsSmoothGroupSettings** *(dict) --* Ms Smooth Group Settings

      - **AcquisitionPointId** *(string) --* The value of the "Acquisition Point Identity" element
      used in each message placed in the sparse track. Only enabled if sparseTrackType is not
      "none".

      - **AudioOnlyTimecodeControl** *(string) --* If set to passthrough for an audio-only MS Smooth
      output, the fragment absolute time will be set to the current timecode. This option does not
      write timecodes to the audio elementary stream.

      - **CertificateMode** *(string) --* If set to verifyAuthenticity, verify the https certificate
      chain to a trusted Certificate Authority (CA). This will cause https outputs to self-signed
      certificates to fail.

      - **ConnectionRetryInterval** *(integer) --* Number of seconds to wait before retrying
      connection to the IIS server if the connection is lost. Content will be cached during this
      time and the cache will be be delivered to the IIS server once the connection is
      re-established.

      - **Destination** *(dict) --* Smooth Streaming publish point on an IIS server. Elemental Live
      acts as a "Push" encoder to IIS.

        - **DestinationRefId** *(string) --* Placeholder documentation for __string

      - **EventId** *(string) --* MS Smooth event ID to be sent to the IIS server. Should only be
      specified if eventIdMode is set to useConfigured.

      - **EventIdMode** *(string) --* Specifies whether or not to send an event ID to the IIS
      server. If no event ID is sent and the same Live Event is used without changing the publishing
      point, clients might see cached video from the previous run. Options: - "useConfigured" - use
      the value provided in eventId - "useTimestamp" - generate and send an event ID based on the
      current timestamp - "noEventId" - do not send an event ID to the IIS server.

      - **EventStopBehavior** *(string) --* When set to sendEos, send EOS signal to IIS server when
      stopping the event

      - **FilecacheDuration** *(integer) --* Size in seconds of file cache for streaming outputs.

      - **FragmentLength** *(integer) --* Length of mp4 fragments to generate (in seconds). Fragment
      length must be compatible with GOP size and framerate.

      - **InputLossAction** *(string) --* Parameter that control output group behavior on input
      loss.

      - **NumRetries** *(integer) --* Number of retry attempts.

      - **RestartDelay** *(integer) --* Number of seconds before initiating a restart due to output
      failure, due to exhausting the numRetries on one segment, or exceeding filecacheDuration.

      - **SegmentationMode** *(string) --* useInputSegmentation has been deprecated. The configured
      segment size is always used.

      - **SendDelayMs** *(integer) --* Number of milliseconds to delay the output from the second
      pipeline.

      - **SparseTrackType** *(string) --* If set to scte35, use incoming SCTE-35 messages to
      generate a sparse track in this group of MS-Smooth outputs.

      - **StreamManifestBehavior** *(string) --* When set to send, send stream manifest so
      publishing point doesn't start until all streams start.

      - **TimestampOffset** *(string) --* Timestamp offset for the event. Only used if
      timestampOffsetMode is set to useConfiguredOffset.

      - **TimestampOffsetMode** *(string) --* Type of timestamp date offset to use. -
      useEventStartDate: Use the date the event was started as the offset - useConfiguredOffset: Use
      an explicitly configured date as the offset

    - **MultiplexGroupSettings** *(dict) --* Multiplex Group Settings

    - **RtmpGroupSettings** *(dict) --* Rtmp Group Settings

      - **AuthenticationScheme** *(string) --* Authentication scheme to use when connecting with CDN

      - **CacheFullBehavior** *(string) --* Controls behavior when content cache fills up. If remote
      origin server stalls the RTMP connection and does not accept content fast enough the 'Media
      Cache' will fill up. When the cache reaches the duration specified by cacheLength the cache
      will stop accepting new content. If set to disconnectImmediately, the RTMP output will force a
      disconnect. Clear the media cache, and reconnect after restartDelay seconds. If set to
      waitForServer, the RTMP output will wait up to 5 minutes to allow the origin server to begin
      accepting data again.

      - **CacheLength** *(integer) --* Cache length, in seconds, is used to calculate buffer size.

      - **CaptionData** *(string) --* Controls the types of data that passes to onCaptionInfo
      outputs. If set to 'all' then 608 and 708 carried DTVCC data will be passed. If set to
      'field1AndField2608' then DTVCC data will be stripped out, but 608 data from both fields will
      be passed. If set to 'field1608' then only the data carried in 608 from field 1 video will be
      passed.

      - **InputLossAction** *(string) --* Controls the behavior of this RTMP group if input becomes
      unavailable. - emitOutput: Emit a slate until input returns. - pauseOutput: Stop transmitting
      data until input returns. This does not close the underlying RTMP connection.

      - **RestartDelay** *(integer) --* If a streaming output fails, number of seconds to wait until
      a restart is initiated. A value of 0 means never restart.

    - **UdpGroupSettings** *(dict) --* Udp Group Settings

      - **InputLossAction** *(string) --* Specifies behavior of last resort when input video is
      lost, and no more backup inputs are available. When dropTs is selected the entire transport
      stream will stop being emitted. When dropProgram is selected the program can be dropped from
      the transport stream (and replaced with null packets to meet the TS bitrate requirement). Or,
      when emitProgram is chosen the transport stream will continue to be produced normally with
      repeat frames, black frames, or slate frames substituted for the absent input video.

      - **TimedMetadataId3Frame** *(string) --* Indicates ID3 frame that has the timecode.

      - **TimedMetadataId3Period** *(integer) --* Timed Metadata interval in seconds.
    """


_ClientUpdateChannelResponseChannelEncoderSettingsOutputGroupsOutputsOutputSettingsArchiveOutputSettingsContainerSettingsM2tsSettingsDvbNitSettingsTypeDef = TypedDict(
    "_ClientUpdateChannelResponseChannelEncoderSettingsOutputGroupsOutputsOutputSettingsArchiveOutputSettingsContainerSettingsM2tsSettingsDvbNitSettingsTypeDef",
    {"NetworkId": int, "NetworkName": str, "RepInterval": int},
    total=False,
)


class ClientUpdateChannelResponseChannelEncoderSettingsOutputGroupsOutputsOutputSettingsArchiveOutputSettingsContainerSettingsM2tsSettingsDvbNitSettingsTypeDef(
    _ClientUpdateChannelResponseChannelEncoderSettingsOutputGroupsOutputsOutputSettingsArchiveOutputSettingsContainerSettingsM2tsSettingsDvbNitSettingsTypeDef
):
    """
    Type definition for
    `ClientUpdateChannelResponseChannelEncoderSettingsOutputGroupsOutputsOutputSettingsArchiveOutputSettingsContainerSettingsM2tsSettings`
    `DvbNitSettings`

    - **NetworkId** *(integer) --* The numeric value placed in the Network Information Table (NIT).

    - **NetworkName** *(string) --* The network name text placed in the networkNameDescriptor inside
    the Network Information Table. Maximum length is 256 characters.

    - **RepInterval** *(integer) --* The number of milliseconds between instances of this table in
    the output transport stream.
    """


_ClientUpdateChannelResponseChannelEncoderSettingsOutputGroupsOutputsOutputSettingsArchiveOutputSettingsContainerSettingsM2tsSettingsDvbSdtSettingsTypeDef = TypedDict(
    "_ClientUpdateChannelResponseChannelEncoderSettingsOutputGroupsOutputsOutputSettingsArchiveOutputSettingsContainerSettingsM2tsSettingsDvbSdtSettingsTypeDef",
    {"OutputSdt": str, "RepInterval": int, "ServiceName": str, "ServiceProviderName": str},
    total=False,
)


class ClientUpdateChannelResponseChannelEncoderSettingsOutputGroupsOutputsOutputSettingsArchiveOutputSettingsContainerSettingsM2tsSettingsDvbSdtSettingsTypeDef(
    _ClientUpdateChannelResponseChannelEncoderSettingsOutputGroupsOutputsOutputSettingsArchiveOutputSettingsContainerSettingsM2tsSettingsDvbSdtSettingsTypeDef
):
    """
    Type definition for
    `ClientUpdateChannelResponseChannelEncoderSettingsOutputGroupsOutputsOutputSettingsArchiveOutputSettingsContainerSettingsM2tsSettings`
    `DvbSdtSettings`

    - **OutputSdt** *(string) --* Selects method of inserting SDT information into output stream.
    The sdtFollow setting copies SDT information from input stream to output stream. The
    sdtFollowIfPresent setting copies SDT information from input stream to output stream if SDT
    information is present in the input, otherwise it will fall back on the user-defined values. The
    sdtManual setting means user will enter the SDT information. The sdtNone setting means output
    stream will not contain SDT information.

    - **RepInterval** *(integer) --* The number of milliseconds between instances of this table in
    the output transport stream.

    - **ServiceName** *(string) --* The service name placed in the serviceDescriptor in the Service
    Description Table. Maximum length is 256 characters.

    - **ServiceProviderName** *(string) --* The service provider name placed in the
    serviceDescriptor in the Service Description Table. Maximum length is 256 characters.
    """


_ClientUpdateChannelResponseChannelEncoderSettingsOutputGroupsOutputsOutputSettingsArchiveOutputSettingsContainerSettingsM2tsSettingsDvbTdtSettingsTypeDef = TypedDict(
    "_ClientUpdateChannelResponseChannelEncoderSettingsOutputGroupsOutputsOutputSettingsArchiveOutputSettingsContainerSettingsM2tsSettingsDvbTdtSettingsTypeDef",
    {"RepInterval": int},
    total=False,
)


class ClientUpdateChannelResponseChannelEncoderSettingsOutputGroupsOutputsOutputSettingsArchiveOutputSettingsContainerSettingsM2tsSettingsDvbTdtSettingsTypeDef(
    _ClientUpdateChannelResponseChannelEncoderSettingsOutputGroupsOutputsOutputSettingsArchiveOutputSettingsContainerSettingsM2tsSettingsDvbTdtSettingsTypeDef
):
    """
    Type definition for
    `ClientUpdateChannelResponseChannelEncoderSettingsOutputGroupsOutputsOutputSettingsArchiveOutputSettingsContainerSettingsM2tsSettings`
    `DvbTdtSettings`

    - **RepInterval** *(integer) --* The number of milliseconds between instances of this table in
    the output transport stream.
    """


_ClientUpdateChannelResponseChannelEncoderSettingsOutputGroupsOutputsOutputSettingsArchiveOutputSettingsContainerSettingsM2tsSettingsTypeDef = TypedDict(
    "_ClientUpdateChannelResponseChannelEncoderSettingsOutputGroupsOutputsOutputSettingsArchiveOutputSettingsContainerSettingsM2tsSettingsTypeDef",
    {
        "AbsentInputAudioBehavior": str,
        "Arib": str,
        "AribCaptionsPid": str,
        "AribCaptionsPidControl": str,
        "AudioBufferModel": str,
        "AudioFramesPerPes": int,
        "AudioPids": str,
        "AudioStreamType": str,
        "Bitrate": int,
        "BufferModel": str,
        "CcDescriptor": str,
        "DvbNitSettings": ClientUpdateChannelResponseChannelEncoderSettingsOutputGroupsOutputsOutputSettingsArchiveOutputSettingsContainerSettingsM2tsSettingsDvbNitSettingsTypeDef,
        "DvbSdtSettings": ClientUpdateChannelResponseChannelEncoderSettingsOutputGroupsOutputsOutputSettingsArchiveOutputSettingsContainerSettingsM2tsSettingsDvbSdtSettingsTypeDef,
        "DvbSubPids": str,
        "DvbTdtSettings": ClientUpdateChannelResponseChannelEncoderSettingsOutputGroupsOutputsOutputSettingsArchiveOutputSettingsContainerSettingsM2tsSettingsDvbTdtSettingsTypeDef,
        "DvbTeletextPid": str,
        "Ebif": str,
        "EbpAudioInterval": str,
        "EbpLookaheadMs": int,
        "EbpPlacement": str,
        "EcmPid": str,
        "EsRateInPes": str,
        "EtvPlatformPid": str,
        "EtvSignalPid": str,
        "FragmentTime": float,
        "Klv": str,
        "KlvDataPids": str,
        "NielsenId3Behavior": str,
        "NullPacketBitrate": float,
        "PatInterval": int,
        "PcrControl": str,
        "PcrPeriod": int,
        "PcrPid": str,
        "PmtInterval": int,
        "PmtPid": str,
        "ProgramNum": int,
        "RateMode": str,
        "Scte27Pids": str,
        "Scte35Control": str,
        "Scte35Pid": str,
        "SegmentationMarkers": str,
        "SegmentationStyle": str,
        "SegmentationTime": float,
        "TimedMetadataBehavior": str,
        "TimedMetadataPid": str,
        "TransportStreamId": int,
        "VideoPid": str,
    },
    total=False,
)


class ClientUpdateChannelResponseChannelEncoderSettingsOutputGroupsOutputsOutputSettingsArchiveOutputSettingsContainerSettingsM2tsSettingsTypeDef(
    _ClientUpdateChannelResponseChannelEncoderSettingsOutputGroupsOutputsOutputSettingsArchiveOutputSettingsContainerSettingsM2tsSettingsTypeDef
):
    """
    Type definition for
    `ClientUpdateChannelResponseChannelEncoderSettingsOutputGroupsOutputsOutputSettingsArchiveOutputSettingsContainerSettings`
    `M2tsSettings`

    - **AbsentInputAudioBehavior** *(string) --* When set to drop, output audio streams will be
    removed from the program if the selected input audio stream is removed from the input. This
    allows the output audio configuration to dynamically change based on input configuration. If
    this is set to encodeSilence, all output audio streams will output encoded silence when not
    connected to an active input stream.

    - **Arib** *(string) --* When set to enabled, uses ARIB-compliant field muxing and removes video
    descriptor.

    - **AribCaptionsPid** *(string) --* Packet Identifier (PID) for ARIB Captions in the transport
    stream. Can be entered as a decimal or hexadecimal value. Valid values are 32 (or 0x20)..8182
    (or 0x1ff6).

    - **AribCaptionsPidControl** *(string) --* If set to auto, pid number used for ARIB Captions
    will be auto-selected from unused pids. If set to useConfigured, ARIB Captions will be on the
    configured pid number.

    - **AudioBufferModel** *(string) --* When set to dvb, uses DVB buffer model for Dolby Digital
    audio. When set to atsc, the ATSC model is used.

    - **AudioFramesPerPes** *(integer) --* The number of audio frames to insert for each PES packet.

    - **AudioPids** *(string) --* Packet Identifier (PID) of the elementary audio stream(s) in the
    transport stream. Multiple values are accepted, and can be entered in ranges and/or by comma
    separation. Can be entered as decimal or hexadecimal values. Each PID specified must be in the
    range of 32 (or 0x20)..8182 (or 0x1ff6).

    - **AudioStreamType** *(string) --* When set to atsc, uses stream type = 0x81 for AC3 and stream
    type = 0x87 for EAC3. When set to dvb, uses stream type = 0x06.

    - **Bitrate** *(integer) --* The output bitrate of the transport stream in bits per second.
    Setting to 0 lets the muxer automatically determine the appropriate bitrate.

    - **BufferModel** *(string) --* If set to multiplex, use multiplex buffer model for accurate
    interleaving. Setting to bufferModel to none can lead to lower latency, but low-memory devices
    may not be able to play back the stream without interruptions.

    - **CcDescriptor** *(string) --* When set to enabled, generates captionServiceDescriptor in PMT.

    - **DvbNitSettings** *(dict) --* Inserts DVB Network Information Table (NIT) at the specified
    table repetition interval.

      - **NetworkId** *(integer) --* The numeric value placed in the Network Information Table
      (NIT).

      - **NetworkName** *(string) --* The network name text placed in the networkNameDescriptor
      inside the Network Information Table. Maximum length is 256 characters.

      - **RepInterval** *(integer) --* The number of milliseconds between instances of this table in
      the output transport stream.

    - **DvbSdtSettings** *(dict) --* Inserts DVB Service Description Table (SDT) at the specified
    table repetition interval.

      - **OutputSdt** *(string) --* Selects method of inserting SDT information into output stream.
      The sdtFollow setting copies SDT information from input stream to output stream. The
      sdtFollowIfPresent setting copies SDT information from input stream to output stream if SDT
      information is present in the input, otherwise it will fall back on the user-defined values.
      The sdtManual setting means user will enter the SDT information. The sdtNone setting means
      output stream will not contain SDT information.

      - **RepInterval** *(integer) --* The number of milliseconds between instances of this table in
      the output transport stream.

      - **ServiceName** *(string) --* The service name placed in the serviceDescriptor in the
      Service Description Table. Maximum length is 256 characters.

      - **ServiceProviderName** *(string) --* The service provider name placed in the
      serviceDescriptor in the Service Description Table. Maximum length is 256 characters.

    - **DvbSubPids** *(string) --* Packet Identifier (PID) for input source DVB Subtitle data to
    this output. Multiple values are accepted, and can be entered in ranges and/or by comma
    separation. Can be entered as decimal or hexadecimal values. Each PID specified must be in the
    range of 32 (or 0x20)..8182 (or 0x1ff6).

    - **DvbTdtSettings** *(dict) --* Inserts DVB Time and Date Table (TDT) at the specified table
    repetition interval.

      - **RepInterval** *(integer) --* The number of milliseconds between instances of this table in
      the output transport stream.

    - **DvbTeletextPid** *(string) --* Packet Identifier (PID) for input source DVB Teletext data to
    this output. Can be entered as a decimal or hexadecimal value. Valid values are 32 (or
    0x20)..8182 (or 0x1ff6).

    - **Ebif** *(string) --* If set to passthrough, passes any EBIF data from the input source to
    this output.

    - **EbpAudioInterval** *(string) --* When videoAndFixedIntervals is selected, audio EBP markers
    will be added to partitions 3 and 4. The interval between these additional markers will be
    fixed, and will be slightly shorter than the video EBP marker interval. Only available when EBP
    Cablelabs segmentation markers are selected. Partitions 1 and 2 will always follow the video
    interval.

    - **EbpLookaheadMs** *(integer) --* When set, enforces that Encoder Boundary Points do not come
    within the specified time interval of each other by looking ahead at input video. If another EBP
    is going to come in within the specified time interval, the current EBP is not emitted, and the
    segment is "stretched" to the next marker. The lookahead value does not add latency to the
    system. The Live Event must be configured elsewhere to create sufficient latency to make the
    lookahead accurate.

    - **EbpPlacement** *(string) --* Controls placement of EBP on Audio PIDs. If set to
    videoAndAudioPids, EBP markers will be placed on the video PID and all audio PIDs. If set to
    videoPid, EBP markers will be placed on only the video PID.

    - **EcmPid** *(string) --* This field is unused and deprecated.

    - **EsRateInPes** *(string) --* Include or exclude the ES Rate field in the PES header.

    - **EtvPlatformPid** *(string) --* Packet Identifier (PID) for input source ETV Platform data to
    this output. Can be entered as a decimal or hexadecimal value. Valid values are 32 (or
    0x20)..8182 (or 0x1ff6).

    - **EtvSignalPid** *(string) --* Packet Identifier (PID) for input source ETV Signal data to
    this output. Can be entered as a decimal or hexadecimal value. Valid values are 32 (or
    0x20)..8182 (or 0x1ff6).

    - **FragmentTime** *(float) --* The length in seconds of each fragment. Only used with EBP
    markers.

    - **Klv** *(string) --* If set to passthrough, passes any KLV data from the input source to this
    output.

    - **KlvDataPids** *(string) --* Packet Identifier (PID) for input source KLV data to this
    output. Multiple values are accepted, and can be entered in ranges and/or by comma separation.
    Can be entered as decimal or hexadecimal values. Each PID specified must be in the range of 32
    (or 0x20)..8182 (or 0x1ff6).

    - **NielsenId3Behavior** *(string) --* If set to passthrough, Nielsen inaudible tones for media
    tracking will be detected in the input audio and an equivalent ID3 tag will be inserted in the
    output.

    - **NullPacketBitrate** *(float) --* Value in bits per second of extra null packets to insert
    into the transport stream. This can be used if a downstream encryption system requires periodic
    null packets.

    - **PatInterval** *(integer) --* The number of milliseconds between instances of this table in
    the output transport stream. Valid values are 0, 10..1000.

    - **PcrControl** *(string) --* When set to pcrEveryPesPacket, a Program Clock Reference value is
    inserted for every Packetized Elementary Stream (PES) header. This parameter is effective only
    when the PCR PID is the same as the video or audio elementary stream.

    - **PcrPeriod** *(integer) --* Maximum time in milliseconds between Program Clock Reference
    (PCRs) inserted into the transport stream.

    - **PcrPid** *(string) --* Packet Identifier (PID) of the Program Clock Reference (PCR) in the
    transport stream. When no value is given, the encoder will assign the same value as the Video
    PID. Can be entered as a decimal or hexadecimal value. Valid values are 32 (or 0x20)..8182 (or
    0x1ff6).

    - **PmtInterval** *(integer) --* The number of milliseconds between instances of this table in
    the output transport stream. Valid values are 0, 10..1000.

    - **PmtPid** *(string) --* Packet Identifier (PID) for the Program Map Table (PMT) in the
    transport stream. Can be entered as a decimal or hexadecimal value. Valid values are 32 (or
    0x20)..8182 (or 0x1ff6).

    - **ProgramNum** *(integer) --* The value of the program number field in the Program Map Table.

    - **RateMode** *(string) --* When vbr, does not insert null packets into transport stream to
    fill specified bitrate. The bitrate setting acts as the maximum bitrate when vbr is set.

    - **Scte27Pids** *(string) --* Packet Identifier (PID) for input source SCTE-27 data to this
    output. Multiple values are accepted, and can be entered in ranges and/or by comma separation.
    Can be entered as decimal or hexadecimal values. Each PID specified must be in the range of 32
    (or 0x20)..8182 (or 0x1ff6).

    - **Scte35Control** *(string) --* Optionally pass SCTE-35 signals from the input source to this
    output.

    - **Scte35Pid** *(string) --* Packet Identifier (PID) of the SCTE-35 stream in the transport
    stream. Can be entered as a decimal or hexadecimal value. Valid values are 32 (or 0x20)..8182
    (or 0x1ff6).

    - **SegmentationMarkers** *(string) --* Inserts segmentation markers at each segmentationTime
    period. raiSegstart sets the Random Access Indicator bit in the adaptation field. raiAdapt sets
    the RAI bit and adds the current timecode in the private data bytes. psiSegstart inserts PAT and
    PMT tables at the start of segments. ebp adds Encoder Boundary Point information to the
    adaptation field as per OpenCable specification OC-SP-EBP-I01-130118. ebpLegacy adds Encoder
    Boundary Point information to the adaptation field using a legacy proprietary format.

    - **SegmentationStyle** *(string) --* The segmentation style parameter controls how segmentation
    markers are inserted into the transport stream. With avails, it is possible that segments may be
    truncated, which can influence where future segmentation markers are inserted. When a
    segmentation style of "resetCadence" is selected and a segment is truncated due to an avail, we
    will reset the segmentation cadence. This means the subsequent segment will have a duration of
    $segmentationTime seconds. When a segmentation style of "maintainCadence" is selected and a
    segment is truncated due to an avail, we will not reset the segmentation cadence. This means the
    subsequent segment will likely be truncated as well. However, all segments after that will have
    a duration of $segmentationTime seconds. Note that EBP lookahead is a slight exception to this
    rule.

    - **SegmentationTime** *(float) --* The length in seconds of each segment. Required unless
    markers is set to None_.

    - **TimedMetadataBehavior** *(string) --* When set to passthrough, timed metadata will be passed
    through from input to output.

    - **TimedMetadataPid** *(string) --* Packet Identifier (PID) of the timed metadata stream in the
    transport stream. Can be entered as a decimal or hexadecimal value. Valid values are 32 (or
    0x20)..8182 (or 0x1ff6).

    - **TransportStreamId** *(integer) --* The value of the transport stream ID field in the Program
    Map Table.

    - **VideoPid** *(string) --* Packet Identifier (PID) of the elementary video stream in the
    transport stream. Can be entered as a decimal or hexadecimal value. Valid values are 32 (or
    0x20)..8182 (or 0x1ff6).
    """


_ClientUpdateChannelResponseChannelEncoderSettingsOutputGroupsOutputsOutputSettingsArchiveOutputSettingsContainerSettingsTypeDef = TypedDict(
    "_ClientUpdateChannelResponseChannelEncoderSettingsOutputGroupsOutputsOutputSettingsArchiveOutputSettingsContainerSettingsTypeDef",
    {
        "M2tsSettings": ClientUpdateChannelResponseChannelEncoderSettingsOutputGroupsOutputsOutputSettingsArchiveOutputSettingsContainerSettingsM2tsSettingsTypeDef
    },
    total=False,
)


class ClientUpdateChannelResponseChannelEncoderSettingsOutputGroupsOutputsOutputSettingsArchiveOutputSettingsContainerSettingsTypeDef(
    _ClientUpdateChannelResponseChannelEncoderSettingsOutputGroupsOutputsOutputSettingsArchiveOutputSettingsContainerSettingsTypeDef
):
    """
    Type definition for
    `ClientUpdateChannelResponseChannelEncoderSettingsOutputGroupsOutputsOutputSettingsArchiveOutputSettings`
    `ContainerSettings`

    - **M2tsSettings** *(dict) --* M2ts Settings

      - **AbsentInputAudioBehavior** *(string) --* When set to drop, output audio streams will be
      removed from the program if the selected input audio stream is removed from the input. This
      allows the output audio configuration to dynamically change based on input configuration. If
      this is set to encodeSilence, all output audio streams will output encoded silence when not
      connected to an active input stream.

      - **Arib** *(string) --* When set to enabled, uses ARIB-compliant field muxing and removes
      video descriptor.

      - **AribCaptionsPid** *(string) --* Packet Identifier (PID) for ARIB Captions in the transport
      stream. Can be entered as a decimal or hexadecimal value. Valid values are 32 (or 0x20)..8182
      (or 0x1ff6).

      - **AribCaptionsPidControl** *(string) --* If set to auto, pid number used for ARIB Captions
      will be auto-selected from unused pids. If set to useConfigured, ARIB Captions will be on the
      configured pid number.

      - **AudioBufferModel** *(string) --* When set to dvb, uses DVB buffer model for Dolby Digital
      audio. When set to atsc, the ATSC model is used.

      - **AudioFramesPerPes** *(integer) --* The number of audio frames to insert for each PES
      packet.

      - **AudioPids** *(string) --* Packet Identifier (PID) of the elementary audio stream(s) in the
      transport stream. Multiple values are accepted, and can be entered in ranges and/or by comma
      separation. Can be entered as decimal or hexadecimal values. Each PID specified must be in the
      range of 32 (or 0x20)..8182 (or 0x1ff6).

      - **AudioStreamType** *(string) --* When set to atsc, uses stream type = 0x81 for AC3 and
      stream type = 0x87 for EAC3. When set to dvb, uses stream type = 0x06.

      - **Bitrate** *(integer) --* The output bitrate of the transport stream in bits per second.
      Setting to 0 lets the muxer automatically determine the appropriate bitrate.

      - **BufferModel** *(string) --* If set to multiplex, use multiplex buffer model for accurate
      interleaving. Setting to bufferModel to none can lead to lower latency, but low-memory devices
      may not be able to play back the stream without interruptions.

      - **CcDescriptor** *(string) --* When set to enabled, generates captionServiceDescriptor in
      PMT.

      - **DvbNitSettings** *(dict) --* Inserts DVB Network Information Table (NIT) at the specified
      table repetition interval.

        - **NetworkId** *(integer) --* The numeric value placed in the Network Information Table
        (NIT).

        - **NetworkName** *(string) --* The network name text placed in the networkNameDescriptor
        inside the Network Information Table. Maximum length is 256 characters.

        - **RepInterval** *(integer) --* The number of milliseconds between instances of this table
        in the output transport stream.

      - **DvbSdtSettings** *(dict) --* Inserts DVB Service Description Table (SDT) at the specified
      table repetition interval.

        - **OutputSdt** *(string) --* Selects method of inserting SDT information into output
        stream. The sdtFollow setting copies SDT information from input stream to output stream. The
        sdtFollowIfPresent setting copies SDT information from input stream to output stream if SDT
        information is present in the input, otherwise it will fall back on the user-defined values.
        The sdtManual setting means user will enter the SDT information. The sdtNone setting means
        output stream will not contain SDT information.

        - **RepInterval** *(integer) --* The number of milliseconds between instances of this table
        in the output transport stream.

        - **ServiceName** *(string) --* The service name placed in the serviceDescriptor in the
        Service Description Table. Maximum length is 256 characters.

        - **ServiceProviderName** *(string) --* The service provider name placed in the
        serviceDescriptor in the Service Description Table. Maximum length is 256 characters.

      - **DvbSubPids** *(string) --* Packet Identifier (PID) for input source DVB Subtitle data to
      this output. Multiple values are accepted, and can be entered in ranges and/or by comma
      separation. Can be entered as decimal or hexadecimal values. Each PID specified must be in the
      range of 32 (or 0x20)..8182 (or 0x1ff6).

      - **DvbTdtSettings** *(dict) --* Inserts DVB Time and Date Table (TDT) at the specified table
      repetition interval.

        - **RepInterval** *(integer) --* The number of milliseconds between instances of this table
        in the output transport stream.

      - **DvbTeletextPid** *(string) --* Packet Identifier (PID) for input source DVB Teletext data
      to this output. Can be entered as a decimal or hexadecimal value. Valid values are 32 (or
      0x20)..8182 (or 0x1ff6).

      - **Ebif** *(string) --* If set to passthrough, passes any EBIF data from the input source to
      this output.

      - **EbpAudioInterval** *(string) --* When videoAndFixedIntervals is selected, audio EBP
      markers will be added to partitions 3 and 4. The interval between these additional markers
      will be fixed, and will be slightly shorter than the video EBP marker interval. Only available
      when EBP Cablelabs segmentation markers are selected. Partitions 1 and 2 will always follow
      the video interval.

      - **EbpLookaheadMs** *(integer) --* When set, enforces that Encoder Boundary Points do not
      come within the specified time interval of each other by looking ahead at input video. If
      another EBP is going to come in within the specified time interval, the current EBP is not
      emitted, and the segment is "stretched" to the next marker. The lookahead value does not add
      latency to the system. The Live Event must be configured elsewhere to create sufficient
      latency to make the lookahead accurate.

      - **EbpPlacement** *(string) --* Controls placement of EBP on Audio PIDs. If set to
      videoAndAudioPids, EBP markers will be placed on the video PID and all audio PIDs. If set to
      videoPid, EBP markers will be placed on only the video PID.

      - **EcmPid** *(string) --* This field is unused and deprecated.

      - **EsRateInPes** *(string) --* Include or exclude the ES Rate field in the PES header.

      - **EtvPlatformPid** *(string) --* Packet Identifier (PID) for input source ETV Platform data
      to this output. Can be entered as a decimal or hexadecimal value. Valid values are 32 (or
      0x20)..8182 (or 0x1ff6).

      - **EtvSignalPid** *(string) --* Packet Identifier (PID) for input source ETV Signal data to
      this output. Can be entered as a decimal or hexadecimal value. Valid values are 32 (or
      0x20)..8182 (or 0x1ff6).

      - **FragmentTime** *(float) --* The length in seconds of each fragment. Only used with EBP
      markers.

      - **Klv** *(string) --* If set to passthrough, passes any KLV data from the input source to
      this output.

      - **KlvDataPids** *(string) --* Packet Identifier (PID) for input source KLV data to this
      output. Multiple values are accepted, and can be entered in ranges and/or by comma separation.
      Can be entered as decimal or hexadecimal values. Each PID specified must be in the range of 32
      (or 0x20)..8182 (or 0x1ff6).

      - **NielsenId3Behavior** *(string) --* If set to passthrough, Nielsen inaudible tones for
      media tracking will be detected in the input audio and an equivalent ID3 tag will be inserted
      in the output.

      - **NullPacketBitrate** *(float) --* Value in bits per second of extra null packets to insert
      into the transport stream. This can be used if a downstream encryption system requires
      periodic null packets.

      - **PatInterval** *(integer) --* The number of milliseconds between instances of this table in
      the output transport stream. Valid values are 0, 10..1000.

      - **PcrControl** *(string) --* When set to pcrEveryPesPacket, a Program Clock Reference value
      is inserted for every Packetized Elementary Stream (PES) header. This parameter is effective
      only when the PCR PID is the same as the video or audio elementary stream.

      - **PcrPeriod** *(integer) --* Maximum time in milliseconds between Program Clock Reference
      (PCRs) inserted into the transport stream.

      - **PcrPid** *(string) --* Packet Identifier (PID) of the Program Clock Reference (PCR) in the
      transport stream. When no value is given, the encoder will assign the same value as the Video
      PID. Can be entered as a decimal or hexadecimal value. Valid values are 32 (or 0x20)..8182 (or
      0x1ff6).

      - **PmtInterval** *(integer) --* The number of milliseconds between instances of this table in
      the output transport stream. Valid values are 0, 10..1000.

      - **PmtPid** *(string) --* Packet Identifier (PID) for the Program Map Table (PMT) in the
      transport stream. Can be entered as a decimal or hexadecimal value. Valid values are 32 (or
      0x20)..8182 (or 0x1ff6).

      - **ProgramNum** *(integer) --* The value of the program number field in the Program Map
      Table.

      - **RateMode** *(string) --* When vbr, does not insert null packets into transport stream to
      fill specified bitrate. The bitrate setting acts as the maximum bitrate when vbr is set.

      - **Scte27Pids** *(string) --* Packet Identifier (PID) for input source SCTE-27 data to this
      output. Multiple values are accepted, and can be entered in ranges and/or by comma separation.
      Can be entered as decimal or hexadecimal values. Each PID specified must be in the range of 32
      (or 0x20)..8182 (or 0x1ff6).

      - **Scte35Control** *(string) --* Optionally pass SCTE-35 signals from the input source to
      this output.

      - **Scte35Pid** *(string) --* Packet Identifier (PID) of the SCTE-35 stream in the transport
      stream. Can be entered as a decimal or hexadecimal value. Valid values are 32 (or 0x20)..8182
      (or 0x1ff6).

      - **SegmentationMarkers** *(string) --* Inserts segmentation markers at each segmentationTime
      period. raiSegstart sets the Random Access Indicator bit in the adaptation field. raiAdapt
      sets the RAI bit and adds the current timecode in the private data bytes. psiSegstart inserts
      PAT and PMT tables at the start of segments. ebp adds Encoder Boundary Point information to
      the adaptation field as per OpenCable specification OC-SP-EBP-I01-130118. ebpLegacy adds
      Encoder Boundary Point information to the adaptation field using a legacy proprietary format.

      - **SegmentationStyle** *(string) --* The segmentation style parameter controls how
      segmentation markers are inserted into the transport stream. With avails, it is possible that
      segments may be truncated, which can influence where future segmentation markers are inserted.
      When a segmentation style of "resetCadence" is selected and a segment is truncated due to an
      avail, we will reset the segmentation cadence. This means the subsequent segment will have a
      duration of $segmentationTime seconds. When a segmentation style of "maintainCadence" is
      selected and a segment is truncated due to an avail, we will not reset the segmentation
      cadence. This means the subsequent segment will likely be truncated as well. However, all
      segments after that will have a duration of $segmentationTime seconds. Note that EBP lookahead
      is a slight exception to this rule.

      - **SegmentationTime** *(float) --* The length in seconds of each segment. Required unless
      markers is set to None_.

      - **TimedMetadataBehavior** *(string) --* When set to passthrough, timed metadata will be
      passed through from input to output.

      - **TimedMetadataPid** *(string) --* Packet Identifier (PID) of the timed metadata stream in
      the transport stream. Can be entered as a decimal or hexadecimal value. Valid values are 32
      (or 0x20)..8182 (or 0x1ff6).

      - **TransportStreamId** *(integer) --* The value of the transport stream ID field in the
      Program Map Table.

      - **VideoPid** *(string) --* Packet Identifier (PID) of the elementary video stream in the
      transport stream. Can be entered as a decimal or hexadecimal value. Valid values are 32 (or
      0x20)..8182 (or 0x1ff6).
    """


_ClientUpdateChannelResponseChannelEncoderSettingsOutputGroupsOutputsOutputSettingsArchiveOutputSettingsTypeDef = TypedDict(
    "_ClientUpdateChannelResponseChannelEncoderSettingsOutputGroupsOutputsOutputSettingsArchiveOutputSettingsTypeDef",
    {
        "ContainerSettings": ClientUpdateChannelResponseChannelEncoderSettingsOutputGroupsOutputsOutputSettingsArchiveOutputSettingsContainerSettingsTypeDef,
        "Extension": str,
        "NameModifier": str,
    },
    total=False,
)


class ClientUpdateChannelResponseChannelEncoderSettingsOutputGroupsOutputsOutputSettingsArchiveOutputSettingsTypeDef(
    _ClientUpdateChannelResponseChannelEncoderSettingsOutputGroupsOutputsOutputSettingsArchiveOutputSettingsTypeDef
):
    """
    Type definition for
    `ClientUpdateChannelResponseChannelEncoderSettingsOutputGroupsOutputsOutputSettings`
    `ArchiveOutputSettings`

    - **ContainerSettings** *(dict) --* Settings specific to the container type of the file.

      - **M2tsSettings** *(dict) --* M2ts Settings

        - **AbsentInputAudioBehavior** *(string) --* When set to drop, output audio streams will be
        removed from the program if the selected input audio stream is removed from the input. This
        allows the output audio configuration to dynamically change based on input configuration. If
        this is set to encodeSilence, all output audio streams will output encoded silence when not
        connected to an active input stream.

        - **Arib** *(string) --* When set to enabled, uses ARIB-compliant field muxing and removes
        video descriptor.

        - **AribCaptionsPid** *(string) --* Packet Identifier (PID) for ARIB Captions in the
        transport stream. Can be entered as a decimal or hexadecimal value. Valid values are 32 (or
        0x20)..8182 (or 0x1ff6).

        - **AribCaptionsPidControl** *(string) --* If set to auto, pid number used for ARIB Captions
        will be auto-selected from unused pids. If set to useConfigured, ARIB Captions will be on
        the configured pid number.

        - **AudioBufferModel** *(string) --* When set to dvb, uses DVB buffer model for Dolby
        Digital audio. When set to atsc, the ATSC model is used.

        - **AudioFramesPerPes** *(integer) --* The number of audio frames to insert for each PES
        packet.

        - **AudioPids** *(string) --* Packet Identifier (PID) of the elementary audio stream(s) in
        the transport stream. Multiple values are accepted, and can be entered in ranges and/or by
        comma separation. Can be entered as decimal or hexadecimal values. Each PID specified must
        be in the range of 32 (or 0x20)..8182 (or 0x1ff6).

        - **AudioStreamType** *(string) --* When set to atsc, uses stream type =
             0x81 for AC3 and
        stream type = 0x87 for EAC3. When set to dvb, uses stream type = 0x06.

        - **Bitrate** *(integer) --* The output bitrate of the transport stream in bits per second.
        Setting to 0 lets the muxer automatically determine the appropriate bitrate.

        - **BufferModel** *(string) --* If set to multiplex, use multiplex buffer model for accurate
        interleaving. Setting to bufferModel to none can lead to lower latency, but low-memory
        devices may not be able to play back the stream without interruptions.

        - **CcDescriptor** *(string) --* When set to enabled, generates captionServiceDescriptor in
        PMT.

        - **DvbNitSettings** *(dict) --* Inserts DVB Network Information Table (NIT) at the
        specified table repetition interval.

          - **NetworkId** *(integer) --* The numeric value placed in the Network Information Table
          (NIT).

          - **NetworkName** *(string) --* The network name text placed in the networkNameDescriptor
          inside the Network Information Table. Maximum length is 256 characters.

          - **RepInterval** *(integer) --* The number of milliseconds between instances of this
          table in the output transport stream.

        - **DvbSdtSettings** *(dict) --* Inserts DVB Service Description Table (SDT) at the
        specified table repetition interval.

          - **OutputSdt** *(string) --* Selects method of inserting SDT information into output
          stream. The sdtFollow setting copies SDT information from input stream to output stream.
          The sdtFollowIfPresent setting copies SDT information from input stream to output stream
          if SDT information is present in the input, otherwise it will fall back on the
          user-defined values. The sdtManual setting means user will enter the SDT information. The
          sdtNone setting means output stream will not contain SDT information.

          - **RepInterval** *(integer) --* The number of milliseconds between instances of this
          table in the output transport stream.

          - **ServiceName** *(string) --* The service name placed in the serviceDescriptor in the
          Service Description Table. Maximum length is 256 characters.

          - **ServiceProviderName** *(string) --* The service provider name placed in the
          serviceDescriptor in the Service Description Table. Maximum length is 256 characters.

        - **DvbSubPids** *(string) --* Packet Identifier (PID) for input source DVB Subtitle data to
        this output. Multiple values are accepted, and can be entered in ranges and/or by comma
        separation. Can be entered as decimal or hexadecimal values. Each PID specified must be in
        the range of 32 (or 0x20)..8182 (or 0x1ff6).

        - **DvbTdtSettings** *(dict) --* Inserts DVB Time and Date Table (TDT) at the specified
        table repetition interval.

          - **RepInterval** *(integer) --* The number of milliseconds between instances of this
          table in the output transport stream.

        - **DvbTeletextPid** *(string) --* Packet Identifier (PID) for input source DVB Teletext
        data to this output. Can be entered as a decimal or hexadecimal value. Valid values are 32
        (or 0x20)..8182 (or 0x1ff6).

        - **Ebif** *(string) --* If set to passthrough, passes any EBIF data from the input source
        to this output.

        - **EbpAudioInterval** *(string) --* When videoAndFixedIntervals is selected, audio EBP
        markers will be added to partitions 3 and 4. The interval between these additional markers
        will be fixed, and will be slightly shorter than the video EBP marker interval. Only
        available when EBP Cablelabs segmentation markers are selected. Partitions 1 and 2 will
        always follow the video interval.

        - **EbpLookaheadMs** *(integer) --* When set, enforces that Encoder Boundary Points do not
        come within the specified time interval of each other by looking ahead at input video. If
        another EBP is going to come in within the specified time interval, the current EBP is not
        emitted, and the segment is "stretched" to the next marker. The lookahead value does not add
        latency to the system. The Live Event must be configured elsewhere to create sufficient
        latency to make the lookahead accurate.

        - **EbpPlacement** *(string) --* Controls placement of EBP on Audio PIDs. If set to
        videoAndAudioPids, EBP markers will be placed on the video PID and all audio PIDs. If set to
        videoPid, EBP markers will be placed on only the video PID.

        - **EcmPid** *(string) --* This field is unused and deprecated.

        - **EsRateInPes** *(string) --* Include or exclude the ES Rate field in the PES header.

        - **EtvPlatformPid** *(string) --* Packet Identifier (PID) for input source ETV Platform
        data to this output. Can be entered as a decimal or hexadecimal value. Valid values are 32
        (or 0x20)..8182 (or 0x1ff6).

        - **EtvSignalPid** *(string) --* Packet Identifier (PID) for input source ETV Signal data to
        this output. Can be entered as a decimal or hexadecimal value. Valid values are 32 (or
        0x20)..8182 (or 0x1ff6).

        - **FragmentTime** *(float) --* The length in seconds of each fragment. Only used with EBP
        markers.

        - **Klv** *(string) --* If set to passthrough, passes any KLV data from the input source to
        this output.

        - **KlvDataPids** *(string) --* Packet Identifier (PID) for input source KLV data to this
        output. Multiple values are accepted, and can be entered in ranges and/or by comma
        separation. Can be entered as decimal or hexadecimal values. Each PID specified must be in
        the range of 32 (or 0x20)..8182 (or 0x1ff6).

        - **NielsenId3Behavior** *(string) --* If set to passthrough, Nielsen inaudible tones for
        media tracking will be detected in the input audio and an equivalent ID3 tag will be
        inserted in the output.

        - **NullPacketBitrate** *(float) --* Value in bits per second of extra null packets to
        insert into the transport stream. This can be used if a downstream encryption system
        requires periodic null packets.

        - **PatInterval** *(integer) --* The number of milliseconds between instances of this table
        in the output transport stream. Valid values are 0, 10..1000.

        - **PcrControl** *(string) --* When set to pcrEveryPesPacket, a Program Clock Reference
        value is inserted for every Packetized Elementary Stream (PES) header. This parameter is
        effective only when the PCR PID is the same as the video or audio elementary stream.

        - **PcrPeriod** *(integer) --* Maximum time in milliseconds between Program Clock Reference
        (PCRs) inserted into the transport stream.

        - **PcrPid** *(string) --* Packet Identifier (PID) of the Program Clock Reference (PCR) in
        the transport stream. When no value is given, the encoder will assign the same value as the
        Video PID. Can be entered as a decimal or hexadecimal value. Valid values are 32 (or
        0x20)..8182 (or 0x1ff6).

        - **PmtInterval** *(integer) --* The number of milliseconds between instances of this table
        in the output transport stream. Valid values are 0, 10..1000.

        - **PmtPid** *(string) --* Packet Identifier (PID) for the Program Map Table (PMT) in the
        transport stream. Can be entered as a decimal or hexadecimal value. Valid values are 32 (or
        0x20)..8182 (or 0x1ff6).

        - **ProgramNum** *(integer) --* The value of the program number field in the Program Map
        Table.

        - **RateMode** *(string) --* When vbr, does not insert null packets into transport stream to
        fill specified bitrate. The bitrate setting acts as the maximum bitrate when vbr is set.

        - **Scte27Pids** *(string) --* Packet Identifier (PID) for input source SCTE-27 data to this
        output. Multiple values are accepted, and can be entered in ranges and/or by comma
        separation. Can be entered as decimal or hexadecimal values. Each PID specified must be in
        the range of 32 (or 0x20)..8182 (or 0x1ff6).

        - **Scte35Control** *(string) --* Optionally pass SCTE-35 signals from the input source to
        this output.

        - **Scte35Pid** *(string) --* Packet Identifier (PID) of the SCTE-35 stream in the transport
        stream. Can be entered as a decimal or hexadecimal value. Valid values are 32 (or
        0x20)..8182 (or 0x1ff6).

        - **SegmentationMarkers** *(string) --* Inserts segmentation markers at each
        segmentationTime period. raiSegstart sets the Random Access Indicator bit in the adaptation
        field. raiAdapt sets the RAI bit and adds the current timecode in the private data bytes.
        psiSegstart inserts PAT and PMT tables at the start of segments. ebp adds Encoder Boundary
        Point information to the adaptation field as per OpenCable specification
        OC-SP-EBP-I01-130118. ebpLegacy adds Encoder Boundary Point information to the adaptation
        field using a legacy proprietary format.

        - **SegmentationStyle** *(string) --* The segmentation style parameter controls how
        segmentation markers are inserted into the transport stream. With avails, it is possible
        that segments may be truncated, which can influence where future segmentation markers are
        inserted. When a segmentation style of "resetCadence" is selected and a segment is truncated
        due to an avail, we will reset the segmentation cadence. This means the subsequent segment
        will have a duration of $segmentationTime seconds. When a segmentation style of
        "maintainCadence" is selected and a segment is truncated due to an avail, we will not reset
        the segmentation cadence. This means the subsequent segment will likely be truncated as
        well. However, all segments after that will have a duration of $segmentationTime seconds.
        Note that EBP lookahead is a slight exception to this rule.

        - **SegmentationTime** *(float) --* The length in seconds of each segment. Required unless
        markers is set to None_.

        - **TimedMetadataBehavior** *(string) --* When set to passthrough, timed metadata will be
        passed through from input to output.

        - **TimedMetadataPid** *(string) --* Packet Identifier (PID) of the timed metadata stream in
        the transport stream. Can be entered as a decimal or hexadecimal value. Valid values are 32
        (or 0x20)..8182 (or 0x1ff6).

        - **TransportStreamId** *(integer) --* The value of the transport stream ID field in the
        Program Map Table.

        - **VideoPid** *(string) --* Packet Identifier (PID) of the elementary video stream in the
        transport stream. Can be entered as a decimal or hexadecimal value. Valid values are 32 (or
        0x20)..8182 (or 0x1ff6).

    - **Extension** *(string) --* Output file extension. If excluded, this will be auto-selected
    from the container type.

    - **NameModifier** *(string) --* String concatenated to the end of the destination filename.
    Required for multiple outputs of the same type.
    """


_ClientUpdateChannelResponseChannelEncoderSettingsOutputGroupsOutputsOutputSettingsFrameCaptureOutputSettingsTypeDef = TypedDict(
    "_ClientUpdateChannelResponseChannelEncoderSettingsOutputGroupsOutputsOutputSettingsFrameCaptureOutputSettingsTypeDef",
    {"NameModifier": str},
    total=False,
)


class ClientUpdateChannelResponseChannelEncoderSettingsOutputGroupsOutputsOutputSettingsFrameCaptureOutputSettingsTypeDef(
    _ClientUpdateChannelResponseChannelEncoderSettingsOutputGroupsOutputsOutputSettingsFrameCaptureOutputSettingsTypeDef
):
    """
    Type definition for
    `ClientUpdateChannelResponseChannelEncoderSettingsOutputGroupsOutputsOutputSettings`
    `FrameCaptureOutputSettings`

    - **NameModifier** *(string) --* Required if the output group contains more than one output.
    This modifier forms part of the output file name.
    """


_ClientUpdateChannelResponseChannelEncoderSettingsOutputGroupsOutputsOutputSettingsHlsOutputSettingsHlsSettingsAudioOnlyHlsSettingsAudioOnlyImageTypeDef = TypedDict(
    "_ClientUpdateChannelResponseChannelEncoderSettingsOutputGroupsOutputsOutputSettingsHlsOutputSettingsHlsSettingsAudioOnlyHlsSettingsAudioOnlyImageTypeDef",
    {"PasswordParam": str, "Uri": str, "Username": str},
    total=False,
)


class ClientUpdateChannelResponseChannelEncoderSettingsOutputGroupsOutputsOutputSettingsHlsOutputSettingsHlsSettingsAudioOnlyHlsSettingsAudioOnlyImageTypeDef(
    _ClientUpdateChannelResponseChannelEncoderSettingsOutputGroupsOutputsOutputSettingsHlsOutputSettingsHlsSettingsAudioOnlyHlsSettingsAudioOnlyImageTypeDef
):
    """
    Type definition for
    `ClientUpdateChannelResponseChannelEncoderSettingsOutputGroupsOutputsOutputSettingsHlsOutputSettingsHlsSettingsAudioOnlyHlsSettings`
    `AudioOnlyImage`

    - **PasswordParam** *(string) --* key used to extract the password from EC2 Parameter store

    - **Uri** *(string) --* Uniform Resource Identifier - This should be a path to a file accessible
    to the Live system (eg. a http:// URI) depending on the output type. For example, a RTMP
    destination should have a uri simliar to: "rtmp://fmsserver/live".

    - **Username** *(string) --* Documentation update needed
    """


_ClientUpdateChannelResponseChannelEncoderSettingsOutputGroupsOutputsOutputSettingsHlsOutputSettingsHlsSettingsAudioOnlyHlsSettingsTypeDef = TypedDict(
    "_ClientUpdateChannelResponseChannelEncoderSettingsOutputGroupsOutputsOutputSettingsHlsOutputSettingsHlsSettingsAudioOnlyHlsSettingsTypeDef",
    {
        "AudioGroupId": str,
        "AudioOnlyImage": ClientUpdateChannelResponseChannelEncoderSettingsOutputGroupsOutputsOutputSettingsHlsOutputSettingsHlsSettingsAudioOnlyHlsSettingsAudioOnlyImageTypeDef,
        "AudioTrackType": str,
    },
    total=False,
)


class ClientUpdateChannelResponseChannelEncoderSettingsOutputGroupsOutputsOutputSettingsHlsOutputSettingsHlsSettingsAudioOnlyHlsSettingsTypeDef(
    _ClientUpdateChannelResponseChannelEncoderSettingsOutputGroupsOutputsOutputSettingsHlsOutputSettingsHlsSettingsAudioOnlyHlsSettingsTypeDef
):
    """
    Type definition for
    `ClientUpdateChannelResponseChannelEncoderSettingsOutputGroupsOutputsOutputSettingsHlsOutputSettingsHlsSettings`
    `AudioOnlyHlsSettings`

    - **AudioGroupId** *(string) --* Specifies the group to which the audio Rendition belongs.

    - **AudioOnlyImage** *(dict) --* Optional. Specifies the .jpg or .png image to use as the cover
    art for an audio-only output. We recommend a low bit-size file because the image increases the
    output audio bandwidth. The image is attached to the audio as an ID3 tag, frame type APIC,
    picture type 0x10, as per the "ID3 tag version 2.4.0 - Native Frames" standard.

      - **PasswordParam** *(string) --* key used to extract the password from EC2 Parameter store

      - **Uri** *(string) --* Uniform Resource Identifier - This should be a path to a file
      accessible to the Live system (eg. a http:// URI) depending on the output type. For example, a
      RTMP destination should have a uri simliar to: "rtmp://fmsserver/live".

      - **Username** *(string) --* Documentation update needed

    - **AudioTrackType** *(string) --* Four types of audio-only tracks are supported: Audio-Only
    Variant Stream The client can play back this audio-only stream instead of video in low-bandwidth
    scenarios. Represented as an EXT-X-STREAM-INF in the HLS manifest. Alternate Audio, Auto Select,
    Default Alternate rendition that the client should try to play back by default. Represented as
    an EXT-X-MEDIA in the HLS manifest with DEFAULT=YES, AUTOSELECT=YES Alternate Audio, Auto
    Select, Not Default Alternate rendition that the client may try to play back by default.
    Represented as an EXT-X-MEDIA in the HLS manifest with DEFAULT=NO, AUTOSELECT=YES Alternate
    Audio, not Auto Select Alternate rendition that the client will not try to play back by default.
    Represented as an EXT-X-MEDIA in the HLS manifest with DEFAULT=NO, AUTOSELECT=NO
    """


_ClientUpdateChannelResponseChannelEncoderSettingsOutputGroupsOutputsOutputSettingsHlsOutputSettingsHlsSettingsStandardHlsSettingsM3u8SettingsTypeDef = TypedDict(
    "_ClientUpdateChannelResponseChannelEncoderSettingsOutputGroupsOutputsOutputSettingsHlsOutputSettingsHlsSettingsStandardHlsSettingsM3u8SettingsTypeDef",
    {
        "AudioFramesPerPes": int,
        "AudioPids": str,
        "EcmPid": str,
        "NielsenId3Behavior": str,
        "PatInterval": int,
        "PcrControl": str,
        "PcrPeriod": int,
        "PcrPid": str,
        "PmtInterval": int,
        "PmtPid": str,
        "ProgramNum": int,
        "Scte35Behavior": str,
        "Scte35Pid": str,
        "TimedMetadataBehavior": str,
        "TimedMetadataPid": str,
        "TransportStreamId": int,
        "VideoPid": str,
    },
    total=False,
)


class ClientUpdateChannelResponseChannelEncoderSettingsOutputGroupsOutputsOutputSettingsHlsOutputSettingsHlsSettingsStandardHlsSettingsM3u8SettingsTypeDef(
    _ClientUpdateChannelResponseChannelEncoderSettingsOutputGroupsOutputsOutputSettingsHlsOutputSettingsHlsSettingsStandardHlsSettingsM3u8SettingsTypeDef
):
    """
    Type definition for
    `ClientUpdateChannelResponseChannelEncoderSettingsOutputGroupsOutputsOutputSettingsHlsOutputSettingsHlsSettingsStandardHlsSettings`
    `M3u8Settings`

    - **AudioFramesPerPes** *(integer) --* The number of audio frames to insert for each PES packet.

    - **AudioPids** *(string) --* Packet Identifier (PID) of the elementary audio stream(s) in the
    transport stream. Multiple values are accepted, and can be entered in ranges and/or by comma
    separation. Can be entered as decimal or hexadecimal values.

    - **EcmPid** *(string) --* This parameter is unused and deprecated.

    - **NielsenId3Behavior** *(string) --* If set to passthrough, Nielsen inaudible tones for media
    tracking will be detected in the input audio and an equivalent ID3 tag will be inserted in the
    output.

    - **PatInterval** *(integer) --* The number of milliseconds between instances of this table in
    the output transport stream. A value of \\"0\\" writes out the PMT once per segment file.

    - **PcrControl** *(string) --* When set to pcrEveryPesPacket, a Program Clock Reference value is
    inserted for every Packetized Elementary Stream (PES) header. This parameter is effective only
    when the PCR PID is the same as the video or audio elementary stream.

    - **PcrPeriod** *(integer) --* Maximum time in milliseconds between Program Clock References
    (PCRs) inserted into the transport stream.

    - **PcrPid** *(string) --* Packet Identifier (PID) of the Program Clock Reference (PCR) in the
    transport stream. When no value is given, the encoder will assign the same value as the Video
    PID. Can be entered as a decimal or hexadecimal value.

    - **PmtInterval** *(integer) --* The number of milliseconds between instances of this table in
    the output transport stream. A value of \\"0\\" writes out the PMT once per segment file.

    - **PmtPid** *(string) --* Packet Identifier (PID) for the Program Map Table (PMT) in the
    transport stream. Can be entered as a decimal or hexadecimal value.

    - **ProgramNum** *(integer) --* The value of the program number field in the Program Map Table.

    - **Scte35Behavior** *(string) --* If set to passthrough, passes any SCTE-35 signals from the
    input source to this output.

    - **Scte35Pid** *(string) --* Packet Identifier (PID) of the SCTE-35 stream in the transport
    stream. Can be entered as a decimal or hexadecimal value.

    - **TimedMetadataBehavior** *(string) --* When set to passthrough, timed metadata is passed
    through from input to output.

    - **TimedMetadataPid** *(string) --* Packet Identifier (PID) of the timed metadata stream in the
    transport stream. Can be entered as a decimal or hexadecimal value. Valid values are 32 (or
    0x20)..8182 (or 0x1ff6).

    - **TransportStreamId** *(integer) --* The value of the transport stream ID field in the Program
    Map Table.

    - **VideoPid** *(string) --* Packet Identifier (PID) of the elementary video stream in the
    transport stream. Can be entered as a decimal or hexadecimal value.
    """


_ClientUpdateChannelResponseChannelEncoderSettingsOutputGroupsOutputsOutputSettingsHlsOutputSettingsHlsSettingsStandardHlsSettingsTypeDef = TypedDict(
    "_ClientUpdateChannelResponseChannelEncoderSettingsOutputGroupsOutputsOutputSettingsHlsOutputSettingsHlsSettingsStandardHlsSettingsTypeDef",
    {
        "AudioRenditionSets": str,
        "M3u8Settings": ClientUpdateChannelResponseChannelEncoderSettingsOutputGroupsOutputsOutputSettingsHlsOutputSettingsHlsSettingsStandardHlsSettingsM3u8SettingsTypeDef,
    },
    total=False,
)


class ClientUpdateChannelResponseChannelEncoderSettingsOutputGroupsOutputsOutputSettingsHlsOutputSettingsHlsSettingsStandardHlsSettingsTypeDef(
    _ClientUpdateChannelResponseChannelEncoderSettingsOutputGroupsOutputsOutputSettingsHlsOutputSettingsHlsSettingsStandardHlsSettingsTypeDef
):
    """
    Type definition for
    `ClientUpdateChannelResponseChannelEncoderSettingsOutputGroupsOutputsOutputSettingsHlsOutputSettingsHlsSettings`
    `StandardHlsSettings`

    - **AudioRenditionSets** *(string) --* List all the audio groups that are used with the video
    output stream. Input all the audio GROUP-IDs that are associated to the video, separate by ','.

    - **M3u8Settings** *(dict) --* Settings information for the .m3u8 container

      - **AudioFramesPerPes** *(integer) --* The number of audio frames to insert for each PES
      packet.

      - **AudioPids** *(string) --* Packet Identifier (PID) of the elementary audio stream(s) in the
      transport stream. Multiple values are accepted, and can be entered in ranges and/or by comma
      separation. Can be entered as decimal or hexadecimal values.

      - **EcmPid** *(string) --* This parameter is unused and deprecated.

      - **NielsenId3Behavior** *(string) --* If set to passthrough, Nielsen inaudible tones for
      media tracking will be detected in the input audio and an equivalent ID3 tag will be inserted
      in the output.

      - **PatInterval** *(integer) --* The number of milliseconds between instances of this table in
      the output transport stream. A value of \\"0\\" writes out the PMT once per segment file.

      - **PcrControl** *(string) --* When set to pcrEveryPesPacket, a Program Clock Reference value
      is inserted for every Packetized Elementary Stream (PES) header. This parameter is effective
      only when the PCR PID is the same as the video or audio elementary stream.

      - **PcrPeriod** *(integer) --* Maximum time in milliseconds between Program Clock References
      (PCRs) inserted into the transport stream.

      - **PcrPid** *(string) --* Packet Identifier (PID) of the Program Clock Reference (PCR) in the
      transport stream. When no value is given, the encoder will assign the same value as the Video
      PID. Can be entered as a decimal or hexadecimal value.

      - **PmtInterval** *(integer) --* The number of milliseconds between instances of this table in
      the output transport stream. A value of \\"0\\" writes out the PMT once per segment file.

      - **PmtPid** *(string) --* Packet Identifier (PID) for the Program Map Table (PMT) in the
      transport stream. Can be entered as a decimal or hexadecimal value.

      - **ProgramNum** *(integer) --* The value of the program number field in the Program Map
      Table.

      - **Scte35Behavior** *(string) --* If set to passthrough, passes any SCTE-35 signals from the
      input source to this output.

      - **Scte35Pid** *(string) --* Packet Identifier (PID) of the SCTE-35 stream in the transport
      stream. Can be entered as a decimal or hexadecimal value.

      - **TimedMetadataBehavior** *(string) --* When set to passthrough, timed metadata is passed
      through from input to output.

      - **TimedMetadataPid** *(string) --* Packet Identifier (PID) of the timed metadata stream in
      the transport stream. Can be entered as a decimal or hexadecimal value. Valid values are 32
      (or 0x20)..8182 (or 0x1ff6).

      - **TransportStreamId** *(integer) --* The value of the transport stream ID field in the
      Program Map Table.

      - **VideoPid** *(string) --* Packet Identifier (PID) of the elementary video stream in the
      transport stream. Can be entered as a decimal or hexadecimal value.
    """


_ClientUpdateChannelResponseChannelEncoderSettingsOutputGroupsOutputsOutputSettingsHlsOutputSettingsHlsSettingsTypeDef = TypedDict(
    "_ClientUpdateChannelResponseChannelEncoderSettingsOutputGroupsOutputsOutputSettingsHlsOutputSettingsHlsSettingsTypeDef",
    {
        "AudioOnlyHlsSettings": ClientUpdateChannelResponseChannelEncoderSettingsOutputGroupsOutputsOutputSettingsHlsOutputSettingsHlsSettingsAudioOnlyHlsSettingsTypeDef,
        "StandardHlsSettings": ClientUpdateChannelResponseChannelEncoderSettingsOutputGroupsOutputsOutputSettingsHlsOutputSettingsHlsSettingsStandardHlsSettingsTypeDef,
    },
    total=False,
)


class ClientUpdateChannelResponseChannelEncoderSettingsOutputGroupsOutputsOutputSettingsHlsOutputSettingsHlsSettingsTypeDef(
    _ClientUpdateChannelResponseChannelEncoderSettingsOutputGroupsOutputsOutputSettingsHlsOutputSettingsHlsSettingsTypeDef
):
    """
    Type definition for
    `ClientUpdateChannelResponseChannelEncoderSettingsOutputGroupsOutputsOutputSettingsHlsOutputSettings`
    `HlsSettings`

    - **AudioOnlyHlsSettings** *(dict) --* Audio Only Hls Settings

      - **AudioGroupId** *(string) --* Specifies the group to which the audio Rendition belongs.

      - **AudioOnlyImage** *(dict) --* Optional. Specifies the .jpg or .png image to use as the
      cover art for an audio-only output. We recommend a low bit-size file because the image
      increases the output audio bandwidth. The image is attached to the audio as an ID3 tag, frame
      type APIC, picture type 0x10, as per the "ID3 tag version 2.4.0 - Native Frames" standard.

        - **PasswordParam** *(string) --* key used to extract the password from EC2 Parameter store

        - **Uri** *(string) --* Uniform Resource Identifier - This should be a path to a file
        accessible to the Live system (eg. a http:// URI) depending on the output type. For example,
        a RTMP destination should have a uri simliar to: "rtmp://fmsserver/live".

        - **Username** *(string) --* Documentation update needed

      - **AudioTrackType** *(string) --* Four types of audio-only tracks are supported: Audio-Only
      Variant Stream The client can play back this audio-only stream instead of video in
      low-bandwidth scenarios. Represented as an EXT-X-STREAM-INF in the HLS manifest. Alternate
      Audio, Auto Select, Default Alternate rendition that the client should try to play back by
      default. Represented as an EXT-X-MEDIA in the HLS manifest with DEFAULT=YES, AUTOSELECT=YES
      Alternate Audio, Auto Select, Not Default Alternate rendition that the client may try to play
      back by default. Represented as an EXT-X-MEDIA in the HLS manifest with DEFAULT=NO,
      AUTOSELECT=YES Alternate Audio, not Auto Select Alternate rendition that the client will not
      try to play back by default. Represented as an EXT-X-MEDIA in the HLS manifest with
      DEFAULT=NO, AUTOSELECT=NO

    - **StandardHlsSettings** *(dict) --* Standard Hls Settings

      - **AudioRenditionSets** *(string) --* List all the audio groups that are used with the video
      output stream. Input all the audio GROUP-IDs that are associated to the video, separate by
      ','.

      - **M3u8Settings** *(dict) --* Settings information for the .m3u8 container

        - **AudioFramesPerPes** *(integer) --* The number of audio frames to insert for each PES
        packet.

        - **AudioPids** *(string) --* Packet Identifier (PID) of the elementary audio stream(s) in
        the transport stream. Multiple values are accepted, and can be entered in ranges and/or by
        comma separation. Can be entered as decimal or hexadecimal values.

        - **EcmPid** *(string) --* This parameter is unused and deprecated.

        - **NielsenId3Behavior** *(string) --* If set to passthrough, Nielsen inaudible tones for
        media tracking will be detected in the input audio and an equivalent ID3 tag will be
        inserted in the output.

        - **PatInterval** *(integer) --* The number of milliseconds between instances of this table
        in the output transport stream. A value of \\"0\\" writes out the PMT once per segment file.

        - **PcrControl** *(string) --* When set to pcrEveryPesPacket, a Program Clock Reference
        value is inserted for every Packetized Elementary Stream (PES) header. This parameter is
        effective only when the PCR PID is the same as the video or audio elementary stream.

        - **PcrPeriod** *(integer) --* Maximum time in milliseconds between Program Clock References
        (PCRs) inserted into the transport stream.

        - **PcrPid** *(string) --* Packet Identifier (PID) of the Program Clock Reference (PCR) in
        the transport stream. When no value is given, the encoder will assign the same value as the
        Video PID. Can be entered as a decimal or hexadecimal value.

        - **PmtInterval** *(integer) --* The number of milliseconds between instances of this table
        in the output transport stream. A value of \\"0\\" writes out the PMT once per segment file.

        - **PmtPid** *(string) --* Packet Identifier (PID) for the Program Map Table (PMT) in the
        transport stream. Can be entered as a decimal or hexadecimal value.

        - **ProgramNum** *(integer) --* The value of the program number field in the Program Map
        Table.

        - **Scte35Behavior** *(string) --* If set to passthrough, passes any SCTE-35 signals from
        the input source to this output.

        - **Scte35Pid** *(string) --* Packet Identifier (PID) of the SCTE-35 stream in the transport
        stream. Can be entered as a decimal or hexadecimal value.

        - **TimedMetadataBehavior** *(string) --* When set to passthrough, timed metadata is passed
        through from input to output.

        - **TimedMetadataPid** *(string) --* Packet Identifier (PID) of the timed metadata stream in
        the transport stream. Can be entered as a decimal or hexadecimal value. Valid values are 32
        (or 0x20)..8182 (or 0x1ff6).

        - **TransportStreamId** *(integer) --* The value of the transport stream ID field in the
        Program Map Table.

        - **VideoPid** *(string) --* Packet Identifier (PID) of the elementary video stream in the
        transport stream. Can be entered as a decimal or hexadecimal value.
    """


_ClientUpdateChannelResponseChannelEncoderSettingsOutputGroupsOutputsOutputSettingsHlsOutputSettingsTypeDef = TypedDict(
    "_ClientUpdateChannelResponseChannelEncoderSettingsOutputGroupsOutputsOutputSettingsHlsOutputSettingsTypeDef",
    {
        "HlsSettings": ClientUpdateChannelResponseChannelEncoderSettingsOutputGroupsOutputsOutputSettingsHlsOutputSettingsHlsSettingsTypeDef,
        "NameModifier": str,
        "SegmentModifier": str,
    },
    total=False,
)


class ClientUpdateChannelResponseChannelEncoderSettingsOutputGroupsOutputsOutputSettingsHlsOutputSettingsTypeDef(
    _ClientUpdateChannelResponseChannelEncoderSettingsOutputGroupsOutputsOutputSettingsHlsOutputSettingsTypeDef
):
    """
    Type definition for
    `ClientUpdateChannelResponseChannelEncoderSettingsOutputGroupsOutputsOutputSettings`
    `HlsOutputSettings`

    - **HlsSettings** *(dict) --* Settings regarding the underlying stream. These settings are
    different for audio-only outputs.

      - **AudioOnlyHlsSettings** *(dict) --* Audio Only Hls Settings

        - **AudioGroupId** *(string) --* Specifies the group to which the audio Rendition belongs.

        - **AudioOnlyImage** *(dict) --* Optional. Specifies the .jpg or .png image to use as the
        cover art for an audio-only output. We recommend a low bit-size file because the image
        increases the output audio bandwidth. The image is attached to the audio as an ID3 tag,
        frame type APIC, picture type 0x10, as per the "ID3 tag version 2.4.0 - Native Frames"
        standard.

          - **PasswordParam** *(string) --* key used to extract the password from EC2 Parameter
          store

          - **Uri** *(string) --* Uniform Resource Identifier - This should be a path to a file
          accessible to the Live system (eg. a http:// URI) depending on the output type. For
          example, a RTMP destination should have a uri simliar to: "rtmp://fmsserver/live".

          - **Username** *(string) --* Documentation update needed

        - **AudioTrackType** *(string) --* Four types of audio-only tracks are supported: Audio-Only
        Variant Stream The client can play back this audio-only stream instead of video in
        low-bandwidth scenarios. Represented as an EXT-X-STREAM-INF in the HLS manifest. Alternate
        Audio, Auto Select, Default Alternate rendition that the client should try to play back by
        default. Represented as an EXT-X-MEDIA in the HLS manifest with DEFAULT=YES, AUTOSELECT=
            YES
        Alternate Audio, Auto Select, Not Default Alternate rendition that the client may try to
        play back by default. Represented as an EXT-X-MEDIA in the HLS manifest with DEFAULT=NO,
        AUTOSELECT=
            YES Alternate Audio, not Auto Select Alternate rendition that the client will not
        try to play back by default. Represented as an EXT-X-MEDIA in the HLS manifest with
        DEFAULT=NO, AUTOSELECT=NO

      - **StandardHlsSettings** *(dict) --* Standard Hls Settings

        - **AudioRenditionSets** *(string) --* List all the audio groups that are used with the
        video output stream. Input all the audio GROUP-IDs that are associated to the video,
        separate by ','.

        - **M3u8Settings** *(dict) --* Settings information for the .m3u8 container

          - **AudioFramesPerPes** *(integer) --* The number of audio frames to insert for each PES
          packet.

          - **AudioPids** *(string) --* Packet Identifier (PID) of the elementary audio stream(s) in
          the transport stream. Multiple values are accepted, and can be entered in ranges and/or by
          comma separation. Can be entered as decimal or hexadecimal values.

          - **EcmPid** *(string) --* This parameter is unused and deprecated.

          - **NielsenId3Behavior** *(string) --* If set to passthrough, Nielsen inaudible tones for
          media tracking will be detected in the input audio and an equivalent ID3 tag will be
          inserted in the output.

          - **PatInterval** *(integer) --* The number of milliseconds between instances of this
          table in the output transport stream. A value of \\"0\\" writes out the PMT once per
          segment file.

          - **PcrControl** *(string) --* When set to pcrEveryPesPacket, a Program Clock Reference
          value is inserted for every Packetized Elementary Stream (PES) header. This parameter is
          effective only when the PCR PID is the same as the video or audio elementary stream.

          - **PcrPeriod** *(integer) --* Maximum time in milliseconds between Program Clock
          References (PCRs) inserted into the transport stream.

          - **PcrPid** *(string) --* Packet Identifier (PID) of the Program Clock Reference (PCR) in
          the transport stream. When no value is given, the encoder will assign the same value as
          the Video PID. Can be entered as a decimal or hexadecimal value.

          - **PmtInterval** *(integer) --* The number of milliseconds between instances of this
          table in the output transport stream. A value of \\"0\\" writes out the PMT once per
          segment file.

          - **PmtPid** *(string) --* Packet Identifier (PID) for the Program Map Table (PMT) in the
          transport stream. Can be entered as a decimal or hexadecimal value.

          - **ProgramNum** *(integer) --* The value of the program number field in the Program Map
          Table.

          - **Scte35Behavior** *(string) --* If set to passthrough, passes any SCTE-35 signals from
          the input source to this output.

          - **Scte35Pid** *(string) --* Packet Identifier (PID) of the SCTE-35 stream in the
          transport stream. Can be entered as a decimal or hexadecimal value.

          - **TimedMetadataBehavior** *(string) --* When set to passthrough, timed metadata is
          passed through from input to output.

          - **TimedMetadataPid** *(string) --* Packet Identifier (PID) of the timed metadata stream
          in the transport stream. Can be entered as a decimal or hexadecimal value. Valid values
          are 32 (or 0x20)..8182 (or 0x1ff6).

          - **TransportStreamId** *(integer) --* The value of the transport stream ID field in the
          Program Map Table.

          - **VideoPid** *(string) --* Packet Identifier (PID) of the elementary video stream in the
          transport stream. Can be entered as a decimal or hexadecimal value.

    - **NameModifier** *(string) --* String concatenated to the end of the destination filename.
    Accepts \\"Format Identifiers\\":#formatIdentifierParameters.

    - **SegmentModifier** *(string) --* String concatenated to end of segment filenames.
    """


_ClientUpdateChannelResponseChannelEncoderSettingsOutputGroupsOutputsOutputSettingsMsSmoothOutputSettingsTypeDef = TypedDict(
    "_ClientUpdateChannelResponseChannelEncoderSettingsOutputGroupsOutputsOutputSettingsMsSmoothOutputSettingsTypeDef",
    {"H265PackagingType": str, "NameModifier": str},
    total=False,
)


class ClientUpdateChannelResponseChannelEncoderSettingsOutputGroupsOutputsOutputSettingsMsSmoothOutputSettingsTypeDef(
    _ClientUpdateChannelResponseChannelEncoderSettingsOutputGroupsOutputsOutputSettingsMsSmoothOutputSettingsTypeDef
):
    """
    Type definition for
    `ClientUpdateChannelResponseChannelEncoderSettingsOutputGroupsOutputsOutputSettings`
    `MsSmoothOutputSettings`

    - **H265PackagingType** *(string) --* Only applicable when this output is referencing an H.265
    video description. Specifies whether MP4 segments should be packaged as HEV1 or HVC1.

    - **NameModifier** *(string) --* String concatenated to the end of the destination filename.
    Required for multiple outputs of the same type.
    """


_ClientUpdateChannelResponseChannelEncoderSettingsOutputGroupsOutputsOutputSettingsMultiplexOutputSettingsDestinationTypeDef = TypedDict(
    "_ClientUpdateChannelResponseChannelEncoderSettingsOutputGroupsOutputsOutputSettingsMultiplexOutputSettingsDestinationTypeDef",
    {"DestinationRefId": str},
    total=False,
)


class ClientUpdateChannelResponseChannelEncoderSettingsOutputGroupsOutputsOutputSettingsMultiplexOutputSettingsDestinationTypeDef(
    _ClientUpdateChannelResponseChannelEncoderSettingsOutputGroupsOutputsOutputSettingsMultiplexOutputSettingsDestinationTypeDef
):
    """
    Type definition for
    `ClientUpdateChannelResponseChannelEncoderSettingsOutputGroupsOutputsOutputSettingsMultiplexOutputSettings`
    `Destination`

    - **DestinationRefId** *(string) --* Placeholder documentation for __string
    """


_ClientUpdateChannelResponseChannelEncoderSettingsOutputGroupsOutputsOutputSettingsMultiplexOutputSettingsTypeDef = TypedDict(
    "_ClientUpdateChannelResponseChannelEncoderSettingsOutputGroupsOutputsOutputSettingsMultiplexOutputSettingsTypeDef",
    {
        "Destination": ClientUpdateChannelResponseChannelEncoderSettingsOutputGroupsOutputsOutputSettingsMultiplexOutputSettingsDestinationTypeDef
    },
    total=False,
)


class ClientUpdateChannelResponseChannelEncoderSettingsOutputGroupsOutputsOutputSettingsMultiplexOutputSettingsTypeDef(
    _ClientUpdateChannelResponseChannelEncoderSettingsOutputGroupsOutputsOutputSettingsMultiplexOutputSettingsTypeDef
):
    """
    Type definition for
    `ClientUpdateChannelResponseChannelEncoderSettingsOutputGroupsOutputsOutputSettings`
    `MultiplexOutputSettings`

    - **Destination** *(dict) --* Destination is a Multiplex.

      - **DestinationRefId** *(string) --* Placeholder documentation for __string
    """


_ClientUpdateChannelResponseChannelEncoderSettingsOutputGroupsOutputsOutputSettingsRtmpOutputSettingsDestinationTypeDef = TypedDict(
    "_ClientUpdateChannelResponseChannelEncoderSettingsOutputGroupsOutputsOutputSettingsRtmpOutputSettingsDestinationTypeDef",
    {"DestinationRefId": str},
    total=False,
)


class ClientUpdateChannelResponseChannelEncoderSettingsOutputGroupsOutputsOutputSettingsRtmpOutputSettingsDestinationTypeDef(
    _ClientUpdateChannelResponseChannelEncoderSettingsOutputGroupsOutputsOutputSettingsRtmpOutputSettingsDestinationTypeDef
):
    """
    Type definition for
    `ClientUpdateChannelResponseChannelEncoderSettingsOutputGroupsOutputsOutputSettingsRtmpOutputSettings`
    `Destination`

    - **DestinationRefId** *(string) --* Placeholder documentation for __string
    """


_ClientUpdateChannelResponseChannelEncoderSettingsOutputGroupsOutputsOutputSettingsRtmpOutputSettingsTypeDef = TypedDict(
    "_ClientUpdateChannelResponseChannelEncoderSettingsOutputGroupsOutputsOutputSettingsRtmpOutputSettingsTypeDef",
    {
        "CertificateMode": str,
        "ConnectionRetryInterval": int,
        "Destination": ClientUpdateChannelResponseChannelEncoderSettingsOutputGroupsOutputsOutputSettingsRtmpOutputSettingsDestinationTypeDef,
        "NumRetries": int,
    },
    total=False,
)


class ClientUpdateChannelResponseChannelEncoderSettingsOutputGroupsOutputsOutputSettingsRtmpOutputSettingsTypeDef(
    _ClientUpdateChannelResponseChannelEncoderSettingsOutputGroupsOutputsOutputSettingsRtmpOutputSettingsTypeDef
):
    """
    Type definition for
    `ClientUpdateChannelResponseChannelEncoderSettingsOutputGroupsOutputsOutputSettings`
    `RtmpOutputSettings`

    - **CertificateMode** *(string) --* If set to verifyAuthenticity, verify the tls certificate
    chain to a trusted Certificate Authority (CA). This will cause rtmps outputs with self-signed
    certificates to fail.

    - **ConnectionRetryInterval** *(integer) --* Number of seconds to wait before retrying a
    connection to the Flash Media server if the connection is lost.

    - **Destination** *(dict) --* The RTMP endpoint excluding the stream name (eg.
    rtmp://host/appname). For connection to Akamai, a username and password must be supplied. URI
    fields accept format identifiers.

      - **DestinationRefId** *(string) --* Placeholder documentation for __string

    - **NumRetries** *(integer) --* Number of retry attempts.
    """


_ClientUpdateChannelResponseChannelEncoderSettingsOutputGroupsOutputsOutputSettingsUdpOutputSettingsContainerSettingsM2tsSettingsDvbNitSettingsTypeDef = TypedDict(
    "_ClientUpdateChannelResponseChannelEncoderSettingsOutputGroupsOutputsOutputSettingsUdpOutputSettingsContainerSettingsM2tsSettingsDvbNitSettingsTypeDef",
    {"NetworkId": int, "NetworkName": str, "RepInterval": int},
    total=False,
)


class ClientUpdateChannelResponseChannelEncoderSettingsOutputGroupsOutputsOutputSettingsUdpOutputSettingsContainerSettingsM2tsSettingsDvbNitSettingsTypeDef(
    _ClientUpdateChannelResponseChannelEncoderSettingsOutputGroupsOutputsOutputSettingsUdpOutputSettingsContainerSettingsM2tsSettingsDvbNitSettingsTypeDef
):
    """
    Type definition for
    `ClientUpdateChannelResponseChannelEncoderSettingsOutputGroupsOutputsOutputSettingsUdpOutputSettingsContainerSettingsM2tsSettings`
    `DvbNitSettings`

    - **NetworkId** *(integer) --* The numeric value placed in the Network Information Table (NIT).

    - **NetworkName** *(string) --* The network name text placed in the networkNameDescriptor inside
    the Network Information Table. Maximum length is 256 characters.

    - **RepInterval** *(integer) --* The number of milliseconds between instances of this table in
    the output transport stream.
    """


_ClientUpdateChannelResponseChannelEncoderSettingsOutputGroupsOutputsOutputSettingsUdpOutputSettingsContainerSettingsM2tsSettingsDvbSdtSettingsTypeDef = TypedDict(
    "_ClientUpdateChannelResponseChannelEncoderSettingsOutputGroupsOutputsOutputSettingsUdpOutputSettingsContainerSettingsM2tsSettingsDvbSdtSettingsTypeDef",
    {"OutputSdt": str, "RepInterval": int, "ServiceName": str, "ServiceProviderName": str},
    total=False,
)


class ClientUpdateChannelResponseChannelEncoderSettingsOutputGroupsOutputsOutputSettingsUdpOutputSettingsContainerSettingsM2tsSettingsDvbSdtSettingsTypeDef(
    _ClientUpdateChannelResponseChannelEncoderSettingsOutputGroupsOutputsOutputSettingsUdpOutputSettingsContainerSettingsM2tsSettingsDvbSdtSettingsTypeDef
):
    """
    Type definition for
    `ClientUpdateChannelResponseChannelEncoderSettingsOutputGroupsOutputsOutputSettingsUdpOutputSettingsContainerSettingsM2tsSettings`
    `DvbSdtSettings`

    - **OutputSdt** *(string) --* Selects method of inserting SDT information into output stream.
    The sdtFollow setting copies SDT information from input stream to output stream. The
    sdtFollowIfPresent setting copies SDT information from input stream to output stream if SDT
    information is present in the input, otherwise it will fall back on the user-defined values. The
    sdtManual setting means user will enter the SDT information. The sdtNone setting means output
    stream will not contain SDT information.

    - **RepInterval** *(integer) --* The number of milliseconds between instances of this table in
    the output transport stream.

    - **ServiceName** *(string) --* The service name placed in the serviceDescriptor in the Service
    Description Table. Maximum length is 256 characters.

    - **ServiceProviderName** *(string) --* The service provider name placed in the
    serviceDescriptor in the Service Description Table. Maximum length is 256 characters.
    """


_ClientUpdateChannelResponseChannelEncoderSettingsOutputGroupsOutputsOutputSettingsUdpOutputSettingsContainerSettingsM2tsSettingsDvbTdtSettingsTypeDef = TypedDict(
    "_ClientUpdateChannelResponseChannelEncoderSettingsOutputGroupsOutputsOutputSettingsUdpOutputSettingsContainerSettingsM2tsSettingsDvbTdtSettingsTypeDef",
    {"RepInterval": int},
    total=False,
)


class ClientUpdateChannelResponseChannelEncoderSettingsOutputGroupsOutputsOutputSettingsUdpOutputSettingsContainerSettingsM2tsSettingsDvbTdtSettingsTypeDef(
    _ClientUpdateChannelResponseChannelEncoderSettingsOutputGroupsOutputsOutputSettingsUdpOutputSettingsContainerSettingsM2tsSettingsDvbTdtSettingsTypeDef
):
    """
    Type definition for
    `ClientUpdateChannelResponseChannelEncoderSettingsOutputGroupsOutputsOutputSettingsUdpOutputSettingsContainerSettingsM2tsSettings`
    `DvbTdtSettings`

    - **RepInterval** *(integer) --* The number of milliseconds between instances of this table in
    the output transport stream.
    """


_ClientUpdateChannelResponseChannelEncoderSettingsOutputGroupsOutputsOutputSettingsUdpOutputSettingsContainerSettingsM2tsSettingsTypeDef = TypedDict(
    "_ClientUpdateChannelResponseChannelEncoderSettingsOutputGroupsOutputsOutputSettingsUdpOutputSettingsContainerSettingsM2tsSettingsTypeDef",
    {
        "AbsentInputAudioBehavior": str,
        "Arib": str,
        "AribCaptionsPid": str,
        "AribCaptionsPidControl": str,
        "AudioBufferModel": str,
        "AudioFramesPerPes": int,
        "AudioPids": str,
        "AudioStreamType": str,
        "Bitrate": int,
        "BufferModel": str,
        "CcDescriptor": str,
        "DvbNitSettings": ClientUpdateChannelResponseChannelEncoderSettingsOutputGroupsOutputsOutputSettingsUdpOutputSettingsContainerSettingsM2tsSettingsDvbNitSettingsTypeDef,
        "DvbSdtSettings": ClientUpdateChannelResponseChannelEncoderSettingsOutputGroupsOutputsOutputSettingsUdpOutputSettingsContainerSettingsM2tsSettingsDvbSdtSettingsTypeDef,
        "DvbSubPids": str,
        "DvbTdtSettings": ClientUpdateChannelResponseChannelEncoderSettingsOutputGroupsOutputsOutputSettingsUdpOutputSettingsContainerSettingsM2tsSettingsDvbTdtSettingsTypeDef,
        "DvbTeletextPid": str,
        "Ebif": str,
        "EbpAudioInterval": str,
        "EbpLookaheadMs": int,
        "EbpPlacement": str,
        "EcmPid": str,
        "EsRateInPes": str,
        "EtvPlatformPid": str,
        "EtvSignalPid": str,
        "FragmentTime": float,
        "Klv": str,
        "KlvDataPids": str,
        "NielsenId3Behavior": str,
        "NullPacketBitrate": float,
        "PatInterval": int,
        "PcrControl": str,
        "PcrPeriod": int,
        "PcrPid": str,
        "PmtInterval": int,
        "PmtPid": str,
        "ProgramNum": int,
        "RateMode": str,
        "Scte27Pids": str,
        "Scte35Control": str,
        "Scte35Pid": str,
        "SegmentationMarkers": str,
        "SegmentationStyle": str,
        "SegmentationTime": float,
        "TimedMetadataBehavior": str,
        "TimedMetadataPid": str,
        "TransportStreamId": int,
        "VideoPid": str,
    },
    total=False,
)


class ClientUpdateChannelResponseChannelEncoderSettingsOutputGroupsOutputsOutputSettingsUdpOutputSettingsContainerSettingsM2tsSettingsTypeDef(
    _ClientUpdateChannelResponseChannelEncoderSettingsOutputGroupsOutputsOutputSettingsUdpOutputSettingsContainerSettingsM2tsSettingsTypeDef
):
    """
    Type definition for
    `ClientUpdateChannelResponseChannelEncoderSettingsOutputGroupsOutputsOutputSettingsUdpOutputSettingsContainerSettings`
    `M2tsSettings`

    - **AbsentInputAudioBehavior** *(string) --* When set to drop, output audio streams will be
    removed from the program if the selected input audio stream is removed from the input. This
    allows the output audio configuration to dynamically change based on input configuration. If
    this is set to encodeSilence, all output audio streams will output encoded silence when not
    connected to an active input stream.

    - **Arib** *(string) --* When set to enabled, uses ARIB-compliant field muxing and removes video
    descriptor.

    - **AribCaptionsPid** *(string) --* Packet Identifier (PID) for ARIB Captions in the transport
    stream. Can be entered as a decimal or hexadecimal value. Valid values are 32 (or 0x20)..8182
    (or 0x1ff6).

    - **AribCaptionsPidControl** *(string) --* If set to auto, pid number used for ARIB Captions
    will be auto-selected from unused pids. If set to useConfigured, ARIB Captions will be on the
    configured pid number.

    - **AudioBufferModel** *(string) --* When set to dvb, uses DVB buffer model for Dolby Digital
    audio. When set to atsc, the ATSC model is used.

    - **AudioFramesPerPes** *(integer) --* The number of audio frames to insert for each PES packet.

    - **AudioPids** *(string) --* Packet Identifier (PID) of the elementary audio stream(s) in the
    transport stream. Multiple values are accepted, and can be entered in ranges and/or by comma
    separation. Can be entered as decimal or hexadecimal values. Each PID specified must be in the
    range of 32 (or 0x20)..8182 (or 0x1ff6).

    - **AudioStreamType** *(string) --* When set to atsc, uses stream type = 0x81 for AC3 and stream
    type = 0x87 for EAC3. When set to dvb, uses stream type = 0x06.

    - **Bitrate** *(integer) --* The output bitrate of the transport stream in bits per second.
    Setting to 0 lets the muxer automatically determine the appropriate bitrate.

    - **BufferModel** *(string) --* If set to multiplex, use multiplex buffer model for accurate
    interleaving. Setting to bufferModel to none can lead to lower latency, but low-memory devices
    may not be able to play back the stream without interruptions.

    - **CcDescriptor** *(string) --* When set to enabled, generates captionServiceDescriptor in PMT.

    - **DvbNitSettings** *(dict) --* Inserts DVB Network Information Table (NIT) at the specified
    table repetition interval.

      - **NetworkId** *(integer) --* The numeric value placed in the Network Information Table
      (NIT).

      - **NetworkName** *(string) --* The network name text placed in the networkNameDescriptor
      inside the Network Information Table. Maximum length is 256 characters.

      - **RepInterval** *(integer) --* The number of milliseconds between instances of this table in
      the output transport stream.

    - **DvbSdtSettings** *(dict) --* Inserts DVB Service Description Table (SDT) at the specified
    table repetition interval.

      - **OutputSdt** *(string) --* Selects method of inserting SDT information into output stream.
      The sdtFollow setting copies SDT information from input stream to output stream. The
      sdtFollowIfPresent setting copies SDT information from input stream to output stream if SDT
      information is present in the input, otherwise it will fall back on the user-defined values.
      The sdtManual setting means user will enter the SDT information. The sdtNone setting means
      output stream will not contain SDT information.

      - **RepInterval** *(integer) --* The number of milliseconds between instances of this table in
      the output transport stream.

      - **ServiceName** *(string) --* The service name placed in the serviceDescriptor in the
      Service Description Table. Maximum length is 256 characters.

      - **ServiceProviderName** *(string) --* The service provider name placed in the
      serviceDescriptor in the Service Description Table. Maximum length is 256 characters.

    - **DvbSubPids** *(string) --* Packet Identifier (PID) for input source DVB Subtitle data to
    this output. Multiple values are accepted, and can be entered in ranges and/or by comma
    separation. Can be entered as decimal or hexadecimal values. Each PID specified must be in the
    range of 32 (or 0x20)..8182 (or 0x1ff6).

    - **DvbTdtSettings** *(dict) --* Inserts DVB Time and Date Table (TDT) at the specified table
    repetition interval.

      - **RepInterval** *(integer) --* The number of milliseconds between instances of this table in
      the output transport stream.

    - **DvbTeletextPid** *(string) --* Packet Identifier (PID) for input source DVB Teletext data to
    this output. Can be entered as a decimal or hexadecimal value. Valid values are 32 (or
    0x20)..8182 (or 0x1ff6).

    - **Ebif** *(string) --* If set to passthrough, passes any EBIF data from the input source to
    this output.

    - **EbpAudioInterval** *(string) --* When videoAndFixedIntervals is selected, audio EBP markers
    will be added to partitions 3 and 4. The interval between these additional markers will be
    fixed, and will be slightly shorter than the video EBP marker interval. Only available when EBP
    Cablelabs segmentation markers are selected. Partitions 1 and 2 will always follow the video
    interval.

    - **EbpLookaheadMs** *(integer) --* When set, enforces that Encoder Boundary Points do not come
    within the specified time interval of each other by looking ahead at input video. If another EBP
    is going to come in within the specified time interval, the current EBP is not emitted, and the
    segment is "stretched" to the next marker. The lookahead value does not add latency to the
    system. The Live Event must be configured elsewhere to create sufficient latency to make the
    lookahead accurate.

    - **EbpPlacement** *(string) --* Controls placement of EBP on Audio PIDs. If set to
    videoAndAudioPids, EBP markers will be placed on the video PID and all audio PIDs. If set to
    videoPid, EBP markers will be placed on only the video PID.

    - **EcmPid** *(string) --* This field is unused and deprecated.

    - **EsRateInPes** *(string) --* Include or exclude the ES Rate field in the PES header.

    - **EtvPlatformPid** *(string) --* Packet Identifier (PID) for input source ETV Platform data to
    this output. Can be entered as a decimal or hexadecimal value. Valid values are 32 (or
    0x20)..8182 (or 0x1ff6).

    - **EtvSignalPid** *(string) --* Packet Identifier (PID) for input source ETV Signal data to
    this output. Can be entered as a decimal or hexadecimal value. Valid values are 32 (or
    0x20)..8182 (or 0x1ff6).

    - **FragmentTime** *(float) --* The length in seconds of each fragment. Only used with EBP
    markers.

    - **Klv** *(string) --* If set to passthrough, passes any KLV data from the input source to this
    output.

    - **KlvDataPids** *(string) --* Packet Identifier (PID) for input source KLV data to this
    output. Multiple values are accepted, and can be entered in ranges and/or by comma separation.
    Can be entered as decimal or hexadecimal values. Each PID specified must be in the range of 32
    (or 0x20)..8182 (or 0x1ff6).

    - **NielsenId3Behavior** *(string) --* If set to passthrough, Nielsen inaudible tones for media
    tracking will be detected in the input audio and an equivalent ID3 tag will be inserted in the
    output.

    - **NullPacketBitrate** *(float) --* Value in bits per second of extra null packets to insert
    into the transport stream. This can be used if a downstream encryption system requires periodic
    null packets.

    - **PatInterval** *(integer) --* The number of milliseconds between instances of this table in
    the output transport stream. Valid values are 0, 10..1000.

    - **PcrControl** *(string) --* When set to pcrEveryPesPacket, a Program Clock Reference value is
    inserted for every Packetized Elementary Stream (PES) header. This parameter is effective only
    when the PCR PID is the same as the video or audio elementary stream.

    - **PcrPeriod** *(integer) --* Maximum time in milliseconds between Program Clock Reference
    (PCRs) inserted into the transport stream.

    - **PcrPid** *(string) --* Packet Identifier (PID) of the Program Clock Reference (PCR) in the
    transport stream. When no value is given, the encoder will assign the same value as the Video
    PID. Can be entered as a decimal or hexadecimal value. Valid values are 32 (or 0x20)..8182 (or
    0x1ff6).

    - **PmtInterval** *(integer) --* The number of milliseconds between instances of this table in
    the output transport stream. Valid values are 0, 10..1000.

    - **PmtPid** *(string) --* Packet Identifier (PID) for the Program Map Table (PMT) in the
    transport stream. Can be entered as a decimal or hexadecimal value. Valid values are 32 (or
    0x20)..8182 (or 0x1ff6).

    - **ProgramNum** *(integer) --* The value of the program number field in the Program Map Table.

    - **RateMode** *(string) --* When vbr, does not insert null packets into transport stream to
    fill specified bitrate. The bitrate setting acts as the maximum bitrate when vbr is set.

    - **Scte27Pids** *(string) --* Packet Identifier (PID) for input source SCTE-27 data to this
    output. Multiple values are accepted, and can be entered in ranges and/or by comma separation.
    Can be entered as decimal or hexadecimal values. Each PID specified must be in the range of 32
    (or 0x20)..8182 (or 0x1ff6).

    - **Scte35Control** *(string) --* Optionally pass SCTE-35 signals from the input source to this
    output.

    - **Scte35Pid** *(string) --* Packet Identifier (PID) of the SCTE-35 stream in the transport
    stream. Can be entered as a decimal or hexadecimal value. Valid values are 32 (or 0x20)..8182
    (or 0x1ff6).

    - **SegmentationMarkers** *(string) --* Inserts segmentation markers at each segmentationTime
    period. raiSegstart sets the Random Access Indicator bit in the adaptation field. raiAdapt sets
    the RAI bit and adds the current timecode in the private data bytes. psiSegstart inserts PAT and
    PMT tables at the start of segments. ebp adds Encoder Boundary Point information to the
    adaptation field as per OpenCable specification OC-SP-EBP-I01-130118. ebpLegacy adds Encoder
    Boundary Point information to the adaptation field using a legacy proprietary format.

    - **SegmentationStyle** *(string) --* The segmentation style parameter controls how segmentation
    markers are inserted into the transport stream. With avails, it is possible that segments may be
    truncated, which can influence where future segmentation markers are inserted. When a
    segmentation style of "resetCadence" is selected and a segment is truncated due to an avail, we
    will reset the segmentation cadence. This means the subsequent segment will have a duration of
    $segmentationTime seconds. When a segmentation style of "maintainCadence" is selected and a
    segment is truncated due to an avail, we will not reset the segmentation cadence. This means the
    subsequent segment will likely be truncated as well. However, all segments after that will have
    a duration of $segmentationTime seconds. Note that EBP lookahead is a slight exception to this
    rule.

    - **SegmentationTime** *(float) --* The length in seconds of each segment. Required unless
    markers is set to None_.

    - **TimedMetadataBehavior** *(string) --* When set to passthrough, timed metadata will be passed
    through from input to output.

    - **TimedMetadataPid** *(string) --* Packet Identifier (PID) of the timed metadata stream in the
    transport stream. Can be entered as a decimal or hexadecimal value. Valid values are 32 (or
    0x20)..8182 (or 0x1ff6).

    - **TransportStreamId** *(integer) --* The value of the transport stream ID field in the Program
    Map Table.

    - **VideoPid** *(string) --* Packet Identifier (PID) of the elementary video stream in the
    transport stream. Can be entered as a decimal or hexadecimal value. Valid values are 32 (or
    0x20)..8182 (or 0x1ff6).
    """


_ClientUpdateChannelResponseChannelEncoderSettingsOutputGroupsOutputsOutputSettingsUdpOutputSettingsContainerSettingsTypeDef = TypedDict(
    "_ClientUpdateChannelResponseChannelEncoderSettingsOutputGroupsOutputsOutputSettingsUdpOutputSettingsContainerSettingsTypeDef",
    {
        "M2tsSettings": ClientUpdateChannelResponseChannelEncoderSettingsOutputGroupsOutputsOutputSettingsUdpOutputSettingsContainerSettingsM2tsSettingsTypeDef
    },
    total=False,
)


class ClientUpdateChannelResponseChannelEncoderSettingsOutputGroupsOutputsOutputSettingsUdpOutputSettingsContainerSettingsTypeDef(
    _ClientUpdateChannelResponseChannelEncoderSettingsOutputGroupsOutputsOutputSettingsUdpOutputSettingsContainerSettingsTypeDef
):
    """
    Type definition for
    `ClientUpdateChannelResponseChannelEncoderSettingsOutputGroupsOutputsOutputSettingsUdpOutputSettings`
    `ContainerSettings`

    - **M2tsSettings** *(dict) --* M2ts Settings

      - **AbsentInputAudioBehavior** *(string) --* When set to drop, output audio streams will be
      removed from the program if the selected input audio stream is removed from the input. This
      allows the output audio configuration to dynamically change based on input configuration. If
      this is set to encodeSilence, all output audio streams will output encoded silence when not
      connected to an active input stream.

      - **Arib** *(string) --* When set to enabled, uses ARIB-compliant field muxing and removes
      video descriptor.

      - **AribCaptionsPid** *(string) --* Packet Identifier (PID) for ARIB Captions in the transport
      stream. Can be entered as a decimal or hexadecimal value. Valid values are 32 (or 0x20)..8182
      (or 0x1ff6).

      - **AribCaptionsPidControl** *(string) --* If set to auto, pid number used for ARIB Captions
      will be auto-selected from unused pids. If set to useConfigured, ARIB Captions will be on the
      configured pid number.

      - **AudioBufferModel** *(string) --* When set to dvb, uses DVB buffer model for Dolby Digital
      audio. When set to atsc, the ATSC model is used.

      - **AudioFramesPerPes** *(integer) --* The number of audio frames to insert for each PES
      packet.

      - **AudioPids** *(string) --* Packet Identifier (PID) of the elementary audio stream(s) in the
      transport stream. Multiple values are accepted, and can be entered in ranges and/or by comma
      separation. Can be entered as decimal or hexadecimal values. Each PID specified must be in the
      range of 32 (or 0x20)..8182 (or 0x1ff6).

      - **AudioStreamType** *(string) --* When set to atsc, uses stream type = 0x81 for AC3 and
      stream type = 0x87 for EAC3. When set to dvb, uses stream type = 0x06.

      - **Bitrate** *(integer) --* The output bitrate of the transport stream in bits per second.
      Setting to 0 lets the muxer automatically determine the appropriate bitrate.

      - **BufferModel** *(string) --* If set to multiplex, use multiplex buffer model for accurate
      interleaving. Setting to bufferModel to none can lead to lower latency, but low-memory devices
      may not be able to play back the stream without interruptions.

      - **CcDescriptor** *(string) --* When set to enabled, generates captionServiceDescriptor in
      PMT.

      - **DvbNitSettings** *(dict) --* Inserts DVB Network Information Table (NIT) at the specified
      table repetition interval.

        - **NetworkId** *(integer) --* The numeric value placed in the Network Information Table
        (NIT).

        - **NetworkName** *(string) --* The network name text placed in the networkNameDescriptor
        inside the Network Information Table. Maximum length is 256 characters.

        - **RepInterval** *(integer) --* The number of milliseconds between instances of this table
        in the output transport stream.

      - **DvbSdtSettings** *(dict) --* Inserts DVB Service Description Table (SDT) at the specified
      table repetition interval.

        - **OutputSdt** *(string) --* Selects method of inserting SDT information into output
        stream. The sdtFollow setting copies SDT information from input stream to output stream. The
        sdtFollowIfPresent setting copies SDT information from input stream to output stream if SDT
        information is present in the input, otherwise it will fall back on the user-defined values.
        The sdtManual setting means user will enter the SDT information. The sdtNone setting means
        output stream will not contain SDT information.

        - **RepInterval** *(integer) --* The number of milliseconds between instances of this table
        in the output transport stream.

        - **ServiceName** *(string) --* The service name placed in the serviceDescriptor in the
        Service Description Table. Maximum length is 256 characters.

        - **ServiceProviderName** *(string) --* The service provider name placed in the
        serviceDescriptor in the Service Description Table. Maximum length is 256 characters.

      - **DvbSubPids** *(string) --* Packet Identifier (PID) for input source DVB Subtitle data to
      this output. Multiple values are accepted, and can be entered in ranges and/or by comma
      separation. Can be entered as decimal or hexadecimal values. Each PID specified must be in the
      range of 32 (or 0x20)..8182 (or 0x1ff6).

      - **DvbTdtSettings** *(dict) --* Inserts DVB Time and Date Table (TDT) at the specified table
      repetition interval.

        - **RepInterval** *(integer) --* The number of milliseconds between instances of this table
        in the output transport stream.

      - **DvbTeletextPid** *(string) --* Packet Identifier (PID) for input source DVB Teletext data
      to this output. Can be entered as a decimal or hexadecimal value. Valid values are 32 (or
      0x20)..8182 (or 0x1ff6).

      - **Ebif** *(string) --* If set to passthrough, passes any EBIF data from the input source to
      this output.

      - **EbpAudioInterval** *(string) --* When videoAndFixedIntervals is selected, audio EBP
      markers will be added to partitions 3 and 4. The interval between these additional markers
      will be fixed, and will be slightly shorter than the video EBP marker interval. Only available
      when EBP Cablelabs segmentation markers are selected. Partitions 1 and 2 will always follow
      the video interval.

      - **EbpLookaheadMs** *(integer) --* When set, enforces that Encoder Boundary Points do not
      come within the specified time interval of each other by looking ahead at input video. If
      another EBP is going to come in within the specified time interval, the current EBP is not
      emitted, and the segment is "stretched" to the next marker. The lookahead value does not add
      latency to the system. The Live Event must be configured elsewhere to create sufficient
      latency to make the lookahead accurate.

      - **EbpPlacement** *(string) --* Controls placement of EBP on Audio PIDs. If set to
      videoAndAudioPids, EBP markers will be placed on the video PID and all audio PIDs. If set to
      videoPid, EBP markers will be placed on only the video PID.

      - **EcmPid** *(string) --* This field is unused and deprecated.

      - **EsRateInPes** *(string) --* Include or exclude the ES Rate field in the PES header.

      - **EtvPlatformPid** *(string) --* Packet Identifier (PID) for input source ETV Platform data
      to this output. Can be entered as a decimal or hexadecimal value. Valid values are 32 (or
      0x20)..8182 (or 0x1ff6).

      - **EtvSignalPid** *(string) --* Packet Identifier (PID) for input source ETV Signal data to
      this output. Can be entered as a decimal or hexadecimal value. Valid values are 32 (or
      0x20)..8182 (or 0x1ff6).

      - **FragmentTime** *(float) --* The length in seconds of each fragment. Only used with EBP
      markers.

      - **Klv** *(string) --* If set to passthrough, passes any KLV data from the input source to
      this output.

      - **KlvDataPids** *(string) --* Packet Identifier (PID) for input source KLV data to this
      output. Multiple values are accepted, and can be entered in ranges and/or by comma separation.
      Can be entered as decimal or hexadecimal values. Each PID specified must be in the range of 32
      (or 0x20)..8182 (or 0x1ff6).

      - **NielsenId3Behavior** *(string) --* If set to passthrough, Nielsen inaudible tones for
      media tracking will be detected in the input audio and an equivalent ID3 tag will be inserted
      in the output.

      - **NullPacketBitrate** *(float) --* Value in bits per second of extra null packets to insert
      into the transport stream. This can be used if a downstream encryption system requires
      periodic null packets.

      - **PatInterval** *(integer) --* The number of milliseconds between instances of this table in
      the output transport stream. Valid values are 0, 10..1000.

      - **PcrControl** *(string) --* When set to pcrEveryPesPacket, a Program Clock Reference value
      is inserted for every Packetized Elementary Stream (PES) header. This parameter is effective
      only when the PCR PID is the same as the video or audio elementary stream.

      - **PcrPeriod** *(integer) --* Maximum time in milliseconds between Program Clock Reference
      (PCRs) inserted into the transport stream.

      - **PcrPid** *(string) --* Packet Identifier (PID) of the Program Clock Reference (PCR) in the
      transport stream. When no value is given, the encoder will assign the same value as the Video
      PID. Can be entered as a decimal or hexadecimal value. Valid values are 32 (or 0x20)..8182 (or
      0x1ff6).

      - **PmtInterval** *(integer) --* The number of milliseconds between instances of this table in
      the output transport stream. Valid values are 0, 10..1000.

      - **PmtPid** *(string) --* Packet Identifier (PID) for the Program Map Table (PMT) in the
      transport stream. Can be entered as a decimal or hexadecimal value. Valid values are 32 (or
      0x20)..8182 (or 0x1ff6).

      - **ProgramNum** *(integer) --* The value of the program number field in the Program Map
      Table.

      - **RateMode** *(string) --* When vbr, does not insert null packets into transport stream to
      fill specified bitrate. The bitrate setting acts as the maximum bitrate when vbr is set.

      - **Scte27Pids** *(string) --* Packet Identifier (PID) for input source SCTE-27 data to this
      output. Multiple values are accepted, and can be entered in ranges and/or by comma separation.
      Can be entered as decimal or hexadecimal values. Each PID specified must be in the range of 32
      (or 0x20)..8182 (or 0x1ff6).

      - **Scte35Control** *(string) --* Optionally pass SCTE-35 signals from the input source to
      this output.

      - **Scte35Pid** *(string) --* Packet Identifier (PID) of the SCTE-35 stream in the transport
      stream. Can be entered as a decimal or hexadecimal value. Valid values are 32 (or 0x20)..8182
      (or 0x1ff6).

      - **SegmentationMarkers** *(string) --* Inserts segmentation markers at each segmentationTime
      period. raiSegstart sets the Random Access Indicator bit in the adaptation field. raiAdapt
      sets the RAI bit and adds the current timecode in the private data bytes. psiSegstart inserts
      PAT and PMT tables at the start of segments. ebp adds Encoder Boundary Point information to
      the adaptation field as per OpenCable specification OC-SP-EBP-I01-130118. ebpLegacy adds
      Encoder Boundary Point information to the adaptation field using a legacy proprietary format.

      - **SegmentationStyle** *(string) --* The segmentation style parameter controls how
      segmentation markers are inserted into the transport stream. With avails, it is possible that
      segments may be truncated, which can influence where future segmentation markers are inserted.
      When a segmentation style of "resetCadence" is selected and a segment is truncated due to an
      avail, we will reset the segmentation cadence. This means the subsequent segment will have a
      duration of $segmentationTime seconds. When a segmentation style of "maintainCadence" is
      selected and a segment is truncated due to an avail, we will not reset the segmentation
      cadence. This means the subsequent segment will likely be truncated as well. However, all
      segments after that will have a duration of $segmentationTime seconds. Note that EBP lookahead
      is a slight exception to this rule.

      - **SegmentationTime** *(float) --* The length in seconds of each segment. Required unless
      markers is set to None_.

      - **TimedMetadataBehavior** *(string) --* When set to passthrough, timed metadata will be
      passed through from input to output.

      - **TimedMetadataPid** *(string) --* Packet Identifier (PID) of the timed metadata stream in
      the transport stream. Can be entered as a decimal or hexadecimal value. Valid values are 32
      (or 0x20)..8182 (or 0x1ff6).

      - **TransportStreamId** *(integer) --* The value of the transport stream ID field in the
      Program Map Table.

      - **VideoPid** *(string) --* Packet Identifier (PID) of the elementary video stream in the
      transport stream. Can be entered as a decimal or hexadecimal value. Valid values are 32 (or
      0x20)..8182 (or 0x1ff6).
    """


_ClientUpdateChannelResponseChannelEncoderSettingsOutputGroupsOutputsOutputSettingsUdpOutputSettingsDestinationTypeDef = TypedDict(
    "_ClientUpdateChannelResponseChannelEncoderSettingsOutputGroupsOutputsOutputSettingsUdpOutputSettingsDestinationTypeDef",
    {"DestinationRefId": str},
    total=False,
)


class ClientUpdateChannelResponseChannelEncoderSettingsOutputGroupsOutputsOutputSettingsUdpOutputSettingsDestinationTypeDef(
    _ClientUpdateChannelResponseChannelEncoderSettingsOutputGroupsOutputsOutputSettingsUdpOutputSettingsDestinationTypeDef
):
    """
    Type definition for
    `ClientUpdateChannelResponseChannelEncoderSettingsOutputGroupsOutputsOutputSettingsUdpOutputSettings`
    `Destination`

    - **DestinationRefId** *(string) --* Placeholder documentation for __string
    """


_ClientUpdateChannelResponseChannelEncoderSettingsOutputGroupsOutputsOutputSettingsUdpOutputSettingsFecOutputSettingsTypeDef = TypedDict(
    "_ClientUpdateChannelResponseChannelEncoderSettingsOutputGroupsOutputsOutputSettingsUdpOutputSettingsFecOutputSettingsTypeDef",
    {"ColumnDepth": int, "IncludeFec": str, "RowLength": int},
    total=False,
)


class ClientUpdateChannelResponseChannelEncoderSettingsOutputGroupsOutputsOutputSettingsUdpOutputSettingsFecOutputSettingsTypeDef(
    _ClientUpdateChannelResponseChannelEncoderSettingsOutputGroupsOutputsOutputSettingsUdpOutputSettingsFecOutputSettingsTypeDef
):
    """
    Type definition for
    `ClientUpdateChannelResponseChannelEncoderSettingsOutputGroupsOutputsOutputSettingsUdpOutputSettings`
    `FecOutputSettings`

    - **ColumnDepth** *(integer) --* Parameter D from SMPTE 2022-1. The height of the FEC protection
    matrix. The number of transport stream packets per column error correction packet. Must be
    between 4 and 20, inclusive.

    - **IncludeFec** *(string) --* Enables column only or column and row based FEC

    - **RowLength** *(integer) --* Parameter L from SMPTE 2022-1. The width of the FEC protection
    matrix. Must be between 1 and 20, inclusive. If only Column FEC is used, then larger values
    increase robustness. If Row FEC is used, then this is the number of transport stream packets per
    row error correction packet, and the value must be between 4 and 20, inclusive, if includeFec is
    columnAndRow. If includeFec is column, this value must be 1 to 20, inclusive.
    """


_ClientUpdateChannelResponseChannelEncoderSettingsOutputGroupsOutputsOutputSettingsUdpOutputSettingsTypeDef = TypedDict(
    "_ClientUpdateChannelResponseChannelEncoderSettingsOutputGroupsOutputsOutputSettingsUdpOutputSettingsTypeDef",
    {
        "BufferMsec": int,
        "ContainerSettings": ClientUpdateChannelResponseChannelEncoderSettingsOutputGroupsOutputsOutputSettingsUdpOutputSettingsContainerSettingsTypeDef,
        "Destination": ClientUpdateChannelResponseChannelEncoderSettingsOutputGroupsOutputsOutputSettingsUdpOutputSettingsDestinationTypeDef,
        "FecOutputSettings": ClientUpdateChannelResponseChannelEncoderSettingsOutputGroupsOutputsOutputSettingsUdpOutputSettingsFecOutputSettingsTypeDef,
    },
    total=False,
)


class ClientUpdateChannelResponseChannelEncoderSettingsOutputGroupsOutputsOutputSettingsUdpOutputSettingsTypeDef(
    _ClientUpdateChannelResponseChannelEncoderSettingsOutputGroupsOutputsOutputSettingsUdpOutputSettingsTypeDef
):
    """
    Type definition for
    `ClientUpdateChannelResponseChannelEncoderSettingsOutputGroupsOutputsOutputSettings`
    `UdpOutputSettings`

    - **BufferMsec** *(integer) --* UDP output buffering in milliseconds. Larger values increase
    latency through the transcoder but simultaneously assist the transcoder in maintaining a
    constant, low-jitter UDP/RTP output while accommodating clock recovery, input switching, input
    disruptions, picture reordering, etc.

    - **ContainerSettings** *(dict) --* Udp Container Settings

      - **M2tsSettings** *(dict) --* M2ts Settings

        - **AbsentInputAudioBehavior** *(string) --* When set to drop, output audio streams will be
        removed from the program if the selected input audio stream is removed from the input. This
        allows the output audio configuration to dynamically change based on input configuration. If
        this is set to encodeSilence, all output audio streams will output encoded silence when not
        connected to an active input stream.

        - **Arib** *(string) --* When set to enabled, uses ARIB-compliant field muxing and removes
        video descriptor.

        - **AribCaptionsPid** *(string) --* Packet Identifier (PID) for ARIB Captions in the
        transport stream. Can be entered as a decimal or hexadecimal value. Valid values are 32 (or
        0x20)..8182 (or 0x1ff6).

        - **AribCaptionsPidControl** *(string) --* If set to auto, pid number used for ARIB Captions
        will be auto-selected from unused pids. If set to useConfigured, ARIB Captions will be on
        the configured pid number.

        - **AudioBufferModel** *(string) --* When set to dvb, uses DVB buffer model for Dolby
        Digital audio. When set to atsc, the ATSC model is used.

        - **AudioFramesPerPes** *(integer) --* The number of audio frames to insert for each PES
        packet.

        - **AudioPids** *(string) --* Packet Identifier (PID) of the elementary audio stream(s) in
        the transport stream. Multiple values are accepted, and can be entered in ranges and/or by
        comma separation. Can be entered as decimal or hexadecimal values. Each PID specified must
        be in the range of 32 (or 0x20)..8182 (or 0x1ff6).

        - **AudioStreamType** *(string) --* When set to atsc, uses stream type =
             0x81 for AC3 and
        stream type = 0x87 for EAC3. When set to dvb, uses stream type = 0x06.

        - **Bitrate** *(integer) --* The output bitrate of the transport stream in bits per second.
        Setting to 0 lets the muxer automatically determine the appropriate bitrate.

        - **BufferModel** *(string) --* If set to multiplex, use multiplex buffer model for accurate
        interleaving. Setting to bufferModel to none can lead to lower latency, but low-memory
        devices may not be able to play back the stream without interruptions.

        - **CcDescriptor** *(string) --* When set to enabled, generates captionServiceDescriptor in
        PMT.

        - **DvbNitSettings** *(dict) --* Inserts DVB Network Information Table (NIT) at the
        specified table repetition interval.

          - **NetworkId** *(integer) --* The numeric value placed in the Network Information Table
          (NIT).

          - **NetworkName** *(string) --* The network name text placed in the networkNameDescriptor
          inside the Network Information Table. Maximum length is 256 characters.

          - **RepInterval** *(integer) --* The number of milliseconds between instances of this
          table in the output transport stream.

        - **DvbSdtSettings** *(dict) --* Inserts DVB Service Description Table (SDT) at the
        specified table repetition interval.

          - **OutputSdt** *(string) --* Selects method of inserting SDT information into output
          stream. The sdtFollow setting copies SDT information from input stream to output stream.
          The sdtFollowIfPresent setting copies SDT information from input stream to output stream
          if SDT information is present in the input, otherwise it will fall back on the
          user-defined values. The sdtManual setting means user will enter the SDT information. The
          sdtNone setting means output stream will not contain SDT information.

          - **RepInterval** *(integer) --* The number of milliseconds between instances of this
          table in the output transport stream.

          - **ServiceName** *(string) --* The service name placed in the serviceDescriptor in the
          Service Description Table. Maximum length is 256 characters.

          - **ServiceProviderName** *(string) --* The service provider name placed in the
          serviceDescriptor in the Service Description Table. Maximum length is 256 characters.

        - **DvbSubPids** *(string) --* Packet Identifier (PID) for input source DVB Subtitle data to
        this output. Multiple values are accepted, and can be entered in ranges and/or by comma
        separation. Can be entered as decimal or hexadecimal values. Each PID specified must be in
        the range of 32 (or 0x20)..8182 (or 0x1ff6).

        - **DvbTdtSettings** *(dict) --* Inserts DVB Time and Date Table (TDT) at the specified
        table repetition interval.

          - **RepInterval** *(integer) --* The number of milliseconds between instances of this
          table in the output transport stream.

        - **DvbTeletextPid** *(string) --* Packet Identifier (PID) for input source DVB Teletext
        data to this output. Can be entered as a decimal or hexadecimal value. Valid values are 32
        (or 0x20)..8182 (or 0x1ff6).

        - **Ebif** *(string) --* If set to passthrough, passes any EBIF data from the input source
        to this output.

        - **EbpAudioInterval** *(string) --* When videoAndFixedIntervals is selected, audio EBP
        markers will be added to partitions 3 and 4. The interval between these additional markers
        will be fixed, and will be slightly shorter than the video EBP marker interval. Only
        available when EBP Cablelabs segmentation markers are selected. Partitions 1 and 2 will
        always follow the video interval.

        - **EbpLookaheadMs** *(integer) --* When set, enforces that Encoder Boundary Points do not
        come within the specified time interval of each other by looking ahead at input video. If
        another EBP is going to come in within the specified time interval, the current EBP is not
        emitted, and the segment is "stretched" to the next marker. The lookahead value does not add
        latency to the system. The Live Event must be configured elsewhere to create sufficient
        latency to make the lookahead accurate.

        - **EbpPlacement** *(string) --* Controls placement of EBP on Audio PIDs. If set to
        videoAndAudioPids, EBP markers will be placed on the video PID and all audio PIDs. If set to
        videoPid, EBP markers will be placed on only the video PID.

        - **EcmPid** *(string) --* This field is unused and deprecated.

        - **EsRateInPes** *(string) --* Include or exclude the ES Rate field in the PES header.

        - **EtvPlatformPid** *(string) --* Packet Identifier (PID) for input source ETV Platform
        data to this output. Can be entered as a decimal or hexadecimal value. Valid values are 32
        (or 0x20)..8182 (or 0x1ff6).

        - **EtvSignalPid** *(string) --* Packet Identifier (PID) for input source ETV Signal data to
        this output. Can be entered as a decimal or hexadecimal value. Valid values are 32 (or
        0x20)..8182 (or 0x1ff6).

        - **FragmentTime** *(float) --* The length in seconds of each fragment. Only used with EBP
        markers.

        - **Klv** *(string) --* If set to passthrough, passes any KLV data from the input source to
        this output.

        - **KlvDataPids** *(string) --* Packet Identifier (PID) for input source KLV data to this
        output. Multiple values are accepted, and can be entered in ranges and/or by comma
        separation. Can be entered as decimal or hexadecimal values. Each PID specified must be in
        the range of 32 (or 0x20)..8182 (or 0x1ff6).

        - **NielsenId3Behavior** *(string) --* If set to passthrough, Nielsen inaudible tones for
        media tracking will be detected in the input audio and an equivalent ID3 tag will be
        inserted in the output.

        - **NullPacketBitrate** *(float) --* Value in bits per second of extra null packets to
        insert into the transport stream. This can be used if a downstream encryption system
        requires periodic null packets.

        - **PatInterval** *(integer) --* The number of milliseconds between instances of this table
        in the output transport stream. Valid values are 0, 10..1000.

        - **PcrControl** *(string) --* When set to pcrEveryPesPacket, a Program Clock Reference
        value is inserted for every Packetized Elementary Stream (PES) header. This parameter is
        effective only when the PCR PID is the same as the video or audio elementary stream.

        - **PcrPeriod** *(integer) --* Maximum time in milliseconds between Program Clock Reference
        (PCRs) inserted into the transport stream.

        - **PcrPid** *(string) --* Packet Identifier (PID) of the Program Clock Reference (PCR) in
        the transport stream. When no value is given, the encoder will assign the same value as the
        Video PID. Can be entered as a decimal or hexadecimal value. Valid values are 32 (or
        0x20)..8182 (or 0x1ff6).

        - **PmtInterval** *(integer) --* The number of milliseconds between instances of this table
        in the output transport stream. Valid values are 0, 10..1000.

        - **PmtPid** *(string) --* Packet Identifier (PID) for the Program Map Table (PMT) in the
        transport stream. Can be entered as a decimal or hexadecimal value. Valid values are 32 (or
        0x20)..8182 (or 0x1ff6).

        - **ProgramNum** *(integer) --* The value of the program number field in the Program Map
        Table.

        - **RateMode** *(string) --* When vbr, does not insert null packets into transport stream to
        fill specified bitrate. The bitrate setting acts as the maximum bitrate when vbr is set.

        - **Scte27Pids** *(string) --* Packet Identifier (PID) for input source SCTE-27 data to this
        output. Multiple values are accepted, and can be entered in ranges and/or by comma
        separation. Can be entered as decimal or hexadecimal values. Each PID specified must be in
        the range of 32 (or 0x20)..8182 (or 0x1ff6).

        - **Scte35Control** *(string) --* Optionally pass SCTE-35 signals from the input source to
        this output.

        - **Scte35Pid** *(string) --* Packet Identifier (PID) of the SCTE-35 stream in the transport
        stream. Can be entered as a decimal or hexadecimal value. Valid values are 32 (or
        0x20)..8182 (or 0x1ff6).

        - **SegmentationMarkers** *(string) --* Inserts segmentation markers at each
        segmentationTime period. raiSegstart sets the Random Access Indicator bit in the adaptation
        field. raiAdapt sets the RAI bit and adds the current timecode in the private data bytes.
        psiSegstart inserts PAT and PMT tables at the start of segments. ebp adds Encoder Boundary
        Point information to the adaptation field as per OpenCable specification
        OC-SP-EBP-I01-130118. ebpLegacy adds Encoder Boundary Point information to the adaptation
        field using a legacy proprietary format.

        - **SegmentationStyle** *(string) --* The segmentation style parameter controls how
        segmentation markers are inserted into the transport stream. With avails, it is possible
        that segments may be truncated, which can influence where future segmentation markers are
        inserted. When a segmentation style of "resetCadence" is selected and a segment is truncated
        due to an avail, we will reset the segmentation cadence. This means the subsequent segment
        will have a duration of $segmentationTime seconds. When a segmentation style of
        "maintainCadence" is selected and a segment is truncated due to an avail, we will not reset
        the segmentation cadence. This means the subsequent segment will likely be truncated as
        well. However, all segments after that will have a duration of $segmentationTime seconds.
        Note that EBP lookahead is a slight exception to this rule.

        - **SegmentationTime** *(float) --* The length in seconds of each segment. Required unless
        markers is set to None_.

        - **TimedMetadataBehavior** *(string) --* When set to passthrough, timed metadata will be
        passed through from input to output.

        - **TimedMetadataPid** *(string) --* Packet Identifier (PID) of the timed metadata stream in
        the transport stream. Can be entered as a decimal or hexadecimal value. Valid values are 32
        (or 0x20)..8182 (or 0x1ff6).

        - **TransportStreamId** *(integer) --* The value of the transport stream ID field in the
        Program Map Table.

        - **VideoPid** *(string) --* Packet Identifier (PID) of the elementary video stream in the
        transport stream. Can be entered as a decimal or hexadecimal value. Valid values are 32 (or
        0x20)..8182 (or 0x1ff6).

    - **Destination** *(dict) --* Destination address and port number for RTP or UDP packets. Can be
    unicast or multicast RTP or UDP (eg. rtp://239.10.10.10:5001 or udp://10.100.100.100:5002).

      - **DestinationRefId** *(string) --* Placeholder documentation for __string

    - **FecOutputSettings** *(dict) --* Settings for enabling and adjusting Forward Error Correction
    on UDP outputs.

      - **ColumnDepth** *(integer) --* Parameter D from SMPTE 2022-1. The height of the FEC
      protection matrix. The number of transport stream packets per column error correction packet.
      Must be between 4 and 20, inclusive.

      - **IncludeFec** *(string) --* Enables column only or column and row based FEC

      - **RowLength** *(integer) --* Parameter L from SMPTE 2022-1. The width of the FEC protection
      matrix. Must be between 1 and 20, inclusive. If only Column FEC is used, then larger values
      increase robustness. If Row FEC is used, then this is the number of transport stream packets
      per row error correction packet, and the value must be between 4 and 20, inclusive, if
      includeFec is columnAndRow. If includeFec is column, this value must be 1 to 20, inclusive.
    """


_ClientUpdateChannelResponseChannelEncoderSettingsOutputGroupsOutputsOutputSettingsTypeDef = TypedDict(
    "_ClientUpdateChannelResponseChannelEncoderSettingsOutputGroupsOutputsOutputSettingsTypeDef",
    {
        "ArchiveOutputSettings": ClientUpdateChannelResponseChannelEncoderSettingsOutputGroupsOutputsOutputSettingsArchiveOutputSettingsTypeDef,
        "FrameCaptureOutputSettings": ClientUpdateChannelResponseChannelEncoderSettingsOutputGroupsOutputsOutputSettingsFrameCaptureOutputSettingsTypeDef,
        "HlsOutputSettings": ClientUpdateChannelResponseChannelEncoderSettingsOutputGroupsOutputsOutputSettingsHlsOutputSettingsTypeDef,
        "MediaPackageOutputSettings": Dict,
        "MsSmoothOutputSettings": ClientUpdateChannelResponseChannelEncoderSettingsOutputGroupsOutputsOutputSettingsMsSmoothOutputSettingsTypeDef,
        "MultiplexOutputSettings": ClientUpdateChannelResponseChannelEncoderSettingsOutputGroupsOutputsOutputSettingsMultiplexOutputSettingsTypeDef,
        "RtmpOutputSettings": ClientUpdateChannelResponseChannelEncoderSettingsOutputGroupsOutputsOutputSettingsRtmpOutputSettingsTypeDef,
        "UdpOutputSettings": ClientUpdateChannelResponseChannelEncoderSettingsOutputGroupsOutputsOutputSettingsUdpOutputSettingsTypeDef,
    },
    total=False,
)


class ClientUpdateChannelResponseChannelEncoderSettingsOutputGroupsOutputsOutputSettingsTypeDef(
    _ClientUpdateChannelResponseChannelEncoderSettingsOutputGroupsOutputsOutputSettingsTypeDef
):
    """
    Type definition for `ClientUpdateChannelResponseChannelEncoderSettingsOutputGroupsOutputs`
    `OutputSettings`

    - **ArchiveOutputSettings** *(dict) --* Archive Output Settings

      - **ContainerSettings** *(dict) --* Settings specific to the container type of the file.

        - **M2tsSettings** *(dict) --* M2ts Settings

          - **AbsentInputAudioBehavior** *(string) --* When set to drop, output audio streams will
          be removed from the program if the selected input audio stream is removed from the input.
          This allows the output audio configuration to dynamically change based on input
          configuration. If this is set to encodeSilence, all output audio streams will output
          encoded silence when not connected to an active input stream.

          - **Arib** *(string) --* When set to enabled, uses ARIB-compliant field muxing and removes
          video descriptor.

          - **AribCaptionsPid** *(string) --* Packet Identifier (PID) for ARIB Captions in the
          transport stream. Can be entered as a decimal or hexadecimal value. Valid values are 32
          (or 0x20)..8182 (or 0x1ff6).

          - **AribCaptionsPidControl** *(string) --* If set to auto, pid number used for ARIB
          Captions will be auto-selected from unused pids. If set to useConfigured, ARIB Captions
          will be on the configured pid number.

          - **AudioBufferModel** *(string) --* When set to dvb, uses DVB buffer model for Dolby
          Digital audio. When set to atsc, the ATSC model is used.

          - **AudioFramesPerPes** *(integer) --* The number of audio frames to insert for each PES
          packet.

          - **AudioPids** *(string) --* Packet Identifier (PID) of the elementary audio stream(s) in
          the transport stream. Multiple values are accepted, and can be entered in ranges and/or by
          comma separation. Can be entered as decimal or hexadecimal values. Each PID specified must
          be in the range of 32 (or 0x20)..8182 (or 0x1ff6).

          - **AudioStreamType** *(string) --* When set to atsc, uses stream type =
               0x81 for AC3 and
          stream type = 0x87 for EAC3. When set to dvb, uses stream type = 0x06.

          - **Bitrate** *(integer) --* The output bitrate of the transport stream in bits per
          second. Setting to 0 lets the muxer automatically determine the appropriate bitrate.

          - **BufferModel** *(string) --* If set to multiplex, use multiplex buffer model for
          accurate interleaving. Setting to bufferModel to none can lead to lower latency, but
          low-memory devices may not be able to play back the stream without interruptions.

          - **CcDescriptor** *(string) --* When set to enabled, generates captionServiceDescriptor
          in PMT.

          - **DvbNitSettings** *(dict) --* Inserts DVB Network Information Table (NIT) at the
          specified table repetition interval.

            - **NetworkId** *(integer) --* The numeric value placed in the Network Information Table
            (NIT).

            - **NetworkName** *(string) --* The network name text placed in the
            networkNameDescriptor inside the Network Information Table. Maximum length is 256
            characters.

            - **RepInterval** *(integer) --* The number of milliseconds between instances of this
            table in the output transport stream.

          - **DvbSdtSettings** *(dict) --* Inserts DVB Service Description Table (SDT) at the
          specified table repetition interval.

            - **OutputSdt** *(string) --* Selects method of inserting SDT information into output
            stream. The sdtFollow setting copies SDT information from input stream to output stream.
            The sdtFollowIfPresent setting copies SDT information from input stream to output stream
            if SDT information is present in the input, otherwise it will fall back on the
            user-defined values. The sdtManual setting means user will enter the SDT information.
            The sdtNone setting means output stream will not contain SDT information.

            - **RepInterval** *(integer) --* The number of milliseconds between instances of this
            table in the output transport stream.

            - **ServiceName** *(string) --* The service name placed in the serviceDescriptor in the
            Service Description Table. Maximum length is 256 characters.

            - **ServiceProviderName** *(string) --* The service provider name placed in the
            serviceDescriptor in the Service Description Table. Maximum length is 256 characters.

          - **DvbSubPids** *(string) --* Packet Identifier (PID) for input source DVB Subtitle data
          to this output. Multiple values are accepted, and can be entered in ranges and/or by comma
          separation. Can be entered as decimal or hexadecimal values. Each PID specified must be in
          the range of 32 (or 0x20)..8182 (or 0x1ff6).

          - **DvbTdtSettings** *(dict) --* Inserts DVB Time and Date Table (TDT) at the specified
          table repetition interval.

            - **RepInterval** *(integer) --* The number of milliseconds between instances of this
            table in the output transport stream.

          - **DvbTeletextPid** *(string) --* Packet Identifier (PID) for input source DVB Teletext
          data to this output. Can be entered as a decimal or hexadecimal value. Valid values are 32
          (or 0x20)..8182 (or 0x1ff6).

          - **Ebif** *(string) --* If set to passthrough, passes any EBIF data from the input source
          to this output.

          - **EbpAudioInterval** *(string) --* When videoAndFixedIntervals is selected, audio EBP
          markers will be added to partitions 3 and 4. The interval between these additional markers
          will be fixed, and will be slightly shorter than the video EBP marker interval. Only
          available when EBP Cablelabs segmentation markers are selected. Partitions 1 and 2 will
          always follow the video interval.

          - **EbpLookaheadMs** *(integer) --* When set, enforces that Encoder Boundary Points do not
          come within the specified time interval of each other by looking ahead at input video. If
          another EBP is going to come in within the specified time interval, the current EBP is not
          emitted, and the segment is "stretched" to the next marker. The lookahead value does not
          add latency to the system. The Live Event must be configured elsewhere to create
          sufficient latency to make the lookahead accurate.

          - **EbpPlacement** *(string) --* Controls placement of EBP on Audio PIDs. If set to
          videoAndAudioPids, EBP markers will be placed on the video PID and all audio PIDs. If set
          to videoPid, EBP markers will be placed on only the video PID.

          - **EcmPid** *(string) --* This field is unused and deprecated.

          - **EsRateInPes** *(string) --* Include or exclude the ES Rate field in the PES header.

          - **EtvPlatformPid** *(string) --* Packet Identifier (PID) for input source ETV Platform
          data to this output. Can be entered as a decimal or hexadecimal value. Valid values are 32
          (or 0x20)..8182 (or 0x1ff6).

          - **EtvSignalPid** *(string) --* Packet Identifier (PID) for input source ETV Signal data
          to this output. Can be entered as a decimal or hexadecimal value. Valid values are 32 (or
          0x20)..8182 (or 0x1ff6).

          - **FragmentTime** *(float) --* The length in seconds of each fragment. Only used with EBP
          markers.

          - **Klv** *(string) --* If set to passthrough, passes any KLV data from the input source
          to this output.

          - **KlvDataPids** *(string) --* Packet Identifier (PID) for input source KLV data to this
          output. Multiple values are accepted, and can be entered in ranges and/or by comma
          separation. Can be entered as decimal or hexadecimal values. Each PID specified must be in
          the range of 32 (or 0x20)..8182 (or 0x1ff6).

          - **NielsenId3Behavior** *(string) --* If set to passthrough, Nielsen inaudible tones for
          media tracking will be detected in the input audio and an equivalent ID3 tag will be
          inserted in the output.

          - **NullPacketBitrate** *(float) --* Value in bits per second of extra null packets to
          insert into the transport stream. This can be used if a downstream encryption system
          requires periodic null packets.

          - **PatInterval** *(integer) --* The number of milliseconds between instances of this
          table in the output transport stream. Valid values are 0, 10..1000.

          - **PcrControl** *(string) --* When set to pcrEveryPesPacket, a Program Clock Reference
          value is inserted for every Packetized Elementary Stream (PES) header. This parameter is
          effective only when the PCR PID is the same as the video or audio elementary stream.

          - **PcrPeriod** *(integer) --* Maximum time in milliseconds between Program Clock
          Reference (PCRs) inserted into the transport stream.

          - **PcrPid** *(string) --* Packet Identifier (PID) of the Program Clock Reference (PCR) in
          the transport stream. When no value is given, the encoder will assign the same value as
          the Video PID. Can be entered as a decimal or hexadecimal value. Valid values are 32 (or
          0x20)..8182 (or 0x1ff6).

          - **PmtInterval** *(integer) --* The number of milliseconds between instances of this
          table in the output transport stream. Valid values are 0, 10..1000.

          - **PmtPid** *(string) --* Packet Identifier (PID) for the Program Map Table (PMT) in the
          transport stream. Can be entered as a decimal or hexadecimal value. Valid values are 32
          (or 0x20)..8182 (or 0x1ff6).

          - **ProgramNum** *(integer) --* The value of the program number field in the Program Map
          Table.

          - **RateMode** *(string) --* When vbr, does not insert null packets into transport stream
          to fill specified bitrate. The bitrate setting acts as the maximum bitrate when vbr is
          set.

          - **Scte27Pids** *(string) --* Packet Identifier (PID) for input source SCTE-27 data to
          this output. Multiple values are accepted, and can be entered in ranges and/or by comma
          separation. Can be entered as decimal or hexadecimal values. Each PID specified must be in
          the range of 32 (or 0x20)..8182 (or 0x1ff6).

          - **Scte35Control** *(string) --* Optionally pass SCTE-35 signals from the input source to
          this output.

          - **Scte35Pid** *(string) --* Packet Identifier (PID) of the SCTE-35 stream in the
          transport stream. Can be entered as a decimal or hexadecimal value. Valid values are 32
          (or 0x20)..8182 (or 0x1ff6).

          - **SegmentationMarkers** *(string) --* Inserts segmentation markers at each
          segmentationTime period. raiSegstart sets the Random Access Indicator bit in the
          adaptation field. raiAdapt sets the RAI bit and adds the current timecode in the private
          data bytes. psiSegstart inserts PAT and PMT tables at the start of segments. ebp adds
          Encoder Boundary Point information to the adaptation field as per OpenCable specification
          OC-SP-EBP-I01-130118. ebpLegacy adds Encoder Boundary Point information to the adaptation
          field using a legacy proprietary format.

          - **SegmentationStyle** *(string) --* The segmentation style parameter controls how
          segmentation markers are inserted into the transport stream. With avails, it is possible
          that segments may be truncated, which can influence where future segmentation markers are
          inserted. When a segmentation style of "resetCadence" is selected and a segment is
          truncated due to an avail, we will reset the segmentation cadence. This means the
          subsequent segment will have a duration of $segmentationTime seconds. When a segmentation
          style of "maintainCadence" is selected and a segment is truncated due to an avail, we will
          not reset the segmentation cadence. This means the subsequent segment will likely be
          truncated as well. However, all segments after that will have a duration of
          $segmentationTime seconds. Note that EBP lookahead is a slight exception to this rule.

          - **SegmentationTime** *(float) --* The length in seconds of each segment. Required unless
          markers is set to None_.

          - **TimedMetadataBehavior** *(string) --* When set to passthrough, timed metadata will be
          passed through from input to output.

          - **TimedMetadataPid** *(string) --* Packet Identifier (PID) of the timed metadata stream
          in the transport stream. Can be entered as a decimal or hexadecimal value. Valid values
          are 32 (or 0x20)..8182 (or 0x1ff6).

          - **TransportStreamId** *(integer) --* The value of the transport stream ID field in the
          Program Map Table.

          - **VideoPid** *(string) --* Packet Identifier (PID) of the elementary video stream in the
          transport stream. Can be entered as a decimal or hexadecimal value. Valid values are 32
          (or 0x20)..8182 (or 0x1ff6).

      - **Extension** *(string) --* Output file extension. If excluded, this will be auto-selected
      from the container type.

      - **NameModifier** *(string) --* String concatenated to the end of the destination filename.
      Required for multiple outputs of the same type.

    - **FrameCaptureOutputSettings** *(dict) --* Frame Capture Output Settings

      - **NameModifier** *(string) --* Required if the output group contains more than one output.
      This modifier forms part of the output file name.

    - **HlsOutputSettings** *(dict) --* Hls Output Settings

      - **HlsSettings** *(dict) --* Settings regarding the underlying stream. These settings are
      different for audio-only outputs.

        - **AudioOnlyHlsSettings** *(dict) --* Audio Only Hls Settings

          - **AudioGroupId** *(string) --* Specifies the group to which the audio Rendition belongs.

          - **AudioOnlyImage** *(dict) --* Optional. Specifies the .jpg or .png image to use as the
          cover art for an audio-only output. We recommend a low bit-size file because the image
          increases the output audio bandwidth. The image is attached to the audio as an ID3 tag,
          frame type APIC, picture type 0x10, as per the "ID3 tag version 2.4.0 - Native Frames"
          standard.

            - **PasswordParam** *(string) --* key used to extract the password from EC2 Parameter
            store

            - **Uri** *(string) --* Uniform Resource Identifier - This should be a path to a file
            accessible to the Live system (eg. a http:// URI) depending on the output type. For
            example, a RTMP destination should have a uri simliar to: "rtmp://fmsserver/live".

            - **Username** *(string) --* Documentation update needed

          - **AudioTrackType** *(string) --* Four types of audio-only tracks are supported:
          Audio-Only Variant Stream The client can play back this audio-only stream instead of video
          in low-bandwidth scenarios. Represented as an EXT-X-STREAM-INF in the HLS manifest.
          Alternate Audio, Auto Select, Default Alternate rendition that the client should try to
          play back by default. Represented as an EXT-X-MEDIA in the HLS manifest with DEFAULT=YES,
          AUTOSELECT=
              YES Alternate Audio, Auto Select, Not Default Alternate rendition that the
          client may try to play back by default. Represented as an EXT-X-MEDIA in the HLS manifest
          with DEFAULT=NO, AUTOSELECT=
              YES Alternate Audio, not Auto Select Alternate rendition that
          the client will not try to play back by default. Represented as an EXT-X-MEDIA in the HLS
          manifest with DEFAULT=NO, AUTOSELECT=NO

        - **StandardHlsSettings** *(dict) --* Standard Hls Settings

          - **AudioRenditionSets** *(string) --* List all the audio groups that are used with the
          video output stream. Input all the audio GROUP-IDs that are associated to the video,
          separate by ','.

          - **M3u8Settings** *(dict) --* Settings information for the .m3u8 container

            - **AudioFramesPerPes** *(integer) --* The number of audio frames to insert for each PES
            packet.

            - **AudioPids** *(string) --* Packet Identifier (PID) of the elementary audio stream(s)
            in the transport stream. Multiple values are accepted, and can be entered in ranges
            and/or by comma separation. Can be entered as decimal or hexadecimal values.

            - **EcmPid** *(string) --* This parameter is unused and deprecated.

            - **NielsenId3Behavior** *(string) --* If set to passthrough, Nielsen inaudible tones
            for media tracking will be detected in the input audio and an equivalent ID3 tag will be
            inserted in the output.

            - **PatInterval** *(integer) --* The number of milliseconds between instances of this
            table in the output transport stream. A value of \\"0\\" writes out the PMT once per
            segment file.

            - **PcrControl** *(string) --* When set to pcrEveryPesPacket, a Program Clock Reference
            value is inserted for every Packetized Elementary Stream (PES) header. This parameter is
            effective only when the PCR PID is the same as the video or audio elementary stream.

            - **PcrPeriod** *(integer) --* Maximum time in milliseconds between Program Clock
            References (PCRs) inserted into the transport stream.

            - **PcrPid** *(string) --* Packet Identifier (PID) of the Program Clock Reference (PCR)
            in the transport stream. When no value is given, the encoder will assign the same value
            as the Video PID. Can be entered as a decimal or hexadecimal value.

            - **PmtInterval** *(integer) --* The number of milliseconds between instances of this
            table in the output transport stream. A value of \\"0\\" writes out the PMT once per
            segment file.

            - **PmtPid** *(string) --* Packet Identifier (PID) for the Program Map Table (PMT) in
            the transport stream. Can be entered as a decimal or hexadecimal value.

            - **ProgramNum** *(integer) --* The value of the program number field in the Program Map
            Table.

            - **Scte35Behavior** *(string) --* If set to passthrough, passes any SCTE-35 signals
            from the input source to this output.

            - **Scte35Pid** *(string) --* Packet Identifier (PID) of the SCTE-35 stream in the
            transport stream. Can be entered as a decimal or hexadecimal value.

            - **TimedMetadataBehavior** *(string) --* When set to passthrough, timed metadata is
            passed through from input to output.

            - **TimedMetadataPid** *(string) --* Packet Identifier (PID) of the timed metadata
            stream in the transport stream. Can be entered as a decimal or hexadecimal value. Valid
            values are 32 (or 0x20)..8182 (or 0x1ff6).

            - **TransportStreamId** *(integer) --* The value of the transport stream ID field in the
            Program Map Table.

            - **VideoPid** *(string) --* Packet Identifier (PID) of the elementary video stream in
            the transport stream. Can be entered as a decimal or hexadecimal value.

      - **NameModifier** *(string) --* String concatenated to the end of the destination filename.
      Accepts \\"Format Identifiers\\":#formatIdentifierParameters.

      - **SegmentModifier** *(string) --* String concatenated to end of segment filenames.

    - **MediaPackageOutputSettings** *(dict) --* Media Package Output Settings

    - **MsSmoothOutputSettings** *(dict) --* Ms Smooth Output Settings

      - **H265PackagingType** *(string) --* Only applicable when this output is referencing an H.265
      video description. Specifies whether MP4 segments should be packaged as HEV1 or HVC1.

      - **NameModifier** *(string) --* String concatenated to the end of the destination filename.
      Required for multiple outputs of the same type.

    - **MultiplexOutputSettings** *(dict) --* Multiplex Output Settings

      - **Destination** *(dict) --* Destination is a Multiplex.

        - **DestinationRefId** *(string) --* Placeholder documentation for __string

    - **RtmpOutputSettings** *(dict) --* Rtmp Output Settings

      - **CertificateMode** *(string) --* If set to verifyAuthenticity, verify the tls certificate
      chain to a trusted Certificate Authority (CA). This will cause rtmps outputs with self-signed
      certificates to fail.

      - **ConnectionRetryInterval** *(integer) --* Number of seconds to wait before retrying a
      connection to the Flash Media server if the connection is lost.

      - **Destination** *(dict) --* The RTMP endpoint excluding the stream name (eg.
      rtmp://host/appname). For connection to Akamai, a username and password must be supplied. URI
      fields accept format identifiers.

        - **DestinationRefId** *(string) --* Placeholder documentation for __string

      - **NumRetries** *(integer) --* Number of retry attempts.

    - **UdpOutputSettings** *(dict) --* Udp Output Settings

      - **BufferMsec** *(integer) --* UDP output buffering in milliseconds. Larger values increase
      latency through the transcoder but simultaneously assist the transcoder in maintaining a
      constant, low-jitter UDP/RTP output while accommodating clock recovery, input switching, input
      disruptions, picture reordering, etc.

      - **ContainerSettings** *(dict) --* Udp Container Settings

        - **M2tsSettings** *(dict) --* M2ts Settings

          - **AbsentInputAudioBehavior** *(string) --* When set to drop, output audio streams will
          be removed from the program if the selected input audio stream is removed from the input.
          This allows the output audio configuration to dynamically change based on input
          configuration. If this is set to encodeSilence, all output audio streams will output
          encoded silence when not connected to an active input stream.

          - **Arib** *(string) --* When set to enabled, uses ARIB-compliant field muxing and removes
          video descriptor.

          - **AribCaptionsPid** *(string) --* Packet Identifier (PID) for ARIB Captions in the
          transport stream. Can be entered as a decimal or hexadecimal value. Valid values are 32
          (or 0x20)..8182 (or 0x1ff6).

          - **AribCaptionsPidControl** *(string) --* If set to auto, pid number used for ARIB
          Captions will be auto-selected from unused pids. If set to useConfigured, ARIB Captions
          will be on the configured pid number.

          - **AudioBufferModel** *(string) --* When set to dvb, uses DVB buffer model for Dolby
          Digital audio. When set to atsc, the ATSC model is used.

          - **AudioFramesPerPes** *(integer) --* The number of audio frames to insert for each PES
          packet.

          - **AudioPids** *(string) --* Packet Identifier (PID) of the elementary audio stream(s) in
          the transport stream. Multiple values are accepted, and can be entered in ranges and/or by
          comma separation. Can be entered as decimal or hexadecimal values. Each PID specified must
          be in the range of 32 (or 0x20)..8182 (or 0x1ff6).

          - **AudioStreamType** *(string) --* When set to atsc, uses stream type =
               0x81 for AC3 and
          stream type = 0x87 for EAC3. When set to dvb, uses stream type = 0x06.

          - **Bitrate** *(integer) --* The output bitrate of the transport stream in bits per
          second. Setting to 0 lets the muxer automatically determine the appropriate bitrate.

          - **BufferModel** *(string) --* If set to multiplex, use multiplex buffer model for
          accurate interleaving. Setting to bufferModel to none can lead to lower latency, but
          low-memory devices may not be able to play back the stream without interruptions.

          - **CcDescriptor** *(string) --* When set to enabled, generates captionServiceDescriptor
          in PMT.

          - **DvbNitSettings** *(dict) --* Inserts DVB Network Information Table (NIT) at the
          specified table repetition interval.

            - **NetworkId** *(integer) --* The numeric value placed in the Network Information Table
            (NIT).

            - **NetworkName** *(string) --* The network name text placed in the
            networkNameDescriptor inside the Network Information Table. Maximum length is 256
            characters.

            - **RepInterval** *(integer) --* The number of milliseconds between instances of this
            table in the output transport stream.

          - **DvbSdtSettings** *(dict) --* Inserts DVB Service Description Table (SDT) at the
          specified table repetition interval.

            - **OutputSdt** *(string) --* Selects method of inserting SDT information into output
            stream. The sdtFollow setting copies SDT information from input stream to output stream.
            The sdtFollowIfPresent setting copies SDT information from input stream to output stream
            if SDT information is present in the input, otherwise it will fall back on the
            user-defined values. The sdtManual setting means user will enter the SDT information.
            The sdtNone setting means output stream will not contain SDT information.

            - **RepInterval** *(integer) --* The number of milliseconds between instances of this
            table in the output transport stream.

            - **ServiceName** *(string) --* The service name placed in the serviceDescriptor in the
            Service Description Table. Maximum length is 256 characters.

            - **ServiceProviderName** *(string) --* The service provider name placed in the
            serviceDescriptor in the Service Description Table. Maximum length is 256 characters.

          - **DvbSubPids** *(string) --* Packet Identifier (PID) for input source DVB Subtitle data
          to this output. Multiple values are accepted, and can be entered in ranges and/or by comma
          separation. Can be entered as decimal or hexadecimal values. Each PID specified must be in
          the range of 32 (or 0x20)..8182 (or 0x1ff6).

          - **DvbTdtSettings** *(dict) --* Inserts DVB Time and Date Table (TDT) at the specified
          table repetition interval.

            - **RepInterval** *(integer) --* The number of milliseconds between instances of this
            table in the output transport stream.

          - **DvbTeletextPid** *(string) --* Packet Identifier (PID) for input source DVB Teletext
          data to this output. Can be entered as a decimal or hexadecimal value. Valid values are 32
          (or 0x20)..8182 (or 0x1ff6).

          - **Ebif** *(string) --* If set to passthrough, passes any EBIF data from the input source
          to this output.

          - **EbpAudioInterval** *(string) --* When videoAndFixedIntervals is selected, audio EBP
          markers will be added to partitions 3 and 4. The interval between these additional markers
          will be fixed, and will be slightly shorter than the video EBP marker interval. Only
          available when EBP Cablelabs segmentation markers are selected. Partitions 1 and 2 will
          always follow the video interval.

          - **EbpLookaheadMs** *(integer) --* When set, enforces that Encoder Boundary Points do not
          come within the specified time interval of each other by looking ahead at input video. If
          another EBP is going to come in within the specified time interval, the current EBP is not
          emitted, and the segment is "stretched" to the next marker. The lookahead value does not
          add latency to the system. The Live Event must be configured elsewhere to create
          sufficient latency to make the lookahead accurate.

          - **EbpPlacement** *(string) --* Controls placement of EBP on Audio PIDs. If set to
          videoAndAudioPids, EBP markers will be placed on the video PID and all audio PIDs. If set
          to videoPid, EBP markers will be placed on only the video PID.

          - **EcmPid** *(string) --* This field is unused and deprecated.

          - **EsRateInPes** *(string) --* Include or exclude the ES Rate field in the PES header.

          - **EtvPlatformPid** *(string) --* Packet Identifier (PID) for input source ETV Platform
          data to this output. Can be entered as a decimal or hexadecimal value. Valid values are 32
          (or 0x20)..8182 (or 0x1ff6).

          - **EtvSignalPid** *(string) --* Packet Identifier (PID) for input source ETV Signal data
          to this output. Can be entered as a decimal or hexadecimal value. Valid values are 32 (or
          0x20)..8182 (or 0x1ff6).

          - **FragmentTime** *(float) --* The length in seconds of each fragment. Only used with EBP
          markers.

          - **Klv** *(string) --* If set to passthrough, passes any KLV data from the input source
          to this output.

          - **KlvDataPids** *(string) --* Packet Identifier (PID) for input source KLV data to this
          output. Multiple values are accepted, and can be entered in ranges and/or by comma
          separation. Can be entered as decimal or hexadecimal values. Each PID specified must be in
          the range of 32 (or 0x20)..8182 (or 0x1ff6).

          - **NielsenId3Behavior** *(string) --* If set to passthrough, Nielsen inaudible tones for
          media tracking will be detected in the input audio and an equivalent ID3 tag will be
          inserted in the output.

          - **NullPacketBitrate** *(float) --* Value in bits per second of extra null packets to
          insert into the transport stream. This can be used if a downstream encryption system
          requires periodic null packets.

          - **PatInterval** *(integer) --* The number of milliseconds between instances of this
          table in the output transport stream. Valid values are 0, 10..1000.

          - **PcrControl** *(string) --* When set to pcrEveryPesPacket, a Program Clock Reference
          value is inserted for every Packetized Elementary Stream (PES) header. This parameter is
          effective only when the PCR PID is the same as the video or audio elementary stream.

          - **PcrPeriod** *(integer) --* Maximum time in milliseconds between Program Clock
          Reference (PCRs) inserted into the transport stream.

          - **PcrPid** *(string) --* Packet Identifier (PID) of the Program Clock Reference (PCR) in
          the transport stream. When no value is given, the encoder will assign the same value as
          the Video PID. Can be entered as a decimal or hexadecimal value. Valid values are 32 (or
          0x20)..8182 (or 0x1ff6).

          - **PmtInterval** *(integer) --* The number of milliseconds between instances of this
          table in the output transport stream. Valid values are 0, 10..1000.

          - **PmtPid** *(string) --* Packet Identifier (PID) for the Program Map Table (PMT) in the
          transport stream. Can be entered as a decimal or hexadecimal value. Valid values are 32
          (or 0x20)..8182 (or 0x1ff6).

          - **ProgramNum** *(integer) --* The value of the program number field in the Program Map
          Table.

          - **RateMode** *(string) --* When vbr, does not insert null packets into transport stream
          to fill specified bitrate. The bitrate setting acts as the maximum bitrate when vbr is
          set.

          - **Scte27Pids** *(string) --* Packet Identifier (PID) for input source SCTE-27 data to
          this output. Multiple values are accepted, and can be entered in ranges and/or by comma
          separation. Can be entered as decimal or hexadecimal values. Each PID specified must be in
          the range of 32 (or 0x20)..8182 (or 0x1ff6).

          - **Scte35Control** *(string) --* Optionally pass SCTE-35 signals from the input source to
          this output.

          - **Scte35Pid** *(string) --* Packet Identifier (PID) of the SCTE-35 stream in the
          transport stream. Can be entered as a decimal or hexadecimal value. Valid values are 32
          (or 0x20)..8182 (or 0x1ff6).

          - **SegmentationMarkers** *(string) --* Inserts segmentation markers at each
          segmentationTime period. raiSegstart sets the Random Access Indicator bit in the
          adaptation field. raiAdapt sets the RAI bit and adds the current timecode in the private
          data bytes. psiSegstart inserts PAT and PMT tables at the start of segments. ebp adds
          Encoder Boundary Point information to the adaptation field as per OpenCable specification
          OC-SP-EBP-I01-130118. ebpLegacy adds Encoder Boundary Point information to the adaptation
          field using a legacy proprietary format.

          - **SegmentationStyle** *(string) --* The segmentation style parameter controls how
          segmentation markers are inserted into the transport stream. With avails, it is possible
          that segments may be truncated, which can influence where future segmentation markers are
          inserted. When a segmentation style of "resetCadence" is selected and a segment is
          truncated due to an avail, we will reset the segmentation cadence. This means the
          subsequent segment will have a duration of $segmentationTime seconds. When a segmentation
          style of "maintainCadence" is selected and a segment is truncated due to an avail, we will
          not reset the segmentation cadence. This means the subsequent segment will likely be
          truncated as well. However, all segments after that will have a duration of
          $segmentationTime seconds. Note that EBP lookahead is a slight exception to this rule.

          - **SegmentationTime** *(float) --* The length in seconds of each segment. Required unless
          markers is set to None_.

          - **TimedMetadataBehavior** *(string) --* When set to passthrough, timed metadata will be
          passed through from input to output.

          - **TimedMetadataPid** *(string) --* Packet Identifier (PID) of the timed metadata stream
          in the transport stream. Can be entered as a decimal or hexadecimal value. Valid values
          are 32 (or 0x20)..8182 (or 0x1ff6).

          - **TransportStreamId** *(integer) --* The value of the transport stream ID field in the
          Program Map Table.

          - **VideoPid** *(string) --* Packet Identifier (PID) of the elementary video stream in the
          transport stream. Can be entered as a decimal or hexadecimal value. Valid values are 32
          (or 0x20)..8182 (or 0x1ff6).

      - **Destination** *(dict) --* Destination address and port number for RTP or UDP packets. Can
      be unicast or multicast RTP or UDP (eg. rtp://239.10.10.10:5001 or udp://10.100.100.100:5002).

        - **DestinationRefId** *(string) --* Placeholder documentation for __string

      - **FecOutputSettings** *(dict) --* Settings for enabling and adjusting Forward Error
      Correction on UDP outputs.

        - **ColumnDepth** *(integer) --* Parameter D from SMPTE 2022-1. The height of the FEC
        protection matrix. The number of transport stream packets per column error correction
        packet. Must be between 4 and 20, inclusive.

        - **IncludeFec** *(string) --* Enables column only or column and row based FEC

        - **RowLength** *(integer) --* Parameter L from SMPTE 2022-1. The width of the FEC
        protection matrix. Must be between 1 and 20, inclusive. If only Column FEC is used, then
        larger values increase robustness. If Row FEC is used, then this is the number of transport
        stream packets per row error correction packet, and the value must be between 4 and 20,
        inclusive, if includeFec is columnAndRow. If includeFec is column, this value must be 1 to
        20, inclusive.
    """


_ClientUpdateChannelResponseChannelEncoderSettingsOutputGroupsOutputsTypeDef = TypedDict(
    "_ClientUpdateChannelResponseChannelEncoderSettingsOutputGroupsOutputsTypeDef",
    {
        "AudioDescriptionNames": List[str],
        "CaptionDescriptionNames": List[str],
        "OutputName": str,
        "OutputSettings": ClientUpdateChannelResponseChannelEncoderSettingsOutputGroupsOutputsOutputSettingsTypeDef,
        "VideoDescriptionName": str,
    },
    total=False,
)


class ClientUpdateChannelResponseChannelEncoderSettingsOutputGroupsOutputsTypeDef(
    _ClientUpdateChannelResponseChannelEncoderSettingsOutputGroupsOutputsTypeDef
):
    """
    Type definition for `ClientUpdateChannelResponseChannelEncoderSettingsOutputGroups` `Outputs`

    - **AudioDescriptionNames** *(list) --* The names of the AudioDescriptions used as audio sources
    for this output.

      - *(string) --* Placeholder documentation for __string

    - **CaptionDescriptionNames** *(list) --* The names of the CaptionDescriptions used as caption
    sources for this output.

      - *(string) --* Placeholder documentation for __string

    - **OutputName** *(string) --* The name used to identify an output.

    - **OutputSettings** *(dict) --* Output type-specific settings.

      - **ArchiveOutputSettings** *(dict) --* Archive Output Settings

        - **ContainerSettings** *(dict) --* Settings specific to the container type of the file.

          - **M2tsSettings** *(dict) --* M2ts Settings

            - **AbsentInputAudioBehavior** *(string) --* When set to drop, output audio streams will
            be removed from the program if the selected input audio stream is removed from the
            input. This allows the output audio configuration to dynamically change based on input
            configuration. If this is set to encodeSilence, all output audio streams will output
            encoded silence when not connected to an active input stream.

            - **Arib** *(string) --* When set to enabled, uses ARIB-compliant field muxing and
            removes video descriptor.

            - **AribCaptionsPid** *(string) --* Packet Identifier (PID) for ARIB Captions in the
            transport stream. Can be entered as a decimal or hexadecimal value. Valid values are 32
            (or 0x20)..8182 (or 0x1ff6).

            - **AribCaptionsPidControl** *(string) --* If set to auto, pid number used for ARIB
            Captions will be auto-selected from unused pids. If set to useConfigured, ARIB Captions
            will be on the configured pid number.

            - **AudioBufferModel** *(string) --* When set to dvb, uses DVB buffer model for Dolby
            Digital audio. When set to atsc, the ATSC model is used.

            - **AudioFramesPerPes** *(integer) --* The number of audio frames to insert for each PES
            packet.

            - **AudioPids** *(string) --* Packet Identifier (PID) of the elementary audio stream(s)
            in the transport stream. Multiple values are accepted, and can be entered in ranges
            and/or by comma separation. Can be entered as decimal or hexadecimal values. Each PID
            specified must be in the range of 32 (or 0x20)..8182 (or 0x1ff6).

            - **AudioStreamType** *(string) --* When set to atsc, uses stream type =
                 0x81 for AC3
            and stream type = 0x87 for EAC3. When set to dvb, uses stream type = 0x06.

            - **Bitrate** *(integer) --* The output bitrate of the transport stream in bits per
            second. Setting to 0 lets the muxer automatically determine the appropriate bitrate.

            - **BufferModel** *(string) --* If set to multiplex, use multiplex buffer model for
            accurate interleaving. Setting to bufferModel to none can lead to lower latency, but
            low-memory devices may not be able to play back the stream without interruptions.

            - **CcDescriptor** *(string) --* When set to enabled, generates captionServiceDescriptor
            in PMT.

            - **DvbNitSettings** *(dict) --* Inserts DVB Network Information Table (NIT) at the
            specified table repetition interval.

              - **NetworkId** *(integer) --* The numeric value placed in the Network Information
              Table (NIT).

              - **NetworkName** *(string) --* The network name text placed in the
              networkNameDescriptor inside the Network Information Table. Maximum length is 256
              characters.

              - **RepInterval** *(integer) --* The number of milliseconds between instances of this
              table in the output transport stream.

            - **DvbSdtSettings** *(dict) --* Inserts DVB Service Description Table (SDT) at the
            specified table repetition interval.

              - **OutputSdt** *(string) --* Selects method of inserting SDT information into output
              stream. The sdtFollow setting copies SDT information from input stream to output
              stream. The sdtFollowIfPresent setting copies SDT information from input stream to
              output stream if SDT information is present in the input, otherwise it will fall back
              on the user-defined values. The sdtManual setting means user will enter the SDT
              information. The sdtNone setting means output stream will not contain SDT information.

              - **RepInterval** *(integer) --* The number of milliseconds between instances of this
              table in the output transport stream.

              - **ServiceName** *(string) --* The service name placed in the serviceDescriptor in
              the Service Description Table. Maximum length is 256 characters.

              - **ServiceProviderName** *(string) --* The service provider name placed in the
              serviceDescriptor in the Service Description Table. Maximum length is 256 characters.

            - **DvbSubPids** *(string) --* Packet Identifier (PID) for input source DVB Subtitle
            data to this output. Multiple values are accepted, and can be entered in ranges and/or
            by comma separation. Can be entered as decimal or hexadecimal values. Each PID specified
            must be in the range of 32 (or 0x20)..8182 (or 0x1ff6).

            - **DvbTdtSettings** *(dict) --* Inserts DVB Time and Date Table (TDT) at the specified
            table repetition interval.

              - **RepInterval** *(integer) --* The number of milliseconds between instances of this
              table in the output transport stream.

            - **DvbTeletextPid** *(string) --* Packet Identifier (PID) for input source DVB Teletext
            data to this output. Can be entered as a decimal or hexadecimal value. Valid values are
            32 (or 0x20)..8182 (or 0x1ff6).

            - **Ebif** *(string) --* If set to passthrough, passes any EBIF data from the input
            source to this output.

            - **EbpAudioInterval** *(string) --* When videoAndFixedIntervals is selected, audio EBP
            markers will be added to partitions 3 and 4. The interval between these additional
            markers will be fixed, and will be slightly shorter than the video EBP marker interval.
            Only available when EBP Cablelabs segmentation markers are selected. Partitions 1 and 2
            will always follow the video interval.

            - **EbpLookaheadMs** *(integer) --* When set, enforces that Encoder Boundary Points do
            not come within the specified time interval of each other by looking ahead at input
            video. If another EBP is going to come in within the specified time interval, the
            current EBP is not emitted, and the segment is "stretched" to the next marker. The
            lookahead value does not add latency to the system. The Live Event must be configured
            elsewhere to create sufficient latency to make the lookahead accurate.

            - **EbpPlacement** *(string) --* Controls placement of EBP on Audio PIDs. If set to
            videoAndAudioPids, EBP markers will be placed on the video PID and all audio PIDs. If
            set to videoPid, EBP markers will be placed on only the video PID.

            - **EcmPid** *(string) --* This field is unused and deprecated.

            - **EsRateInPes** *(string) --* Include or exclude the ES Rate field in the PES header.

            - **EtvPlatformPid** *(string) --* Packet Identifier (PID) for input source ETV Platform
            data to this output. Can be entered as a decimal or hexadecimal value. Valid values are
            32 (or 0x20)..8182 (or 0x1ff6).

            - **EtvSignalPid** *(string) --* Packet Identifier (PID) for input source ETV Signal
            data to this output. Can be entered as a decimal or hexadecimal value. Valid values are
            32 (or 0x20)..8182 (or 0x1ff6).

            - **FragmentTime** *(float) --* The length in seconds of each fragment. Only used with
            EBP markers.

            - **Klv** *(string) --* If set to passthrough, passes any KLV data from the input source
            to this output.

            - **KlvDataPids** *(string) --* Packet Identifier (PID) for input source KLV data to
            this output. Multiple values are accepted, and can be entered in ranges and/or by comma
            separation. Can be entered as decimal or hexadecimal values. Each PID specified must be
            in the range of 32 (or 0x20)..8182 (or 0x1ff6).

            - **NielsenId3Behavior** *(string) --* If set to passthrough, Nielsen inaudible tones
            for media tracking will be detected in the input audio and an equivalent ID3 tag will be
            inserted in the output.

            - **NullPacketBitrate** *(float) --* Value in bits per second of extra null packets to
            insert into the transport stream. This can be used if a downstream encryption system
            requires periodic null packets.

            - **PatInterval** *(integer) --* The number of milliseconds between instances of this
            table in the output transport stream. Valid values are 0, 10..1000.

            - **PcrControl** *(string) --* When set to pcrEveryPesPacket, a Program Clock Reference
            value is inserted for every Packetized Elementary Stream (PES) header. This parameter is
            effective only when the PCR PID is the same as the video or audio elementary stream.

            - **PcrPeriod** *(integer) --* Maximum time in milliseconds between Program Clock
            Reference (PCRs) inserted into the transport stream.

            - **PcrPid** *(string) --* Packet Identifier (PID) of the Program Clock Reference (PCR)
            in the transport stream. When no value is given, the encoder will assign the same value
            as the Video PID. Can be entered as a decimal or hexadecimal value. Valid values are 32
            (or 0x20)..8182 (or 0x1ff6).

            - **PmtInterval** *(integer) --* The number of milliseconds between instances of this
            table in the output transport stream. Valid values are 0, 10..1000.

            - **PmtPid** *(string) --* Packet Identifier (PID) for the Program Map Table (PMT) in
            the transport stream. Can be entered as a decimal or hexadecimal value. Valid values are
            32 (or 0x20)..8182 (or 0x1ff6).

            - **ProgramNum** *(integer) --* The value of the program number field in the Program Map
            Table.

            - **RateMode** *(string) --* When vbr, does not insert null packets into transport
            stream to fill specified bitrate. The bitrate setting acts as the maximum bitrate when
            vbr is set.

            - **Scte27Pids** *(string) --* Packet Identifier (PID) for input source SCTE-27 data to
            this output. Multiple values are accepted, and can be entered in ranges and/or by comma
            separation. Can be entered as decimal or hexadecimal values. Each PID specified must be
            in the range of 32 (or 0x20)..8182 (or 0x1ff6).

            - **Scte35Control** *(string) --* Optionally pass SCTE-35 signals from the input source
            to this output.

            - **Scte35Pid** *(string) --* Packet Identifier (PID) of the SCTE-35 stream in the
            transport stream. Can be entered as a decimal or hexadecimal value. Valid values are 32
            (or 0x20)..8182 (or 0x1ff6).

            - **SegmentationMarkers** *(string) --* Inserts segmentation markers at each
            segmentationTime period. raiSegstart sets the Random Access Indicator bit in the
            adaptation field. raiAdapt sets the RAI bit and adds the current timecode in the private
            data bytes. psiSegstart inserts PAT and PMT tables at the start of segments. ebp adds
            Encoder Boundary Point information to the adaptation field as per OpenCable
            specification OC-SP-EBP-I01-130118. ebpLegacy adds Encoder Boundary Point information to
            the adaptation field using a legacy proprietary format.

            - **SegmentationStyle** *(string) --* The segmentation style parameter controls how
            segmentation markers are inserted into the transport stream. With avails, it is possible
            that segments may be truncated, which can influence where future segmentation markers
            are inserted. When a segmentation style of "resetCadence" is selected and a segment is
            truncated due to an avail, we will reset the segmentation cadence. This means the
            subsequent segment will have a duration of $segmentationTime seconds. When a
            segmentation style of "maintainCadence" is selected and a segment is truncated due to an
            avail, we will not reset the segmentation cadence. This means the subsequent segment
            will likely be truncated as well. However, all segments after that will have a duration
            of $segmentationTime seconds. Note that EBP lookahead is a slight exception to this
            rule.

            - **SegmentationTime** *(float) --* The length in seconds of each segment. Required
            unless markers is set to None_.

            - **TimedMetadataBehavior** *(string) --* When set to passthrough, timed metadata will
            be passed through from input to output.

            - **TimedMetadataPid** *(string) --* Packet Identifier (PID) of the timed metadata
            stream in the transport stream. Can be entered as a decimal or hexadecimal value. Valid
            values are 32 (or 0x20)..8182 (or 0x1ff6).

            - **TransportStreamId** *(integer) --* The value of the transport stream ID field in the
            Program Map Table.

            - **VideoPid** *(string) --* Packet Identifier (PID) of the elementary video stream in
            the transport stream. Can be entered as a decimal or hexadecimal value. Valid values are
            32 (or 0x20)..8182 (or 0x1ff6).

        - **Extension** *(string) --* Output file extension. If excluded, this will be auto-selected
        from the container type.

        - **NameModifier** *(string) --* String concatenated to the end of the destination filename.
        Required for multiple outputs of the same type.

      - **FrameCaptureOutputSettings** *(dict) --* Frame Capture Output Settings

        - **NameModifier** *(string) --* Required if the output group contains more than one output.
        This modifier forms part of the output file name.

      - **HlsOutputSettings** *(dict) --* Hls Output Settings

        - **HlsSettings** *(dict) --* Settings regarding the underlying stream. These settings are
        different for audio-only outputs.

          - **AudioOnlyHlsSettings** *(dict) --* Audio Only Hls Settings

            - **AudioGroupId** *(string) --* Specifies the group to which the audio Rendition
            belongs.

            - **AudioOnlyImage** *(dict) --* Optional. Specifies the .jpg or .png image to use as
            the cover art for an audio-only output. We recommend a low bit-size file because the
            image increases the output audio bandwidth. The image is attached to the audio as an ID3
            tag, frame type APIC, picture type 0x10, as per the "ID3 tag version 2.4.0 - Native
            Frames" standard.

              - **PasswordParam** *(string) --* key used to extract the password from EC2 Parameter
              store

              - **Uri** *(string) --* Uniform Resource Identifier - This should be a path to a file
              accessible to the Live system (eg. a http:// URI) depending on the output type. For
              example, a RTMP destination should have a uri simliar to: "rtmp://fmsserver/live".

              - **Username** *(string) --* Documentation update needed

            - **AudioTrackType** *(string) --* Four types of audio-only tracks are supported:
            Audio-Only Variant Stream The client can play back this audio-only stream instead of
            video in low-bandwidth scenarios. Represented as an EXT-X-STREAM-INF in the HLS
            manifest. Alternate Audio, Auto Select, Default Alternate rendition that the client
            should try to play back by default. Represented as an EXT-X-MEDIA in the HLS manifest
            with DEFAULT=YES, AUTOSELECT=
                YES Alternate Audio, Auto Select, Not Default Alternate
            rendition that the client may try to play back by default. Represented as an EXT-X-MEDIA
            in the HLS manifest with DEFAULT=NO, AUTOSELECT=
                YES Alternate Audio, not Auto Select
            Alternate rendition that the client will not try to play back by default. Represented as
            an EXT-X-MEDIA in the HLS manifest with DEFAULT=NO, AUTOSELECT=NO

          - **StandardHlsSettings** *(dict) --* Standard Hls Settings

            - **AudioRenditionSets** *(string) --* List all the audio groups that are used with the
            video output stream. Input all the audio GROUP-IDs that are associated to the video,
            separate by ','.

            - **M3u8Settings** *(dict) --* Settings information for the .m3u8 container

              - **AudioFramesPerPes** *(integer) --* The number of audio frames to insert for each
              PES packet.

              - **AudioPids** *(string) --* Packet Identifier (PID) of the elementary audio
              stream(s) in the transport stream. Multiple values are accepted, and can be entered in
              ranges and/or by comma separation. Can be entered as decimal or hexadecimal values.

              - **EcmPid** *(string) --* This parameter is unused and deprecated.

              - **NielsenId3Behavior** *(string) --* If set to passthrough, Nielsen inaudible tones
              for media tracking will be detected in the input audio and an equivalent ID3 tag will
              be inserted in the output.

              - **PatInterval** *(integer) --* The number of milliseconds between instances of this
              table in the output transport stream. A value of \\"0\\" writes out the PMT once per
              segment file.

              - **PcrControl** *(string) --* When set to pcrEveryPesPacket, a Program Clock
              Reference value is inserted for every Packetized Elementary Stream (PES) header. This
              parameter is effective only when the PCR PID is the same as the video or audio
              elementary stream.

              - **PcrPeriod** *(integer) --* Maximum time in milliseconds between Program Clock
              References (PCRs) inserted into the transport stream.

              - **PcrPid** *(string) --* Packet Identifier (PID) of the Program Clock Reference
              (PCR) in the transport stream. When no value is given, the encoder will assign the
              same value as the Video PID. Can be entered as a decimal or hexadecimal value.

              - **PmtInterval** *(integer) --* The number of milliseconds between instances of this
              table in the output transport stream. A value of \\"0\\" writes out the PMT once per
              segment file.

              - **PmtPid** *(string) --* Packet Identifier (PID) for the Program Map Table (PMT) in
              the transport stream. Can be entered as a decimal or hexadecimal value.

              - **ProgramNum** *(integer) --* The value of the program number field in the Program
              Map Table.

              - **Scte35Behavior** *(string) --* If set to passthrough, passes any SCTE-35 signals
              from the input source to this output.

              - **Scte35Pid** *(string) --* Packet Identifier (PID) of the SCTE-35 stream in the
              transport stream. Can be entered as a decimal or hexadecimal value.

              - **TimedMetadataBehavior** *(string) --* When set to passthrough, timed metadata is
              passed through from input to output.

              - **TimedMetadataPid** *(string) --* Packet Identifier (PID) of the timed metadata
              stream in the transport stream. Can be entered as a decimal or hexadecimal value.
              Valid values are 32 (or 0x20)..8182 (or 0x1ff6).

              - **TransportStreamId** *(integer) --* The value of the transport stream ID field in
              the Program Map Table.

              - **VideoPid** *(string) --* Packet Identifier (PID) of the elementary video stream in
              the transport stream. Can be entered as a decimal or hexadecimal value.

        - **NameModifier** *(string) --* String concatenated to the end of the destination filename.
        Accepts \\"Format Identifiers\\":#formatIdentifierParameters.

        - **SegmentModifier** *(string) --* String concatenated to end of segment filenames.

      - **MediaPackageOutputSettings** *(dict) --* Media Package Output Settings

      - **MsSmoothOutputSettings** *(dict) --* Ms Smooth Output Settings

        - **H265PackagingType** *(string) --* Only applicable when this output is referencing an
        H.265 video description. Specifies whether MP4 segments should be packaged as HEV1 or HVC1.

        - **NameModifier** *(string) --* String concatenated to the end of the destination filename.
        Required for multiple outputs of the same type.

      - **MultiplexOutputSettings** *(dict) --* Multiplex Output Settings

        - **Destination** *(dict) --* Destination is a Multiplex.

          - **DestinationRefId** *(string) --* Placeholder documentation for __string

      - **RtmpOutputSettings** *(dict) --* Rtmp Output Settings

        - **CertificateMode** *(string) --* If set to verifyAuthenticity, verify the tls certificate
        chain to a trusted Certificate Authority (CA). This will cause rtmps outputs with
        self-signed certificates to fail.

        - **ConnectionRetryInterval** *(integer) --* Number of seconds to wait before retrying a
        connection to the Flash Media server if the connection is lost.

        - **Destination** *(dict) --* The RTMP endpoint excluding the stream name (eg.
        rtmp://host/appname). For connection to Akamai, a username and password must be supplied.
        URI fields accept format identifiers.

          - **DestinationRefId** *(string) --* Placeholder documentation for __string

        - **NumRetries** *(integer) --* Number of retry attempts.

      - **UdpOutputSettings** *(dict) --* Udp Output Settings

        - **BufferMsec** *(integer) --* UDP output buffering in milliseconds. Larger values increase
        latency through the transcoder but simultaneously assist the transcoder in maintaining a
        constant, low-jitter UDP/RTP output while accommodating clock recovery, input switching,
        input disruptions, picture reordering, etc.

        - **ContainerSettings** *(dict) --* Udp Container Settings

          - **M2tsSettings** *(dict) --* M2ts Settings

            - **AbsentInputAudioBehavior** *(string) --* When set to drop, output audio streams will
            be removed from the program if the selected input audio stream is removed from the
            input. This allows the output audio configuration to dynamically change based on input
            configuration. If this is set to encodeSilence, all output audio streams will output
            encoded silence when not connected to an active input stream.

            - **Arib** *(string) --* When set to enabled, uses ARIB-compliant field muxing and
            removes video descriptor.

            - **AribCaptionsPid** *(string) --* Packet Identifier (PID) for ARIB Captions in the
            transport stream. Can be entered as a decimal or hexadecimal value. Valid values are 32
            (or 0x20)..8182 (or 0x1ff6).

            - **AribCaptionsPidControl** *(string) --* If set to auto, pid number used for ARIB
            Captions will be auto-selected from unused pids. If set to useConfigured, ARIB Captions
            will be on the configured pid number.

            - **AudioBufferModel** *(string) --* When set to dvb, uses DVB buffer model for Dolby
            Digital audio. When set to atsc, the ATSC model is used.

            - **AudioFramesPerPes** *(integer) --* The number of audio frames to insert for each PES
            packet.

            - **AudioPids** *(string) --* Packet Identifier (PID) of the elementary audio stream(s)
            in the transport stream. Multiple values are accepted, and can be entered in ranges
            and/or by comma separation. Can be entered as decimal or hexadecimal values. Each PID
            specified must be in the range of 32 (or 0x20)..8182 (or 0x1ff6).

            - **AudioStreamType** *(string) --* When set to atsc, uses stream type =
                 0x81 for AC3
            and stream type = 0x87 for EAC3. When set to dvb, uses stream type = 0x06.

            - **Bitrate** *(integer) --* The output bitrate of the transport stream in bits per
            second. Setting to 0 lets the muxer automatically determine the appropriate bitrate.

            - **BufferModel** *(string) --* If set to multiplex, use multiplex buffer model for
            accurate interleaving. Setting to bufferModel to none can lead to lower latency, but
            low-memory devices may not be able to play back the stream without interruptions.

            - **CcDescriptor** *(string) --* When set to enabled, generates captionServiceDescriptor
            in PMT.

            - **DvbNitSettings** *(dict) --* Inserts DVB Network Information Table (NIT) at the
            specified table repetition interval.

              - **NetworkId** *(integer) --* The numeric value placed in the Network Information
              Table (NIT).

              - **NetworkName** *(string) --* The network name text placed in the
              networkNameDescriptor inside the Network Information Table. Maximum length is 256
              characters.

              - **RepInterval** *(integer) --* The number of milliseconds between instances of this
              table in the output transport stream.

            - **DvbSdtSettings** *(dict) --* Inserts DVB Service Description Table (SDT) at the
            specified table repetition interval.

              - **OutputSdt** *(string) --* Selects method of inserting SDT information into output
              stream. The sdtFollow setting copies SDT information from input stream to output
              stream. The sdtFollowIfPresent setting copies SDT information from input stream to
              output stream if SDT information is present in the input, otherwise it will fall back
              on the user-defined values. The sdtManual setting means user will enter the SDT
              information. The sdtNone setting means output stream will not contain SDT information.

              - **RepInterval** *(integer) --* The number of milliseconds between instances of this
              table in the output transport stream.

              - **ServiceName** *(string) --* The service name placed in the serviceDescriptor in
              the Service Description Table. Maximum length is 256 characters.

              - **ServiceProviderName** *(string) --* The service provider name placed in the
              serviceDescriptor in the Service Description Table. Maximum length is 256 characters.

            - **DvbSubPids** *(string) --* Packet Identifier (PID) for input source DVB Subtitle
            data to this output. Multiple values are accepted, and can be entered in ranges and/or
            by comma separation. Can be entered as decimal or hexadecimal values. Each PID specified
            must be in the range of 32 (or 0x20)..8182 (or 0x1ff6).

            - **DvbTdtSettings** *(dict) --* Inserts DVB Time and Date Table (TDT) at the specified
            table repetition interval.

              - **RepInterval** *(integer) --* The number of milliseconds between instances of this
              table in the output transport stream.

            - **DvbTeletextPid** *(string) --* Packet Identifier (PID) for input source DVB Teletext
            data to this output. Can be entered as a decimal or hexadecimal value. Valid values are
            32 (or 0x20)..8182 (or 0x1ff6).

            - **Ebif** *(string) --* If set to passthrough, passes any EBIF data from the input
            source to this output.

            - **EbpAudioInterval** *(string) --* When videoAndFixedIntervals is selected, audio EBP
            markers will be added to partitions 3 and 4. The interval between these additional
            markers will be fixed, and will be slightly shorter than the video EBP marker interval.
            Only available when EBP Cablelabs segmentation markers are selected. Partitions 1 and 2
            will always follow the video interval.

            - **EbpLookaheadMs** *(integer) --* When set, enforces that Encoder Boundary Points do
            not come within the specified time interval of each other by looking ahead at input
            video. If another EBP is going to come in within the specified time interval, the
            current EBP is not emitted, and the segment is "stretched" to the next marker. The
            lookahead value does not add latency to the system. The Live Event must be configured
            elsewhere to create sufficient latency to make the lookahead accurate.

            - **EbpPlacement** *(string) --* Controls placement of EBP on Audio PIDs. If set to
            videoAndAudioPids, EBP markers will be placed on the video PID and all audio PIDs. If
            set to videoPid, EBP markers will be placed on only the video PID.

            - **EcmPid** *(string) --* This field is unused and deprecated.

            - **EsRateInPes** *(string) --* Include or exclude the ES Rate field in the PES header.

            - **EtvPlatformPid** *(string) --* Packet Identifier (PID) for input source ETV Platform
            data to this output. Can be entered as a decimal or hexadecimal value. Valid values are
            32 (or 0x20)..8182 (or 0x1ff6).

            - **EtvSignalPid** *(string) --* Packet Identifier (PID) for input source ETV Signal
            data to this output. Can be entered as a decimal or hexadecimal value. Valid values are
            32 (or 0x20)..8182 (or 0x1ff6).

            - **FragmentTime** *(float) --* The length in seconds of each fragment. Only used with
            EBP markers.

            - **Klv** *(string) --* If set to passthrough, passes any KLV data from the input source
            to this output.

            - **KlvDataPids** *(string) --* Packet Identifier (PID) for input source KLV data to
            this output. Multiple values are accepted, and can be entered in ranges and/or by comma
            separation. Can be entered as decimal or hexadecimal values. Each PID specified must be
            in the range of 32 (or 0x20)..8182 (or 0x1ff6).

            - **NielsenId3Behavior** *(string) --* If set to passthrough, Nielsen inaudible tones
            for media tracking will be detected in the input audio and an equivalent ID3 tag will be
            inserted in the output.

            - **NullPacketBitrate** *(float) --* Value in bits per second of extra null packets to
            insert into the transport stream. This can be used if a downstream encryption system
            requires periodic null packets.

            - **PatInterval** *(integer) --* The number of milliseconds between instances of this
            table in the output transport stream. Valid values are 0, 10..1000.

            - **PcrControl** *(string) --* When set to pcrEveryPesPacket, a Program Clock Reference
            value is inserted for every Packetized Elementary Stream (PES) header. This parameter is
            effective only when the PCR PID is the same as the video or audio elementary stream.

            - **PcrPeriod** *(integer) --* Maximum time in milliseconds between Program Clock
            Reference (PCRs) inserted into the transport stream.

            - **PcrPid** *(string) --* Packet Identifier (PID) of the Program Clock Reference (PCR)
            in the transport stream. When no value is given, the encoder will assign the same value
            as the Video PID. Can be entered as a decimal or hexadecimal value. Valid values are 32
            (or 0x20)..8182 (or 0x1ff6).

            - **PmtInterval** *(integer) --* The number of milliseconds between instances of this
            table in the output transport stream. Valid values are 0, 10..1000.

            - **PmtPid** *(string) --* Packet Identifier (PID) for the Program Map Table (PMT) in
            the transport stream. Can be entered as a decimal or hexadecimal value. Valid values are
            32 (or 0x20)..8182 (or 0x1ff6).

            - **ProgramNum** *(integer) --* The value of the program number field in the Program Map
            Table.

            - **RateMode** *(string) --* When vbr, does not insert null packets into transport
            stream to fill specified bitrate. The bitrate setting acts as the maximum bitrate when
            vbr is set.

            - **Scte27Pids** *(string) --* Packet Identifier (PID) for input source SCTE-27 data to
            this output. Multiple values are accepted, and can be entered in ranges and/or by comma
            separation. Can be entered as decimal or hexadecimal values. Each PID specified must be
            in the range of 32 (or 0x20)..8182 (or 0x1ff6).

            - **Scte35Control** *(string) --* Optionally pass SCTE-35 signals from the input source
            to this output.

            - **Scte35Pid** *(string) --* Packet Identifier (PID) of the SCTE-35 stream in the
            transport stream. Can be entered as a decimal or hexadecimal value. Valid values are 32
            (or 0x20)..8182 (or 0x1ff6).

            - **SegmentationMarkers** *(string) --* Inserts segmentation markers at each
            segmentationTime period. raiSegstart sets the Random Access Indicator bit in the
            adaptation field. raiAdapt sets the RAI bit and adds the current timecode in the private
            data bytes. psiSegstart inserts PAT and PMT tables at the start of segments. ebp adds
            Encoder Boundary Point information to the adaptation field as per OpenCable
            specification OC-SP-EBP-I01-130118. ebpLegacy adds Encoder Boundary Point information to
            the adaptation field using a legacy proprietary format.

            - **SegmentationStyle** *(string) --* The segmentation style parameter controls how
            segmentation markers are inserted into the transport stream. With avails, it is possible
            that segments may be truncated, which can influence where future segmentation markers
            are inserted. When a segmentation style of "resetCadence" is selected and a segment is
            truncated due to an avail, we will reset the segmentation cadence. This means the
            subsequent segment will have a duration of $segmentationTime seconds. When a
            segmentation style of "maintainCadence" is selected and a segment is truncated due to an
            avail, we will not reset the segmentation cadence. This means the subsequent segment
            will likely be truncated as well. However, all segments after that will have a duration
            of $segmentationTime seconds. Note that EBP lookahead is a slight exception to this
            rule.

            - **SegmentationTime** *(float) --* The length in seconds of each segment. Required
            unless markers is set to None_.

            - **TimedMetadataBehavior** *(string) --* When set to passthrough, timed metadata will
            be passed through from input to output.

            - **TimedMetadataPid** *(string) --* Packet Identifier (PID) of the timed metadata
            stream in the transport stream. Can be entered as a decimal or hexadecimal value. Valid
            values are 32 (or 0x20)..8182 (or 0x1ff6).

            - **TransportStreamId** *(integer) --* The value of the transport stream ID field in the
            Program Map Table.

            - **VideoPid** *(string) --* Packet Identifier (PID) of the elementary video stream in
            the transport stream. Can be entered as a decimal or hexadecimal value. Valid values are
            32 (or 0x20)..8182 (or 0x1ff6).

        - **Destination** *(dict) --* Destination address and port number for RTP or UDP packets.
        Can be unicast or multicast RTP or UDP (eg. rtp://239.10.10.10:5001 or
        udp://10.100.100.100:5002).

          - **DestinationRefId** *(string) --* Placeholder documentation for __string

        - **FecOutputSettings** *(dict) --* Settings for enabling and adjusting Forward Error
        Correction on UDP outputs.

          - **ColumnDepth** *(integer) --* Parameter D from SMPTE 2022-1. The height of the FEC
          protection matrix. The number of transport stream packets per column error correction
          packet. Must be between 4 and 20, inclusive.

          - **IncludeFec** *(string) --* Enables column only or column and row based FEC

          - **RowLength** *(integer) --* Parameter L from SMPTE 2022-1. The width of the FEC
          protection matrix. Must be between 1 and 20, inclusive. If only Column FEC is used, then
          larger values increase robustness. If Row FEC is used, then this is the number of
          transport stream packets per row error correction packet, and the value must be between 4
          and 20, inclusive, if includeFec is columnAndRow. If includeFec is column, this value must
          be 1 to 20, inclusive.

    - **VideoDescriptionName** *(string) --* The name of the VideoDescription used as the source for
    this output.
    """


_ClientUpdateChannelResponseChannelEncoderSettingsOutputGroupsTypeDef = TypedDict(
    "_ClientUpdateChannelResponseChannelEncoderSettingsOutputGroupsTypeDef",
    {
        "Name": str,
        "OutputGroupSettings": ClientUpdateChannelResponseChannelEncoderSettingsOutputGroupsOutputGroupSettingsTypeDef,
        "Outputs": List[
            ClientUpdateChannelResponseChannelEncoderSettingsOutputGroupsOutputsTypeDef
        ],
    },
    total=False,
)


class ClientUpdateChannelResponseChannelEncoderSettingsOutputGroupsTypeDef(
    _ClientUpdateChannelResponseChannelEncoderSettingsOutputGroupsTypeDef
):
    """
    Type definition for `ClientUpdateChannelResponseChannelEncoderSettings` `OutputGroups`

    - **Name** *(string) --* Custom output group name optionally defined by the user. Only letters,
    numbers, and the underscore character allowed; only 32 characters allowed.

    - **OutputGroupSettings** *(dict) --* Settings associated with the output group.

      - **ArchiveGroupSettings** *(dict) --* Archive Group Settings

        - **Destination** *(dict) --* A directory and base filename where archive files should be
        written.

          - **DestinationRefId** *(string) --* Placeholder documentation for __string

        - **RolloverInterval** *(integer) --* Number of seconds to write to archive file before
        closing and starting a new one.

      - **FrameCaptureGroupSettings** *(dict) --* Frame Capture Group Settings

        - **Destination** *(dict) --* The destination for the frame capture files. Either the URI
        for an Amazon S3 bucket and object, plus a file name prefix (for example,
        s3ssl://sportsDelivery/highlights/20180820/curling_) or the URI for a MediaStore container,
        plus a file name prefix (for example, mediastoressl://sportsDelivery/20180820/curling_). The
        final file names consist of the prefix from the destination field (for example, "curling_")
        + name modifier + the counter (5 digits, starting from 00001) + extension (which is always
        .jpg). For example, curlingLow.00001.jpg

          - **DestinationRefId** *(string) --* Placeholder documentation for __string

      - **HlsGroupSettings** *(dict) --* Hls Group Settings

        - **AdMarkers** *(list) --* Choose one or more ad marker types to pass SCTE35 signals
        through to this group of Apple HLS outputs.

          - *(string) --* Hls Ad Markers

        - **BaseUrlContent** *(string) --* A partial URI prefix that will be prepended to each
        output in the media .m3u8 file. Can be used if base manifest is delivered from a different
        URL than the main .m3u8 file.

        - **BaseUrlManifest** *(string) --* A partial URI prefix that will be prepended to each
        output in the media .m3u8 file. Can be used if base manifest is delivered from a different
        URL than the main .m3u8 file.

        - **CaptionLanguageMappings** *(list) --* Mapping of up to 4 caption channels to caption
        languages. Is only meaningful if captionLanguageSetting is set to "insert".

          - *(dict) --* Maps a caption channel to an ISO 693-2 language code
          (http://www.loc.gov/standards/iso639-2), with an optional description.

            - **CaptionChannel** *(integer) --* The closed caption channel being described by this
            CaptionLanguageMapping. Each channel mapping must have a unique channel number (maximum
            of 4)

            - **LanguageCode** *(string) --* Three character ISO 639-2 language code (see
            http://www.loc.gov/standards/iso639-2)

            - **LanguageDescription** *(string) --* Textual description of language

        - **CaptionLanguageSetting** *(string) --* Applies only to 608 Embedded output captions.
        insert: Include CLOSED-CAPTIONS lines in the manifest. Specify at least one language in the
        CC1 Language Code field. One CLOSED-CAPTION line is added for each Language Code you
        specify. Make sure to specify the languages in the order in which they appear in the
        original source (if the source is embedded format) or the order of the caption selectors (if
        the source is other than embedded). Otherwise, languages in the manifest will not match up
        properly with the output captions. none: Include CLOSED-CAPTIONS=
            NONE line in the manifest.
        omit: Omit any CLOSED-CAPTIONS line from the manifest.

        - **ClientCache** *(string) --* When set to "disabled", sets the #EXT-X-ALLOW-CACHE:no tag
        in the manifest, which prevents clients from saving media segments for later replay.

        - **CodecSpecification** *(string) --* Specification to use (RFC-6381 or the default
        RFC-4281) during m3u8 playlist generation.

        - **ConstantIv** *(string) --* For use with encryptionType. This is a 128-bit, 16-byte hex
        value represented by a 32-character text string. If ivSource is set to "explicit" then this
        parameter is required and is used as the IV for encryption.

        - **Destination** *(dict) --* A directory or HTTP destination for the HLS segments, manifest
        files, and encryption keys (if enabled).

          - **DestinationRefId** *(string) --* Placeholder documentation for __string

        - **DirectoryStructure** *(string) --* Place segments in subdirectories.

        - **EncryptionType** *(string) --* Encrypts the segments with the given encryption scheme.
        Exclude this parameter if no encryption is desired.

        - **HlsCdnSettings** *(dict) --* Parameters that control interactions with the CDN.

          - **HlsAkamaiSettings** *(dict) --* Hls Akamai Settings

            - **ConnectionRetryInterval** *(integer) --* Number of seconds to wait before retrying
            connection to the CDN if the connection is lost.

            - **FilecacheDuration** *(integer) --* Size in seconds of file cache for streaming
            outputs.

            - **HttpTransferMode** *(string) --* Specify whether or not to use chunked transfer
            encoding to Akamai. User should contact Akamai to enable this feature.

            - **NumRetries** *(integer) --* Number of retry attempts that will be made before the
            Live Event is put into an error state.

            - **RestartDelay** *(integer) --* If a streaming output fails, number of seconds to wait
            until a restart is initiated. A value of 0 means never restart.

            - **Salt** *(string) --* Salt for authenticated Akamai.

            - **Token** *(string) --* Token parameter for authenticated akamai. If not specified,
            _gda_ is used.

          - **HlsBasicPutSettings** *(dict) --* Hls Basic Put Settings

            - **ConnectionRetryInterval** *(integer) --* Number of seconds to wait before retrying
            connection to the CDN if the connection is lost.

            - **FilecacheDuration** *(integer) --* Size in seconds of file cache for streaming
            outputs.

            - **NumRetries** *(integer) --* Number of retry attempts that will be made before the
            Live Event is put into an error state.

            - **RestartDelay** *(integer) --* If a streaming output fails, number of seconds to wait
            until a restart is initiated. A value of 0 means never restart.

          - **HlsMediaStoreSettings** *(dict) --* Hls Media Store Settings

            - **ConnectionRetryInterval** *(integer) --* Number of seconds to wait before retrying
            connection to the CDN if the connection is lost.

            - **FilecacheDuration** *(integer) --* Size in seconds of file cache for streaming
            outputs.

            - **MediaStoreStorageClass** *(string) --* When set to temporal, output files are stored
            in non-persistent memory for faster reading and writing.

            - **NumRetries** *(integer) --* Number of retry attempts that will be made before the
            Live Event is put into an error state.

            - **RestartDelay** *(integer) --* If a streaming output fails, number of seconds to wait
            until a restart is initiated. A value of 0 means never restart.

          - **HlsWebdavSettings** *(dict) --* Hls Webdav Settings

            - **ConnectionRetryInterval** *(integer) --* Number of seconds to wait before retrying
            connection to the CDN if the connection is lost.

            - **FilecacheDuration** *(integer) --* Size in seconds of file cache for streaming
            outputs.

            - **HttpTransferMode** *(string) --* Specify whether or not to use chunked transfer
            encoding to WebDAV.

            - **NumRetries** *(integer) --* Number of retry attempts that will be made before the
            Live Event is put into an error state.

            - **RestartDelay** *(integer) --* If a streaming output fails, number of seconds to wait
            until a restart is initiated. A value of 0 means never restart.

        - **IFrameOnlyPlaylists** *(string) --* DISABLED: Do not create an I-frame-only manifest,
        but do create the master and media manifests (according to the Output Selection field).
        STANDARD: Create an I-frame-only manifest for each output that contains video, as well as
        the other manifests (according to the Output Selection field). The I-frame manifest contains
        a #EXT-X-I-FRAMES-ONLY tag to indicate it is I-frame only, and one or more #EXT-X-BYTERANGE
        entries identifying the I-frame position. For example, #EXT-X-BYTERANGE:160364@1461888"

        - **IndexNSegments** *(integer) --* Applies only if Mode field is LIVE. Specifies the
        maximum number of segments in the media manifest file. After this maximum, older segments
        are removed from the media manifest. This number must be less than or equal to the Keep
        Segments field.

        - **InputLossAction** *(string) --* Parameter that control output group behavior on input
        loss.

        - **IvInManifest** *(string) --* For use with encryptionType. The IV (Initialization Vector)
        is a 128-bit number used in conjunction with the key for encrypting blocks. If set to
        "include", IV is listed in the manifest, otherwise the IV is not in the manifest.

        - **IvSource** *(string) --* For use with encryptionType. The IV (Initialization Vector) is
        a 128-bit number used in conjunction with the key for encrypting blocks. If this setting is
        "followsSegmentNumber", it will cause the IV to change every segment (to match the segment
        number). If this is set to "explicit", you must enter a constantIv value.

        - **KeepSegments** *(integer) --* Applies only if Mode field is LIVE. Specifies the number
        of media segments (.ts files) to retain in the destination directory.

        - **KeyFormat** *(string) --* The value specifies how the key is represented in the resource
        identified by the URI. If parameter is absent, an implicit value of "identity" is used. A
        reverse DNS string can also be given.

        - **KeyFormatVersions** *(string) --* Either a single positive integer version value or a
        slash delimited list of version values (1/2/3).

        - **KeyProviderSettings** *(dict) --* The key provider settings.

          - **StaticKeySettings** *(dict) --* Static Key Settings

            - **KeyProviderServer** *(dict) --* The URL of the license server used for protecting
            content.

              - **PasswordParam** *(string) --* key used to extract the password from EC2 Parameter
              store

              - **Uri** *(string) --* Uniform Resource Identifier - This should be a path to a file
              accessible to the Live system (eg. a http:// URI) depending on the output type. For
              example, a RTMP destination should have a uri simliar to: "rtmp://fmsserver/live".

              - **Username** *(string) --* Documentation update needed

            - **StaticKeyValue** *(string) --* Static key value as a 32 character hexadecimal
            string.

        - **ManifestCompression** *(string) --* When set to gzip, compresses HLS playlist.

        - **ManifestDurationFormat** *(string) --* Indicates whether the output manifest should use
        floating point or integer values for segment duration.

        - **MinSegmentLength** *(integer) --* When set, minimumSegmentLength is enforced by looking
        ahead and back within the specified range for a nearby avail and extending the segment size
        if needed.

        - **Mode** *(string) --* If "vod", all segments are indexed and kept permanently in the
        destination and manifest. If "live", only the number segments specified in keepSegments and
        indexNSegments are kept; newer segments replace older segments, which may prevent players
        from rewinding all the way to the beginning of the event. VOD mode uses HLS
        EXT-X-PLAYLIST-TYPE of EVENT while the channel is running, converting it to a "VOD" type
        manifest on completion of the stream.

        - **OutputSelection** *(string) --* MANIFESTSANDSEGMENTS: Generates manifests (master
        manifest, if applicable, and media manifests) for this output group. SEGMENTSONLY: Does not
        generate any manifests for this output group.

        - **ProgramDateTime** *(string) --* Includes or excludes EXT-X-PROGRAM-DATE-TIME tag in
        .m3u8 manifest files. The value is calculated as follows: either the program date and time
        are initialized using the input timecode source, or the time is initialized using the input
        timecode source and the date is initialized using the timestampOffset.

        - **ProgramDateTimePeriod** *(integer) --* Period of insertion of EXT-X-PROGRAM-DATE-TIME
        entry, in seconds.

        - **RedundantManifest** *(string) --* ENABLED: The master manifest (.m3u8 file) for each
        pipeline includes information about both pipelines: first its own media files, then the
        media files of the other pipeline. This feature allows playout device that support stale
        manifest detection to switch from one manifest to the other, when the current manifest seems
        to be stale. There are still two destinations and two master manifests, but both master
        manifests reference the media files from both pipelines. DISABLED: The master manifest
        (.m3u8 file) for each pipeline includes information about its own pipeline only. For an HLS
        output group with MediaPackage as the destination, the DISABLED behavior is always followed.
        MediaPackage regenerates the manifests it serves to players so a redundant manifest from
        MediaLive is irrelevant.

        - **SegmentLength** *(integer) --* Length of MPEG-2 Transport Stream segments to create (in
        seconds). Note that segments will end on the next keyframe after this number of seconds, so
        actual segment length may be longer.

        - **SegmentationMode** *(string) --* useInputSegmentation has been deprecated. The
        configured segment size is always used.

        - **SegmentsPerSubdirectory** *(integer) --* Number of segments to write to a subdirectory
        before starting a new one. directoryStructure must be subdirectoryPerStream for this setting
        to have an effect.

        - **StreamInfResolution** *(string) --* Include or exclude RESOLUTION attribute for video in
        EXT-X-STREAM-INF tag of variant manifest.

        - **TimedMetadataId3Frame** *(string) --* Indicates ID3 frame that has the timecode.

        - **TimedMetadataId3Period** *(integer) --* Timed Metadata interval in seconds.

        - **TimestampDeltaMilliseconds** *(integer) --* Provides an extra millisecond delta offset
        to fine tune the timestamps.

        - **TsFileMode** *(string) --* SEGMENTEDFILES: Emit the program as segments - multiple .ts
        media files. SINGLEFILE: Applies only if Mode field is VOD. Emit the program as a single .ts
        media file. The media manifest includes #EXT-X-BYTERANGE tags to index segments for
        playback. A typical use for this value is when sending the output to AWS Elemental
        MediaConvert, which can accept only a single media file. Playback while the channel is
        running is not guaranteed due to HTTP server caching.

      - **MediaPackageGroupSettings** *(dict) --* Media Package Group Settings

        - **Destination** *(dict) --* MediaPackage channel destination.

          - **DestinationRefId** *(string) --* Placeholder documentation for __string

      - **MsSmoothGroupSettings** *(dict) --* Ms Smooth Group Settings

        - **AcquisitionPointId** *(string) --* The value of the "Acquisition Point Identity" element
        used in each message placed in the sparse track. Only enabled if sparseTrackType is not
        "none".

        - **AudioOnlyTimecodeControl** *(string) --* If set to passthrough for an audio-only MS
        Smooth output, the fragment absolute time will be set to the current timecode. This option
        does not write timecodes to the audio elementary stream.

        - **CertificateMode** *(string) --* If set to verifyAuthenticity, verify the https
        certificate chain to a trusted Certificate Authority (CA). This will cause https outputs to
        self-signed certificates to fail.

        - **ConnectionRetryInterval** *(integer) --* Number of seconds to wait before retrying
        connection to the IIS server if the connection is lost. Content will be cached during this
        time and the cache will be be delivered to the IIS server once the connection is
        re-established.

        - **Destination** *(dict) --* Smooth Streaming publish point on an IIS server. Elemental
        Live acts as a "Push" encoder to IIS.

          - **DestinationRefId** *(string) --* Placeholder documentation for __string

        - **EventId** *(string) --* MS Smooth event ID to be sent to the IIS server. Should only be
        specified if eventIdMode is set to useConfigured.

        - **EventIdMode** *(string) --* Specifies whether or not to send an event ID to the IIS
        server. If no event ID is sent and the same Live Event is used without changing the
        publishing point, clients might see cached video from the previous run. Options: -
        "useConfigured" - use the value provided in eventId - "useTimestamp" - generate and send an
        event ID based on the current timestamp - "noEventId" - do not send an event ID to the IIS
        server.

        - **EventStopBehavior** *(string) --* When set to sendEos, send EOS signal to IIS server
        when stopping the event

        - **FilecacheDuration** *(integer) --* Size in seconds of file cache for streaming outputs.

        - **FragmentLength** *(integer) --* Length of mp4 fragments to generate (in seconds).
        Fragment length must be compatible with GOP size and framerate.

        - **InputLossAction** *(string) --* Parameter that control output group behavior on input
        loss.

        - **NumRetries** *(integer) --* Number of retry attempts.

        - **RestartDelay** *(integer) --* Number of seconds before initiating a restart due to
        output failure, due to exhausting the numRetries on one segment, or exceeding
        filecacheDuration.

        - **SegmentationMode** *(string) --* useInputSegmentation has been deprecated. The
        configured segment size is always used.

        - **SendDelayMs** *(integer) --* Number of milliseconds to delay the output from the second
        pipeline.

        - **SparseTrackType** *(string) --* If set to scte35, use incoming SCTE-35 messages to
        generate a sparse track in this group of MS-Smooth outputs.

        - **StreamManifestBehavior** *(string) --* When set to send, send stream manifest so
        publishing point doesn't start until all streams start.

        - **TimestampOffset** *(string) --* Timestamp offset for the event. Only used if
        timestampOffsetMode is set to useConfiguredOffset.

        - **TimestampOffsetMode** *(string) --* Type of timestamp date offset to use. -
        useEventStartDate: Use the date the event was started as the offset - useConfiguredOffset:
        Use an explicitly configured date as the offset

      - **MultiplexGroupSettings** *(dict) --* Multiplex Group Settings

      - **RtmpGroupSettings** *(dict) --* Rtmp Group Settings

        - **AuthenticationScheme** *(string) --* Authentication scheme to use when connecting with
        CDN

        - **CacheFullBehavior** *(string) --* Controls behavior when content cache fills up. If
        remote origin server stalls the RTMP connection and does not accept content fast enough the
        'Media Cache' will fill up. When the cache reaches the duration specified by cacheLength the
        cache will stop accepting new content. If set to disconnectImmediately, the RTMP output will
        force a disconnect. Clear the media cache, and reconnect after restartDelay seconds. If set
        to waitForServer, the RTMP output will wait up to 5 minutes to allow the origin server to
        begin accepting data again.

        - **CacheLength** *(integer) --* Cache length, in seconds, is used to calculate buffer size.

        - **CaptionData** *(string) --* Controls the types of data that passes to onCaptionInfo
        outputs. If set to 'all' then 608 and 708 carried DTVCC data will be passed. If set to
        'field1AndField2608' then DTVCC data will be stripped out, but 608 data from both fields
        will be passed. If set to 'field1608' then only the data carried in 608 from field 1 video
        will be passed.

        - **InputLossAction** *(string) --* Controls the behavior of this RTMP group if input
        becomes unavailable. - emitOutput: Emit a slate until input returns. - pauseOutput: Stop
        transmitting data until input returns. This does not close the underlying RTMP connection.

        - **RestartDelay** *(integer) --* If a streaming output fails, number of seconds to wait
        until a restart is initiated. A value of 0 means never restart.

      - **UdpGroupSettings** *(dict) --* Udp Group Settings

        - **InputLossAction** *(string) --* Specifies behavior of last resort when input video is
        lost, and no more backup inputs are available. When dropTs is selected the entire transport
        stream will stop being emitted. When dropProgram is selected the program can be dropped from
        the transport stream (and replaced with null packets to meet the TS bitrate requirement).
        Or, when emitProgram is chosen the transport stream will continue to be produced normally
        with repeat frames, black frames, or slate frames substituted for the absent input video.

        - **TimedMetadataId3Frame** *(string) --* Indicates ID3 frame that has the timecode.

        - **TimedMetadataId3Period** *(integer) --* Timed Metadata interval in seconds.

    - **Outputs** *(list) --* Placeholder documentation for __listOfOutput

      - *(dict) --* Output settings. There can be multiple outputs within a group.

        - **AudioDescriptionNames** *(list) --* The names of the AudioDescriptions used as audio
        sources for this output.

          - *(string) --* Placeholder documentation for __string

        - **CaptionDescriptionNames** *(list) --* The names of the CaptionDescriptions used as
        caption sources for this output.

          - *(string) --* Placeholder documentation for __string

        - **OutputName** *(string) --* The name used to identify an output.

        - **OutputSettings** *(dict) --* Output type-specific settings.

          - **ArchiveOutputSettings** *(dict) --* Archive Output Settings

            - **ContainerSettings** *(dict) --* Settings specific to the container type of the file.

              - **M2tsSettings** *(dict) --* M2ts Settings

                - **AbsentInputAudioBehavior** *(string) --* When set to drop, output audio streams
                will be removed from the program if the selected input audio stream is removed from
                the input. This allows the output audio configuration to dynamically change based on
                input configuration. If this is set to encodeSilence, all output audio streams will
                output encoded silence when not connected to an active input stream.

                - **Arib** *(string) --* When set to enabled, uses ARIB-compliant field muxing and
                removes video descriptor.

                - **AribCaptionsPid** *(string) --* Packet Identifier (PID) for ARIB Captions in the
                transport stream. Can be entered as a decimal or hexadecimal value. Valid values are
                32 (or 0x20)..8182 (or 0x1ff6).

                - **AribCaptionsPidControl** *(string) --* If set to auto, pid number used for ARIB
                Captions will be auto-selected from unused pids. If set to useConfigured, ARIB
                Captions will be on the configured pid number.

                - **AudioBufferModel** *(string) --* When set to dvb, uses DVB buffer model for
                Dolby Digital audio. When set to atsc, the ATSC model is used.

                - **AudioFramesPerPes** *(integer) --* The number of audio frames to insert for each
                PES packet.

                - **AudioPids** *(string) --* Packet Identifier (PID) of the elementary audio
                stream(s) in the transport stream. Multiple values are accepted, and can be entered
                in ranges and/or by comma separation. Can be entered as decimal or hexadecimal
                values. Each PID specified must be in the range of 32 (or 0x20)..8182 (or 0x1ff6).

                - **AudioStreamType** *(string) --* When set to atsc, uses stream type =
                     0x81 for
                AC3 and stream type = 0x87 for EAC3. When set to dvb, uses stream type =
                     0x06.

                - **Bitrate** *(integer) --* The output bitrate of the transport stream in bits per
                second. Setting to 0 lets the muxer automatically determine the appropriate bitrate.

                - **BufferModel** *(string) --* If set to multiplex, use multiplex buffer model for
                accurate interleaving. Setting to bufferModel to none can lead to lower latency, but
                low-memory devices may not be able to play back the stream without interruptions.

                - **CcDescriptor** *(string) --* When set to enabled, generates
                captionServiceDescriptor in PMT.

                - **DvbNitSettings** *(dict) --* Inserts DVB Network Information Table (NIT) at the
                specified table repetition interval.

                  - **NetworkId** *(integer) --* The numeric value placed in the Network Information
                  Table (NIT).

                  - **NetworkName** *(string) --* The network name text placed in the
                  networkNameDescriptor inside the Network Information Table. Maximum length is 256
                  characters.

                  - **RepInterval** *(integer) --* The number of milliseconds between instances of
                  this table in the output transport stream.

                - **DvbSdtSettings** *(dict) --* Inserts DVB Service Description Table (SDT) at the
                specified table repetition interval.

                  - **OutputSdt** *(string) --* Selects method of inserting SDT information into
                  output stream. The sdtFollow setting copies SDT information from input stream to
                  output stream. The sdtFollowIfPresent setting copies SDT information from input
                  stream to output stream if SDT information is present in the input, otherwise it
                  will fall back on the user-defined values. The sdtManual setting means user will
                  enter the SDT information. The sdtNone setting means output stream will not
                  contain SDT information.

                  - **RepInterval** *(integer) --* The number of milliseconds between instances of
                  this table in the output transport stream.

                  - **ServiceName** *(string) --* The service name placed in the serviceDescriptor
                  in the Service Description Table. Maximum length is 256 characters.

                  - **ServiceProviderName** *(string) --* The service provider name placed in the
                  serviceDescriptor in the Service Description Table. Maximum length is 256
                  characters.

                - **DvbSubPids** *(string) --* Packet Identifier (PID) for input source DVB Subtitle
                data to this output. Multiple values are accepted, and can be entered in ranges
                and/or by comma separation. Can be entered as decimal or hexadecimal values. Each
                PID specified must be in the range of 32 (or 0x20)..8182 (or 0x1ff6).

                - **DvbTdtSettings** *(dict) --* Inserts DVB Time and Date Table (TDT) at the
                specified table repetition interval.

                  - **RepInterval** *(integer) --* The number of milliseconds between instances of
                  this table in the output transport stream.

                - **DvbTeletextPid** *(string) --* Packet Identifier (PID) for input source DVB
                Teletext data to this output. Can be entered as a decimal or hexadecimal value.
                Valid values are 32 (or 0x20)..8182 (or 0x1ff6).

                - **Ebif** *(string) --* If set to passthrough, passes any EBIF data from the input
                source to this output.

                - **EbpAudioInterval** *(string) --* When videoAndFixedIntervals is selected, audio
                EBP markers will be added to partitions 3 and 4. The interval between these
                additional markers will be fixed, and will be slightly shorter than the video EBP
                marker interval. Only available when EBP Cablelabs segmentation markers are
                selected. Partitions 1 and 2 will always follow the video interval.

                - **EbpLookaheadMs** *(integer) --* When set, enforces that Encoder Boundary Points
                do not come within the specified time interval of each other by looking ahead at
                input video. If another EBP is going to come in within the specified time interval,
                the current EBP is not emitted, and the segment is "stretched" to the next marker.
                The lookahead value does not add latency to the system. The Live Event must be
                configured elsewhere to create sufficient latency to make the lookahead accurate.

                - **EbpPlacement** *(string) --* Controls placement of EBP on Audio PIDs. If set to
                videoAndAudioPids, EBP markers will be placed on the video PID and all audio PIDs.
                If set to videoPid, EBP markers will be placed on only the video PID.

                - **EcmPid** *(string) --* This field is unused and deprecated.

                - **EsRateInPes** *(string) --* Include or exclude the ES Rate field in the PES
                header.

                - **EtvPlatformPid** *(string) --* Packet Identifier (PID) for input source ETV
                Platform data to this output. Can be entered as a decimal or hexadecimal value.
                Valid values are 32 (or 0x20)..8182 (or 0x1ff6).

                - **EtvSignalPid** *(string) --* Packet Identifier (PID) for input source ETV Signal
                data to this output. Can be entered as a decimal or hexadecimal value. Valid values
                are 32 (or 0x20)..8182 (or 0x1ff6).

                - **FragmentTime** *(float) --* The length in seconds of each fragment. Only used
                with EBP markers.

                - **Klv** *(string) --* If set to passthrough, passes any KLV data from the input
                source to this output.

                - **KlvDataPids** *(string) --* Packet Identifier (PID) for input source KLV data to
                this output. Multiple values are accepted, and can be entered in ranges and/or by
                comma separation. Can be entered as decimal or hexadecimal values. Each PID
                specified must be in the range of 32 (or 0x20)..8182 (or 0x1ff6).

                - **NielsenId3Behavior** *(string) --* If set to passthrough, Nielsen inaudible
                tones for media tracking will be detected in the input audio and an equivalent ID3
                tag will be inserted in the output.

                - **NullPacketBitrate** *(float) --* Value in bits per second of extra null packets
                to insert into the transport stream. This can be used if a downstream encryption
                system requires periodic null packets.

                - **PatInterval** *(integer) --* The number of milliseconds between instances of
                this table in the output transport stream. Valid values are 0, 10..1000.

                - **PcrControl** *(string) --* When set to pcrEveryPesPacket, a Program Clock
                Reference value is inserted for every Packetized Elementary Stream (PES) header.
                This parameter is effective only when the PCR PID is the same as the video or audio
                elementary stream.

                - **PcrPeriod** *(integer) --* Maximum time in milliseconds between Program Clock
                Reference (PCRs) inserted into the transport stream.

                - **PcrPid** *(string) --* Packet Identifier (PID) of the Program Clock Reference
                (PCR) in the transport stream. When no value is given, the encoder will assign the
                same value as the Video PID. Can be entered as a decimal or hexadecimal value. Valid
                values are 32 (or 0x20)..8182 (or 0x1ff6).

                - **PmtInterval** *(integer) --* The number of milliseconds between instances of
                this table in the output transport stream. Valid values are 0, 10..1000.

                - **PmtPid** *(string) --* Packet Identifier (PID) for the Program Map Table (PMT)
                in the transport stream. Can be entered as a decimal or hexadecimal value. Valid
                values are 32 (or 0x20)..8182 (or 0x1ff6).

                - **ProgramNum** *(integer) --* The value of the program number field in the Program
                Map Table.

                - **RateMode** *(string) --* When vbr, does not insert null packets into transport
                stream to fill specified bitrate. The bitrate setting acts as the maximum bitrate
                when vbr is set.

                - **Scte27Pids** *(string) --* Packet Identifier (PID) for input source SCTE-27 data
                to this output. Multiple values are accepted, and can be entered in ranges and/or by
                comma separation. Can be entered as decimal or hexadecimal values. Each PID
                specified must be in the range of 32 (or 0x20)..8182 (or 0x1ff6).

                - **Scte35Control** *(string) --* Optionally pass SCTE-35 signals from the input
                source to this output.

                - **Scte35Pid** *(string) --* Packet Identifier (PID) of the SCTE-35 stream in the
                transport stream. Can be entered as a decimal or hexadecimal value. Valid values are
                32 (or 0x20)..8182 (or 0x1ff6).

                - **SegmentationMarkers** *(string) --* Inserts segmentation markers at each
                segmentationTime period. raiSegstart sets the Random Access Indicator bit in the
                adaptation field. raiAdapt sets the RAI bit and adds the current timecode in the
                private data bytes. psiSegstart inserts PAT and PMT tables at the start of segments.
                ebp adds Encoder Boundary Point information to the adaptation field as per OpenCable
                specification OC-SP-EBP-I01-130118. ebpLegacy adds Encoder Boundary Point
                information to the adaptation field using a legacy proprietary format.

                - **SegmentationStyle** *(string) --* The segmentation style parameter controls how
                segmentation markers are inserted into the transport stream. With avails, it is
                possible that segments may be truncated, which can influence where future
                segmentation markers are inserted. When a segmentation style of "resetCadence" is
                selected and a segment is truncated due to an avail, we will reset the segmentation
                cadence. This means the subsequent segment will have a duration of $segmentationTime
                seconds. When a segmentation style of "maintainCadence" is selected and a segment is
                truncated due to an avail, we will not reset the segmentation cadence. This means
                the subsequent segment will likely be truncated as well. However, all segments after
                that will have a duration of $segmentationTime seconds. Note that EBP lookahead is a
                slight exception to this rule.

                - **SegmentationTime** *(float) --* The length in seconds of each segment. Required
                unless markers is set to None_.

                - **TimedMetadataBehavior** *(string) --* When set to passthrough, timed metadata
                will be passed through from input to output.

                - **TimedMetadataPid** *(string) --* Packet Identifier (PID) of the timed metadata
                stream in the transport stream. Can be entered as a decimal or hexadecimal value.
                Valid values are 32 (or 0x20)..8182 (or 0x1ff6).

                - **TransportStreamId** *(integer) --* The value of the transport stream ID field in
                the Program Map Table.

                - **VideoPid** *(string) --* Packet Identifier (PID) of the elementary video stream
                in the transport stream. Can be entered as a decimal or hexadecimal value. Valid
                values are 32 (or 0x20)..8182 (or 0x1ff6).

            - **Extension** *(string) --* Output file extension. If excluded, this will be
            auto-selected from the container type.

            - **NameModifier** *(string) --* String concatenated to the end of the destination
            filename. Required for multiple outputs of the same type.

          - **FrameCaptureOutputSettings** *(dict) --* Frame Capture Output Settings

            - **NameModifier** *(string) --* Required if the output group contains more than one
            output. This modifier forms part of the output file name.

          - **HlsOutputSettings** *(dict) --* Hls Output Settings

            - **HlsSettings** *(dict) --* Settings regarding the underlying stream. These settings
            are different for audio-only outputs.

              - **AudioOnlyHlsSettings** *(dict) --* Audio Only Hls Settings

                - **AudioGroupId** *(string) --* Specifies the group to which the audio Rendition
                belongs.

                - **AudioOnlyImage** *(dict) --* Optional. Specifies the .jpg or .png image to use
                as the cover art for an audio-only output. We recommend a low bit-size file because
                the image increases the output audio bandwidth. The image is attached to the audio
                as an ID3 tag, frame type APIC, picture type 0x10, as per the "ID3 tag version 2.4.0
                - Native Frames" standard.

                  - **PasswordParam** *(string) --* key used to extract the password from EC2
                  Parameter store

                  - **Uri** *(string) --* Uniform Resource Identifier - This should be a path to a
                  file accessible to the Live system (eg. a http:// URI) depending on the output
                  type. For example, a RTMP destination should have a uri simliar to:
                  "rtmp://fmsserver/live".

                  - **Username** *(string) --* Documentation update needed

                - **AudioTrackType** *(string) --* Four types of audio-only tracks are supported:
                Audio-Only Variant Stream The client can play back this audio-only stream instead of
                video in low-bandwidth scenarios. Represented as an EXT-X-STREAM-INF in the HLS
                manifest. Alternate Audio, Auto Select, Default Alternate rendition that the client
                should try to play back by default. Represented as an EXT-X-MEDIA in the HLS
                manifest with DEFAULT=YES, AUTOSELECT=
                    YES Alternate Audio, Auto Select, Not Default
                Alternate rendition that the client may try to play back by default. Represented as
                an EXT-X-MEDIA in the HLS manifest with DEFAULT=NO, AUTOSELECT=
                    YES Alternate Audio,
                not Auto Select Alternate rendition that the client will not try to play back by
                default. Represented as an EXT-X-MEDIA in the HLS manifest with DEFAULT=
                    NO,
                AUTOSELECT=NO

              - **StandardHlsSettings** *(dict) --* Standard Hls Settings

                - **AudioRenditionSets** *(string) --* List all the audio groups that are used with
                the video output stream. Input all the audio GROUP-IDs that are associated to the
                video, separate by ','.

                - **M3u8Settings** *(dict) --* Settings information for the .m3u8 container

                  - **AudioFramesPerPes** *(integer) --* The number of audio frames to insert for
                  each PES packet.

                  - **AudioPids** *(string) --* Packet Identifier (PID) of the elementary audio
                  stream(s) in the transport stream. Multiple values are accepted, and can be
                  entered in ranges and/or by comma separation. Can be entered as decimal or
                  hexadecimal values.

                  - **EcmPid** *(string) --* This parameter is unused and deprecated.

                  - **NielsenId3Behavior** *(string) --* If set to passthrough, Nielsen inaudible
                  tones for media tracking will be detected in the input audio and an equivalent ID3
                  tag will be inserted in the output.

                  - **PatInterval** *(integer) --* The number of milliseconds between instances of
                  this table in the output transport stream. A value of \\"0\\" writes out the PMT
                  once per segment file.

                  - **PcrControl** *(string) --* When set to pcrEveryPesPacket, a Program Clock
                  Reference value is inserted for every Packetized Elementary Stream (PES) header.
                  This parameter is effective only when the PCR PID is the same as the video or
                  audio elementary stream.

                  - **PcrPeriod** *(integer) --* Maximum time in milliseconds between Program Clock
                  References (PCRs) inserted into the transport stream.

                  - **PcrPid** *(string) --* Packet Identifier (PID) of the Program Clock Reference
                  (PCR) in the transport stream. When no value is given, the encoder will assign the
                  same value as the Video PID. Can be entered as a decimal or hexadecimal value.

                  - **PmtInterval** *(integer) --* The number of milliseconds between instances of
                  this table in the output transport stream. A value of \\"0\\" writes out the PMT
                  once per segment file.

                  - **PmtPid** *(string) --* Packet Identifier (PID) for the Program Map Table (PMT)
                  in the transport stream. Can be entered as a decimal or hexadecimal value.

                  - **ProgramNum** *(integer) --* The value of the program number field in the
                  Program Map Table.

                  - **Scte35Behavior** *(string) --* If set to passthrough, passes any SCTE-35
                  signals from the input source to this output.

                  - **Scte35Pid** *(string) --* Packet Identifier (PID) of the SCTE-35 stream in the
                  transport stream. Can be entered as a decimal or hexadecimal value.

                  - **TimedMetadataBehavior** *(string) --* When set to passthrough, timed metadata
                  is passed through from input to output.

                  - **TimedMetadataPid** *(string) --* Packet Identifier (PID) of the timed metadata
                  stream in the transport stream. Can be entered as a decimal or hexadecimal value.
                  Valid values are 32 (or 0x20)..8182 (or 0x1ff6).

                  - **TransportStreamId** *(integer) --* The value of the transport stream ID field
                  in the Program Map Table.

                  - **VideoPid** *(string) --* Packet Identifier (PID) of the elementary video
                  stream in the transport stream. Can be entered as a decimal or hexadecimal value.

            - **NameModifier** *(string) --* String concatenated to the end of the destination
            filename. Accepts \\"Format Identifiers\\":#formatIdentifierParameters.

            - **SegmentModifier** *(string) --* String concatenated to end of segment filenames.

          - **MediaPackageOutputSettings** *(dict) --* Media Package Output Settings

          - **MsSmoothOutputSettings** *(dict) --* Ms Smooth Output Settings

            - **H265PackagingType** *(string) --* Only applicable when this output is referencing an
            H.265 video description. Specifies whether MP4 segments should be packaged as HEV1 or
            HVC1.

            - **NameModifier** *(string) --* String concatenated to the end of the destination
            filename. Required for multiple outputs of the same type.

          - **MultiplexOutputSettings** *(dict) --* Multiplex Output Settings

            - **Destination** *(dict) --* Destination is a Multiplex.

              - **DestinationRefId** *(string) --* Placeholder documentation for __string

          - **RtmpOutputSettings** *(dict) --* Rtmp Output Settings

            - **CertificateMode** *(string) --* If set to verifyAuthenticity, verify the tls
            certificate chain to a trusted Certificate Authority (CA). This will cause rtmps outputs
            with self-signed certificates to fail.

            - **ConnectionRetryInterval** *(integer) --* Number of seconds to wait before retrying a
            connection to the Flash Media server if the connection is lost.

            - **Destination** *(dict) --* The RTMP endpoint excluding the stream name (eg.
            rtmp://host/appname). For connection to Akamai, a username and password must be
            supplied. URI fields accept format identifiers.

              - **DestinationRefId** *(string) --* Placeholder documentation for __string

            - **NumRetries** *(integer) --* Number of retry attempts.

          - **UdpOutputSettings** *(dict) --* Udp Output Settings

            - **BufferMsec** *(integer) --* UDP output buffering in milliseconds. Larger values
            increase latency through the transcoder but simultaneously assist the transcoder in
            maintaining a constant, low-jitter UDP/RTP output while accommodating clock recovery,
            input switching, input disruptions, picture reordering, etc.

            - **ContainerSettings** *(dict) --* Udp Container Settings

              - **M2tsSettings** *(dict) --* M2ts Settings

                - **AbsentInputAudioBehavior** *(string) --* When set to drop, output audio streams
                will be removed from the program if the selected input audio stream is removed from
                the input. This allows the output audio configuration to dynamically change based on
                input configuration. If this is set to encodeSilence, all output audio streams will
                output encoded silence when not connected to an active input stream.

                - **Arib** *(string) --* When set to enabled, uses ARIB-compliant field muxing and
                removes video descriptor.

                - **AribCaptionsPid** *(string) --* Packet Identifier (PID) for ARIB Captions in the
                transport stream. Can be entered as a decimal or hexadecimal value. Valid values are
                32 (or 0x20)..8182 (or 0x1ff6).

                - **AribCaptionsPidControl** *(string) --* If set to auto, pid number used for ARIB
                Captions will be auto-selected from unused pids. If set to useConfigured, ARIB
                Captions will be on the configured pid number.

                - **AudioBufferModel** *(string) --* When set to dvb, uses DVB buffer model for
                Dolby Digital audio. When set to atsc, the ATSC model is used.

                - **AudioFramesPerPes** *(integer) --* The number of audio frames to insert for each
                PES packet.

                - **AudioPids** *(string) --* Packet Identifier (PID) of the elementary audio
                stream(s) in the transport stream. Multiple values are accepted, and can be entered
                in ranges and/or by comma separation. Can be entered as decimal or hexadecimal
                values. Each PID specified must be in the range of 32 (or 0x20)..8182 (or 0x1ff6).

                - **AudioStreamType** *(string) --* When set to atsc, uses stream type =
                     0x81 for
                AC3 and stream type = 0x87 for EAC3. When set to dvb, uses stream type =
                     0x06.

                - **Bitrate** *(integer) --* The output bitrate of the transport stream in bits per
                second. Setting to 0 lets the muxer automatically determine the appropriate bitrate.

                - **BufferModel** *(string) --* If set to multiplex, use multiplex buffer model for
                accurate interleaving. Setting to bufferModel to none can lead to lower latency, but
                low-memory devices may not be able to play back the stream without interruptions.

                - **CcDescriptor** *(string) --* When set to enabled, generates
                captionServiceDescriptor in PMT.

                - **DvbNitSettings** *(dict) --* Inserts DVB Network Information Table (NIT) at the
                specified table repetition interval.

                  - **NetworkId** *(integer) --* The numeric value placed in the Network Information
                  Table (NIT).

                  - **NetworkName** *(string) --* The network name text placed in the
                  networkNameDescriptor inside the Network Information Table. Maximum length is 256
                  characters.

                  - **RepInterval** *(integer) --* The number of milliseconds between instances of
                  this table in the output transport stream.

                - **DvbSdtSettings** *(dict) --* Inserts DVB Service Description Table (SDT) at the
                specified table repetition interval.

                  - **OutputSdt** *(string) --* Selects method of inserting SDT information into
                  output stream. The sdtFollow setting copies SDT information from input stream to
                  output stream. The sdtFollowIfPresent setting copies SDT information from input
                  stream to output stream if SDT information is present in the input, otherwise it
                  will fall back on the user-defined values. The sdtManual setting means user will
                  enter the SDT information. The sdtNone setting means output stream will not
                  contain SDT information.

                  - **RepInterval** *(integer) --* The number of milliseconds between instances of
                  this table in the output transport stream.

                  - **ServiceName** *(string) --* The service name placed in the serviceDescriptor
                  in the Service Description Table. Maximum length is 256 characters.

                  - **ServiceProviderName** *(string) --* The service provider name placed in the
                  serviceDescriptor in the Service Description Table. Maximum length is 256
                  characters.

                - **DvbSubPids** *(string) --* Packet Identifier (PID) for input source DVB Subtitle
                data to this output. Multiple values are accepted, and can be entered in ranges
                and/or by comma separation. Can be entered as decimal or hexadecimal values. Each
                PID specified must be in the range of 32 (or 0x20)..8182 (or 0x1ff6).

                - **DvbTdtSettings** *(dict) --* Inserts DVB Time and Date Table (TDT) at the
                specified table repetition interval.

                  - **RepInterval** *(integer) --* The number of milliseconds between instances of
                  this table in the output transport stream.

                - **DvbTeletextPid** *(string) --* Packet Identifier (PID) for input source DVB
                Teletext data to this output. Can be entered as a decimal or hexadecimal value.
                Valid values are 32 (or 0x20)..8182 (or 0x1ff6).

                - **Ebif** *(string) --* If set to passthrough, passes any EBIF data from the input
                source to this output.

                - **EbpAudioInterval** *(string) --* When videoAndFixedIntervals is selected, audio
                EBP markers will be added to partitions 3 and 4. The interval between these
                additional markers will be fixed, and will be slightly shorter than the video EBP
                marker interval. Only available when EBP Cablelabs segmentation markers are
                selected. Partitions 1 and 2 will always follow the video interval.

                - **EbpLookaheadMs** *(integer) --* When set, enforces that Encoder Boundary Points
                do not come within the specified time interval of each other by looking ahead at
                input video. If another EBP is going to come in within the specified time interval,
                the current EBP is not emitted, and the segment is "stretched" to the next marker.
                The lookahead value does not add latency to the system. The Live Event must be
                configured elsewhere to create sufficient latency to make the lookahead accurate.

                - **EbpPlacement** *(string) --* Controls placement of EBP on Audio PIDs. If set to
                videoAndAudioPids, EBP markers will be placed on the video PID and all audio PIDs.
                If set to videoPid, EBP markers will be placed on only the video PID.

                - **EcmPid** *(string) --* This field is unused and deprecated.

                - **EsRateInPes** *(string) --* Include or exclude the ES Rate field in the PES
                header.

                - **EtvPlatformPid** *(string) --* Packet Identifier (PID) for input source ETV
                Platform data to this output. Can be entered as a decimal or hexadecimal value.
                Valid values are 32 (or 0x20)..8182 (or 0x1ff6).

                - **EtvSignalPid** *(string) --* Packet Identifier (PID) for input source ETV Signal
                data to this output. Can be entered as a decimal or hexadecimal value. Valid values
                are 32 (or 0x20)..8182 (or 0x1ff6).

                - **FragmentTime** *(float) --* The length in seconds of each fragment. Only used
                with EBP markers.

                - **Klv** *(string) --* If set to passthrough, passes any KLV data from the input
                source to this output.

                - **KlvDataPids** *(string) --* Packet Identifier (PID) for input source KLV data to
                this output. Multiple values are accepted, and can be entered in ranges and/or by
                comma separation. Can be entered as decimal or hexadecimal values. Each PID
                specified must be in the range of 32 (or 0x20)..8182 (or 0x1ff6).

                - **NielsenId3Behavior** *(string) --* If set to passthrough, Nielsen inaudible
                tones for media tracking will be detected in the input audio and an equivalent ID3
                tag will be inserted in the output.

                - **NullPacketBitrate** *(float) --* Value in bits per second of extra null packets
                to insert into the transport stream. This can be used if a downstream encryption
                system requires periodic null packets.

                - **PatInterval** *(integer) --* The number of milliseconds between instances of
                this table in the output transport stream. Valid values are 0, 10..1000.

                - **PcrControl** *(string) --* When set to pcrEveryPesPacket, a Program Clock
                Reference value is inserted for every Packetized Elementary Stream (PES) header.
                This parameter is effective only when the PCR PID is the same as the video or audio
                elementary stream.

                - **PcrPeriod** *(integer) --* Maximum time in milliseconds between Program Clock
                Reference (PCRs) inserted into the transport stream.

                - **PcrPid** *(string) --* Packet Identifier (PID) of the Program Clock Reference
                (PCR) in the transport stream. When no value is given, the encoder will assign the
                same value as the Video PID. Can be entered as a decimal or hexadecimal value. Valid
                values are 32 (or 0x20)..8182 (or 0x1ff6).

                - **PmtInterval** *(integer) --* The number of milliseconds between instances of
                this table in the output transport stream. Valid values are 0, 10..1000.

                - **PmtPid** *(string) --* Packet Identifier (PID) for the Program Map Table (PMT)
                in the transport stream. Can be entered as a decimal or hexadecimal value. Valid
                values are 32 (or 0x20)..8182 (or 0x1ff6).

                - **ProgramNum** *(integer) --* The value of the program number field in the Program
                Map Table.

                - **RateMode** *(string) --* When vbr, does not insert null packets into transport
                stream to fill specified bitrate. The bitrate setting acts as the maximum bitrate
                when vbr is set.

                - **Scte27Pids** *(string) --* Packet Identifier (PID) for input source SCTE-27 data
                to this output. Multiple values are accepted, and can be entered in ranges and/or by
                comma separation. Can be entered as decimal or hexadecimal values. Each PID
                specified must be in the range of 32 (or 0x20)..8182 (or 0x1ff6).

                - **Scte35Control** *(string) --* Optionally pass SCTE-35 signals from the input
                source to this output.

                - **Scte35Pid** *(string) --* Packet Identifier (PID) of the SCTE-35 stream in the
                transport stream. Can be entered as a decimal or hexadecimal value. Valid values are
                32 (or 0x20)..8182 (or 0x1ff6).

                - **SegmentationMarkers** *(string) --* Inserts segmentation markers at each
                segmentationTime period. raiSegstart sets the Random Access Indicator bit in the
                adaptation field. raiAdapt sets the RAI bit and adds the current timecode in the
                private data bytes. psiSegstart inserts PAT and PMT tables at the start of segments.
                ebp adds Encoder Boundary Point information to the adaptation field as per OpenCable
                specification OC-SP-EBP-I01-130118. ebpLegacy adds Encoder Boundary Point
                information to the adaptation field using a legacy proprietary format.

                - **SegmentationStyle** *(string) --* The segmentation style parameter controls how
                segmentation markers are inserted into the transport stream. With avails, it is
                possible that segments may be truncated, which can influence where future
                segmentation markers are inserted. When a segmentation style of "resetCadence" is
                selected and a segment is truncated due to an avail, we will reset the segmentation
                cadence. This means the subsequent segment will have a duration of $segmentationTime
                seconds. When a segmentation style of "maintainCadence" is selected and a segment is
                truncated due to an avail, we will not reset the segmentation cadence. This means
                the subsequent segment will likely be truncated as well. However, all segments after
                that will have a duration of $segmentationTime seconds. Note that EBP lookahead is a
                slight exception to this rule.

                - **SegmentationTime** *(float) --* The length in seconds of each segment. Required
                unless markers is set to None_.

                - **TimedMetadataBehavior** *(string) --* When set to passthrough, timed metadata
                will be passed through from input to output.

                - **TimedMetadataPid** *(string) --* Packet Identifier (PID) of the timed metadata
                stream in the transport stream. Can be entered as a decimal or hexadecimal value.
                Valid values are 32 (or 0x20)..8182 (or 0x1ff6).

                - **TransportStreamId** *(integer) --* The value of the transport stream ID field in
                the Program Map Table.

                - **VideoPid** *(string) --* Packet Identifier (PID) of the elementary video stream
                in the transport stream. Can be entered as a decimal or hexadecimal value. Valid
                values are 32 (or 0x20)..8182 (or 0x1ff6).

            - **Destination** *(dict) --* Destination address and port number for RTP or UDP
            packets. Can be unicast or multicast RTP or UDP (eg. rtp://239.10.10.10:5001 or
            udp://10.100.100.100:5002).

              - **DestinationRefId** *(string) --* Placeholder documentation for __string

            - **FecOutputSettings** *(dict) --* Settings for enabling and adjusting Forward Error
            Correction on UDP outputs.

              - **ColumnDepth** *(integer) --* Parameter D from SMPTE 2022-1. The height of the FEC
              protection matrix. The number of transport stream packets per column error correction
              packet. Must be between 4 and 20, inclusive.

              - **IncludeFec** *(string) --* Enables column only or column and row based FEC

              - **RowLength** *(integer) --* Parameter L from SMPTE 2022-1. The width of the FEC
              protection matrix. Must be between 1 and 20, inclusive. If only Column FEC is used,
              then larger values increase robustness. If Row FEC is used, then this is the number of
              transport stream packets per row error correction packet, and the value must be
              between 4 and 20, inclusive, if includeFec is columnAndRow. If includeFec is column,
              this value must be 1 to 20, inclusive.

        - **VideoDescriptionName** *(string) --* The name of the VideoDescription used as the source
        for this output.
    """


_ClientUpdateChannelResponseChannelEncoderSettingsTimecodeConfigTypeDef = TypedDict(
    "_ClientUpdateChannelResponseChannelEncoderSettingsTimecodeConfigTypeDef",
    {"Source": str, "SyncThreshold": int},
    total=False,
)


class ClientUpdateChannelResponseChannelEncoderSettingsTimecodeConfigTypeDef(
    _ClientUpdateChannelResponseChannelEncoderSettingsTimecodeConfigTypeDef
):
    """
    Type definition for `ClientUpdateChannelResponseChannelEncoderSettings` `TimecodeConfig`

    - **Source** *(string) --* Identifies the source for the timecode that will be associated with
    the events outputs. -Embedded (embedded): Initialize the output timecode with timecode from the
    the source. If no embedded timecode is detected in the source, the system falls back to using
    "Start at 0" (zerobased). -System Clock (systemclock): Use the UTC time. -Start at 0
    (zerobased): The time of the first frame of the event will be 00:00:00:00.

    - **SyncThreshold** *(integer) --* Threshold in frames beyond which output timecode is
    resynchronized to the input timecode. Discrepancies below this threshold are permitted to avoid
    unnecessary discontinuities in the output timecode. No timecode sync when this is not specified.
    """


_ClientUpdateChannelResponseChannelEncoderSettingsVideoDescriptionsCodecSettingsFrameCaptureSettingsTypeDef = TypedDict(
    "_ClientUpdateChannelResponseChannelEncoderSettingsVideoDescriptionsCodecSettingsFrameCaptureSettingsTypeDef",
    {"CaptureInterval": int},
    total=False,
)


class ClientUpdateChannelResponseChannelEncoderSettingsVideoDescriptionsCodecSettingsFrameCaptureSettingsTypeDef(
    _ClientUpdateChannelResponseChannelEncoderSettingsVideoDescriptionsCodecSettingsFrameCaptureSettingsTypeDef
):
    """
    Type definition for
    `ClientUpdateChannelResponseChannelEncoderSettingsVideoDescriptionsCodecSettings`
    `FrameCaptureSettings`

    - **CaptureInterval** *(integer) --* The frequency at which to capture frames for inclusion in
    the output. May be specified in either seconds or milliseconds, as specified by
    captureIntervalUnits.
    """


_ClientUpdateChannelResponseChannelEncoderSettingsVideoDescriptionsCodecSettingsH264SettingsColorSpaceSettingsTypeDef = TypedDict(
    "_ClientUpdateChannelResponseChannelEncoderSettingsVideoDescriptionsCodecSettingsH264SettingsColorSpaceSettingsTypeDef",
    {
        "ColorSpacePassthroughSettings": Dict,
        "Rec601Settings": Dict,
        "Rec709Settings": Dict[str, Any],
    },
    total=False,
)


class ClientUpdateChannelResponseChannelEncoderSettingsVideoDescriptionsCodecSettingsH264SettingsColorSpaceSettingsTypeDef(
    _ClientUpdateChannelResponseChannelEncoderSettingsVideoDescriptionsCodecSettingsH264SettingsColorSpaceSettingsTypeDef
):
    """
    Type definition for
    `ClientUpdateChannelResponseChannelEncoderSettingsVideoDescriptionsCodecSettingsH264Settings`
    `ColorSpaceSettings`

    - **ColorSpacePassthroughSettings** *(dict) --* Passthrough applies no color space conversion to
    the output

    - **Rec601Settings** *(dict) --* Rec601 Settings

    - **Rec709Settings** *(dict) --* Rec709 Settings
    """


_ClientUpdateChannelResponseChannelEncoderSettingsVideoDescriptionsCodecSettingsH264SettingsTypeDef = TypedDict(
    "_ClientUpdateChannelResponseChannelEncoderSettingsVideoDescriptionsCodecSettingsH264SettingsTypeDef",
    {
        "AdaptiveQuantization": str,
        "AfdSignaling": str,
        "Bitrate": int,
        "BufFillPct": int,
        "BufSize": int,
        "ColorMetadata": str,
        "ColorSpaceSettings": ClientUpdateChannelResponseChannelEncoderSettingsVideoDescriptionsCodecSettingsH264SettingsColorSpaceSettingsTypeDef,
        "EntropyEncoding": str,
        "FixedAfd": str,
        "FlickerAq": str,
        "FramerateControl": str,
        "FramerateDenominator": int,
        "FramerateNumerator": int,
        "GopBReference": str,
        "GopClosedCadence": int,
        "GopNumBFrames": int,
        "GopSize": float,
        "GopSizeUnits": str,
        "Level": str,
        "LookAheadRateControl": str,
        "MaxBitrate": int,
        "MinIInterval": int,
        "NumRefFrames": int,
        "ParControl": str,
        "ParDenominator": int,
        "ParNumerator": int,
        "Profile": str,
        "QvbrQualityLevel": int,
        "RateControlMode": str,
        "ScanType": str,
        "SceneChangeDetect": str,
        "Slices": int,
        "Softness": int,
        "SpatialAq": str,
        "SubgopLength": str,
        "Syntax": str,
        "TemporalAq": str,
        "TimecodeInsertion": str,
    },
    total=False,
)


class ClientUpdateChannelResponseChannelEncoderSettingsVideoDescriptionsCodecSettingsH264SettingsTypeDef(
    _ClientUpdateChannelResponseChannelEncoderSettingsVideoDescriptionsCodecSettingsH264SettingsTypeDef
):
    """
    Type definition for
    `ClientUpdateChannelResponseChannelEncoderSettingsVideoDescriptionsCodecSettings` `H264Settings`

    - **AdaptiveQuantization** *(string) --* Adaptive quantization. Allows intra-frame quantizers to
    vary to improve visual quality.

    - **AfdSignaling** *(string) --* Indicates that AFD values will be written into the output
    stream. If afdSignaling is "auto", the system will try to preserve the input AFD value (in cases
    where multiple AFD values are valid). If set to "fixed", the AFD value will be the value
    configured in the fixedAfd parameter.

    - **Bitrate** *(integer) --* Average bitrate in bits/second. Required when the rate control mode
    is VBR or CBR. Not used for QVBR. In an MS Smooth output group, each output must have a unique
    value when its bitrate is rounded down to the nearest multiple of 1000.

    - **BufFillPct** *(integer) --* Percentage of the buffer that should initially be filled (HRD
    buffer model).

    - **BufSize** *(integer) --* Size of buffer (HRD buffer model) in bits.

    - **ColorMetadata** *(string) --* Includes colorspace metadata in the output.

    - **ColorSpaceSettings** *(dict) --* Color Space settings

      - **ColorSpacePassthroughSettings** *(dict) --* Passthrough applies no color space conversion
      to the output

      - **Rec601Settings** *(dict) --* Rec601 Settings

      - **Rec709Settings** *(dict) --* Rec709 Settings

    - **EntropyEncoding** *(string) --* Entropy encoding mode. Use cabac (must be in Main or High
    profile) or cavlc.

    - **FixedAfd** *(string) --* Four bit AFD value to write on all frames of video in the output
    stream. Only valid when afdSignaling is set to 'Fixed'.

    - **FlickerAq** *(string) --* If set to enabled, adjust quantization within each frame to reduce
    flicker or 'pop' on I-frames.

    - **FramerateControl** *(string) --* This field indicates how the output video frame rate is
    specified. If "specified" is selected then the output video frame rate is determined by
    framerateNumerator and framerateDenominator, else if "initializeFromSource" is selected then the
    output video frame rate will be set equal to the input video frame rate of the first input.

    - **FramerateDenominator** *(integer) --* Framerate denominator.

    - **FramerateNumerator** *(integer) --* Framerate numerator - framerate is a fraction, e.g.
    24000 / 1001 = 23.976 fps.

    - **GopBReference** *(string) --* Documentation update needed

    - **GopClosedCadence** *(integer) --* Frequency of closed GOPs. In streaming applications, it is
    recommended that this be set to 1 so a decoder joining mid-stream will receive an IDR frame as
    quickly as possible. Setting this value to 0 will break output segmenting.

    - **GopNumBFrames** *(integer) --* Number of B-frames between reference frames.

    - **GopSize** *(float) --* GOP size (keyframe interval) in units of either frames or seconds per
    gopSizeUnits. If gopSizeUnits is frames, gopSize must be an integer and must be greater than or
    equal to 1. If gopSizeUnits is seconds, gopSize must be greater than 0, but need not be an
    integer.

    - **GopSizeUnits** *(string) --* Indicates if the gopSize is specified in frames or seconds. If
    seconds the system will convert the gopSize into a frame count at run time.

    - **Level** *(string) --* H.264 Level.

    - **LookAheadRateControl** *(string) --* Amount of lookahead. A value of low can decrease
    latency and memory usage, while high can produce better quality for certain content.

    - **MaxBitrate** *(integer) --* For QVBR: See the tooltip for Quality level For VBR: Set the
    maximum bitrate in order to accommodate expected spikes in the complexity of the video.

    - **MinIInterval** *(integer) --* Only meaningful if sceneChangeDetect is set to enabled.
    Defaults to 5 if multiplex rate control is used. Enforces separation between repeated (cadence)
    I-frames and I-frames inserted by Scene Change Detection. If a scene change I-frame is within
    I-interval frames of a cadence I-frame, the GOP is shrunk and/or stretched to the scene change
    I-frame. GOP stretch requires enabling lookahead as well as setting I-interval. The normal
    cadence resumes for the next GOP. Note: Maximum GOP stretch = GOP size + Min-I-interval - 1

    - **NumRefFrames** *(integer) --* Number of reference frames to use. The encoder may use more
    than requested if using B-frames and/or interlaced encoding.

    - **ParControl** *(string) --* This field indicates how the output pixel aspect ratio is
    specified. If "specified" is selected then the output video pixel aspect ratio is determined by
    parNumerator and parDenominator, else if "initializeFromSource" is selected then the output
    pixsel aspect ratio will be set equal to the input video pixel aspect ratio of the first input.

    - **ParDenominator** *(integer) --* Pixel Aspect Ratio denominator.

    - **ParNumerator** *(integer) --* Pixel Aspect Ratio numerator.

    - **Profile** *(string) --* H.264 Profile.

    - **QvbrQualityLevel** *(integer) --* Controls the target quality for the video encode. Applies
    only when the rate control mode is QVBR. Set values for the QVBR quality level field and Max
    bitrate field that suit your most important viewing devices. Recommended values are: - Primary
    screen: Quality level: 8 to 10. Max bitrate: 4M - PC or tablet: Quality level: 7. Max bitrate:
    1.5M to 3M - Smartphone: Quality level: 6. Max bitrate: 1M to 1.5M

    - **RateControlMode** *(string) --* Rate control mode. QVBR: Quality will match the specified
    quality level except when it is constrained by the maximum bitrate. Recommended if you or your
    viewers pay for bandwidth. VBR: Quality and bitrate vary, depending on the video complexity.
    Recommended instead of QVBR if you want to maintain a specific average bitrate over the duration
    of the channel. CBR: Quality varies, depending on the video complexity. Recommended only if you
    distribute your assets to devices that cannot handle variable bitrates.

    - **ScanType** *(string) --* Sets the scan type of the output to progressive or top-field-first
    interlaced.

    - **SceneChangeDetect** *(string) --* Scene change detection. - On: inserts I-frames when scene
    change is detected. - Off: does not force an I-frame when scene change is detected.

    - **Slices** *(integer) --* Number of slices per picture. Must be less than or equal to the
    number of macroblock rows for progressive pictures, and less than or equal to half the number of
    macroblock rows for interlaced pictures. This field is optional; when no value is specified the
    encoder will choose the number of slices based on encode resolution.

    - **Softness** *(integer) --* Softness. Selects quantizer matrix, larger values reduce
    high-frequency content in the encoded image.

    - **SpatialAq** *(string) --* If set to enabled, adjust quantization within each frame based on
    spatial variation of content complexity.

    - **SubgopLength** *(string) --* If set to fixed, use gopNumBFrames B-frames per sub-GOP. If set
    to dynamic, optimize the number of B-frames used for each sub-GOP to improve visual quality.

    - **Syntax** *(string) --* Produces a bitstream compliant with SMPTE RP-2027.

    - **TemporalAq** *(string) --* If set to enabled, adjust quantization within each frame based on
    temporal variation of content complexity.

    - **TimecodeInsertion** *(string) --* Determines how timecodes should be inserted into the video
    elementary stream. - 'disabled': Do not include timecodes - 'picTimingSei': Pass through picture
    timing SEI messages from the source specified in Timecode Config
    """


_ClientUpdateChannelResponseChannelEncoderSettingsVideoDescriptionsCodecSettingsH265SettingsColorSpaceSettingsHdr10SettingsTypeDef = TypedDict(
    "_ClientUpdateChannelResponseChannelEncoderSettingsVideoDescriptionsCodecSettingsH265SettingsColorSpaceSettingsHdr10SettingsTypeDef",
    {"MaxCll": int, "MaxFall": int},
    total=False,
)


class ClientUpdateChannelResponseChannelEncoderSettingsVideoDescriptionsCodecSettingsH265SettingsColorSpaceSettingsHdr10SettingsTypeDef(
    _ClientUpdateChannelResponseChannelEncoderSettingsVideoDescriptionsCodecSettingsH265SettingsColorSpaceSettingsHdr10SettingsTypeDef
):
    """
    Type definition for
    `ClientUpdateChannelResponseChannelEncoderSettingsVideoDescriptionsCodecSettingsH265SettingsColorSpaceSettings`
    `Hdr10Settings`

    - **MaxCll** *(integer) --* Maximum Content Light Level An integer metadata value defining the
    maximum light level, in nits, of any single pixel within an encoded HDR video stream or file.

    - **MaxFall** *(integer) --* Maximum Frame Average Light Level An integer metadata value
    defining the maximum average light level, in nits, for any single frame within an encoded HDR
    video stream or file.
    """


_ClientUpdateChannelResponseChannelEncoderSettingsVideoDescriptionsCodecSettingsH265SettingsColorSpaceSettingsTypeDef = TypedDict(
    "_ClientUpdateChannelResponseChannelEncoderSettingsVideoDescriptionsCodecSettingsH265SettingsColorSpaceSettingsTypeDef",
    {
        "ColorSpacePassthroughSettings": Dict,
        "Hdr10Settings": ClientUpdateChannelResponseChannelEncoderSettingsVideoDescriptionsCodecSettingsH265SettingsColorSpaceSettingsHdr10SettingsTypeDef,
        "Rec601Settings": Dict,
        "Rec709Settings": Dict[str, Any],
    },
    total=False,
)


class ClientUpdateChannelResponseChannelEncoderSettingsVideoDescriptionsCodecSettingsH265SettingsColorSpaceSettingsTypeDef(
    _ClientUpdateChannelResponseChannelEncoderSettingsVideoDescriptionsCodecSettingsH265SettingsColorSpaceSettingsTypeDef
):
    """
    Type definition for
    `ClientUpdateChannelResponseChannelEncoderSettingsVideoDescriptionsCodecSettingsH265Settings`
    `ColorSpaceSettings`

    - **ColorSpacePassthroughSettings** *(dict) --* Passthrough applies no color space conversion to
    the output

    - **Hdr10Settings** *(dict) --* Hdr10 Settings

      - **MaxCll** *(integer) --* Maximum Content Light Level An integer metadata value defining the
      maximum light level, in nits, of any single pixel within an encoded HDR video stream or file.

      - **MaxFall** *(integer) --* Maximum Frame Average Light Level An integer metadata value
      defining the maximum average light level, in nits, for any single frame within an encoded HDR
      video stream or file.

    - **Rec601Settings** *(dict) --* Rec601 Settings

    - **Rec709Settings** *(dict) --* Rec709 Settings
    """


_ClientUpdateChannelResponseChannelEncoderSettingsVideoDescriptionsCodecSettingsH265SettingsTypeDef = TypedDict(
    "_ClientUpdateChannelResponseChannelEncoderSettingsVideoDescriptionsCodecSettingsH265SettingsTypeDef",
    {
        "AdaptiveQuantization": str,
        "AfdSignaling": str,
        "AlternativeTransferFunction": str,
        "Bitrate": int,
        "BufSize": int,
        "ColorMetadata": str,
        "ColorSpaceSettings": ClientUpdateChannelResponseChannelEncoderSettingsVideoDescriptionsCodecSettingsH265SettingsColorSpaceSettingsTypeDef,
        "FixedAfd": str,
        "FlickerAq": str,
        "FramerateDenominator": int,
        "FramerateNumerator": int,
        "GopClosedCadence": int,
        "GopSize": float,
        "GopSizeUnits": str,
        "Level": str,
        "LookAheadRateControl": str,
        "MaxBitrate": int,
        "MinIInterval": int,
        "ParDenominator": int,
        "ParNumerator": int,
        "Profile": str,
        "QvbrQualityLevel": int,
        "RateControlMode": str,
        "ScanType": str,
        "SceneChangeDetect": str,
        "Slices": int,
        "Tier": str,
        "TimecodeInsertion": str,
    },
    total=False,
)


class ClientUpdateChannelResponseChannelEncoderSettingsVideoDescriptionsCodecSettingsH265SettingsTypeDef(
    _ClientUpdateChannelResponseChannelEncoderSettingsVideoDescriptionsCodecSettingsH265SettingsTypeDef
):
    """
    Type definition for
    `ClientUpdateChannelResponseChannelEncoderSettingsVideoDescriptionsCodecSettings` `H265Settings`

    - **AdaptiveQuantization** *(string) --* Adaptive quantization. Allows intra-frame quantizers to
    vary to improve visual quality.

    - **AfdSignaling** *(string) --* Indicates that AFD values will be written into the output
    stream. If afdSignaling is "auto", the system will try to preserve the input AFD value (in cases
    where multiple AFD values are valid). If set to "fixed", the AFD value will be the value
    configured in the fixedAfd parameter.

    - **AlternativeTransferFunction** *(string) --* Whether or not EML should insert an Alternative
    Transfer Function SEI message to support backwards compatibility with non-HDR decoders and
    displays.

    - **Bitrate** *(integer) --* Average bitrate in bits/second. Required when the rate control mode
    is VBR or CBR. Not used for QVBR. In an MS Smooth output group, each output must have a unique
    value when its bitrate is rounded down to the nearest multiple of 1000.

    - **BufSize** *(integer) --* Size of buffer (HRD buffer model) in bits.

    - **ColorMetadata** *(string) --* Includes colorspace metadata in the output.

    - **ColorSpaceSettings** *(dict) --* Color Space settings

      - **ColorSpacePassthroughSettings** *(dict) --* Passthrough applies no color space conversion
      to the output

      - **Hdr10Settings** *(dict) --* Hdr10 Settings

        - **MaxCll** *(integer) --* Maximum Content Light Level An integer metadata value defining
        the maximum light level, in nits, of any single pixel within an encoded HDR video stream or
        file.

        - **MaxFall** *(integer) --* Maximum Frame Average Light Level An integer metadata value
        defining the maximum average light level, in nits, for any single frame within an encoded
        HDR video stream or file.

      - **Rec601Settings** *(dict) --* Rec601 Settings

      - **Rec709Settings** *(dict) --* Rec709 Settings

    - **FixedAfd** *(string) --* Four bit AFD value to write on all frames of video in the output
    stream. Only valid when afdSignaling is set to 'Fixed'.

    - **FlickerAq** *(string) --* If set to enabled, adjust quantization within each frame to reduce
    flicker or 'pop' on I-frames.

    - **FramerateDenominator** *(integer) --* Framerate denominator.

    - **FramerateNumerator** *(integer) --* Framerate numerator - framerate is a fraction, e.g.
    24000 / 1001 = 23.976 fps.

    - **GopClosedCadence** *(integer) --* Frequency of closed GOPs. In streaming applications, it is
    recommended that this be set to 1 so a decoder joining mid-stream will receive an IDR frame as
    quickly as possible. Setting this value to 0 will break output segmenting.

    - **GopSize** *(float) --* GOP size (keyframe interval) in units of either frames or seconds per
    gopSizeUnits. If gopSizeUnits is frames, gopSize must be an integer and must be greater than or
    equal to 1. If gopSizeUnits is seconds, gopSize must be greater than 0, but need not be an
    integer.

    - **GopSizeUnits** *(string) --* Indicates if the gopSize is specified in frames or seconds. If
    seconds the system will convert the gopSize into a frame count at run time.

    - **Level** *(string) --* H.265 Level.

    - **LookAheadRateControl** *(string) --* Amount of lookahead. A value of low can decrease
    latency and memory usage, while high can produce better quality for certain content.

    - **MaxBitrate** *(integer) --* For QVBR: See the tooltip for Quality level

    - **MinIInterval** *(integer) --* Only meaningful if sceneChangeDetect is set to enabled.
    Defaults to 5 if multiplex rate control is used. Enforces separation between repeated (cadence)
    I-frames and I-frames inserted by Scene Change Detection. If a scene change I-frame is within
    I-interval frames of a cadence I-frame, the GOP is shrunk and/or stretched to the scene change
    I-frame. GOP stretch requires enabling lookahead as well as setting I-interval. The normal
    cadence resumes for the next GOP. Note: Maximum GOP stretch = GOP size + Min-I-interval - 1

    - **ParDenominator** *(integer) --* Pixel Aspect Ratio denominator.

    - **ParNumerator** *(integer) --* Pixel Aspect Ratio numerator.

    - **Profile** *(string) --* H.265 Profile.

    - **QvbrQualityLevel** *(integer) --* Controls the target quality for the video encode. Applies
    only when the rate control mode is QVBR. Set values for the QVBR quality level field and Max
    bitrate field that suit your most important viewing devices. Recommended values are: - Primary
    screen: Quality level: 8 to 10. Max bitrate: 4M - PC or tablet: Quality level: 7. Max bitrate:
    1.5M to 3M - Smartphone: Quality level: 6. Max bitrate: 1M to 1.5M

    - **RateControlMode** *(string) --* Rate control mode. QVBR: Quality will match the specified
    quality level except when it is constrained by the maximum bitrate. Recommended if you or your
    viewers pay for bandwidth. CBR: Quality varies, depending on the video complexity. Recommended
    only if you distribute your assets to devices that cannot handle variable bitrates.

    - **ScanType** *(string) --* Sets the scan type of the output to progressive or top-field-first
    interlaced.

    - **SceneChangeDetect** *(string) --* Scene change detection.

    - **Slices** *(integer) --* Number of slices per picture. Must be less than or equal to the
    number of macroblock rows for progressive pictures, and less than or equal to half the number of
    macroblock rows for interlaced pictures. This field is optional; when no value is specified the
    encoder will choose the number of slices based on encode resolution.

    - **Tier** *(string) --* H.265 Tier.

    - **TimecodeInsertion** *(string) --* Determines how timecodes should be inserted into the video
    elementary stream. - 'disabled': Do not include timecodes - 'picTimingSei': Pass through picture
    timing SEI messages from the source specified in Timecode Config
    """


_ClientUpdateChannelResponseChannelEncoderSettingsVideoDescriptionsCodecSettingsTypeDef = TypedDict(
    "_ClientUpdateChannelResponseChannelEncoderSettingsVideoDescriptionsCodecSettingsTypeDef",
    {
        "FrameCaptureSettings": ClientUpdateChannelResponseChannelEncoderSettingsVideoDescriptionsCodecSettingsFrameCaptureSettingsTypeDef,
        "H264Settings": ClientUpdateChannelResponseChannelEncoderSettingsVideoDescriptionsCodecSettingsH264SettingsTypeDef,
        "H265Settings": ClientUpdateChannelResponseChannelEncoderSettingsVideoDescriptionsCodecSettingsH265SettingsTypeDef,
    },
    total=False,
)


class ClientUpdateChannelResponseChannelEncoderSettingsVideoDescriptionsCodecSettingsTypeDef(
    _ClientUpdateChannelResponseChannelEncoderSettingsVideoDescriptionsCodecSettingsTypeDef
):
    """
    Type definition for `ClientUpdateChannelResponseChannelEncoderSettingsVideoDescriptions`
    `CodecSettings`

    - **FrameCaptureSettings** *(dict) --* Frame Capture Settings

      - **CaptureInterval** *(integer) --* The frequency at which to capture frames for inclusion in
      the output. May be specified in either seconds or milliseconds, as specified by
      captureIntervalUnits.

    - **H264Settings** *(dict) --* H264 Settings

      - **AdaptiveQuantization** *(string) --* Adaptive quantization. Allows intra-frame quantizers
      to vary to improve visual quality.

      - **AfdSignaling** *(string) --* Indicates that AFD values will be written into the output
      stream. If afdSignaling is "auto", the system will try to preserve the input AFD value (in
      cases where multiple AFD values are valid). If set to "fixed", the AFD value will be the value
      configured in the fixedAfd parameter.

      - **Bitrate** *(integer) --* Average bitrate in bits/second. Required when the rate control
      mode is VBR or CBR. Not used for QVBR. In an MS Smooth output group, each output must have a
      unique value when its bitrate is rounded down to the nearest multiple of 1000.

      - **BufFillPct** *(integer) --* Percentage of the buffer that should initially be filled (HRD
      buffer model).

      - **BufSize** *(integer) --* Size of buffer (HRD buffer model) in bits.

      - **ColorMetadata** *(string) --* Includes colorspace metadata in the output.

      - **ColorSpaceSettings** *(dict) --* Color Space settings

        - **ColorSpacePassthroughSettings** *(dict) --* Passthrough applies no color space
        conversion to the output

        - **Rec601Settings** *(dict) --* Rec601 Settings

        - **Rec709Settings** *(dict) --* Rec709 Settings

      - **EntropyEncoding** *(string) --* Entropy encoding mode. Use cabac (must be in Main or High
      profile) or cavlc.

      - **FixedAfd** *(string) --* Four bit AFD value to write on all frames of video in the output
      stream. Only valid when afdSignaling is set to 'Fixed'.

      - **FlickerAq** *(string) --* If set to enabled, adjust quantization within each frame to
      reduce flicker or 'pop' on I-frames.

      - **FramerateControl** *(string) --* This field indicates how the output video frame rate is
      specified. If "specified" is selected then the output video frame rate is determined by
      framerateNumerator and framerateDenominator, else if "initializeFromSource" is selected then
      the output video frame rate will be set equal to the input video frame rate of the first
      input.

      - **FramerateDenominator** *(integer) --* Framerate denominator.

      - **FramerateNumerator** *(integer) --* Framerate numerator - framerate is a fraction, e.g.
      24000 / 1001 = 23.976 fps.

      - **GopBReference** *(string) --* Documentation update needed

      - **GopClosedCadence** *(integer) --* Frequency of closed GOPs. In streaming applications, it
      is recommended that this be set to 1 so a decoder joining mid-stream will receive an IDR frame
      as quickly as possible. Setting this value to 0 will break output segmenting.

      - **GopNumBFrames** *(integer) --* Number of B-frames between reference frames.

      - **GopSize** *(float) --* GOP size (keyframe interval) in units of either frames or seconds
      per gopSizeUnits. If gopSizeUnits is frames, gopSize must be an integer and must be greater
      than or equal to 1. If gopSizeUnits is seconds, gopSize must be greater than 0, but need not
      be an integer.

      - **GopSizeUnits** *(string) --* Indicates if the gopSize is specified in frames or seconds.
      If seconds the system will convert the gopSize into a frame count at run time.

      - **Level** *(string) --* H.264 Level.

      - **LookAheadRateControl** *(string) --* Amount of lookahead. A value of low can decrease
      latency and memory usage, while high can produce better quality for certain content.

      - **MaxBitrate** *(integer) --* For QVBR: See the tooltip for Quality level For VBR: Set the
      maximum bitrate in order to accommodate expected spikes in the complexity of the video.

      - **MinIInterval** *(integer) --* Only meaningful if sceneChangeDetect is set to enabled.
      Defaults to 5 if multiplex rate control is used. Enforces separation between repeated
      (cadence) I-frames and I-frames inserted by Scene Change Detection. If a scene change I-frame
      is within I-interval frames of a cadence I-frame, the GOP is shrunk and/or stretched to the
      scene change I-frame. GOP stretch requires enabling lookahead as well as setting I-interval.
      The normal cadence resumes for the next GOP. Note: Maximum GOP stretch = GOP size +
      Min-I-interval - 1

      - **NumRefFrames** *(integer) --* Number of reference frames to use. The encoder may use more
      than requested if using B-frames and/or interlaced encoding.

      - **ParControl** *(string) --* This field indicates how the output pixel aspect ratio is
      specified. If "specified" is selected then the output video pixel aspect ratio is determined
      by parNumerator and parDenominator, else if "initializeFromSource" is selected then the output
      pixsel aspect ratio will be set equal to the input video pixel aspect ratio of the first
      input.

      - **ParDenominator** *(integer) --* Pixel Aspect Ratio denominator.

      - **ParNumerator** *(integer) --* Pixel Aspect Ratio numerator.

      - **Profile** *(string) --* H.264 Profile.

      - **QvbrQualityLevel** *(integer) --* Controls the target quality for the video encode.
      Applies only when the rate control mode is QVBR. Set values for the QVBR quality level field
      and Max bitrate field that suit your most important viewing devices. Recommended values are: -
      Primary screen: Quality level: 8 to 10. Max bitrate: 4M - PC or tablet: Quality level: 7. Max
      bitrate: 1.5M to 3M - Smartphone: Quality level: 6. Max bitrate: 1M to 1.5M

      - **RateControlMode** *(string) --* Rate control mode. QVBR: Quality will match the specified
      quality level except when it is constrained by the maximum bitrate. Recommended if you or your
      viewers pay for bandwidth. VBR: Quality and bitrate vary, depending on the video complexity.
      Recommended instead of QVBR if you want to maintain a specific average bitrate over the
      duration of the channel. CBR: Quality varies, depending on the video complexity. Recommended
      only if you distribute your assets to devices that cannot handle variable bitrates.

      - **ScanType** *(string) --* Sets the scan type of the output to progressive or
      top-field-first interlaced.

      - **SceneChangeDetect** *(string) --* Scene change detection. - On: inserts I-frames when
      scene change is detected. - Off: does not force an I-frame when scene change is detected.

      - **Slices** *(integer) --* Number of slices per picture. Must be less than or equal to the
      number of macroblock rows for progressive pictures, and less than or equal to half the number
      of macroblock rows for interlaced pictures. This field is optional; when no value is specified
      the encoder will choose the number of slices based on encode resolution.

      - **Softness** *(integer) --* Softness. Selects quantizer matrix, larger values reduce
      high-frequency content in the encoded image.

      - **SpatialAq** *(string) --* If set to enabled, adjust quantization within each frame based
      on spatial variation of content complexity.

      - **SubgopLength** *(string) --* If set to fixed, use gopNumBFrames B-frames per sub-GOP. If
      set to dynamic, optimize the number of B-frames used for each sub-GOP to improve visual
      quality.

      - **Syntax** *(string) --* Produces a bitstream compliant with SMPTE RP-2027.

      - **TemporalAq** *(string) --* If set to enabled, adjust quantization within each frame based
      on temporal variation of content complexity.

      - **TimecodeInsertion** *(string) --* Determines how timecodes should be inserted into the
      video elementary stream. - 'disabled': Do not include timecodes - 'picTimingSei': Pass through
      picture timing SEI messages from the source specified in Timecode Config

    - **H265Settings** *(dict) --* H265 Settings

      - **AdaptiveQuantization** *(string) --* Adaptive quantization. Allows intra-frame quantizers
      to vary to improve visual quality.

      - **AfdSignaling** *(string) --* Indicates that AFD values will be written into the output
      stream. If afdSignaling is "auto", the system will try to preserve the input AFD value (in
      cases where multiple AFD values are valid). If set to "fixed", the AFD value will be the value
      configured in the fixedAfd parameter.

      - **AlternativeTransferFunction** *(string) --* Whether or not EML should insert an
      Alternative Transfer Function SEI message to support backwards compatibility with non-HDR
      decoders and displays.

      - **Bitrate** *(integer) --* Average bitrate in bits/second. Required when the rate control
      mode is VBR or CBR. Not used for QVBR. In an MS Smooth output group, each output must have a
      unique value when its bitrate is rounded down to the nearest multiple of 1000.

      - **BufSize** *(integer) --* Size of buffer (HRD buffer model) in bits.

      - **ColorMetadata** *(string) --* Includes colorspace metadata in the output.

      - **ColorSpaceSettings** *(dict) --* Color Space settings

        - **ColorSpacePassthroughSettings** *(dict) --* Passthrough applies no color space
        conversion to the output

        - **Hdr10Settings** *(dict) --* Hdr10 Settings

          - **MaxCll** *(integer) --* Maximum Content Light Level An integer metadata value defining
          the maximum light level, in nits, of any single pixel within an encoded HDR video stream
          or file.

          - **MaxFall** *(integer) --* Maximum Frame Average Light Level An integer metadata value
          defining the maximum average light level, in nits, for any single frame within an encoded
          HDR video stream or file.

        - **Rec601Settings** *(dict) --* Rec601 Settings

        - **Rec709Settings** *(dict) --* Rec709 Settings

      - **FixedAfd** *(string) --* Four bit AFD value to write on all frames of video in the output
      stream. Only valid when afdSignaling is set to 'Fixed'.

      - **FlickerAq** *(string) --* If set to enabled, adjust quantization within each frame to
      reduce flicker or 'pop' on I-frames.

      - **FramerateDenominator** *(integer) --* Framerate denominator.

      - **FramerateNumerator** *(integer) --* Framerate numerator - framerate is a fraction, e.g.
      24000 / 1001 = 23.976 fps.

      - **GopClosedCadence** *(integer) --* Frequency of closed GOPs. In streaming applications, it
      is recommended that this be set to 1 so a decoder joining mid-stream will receive an IDR frame
      as quickly as possible. Setting this value to 0 will break output segmenting.

      - **GopSize** *(float) --* GOP size (keyframe interval) in units of either frames or seconds
      per gopSizeUnits. If gopSizeUnits is frames, gopSize must be an integer and must be greater
      than or equal to 1. If gopSizeUnits is seconds, gopSize must be greater than 0, but need not
      be an integer.

      - **GopSizeUnits** *(string) --* Indicates if the gopSize is specified in frames or seconds.
      If seconds the system will convert the gopSize into a frame count at run time.

      - **Level** *(string) --* H.265 Level.

      - **LookAheadRateControl** *(string) --* Amount of lookahead. A value of low can decrease
      latency and memory usage, while high can produce better quality for certain content.

      - **MaxBitrate** *(integer) --* For QVBR: See the tooltip for Quality level

      - **MinIInterval** *(integer) --* Only meaningful if sceneChangeDetect is set to enabled.
      Defaults to 5 if multiplex rate control is used. Enforces separation between repeated
      (cadence) I-frames and I-frames inserted by Scene Change Detection. If a scene change I-frame
      is within I-interval frames of a cadence I-frame, the GOP is shrunk and/or stretched to the
      scene change I-frame. GOP stretch requires enabling lookahead as well as setting I-interval.
      The normal cadence resumes for the next GOP. Note: Maximum GOP stretch = GOP size +
      Min-I-interval - 1

      - **ParDenominator** *(integer) --* Pixel Aspect Ratio denominator.

      - **ParNumerator** *(integer) --* Pixel Aspect Ratio numerator.

      - **Profile** *(string) --* H.265 Profile.

      - **QvbrQualityLevel** *(integer) --* Controls the target quality for the video encode.
      Applies only when the rate control mode is QVBR. Set values for the QVBR quality level field
      and Max bitrate field that suit your most important viewing devices. Recommended values are: -
      Primary screen: Quality level: 8 to 10. Max bitrate: 4M - PC or tablet: Quality level: 7. Max
      bitrate: 1.5M to 3M - Smartphone: Quality level: 6. Max bitrate: 1M to 1.5M

      - **RateControlMode** *(string) --* Rate control mode. QVBR: Quality will match the specified
      quality level except when it is constrained by the maximum bitrate. Recommended if you or your
      viewers pay for bandwidth. CBR: Quality varies, depending on the video complexity. Recommended
      only if you distribute your assets to devices that cannot handle variable bitrates.

      - **ScanType** *(string) --* Sets the scan type of the output to progressive or
      top-field-first interlaced.

      - **SceneChangeDetect** *(string) --* Scene change detection.

      - **Slices** *(integer) --* Number of slices per picture. Must be less than or equal to the
      number of macroblock rows for progressive pictures, and less than or equal to half the number
      of macroblock rows for interlaced pictures. This field is optional; when no value is specified
      the encoder will choose the number of slices based on encode resolution.

      - **Tier** *(string) --* H.265 Tier.

      - **TimecodeInsertion** *(string) --* Determines how timecodes should be inserted into the
      video elementary stream. - 'disabled': Do not include timecodes - 'picTimingSei': Pass through
      picture timing SEI messages from the source specified in Timecode Config
    """


_ClientUpdateChannelResponseChannelEncoderSettingsVideoDescriptionsTypeDef = TypedDict(
    "_ClientUpdateChannelResponseChannelEncoderSettingsVideoDescriptionsTypeDef",
    {
        "CodecSettings": ClientUpdateChannelResponseChannelEncoderSettingsVideoDescriptionsCodecSettingsTypeDef,
        "Height": int,
        "Name": str,
        "RespondToAfd": str,
        "ScalingBehavior": str,
        "Sharpness": int,
        "Width": int,
    },
    total=False,
)


class ClientUpdateChannelResponseChannelEncoderSettingsVideoDescriptionsTypeDef(
    _ClientUpdateChannelResponseChannelEncoderSettingsVideoDescriptionsTypeDef
):
    """
    Type definition for `ClientUpdateChannelResponseChannelEncoderSettings` `VideoDescriptions`

    - **CodecSettings** *(dict) --* Video codec settings.

      - **FrameCaptureSettings** *(dict) --* Frame Capture Settings

        - **CaptureInterval** *(integer) --* The frequency at which to capture frames for inclusion
        in the output. May be specified in either seconds or milliseconds, as specified by
        captureIntervalUnits.

      - **H264Settings** *(dict) --* H264 Settings

        - **AdaptiveQuantization** *(string) --* Adaptive quantization. Allows intra-frame
        quantizers to vary to improve visual quality.

        - **AfdSignaling** *(string) --* Indicates that AFD values will be written into the output
        stream. If afdSignaling is "auto", the system will try to preserve the input AFD value (in
        cases where multiple AFD values are valid). If set to "fixed", the AFD value will be the
        value configured in the fixedAfd parameter.

        - **Bitrate** *(integer) --* Average bitrate in bits/second. Required when the rate control
        mode is VBR or CBR. Not used for QVBR. In an MS Smooth output group, each output must have a
        unique value when its bitrate is rounded down to the nearest multiple of 1000.

        - **BufFillPct** *(integer) --* Percentage of the buffer that should initially be filled
        (HRD buffer model).

        - **BufSize** *(integer) --* Size of buffer (HRD buffer model) in bits.

        - **ColorMetadata** *(string) --* Includes colorspace metadata in the output.

        - **ColorSpaceSettings** *(dict) --* Color Space settings

          - **ColorSpacePassthroughSettings** *(dict) --* Passthrough applies no color space
          conversion to the output

          - **Rec601Settings** *(dict) --* Rec601 Settings

          - **Rec709Settings** *(dict) --* Rec709 Settings

        - **EntropyEncoding** *(string) --* Entropy encoding mode. Use cabac (must be in Main or
        High profile) or cavlc.

        - **FixedAfd** *(string) --* Four bit AFD value to write on all frames of video in the
        output stream. Only valid when afdSignaling is set to 'Fixed'.

        - **FlickerAq** *(string) --* If set to enabled, adjust quantization within each frame to
        reduce flicker or 'pop' on I-frames.

        - **FramerateControl** *(string) --* This field indicates how the output video frame rate is
        specified. If "specified" is selected then the output video frame rate is determined by
        framerateNumerator and framerateDenominator, else if "initializeFromSource" is selected then
        the output video frame rate will be set equal to the input video frame rate of the first
        input.

        - **FramerateDenominator** *(integer) --* Framerate denominator.

        - **FramerateNumerator** *(integer) --* Framerate numerator - framerate is a fraction, e.g.
        24000 / 1001 = 23.976 fps.

        - **GopBReference** *(string) --* Documentation update needed

        - **GopClosedCadence** *(integer) --* Frequency of closed GOPs. In streaming applications,
        it is recommended that this be set to 1 so a decoder joining mid-stream will receive an IDR
        frame as quickly as possible. Setting this value to 0 will break output segmenting.

        - **GopNumBFrames** *(integer) --* Number of B-frames between reference frames.

        - **GopSize** *(float) --* GOP size (keyframe interval) in units of either frames or seconds
        per gopSizeUnits. If gopSizeUnits is frames, gopSize must be an integer and must be greater
        than or equal to 1. If gopSizeUnits is seconds, gopSize must be greater than 0, but need not
        be an integer.

        - **GopSizeUnits** *(string) --* Indicates if the gopSize is specified in frames or seconds.
        If seconds the system will convert the gopSize into a frame count at run time.

        - **Level** *(string) --* H.264 Level.

        - **LookAheadRateControl** *(string) --* Amount of lookahead. A value of low can decrease
        latency and memory usage, while high can produce better quality for certain content.

        - **MaxBitrate** *(integer) --* For QVBR: See the tooltip for Quality level For VBR: Set the
        maximum bitrate in order to accommodate expected spikes in the complexity of the video.

        - **MinIInterval** *(integer) --* Only meaningful if sceneChangeDetect is set to enabled.
        Defaults to 5 if multiplex rate control is used. Enforces separation between repeated
        (cadence) I-frames and I-frames inserted by Scene Change Detection. If a scene change
        I-frame is within I-interval frames of a cadence I-frame, the GOP is shrunk and/or stretched
        to the scene change I-frame. GOP stretch requires enabling lookahead as well as setting
        I-interval. The normal cadence resumes for the next GOP. Note: Maximum GOP stretch = GOP
        size + Min-I-interval - 1

        - **NumRefFrames** *(integer) --* Number of reference frames to use. The encoder may use
        more than requested if using B-frames and/or interlaced encoding.

        - **ParControl** *(string) --* This field indicates how the output pixel aspect ratio is
        specified. If "specified" is selected then the output video pixel aspect ratio is determined
        by parNumerator and parDenominator, else if "initializeFromSource" is selected then the
        output pixsel aspect ratio will be set equal to the input video pixel aspect ratio of the
        first input.

        - **ParDenominator** *(integer) --* Pixel Aspect Ratio denominator.

        - **ParNumerator** *(integer) --* Pixel Aspect Ratio numerator.

        - **Profile** *(string) --* H.264 Profile.

        - **QvbrQualityLevel** *(integer) --* Controls the target quality for the video encode.
        Applies only when the rate control mode is QVBR. Set values for the QVBR quality level field
        and Max bitrate field that suit your most important viewing devices. Recommended values are:
        - Primary screen: Quality level: 8 to 10. Max bitrate: 4M - PC or tablet: Quality level: 7.
        Max bitrate: 1.5M to 3M - Smartphone: Quality level: 6. Max bitrate: 1M to 1.5M

        - **RateControlMode** *(string) --* Rate control mode. QVBR: Quality will match the
        specified quality level except when it is constrained by the maximum bitrate. Recommended if
        you or your viewers pay for bandwidth. VBR: Quality and bitrate vary, depending on the video
        complexity. Recommended instead of QVBR if you want to maintain a specific average bitrate
        over the duration of the channel. CBR: Quality varies, depending on the video complexity.
        Recommended only if you distribute your assets to devices that cannot handle variable
        bitrates.

        - **ScanType** *(string) --* Sets the scan type of the output to progressive or
        top-field-first interlaced.

        - **SceneChangeDetect** *(string) --* Scene change detection. - On: inserts I-frames when
        scene change is detected. - Off: does not force an I-frame when scene change is detected.

        - **Slices** *(integer) --* Number of slices per picture. Must be less than or equal to the
        number of macroblock rows for progressive pictures, and less than or equal to half the
        number of macroblock rows for interlaced pictures. This field is optional; when no value is
        specified the encoder will choose the number of slices based on encode resolution.

        - **Softness** *(integer) --* Softness. Selects quantizer matrix, larger values reduce
        high-frequency content in the encoded image.

        - **SpatialAq** *(string) --* If set to enabled, adjust quantization within each frame based
        on spatial variation of content complexity.

        - **SubgopLength** *(string) --* If set to fixed, use gopNumBFrames B-frames per sub-GOP. If
        set to dynamic, optimize the number of B-frames used for each sub-GOP to improve visual
        quality.

        - **Syntax** *(string) --* Produces a bitstream compliant with SMPTE RP-2027.

        - **TemporalAq** *(string) --* If set to enabled, adjust quantization within each frame
        based on temporal variation of content complexity.

        - **TimecodeInsertion** *(string) --* Determines how timecodes should be inserted into the
        video elementary stream. - 'disabled': Do not include timecodes - 'picTimingSei': Pass
        through picture timing SEI messages from the source specified in Timecode Config

      - **H265Settings** *(dict) --* H265 Settings

        - **AdaptiveQuantization** *(string) --* Adaptive quantization. Allows intra-frame
        quantizers to vary to improve visual quality.

        - **AfdSignaling** *(string) --* Indicates that AFD values will be written into the output
        stream. If afdSignaling is "auto", the system will try to preserve the input AFD value (in
        cases where multiple AFD values are valid). If set to "fixed", the AFD value will be the
        value configured in the fixedAfd parameter.

        - **AlternativeTransferFunction** *(string) --* Whether or not EML should insert an
        Alternative Transfer Function SEI message to support backwards compatibility with non-HDR
        decoders and displays.

        - **Bitrate** *(integer) --* Average bitrate in bits/second. Required when the rate control
        mode is VBR or CBR. Not used for QVBR. In an MS Smooth output group, each output must have a
        unique value when its bitrate is rounded down to the nearest multiple of 1000.

        - **BufSize** *(integer) --* Size of buffer (HRD buffer model) in bits.

        - **ColorMetadata** *(string) --* Includes colorspace metadata in the output.

        - **ColorSpaceSettings** *(dict) --* Color Space settings

          - **ColorSpacePassthroughSettings** *(dict) --* Passthrough applies no color space
          conversion to the output

          - **Hdr10Settings** *(dict) --* Hdr10 Settings

            - **MaxCll** *(integer) --* Maximum Content Light Level An integer metadata value
            defining the maximum light level, in nits, of any single pixel within an encoded HDR
            video stream or file.

            - **MaxFall** *(integer) --* Maximum Frame Average Light Level An integer metadata value
            defining the maximum average light level, in nits, for any single frame within an
            encoded HDR video stream or file.

          - **Rec601Settings** *(dict) --* Rec601 Settings

          - **Rec709Settings** *(dict) --* Rec709 Settings

        - **FixedAfd** *(string) --* Four bit AFD value to write on all frames of video in the
        output stream. Only valid when afdSignaling is set to 'Fixed'.

        - **FlickerAq** *(string) --* If set to enabled, adjust quantization within each frame to
        reduce flicker or 'pop' on I-frames.

        - **FramerateDenominator** *(integer) --* Framerate denominator.

        - **FramerateNumerator** *(integer) --* Framerate numerator - framerate is a fraction, e.g.
        24000 / 1001 = 23.976 fps.

        - **GopClosedCadence** *(integer) --* Frequency of closed GOPs. In streaming applications,
        it is recommended that this be set to 1 so a decoder joining mid-stream will receive an IDR
        frame as quickly as possible. Setting this value to 0 will break output segmenting.

        - **GopSize** *(float) --* GOP size (keyframe interval) in units of either frames or seconds
        per gopSizeUnits. If gopSizeUnits is frames, gopSize must be an integer and must be greater
        than or equal to 1. If gopSizeUnits is seconds, gopSize must be greater than 0, but need not
        be an integer.

        - **GopSizeUnits** *(string) --* Indicates if the gopSize is specified in frames or seconds.
        If seconds the system will convert the gopSize into a frame count at run time.

        - **Level** *(string) --* H.265 Level.

        - **LookAheadRateControl** *(string) --* Amount of lookahead. A value of low can decrease
        latency and memory usage, while high can produce better quality for certain content.

        - **MaxBitrate** *(integer) --* For QVBR: See the tooltip for Quality level

        - **MinIInterval** *(integer) --* Only meaningful if sceneChangeDetect is set to enabled.
        Defaults to 5 if multiplex rate control is used. Enforces separation between repeated
        (cadence) I-frames and I-frames inserted by Scene Change Detection. If a scene change
        I-frame is within I-interval frames of a cadence I-frame, the GOP is shrunk and/or stretched
        to the scene change I-frame. GOP stretch requires enabling lookahead as well as setting
        I-interval. The normal cadence resumes for the next GOP. Note: Maximum GOP stretch = GOP
        size + Min-I-interval - 1

        - **ParDenominator** *(integer) --* Pixel Aspect Ratio denominator.

        - **ParNumerator** *(integer) --* Pixel Aspect Ratio numerator.

        - **Profile** *(string) --* H.265 Profile.

        - **QvbrQualityLevel** *(integer) --* Controls the target quality for the video encode.
        Applies only when the rate control mode is QVBR. Set values for the QVBR quality level field
        and Max bitrate field that suit your most important viewing devices. Recommended values are:
        - Primary screen: Quality level: 8 to 10. Max bitrate: 4M - PC or tablet: Quality level: 7.
        Max bitrate: 1.5M to 3M - Smartphone: Quality level: 6. Max bitrate: 1M to 1.5M

        - **RateControlMode** *(string) --* Rate control mode. QVBR: Quality will match the
        specified quality level except when it is constrained by the maximum bitrate. Recommended if
        you or your viewers pay for bandwidth. CBR: Quality varies, depending on the video
        complexity. Recommended only if you distribute your assets to devices that cannot handle
        variable bitrates.

        - **ScanType** *(string) --* Sets the scan type of the output to progressive or
        top-field-first interlaced.

        - **SceneChangeDetect** *(string) --* Scene change detection.

        - **Slices** *(integer) --* Number of slices per picture. Must be less than or equal to the
        number of macroblock rows for progressive pictures, and less than or equal to half the
        number of macroblock rows for interlaced pictures. This field is optional; when no value is
        specified the encoder will choose the number of slices based on encode resolution.

        - **Tier** *(string) --* H.265 Tier.

        - **TimecodeInsertion** *(string) --* Determines how timecodes should be inserted into the
        video elementary stream. - 'disabled': Do not include timecodes - 'picTimingSei': Pass
        through picture timing SEI messages from the source specified in Timecode Config

    - **Height** *(integer) --* Output video height, in pixels. Must be an even number. For most
    codecs, you can leave this field and width blank in order to use the height and width
    (resolution) from the source. Note, however, that leaving blank is not recommended. For the
    Frame Capture codec, height and width are required.

    - **Name** *(string) --* The name of this VideoDescription. Outputs will use this name to
    uniquely identify this Description. Description names should be unique within this Live Event.

    - **RespondToAfd** *(string) --* Indicates how to respond to the AFD values in the input stream.
    RESPOND causes input video to be clipped, depending on the AFD value, input display aspect
    ratio, and output display aspect ratio, and (except for FRAMECAPTURE codec) includes the values
    in the output. PASSTHROUGH (does not apply to FRAMECAPTURE codec) ignores the AFD values and
    includes the values in the output, so input video is not clipped. NONE ignores the AFD values
    and does not include the values through to the output, so input video is not clipped.

    - **ScalingBehavior** *(string) --* STRETCHTOOUTPUT configures the output position to stretch
    the video to the specified output resolution (height and width). This option will override any
    position value. DEFAULT may insert black boxes (pillar boxes or letter boxes) around the video
    to provide the specified output resolution.

    - **Sharpness** *(integer) --* Changes the strength of the anti-alias filter used for scaling. 0
    is the softest setting, 100 is the sharpest. A setting of 50 is recommended for most content.

    - **Width** *(integer) --* Output video width, in pixels. Must be an even number. For most
    codecs, you can leave this field and height blank in order to use the height and width
    (resolution) from the source. Note, however, that leaving blank is not recommended. For the
    Frame Capture codec, height and width are required.
    """


_ClientUpdateChannelResponseChannelEncoderSettingsTypeDef = TypedDict(
    "_ClientUpdateChannelResponseChannelEncoderSettingsTypeDef",
    {
        "AudioDescriptions": List[
            ClientUpdateChannelResponseChannelEncoderSettingsAudioDescriptionsTypeDef
        ],
        "AvailBlanking": ClientUpdateChannelResponseChannelEncoderSettingsAvailBlankingTypeDef,
        "AvailConfiguration": ClientUpdateChannelResponseChannelEncoderSettingsAvailConfigurationTypeDef,
        "BlackoutSlate": ClientUpdateChannelResponseChannelEncoderSettingsBlackoutSlateTypeDef,
        "CaptionDescriptions": List[
            ClientUpdateChannelResponseChannelEncoderSettingsCaptionDescriptionsTypeDef
        ],
        "GlobalConfiguration": ClientUpdateChannelResponseChannelEncoderSettingsGlobalConfigurationTypeDef,
        "NielsenConfiguration": ClientUpdateChannelResponseChannelEncoderSettingsNielsenConfigurationTypeDef,
        "OutputGroups": List[ClientUpdateChannelResponseChannelEncoderSettingsOutputGroupsTypeDef],
        "TimecodeConfig": ClientUpdateChannelResponseChannelEncoderSettingsTimecodeConfigTypeDef,
        "VideoDescriptions": List[
            ClientUpdateChannelResponseChannelEncoderSettingsVideoDescriptionsTypeDef
        ],
    },
    total=False,
)


class ClientUpdateChannelResponseChannelEncoderSettingsTypeDef(
    _ClientUpdateChannelResponseChannelEncoderSettingsTypeDef
):
    """
    Type definition for `ClientUpdateChannelResponseChannel` `EncoderSettings`

    - **AudioDescriptions** *(list) --* Placeholder documentation for __listOfAudioDescription

      - *(dict) --* Audio Description

        - **AudioNormalizationSettings** *(dict) --* Advanced audio normalization settings.

          - **Algorithm** *(string) --* Audio normalization algorithm to use. itu17701 conforms to
          the CALM Act specification, itu17702 conforms to the EBU R-128 specification.

          - **AlgorithmControl** *(string) --* When set to correctAudio the output audio is
          corrected using the chosen algorithm. If set to measureOnly, the audio will be measured
          but not adjusted.

          - **TargetLkfs** *(float) --* Target LKFS(loudness) to adjust volume to. If no value is
          entered, a default value will be used according to the chosen algorithm. The CALM Act
          (1770-1) recommends a target of -24 LKFS. The EBU R-128 specification (1770-2) recommends
          a target of -23 LKFS.

        - **AudioSelectorName** *(string) --* The name of the AudioSelector used as the source for
        this AudioDescription.

        - **AudioType** *(string) --* Applies only if audioTypeControl is useConfigured. The values
        for audioType are defined in ISO-IEC 13818-1.

        - **AudioTypeControl** *(string) --* Determines how audio type is determined. followInput:
        If the input contains an ISO 639 audioType, then that value is passed through to the output.
        If the input contains no ISO 639 audioType, the value in Audio Type is included in the
        output. useConfigured: The value in Audio Type is included in the output. Note that this
        field and audioType are both ignored if inputType is broadcasterMixedAd.

        - **CodecSettings** *(dict) --* Audio codec settings.

          - **AacSettings** *(dict) --* Aac Settings

            - **Bitrate** *(float) --* Average bitrate in bits/second. Valid values depend on rate
            control mode and profile.

            - **CodingMode** *(string) --* Mono, Stereo, or 5.1 channel layout. Valid values depend
            on rate control mode and profile. The adReceiverMix setting receives a stereo
            description plus control track and emits a mono AAC encode of the description track,
            with control data emitted in the PES header as per ETSI TS 101 154 Annex E.

            - **InputType** *(string) --* Set to "broadcasterMixedAd" when input contains pre-mixed
            main audio + AD (narration) as a stereo pair. The Audio Type field (audioType) will be
            set to 3, which signals to downstream systems that this stream contains "broadcaster
            mixed AD". Note that the input received by the encoder must contain pre-mixed audio; the
            encoder does not perform the mixing. The values in audioTypeControl and audioType (in
            AudioDescription) are ignored when set to broadcasterMixedAd. Leave set to "normal" when
            input does not contain pre-mixed audio + AD.

            - **Profile** *(string) --* AAC Profile.

            - **RateControlMode** *(string) --* Rate Control Mode.

            - **RawFormat** *(string) --* Sets LATM / LOAS AAC output for raw containers.

            - **SampleRate** *(float) --* Sample rate in Hz. Valid values depend on rate control
            mode and profile.

            - **Spec** *(string) --* Use MPEG-2 AAC audio instead of MPEG-4 AAC audio for raw or
            MPEG-2 Transport Stream containers.

            - **VbrQuality** *(string) --* VBR Quality Level - Only used if rateControlMode is VBR.

          - **Ac3Settings** *(dict) --* Ac3 Settings

            - **Bitrate** *(float) --* Average bitrate in bits/second. Valid bitrates depend on the
            coding mode.

            - **BitstreamMode** *(string) --* Specifies the bitstream mode (bsmod) for the emitted
            AC-3 stream. See ATSC A/52-2012 for background on these values.

            - **CodingMode** *(string) --* Dolby Digital coding mode. Determines number of channels.

            - **Dialnorm** *(integer) --* Sets the dialnorm for the output. If excluded and input
            audio is Dolby Digital, dialnorm will be passed through.

            - **DrcProfile** *(string) --* If set to filmStandard, adds dynamic range compression
            signaling to the output bitstream as defined in the Dolby Digital specification.

            - **LfeFilter** *(string) --* When set to enabled, applies a 120Hz lowpass filter to the
            LFE channel prior to encoding. Only valid in codingMode32Lfe mode.

            - **MetadataControl** *(string) --* When set to "followInput", encoder metadata will be
            sourced from the DD, DD+, or DolbyE decoder that supplied this audio data. If audio was
            not supplied from one of these streams, then the static metadata settings will be used.

          - **Eac3Settings** *(dict) --* Eac3 Settings

            - **AttenuationControl** *(string) --* When set to attenuate3Db, applies a 3 dB
            attenuation to the surround channels. Only used for 3/2 coding mode.

            - **Bitrate** *(float) --* Average bitrate in bits/second. Valid bitrates depend on the
            coding mode.

            - **BitstreamMode** *(string) --* Specifies the bitstream mode (bsmod) for the emitted
            E-AC-3 stream. See ATSC A/52-2012 (Annex E) for background on these values.

            - **CodingMode** *(string) --* Dolby Digital Plus coding mode. Determines number of
            channels.

            - **DcFilter** *(string) --* When set to enabled, activates a DC highpass filter for all
            input channels.

            - **Dialnorm** *(integer) --* Sets the dialnorm for the output. If blank and input audio
            is Dolby Digital Plus, dialnorm will be passed through.

            - **DrcLine** *(string) --* Sets the Dolby dynamic range compression profile.

            - **DrcRf** *(string) --* Sets the profile for heavy Dolby dynamic range compression,
            ensures that the instantaneous signal peaks do not exceed specified levels.

            - **LfeControl** *(string) --* When encoding 3/2 audio, setting to lfe enables the LFE
            channel

            - **LfeFilter** *(string) --* When set to enabled, applies a 120Hz lowpass filter to the
            LFE channel prior to encoding. Only valid with codingMode32 coding mode.

            - **LoRoCenterMixLevel** *(float) --* Left only/Right only center mix level. Only used
            for 3/2 coding mode.

            - **LoRoSurroundMixLevel** *(float) --* Left only/Right only surround mix level. Only
            used for 3/2 coding mode.

            - **LtRtCenterMixLevel** *(float) --* Left total/Right total center mix level. Only used
            for 3/2 coding mode.

            - **LtRtSurroundMixLevel** *(float) --* Left total/Right total surround mix level. Only
            used for 3/2 coding mode.

            - **MetadataControl** *(string) --* When set to followInput, encoder metadata will be
            sourced from the DD, DD+, or DolbyE decoder that supplied this audio data. If audio was
            not supplied from one of these streams, then the static metadata settings will be used.

            - **PassthroughControl** *(string) --* When set to whenPossible, input DD+ audio will be
            passed through if it is present on the input. This detection is dynamic over the life of
            the transcode. Inputs that alternate between DD+ and non-DD+ content will have a
            consistent DD+ output as the system alternates between passthrough and encoding.

            - **PhaseControl** *(string) --* When set to shift90Degrees, applies a 90-degree phase
            shift to the surround channels. Only used for 3/2 coding mode.

            - **StereoDownmix** *(string) --* Stereo downmix preference. Only used for 3/2 coding
            mode.

            - **SurroundExMode** *(string) --* When encoding 3/2 audio, sets whether an extra center
            back surround channel is matrix encoded into the left and right surround channels.

            - **SurroundMode** *(string) --* When encoding 2/0 audio, sets whether Dolby Surround is
            matrix encoded into the two channels.

          - **Mp2Settings** *(dict) --* Mp2 Settings

            - **Bitrate** *(float) --* Average bitrate in bits/second.

            - **CodingMode** *(string) --* The MPEG2 Audio coding mode. Valid values are
            codingMode10 (for mono) or codingMode20 (for stereo).

            - **SampleRate** *(float) --* Sample rate in Hz.

          - **PassThroughSettings** *(dict) --* Pass Through Settings

        - **LanguageCode** *(string) --* Indicates the language of the audio output track. Only used
        if languageControlMode is useConfigured, or there is no ISO 639 language code specified in
        the input.

        - **LanguageCodeControl** *(string) --* Choosing followInput will cause the ISO 639 language
        code of the output to follow the ISO 639 language code of the input. The languageCode will
        be used when useConfigured is set, or when followInput is selected but there is no ISO 639
        language code specified by the input.

        - **Name** *(string) --* The name of this AudioDescription. Outputs will use this name to
        uniquely identify this AudioDescription. Description names should be unique within this Live
        Event.

        - **RemixSettings** *(dict) --* Settings that control how input audio channels are remixed
        into the output audio channels.

          - **ChannelMappings** *(list) --* Mapping of input channels to output channels, with
          appropriate gain adjustments.

            - *(dict) --* Audio Channel Mapping

              - **InputChannelLevels** *(list) --* Indices and gain values for each input channel
              that should be remixed into this output channel.

                - *(dict) --* Input Channel Level

                  - **Gain** *(integer) --* Remixing value. Units are in dB and acceptable values
                  are within the range from -60 (mute) and 6 dB.

                  - **InputChannel** *(integer) --* The index of the input channel used as a source.

              - **OutputChannel** *(integer) --* The index of the output channel being produced.

          - **ChannelsIn** *(integer) --* Number of input channels to be used.

          - **ChannelsOut** *(integer) --* Number of output channels to be produced. Valid values:
          1, 2, 4, 6, 8

        - **StreamName** *(string) --* Used for MS Smooth and Apple HLS outputs. Indicates the name
        displayed by the player (eg. English, or Director Commentary).

    - **AvailBlanking** *(dict) --* Settings for ad avail blanking.

      - **AvailBlankingImage** *(dict) --* Blanking image to be used. Leave empty for solid black.
      Only bmp and png images are supported.

        - **PasswordParam** *(string) --* key used to extract the password from EC2 Parameter store

        - **Uri** *(string) --* Uniform Resource Identifier - This should be a path to a file
        accessible to the Live system (eg. a http:// URI) depending on the output type. For example,
        a RTMP destination should have a uri simliar to: "rtmp://fmsserver/live".

        - **Username** *(string) --* Documentation update needed

      - **State** *(string) --* When set to enabled, causes video, audio and captions to be blanked
      when insertion metadata is added.

    - **AvailConfiguration** *(dict) --* Event-wide configuration settings for ad avail insertion.

      - **AvailSettings** *(dict) --* Ad avail settings.

        - **Scte35SpliceInsert** *(dict) --* Scte35 Splice Insert

          - **AdAvailOffset** *(integer) --* When specified, this offset (in milliseconds) is added
          to the input Ad Avail PTS time. This only applies to embedded SCTE 104/35 messages and
          does not apply to OOB messages.

          - **NoRegionalBlackoutFlag** *(string) --* When set to ignore, Segment Descriptors with
          noRegionalBlackoutFlag set to 0 will no longer trigger blackouts or Ad Avail slates

          - **WebDeliveryAllowedFlag** *(string) --* When set to ignore, Segment Descriptors with
          webDeliveryAllowedFlag set to 0 will no longer trigger blackouts or Ad Avail slates

        - **Scte35TimeSignalApos** *(dict) --* Scte35 Time Signal Apos

          - **AdAvailOffset** *(integer) --* When specified, this offset (in milliseconds) is added
          to the input Ad Avail PTS time. This only applies to embedded SCTE 104/35 messages and
          does not apply to OOB messages.

          - **NoRegionalBlackoutFlag** *(string) --* When set to ignore, Segment Descriptors with
          noRegionalBlackoutFlag set to 0 will no longer trigger blackouts or Ad Avail slates

          - **WebDeliveryAllowedFlag** *(string) --* When set to ignore, Segment Descriptors with
          webDeliveryAllowedFlag set to 0 will no longer trigger blackouts or Ad Avail slates

    - **BlackoutSlate** *(dict) --* Settings for blackout slate.

      - **BlackoutSlateImage** *(dict) --* Blackout slate image to be used. Leave empty for solid
      black. Only bmp and png images are supported.

        - **PasswordParam** *(string) --* key used to extract the password from EC2 Parameter store

        - **Uri** *(string) --* Uniform Resource Identifier - This should be a path to a file
        accessible to the Live system (eg. a http:// URI) depending on the output type. For example,
        a RTMP destination should have a uri simliar to: "rtmp://fmsserver/live".

        - **Username** *(string) --* Documentation update needed

      - **NetworkEndBlackout** *(string) --* Setting to enabled causes the encoder to blackout the
      video, audio, and captions, and raise the "Network Blackout Image" slate when an SCTE104/35
      Network End Segmentation Descriptor is encountered. The blackout will be lifted when the
      Network Start Segmentation Descriptor is encountered. The Network End and Network Start
      descriptors must contain a network ID that matches the value entered in "Network ID".

      - **NetworkEndBlackoutImage** *(dict) --* Path to local file to use as Network End Blackout
      image. Image will be scaled to fill the entire output raster.

        - **PasswordParam** *(string) --* key used to extract the password from EC2 Parameter store

        - **Uri** *(string) --* Uniform Resource Identifier - This should be a path to a file
        accessible to the Live system (eg. a http:// URI) depending on the output type. For example,
        a RTMP destination should have a uri simliar to: "rtmp://fmsserver/live".

        - **Username** *(string) --* Documentation update needed

      - **NetworkId** *(string) --* Provides Network ID that matches EIDR ID format (e.g.,
      "10.XXXX/XXXX-XXXX-XXXX-XXXX-XXXX-C").

      - **State** *(string) --* When set to enabled, causes video, audio and captions to be blanked
      when indicated by program metadata.

    - **CaptionDescriptions** *(list) --* Settings for caption decriptions

      - *(dict) --* Caption Description

        - **CaptionSelectorName** *(string) --* Specifies which input caption selector to use as a
        caption source when generating output captions. This field should match a captionSelector
        name.

        - **DestinationSettings** *(dict) --* Additional settings for captions destination that
        depend on the destination type.

          - **AribDestinationSettings** *(dict) --* Arib Destination Settings

          - **BurnInDestinationSettings** *(dict) --* Burn In Destination Settings

            - **Alignment** *(string) --* If no explicit xPosition or yPosition is provided, setting
            alignment to centered will place the captions at the bottom center of the output.
            Similarly, setting a left alignment will align captions to the bottom left of the
            output. If x and y positions are given in conjunction with the alignment parameter, the
            font will be justified (either left or centered) relative to those coordinates.
            Selecting "smart" justification will left-justify live subtitles and center-justify
            pre-recorded subtitles. All burn-in and DVB-Sub font settings must match.

            - **BackgroundColor** *(string) --* Specifies the color of the rectangle behind the
            captions. All burn-in and DVB-Sub font settings must match.

            - **BackgroundOpacity** *(integer) --* Specifies the opacity of the background
            rectangle. 255 is opaque; 0 is transparent. Leaving this parameter out is equivalent to
            setting it to 0 (transparent). All burn-in and DVB-Sub font settings must match.

            - **Font** *(dict) --* External font file used for caption burn-in. File extension must
            be 'ttf' or 'tte'. Although the user can select output fonts for many different types of
            input captions, embedded, STL and teletext sources use a strict grid system. Using
            external fonts with these caption sources could cause unexpected display of proportional
            fonts. All burn-in and DVB-Sub font settings must match.

              - **PasswordParam** *(string) --* key used to extract the password from EC2 Parameter
              store

              - **Uri** *(string) --* Uniform Resource Identifier - This should be a path to a file
              accessible to the Live system (eg. a http:// URI) depending on the output type. For
              example, a RTMP destination should have a uri simliar to: "rtmp://fmsserver/live".

              - **Username** *(string) --* Documentation update needed

            - **FontColor** *(string) --* Specifies the color of the burned-in captions. This option
            is not valid for source captions that are STL, 608/embedded or teletext. These source
            settings are already pre-defined by the caption stream. All burn-in and DVB-Sub font
            settings must match.

            - **FontOpacity** *(integer) --* Specifies the opacity of the burned-in captions. 255 is
            opaque; 0 is transparent. All burn-in and DVB-Sub font settings must match.

            - **FontResolution** *(integer) --* Font resolution in DPI (dots per inch); default is
            96 dpi. All burn-in and DVB-Sub font settings must match.

            - **FontSize** *(string) --* When set to 'auto' fontSize will scale depending on the
            size of the output. Giving a positive integer will specify the exact font size in
            points. All burn-in and DVB-Sub font settings must match.

            - **OutlineColor** *(string) --* Specifies font outline color. This option is not valid
            for source captions that are either 608/embedded or teletext. These source settings are
            already pre-defined by the caption stream. All burn-in and DVB-Sub font settings must
            match.

            - **OutlineSize** *(integer) --* Specifies font outline size in pixels. This option is
            not valid for source captions that are either 608/embedded or teletext. These source
            settings are already pre-defined by the caption stream. All burn-in and DVB-Sub font
            settings must match.

            - **ShadowColor** *(string) --* Specifies the color of the shadow cast by the captions.
            All burn-in and DVB-Sub font settings must match.

            - **ShadowOpacity** *(integer) --* Specifies the opacity of the shadow. 255 is opaque; 0
            is transparent. Leaving this parameter out is equivalent to setting it to 0
            (transparent). All burn-in and DVB-Sub font settings must match.

            - **ShadowXOffset** *(integer) --* Specifies the horizontal offset of the shadow
            relative to the captions in pixels. A value of -2 would result in a shadow offset 2
            pixels to the left. All burn-in and DVB-Sub font settings must match.

            - **ShadowYOffset** *(integer) --* Specifies the vertical offset of the shadow relative
            to the captions in pixels. A value of -2 would result in a shadow offset 2 pixels above
            the text. All burn-in and DVB-Sub font settings must match.

            - **TeletextGridControl** *(string) --* Controls whether a fixed grid size will be used
            to generate the output subtitles bitmap. Only applicable for Teletext inputs and
            DVB-Sub/Burn-in outputs.

            - **XPosition** *(integer) --* Specifies the horizontal position of the caption relative
            to the left side of the output in pixels. A value of 10 would result in the captions
            starting 10 pixels from the left of the output. If no explicit xPosition is provided,
            the horizontal caption position will be determined by the alignment parameter. All
            burn-in and DVB-Sub font settings must match.

            - **YPosition** *(integer) --* Specifies the vertical position of the caption relative
            to the top of the output in pixels. A value of 10 would result in the captions starting
            10 pixels from the top of the output. If no explicit yPosition is provided, the caption
            will be positioned towards the bottom of the output. All burn-in and DVB-Sub font
            settings must match.

          - **DvbSubDestinationSettings** *(dict) --* Dvb Sub Destination Settings

            - **Alignment** *(string) --* If no explicit xPosition or yPosition is provided, setting
            alignment to centered will place the captions at the bottom center of the output.
            Similarly, setting a left alignment will align captions to the bottom left of the
            output. If x and y positions are given in conjunction with the alignment parameter, the
            font will be justified (either left or centered) relative to those coordinates.
            Selecting "smart" justification will left-justify live subtitles and center-justify
            pre-recorded subtitles. This option is not valid for source captions that are STL or
            608/embedded. These source settings are already pre-defined by the caption stream. All
            burn-in and DVB-Sub font settings must match.

            - **BackgroundColor** *(string) --* Specifies the color of the rectangle behind the
            captions. All burn-in and DVB-Sub font settings must match.

            - **BackgroundOpacity** *(integer) --* Specifies the opacity of the background
            rectangle. 255 is opaque; 0 is transparent. Leaving this parameter blank is equivalent
            to setting it to 0 (transparent). All burn-in and DVB-Sub font settings must match.

            - **Font** *(dict) --* External font file used for caption burn-in. File extension must
            be 'ttf' or 'tte'. Although the user can select output fonts for many different types of
            input captions, embedded, STL and teletext sources use a strict grid system. Using
            external fonts with these caption sources could cause unexpected display of proportional
            fonts. All burn-in and DVB-Sub font settings must match.

              - **PasswordParam** *(string) --* key used to extract the password from EC2 Parameter
              store

              - **Uri** *(string) --* Uniform Resource Identifier - This should be a path to a file
              accessible to the Live system (eg. a http:// URI) depending on the output type. For
              example, a RTMP destination should have a uri simliar to: "rtmp://fmsserver/live".

              - **Username** *(string) --* Documentation update needed

            - **FontColor** *(string) --* Specifies the color of the burned-in captions. This option
            is not valid for source captions that are STL, 608/embedded or teletext. These source
            settings are already pre-defined by the caption stream. All burn-in and DVB-Sub font
            settings must match.

            - **FontOpacity** *(integer) --* Specifies the opacity of the burned-in captions. 255 is
            opaque; 0 is transparent. All burn-in and DVB-Sub font settings must match.

            - **FontResolution** *(integer) --* Font resolution in DPI (dots per inch); default is
            96 dpi. All burn-in and DVB-Sub font settings must match.

            - **FontSize** *(string) --* When set to auto fontSize will scale depending on the size
            of the output. Giving a positive integer will specify the exact font size in points. All
            burn-in and DVB-Sub font settings must match.

            - **OutlineColor** *(string) --* Specifies font outline color. This option is not valid
            for source captions that are either 608/embedded or teletext. These source settings are
            already pre-defined by the caption stream. All burn-in and DVB-Sub font settings must
            match.

            - **OutlineSize** *(integer) --* Specifies font outline size in pixels. This option is
            not valid for source captions that are either 608/embedded or teletext. These source
            settings are already pre-defined by the caption stream. All burn-in and DVB-Sub font
            settings must match.

            - **ShadowColor** *(string) --* Specifies the color of the shadow cast by the captions.
            All burn-in and DVB-Sub font settings must match.

            - **ShadowOpacity** *(integer) --* Specifies the opacity of the shadow. 255 is opaque; 0
            is transparent. Leaving this parameter blank is equivalent to setting it to 0
            (transparent). All burn-in and DVB-Sub font settings must match.

            - **ShadowXOffset** *(integer) --* Specifies the horizontal offset of the shadow
            relative to the captions in pixels. A value of -2 would result in a shadow offset 2
            pixels to the left. All burn-in and DVB-Sub font settings must match.

            - **ShadowYOffset** *(integer) --* Specifies the vertical offset of the shadow relative
            to the captions in pixels. A value of -2 would result in a shadow offset 2 pixels above
            the text. All burn-in and DVB-Sub font settings must match.

            - **TeletextGridControl** *(string) --* Controls whether a fixed grid size will be used
            to generate the output subtitles bitmap. Only applicable for Teletext inputs and
            DVB-Sub/Burn-in outputs.

            - **XPosition** *(integer) --* Specifies the horizontal position of the caption relative
            to the left side of the output in pixels. A value of 10 would result in the captions
            starting 10 pixels from the left of the output. If no explicit xPosition is provided,
            the horizontal caption position will be determined by the alignment parameter. This
            option is not valid for source captions that are STL, 608/embedded or teletext. These
            source settings are already pre-defined by the caption stream. All burn-in and DVB-Sub
            font settings must match.

            - **YPosition** *(integer) --* Specifies the vertical position of the caption relative
            to the top of the output in pixels. A value of 10 would result in the captions starting
            10 pixels from the top of the output. If no explicit yPosition is provided, the caption
            will be positioned towards the bottom of the output. This option is not valid for source
            captions that are STL, 608/embedded or teletext. These source settings are already
            pre-defined by the caption stream. All burn-in and DVB-Sub font settings must match.

          - **EmbeddedDestinationSettings** *(dict) --* Embedded Destination Settings

          - **EmbeddedPlusScte20DestinationSettings** *(dict) --* Embedded Plus Scte20 Destination
          Settings

          - **RtmpCaptionInfoDestinationSettings** *(dict) --* Rtmp Caption Info Destination
          Settings

          - **Scte20PlusEmbeddedDestinationSettings** *(dict) --* Scte20 Plus Embedded Destination
          Settings

          - **Scte27DestinationSettings** *(dict) --* Scte27 Destination Settings

          - **SmpteTtDestinationSettings** *(dict) --* Smpte Tt Destination Settings

          - **TeletextDestinationSettings** *(dict) --* Teletext Destination Settings

          - **TtmlDestinationSettings** *(dict) --* Ttml Destination Settings

            - **StyleControl** *(string) --* When set to passthrough, passes through style and
            position information from a TTML-like input source (TTML, SMPTE-TT, CFF-TT) to the
            CFF-TT output or TTML output.

          - **WebvttDestinationSettings** *(dict) --* Webvtt Destination Settings

        - **LanguageCode** *(string) --* ISO 639-2 three-digit code:
        http://www.loc.gov/standards/iso639-2/

        - **LanguageDescription** *(string) --* Human readable information to indicate captions
        available for players (eg. English, or Spanish).

        - **Name** *(string) --* Name of the caption description. Used to associate a caption
        description with an output. Names must be unique within an event.

    - **GlobalConfiguration** *(dict) --* Configuration settings that apply to the event as a whole.

      - **InitialAudioGain** *(integer) --* Value to set the initial audio gain for the Live Event.

      - **InputEndAction** *(string) --* Indicates the action to take when the current input
      completes (e.g. end-of-file). When switchAndLoopInputs is configured the encoder will restart
      at the beginning of the first input. When "none" is configured the encoder will transcode
      either black, a solid color, or a user specified slate images per the "Input Loss Behavior"
      configuration until the next input switch occurs (which is controlled through the Channel
      Schedule API).

      - **InputLossBehavior** *(dict) --* Settings for system actions when input is lost.

        - **BlackFrameMsec** *(integer) --* Documentation update needed

        - **InputLossImageColor** *(string) --* When input loss image type is "color" this field
        specifies the color to use. Value: 6 hex characters representing the values of RGB.

        - **InputLossImageSlate** *(dict) --* When input loss image type is "slate" these fields
        specify the parameters for accessing the slate.

          - **PasswordParam** *(string) --* key used to extract the password from EC2 Parameter
          store

          - **Uri** *(string) --* Uniform Resource Identifier - This should be a path to a file
          accessible to the Live system (eg. a http:// URI) depending on the output type. For
          example, a RTMP destination should have a uri simliar to: "rtmp://fmsserver/live".

          - **Username** *(string) --* Documentation update needed

        - **InputLossImageType** *(string) --* Indicates whether to substitute a solid color or a
        slate into the output after input loss exceeds blackFrameMsec.

        - **RepeatFrameMsec** *(integer) --* Documentation update needed

      - **OutputLockingMode** *(string) --* Indicates how MediaLive pipelines are synchronized.
      PIPELINELOCKING - MediaLive will attempt to synchronize the output of each pipeline to the
      other. EPOCHLOCKING - MediaLive will attempt to synchronize the output of each pipeline to the
      Unix epoch.

      - **OutputTimingSource** *(string) --* Indicates whether the rate of frames emitted by the
      Live encoder should be paced by its system clock (which optionally may be locked to another
      source via NTP) or should be locked to the clock of the source that is providing the input
      stream.

      - **SupportLowFramerateInputs** *(string) --* Adjusts video input buffer for streams with very
      low video framerates. This is commonly set to enabled for music channels with less than one
      video frame per second.

    - **NielsenConfiguration** *(dict) --* Nielsen configuration settings.

      - **DistributorId** *(string) --* Enter the Distributor ID assigned to your organization by
      Nielsen.

      - **NielsenPcmToId3Tagging** *(string) --* Enables Nielsen PCM to ID3 tagging

    - **OutputGroups** *(list) --* Placeholder documentation for __listOfOutputGroup

      - *(dict) --* Output groups for this Live Event. Output groups contain information about where
      streams should be distributed.

        - **Name** *(string) --* Custom output group name optionally defined by the user. Only
        letters, numbers, and the underscore character allowed; only 32 characters allowed.

        - **OutputGroupSettings** *(dict) --* Settings associated with the output group.

          - **ArchiveGroupSettings** *(dict) --* Archive Group Settings

            - **Destination** *(dict) --* A directory and base filename where archive files should
            be written.

              - **DestinationRefId** *(string) --* Placeholder documentation for __string

            - **RolloverInterval** *(integer) --* Number of seconds to write to archive file before
            closing and starting a new one.

          - **FrameCaptureGroupSettings** *(dict) --* Frame Capture Group Settings

            - **Destination** *(dict) --* The destination for the frame capture files. Either the
            URI for an Amazon S3 bucket and object, plus a file name prefix (for example,
            s3ssl://sportsDelivery/highlights/20180820/curling_) or the URI for a MediaStore
            container, plus a file name prefix (for example,
            mediastoressl://sportsDelivery/20180820/curling_). The final file names consist of the
            prefix from the destination field (for example, "curling_") + name modifier + the
            counter (5 digits, starting from 00001) + extension (which is always .jpg). For example,
            curlingLow.00001.jpg

              - **DestinationRefId** *(string) --* Placeholder documentation for __string

          - **HlsGroupSettings** *(dict) --* Hls Group Settings

            - **AdMarkers** *(list) --* Choose one or more ad marker types to pass SCTE35 signals
            through to this group of Apple HLS outputs.

              - *(string) --* Hls Ad Markers

            - **BaseUrlContent** *(string) --* A partial URI prefix that will be prepended to each
            output in the media .m3u8 file. Can be used if base manifest is delivered from a
            different URL than the main .m3u8 file.

            - **BaseUrlManifest** *(string) --* A partial URI prefix that will be prepended to each
            output in the media .m3u8 file. Can be used if base manifest is delivered from a
            different URL than the main .m3u8 file.

            - **CaptionLanguageMappings** *(list) --* Mapping of up to 4 caption channels to caption
            languages. Is only meaningful if captionLanguageSetting is set to "insert".

              - *(dict) --* Maps a caption channel to an ISO 693-2 language code
              (http://www.loc.gov/standards/iso639-2), with an optional description.

                - **CaptionChannel** *(integer) --* The closed caption channel being described by
                this CaptionLanguageMapping. Each channel mapping must have a unique channel number
                (maximum of 4)

                - **LanguageCode** *(string) --* Three character ISO 639-2 language code (see
                http://www.loc.gov/standards/iso639-2)

                - **LanguageDescription** *(string) --* Textual description of language

            - **CaptionLanguageSetting** *(string) --* Applies only to 608 Embedded output captions.
            insert: Include CLOSED-CAPTIONS lines in the manifest. Specify at least one language in
            the CC1 Language Code field. One CLOSED-CAPTION line is added for each Language Code you
            specify. Make sure to specify the languages in the order in which they appear in the
            original source (if the source is embedded format) or the order of the caption selectors
            (if the source is other than embedded). Otherwise, languages in the manifest will not
            match up properly with the output captions. none: Include CLOSED-CAPTIONS=
                NONE line in
            the manifest. omit: Omit any CLOSED-CAPTIONS line from the manifest.

            - **ClientCache** *(string) --* When set to "disabled", sets the #EXT-X-ALLOW-CACHE:no
            tag in the manifest, which prevents clients from saving media segments for later replay.

            - **CodecSpecification** *(string) --* Specification to use (RFC-6381 or the default
            RFC-4281) during m3u8 playlist generation.

            - **ConstantIv** *(string) --* For use with encryptionType. This is a 128-bit, 16-byte
            hex value represented by a 32-character text string. If ivSource is set to "explicit"
            then this parameter is required and is used as the IV for encryption.

            - **Destination** *(dict) --* A directory or HTTP destination for the HLS segments,
            manifest files, and encryption keys (if enabled).

              - **DestinationRefId** *(string) --* Placeholder documentation for __string

            - **DirectoryStructure** *(string) --* Place segments in subdirectories.

            - **EncryptionType** *(string) --* Encrypts the segments with the given encryption
            scheme. Exclude this parameter if no encryption is desired.

            - **HlsCdnSettings** *(dict) --* Parameters that control interactions with the CDN.

              - **HlsAkamaiSettings** *(dict) --* Hls Akamai Settings

                - **ConnectionRetryInterval** *(integer) --* Number of seconds to wait before
                retrying connection to the CDN if the connection is lost.

                - **FilecacheDuration** *(integer) --* Size in seconds of file cache for streaming
                outputs.

                - **HttpTransferMode** *(string) --* Specify whether or not to use chunked transfer
                encoding to Akamai. User should contact Akamai to enable this feature.

                - **NumRetries** *(integer) --* Number of retry attempts that will be made before
                the Live Event is put into an error state.

                - **RestartDelay** *(integer) --* If a streaming output fails, number of seconds to
                wait until a restart is initiated. A value of 0 means never restart.

                - **Salt** *(string) --* Salt for authenticated Akamai.

                - **Token** *(string) --* Token parameter for authenticated akamai. If not
                specified, _gda_ is used.

              - **HlsBasicPutSettings** *(dict) --* Hls Basic Put Settings

                - **ConnectionRetryInterval** *(integer) --* Number of seconds to wait before
                retrying connection to the CDN if the connection is lost.

                - **FilecacheDuration** *(integer) --* Size in seconds of file cache for streaming
                outputs.

                - **NumRetries** *(integer) --* Number of retry attempts that will be made before
                the Live Event is put into an error state.

                - **RestartDelay** *(integer) --* If a streaming output fails, number of seconds to
                wait until a restart is initiated. A value of 0 means never restart.

              - **HlsMediaStoreSettings** *(dict) --* Hls Media Store Settings

                - **ConnectionRetryInterval** *(integer) --* Number of seconds to wait before
                retrying connection to the CDN if the connection is lost.

                - **FilecacheDuration** *(integer) --* Size in seconds of file cache for streaming
                outputs.

                - **MediaStoreStorageClass** *(string) --* When set to temporal, output files are
                stored in non-persistent memory for faster reading and writing.

                - **NumRetries** *(integer) --* Number of retry attempts that will be made before
                the Live Event is put into an error state.

                - **RestartDelay** *(integer) --* If a streaming output fails, number of seconds to
                wait until a restart is initiated. A value of 0 means never restart.

              - **HlsWebdavSettings** *(dict) --* Hls Webdav Settings

                - **ConnectionRetryInterval** *(integer) --* Number of seconds to wait before
                retrying connection to the CDN if the connection is lost.

                - **FilecacheDuration** *(integer) --* Size in seconds of file cache for streaming
                outputs.

                - **HttpTransferMode** *(string) --* Specify whether or not to use chunked transfer
                encoding to WebDAV.

                - **NumRetries** *(integer) --* Number of retry attempts that will be made before
                the Live Event is put into an error state.

                - **RestartDelay** *(integer) --* If a streaming output fails, number of seconds to
                wait until a restart is initiated. A value of 0 means never restart.

            - **IFrameOnlyPlaylists** *(string) --* DISABLED: Do not create an I-frame-only
            manifest, but do create the master and media manifests (according to the Output
            Selection field). STANDARD: Create an I-frame-only manifest for each output that
            contains video, as well as the other manifests (according to the Output Selection
            field). The I-frame manifest contains a #EXT-X-I-FRAMES-ONLY tag to indicate it is
            I-frame only, and one or more #EXT-X-BYTERANGE entries identifying the I-frame position.
            For example, #EXT-X-BYTERANGE:160364@1461888"

            - **IndexNSegments** *(integer) --* Applies only if Mode field is LIVE. Specifies the
            maximum number of segments in the media manifest file. After this maximum, older
            segments are removed from the media manifest. This number must be less than or equal to
            the Keep Segments field.

            - **InputLossAction** *(string) --* Parameter that control output group behavior on
            input loss.

            - **IvInManifest** *(string) --* For use with encryptionType. The IV (Initialization
            Vector) is a 128-bit number used in conjunction with the key for encrypting blocks. If
            set to "include", IV is listed in the manifest, otherwise the IV is not in the manifest.

            - **IvSource** *(string) --* For use with encryptionType. The IV (Initialization Vector)
            is a 128-bit number used in conjunction with the key for encrypting blocks. If this
            setting is "followsSegmentNumber", it will cause the IV to change every segment (to
            match the segment number). If this is set to "explicit", you must enter a constantIv
            value.

            - **KeepSegments** *(integer) --* Applies only if Mode field is LIVE. Specifies the
            number of media segments (.ts files) to retain in the destination directory.

            - **KeyFormat** *(string) --* The value specifies how the key is represented in the
            resource identified by the URI. If parameter is absent, an implicit value of "identity"
            is used. A reverse DNS string can also be given.

            - **KeyFormatVersions** *(string) --* Either a single positive integer version value or
            a slash delimited list of version values (1/2/3).

            - **KeyProviderSettings** *(dict) --* The key provider settings.

              - **StaticKeySettings** *(dict) --* Static Key Settings

                - **KeyProviderServer** *(dict) --* The URL of the license server used for
                protecting content.

                  - **PasswordParam** *(string) --* key used to extract the password from EC2
                  Parameter store

                  - **Uri** *(string) --* Uniform Resource Identifier - This should be a path to a
                  file accessible to the Live system (eg. a http:// URI) depending on the output
                  type. For example, a RTMP destination should have a uri simliar to:
                  "rtmp://fmsserver/live".

                  - **Username** *(string) --* Documentation update needed

                - **StaticKeyValue** *(string) --* Static key value as a 32 character hexadecimal
                string.

            - **ManifestCompression** *(string) --* When set to gzip, compresses HLS playlist.

            - **ManifestDurationFormat** *(string) --* Indicates whether the output manifest should
            use floating point or integer values for segment duration.

            - **MinSegmentLength** *(integer) --* When set, minimumSegmentLength is enforced by
            looking ahead and back within the specified range for a nearby avail and extending the
            segment size if needed.

            - **Mode** *(string) --* If "vod", all segments are indexed and kept permanently in the
            destination and manifest. If "live", only the number segments specified in keepSegments
            and indexNSegments are kept; newer segments replace older segments, which may prevent
            players from rewinding all the way to the beginning of the event. VOD mode uses HLS
            EXT-X-PLAYLIST-TYPE of EVENT while the channel is running, converting it to a "VOD" type
            manifest on completion of the stream.

            - **OutputSelection** *(string) --* MANIFESTSANDSEGMENTS: Generates manifests (master
            manifest, if applicable, and media manifests) for this output group. SEGMENTSONLY: Does
            not generate any manifests for this output group.

            - **ProgramDateTime** *(string) --* Includes or excludes EXT-X-PROGRAM-DATE-TIME tag in
            .m3u8 manifest files. The value is calculated as follows: either the program date and
            time are initialized using the input timecode source, or the time is initialized using
            the input timecode source and the date is initialized using the timestampOffset.

            - **ProgramDateTimePeriod** *(integer) --* Period of insertion of
            EXT-X-PROGRAM-DATE-TIME entry, in seconds.

            - **RedundantManifest** *(string) --* ENABLED: The master manifest (.m3u8 file) for each
            pipeline includes information about both pipelines: first its own media files, then the
            media files of the other pipeline. This feature allows playout device that support stale
            manifest detection to switch from one manifest to the other, when the current manifest
            seems to be stale. There are still two destinations and two master manifests, but both
            master manifests reference the media files from both pipelines. DISABLED: The master
            manifest (.m3u8 file) for each pipeline includes information about its own pipeline
            only. For an HLS output group with MediaPackage as the destination, the DISABLED
            behavior is always followed. MediaPackage regenerates the manifests it serves to players
            so a redundant manifest from MediaLive is irrelevant.

            - **SegmentLength** *(integer) --* Length of MPEG-2 Transport Stream segments to create
            (in seconds). Note that segments will end on the next keyframe after this number of
            seconds, so actual segment length may be longer.

            - **SegmentationMode** *(string) --* useInputSegmentation has been deprecated. The
            configured segment size is always used.

            - **SegmentsPerSubdirectory** *(integer) --* Number of segments to write to a
            subdirectory before starting a new one. directoryStructure must be subdirectoryPerStream
            for this setting to have an effect.

            - **StreamInfResolution** *(string) --* Include or exclude RESOLUTION attribute for
            video in EXT-X-STREAM-INF tag of variant manifest.

            - **TimedMetadataId3Frame** *(string) --* Indicates ID3 frame that has the timecode.

            - **TimedMetadataId3Period** *(integer) --* Timed Metadata interval in seconds.

            - **TimestampDeltaMilliseconds** *(integer) --* Provides an extra millisecond delta
            offset to fine tune the timestamps.

            - **TsFileMode** *(string) --* SEGMENTEDFILES: Emit the program as segments - multiple
            .ts media files. SINGLEFILE: Applies only if Mode field is VOD. Emit the program as a
            single .ts media file. The media manifest includes #EXT-X-BYTERANGE tags to index
            segments for playback. A typical use for this value is when sending the output to AWS
            Elemental MediaConvert, which can accept only a single media file. Playback while the
            channel is running is not guaranteed due to HTTP server caching.

          - **MediaPackageGroupSettings** *(dict) --* Media Package Group Settings

            - **Destination** *(dict) --* MediaPackage channel destination.

              - **DestinationRefId** *(string) --* Placeholder documentation for __string

          - **MsSmoothGroupSettings** *(dict) --* Ms Smooth Group Settings

            - **AcquisitionPointId** *(string) --* The value of the "Acquisition Point Identity"
            element used in each message placed in the sparse track. Only enabled if sparseTrackType
            is not "none".

            - **AudioOnlyTimecodeControl** *(string) --* If set to passthrough for an audio-only MS
            Smooth output, the fragment absolute time will be set to the current timecode. This
            option does not write timecodes to the audio elementary stream.

            - **CertificateMode** *(string) --* If set to verifyAuthenticity, verify the https
            certificate chain to a trusted Certificate Authority (CA). This will cause https outputs
            to self-signed certificates to fail.

            - **ConnectionRetryInterval** *(integer) --* Number of seconds to wait before retrying
            connection to the IIS server if the connection is lost. Content will be cached during
            this time and the cache will be be delivered to the IIS server once the connection is
            re-established.

            - **Destination** *(dict) --* Smooth Streaming publish point on an IIS server. Elemental
            Live acts as a "Push" encoder to IIS.

              - **DestinationRefId** *(string) --* Placeholder documentation for __string

            - **EventId** *(string) --* MS Smooth event ID to be sent to the IIS server. Should only
            be specified if eventIdMode is set to useConfigured.

            - **EventIdMode** *(string) --* Specifies whether or not to send an event ID to the IIS
            server. If no event ID is sent and the same Live Event is used without changing the
            publishing point, clients might see cached video from the previous run. Options: -
            "useConfigured" - use the value provided in eventId - "useTimestamp" - generate and send
            an event ID based on the current timestamp - "noEventId" - do not send an event ID to
            the IIS server.

            - **EventStopBehavior** *(string) --* When set to sendEos, send EOS signal to IIS server
            when stopping the event

            - **FilecacheDuration** *(integer) --* Size in seconds of file cache for streaming
            outputs.

            - **FragmentLength** *(integer) --* Length of mp4 fragments to generate (in seconds).
            Fragment length must be compatible with GOP size and framerate.

            - **InputLossAction** *(string) --* Parameter that control output group behavior on
            input loss.

            - **NumRetries** *(integer) --* Number of retry attempts.

            - **RestartDelay** *(integer) --* Number of seconds before initiating a restart due to
            output failure, due to exhausting the numRetries on one segment, or exceeding
            filecacheDuration.

            - **SegmentationMode** *(string) --* useInputSegmentation has been deprecated. The
            configured segment size is always used.

            - **SendDelayMs** *(integer) --* Number of milliseconds to delay the output from the
            second pipeline.

            - **SparseTrackType** *(string) --* If set to scte35, use incoming SCTE-35 messages to
            generate a sparse track in this group of MS-Smooth outputs.

            - **StreamManifestBehavior** *(string) --* When set to send, send stream manifest so
            publishing point doesn't start until all streams start.

            - **TimestampOffset** *(string) --* Timestamp offset for the event. Only used if
            timestampOffsetMode is set to useConfiguredOffset.

            - **TimestampOffsetMode** *(string) --* Type of timestamp date offset to use. -
            useEventStartDate: Use the date the event was started as the offset -
            useConfiguredOffset: Use an explicitly configured date as the offset

          - **MultiplexGroupSettings** *(dict) --* Multiplex Group Settings

          - **RtmpGroupSettings** *(dict) --* Rtmp Group Settings

            - **AuthenticationScheme** *(string) --* Authentication scheme to use when connecting
            with CDN

            - **CacheFullBehavior** *(string) --* Controls behavior when content cache fills up. If
            remote origin server stalls the RTMP connection and does not accept content fast enough
            the 'Media Cache' will fill up. When the cache reaches the duration specified by
            cacheLength the cache will stop accepting new content. If set to disconnectImmediately,
            the RTMP output will force a disconnect. Clear the media cache, and reconnect after
            restartDelay seconds. If set to waitForServer, the RTMP output will wait up to 5 minutes
            to allow the origin server to begin accepting data again.

            - **CacheLength** *(integer) --* Cache length, in seconds, is used to calculate buffer
            size.

            - **CaptionData** *(string) --* Controls the types of data that passes to onCaptionInfo
            outputs. If set to 'all' then 608 and 708 carried DTVCC data will be passed. If set to
            'field1AndField2608' then DTVCC data will be stripped out, but 608 data from both fields
            will be passed. If set to 'field1608' then only the data carried in 608 from field 1
            video will be passed.

            - **InputLossAction** *(string) --* Controls the behavior of this RTMP group if input
            becomes unavailable. - emitOutput: Emit a slate until input returns. - pauseOutput: Stop
            transmitting data until input returns. This does not close the underlying RTMP
            connection.

            - **RestartDelay** *(integer) --* If a streaming output fails, number of seconds to wait
            until a restart is initiated. A value of 0 means never restart.

          - **UdpGroupSettings** *(dict) --* Udp Group Settings

            - **InputLossAction** *(string) --* Specifies behavior of last resort when input video
            is lost, and no more backup inputs are available. When dropTs is selected the entire
            transport stream will stop being emitted. When dropProgram is selected the program can
            be dropped from the transport stream (and replaced with null packets to meet the TS
            bitrate requirement). Or, when emitProgram is chosen the transport stream will continue
            to be produced normally with repeat frames, black frames, or slate frames substituted
            for the absent input video.

            - **TimedMetadataId3Frame** *(string) --* Indicates ID3 frame that has the timecode.

            - **TimedMetadataId3Period** *(integer) --* Timed Metadata interval in seconds.

        - **Outputs** *(list) --* Placeholder documentation for __listOfOutput

          - *(dict) --* Output settings. There can be multiple outputs within a group.

            - **AudioDescriptionNames** *(list) --* The names of the AudioDescriptions used as audio
            sources for this output.

              - *(string) --* Placeholder documentation for __string

            - **CaptionDescriptionNames** *(list) --* The names of the CaptionDescriptions used as
            caption sources for this output.

              - *(string) --* Placeholder documentation for __string

            - **OutputName** *(string) --* The name used to identify an output.

            - **OutputSettings** *(dict) --* Output type-specific settings.

              - **ArchiveOutputSettings** *(dict) --* Archive Output Settings

                - **ContainerSettings** *(dict) --* Settings specific to the container type of the
                file.

                  - **M2tsSettings** *(dict) --* M2ts Settings

                    - **AbsentInputAudioBehavior** *(string) --* When set to drop, output audio
                    streams will be removed from the program if the selected input audio stream is
                    removed from the input. This allows the output audio configuration to
                    dynamically change based on input configuration. If this is set to
                    encodeSilence, all output audio streams will output encoded silence when not
                    connected to an active input stream.

                    - **Arib** *(string) --* When set to enabled, uses ARIB-compliant field muxing
                    and removes video descriptor.

                    - **AribCaptionsPid** *(string) --* Packet Identifier (PID) for ARIB Captions in
                    the transport stream. Can be entered as a decimal or hexadecimal value. Valid
                    values are 32 (or 0x20)..8182 (or 0x1ff6).

                    - **AribCaptionsPidControl** *(string) --* If set to auto, pid number used for
                    ARIB Captions will be auto-selected from unused pids. If set to useConfigured,
                    ARIB Captions will be on the configured pid number.

                    - **AudioBufferModel** *(string) --* When set to dvb, uses DVB buffer model for
                    Dolby Digital audio. When set to atsc, the ATSC model is used.

                    - **AudioFramesPerPes** *(integer) --* The number of audio frames to insert for
                    each PES packet.

                    - **AudioPids** *(string) --* Packet Identifier (PID) of the elementary audio
                    stream(s) in the transport stream. Multiple values are accepted, and can be
                    entered in ranges and/or by comma separation. Can be entered as decimal or
                    hexadecimal values. Each PID specified must be in the range of 32 (or
                    0x20)..8182 (or 0x1ff6).

                    - **AudioStreamType** *(string) --* When set to atsc, uses stream type = 0x81
                    for AC3 and stream type =
                         0x87 for EAC3. When set to dvb, uses stream type =
                    0x06.

                    - **Bitrate** *(integer) --* The output bitrate of the transport stream in bits
                    per second. Setting to 0 lets the muxer automatically determine the appropriate
                    bitrate.

                    - **BufferModel** *(string) --* If set to multiplex, use multiplex buffer model
                    for accurate interleaving. Setting to bufferModel to none can lead to lower
                    latency, but low-memory devices may not be able to play back the stream without
                    interruptions.

                    - **CcDescriptor** *(string) --* When set to enabled, generates
                    captionServiceDescriptor in PMT.

                    - **DvbNitSettings** *(dict) --* Inserts DVB Network Information Table (NIT) at
                    the specified table repetition interval.

                      - **NetworkId** *(integer) --* The numeric value placed in the Network
                      Information Table (NIT).

                      - **NetworkName** *(string) --* The network name text placed in the
                      networkNameDescriptor inside the Network Information Table. Maximum length is
                      256 characters.

                      - **RepInterval** *(integer) --* The number of milliseconds between instances
                      of this table in the output transport stream.

                    - **DvbSdtSettings** *(dict) --* Inserts DVB Service Description Table (SDT) at
                    the specified table repetition interval.

                      - **OutputSdt** *(string) --* Selects method of inserting SDT information into
                      output stream. The sdtFollow setting copies SDT information from input stream
                      to output stream. The sdtFollowIfPresent setting copies SDT information from
                      input stream to output stream if SDT information is present in the input,
                      otherwise it will fall back on the user-defined values. The sdtManual setting
                      means user will enter the SDT information. The sdtNone setting means output
                      stream will not contain SDT information.

                      - **RepInterval** *(integer) --* The number of milliseconds between instances
                      of this table in the output transport stream.

                      - **ServiceName** *(string) --* The service name placed in the
                      serviceDescriptor in the Service Description Table. Maximum length is 256
                      characters.

                      - **ServiceProviderName** *(string) --* The service provider name placed in
                      the serviceDescriptor in the Service Description Table. Maximum length is 256
                      characters.

                    - **DvbSubPids** *(string) --* Packet Identifier (PID) for input source DVB
                    Subtitle data to this output. Multiple values are accepted, and can be entered
                    in ranges and/or by comma separation. Can be entered as decimal or hexadecimal
                    values. Each PID specified must be in the range of 32 (or 0x20)..8182 (or
                    0x1ff6).

                    - **DvbTdtSettings** *(dict) --* Inserts DVB Time and Date Table (TDT) at the
                    specified table repetition interval.

                      - **RepInterval** *(integer) --* The number of milliseconds between instances
                      of this table in the output transport stream.

                    - **DvbTeletextPid** *(string) --* Packet Identifier (PID) for input source DVB
                    Teletext data to this output. Can be entered as a decimal or hexadecimal value.
                    Valid values are 32 (or 0x20)..8182 (or 0x1ff6).

                    - **Ebif** *(string) --* If set to passthrough, passes any EBIF data from the
                    input source to this output.

                    - **EbpAudioInterval** *(string) --* When videoAndFixedIntervals is selected,
                    audio EBP markers will be added to partitions 3 and 4. The interval between
                    these additional markers will be fixed, and will be slightly shorter than the
                    video EBP marker interval. Only available when EBP Cablelabs segmentation
                    markers are selected. Partitions 1 and 2 will always follow the video interval.

                    - **EbpLookaheadMs** *(integer) --* When set, enforces that Encoder Boundary
                    Points do not come within the specified time interval of each other by looking
                    ahead at input video. If another EBP is going to come in within the specified
                    time interval, the current EBP is not emitted, and the segment is "stretched" to
                    the next marker. The lookahead value does not add latency to the system. The
                    Live Event must be configured elsewhere to create sufficient latency to make the
                    lookahead accurate.

                    - **EbpPlacement** *(string) --* Controls placement of EBP on Audio PIDs. If set
                    to videoAndAudioPids, EBP markers will be placed on the video PID and all audio
                    PIDs. If set to videoPid, EBP markers will be placed on only the video PID.

                    - **EcmPid** *(string) --* This field is unused and deprecated.

                    - **EsRateInPes** *(string) --* Include or exclude the ES Rate field in the PES
                    header.

                    - **EtvPlatformPid** *(string) --* Packet Identifier (PID) for input source ETV
                    Platform data to this output. Can be entered as a decimal or hexadecimal value.
                    Valid values are 32 (or 0x20)..8182 (or 0x1ff6).

                    - **EtvSignalPid** *(string) --* Packet Identifier (PID) for input source ETV
                    Signal data to this output. Can be entered as a decimal or hexadecimal value.
                    Valid values are 32 (or 0x20)..8182 (or 0x1ff6).

                    - **FragmentTime** *(float) --* The length in seconds of each fragment. Only
                    used with EBP markers.

                    - **Klv** *(string) --* If set to passthrough, passes any KLV data from the
                    input source to this output.

                    - **KlvDataPids** *(string) --* Packet Identifier (PID) for input source KLV
                    data to this output. Multiple values are accepted, and can be entered in ranges
                    and/or by comma separation. Can be entered as decimal or hexadecimal values.
                    Each PID specified must be in the range of 32 (or 0x20)..8182 (or 0x1ff6).

                    - **NielsenId3Behavior** *(string) --* If set to passthrough, Nielsen inaudible
                    tones for media tracking will be detected in the input audio and an equivalent
                    ID3 tag will be inserted in the output.

                    - **NullPacketBitrate** *(float) --* Value in bits per second of extra null
                    packets to insert into the transport stream. This can be used if a downstream
                    encryption system requires periodic null packets.

                    - **PatInterval** *(integer) --* The number of milliseconds between instances of
                    this table in the output transport stream. Valid values are 0, 10..1000.

                    - **PcrControl** *(string) --* When set to pcrEveryPesPacket, a Program Clock
                    Reference value is inserted for every Packetized Elementary Stream (PES) header.
                    This parameter is effective only when the PCR PID is the same as the video or
                    audio elementary stream.

                    - **PcrPeriod** *(integer) --* Maximum time in milliseconds between Program
                    Clock Reference (PCRs) inserted into the transport stream.

                    - **PcrPid** *(string) --* Packet Identifier (PID) of the Program Clock
                    Reference (PCR) in the transport stream. When no value is given, the encoder
                    will assign the same value as the Video PID. Can be entered as a decimal or
                    hexadecimal value. Valid values are 32 (or 0x20)..8182 (or 0x1ff6).

                    - **PmtInterval** *(integer) --* The number of milliseconds between instances of
                    this table in the output transport stream. Valid values are 0, 10..1000.

                    - **PmtPid** *(string) --* Packet Identifier (PID) for the Program Map Table
                    (PMT) in the transport stream. Can be entered as a decimal or hexadecimal value.
                    Valid values are 32 (or 0x20)..8182 (or 0x1ff6).

                    - **ProgramNum** *(integer) --* The value of the program number field in the
                    Program Map Table.

                    - **RateMode** *(string) --* When vbr, does not insert null packets into
                    transport stream to fill specified bitrate. The bitrate setting acts as the
                    maximum bitrate when vbr is set.

                    - **Scte27Pids** *(string) --* Packet Identifier (PID) for input source SCTE-27
                    data to this output. Multiple values are accepted, and can be entered in ranges
                    and/or by comma separation. Can be entered as decimal or hexadecimal values.
                    Each PID specified must be in the range of 32 (or 0x20)..8182 (or 0x1ff6).

                    - **Scte35Control** *(string) --* Optionally pass SCTE-35 signals from the input
                    source to this output.

                    - **Scte35Pid** *(string) --* Packet Identifier (PID) of the SCTE-35 stream in
                    the transport stream. Can be entered as a decimal or hexadecimal value. Valid
                    values are 32 (or 0x20)..8182 (or 0x1ff6).

                    - **SegmentationMarkers** *(string) --* Inserts segmentation markers at each
                    segmentationTime period. raiSegstart sets the Random Access Indicator bit in the
                    adaptation field. raiAdapt sets the RAI bit and adds the current timecode in the
                    private data bytes. psiSegstart inserts PAT and PMT tables at the start of
                    segments. ebp adds Encoder Boundary Point information to the adaptation field as
                    per OpenCable specification OC-SP-EBP-I01-130118. ebpLegacy adds Encoder
                    Boundary Point information to the adaptation field using a legacy proprietary
                    format.

                    - **SegmentationStyle** *(string) --* The segmentation style parameter controls
                    how segmentation markers are inserted into the transport stream. With avails, it
                    is possible that segments may be truncated, which can influence where future
                    segmentation markers are inserted. When a segmentation style of "resetCadence"
                    is selected and a segment is truncated due to an avail, we will reset the
                    segmentation cadence. This means the subsequent segment will have a duration of
                    $segmentationTime seconds. When a segmentation style of "maintainCadence" is
                    selected and a segment is truncated due to an avail, we will not reset the
                    segmentation cadence. This means the subsequent segment will likely be truncated
                    as well. However, all segments after that will have a duration of
                    $segmentationTime seconds. Note that EBP lookahead is a slight exception to this
                    rule.

                    - **SegmentationTime** *(float) --* The length in seconds of each segment.
                    Required unless markers is set to None_.

                    - **TimedMetadataBehavior** *(string) --* When set to passthrough, timed
                    metadata will be passed through from input to output.

                    - **TimedMetadataPid** *(string) --* Packet Identifier (PID) of the timed
                    metadata stream in the transport stream. Can be entered as a decimal or
                    hexadecimal value. Valid values are 32 (or 0x20)..8182 (or 0x1ff6).

                    - **TransportStreamId** *(integer) --* The value of the transport stream ID
                    field in the Program Map Table.

                    - **VideoPid** *(string) --* Packet Identifier (PID) of the elementary video
                    stream in the transport stream. Can be entered as a decimal or hexadecimal
                    value. Valid values are 32 (or 0x20)..8182 (or 0x1ff6).

                - **Extension** *(string) --* Output file extension. If excluded, this will be
                auto-selected from the container type.

                - **NameModifier** *(string) --* String concatenated to the end of the destination
                filename. Required for multiple outputs of the same type.

              - **FrameCaptureOutputSettings** *(dict) --* Frame Capture Output Settings

                - **NameModifier** *(string) --* Required if the output group contains more than one
                output. This modifier forms part of the output file name.

              - **HlsOutputSettings** *(dict) --* Hls Output Settings

                - **HlsSettings** *(dict) --* Settings regarding the underlying stream. These
                settings are different for audio-only outputs.

                  - **AudioOnlyHlsSettings** *(dict) --* Audio Only Hls Settings

                    - **AudioGroupId** *(string) --* Specifies the group to which the audio
                    Rendition belongs.

                    - **AudioOnlyImage** *(dict) --* Optional. Specifies the .jpg or .png image to
                    use as the cover art for an audio-only output. We recommend a low bit-size file
                    because the image increases the output audio bandwidth. The image is attached to
                    the audio as an ID3 tag, frame type APIC, picture type 0x10, as per the "ID3 tag
                    version 2.4.0 - Native Frames" standard.

                      - **PasswordParam** *(string) --* key used to extract the password from EC2
                      Parameter store

                      - **Uri** *(string) --* Uniform Resource Identifier - This should be a path to
                      a file accessible to the Live system (eg. a http:// URI) depending on the
                      output type. For example, a RTMP destination should have a uri simliar to:
                      "rtmp://fmsserver/live".

                      - **Username** *(string) --* Documentation update needed

                    - **AudioTrackType** *(string) --* Four types of audio-only tracks are
                    supported: Audio-Only Variant Stream The client can play back this audio-only
                    stream instead of video in low-bandwidth scenarios. Represented as an
                    EXT-X-STREAM-INF in the HLS manifest. Alternate Audio, Auto Select, Default
                    Alternate rendition that the client should try to play back by default.
                    Represented as an EXT-X-MEDIA in the HLS manifest with DEFAULT=
                        YES,
                    AUTOSELECT=
                        YES Alternate Audio, Auto Select, Not Default Alternate rendition
                    that the client may try to play back by default. Represented as an EXT-X-MEDIA
                    in the HLS manifest with DEFAULT=NO, AUTOSELECT=
                        YES Alternate Audio, not Auto
                    Select Alternate rendition that the client will not try to play back by default.
                    Represented as an EXT-X-MEDIA in the HLS manifest with DEFAULT=
                        NO, AUTOSELECT=NO

                  - **StandardHlsSettings** *(dict) --* Standard Hls Settings

                    - **AudioRenditionSets** *(string) --* List all the audio groups that are used
                    with the video output stream. Input all the audio GROUP-IDs that are associated
                    to the video, separate by ','.

                    - **M3u8Settings** *(dict) --* Settings information for the .m3u8 container

                      - **AudioFramesPerPes** *(integer) --* The number of audio frames to insert
                      for each PES packet.

                      - **AudioPids** *(string) --* Packet Identifier (PID) of the elementary audio
                      stream(s) in the transport stream. Multiple values are accepted, and can be
                      entered in ranges and/or by comma separation. Can be entered as decimal or
                      hexadecimal values.

                      - **EcmPid** *(string) --* This parameter is unused and deprecated.

                      - **NielsenId3Behavior** *(string) --* If set to passthrough, Nielsen
                      inaudible tones for media tracking will be detected in the input audio and an
                      equivalent ID3 tag will be inserted in the output.

                      - **PatInterval** *(integer) --* The number of milliseconds between instances
                      of this table in the output transport stream. A value of \\"0\\" writes out
                      the PMT once per segment file.

                      - **PcrControl** *(string) --* When set to pcrEveryPesPacket, a Program Clock
                      Reference value is inserted for every Packetized Elementary Stream (PES)
                      header. This parameter is effective only when the PCR PID is the same as the
                      video or audio elementary stream.

                      - **PcrPeriod** *(integer) --* Maximum time in milliseconds between Program
                      Clock References (PCRs) inserted into the transport stream.

                      - **PcrPid** *(string) --* Packet Identifier (PID) of the Program Clock
                      Reference (PCR) in the transport stream. When no value is given, the encoder
                      will assign the same value as the Video PID. Can be entered as a decimal or
                      hexadecimal value.

                      - **PmtInterval** *(integer) --* The number of milliseconds between instances
                      of this table in the output transport stream. A value of \\"0\\" writes out
                      the PMT once per segment file.

                      - **PmtPid** *(string) --* Packet Identifier (PID) for the Program Map Table
                      (PMT) in the transport stream. Can be entered as a decimal or hexadecimal
                      value.

                      - **ProgramNum** *(integer) --* The value of the program number field in the
                      Program Map Table.

                      - **Scte35Behavior** *(string) --* If set to passthrough, passes any SCTE-35
                      signals from the input source to this output.

                      - **Scte35Pid** *(string) --* Packet Identifier (PID) of the SCTE-35 stream in
                      the transport stream. Can be entered as a decimal or hexadecimal value.

                      - **TimedMetadataBehavior** *(string) --* When set to passthrough, timed
                      metadata is passed through from input to output.

                      - **TimedMetadataPid** *(string) --* Packet Identifier (PID) of the timed
                      metadata stream in the transport stream. Can be entered as a decimal or
                      hexadecimal value. Valid values are 32 (or 0x20)..8182 (or 0x1ff6).

                      - **TransportStreamId** *(integer) --* The value of the transport stream ID
                      field in the Program Map Table.

                      - **VideoPid** *(string) --* Packet Identifier (PID) of the elementary video
                      stream in the transport stream. Can be entered as a decimal or hexadecimal
                      value.

                - **NameModifier** *(string) --* String concatenated to the end of the destination
                filename. Accepts \\"Format Identifiers\\":#formatIdentifierParameters.

                - **SegmentModifier** *(string) --* String concatenated to end of segment filenames.

              - **MediaPackageOutputSettings** *(dict) --* Media Package Output Settings

              - **MsSmoothOutputSettings** *(dict) --* Ms Smooth Output Settings

                - **H265PackagingType** *(string) --* Only applicable when this output is
                referencing an H.265 video description. Specifies whether MP4 segments should be
                packaged as HEV1 or HVC1.

                - **NameModifier** *(string) --* String concatenated to the end of the destination
                filename. Required for multiple outputs of the same type.

              - **MultiplexOutputSettings** *(dict) --* Multiplex Output Settings

                - **Destination** *(dict) --* Destination is a Multiplex.

                  - **DestinationRefId** *(string) --* Placeholder documentation for __string

              - **RtmpOutputSettings** *(dict) --* Rtmp Output Settings

                - **CertificateMode** *(string) --* If set to verifyAuthenticity, verify the tls
                certificate chain to a trusted Certificate Authority (CA). This will cause rtmps
                outputs with self-signed certificates to fail.

                - **ConnectionRetryInterval** *(integer) --* Number of seconds to wait before
                retrying a connection to the Flash Media server if the connection is lost.

                - **Destination** *(dict) --* The RTMP endpoint excluding the stream name (eg.
                rtmp://host/appname). For connection to Akamai, a username and password must be
                supplied. URI fields accept format identifiers.

                  - **DestinationRefId** *(string) --* Placeholder documentation for __string

                - **NumRetries** *(integer) --* Number of retry attempts.

              - **UdpOutputSettings** *(dict) --* Udp Output Settings

                - **BufferMsec** *(integer) --* UDP output buffering in milliseconds. Larger values
                increase latency through the transcoder but simultaneously assist the transcoder in
                maintaining a constant, low-jitter UDP/RTP output while accommodating clock
                recovery, input switching, input disruptions, picture reordering, etc.

                - **ContainerSettings** *(dict) --* Udp Container Settings

                  - **M2tsSettings** *(dict) --* M2ts Settings

                    - **AbsentInputAudioBehavior** *(string) --* When set to drop, output audio
                    streams will be removed from the program if the selected input audio stream is
                    removed from the input. This allows the output audio configuration to
                    dynamically change based on input configuration. If this is set to
                    encodeSilence, all output audio streams will output encoded silence when not
                    connected to an active input stream.

                    - **Arib** *(string) --* When set to enabled, uses ARIB-compliant field muxing
                    and removes video descriptor.

                    - **AribCaptionsPid** *(string) --* Packet Identifier (PID) for ARIB Captions in
                    the transport stream. Can be entered as a decimal or hexadecimal value. Valid
                    values are 32 (or 0x20)..8182 (or 0x1ff6).

                    - **AribCaptionsPidControl** *(string) --* If set to auto, pid number used for
                    ARIB Captions will be auto-selected from unused pids. If set to useConfigured,
                    ARIB Captions will be on the configured pid number.

                    - **AudioBufferModel** *(string) --* When set to dvb, uses DVB buffer model for
                    Dolby Digital audio. When set to atsc, the ATSC model is used.

                    - **AudioFramesPerPes** *(integer) --* The number of audio frames to insert for
                    each PES packet.

                    - **AudioPids** *(string) --* Packet Identifier (PID) of the elementary audio
                    stream(s) in the transport stream. Multiple values are accepted, and can be
                    entered in ranges and/or by comma separation. Can be entered as decimal or
                    hexadecimal values. Each PID specified must be in the range of 32 (or
                    0x20)..8182 (or 0x1ff6).

                    - **AudioStreamType** *(string) --* When set to atsc, uses stream type = 0x81
                    for AC3 and stream type =
                         0x87 for EAC3. When set to dvb, uses stream type =
                    0x06.

                    - **Bitrate** *(integer) --* The output bitrate of the transport stream in bits
                    per second. Setting to 0 lets the muxer automatically determine the appropriate
                    bitrate.

                    - **BufferModel** *(string) --* If set to multiplex, use multiplex buffer model
                    for accurate interleaving. Setting to bufferModel to none can lead to lower
                    latency, but low-memory devices may not be able to play back the stream without
                    interruptions.

                    - **CcDescriptor** *(string) --* When set to enabled, generates
                    captionServiceDescriptor in PMT.

                    - **DvbNitSettings** *(dict) --* Inserts DVB Network Information Table (NIT) at
                    the specified table repetition interval.

                      - **NetworkId** *(integer) --* The numeric value placed in the Network
                      Information Table (NIT).

                      - **NetworkName** *(string) --* The network name text placed in the
                      networkNameDescriptor inside the Network Information Table. Maximum length is
                      256 characters.

                      - **RepInterval** *(integer) --* The number of milliseconds between instances
                      of this table in the output transport stream.

                    - **DvbSdtSettings** *(dict) --* Inserts DVB Service Description Table (SDT) at
                    the specified table repetition interval.

                      - **OutputSdt** *(string) --* Selects method of inserting SDT information into
                      output stream. The sdtFollow setting copies SDT information from input stream
                      to output stream. The sdtFollowIfPresent setting copies SDT information from
                      input stream to output stream if SDT information is present in the input,
                      otherwise it will fall back on the user-defined values. The sdtManual setting
                      means user will enter the SDT information. The sdtNone setting means output
                      stream will not contain SDT information.

                      - **RepInterval** *(integer) --* The number of milliseconds between instances
                      of this table in the output transport stream.

                      - **ServiceName** *(string) --* The service name placed in the
                      serviceDescriptor in the Service Description Table. Maximum length is 256
                      characters.

                      - **ServiceProviderName** *(string) --* The service provider name placed in
                      the serviceDescriptor in the Service Description Table. Maximum length is 256
                      characters.

                    - **DvbSubPids** *(string) --* Packet Identifier (PID) for input source DVB
                    Subtitle data to this output. Multiple values are accepted, and can be entered
                    in ranges and/or by comma separation. Can be entered as decimal or hexadecimal
                    values. Each PID specified must be in the range of 32 (or 0x20)..8182 (or
                    0x1ff6).

                    - **DvbTdtSettings** *(dict) --* Inserts DVB Time and Date Table (TDT) at the
                    specified table repetition interval.

                      - **RepInterval** *(integer) --* The number of milliseconds between instances
                      of this table in the output transport stream.

                    - **DvbTeletextPid** *(string) --* Packet Identifier (PID) for input source DVB
                    Teletext data to this output. Can be entered as a decimal or hexadecimal value.
                    Valid values are 32 (or 0x20)..8182 (or 0x1ff6).

                    - **Ebif** *(string) --* If set to passthrough, passes any EBIF data from the
                    input source to this output.

                    - **EbpAudioInterval** *(string) --* When videoAndFixedIntervals is selected,
                    audio EBP markers will be added to partitions 3 and 4. The interval between
                    these additional markers will be fixed, and will be slightly shorter than the
                    video EBP marker interval. Only available when EBP Cablelabs segmentation
                    markers are selected. Partitions 1 and 2 will always follow the video interval.

                    - **EbpLookaheadMs** *(integer) --* When set, enforces that Encoder Boundary
                    Points do not come within the specified time interval of each other by looking
                    ahead at input video. If another EBP is going to come in within the specified
                    time interval, the current EBP is not emitted, and the segment is "stretched" to
                    the next marker. The lookahead value does not add latency to the system. The
                    Live Event must be configured elsewhere to create sufficient latency to make the
                    lookahead accurate.

                    - **EbpPlacement** *(string) --* Controls placement of EBP on Audio PIDs. If set
                    to videoAndAudioPids, EBP markers will be placed on the video PID and all audio
                    PIDs. If set to videoPid, EBP markers will be placed on only the video PID.

                    - **EcmPid** *(string) --* This field is unused and deprecated.

                    - **EsRateInPes** *(string) --* Include or exclude the ES Rate field in the PES
                    header.

                    - **EtvPlatformPid** *(string) --* Packet Identifier (PID) for input source ETV
                    Platform data to this output. Can be entered as a decimal or hexadecimal value.
                    Valid values are 32 (or 0x20)..8182 (or 0x1ff6).

                    - **EtvSignalPid** *(string) --* Packet Identifier (PID) for input source ETV
                    Signal data to this output. Can be entered as a decimal or hexadecimal value.
                    Valid values are 32 (or 0x20)..8182 (or 0x1ff6).

                    - **FragmentTime** *(float) --* The length in seconds of each fragment. Only
                    used with EBP markers.

                    - **Klv** *(string) --* If set to passthrough, passes any KLV data from the
                    input source to this output.

                    - **KlvDataPids** *(string) --* Packet Identifier (PID) for input source KLV
                    data to this output. Multiple values are accepted, and can be entered in ranges
                    and/or by comma separation. Can be entered as decimal or hexadecimal values.
                    Each PID specified must be in the range of 32 (or 0x20)..8182 (or 0x1ff6).

                    - **NielsenId3Behavior** *(string) --* If set to passthrough, Nielsen inaudible
                    tones for media tracking will be detected in the input audio and an equivalent
                    ID3 tag will be inserted in the output.

                    - **NullPacketBitrate** *(float) --* Value in bits per second of extra null
                    packets to insert into the transport stream. This can be used if a downstream
                    encryption system requires periodic null packets.

                    - **PatInterval** *(integer) --* The number of milliseconds between instances of
                    this table in the output transport stream. Valid values are 0, 10..1000.

                    - **PcrControl** *(string) --* When set to pcrEveryPesPacket, a Program Clock
                    Reference value is inserted for every Packetized Elementary Stream (PES) header.
                    This parameter is effective only when the PCR PID is the same as the video or
                    audio elementary stream.

                    - **PcrPeriod** *(integer) --* Maximum time in milliseconds between Program
                    Clock Reference (PCRs) inserted into the transport stream.

                    - **PcrPid** *(string) --* Packet Identifier (PID) of the Program Clock
                    Reference (PCR) in the transport stream. When no value is given, the encoder
                    will assign the same value as the Video PID. Can be entered as a decimal or
                    hexadecimal value. Valid values are 32 (or 0x20)..8182 (or 0x1ff6).

                    - **PmtInterval** *(integer) --* The number of milliseconds between instances of
                    this table in the output transport stream. Valid values are 0, 10..1000.

                    - **PmtPid** *(string) --* Packet Identifier (PID) for the Program Map Table
                    (PMT) in the transport stream. Can be entered as a decimal or hexadecimal value.
                    Valid values are 32 (or 0x20)..8182 (or 0x1ff6).

                    - **ProgramNum** *(integer) --* The value of the program number field in the
                    Program Map Table.

                    - **RateMode** *(string) --* When vbr, does not insert null packets into
                    transport stream to fill specified bitrate. The bitrate setting acts as the
                    maximum bitrate when vbr is set.

                    - **Scte27Pids** *(string) --* Packet Identifier (PID) for input source SCTE-27
                    data to this output. Multiple values are accepted, and can be entered in ranges
                    and/or by comma separation. Can be entered as decimal or hexadecimal values.
                    Each PID specified must be in the range of 32 (or 0x20)..8182 (or 0x1ff6).

                    - **Scte35Control** *(string) --* Optionally pass SCTE-35 signals from the input
                    source to this output.

                    - **Scte35Pid** *(string) --* Packet Identifier (PID) of the SCTE-35 stream in
                    the transport stream. Can be entered as a decimal or hexadecimal value. Valid
                    values are 32 (or 0x20)..8182 (or 0x1ff6).

                    - **SegmentationMarkers** *(string) --* Inserts segmentation markers at each
                    segmentationTime period. raiSegstart sets the Random Access Indicator bit in the
                    adaptation field. raiAdapt sets the RAI bit and adds the current timecode in the
                    private data bytes. psiSegstart inserts PAT and PMT tables at the start of
                    segments. ebp adds Encoder Boundary Point information to the adaptation field as
                    per OpenCable specification OC-SP-EBP-I01-130118. ebpLegacy adds Encoder
                    Boundary Point information to the adaptation field using a legacy proprietary
                    format.

                    - **SegmentationStyle** *(string) --* The segmentation style parameter controls
                    how segmentation markers are inserted into the transport stream. With avails, it
                    is possible that segments may be truncated, which can influence where future
                    segmentation markers are inserted. When a segmentation style of "resetCadence"
                    is selected and a segment is truncated due to an avail, we will reset the
                    segmentation cadence. This means the subsequent segment will have a duration of
                    $segmentationTime seconds. When a segmentation style of "maintainCadence" is
                    selected and a segment is truncated due to an avail, we will not reset the
                    segmentation cadence. This means the subsequent segment will likely be truncated
                    as well. However, all segments after that will have a duration of
                    $segmentationTime seconds. Note that EBP lookahead is a slight exception to this
                    rule.

                    - **SegmentationTime** *(float) --* The length in seconds of each segment.
                    Required unless markers is set to None_.

                    - **TimedMetadataBehavior** *(string) --* When set to passthrough, timed
                    metadata will be passed through from input to output.

                    - **TimedMetadataPid** *(string) --* Packet Identifier (PID) of the timed
                    metadata stream in the transport stream. Can be entered as a decimal or
                    hexadecimal value. Valid values are 32 (or 0x20)..8182 (or 0x1ff6).

                    - **TransportStreamId** *(integer) --* The value of the transport stream ID
                    field in the Program Map Table.

                    - **VideoPid** *(string) --* Packet Identifier (PID) of the elementary video
                    stream in the transport stream. Can be entered as a decimal or hexadecimal
                    value. Valid values are 32 (or 0x20)..8182 (or 0x1ff6).

                - **Destination** *(dict) --* Destination address and port number for RTP or UDP
                packets. Can be unicast or multicast RTP or UDP (eg. rtp://239.10.10.10:5001 or
                udp://10.100.100.100:5002).

                  - **DestinationRefId** *(string) --* Placeholder documentation for __string

                - **FecOutputSettings** *(dict) --* Settings for enabling and adjusting Forward
                Error Correction on UDP outputs.

                  - **ColumnDepth** *(integer) --* Parameter D from SMPTE 2022-1. The height of the
                  FEC protection matrix. The number of transport stream packets per column error
                  correction packet. Must be between 4 and 20, inclusive.

                  - **IncludeFec** *(string) --* Enables column only or column and row based FEC

                  - **RowLength** *(integer) --* Parameter L from SMPTE 2022-1. The width of the FEC
                  protection matrix. Must be between 1 and 20, inclusive. If only Column FEC is
                  used, then larger values increase robustness. If Row FEC is used, then this is the
                  number of transport stream packets per row error correction packet, and the value
                  must be between 4 and 20, inclusive, if includeFec is columnAndRow. If includeFec
                  is column, this value must be 1 to 20, inclusive.

            - **VideoDescriptionName** *(string) --* The name of the VideoDescription used as the
            source for this output.

    - **TimecodeConfig** *(dict) --* Contains settings used to acquire and adjust timecode
    information from inputs.

      - **Source** *(string) --* Identifies the source for the timecode that will be associated with
      the events outputs. -Embedded (embedded): Initialize the output timecode with timecode from
      the the source. If no embedded timecode is detected in the source, the system falls back to
      using "Start at 0" (zerobased). -System Clock (systemclock): Use the UTC time. -Start at 0
      (zerobased): The time of the first frame of the event will be 00:00:00:00.

      - **SyncThreshold** *(integer) --* Threshold in frames beyond which output timecode is
      resynchronized to the input timecode. Discrepancies below this threshold are permitted to
      avoid unnecessary discontinuities in the output timecode. No timecode sync when this is not
      specified.

    - **VideoDescriptions** *(list) --* Placeholder documentation for __listOfVideoDescription

      - *(dict) --* Video settings for this stream.

        - **CodecSettings** *(dict) --* Video codec settings.

          - **FrameCaptureSettings** *(dict) --* Frame Capture Settings

            - **CaptureInterval** *(integer) --* The frequency at which to capture frames for
            inclusion in the output. May be specified in either seconds or milliseconds, as
            specified by captureIntervalUnits.

          - **H264Settings** *(dict) --* H264 Settings

            - **AdaptiveQuantization** *(string) --* Adaptive quantization. Allows intra-frame
            quantizers to vary to improve visual quality.

            - **AfdSignaling** *(string) --* Indicates that AFD values will be written into the
            output stream. If afdSignaling is "auto", the system will try to preserve the input AFD
            value (in cases where multiple AFD values are valid). If set to "fixed", the AFD value
            will be the value configured in the fixedAfd parameter.

            - **Bitrate** *(integer) --* Average bitrate in bits/second. Required when the rate
            control mode is VBR or CBR. Not used for QVBR. In an MS Smooth output group, each output
            must have a unique value when its bitrate is rounded down to the nearest multiple of
            1000.

            - **BufFillPct** *(integer) --* Percentage of the buffer that should initially be filled
            (HRD buffer model).

            - **BufSize** *(integer) --* Size of buffer (HRD buffer model) in bits.

            - **ColorMetadata** *(string) --* Includes colorspace metadata in the output.

            - **ColorSpaceSettings** *(dict) --* Color Space settings

              - **ColorSpacePassthroughSettings** *(dict) --* Passthrough applies no color space
              conversion to the output

              - **Rec601Settings** *(dict) --* Rec601 Settings

              - **Rec709Settings** *(dict) --* Rec709 Settings

            - **EntropyEncoding** *(string) --* Entropy encoding mode. Use cabac (must be in Main or
            High profile) or cavlc.

            - **FixedAfd** *(string) --* Four bit AFD value to write on all frames of video in the
            output stream. Only valid when afdSignaling is set to 'Fixed'.

            - **FlickerAq** *(string) --* If set to enabled, adjust quantization within each frame
            to reduce flicker or 'pop' on I-frames.

            - **FramerateControl** *(string) --* This field indicates how the output video frame
            rate is specified. If "specified" is selected then the output video frame rate is
            determined by framerateNumerator and framerateDenominator, else if
            "initializeFromSource" is selected then the output video frame rate will be set equal to
            the input video frame rate of the first input.

            - **FramerateDenominator** *(integer) --* Framerate denominator.

            - **FramerateNumerator** *(integer) --* Framerate numerator - framerate is a fraction,
            e.g. 24000 / 1001 = 23.976 fps.

            - **GopBReference** *(string) --* Documentation update needed

            - **GopClosedCadence** *(integer) --* Frequency of closed GOPs. In streaming
            applications, it is recommended that this be set to 1 so a decoder joining mid-stream
            will receive an IDR frame as quickly as possible. Setting this value to 0 will break
            output segmenting.

            - **GopNumBFrames** *(integer) --* Number of B-frames between reference frames.

            - **GopSize** *(float) --* GOP size (keyframe interval) in units of either frames or
            seconds per gopSizeUnits. If gopSizeUnits is frames, gopSize must be an integer and must
            be greater than or equal to 1. If gopSizeUnits is seconds, gopSize must be greater than
            0, but need not be an integer.

            - **GopSizeUnits** *(string) --* Indicates if the gopSize is specified in frames or
            seconds. If seconds the system will convert the gopSize into a frame count at run time.

            - **Level** *(string) --* H.264 Level.

            - **LookAheadRateControl** *(string) --* Amount of lookahead. A value of low can
            decrease latency and memory usage, while high can produce better quality for certain
            content.

            - **MaxBitrate** *(integer) --* For QVBR: See the tooltip for Quality level For VBR: Set
            the maximum bitrate in order to accommodate expected spikes in the complexity of the
            video.

            - **MinIInterval** *(integer) --* Only meaningful if sceneChangeDetect is set to
            enabled. Defaults to 5 if multiplex rate control is used. Enforces separation between
            repeated (cadence) I-frames and I-frames inserted by Scene Change Detection. If a scene
            change I-frame is within I-interval frames of a cadence I-frame, the GOP is shrunk
            and/or stretched to the scene change I-frame. GOP stretch requires enabling lookahead as
            well as setting I-interval. The normal cadence resumes for the next GOP. Note: Maximum
            GOP stretch = GOP size + Min-I-interval - 1

            - **NumRefFrames** *(integer) --* Number of reference frames to use. The encoder may use
            more than requested if using B-frames and/or interlaced encoding.

            - **ParControl** *(string) --* This field indicates how the output pixel aspect ratio is
            specified. If "specified" is selected then the output video pixel aspect ratio is
            determined by parNumerator and parDenominator, else if "initializeFromSource" is
            selected then the output pixsel aspect ratio will be set equal to the input video pixel
            aspect ratio of the first input.

            - **ParDenominator** *(integer) --* Pixel Aspect Ratio denominator.

            - **ParNumerator** *(integer) --* Pixel Aspect Ratio numerator.

            - **Profile** *(string) --* H.264 Profile.

            - **QvbrQualityLevel** *(integer) --* Controls the target quality for the video encode.
            Applies only when the rate control mode is QVBR. Set values for the QVBR quality level
            field and Max bitrate field that suit your most important viewing devices. Recommended
            values are: - Primary screen: Quality level: 8 to 10. Max bitrate: 4M - PC or tablet:
            Quality level: 7. Max bitrate: 1.5M to 3M - Smartphone: Quality level: 6. Max bitrate:
            1M to 1.5M

            - **RateControlMode** *(string) --* Rate control mode. QVBR: Quality will match the
            specified quality level except when it is constrained by the maximum bitrate.
            Recommended if you or your viewers pay for bandwidth. VBR: Quality and bitrate vary,
            depending on the video complexity. Recommended instead of QVBR if you want to maintain a
            specific average bitrate over the duration of the channel. CBR: Quality varies,
            depending on the video complexity. Recommended only if you distribute your assets to
            devices that cannot handle variable bitrates.

            - **ScanType** *(string) --* Sets the scan type of the output to progressive or
            top-field-first interlaced.

            - **SceneChangeDetect** *(string) --* Scene change detection. - On: inserts I-frames
            when scene change is detected. - Off: does not force an I-frame when scene change is
            detected.

            - **Slices** *(integer) --* Number of slices per picture. Must be less than or equal to
            the number of macroblock rows for progressive pictures, and less than or equal to half
            the number of macroblock rows for interlaced pictures. This field is optional; when no
            value is specified the encoder will choose the number of slices based on encode
            resolution.

            - **Softness** *(integer) --* Softness. Selects quantizer matrix, larger values reduce
            high-frequency content in the encoded image.

            - **SpatialAq** *(string) --* If set to enabled, adjust quantization within each frame
            based on spatial variation of content complexity.

            - **SubgopLength** *(string) --* If set to fixed, use gopNumBFrames B-frames per
            sub-GOP. If set to dynamic, optimize the number of B-frames used for each sub-GOP to
            improve visual quality.

            - **Syntax** *(string) --* Produces a bitstream compliant with SMPTE RP-2027.

            - **TemporalAq** *(string) --* If set to enabled, adjust quantization within each frame
            based on temporal variation of content complexity.

            - **TimecodeInsertion** *(string) --* Determines how timecodes should be inserted into
            the video elementary stream. - 'disabled': Do not include timecodes - 'picTimingSei':
            Pass through picture timing SEI messages from the source specified in Timecode Config

          - **H265Settings** *(dict) --* H265 Settings

            - **AdaptiveQuantization** *(string) --* Adaptive quantization. Allows intra-frame
            quantizers to vary to improve visual quality.

            - **AfdSignaling** *(string) --* Indicates that AFD values will be written into the
            output stream. If afdSignaling is "auto", the system will try to preserve the input AFD
            value (in cases where multiple AFD values are valid). If set to "fixed", the AFD value
            will be the value configured in the fixedAfd parameter.

            - **AlternativeTransferFunction** *(string) --* Whether or not EML should insert an
            Alternative Transfer Function SEI message to support backwards compatibility with
            non-HDR decoders and displays.

            - **Bitrate** *(integer) --* Average bitrate in bits/second. Required when the rate
            control mode is VBR or CBR. Not used for QVBR. In an MS Smooth output group, each output
            must have a unique value when its bitrate is rounded down to the nearest multiple of
            1000.

            - **BufSize** *(integer) --* Size of buffer (HRD buffer model) in bits.

            - **ColorMetadata** *(string) --* Includes colorspace metadata in the output.

            - **ColorSpaceSettings** *(dict) --* Color Space settings

              - **ColorSpacePassthroughSettings** *(dict) --* Passthrough applies no color space
              conversion to the output

              - **Hdr10Settings** *(dict) --* Hdr10 Settings

                - **MaxCll** *(integer) --* Maximum Content Light Level An integer metadata value
                defining the maximum light level, in nits, of any single pixel within an encoded HDR
                video stream or file.

                - **MaxFall** *(integer) --* Maximum Frame Average Light Level An integer metadata
                value defining the maximum average light level, in nits, for any single frame within
                an encoded HDR video stream or file.

              - **Rec601Settings** *(dict) --* Rec601 Settings

              - **Rec709Settings** *(dict) --* Rec709 Settings

            - **FixedAfd** *(string) --* Four bit AFD value to write on all frames of video in the
            output stream. Only valid when afdSignaling is set to 'Fixed'.

            - **FlickerAq** *(string) --* If set to enabled, adjust quantization within each frame
            to reduce flicker or 'pop' on I-frames.

            - **FramerateDenominator** *(integer) --* Framerate denominator.

            - **FramerateNumerator** *(integer) --* Framerate numerator - framerate is a fraction,
            e.g. 24000 / 1001 = 23.976 fps.

            - **GopClosedCadence** *(integer) --* Frequency of closed GOPs. In streaming
            applications, it is recommended that this be set to 1 so a decoder joining mid-stream
            will receive an IDR frame as quickly as possible. Setting this value to 0 will break
            output segmenting.

            - **GopSize** *(float) --* GOP size (keyframe interval) in units of either frames or
            seconds per gopSizeUnits. If gopSizeUnits is frames, gopSize must be an integer and must
            be greater than or equal to 1. If gopSizeUnits is seconds, gopSize must be greater than
            0, but need not be an integer.

            - **GopSizeUnits** *(string) --* Indicates if the gopSize is specified in frames or
            seconds. If seconds the system will convert the gopSize into a frame count at run time.

            - **Level** *(string) --* H.265 Level.

            - **LookAheadRateControl** *(string) --* Amount of lookahead. A value of low can
            decrease latency and memory usage, while high can produce better quality for certain
            content.

            - **MaxBitrate** *(integer) --* For QVBR: See the tooltip for Quality level

            - **MinIInterval** *(integer) --* Only meaningful if sceneChangeDetect is set to
            enabled. Defaults to 5 if multiplex rate control is used. Enforces separation between
            repeated (cadence) I-frames and I-frames inserted by Scene Change Detection. If a scene
            change I-frame is within I-interval frames of a cadence I-frame, the GOP is shrunk
            and/or stretched to the scene change I-frame. GOP stretch requires enabling lookahead as
            well as setting I-interval. The normal cadence resumes for the next GOP. Note: Maximum
            GOP stretch = GOP size + Min-I-interval - 1

            - **ParDenominator** *(integer) --* Pixel Aspect Ratio denominator.

            - **ParNumerator** *(integer) --* Pixel Aspect Ratio numerator.

            - **Profile** *(string) --* H.265 Profile.

            - **QvbrQualityLevel** *(integer) --* Controls the target quality for the video encode.
            Applies only when the rate control mode is QVBR. Set values for the QVBR quality level
            field and Max bitrate field that suit your most important viewing devices. Recommended
            values are: - Primary screen: Quality level: 8 to 10. Max bitrate: 4M - PC or tablet:
            Quality level: 7. Max bitrate: 1.5M to 3M - Smartphone: Quality level: 6. Max bitrate:
            1M to 1.5M

            - **RateControlMode** *(string) --* Rate control mode. QVBR: Quality will match the
            specified quality level except when it is constrained by the maximum bitrate.
            Recommended if you or your viewers pay for bandwidth. CBR: Quality varies, depending on
            the video complexity. Recommended only if you distribute your assets to devices that
            cannot handle variable bitrates.

            - **ScanType** *(string) --* Sets the scan type of the output to progressive or
            top-field-first interlaced.

            - **SceneChangeDetect** *(string) --* Scene change detection.

            - **Slices** *(integer) --* Number of slices per picture. Must be less than or equal to
            the number of macroblock rows for progressive pictures, and less than or equal to half
            the number of macroblock rows for interlaced pictures. This field is optional; when no
            value is specified the encoder will choose the number of slices based on encode
            resolution.

            - **Tier** *(string) --* H.265 Tier.

            - **TimecodeInsertion** *(string) --* Determines how timecodes should be inserted into
            the video elementary stream. - 'disabled': Do not include timecodes - 'picTimingSei':
            Pass through picture timing SEI messages from the source specified in Timecode Config

        - **Height** *(integer) --* Output video height, in pixels. Must be an even number. For most
        codecs, you can leave this field and width blank in order to use the height and width
        (resolution) from the source. Note, however, that leaving blank is not recommended. For the
        Frame Capture codec, height and width are required.

        - **Name** *(string) --* The name of this VideoDescription. Outputs will use this name to
        uniquely identify this Description. Description names should be unique within this Live
        Event.

        - **RespondToAfd** *(string) --* Indicates how to respond to the AFD values in the input
        stream. RESPOND causes input video to be clipped, depending on the AFD value, input display
        aspect ratio, and output display aspect ratio, and (except for FRAMECAPTURE codec) includes
        the values in the output. PASSTHROUGH (does not apply to FRAMECAPTURE codec) ignores the AFD
        values and includes the values in the output, so input video is not clipped. NONE ignores
        the AFD values and does not include the values through to the output, so input video is not
        clipped.

        - **ScalingBehavior** *(string) --* STRETCHTOOUTPUT configures the output position to
        stretch the video to the specified output resolution (height and width). This option will
        override any position value. DEFAULT may insert black boxes (pillar boxes or letter boxes)
        around the video to provide the specified output resolution.

        - **Sharpness** *(integer) --* Changes the strength of the anti-alias filter used for
        scaling. 0 is the softest setting, 100 is the sharpest. A setting of 50 is recommended for
        most content.

        - **Width** *(integer) --* Output video width, in pixels. Must be an even number. For most
        codecs, you can leave this field and height blank in order to use the height and width
        (resolution) from the source. Note, however, that leaving blank is not recommended. For the
        Frame Capture codec, height and width are required.
    """


_ClientUpdateChannelResponseChannelInputAttachmentsInputSettingsAudioSelectorsSelectorSettingsAudioLanguageSelectionTypeDef = TypedDict(
    "_ClientUpdateChannelResponseChannelInputAttachmentsInputSettingsAudioSelectorsSelectorSettingsAudioLanguageSelectionTypeDef",
    {"LanguageCode": str, "LanguageSelectionPolicy": str},
    total=False,
)


class ClientUpdateChannelResponseChannelInputAttachmentsInputSettingsAudioSelectorsSelectorSettingsAudioLanguageSelectionTypeDef(
    _ClientUpdateChannelResponseChannelInputAttachmentsInputSettingsAudioSelectorsSelectorSettingsAudioLanguageSelectionTypeDef
):
    """
    Type definition for
    `ClientUpdateChannelResponseChannelInputAttachmentsInputSettingsAudioSelectorsSelectorSettings`
    `AudioLanguageSelection`

    - **LanguageCode** *(string) --* Selects a specific three-letter language code from within an
    audio source.

    - **LanguageSelectionPolicy** *(string) --* When set to "strict", the transport stream demux
    strictly identifies audio streams by their language descriptor. If a PMT update occurs such that
    an audio stream matching the initially selected language is no longer present then mute will be
    encoded until the language returns. If "loose", then on a PMT update the demux will choose
    another audio stream in the program with the same stream type if it can't find one with the same
    language.
    """


_ClientUpdateChannelResponseChannelInputAttachmentsInputSettingsAudioSelectorsSelectorSettingsAudioPidSelectionTypeDef = TypedDict(
    "_ClientUpdateChannelResponseChannelInputAttachmentsInputSettingsAudioSelectorsSelectorSettingsAudioPidSelectionTypeDef",
    {"Pid": int},
    total=False,
)


class ClientUpdateChannelResponseChannelInputAttachmentsInputSettingsAudioSelectorsSelectorSettingsAudioPidSelectionTypeDef(
    _ClientUpdateChannelResponseChannelInputAttachmentsInputSettingsAudioSelectorsSelectorSettingsAudioPidSelectionTypeDef
):
    """
    Type definition for
    `ClientUpdateChannelResponseChannelInputAttachmentsInputSettingsAudioSelectorsSelectorSettings`
    `AudioPidSelection`

    - **Pid** *(integer) --* Selects a specific PID from within a source.
    """


_ClientUpdateChannelResponseChannelInputAttachmentsInputSettingsAudioSelectorsSelectorSettingsTypeDef = TypedDict(
    "_ClientUpdateChannelResponseChannelInputAttachmentsInputSettingsAudioSelectorsSelectorSettingsTypeDef",
    {
        "AudioLanguageSelection": ClientUpdateChannelResponseChannelInputAttachmentsInputSettingsAudioSelectorsSelectorSettingsAudioLanguageSelectionTypeDef,
        "AudioPidSelection": ClientUpdateChannelResponseChannelInputAttachmentsInputSettingsAudioSelectorsSelectorSettingsAudioPidSelectionTypeDef,
    },
    total=False,
)


class ClientUpdateChannelResponseChannelInputAttachmentsInputSettingsAudioSelectorsSelectorSettingsTypeDef(
    _ClientUpdateChannelResponseChannelInputAttachmentsInputSettingsAudioSelectorsSelectorSettingsTypeDef
):
    """
    Type definition for
    `ClientUpdateChannelResponseChannelInputAttachmentsInputSettingsAudioSelectors`
    `SelectorSettings`

    - **AudioLanguageSelection** *(dict) --* Audio Language Selection

      - **LanguageCode** *(string) --* Selects a specific three-letter language code from within an
      audio source.

      - **LanguageSelectionPolicy** *(string) --* When set to "strict", the transport stream demux
      strictly identifies audio streams by their language descriptor. If a PMT update occurs such
      that an audio stream matching the initially selected language is no longer present then mute
      will be encoded until the language returns. If "loose", then on a PMT update the demux will
      choose another audio stream in the program with the same stream type if it can't find one with
      the same language.

    - **AudioPidSelection** *(dict) --* Audio Pid Selection

      - **Pid** *(integer) --* Selects a specific PID from within a source.
    """


_ClientUpdateChannelResponseChannelInputAttachmentsInputSettingsAudioSelectorsTypeDef = TypedDict(
    "_ClientUpdateChannelResponseChannelInputAttachmentsInputSettingsAudioSelectorsTypeDef",
    {
        "Name": str,
        "SelectorSettings": ClientUpdateChannelResponseChannelInputAttachmentsInputSettingsAudioSelectorsSelectorSettingsTypeDef,
    },
    total=False,
)


class ClientUpdateChannelResponseChannelInputAttachmentsInputSettingsAudioSelectorsTypeDef(
    _ClientUpdateChannelResponseChannelInputAttachmentsInputSettingsAudioSelectorsTypeDef
):
    """
    Type definition for `ClientUpdateChannelResponseChannelInputAttachmentsInputSettings`
    `AudioSelectors`

    - **Name** *(string) --* The name of this AudioSelector. AudioDescriptions will use this name to
    uniquely identify this Selector. Selector names should be unique per input.

    - **SelectorSettings** *(dict) --* The audio selector settings.

      - **AudioLanguageSelection** *(dict) --* Audio Language Selection

        - **LanguageCode** *(string) --* Selects a specific three-letter language code from within
        an audio source.

        - **LanguageSelectionPolicy** *(string) --* When set to "strict", the transport stream demux
        strictly identifies audio streams by their language descriptor. If a PMT update occurs such
        that an audio stream matching the initially selected language is no longer present then mute
        will be encoded until the language returns. If "loose", then on a PMT update the demux will
        choose another audio stream in the program with the same stream type if it can't find one
        with the same language.

      - **AudioPidSelection** *(dict) --* Audio Pid Selection

        - **Pid** *(integer) --* Selects a specific PID from within a source.
    """


_ClientUpdateChannelResponseChannelInputAttachmentsInputSettingsCaptionSelectorsSelectorSettingsDvbSubSourceSettingsTypeDef = TypedDict(
    "_ClientUpdateChannelResponseChannelInputAttachmentsInputSettingsCaptionSelectorsSelectorSettingsDvbSubSourceSettingsTypeDef",
    {"Pid": int},
    total=False,
)


class ClientUpdateChannelResponseChannelInputAttachmentsInputSettingsCaptionSelectorsSelectorSettingsDvbSubSourceSettingsTypeDef(
    _ClientUpdateChannelResponseChannelInputAttachmentsInputSettingsCaptionSelectorsSelectorSettingsDvbSubSourceSettingsTypeDef
):
    """
    Type definition for
    `ClientUpdateChannelResponseChannelInputAttachmentsInputSettingsCaptionSelectorsSelectorSettings`
    `DvbSubSourceSettings`

    - **Pid** *(integer) --* When using DVB-Sub with Burn-In or SMPTE-TT, use this PID for the
    source content. Unused for DVB-Sub passthrough. All DVB-Sub content is passed through,
    regardless of selectors.
    """


_ClientUpdateChannelResponseChannelInputAttachmentsInputSettingsCaptionSelectorsSelectorSettingsEmbeddedSourceSettingsTypeDef = TypedDict(
    "_ClientUpdateChannelResponseChannelInputAttachmentsInputSettingsCaptionSelectorsSelectorSettingsEmbeddedSourceSettingsTypeDef",
    {
        "Convert608To708": str,
        "Scte20Detection": str,
        "Source608ChannelNumber": int,
        "Source608TrackNumber": int,
    },
    total=False,
)


class ClientUpdateChannelResponseChannelInputAttachmentsInputSettingsCaptionSelectorsSelectorSettingsEmbeddedSourceSettingsTypeDef(
    _ClientUpdateChannelResponseChannelInputAttachmentsInputSettingsCaptionSelectorsSelectorSettingsEmbeddedSourceSettingsTypeDef
):
    """
    Type definition for
    `ClientUpdateChannelResponseChannelInputAttachmentsInputSettingsCaptionSelectorsSelectorSettings`
    `EmbeddedSourceSettings`

    - **Convert608To708** *(string) --* If upconvert, 608 data is both passed through via the "608
    compatibility bytes" fields of the 708 wrapper as well as translated into 708. 708 data present
    in the source content will be discarded.

    - **Scte20Detection** *(string) --* Set to "auto" to handle streams with intermittent and/or
    non-aligned SCTE-20 and Embedded captions.

    - **Source608ChannelNumber** *(integer) --* Specifies the 608/708 channel number within the
    video track from which to extract captions. Unused for passthrough.

    - **Source608TrackNumber** *(integer) --* This field is unused and deprecated.
    """


_ClientUpdateChannelResponseChannelInputAttachmentsInputSettingsCaptionSelectorsSelectorSettingsScte20SourceSettingsTypeDef = TypedDict(
    "_ClientUpdateChannelResponseChannelInputAttachmentsInputSettingsCaptionSelectorsSelectorSettingsScte20SourceSettingsTypeDef",
    {"Convert608To708": str, "Source608ChannelNumber": int},
    total=False,
)


class ClientUpdateChannelResponseChannelInputAttachmentsInputSettingsCaptionSelectorsSelectorSettingsScte20SourceSettingsTypeDef(
    _ClientUpdateChannelResponseChannelInputAttachmentsInputSettingsCaptionSelectorsSelectorSettingsScte20SourceSettingsTypeDef
):
    """
    Type definition for
    `ClientUpdateChannelResponseChannelInputAttachmentsInputSettingsCaptionSelectorsSelectorSettings`
    `Scte20SourceSettings`

    - **Convert608To708** *(string) --* If upconvert, 608 data is both passed through via the "608
    compatibility bytes" fields of the 708 wrapper as well as translated into 708. 708 data present
    in the source content will be discarded.

    - **Source608ChannelNumber** *(integer) --* Specifies the 608/708 channel number within the
    video track from which to extract captions. Unused for passthrough.
    """


_ClientUpdateChannelResponseChannelInputAttachmentsInputSettingsCaptionSelectorsSelectorSettingsScte27SourceSettingsTypeDef = TypedDict(
    "_ClientUpdateChannelResponseChannelInputAttachmentsInputSettingsCaptionSelectorsSelectorSettingsScte27SourceSettingsTypeDef",
    {"Pid": int},
    total=False,
)


class ClientUpdateChannelResponseChannelInputAttachmentsInputSettingsCaptionSelectorsSelectorSettingsScte27SourceSettingsTypeDef(
    _ClientUpdateChannelResponseChannelInputAttachmentsInputSettingsCaptionSelectorsSelectorSettingsScte27SourceSettingsTypeDef
):
    """
    Type definition for
    `ClientUpdateChannelResponseChannelInputAttachmentsInputSettingsCaptionSelectorsSelectorSettings`
    `Scte27SourceSettings`

    - **Pid** *(integer) --* The pid field is used in conjunction with the caption selector
    languageCode field as follows: - Specify PID and Language: Extracts captions from that PID; the
    language is "informational". - Specify PID and omit Language: Extracts the specified PID. - Omit
    PID and specify Language: Extracts the specified language, whichever PID that happens to be. -
    Omit PID and omit Language: Valid only if source is DVB-Sub that is being passed through; all
    languages will be passed through.
    """


_ClientUpdateChannelResponseChannelInputAttachmentsInputSettingsCaptionSelectorsSelectorSettingsTeletextSourceSettingsTypeDef = TypedDict(
    "_ClientUpdateChannelResponseChannelInputAttachmentsInputSettingsCaptionSelectorsSelectorSettingsTeletextSourceSettingsTypeDef",
    {"PageNumber": str},
    total=False,
)


class ClientUpdateChannelResponseChannelInputAttachmentsInputSettingsCaptionSelectorsSelectorSettingsTeletextSourceSettingsTypeDef(
    _ClientUpdateChannelResponseChannelInputAttachmentsInputSettingsCaptionSelectorsSelectorSettingsTeletextSourceSettingsTypeDef
):
    """
    Type definition for
    `ClientUpdateChannelResponseChannelInputAttachmentsInputSettingsCaptionSelectorsSelectorSettings`
    `TeletextSourceSettings`

    - **PageNumber** *(string) --* Specifies the teletext page number within the data stream from
    which to extract captions. Range of 0x100 (256) to 0x8FF (2303). Unused for passthrough. Should
    be specified as a hexadecimal string with no "0x" prefix.
    """


_ClientUpdateChannelResponseChannelInputAttachmentsInputSettingsCaptionSelectorsSelectorSettingsTypeDef = TypedDict(
    "_ClientUpdateChannelResponseChannelInputAttachmentsInputSettingsCaptionSelectorsSelectorSettingsTypeDef",
    {
        "AribSourceSettings": Dict,
        "DvbSubSourceSettings": ClientUpdateChannelResponseChannelInputAttachmentsInputSettingsCaptionSelectorsSelectorSettingsDvbSubSourceSettingsTypeDef,
        "EmbeddedSourceSettings": ClientUpdateChannelResponseChannelInputAttachmentsInputSettingsCaptionSelectorsSelectorSettingsEmbeddedSourceSettingsTypeDef,
        "Scte20SourceSettings": ClientUpdateChannelResponseChannelInputAttachmentsInputSettingsCaptionSelectorsSelectorSettingsScte20SourceSettingsTypeDef,
        "Scte27SourceSettings": ClientUpdateChannelResponseChannelInputAttachmentsInputSettingsCaptionSelectorsSelectorSettingsScte27SourceSettingsTypeDef,
        "TeletextSourceSettings": ClientUpdateChannelResponseChannelInputAttachmentsInputSettingsCaptionSelectorsSelectorSettingsTeletextSourceSettingsTypeDef,
    },
    total=False,
)


class ClientUpdateChannelResponseChannelInputAttachmentsInputSettingsCaptionSelectorsSelectorSettingsTypeDef(
    _ClientUpdateChannelResponseChannelInputAttachmentsInputSettingsCaptionSelectorsSelectorSettingsTypeDef
):
    """
    Type definition for
    `ClientUpdateChannelResponseChannelInputAttachmentsInputSettingsCaptionSelectors`
    `SelectorSettings`

    - **AribSourceSettings** *(dict) --* Arib Source Settings

    - **DvbSubSourceSettings** *(dict) --* Dvb Sub Source Settings

      - **Pid** *(integer) --* When using DVB-Sub with Burn-In or SMPTE-TT, use this PID for the
      source content. Unused for DVB-Sub passthrough. All DVB-Sub content is passed through,
      regardless of selectors.

    - **EmbeddedSourceSettings** *(dict) --* Embedded Source Settings

      - **Convert608To708** *(string) --* If upconvert, 608 data is both passed through via the "608
      compatibility bytes" fields of the 708 wrapper as well as translated into 708. 708 data
      present in the source content will be discarded.

      - **Scte20Detection** *(string) --* Set to "auto" to handle streams with intermittent and/or
      non-aligned SCTE-20 and Embedded captions.

      - **Source608ChannelNumber** *(integer) --* Specifies the 608/708 channel number within the
      video track from which to extract captions. Unused for passthrough.

      - **Source608TrackNumber** *(integer) --* This field is unused and deprecated.

    - **Scte20SourceSettings** *(dict) --* Scte20 Source Settings

      - **Convert608To708** *(string) --* If upconvert, 608 data is both passed through via the "608
      compatibility bytes" fields of the 708 wrapper as well as translated into 708. 708 data
      present in the source content will be discarded.

      - **Source608ChannelNumber** *(integer) --* Specifies the 608/708 channel number within the
      video track from which to extract captions. Unused for passthrough.

    - **Scte27SourceSettings** *(dict) --* Scte27 Source Settings

      - **Pid** *(integer) --* The pid field is used in conjunction with the caption selector
      languageCode field as follows: - Specify PID and Language: Extracts captions from that PID;
      the language is "informational". - Specify PID and omit Language: Extracts the specified PID.
      - Omit PID and specify Language: Extracts the specified language, whichever PID that happens
      to be. - Omit PID and omit Language: Valid only if source is DVB-Sub that is being passed
      through; all languages will be passed through.

    - **TeletextSourceSettings** *(dict) --* Teletext Source Settings

      - **PageNumber** *(string) --* Specifies the teletext page number within the data stream from
      which to extract captions. Range of 0x100 (256) to 0x8FF (2303). Unused for passthrough.
      Should be specified as a hexadecimal string with no "0x" prefix.
    """


_ClientUpdateChannelResponseChannelInputAttachmentsInputSettingsCaptionSelectorsTypeDef = TypedDict(
    "_ClientUpdateChannelResponseChannelInputAttachmentsInputSettingsCaptionSelectorsTypeDef",
    {
        "LanguageCode": str,
        "Name": str,
        "SelectorSettings": ClientUpdateChannelResponseChannelInputAttachmentsInputSettingsCaptionSelectorsSelectorSettingsTypeDef,
    },
    total=False,
)


class ClientUpdateChannelResponseChannelInputAttachmentsInputSettingsCaptionSelectorsTypeDef(
    _ClientUpdateChannelResponseChannelInputAttachmentsInputSettingsCaptionSelectorsTypeDef
):
    """
    Type definition for `ClientUpdateChannelResponseChannelInputAttachmentsInputSettings`
    `CaptionSelectors`

    - **LanguageCode** *(string) --* When specified this field indicates the three letter language
    code of the caption track to extract from the source.

    - **Name** *(string) --* Name identifier for a caption selector. This name is used to associate
    this caption selector with one or more caption descriptions. Names must be unique within an
    event.

    - **SelectorSettings** *(dict) --* Caption selector settings.

      - **AribSourceSettings** *(dict) --* Arib Source Settings

      - **DvbSubSourceSettings** *(dict) --* Dvb Sub Source Settings

        - **Pid** *(integer) --* When using DVB-Sub with Burn-In or SMPTE-TT, use this PID for the
        source content. Unused for DVB-Sub passthrough. All DVB-Sub content is passed through,
        regardless of selectors.

      - **EmbeddedSourceSettings** *(dict) --* Embedded Source Settings

        - **Convert608To708** *(string) --* If upconvert, 608 data is both passed through via the
        "608 compatibility bytes" fields of the 708 wrapper as well as translated into 708. 708 data
        present in the source content will be discarded.

        - **Scte20Detection** *(string) --* Set to "auto" to handle streams with intermittent and/or
        non-aligned SCTE-20 and Embedded captions.

        - **Source608ChannelNumber** *(integer) --* Specifies the 608/708 channel number within the
        video track from which to extract captions. Unused for passthrough.

        - **Source608TrackNumber** *(integer) --* This field is unused and deprecated.

      - **Scte20SourceSettings** *(dict) --* Scte20 Source Settings

        - **Convert608To708** *(string) --* If upconvert, 608 data is both passed through via the
        "608 compatibility bytes" fields of the 708 wrapper as well as translated into 708. 708 data
        present in the source content will be discarded.

        - **Source608ChannelNumber** *(integer) --* Specifies the 608/708 channel number within the
        video track from which to extract captions. Unused for passthrough.

      - **Scte27SourceSettings** *(dict) --* Scte27 Source Settings

        - **Pid** *(integer) --* The pid field is used in conjunction with the caption selector
        languageCode field as follows: - Specify PID and Language: Extracts captions from that PID;
        the language is "informational". - Specify PID and omit Language: Extracts the specified
        PID. - Omit PID and specify Language: Extracts the specified language, whichever PID that
        happens to be. - Omit PID and omit Language: Valid only if source is DVB-Sub that is being
        passed through; all languages will be passed through.

      - **TeletextSourceSettings** *(dict) --* Teletext Source Settings

        - **PageNumber** *(string) --* Specifies the teletext page number within the data stream
        from which to extract captions. Range of 0x100 (256) to 0x8FF (2303). Unused for
        passthrough. Should be specified as a hexadecimal string with no "0x" prefix.
    """


_ClientUpdateChannelResponseChannelInputAttachmentsInputSettingsNetworkInputSettingsHlsInputSettingsTypeDef = TypedDict(
    "_ClientUpdateChannelResponseChannelInputAttachmentsInputSettingsNetworkInputSettingsHlsInputSettingsTypeDef",
    {"Bandwidth": int, "BufferSegments": int, "Retries": int, "RetryInterval": int},
    total=False,
)


class ClientUpdateChannelResponseChannelInputAttachmentsInputSettingsNetworkInputSettingsHlsInputSettingsTypeDef(
    _ClientUpdateChannelResponseChannelInputAttachmentsInputSettingsNetworkInputSettingsHlsInputSettingsTypeDef
):
    """
    Type definition for
    `ClientUpdateChannelResponseChannelInputAttachmentsInputSettingsNetworkInputSettings`
    `HlsInputSettings`

    - **Bandwidth** *(integer) --* When specified the HLS stream with the m3u8 BANDWIDTH that most
    closely matches this value will be chosen, otherwise the highest bandwidth stream in the m3u8
    will be chosen. The bitrate is specified in bits per second, as in an HLS manifest.

    - **BufferSegments** *(integer) --* When specified, reading of the HLS input will begin this
    many buffer segments from the end (most recently written segment). When not specified, the HLS
    input will begin with the first segment specified in the m3u8.

    - **Retries** *(integer) --* The number of consecutive times that attempts to read a manifest or
    segment must fail before the input is considered unavailable.

    - **RetryInterval** *(integer) --* The number of seconds between retries when an attempt to read
    a manifest or segment fails.
    """


_ClientUpdateChannelResponseChannelInputAttachmentsInputSettingsNetworkInputSettingsTypeDef = TypedDict(
    "_ClientUpdateChannelResponseChannelInputAttachmentsInputSettingsNetworkInputSettingsTypeDef",
    {
        "HlsInputSettings": ClientUpdateChannelResponseChannelInputAttachmentsInputSettingsNetworkInputSettingsHlsInputSettingsTypeDef,
        "ServerValidation": str,
    },
    total=False,
)


class ClientUpdateChannelResponseChannelInputAttachmentsInputSettingsNetworkInputSettingsTypeDef(
    _ClientUpdateChannelResponseChannelInputAttachmentsInputSettingsNetworkInputSettingsTypeDef
):
    """
    Type definition for `ClientUpdateChannelResponseChannelInputAttachmentsInputSettings`
    `NetworkInputSettings`

    - **HlsInputSettings** *(dict) --* Specifies HLS input settings when the uri is for a HLS
    manifest.

      - **Bandwidth** *(integer) --* When specified the HLS stream with the m3u8 BANDWIDTH that most
      closely matches this value will be chosen, otherwise the highest bandwidth stream in the m3u8
      will be chosen. The bitrate is specified in bits per second, as in an HLS manifest.

      - **BufferSegments** *(integer) --* When specified, reading of the HLS input will begin this
      many buffer segments from the end (most recently written segment). When not specified, the HLS
      input will begin with the first segment specified in the m3u8.

      - **Retries** *(integer) --* The number of consecutive times that attempts to read a manifest
      or segment must fail before the input is considered unavailable.

      - **RetryInterval** *(integer) --* The number of seconds between retries when an attempt to
      read a manifest or segment fails.

    - **ServerValidation** *(string) --* Check HTTPS server certificates. When set to
    checkCryptographyOnly, cryptography in the certificate will be checked, but not the server's
    name. Certain subdomains (notably S3 buckets that use dots in the bucket name) do not strictly
    match the corresponding certificate's wildcard pattern and would otherwise cause the event to
    error. This setting is ignored for protocols that do not use https.
    """


_ClientUpdateChannelResponseChannelInputAttachmentsInputSettingsVideoSelectorSelectorSettingsVideoSelectorPidTypeDef = TypedDict(
    "_ClientUpdateChannelResponseChannelInputAttachmentsInputSettingsVideoSelectorSelectorSettingsVideoSelectorPidTypeDef",
    {"Pid": int},
    total=False,
)


class ClientUpdateChannelResponseChannelInputAttachmentsInputSettingsVideoSelectorSelectorSettingsVideoSelectorPidTypeDef(
    _ClientUpdateChannelResponseChannelInputAttachmentsInputSettingsVideoSelectorSelectorSettingsVideoSelectorPidTypeDef
):
    """
    Type definition for
    `ClientUpdateChannelResponseChannelInputAttachmentsInputSettingsVideoSelectorSelectorSettings`
    `VideoSelectorPid`

    - **Pid** *(integer) --* Selects a specific PID from within a video source.
    """


_ClientUpdateChannelResponseChannelInputAttachmentsInputSettingsVideoSelectorSelectorSettingsVideoSelectorProgramIdTypeDef = TypedDict(
    "_ClientUpdateChannelResponseChannelInputAttachmentsInputSettingsVideoSelectorSelectorSettingsVideoSelectorProgramIdTypeDef",
    {"ProgramId": int},
    total=False,
)


class ClientUpdateChannelResponseChannelInputAttachmentsInputSettingsVideoSelectorSelectorSettingsVideoSelectorProgramIdTypeDef(
    _ClientUpdateChannelResponseChannelInputAttachmentsInputSettingsVideoSelectorSelectorSettingsVideoSelectorProgramIdTypeDef
):
    """
    Type definition for
    `ClientUpdateChannelResponseChannelInputAttachmentsInputSettingsVideoSelectorSelectorSettings`
    `VideoSelectorProgramId`

    - **ProgramId** *(integer) --* Selects a specific program from within a multi-program transport
    stream. If the program doesn't exist, the first program within the transport stream will be
    selected by default.
    """


_ClientUpdateChannelResponseChannelInputAttachmentsInputSettingsVideoSelectorSelectorSettingsTypeDef = TypedDict(
    "_ClientUpdateChannelResponseChannelInputAttachmentsInputSettingsVideoSelectorSelectorSettingsTypeDef",
    {
        "VideoSelectorPid": ClientUpdateChannelResponseChannelInputAttachmentsInputSettingsVideoSelectorSelectorSettingsVideoSelectorPidTypeDef,
        "VideoSelectorProgramId": ClientUpdateChannelResponseChannelInputAttachmentsInputSettingsVideoSelectorSelectorSettingsVideoSelectorProgramIdTypeDef,
    },
    total=False,
)


class ClientUpdateChannelResponseChannelInputAttachmentsInputSettingsVideoSelectorSelectorSettingsTypeDef(
    _ClientUpdateChannelResponseChannelInputAttachmentsInputSettingsVideoSelectorSelectorSettingsTypeDef
):
    """
    Type definition for
    `ClientUpdateChannelResponseChannelInputAttachmentsInputSettingsVideoSelector`
    `SelectorSettings`

    - **VideoSelectorPid** *(dict) --* Video Selector Pid

      - **Pid** *(integer) --* Selects a specific PID from within a video source.

    - **VideoSelectorProgramId** *(dict) --* Video Selector Program Id

      - **ProgramId** *(integer) --* Selects a specific program from within a multi-program
      transport stream. If the program doesn't exist, the first program within the transport stream
      will be selected by default.
    """


_ClientUpdateChannelResponseChannelInputAttachmentsInputSettingsVideoSelectorTypeDef = TypedDict(
    "_ClientUpdateChannelResponseChannelInputAttachmentsInputSettingsVideoSelectorTypeDef",
    {
        "ColorSpace": str,
        "ColorSpaceUsage": str,
        "SelectorSettings": ClientUpdateChannelResponseChannelInputAttachmentsInputSettingsVideoSelectorSelectorSettingsTypeDef,
    },
    total=False,
)


class ClientUpdateChannelResponseChannelInputAttachmentsInputSettingsVideoSelectorTypeDef(
    _ClientUpdateChannelResponseChannelInputAttachmentsInputSettingsVideoSelectorTypeDef
):
    """
    Type definition for `ClientUpdateChannelResponseChannelInputAttachmentsInputSettings`
    `VideoSelector`

    - **ColorSpace** *(string) --* Specifies the color space of an input. This setting works in
    tandem with colorSpaceUsage and a video description's colorSpaceSettingsChoice to determine if
    any conversion will be performed.

    - **ColorSpaceUsage** *(string) --* Applies only if colorSpace is a value other than follow.
    This field controls how the value in the colorSpace field will be used. fallback means that when
    the input does include color space data, that data will be used, but when the input has no color
    space data, the value in colorSpace will be used. Choose fallback if your input is sometimes
    missing color space data, but when it does have color space data, that data is correct. force
    means to always use the value in colorSpace. Choose force if your input usually has no color
    space data or might have unreliable color space data.

    - **SelectorSettings** *(dict) --* The video selector settings.

      - **VideoSelectorPid** *(dict) --* Video Selector Pid

        - **Pid** *(integer) --* Selects a specific PID from within a video source.

      - **VideoSelectorProgramId** *(dict) --* Video Selector Program Id

        - **ProgramId** *(integer) --* Selects a specific program from within a multi-program
        transport stream. If the program doesn't exist, the first program within the transport
        stream will be selected by default.
    """


_ClientUpdateChannelResponseChannelInputAttachmentsInputSettingsTypeDef = TypedDict(
    "_ClientUpdateChannelResponseChannelInputAttachmentsInputSettingsTypeDef",
    {
        "AudioSelectors": List[
            ClientUpdateChannelResponseChannelInputAttachmentsInputSettingsAudioSelectorsTypeDef
        ],
        "CaptionSelectors": List[
            ClientUpdateChannelResponseChannelInputAttachmentsInputSettingsCaptionSelectorsTypeDef
        ],
        "DeblockFilter": str,
        "DenoiseFilter": str,
        "FilterStrength": int,
        "InputFilter": str,
        "NetworkInputSettings": ClientUpdateChannelResponseChannelInputAttachmentsInputSettingsNetworkInputSettingsTypeDef,
        "SourceEndBehavior": str,
        "VideoSelector": ClientUpdateChannelResponseChannelInputAttachmentsInputSettingsVideoSelectorTypeDef,
    },
    total=False,
)


class ClientUpdateChannelResponseChannelInputAttachmentsInputSettingsTypeDef(
    _ClientUpdateChannelResponseChannelInputAttachmentsInputSettingsTypeDef
):
    """
    Type definition for `ClientUpdateChannelResponseChannelInputAttachments` `InputSettings`

    - **AudioSelectors** *(list) --* Used to select the audio stream to decode for inputs that have
    multiple available.

      - *(dict) --* Audio Selector

        - **Name** *(string) --* The name of this AudioSelector. AudioDescriptions will use this
        name to uniquely identify this Selector. Selector names should be unique per input.

        - **SelectorSettings** *(dict) --* The audio selector settings.

          - **AudioLanguageSelection** *(dict) --* Audio Language Selection

            - **LanguageCode** *(string) --* Selects a specific three-letter language code from
            within an audio source.

            - **LanguageSelectionPolicy** *(string) --* When set to "strict", the transport stream
            demux strictly identifies audio streams by their language descriptor. If a PMT update
            occurs such that an audio stream matching the initially selected language is no longer
            present then mute will be encoded until the language returns. If "loose", then on a PMT
            update the demux will choose another audio stream in the program with the same stream
            type if it can't find one with the same language.

          - **AudioPidSelection** *(dict) --* Audio Pid Selection

            - **Pid** *(integer) --* Selects a specific PID from within a source.

    - **CaptionSelectors** *(list) --* Used to select the caption input to use for inputs that have
    multiple available.

      - *(dict) --* Output groups for this Live Event. Output groups contain information about where
      streams should be distributed.

        - **LanguageCode** *(string) --* When specified this field indicates the three letter
        language code of the caption track to extract from the source.

        - **Name** *(string) --* Name identifier for a caption selector. This name is used to
        associate this caption selector with one or more caption descriptions. Names must be unique
        within an event.

        - **SelectorSettings** *(dict) --* Caption selector settings.

          - **AribSourceSettings** *(dict) --* Arib Source Settings

          - **DvbSubSourceSettings** *(dict) --* Dvb Sub Source Settings

            - **Pid** *(integer) --* When using DVB-Sub with Burn-In or SMPTE-TT, use this PID for
            the source content. Unused for DVB-Sub passthrough. All DVB-Sub content is passed
            through, regardless of selectors.

          - **EmbeddedSourceSettings** *(dict) --* Embedded Source Settings

            - **Convert608To708** *(string) --* If upconvert, 608 data is both passed through via
            the "608 compatibility bytes" fields of the 708 wrapper as well as translated into 708.
            708 data present in the source content will be discarded.

            - **Scte20Detection** *(string) --* Set to "auto" to handle streams with intermittent
            and/or non-aligned SCTE-20 and Embedded captions.

            - **Source608ChannelNumber** *(integer) --* Specifies the 608/708 channel number within
            the video track from which to extract captions. Unused for passthrough.

            - **Source608TrackNumber** *(integer) --* This field is unused and deprecated.

          - **Scte20SourceSettings** *(dict) --* Scte20 Source Settings

            - **Convert608To708** *(string) --* If upconvert, 608 data is both passed through via
            the "608 compatibility bytes" fields of the 708 wrapper as well as translated into 708.
            708 data present in the source content will be discarded.

            - **Source608ChannelNumber** *(integer) --* Specifies the 608/708 channel number within
            the video track from which to extract captions. Unused for passthrough.

          - **Scte27SourceSettings** *(dict) --* Scte27 Source Settings

            - **Pid** *(integer) --* The pid field is used in conjunction with the caption selector
            languageCode field as follows: - Specify PID and Language: Extracts captions from that
            PID; the language is "informational". - Specify PID and omit Language: Extracts the
            specified PID. - Omit PID and specify Language: Extracts the specified language,
            whichever PID that happens to be. - Omit PID and omit Language: Valid only if source is
            DVB-Sub that is being passed through; all languages will be passed through.

          - **TeletextSourceSettings** *(dict) --* Teletext Source Settings

            - **PageNumber** *(string) --* Specifies the teletext page number within the data stream
            from which to extract captions. Range of 0x100 (256) to 0x8FF (2303). Unused for
            passthrough. Should be specified as a hexadecimal string with no "0x" prefix.

    - **DeblockFilter** *(string) --* Enable or disable the deblock filter when filtering.

    - **DenoiseFilter** *(string) --* Enable or disable the denoise filter when filtering.

    - **FilterStrength** *(integer) --* Adjusts the magnitude of filtering from 1 (minimal) to 5
    (strongest).

    - **InputFilter** *(string) --* Turns on the filter for this input. MPEG-2 inputs have the
    deblocking filter enabled by default. 1) auto - filtering will be applied depending on input
    type/quality 2) disabled - no filtering will be applied to the input 3) forced - filtering will
    be applied regardless of input type

    - **NetworkInputSettings** *(dict) --* Input settings.

      - **HlsInputSettings** *(dict) --* Specifies HLS input settings when the uri is for a HLS
      manifest.

        - **Bandwidth** *(integer) --* When specified the HLS stream with the m3u8 BANDWIDTH that
        most closely matches this value will be chosen, otherwise the highest bandwidth stream in
        the m3u8 will be chosen. The bitrate is specified in bits per second, as in an HLS manifest.

        - **BufferSegments** *(integer) --* When specified, reading of the HLS input will begin this
        many buffer segments from the end (most recently written segment). When not specified, the
        HLS input will begin with the first segment specified in the m3u8.

        - **Retries** *(integer) --* The number of consecutive times that attempts to read a
        manifest or segment must fail before the input is considered unavailable.

        - **RetryInterval** *(integer) --* The number of seconds between retries when an attempt to
        read a manifest or segment fails.

      - **ServerValidation** *(string) --* Check HTTPS server certificates. When set to
      checkCryptographyOnly, cryptography in the certificate will be checked, but not the server's
      name. Certain subdomains (notably S3 buckets that use dots in the bucket name) do not strictly
      match the corresponding certificate's wildcard pattern and would otherwise cause the event to
      error. This setting is ignored for protocols that do not use https.

    - **SourceEndBehavior** *(string) --* Loop input if it is a file. This allows a file input to be
    streamed indefinitely.

    - **VideoSelector** *(dict) --* Informs which video elementary stream to decode for input types
    that have multiple available.

      - **ColorSpace** *(string) --* Specifies the color space of an input. This setting works in
      tandem with colorSpaceUsage and a video description's colorSpaceSettingsChoice to determine if
      any conversion will be performed.

      - **ColorSpaceUsage** *(string) --* Applies only if colorSpace is a value other than follow.
      This field controls how the value in the colorSpace field will be used. fallback means that
      when the input does include color space data, that data will be used, but when the input has
      no color space data, the value in colorSpace will be used. Choose fallback if your input is
      sometimes missing color space data, but when it does have color space data, that data is
      correct. force means to always use the value in colorSpace. Choose force if your input usually
      has no color space data or might have unreliable color space data.

      - **SelectorSettings** *(dict) --* The video selector settings.

        - **VideoSelectorPid** *(dict) --* Video Selector Pid

          - **Pid** *(integer) --* Selects a specific PID from within a video source.

        - **VideoSelectorProgramId** *(dict) --* Video Selector Program Id

          - **ProgramId** *(integer) --* Selects a specific program from within a multi-program
          transport stream. If the program doesn't exist, the first program within the transport
          stream will be selected by default.
    """


_ClientUpdateChannelResponseChannelInputAttachmentsTypeDef = TypedDict(
    "_ClientUpdateChannelResponseChannelInputAttachmentsTypeDef",
    {
        "InputAttachmentName": str,
        "InputId": str,
        "InputSettings": ClientUpdateChannelResponseChannelInputAttachmentsInputSettingsTypeDef,
    },
    total=False,
)


class ClientUpdateChannelResponseChannelInputAttachmentsTypeDef(
    _ClientUpdateChannelResponseChannelInputAttachmentsTypeDef
):
    """
    Type definition for `ClientUpdateChannelResponseChannel` `InputAttachments`

    - **InputAttachmentName** *(string) --* User-specified name for the attachment. This is required
    if the user wants to use this input in an input switch action.

    - **InputId** *(string) --* The ID of the input

    - **InputSettings** *(dict) --* Settings of an input (caption selector, etc.)

      - **AudioSelectors** *(list) --* Used to select the audio stream to decode for inputs that
      have multiple available.

        - *(dict) --* Audio Selector

          - **Name** *(string) --* The name of this AudioSelector. AudioDescriptions will use this
          name to uniquely identify this Selector. Selector names should be unique per input.

          - **SelectorSettings** *(dict) --* The audio selector settings.

            - **AudioLanguageSelection** *(dict) --* Audio Language Selection

              - **LanguageCode** *(string) --* Selects a specific three-letter language code from
              within an audio source.

              - **LanguageSelectionPolicy** *(string) --* When set to "strict", the transport stream
              demux strictly identifies audio streams by their language descriptor. If a PMT update
              occurs such that an audio stream matching the initially selected language is no longer
              present then mute will be encoded until the language returns. If "loose", then on a
              PMT update the demux will choose another audio stream in the program with the same
              stream type if it can't find one with the same language.

            - **AudioPidSelection** *(dict) --* Audio Pid Selection

              - **Pid** *(integer) --* Selects a specific PID from within a source.

      - **CaptionSelectors** *(list) --* Used to select the caption input to use for inputs that
      have multiple available.

        - *(dict) --* Output groups for this Live Event. Output groups contain information about
        where streams should be distributed.

          - **LanguageCode** *(string) --* When specified this field indicates the three letter
          language code of the caption track to extract from the source.

          - **Name** *(string) --* Name identifier for a caption selector. This name is used to
          associate this caption selector with one or more caption descriptions. Names must be
          unique within an event.

          - **SelectorSettings** *(dict) --* Caption selector settings.

            - **AribSourceSettings** *(dict) --* Arib Source Settings

            - **DvbSubSourceSettings** *(dict) --* Dvb Sub Source Settings

              - **Pid** *(integer) --* When using DVB-Sub with Burn-In or SMPTE-TT, use this PID for
              the source content. Unused for DVB-Sub passthrough. All DVB-Sub content is passed
              through, regardless of selectors.

            - **EmbeddedSourceSettings** *(dict) --* Embedded Source Settings

              - **Convert608To708** *(string) --* If upconvert, 608 data is both passed through via
              the "608 compatibility bytes" fields of the 708 wrapper as well as translated into
              708. 708 data present in the source content will be discarded.

              - **Scte20Detection** *(string) --* Set to "auto" to handle streams with intermittent
              and/or non-aligned SCTE-20 and Embedded captions.

              - **Source608ChannelNumber** *(integer) --* Specifies the 608/708 channel number
              within the video track from which to extract captions. Unused for passthrough.

              - **Source608TrackNumber** *(integer) --* This field is unused and deprecated.

            - **Scte20SourceSettings** *(dict) --* Scte20 Source Settings

              - **Convert608To708** *(string) --* If upconvert, 608 data is both passed through via
              the "608 compatibility bytes" fields of the 708 wrapper as well as translated into
              708. 708 data present in the source content will be discarded.

              - **Source608ChannelNumber** *(integer) --* Specifies the 608/708 channel number
              within the video track from which to extract captions. Unused for passthrough.

            - **Scte27SourceSettings** *(dict) --* Scte27 Source Settings

              - **Pid** *(integer) --* The pid field is used in conjunction with the caption
              selector languageCode field as follows: - Specify PID and Language: Extracts captions
              from that PID; the language is "informational". - Specify PID and omit Language:
              Extracts the specified PID. - Omit PID and specify Language: Extracts the specified
              language, whichever PID that happens to be. - Omit PID and omit Language: Valid only
              if source is DVB-Sub that is being passed through; all languages will be passed
              through.

            - **TeletextSourceSettings** *(dict) --* Teletext Source Settings

              - **PageNumber** *(string) --* Specifies the teletext page number within the data
              stream from which to extract captions. Range of 0x100 (256) to 0x8FF (2303). Unused
              for passthrough. Should be specified as a hexadecimal string with no "0x" prefix.

      - **DeblockFilter** *(string) --* Enable or disable the deblock filter when filtering.

      - **DenoiseFilter** *(string) --* Enable or disable the denoise filter when filtering.

      - **FilterStrength** *(integer) --* Adjusts the magnitude of filtering from 1 (minimal) to 5
      (strongest).

      - **InputFilter** *(string) --* Turns on the filter for this input. MPEG-2 inputs have the
      deblocking filter enabled by default. 1) auto - filtering will be applied depending on input
      type/quality 2) disabled - no filtering will be applied to the input 3) forced - filtering
      will be applied regardless of input type

      - **NetworkInputSettings** *(dict) --* Input settings.

        - **HlsInputSettings** *(dict) --* Specifies HLS input settings when the uri is for a HLS
        manifest.

          - **Bandwidth** *(integer) --* When specified the HLS stream with the m3u8 BANDWIDTH that
          most closely matches this value will be chosen, otherwise the highest bandwidth stream in
          the m3u8 will be chosen. The bitrate is specified in bits per second, as in an HLS
          manifest.

          - **BufferSegments** *(integer) --* When specified, reading of the HLS input will begin
          this many buffer segments from the end (most recently written segment). When not
          specified, the HLS input will begin with the first segment specified in the m3u8.

          - **Retries** *(integer) --* The number of consecutive times that attempts to read a
          manifest or segment must fail before the input is considered unavailable.

          - **RetryInterval** *(integer) --* The number of seconds between retries when an attempt
          to read a manifest or segment fails.

        - **ServerValidation** *(string) --* Check HTTPS server certificates. When set to
        checkCryptographyOnly, cryptography in the certificate will be checked, but not the server's
        name. Certain subdomains (notably S3 buckets that use dots in the bucket name) do not
        strictly match the corresponding certificate's wildcard pattern and would otherwise cause
        the event to error. This setting is ignored for protocols that do not use https.

      - **SourceEndBehavior** *(string) --* Loop input if it is a file. This allows a file input to
      be streamed indefinitely.

      - **VideoSelector** *(dict) --* Informs which video elementary stream to decode for input
      types that have multiple available.

        - **ColorSpace** *(string) --* Specifies the color space of an input. This setting works in
        tandem with colorSpaceUsage and a video description's colorSpaceSettingsChoice to determine
        if any conversion will be performed.

        - **ColorSpaceUsage** *(string) --* Applies only if colorSpace is a value other than follow.
        This field controls how the value in the colorSpace field will be used. fallback means that
        when the input does include color space data, that data will be used, but when the input has
        no color space data, the value in colorSpace will be used. Choose fallback if your input is
        sometimes missing color space data, but when it does have color space data, that data is
        correct. force means to always use the value in colorSpace. Choose force if your input
        usually has no color space data or might have unreliable color space data.

        - **SelectorSettings** *(dict) --* The video selector settings.

          - **VideoSelectorPid** *(dict) --* Video Selector Pid

            - **Pid** *(integer) --* Selects a specific PID from within a video source.

          - **VideoSelectorProgramId** *(dict) --* Video Selector Program Id

            - **ProgramId** *(integer) --* Selects a specific program from within a multi-program
            transport stream. If the program doesn't exist, the first program within the transport
            stream will be selected by default.
    """


_ClientUpdateChannelResponseChannelInputSpecificationTypeDef = TypedDict(
    "_ClientUpdateChannelResponseChannelInputSpecificationTypeDef",
    {"Codec": str, "MaximumBitrate": str, "Resolution": str},
    total=False,
)


class ClientUpdateChannelResponseChannelInputSpecificationTypeDef(
    _ClientUpdateChannelResponseChannelInputSpecificationTypeDef
):
    """
    Type definition for `ClientUpdateChannelResponseChannel` `InputSpecification`

    - **Codec** *(string) --* Input codec

    - **MaximumBitrate** *(string) --* Maximum input bitrate, categorized coarsely

    - **Resolution** *(string) --* Input resolution, categorized coarsely
    """


_ClientUpdateChannelResponseChannelPipelineDetailsTypeDef = TypedDict(
    "_ClientUpdateChannelResponseChannelPipelineDetailsTypeDef",
    {"ActiveInputAttachmentName": str, "ActiveInputSwitchActionName": str, "PipelineId": str},
    total=False,
)


class ClientUpdateChannelResponseChannelPipelineDetailsTypeDef(
    _ClientUpdateChannelResponseChannelPipelineDetailsTypeDef
):
    """
    Type definition for `ClientUpdateChannelResponseChannel` `PipelineDetails`

    - **ActiveInputAttachmentName** *(string) --* The name of the active input attachment currently
    being ingested by this pipeline.

    - **ActiveInputSwitchActionName** *(string) --* The name of the input switch schedule action
    that occurred most recently and that resulted in the switch to the current input attachment for
    this pipeline.

    - **PipelineId** *(string) --* Pipeline ID
    """


_ClientUpdateChannelResponseChannelTypeDef = TypedDict(
    "_ClientUpdateChannelResponseChannelTypeDef",
    {
        "Arn": str,
        "ChannelClass": str,
        "Destinations": List[ClientUpdateChannelResponseChannelDestinationsTypeDef],
        "EgressEndpoints": List[ClientUpdateChannelResponseChannelEgressEndpointsTypeDef],
        "EncoderSettings": ClientUpdateChannelResponseChannelEncoderSettingsTypeDef,
        "Id": str,
        "InputAttachments": List[ClientUpdateChannelResponseChannelInputAttachmentsTypeDef],
        "InputSpecification": ClientUpdateChannelResponseChannelInputSpecificationTypeDef,
        "LogLevel": str,
        "Name": str,
        "PipelineDetails": List[ClientUpdateChannelResponseChannelPipelineDetailsTypeDef],
        "PipelinesRunningCount": int,
        "RoleArn": str,
        "State": str,
        "Tags": Dict[str, str],
    },
    total=False,
)


class ClientUpdateChannelResponseChannelTypeDef(_ClientUpdateChannelResponseChannelTypeDef):
    """
    Type definition for `ClientUpdateChannelResponse` `Channel`

    - **Arn** *(string) --* The unique arn of the channel.

    - **ChannelClass** *(string) --* The class for this channel. STANDARD for a channel with two
    pipelines or SINGLE_PIPELINE for a channel with one pipeline.

    - **Destinations** *(list) --* A list of destinations of the channel. For UDP outputs, there is
    one destination per output. For other types (HLS, for example), there is one destination per
    packager.

      - *(dict) --* Placeholder documentation for OutputDestination

        - **Id** *(string) --* User-specified id. This is used in an output group or an output.

        - **MediaPackageSettings** *(list) --* Destination settings for a MediaPackage output; one
        destination for both encoders.

          - *(dict) --* MediaPackage Output Destination Settings

            - **ChannelId** *(string) --* ID of the channel in MediaPackage that is the destination
            for this output group. You do not need to specify the individual inputs in MediaPackage;
            MediaLive will handle the connection of the two MediaLive pipelines to the two
            MediaPackage inputs. The MediaPackage channel and MediaLive channel must be in the same
            region.

        - **MultiplexSettings** *(dict) --* Destination settings for a Multiplex output; one
        destination for both encoders.

          - **MultiplexId** *(string) --* The ID of the Multiplex that the encoder is providing
          output to. You do not need to specify the individual inputs to the Multiplex; MediaLive
          will handle the connection of the two MediaLive pipelines to the two Multiplex instances.
          The Multiplex must be in the same region as the Channel.

          - **ProgramName** *(string) --* The program name of the Multiplex program that the encoder
          is providing output to.

        - **Settings** *(list) --* Destination settings for a standard output; one destination for
        each redundant encoder.

          - *(dict) --* Placeholder documentation for OutputDestinationSettings

            - **PasswordParam** *(string) --* key used to extract the password from EC2 Parameter
            store

            - **StreamName** *(string) --* Stream name for RTMP destinations (URLs of type rtmp://)

            - **Url** *(string) --* A URL specifying a destination

            - **Username** *(string) --* username for destination

    - **EgressEndpoints** *(list) --* The endpoints where outgoing connections initiate from

      - *(dict) --* Placeholder documentation for ChannelEgressEndpoint

        - **SourceIp** *(string) --* Public IP of where a channel's output comes from

    - **EncoderSettings** *(dict) --* Encoder Settings

      - **AudioDescriptions** *(list) --* Placeholder documentation for __listOfAudioDescription

        - *(dict) --* Audio Description

          - **AudioNormalizationSettings** *(dict) --* Advanced audio normalization settings.

            - **Algorithm** *(string) --* Audio normalization algorithm to use. itu17701 conforms to
            the CALM Act specification, itu17702 conforms to the EBU R-128 specification.

            - **AlgorithmControl** *(string) --* When set to correctAudio the output audio is
            corrected using the chosen algorithm. If set to measureOnly, the audio will be measured
            but not adjusted.

            - **TargetLkfs** *(float) --* Target LKFS(loudness) to adjust volume to. If no value is
            entered, a default value will be used according to the chosen algorithm. The CALM Act
            (1770-1) recommends a target of -24 LKFS. The EBU R-128 specification (1770-2)
            recommends a target of -23 LKFS.

          - **AudioSelectorName** *(string) --* The name of the AudioSelector used as the source for
          this AudioDescription.

          - **AudioType** *(string) --* Applies only if audioTypeControl is useConfigured. The
          values for audioType are defined in ISO-IEC 13818-1.

          - **AudioTypeControl** *(string) --* Determines how audio type is determined. followInput:
          If the input contains an ISO 639 audioType, then that value is passed through to the
          output. If the input contains no ISO 639 audioType, the value in Audio Type is included in
          the output. useConfigured: The value in Audio Type is included in the output. Note that
          this field and audioType are both ignored if inputType is broadcasterMixedAd.

          - **CodecSettings** *(dict) --* Audio codec settings.

            - **AacSettings** *(dict) --* Aac Settings

              - **Bitrate** *(float) --* Average bitrate in bits/second. Valid values depend on rate
              control mode and profile.

              - **CodingMode** *(string) --* Mono, Stereo, or 5.1 channel layout. Valid values
              depend on rate control mode and profile. The adReceiverMix setting receives a stereo
              description plus control track and emits a mono AAC encode of the description track,
              with control data emitted in the PES header as per ETSI TS 101 154 Annex E.

              - **InputType** *(string) --* Set to "broadcasterMixedAd" when input contains
              pre-mixed main audio + AD (narration) as a stereo pair. The Audio Type field
              (audioType) will be set to 3, which signals to downstream systems that this stream
              contains "broadcaster mixed AD". Note that the input received by the encoder must
              contain pre-mixed audio; the encoder does not perform the mixing. The values in
              audioTypeControl and audioType (in AudioDescription) are ignored when set to
              broadcasterMixedAd. Leave set to "normal" when input does not contain pre-mixed audio
              + AD.

              - **Profile** *(string) --* AAC Profile.

              - **RateControlMode** *(string) --* Rate Control Mode.

              - **RawFormat** *(string) --* Sets LATM / LOAS AAC output for raw containers.

              - **SampleRate** *(float) --* Sample rate in Hz. Valid values depend on rate control
              mode and profile.

              - **Spec** *(string) --* Use MPEG-2 AAC audio instead of MPEG-4 AAC audio for raw or
              MPEG-2 Transport Stream containers.

              - **VbrQuality** *(string) --* VBR Quality Level - Only used if rateControlMode is
              VBR.

            - **Ac3Settings** *(dict) --* Ac3 Settings

              - **Bitrate** *(float) --* Average bitrate in bits/second. Valid bitrates depend on
              the coding mode.

              - **BitstreamMode** *(string) --* Specifies the bitstream mode (bsmod) for the emitted
              AC-3 stream. See ATSC A/52-2012 for background on these values.

              - **CodingMode** *(string) --* Dolby Digital coding mode. Determines number of
              channels.

              - **Dialnorm** *(integer) --* Sets the dialnorm for the output. If excluded and input
              audio is Dolby Digital, dialnorm will be passed through.

              - **DrcProfile** *(string) --* If set to filmStandard, adds dynamic range compression
              signaling to the output bitstream as defined in the Dolby Digital specification.

              - **LfeFilter** *(string) --* When set to enabled, applies a 120Hz lowpass filter to
              the LFE channel prior to encoding. Only valid in codingMode32Lfe mode.

              - **MetadataControl** *(string) --* When set to "followInput", encoder metadata will
              be sourced from the DD, DD+, or DolbyE decoder that supplied this audio data. If audio
              was not supplied from one of these streams, then the static metadata settings will be
              used.

            - **Eac3Settings** *(dict) --* Eac3 Settings

              - **AttenuationControl** *(string) --* When set to attenuate3Db, applies a 3 dB
              attenuation to the surround channels. Only used for 3/2 coding mode.

              - **Bitrate** *(float) --* Average bitrate in bits/second. Valid bitrates depend on
              the coding mode.

              - **BitstreamMode** *(string) --* Specifies the bitstream mode (bsmod) for the emitted
              E-AC-3 stream. See ATSC A/52-2012 (Annex E) for background on these values.

              - **CodingMode** *(string) --* Dolby Digital Plus coding mode. Determines number of
              channels.

              - **DcFilter** *(string) --* When set to enabled, activates a DC highpass filter for
              all input channels.

              - **Dialnorm** *(integer) --* Sets the dialnorm for the output. If blank and input
              audio is Dolby Digital Plus, dialnorm will be passed through.

              - **DrcLine** *(string) --* Sets the Dolby dynamic range compression profile.

              - **DrcRf** *(string) --* Sets the profile for heavy Dolby dynamic range compression,
              ensures that the instantaneous signal peaks do not exceed specified levels.

              - **LfeControl** *(string) --* When encoding 3/2 audio, setting to lfe enables the LFE
              channel

              - **LfeFilter** *(string) --* When set to enabled, applies a 120Hz lowpass filter to
              the LFE channel prior to encoding. Only valid with codingMode32 coding mode.

              - **LoRoCenterMixLevel** *(float) --* Left only/Right only center mix level. Only used
              for 3/2 coding mode.

              - **LoRoSurroundMixLevel** *(float) --* Left only/Right only surround mix level. Only
              used for 3/2 coding mode.

              - **LtRtCenterMixLevel** *(float) --* Left total/Right total center mix level. Only
              used for 3/2 coding mode.

              - **LtRtSurroundMixLevel** *(float) --* Left total/Right total surround mix level.
              Only used for 3/2 coding mode.

              - **MetadataControl** *(string) --* When set to followInput, encoder metadata will be
              sourced from the DD, DD+, or DolbyE decoder that supplied this audio data. If audio
              was not supplied from one of these streams, then the static metadata settings will be
              used.

              - **PassthroughControl** *(string) --* When set to whenPossible, input DD+ audio will
              be passed through if it is present on the input. This detection is dynamic over the
              life of the transcode. Inputs that alternate between DD+ and non-DD+ content will have
              a consistent DD+ output as the system alternates between passthrough and encoding.

              - **PhaseControl** *(string) --* When set to shift90Degrees, applies a 90-degree phase
              shift to the surround channels. Only used for 3/2 coding mode.

              - **StereoDownmix** *(string) --* Stereo downmix preference. Only used for 3/2 coding
              mode.

              - **SurroundExMode** *(string) --* When encoding 3/2 audio, sets whether an extra
              center back surround channel is matrix encoded into the left and right surround
              channels.

              - **SurroundMode** *(string) --* When encoding 2/0 audio, sets whether Dolby Surround
              is matrix encoded into the two channels.

            - **Mp2Settings** *(dict) --* Mp2 Settings

              - **Bitrate** *(float) --* Average bitrate in bits/second.

              - **CodingMode** *(string) --* The MPEG2 Audio coding mode. Valid values are
              codingMode10 (for mono) or codingMode20 (for stereo).

              - **SampleRate** *(float) --* Sample rate in Hz.

            - **PassThroughSettings** *(dict) --* Pass Through Settings

          - **LanguageCode** *(string) --* Indicates the language of the audio output track. Only
          used if languageControlMode is useConfigured, or there is no ISO 639 language code
          specified in the input.

          - **LanguageCodeControl** *(string) --* Choosing followInput will cause the ISO 639
          language code of the output to follow the ISO 639 language code of the input. The
          languageCode will be used when useConfigured is set, or when followInput is selected but
          there is no ISO 639 language code specified by the input.

          - **Name** *(string) --* The name of this AudioDescription. Outputs will use this name to
          uniquely identify this AudioDescription. Description names should be unique within this
          Live Event.

          - **RemixSettings** *(dict) --* Settings that control how input audio channels are remixed
          into the output audio channels.

            - **ChannelMappings** *(list) --* Mapping of input channels to output channels, with
            appropriate gain adjustments.

              - *(dict) --* Audio Channel Mapping

                - **InputChannelLevels** *(list) --* Indices and gain values for each input channel
                that should be remixed into this output channel.

                  - *(dict) --* Input Channel Level

                    - **Gain** *(integer) --* Remixing value. Units are in dB and acceptable values
                    are within the range from -60 (mute) and 6 dB.

                    - **InputChannel** *(integer) --* The index of the input channel used as a
                    source.

                - **OutputChannel** *(integer) --* The index of the output channel being produced.

            - **ChannelsIn** *(integer) --* Number of input channels to be used.

            - **ChannelsOut** *(integer) --* Number of output channels to be produced. Valid values:
            1, 2, 4, 6, 8

          - **StreamName** *(string) --* Used for MS Smooth and Apple HLS outputs. Indicates the
          name displayed by the player (eg. English, or Director Commentary).

      - **AvailBlanking** *(dict) --* Settings for ad avail blanking.

        - **AvailBlankingImage** *(dict) --* Blanking image to be used. Leave empty for solid black.
        Only bmp and png images are supported.

          - **PasswordParam** *(string) --* key used to extract the password from EC2 Parameter
          store

          - **Uri** *(string) --* Uniform Resource Identifier - This should be a path to a file
          accessible to the Live system (eg. a http:// URI) depending on the output type. For
          example, a RTMP destination should have a uri simliar to: "rtmp://fmsserver/live".

          - **Username** *(string) --* Documentation update needed

        - **State** *(string) --* When set to enabled, causes video, audio and captions to be
        blanked when insertion metadata is added.

      - **AvailConfiguration** *(dict) --* Event-wide configuration settings for ad avail insertion.

        - **AvailSettings** *(dict) --* Ad avail settings.

          - **Scte35SpliceInsert** *(dict) --* Scte35 Splice Insert

            - **AdAvailOffset** *(integer) --* When specified, this offset (in milliseconds) is
            added to the input Ad Avail PTS time. This only applies to embedded SCTE 104/35 messages
            and does not apply to OOB messages.

            - **NoRegionalBlackoutFlag** *(string) --* When set to ignore, Segment Descriptors with
            noRegionalBlackoutFlag set to 0 will no longer trigger blackouts or Ad Avail slates

            - **WebDeliveryAllowedFlag** *(string) --* When set to ignore, Segment Descriptors with
            webDeliveryAllowedFlag set to 0 will no longer trigger blackouts or Ad Avail slates

          - **Scte35TimeSignalApos** *(dict) --* Scte35 Time Signal Apos

            - **AdAvailOffset** *(integer) --* When specified, this offset (in milliseconds) is
            added to the input Ad Avail PTS time. This only applies to embedded SCTE 104/35 messages
            and does not apply to OOB messages.

            - **NoRegionalBlackoutFlag** *(string) --* When set to ignore, Segment Descriptors with
            noRegionalBlackoutFlag set to 0 will no longer trigger blackouts or Ad Avail slates

            - **WebDeliveryAllowedFlag** *(string) --* When set to ignore, Segment Descriptors with
            webDeliveryAllowedFlag set to 0 will no longer trigger blackouts or Ad Avail slates

      - **BlackoutSlate** *(dict) --* Settings for blackout slate.

        - **BlackoutSlateImage** *(dict) --* Blackout slate image to be used. Leave empty for solid
        black. Only bmp and png images are supported.

          - **PasswordParam** *(string) --* key used to extract the password from EC2 Parameter
          store

          - **Uri** *(string) --* Uniform Resource Identifier - This should be a path to a file
          accessible to the Live system (eg. a http:// URI) depending on the output type. For
          example, a RTMP destination should have a uri simliar to: "rtmp://fmsserver/live".

          - **Username** *(string) --* Documentation update needed

        - **NetworkEndBlackout** *(string) --* Setting to enabled causes the encoder to blackout the
        video, audio, and captions, and raise the "Network Blackout Image" slate when an SCTE104/35
        Network End Segmentation Descriptor is encountered. The blackout will be lifted when the
        Network Start Segmentation Descriptor is encountered. The Network End and Network Start
        descriptors must contain a network ID that matches the value entered in "Network ID".

        - **NetworkEndBlackoutImage** *(dict) --* Path to local file to use as Network End Blackout
        image. Image will be scaled to fill the entire output raster.

          - **PasswordParam** *(string) --* key used to extract the password from EC2 Parameter
          store

          - **Uri** *(string) --* Uniform Resource Identifier - This should be a path to a file
          accessible to the Live system (eg. a http:// URI) depending on the output type. For
          example, a RTMP destination should have a uri simliar to: "rtmp://fmsserver/live".

          - **Username** *(string) --* Documentation update needed

        - **NetworkId** *(string) --* Provides Network ID that matches EIDR ID format (e.g.,
        "10.XXXX/XXXX-XXXX-XXXX-XXXX-XXXX-C").

        - **State** *(string) --* When set to enabled, causes video, audio and captions to be
        blanked when indicated by program metadata.

      - **CaptionDescriptions** *(list) --* Settings for caption decriptions

        - *(dict) --* Caption Description

          - **CaptionSelectorName** *(string) --* Specifies which input caption selector to use as a
          caption source when generating output captions. This field should match a captionSelector
          name.

          - **DestinationSettings** *(dict) --* Additional settings for captions destination that
          depend on the destination type.

            - **AribDestinationSettings** *(dict) --* Arib Destination Settings

            - **BurnInDestinationSettings** *(dict) --* Burn In Destination Settings

              - **Alignment** *(string) --* If no explicit xPosition or yPosition is provided,
              setting alignment to centered will place the captions at the bottom center of the
              output. Similarly, setting a left alignment will align captions to the bottom left of
              the output. If x and y positions are given in conjunction with the alignment
              parameter, the font will be justified (either left or centered) relative to those
              coordinates. Selecting "smart" justification will left-justify live subtitles and
              center-justify pre-recorded subtitles. All burn-in and DVB-Sub font settings must
              match.

              - **BackgroundColor** *(string) --* Specifies the color of the rectangle behind the
              captions. All burn-in and DVB-Sub font settings must match.

              - **BackgroundOpacity** *(integer) --* Specifies the opacity of the background
              rectangle. 255 is opaque; 0 is transparent. Leaving this parameter out is equivalent
              to setting it to 0 (transparent). All burn-in and DVB-Sub font settings must match.

              - **Font** *(dict) --* External font file used for caption burn-in. File extension
              must be 'ttf' or 'tte'. Although the user can select output fonts for many different
              types of input captions, embedded, STL and teletext sources use a strict grid system.
              Using external fonts with these caption sources could cause unexpected display of
              proportional fonts. All burn-in and DVB-Sub font settings must match.

                - **PasswordParam** *(string) --* key used to extract the password from EC2
                Parameter store

                - **Uri** *(string) --* Uniform Resource Identifier - This should be a path to a
                file accessible to the Live system (eg. a http:// URI) depending on the output type.
                For example, a RTMP destination should have a uri simliar to:
                "rtmp://fmsserver/live".

                - **Username** *(string) --* Documentation update needed

              - **FontColor** *(string) --* Specifies the color of the burned-in captions. This
              option is not valid for source captions that are STL, 608/embedded or teletext. These
              source settings are already pre-defined by the caption stream. All burn-in and DVB-Sub
              font settings must match.

              - **FontOpacity** *(integer) --* Specifies the opacity of the burned-in captions. 255
              is opaque; 0 is transparent. All burn-in and DVB-Sub font settings must match.

              - **FontResolution** *(integer) --* Font resolution in DPI (dots per inch); default is
              96 dpi. All burn-in and DVB-Sub font settings must match.

              - **FontSize** *(string) --* When set to 'auto' fontSize will scale depending on the
              size of the output. Giving a positive integer will specify the exact font size in
              points. All burn-in and DVB-Sub font settings must match.

              - **OutlineColor** *(string) --* Specifies font outline color. This option is not
              valid for source captions that are either 608/embedded or teletext. These source
              settings are already pre-defined by the caption stream. All burn-in and DVB-Sub font
              settings must match.

              - **OutlineSize** *(integer) --* Specifies font outline size in pixels. This option is
              not valid for source captions that are either 608/embedded or teletext. These source
              settings are already pre-defined by the caption stream. All burn-in and DVB-Sub font
              settings must match.

              - **ShadowColor** *(string) --* Specifies the color of the shadow cast by the
              captions. All burn-in and DVB-Sub font settings must match.

              - **ShadowOpacity** *(integer) --* Specifies the opacity of the shadow. 255 is opaque;
              0 is transparent. Leaving this parameter out is equivalent to setting it to 0
              (transparent). All burn-in and DVB-Sub font settings must match.

              - **ShadowXOffset** *(integer) --* Specifies the horizontal offset of the shadow
              relative to the captions in pixels. A value of -2 would result in a shadow offset 2
              pixels to the left. All burn-in and DVB-Sub font settings must match.

              - **ShadowYOffset** *(integer) --* Specifies the vertical offset of the shadow
              relative to the captions in pixels. A value of -2 would result in a shadow offset 2
              pixels above the text. All burn-in and DVB-Sub font settings must match.

              - **TeletextGridControl** *(string) --* Controls whether a fixed grid size will be
              used to generate the output subtitles bitmap. Only applicable for Teletext inputs and
              DVB-Sub/Burn-in outputs.

              - **XPosition** *(integer) --* Specifies the horizontal position of the caption
              relative to the left side of the output in pixels. A value of 10 would result in the
              captions starting 10 pixels from the left of the output. If no explicit xPosition is
              provided, the horizontal caption position will be determined by the alignment
              parameter. All burn-in and DVB-Sub font settings must match.

              - **YPosition** *(integer) --* Specifies the vertical position of the caption relative
              to the top of the output in pixels. A value of 10 would result in the captions
              starting 10 pixels from the top of the output. If no explicit yPosition is provided,
              the caption will be positioned towards the bottom of the output. All burn-in and
              DVB-Sub font settings must match.

            - **DvbSubDestinationSettings** *(dict) --* Dvb Sub Destination Settings

              - **Alignment** *(string) --* If no explicit xPosition or yPosition is provided,
              setting alignment to centered will place the captions at the bottom center of the
              output. Similarly, setting a left alignment will align captions to the bottom left of
              the output. If x and y positions are given in conjunction with the alignment
              parameter, the font will be justified (either left or centered) relative to those
              coordinates. Selecting "smart" justification will left-justify live subtitles and
              center-justify pre-recorded subtitles. This option is not valid for source captions
              that are STL or 608/embedded. These source settings are already pre-defined by the
              caption stream. All burn-in and DVB-Sub font settings must match.

              - **BackgroundColor** *(string) --* Specifies the color of the rectangle behind the
              captions. All burn-in and DVB-Sub font settings must match.

              - **BackgroundOpacity** *(integer) --* Specifies the opacity of the background
              rectangle. 255 is opaque; 0 is transparent. Leaving this parameter blank is equivalent
              to setting it to 0 (transparent). All burn-in and DVB-Sub font settings must match.

              - **Font** *(dict) --* External font file used for caption burn-in. File extension
              must be 'ttf' or 'tte'. Although the user can select output fonts for many different
              types of input captions, embedded, STL and teletext sources use a strict grid system.
              Using external fonts with these caption sources could cause unexpected display of
              proportional fonts. All burn-in and DVB-Sub font settings must match.

                - **PasswordParam** *(string) --* key used to extract the password from EC2
                Parameter store

                - **Uri** *(string) --* Uniform Resource Identifier - This should be a path to a
                file accessible to the Live system (eg. a http:// URI) depending on the output type.
                For example, a RTMP destination should have a uri simliar to:
                "rtmp://fmsserver/live".

                - **Username** *(string) --* Documentation update needed

              - **FontColor** *(string) --* Specifies the color of the burned-in captions. This
              option is not valid for source captions that are STL, 608/embedded or teletext. These
              source settings are already pre-defined by the caption stream. All burn-in and DVB-Sub
              font settings must match.

              - **FontOpacity** *(integer) --* Specifies the opacity of the burned-in captions. 255
              is opaque; 0 is transparent. All burn-in and DVB-Sub font settings must match.

              - **FontResolution** *(integer) --* Font resolution in DPI (dots per inch); default is
              96 dpi. All burn-in and DVB-Sub font settings must match.

              - **FontSize** *(string) --* When set to auto fontSize will scale depending on the
              size of the output. Giving a positive integer will specify the exact font size in
              points. All burn-in and DVB-Sub font settings must match.

              - **OutlineColor** *(string) --* Specifies font outline color. This option is not
              valid for source captions that are either 608/embedded or teletext. These source
              settings are already pre-defined by the caption stream. All burn-in and DVB-Sub font
              settings must match.

              - **OutlineSize** *(integer) --* Specifies font outline size in pixels. This option is
              not valid for source captions that are either 608/embedded or teletext. These source
              settings are already pre-defined by the caption stream. All burn-in and DVB-Sub font
              settings must match.

              - **ShadowColor** *(string) --* Specifies the color of the shadow cast by the
              captions. All burn-in and DVB-Sub font settings must match.

              - **ShadowOpacity** *(integer) --* Specifies the opacity of the shadow. 255 is opaque;
              0 is transparent. Leaving this parameter blank is equivalent to setting it to 0
              (transparent). All burn-in and DVB-Sub font settings must match.

              - **ShadowXOffset** *(integer) --* Specifies the horizontal offset of the shadow
              relative to the captions in pixels. A value of -2 would result in a shadow offset 2
              pixels to the left. All burn-in and DVB-Sub font settings must match.

              - **ShadowYOffset** *(integer) --* Specifies the vertical offset of the shadow
              relative to the captions in pixels. A value of -2 would result in a shadow offset 2
              pixels above the text. All burn-in and DVB-Sub font settings must match.

              - **TeletextGridControl** *(string) --* Controls whether a fixed grid size will be
              used to generate the output subtitles bitmap. Only applicable for Teletext inputs and
              DVB-Sub/Burn-in outputs.

              - **XPosition** *(integer) --* Specifies the horizontal position of the caption
              relative to the left side of the output in pixels. A value of 10 would result in the
              captions starting 10 pixels from the left of the output. If no explicit xPosition is
              provided, the horizontal caption position will be determined by the alignment
              parameter. This option is not valid for source captions that are STL, 608/embedded or
              teletext. These source settings are already pre-defined by the caption stream. All
              burn-in and DVB-Sub font settings must match.

              - **YPosition** *(integer) --* Specifies the vertical position of the caption relative
              to the top of the output in pixels. A value of 10 would result in the captions
              starting 10 pixels from the top of the output. If no explicit yPosition is provided,
              the caption will be positioned towards the bottom of the output. This option is not
              valid for source captions that are STL, 608/embedded or teletext. These source
              settings are already pre-defined by the caption stream. All burn-in and DVB-Sub font
              settings must match.

            - **EmbeddedDestinationSettings** *(dict) --* Embedded Destination Settings

            - **EmbeddedPlusScte20DestinationSettings** *(dict) --* Embedded Plus Scte20 Destination
            Settings

            - **RtmpCaptionInfoDestinationSettings** *(dict) --* Rtmp Caption Info Destination
            Settings

            - **Scte20PlusEmbeddedDestinationSettings** *(dict) --* Scte20 Plus Embedded Destination
            Settings

            - **Scte27DestinationSettings** *(dict) --* Scte27 Destination Settings

            - **SmpteTtDestinationSettings** *(dict) --* Smpte Tt Destination Settings

            - **TeletextDestinationSettings** *(dict) --* Teletext Destination Settings

            - **TtmlDestinationSettings** *(dict) --* Ttml Destination Settings

              - **StyleControl** *(string) --* When set to passthrough, passes through style and
              position information from a TTML-like input source (TTML, SMPTE-TT, CFF-TT) to the
              CFF-TT output or TTML output.

            - **WebvttDestinationSettings** *(dict) --* Webvtt Destination Settings

          - **LanguageCode** *(string) --* ISO 639-2 three-digit code:
          http://www.loc.gov/standards/iso639-2/

          - **LanguageDescription** *(string) --* Human readable information to indicate captions
          available for players (eg. English, or Spanish).

          - **Name** *(string) --* Name of the caption description. Used to associate a caption
          description with an output. Names must be unique within an event.

      - **GlobalConfiguration** *(dict) --* Configuration settings that apply to the event as a
      whole.

        - **InitialAudioGain** *(integer) --* Value to set the initial audio gain for the Live
        Event.

        - **InputEndAction** *(string) --* Indicates the action to take when the current input
        completes (e.g. end-of-file). When switchAndLoopInputs is configured the encoder will
        restart at the beginning of the first input. When "none" is configured the encoder will
        transcode either black, a solid color, or a user specified slate images per the "Input Loss
        Behavior" configuration until the next input switch occurs (which is controlled through the
        Channel Schedule API).

        - **InputLossBehavior** *(dict) --* Settings for system actions when input is lost.

          - **BlackFrameMsec** *(integer) --* Documentation update needed

          - **InputLossImageColor** *(string) --* When input loss image type is "color" this field
          specifies the color to use. Value: 6 hex characters representing the values of RGB.

          - **InputLossImageSlate** *(dict) --* When input loss image type is "slate" these fields
          specify the parameters for accessing the slate.

            - **PasswordParam** *(string) --* key used to extract the password from EC2 Parameter
            store

            - **Uri** *(string) --* Uniform Resource Identifier - This should be a path to a file
            accessible to the Live system (eg. a http:// URI) depending on the output type. For
            example, a RTMP destination should have a uri simliar to: "rtmp://fmsserver/live".

            - **Username** *(string) --* Documentation update needed

          - **InputLossImageType** *(string) --* Indicates whether to substitute a solid color or a
          slate into the output after input loss exceeds blackFrameMsec.

          - **RepeatFrameMsec** *(integer) --* Documentation update needed

        - **OutputLockingMode** *(string) --* Indicates how MediaLive pipelines are synchronized.
        PIPELINELOCKING - MediaLive will attempt to synchronize the output of each pipeline to the
        other. EPOCHLOCKING - MediaLive will attempt to synchronize the output of each pipeline to
        the Unix epoch.

        - **OutputTimingSource** *(string) --* Indicates whether the rate of frames emitted by the
        Live encoder should be paced by its system clock (which optionally may be locked to another
        source via NTP) or should be locked to the clock of the source that is providing the input
        stream.

        - **SupportLowFramerateInputs** *(string) --* Adjusts video input buffer for streams with
        very low video framerates. This is commonly set to enabled for music channels with less than
        one video frame per second.

      - **NielsenConfiguration** *(dict) --* Nielsen configuration settings.

        - **DistributorId** *(string) --* Enter the Distributor ID assigned to your organization by
        Nielsen.

        - **NielsenPcmToId3Tagging** *(string) --* Enables Nielsen PCM to ID3 tagging

      - **OutputGroups** *(list) --* Placeholder documentation for __listOfOutputGroup

        - *(dict) --* Output groups for this Live Event. Output groups contain information about
        where streams should be distributed.

          - **Name** *(string) --* Custom output group name optionally defined by the user. Only
          letters, numbers, and the underscore character allowed; only 32 characters allowed.

          - **OutputGroupSettings** *(dict) --* Settings associated with the output group.

            - **ArchiveGroupSettings** *(dict) --* Archive Group Settings

              - **Destination** *(dict) --* A directory and base filename where archive files should
              be written.

                - **DestinationRefId** *(string) --* Placeholder documentation for __string

              - **RolloverInterval** *(integer) --* Number of seconds to write to archive file
              before closing and starting a new one.

            - **FrameCaptureGroupSettings** *(dict) --* Frame Capture Group Settings

              - **Destination** *(dict) --* The destination for the frame capture files. Either the
              URI for an Amazon S3 bucket and object, plus a file name prefix (for example,
              s3ssl://sportsDelivery/highlights/20180820/curling_) or the URI for a MediaStore
              container, plus a file name prefix (for example,
              mediastoressl://sportsDelivery/20180820/curling_). The final file names consist of the
              prefix from the destination field (for example, "curling_") + name modifier + the
              counter (5 digits, starting from 00001) + extension (which is always .jpg). For
              example, curlingLow.00001.jpg

                - **DestinationRefId** *(string) --* Placeholder documentation for __string

            - **HlsGroupSettings** *(dict) --* Hls Group Settings

              - **AdMarkers** *(list) --* Choose one or more ad marker types to pass SCTE35 signals
              through to this group of Apple HLS outputs.

                - *(string) --* Hls Ad Markers

              - **BaseUrlContent** *(string) --* A partial URI prefix that will be prepended to each
              output in the media .m3u8 file. Can be used if base manifest is delivered from a
              different URL than the main .m3u8 file.

              - **BaseUrlManifest** *(string) --* A partial URI prefix that will be prepended to
              each output in the media .m3u8 file. Can be used if base manifest is delivered from a
              different URL than the main .m3u8 file.

              - **CaptionLanguageMappings** *(list) --* Mapping of up to 4 caption channels to
              caption languages. Is only meaningful if captionLanguageSetting is set to "insert".

                - *(dict) --* Maps a caption channel to an ISO 693-2 language code
                (http://www.loc.gov/standards/iso639-2), with an optional description.

                  - **CaptionChannel** *(integer) --* The closed caption channel being described by
                  this CaptionLanguageMapping. Each channel mapping must have a unique channel
                  number (maximum of 4)

                  - **LanguageCode** *(string) --* Three character ISO 639-2 language code (see
                  http://www.loc.gov/standards/iso639-2)

                  - **LanguageDescription** *(string) --* Textual description of language

              - **CaptionLanguageSetting** *(string) --* Applies only to 608 Embedded output
              captions. insert: Include CLOSED-CAPTIONS lines in the manifest. Specify at least one
              language in the CC1 Language Code field. One CLOSED-CAPTION line is added for each
              Language Code you specify. Make sure to specify the languages in the order in which
              they appear in the original source (if the source is embedded format) or the order of
              the caption selectors (if the source is other than embedded). Otherwise, languages in
              the manifest will not match up properly with the output captions. none: Include
              CLOSED-CAPTIONS=
                  NONE line in the manifest. omit: Omit any CLOSED-CAPTIONS line from
              the manifest.

              - **ClientCache** *(string) --* When set to "disabled", sets the #EXT-X-ALLOW-CACHE:no
              tag in the manifest, which prevents clients from saving media segments for later
              replay.

              - **CodecSpecification** *(string) --* Specification to use (RFC-6381 or the default
              RFC-4281) during m3u8 playlist generation.

              - **ConstantIv** *(string) --* For use with encryptionType. This is a 128-bit, 16-byte
              hex value represented by a 32-character text string. If ivSource is set to "explicit"
              then this parameter is required and is used as the IV for encryption.

              - **Destination** *(dict) --* A directory or HTTP destination for the HLS segments,
              manifest files, and encryption keys (if enabled).

                - **DestinationRefId** *(string) --* Placeholder documentation for __string

              - **DirectoryStructure** *(string) --* Place segments in subdirectories.

              - **EncryptionType** *(string) --* Encrypts the segments with the given encryption
              scheme. Exclude this parameter if no encryption is desired.

              - **HlsCdnSettings** *(dict) --* Parameters that control interactions with the CDN.

                - **HlsAkamaiSettings** *(dict) --* Hls Akamai Settings

                  - **ConnectionRetryInterval** *(integer) --* Number of seconds to wait before
                  retrying connection to the CDN if the connection is lost.

                  - **FilecacheDuration** *(integer) --* Size in seconds of file cache for streaming
                  outputs.

                  - **HttpTransferMode** *(string) --* Specify whether or not to use chunked
                  transfer encoding to Akamai. User should contact Akamai to enable this feature.

                  - **NumRetries** *(integer) --* Number of retry attempts that will be made before
                  the Live Event is put into an error state.

                  - **RestartDelay** *(integer) --* If a streaming output fails, number of seconds
                  to wait until a restart is initiated. A value of 0 means never restart.

                  - **Salt** *(string) --* Salt for authenticated Akamai.

                  - **Token** *(string) --* Token parameter for authenticated akamai. If not
                  specified, _gda_ is used.

                - **HlsBasicPutSettings** *(dict) --* Hls Basic Put Settings

                  - **ConnectionRetryInterval** *(integer) --* Number of seconds to wait before
                  retrying connection to the CDN if the connection is lost.

                  - **FilecacheDuration** *(integer) --* Size in seconds of file cache for streaming
                  outputs.

                  - **NumRetries** *(integer) --* Number of retry attempts that will be made before
                  the Live Event is put into an error state.

                  - **RestartDelay** *(integer) --* If a streaming output fails, number of seconds
                  to wait until a restart is initiated. A value of 0 means never restart.

                - **HlsMediaStoreSettings** *(dict) --* Hls Media Store Settings

                  - **ConnectionRetryInterval** *(integer) --* Number of seconds to wait before
                  retrying connection to the CDN if the connection is lost.

                  - **FilecacheDuration** *(integer) --* Size in seconds of file cache for streaming
                  outputs.

                  - **MediaStoreStorageClass** *(string) --* When set to temporal, output files are
                  stored in non-persistent memory for faster reading and writing.

                  - **NumRetries** *(integer) --* Number of retry attempts that will be made before
                  the Live Event is put into an error state.

                  - **RestartDelay** *(integer) --* If a streaming output fails, number of seconds
                  to wait until a restart is initiated. A value of 0 means never restart.

                - **HlsWebdavSettings** *(dict) --* Hls Webdav Settings

                  - **ConnectionRetryInterval** *(integer) --* Number of seconds to wait before
                  retrying connection to the CDN if the connection is lost.

                  - **FilecacheDuration** *(integer) --* Size in seconds of file cache for streaming
                  outputs.

                  - **HttpTransferMode** *(string) --* Specify whether or not to use chunked
                  transfer encoding to WebDAV.

                  - **NumRetries** *(integer) --* Number of retry attempts that will be made before
                  the Live Event is put into an error state.

                  - **RestartDelay** *(integer) --* If a streaming output fails, number of seconds
                  to wait until a restart is initiated. A value of 0 means never restart.

              - **IFrameOnlyPlaylists** *(string) --* DISABLED: Do not create an I-frame-only
              manifest, but do create the master and media manifests (according to the Output
              Selection field). STANDARD: Create an I-frame-only manifest for each output that
              contains video, as well as the other manifests (according to the Output Selection
              field). The I-frame manifest contains a #EXT-X-I-FRAMES-ONLY tag to indicate it is
              I-frame only, and one or more #EXT-X-BYTERANGE entries identifying the I-frame
              position. For example, #EXT-X-BYTERANGE:160364@1461888"

              - **IndexNSegments** *(integer) --* Applies only if Mode field is LIVE. Specifies the
              maximum number of segments in the media manifest file. After this maximum, older
              segments are removed from the media manifest. This number must be less than or equal
              to the Keep Segments field.

              - **InputLossAction** *(string) --* Parameter that control output group behavior on
              input loss.

              - **IvInManifest** *(string) --* For use with encryptionType. The IV (Initialization
              Vector) is a 128-bit number used in conjunction with the key for encrypting blocks. If
              set to "include", IV is listed in the manifest, otherwise the IV is not in the
              manifest.

              - **IvSource** *(string) --* For use with encryptionType. The IV (Initialization
              Vector) is a 128-bit number used in conjunction with the key for encrypting blocks. If
              this setting is "followsSegmentNumber", it will cause the IV to change every segment
              (to match the segment number). If this is set to "explicit", you must enter a
              constantIv value.

              - **KeepSegments** *(integer) --* Applies only if Mode field is LIVE. Specifies the
              number of media segments (.ts files) to retain in the destination directory.

              - **KeyFormat** *(string) --* The value specifies how the key is represented in the
              resource identified by the URI. If parameter is absent, an implicit value of
              "identity" is used. A reverse DNS string can also be given.

              - **KeyFormatVersions** *(string) --* Either a single positive integer version value
              or a slash delimited list of version values (1/2/3).

              - **KeyProviderSettings** *(dict) --* The key provider settings.

                - **StaticKeySettings** *(dict) --* Static Key Settings

                  - **KeyProviderServer** *(dict) --* The URL of the license server used for
                  protecting content.

                    - **PasswordParam** *(string) --* key used to extract the password from EC2
                    Parameter store

                    - **Uri** *(string) --* Uniform Resource Identifier - This should be a path to a
                    file accessible to the Live system (eg. a http:// URI) depending on the output
                    type. For example, a RTMP destination should have a uri simliar to:
                    "rtmp://fmsserver/live".

                    - **Username** *(string) --* Documentation update needed

                  - **StaticKeyValue** *(string) --* Static key value as a 32 character hexadecimal
                  string.

              - **ManifestCompression** *(string) --* When set to gzip, compresses HLS playlist.

              - **ManifestDurationFormat** *(string) --* Indicates whether the output manifest
              should use floating point or integer values for segment duration.

              - **MinSegmentLength** *(integer) --* When set, minimumSegmentLength is enforced by
              looking ahead and back within the specified range for a nearby avail and extending the
              segment size if needed.

              - **Mode** *(string) --* If "vod", all segments are indexed and kept permanently in
              the destination and manifest. If "live", only the number segments specified in
              keepSegments and indexNSegments are kept; newer segments replace older segments, which
              may prevent players from rewinding all the way to the beginning of the event. VOD mode
              uses HLS EXT-X-PLAYLIST-TYPE of EVENT while the channel is running, converting it to a
              "VOD" type manifest on completion of the stream.

              - **OutputSelection** *(string) --* MANIFESTSANDSEGMENTS: Generates manifests (master
              manifest, if applicable, and media manifests) for this output group. SEGMENTSONLY:
              Does not generate any manifests for this output group.

              - **ProgramDateTime** *(string) --* Includes or excludes EXT-X-PROGRAM-DATE-TIME tag
              in .m3u8 manifest files. The value is calculated as follows: either the program date
              and time are initialized using the input timecode source, or the time is initialized
              using the input timecode source and the date is initialized using the timestampOffset.

              - **ProgramDateTimePeriod** *(integer) --* Period of insertion of
              EXT-X-PROGRAM-DATE-TIME entry, in seconds.

              - **RedundantManifest** *(string) --* ENABLED: The master manifest (.m3u8 file) for
              each pipeline includes information about both pipelines: first its own media files,
              then the media files of the other pipeline. This feature allows playout device that
              support stale manifest detection to switch from one manifest to the other, when the
              current manifest seems to be stale. There are still two destinations and two master
              manifests, but both master manifests reference the media files from both pipelines.
              DISABLED: The master manifest (.m3u8 file) for each pipeline includes information
              about its own pipeline only. For an HLS output group with MediaPackage as the
              destination, the DISABLED behavior is always followed. MediaPackage regenerates the
              manifests it serves to players so a redundant manifest from MediaLive is irrelevant.

              - **SegmentLength** *(integer) --* Length of MPEG-2 Transport Stream segments to
              create (in seconds). Note that segments will end on the next keyframe after this
              number of seconds, so actual segment length may be longer.

              - **SegmentationMode** *(string) --* useInputSegmentation has been deprecated. The
              configured segment size is always used.

              - **SegmentsPerSubdirectory** *(integer) --* Number of segments to write to a
              subdirectory before starting a new one. directoryStructure must be
              subdirectoryPerStream for this setting to have an effect.

              - **StreamInfResolution** *(string) --* Include or exclude RESOLUTION attribute for
              video in EXT-X-STREAM-INF tag of variant manifest.

              - **TimedMetadataId3Frame** *(string) --* Indicates ID3 frame that has the timecode.

              - **TimedMetadataId3Period** *(integer) --* Timed Metadata interval in seconds.

              - **TimestampDeltaMilliseconds** *(integer) --* Provides an extra millisecond delta
              offset to fine tune the timestamps.

              - **TsFileMode** *(string) --* SEGMENTEDFILES: Emit the program as segments - multiple
              .ts media files. SINGLEFILE: Applies only if Mode field is VOD. Emit the program as a
              single .ts media file. The media manifest includes #EXT-X-BYTERANGE tags to index
              segments for playback. A typical use for this value is when sending the output to AWS
              Elemental MediaConvert, which can accept only a single media file. Playback while the
              channel is running is not guaranteed due to HTTP server caching.

            - **MediaPackageGroupSettings** *(dict) --* Media Package Group Settings

              - **Destination** *(dict) --* MediaPackage channel destination.

                - **DestinationRefId** *(string) --* Placeholder documentation for __string

            - **MsSmoothGroupSettings** *(dict) --* Ms Smooth Group Settings

              - **AcquisitionPointId** *(string) --* The value of the "Acquisition Point Identity"
              element used in each message placed in the sparse track. Only enabled if
              sparseTrackType is not "none".

              - **AudioOnlyTimecodeControl** *(string) --* If set to passthrough for an audio-only
              MS Smooth output, the fragment absolute time will be set to the current timecode. This
              option does not write timecodes to the audio elementary stream.

              - **CertificateMode** *(string) --* If set to verifyAuthenticity, verify the https
              certificate chain to a trusted Certificate Authority (CA). This will cause https
              outputs to self-signed certificates to fail.

              - **ConnectionRetryInterval** *(integer) --* Number of seconds to wait before retrying
              connection to the IIS server if the connection is lost. Content will be cached during
              this time and the cache will be be delivered to the IIS server once the connection is
              re-established.

              - **Destination** *(dict) --* Smooth Streaming publish point on an IIS server.
              Elemental Live acts as a "Push" encoder to IIS.

                - **DestinationRefId** *(string) --* Placeholder documentation for __string

              - **EventId** *(string) --* MS Smooth event ID to be sent to the IIS server. Should
              only be specified if eventIdMode is set to useConfigured.

              - **EventIdMode** *(string) --* Specifies whether or not to send an event ID to the
              IIS server. If no event ID is sent and the same Live Event is used without changing
              the publishing point, clients might see cached video from the previous run. Options: -
              "useConfigured" - use the value provided in eventId - "useTimestamp" - generate and
              send an event ID based on the current timestamp - "noEventId" - do not send an event
              ID to the IIS server.

              - **EventStopBehavior** *(string) --* When set to sendEos, send EOS signal to IIS
              server when stopping the event

              - **FilecacheDuration** *(integer) --* Size in seconds of file cache for streaming
              outputs.

              - **FragmentLength** *(integer) --* Length of mp4 fragments to generate (in seconds).
              Fragment length must be compatible with GOP size and framerate.

              - **InputLossAction** *(string) --* Parameter that control output group behavior on
              input loss.

              - **NumRetries** *(integer) --* Number of retry attempts.

              - **RestartDelay** *(integer) --* Number of seconds before initiating a restart due to
              output failure, due to exhausting the numRetries on one segment, or exceeding
              filecacheDuration.

              - **SegmentationMode** *(string) --* useInputSegmentation has been deprecated. The
              configured segment size is always used.

              - **SendDelayMs** *(integer) --* Number of milliseconds to delay the output from the
              second pipeline.

              - **SparseTrackType** *(string) --* If set to scte35, use incoming SCTE-35 messages to
              generate a sparse track in this group of MS-Smooth outputs.

              - **StreamManifestBehavior** *(string) --* When set to send, send stream manifest so
              publishing point doesn't start until all streams start.

              - **TimestampOffset** *(string) --* Timestamp offset for the event. Only used if
              timestampOffsetMode is set to useConfiguredOffset.

              - **TimestampOffsetMode** *(string) --* Type of timestamp date offset to use. -
              useEventStartDate: Use the date the event was started as the offset -
              useConfiguredOffset: Use an explicitly configured date as the offset

            - **MultiplexGroupSettings** *(dict) --* Multiplex Group Settings

            - **RtmpGroupSettings** *(dict) --* Rtmp Group Settings

              - **AuthenticationScheme** *(string) --* Authentication scheme to use when connecting
              with CDN

              - **CacheFullBehavior** *(string) --* Controls behavior when content cache fills up.
              If remote origin server stalls the RTMP connection and does not accept content fast
              enough the 'Media Cache' will fill up. When the cache reaches the duration specified
              by cacheLength the cache will stop accepting new content. If set to
              disconnectImmediately, the RTMP output will force a disconnect. Clear the media cache,
              and reconnect after restartDelay seconds. If set to waitForServer, the RTMP output
              will wait up to 5 minutes to allow the origin server to begin accepting data again.

              - **CacheLength** *(integer) --* Cache length, in seconds, is used to calculate buffer
              size.

              - **CaptionData** *(string) --* Controls the types of data that passes to
              onCaptionInfo outputs. If set to 'all' then 608 and 708 carried DTVCC data will be
              passed. If set to 'field1AndField2608' then DTVCC data will be stripped out, but 608
              data from both fields will be passed. If set to 'field1608' then only the data carried
              in 608 from field 1 video will be passed.

              - **InputLossAction** *(string) --* Controls the behavior of this RTMP group if input
              becomes unavailable. - emitOutput: Emit a slate until input returns. - pauseOutput:
              Stop transmitting data until input returns. This does not close the underlying RTMP
              connection.

              - **RestartDelay** *(integer) --* If a streaming output fails, number of seconds to
              wait until a restart is initiated. A value of 0 means never restart.

            - **UdpGroupSettings** *(dict) --* Udp Group Settings

              - **InputLossAction** *(string) --* Specifies behavior of last resort when input video
              is lost, and no more backup inputs are available. When dropTs is selected the entire
              transport stream will stop being emitted. When dropProgram is selected the program can
              be dropped from the transport stream (and replaced with null packets to meet the TS
              bitrate requirement). Or, when emitProgram is chosen the transport stream will
              continue to be produced normally with repeat frames, black frames, or slate frames
              substituted for the absent input video.

              - **TimedMetadataId3Frame** *(string) --* Indicates ID3 frame that has the timecode.

              - **TimedMetadataId3Period** *(integer) --* Timed Metadata interval in seconds.

          - **Outputs** *(list) --* Placeholder documentation for __listOfOutput

            - *(dict) --* Output settings. There can be multiple outputs within a group.

              - **AudioDescriptionNames** *(list) --* The names of the AudioDescriptions used as
              audio sources for this output.

                - *(string) --* Placeholder documentation for __string

              - **CaptionDescriptionNames** *(list) --* The names of the CaptionDescriptions used as
              caption sources for this output.

                - *(string) --* Placeholder documentation for __string

              - **OutputName** *(string) --* The name used to identify an output.

              - **OutputSettings** *(dict) --* Output type-specific settings.

                - **ArchiveOutputSettings** *(dict) --* Archive Output Settings

                  - **ContainerSettings** *(dict) --* Settings specific to the container type of the
                  file.

                    - **M2tsSettings** *(dict) --* M2ts Settings

                      - **AbsentInputAudioBehavior** *(string) --* When set to drop, output audio
                      streams will be removed from the program if the selected input audio stream is
                      removed from the input. This allows the output audio configuration to
                      dynamically change based on input configuration. If this is set to
                      encodeSilence, all output audio streams will output encoded silence when not
                      connected to an active input stream.

                      - **Arib** *(string) --* When set to enabled, uses ARIB-compliant field muxing
                      and removes video descriptor.

                      - **AribCaptionsPid** *(string) --* Packet Identifier (PID) for ARIB Captions
                      in the transport stream. Can be entered as a decimal or hexadecimal value.
                      Valid values are 32 (or 0x20)..8182 (or 0x1ff6).

                      - **AribCaptionsPidControl** *(string) --* If set to auto, pid number used for
                      ARIB Captions will be auto-selected from unused pids. If set to useConfigured,
                      ARIB Captions will be on the configured pid number.

                      - **AudioBufferModel** *(string) --* When set to dvb, uses DVB buffer model
                      for Dolby Digital audio. When set to atsc, the ATSC model is used.

                      - **AudioFramesPerPes** *(integer) --* The number of audio frames to insert
                      for each PES packet.

                      - **AudioPids** *(string) --* Packet Identifier (PID) of the elementary audio
                      stream(s) in the transport stream. Multiple values are accepted, and can be
                      entered in ranges and/or by comma separation. Can be entered as decimal or
                      hexadecimal values. Each PID specified must be in the range of 32 (or
                      0x20)..8182 (or 0x1ff6).

                      - **AudioStreamType** *(string) --* When set to atsc, uses stream type = 0x81
                      for AC3 and stream type =
                           0x87 for EAC3. When set to dvb, uses stream type =
                      0x06.

                      - **Bitrate** *(integer) --* The output bitrate of the transport stream in
                      bits per second. Setting to 0 lets the muxer automatically determine the
                      appropriate bitrate.

                      - **BufferModel** *(string) --* If set to multiplex, use multiplex buffer
                      model for accurate interleaving. Setting to bufferModel to none can lead to
                      lower latency, but low-memory devices may not be able to play back the stream
                      without interruptions.

                      - **CcDescriptor** *(string) --* When set to enabled, generates
                      captionServiceDescriptor in PMT.

                      - **DvbNitSettings** *(dict) --* Inserts DVB Network Information Table (NIT)
                      at the specified table repetition interval.

                        - **NetworkId** *(integer) --* The numeric value placed in the Network
                        Information Table (NIT).

                        - **NetworkName** *(string) --* The network name text placed in the
                        networkNameDescriptor inside the Network Information Table. Maximum length
                        is 256 characters.

                        - **RepInterval** *(integer) --* The number of milliseconds between
                        instances of this table in the output transport stream.

                      - **DvbSdtSettings** *(dict) --* Inserts DVB Service Description Table (SDT)
                      at the specified table repetition interval.

                        - **OutputSdt** *(string) --* Selects method of inserting SDT information
                        into output stream. The sdtFollow setting copies SDT information from input
                        stream to output stream. The sdtFollowIfPresent setting copies SDT
                        information from input stream to output stream if SDT information is present
                        in the input, otherwise it will fall back on the user-defined values. The
                        sdtManual setting means user will enter the SDT information. The sdtNone
                        setting means output stream will not contain SDT information.

                        - **RepInterval** *(integer) --* The number of milliseconds between
                        instances of this table in the output transport stream.

                        - **ServiceName** *(string) --* The service name placed in the
                        serviceDescriptor in the Service Description Table. Maximum length is 256
                        characters.

                        - **ServiceProviderName** *(string) --* The service provider name placed in
                        the serviceDescriptor in the Service Description Table. Maximum length is
                        256 characters.

                      - **DvbSubPids** *(string) --* Packet Identifier (PID) for input source DVB
                      Subtitle data to this output. Multiple values are accepted, and can be entered
                      in ranges and/or by comma separation. Can be entered as decimal or hexadecimal
                      values. Each PID specified must be in the range of 32 (or 0x20)..8182 (or
                      0x1ff6).

                      - **DvbTdtSettings** *(dict) --* Inserts DVB Time and Date Table (TDT) at the
                      specified table repetition interval.

                        - **RepInterval** *(integer) --* The number of milliseconds between
                        instances of this table in the output transport stream.

                      - **DvbTeletextPid** *(string) --* Packet Identifier (PID) for input source
                      DVB Teletext data to this output. Can be entered as a decimal or hexadecimal
                      value. Valid values are 32 (or 0x20)..8182 (or 0x1ff6).

                      - **Ebif** *(string) --* If set to passthrough, passes any EBIF data from the
                      input source to this output.

                      - **EbpAudioInterval** *(string) --* When videoAndFixedIntervals is selected,
                      audio EBP markers will be added to partitions 3 and 4. The interval between
                      these additional markers will be fixed, and will be slightly shorter than the
                      video EBP marker interval. Only available when EBP Cablelabs segmentation
                      markers are selected. Partitions 1 and 2 will always follow the video
                      interval.

                      - **EbpLookaheadMs** *(integer) --* When set, enforces that Encoder Boundary
                      Points do not come within the specified time interval of each other by looking
                      ahead at input video. If another EBP is going to come in within the specified
                      time interval, the current EBP is not emitted, and the segment is "stretched"
                      to the next marker. The lookahead value does not add latency to the system.
                      The Live Event must be configured elsewhere to create sufficient latency to
                      make the lookahead accurate.

                      - **EbpPlacement** *(string) --* Controls placement of EBP on Audio PIDs. If
                      set to videoAndAudioPids, EBP markers will be placed on the video PID and all
                      audio PIDs. If set to videoPid, EBP markers will be placed on only the video
                      PID.

                      - **EcmPid** *(string) --* This field is unused and deprecated.

                      - **EsRateInPes** *(string) --* Include or exclude the ES Rate field in the
                      PES header.

                      - **EtvPlatformPid** *(string) --* Packet Identifier (PID) for input source
                      ETV Platform data to this output. Can be entered as a decimal or hexadecimal
                      value. Valid values are 32 (or 0x20)..8182 (or 0x1ff6).

                      - **EtvSignalPid** *(string) --* Packet Identifier (PID) for input source ETV
                      Signal data to this output. Can be entered as a decimal or hexadecimal value.
                      Valid values are 32 (or 0x20)..8182 (or 0x1ff6).

                      - **FragmentTime** *(float) --* The length in seconds of each fragment. Only
                      used with EBP markers.

                      - **Klv** *(string) --* If set to passthrough, passes any KLV data from the
                      input source to this output.

                      - **KlvDataPids** *(string) --* Packet Identifier (PID) for input source KLV
                      data to this output. Multiple values are accepted, and can be entered in
                      ranges and/or by comma separation. Can be entered as decimal or hexadecimal
                      values. Each PID specified must be in the range of 32 (or 0x20)..8182 (or
                      0x1ff6).

                      - **NielsenId3Behavior** *(string) --* If set to passthrough, Nielsen
                      inaudible tones for media tracking will be detected in the input audio and an
                      equivalent ID3 tag will be inserted in the output.

                      - **NullPacketBitrate** *(float) --* Value in bits per second of extra null
                      packets to insert into the transport stream. This can be used if a downstream
                      encryption system requires periodic null packets.

                      - **PatInterval** *(integer) --* The number of milliseconds between instances
                      of this table in the output transport stream. Valid values are 0, 10..1000.

                      - **PcrControl** *(string) --* When set to pcrEveryPesPacket, a Program Clock
                      Reference value is inserted for every Packetized Elementary Stream (PES)
                      header. This parameter is effective only when the PCR PID is the same as the
                      video or audio elementary stream.

                      - **PcrPeriod** *(integer) --* Maximum time in milliseconds between Program
                      Clock Reference (PCRs) inserted into the transport stream.

                      - **PcrPid** *(string) --* Packet Identifier (PID) of the Program Clock
                      Reference (PCR) in the transport stream. When no value is given, the encoder
                      will assign the same value as the Video PID. Can be entered as a decimal or
                      hexadecimal value. Valid values are 32 (or 0x20)..8182 (or 0x1ff6).

                      - **PmtInterval** *(integer) --* The number of milliseconds between instances
                      of this table in the output transport stream. Valid values are 0, 10..1000.

                      - **PmtPid** *(string) --* Packet Identifier (PID) for the Program Map Table
                      (PMT) in the transport stream. Can be entered as a decimal or hexadecimal
                      value. Valid values are 32 (or 0x20)..8182 (or 0x1ff6).

                      - **ProgramNum** *(integer) --* The value of the program number field in the
                      Program Map Table.

                      - **RateMode** *(string) --* When vbr, does not insert null packets into
                      transport stream to fill specified bitrate. The bitrate setting acts as the
                      maximum bitrate when vbr is set.

                      - **Scte27Pids** *(string) --* Packet Identifier (PID) for input source
                      SCTE-27 data to this output. Multiple values are accepted, and can be entered
                      in ranges and/or by comma separation. Can be entered as decimal or hexadecimal
                      values. Each PID specified must be in the range of 32 (or 0x20)..8182 (or
                      0x1ff6).

                      - **Scte35Control** *(string) --* Optionally pass SCTE-35 signals from the
                      input source to this output.

                      - **Scte35Pid** *(string) --* Packet Identifier (PID) of the SCTE-35 stream in
                      the transport stream. Can be entered as a decimal or hexadecimal value. Valid
                      values are 32 (or 0x20)..8182 (or 0x1ff6).

                      - **SegmentationMarkers** *(string) --* Inserts segmentation markers at each
                      segmentationTime period. raiSegstart sets the Random Access Indicator bit in
                      the adaptation field. raiAdapt sets the RAI bit and adds the current timecode
                      in the private data bytes. psiSegstart inserts PAT and PMT tables at the start
                      of segments. ebp adds Encoder Boundary Point information to the adaptation
                      field as per OpenCable specification OC-SP-EBP-I01-130118. ebpLegacy adds
                      Encoder Boundary Point information to the adaptation field using a legacy
                      proprietary format.

                      - **SegmentationStyle** *(string) --* The segmentation style parameter
                      controls how segmentation markers are inserted into the transport stream. With
                      avails, it is possible that segments may be truncated, which can influence
                      where future segmentation markers are inserted. When a segmentation style of
                      "resetCadence" is selected and a segment is truncated due to an avail, we will
                      reset the segmentation cadence. This means the subsequent segment will have a
                      duration of $segmentationTime seconds. When a segmentation style of
                      "maintainCadence" is selected and a segment is truncated due to an avail, we
                      will not reset the segmentation cadence. This means the subsequent segment
                      will likely be truncated as well. However, all segments after that will have a
                      duration of $segmentationTime seconds. Note that EBP lookahead is a slight
                      exception to this rule.

                      - **SegmentationTime** *(float) --* The length in seconds of each segment.
                      Required unless markers is set to None_.

                      - **TimedMetadataBehavior** *(string) --* When set to passthrough, timed
                      metadata will be passed through from input to output.

                      - **TimedMetadataPid** *(string) --* Packet Identifier (PID) of the timed
                      metadata stream in the transport stream. Can be entered as a decimal or
                      hexadecimal value. Valid values are 32 (or 0x20)..8182 (or 0x1ff6).

                      - **TransportStreamId** *(integer) --* The value of the transport stream ID
                      field in the Program Map Table.

                      - **VideoPid** *(string) --* Packet Identifier (PID) of the elementary video
                      stream in the transport stream. Can be entered as a decimal or hexadecimal
                      value. Valid values are 32 (or 0x20)..8182 (or 0x1ff6).

                  - **Extension** *(string) --* Output file extension. If excluded, this will be
                  auto-selected from the container type.

                  - **NameModifier** *(string) --* String concatenated to the end of the destination
                  filename. Required for multiple outputs of the same type.

                - **FrameCaptureOutputSettings** *(dict) --* Frame Capture Output Settings

                  - **NameModifier** *(string) --* Required if the output group contains more than
                  one output. This modifier forms part of the output file name.

                - **HlsOutputSettings** *(dict) --* Hls Output Settings

                  - **HlsSettings** *(dict) --* Settings regarding the underlying stream. These
                  settings are different for audio-only outputs.

                    - **AudioOnlyHlsSettings** *(dict) --* Audio Only Hls Settings

                      - **AudioGroupId** *(string) --* Specifies the group to which the audio
                      Rendition belongs.

                      - **AudioOnlyImage** *(dict) --* Optional. Specifies the .jpg or .png image to
                      use as the cover art for an audio-only output. We recommend a low bit-size
                      file because the image increases the output audio bandwidth. The image is
                      attached to the audio as an ID3 tag, frame type APIC, picture type 0x10, as
                      per the "ID3 tag version 2.4.0 - Native Frames" standard.

                        - **PasswordParam** *(string) --* key used to extract the password from EC2
                        Parameter store

                        - **Uri** *(string) --* Uniform Resource Identifier - This should be a path
                        to a file accessible to the Live system (eg. a http:// URI) depending on the
                        output type. For example, a RTMP destination should have a uri simliar to:
                        "rtmp://fmsserver/live".

                        - **Username** *(string) --* Documentation update needed

                      - **AudioTrackType** *(string) --* Four types of audio-only tracks are
                      supported: Audio-Only Variant Stream The client can play back this audio-only
                      stream instead of video in low-bandwidth scenarios. Represented as an
                      EXT-X-STREAM-INF in the HLS manifest. Alternate Audio, Auto Select, Default
                      Alternate rendition that the client should try to play back by default.
                      Represented as an EXT-X-MEDIA in the HLS manifest with DEFAULT=YES,
                      AUTOSELECT=
                          YES Alternate Audio, Auto Select, Not Default Alternate rendition
                      that the client may try to play back by default. Represented as an EXT-X-MEDIA
                      in the HLS manifest with DEFAULT=NO, AUTOSELECT=
                          YES Alternate Audio, not Auto
                      Select Alternate rendition that the client will not try to play back by
                      default. Represented as an EXT-X-MEDIA in the HLS manifest with DEFAULT=NO,
                      AUTOSELECT=NO

                    - **StandardHlsSettings** *(dict) --* Standard Hls Settings

                      - **AudioRenditionSets** *(string) --* List all the audio groups that are used
                      with the video output stream. Input all the audio GROUP-IDs that are
                      associated to the video, separate by ','.

                      - **M3u8Settings** *(dict) --* Settings information for the .m3u8 container

                        - **AudioFramesPerPes** *(integer) --* The number of audio frames to insert
                        for each PES packet.

                        - **AudioPids** *(string) --* Packet Identifier (PID) of the elementary
                        audio stream(s) in the transport stream. Multiple values are accepted, and
                        can be entered in ranges and/or by comma separation. Can be entered as
                        decimal or hexadecimal values.

                        - **EcmPid** *(string) --* This parameter is unused and deprecated.

                        - **NielsenId3Behavior** *(string) --* If set to passthrough, Nielsen
                        inaudible tones for media tracking will be detected in the input audio and
                        an equivalent ID3 tag will be inserted in the output.

                        - **PatInterval** *(integer) --* The number of milliseconds between
                        instances of this table in the output transport stream. A value of \\"0\\"
                        writes out the PMT once per segment file.

                        - **PcrControl** *(string) --* When set to pcrEveryPesPacket, a Program
                        Clock Reference value is inserted for every Packetized Elementary Stream
                        (PES) header. This parameter is effective only when the PCR PID is the same
                        as the video or audio elementary stream.

                        - **PcrPeriod** *(integer) --* Maximum time in milliseconds between Program
                        Clock References (PCRs) inserted into the transport stream.

                        - **PcrPid** *(string) --* Packet Identifier (PID) of the Program Clock
                        Reference (PCR) in the transport stream. When no value is given, the encoder
                        will assign the same value as the Video PID. Can be entered as a decimal or
                        hexadecimal value.

                        - **PmtInterval** *(integer) --* The number of milliseconds between
                        instances of this table in the output transport stream. A value of \\"0\\"
                        writes out the PMT once per segment file.

                        - **PmtPid** *(string) --* Packet Identifier (PID) for the Program Map Table
                        (PMT) in the transport stream. Can be entered as a decimal or hexadecimal
                        value.

                        - **ProgramNum** *(integer) --* The value of the program number field in the
                        Program Map Table.

                        - **Scte35Behavior** *(string) --* If set to passthrough, passes any SCTE-35
                        signals from the input source to this output.

                        - **Scte35Pid** *(string) --* Packet Identifier (PID) of the SCTE-35 stream
                        in the transport stream. Can be entered as a decimal or hexadecimal value.

                        - **TimedMetadataBehavior** *(string) --* When set to passthrough, timed
                        metadata is passed through from input to output.

                        - **TimedMetadataPid** *(string) --* Packet Identifier (PID) of the timed
                        metadata stream in the transport stream. Can be entered as a decimal or
                        hexadecimal value. Valid values are 32 (or 0x20)..8182 (or 0x1ff6).

                        - **TransportStreamId** *(integer) --* The value of the transport stream ID
                        field in the Program Map Table.

                        - **VideoPid** *(string) --* Packet Identifier (PID) of the elementary video
                        stream in the transport stream. Can be entered as a decimal or hexadecimal
                        value.

                  - **NameModifier** *(string) --* String concatenated to the end of the destination
                  filename. Accepts \\"Format Identifiers\\":#formatIdentifierParameters.

                  - **SegmentModifier** *(string) --* String concatenated to end of segment
                  filenames.

                - **MediaPackageOutputSettings** *(dict) --* Media Package Output Settings

                - **MsSmoothOutputSettings** *(dict) --* Ms Smooth Output Settings

                  - **H265PackagingType** *(string) --* Only applicable when this output is
                  referencing an H.265 video description. Specifies whether MP4 segments should be
                  packaged as HEV1 or HVC1.

                  - **NameModifier** *(string) --* String concatenated to the end of the destination
                  filename. Required for multiple outputs of the same type.

                - **MultiplexOutputSettings** *(dict) --* Multiplex Output Settings

                  - **Destination** *(dict) --* Destination is a Multiplex.

                    - **DestinationRefId** *(string) --* Placeholder documentation for __string

                - **RtmpOutputSettings** *(dict) --* Rtmp Output Settings

                  - **CertificateMode** *(string) --* If set to verifyAuthenticity, verify the tls
                  certificate chain to a trusted Certificate Authority (CA). This will cause rtmps
                  outputs with self-signed certificates to fail.

                  - **ConnectionRetryInterval** *(integer) --* Number of seconds to wait before
                  retrying a connection to the Flash Media server if the connection is lost.

                  - **Destination** *(dict) --* The RTMP endpoint excluding the stream name (eg.
                  rtmp://host/appname). For connection to Akamai, a username and password must be
                  supplied. URI fields accept format identifiers.

                    - **DestinationRefId** *(string) --* Placeholder documentation for __string

                  - **NumRetries** *(integer) --* Number of retry attempts.

                - **UdpOutputSettings** *(dict) --* Udp Output Settings

                  - **BufferMsec** *(integer) --* UDP output buffering in milliseconds. Larger
                  values increase latency through the transcoder but simultaneously assist the
                  transcoder in maintaining a constant, low-jitter UDP/RTP output while
                  accommodating clock recovery, input switching, input disruptions, picture
                  reordering, etc.

                  - **ContainerSettings** *(dict) --* Udp Container Settings

                    - **M2tsSettings** *(dict) --* M2ts Settings

                      - **AbsentInputAudioBehavior** *(string) --* When set to drop, output audio
                      streams will be removed from the program if the selected input audio stream is
                      removed from the input. This allows the output audio configuration to
                      dynamically change based on input configuration. If this is set to
                      encodeSilence, all output audio streams will output encoded silence when not
                      connected to an active input stream.

                      - **Arib** *(string) --* When set to enabled, uses ARIB-compliant field muxing
                      and removes video descriptor.

                      - **AribCaptionsPid** *(string) --* Packet Identifier (PID) for ARIB Captions
                      in the transport stream. Can be entered as a decimal or hexadecimal value.
                      Valid values are 32 (or 0x20)..8182 (or 0x1ff6).

                      - **AribCaptionsPidControl** *(string) --* If set to auto, pid number used for
                      ARIB Captions will be auto-selected from unused pids. If set to useConfigured,
                      ARIB Captions will be on the configured pid number.

                      - **AudioBufferModel** *(string) --* When set to dvb, uses DVB buffer model
                      for Dolby Digital audio. When set to atsc, the ATSC model is used.

                      - **AudioFramesPerPes** *(integer) --* The number of audio frames to insert
                      for each PES packet.

                      - **AudioPids** *(string) --* Packet Identifier (PID) of the elementary audio
                      stream(s) in the transport stream. Multiple values are accepted, and can be
                      entered in ranges and/or by comma separation. Can be entered as decimal or
                      hexadecimal values. Each PID specified must be in the range of 32 (or
                      0x20)..8182 (or 0x1ff6).

                      - **AudioStreamType** *(string) --* When set to atsc, uses stream type = 0x81
                      for AC3 and stream type =
                           0x87 for EAC3. When set to dvb, uses stream type =
                      0x06.

                      - **Bitrate** *(integer) --* The output bitrate of the transport stream in
                      bits per second. Setting to 0 lets the muxer automatically determine the
                      appropriate bitrate.

                      - **BufferModel** *(string) --* If set to multiplex, use multiplex buffer
                      model for accurate interleaving. Setting to bufferModel to none can lead to
                      lower latency, but low-memory devices may not be able to play back the stream
                      without interruptions.

                      - **CcDescriptor** *(string) --* When set to enabled, generates
                      captionServiceDescriptor in PMT.

                      - **DvbNitSettings** *(dict) --* Inserts DVB Network Information Table (NIT)
                      at the specified table repetition interval.

                        - **NetworkId** *(integer) --* The numeric value placed in the Network
                        Information Table (NIT).

                        - **NetworkName** *(string) --* The network name text placed in the
                        networkNameDescriptor inside the Network Information Table. Maximum length
                        is 256 characters.

                        - **RepInterval** *(integer) --* The number of milliseconds between
                        instances of this table in the output transport stream.

                      - **DvbSdtSettings** *(dict) --* Inserts DVB Service Description Table (SDT)
                      at the specified table repetition interval.

                        - **OutputSdt** *(string) --* Selects method of inserting SDT information
                        into output stream. The sdtFollow setting copies SDT information from input
                        stream to output stream. The sdtFollowIfPresent setting copies SDT
                        information from input stream to output stream if SDT information is present
                        in the input, otherwise it will fall back on the user-defined values. The
                        sdtManual setting means user will enter the SDT information. The sdtNone
                        setting means output stream will not contain SDT information.

                        - **RepInterval** *(integer) --* The number of milliseconds between
                        instances of this table in the output transport stream.

                        - **ServiceName** *(string) --* The service name placed in the
                        serviceDescriptor in the Service Description Table. Maximum length is 256
                        characters.

                        - **ServiceProviderName** *(string) --* The service provider name placed in
                        the serviceDescriptor in the Service Description Table. Maximum length is
                        256 characters.

                      - **DvbSubPids** *(string) --* Packet Identifier (PID) for input source DVB
                      Subtitle data to this output. Multiple values are accepted, and can be entered
                      in ranges and/or by comma separation. Can be entered as decimal or hexadecimal
                      values. Each PID specified must be in the range of 32 (or 0x20)..8182 (or
                      0x1ff6).

                      - **DvbTdtSettings** *(dict) --* Inserts DVB Time and Date Table (TDT) at the
                      specified table repetition interval.

                        - **RepInterval** *(integer) --* The number of milliseconds between
                        instances of this table in the output transport stream.

                      - **DvbTeletextPid** *(string) --* Packet Identifier (PID) for input source
                      DVB Teletext data to this output. Can be entered as a decimal or hexadecimal
                      value. Valid values are 32 (or 0x20)..8182 (or 0x1ff6).

                      - **Ebif** *(string) --* If set to passthrough, passes any EBIF data from the
                      input source to this output.

                      - **EbpAudioInterval** *(string) --* When videoAndFixedIntervals is selected,
                      audio EBP markers will be added to partitions 3 and 4. The interval between
                      these additional markers will be fixed, and will be slightly shorter than the
                      video EBP marker interval. Only available when EBP Cablelabs segmentation
                      markers are selected. Partitions 1 and 2 will always follow the video
                      interval.

                      - **EbpLookaheadMs** *(integer) --* When set, enforces that Encoder Boundary
                      Points do not come within the specified time interval of each other by looking
                      ahead at input video. If another EBP is going to come in within the specified
                      time interval, the current EBP is not emitted, and the segment is "stretched"
                      to the next marker. The lookahead value does not add latency to the system.
                      The Live Event must be configured elsewhere to create sufficient latency to
                      make the lookahead accurate.

                      - **EbpPlacement** *(string) --* Controls placement of EBP on Audio PIDs. If
                      set to videoAndAudioPids, EBP markers will be placed on the video PID and all
                      audio PIDs. If set to videoPid, EBP markers will be placed on only the video
                      PID.

                      - **EcmPid** *(string) --* This field is unused and deprecated.

                      - **EsRateInPes** *(string) --* Include or exclude the ES Rate field in the
                      PES header.

                      - **EtvPlatformPid** *(string) --* Packet Identifier (PID) for input source
                      ETV Platform data to this output. Can be entered as a decimal or hexadecimal
                      value. Valid values are 32 (or 0x20)..8182 (or 0x1ff6).

                      - **EtvSignalPid** *(string) --* Packet Identifier (PID) for input source ETV
                      Signal data to this output. Can be entered as a decimal or hexadecimal value.
                      Valid values are 32 (or 0x20)..8182 (or 0x1ff6).

                      - **FragmentTime** *(float) --* The length in seconds of each fragment. Only
                      used with EBP markers.

                      - **Klv** *(string) --* If set to passthrough, passes any KLV data from the
                      input source to this output.

                      - **KlvDataPids** *(string) --* Packet Identifier (PID) for input source KLV
                      data to this output. Multiple values are accepted, and can be entered in
                      ranges and/or by comma separation. Can be entered as decimal or hexadecimal
                      values. Each PID specified must be in the range of 32 (or 0x20)..8182 (or
                      0x1ff6).

                      - **NielsenId3Behavior** *(string) --* If set to passthrough, Nielsen
                      inaudible tones for media tracking will be detected in the input audio and an
                      equivalent ID3 tag will be inserted in the output.

                      - **NullPacketBitrate** *(float) --* Value in bits per second of extra null
                      packets to insert into the transport stream. This can be used if a downstream
                      encryption system requires periodic null packets.

                      - **PatInterval** *(integer) --* The number of milliseconds between instances
                      of this table in the output transport stream. Valid values are 0, 10..1000.

                      - **PcrControl** *(string) --* When set to pcrEveryPesPacket, a Program Clock
                      Reference value is inserted for every Packetized Elementary Stream (PES)
                      header. This parameter is effective only when the PCR PID is the same as the
                      video or audio elementary stream.

                      - **PcrPeriod** *(integer) --* Maximum time in milliseconds between Program
                      Clock Reference (PCRs) inserted into the transport stream.

                      - **PcrPid** *(string) --* Packet Identifier (PID) of the Program Clock
                      Reference (PCR) in the transport stream. When no value is given, the encoder
                      will assign the same value as the Video PID. Can be entered as a decimal or
                      hexadecimal value. Valid values are 32 (or 0x20)..8182 (or 0x1ff6).

                      - **PmtInterval** *(integer) --* The number of milliseconds between instances
                      of this table in the output transport stream. Valid values are 0, 10..1000.

                      - **PmtPid** *(string) --* Packet Identifier (PID) for the Program Map Table
                      (PMT) in the transport stream. Can be entered as a decimal or hexadecimal
                      value. Valid values are 32 (or 0x20)..8182 (or 0x1ff6).

                      - **ProgramNum** *(integer) --* The value of the program number field in the
                      Program Map Table.

                      - **RateMode** *(string) --* When vbr, does not insert null packets into
                      transport stream to fill specified bitrate. The bitrate setting acts as the
                      maximum bitrate when vbr is set.

                      - **Scte27Pids** *(string) --* Packet Identifier (PID) for input source
                      SCTE-27 data to this output. Multiple values are accepted, and can be entered
                      in ranges and/or by comma separation. Can be entered as decimal or hexadecimal
                      values. Each PID specified must be in the range of 32 (or 0x20)..8182 (or
                      0x1ff6).

                      - **Scte35Control** *(string) --* Optionally pass SCTE-35 signals from the
                      input source to this output.

                      - **Scte35Pid** *(string) --* Packet Identifier (PID) of the SCTE-35 stream in
                      the transport stream. Can be entered as a decimal or hexadecimal value. Valid
                      values are 32 (or 0x20)..8182 (or 0x1ff6).

                      - **SegmentationMarkers** *(string) --* Inserts segmentation markers at each
                      segmentationTime period. raiSegstart sets the Random Access Indicator bit in
                      the adaptation field. raiAdapt sets the RAI bit and adds the current timecode
                      in the private data bytes. psiSegstart inserts PAT and PMT tables at the start
                      of segments. ebp adds Encoder Boundary Point information to the adaptation
                      field as per OpenCable specification OC-SP-EBP-I01-130118. ebpLegacy adds
                      Encoder Boundary Point information to the adaptation field using a legacy
                      proprietary format.

                      - **SegmentationStyle** *(string) --* The segmentation style parameter
                      controls how segmentation markers are inserted into the transport stream. With
                      avails, it is possible that segments may be truncated, which can influence
                      where future segmentation markers are inserted. When a segmentation style of
                      "resetCadence" is selected and a segment is truncated due to an avail, we will
                      reset the segmentation cadence. This means the subsequent segment will have a
                      duration of $segmentationTime seconds. When a segmentation style of
                      "maintainCadence" is selected and a segment is truncated due to an avail, we
                      will not reset the segmentation cadence. This means the subsequent segment
                      will likely be truncated as well. However, all segments after that will have a
                      duration of $segmentationTime seconds. Note that EBP lookahead is a slight
                      exception to this rule.

                      - **SegmentationTime** *(float) --* The length in seconds of each segment.
                      Required unless markers is set to None_.

                      - **TimedMetadataBehavior** *(string) --* When set to passthrough, timed
                      metadata will be passed through from input to output.

                      - **TimedMetadataPid** *(string) --* Packet Identifier (PID) of the timed
                      metadata stream in the transport stream. Can be entered as a decimal or
                      hexadecimal value. Valid values are 32 (or 0x20)..8182 (or 0x1ff6).

                      - **TransportStreamId** *(integer) --* The value of the transport stream ID
                      field in the Program Map Table.

                      - **VideoPid** *(string) --* Packet Identifier (PID) of the elementary video
                      stream in the transport stream. Can be entered as a decimal or hexadecimal
                      value. Valid values are 32 (or 0x20)..8182 (or 0x1ff6).

                  - **Destination** *(dict) --* Destination address and port number for RTP or UDP
                  packets. Can be unicast or multicast RTP or UDP (eg. rtp://239.10.10.10:5001 or
                  udp://10.100.100.100:5002).

                    - **DestinationRefId** *(string) --* Placeholder documentation for __string

                  - **FecOutputSettings** *(dict) --* Settings for enabling and adjusting Forward
                  Error Correction on UDP outputs.

                    - **ColumnDepth** *(integer) --* Parameter D from SMPTE 2022-1. The height of
                    the FEC protection matrix. The number of transport stream packets per column
                    error correction packet. Must be between 4 and 20, inclusive.

                    - **IncludeFec** *(string) --* Enables column only or column and row based FEC

                    - **RowLength** *(integer) --* Parameter L from SMPTE 2022-1. The width of the
                    FEC protection matrix. Must be between 1 and 20, inclusive. If only Column FEC
                    is used, then larger values increase robustness. If Row FEC is used, then this
                    is the number of transport stream packets per row error correction packet, and
                    the value must be between 4 and 20, inclusive, if includeFec is columnAndRow. If
                    includeFec is column, this value must be 1 to 20, inclusive.

              - **VideoDescriptionName** *(string) --* The name of the VideoDescription used as the
              source for this output.

      - **TimecodeConfig** *(dict) --* Contains settings used to acquire and adjust timecode
      information from inputs.

        - **Source** *(string) --* Identifies the source for the timecode that will be associated
        with the events outputs. -Embedded (embedded): Initialize the output timecode with timecode
        from the the source. If no embedded timecode is detected in the source, the system falls
        back to using "Start at 0" (zerobased). -System Clock (systemclock): Use the UTC time.
        -Start at 0 (zerobased): The time of the first frame of the event will be 00:00:00:00.

        - **SyncThreshold** *(integer) --* Threshold in frames beyond which output timecode is
        resynchronized to the input timecode. Discrepancies below this threshold are permitted to
        avoid unnecessary discontinuities in the output timecode. No timecode sync when this is not
        specified.

      - **VideoDescriptions** *(list) --* Placeholder documentation for __listOfVideoDescription

        - *(dict) --* Video settings for this stream.

          - **CodecSettings** *(dict) --* Video codec settings.

            - **FrameCaptureSettings** *(dict) --* Frame Capture Settings

              - **CaptureInterval** *(integer) --* The frequency at which to capture frames for
              inclusion in the output. May be specified in either seconds or milliseconds, as
              specified by captureIntervalUnits.

            - **H264Settings** *(dict) --* H264 Settings

              - **AdaptiveQuantization** *(string) --* Adaptive quantization. Allows intra-frame
              quantizers to vary to improve visual quality.

              - **AfdSignaling** *(string) --* Indicates that AFD values will be written into the
              output stream. If afdSignaling is "auto", the system will try to preserve the input
              AFD value (in cases where multiple AFD values are valid). If set to "fixed", the AFD
              value will be the value configured in the fixedAfd parameter.

              - **Bitrate** *(integer) --* Average bitrate in bits/second. Required when the rate
              control mode is VBR or CBR. Not used for QVBR. In an MS Smooth output group, each
              output must have a unique value when its bitrate is rounded down to the nearest
              multiple of 1000.

              - **BufFillPct** *(integer) --* Percentage of the buffer that should initially be
              filled (HRD buffer model).

              - **BufSize** *(integer) --* Size of buffer (HRD buffer model) in bits.

              - **ColorMetadata** *(string) --* Includes colorspace metadata in the output.

              - **ColorSpaceSettings** *(dict) --* Color Space settings

                - **ColorSpacePassthroughSettings** *(dict) --* Passthrough applies no color space
                conversion to the output

                - **Rec601Settings** *(dict) --* Rec601 Settings

                - **Rec709Settings** *(dict) --* Rec709 Settings

              - **EntropyEncoding** *(string) --* Entropy encoding mode. Use cabac (must be in Main
              or High profile) or cavlc.

              - **FixedAfd** *(string) --* Four bit AFD value to write on all frames of video in the
              output stream. Only valid when afdSignaling is set to 'Fixed'.

              - **FlickerAq** *(string) --* If set to enabled, adjust quantization within each frame
              to reduce flicker or 'pop' on I-frames.

              - **FramerateControl** *(string) --* This field indicates how the output video frame
              rate is specified. If "specified" is selected then the output video frame rate is
              determined by framerateNumerator and framerateDenominator, else if
              "initializeFromSource" is selected then the output video frame rate will be set equal
              to the input video frame rate of the first input.

              - **FramerateDenominator** *(integer) --* Framerate denominator.

              - **FramerateNumerator** *(integer) --* Framerate numerator - framerate is a fraction,
              e.g. 24000 / 1001 = 23.976 fps.

              - **GopBReference** *(string) --* Documentation update needed

              - **GopClosedCadence** *(integer) --* Frequency of closed GOPs. In streaming
              applications, it is recommended that this be set to 1 so a decoder joining mid-stream
              will receive an IDR frame as quickly as possible. Setting this value to 0 will break
              output segmenting.

              - **GopNumBFrames** *(integer) --* Number of B-frames between reference frames.

              - **GopSize** *(float) --* GOP size (keyframe interval) in units of either frames or
              seconds per gopSizeUnits. If gopSizeUnits is frames, gopSize must be an integer and
              must be greater than or equal to 1. If gopSizeUnits is seconds, gopSize must be
              greater than 0, but need not be an integer.

              - **GopSizeUnits** *(string) --* Indicates if the gopSize is specified in frames or
              seconds. If seconds the system will convert the gopSize into a frame count at run
              time.

              - **Level** *(string) --* H.264 Level.

              - **LookAheadRateControl** *(string) --* Amount of lookahead. A value of low can
              decrease latency and memory usage, while high can produce better quality for certain
              content.

              - **MaxBitrate** *(integer) --* For QVBR: See the tooltip for Quality level For VBR:
              Set the maximum bitrate in order to accommodate expected spikes in the complexity of
              the video.

              - **MinIInterval** *(integer) --* Only meaningful if sceneChangeDetect is set to
              enabled. Defaults to 5 if multiplex rate control is used. Enforces separation between
              repeated (cadence) I-frames and I-frames inserted by Scene Change Detection. If a
              scene change I-frame is within I-interval frames of a cadence I-frame, the GOP is
              shrunk and/or stretched to the scene change I-frame. GOP stretch requires enabling
              lookahead as well as setting I-interval. The normal cadence resumes for the next GOP.
              Note: Maximum GOP stretch = GOP size + Min-I-interval - 1

              - **NumRefFrames** *(integer) --* Number of reference frames to use. The encoder may
              use more than requested if using B-frames and/or interlaced encoding.

              - **ParControl** *(string) --* This field indicates how the output pixel aspect ratio
              is specified. If "specified" is selected then the output video pixel aspect ratio is
              determined by parNumerator and parDenominator, else if "initializeFromSource" is
              selected then the output pixsel aspect ratio will be set equal to the input video
              pixel aspect ratio of the first input.

              - **ParDenominator** *(integer) --* Pixel Aspect Ratio denominator.

              - **ParNumerator** *(integer) --* Pixel Aspect Ratio numerator.

              - **Profile** *(string) --* H.264 Profile.

              - **QvbrQualityLevel** *(integer) --* Controls the target quality for the video
              encode. Applies only when the rate control mode is QVBR. Set values for the QVBR
              quality level field and Max bitrate field that suit your most important viewing
              devices. Recommended values are: - Primary screen: Quality level: 8 to 10. Max
              bitrate: 4M - PC or tablet: Quality level: 7. Max bitrate: 1.5M to 3M - Smartphone:
              Quality level: 6. Max bitrate: 1M to 1.5M

              - **RateControlMode** *(string) --* Rate control mode. QVBR: Quality will match the
              specified quality level except when it is constrained by the maximum bitrate.
              Recommended if you or your viewers pay for bandwidth. VBR: Quality and bitrate vary,
              depending on the video complexity. Recommended instead of QVBR if you want to maintain
              a specific average bitrate over the duration of the channel. CBR: Quality varies,
              depending on the video complexity. Recommended only if you distribute your assets to
              devices that cannot handle variable bitrates.

              - **ScanType** *(string) --* Sets the scan type of the output to progressive or
              top-field-first interlaced.

              - **SceneChangeDetect** *(string) --* Scene change detection. - On: inserts I-frames
              when scene change is detected. - Off: does not force an I-frame when scene change is
              detected.

              - **Slices** *(integer) --* Number of slices per picture. Must be less than or equal
              to the number of macroblock rows for progressive pictures, and less than or equal to
              half the number of macroblock rows for interlaced pictures. This field is optional;
              when no value is specified the encoder will choose the number of slices based on
              encode resolution.

              - **Softness** *(integer) --* Softness. Selects quantizer matrix, larger values reduce
              high-frequency content in the encoded image.

              - **SpatialAq** *(string) --* If set to enabled, adjust quantization within each frame
              based on spatial variation of content complexity.

              - **SubgopLength** *(string) --* If set to fixed, use gopNumBFrames B-frames per
              sub-GOP. If set to dynamic, optimize the number of B-frames used for each sub-GOP to
              improve visual quality.

              - **Syntax** *(string) --* Produces a bitstream compliant with SMPTE RP-2027.

              - **TemporalAq** *(string) --* If set to enabled, adjust quantization within each
              frame based on temporal variation of content complexity.

              - **TimecodeInsertion** *(string) --* Determines how timecodes should be inserted into
              the video elementary stream. - 'disabled': Do not include timecodes - 'picTimingSei':
              Pass through picture timing SEI messages from the source specified in Timecode Config

            - **H265Settings** *(dict) --* H265 Settings

              - **AdaptiveQuantization** *(string) --* Adaptive quantization. Allows intra-frame
              quantizers to vary to improve visual quality.

              - **AfdSignaling** *(string) --* Indicates that AFD values will be written into the
              output stream. If afdSignaling is "auto", the system will try to preserve the input
              AFD value (in cases where multiple AFD values are valid). If set to "fixed", the AFD
              value will be the value configured in the fixedAfd parameter.

              - **AlternativeTransferFunction** *(string) --* Whether or not EML should insert an
              Alternative Transfer Function SEI message to support backwards compatibility with
              non-HDR decoders and displays.

              - **Bitrate** *(integer) --* Average bitrate in bits/second. Required when the rate
              control mode is VBR or CBR. Not used for QVBR. In an MS Smooth output group, each
              output must have a unique value when its bitrate is rounded down to the nearest
              multiple of 1000.

              - **BufSize** *(integer) --* Size of buffer (HRD buffer model) in bits.

              - **ColorMetadata** *(string) --* Includes colorspace metadata in the output.

              - **ColorSpaceSettings** *(dict) --* Color Space settings

                - **ColorSpacePassthroughSettings** *(dict) --* Passthrough applies no color space
                conversion to the output

                - **Hdr10Settings** *(dict) --* Hdr10 Settings

                  - **MaxCll** *(integer) --* Maximum Content Light Level An integer metadata value
                  defining the maximum light level, in nits, of any single pixel within an encoded
                  HDR video stream or file.

                  - **MaxFall** *(integer) --* Maximum Frame Average Light Level An integer metadata
                  value defining the maximum average light level, in nits, for any single frame
                  within an encoded HDR video stream or file.

                - **Rec601Settings** *(dict) --* Rec601 Settings

                - **Rec709Settings** *(dict) --* Rec709 Settings

              - **FixedAfd** *(string) --* Four bit AFD value to write on all frames of video in the
              output stream. Only valid when afdSignaling is set to 'Fixed'.

              - **FlickerAq** *(string) --* If set to enabled, adjust quantization within each frame
              to reduce flicker or 'pop' on I-frames.

              - **FramerateDenominator** *(integer) --* Framerate denominator.

              - **FramerateNumerator** *(integer) --* Framerate numerator - framerate is a fraction,
              e.g. 24000 / 1001 = 23.976 fps.

              - **GopClosedCadence** *(integer) --* Frequency of closed GOPs. In streaming
              applications, it is recommended that this be set to 1 so a decoder joining mid-stream
              will receive an IDR frame as quickly as possible. Setting this value to 0 will break
              output segmenting.

              - **GopSize** *(float) --* GOP size (keyframe interval) in units of either frames or
              seconds per gopSizeUnits. If gopSizeUnits is frames, gopSize must be an integer and
              must be greater than or equal to 1. If gopSizeUnits is seconds, gopSize must be
              greater than 0, but need not be an integer.

              - **GopSizeUnits** *(string) --* Indicates if the gopSize is specified in frames or
              seconds. If seconds the system will convert the gopSize into a frame count at run
              time.

              - **Level** *(string) --* H.265 Level.

              - **LookAheadRateControl** *(string) --* Amount of lookahead. A value of low can
              decrease latency and memory usage, while high can produce better quality for certain
              content.

              - **MaxBitrate** *(integer) --* For QVBR: See the tooltip for Quality level

              - **MinIInterval** *(integer) --* Only meaningful if sceneChangeDetect is set to
              enabled. Defaults to 5 if multiplex rate control is used. Enforces separation between
              repeated (cadence) I-frames and I-frames inserted by Scene Change Detection. If a
              scene change I-frame is within I-interval frames of a cadence I-frame, the GOP is
              shrunk and/or stretched to the scene change I-frame. GOP stretch requires enabling
              lookahead as well as setting I-interval. The normal cadence resumes for the next GOP.
              Note: Maximum GOP stretch = GOP size + Min-I-interval - 1

              - **ParDenominator** *(integer) --* Pixel Aspect Ratio denominator.

              - **ParNumerator** *(integer) --* Pixel Aspect Ratio numerator.

              - **Profile** *(string) --* H.265 Profile.

              - **QvbrQualityLevel** *(integer) --* Controls the target quality for the video
              encode. Applies only when the rate control mode is QVBR. Set values for the QVBR
              quality level field and Max bitrate field that suit your most important viewing
              devices. Recommended values are: - Primary screen: Quality level: 8 to 10. Max
              bitrate: 4M - PC or tablet: Quality level: 7. Max bitrate: 1.5M to 3M - Smartphone:
              Quality level: 6. Max bitrate: 1M to 1.5M

              - **RateControlMode** *(string) --* Rate control mode. QVBR: Quality will match the
              specified quality level except when it is constrained by the maximum bitrate.
              Recommended if you or your viewers pay for bandwidth. CBR: Quality varies, depending
              on the video complexity. Recommended only if you distribute your assets to devices
              that cannot handle variable bitrates.

              - **ScanType** *(string) --* Sets the scan type of the output to progressive or
              top-field-first interlaced.

              - **SceneChangeDetect** *(string) --* Scene change detection.

              - **Slices** *(integer) --* Number of slices per picture. Must be less than or equal
              to the number of macroblock rows for progressive pictures, and less than or equal to
              half the number of macroblock rows for interlaced pictures. This field is optional;
              when no value is specified the encoder will choose the number of slices based on
              encode resolution.

              - **Tier** *(string) --* H.265 Tier.

              - **TimecodeInsertion** *(string) --* Determines how timecodes should be inserted into
              the video elementary stream. - 'disabled': Do not include timecodes - 'picTimingSei':
              Pass through picture timing SEI messages from the source specified in Timecode Config

          - **Height** *(integer) --* Output video height, in pixels. Must be an even number. For
          most codecs, you can leave this field and width blank in order to use the height and width
          (resolution) from the source. Note, however, that leaving blank is not recommended. For
          the Frame Capture codec, height and width are required.

          - **Name** *(string) --* The name of this VideoDescription. Outputs will use this name to
          uniquely identify this Description. Description names should be unique within this Live
          Event.

          - **RespondToAfd** *(string) --* Indicates how to respond to the AFD values in the input
          stream. RESPOND causes input video to be clipped, depending on the AFD value, input
          display aspect ratio, and output display aspect ratio, and (except for FRAMECAPTURE codec)
          includes the values in the output. PASSTHROUGH (does not apply to FRAMECAPTURE codec)
          ignores the AFD values and includes the values in the output, so input video is not
          clipped. NONE ignores the AFD values and does not include the values through to the
          output, so input video is not clipped.

          - **ScalingBehavior** *(string) --* STRETCHTOOUTPUT configures the output position to
          stretch the video to the specified output resolution (height and width). This option will
          override any position value. DEFAULT may insert black boxes (pillar boxes or letter boxes)
          around the video to provide the specified output resolution.

          - **Sharpness** *(integer) --* Changes the strength of the anti-alias filter used for
          scaling. 0 is the softest setting, 100 is the sharpest. A setting of 50 is recommended for
          most content.

          - **Width** *(integer) --* Output video width, in pixels. Must be an even number. For most
          codecs, you can leave this field and height blank in order to use the height and width
          (resolution) from the source. Note, however, that leaving blank is not recommended. For
          the Frame Capture codec, height and width are required.

    - **Id** *(string) --* The unique id of the channel.

    - **InputAttachments** *(list) --* List of input attachments for channel.

      - *(dict) --* Placeholder documentation for InputAttachment

        - **InputAttachmentName** *(string) --* User-specified name for the attachment. This is
        required if the user wants to use this input in an input switch action.

        - **InputId** *(string) --* The ID of the input

        - **InputSettings** *(dict) --* Settings of an input (caption selector, etc.)

          - **AudioSelectors** *(list) --* Used to select the audio stream to decode for inputs that
          have multiple available.

            - *(dict) --* Audio Selector

              - **Name** *(string) --* The name of this AudioSelector. AudioDescriptions will use
              this name to uniquely identify this Selector. Selector names should be unique per
              input.

              - **SelectorSettings** *(dict) --* The audio selector settings.

                - **AudioLanguageSelection** *(dict) --* Audio Language Selection

                  - **LanguageCode** *(string) --* Selects a specific three-letter language code
                  from within an audio source.

                  - **LanguageSelectionPolicy** *(string) --* When set to "strict", the transport
                  stream demux strictly identifies audio streams by their language descriptor. If a
                  PMT update occurs such that an audio stream matching the initially selected
                  language is no longer present then mute will be encoded until the language
                  returns. If "loose", then on a PMT update the demux will choose another audio
                  stream in the program with the same stream type if it can't find one with the same
                  language.

                - **AudioPidSelection** *(dict) --* Audio Pid Selection

                  - **Pid** *(integer) --* Selects a specific PID from within a source.

          - **CaptionSelectors** *(list) --* Used to select the caption input to use for inputs that
          have multiple available.

            - *(dict) --* Output groups for this Live Event. Output groups contain information about
            where streams should be distributed.

              - **LanguageCode** *(string) --* When specified this field indicates the three letter
              language code of the caption track to extract from the source.

              - **Name** *(string) --* Name identifier for a caption selector. This name is used to
              associate this caption selector with one or more caption descriptions. Names must be
              unique within an event.

              - **SelectorSettings** *(dict) --* Caption selector settings.

                - **AribSourceSettings** *(dict) --* Arib Source Settings

                - **DvbSubSourceSettings** *(dict) --* Dvb Sub Source Settings

                  - **Pid** *(integer) --* When using DVB-Sub with Burn-In or SMPTE-TT, use this PID
                  for the source content. Unused for DVB-Sub passthrough. All DVB-Sub content is
                  passed through, regardless of selectors.

                - **EmbeddedSourceSettings** *(dict) --* Embedded Source Settings

                  - **Convert608To708** *(string) --* If upconvert, 608 data is both passed through
                  via the "608 compatibility bytes" fields of the 708 wrapper as well as translated
                  into 708. 708 data present in the source content will be discarded.

                  - **Scte20Detection** *(string) --* Set to "auto" to handle streams with
                  intermittent and/or non-aligned SCTE-20 and Embedded captions.

                  - **Source608ChannelNumber** *(integer) --* Specifies the 608/708 channel number
                  within the video track from which to extract captions. Unused for passthrough.

                  - **Source608TrackNumber** *(integer) --* This field is unused and deprecated.

                - **Scte20SourceSettings** *(dict) --* Scte20 Source Settings

                  - **Convert608To708** *(string) --* If upconvert, 608 data is both passed through
                  via the "608 compatibility bytes" fields of the 708 wrapper as well as translated
                  into 708. 708 data present in the source content will be discarded.

                  - **Source608ChannelNumber** *(integer) --* Specifies the 608/708 channel number
                  within the video track from which to extract captions. Unused for passthrough.

                - **Scte27SourceSettings** *(dict) --* Scte27 Source Settings

                  - **Pid** *(integer) --* The pid field is used in conjunction with the caption
                  selector languageCode field as follows: - Specify PID and Language: Extracts
                  captions from that PID; the language is "informational". - Specify PID and omit
                  Language: Extracts the specified PID. - Omit PID and specify Language: Extracts
                  the specified language, whichever PID that happens to be. - Omit PID and omit
                  Language: Valid only if source is DVB-Sub that is being passed through; all
                  languages will be passed through.

                - **TeletextSourceSettings** *(dict) --* Teletext Source Settings

                  - **PageNumber** *(string) --* Specifies the teletext page number within the data
                  stream from which to extract captions. Range of 0x100 (256) to 0x8FF (2303).
                  Unused for passthrough. Should be specified as a hexadecimal string with no "0x"
                  prefix.

          - **DeblockFilter** *(string) --* Enable or disable the deblock filter when filtering.

          - **DenoiseFilter** *(string) --* Enable or disable the denoise filter when filtering.

          - **FilterStrength** *(integer) --* Adjusts the magnitude of filtering from 1 (minimal) to
          5 (strongest).

          - **InputFilter** *(string) --* Turns on the filter for this input. MPEG-2 inputs have the
          deblocking filter enabled by default. 1) auto - filtering will be applied depending on
          input type/quality 2) disabled - no filtering will be applied to the input 3) forced -
          filtering will be applied regardless of input type

          - **NetworkInputSettings** *(dict) --* Input settings.

            - **HlsInputSettings** *(dict) --* Specifies HLS input settings when the uri is for a
            HLS manifest.

              - **Bandwidth** *(integer) --* When specified the HLS stream with the m3u8 BANDWIDTH
              that most closely matches this value will be chosen, otherwise the highest bandwidth
              stream in the m3u8 will be chosen. The bitrate is specified in bits per second, as in
              an HLS manifest.

              - **BufferSegments** *(integer) --* When specified, reading of the HLS input will
              begin this many buffer segments from the end (most recently written segment). When not
              specified, the HLS input will begin with the first segment specified in the m3u8.

              - **Retries** *(integer) --* The number of consecutive times that attempts to read a
              manifest or segment must fail before the input is considered unavailable.

              - **RetryInterval** *(integer) --* The number of seconds between retries when an
              attempt to read a manifest or segment fails.

            - **ServerValidation** *(string) --* Check HTTPS server certificates. When set to
            checkCryptographyOnly, cryptography in the certificate will be checked, but not the
            server's name. Certain subdomains (notably S3 buckets that use dots in the bucket name)
            do not strictly match the corresponding certificate's wildcard pattern and would
            otherwise cause the event to error. This setting is ignored for protocols that do not
            use https.

          - **SourceEndBehavior** *(string) --* Loop input if it is a file. This allows a file input
          to be streamed indefinitely.

          - **VideoSelector** *(dict) --* Informs which video elementary stream to decode for input
          types that have multiple available.

            - **ColorSpace** *(string) --* Specifies the color space of an input. This setting works
            in tandem with colorSpaceUsage and a video description's colorSpaceSettingsChoice to
            determine if any conversion will be performed.

            - **ColorSpaceUsage** *(string) --* Applies only if colorSpace is a value other than
            follow. This field controls how the value in the colorSpace field will be used. fallback
            means that when the input does include color space data, that data will be used, but
            when the input has no color space data, the value in colorSpace will be used. Choose
            fallback if your input is sometimes missing color space data, but when it does have
            color space data, that data is correct. force means to always use the value in
            colorSpace. Choose force if your input usually has no color space data or might have
            unreliable color space data.

            - **SelectorSettings** *(dict) --* The video selector settings.

              - **VideoSelectorPid** *(dict) --* Video Selector Pid

                - **Pid** *(integer) --* Selects a specific PID from within a video source.

              - **VideoSelectorProgramId** *(dict) --* Video Selector Program Id

                - **ProgramId** *(integer) --* Selects a specific program from within a
                multi-program transport stream. If the program doesn't exist, the first program
                within the transport stream will be selected by default.

    - **InputSpecification** *(dict) --* Placeholder documentation for InputSpecification

      - **Codec** *(string) --* Input codec

      - **MaximumBitrate** *(string) --* Maximum input bitrate, categorized coarsely

      - **Resolution** *(string) --* Input resolution, categorized coarsely

    - **LogLevel** *(string) --* The log level being written to CloudWatch Logs.

    - **Name** *(string) --* The name of the channel. (user-mutable)

    - **PipelineDetails** *(list) --* Runtime details for the pipelines of a running channel.

      - *(dict) --* Runtime details of a pipeline when a channel is running.

        - **ActiveInputAttachmentName** *(string) --* The name of the active input attachment
        currently being ingested by this pipeline.

        - **ActiveInputSwitchActionName** *(string) --* The name of the input switch schedule action
        that occurred most recently and that resulted in the switch to the current input attachment
        for this pipeline.

        - **PipelineId** *(string) --* Pipeline ID

    - **PipelinesRunningCount** *(integer) --* The number of currently healthy pipelines.

    - **RoleArn** *(string) --* The Amazon Resource Name (ARN) of the role assumed when running the
    Channel.

    - **State** *(string) --* Placeholder documentation for ChannelState

    - **Tags** *(dict) --* A collection of key-value pairs.

      - *(string) --* Placeholder documentation for __string

        - *(string) --* Placeholder documentation for __string
    """


_ClientUpdateChannelResponseTypeDef = TypedDict(
    "_ClientUpdateChannelResponseTypeDef",
    {"Channel": ClientUpdateChannelResponseChannelTypeDef},
    total=False,
)


class ClientUpdateChannelResponseTypeDef(_ClientUpdateChannelResponseTypeDef):
    """
    Type definition for `ClientUpdateChannel` `Response`

    - **Channel** *(dict) --* Placeholder documentation for Channel

      - **Arn** *(string) --* The unique arn of the channel.

      - **ChannelClass** *(string) --* The class for this channel. STANDARD for a channel with two
      pipelines or SINGLE_PIPELINE for a channel with one pipeline.

      - **Destinations** *(list) --* A list of destinations of the channel. For UDP outputs, there
      is one destination per output. For other types (HLS, for example), there is one destination
      per packager.

        - *(dict) --* Placeholder documentation for OutputDestination

          - **Id** *(string) --* User-specified id. This is used in an output group or an output.

          - **MediaPackageSettings** *(list) --* Destination settings for a MediaPackage output; one
          destination for both encoders.

            - *(dict) --* MediaPackage Output Destination Settings

              - **ChannelId** *(string) --* ID of the channel in MediaPackage that is the
              destination for this output group. You do not need to specify the individual inputs in
              MediaPackage; MediaLive will handle the connection of the two MediaLive pipelines to
              the two MediaPackage inputs. The MediaPackage channel and MediaLive channel must be in
              the same region.

          - **MultiplexSettings** *(dict) --* Destination settings for a Multiplex output; one
          destination for both encoders.

            - **MultiplexId** *(string) --* The ID of the Multiplex that the encoder is providing
            output to. You do not need to specify the individual inputs to the Multiplex; MediaLive
            will handle the connection of the two MediaLive pipelines to the two Multiplex
            instances. The Multiplex must be in the same region as the Channel.

            - **ProgramName** *(string) --* The program name of the Multiplex program that the
            encoder is providing output to.

          - **Settings** *(list) --* Destination settings for a standard output; one destination for
          each redundant encoder.

            - *(dict) --* Placeholder documentation for OutputDestinationSettings

              - **PasswordParam** *(string) --* key used to extract the password from EC2 Parameter
              store

              - **StreamName** *(string) --* Stream name for RTMP destinations (URLs of type
              rtmp://)

              - **Url** *(string) --* A URL specifying a destination

              - **Username** *(string) --* username for destination

      - **EgressEndpoints** *(list) --* The endpoints where outgoing connections initiate from

        - *(dict) --* Placeholder documentation for ChannelEgressEndpoint

          - **SourceIp** *(string) --* Public IP of where a channel's output comes from

      - **EncoderSettings** *(dict) --* Encoder Settings

        - **AudioDescriptions** *(list) --* Placeholder documentation for __listOfAudioDescription

          - *(dict) --* Audio Description

            - **AudioNormalizationSettings** *(dict) --* Advanced audio normalization settings.

              - **Algorithm** *(string) --* Audio normalization algorithm to use. itu17701 conforms
              to the CALM Act specification, itu17702 conforms to the EBU R-128 specification.

              - **AlgorithmControl** *(string) --* When set to correctAudio the output audio is
              corrected using the chosen algorithm. If set to measureOnly, the audio will be
              measured but not adjusted.

              - **TargetLkfs** *(float) --* Target LKFS(loudness) to adjust volume to. If no value
              is entered, a default value will be used according to the chosen algorithm. The CALM
              Act (1770-1) recommends a target of -24 LKFS. The EBU R-128 specification (1770-2)
              recommends a target of -23 LKFS.

            - **AudioSelectorName** *(string) --* The name of the AudioSelector used as the source
            for this AudioDescription.

            - **AudioType** *(string) --* Applies only if audioTypeControl is useConfigured. The
            values for audioType are defined in ISO-IEC 13818-1.

            - **AudioTypeControl** *(string) --* Determines how audio type is determined.
            followInput: If the input contains an ISO 639 audioType, then that value is passed
            through to the output. If the input contains no ISO 639 audioType, the value in Audio
            Type is included in the output. useConfigured: The value in Audio Type is included in
            the output. Note that this field and audioType are both ignored if inputType is
            broadcasterMixedAd.

            - **CodecSettings** *(dict) --* Audio codec settings.

              - **AacSettings** *(dict) --* Aac Settings

                - **Bitrate** *(float) --* Average bitrate in bits/second. Valid values depend on
                rate control mode and profile.

                - **CodingMode** *(string) --* Mono, Stereo, or 5.1 channel layout. Valid values
                depend on rate control mode and profile. The adReceiverMix setting receives a stereo
                description plus control track and emits a mono AAC encode of the description track,
                with control data emitted in the PES header as per ETSI TS 101 154 Annex E.

                - **InputType** *(string) --* Set to "broadcasterMixedAd" when input contains
                pre-mixed main audio + AD (narration) as a stereo pair. The Audio Type field
                (audioType) will be set to 3, which signals to downstream systems that this stream
                contains "broadcaster mixed AD". Note that the input received by the encoder must
                contain pre-mixed audio; the encoder does not perform the mixing. The values in
                audioTypeControl and audioType (in AudioDescription) are ignored when set to
                broadcasterMixedAd. Leave set to "normal" when input does not contain pre-mixed
                audio + AD.

                - **Profile** *(string) --* AAC Profile.

                - **RateControlMode** *(string) --* Rate Control Mode.

                - **RawFormat** *(string) --* Sets LATM / LOAS AAC output for raw containers.

                - **SampleRate** *(float) --* Sample rate in Hz. Valid values depend on rate control
                mode and profile.

                - **Spec** *(string) --* Use MPEG-2 AAC audio instead of MPEG-4 AAC audio for raw or
                MPEG-2 Transport Stream containers.

                - **VbrQuality** *(string) --* VBR Quality Level - Only used if rateControlMode is
                VBR.

              - **Ac3Settings** *(dict) --* Ac3 Settings

                - **Bitrate** *(float) --* Average bitrate in bits/second. Valid bitrates depend on
                the coding mode.

                - **BitstreamMode** *(string) --* Specifies the bitstream mode (bsmod) for the
                emitted AC-3 stream. See ATSC A/52-2012 for background on these values.

                - **CodingMode** *(string) --* Dolby Digital coding mode. Determines number of
                channels.

                - **Dialnorm** *(integer) --* Sets the dialnorm for the output. If excluded and
                input audio is Dolby Digital, dialnorm will be passed through.

                - **DrcProfile** *(string) --* If set to filmStandard, adds dynamic range
                compression signaling to the output bitstream as defined in the Dolby Digital
                specification.

                - **LfeFilter** *(string) --* When set to enabled, applies a 120Hz lowpass filter to
                the LFE channel prior to encoding. Only valid in codingMode32Lfe mode.

                - **MetadataControl** *(string) --* When set to "followInput", encoder metadata will
                be sourced from the DD, DD+, or DolbyE decoder that supplied this audio data. If
                audio was not supplied from one of these streams, then the static metadata settings
                will be used.

              - **Eac3Settings** *(dict) --* Eac3 Settings

                - **AttenuationControl** *(string) --* When set to attenuate3Db, applies a 3 dB
                attenuation to the surround channels. Only used for 3/2 coding mode.

                - **Bitrate** *(float) --* Average bitrate in bits/second. Valid bitrates depend on
                the coding mode.

                - **BitstreamMode** *(string) --* Specifies the bitstream mode (bsmod) for the
                emitted E-AC-3 stream. See ATSC A/52-2012 (Annex E) for background on these values.

                - **CodingMode** *(string) --* Dolby Digital Plus coding mode. Determines number of
                channels.

                - **DcFilter** *(string) --* When set to enabled, activates a DC highpass filter for
                all input channels.

                - **Dialnorm** *(integer) --* Sets the dialnorm for the output. If blank and input
                audio is Dolby Digital Plus, dialnorm will be passed through.

                - **DrcLine** *(string) --* Sets the Dolby dynamic range compression profile.

                - **DrcRf** *(string) --* Sets the profile for heavy Dolby dynamic range
                compression, ensures that the instantaneous signal peaks do not exceed specified
                levels.

                - **LfeControl** *(string) --* When encoding 3/2 audio, setting to lfe enables the
                LFE channel

                - **LfeFilter** *(string) --* When set to enabled, applies a 120Hz lowpass filter to
                the LFE channel prior to encoding. Only valid with codingMode32 coding mode.

                - **LoRoCenterMixLevel** *(float) --* Left only/Right only center mix level. Only
                used for 3/2 coding mode.

                - **LoRoSurroundMixLevel** *(float) --* Left only/Right only surround mix level.
                Only used for 3/2 coding mode.

                - **LtRtCenterMixLevel** *(float) --* Left total/Right total center mix level. Only
                used for 3/2 coding mode.

                - **LtRtSurroundMixLevel** *(float) --* Left total/Right total surround mix level.
                Only used for 3/2 coding mode.

                - **MetadataControl** *(string) --* When set to followInput, encoder metadata will
                be sourced from the DD, DD+, or DolbyE decoder that supplied this audio data. If
                audio was not supplied from one of these streams, then the static metadata settings
                will be used.

                - **PassthroughControl** *(string) --* When set to whenPossible, input DD+ audio
                will be passed through if it is present on the input. This detection is dynamic over
                the life of the transcode. Inputs that alternate between DD+ and non-DD+ content
                will have a consistent DD+ output as the system alternates between passthrough and
                encoding.

                - **PhaseControl** *(string) --* When set to shift90Degrees, applies a 90-degree
                phase shift to the surround channels. Only used for 3/2 coding mode.

                - **StereoDownmix** *(string) --* Stereo downmix preference. Only used for 3/2
                coding mode.

                - **SurroundExMode** *(string) --* When encoding 3/2 audio, sets whether an extra
                center back surround channel is matrix encoded into the left and right surround
                channels.

                - **SurroundMode** *(string) --* When encoding 2/0 audio, sets whether Dolby
                Surround is matrix encoded into the two channels.

              - **Mp2Settings** *(dict) --* Mp2 Settings

                - **Bitrate** *(float) --* Average bitrate in bits/second.

                - **CodingMode** *(string) --* The MPEG2 Audio coding mode. Valid values are
                codingMode10 (for mono) or codingMode20 (for stereo).

                - **SampleRate** *(float) --* Sample rate in Hz.

              - **PassThroughSettings** *(dict) --* Pass Through Settings

            - **LanguageCode** *(string) --* Indicates the language of the audio output track. Only
            used if languageControlMode is useConfigured, or there is no ISO 639 language code
            specified in the input.

            - **LanguageCodeControl** *(string) --* Choosing followInput will cause the ISO 639
            language code of the output to follow the ISO 639 language code of the input. The
            languageCode will be used when useConfigured is set, or when followInput is selected but
            there is no ISO 639 language code specified by the input.

            - **Name** *(string) --* The name of this AudioDescription. Outputs will use this name
            to uniquely identify this AudioDescription. Description names should be unique within
            this Live Event.

            - **RemixSettings** *(dict) --* Settings that control how input audio channels are
            remixed into the output audio channels.

              - **ChannelMappings** *(list) --* Mapping of input channels to output channels, with
              appropriate gain adjustments.

                - *(dict) --* Audio Channel Mapping

                  - **InputChannelLevels** *(list) --* Indices and gain values for each input
                  channel that should be remixed into this output channel.

                    - *(dict) --* Input Channel Level

                      - **Gain** *(integer) --* Remixing value. Units are in dB and acceptable
                      values are within the range from -60 (mute) and 6 dB.

                      - **InputChannel** *(integer) --* The index of the input channel used as a
                      source.

                  - **OutputChannel** *(integer) --* The index of the output channel being produced.

              - **ChannelsIn** *(integer) --* Number of input channels to be used.

              - **ChannelsOut** *(integer) --* Number of output channels to be produced. Valid
              values: 1, 2, 4, 6, 8

            - **StreamName** *(string) --* Used for MS Smooth and Apple HLS outputs. Indicates the
            name displayed by the player (eg. English, or Director Commentary).

        - **AvailBlanking** *(dict) --* Settings for ad avail blanking.

          - **AvailBlankingImage** *(dict) --* Blanking image to be used. Leave empty for solid
          black. Only bmp and png images are supported.

            - **PasswordParam** *(string) --* key used to extract the password from EC2 Parameter
            store

            - **Uri** *(string) --* Uniform Resource Identifier - This should be a path to a file
            accessible to the Live system (eg. a http:// URI) depending on the output type. For
            example, a RTMP destination should have a uri simliar to: "rtmp://fmsserver/live".

            - **Username** *(string) --* Documentation update needed

          - **State** *(string) --* When set to enabled, causes video, audio and captions to be
          blanked when insertion metadata is added.

        - **AvailConfiguration** *(dict) --* Event-wide configuration settings for ad avail
        insertion.

          - **AvailSettings** *(dict) --* Ad avail settings.

            - **Scte35SpliceInsert** *(dict) --* Scte35 Splice Insert

              - **AdAvailOffset** *(integer) --* When specified, this offset (in milliseconds) is
              added to the input Ad Avail PTS time. This only applies to embedded SCTE 104/35
              messages and does not apply to OOB messages.

              - **NoRegionalBlackoutFlag** *(string) --* When set to ignore, Segment Descriptors
              with noRegionalBlackoutFlag set to 0 will no longer trigger blackouts or Ad Avail
              slates

              - **WebDeliveryAllowedFlag** *(string) --* When set to ignore, Segment Descriptors
              with webDeliveryAllowedFlag set to 0 will no longer trigger blackouts or Ad Avail
              slates

            - **Scte35TimeSignalApos** *(dict) --* Scte35 Time Signal Apos

              - **AdAvailOffset** *(integer) --* When specified, this offset (in milliseconds) is
              added to the input Ad Avail PTS time. This only applies to embedded SCTE 104/35
              messages and does not apply to OOB messages.

              - **NoRegionalBlackoutFlag** *(string) --* When set to ignore, Segment Descriptors
              with noRegionalBlackoutFlag set to 0 will no longer trigger blackouts or Ad Avail
              slates

              - **WebDeliveryAllowedFlag** *(string) --* When set to ignore, Segment Descriptors
              with webDeliveryAllowedFlag set to 0 will no longer trigger blackouts or Ad Avail
              slates

        - **BlackoutSlate** *(dict) --* Settings for blackout slate.

          - **BlackoutSlateImage** *(dict) --* Blackout slate image to be used. Leave empty for
          solid black. Only bmp and png images are supported.

            - **PasswordParam** *(string) --* key used to extract the password from EC2 Parameter
            store

            - **Uri** *(string) --* Uniform Resource Identifier - This should be a path to a file
            accessible to the Live system (eg. a http:// URI) depending on the output type. For
            example, a RTMP destination should have a uri simliar to: "rtmp://fmsserver/live".

            - **Username** *(string) --* Documentation update needed

          - **NetworkEndBlackout** *(string) --* Setting to enabled causes the encoder to blackout
          the video, audio, and captions, and raise the "Network Blackout Image" slate when an
          SCTE104/35 Network End Segmentation Descriptor is encountered. The blackout will be lifted
          when the Network Start Segmentation Descriptor is encountered. The Network End and Network
          Start descriptors must contain a network ID that matches the value entered in "Network
          ID".

          - **NetworkEndBlackoutImage** *(dict) --* Path to local file to use as Network End
          Blackout image. Image will be scaled to fill the entire output raster.

            - **PasswordParam** *(string) --* key used to extract the password from EC2 Parameter
            store

            - **Uri** *(string) --* Uniform Resource Identifier - This should be a path to a file
            accessible to the Live system (eg. a http:// URI) depending on the output type. For
            example, a RTMP destination should have a uri simliar to: "rtmp://fmsserver/live".

            - **Username** *(string) --* Documentation update needed

          - **NetworkId** *(string) --* Provides Network ID that matches EIDR ID format (e.g.,
          "10.XXXX/XXXX-XXXX-XXXX-XXXX-XXXX-C").

          - **State** *(string) --* When set to enabled, causes video, audio and captions to be
          blanked when indicated by program metadata.

        - **CaptionDescriptions** *(list) --* Settings for caption decriptions

          - *(dict) --* Caption Description

            - **CaptionSelectorName** *(string) --* Specifies which input caption selector to use as
            a caption source when generating output captions. This field should match a
            captionSelector name.

            - **DestinationSettings** *(dict) --* Additional settings for captions destination that
            depend on the destination type.

              - **AribDestinationSettings** *(dict) --* Arib Destination Settings

              - **BurnInDestinationSettings** *(dict) --* Burn In Destination Settings

                - **Alignment** *(string) --* If no explicit xPosition or yPosition is provided,
                setting alignment to centered will place the captions at the bottom center of the
                output. Similarly, setting a left alignment will align captions to the bottom left
                of the output. If x and y positions are given in conjunction with the alignment
                parameter, the font will be justified (either left or centered) relative to those
                coordinates. Selecting "smart" justification will left-justify live subtitles and
                center-justify pre-recorded subtitles. All burn-in and DVB-Sub font settings must
                match.

                - **BackgroundColor** *(string) --* Specifies the color of the rectangle behind the
                captions. All burn-in and DVB-Sub font settings must match.

                - **BackgroundOpacity** *(integer) --* Specifies the opacity of the background
                rectangle. 255 is opaque; 0 is transparent. Leaving this parameter out is equivalent
                to setting it to 0 (transparent). All burn-in and DVB-Sub font settings must match.

                - **Font** *(dict) --* External font file used for caption burn-in. File extension
                must be 'ttf' or 'tte'. Although the user can select output fonts for many different
                types of input captions, embedded, STL and teletext sources use a strict grid
                system. Using external fonts with these caption sources could cause unexpected
                display of proportional fonts. All burn-in and DVB-Sub font settings must match.

                  - **PasswordParam** *(string) --* key used to extract the password from EC2
                  Parameter store

                  - **Uri** *(string) --* Uniform Resource Identifier - This should be a path to a
                  file accessible to the Live system (eg. a http:// URI) depending on the output
                  type. For example, a RTMP destination should have a uri simliar to:
                  "rtmp://fmsserver/live".

                  - **Username** *(string) --* Documentation update needed

                - **FontColor** *(string) --* Specifies the color of the burned-in captions. This
                option is not valid for source captions that are STL, 608/embedded or teletext.
                These source settings are already pre-defined by the caption stream. All burn-in and
                DVB-Sub font settings must match.

                - **FontOpacity** *(integer) --* Specifies the opacity of the burned-in captions.
                255 is opaque; 0 is transparent. All burn-in and DVB-Sub font settings must match.

                - **FontResolution** *(integer) --* Font resolution in DPI (dots per inch); default
                is 96 dpi. All burn-in and DVB-Sub font settings must match.

                - **FontSize** *(string) --* When set to 'auto' fontSize will scale depending on the
                size of the output. Giving a positive integer will specify the exact font size in
                points. All burn-in and DVB-Sub font settings must match.

                - **OutlineColor** *(string) --* Specifies font outline color. This option is not
                valid for source captions that are either 608/embedded or teletext. These source
                settings are already pre-defined by the caption stream. All burn-in and DVB-Sub font
                settings must match.

                - **OutlineSize** *(integer) --* Specifies font outline size in pixels. This option
                is not valid for source captions that are either 608/embedded or teletext. These
                source settings are already pre-defined by the caption stream. All burn-in and
                DVB-Sub font settings must match.

                - **ShadowColor** *(string) --* Specifies the color of the shadow cast by the
                captions. All burn-in and DVB-Sub font settings must match.

                - **ShadowOpacity** *(integer) --* Specifies the opacity of the shadow. 255 is
                opaque; 0 is transparent. Leaving this parameter out is equivalent to setting it to
                0 (transparent). All burn-in and DVB-Sub font settings must match.

                - **ShadowXOffset** *(integer) --* Specifies the horizontal offset of the shadow
                relative to the captions in pixels. A value of -2 would result in a shadow offset 2
                pixels to the left. All burn-in and DVB-Sub font settings must match.

                - **ShadowYOffset** *(integer) --* Specifies the vertical offset of the shadow
                relative to the captions in pixels. A value of -2 would result in a shadow offset 2
                pixels above the text. All burn-in and DVB-Sub font settings must match.

                - **TeletextGridControl** *(string) --* Controls whether a fixed grid size will be
                used to generate the output subtitles bitmap. Only applicable for Teletext inputs
                and DVB-Sub/Burn-in outputs.

                - **XPosition** *(integer) --* Specifies the horizontal position of the caption
                relative to the left side of the output in pixels. A value of 10 would result in the
                captions starting 10 pixels from the left of the output. If no explicit xPosition is
                provided, the horizontal caption position will be determined by the alignment
                parameter. All burn-in and DVB-Sub font settings must match.

                - **YPosition** *(integer) --* Specifies the vertical position of the caption
                relative to the top of the output in pixels. A value of 10 would result in the
                captions starting 10 pixels from the top of the output. If no explicit yPosition is
                provided, the caption will be positioned towards the bottom of the output. All
                burn-in and DVB-Sub font settings must match.

              - **DvbSubDestinationSettings** *(dict) --* Dvb Sub Destination Settings

                - **Alignment** *(string) --* If no explicit xPosition or yPosition is provided,
                setting alignment to centered will place the captions at the bottom center of the
                output. Similarly, setting a left alignment will align captions to the bottom left
                of the output. If x and y positions are given in conjunction with the alignment
                parameter, the font will be justified (either left or centered) relative to those
                coordinates. Selecting "smart" justification will left-justify live subtitles and
                center-justify pre-recorded subtitles. This option is not valid for source captions
                that are STL or 608/embedded. These source settings are already pre-defined by the
                caption stream. All burn-in and DVB-Sub font settings must match.

                - **BackgroundColor** *(string) --* Specifies the color of the rectangle behind the
                captions. All burn-in and DVB-Sub font settings must match.

                - **BackgroundOpacity** *(integer) --* Specifies the opacity of the background
                rectangle. 255 is opaque; 0 is transparent. Leaving this parameter blank is
                equivalent to setting it to 0 (transparent). All burn-in and DVB-Sub font settings
                must match.

                - **Font** *(dict) --* External font file used for caption burn-in. File extension
                must be 'ttf' or 'tte'. Although the user can select output fonts for many different
                types of input captions, embedded, STL and teletext sources use a strict grid
                system. Using external fonts with these caption sources could cause unexpected
                display of proportional fonts. All burn-in and DVB-Sub font settings must match.

                  - **PasswordParam** *(string) --* key used to extract the password from EC2
                  Parameter store

                  - **Uri** *(string) --* Uniform Resource Identifier - This should be a path to a
                  file accessible to the Live system (eg. a http:// URI) depending on the output
                  type. For example, a RTMP destination should have a uri simliar to:
                  "rtmp://fmsserver/live".

                  - **Username** *(string) --* Documentation update needed

                - **FontColor** *(string) --* Specifies the color of the burned-in captions. This
                option is not valid for source captions that are STL, 608/embedded or teletext.
                These source settings are already pre-defined by the caption stream. All burn-in and
                DVB-Sub font settings must match.

                - **FontOpacity** *(integer) --* Specifies the opacity of the burned-in captions.
                255 is opaque; 0 is transparent. All burn-in and DVB-Sub font settings must match.

                - **FontResolution** *(integer) --* Font resolution in DPI (dots per inch); default
                is 96 dpi. All burn-in and DVB-Sub font settings must match.

                - **FontSize** *(string) --* When set to auto fontSize will scale depending on the
                size of the output. Giving a positive integer will specify the exact font size in
                points. All burn-in and DVB-Sub font settings must match.

                - **OutlineColor** *(string) --* Specifies font outline color. This option is not
                valid for source captions that are either 608/embedded or teletext. These source
                settings are already pre-defined by the caption stream. All burn-in and DVB-Sub font
                settings must match.

                - **OutlineSize** *(integer) --* Specifies font outline size in pixels. This option
                is not valid for source captions that are either 608/embedded or teletext. These
                source settings are already pre-defined by the caption stream. All burn-in and
                DVB-Sub font settings must match.

                - **ShadowColor** *(string) --* Specifies the color of the shadow cast by the
                captions. All burn-in and DVB-Sub font settings must match.

                - **ShadowOpacity** *(integer) --* Specifies the opacity of the shadow. 255 is
                opaque; 0 is transparent. Leaving this parameter blank is equivalent to setting it
                to 0 (transparent). All burn-in and DVB-Sub font settings must match.

                - **ShadowXOffset** *(integer) --* Specifies the horizontal offset of the shadow
                relative to the captions in pixels. A value of -2 would result in a shadow offset 2
                pixels to the left. All burn-in and DVB-Sub font settings must match.

                - **ShadowYOffset** *(integer) --* Specifies the vertical offset of the shadow
                relative to the captions in pixels. A value of -2 would result in a shadow offset 2
                pixels above the text. All burn-in and DVB-Sub font settings must match.

                - **TeletextGridControl** *(string) --* Controls whether a fixed grid size will be
                used to generate the output subtitles bitmap. Only applicable for Teletext inputs
                and DVB-Sub/Burn-in outputs.

                - **XPosition** *(integer) --* Specifies the horizontal position of the caption
                relative to the left side of the output in pixels. A value of 10 would result in the
                captions starting 10 pixels from the left of the output. If no explicit xPosition is
                provided, the horizontal caption position will be determined by the alignment
                parameter. This option is not valid for source captions that are STL, 608/embedded
                or teletext. These source settings are already pre-defined by the caption stream.
                All burn-in and DVB-Sub font settings must match.

                - **YPosition** *(integer) --* Specifies the vertical position of the caption
                relative to the top of the output in pixels. A value of 10 would result in the
                captions starting 10 pixels from the top of the output. If no explicit yPosition is
                provided, the caption will be positioned towards the bottom of the output. This
                option is not valid for source captions that are STL, 608/embedded or teletext.
                These source settings are already pre-defined by the caption stream. All burn-in and
                DVB-Sub font settings must match.

              - **EmbeddedDestinationSettings** *(dict) --* Embedded Destination Settings

              - **EmbeddedPlusScte20DestinationSettings** *(dict) --* Embedded Plus Scte20
              Destination Settings

              - **RtmpCaptionInfoDestinationSettings** *(dict) --* Rtmp Caption Info Destination
              Settings

              - **Scte20PlusEmbeddedDestinationSettings** *(dict) --* Scte20 Plus Embedded
              Destination Settings

              - **Scte27DestinationSettings** *(dict) --* Scte27 Destination Settings

              - **SmpteTtDestinationSettings** *(dict) --* Smpte Tt Destination Settings

              - **TeletextDestinationSettings** *(dict) --* Teletext Destination Settings

              - **TtmlDestinationSettings** *(dict) --* Ttml Destination Settings

                - **StyleControl** *(string) --* When set to passthrough, passes through style and
                position information from a TTML-like input source (TTML, SMPTE-TT, CFF-TT) to the
                CFF-TT output or TTML output.

              - **WebvttDestinationSettings** *(dict) --* Webvtt Destination Settings

            - **LanguageCode** *(string) --* ISO 639-2 three-digit code:
            http://www.loc.gov/standards/iso639-2/

            - **LanguageDescription** *(string) --* Human readable information to indicate captions
            available for players (eg. English, or Spanish).

            - **Name** *(string) --* Name of the caption description. Used to associate a caption
            description with an output. Names must be unique within an event.

        - **GlobalConfiguration** *(dict) --* Configuration settings that apply to the event as a
        whole.

          - **InitialAudioGain** *(integer) --* Value to set the initial audio gain for the Live
          Event.

          - **InputEndAction** *(string) --* Indicates the action to take when the current input
          completes (e.g. end-of-file). When switchAndLoopInputs is configured the encoder will
          restart at the beginning of the first input. When "none" is configured the encoder will
          transcode either black, a solid color, or a user specified slate images per the "Input
          Loss Behavior" configuration until the next input switch occurs (which is controlled
          through the Channel Schedule API).

          - **InputLossBehavior** *(dict) --* Settings for system actions when input is lost.

            - **BlackFrameMsec** *(integer) --* Documentation update needed

            - **InputLossImageColor** *(string) --* When input loss image type is "color" this field
            specifies the color to use. Value: 6 hex characters representing the values of RGB.

            - **InputLossImageSlate** *(dict) --* When input loss image type is "slate" these fields
            specify the parameters for accessing the slate.

              - **PasswordParam** *(string) --* key used to extract the password from EC2 Parameter
              store

              - **Uri** *(string) --* Uniform Resource Identifier - This should be a path to a file
              accessible to the Live system (eg. a http:// URI) depending on the output type. For
              example, a RTMP destination should have a uri simliar to: "rtmp://fmsserver/live".

              - **Username** *(string) --* Documentation update needed

            - **InputLossImageType** *(string) --* Indicates whether to substitute a solid color or
            a slate into the output after input loss exceeds blackFrameMsec.

            - **RepeatFrameMsec** *(integer) --* Documentation update needed

          - **OutputLockingMode** *(string) --* Indicates how MediaLive pipelines are synchronized.
          PIPELINELOCKING - MediaLive will attempt to synchronize the output of each pipeline to the
          other. EPOCHLOCKING - MediaLive will attempt to synchronize the output of each pipeline to
          the Unix epoch.

          - **OutputTimingSource** *(string) --* Indicates whether the rate of frames emitted by the
          Live encoder should be paced by its system clock (which optionally may be locked to
          another source via NTP) or should be locked to the clock of the source that is providing
          the input stream.

          - **SupportLowFramerateInputs** *(string) --* Adjusts video input buffer for streams with
          very low video framerates. This is commonly set to enabled for music channels with less
          than one video frame per second.

        - **NielsenConfiguration** *(dict) --* Nielsen configuration settings.

          - **DistributorId** *(string) --* Enter the Distributor ID assigned to your organization
          by Nielsen.

          - **NielsenPcmToId3Tagging** *(string) --* Enables Nielsen PCM to ID3 tagging

        - **OutputGroups** *(list) --* Placeholder documentation for __listOfOutputGroup

          - *(dict) --* Output groups for this Live Event. Output groups contain information about
          where streams should be distributed.

            - **Name** *(string) --* Custom output group name optionally defined by the user. Only
            letters, numbers, and the underscore character allowed; only 32 characters allowed.

            - **OutputGroupSettings** *(dict) --* Settings associated with the output group.

              - **ArchiveGroupSettings** *(dict) --* Archive Group Settings

                - **Destination** *(dict) --* A directory and base filename where archive files
                should be written.

                  - **DestinationRefId** *(string) --* Placeholder documentation for __string

                - **RolloverInterval** *(integer) --* Number of seconds to write to archive file
                before closing and starting a new one.

              - **FrameCaptureGroupSettings** *(dict) --* Frame Capture Group Settings

                - **Destination** *(dict) --* The destination for the frame capture files. Either
                the URI for an Amazon S3 bucket and object, plus a file name prefix (for example,
                s3ssl://sportsDelivery/highlights/20180820/curling_) or the URI for a MediaStore
                container, plus a file name prefix (for example,
                mediastoressl://sportsDelivery/20180820/curling_). The final file names consist of
                the prefix from the destination field (for example, "curling_") + name modifier +
                the counter (5 digits, starting from 00001) + extension (which is always .jpg). For
                example, curlingLow.00001.jpg

                  - **DestinationRefId** *(string) --* Placeholder documentation for __string

              - **HlsGroupSettings** *(dict) --* Hls Group Settings

                - **AdMarkers** *(list) --* Choose one or more ad marker types to pass SCTE35
                signals through to this group of Apple HLS outputs.

                  - *(string) --* Hls Ad Markers

                - **BaseUrlContent** *(string) --* A partial URI prefix that will be prepended to
                each output in the media .m3u8 file. Can be used if base manifest is delivered from
                a different URL than the main .m3u8 file.

                - **BaseUrlManifest** *(string) --* A partial URI prefix that will be prepended to
                each output in the media .m3u8 file. Can be used if base manifest is delivered from
                a different URL than the main .m3u8 file.

                - **CaptionLanguageMappings** *(list) --* Mapping of up to 4 caption channels to
                caption languages. Is only meaningful if captionLanguageSetting is set to "insert".

                  - *(dict) --* Maps a caption channel to an ISO 693-2 language code
                  (http://www.loc.gov/standards/iso639-2), with an optional description.

                    - **CaptionChannel** *(integer) --* The closed caption channel being described
                    by this CaptionLanguageMapping. Each channel mapping must have a unique channel
                    number (maximum of 4)

                    - **LanguageCode** *(string) --* Three character ISO 639-2 language code (see
                    http://www.loc.gov/standards/iso639-2)

                    - **LanguageDescription** *(string) --* Textual description of language

                - **CaptionLanguageSetting** *(string) --* Applies only to 608 Embedded output
                captions. insert: Include CLOSED-CAPTIONS lines in the manifest. Specify at least
                one language in the CC1 Language Code field. One CLOSED-CAPTION line is added for
                each Language Code you specify. Make sure to specify the languages in the order in
                which they appear in the original source (if the source is embedded format) or the
                order of the caption selectors (if the source is other than embedded). Otherwise,
                languages in the manifest will not match up properly with the output captions. none:
                Include CLOSED-CAPTIONS=
                    NONE line in the manifest. omit: Omit any CLOSED-CAPTIONS
                line from the manifest.

                - **ClientCache** *(string) --* When set to "disabled", sets the
                #EXT-X-ALLOW-CACHE:no tag in the manifest, which prevents clients from saving media
                segments for later replay.

                - **CodecSpecification** *(string) --* Specification to use (RFC-6381 or the default
                RFC-4281) during m3u8 playlist generation.

                - **ConstantIv** *(string) --* For use with encryptionType. This is a 128-bit,
                16-byte hex value represented by a 32-character text string. If ivSource is set to
                "explicit" then this parameter is required and is used as the IV for encryption.

                - **Destination** *(dict) --* A directory or HTTP destination for the HLS segments,
                manifest files, and encryption keys (if enabled).

                  - **DestinationRefId** *(string) --* Placeholder documentation for __string

                - **DirectoryStructure** *(string) --* Place segments in subdirectories.

                - **EncryptionType** *(string) --* Encrypts the segments with the given encryption
                scheme. Exclude this parameter if no encryption is desired.

                - **HlsCdnSettings** *(dict) --* Parameters that control interactions with the CDN.

                  - **HlsAkamaiSettings** *(dict) --* Hls Akamai Settings

                    - **ConnectionRetryInterval** *(integer) --* Number of seconds to wait before
                    retrying connection to the CDN if the connection is lost.

                    - **FilecacheDuration** *(integer) --* Size in seconds of file cache for
                    streaming outputs.

                    - **HttpTransferMode** *(string) --* Specify whether or not to use chunked
                    transfer encoding to Akamai. User should contact Akamai to enable this feature.

                    - **NumRetries** *(integer) --* Number of retry attempts that will be made
                    before the Live Event is put into an error state.

                    - **RestartDelay** *(integer) --* If a streaming output fails, number of seconds
                    to wait until a restart is initiated. A value of 0 means never restart.

                    - **Salt** *(string) --* Salt for authenticated Akamai.

                    - **Token** *(string) --* Token parameter for authenticated akamai. If not
                    specified, _gda_ is used.

                  - **HlsBasicPutSettings** *(dict) --* Hls Basic Put Settings

                    - **ConnectionRetryInterval** *(integer) --* Number of seconds to wait before
                    retrying connection to the CDN if the connection is lost.

                    - **FilecacheDuration** *(integer) --* Size in seconds of file cache for
                    streaming outputs.

                    - **NumRetries** *(integer) --* Number of retry attempts that will be made
                    before the Live Event is put into an error state.

                    - **RestartDelay** *(integer) --* If a streaming output fails, number of seconds
                    to wait until a restart is initiated. A value of 0 means never restart.

                  - **HlsMediaStoreSettings** *(dict) --* Hls Media Store Settings

                    - **ConnectionRetryInterval** *(integer) --* Number of seconds to wait before
                    retrying connection to the CDN if the connection is lost.

                    - **FilecacheDuration** *(integer) --* Size in seconds of file cache for
                    streaming outputs.

                    - **MediaStoreStorageClass** *(string) --* When set to temporal, output files
                    are stored in non-persistent memory for faster reading and writing.

                    - **NumRetries** *(integer) --* Number of retry attempts that will be made
                    before the Live Event is put into an error state.

                    - **RestartDelay** *(integer) --* If a streaming output fails, number of seconds
                    to wait until a restart is initiated. A value of 0 means never restart.

                  - **HlsWebdavSettings** *(dict) --* Hls Webdav Settings

                    - **ConnectionRetryInterval** *(integer) --* Number of seconds to wait before
                    retrying connection to the CDN if the connection is lost.

                    - **FilecacheDuration** *(integer) --* Size in seconds of file cache for
                    streaming outputs.

                    - **HttpTransferMode** *(string) --* Specify whether or not to use chunked
                    transfer encoding to WebDAV.

                    - **NumRetries** *(integer) --* Number of retry attempts that will be made
                    before the Live Event is put into an error state.

                    - **RestartDelay** *(integer) --* If a streaming output fails, number of seconds
                    to wait until a restart is initiated. A value of 0 means never restart.

                - **IFrameOnlyPlaylists** *(string) --* DISABLED: Do not create an I-frame-only
                manifest, but do create the master and media manifests (according to the Output
                Selection field). STANDARD: Create an I-frame-only manifest for each output that
                contains video, as well as the other manifests (according to the Output Selection
                field). The I-frame manifest contains a #EXT-X-I-FRAMES-ONLY tag to indicate it is
                I-frame only, and one or more #EXT-X-BYTERANGE entries identifying the I-frame
                position. For example, #EXT-X-BYTERANGE:160364@1461888"

                - **IndexNSegments** *(integer) --* Applies only if Mode field is LIVE. Specifies
                the maximum number of segments in the media manifest file. After this maximum, older
                segments are removed from the media manifest. This number must be less than or equal
                to the Keep Segments field.

                - **InputLossAction** *(string) --* Parameter that control output group behavior on
                input loss.

                - **IvInManifest** *(string) --* For use with encryptionType. The IV (Initialization
                Vector) is a 128-bit number used in conjunction with the key for encrypting blocks.
                If set to "include", IV is listed in the manifest, otherwise the IV is not in the
                manifest.

                - **IvSource** *(string) --* For use with encryptionType. The IV (Initialization
                Vector) is a 128-bit number used in conjunction with the key for encrypting blocks.
                If this setting is "followsSegmentNumber", it will cause the IV to change every
                segment (to match the segment number). If this is set to "explicit", you must enter
                a constantIv value.

                - **KeepSegments** *(integer) --* Applies only if Mode field is LIVE. Specifies the
                number of media segments (.ts files) to retain in the destination directory.

                - **KeyFormat** *(string) --* The value specifies how the key is represented in the
                resource identified by the URI. If parameter is absent, an implicit value of
                "identity" is used. A reverse DNS string can also be given.

                - **KeyFormatVersions** *(string) --* Either a single positive integer version value
                or a slash delimited list of version values (1/2/3).

                - **KeyProviderSettings** *(dict) --* The key provider settings.

                  - **StaticKeySettings** *(dict) --* Static Key Settings

                    - **KeyProviderServer** *(dict) --* The URL of the license server used for
                    protecting content.

                      - **PasswordParam** *(string) --* key used to extract the password from EC2
                      Parameter store

                      - **Uri** *(string) --* Uniform Resource Identifier - This should be a path to
                      a file accessible to the Live system (eg. a http:// URI) depending on the
                      output type. For example, a RTMP destination should have a uri simliar to:
                      "rtmp://fmsserver/live".

                      - **Username** *(string) --* Documentation update needed

                    - **StaticKeyValue** *(string) --* Static key value as a 32 character
                    hexadecimal string.

                - **ManifestCompression** *(string) --* When set to gzip, compresses HLS playlist.

                - **ManifestDurationFormat** *(string) --* Indicates whether the output manifest
                should use floating point or integer values for segment duration.

                - **MinSegmentLength** *(integer) --* When set, minimumSegmentLength is enforced by
                looking ahead and back within the specified range for a nearby avail and extending
                the segment size if needed.

                - **Mode** *(string) --* If "vod", all segments are indexed and kept permanently in
                the destination and manifest. If "live", only the number segments specified in
                keepSegments and indexNSegments are kept; newer segments replace older segments,
                which may prevent players from rewinding all the way to the beginning of the event.
                VOD mode uses HLS EXT-X-PLAYLIST-TYPE of EVENT while the channel is running,
                converting it to a "VOD" type manifest on completion of the stream.

                - **OutputSelection** *(string) --* MANIFESTSANDSEGMENTS: Generates manifests
                (master manifest, if applicable, and media manifests) for this output group.
                SEGMENTSONLY: Does not generate any manifests for this output group.

                - **ProgramDateTime** *(string) --* Includes or excludes EXT-X-PROGRAM-DATE-TIME tag
                in .m3u8 manifest files. The value is calculated as follows: either the program date
                and time are initialized using the input timecode source, or the time is initialized
                using the input timecode source and the date is initialized using the
                timestampOffset.

                - **ProgramDateTimePeriod** *(integer) --* Period of insertion of
                EXT-X-PROGRAM-DATE-TIME entry, in seconds.

                - **RedundantManifest** *(string) --* ENABLED: The master manifest (.m3u8 file) for
                each pipeline includes information about both pipelines: first its own media files,
                then the media files of the other pipeline. This feature allows playout device that
                support stale manifest detection to switch from one manifest to the other, when the
                current manifest seems to be stale. There are still two destinations and two master
                manifests, but both master manifests reference the media files from both pipelines.
                DISABLED: The master manifest (.m3u8 file) for each pipeline includes information
                about its own pipeline only. For an HLS output group with MediaPackage as the
                destination, the DISABLED behavior is always followed. MediaPackage regenerates the
                manifests it serves to players so a redundant manifest from MediaLive is irrelevant.

                - **SegmentLength** *(integer) --* Length of MPEG-2 Transport Stream segments to
                create (in seconds). Note that segments will end on the next keyframe after this
                number of seconds, so actual segment length may be longer.

                - **SegmentationMode** *(string) --* useInputSegmentation has been deprecated. The
                configured segment size is always used.

                - **SegmentsPerSubdirectory** *(integer) --* Number of segments to write to a
                subdirectory before starting a new one. directoryStructure must be
                subdirectoryPerStream for this setting to have an effect.

                - **StreamInfResolution** *(string) --* Include or exclude RESOLUTION attribute for
                video in EXT-X-STREAM-INF tag of variant manifest.

                - **TimedMetadataId3Frame** *(string) --* Indicates ID3 frame that has the timecode.

                - **TimedMetadataId3Period** *(integer) --* Timed Metadata interval in seconds.

                - **TimestampDeltaMilliseconds** *(integer) --* Provides an extra millisecond delta
                offset to fine tune the timestamps.

                - **TsFileMode** *(string) --* SEGMENTEDFILES: Emit the program as segments -
                multiple .ts media files. SINGLEFILE: Applies only if Mode field is VOD. Emit the
                program as a single .ts media file. The media manifest includes #EXT-X-BYTERANGE
                tags to index segments for playback. A typical use for this value is when sending
                the output to AWS Elemental MediaConvert, which can accept only a single media file.
                Playback while the channel is running is not guaranteed due to HTTP server caching.

              - **MediaPackageGroupSettings** *(dict) --* Media Package Group Settings

                - **Destination** *(dict) --* MediaPackage channel destination.

                  - **DestinationRefId** *(string) --* Placeholder documentation for __string

              - **MsSmoothGroupSettings** *(dict) --* Ms Smooth Group Settings

                - **AcquisitionPointId** *(string) --* The value of the "Acquisition Point Identity"
                element used in each message placed in the sparse track. Only enabled if
                sparseTrackType is not "none".

                - **AudioOnlyTimecodeControl** *(string) --* If set to passthrough for an audio-only
                MS Smooth output, the fragment absolute time will be set to the current timecode.
                This option does not write timecodes to the audio elementary stream.

                - **CertificateMode** *(string) --* If set to verifyAuthenticity, verify the https
                certificate chain to a trusted Certificate Authority (CA). This will cause https
                outputs to self-signed certificates to fail.

                - **ConnectionRetryInterval** *(integer) --* Number of seconds to wait before
                retrying connection to the IIS server if the connection is lost. Content will be
                cached during this time and the cache will be be delivered to the IIS server once
                the connection is re-established.

                - **Destination** *(dict) --* Smooth Streaming publish point on an IIS server.
                Elemental Live acts as a "Push" encoder to IIS.

                  - **DestinationRefId** *(string) --* Placeholder documentation for __string

                - **EventId** *(string) --* MS Smooth event ID to be sent to the IIS server. Should
                only be specified if eventIdMode is set to useConfigured.

                - **EventIdMode** *(string) --* Specifies whether or not to send an event ID to the
                IIS server. If no event ID is sent and the same Live Event is used without changing
                the publishing point, clients might see cached video from the previous run. Options:
                - "useConfigured" - use the value provided in eventId - "useTimestamp" - generate
                and send an event ID based on the current timestamp - "noEventId" - do not send an
                event ID to the IIS server.

                - **EventStopBehavior** *(string) --* When set to sendEos, send EOS signal to IIS
                server when stopping the event

                - **FilecacheDuration** *(integer) --* Size in seconds of file cache for streaming
                outputs.

                - **FragmentLength** *(integer) --* Length of mp4 fragments to generate (in
                seconds). Fragment length must be compatible with GOP size and framerate.

                - **InputLossAction** *(string) --* Parameter that control output group behavior on
                input loss.

                - **NumRetries** *(integer) --* Number of retry attempts.

                - **RestartDelay** *(integer) --* Number of seconds before initiating a restart due
                to output failure, due to exhausting the numRetries on one segment, or exceeding
                filecacheDuration.

                - **SegmentationMode** *(string) --* useInputSegmentation has been deprecated. The
                configured segment size is always used.

                - **SendDelayMs** *(integer) --* Number of milliseconds to delay the output from the
                second pipeline.

                - **SparseTrackType** *(string) --* If set to scte35, use incoming SCTE-35 messages
                to generate a sparse track in this group of MS-Smooth outputs.

                - **StreamManifestBehavior** *(string) --* When set to send, send stream manifest so
                publishing point doesn't start until all streams start.

                - **TimestampOffset** *(string) --* Timestamp offset for the event. Only used if
                timestampOffsetMode is set to useConfiguredOffset.

                - **TimestampOffsetMode** *(string) --* Type of timestamp date offset to use. -
                useEventStartDate: Use the date the event was started as the offset -
                useConfiguredOffset: Use an explicitly configured date as the offset

              - **MultiplexGroupSettings** *(dict) --* Multiplex Group Settings

              - **RtmpGroupSettings** *(dict) --* Rtmp Group Settings

                - **AuthenticationScheme** *(string) --* Authentication scheme to use when
                connecting with CDN

                - **CacheFullBehavior** *(string) --* Controls behavior when content cache fills up.
                If remote origin server stalls the RTMP connection and does not accept content fast
                enough the 'Media Cache' will fill up. When the cache reaches the duration specified
                by cacheLength the cache will stop accepting new content. If set to
                disconnectImmediately, the RTMP output will force a disconnect. Clear the media
                cache, and reconnect after restartDelay seconds. If set to waitForServer, the RTMP
                output will wait up to 5 minutes to allow the origin server to begin accepting data
                again.

                - **CacheLength** *(integer) --* Cache length, in seconds, is used to calculate
                buffer size.

                - **CaptionData** *(string) --* Controls the types of data that passes to
                onCaptionInfo outputs. If set to 'all' then 608 and 708 carried DTVCC data will be
                passed. If set to 'field1AndField2608' then DTVCC data will be stripped out, but 608
                data from both fields will be passed. If set to 'field1608' then only the data
                carried in 608 from field 1 video will be passed.

                - **InputLossAction** *(string) --* Controls the behavior of this RTMP group if
                input becomes unavailable. - emitOutput: Emit a slate until input returns. -
                pauseOutput: Stop transmitting data until input returns. This does not close the
                underlying RTMP connection.

                - **RestartDelay** *(integer) --* If a streaming output fails, number of seconds to
                wait until a restart is initiated. A value of 0 means never restart.

              - **UdpGroupSettings** *(dict) --* Udp Group Settings

                - **InputLossAction** *(string) --* Specifies behavior of last resort when input
                video is lost, and no more backup inputs are available. When dropTs is selected the
                entire transport stream will stop being emitted. When dropProgram is selected the
                program can be dropped from the transport stream (and replaced with null packets to
                meet the TS bitrate requirement). Or, when emitProgram is chosen the transport
                stream will continue to be produced normally with repeat frames, black frames, or
                slate frames substituted for the absent input video.

                - **TimedMetadataId3Frame** *(string) --* Indicates ID3 frame that has the timecode.

                - **TimedMetadataId3Period** *(integer) --* Timed Metadata interval in seconds.

            - **Outputs** *(list) --* Placeholder documentation for __listOfOutput

              - *(dict) --* Output settings. There can be multiple outputs within a group.

                - **AudioDescriptionNames** *(list) --* The names of the AudioDescriptions used as
                audio sources for this output.

                  - *(string) --* Placeholder documentation for __string

                - **CaptionDescriptionNames** *(list) --* The names of the CaptionDescriptions used
                as caption sources for this output.

                  - *(string) --* Placeholder documentation for __string

                - **OutputName** *(string) --* The name used to identify an output.

                - **OutputSettings** *(dict) --* Output type-specific settings.

                  - **ArchiveOutputSettings** *(dict) --* Archive Output Settings

                    - **ContainerSettings** *(dict) --* Settings specific to the container type of
                    the file.

                      - **M2tsSettings** *(dict) --* M2ts Settings

                        - **AbsentInputAudioBehavior** *(string) --* When set to drop, output audio
                        streams will be removed from the program if the selected input audio stream
                        is removed from the input. This allows the output audio configuration to
                        dynamically change based on input configuration. If this is set to
                        encodeSilence, all output audio streams will output encoded silence when not
                        connected to an active input stream.

                        - **Arib** *(string) --* When set to enabled, uses ARIB-compliant field
                        muxing and removes video descriptor.

                        - **AribCaptionsPid** *(string) --* Packet Identifier (PID) for ARIB
                        Captions in the transport stream. Can be entered as a decimal or hexadecimal
                        value. Valid values are 32 (or 0x20)..8182 (or 0x1ff6).

                        - **AribCaptionsPidControl** *(string) --* If set to auto, pid number used
                        for ARIB Captions will be auto-selected from unused pids. If set to
                        useConfigured, ARIB Captions will be on the configured pid number.

                        - **AudioBufferModel** *(string) --* When set to dvb, uses DVB buffer model
                        for Dolby Digital audio. When set to atsc, the ATSC model is used.

                        - **AudioFramesPerPes** *(integer) --* The number of audio frames to insert
                        for each PES packet.

                        - **AudioPids** *(string) --* Packet Identifier (PID) of the elementary
                        audio stream(s) in the transport stream. Multiple values are accepted, and
                        can be entered in ranges and/or by comma separation. Can be entered as
                        decimal or hexadecimal values. Each PID specified must be in the range of 32
                        (or 0x20)..8182 (or 0x1ff6).

                        - **AudioStreamType** *(string) --* When set to atsc, uses stream type =
                        0x81 for AC3 and stream type =
                             0x87 for EAC3. When set to dvb, uses stream
                        type = 0x06.

                        - **Bitrate** *(integer) --* The output bitrate of the transport stream in
                        bits per second. Setting to 0 lets the muxer automatically determine the
                        appropriate bitrate.

                        - **BufferModel** *(string) --* If set to multiplex, use multiplex buffer
                        model for accurate interleaving. Setting to bufferModel to none can lead to
                        lower latency, but low-memory devices may not be able to play back the
                        stream without interruptions.

                        - **CcDescriptor** *(string) --* When set to enabled, generates
                        captionServiceDescriptor in PMT.

                        - **DvbNitSettings** *(dict) --* Inserts DVB Network Information Table (NIT)
                        at the specified table repetition interval.

                          - **NetworkId** *(integer) --* The numeric value placed in the Network
                          Information Table (NIT).

                          - **NetworkName** *(string) --* The network name text placed in the
                          networkNameDescriptor inside the Network Information Table. Maximum length
                          is 256 characters.

                          - **RepInterval** *(integer) --* The number of milliseconds between
                          instances of this table in the output transport stream.

                        - **DvbSdtSettings** *(dict) --* Inserts DVB Service Description Table (SDT)
                        at the specified table repetition interval.

                          - **OutputSdt** *(string) --* Selects method of inserting SDT information
                          into output stream. The sdtFollow setting copies SDT information from
                          input stream to output stream. The sdtFollowIfPresent setting copies SDT
                          information from input stream to output stream if SDT information is
                          present in the input, otherwise it will fall back on the user-defined
                          values. The sdtManual setting means user will enter the SDT information.
                          The sdtNone setting means output stream will not contain SDT information.

                          - **RepInterval** *(integer) --* The number of milliseconds between
                          instances of this table in the output transport stream.

                          - **ServiceName** *(string) --* The service name placed in the
                          serviceDescriptor in the Service Description Table. Maximum length is 256
                          characters.

                          - **ServiceProviderName** *(string) --* The service provider name placed
                          in the serviceDescriptor in the Service Description Table. Maximum length
                          is 256 characters.

                        - **DvbSubPids** *(string) --* Packet Identifier (PID) for input source DVB
                        Subtitle data to this output. Multiple values are accepted, and can be
                        entered in ranges and/or by comma separation. Can be entered as decimal or
                        hexadecimal values. Each PID specified must be in the range of 32 (or
                        0x20)..8182 (or 0x1ff6).

                        - **DvbTdtSettings** *(dict) --* Inserts DVB Time and Date Table (TDT) at
                        the specified table repetition interval.

                          - **RepInterval** *(integer) --* The number of milliseconds between
                          instances of this table in the output transport stream.

                        - **DvbTeletextPid** *(string) --* Packet Identifier (PID) for input source
                        DVB Teletext data to this output. Can be entered as a decimal or hexadecimal
                        value. Valid values are 32 (or 0x20)..8182 (or 0x1ff6).

                        - **Ebif** *(string) --* If set to passthrough, passes any EBIF data from
                        the input source to this output.

                        - **EbpAudioInterval** *(string) --* When videoAndFixedIntervals is
                        selected, audio EBP markers will be added to partitions 3 and 4. The
                        interval between these additional markers will be fixed, and will be
                        slightly shorter than the video EBP marker interval. Only available when EBP
                        Cablelabs segmentation markers are selected. Partitions 1 and 2 will always
                        follow the video interval.

                        - **EbpLookaheadMs** *(integer) --* When set, enforces that Encoder Boundary
                        Points do not come within the specified time interval of each other by
                        looking ahead at input video. If another EBP is going to come in within the
                        specified time interval, the current EBP is not emitted, and the segment is
                        "stretched" to the next marker. The lookahead value does not add latency to
                        the system. The Live Event must be configured elsewhere to create sufficient
                        latency to make the lookahead accurate.

                        - **EbpPlacement** *(string) --* Controls placement of EBP on Audio PIDs. If
                        set to videoAndAudioPids, EBP markers will be placed on the video PID and
                        all audio PIDs. If set to videoPid, EBP markers will be placed on only the
                        video PID.

                        - **EcmPid** *(string) --* This field is unused and deprecated.

                        - **EsRateInPes** *(string) --* Include or exclude the ES Rate field in the
                        PES header.

                        - **EtvPlatformPid** *(string) --* Packet Identifier (PID) for input source
                        ETV Platform data to this output. Can be entered as a decimal or hexadecimal
                        value. Valid values are 32 (or 0x20)..8182 (or 0x1ff6).

                        - **EtvSignalPid** *(string) --* Packet Identifier (PID) for input source
                        ETV Signal data to this output. Can be entered as a decimal or hexadecimal
                        value. Valid values are 32 (or 0x20)..8182 (or 0x1ff6).

                        - **FragmentTime** *(float) --* The length in seconds of each fragment. Only
                        used with EBP markers.

                        - **Klv** *(string) --* If set to passthrough, passes any KLV data from the
                        input source to this output.

                        - **KlvDataPids** *(string) --* Packet Identifier (PID) for input source KLV
                        data to this output. Multiple values are accepted, and can be entered in
                        ranges and/or by comma separation. Can be entered as decimal or hexadecimal
                        values. Each PID specified must be in the range of 32 (or 0x20)..8182 (or
                        0x1ff6).

                        - **NielsenId3Behavior** *(string) --* If set to passthrough, Nielsen
                        inaudible tones for media tracking will be detected in the input audio and
                        an equivalent ID3 tag will be inserted in the output.

                        - **NullPacketBitrate** *(float) --* Value in bits per second of extra null
                        packets to insert into the transport stream. This can be used if a
                        downstream encryption system requires periodic null packets.

                        - **PatInterval** *(integer) --* The number of milliseconds between
                        instances of this table in the output transport stream. Valid values are 0,
                        10..1000.

                        - **PcrControl** *(string) --* When set to pcrEveryPesPacket, a Program
                        Clock Reference value is inserted for every Packetized Elementary Stream
                        (PES) header. This parameter is effective only when the PCR PID is the same
                        as the video or audio elementary stream.

                        - **PcrPeriod** *(integer) --* Maximum time in milliseconds between Program
                        Clock Reference (PCRs) inserted into the transport stream.

                        - **PcrPid** *(string) --* Packet Identifier (PID) of the Program Clock
                        Reference (PCR) in the transport stream. When no value is given, the encoder
                        will assign the same value as the Video PID. Can be entered as a decimal or
                        hexadecimal value. Valid values are 32 (or 0x20)..8182 (or 0x1ff6).

                        - **PmtInterval** *(integer) --* The number of milliseconds between
                        instances of this table in the output transport stream. Valid values are 0,
                        10..1000.

                        - **PmtPid** *(string) --* Packet Identifier (PID) for the Program Map Table
                        (PMT) in the transport stream. Can be entered as a decimal or hexadecimal
                        value. Valid values are 32 (or 0x20)..8182 (or 0x1ff6).

                        - **ProgramNum** *(integer) --* The value of the program number field in the
                        Program Map Table.

                        - **RateMode** *(string) --* When vbr, does not insert null packets into
                        transport stream to fill specified bitrate. The bitrate setting acts as the
                        maximum bitrate when vbr is set.

                        - **Scte27Pids** *(string) --* Packet Identifier (PID) for input source
                        SCTE-27 data to this output. Multiple values are accepted, and can be
                        entered in ranges and/or by comma separation. Can be entered as decimal or
                        hexadecimal values. Each PID specified must be in the range of 32 (or
                        0x20)..8182 (or 0x1ff6).

                        - **Scte35Control** *(string) --* Optionally pass SCTE-35 signals from the
                        input source to this output.

                        - **Scte35Pid** *(string) --* Packet Identifier (PID) of the SCTE-35 stream
                        in the transport stream. Can be entered as a decimal or hexadecimal value.
                        Valid values are 32 (or 0x20)..8182 (or 0x1ff6).

                        - **SegmentationMarkers** *(string) --* Inserts segmentation markers at each
                        segmentationTime period. raiSegstart sets the Random Access Indicator bit in
                        the adaptation field. raiAdapt sets the RAI bit and adds the current
                        timecode in the private data bytes. psiSegstart inserts PAT and PMT tables
                        at the start of segments. ebp adds Encoder Boundary Point information to the
                        adaptation field as per OpenCable specification OC-SP-EBP-I01-130118.
                        ebpLegacy adds Encoder Boundary Point information to the adaptation field
                        using a legacy proprietary format.

                        - **SegmentationStyle** *(string) --* The segmentation style parameter
                        controls how segmentation markers are inserted into the transport stream.
                        With avails, it is possible that segments may be truncated, which can
                        influence where future segmentation markers are inserted. When a
                        segmentation style of "resetCadence" is selected and a segment is truncated
                        due to an avail, we will reset the segmentation cadence. This means the
                        subsequent segment will have a duration of $segmentationTime seconds. When a
                        segmentation style of "maintainCadence" is selected and a segment is
                        truncated due to an avail, we will not reset the segmentation cadence. This
                        means the subsequent segment will likely be truncated as well. However, all
                        segments after that will have a duration of $segmentationTime seconds. Note
                        that EBP lookahead is a slight exception to this rule.

                        - **SegmentationTime** *(float) --* The length in seconds of each segment.
                        Required unless markers is set to None_.

                        - **TimedMetadataBehavior** *(string) --* When set to passthrough, timed
                        metadata will be passed through from input to output.

                        - **TimedMetadataPid** *(string) --* Packet Identifier (PID) of the timed
                        metadata stream in the transport stream. Can be entered as a decimal or
                        hexadecimal value. Valid values are 32 (or 0x20)..8182 (or 0x1ff6).

                        - **TransportStreamId** *(integer) --* The value of the transport stream ID
                        field in the Program Map Table.

                        - **VideoPid** *(string) --* Packet Identifier (PID) of the elementary video
                        stream in the transport stream. Can be entered as a decimal or hexadecimal
                        value. Valid values are 32 (or 0x20)..8182 (or 0x1ff6).

                    - **Extension** *(string) --* Output file extension. If excluded, this will be
                    auto-selected from the container type.

                    - **NameModifier** *(string) --* String concatenated to the end of the
                    destination filename. Required for multiple outputs of the same type.

                  - **FrameCaptureOutputSettings** *(dict) --* Frame Capture Output Settings

                    - **NameModifier** *(string) --* Required if the output group contains more than
                    one output. This modifier forms part of the output file name.

                  - **HlsOutputSettings** *(dict) --* Hls Output Settings

                    - **HlsSettings** *(dict) --* Settings regarding the underlying stream. These
                    settings are different for audio-only outputs.

                      - **AudioOnlyHlsSettings** *(dict) --* Audio Only Hls Settings

                        - **AudioGroupId** *(string) --* Specifies the group to which the audio
                        Rendition belongs.

                        - **AudioOnlyImage** *(dict) --* Optional. Specifies the .jpg or .png image
                        to use as the cover art for an audio-only output. We recommend a low
                        bit-size file because the image increases the output audio bandwidth. The
                        image is attached to the audio as an ID3 tag, frame type APIC, picture type
                        0x10, as per the "ID3 tag version 2.4.0 - Native Frames" standard.

                          - **PasswordParam** *(string) --* key used to extract the password from
                          EC2 Parameter store

                          - **Uri** *(string) --* Uniform Resource Identifier - This should be a
                          path to a file accessible to the Live system (eg. a http:// URI) depending
                          on the output type. For example, a RTMP destination should have a uri
                          simliar to: "rtmp://fmsserver/live".

                          - **Username** *(string) --* Documentation update needed

                        - **AudioTrackType** *(string) --* Four types of audio-only tracks are
                        supported: Audio-Only Variant Stream The client can play back this
                        audio-only stream instead of video in low-bandwidth scenarios. Represented
                        as an EXT-X-STREAM-INF in the HLS manifest. Alternate Audio, Auto Select,
                        Default Alternate rendition that the client should try to play back by
                        default. Represented as an EXT-X-MEDIA in the HLS manifest with DEFAULT=YES,
                        AUTOSELECT=
                            YES Alternate Audio, Auto Select, Not Default Alternate rendition
                        that the client may try to play back by default. Represented as an
                        EXT-X-MEDIA in the HLS manifest with DEFAULT=
                            NO, AUTOSELECT=YES Alternate
                        Audio, not Auto Select Alternate rendition that the client will not try to
                        play back by default. Represented as an EXT-X-MEDIA in the HLS manifest with
                        DEFAULT=NO, AUTOSELECT=NO

                      - **StandardHlsSettings** *(dict) --* Standard Hls Settings

                        - **AudioRenditionSets** *(string) --* List all the audio groups that are
                        used with the video output stream. Input all the audio GROUP-IDs that are
                        associated to the video, separate by ','.

                        - **M3u8Settings** *(dict) --* Settings information for the .m3u8 container

                          - **AudioFramesPerPes** *(integer) --* The number of audio frames to
                          insert for each PES packet.

                          - **AudioPids** *(string) --* Packet Identifier (PID) of the elementary
                          audio stream(s) in the transport stream. Multiple values are accepted, and
                          can be entered in ranges and/or by comma separation. Can be entered as
                          decimal or hexadecimal values.

                          - **EcmPid** *(string) --* This parameter is unused and deprecated.

                          - **NielsenId3Behavior** *(string) --* If set to passthrough, Nielsen
                          inaudible tones for media tracking will be detected in the input audio and
                          an equivalent ID3 tag will be inserted in the output.

                          - **PatInterval** *(integer) --* The number of milliseconds between
                          instances of this table in the output transport stream. A value of \\"0\\"
                          writes out the PMT once per segment file.

                          - **PcrControl** *(string) --* When set to pcrEveryPesPacket, a Program
                          Clock Reference value is inserted for every Packetized Elementary Stream
                          (PES) header. This parameter is effective only when the PCR PID is the
                          same as the video or audio elementary stream.

                          - **PcrPeriod** *(integer) --* Maximum time in milliseconds between
                          Program Clock References (PCRs) inserted into the transport stream.

                          - **PcrPid** *(string) --* Packet Identifier (PID) of the Program Clock
                          Reference (PCR) in the transport stream. When no value is given, the
                          encoder will assign the same value as the Video PID. Can be entered as a
                          decimal or hexadecimal value.

                          - **PmtInterval** *(integer) --* The number of milliseconds between
                          instances of this table in the output transport stream. A value of \\"0\\"
                          writes out the PMT once per segment file.

                          - **PmtPid** *(string) --* Packet Identifier (PID) for the Program Map
                          Table (PMT) in the transport stream. Can be entered as a decimal or
                          hexadecimal value.

                          - **ProgramNum** *(integer) --* The value of the program number field in
                          the Program Map Table.

                          - **Scte35Behavior** *(string) --* If set to passthrough, passes any
                          SCTE-35 signals from the input source to this output.

                          - **Scte35Pid** *(string) --* Packet Identifier (PID) of the SCTE-35
                          stream in the transport stream. Can be entered as a decimal or hexadecimal
                          value.

                          - **TimedMetadataBehavior** *(string) --* When set to passthrough, timed
                          metadata is passed through from input to output.

                          - **TimedMetadataPid** *(string) --* Packet Identifier (PID) of the timed
                          metadata stream in the transport stream. Can be entered as a decimal or
                          hexadecimal value. Valid values are 32 (or 0x20)..8182 (or 0x1ff6).

                          - **TransportStreamId** *(integer) --* The value of the transport stream
                          ID field in the Program Map Table.

                          - **VideoPid** *(string) --* Packet Identifier (PID) of the elementary
                          video stream in the transport stream. Can be entered as a decimal or
                          hexadecimal value.

                    - **NameModifier** *(string) --* String concatenated to the end of the
                    destination filename. Accepts \\"Format
                    Identifiers\\":#formatIdentifierParameters.

                    - **SegmentModifier** *(string) --* String concatenated to end of segment
                    filenames.

                  - **MediaPackageOutputSettings** *(dict) --* Media Package Output Settings

                  - **MsSmoothOutputSettings** *(dict) --* Ms Smooth Output Settings

                    - **H265PackagingType** *(string) --* Only applicable when this output is
                    referencing an H.265 video description. Specifies whether MP4 segments should be
                    packaged as HEV1 or HVC1.

                    - **NameModifier** *(string) --* String concatenated to the end of the
                    destination filename. Required for multiple outputs of the same type.

                  - **MultiplexOutputSettings** *(dict) --* Multiplex Output Settings

                    - **Destination** *(dict) --* Destination is a Multiplex.

                      - **DestinationRefId** *(string) --* Placeholder documentation for __string

                  - **RtmpOutputSettings** *(dict) --* Rtmp Output Settings

                    - **CertificateMode** *(string) --* If set to verifyAuthenticity, verify the tls
                    certificate chain to a trusted Certificate Authority (CA). This will cause rtmps
                    outputs with self-signed certificates to fail.

                    - **ConnectionRetryInterval** *(integer) --* Number of seconds to wait before
                    retrying a connection to the Flash Media server if the connection is lost.

                    - **Destination** *(dict) --* The RTMP endpoint excluding the stream name (eg.
                    rtmp://host/appname). For connection to Akamai, a username and password must be
                    supplied. URI fields accept format identifiers.

                      - **DestinationRefId** *(string) --* Placeholder documentation for __string

                    - **NumRetries** *(integer) --* Number of retry attempts.

                  - **UdpOutputSettings** *(dict) --* Udp Output Settings

                    - **BufferMsec** *(integer) --* UDP output buffering in milliseconds. Larger
                    values increase latency through the transcoder but simultaneously assist the
                    transcoder in maintaining a constant, low-jitter UDP/RTP output while
                    accommodating clock recovery, input switching, input disruptions, picture
                    reordering, etc.

                    - **ContainerSettings** *(dict) --* Udp Container Settings

                      - **M2tsSettings** *(dict) --* M2ts Settings

                        - **AbsentInputAudioBehavior** *(string) --* When set to drop, output audio
                        streams will be removed from the program if the selected input audio stream
                        is removed from the input. This allows the output audio configuration to
                        dynamically change based on input configuration. If this is set to
                        encodeSilence, all output audio streams will output encoded silence when not
                        connected to an active input stream.

                        - **Arib** *(string) --* When set to enabled, uses ARIB-compliant field
                        muxing and removes video descriptor.

                        - **AribCaptionsPid** *(string) --* Packet Identifier (PID) for ARIB
                        Captions in the transport stream. Can be entered as a decimal or hexadecimal
                        value. Valid values are 32 (or 0x20)..8182 (or 0x1ff6).

                        - **AribCaptionsPidControl** *(string) --* If set to auto, pid number used
                        for ARIB Captions will be auto-selected from unused pids. If set to
                        useConfigured, ARIB Captions will be on the configured pid number.

                        - **AudioBufferModel** *(string) --* When set to dvb, uses DVB buffer model
                        for Dolby Digital audio. When set to atsc, the ATSC model is used.

                        - **AudioFramesPerPes** *(integer) --* The number of audio frames to insert
                        for each PES packet.

                        - **AudioPids** *(string) --* Packet Identifier (PID) of the elementary
                        audio stream(s) in the transport stream. Multiple values are accepted, and
                        can be entered in ranges and/or by comma separation. Can be entered as
                        decimal or hexadecimal values. Each PID specified must be in the range of 32
                        (or 0x20)..8182 (or 0x1ff6).

                        - **AudioStreamType** *(string) --* When set to atsc, uses stream type =
                        0x81 for AC3 and stream type =
                             0x87 for EAC3. When set to dvb, uses stream
                        type = 0x06.

                        - **Bitrate** *(integer) --* The output bitrate of the transport stream in
                        bits per second. Setting to 0 lets the muxer automatically determine the
                        appropriate bitrate.

                        - **BufferModel** *(string) --* If set to multiplex, use multiplex buffer
                        model for accurate interleaving. Setting to bufferModel to none can lead to
                        lower latency, but low-memory devices may not be able to play back the
                        stream without interruptions.

                        - **CcDescriptor** *(string) --* When set to enabled, generates
                        captionServiceDescriptor in PMT.

                        - **DvbNitSettings** *(dict) --* Inserts DVB Network Information Table (NIT)
                        at the specified table repetition interval.

                          - **NetworkId** *(integer) --* The numeric value placed in the Network
                          Information Table (NIT).

                          - **NetworkName** *(string) --* The network name text placed in the
                          networkNameDescriptor inside the Network Information Table. Maximum length
                          is 256 characters.

                          - **RepInterval** *(integer) --* The number of milliseconds between
                          instances of this table in the output transport stream.

                        - **DvbSdtSettings** *(dict) --* Inserts DVB Service Description Table (SDT)
                        at the specified table repetition interval.

                          - **OutputSdt** *(string) --* Selects method of inserting SDT information
                          into output stream. The sdtFollow setting copies SDT information from
                          input stream to output stream. The sdtFollowIfPresent setting copies SDT
                          information from input stream to output stream if SDT information is
                          present in the input, otherwise it will fall back on the user-defined
                          values. The sdtManual setting means user will enter the SDT information.
                          The sdtNone setting means output stream will not contain SDT information.

                          - **RepInterval** *(integer) --* The number of milliseconds between
                          instances of this table in the output transport stream.

                          - **ServiceName** *(string) --* The service name placed in the
                          serviceDescriptor in the Service Description Table. Maximum length is 256
                          characters.

                          - **ServiceProviderName** *(string) --* The service provider name placed
                          in the serviceDescriptor in the Service Description Table. Maximum length
                          is 256 characters.

                        - **DvbSubPids** *(string) --* Packet Identifier (PID) for input source DVB
                        Subtitle data to this output. Multiple values are accepted, and can be
                        entered in ranges and/or by comma separation. Can be entered as decimal or
                        hexadecimal values. Each PID specified must be in the range of 32 (or
                        0x20)..8182 (or 0x1ff6).

                        - **DvbTdtSettings** *(dict) --* Inserts DVB Time and Date Table (TDT) at
                        the specified table repetition interval.

                          - **RepInterval** *(integer) --* The number of milliseconds between
                          instances of this table in the output transport stream.

                        - **DvbTeletextPid** *(string) --* Packet Identifier (PID) for input source
                        DVB Teletext data to this output. Can be entered as a decimal or hexadecimal
                        value. Valid values are 32 (or 0x20)..8182 (or 0x1ff6).

                        - **Ebif** *(string) --* If set to passthrough, passes any EBIF data from
                        the input source to this output.

                        - **EbpAudioInterval** *(string) --* When videoAndFixedIntervals is
                        selected, audio EBP markers will be added to partitions 3 and 4. The
                        interval between these additional markers will be fixed, and will be
                        slightly shorter than the video EBP marker interval. Only available when EBP
                        Cablelabs segmentation markers are selected. Partitions 1 and 2 will always
                        follow the video interval.

                        - **EbpLookaheadMs** *(integer) --* When set, enforces that Encoder Boundary
                        Points do not come within the specified time interval of each other by
                        looking ahead at input video. If another EBP is going to come in within the
                        specified time interval, the current EBP is not emitted, and the segment is
                        "stretched" to the next marker. The lookahead value does not add latency to
                        the system. The Live Event must be configured elsewhere to create sufficient
                        latency to make the lookahead accurate.

                        - **EbpPlacement** *(string) --* Controls placement of EBP on Audio PIDs. If
                        set to videoAndAudioPids, EBP markers will be placed on the video PID and
                        all audio PIDs. If set to videoPid, EBP markers will be placed on only the
                        video PID.

                        - **EcmPid** *(string) --* This field is unused and deprecated.

                        - **EsRateInPes** *(string) --* Include or exclude the ES Rate field in the
                        PES header.

                        - **EtvPlatformPid** *(string) --* Packet Identifier (PID) for input source
                        ETV Platform data to this output. Can be entered as a decimal or hexadecimal
                        value. Valid values are 32 (or 0x20)..8182 (or 0x1ff6).

                        - **EtvSignalPid** *(string) --* Packet Identifier (PID) for input source
                        ETV Signal data to this output. Can be entered as a decimal or hexadecimal
                        value. Valid values are 32 (or 0x20)..8182 (or 0x1ff6).

                        - **FragmentTime** *(float) --* The length in seconds of each fragment. Only
                        used with EBP markers.

                        - **Klv** *(string) --* If set to passthrough, passes any KLV data from the
                        input source to this output.

                        - **KlvDataPids** *(string) --* Packet Identifier (PID) for input source KLV
                        data to this output. Multiple values are accepted, and can be entered in
                        ranges and/or by comma separation. Can be entered as decimal or hexadecimal
                        values. Each PID specified must be in the range of 32 (or 0x20)..8182 (or
                        0x1ff6).

                        - **NielsenId3Behavior** *(string) --* If set to passthrough, Nielsen
                        inaudible tones for media tracking will be detected in the input audio and
                        an equivalent ID3 tag will be inserted in the output.

                        - **NullPacketBitrate** *(float) --* Value in bits per second of extra null
                        packets to insert into the transport stream. This can be used if a
                        downstream encryption system requires periodic null packets.

                        - **PatInterval** *(integer) --* The number of milliseconds between
                        instances of this table in the output transport stream. Valid values are 0,
                        10..1000.

                        - **PcrControl** *(string) --* When set to pcrEveryPesPacket, a Program
                        Clock Reference value is inserted for every Packetized Elementary Stream
                        (PES) header. This parameter is effective only when the PCR PID is the same
                        as the video or audio elementary stream.

                        - **PcrPeriod** *(integer) --* Maximum time in milliseconds between Program
                        Clock Reference (PCRs) inserted into the transport stream.

                        - **PcrPid** *(string) --* Packet Identifier (PID) of the Program Clock
                        Reference (PCR) in the transport stream. When no value is given, the encoder
                        will assign the same value as the Video PID. Can be entered as a decimal or
                        hexadecimal value. Valid values are 32 (or 0x20)..8182 (or 0x1ff6).

                        - **PmtInterval** *(integer) --* The number of milliseconds between
                        instances of this table in the output transport stream. Valid values are 0,
                        10..1000.

                        - **PmtPid** *(string) --* Packet Identifier (PID) for the Program Map Table
                        (PMT) in the transport stream. Can be entered as a decimal or hexadecimal
                        value. Valid values are 32 (or 0x20)..8182 (or 0x1ff6).

                        - **ProgramNum** *(integer) --* The value of the program number field in the
                        Program Map Table.

                        - **RateMode** *(string) --* When vbr, does not insert null packets into
                        transport stream to fill specified bitrate. The bitrate setting acts as the
                        maximum bitrate when vbr is set.

                        - **Scte27Pids** *(string) --* Packet Identifier (PID) for input source
                        SCTE-27 data to this output. Multiple values are accepted, and can be
                        entered in ranges and/or by comma separation. Can be entered as decimal or
                        hexadecimal values. Each PID specified must be in the range of 32 (or
                        0x20)..8182 (or 0x1ff6).

                        - **Scte35Control** *(string) --* Optionally pass SCTE-35 signals from the
                        input source to this output.

                        - **Scte35Pid** *(string) --* Packet Identifier (PID) of the SCTE-35 stream
                        in the transport stream. Can be entered as a decimal or hexadecimal value.
                        Valid values are 32 (or 0x20)..8182 (or 0x1ff6).

                        - **SegmentationMarkers** *(string) --* Inserts segmentation markers at each
                        segmentationTime period. raiSegstart sets the Random Access Indicator bit in
                        the adaptation field. raiAdapt sets the RAI bit and adds the current
                        timecode in the private data bytes. psiSegstart inserts PAT and PMT tables
                        at the start of segments. ebp adds Encoder Boundary Point information to the
                        adaptation field as per OpenCable specification OC-SP-EBP-I01-130118.
                        ebpLegacy adds Encoder Boundary Point information to the adaptation field
                        using a legacy proprietary format.

                        - **SegmentationStyle** *(string) --* The segmentation style parameter
                        controls how segmentation markers are inserted into the transport stream.
                        With avails, it is possible that segments may be truncated, which can
                        influence where future segmentation markers are inserted. When a
                        segmentation style of "resetCadence" is selected and a segment is truncated
                        due to an avail, we will reset the segmentation cadence. This means the
                        subsequent segment will have a duration of $segmentationTime seconds. When a
                        segmentation style of "maintainCadence" is selected and a segment is
                        truncated due to an avail, we will not reset the segmentation cadence. This
                        means the subsequent segment will likely be truncated as well. However, all
                        segments after that will have a duration of $segmentationTime seconds. Note
                        that EBP lookahead is a slight exception to this rule.

                        - **SegmentationTime** *(float) --* The length in seconds of each segment.
                        Required unless markers is set to None_.

                        - **TimedMetadataBehavior** *(string) --* When set to passthrough, timed
                        metadata will be passed through from input to output.

                        - **TimedMetadataPid** *(string) --* Packet Identifier (PID) of the timed
                        metadata stream in the transport stream. Can be entered as a decimal or
                        hexadecimal value. Valid values are 32 (or 0x20)..8182 (or 0x1ff6).

                        - **TransportStreamId** *(integer) --* The value of the transport stream ID
                        field in the Program Map Table.

                        - **VideoPid** *(string) --* Packet Identifier (PID) of the elementary video
                        stream in the transport stream. Can be entered as a decimal or hexadecimal
                        value. Valid values are 32 (or 0x20)..8182 (or 0x1ff6).

                    - **Destination** *(dict) --* Destination address and port number for RTP or UDP
                    packets. Can be unicast or multicast RTP or UDP (eg. rtp://239.10.10.10:5001 or
                    udp://10.100.100.100:5002).

                      - **DestinationRefId** *(string) --* Placeholder documentation for __string

                    - **FecOutputSettings** *(dict) --* Settings for enabling and adjusting Forward
                    Error Correction on UDP outputs.

                      - **ColumnDepth** *(integer) --* Parameter D from SMPTE 2022-1. The height of
                      the FEC protection matrix. The number of transport stream packets per column
                      error correction packet. Must be between 4 and 20, inclusive.

                      - **IncludeFec** *(string) --* Enables column only or column and row based FEC

                      - **RowLength** *(integer) --* Parameter L from SMPTE 2022-1. The width of the
                      FEC protection matrix. Must be between 1 and 20, inclusive. If only Column FEC
                      is used, then larger values increase robustness. If Row FEC is used, then this
                      is the number of transport stream packets per row error correction packet, and
                      the value must be between 4 and 20, inclusive, if includeFec is columnAndRow.
                      If includeFec is column, this value must be 1 to 20, inclusive.

                - **VideoDescriptionName** *(string) --* The name of the VideoDescription used as
                the source for this output.

        - **TimecodeConfig** *(dict) --* Contains settings used to acquire and adjust timecode
        information from inputs.

          - **Source** *(string) --* Identifies the source for the timecode that will be associated
          with the events outputs. -Embedded (embedded): Initialize the output timecode with
          timecode from the the source. If no embedded timecode is detected in the source, the
          system falls back to using "Start at 0" (zerobased). -System Clock (systemclock): Use the
          UTC time. -Start at 0 (zerobased): The time of the first frame of the event will be
          00:00:00:00.

          - **SyncThreshold** *(integer) --* Threshold in frames beyond which output timecode is
          resynchronized to the input timecode. Discrepancies below this threshold are permitted to
          avoid unnecessary discontinuities in the output timecode. No timecode sync when this is
          not specified.

        - **VideoDescriptions** *(list) --* Placeholder documentation for __listOfVideoDescription

          - *(dict) --* Video settings for this stream.

            - **CodecSettings** *(dict) --* Video codec settings.

              - **FrameCaptureSettings** *(dict) --* Frame Capture Settings

                - **CaptureInterval** *(integer) --* The frequency at which to capture frames for
                inclusion in the output. May be specified in either seconds or milliseconds, as
                specified by captureIntervalUnits.

              - **H264Settings** *(dict) --* H264 Settings

                - **AdaptiveQuantization** *(string) --* Adaptive quantization. Allows intra-frame
                quantizers to vary to improve visual quality.

                - **AfdSignaling** *(string) --* Indicates that AFD values will be written into the
                output stream. If afdSignaling is "auto", the system will try to preserve the input
                AFD value (in cases where multiple AFD values are valid). If set to "fixed", the AFD
                value will be the value configured in the fixedAfd parameter.

                - **Bitrate** *(integer) --* Average bitrate in bits/second. Required when the rate
                control mode is VBR or CBR. Not used for QVBR. In an MS Smooth output group, each
                output must have a unique value when its bitrate is rounded down to the nearest
                multiple of 1000.

                - **BufFillPct** *(integer) --* Percentage of the buffer that should initially be
                filled (HRD buffer model).

                - **BufSize** *(integer) --* Size of buffer (HRD buffer model) in bits.

                - **ColorMetadata** *(string) --* Includes colorspace metadata in the output.

                - **ColorSpaceSettings** *(dict) --* Color Space settings

                  - **ColorSpacePassthroughSettings** *(dict) --* Passthrough applies no color space
                  conversion to the output

                  - **Rec601Settings** *(dict) --* Rec601 Settings

                  - **Rec709Settings** *(dict) --* Rec709 Settings

                - **EntropyEncoding** *(string) --* Entropy encoding mode. Use cabac (must be in
                Main or High profile) or cavlc.

                - **FixedAfd** *(string) --* Four bit AFD value to write on all frames of video in
                the output stream. Only valid when afdSignaling is set to 'Fixed'.

                - **FlickerAq** *(string) --* If set to enabled, adjust quantization within each
                frame to reduce flicker or 'pop' on I-frames.

                - **FramerateControl** *(string) --* This field indicates how the output video frame
                rate is specified. If "specified" is selected then the output video frame rate is
                determined by framerateNumerator and framerateDenominator, else if
                "initializeFromSource" is selected then the output video frame rate will be set
                equal to the input video frame rate of the first input.

                - **FramerateDenominator** *(integer) --* Framerate denominator.

                - **FramerateNumerator** *(integer) --* Framerate numerator - framerate is a
                fraction, e.g. 24000 / 1001 = 23.976 fps.

                - **GopBReference** *(string) --* Documentation update needed

                - **GopClosedCadence** *(integer) --* Frequency of closed GOPs. In streaming
                applications, it is recommended that this be set to 1 so a decoder joining
                mid-stream will receive an IDR frame as quickly as possible. Setting this value to 0
                will break output segmenting.

                - **GopNumBFrames** *(integer) --* Number of B-frames between reference frames.

                - **GopSize** *(float) --* GOP size (keyframe interval) in units of either frames or
                seconds per gopSizeUnits. If gopSizeUnits is frames, gopSize must be an integer and
                must be greater than or equal to 1. If gopSizeUnits is seconds, gopSize must be
                greater than 0, but need not be an integer.

                - **GopSizeUnits** *(string) --* Indicates if the gopSize is specified in frames or
                seconds. If seconds the system will convert the gopSize into a frame count at run
                time.

                - **Level** *(string) --* H.264 Level.

                - **LookAheadRateControl** *(string) --* Amount of lookahead. A value of low can
                decrease latency and memory usage, while high can produce better quality for certain
                content.

                - **MaxBitrate** *(integer) --* For QVBR: See the tooltip for Quality level For VBR:
                Set the maximum bitrate in order to accommodate expected spikes in the complexity of
                the video.

                - **MinIInterval** *(integer) --* Only meaningful if sceneChangeDetect is set to
                enabled. Defaults to 5 if multiplex rate control is used. Enforces separation
                between repeated (cadence) I-frames and I-frames inserted by Scene Change Detection.
                If a scene change I-frame is within I-interval frames of a cadence I-frame, the GOP
                is shrunk and/or stretched to the scene change I-frame. GOP stretch requires
                enabling lookahead as well as setting I-interval. The normal cadence resumes for the
                next GOP. Note: Maximum GOP stretch = GOP size + Min-I-interval - 1

                - **NumRefFrames** *(integer) --* Number of reference frames to use. The encoder may
                use more than requested if using B-frames and/or interlaced encoding.

                - **ParControl** *(string) --* This field indicates how the output pixel aspect
                ratio is specified. If "specified" is selected then the output video pixel aspect
                ratio is determined by parNumerator and parDenominator, else if
                "initializeFromSource" is selected then the output pixsel aspect ratio will be set
                equal to the input video pixel aspect ratio of the first input.

                - **ParDenominator** *(integer) --* Pixel Aspect Ratio denominator.

                - **ParNumerator** *(integer) --* Pixel Aspect Ratio numerator.

                - **Profile** *(string) --* H.264 Profile.

                - **QvbrQualityLevel** *(integer) --* Controls the target quality for the video
                encode. Applies only when the rate control mode is QVBR. Set values for the QVBR
                quality level field and Max bitrate field that suit your most important viewing
                devices. Recommended values are: - Primary screen: Quality level: 8 to 10. Max
                bitrate: 4M - PC or tablet: Quality level: 7. Max bitrate: 1.5M to 3M - Smartphone:
                Quality level: 6. Max bitrate: 1M to 1.5M

                - **RateControlMode** *(string) --* Rate control mode. QVBR: Quality will match the
                specified quality level except when it is constrained by the maximum bitrate.
                Recommended if you or your viewers pay for bandwidth. VBR: Quality and bitrate vary,
                depending on the video complexity. Recommended instead of QVBR if you want to
                maintain a specific average bitrate over the duration of the channel. CBR: Quality
                varies, depending on the video complexity. Recommended only if you distribute your
                assets to devices that cannot handle variable bitrates.

                - **ScanType** *(string) --* Sets the scan type of the output to progressive or
                top-field-first interlaced.

                - **SceneChangeDetect** *(string) --* Scene change detection. - On: inserts I-frames
                when scene change is detected. - Off: does not force an I-frame when scene change is
                detected.

                - **Slices** *(integer) --* Number of slices per picture. Must be less than or equal
                to the number of macroblock rows for progressive pictures, and less than or equal to
                half the number of macroblock rows for interlaced pictures. This field is optional;
                when no value is specified the encoder will choose the number of slices based on
                encode resolution.

                - **Softness** *(integer) --* Softness. Selects quantizer matrix, larger values
                reduce high-frequency content in the encoded image.

                - **SpatialAq** *(string) --* If set to enabled, adjust quantization within each
                frame based on spatial variation of content complexity.

                - **SubgopLength** *(string) --* If set to fixed, use gopNumBFrames B-frames per
                sub-GOP. If set to dynamic, optimize the number of B-frames used for each sub-GOP to
                improve visual quality.

                - **Syntax** *(string) --* Produces a bitstream compliant with SMPTE RP-2027.

                - **TemporalAq** *(string) --* If set to enabled, adjust quantization within each
                frame based on temporal variation of content complexity.

                - **TimecodeInsertion** *(string) --* Determines how timecodes should be inserted
                into the video elementary stream. - 'disabled': Do not include timecodes -
                'picTimingSei': Pass through picture timing SEI messages from the source specified
                in Timecode Config

              - **H265Settings** *(dict) --* H265 Settings

                - **AdaptiveQuantization** *(string) --* Adaptive quantization. Allows intra-frame
                quantizers to vary to improve visual quality.

                - **AfdSignaling** *(string) --* Indicates that AFD values will be written into the
                output stream. If afdSignaling is "auto", the system will try to preserve the input
                AFD value (in cases where multiple AFD values are valid). If set to "fixed", the AFD
                value will be the value configured in the fixedAfd parameter.

                - **AlternativeTransferFunction** *(string) --* Whether or not EML should insert an
                Alternative Transfer Function SEI message to support backwards compatibility with
                non-HDR decoders and displays.

                - **Bitrate** *(integer) --* Average bitrate in bits/second. Required when the rate
                control mode is VBR or CBR. Not used for QVBR. In an MS Smooth output group, each
                output must have a unique value when its bitrate is rounded down to the nearest
                multiple of 1000.

                - **BufSize** *(integer) --* Size of buffer (HRD buffer model) in bits.

                - **ColorMetadata** *(string) --* Includes colorspace metadata in the output.

                - **ColorSpaceSettings** *(dict) --* Color Space settings

                  - **ColorSpacePassthroughSettings** *(dict) --* Passthrough applies no color space
                  conversion to the output

                  - **Hdr10Settings** *(dict) --* Hdr10 Settings

                    - **MaxCll** *(integer) --* Maximum Content Light Level An integer metadata
                    value defining the maximum light level, in nits, of any single pixel within an
                    encoded HDR video stream or file.

                    - **MaxFall** *(integer) --* Maximum Frame Average Light Level An integer
                    metadata value defining the maximum average light level, in nits, for any single
                    frame within an encoded HDR video stream or file.

                  - **Rec601Settings** *(dict) --* Rec601 Settings

                  - **Rec709Settings** *(dict) --* Rec709 Settings

                - **FixedAfd** *(string) --* Four bit AFD value to write on all frames of video in
                the output stream. Only valid when afdSignaling is set to 'Fixed'.

                - **FlickerAq** *(string) --* If set to enabled, adjust quantization within each
                frame to reduce flicker or 'pop' on I-frames.

                - **FramerateDenominator** *(integer) --* Framerate denominator.

                - **FramerateNumerator** *(integer) --* Framerate numerator - framerate is a
                fraction, e.g. 24000 / 1001 = 23.976 fps.

                - **GopClosedCadence** *(integer) --* Frequency of closed GOPs. In streaming
                applications, it is recommended that this be set to 1 so a decoder joining
                mid-stream will receive an IDR frame as quickly as possible. Setting this value to 0
                will break output segmenting.

                - **GopSize** *(float) --* GOP size (keyframe interval) in units of either frames or
                seconds per gopSizeUnits. If gopSizeUnits is frames, gopSize must be an integer and
                must be greater than or equal to 1. If gopSizeUnits is seconds, gopSize must be
                greater than 0, but need not be an integer.

                - **GopSizeUnits** *(string) --* Indicates if the gopSize is specified in frames or
                seconds. If seconds the system will convert the gopSize into a frame count at run
                time.

                - **Level** *(string) --* H.265 Level.

                - **LookAheadRateControl** *(string) --* Amount of lookahead. A value of low can
                decrease latency and memory usage, while high can produce better quality for certain
                content.

                - **MaxBitrate** *(integer) --* For QVBR: See the tooltip for Quality level

                - **MinIInterval** *(integer) --* Only meaningful if sceneChangeDetect is set to
                enabled. Defaults to 5 if multiplex rate control is used. Enforces separation
                between repeated (cadence) I-frames and I-frames inserted by Scene Change Detection.
                If a scene change I-frame is within I-interval frames of a cadence I-frame, the GOP
                is shrunk and/or stretched to the scene change I-frame. GOP stretch requires
                enabling lookahead as well as setting I-interval. The normal cadence resumes for the
                next GOP. Note: Maximum GOP stretch = GOP size + Min-I-interval - 1

                - **ParDenominator** *(integer) --* Pixel Aspect Ratio denominator.

                - **ParNumerator** *(integer) --* Pixel Aspect Ratio numerator.

                - **Profile** *(string) --* H.265 Profile.

                - **QvbrQualityLevel** *(integer) --* Controls the target quality for the video
                encode. Applies only when the rate control mode is QVBR. Set values for the QVBR
                quality level field and Max bitrate field that suit your most important viewing
                devices. Recommended values are: - Primary screen: Quality level: 8 to 10. Max
                bitrate: 4M - PC or tablet: Quality level: 7. Max bitrate: 1.5M to 3M - Smartphone:
                Quality level: 6. Max bitrate: 1M to 1.5M

                - **RateControlMode** *(string) --* Rate control mode. QVBR: Quality will match the
                specified quality level except when it is constrained by the maximum bitrate.
                Recommended if you or your viewers pay for bandwidth. CBR: Quality varies, depending
                on the video complexity. Recommended only if you distribute your assets to devices
                that cannot handle variable bitrates.

                - **ScanType** *(string) --* Sets the scan type of the output to progressive or
                top-field-first interlaced.

                - **SceneChangeDetect** *(string) --* Scene change detection.

                - **Slices** *(integer) --* Number of slices per picture. Must be less than or equal
                to the number of macroblock rows for progressive pictures, and less than or equal to
                half the number of macroblock rows for interlaced pictures. This field is optional;
                when no value is specified the encoder will choose the number of slices based on
                encode resolution.

                - **Tier** *(string) --* H.265 Tier.

                - **TimecodeInsertion** *(string) --* Determines how timecodes should be inserted
                into the video elementary stream. - 'disabled': Do not include timecodes -
                'picTimingSei': Pass through picture timing SEI messages from the source specified
                in Timecode Config

            - **Height** *(integer) --* Output video height, in pixels. Must be an even number. For
            most codecs, you can leave this field and width blank in order to use the height and
            width (resolution) from the source. Note, however, that leaving blank is not
            recommended. For the Frame Capture codec, height and width are required.

            - **Name** *(string) --* The name of this VideoDescription. Outputs will use this name
            to uniquely identify this Description. Description names should be unique within this
            Live Event.

            - **RespondToAfd** *(string) --* Indicates how to respond to the AFD values in the input
            stream. RESPOND causes input video to be clipped, depending on the AFD value, input
            display aspect ratio, and output display aspect ratio, and (except for FRAMECAPTURE
            codec) includes the values in the output. PASSTHROUGH (does not apply to FRAMECAPTURE
            codec) ignores the AFD values and includes the values in the output, so input video is
            not clipped. NONE ignores the AFD values and does not include the values through to the
            output, so input video is not clipped.

            - **ScalingBehavior** *(string) --* STRETCHTOOUTPUT configures the output position to
            stretch the video to the specified output resolution (height and width). This option
            will override any position value. DEFAULT may insert black boxes (pillar boxes or letter
            boxes) around the video to provide the specified output resolution.

            - **Sharpness** *(integer) --* Changes the strength of the anti-alias filter used for
            scaling. 0 is the softest setting, 100 is the sharpest. A setting of 50 is recommended
            for most content.

            - **Width** *(integer) --* Output video width, in pixels. Must be an even number. For
            most codecs, you can leave this field and height blank in order to use the height and
            width (resolution) from the source. Note, however, that leaving blank is not
            recommended. For the Frame Capture codec, height and width are required.

      - **Id** *(string) --* The unique id of the channel.

      - **InputAttachments** *(list) --* List of input attachments for channel.

        - *(dict) --* Placeholder documentation for InputAttachment

          - **InputAttachmentName** *(string) --* User-specified name for the attachment. This is
          required if the user wants to use this input in an input switch action.

          - **InputId** *(string) --* The ID of the input

          - **InputSettings** *(dict) --* Settings of an input (caption selector, etc.)

            - **AudioSelectors** *(list) --* Used to select the audio stream to decode for inputs
            that have multiple available.

              - *(dict) --* Audio Selector

                - **Name** *(string) --* The name of this AudioSelector. AudioDescriptions will use
                this name to uniquely identify this Selector. Selector names should be unique per
                input.

                - **SelectorSettings** *(dict) --* The audio selector settings.

                  - **AudioLanguageSelection** *(dict) --* Audio Language Selection

                    - **LanguageCode** *(string) --* Selects a specific three-letter language code
                    from within an audio source.

                    - **LanguageSelectionPolicy** *(string) --* When set to "strict", the transport
                    stream demux strictly identifies audio streams by their language descriptor. If
                    a PMT update occurs such that an audio stream matching the initially selected
                    language is no longer present then mute will be encoded until the language
                    returns. If "loose", then on a PMT update the demux will choose another audio
                    stream in the program with the same stream type if it can't find one with the
                    same language.

                  - **AudioPidSelection** *(dict) --* Audio Pid Selection

                    - **Pid** *(integer) --* Selects a specific PID from within a source.

            - **CaptionSelectors** *(list) --* Used to select the caption input to use for inputs
            that have multiple available.

              - *(dict) --* Output groups for this Live Event. Output groups contain information
              about where streams should be distributed.

                - **LanguageCode** *(string) --* When specified this field indicates the three
                letter language code of the caption track to extract from the source.

                - **Name** *(string) --* Name identifier for a caption selector. This name is used
                to associate this caption selector with one or more caption descriptions. Names must
                be unique within an event.

                - **SelectorSettings** *(dict) --* Caption selector settings.

                  - **AribSourceSettings** *(dict) --* Arib Source Settings

                  - **DvbSubSourceSettings** *(dict) --* Dvb Sub Source Settings

                    - **Pid** *(integer) --* When using DVB-Sub with Burn-In or SMPTE-TT, use this
                    PID for the source content. Unused for DVB-Sub passthrough. All DVB-Sub content
                    is passed through, regardless of selectors.

                  - **EmbeddedSourceSettings** *(dict) --* Embedded Source Settings

                    - **Convert608To708** *(string) --* If upconvert, 608 data is both passed
                    through via the "608 compatibility bytes" fields of the 708 wrapper as well as
                    translated into 708. 708 data present in the source content will be discarded.

                    - **Scte20Detection** *(string) --* Set to "auto" to handle streams with
                    intermittent and/or non-aligned SCTE-20 and Embedded captions.

                    - **Source608ChannelNumber** *(integer) --* Specifies the 608/708 channel number
                    within the video track from which to extract captions. Unused for passthrough.

                    - **Source608TrackNumber** *(integer) --* This field is unused and deprecated.

                  - **Scte20SourceSettings** *(dict) --* Scte20 Source Settings

                    - **Convert608To708** *(string) --* If upconvert, 608 data is both passed
                    through via the "608 compatibility bytes" fields of the 708 wrapper as well as
                    translated into 708. 708 data present in the source content will be discarded.

                    - **Source608ChannelNumber** *(integer) --* Specifies the 608/708 channel number
                    within the video track from which to extract captions. Unused for passthrough.

                  - **Scte27SourceSettings** *(dict) --* Scte27 Source Settings

                    - **Pid** *(integer) --* The pid field is used in conjunction with the caption
                    selector languageCode field as follows: - Specify PID and Language: Extracts
                    captions from that PID; the language is "informational". - Specify PID and omit
                    Language: Extracts the specified PID. - Omit PID and specify Language: Extracts
                    the specified language, whichever PID that happens to be. - Omit PID and omit
                    Language: Valid only if source is DVB-Sub that is being passed through; all
                    languages will be passed through.

                  - **TeletextSourceSettings** *(dict) --* Teletext Source Settings

                    - **PageNumber** *(string) --* Specifies the teletext page number within the
                    data stream from which to extract captions. Range of 0x100 (256) to 0x8FF
                    (2303). Unused for passthrough. Should be specified as a hexadecimal string with
                    no "0x" prefix.

            - **DeblockFilter** *(string) --* Enable or disable the deblock filter when filtering.

            - **DenoiseFilter** *(string) --* Enable or disable the denoise filter when filtering.

            - **FilterStrength** *(integer) --* Adjusts the magnitude of filtering from 1 (minimal)
            to 5 (strongest).

            - **InputFilter** *(string) --* Turns on the filter for this input. MPEG-2 inputs have
            the deblocking filter enabled by default. 1) auto - filtering will be applied depending
            on input type/quality 2) disabled - no filtering will be applied to the input 3) forced
            - filtering will be applied regardless of input type

            - **NetworkInputSettings** *(dict) --* Input settings.

              - **HlsInputSettings** *(dict) --* Specifies HLS input settings when the uri is for a
              HLS manifest.

                - **Bandwidth** *(integer) --* When specified the HLS stream with the m3u8 BANDWIDTH
                that most closely matches this value will be chosen, otherwise the highest bandwidth
                stream in the m3u8 will be chosen. The bitrate is specified in bits per second, as
                in an HLS manifest.

                - **BufferSegments** *(integer) --* When specified, reading of the HLS input will
                begin this many buffer segments from the end (most recently written segment). When
                not specified, the HLS input will begin with the first segment specified in the
                m3u8.

                - **Retries** *(integer) --* The number of consecutive times that attempts to read a
                manifest or segment must fail before the input is considered unavailable.

                - **RetryInterval** *(integer) --* The number of seconds between retries when an
                attempt to read a manifest or segment fails.

              - **ServerValidation** *(string) --* Check HTTPS server certificates. When set to
              checkCryptographyOnly, cryptography in the certificate will be checked, but not the
              server's name. Certain subdomains (notably S3 buckets that use dots in the bucket
              name) do not strictly match the corresponding certificate's wildcard pattern and would
              otherwise cause the event to error. This setting is ignored for protocols that do not
              use https.

            - **SourceEndBehavior** *(string) --* Loop input if it is a file. This allows a file
            input to be streamed indefinitely.

            - **VideoSelector** *(dict) --* Informs which video elementary stream to decode for
            input types that have multiple available.

              - **ColorSpace** *(string) --* Specifies the color space of an input. This setting
              works in tandem with colorSpaceUsage and a video description's
              colorSpaceSettingsChoice to determine if any conversion will be performed.

              - **ColorSpaceUsage** *(string) --* Applies only if colorSpace is a value other than
              follow. This field controls how the value in the colorSpace field will be used.
              fallback means that when the input does include color space data, that data will be
              used, but when the input has no color space data, the value in colorSpace will be
              used. Choose fallback if your input is sometimes missing color space data, but when it
              does have color space data, that data is correct. force means to always use the value
              in colorSpace. Choose force if your input usually has no color space data or might
              have unreliable color space data.

              - **SelectorSettings** *(dict) --* The video selector settings.

                - **VideoSelectorPid** *(dict) --* Video Selector Pid

                  - **Pid** *(integer) --* Selects a specific PID from within a video source.

                - **VideoSelectorProgramId** *(dict) --* Video Selector Program Id

                  - **ProgramId** *(integer) --* Selects a specific program from within a
                  multi-program transport stream. If the program doesn't exist, the first program
                  within the transport stream will be selected by default.

      - **InputSpecification** *(dict) --* Placeholder documentation for InputSpecification

        - **Codec** *(string) --* Input codec

        - **MaximumBitrate** *(string) --* Maximum input bitrate, categorized coarsely

        - **Resolution** *(string) --* Input resolution, categorized coarsely

      - **LogLevel** *(string) --* The log level being written to CloudWatch Logs.

      - **Name** *(string) --* The name of the channel. (user-mutable)

      - **PipelineDetails** *(list) --* Runtime details for the pipelines of a running channel.

        - *(dict) --* Runtime details of a pipeline when a channel is running.

          - **ActiveInputAttachmentName** *(string) --* The name of the active input attachment
          currently being ingested by this pipeline.

          - **ActiveInputSwitchActionName** *(string) --* The name of the input switch schedule
          action that occurred most recently and that resulted in the switch to the current input
          attachment for this pipeline.

          - **PipelineId** *(string) --* Pipeline ID

      - **PipelinesRunningCount** *(integer) --* The number of currently healthy pipelines.

      - **RoleArn** *(string) --* The Amazon Resource Name (ARN) of the role assumed when running
      the Channel.

      - **State** *(string) --* Placeholder documentation for ChannelState

      - **Tags** *(dict) --* A collection of key-value pairs.

        - *(string) --* Placeholder documentation for __string

          - *(string) --* Placeholder documentation for __string
    """


_ClientUpdateInputDestinationsTypeDef = TypedDict(
    "_ClientUpdateInputDestinationsTypeDef", {"StreamName": str}, total=False
)


class ClientUpdateInputDestinationsTypeDef(_ClientUpdateInputDestinationsTypeDef):
    """
    Type definition for `ClientUpdateInput` `Destinations`

    - **StreamName** *(string) --* A unique name for the location the RTMP stream is being pushed
    to.
    """


_ClientUpdateInputMediaConnectFlowsTypeDef = TypedDict(
    "_ClientUpdateInputMediaConnectFlowsTypeDef", {"FlowArn": str}, total=False
)


class ClientUpdateInputMediaConnectFlowsTypeDef(_ClientUpdateInputMediaConnectFlowsTypeDef):
    """
    Type definition for `ClientUpdateInput` `MediaConnectFlows`

    - **FlowArn** *(string) --* The ARN of the MediaConnect Flow that you want to use as a source.
    """


_ClientUpdateInputResponseInputDestinationsVpcTypeDef = TypedDict(
    "_ClientUpdateInputResponseInputDestinationsVpcTypeDef",
    {"AvailabilityZone": str, "NetworkInterfaceId": str},
    total=False,
)


class ClientUpdateInputResponseInputDestinationsVpcTypeDef(
    _ClientUpdateInputResponseInputDestinationsVpcTypeDef
):
    """
    Type definition for `ClientUpdateInputResponseInputDestinations` `Vpc`

    - **AvailabilityZone** *(string) --* The availability zone of the Input destination.

    - **NetworkInterfaceId** *(string) --* The network interface ID of the Input destination in the
    VPC.
    """


_ClientUpdateInputResponseInputDestinationsTypeDef = TypedDict(
    "_ClientUpdateInputResponseInputDestinationsTypeDef",
    {
        "Ip": str,
        "Port": str,
        "Url": str,
        "Vpc": ClientUpdateInputResponseInputDestinationsVpcTypeDef,
    },
    total=False,
)


class ClientUpdateInputResponseInputDestinationsTypeDef(
    _ClientUpdateInputResponseInputDestinationsTypeDef
):
    """
    Type definition for `ClientUpdateInputResponseInput` `Destinations`

    - **Ip** *(string) --* The system-generated static IP address of endpoint. It remains fixed for
    the lifetime of the input.

    - **Port** *(string) --* The port number for the input.

    - **Url** *(string) --* This represents the endpoint that the customer stream will be pushed to.

    - **Vpc** *(dict) --* The properties for a VPC type input destination.

      - **AvailabilityZone** *(string) --* The availability zone of the Input destination.

      - **NetworkInterfaceId** *(string) --* The network interface ID of the Input destination in
      the VPC.
    """


_ClientUpdateInputResponseInputMediaConnectFlowsTypeDef = TypedDict(
    "_ClientUpdateInputResponseInputMediaConnectFlowsTypeDef", {"FlowArn": str}, total=False
)


class ClientUpdateInputResponseInputMediaConnectFlowsTypeDef(
    _ClientUpdateInputResponseInputMediaConnectFlowsTypeDef
):
    """
    Type definition for `ClientUpdateInputResponseInput` `MediaConnectFlows`

    - **FlowArn** *(string) --* The unique ARN of the MediaConnect Flow being used as a source.
    """


_ClientUpdateInputResponseInputSourcesTypeDef = TypedDict(
    "_ClientUpdateInputResponseInputSourcesTypeDef",
    {"PasswordParam": str, "Url": str, "Username": str},
    total=False,
)


class ClientUpdateInputResponseInputSourcesTypeDef(_ClientUpdateInputResponseInputSourcesTypeDef):
    """
    Type definition for `ClientUpdateInputResponseInput` `Sources`

    - **PasswordParam** *(string) --* The key used to extract the password from EC2 Parameter store.

    - **Url** *(string) --* This represents the customer's source URL where stream is pulled from.

    - **Username** *(string) --* The username for the input source.
    """


_ClientUpdateInputResponseInputTypeDef = TypedDict(
    "_ClientUpdateInputResponseInputTypeDef",
    {
        "Arn": str,
        "AttachedChannels": List[str],
        "Destinations": List[ClientUpdateInputResponseInputDestinationsTypeDef],
        "Id": str,
        "InputClass": str,
        "InputSourceType": str,
        "MediaConnectFlows": List[ClientUpdateInputResponseInputMediaConnectFlowsTypeDef],
        "Name": str,
        "RoleArn": str,
        "SecurityGroups": List[str],
        "Sources": List[ClientUpdateInputResponseInputSourcesTypeDef],
        "State": str,
        "Tags": Dict[str, str],
        "Type": str,
    },
    total=False,
)


class ClientUpdateInputResponseInputTypeDef(_ClientUpdateInputResponseInputTypeDef):
    """
    Type definition for `ClientUpdateInputResponse` `Input`

    - **Arn** *(string) --* The Unique ARN of the input (generated, immutable).

    - **AttachedChannels** *(list) --* A list of channel IDs that that input is attached to
    (currently an input can only be attached to one channel).

      - *(string) --* Placeholder documentation for __string

    - **Destinations** *(list) --* A list of the destinations of the input (PUSH-type).

      - *(dict) --* The settings for a PUSH type input.

        - **Ip** *(string) --* The system-generated static IP address of endpoint. It remains fixed
        for the lifetime of the input.

        - **Port** *(string) --* The port number for the input.

        - **Url** *(string) --* This represents the endpoint that the customer stream will be pushed
        to.

        - **Vpc** *(dict) --* The properties for a VPC type input destination.

          - **AvailabilityZone** *(string) --* The availability zone of the Input destination.

          - **NetworkInterfaceId** *(string) --* The network interface ID of the Input destination
          in the VPC.

    - **Id** *(string) --* The generated ID of the input (unique for user account, immutable).

    - **InputClass** *(string) --* STANDARD - MediaLive expects two sources to be connected to this
    input. If the channel is also STANDARD, both sources will be ingested. If the channel is
    SINGLE_PIPELINE, only the first source will be ingested; the second source will always be
    ignored, even if the first source fails. SINGLE_PIPELINE - You can connect only one source to
    this input. If the ChannelClass is also SINGLE_PIPELINE, this value is valid. If the
    ChannelClass is STANDARD, this value is not valid because the channel requires two sources in
    the input.

    - **InputSourceType** *(string) --* Certain pull input sources can be dynamic, meaning that they
    can have their URL's dynamically changes during input switch actions. Presently, this
    functionality only works with MP4_FILE inputs.

    - **MediaConnectFlows** *(list) --* A list of MediaConnect Flows for this input.

      - *(dict) --* The settings for a MediaConnect Flow.

        - **FlowArn** *(string) --* The unique ARN of the MediaConnect Flow being used as a source.

    - **Name** *(string) --* The user-assigned name (This is a mutable value).

    - **RoleArn** *(string) --* The Amazon Resource Name (ARN) of the role this input assumes during
    and after creation.

    - **SecurityGroups** *(list) --* A list of IDs for all the Input Security Groups attached to the
    input.

      - *(string) --* Placeholder documentation for __string

    - **Sources** *(list) --* A list of the sources of the input (PULL-type).

      - *(dict) --* The settings for a PULL type input.

        - **PasswordParam** *(string) --* The key used to extract the password from EC2 Parameter
        store.

        - **Url** *(string) --* This represents the customer's source URL where stream is pulled
        from.

        - **Username** *(string) --* The username for the input source.

    - **State** *(string) --* Placeholder documentation for InputState

    - **Tags** *(dict) --* A collection of key-value pairs.

      - *(string) --* Placeholder documentation for __string

        - *(string) --* Placeholder documentation for __string

    - **Type** *(string) --* Placeholder documentation for InputType
    """


_ClientUpdateInputResponseTypeDef = TypedDict(
    "_ClientUpdateInputResponseTypeDef",
    {"Input": ClientUpdateInputResponseInputTypeDef},
    total=False,
)


class ClientUpdateInputResponseTypeDef(_ClientUpdateInputResponseTypeDef):
    """
    Type definition for `ClientUpdateInput` `Response`

    - **Input** *(dict) --* Placeholder documentation for Input

      - **Arn** *(string) --* The Unique ARN of the input (generated, immutable).

      - **AttachedChannels** *(list) --* A list of channel IDs that that input is attached to
      (currently an input can only be attached to one channel).

        - *(string) --* Placeholder documentation for __string

      - **Destinations** *(list) --* A list of the destinations of the input (PUSH-type).

        - *(dict) --* The settings for a PUSH type input.

          - **Ip** *(string) --* The system-generated static IP address of endpoint. It remains
          fixed for the lifetime of the input.

          - **Port** *(string) --* The port number for the input.

          - **Url** *(string) --* This represents the endpoint that the customer stream will be
          pushed to.

          - **Vpc** *(dict) --* The properties for a VPC type input destination.

            - **AvailabilityZone** *(string) --* The availability zone of the Input destination.

            - **NetworkInterfaceId** *(string) --* The network interface ID of the Input destination
            in the VPC.

      - **Id** *(string) --* The generated ID of the input (unique for user account, immutable).

      - **InputClass** *(string) --* STANDARD - MediaLive expects two sources to be connected to
      this input. If the channel is also STANDARD, both sources will be ingested. If the channel is
      SINGLE_PIPELINE, only the first source will be ingested; the second source will always be
      ignored, even if the first source fails. SINGLE_PIPELINE - You can connect only one source to
      this input. If the ChannelClass is also SINGLE_PIPELINE, this value is valid. If the
      ChannelClass is STANDARD, this value is not valid because the channel requires two sources in
      the input.

      - **InputSourceType** *(string) --* Certain pull input sources can be dynamic, meaning that
      they can have their URL's dynamically changes during input switch actions. Presently, this
      functionality only works with MP4_FILE inputs.

      - **MediaConnectFlows** *(list) --* A list of MediaConnect Flows for this input.

        - *(dict) --* The settings for a MediaConnect Flow.

          - **FlowArn** *(string) --* The unique ARN of the MediaConnect Flow being used as a
          source.

      - **Name** *(string) --* The user-assigned name (This is a mutable value).

      - **RoleArn** *(string) --* The Amazon Resource Name (ARN) of the role this input assumes
      during and after creation.

      - **SecurityGroups** *(list) --* A list of IDs for all the Input Security Groups attached to
      the input.

        - *(string) --* Placeholder documentation for __string

      - **Sources** *(list) --* A list of the sources of the input (PULL-type).

        - *(dict) --* The settings for a PULL type input.

          - **PasswordParam** *(string) --* The key used to extract the password from EC2 Parameter
          store.

          - **Url** *(string) --* This represents the customer's source URL where stream is pulled
          from.

          - **Username** *(string) --* The username for the input source.

      - **State** *(string) --* Placeholder documentation for InputState

      - **Tags** *(dict) --* A collection of key-value pairs.

        - *(string) --* Placeholder documentation for __string

          - *(string) --* Placeholder documentation for __string

      - **Type** *(string) --* Placeholder documentation for InputType
    """


_ClientUpdateInputSecurityGroupResponseSecurityGroupWhitelistRulesTypeDef = TypedDict(
    "_ClientUpdateInputSecurityGroupResponseSecurityGroupWhitelistRulesTypeDef",
    {"Cidr": str},
    total=False,
)


class ClientUpdateInputSecurityGroupResponseSecurityGroupWhitelistRulesTypeDef(
    _ClientUpdateInputSecurityGroupResponseSecurityGroupWhitelistRulesTypeDef
):
    """
    Type definition for `ClientUpdateInputSecurityGroupResponseSecurityGroup` `WhitelistRules`

    - **Cidr** *(string) --* The IPv4 CIDR that's whitelisted.
    """


_ClientUpdateInputSecurityGroupResponseSecurityGroupTypeDef = TypedDict(
    "_ClientUpdateInputSecurityGroupResponseSecurityGroupTypeDef",
    {
        "Arn": str,
        "Id": str,
        "Inputs": List[str],
        "State": str,
        "Tags": Dict[str, str],
        "WhitelistRules": List[
            ClientUpdateInputSecurityGroupResponseSecurityGroupWhitelistRulesTypeDef
        ],
    },
    total=False,
)


class ClientUpdateInputSecurityGroupResponseSecurityGroupTypeDef(
    _ClientUpdateInputSecurityGroupResponseSecurityGroupTypeDef
):
    """
    Type definition for `ClientUpdateInputSecurityGroupResponse` `SecurityGroup`

    - **Arn** *(string) --* Unique ARN of Input Security Group

    - **Id** *(string) --* The Id of the Input Security Group

    - **Inputs** *(list) --* The list of inputs currently using this Input Security Group.

      - *(string) --* Placeholder documentation for __string

    - **State** *(string) --* The current state of the Input Security Group.

    - **Tags** *(dict) --* A collection of key-value pairs.

      - *(string) --* Placeholder documentation for __string

        - *(string) --* Placeholder documentation for __string

    - **WhitelistRules** *(list) --* Whitelist rules and their sync status

      - *(dict) --* Whitelist rule

        - **Cidr** *(string) --* The IPv4 CIDR that's whitelisted.
    """


_ClientUpdateInputSecurityGroupResponseTypeDef = TypedDict(
    "_ClientUpdateInputSecurityGroupResponseTypeDef",
    {"SecurityGroup": ClientUpdateInputSecurityGroupResponseSecurityGroupTypeDef},
    total=False,
)


class ClientUpdateInputSecurityGroupResponseTypeDef(_ClientUpdateInputSecurityGroupResponseTypeDef):
    """
    Type definition for `ClientUpdateInputSecurityGroup` `Response`

    - **SecurityGroup** *(dict) --* An Input Security Group

      - **Arn** *(string) --* Unique ARN of Input Security Group

      - **Id** *(string) --* The Id of the Input Security Group

      - **Inputs** *(list) --* The list of inputs currently using this Input Security Group.

        - *(string) --* Placeholder documentation for __string

      - **State** *(string) --* The current state of the Input Security Group.

      - **Tags** *(dict) --* A collection of key-value pairs.

        - *(string) --* Placeholder documentation for __string

          - *(string) --* Placeholder documentation for __string

      - **WhitelistRules** *(list) --* Whitelist rules and their sync status

        - *(dict) --* Whitelist rule

          - **Cidr** *(string) --* The IPv4 CIDR that's whitelisted.
    """


_ClientUpdateInputSecurityGroupWhitelistRulesTypeDef = TypedDict(
    "_ClientUpdateInputSecurityGroupWhitelistRulesTypeDef", {"Cidr": str}, total=False
)


class ClientUpdateInputSecurityGroupWhitelistRulesTypeDef(
    _ClientUpdateInputSecurityGroupWhitelistRulesTypeDef
):
    """
    Type definition for `ClientUpdateInputSecurityGroup` `WhitelistRules`

    - **Cidr** *(string) --* The IPv4 CIDR to whitelist.
    """


_ClientUpdateInputSourcesTypeDef = TypedDict(
    "_ClientUpdateInputSourcesTypeDef",
    {"PasswordParam": str, "Url": str, "Username": str},
    total=False,
)


class ClientUpdateInputSourcesTypeDef(_ClientUpdateInputSourcesTypeDef):
    """
    Type definition for `ClientUpdateInput` `Sources`

    - **PasswordParam** *(string) --* The key used to extract the password from EC2 Parameter store.

    - **Url** *(string) --* This represents the customer's source URL where stream is pulled from.

    - **Username** *(string) --* The username for the input source.
    """


_RequiredClientUpdateMultiplexMultiplexSettingsTypeDef = TypedDict(
    "_RequiredClientUpdateMultiplexMultiplexSettingsTypeDef",
    {"TransportStreamBitrate": int, "TransportStreamId": int},
)
_OptionalClientUpdateMultiplexMultiplexSettingsTypeDef = TypedDict(
    "_OptionalClientUpdateMultiplexMultiplexSettingsTypeDef",
    {"MaximumVideoBufferDelayMilliseconds": int, "TransportStreamReservedBitrate": int},
    total=False,
)


class ClientUpdateMultiplexMultiplexSettingsTypeDef(
    _RequiredClientUpdateMultiplexMultiplexSettingsTypeDef,
    _OptionalClientUpdateMultiplexMultiplexSettingsTypeDef,
):
    """
    Type definition for `ClientUpdateMultiplex` `MultiplexSettings`

    - **MaximumVideoBufferDelayMilliseconds** *(integer) --* Maximum video buffer delay in
    milliseconds.

    - **TransportStreamBitrate** *(integer) --* **[REQUIRED]** Transport stream bit rate.

    - **TransportStreamId** *(integer) --* **[REQUIRED]** Transport stream ID.

    - **TransportStreamReservedBitrate** *(integer) --* Transport stream reserved bit rate.
    """


_ClientUpdateMultiplexProgramMultiplexProgramSettingsServiceDescriptorTypeDef = TypedDict(
    "_ClientUpdateMultiplexProgramMultiplexProgramSettingsServiceDescriptorTypeDef",
    {"ProviderName": str, "ServiceName": str},
)


class ClientUpdateMultiplexProgramMultiplexProgramSettingsServiceDescriptorTypeDef(
    _ClientUpdateMultiplexProgramMultiplexProgramSettingsServiceDescriptorTypeDef
):
    """
    Type definition for `ClientUpdateMultiplexProgramMultiplexProgramSettings` `ServiceDescriptor`

    - **ProviderName** *(string) --* **[REQUIRED]** Name of the provider.

    - **ServiceName** *(string) --* **[REQUIRED]** Name of the service.
    """


_ClientUpdateMultiplexProgramMultiplexProgramSettingsVideoSettingsStatmuxSettingsTypeDef = TypedDict(
    "_ClientUpdateMultiplexProgramMultiplexProgramSettingsVideoSettingsStatmuxSettingsTypeDef",
    {"MaximumBitrate": int, "MinimumBitrate": int},
    total=False,
)


class ClientUpdateMultiplexProgramMultiplexProgramSettingsVideoSettingsStatmuxSettingsTypeDef(
    _ClientUpdateMultiplexProgramMultiplexProgramSettingsVideoSettingsStatmuxSettingsTypeDef
):
    """
    Type definition for `ClientUpdateMultiplexProgramMultiplexProgramSettingsVideoSettings`
    `StatmuxSettings`

    - **MaximumBitrate** *(integer) --* Maximum statmux bitrate.

    - **MinimumBitrate** *(integer) --* Minimum statmux bitrate.
    """


_ClientUpdateMultiplexProgramMultiplexProgramSettingsVideoSettingsTypeDef = TypedDict(
    "_ClientUpdateMultiplexProgramMultiplexProgramSettingsVideoSettingsTypeDef",
    {
        "ConstantBitrate": int,
        "StatmuxSettings": ClientUpdateMultiplexProgramMultiplexProgramSettingsVideoSettingsStatmuxSettingsTypeDef,
    },
    total=False,
)


class ClientUpdateMultiplexProgramMultiplexProgramSettingsVideoSettingsTypeDef(
    _ClientUpdateMultiplexProgramMultiplexProgramSettingsVideoSettingsTypeDef
):
    """
    Type definition for `ClientUpdateMultiplexProgramMultiplexProgramSettings` `VideoSettings`

    - **ConstantBitrate** *(integer) --* The constant bitrate configuration for the video encode.
    When this field is defined, StatmuxSettings must be undefined.

    - **StatmuxSettings** *(dict) --* Statmux rate control settings. When this field is defined,
    ConstantBitrate must be undefined.

      - **MaximumBitrate** *(integer) --* Maximum statmux bitrate.

      - **MinimumBitrate** *(integer) --* Minimum statmux bitrate.
    """


_RequiredClientUpdateMultiplexProgramMultiplexProgramSettingsTypeDef = TypedDict(
    "_RequiredClientUpdateMultiplexProgramMultiplexProgramSettingsTypeDef", {"ProgramNumber": int}
)
_OptionalClientUpdateMultiplexProgramMultiplexProgramSettingsTypeDef = TypedDict(
    "_OptionalClientUpdateMultiplexProgramMultiplexProgramSettingsTypeDef",
    {
        "ServiceDescriptor": ClientUpdateMultiplexProgramMultiplexProgramSettingsServiceDescriptorTypeDef,
        "VideoSettings": ClientUpdateMultiplexProgramMultiplexProgramSettingsVideoSettingsTypeDef,
    },
    total=False,
)


class ClientUpdateMultiplexProgramMultiplexProgramSettingsTypeDef(
    _RequiredClientUpdateMultiplexProgramMultiplexProgramSettingsTypeDef,
    _OptionalClientUpdateMultiplexProgramMultiplexProgramSettingsTypeDef,
):
    """
    Type definition for `ClientUpdateMultiplexProgram` `MultiplexProgramSettings`

    - **ProgramNumber** *(integer) --* **[REQUIRED]** Unique program number.

    - **ServiceDescriptor** *(dict) --* Transport stream service descriptor configuration for the
    Multiplex program.

      - **ProviderName** *(string) --* **[REQUIRED]** Name of the provider.

      - **ServiceName** *(string) --* **[REQUIRED]** Name of the service.

    - **VideoSettings** *(dict) --* Program video settings configuration.

      - **ConstantBitrate** *(integer) --* The constant bitrate configuration for the video encode.
      When this field is defined, StatmuxSettings must be undefined.

      - **StatmuxSettings** *(dict) --* Statmux rate control settings. When this field is defined,
      ConstantBitrate must be undefined.

        - **MaximumBitrate** *(integer) --* Maximum statmux bitrate.

        - **MinimumBitrate** *(integer) --* Minimum statmux bitrate.
    """


_ClientUpdateMultiplexProgramResponseMultiplexProgramMultiplexProgramSettingsServiceDescriptorTypeDef = TypedDict(
    "_ClientUpdateMultiplexProgramResponseMultiplexProgramMultiplexProgramSettingsServiceDescriptorTypeDef",
    {"ProviderName": str, "ServiceName": str},
    total=False,
)


class ClientUpdateMultiplexProgramResponseMultiplexProgramMultiplexProgramSettingsServiceDescriptorTypeDef(
    _ClientUpdateMultiplexProgramResponseMultiplexProgramMultiplexProgramSettingsServiceDescriptorTypeDef
):
    """
    Type definition for
    `ClientUpdateMultiplexProgramResponseMultiplexProgramMultiplexProgramSettings`
    `ServiceDescriptor`

    - **ProviderName** *(string) --* Name of the provider.

    - **ServiceName** *(string) --* Name of the service.
    """


_ClientUpdateMultiplexProgramResponseMultiplexProgramMultiplexProgramSettingsVideoSettingsStatmuxSettingsTypeDef = TypedDict(
    "_ClientUpdateMultiplexProgramResponseMultiplexProgramMultiplexProgramSettingsVideoSettingsStatmuxSettingsTypeDef",
    {"MaximumBitrate": int, "MinimumBitrate": int},
    total=False,
)


class ClientUpdateMultiplexProgramResponseMultiplexProgramMultiplexProgramSettingsVideoSettingsStatmuxSettingsTypeDef(
    _ClientUpdateMultiplexProgramResponseMultiplexProgramMultiplexProgramSettingsVideoSettingsStatmuxSettingsTypeDef
):
    """
    Type definition for
    `ClientUpdateMultiplexProgramResponseMultiplexProgramMultiplexProgramSettingsVideoSettings`
    `StatmuxSettings`

    - **MaximumBitrate** *(integer) --* Maximum statmux bitrate.

    - **MinimumBitrate** *(integer) --* Minimum statmux bitrate.
    """


_ClientUpdateMultiplexProgramResponseMultiplexProgramMultiplexProgramSettingsVideoSettingsTypeDef = TypedDict(
    "_ClientUpdateMultiplexProgramResponseMultiplexProgramMultiplexProgramSettingsVideoSettingsTypeDef",
    {
        "ConstantBitrate": int,
        "StatmuxSettings": ClientUpdateMultiplexProgramResponseMultiplexProgramMultiplexProgramSettingsVideoSettingsStatmuxSettingsTypeDef,
    },
    total=False,
)


class ClientUpdateMultiplexProgramResponseMultiplexProgramMultiplexProgramSettingsVideoSettingsTypeDef(
    _ClientUpdateMultiplexProgramResponseMultiplexProgramMultiplexProgramSettingsVideoSettingsTypeDef
):
    """
    Type definition for
    `ClientUpdateMultiplexProgramResponseMultiplexProgramMultiplexProgramSettings` `VideoSettings`

    - **ConstantBitrate** *(integer) --* The constant bitrate configuration for the video encode.
    When this field is defined, StatmuxSettings must be undefined.

    - **StatmuxSettings** *(dict) --* Statmux rate control settings. When this field is defined,
    ConstantBitrate must be undefined.

      - **MaximumBitrate** *(integer) --* Maximum statmux bitrate.

      - **MinimumBitrate** *(integer) --* Minimum statmux bitrate.
    """


_ClientUpdateMultiplexProgramResponseMultiplexProgramMultiplexProgramSettingsTypeDef = TypedDict(
    "_ClientUpdateMultiplexProgramResponseMultiplexProgramMultiplexProgramSettingsTypeDef",
    {
        "ProgramNumber": int,
        "ServiceDescriptor": ClientUpdateMultiplexProgramResponseMultiplexProgramMultiplexProgramSettingsServiceDescriptorTypeDef,
        "VideoSettings": ClientUpdateMultiplexProgramResponseMultiplexProgramMultiplexProgramSettingsVideoSettingsTypeDef,
    },
    total=False,
)


class ClientUpdateMultiplexProgramResponseMultiplexProgramMultiplexProgramSettingsTypeDef(
    _ClientUpdateMultiplexProgramResponseMultiplexProgramMultiplexProgramSettingsTypeDef
):
    """
    Type definition for `ClientUpdateMultiplexProgramResponseMultiplexProgram`
    `MultiplexProgramSettings`

    - **ProgramNumber** *(integer) --* Unique program number.

    - **ServiceDescriptor** *(dict) --* Transport stream service descriptor configuration for the
    Multiplex program.

      - **ProviderName** *(string) --* Name of the provider.

      - **ServiceName** *(string) --* Name of the service.

    - **VideoSettings** *(dict) --* Program video settings configuration.

      - **ConstantBitrate** *(integer) --* The constant bitrate configuration for the video encode.
      When this field is defined, StatmuxSettings must be undefined.

      - **StatmuxSettings** *(dict) --* Statmux rate control settings. When this field is defined,
      ConstantBitrate must be undefined.

        - **MaximumBitrate** *(integer) --* Maximum statmux bitrate.

        - **MinimumBitrate** *(integer) --* Minimum statmux bitrate.
    """


_ClientUpdateMultiplexProgramResponseMultiplexProgramPacketIdentifiersMapTypeDef = TypedDict(
    "_ClientUpdateMultiplexProgramResponseMultiplexProgramPacketIdentifiersMapTypeDef",
    {
        "AudioPids": List[int],
        "DvbSubPids": List[int],
        "DvbTeletextPid": int,
        "EtvPlatformPid": int,
        "EtvSignalPid": int,
        "KlvDataPids": List[int],
        "PcrPid": int,
        "PmtPid": int,
        "PrivateMetadataPid": int,
        "Scte27Pids": List[int],
        "Scte35Pid": int,
        "TimedMetadataPid": int,
        "VideoPid": int,
    },
    total=False,
)


class ClientUpdateMultiplexProgramResponseMultiplexProgramPacketIdentifiersMapTypeDef(
    _ClientUpdateMultiplexProgramResponseMultiplexProgramPacketIdentifiersMapTypeDef
):
    """
    Type definition for `ClientUpdateMultiplexProgramResponseMultiplexProgram`
    `PacketIdentifiersMap`

    - **AudioPids** *(list) --* Placeholder documentation for __listOf__integer

      - *(integer) --* Placeholder documentation for __integer

    - **DvbSubPids** *(list) --* Placeholder documentation for __listOf__integer

      - *(integer) --* Placeholder documentation for __integer

    - **DvbTeletextPid** *(integer) --* Placeholder documentation for __integer

    - **EtvPlatformPid** *(integer) --* Placeholder documentation for __integer

    - **EtvSignalPid** *(integer) --* Placeholder documentation for __integer

    - **KlvDataPids** *(list) --* Placeholder documentation for __listOf__integer

      - *(integer) --* Placeholder documentation for __integer

    - **PcrPid** *(integer) --* Placeholder documentation for __integer

    - **PmtPid** *(integer) --* Placeholder documentation for __integer

    - **PrivateMetadataPid** *(integer) --* Placeholder documentation for __integer

    - **Scte27Pids** *(list) --* Placeholder documentation for __listOf__integer

      - *(integer) --* Placeholder documentation for __integer

    - **Scte35Pid** *(integer) --* Placeholder documentation for __integer

    - **TimedMetadataPid** *(integer) --* Placeholder documentation for __integer

    - **VideoPid** *(integer) --* Placeholder documentation for __integer
    """


_ClientUpdateMultiplexProgramResponseMultiplexProgramTypeDef = TypedDict(
    "_ClientUpdateMultiplexProgramResponseMultiplexProgramTypeDef",
    {
        "ChannelId": str,
        "MultiplexProgramSettings": ClientUpdateMultiplexProgramResponseMultiplexProgramMultiplexProgramSettingsTypeDef,
        "PacketIdentifiersMap": ClientUpdateMultiplexProgramResponseMultiplexProgramPacketIdentifiersMapTypeDef,
        "ProgramName": str,
    },
    total=False,
)


class ClientUpdateMultiplexProgramResponseMultiplexProgramTypeDef(
    _ClientUpdateMultiplexProgramResponseMultiplexProgramTypeDef
):
    """
    Type definition for `ClientUpdateMultiplexProgramResponse` `MultiplexProgram`

    - **ChannelId** *(string) --* The MediaLive channel associated with the program.

    - **MultiplexProgramSettings** *(dict) --* The settings for this multiplex program.

      - **ProgramNumber** *(integer) --* Unique program number.

      - **ServiceDescriptor** *(dict) --* Transport stream service descriptor configuration for the
      Multiplex program.

        - **ProviderName** *(string) --* Name of the provider.

        - **ServiceName** *(string) --* Name of the service.

      - **VideoSettings** *(dict) --* Program video settings configuration.

        - **ConstantBitrate** *(integer) --* The constant bitrate configuration for the video
        encode. When this field is defined, StatmuxSettings must be undefined.

        - **StatmuxSettings** *(dict) --* Statmux rate control settings. When this field is defined,
        ConstantBitrate must be undefined.

          - **MaximumBitrate** *(integer) --* Maximum statmux bitrate.

          - **MinimumBitrate** *(integer) --* Minimum statmux bitrate.

    - **PacketIdentifiersMap** *(dict) --* The packet identifier map for this multiplex program.

      - **AudioPids** *(list) --* Placeholder documentation for __listOf__integer

        - *(integer) --* Placeholder documentation for __integer

      - **DvbSubPids** *(list) --* Placeholder documentation for __listOf__integer

        - *(integer) --* Placeholder documentation for __integer

      - **DvbTeletextPid** *(integer) --* Placeholder documentation for __integer

      - **EtvPlatformPid** *(integer) --* Placeholder documentation for __integer

      - **EtvSignalPid** *(integer) --* Placeholder documentation for __integer

      - **KlvDataPids** *(list) --* Placeholder documentation for __listOf__integer

        - *(integer) --* Placeholder documentation for __integer

      - **PcrPid** *(integer) --* Placeholder documentation for __integer

      - **PmtPid** *(integer) --* Placeholder documentation for __integer

      - **PrivateMetadataPid** *(integer) --* Placeholder documentation for __integer

      - **Scte27Pids** *(list) --* Placeholder documentation for __listOf__integer

        - *(integer) --* Placeholder documentation for __integer

      - **Scte35Pid** *(integer) --* Placeholder documentation for __integer

      - **TimedMetadataPid** *(integer) --* Placeholder documentation for __integer

      - **VideoPid** *(integer) --* Placeholder documentation for __integer

    - **ProgramName** *(string) --* The name of the multiplex program.
    """


_ClientUpdateMultiplexProgramResponseTypeDef = TypedDict(
    "_ClientUpdateMultiplexProgramResponseTypeDef",
    {"MultiplexProgram": ClientUpdateMultiplexProgramResponseMultiplexProgramTypeDef},
    total=False,
)


class ClientUpdateMultiplexProgramResponseTypeDef(_ClientUpdateMultiplexProgramResponseTypeDef):
    """
    Type definition for `ClientUpdateMultiplexProgram` `Response`

    - **MultiplexProgram** *(dict) --* The updated multiplex program.

      - **ChannelId** *(string) --* The MediaLive channel associated with the program.

      - **MultiplexProgramSettings** *(dict) --* The settings for this multiplex program.

        - **ProgramNumber** *(integer) --* Unique program number.

        - **ServiceDescriptor** *(dict) --* Transport stream service descriptor configuration for
        the Multiplex program.

          - **ProviderName** *(string) --* Name of the provider.

          - **ServiceName** *(string) --* Name of the service.

        - **VideoSettings** *(dict) --* Program video settings configuration.

          - **ConstantBitrate** *(integer) --* The constant bitrate configuration for the video
          encode. When this field is defined, StatmuxSettings must be undefined.

          - **StatmuxSettings** *(dict) --* Statmux rate control settings. When this field is
          defined, ConstantBitrate must be undefined.

            - **MaximumBitrate** *(integer) --* Maximum statmux bitrate.

            - **MinimumBitrate** *(integer) --* Minimum statmux bitrate.

      - **PacketIdentifiersMap** *(dict) --* The packet identifier map for this multiplex program.

        - **AudioPids** *(list) --* Placeholder documentation for __listOf__integer

          - *(integer) --* Placeholder documentation for __integer

        - **DvbSubPids** *(list) --* Placeholder documentation for __listOf__integer

          - *(integer) --* Placeholder documentation for __integer

        - **DvbTeletextPid** *(integer) --* Placeholder documentation for __integer

        - **EtvPlatformPid** *(integer) --* Placeholder documentation for __integer

        - **EtvSignalPid** *(integer) --* Placeholder documentation for __integer

        - **KlvDataPids** *(list) --* Placeholder documentation for __listOf__integer

          - *(integer) --* Placeholder documentation for __integer

        - **PcrPid** *(integer) --* Placeholder documentation for __integer

        - **PmtPid** *(integer) --* Placeholder documentation for __integer

        - **PrivateMetadataPid** *(integer) --* Placeholder documentation for __integer

        - **Scte27Pids** *(list) --* Placeholder documentation for __listOf__integer

          - *(integer) --* Placeholder documentation for __integer

        - **Scte35Pid** *(integer) --* Placeholder documentation for __integer

        - **TimedMetadataPid** *(integer) --* Placeholder documentation for __integer

        - **VideoPid** *(integer) --* Placeholder documentation for __integer

      - **ProgramName** *(string) --* The name of the multiplex program.
    """


_ClientUpdateMultiplexResponseMultiplexDestinationsMediaConnectSettingsTypeDef = TypedDict(
    "_ClientUpdateMultiplexResponseMultiplexDestinationsMediaConnectSettingsTypeDef",
    {"EntitlementArn": str},
    total=False,
)


class ClientUpdateMultiplexResponseMultiplexDestinationsMediaConnectSettingsTypeDef(
    _ClientUpdateMultiplexResponseMultiplexDestinationsMediaConnectSettingsTypeDef
):
    """
    Type definition for `ClientUpdateMultiplexResponseMultiplexDestinations` `MediaConnectSettings`

    - **EntitlementArn** *(string) --* The MediaConnect entitlement ARN available as a Flow source.
    """


_ClientUpdateMultiplexResponseMultiplexDestinationsTypeDef = TypedDict(
    "_ClientUpdateMultiplexResponseMultiplexDestinationsTypeDef",
    {
        "MediaConnectSettings": ClientUpdateMultiplexResponseMultiplexDestinationsMediaConnectSettingsTypeDef
    },
    total=False,
)


class ClientUpdateMultiplexResponseMultiplexDestinationsTypeDef(
    _ClientUpdateMultiplexResponseMultiplexDestinationsTypeDef
):
    """
    Type definition for `ClientUpdateMultiplexResponseMultiplex` `Destinations`

    - **MediaConnectSettings** *(dict) --* Multiplex MediaConnect output destination settings.

      - **EntitlementArn** *(string) --* The MediaConnect entitlement ARN available as a Flow
      source.
    """


_ClientUpdateMultiplexResponseMultiplexMultiplexSettingsTypeDef = TypedDict(
    "_ClientUpdateMultiplexResponseMultiplexMultiplexSettingsTypeDef",
    {
        "MaximumVideoBufferDelayMilliseconds": int,
        "TransportStreamBitrate": int,
        "TransportStreamId": int,
        "TransportStreamReservedBitrate": int,
    },
    total=False,
)


class ClientUpdateMultiplexResponseMultiplexMultiplexSettingsTypeDef(
    _ClientUpdateMultiplexResponseMultiplexMultiplexSettingsTypeDef
):
    """
    Type definition for `ClientUpdateMultiplexResponseMultiplex` `MultiplexSettings`

    - **MaximumVideoBufferDelayMilliseconds** *(integer) --* Maximum video buffer delay in
    milliseconds.

    - **TransportStreamBitrate** *(integer) --* Transport stream bit rate.

    - **TransportStreamId** *(integer) --* Transport stream ID.

    - **TransportStreamReservedBitrate** *(integer) --* Transport stream reserved bit rate.
    """


_ClientUpdateMultiplexResponseMultiplexTypeDef = TypedDict(
    "_ClientUpdateMultiplexResponseMultiplexTypeDef",
    {
        "Arn": str,
        "AvailabilityZones": List[str],
        "Destinations": List[ClientUpdateMultiplexResponseMultiplexDestinationsTypeDef],
        "Id": str,
        "MultiplexSettings": ClientUpdateMultiplexResponseMultiplexMultiplexSettingsTypeDef,
        "Name": str,
        "PipelinesRunningCount": int,
        "ProgramCount": int,
        "State": str,
        "Tags": Dict[str, str],
    },
    total=False,
)


class ClientUpdateMultiplexResponseMultiplexTypeDef(_ClientUpdateMultiplexResponseMultiplexTypeDef):
    """
    Type definition for `ClientUpdateMultiplexResponse` `Multiplex`

    - **Arn** *(string) --* The unique arn of the multiplex.

    - **AvailabilityZones** *(list) --* A list of availability zones for the multiplex.

      - *(string) --* Placeholder documentation for __string

    - **Destinations** *(list) --* A list of the multiplex output destinations.

      - *(dict) --* Multiplex output destination settings

        - **MediaConnectSettings** *(dict) --* Multiplex MediaConnect output destination settings.

          - **EntitlementArn** *(string) --* The MediaConnect entitlement ARN available as a Flow
          source.

    - **Id** *(string) --* The unique id of the multiplex.

    - **MultiplexSettings** *(dict) --* Configuration for a multiplex event.

      - **MaximumVideoBufferDelayMilliseconds** *(integer) --* Maximum video buffer delay in
      milliseconds.

      - **TransportStreamBitrate** *(integer) --* Transport stream bit rate.

      - **TransportStreamId** *(integer) --* Transport stream ID.

      - **TransportStreamReservedBitrate** *(integer) --* Transport stream reserved bit rate.

    - **Name** *(string) --* The name of the multiplex.

    - **PipelinesRunningCount** *(integer) --* The number of currently healthy pipelines.

    - **ProgramCount** *(integer) --* The number of programs in the multiplex.

    - **State** *(string) --* The current state of the multiplex.

    - **Tags** *(dict) --* A collection of key-value pairs.

      - *(string) --* Placeholder documentation for __string

        - *(string) --* Placeholder documentation for __string
    """


_ClientUpdateMultiplexResponseTypeDef = TypedDict(
    "_ClientUpdateMultiplexResponseTypeDef",
    {"Multiplex": ClientUpdateMultiplexResponseMultiplexTypeDef},
    total=False,
)


class ClientUpdateMultiplexResponseTypeDef(_ClientUpdateMultiplexResponseTypeDef):
    """
    Type definition for `ClientUpdateMultiplex` `Response`

    - **Multiplex** *(dict) --* The updated multiplex.

      - **Arn** *(string) --* The unique arn of the multiplex.

      - **AvailabilityZones** *(list) --* A list of availability zones for the multiplex.

        - *(string) --* Placeholder documentation for __string

      - **Destinations** *(list) --* A list of the multiplex output destinations.

        - *(dict) --* Multiplex output destination settings

          - **MediaConnectSettings** *(dict) --* Multiplex MediaConnect output destination settings.

            - **EntitlementArn** *(string) --* The MediaConnect entitlement ARN available as a Flow
            source.

      - **Id** *(string) --* The unique id of the multiplex.

      - **MultiplexSettings** *(dict) --* Configuration for a multiplex event.

        - **MaximumVideoBufferDelayMilliseconds** *(integer) --* Maximum video buffer delay in
        milliseconds.

        - **TransportStreamBitrate** *(integer) --* Transport stream bit rate.

        - **TransportStreamId** *(integer) --* Transport stream ID.

        - **TransportStreamReservedBitrate** *(integer) --* Transport stream reserved bit rate.

      - **Name** *(string) --* The name of the multiplex.

      - **PipelinesRunningCount** *(integer) --* The number of currently healthy pipelines.

      - **ProgramCount** *(integer) --* The number of programs in the multiplex.

      - **State** *(string) --* The current state of the multiplex.

      - **Tags** *(dict) --* A collection of key-value pairs.

        - *(string) --* Placeholder documentation for __string

          - *(string) --* Placeholder documentation for __string
    """


_ClientUpdateReservationResponseReservationResourceSpecificationTypeDef = TypedDict(
    "_ClientUpdateReservationResponseReservationResourceSpecificationTypeDef",
    {
        "ChannelClass": str,
        "Codec": str,
        "MaximumBitrate": str,
        "MaximumFramerate": str,
        "Resolution": str,
        "ResourceType": str,
        "SpecialFeature": str,
        "VideoQuality": str,
    },
    total=False,
)


class ClientUpdateReservationResponseReservationResourceSpecificationTypeDef(
    _ClientUpdateReservationResponseReservationResourceSpecificationTypeDef
):
    """
    Type definition for `ClientUpdateReservationResponseReservation` `ResourceSpecification`

    - **ChannelClass** *(string) --* Channel class, e.g. 'STANDARD'

    - **Codec** *(string) --* Codec, e.g. 'AVC'

    - **MaximumBitrate** *(string) --* Maximum bitrate, e.g. 'MAX_20_MBPS'

    - **MaximumFramerate** *(string) --* Maximum framerate, e.g. 'MAX_30_FPS' (Outputs only)

    - **Resolution** *(string) --* Resolution, e.g. 'HD'

    - **ResourceType** *(string) --* Resource type, 'INPUT', 'OUTPUT', 'MULTIPLEX', or 'CHANNEL'

    - **SpecialFeature** *(string) --* Special feature, e.g. 'AUDIO_NORMALIZATION' (Channels only)

    - **VideoQuality** *(string) --* Video quality, e.g. 'STANDARD' (Outputs only)
    """


_ClientUpdateReservationResponseReservationTypeDef = TypedDict(
    "_ClientUpdateReservationResponseReservationTypeDef",
    {
        "Arn": str,
        "Count": int,
        "CurrencyCode": str,
        "Duration": int,
        "DurationUnits": str,
        "End": str,
        "FixedPrice": float,
        "Name": str,
        "OfferingDescription": str,
        "OfferingId": str,
        "OfferingType": str,
        "Region": str,
        "ReservationId": str,
        "ResourceSpecification": ClientUpdateReservationResponseReservationResourceSpecificationTypeDef,
        "Start": str,
        "State": str,
        "Tags": Dict[str, str],
        "UsagePrice": float,
    },
    total=False,
)


class ClientUpdateReservationResponseReservationTypeDef(
    _ClientUpdateReservationResponseReservationTypeDef
):
    """
    Type definition for `ClientUpdateReservationResponse` `Reservation`

    - **Arn** *(string) --* Unique reservation ARN, e.g.
    'arn:aws:medialive:us-west-2:123456789012:reservation:1234567'

    - **Count** *(integer) --* Number of reserved resources

    - **CurrencyCode** *(string) --* Currency code for usagePrice and fixedPrice in ISO-4217 format,
    e.g. 'USD'

    - **Duration** *(integer) --* Lease duration, e.g. '12'

    - **DurationUnits** *(string) --* Units for duration, e.g. 'MONTHS'

    - **End** *(string) --* Reservation UTC end date and time in ISO-8601 format, e.g.
    '2019-03-01T00:00:00'

    - **FixedPrice** *(float) --* One-time charge for each reserved resource, e.g. '0.0' for a
    NO_UPFRONT offering

    - **Name** *(string) --* User specified reservation name

    - **OfferingDescription** *(string) --* Offering description, e.g. 'HD AVC output at 10-20 Mbps,
    30 fps, and standard VQ in US West (Oregon)'

    - **OfferingId** *(string) --* Unique offering ID, e.g. '87654321'

    - **OfferingType** *(string) --* Offering type, e.g. 'NO_UPFRONT'

    - **Region** *(string) --* AWS region, e.g. 'us-west-2'

    - **ReservationId** *(string) --* Unique reservation ID, e.g. '1234567'

    - **ResourceSpecification** *(dict) --* Resource configuration details

      - **ChannelClass** *(string) --* Channel class, e.g. 'STANDARD'

      - **Codec** *(string) --* Codec, e.g. 'AVC'

      - **MaximumBitrate** *(string) --* Maximum bitrate, e.g. 'MAX_20_MBPS'

      - **MaximumFramerate** *(string) --* Maximum framerate, e.g. 'MAX_30_FPS' (Outputs only)

      - **Resolution** *(string) --* Resolution, e.g. 'HD'

      - **ResourceType** *(string) --* Resource type, 'INPUT', 'OUTPUT', 'MULTIPLEX', or 'CHANNEL'

      - **SpecialFeature** *(string) --* Special feature, e.g. 'AUDIO_NORMALIZATION' (Channels only)

      - **VideoQuality** *(string) --* Video quality, e.g. 'STANDARD' (Outputs only)

    - **Start** *(string) --* Reservation UTC start date and time in ISO-8601 format, e.g.
    '2018-03-01T00:00:00'

    - **State** *(string) --* Current state of reservation, e.g. 'ACTIVE'

    - **Tags** *(dict) --* A collection of key-value pairs

      - *(string) --* Placeholder documentation for __string

        - *(string) --* Placeholder documentation for __string

    - **UsagePrice** *(float) --* Recurring usage charge for each reserved resource, e.g. '157.0'
    """


_ClientUpdateReservationResponseTypeDef = TypedDict(
    "_ClientUpdateReservationResponseTypeDef",
    {"Reservation": ClientUpdateReservationResponseReservationTypeDef},
    total=False,
)


class ClientUpdateReservationResponseTypeDef(_ClientUpdateReservationResponseTypeDef):
    """
    Type definition for `ClientUpdateReservation` `Response`

    - **Reservation** *(dict) --* Reserved resources available to use

      - **Arn** *(string) --* Unique reservation ARN, e.g.
      'arn:aws:medialive:us-west-2:123456789012:reservation:1234567'

      - **Count** *(integer) --* Number of reserved resources

      - **CurrencyCode** *(string) --* Currency code for usagePrice and fixedPrice in ISO-4217
      format, e.g. 'USD'

      - **Duration** *(integer) --* Lease duration, e.g. '12'

      - **DurationUnits** *(string) --* Units for duration, e.g. 'MONTHS'

      - **End** *(string) --* Reservation UTC end date and time in ISO-8601 format, e.g.
      '2019-03-01T00:00:00'

      - **FixedPrice** *(float) --* One-time charge for each reserved resource, e.g. '0.0' for a
      NO_UPFRONT offering

      - **Name** *(string) --* User specified reservation name

      - **OfferingDescription** *(string) --* Offering description, e.g. 'HD AVC output at 10-20
      Mbps, 30 fps, and standard VQ in US West (Oregon)'

      - **OfferingId** *(string) --* Unique offering ID, e.g. '87654321'

      - **OfferingType** *(string) --* Offering type, e.g. 'NO_UPFRONT'

      - **Region** *(string) --* AWS region, e.g. 'us-west-2'

      - **ReservationId** *(string) --* Unique reservation ID, e.g. '1234567'

      - **ResourceSpecification** *(dict) --* Resource configuration details

        - **ChannelClass** *(string) --* Channel class, e.g. 'STANDARD'

        - **Codec** *(string) --* Codec, e.g. 'AVC'

        - **MaximumBitrate** *(string) --* Maximum bitrate, e.g. 'MAX_20_MBPS'

        - **MaximumFramerate** *(string) --* Maximum framerate, e.g. 'MAX_30_FPS' (Outputs only)

        - **Resolution** *(string) --* Resolution, e.g. 'HD'

        - **ResourceType** *(string) --* Resource type, 'INPUT', 'OUTPUT', 'MULTIPLEX', or 'CHANNEL'

        - **SpecialFeature** *(string) --* Special feature, e.g. 'AUDIO_NORMALIZATION' (Channels
        only)

        - **VideoQuality** *(string) --* Video quality, e.g. 'STANDARD' (Outputs only)

      - **Start** *(string) --* Reservation UTC start date and time in ISO-8601 format, e.g.
      '2018-03-01T00:00:00'

      - **State** *(string) --* Current state of reservation, e.g. 'ACTIVE'

      - **Tags** *(dict) --* A collection of key-value pairs

        - *(string) --* Placeholder documentation for __string

          - *(string) --* Placeholder documentation for __string

      - **UsagePrice** *(float) --* Recurring usage charge for each reserved resource, e.g. '157.0'
    """


_DescribeSchedulePaginatePaginationConfigTypeDef = TypedDict(
    "_DescribeSchedulePaginatePaginationConfigTypeDef",
    {"MaxItems": int, "PageSize": int, "StartingToken": str},
    total=False,
)


class DescribeSchedulePaginatePaginationConfigTypeDef(
    _DescribeSchedulePaginatePaginationConfigTypeDef
):
    """
    Type definition for `DescribeSchedulePaginate` `PaginationConfig`

    A dictionary that provides parameters to control pagination.

    - **MaxItems** *(integer) --*

      The total number of items to return. If the total number of items available is more than the
      value specified in max-items then a ``NextToken`` will be provided in the output that you can
      use to resume pagination.

    - **PageSize** *(integer) --*

      The size of each page.

    - **StartingToken** *(string) --*

      A token to specify where to start paginating. This is the ``NextToken`` from a previous
      response.
    """


_DescribeSchedulePaginateResponseScheduleActionsScheduleActionSettingsHlsTimedMetadataSettingsTypeDef = TypedDict(
    "_DescribeSchedulePaginateResponseScheduleActionsScheduleActionSettingsHlsTimedMetadataSettingsTypeDef",
    {"Id3": str},
    total=False,
)


class DescribeSchedulePaginateResponseScheduleActionsScheduleActionSettingsHlsTimedMetadataSettingsTypeDef(
    _DescribeSchedulePaginateResponseScheduleActionsScheduleActionSettingsHlsTimedMetadataSettingsTypeDef
):
    """
    Type definition for `DescribeSchedulePaginateResponseScheduleActionsScheduleActionSettings`
    `HlsTimedMetadataSettings`

    - **Id3** *(string) --* Base64 string formatted according to the ID3 specification:
    http://id3.org/id3v2.4.0-structure
    """


_DescribeSchedulePaginateResponseScheduleActionsScheduleActionSettingsInputSwitchSettingsInputClippingSettingsStartTimecodeTypeDef = TypedDict(
    "_DescribeSchedulePaginateResponseScheduleActionsScheduleActionSettingsInputSwitchSettingsInputClippingSettingsStartTimecodeTypeDef",
    {"Timecode": str},
    total=False,
)


class DescribeSchedulePaginateResponseScheduleActionsScheduleActionSettingsInputSwitchSettingsInputClippingSettingsStartTimecodeTypeDef(
    _DescribeSchedulePaginateResponseScheduleActionsScheduleActionSettingsInputSwitchSettingsInputClippingSettingsStartTimecodeTypeDef
):
    """
    Type definition for
    `DescribeSchedulePaginateResponseScheduleActionsScheduleActionSettingsInputSwitchSettingsInputClippingSettings`
    `StartTimecode`

    - **Timecode** *(string) --* The timecode for the frame where you want to start the clip.
    Optional; if not specified, the clip starts at first frame in the file. Enter the timecode as
    HH:MM:SS:FF or HH:MM:SS;FF.
    """


_DescribeSchedulePaginateResponseScheduleActionsScheduleActionSettingsInputSwitchSettingsInputClippingSettingsStopTimecodeTypeDef = TypedDict(
    "_DescribeSchedulePaginateResponseScheduleActionsScheduleActionSettingsInputSwitchSettingsInputClippingSettingsStopTimecodeTypeDef",
    {"LastFrameClippingBehavior": str, "Timecode": str},
    total=False,
)


class DescribeSchedulePaginateResponseScheduleActionsScheduleActionSettingsInputSwitchSettingsInputClippingSettingsStopTimecodeTypeDef(
    _DescribeSchedulePaginateResponseScheduleActionsScheduleActionSettingsInputSwitchSettingsInputClippingSettingsStopTimecodeTypeDef
):
    """
    Type definition for
    `DescribeSchedulePaginateResponseScheduleActionsScheduleActionSettingsInputSwitchSettingsInputClippingSettings`
    `StopTimecode`

    - **LastFrameClippingBehavior** *(string) --* If you specify a StopTimecode in an input (in
    order to clip the file), you can specify if you want the clip to exclude (the default) or
    include the frame specified by the timecode.

    - **Timecode** *(string) --* The timecode for the frame where you want to stop the clip.
    Optional; if not specified, the clip continues to the end of the file. Enter the timecode as
    HH:MM:SS:FF or HH:MM:SS;FF.
    """


_DescribeSchedulePaginateResponseScheduleActionsScheduleActionSettingsInputSwitchSettingsInputClippingSettingsTypeDef = TypedDict(
    "_DescribeSchedulePaginateResponseScheduleActionsScheduleActionSettingsInputSwitchSettingsInputClippingSettingsTypeDef",
    {
        "InputTimecodeSource": str,
        "StartTimecode": DescribeSchedulePaginateResponseScheduleActionsScheduleActionSettingsInputSwitchSettingsInputClippingSettingsStartTimecodeTypeDef,
        "StopTimecode": DescribeSchedulePaginateResponseScheduleActionsScheduleActionSettingsInputSwitchSettingsInputClippingSettingsStopTimecodeTypeDef,
    },
    total=False,
)


class DescribeSchedulePaginateResponseScheduleActionsScheduleActionSettingsInputSwitchSettingsInputClippingSettingsTypeDef(
    _DescribeSchedulePaginateResponseScheduleActionsScheduleActionSettingsInputSwitchSettingsInputClippingSettingsTypeDef
):
    """
    Type definition for
    `DescribeSchedulePaginateResponseScheduleActionsScheduleActionSettingsInputSwitchSettings`
    `InputClippingSettings`

    - **InputTimecodeSource** *(string) --* The source of the timecodes in the source being clipped.

    - **StartTimecode** *(dict) --* Settings to identify the start of the clip.

      - **Timecode** *(string) --* The timecode for the frame where you want to start the clip.
      Optional; if not specified, the clip starts at first frame in the file. Enter the timecode as
      HH:MM:SS:FF or HH:MM:SS;FF.

    - **StopTimecode** *(dict) --* Settings to identify the end of the clip.

      - **LastFrameClippingBehavior** *(string) --* If you specify a StopTimecode in an input (in
      order to clip the file), you can specify if you want the clip to exclude (the default) or
      include the frame specified by the timecode.

      - **Timecode** *(string) --* The timecode for the frame where you want to stop the clip.
      Optional; if not specified, the clip continues to the end of the file. Enter the timecode as
      HH:MM:SS:FF or HH:MM:SS;FF.
    """


_DescribeSchedulePaginateResponseScheduleActionsScheduleActionSettingsInputSwitchSettingsTypeDef = TypedDict(
    "_DescribeSchedulePaginateResponseScheduleActionsScheduleActionSettingsInputSwitchSettingsTypeDef",
    {
        "InputAttachmentNameReference": str,
        "InputClippingSettings": DescribeSchedulePaginateResponseScheduleActionsScheduleActionSettingsInputSwitchSettingsInputClippingSettingsTypeDef,
        "UrlPath": List[str],
    },
    total=False,
)


class DescribeSchedulePaginateResponseScheduleActionsScheduleActionSettingsInputSwitchSettingsTypeDef(
    _DescribeSchedulePaginateResponseScheduleActionsScheduleActionSettingsInputSwitchSettingsTypeDef
):
    """
    Type definition for `DescribeSchedulePaginateResponseScheduleActionsScheduleActionSettings`
    `InputSwitchSettings`

    - **InputAttachmentNameReference** *(string) --* The name of the input attachment (not the name
    of the input!) to switch to. The name is specified in the channel configuration.

    - **InputClippingSettings** *(dict) --* Settings to let you create a clip of the file input, in
    order to set up the input to ingest only a portion of the file.

      - **InputTimecodeSource** *(string) --* The source of the timecodes in the source being
      clipped.

      - **StartTimecode** *(dict) --* Settings to identify the start of the clip.

        - **Timecode** *(string) --* The timecode for the frame where you want to start the clip.
        Optional; if not specified, the clip starts at first frame in the file. Enter the timecode
        as HH:MM:SS:FF or HH:MM:SS;FF.

      - **StopTimecode** *(dict) --* Settings to identify the end of the clip.

        - **LastFrameClippingBehavior** *(string) --* If you specify a StopTimecode in an input (in
        order to clip the file), you can specify if you want the clip to exclude (the default) or
        include the frame specified by the timecode.

        - **Timecode** *(string) --* The timecode for the frame where you want to stop the clip.
        Optional; if not specified, the clip continues to the end of the file. Enter the timecode as
        HH:MM:SS:FF or HH:MM:SS;FF.

    - **UrlPath** *(list) --* The value for the variable portion of the URL for the dynamic input,
    for this instance of the input. Each time you use the same dynamic input in an input switch
    action, you can provide a different value, in order to connect the input to a different content
    source.

      - *(string) --* Placeholder documentation for __string
    """


_DescribeSchedulePaginateResponseScheduleActionsScheduleActionSettingsPauseStateSettingsPipelinesTypeDef = TypedDict(
    "_DescribeSchedulePaginateResponseScheduleActionsScheduleActionSettingsPauseStateSettingsPipelinesTypeDef",
    {"PipelineId": str},
    total=False,
)


class DescribeSchedulePaginateResponseScheduleActionsScheduleActionSettingsPauseStateSettingsPipelinesTypeDef(
    _DescribeSchedulePaginateResponseScheduleActionsScheduleActionSettingsPauseStateSettingsPipelinesTypeDef
):
    """
    Type definition for
    `DescribeSchedulePaginateResponseScheduleActionsScheduleActionSettingsPauseStateSettings`
    `Pipelines`

    - **PipelineId** *(string) --* Pipeline ID to pause ("PIPELINE_0" or "PIPELINE_1").
    """


_DescribeSchedulePaginateResponseScheduleActionsScheduleActionSettingsPauseStateSettingsTypeDef = TypedDict(
    "_DescribeSchedulePaginateResponseScheduleActionsScheduleActionSettingsPauseStateSettingsTypeDef",
    {
        "Pipelines": List[
            DescribeSchedulePaginateResponseScheduleActionsScheduleActionSettingsPauseStateSettingsPipelinesTypeDef
        ]
    },
    total=False,
)


class DescribeSchedulePaginateResponseScheduleActionsScheduleActionSettingsPauseStateSettingsTypeDef(
    _DescribeSchedulePaginateResponseScheduleActionsScheduleActionSettingsPauseStateSettingsTypeDef
):
    """
    Type definition for `DescribeSchedulePaginateResponseScheduleActionsScheduleActionSettings`
    `PauseStateSettings`

    - **Pipelines** *(list) --* Placeholder documentation for __listOfPipelinePauseStateSettings

      - *(dict) --* Settings for pausing a pipeline.

        - **PipelineId** *(string) --* Pipeline ID to pause ("PIPELINE_0" or "PIPELINE_1").
    """


_DescribeSchedulePaginateResponseScheduleActionsScheduleActionSettingsScte35ReturnToNetworkSettingsTypeDef = TypedDict(
    "_DescribeSchedulePaginateResponseScheduleActionsScheduleActionSettingsScte35ReturnToNetworkSettingsTypeDef",
    {"SpliceEventId": int},
    total=False,
)


class DescribeSchedulePaginateResponseScheduleActionsScheduleActionSettingsScte35ReturnToNetworkSettingsTypeDef(
    _DescribeSchedulePaginateResponseScheduleActionsScheduleActionSettingsScte35ReturnToNetworkSettingsTypeDef
):
    """
    Type definition for `DescribeSchedulePaginateResponseScheduleActionsScheduleActionSettings`
    `Scte35ReturnToNetworkSettings`

    - **SpliceEventId** *(integer) --* The splice_event_id for the SCTE-35 splice_insert, as defined
    in SCTE-35.
    """


_DescribeSchedulePaginateResponseScheduleActionsScheduleActionSettingsScte35SpliceInsertSettingsTypeDef = TypedDict(
    "_DescribeSchedulePaginateResponseScheduleActionsScheduleActionSettingsScte35SpliceInsertSettingsTypeDef",
    {"Duration": int, "SpliceEventId": int},
    total=False,
)


class DescribeSchedulePaginateResponseScheduleActionsScheduleActionSettingsScte35SpliceInsertSettingsTypeDef(
    _DescribeSchedulePaginateResponseScheduleActionsScheduleActionSettingsScte35SpliceInsertSettingsTypeDef
):
    """
    Type definition for `DescribeSchedulePaginateResponseScheduleActionsScheduleActionSettings`
    `Scte35SpliceInsertSettings`

    - **Duration** *(integer) --* Optional, the duration for the splice_insert, in 90 KHz ticks. To
    convert seconds to ticks, multiple the seconds by 90,000. If you enter a duration, there is an
    expectation that the downstream system can read the duration and cue in at that time. If you do
    not enter a duration, the splice_insert will continue indefinitely and there is an expectation
    that you will enter a return_to_network to end the splice_insert at the appropriate time.

    - **SpliceEventId** *(integer) --* The splice_event_id for the SCTE-35 splice_insert, as defined
    in SCTE-35.
    """


_DescribeSchedulePaginateResponseScheduleActionsScheduleActionSettingsScte35TimeSignalSettingsScte35DescriptorsScte35DescriptorSettingsSegmentationDescriptorScte35DescriptorSettingsDeliveryRestrictionsTypeDef = TypedDict(
    "_DescribeSchedulePaginateResponseScheduleActionsScheduleActionSettingsScte35TimeSignalSettingsScte35DescriptorsScte35DescriptorSettingsSegmentationDescriptorScte35DescriptorSettingsDeliveryRestrictionsTypeDef",
    {
        "ArchiveAllowedFlag": str,
        "DeviceRestrictions": str,
        "NoRegionalBlackoutFlag": str,
        "WebDeliveryAllowedFlag": str,
    },
    total=False,
)


class DescribeSchedulePaginateResponseScheduleActionsScheduleActionSettingsScte35TimeSignalSettingsScte35DescriptorsScte35DescriptorSettingsSegmentationDescriptorScte35DescriptorSettingsDeliveryRestrictionsTypeDef(
    _DescribeSchedulePaginateResponseScheduleActionsScheduleActionSettingsScte35TimeSignalSettingsScte35DescriptorsScte35DescriptorSettingsSegmentationDescriptorScte35DescriptorSettingsDeliveryRestrictionsTypeDef
):
    """
    Type definition for
    `DescribeSchedulePaginateResponseScheduleActionsScheduleActionSettingsScte35TimeSignalSettingsScte35DescriptorsScte35DescriptorSettingsSegmentationDescriptorScte35DescriptorSettings`
    `DeliveryRestrictions`

    - **ArchiveAllowedFlag** *(string) --* Corresponds to SCTE-35 archive_allowed_flag.

    - **DeviceRestrictions** *(string) --* Corresponds to SCTE-35 device_restrictions parameter.

    - **NoRegionalBlackoutFlag** *(string) --* Corresponds to SCTE-35 no_regional_blackout_flag
    parameter.

    - **WebDeliveryAllowedFlag** *(string) --* Corresponds to SCTE-35 web_delivery_allowed_flag
    parameter.
    """


_DescribeSchedulePaginateResponseScheduleActionsScheduleActionSettingsScte35TimeSignalSettingsScte35DescriptorsScte35DescriptorSettingsSegmentationDescriptorScte35DescriptorSettingsTypeDef = TypedDict(
    "_DescribeSchedulePaginateResponseScheduleActionsScheduleActionSettingsScte35TimeSignalSettingsScte35DescriptorsScte35DescriptorSettingsSegmentationDescriptorScte35DescriptorSettingsTypeDef",
    {
        "DeliveryRestrictions": DescribeSchedulePaginateResponseScheduleActionsScheduleActionSettingsScte35TimeSignalSettingsScte35DescriptorsScte35DescriptorSettingsSegmentationDescriptorScte35DescriptorSettingsDeliveryRestrictionsTypeDef,
        "SegmentNum": int,
        "SegmentationCancelIndicator": str,
        "SegmentationDuration": int,
        "SegmentationEventId": int,
        "SegmentationTypeId": int,
        "SegmentationUpid": str,
        "SegmentationUpidType": int,
        "SegmentsExpected": int,
        "SubSegmentNum": int,
        "SubSegmentsExpected": int,
    },
    total=False,
)


class DescribeSchedulePaginateResponseScheduleActionsScheduleActionSettingsScte35TimeSignalSettingsScte35DescriptorsScte35DescriptorSettingsSegmentationDescriptorScte35DescriptorSettingsTypeDef(
    _DescribeSchedulePaginateResponseScheduleActionsScheduleActionSettingsScte35TimeSignalSettingsScte35DescriptorsScte35DescriptorSettingsSegmentationDescriptorScte35DescriptorSettingsTypeDef
):
    """
    Type definition for
    `DescribeSchedulePaginateResponseScheduleActionsScheduleActionSettingsScte35TimeSignalSettingsScte35DescriptorsScte35DescriptorSettings`
    `SegmentationDescriptorScte35DescriptorSettings`

    - **DeliveryRestrictions** *(dict) --* Holds the four SCTE-35 delivery restriction parameters.

      - **ArchiveAllowedFlag** *(string) --* Corresponds to SCTE-35 archive_allowed_flag.

      - **DeviceRestrictions** *(string) --* Corresponds to SCTE-35 device_restrictions parameter.

      - **NoRegionalBlackoutFlag** *(string) --* Corresponds to SCTE-35 no_regional_blackout_flag
      parameter.

      - **WebDeliveryAllowedFlag** *(string) --* Corresponds to SCTE-35 web_delivery_allowed_flag
      parameter.

    - **SegmentNum** *(integer) --* Corresponds to SCTE-35 segment_num. A value that is valid for
    the specified segmentation_type_id.

    - **SegmentationCancelIndicator** *(string) --* Corresponds to SCTE-35
    segmentation_event_cancel_indicator.

    - **SegmentationDuration** *(integer) --* Corresponds to SCTE-35 segmentation_duration.
    Optional. The duration for the time_signal, in 90 KHz ticks. To convert seconds to ticks,
    multiple the seconds by 90,000. Enter time in 90 KHz clock ticks. If you do not enter a
    duration, the time_signal will continue until you insert a cancellation message.

    - **SegmentationEventId** *(integer) --* Corresponds to SCTE-35 segmentation_event_id.

    - **SegmentationTypeId** *(integer) --* Corresponds to SCTE-35 segmentation_type_id. One of the
    segmentation_type_id values listed in the SCTE-35 specification. On the console, enter the ID in
    decimal (for example, "52"). In the CLI, API, or an SDK, enter the ID in hex (for example,
    "0x34") or decimal (for example, "52").

    - **SegmentationUpid** *(string) --* Corresponds to SCTE-35 segmentation_upid. Enter a string
    containing the hexadecimal representation of the characters that make up the SCTE-35
    segmentation_upid value. Must contain an even number of hex characters. Do not include spaces
    between each hex pair. For example, the ASCII "ADS Information" becomes hex
    "41445320496e666f726d6174696f6e.

    - **SegmentationUpidType** *(integer) --* Corresponds to SCTE-35 segmentation_upid_type. On the
    console, enter one of the types listed in the SCTE-35 specification, converted to a decimal. For
    example, "0x0C" hex from the specification is "12" in decimal. In the CLI, API, or an SDK, enter
    one of the types listed in the SCTE-35 specification, in either hex (for example, "0x0C" ) or in
    decimal (for example, "12").

    - **SegmentsExpected** *(integer) --* Corresponds to SCTE-35 segments_expected. A value that is
    valid for the specified segmentation_type_id.

    - **SubSegmentNum** *(integer) --* Corresponds to SCTE-35 sub_segment_num. A value that is valid
    for the specified segmentation_type_id.

    - **SubSegmentsExpected** *(integer) --* Corresponds to SCTE-35 sub_segments_expected. A value
    that is valid for the specified segmentation_type_id.
    """


_DescribeSchedulePaginateResponseScheduleActionsScheduleActionSettingsScte35TimeSignalSettingsScte35DescriptorsScte35DescriptorSettingsTypeDef = TypedDict(
    "_DescribeSchedulePaginateResponseScheduleActionsScheduleActionSettingsScte35TimeSignalSettingsScte35DescriptorsScte35DescriptorSettingsTypeDef",
    {
        "SegmentationDescriptorScte35DescriptorSettings": DescribeSchedulePaginateResponseScheduleActionsScheduleActionSettingsScte35TimeSignalSettingsScte35DescriptorsScte35DescriptorSettingsSegmentationDescriptorScte35DescriptorSettingsTypeDef
    },
    total=False,
)


class DescribeSchedulePaginateResponseScheduleActionsScheduleActionSettingsScte35TimeSignalSettingsScte35DescriptorsScte35DescriptorSettingsTypeDef(
    _DescribeSchedulePaginateResponseScheduleActionsScheduleActionSettingsScte35TimeSignalSettingsScte35DescriptorsScte35DescriptorSettingsTypeDef
):
    """
    Type definition for
    `DescribeSchedulePaginateResponseScheduleActionsScheduleActionSettingsScte35TimeSignalSettingsScte35Descriptors`
    `Scte35DescriptorSettings`

    - **SegmentationDescriptorScte35DescriptorSettings** *(dict) --* SCTE-35 Segmentation
    Descriptor.

      - **DeliveryRestrictions** *(dict) --* Holds the four SCTE-35 delivery restriction parameters.

        - **ArchiveAllowedFlag** *(string) --* Corresponds to SCTE-35 archive_allowed_flag.

        - **DeviceRestrictions** *(string) --* Corresponds to SCTE-35 device_restrictions parameter.

        - **NoRegionalBlackoutFlag** *(string) --* Corresponds to SCTE-35 no_regional_blackout_flag
        parameter.

        - **WebDeliveryAllowedFlag** *(string) --* Corresponds to SCTE-35 web_delivery_allowed_flag
        parameter.

      - **SegmentNum** *(integer) --* Corresponds to SCTE-35 segment_num. A value that is valid for
      the specified segmentation_type_id.

      - **SegmentationCancelIndicator** *(string) --* Corresponds to SCTE-35
      segmentation_event_cancel_indicator.

      - **SegmentationDuration** *(integer) --* Corresponds to SCTE-35 segmentation_duration.
      Optional. The duration for the time_signal, in 90 KHz ticks. To convert seconds to ticks,
      multiple the seconds by 90,000. Enter time in 90 KHz clock ticks. If you do not enter a
      duration, the time_signal will continue until you insert a cancellation message.

      - **SegmentationEventId** *(integer) --* Corresponds to SCTE-35 segmentation_event_id.

      - **SegmentationTypeId** *(integer) --* Corresponds to SCTE-35 segmentation_type_id. One of
      the segmentation_type_id values listed in the SCTE-35 specification. On the console, enter the
      ID in decimal (for example, "52"). In the CLI, API, or an SDK, enter the ID in hex (for
      example, "0x34") or decimal (for example, "52").

      - **SegmentationUpid** *(string) --* Corresponds to SCTE-35 segmentation_upid. Enter a string
      containing the hexadecimal representation of the characters that make up the SCTE-35
      segmentation_upid value. Must contain an even number of hex characters. Do not include spaces
      between each hex pair. For example, the ASCII "ADS Information" becomes hex
      "41445320496e666f726d6174696f6e.

      - **SegmentationUpidType** *(integer) --* Corresponds to SCTE-35 segmentation_upid_type. On
      the console, enter one of the types listed in the SCTE-35 specification, converted to a
      decimal. For example, "0x0C" hex from the specification is "12" in decimal. In the CLI, API,
      or an SDK, enter one of the types listed in the SCTE-35 specification, in either hex (for
      example, "0x0C" ) or in decimal (for example, "12").

      - **SegmentsExpected** *(integer) --* Corresponds to SCTE-35 segments_expected. A value that
      is valid for the specified segmentation_type_id.

      - **SubSegmentNum** *(integer) --* Corresponds to SCTE-35 sub_segment_num. A value that is
      valid for the specified segmentation_type_id.

      - **SubSegmentsExpected** *(integer) --* Corresponds to SCTE-35 sub_segments_expected. A value
      that is valid for the specified segmentation_type_id.
    """


_DescribeSchedulePaginateResponseScheduleActionsScheduleActionSettingsScte35TimeSignalSettingsScte35DescriptorsTypeDef = TypedDict(
    "_DescribeSchedulePaginateResponseScheduleActionsScheduleActionSettingsScte35TimeSignalSettingsScte35DescriptorsTypeDef",
    {
        "Scte35DescriptorSettings": DescribeSchedulePaginateResponseScheduleActionsScheduleActionSettingsScte35TimeSignalSettingsScte35DescriptorsScte35DescriptorSettingsTypeDef
    },
    total=False,
)


class DescribeSchedulePaginateResponseScheduleActionsScheduleActionSettingsScte35TimeSignalSettingsScte35DescriptorsTypeDef(
    _DescribeSchedulePaginateResponseScheduleActionsScheduleActionSettingsScte35TimeSignalSettingsScte35DescriptorsTypeDef
):
    """
    Type definition for
    `DescribeSchedulePaginateResponseScheduleActionsScheduleActionSettingsScte35TimeSignalSettings`
    `Scte35Descriptors`

    - **Scte35DescriptorSettings** *(dict) --* SCTE-35 Descriptor Settings.

      - **SegmentationDescriptorScte35DescriptorSettings** *(dict) --* SCTE-35 Segmentation
      Descriptor.

        - **DeliveryRestrictions** *(dict) --* Holds the four SCTE-35 delivery restriction
        parameters.

          - **ArchiveAllowedFlag** *(string) --* Corresponds to SCTE-35 archive_allowed_flag.

          - **DeviceRestrictions** *(string) --* Corresponds to SCTE-35 device_restrictions
          parameter.

          - **NoRegionalBlackoutFlag** *(string) --* Corresponds to SCTE-35
          no_regional_blackout_flag parameter.

          - **WebDeliveryAllowedFlag** *(string) --* Corresponds to SCTE-35
          web_delivery_allowed_flag parameter.

        - **SegmentNum** *(integer) --* Corresponds to SCTE-35 segment_num. A value that is valid
        for the specified segmentation_type_id.

        - **SegmentationCancelIndicator** *(string) --* Corresponds to SCTE-35
        segmentation_event_cancel_indicator.

        - **SegmentationDuration** *(integer) --* Corresponds to SCTE-35 segmentation_duration.
        Optional. The duration for the time_signal, in 90 KHz ticks. To convert seconds to ticks,
        multiple the seconds by 90,000. Enter time in 90 KHz clock ticks. If you do not enter a
        duration, the time_signal will continue until you insert a cancellation message.

        - **SegmentationEventId** *(integer) --* Corresponds to SCTE-35 segmentation_event_id.

        - **SegmentationTypeId** *(integer) --* Corresponds to SCTE-35 segmentation_type_id. One of
        the segmentation_type_id values listed in the SCTE-35 specification. On the console, enter
        the ID in decimal (for example, "52"). In the CLI, API, or an SDK, enter the ID in hex (for
        example, "0x34") or decimal (for example, "52").

        - **SegmentationUpid** *(string) --* Corresponds to SCTE-35 segmentation_upid. Enter a
        string containing the hexadecimal representation of the characters that make up the SCTE-35
        segmentation_upid value. Must contain an even number of hex characters. Do not include
        spaces between each hex pair. For example, the ASCII "ADS Information" becomes hex
        "41445320496e666f726d6174696f6e.

        - **SegmentationUpidType** *(integer) --* Corresponds to SCTE-35 segmentation_upid_type. On
        the console, enter one of the types listed in the SCTE-35 specification, converted to a
        decimal. For example, "0x0C" hex from the specification is "12" in decimal. In the CLI, API,
        or an SDK, enter one of the types listed in the SCTE-35 specification, in either hex (for
        example, "0x0C" ) or in decimal (for example, "12").

        - **SegmentsExpected** *(integer) --* Corresponds to SCTE-35 segments_expected. A value that
        is valid for the specified segmentation_type_id.

        - **SubSegmentNum** *(integer) --* Corresponds to SCTE-35 sub_segment_num. A value that is
        valid for the specified segmentation_type_id.

        - **SubSegmentsExpected** *(integer) --* Corresponds to SCTE-35 sub_segments_expected. A
        value that is valid for the specified segmentation_type_id.
    """


_DescribeSchedulePaginateResponseScheduleActionsScheduleActionSettingsScte35TimeSignalSettingsTypeDef = TypedDict(
    "_DescribeSchedulePaginateResponseScheduleActionsScheduleActionSettingsScte35TimeSignalSettingsTypeDef",
    {
        "Scte35Descriptors": List[
            DescribeSchedulePaginateResponseScheduleActionsScheduleActionSettingsScte35TimeSignalSettingsScte35DescriptorsTypeDef
        ]
    },
    total=False,
)


class DescribeSchedulePaginateResponseScheduleActionsScheduleActionSettingsScte35TimeSignalSettingsTypeDef(
    _DescribeSchedulePaginateResponseScheduleActionsScheduleActionSettingsScte35TimeSignalSettingsTypeDef
):
    """
    Type definition for `DescribeSchedulePaginateResponseScheduleActionsScheduleActionSettings`
    `Scte35TimeSignalSettings`

    - **Scte35Descriptors** *(list) --* The list of SCTE-35 descriptors accompanying the SCTE-35
    time_signal.

      - *(dict) --* Holds one set of SCTE-35 Descriptor Settings.

        - **Scte35DescriptorSettings** *(dict) --* SCTE-35 Descriptor Settings.

          - **SegmentationDescriptorScte35DescriptorSettings** *(dict) --* SCTE-35 Segmentation
          Descriptor.

            - **DeliveryRestrictions** *(dict) --* Holds the four SCTE-35 delivery restriction
            parameters.

              - **ArchiveAllowedFlag** *(string) --* Corresponds to SCTE-35 archive_allowed_flag.

              - **DeviceRestrictions** *(string) --* Corresponds to SCTE-35 device_restrictions
              parameter.

              - **NoRegionalBlackoutFlag** *(string) --* Corresponds to SCTE-35
              no_regional_blackout_flag parameter.

              - **WebDeliveryAllowedFlag** *(string) --* Corresponds to SCTE-35
              web_delivery_allowed_flag parameter.

            - **SegmentNum** *(integer) --* Corresponds to SCTE-35 segment_num. A value that is
            valid for the specified segmentation_type_id.

            - **SegmentationCancelIndicator** *(string) --* Corresponds to SCTE-35
            segmentation_event_cancel_indicator.

            - **SegmentationDuration** *(integer) --* Corresponds to SCTE-35 segmentation_duration.
            Optional. The duration for the time_signal, in 90 KHz ticks. To convert seconds to
            ticks, multiple the seconds by 90,000. Enter time in 90 KHz clock ticks. If you do not
            enter a duration, the time_signal will continue until you insert a cancellation message.

            - **SegmentationEventId** *(integer) --* Corresponds to SCTE-35 segmentation_event_id.

            - **SegmentationTypeId** *(integer) --* Corresponds to SCTE-35 segmentation_type_id. One
            of the segmentation_type_id values listed in the SCTE-35 specification. On the console,
            enter the ID in decimal (for example, "52"). In the CLI, API, or an SDK, enter the ID in
            hex (for example, "0x34") or decimal (for example, "52").

            - **SegmentationUpid** *(string) --* Corresponds to SCTE-35 segmentation_upid. Enter a
            string containing the hexadecimal representation of the characters that make up the
            SCTE-35 segmentation_upid value. Must contain an even number of hex characters. Do not
            include spaces between each hex pair. For example, the ASCII "ADS Information" becomes
            hex "41445320496e666f726d6174696f6e.

            - **SegmentationUpidType** *(integer) --* Corresponds to SCTE-35 segmentation_upid_type.
            On the console, enter one of the types listed in the SCTE-35 specification, converted to
            a decimal. For example, "0x0C" hex from the specification is "12" in decimal. In the
            CLI, API, or an SDK, enter one of the types listed in the SCTE-35 specification, in
            either hex (for example, "0x0C" ) or in decimal (for example, "12").

            - **SegmentsExpected** *(integer) --* Corresponds to SCTE-35 segments_expected. A value
            that is valid for the specified segmentation_type_id.

            - **SubSegmentNum** *(integer) --* Corresponds to SCTE-35 sub_segment_num. A value that
            is valid for the specified segmentation_type_id.

            - **SubSegmentsExpected** *(integer) --* Corresponds to SCTE-35 sub_segments_expected. A
            value that is valid for the specified segmentation_type_id.
    """


_DescribeSchedulePaginateResponseScheduleActionsScheduleActionSettingsStaticImageActivateSettingsImageTypeDef = TypedDict(
    "_DescribeSchedulePaginateResponseScheduleActionsScheduleActionSettingsStaticImageActivateSettingsImageTypeDef",
    {"PasswordParam": str, "Uri": str, "Username": str},
    total=False,
)


class DescribeSchedulePaginateResponseScheduleActionsScheduleActionSettingsStaticImageActivateSettingsImageTypeDef(
    _DescribeSchedulePaginateResponseScheduleActionsScheduleActionSettingsStaticImageActivateSettingsImageTypeDef
):
    """
    Type definition for
    `DescribeSchedulePaginateResponseScheduleActionsScheduleActionSettingsStaticImageActivateSettings`
    `Image`

    - **PasswordParam** *(string) --* key used to extract the password from EC2 Parameter store

    - **Uri** *(string) --* Uniform Resource Identifier - This should be a path to a file accessible
    to the Live system (eg. a http:// URI) depending on the output type. For example, a RTMP
    destination should have a uri simliar to: "rtmp://fmsserver/live".

    - **Username** *(string) --* Documentation update needed
    """


_DescribeSchedulePaginateResponseScheduleActionsScheduleActionSettingsStaticImageActivateSettingsTypeDef = TypedDict(
    "_DescribeSchedulePaginateResponseScheduleActionsScheduleActionSettingsStaticImageActivateSettingsTypeDef",
    {
        "Duration": int,
        "FadeIn": int,
        "FadeOut": int,
        "Height": int,
        "Image": DescribeSchedulePaginateResponseScheduleActionsScheduleActionSettingsStaticImageActivateSettingsImageTypeDef,
        "ImageX": int,
        "ImageY": int,
        "Layer": int,
        "Opacity": int,
        "Width": int,
    },
    total=False,
)


class DescribeSchedulePaginateResponseScheduleActionsScheduleActionSettingsStaticImageActivateSettingsTypeDef(
    _DescribeSchedulePaginateResponseScheduleActionsScheduleActionSettingsStaticImageActivateSettingsTypeDef
):
    """
    Type definition for `DescribeSchedulePaginateResponseScheduleActionsScheduleActionSettings`
    `StaticImageActivateSettings`

    - **Duration** *(integer) --* The duration in milliseconds for the image to remain on the video.
    If omitted or set to 0 the duration is unlimited and the image will remain until it is
    explicitly deactivated.

    - **FadeIn** *(integer) --* The time in milliseconds for the image to fade in. The fade-in
    starts at the start time of the overlay. Default is 0 (no fade-in).

    - **FadeOut** *(integer) --* Applies only if a duration is specified. The time in milliseconds
    for the image to fade out. The fade-out starts when the duration time is hit, so it effectively
    extends the duration. Default is 0 (no fade-out).

    - **Height** *(integer) --* The height of the image when inserted into the video, in pixels. The
    overlay will be scaled up or down to the specified height. Leave blank to use the native height
    of the overlay.

    - **Image** *(dict) --* The location and filename of the image file to overlay on the video. The
    file must be a 32-bit BMP, PNG, or TGA file, and must not be larger (in pixels) than the input
    video.

      - **PasswordParam** *(string) --* key used to extract the password from EC2 Parameter store

      - **Uri** *(string) --* Uniform Resource Identifier - This should be a path to a file
      accessible to the Live system (eg. a http:// URI) depending on the output type. For example, a
      RTMP destination should have a uri simliar to: "rtmp://fmsserver/live".

      - **Username** *(string) --* Documentation update needed

    - **ImageX** *(integer) --* Placement of the left edge of the overlay relative to the left edge
    of the video frame, in pixels. 0 (the default) is the left edge of the frame. If the placement
    causes the overlay to extend beyond the right edge of the underlying video, then the overlay is
    cropped on the right.

    - **ImageY** *(integer) --* Placement of the top edge of the overlay relative to the top edge of
    the video frame, in pixels. 0 (the default) is the top edge of the frame. If the placement
    causes the overlay to extend beyond the bottom edge of the underlying video, then the overlay is
    cropped on the bottom.

    - **Layer** *(integer) --* The number of the layer, 0 to 7. There are 8 layers that can be
    overlaid on the video, each layer with a different image. The layers are in Z order, which means
    that overlays with higher values of layer are inserted on top of overlays with lower values of
    layer. Default is 0.

    - **Opacity** *(integer) --* Opacity of image where 0 is transparent and 100 is fully opaque.
    Default is 100.

    - **Width** *(integer) --* The width of the image when inserted into the video, in pixels. The
    overlay will be scaled up or down to the specified width. Leave blank to use the native width of
    the overlay.
    """


_DescribeSchedulePaginateResponseScheduleActionsScheduleActionSettingsStaticImageDeactivateSettingsTypeDef = TypedDict(
    "_DescribeSchedulePaginateResponseScheduleActionsScheduleActionSettingsStaticImageDeactivateSettingsTypeDef",
    {"FadeOut": int, "Layer": int},
    total=False,
)


class DescribeSchedulePaginateResponseScheduleActionsScheduleActionSettingsStaticImageDeactivateSettingsTypeDef(
    _DescribeSchedulePaginateResponseScheduleActionsScheduleActionSettingsStaticImageDeactivateSettingsTypeDef
):
    """
    Type definition for `DescribeSchedulePaginateResponseScheduleActionsScheduleActionSettings`
    `StaticImageDeactivateSettings`

    - **FadeOut** *(integer) --* The time in milliseconds for the image to fade out. Default is 0
    (no fade-out).

    - **Layer** *(integer) --* The image overlay layer to deactivate, 0 to 7. Default is 0.
    """


_DescribeSchedulePaginateResponseScheduleActionsScheduleActionSettingsTypeDef = TypedDict(
    "_DescribeSchedulePaginateResponseScheduleActionsScheduleActionSettingsTypeDef",
    {
        "HlsTimedMetadataSettings": DescribeSchedulePaginateResponseScheduleActionsScheduleActionSettingsHlsTimedMetadataSettingsTypeDef,
        "InputSwitchSettings": DescribeSchedulePaginateResponseScheduleActionsScheduleActionSettingsInputSwitchSettingsTypeDef,
        "PauseStateSettings": DescribeSchedulePaginateResponseScheduleActionsScheduleActionSettingsPauseStateSettingsTypeDef,
        "Scte35ReturnToNetworkSettings": DescribeSchedulePaginateResponseScheduleActionsScheduleActionSettingsScte35ReturnToNetworkSettingsTypeDef,
        "Scte35SpliceInsertSettings": DescribeSchedulePaginateResponseScheduleActionsScheduleActionSettingsScte35SpliceInsertSettingsTypeDef,
        "Scte35TimeSignalSettings": DescribeSchedulePaginateResponseScheduleActionsScheduleActionSettingsScte35TimeSignalSettingsTypeDef,
        "StaticImageActivateSettings": DescribeSchedulePaginateResponseScheduleActionsScheduleActionSettingsStaticImageActivateSettingsTypeDef,
        "StaticImageDeactivateSettings": DescribeSchedulePaginateResponseScheduleActionsScheduleActionSettingsStaticImageDeactivateSettingsTypeDef,
    },
    total=False,
)


class DescribeSchedulePaginateResponseScheduleActionsScheduleActionSettingsTypeDef(
    _DescribeSchedulePaginateResponseScheduleActionsScheduleActionSettingsTypeDef
):
    """
    Type definition for `DescribeSchedulePaginateResponseScheduleActions` `ScheduleActionSettings`

    - **HlsTimedMetadataSettings** *(dict) --* Action to insert HLS metadata

      - **Id3** *(string) --* Base64 string formatted according to the ID3 specification:
      http://id3.org/id3v2.4.0-structure

    - **InputSwitchSettings** *(dict) --* Action to switch the input

      - **InputAttachmentNameReference** *(string) --* The name of the input attachment (not the
      name of the input!) to switch to. The name is specified in the channel configuration.

      - **InputClippingSettings** *(dict) --* Settings to let you create a clip of the file input,
      in order to set up the input to ingest only a portion of the file.

        - **InputTimecodeSource** *(string) --* The source of the timecodes in the source being
        clipped.

        - **StartTimecode** *(dict) --* Settings to identify the start of the clip.

          - **Timecode** *(string) --* The timecode for the frame where you want to start the clip.
          Optional; if not specified, the clip starts at first frame in the file. Enter the timecode
          as HH:MM:SS:FF or HH:MM:SS;FF.

        - **StopTimecode** *(dict) --* Settings to identify the end of the clip.

          - **LastFrameClippingBehavior** *(string) --* If you specify a StopTimecode in an input
          (in order to clip the file), you can specify if you want the clip to exclude (the default)
          or include the frame specified by the timecode.

          - **Timecode** *(string) --* The timecode for the frame where you want to stop the clip.
          Optional; if not specified, the clip continues to the end of the file. Enter the timecode
          as HH:MM:SS:FF or HH:MM:SS;FF.

      - **UrlPath** *(list) --* The value for the variable portion of the URL for the dynamic input,
      for this instance of the input. Each time you use the same dynamic input in an input switch
      action, you can provide a different value, in order to connect the input to a different
      content source.

        - *(string) --* Placeholder documentation for __string

    - **PauseStateSettings** *(dict) --* Action to pause or unpause one or both channel pipelines

      - **Pipelines** *(list) --* Placeholder documentation for __listOfPipelinePauseStateSettings

        - *(dict) --* Settings for pausing a pipeline.

          - **PipelineId** *(string) --* Pipeline ID to pause ("PIPELINE_0" or "PIPELINE_1").

    - **Scte35ReturnToNetworkSettings** *(dict) --* Action to insert SCTE-35 return_to_network
    message

      - **SpliceEventId** *(integer) --* The splice_event_id for the SCTE-35 splice_insert, as
      defined in SCTE-35.

    - **Scte35SpliceInsertSettings** *(dict) --* Action to insert SCTE-35 splice_insert message

      - **Duration** *(integer) --* Optional, the duration for the splice_insert, in 90 KHz ticks.
      To convert seconds to ticks, multiple the seconds by 90,000. If you enter a duration, there is
      an expectation that the downstream system can read the duration and cue in at that time. If
      you do not enter a duration, the splice_insert will continue indefinitely and there is an
      expectation that you will enter a return_to_network to end the splice_insert at the
      appropriate time.

      - **SpliceEventId** *(integer) --* The splice_event_id for the SCTE-35 splice_insert, as
      defined in SCTE-35.

    - **Scte35TimeSignalSettings** *(dict) --* Action to insert SCTE-35 time_signal message

      - **Scte35Descriptors** *(list) --* The list of SCTE-35 descriptors accompanying the SCTE-35
      time_signal.

        - *(dict) --* Holds one set of SCTE-35 Descriptor Settings.

          - **Scte35DescriptorSettings** *(dict) --* SCTE-35 Descriptor Settings.

            - **SegmentationDescriptorScte35DescriptorSettings** *(dict) --* SCTE-35 Segmentation
            Descriptor.

              - **DeliveryRestrictions** *(dict) --* Holds the four SCTE-35 delivery restriction
              parameters.

                - **ArchiveAllowedFlag** *(string) --* Corresponds to SCTE-35 archive_allowed_flag.

                - **DeviceRestrictions** *(string) --* Corresponds to SCTE-35 device_restrictions
                parameter.

                - **NoRegionalBlackoutFlag** *(string) --* Corresponds to SCTE-35
                no_regional_blackout_flag parameter.

                - **WebDeliveryAllowedFlag** *(string) --* Corresponds to SCTE-35
                web_delivery_allowed_flag parameter.

              - **SegmentNum** *(integer) --* Corresponds to SCTE-35 segment_num. A value that is
              valid for the specified segmentation_type_id.

              - **SegmentationCancelIndicator** *(string) --* Corresponds to SCTE-35
              segmentation_event_cancel_indicator.

              - **SegmentationDuration** *(integer) --* Corresponds to SCTE-35
              segmentation_duration. Optional. The duration for the time_signal, in 90 KHz ticks. To
              convert seconds to ticks, multiple the seconds by 90,000. Enter time in 90 KHz clock
              ticks. If you do not enter a duration, the time_signal will continue until you insert
              a cancellation message.

              - **SegmentationEventId** *(integer) --* Corresponds to SCTE-35 segmentation_event_id.

              - **SegmentationTypeId** *(integer) --* Corresponds to SCTE-35 segmentation_type_id.
              One of the segmentation_type_id values listed in the SCTE-35 specification. On the
              console, enter the ID in decimal (for example, "52"). In the CLI, API, or an SDK,
              enter the ID in hex (for example, "0x34") or decimal (for example, "52").

              - **SegmentationUpid** *(string) --* Corresponds to SCTE-35 segmentation_upid. Enter a
              string containing the hexadecimal representation of the characters that make up the
              SCTE-35 segmentation_upid value. Must contain an even number of hex characters. Do not
              include spaces between each hex pair. For example, the ASCII "ADS Information" becomes
              hex "41445320496e666f726d6174696f6e.

              - **SegmentationUpidType** *(integer) --* Corresponds to SCTE-35
              segmentation_upid_type. On the console, enter one of the types listed in the SCTE-35
              specification, converted to a decimal. For example, "0x0C" hex from the specification
              is "12" in decimal. In the CLI, API, or an SDK, enter one of the types listed in the
              SCTE-35 specification, in either hex (for example, "0x0C" ) or in decimal (for
              example, "12").

              - **SegmentsExpected** *(integer) --* Corresponds to SCTE-35 segments_expected. A
              value that is valid for the specified segmentation_type_id.

              - **SubSegmentNum** *(integer) --* Corresponds to SCTE-35 sub_segment_num. A value
              that is valid for the specified segmentation_type_id.

              - **SubSegmentsExpected** *(integer) --* Corresponds to SCTE-35 sub_segments_expected.
              A value that is valid for the specified segmentation_type_id.

    - **StaticImageActivateSettings** *(dict) --* Action to activate a static image overlay

      - **Duration** *(integer) --* The duration in milliseconds for the image to remain on the
      video. If omitted or set to 0 the duration is unlimited and the image will remain until it is
      explicitly deactivated.

      - **FadeIn** *(integer) --* The time in milliseconds for the image to fade in. The fade-in
      starts at the start time of the overlay. Default is 0 (no fade-in).

      - **FadeOut** *(integer) --* Applies only if a duration is specified. The time in milliseconds
      for the image to fade out. The fade-out starts when the duration time is hit, so it
      effectively extends the duration. Default is 0 (no fade-out).

      - **Height** *(integer) --* The height of the image when inserted into the video, in pixels.
      The overlay will be scaled up or down to the specified height. Leave blank to use the native
      height of the overlay.

      - **Image** *(dict) --* The location and filename of the image file to overlay on the video.
      The file must be a 32-bit BMP, PNG, or TGA file, and must not be larger (in pixels) than the
      input video.

        - **PasswordParam** *(string) --* key used to extract the password from EC2 Parameter store

        - **Uri** *(string) --* Uniform Resource Identifier - This should be a path to a file
        accessible to the Live system (eg. a http:// URI) depending on the output type. For example,
        a RTMP destination should have a uri simliar to: "rtmp://fmsserver/live".

        - **Username** *(string) --* Documentation update needed

      - **ImageX** *(integer) --* Placement of the left edge of the overlay relative to the left
      edge of the video frame, in pixels. 0 (the default) is the left edge of the frame. If the
      placement causes the overlay to extend beyond the right edge of the underlying video, then the
      overlay is cropped on the right.

      - **ImageY** *(integer) --* Placement of the top edge of the overlay relative to the top edge
      of the video frame, in pixels. 0 (the default) is the top edge of the frame. If the placement
      causes the overlay to extend beyond the bottom edge of the underlying video, then the overlay
      is cropped on the bottom.

      - **Layer** *(integer) --* The number of the layer, 0 to 7. There are 8 layers that can be
      overlaid on the video, each layer with a different image. The layers are in Z order, which
      means that overlays with higher values of layer are inserted on top of overlays with lower
      values of layer. Default is 0.

      - **Opacity** *(integer) --* Opacity of image where 0 is transparent and 100 is fully opaque.
      Default is 100.

      - **Width** *(integer) --* The width of the image when inserted into the video, in pixels. The
      overlay will be scaled up or down to the specified width. Leave blank to use the native width
      of the overlay.

    - **StaticImageDeactivateSettings** *(dict) --* Action to deactivate a static image overlay

      - **FadeOut** *(integer) --* The time in milliseconds for the image to fade out. Default is 0
      (no fade-out).

      - **Layer** *(integer) --* The image overlay layer to deactivate, 0 to 7. Default is 0.
    """


_DescribeSchedulePaginateResponseScheduleActionsScheduleActionStartSettingsFixedModeScheduleActionStartSettingsTypeDef = TypedDict(
    "_DescribeSchedulePaginateResponseScheduleActionsScheduleActionStartSettingsFixedModeScheduleActionStartSettingsTypeDef",
    {"Time": str},
    total=False,
)


class DescribeSchedulePaginateResponseScheduleActionsScheduleActionStartSettingsFixedModeScheduleActionStartSettingsTypeDef(
    _DescribeSchedulePaginateResponseScheduleActionsScheduleActionStartSettingsFixedModeScheduleActionStartSettingsTypeDef
):
    """
    Type definition for `DescribeSchedulePaginateResponseScheduleActionsScheduleActionStartSettings`
    `FixedModeScheduleActionStartSettings`

    - **Time** *(string) --* Start time for the action to start in the channel. (Not the time for
    the action to be added to the schedule: actions are always added to the schedule immediately.)
    UTC format: yyyy-mm-ddThh:mm:ss.nnnZ. All the letters are digits (for example, mm might be 01)
    except for the two constants "T" for time and "Z" for "UTC format".
    """


_DescribeSchedulePaginateResponseScheduleActionsScheduleActionStartSettingsFollowModeScheduleActionStartSettingsTypeDef = TypedDict(
    "_DescribeSchedulePaginateResponseScheduleActionsScheduleActionStartSettingsFollowModeScheduleActionStartSettingsTypeDef",
    {"FollowPoint": str, "ReferenceActionName": str},
    total=False,
)


class DescribeSchedulePaginateResponseScheduleActionsScheduleActionStartSettingsFollowModeScheduleActionStartSettingsTypeDef(
    _DescribeSchedulePaginateResponseScheduleActionsScheduleActionStartSettingsFollowModeScheduleActionStartSettingsTypeDef
):
    """
    Type definition for `DescribeSchedulePaginateResponseScheduleActionsScheduleActionStartSettings`
    `FollowModeScheduleActionStartSettings`

    - **FollowPoint** *(string) --* Identifies whether this action starts relative to the start or
    relative to the end of the reference action.

    - **ReferenceActionName** *(string) --* The action name of another action that this one refers
    to.
    """


_DescribeSchedulePaginateResponseScheduleActionsScheduleActionStartSettingsTypeDef = TypedDict(
    "_DescribeSchedulePaginateResponseScheduleActionsScheduleActionStartSettingsTypeDef",
    {
        "FixedModeScheduleActionStartSettings": DescribeSchedulePaginateResponseScheduleActionsScheduleActionStartSettingsFixedModeScheduleActionStartSettingsTypeDef,
        "FollowModeScheduleActionStartSettings": DescribeSchedulePaginateResponseScheduleActionsScheduleActionStartSettingsFollowModeScheduleActionStartSettingsTypeDef,
        "ImmediateModeScheduleActionStartSettings": Dict[str, Any],
    },
    total=False,
)


class DescribeSchedulePaginateResponseScheduleActionsScheduleActionStartSettingsTypeDef(
    _DescribeSchedulePaginateResponseScheduleActionsScheduleActionStartSettingsTypeDef
):
    """
    Type definition for `DescribeSchedulePaginateResponseScheduleActions`
    `ScheduleActionStartSettings`

    - **FixedModeScheduleActionStartSettings** *(dict) --* Option for specifying the start time for
    an action.

      - **Time** *(string) --* Start time for the action to start in the channel. (Not the time for
      the action to be added to the schedule: actions are always added to the schedule immediately.)
      UTC format: yyyy-mm-ddThh:mm:ss.nnnZ. All the letters are digits (for example, mm might be 01)
      except for the two constants "T" for time and "Z" for "UTC format".

    - **FollowModeScheduleActionStartSettings** *(dict) --* Option for specifying an action as
    relative to another action.

      - **FollowPoint** *(string) --* Identifies whether this action starts relative to the start or
      relative to the end of the reference action.

      - **ReferenceActionName** *(string) --* The action name of another action that this one refers
      to.

    - **ImmediateModeScheduleActionStartSettings** *(dict) --* Option for specifying an action that
    should be applied immediately.
    """


_DescribeSchedulePaginateResponseScheduleActionsTypeDef = TypedDict(
    "_DescribeSchedulePaginateResponseScheduleActionsTypeDef",
    {
        "ActionName": str,
        "ScheduleActionSettings": DescribeSchedulePaginateResponseScheduleActionsScheduleActionSettingsTypeDef,
        "ScheduleActionStartSettings": DescribeSchedulePaginateResponseScheduleActionsScheduleActionStartSettingsTypeDef,
    },
    total=False,
)


class DescribeSchedulePaginateResponseScheduleActionsTypeDef(
    _DescribeSchedulePaginateResponseScheduleActionsTypeDef
):
    """
    Type definition for `DescribeSchedulePaginateResponse` `ScheduleActions`

    - **ActionName** *(string) --* The name of the action, must be unique within the schedule. This
    name provides the main reference to an action once it is added to the schedule. A name is unique
    if it is no longer in the schedule. The schedule is automatically cleaned up to remove actions
    with a start time of more than 1 hour ago (approximately) so at that point a name can be reused.

    - **ScheduleActionSettings** *(dict) --* Settings for this schedule action.

      - **HlsTimedMetadataSettings** *(dict) --* Action to insert HLS metadata

        - **Id3** *(string) --* Base64 string formatted according to the ID3 specification:
        http://id3.org/id3v2.4.0-structure

      - **InputSwitchSettings** *(dict) --* Action to switch the input

        - **InputAttachmentNameReference** *(string) --* The name of the input attachment (not the
        name of the input!) to switch to. The name is specified in the channel configuration.

        - **InputClippingSettings** *(dict) --* Settings to let you create a clip of the file input,
        in order to set up the input to ingest only a portion of the file.

          - **InputTimecodeSource** *(string) --* The source of the timecodes in the source being
          clipped.

          - **StartTimecode** *(dict) --* Settings to identify the start of the clip.

            - **Timecode** *(string) --* The timecode for the frame where you want to start the
            clip. Optional; if not specified, the clip starts at first frame in the file. Enter the
            timecode as HH:MM:SS:FF or HH:MM:SS;FF.

          - **StopTimecode** *(dict) --* Settings to identify the end of the clip.

            - **LastFrameClippingBehavior** *(string) --* If you specify a StopTimecode in an input
            (in order to clip the file), you can specify if you want the clip to exclude (the
            default) or include the frame specified by the timecode.

            - **Timecode** *(string) --* The timecode for the frame where you want to stop the clip.
            Optional; if not specified, the clip continues to the end of the file. Enter the
            timecode as HH:MM:SS:FF or HH:MM:SS;FF.

        - **UrlPath** *(list) --* The value for the variable portion of the URL for the dynamic
        input, for this instance of the input. Each time you use the same dynamic input in an input
        switch action, you can provide a different value, in order to connect the input to a
        different content source.

          - *(string) --* Placeholder documentation for __string

      - **PauseStateSettings** *(dict) --* Action to pause or unpause one or both channel pipelines

        - **Pipelines** *(list) --* Placeholder documentation for __listOfPipelinePauseStateSettings

          - *(dict) --* Settings for pausing a pipeline.

            - **PipelineId** *(string) --* Pipeline ID to pause ("PIPELINE_0" or "PIPELINE_1").

      - **Scte35ReturnToNetworkSettings** *(dict) --* Action to insert SCTE-35 return_to_network
      message

        - **SpliceEventId** *(integer) --* The splice_event_id for the SCTE-35 splice_insert, as
        defined in SCTE-35.

      - **Scte35SpliceInsertSettings** *(dict) --* Action to insert SCTE-35 splice_insert message

        - **Duration** *(integer) --* Optional, the duration for the splice_insert, in 90 KHz ticks.
        To convert seconds to ticks, multiple the seconds by 90,000. If you enter a duration, there
        is an expectation that the downstream system can read the duration and cue in at that time.
        If you do not enter a duration, the splice_insert will continue indefinitely and there is an
        expectation that you will enter a return_to_network to end the splice_insert at the
        appropriate time.

        - **SpliceEventId** *(integer) --* The splice_event_id for the SCTE-35 splice_insert, as
        defined in SCTE-35.

      - **Scte35TimeSignalSettings** *(dict) --* Action to insert SCTE-35 time_signal message

        - **Scte35Descriptors** *(list) --* The list of SCTE-35 descriptors accompanying the SCTE-35
        time_signal.

          - *(dict) --* Holds one set of SCTE-35 Descriptor Settings.

            - **Scte35DescriptorSettings** *(dict) --* SCTE-35 Descriptor Settings.

              - **SegmentationDescriptorScte35DescriptorSettings** *(dict) --* SCTE-35 Segmentation
              Descriptor.

                - **DeliveryRestrictions** *(dict) --* Holds the four SCTE-35 delivery restriction
                parameters.

                  - **ArchiveAllowedFlag** *(string) --* Corresponds to SCTE-35
                  archive_allowed_flag.

                  - **DeviceRestrictions** *(string) --* Corresponds to SCTE-35 device_restrictions
                  parameter.

                  - **NoRegionalBlackoutFlag** *(string) --* Corresponds to SCTE-35
                  no_regional_blackout_flag parameter.

                  - **WebDeliveryAllowedFlag** *(string) --* Corresponds to SCTE-35
                  web_delivery_allowed_flag parameter.

                - **SegmentNum** *(integer) --* Corresponds to SCTE-35 segment_num. A value that is
                valid for the specified segmentation_type_id.

                - **SegmentationCancelIndicator** *(string) --* Corresponds to SCTE-35
                segmentation_event_cancel_indicator.

                - **SegmentationDuration** *(integer) --* Corresponds to SCTE-35
                segmentation_duration. Optional. The duration for the time_signal, in 90 KHz ticks.
                To convert seconds to ticks, multiple the seconds by 90,000. Enter time in 90 KHz
                clock ticks. If you do not enter a duration, the time_signal will continue until you
                insert a cancellation message.

                - **SegmentationEventId** *(integer) --* Corresponds to SCTE-35
                segmentation_event_id.

                - **SegmentationTypeId** *(integer) --* Corresponds to SCTE-35 segmentation_type_id.
                One of the segmentation_type_id values listed in the SCTE-35 specification. On the
                console, enter the ID in decimal (for example, "52"). In the CLI, API, or an SDK,
                enter the ID in hex (for example, "0x34") or decimal (for example, "52").

                - **SegmentationUpid** *(string) --* Corresponds to SCTE-35 segmentation_upid. Enter
                a string containing the hexadecimal representation of the characters that make up
                the SCTE-35 segmentation_upid value. Must contain an even number of hex characters.
                Do not include spaces between each hex pair. For example, the ASCII "ADS
                Information" becomes hex "41445320496e666f726d6174696f6e.

                - **SegmentationUpidType** *(integer) --* Corresponds to SCTE-35
                segmentation_upid_type. On the console, enter one of the types listed in the SCTE-35
                specification, converted to a decimal. For example, "0x0C" hex from the
                specification is "12" in decimal. In the CLI, API, or an SDK, enter one of the types
                listed in the SCTE-35 specification, in either hex (for example, "0x0C" ) or in
                decimal (for example, "12").

                - **SegmentsExpected** *(integer) --* Corresponds to SCTE-35 segments_expected. A
                value that is valid for the specified segmentation_type_id.

                - **SubSegmentNum** *(integer) --* Corresponds to SCTE-35 sub_segment_num. A value
                that is valid for the specified segmentation_type_id.

                - **SubSegmentsExpected** *(integer) --* Corresponds to SCTE-35
                sub_segments_expected. A value that is valid for the specified segmentation_type_id.

      - **StaticImageActivateSettings** *(dict) --* Action to activate a static image overlay

        - **Duration** *(integer) --* The duration in milliseconds for the image to remain on the
        video. If omitted or set to 0 the duration is unlimited and the image will remain until it
        is explicitly deactivated.

        - **FadeIn** *(integer) --* The time in milliseconds for the image to fade in. The fade-in
        starts at the start time of the overlay. Default is 0 (no fade-in).

        - **FadeOut** *(integer) --* Applies only if a duration is specified. The time in
        milliseconds for the image to fade out. The fade-out starts when the duration time is hit,
        so it effectively extends the duration. Default is 0 (no fade-out).

        - **Height** *(integer) --* The height of the image when inserted into the video, in pixels.
        The overlay will be scaled up or down to the specified height. Leave blank to use the native
        height of the overlay.

        - **Image** *(dict) --* The location and filename of the image file to overlay on the video.
        The file must be a 32-bit BMP, PNG, or TGA file, and must not be larger (in pixels) than the
        input video.

          - **PasswordParam** *(string) --* key used to extract the password from EC2 Parameter
          store

          - **Uri** *(string) --* Uniform Resource Identifier - This should be a path to a file
          accessible to the Live system (eg. a http:// URI) depending on the output type. For
          example, a RTMP destination should have a uri simliar to: "rtmp://fmsserver/live".

          - **Username** *(string) --* Documentation update needed

        - **ImageX** *(integer) --* Placement of the left edge of the overlay relative to the left
        edge of the video frame, in pixels. 0 (the default) is the left edge of the frame. If the
        placement causes the overlay to extend beyond the right edge of the underlying video, then
        the overlay is cropped on the right.

        - **ImageY** *(integer) --* Placement of the top edge of the overlay relative to the top
        edge of the video frame, in pixels. 0 (the default) is the top edge of the frame. If the
        placement causes the overlay to extend beyond the bottom edge of the underlying video, then
        the overlay is cropped on the bottom.

        - **Layer** *(integer) --* The number of the layer, 0 to 7. There are 8 layers that can be
        overlaid on the video, each layer with a different image. The layers are in Z order, which
        means that overlays with higher values of layer are inserted on top of overlays with lower
        values of layer. Default is 0.

        - **Opacity** *(integer) --* Opacity of image where 0 is transparent and 100 is fully
        opaque. Default is 100.

        - **Width** *(integer) --* The width of the image when inserted into the video, in pixels.
        The overlay will be scaled up or down to the specified width. Leave blank to use the native
        width of the overlay.

      - **StaticImageDeactivateSettings** *(dict) --* Action to deactivate a static image overlay

        - **FadeOut** *(integer) --* The time in milliseconds for the image to fade out. Default is
        0 (no fade-out).

        - **Layer** *(integer) --* The image overlay layer to deactivate, 0 to 7. Default is 0.

    - **ScheduleActionStartSettings** *(dict) --* The time for the action to start in the channel.

      - **FixedModeScheduleActionStartSettings** *(dict) --* Option for specifying the start time
      for an action.

        - **Time** *(string) --* Start time for the action to start in the channel. (Not the time
        for the action to be added to the schedule: actions are always added to the schedule
        immediately.) UTC format: yyyy-mm-ddThh:mm:ss.nnnZ. All the letters are digits (for example,
        mm might be 01) except for the two constants "T" for time and "Z" for "UTC format".

      - **FollowModeScheduleActionStartSettings** *(dict) --* Option for specifying an action as
      relative to another action.

        - **FollowPoint** *(string) --* Identifies whether this action starts relative to the start
        or relative to the end of the reference action.

        - **ReferenceActionName** *(string) --* The action name of another action that this one
        refers to.

      - **ImmediateModeScheduleActionStartSettings** *(dict) --* Option for specifying an action
      that should be applied immediately.
    """


_DescribeSchedulePaginateResponseTypeDef = TypedDict(
    "_DescribeSchedulePaginateResponseTypeDef",
    {"ScheduleActions": List[DescribeSchedulePaginateResponseScheduleActionsTypeDef]},
    total=False,
)


class DescribeSchedulePaginateResponseTypeDef(_DescribeSchedulePaginateResponseTypeDef):
    """
    Type definition for `DescribeSchedulePaginate` `Response`

    - **ScheduleActions** *(list) --* The list of actions in the schedule.

      - *(dict) --* Contains information on a single schedule action.

        - **ActionName** *(string) --* The name of the action, must be unique within the schedule.
        This name provides the main reference to an action once it is added to the schedule. A name
        is unique if it is no longer in the schedule. The schedule is automatically cleaned up to
        remove actions with a start time of more than 1 hour ago (approximately) so at that point a
        name can be reused.

        - **ScheduleActionSettings** *(dict) --* Settings for this schedule action.

          - **HlsTimedMetadataSettings** *(dict) --* Action to insert HLS metadata

            - **Id3** *(string) --* Base64 string formatted according to the ID3 specification:
            http://id3.org/id3v2.4.0-structure

          - **InputSwitchSettings** *(dict) --* Action to switch the input

            - **InputAttachmentNameReference** *(string) --* The name of the input attachment (not
            the name of the input!) to switch to. The name is specified in the channel
            configuration.

            - **InputClippingSettings** *(dict) --* Settings to let you create a clip of the file
            input, in order to set up the input to ingest only a portion of the file.

              - **InputTimecodeSource** *(string) --* The source of the timecodes in the source
              being clipped.

              - **StartTimecode** *(dict) --* Settings to identify the start of the clip.

                - **Timecode** *(string) --* The timecode for the frame where you want to start the
                clip. Optional; if not specified, the clip starts at first frame in the file. Enter
                the timecode as HH:MM:SS:FF or HH:MM:SS;FF.

              - **StopTimecode** *(dict) --* Settings to identify the end of the clip.

                - **LastFrameClippingBehavior** *(string) --* If you specify a StopTimecode in an
                input (in order to clip the file), you can specify if you want the clip to exclude
                (the default) or include the frame specified by the timecode.

                - **Timecode** *(string) --* The timecode for the frame where you want to stop the
                clip. Optional; if not specified, the clip continues to the end of the file. Enter
                the timecode as HH:MM:SS:FF or HH:MM:SS;FF.

            - **UrlPath** *(list) --* The value for the variable portion of the URL for the dynamic
            input, for this instance of the input. Each time you use the same dynamic input in an
            input switch action, you can provide a different value, in order to connect the input to
            a different content source.

              - *(string) --* Placeholder documentation for __string

          - **PauseStateSettings** *(dict) --* Action to pause or unpause one or both channel
          pipelines

            - **Pipelines** *(list) --* Placeholder documentation for
            __listOfPipelinePauseStateSettings

              - *(dict) --* Settings for pausing a pipeline.

                - **PipelineId** *(string) --* Pipeline ID to pause ("PIPELINE_0" or "PIPELINE_1").

          - **Scte35ReturnToNetworkSettings** *(dict) --* Action to insert SCTE-35 return_to_network
          message

            - **SpliceEventId** *(integer) --* The splice_event_id for the SCTE-35 splice_insert, as
            defined in SCTE-35.

          - **Scte35SpliceInsertSettings** *(dict) --* Action to insert SCTE-35 splice_insert
          message

            - **Duration** *(integer) --* Optional, the duration for the splice_insert, in 90 KHz
            ticks. To convert seconds to ticks, multiple the seconds by 90,000. If you enter a
            duration, there is an expectation that the downstream system can read the duration and
            cue in at that time. If you do not enter a duration, the splice_insert will continue
            indefinitely and there is an expectation that you will enter a return_to_network to end
            the splice_insert at the appropriate time.

            - **SpliceEventId** *(integer) --* The splice_event_id for the SCTE-35 splice_insert, as
            defined in SCTE-35.

          - **Scte35TimeSignalSettings** *(dict) --* Action to insert SCTE-35 time_signal message

            - **Scte35Descriptors** *(list) --* The list of SCTE-35 descriptors accompanying the
            SCTE-35 time_signal.

              - *(dict) --* Holds one set of SCTE-35 Descriptor Settings.

                - **Scte35DescriptorSettings** *(dict) --* SCTE-35 Descriptor Settings.

                  - **SegmentationDescriptorScte35DescriptorSettings** *(dict) --* SCTE-35
                  Segmentation Descriptor.

                    - **DeliveryRestrictions** *(dict) --* Holds the four SCTE-35 delivery
                    restriction parameters.

                      - **ArchiveAllowedFlag** *(string) --* Corresponds to SCTE-35
                      archive_allowed_flag.

                      - **DeviceRestrictions** *(string) --* Corresponds to SCTE-35
                      device_restrictions parameter.

                      - **NoRegionalBlackoutFlag** *(string) --* Corresponds to SCTE-35
                      no_regional_blackout_flag parameter.

                      - **WebDeliveryAllowedFlag** *(string) --* Corresponds to SCTE-35
                      web_delivery_allowed_flag parameter.

                    - **SegmentNum** *(integer) --* Corresponds to SCTE-35 segment_num. A value that
                    is valid for the specified segmentation_type_id.

                    - **SegmentationCancelIndicator** *(string) --* Corresponds to SCTE-35
                    segmentation_event_cancel_indicator.

                    - **SegmentationDuration** *(integer) --* Corresponds to SCTE-35
                    segmentation_duration. Optional. The duration for the time_signal, in 90 KHz
                    ticks. To convert seconds to ticks, multiple the seconds by 90,000. Enter time
                    in 90 KHz clock ticks. If you do not enter a duration, the time_signal will
                    continue until you insert a cancellation message.

                    - **SegmentationEventId** *(integer) --* Corresponds to SCTE-35
                    segmentation_event_id.

                    - **SegmentationTypeId** *(integer) --* Corresponds to SCTE-35
                    segmentation_type_id. One of the segmentation_type_id values listed in the
                    SCTE-35 specification. On the console, enter the ID in decimal (for example,
                    "52"). In the CLI, API, or an SDK, enter the ID in hex (for example, "0x34") or
                    decimal (for example, "52").

                    - **SegmentationUpid** *(string) --* Corresponds to SCTE-35 segmentation_upid.
                    Enter a string containing the hexadecimal representation of the characters that
                    make up the SCTE-35 segmentation_upid value. Must contain an even number of hex
                    characters. Do not include spaces between each hex pair. For example, the ASCII
                    "ADS Information" becomes hex "41445320496e666f726d6174696f6e.

                    - **SegmentationUpidType** *(integer) --* Corresponds to SCTE-35
                    segmentation_upid_type. On the console, enter one of the types listed in the
                    SCTE-35 specification, converted to a decimal. For example, "0x0C" hex from the
                    specification is "12" in decimal. In the CLI, API, or an SDK, enter one of the
                    types listed in the SCTE-35 specification, in either hex (for example, "0x0C" )
                    or in decimal (for example, "12").

                    - **SegmentsExpected** *(integer) --* Corresponds to SCTE-35 segments_expected.
                    A value that is valid for the specified segmentation_type_id.

                    - **SubSegmentNum** *(integer) --* Corresponds to SCTE-35 sub_segment_num. A
                    value that is valid for the specified segmentation_type_id.

                    - **SubSegmentsExpected** *(integer) --* Corresponds to SCTE-35
                    sub_segments_expected. A value that is valid for the specified
                    segmentation_type_id.

          - **StaticImageActivateSettings** *(dict) --* Action to activate a static image overlay

            - **Duration** *(integer) --* The duration in milliseconds for the image to remain on
            the video. If omitted or set to 0 the duration is unlimited and the image will remain
            until it is explicitly deactivated.

            - **FadeIn** *(integer) --* The time in milliseconds for the image to fade in. The
            fade-in starts at the start time of the overlay. Default is 0 (no fade-in).

            - **FadeOut** *(integer) --* Applies only if a duration is specified. The time in
            milliseconds for the image to fade out. The fade-out starts when the duration time is
            hit, so it effectively extends the duration. Default is 0 (no fade-out).

            - **Height** *(integer) --* The height of the image when inserted into the video, in
            pixels. The overlay will be scaled up or down to the specified height. Leave blank to
            use the native height of the overlay.

            - **Image** *(dict) --* The location and filename of the image file to overlay on the
            video. The file must be a 32-bit BMP, PNG, or TGA file, and must not be larger (in
            pixels) than the input video.

              - **PasswordParam** *(string) --* key used to extract the password from EC2 Parameter
              store

              - **Uri** *(string) --* Uniform Resource Identifier - This should be a path to a file
              accessible to the Live system (eg. a http:// URI) depending on the output type. For
              example, a RTMP destination should have a uri simliar to: "rtmp://fmsserver/live".

              - **Username** *(string) --* Documentation update needed

            - **ImageX** *(integer) --* Placement of the left edge of the overlay relative to the
            left edge of the video frame, in pixels. 0 (the default) is the left edge of the frame.
            If the placement causes the overlay to extend beyond the right edge of the underlying
            video, then the overlay is cropped on the right.

            - **ImageY** *(integer) --* Placement of the top edge of the overlay relative to the top
            edge of the video frame, in pixels. 0 (the default) is the top edge of the frame. If the
            placement causes the overlay to extend beyond the bottom edge of the underlying video,
            then the overlay is cropped on the bottom.

            - **Layer** *(integer) --* The number of the layer, 0 to 7. There are 8 layers that can
            be overlaid on the video, each layer with a different image. The layers are in Z order,
            which means that overlays with higher values of layer are inserted on top of overlays
            with lower values of layer. Default is 0.

            - **Opacity** *(integer) --* Opacity of image where 0 is transparent and 100 is fully
            opaque. Default is 100.

            - **Width** *(integer) --* The width of the image when inserted into the video, in
            pixels. The overlay will be scaled up or down to the specified width. Leave blank to use
            the native width of the overlay.

          - **StaticImageDeactivateSettings** *(dict) --* Action to deactivate a static image
          overlay

            - **FadeOut** *(integer) --* The time in milliseconds for the image to fade out. Default
            is 0 (no fade-out).

            - **Layer** *(integer) --* The image overlay layer to deactivate, 0 to 7. Default is 0.

        - **ScheduleActionStartSettings** *(dict) --* The time for the action to start in the
        channel.

          - **FixedModeScheduleActionStartSettings** *(dict) --* Option for specifying the start
          time for an action.

            - **Time** *(string) --* Start time for the action to start in the channel. (Not the
            time for the action to be added to the schedule: actions are always added to the
            schedule immediately.) UTC format: yyyy-mm-ddThh:mm:ss.nnnZ. All the letters are digits
            (for example, mm might be 01) except for the two constants "T" for time and "Z" for "UTC
            format".

          - **FollowModeScheduleActionStartSettings** *(dict) --* Option for specifying an action as
          relative to another action.

            - **FollowPoint** *(string) --* Identifies whether this action starts relative to the
            start or relative to the end of the reference action.

            - **ReferenceActionName** *(string) --* The action name of another action that this one
            refers to.

          - **ImmediateModeScheduleActionStartSettings** *(dict) --* Option for specifying an action
          that should be applied immediately.
    """


_ListChannelsPaginatePaginationConfigTypeDef = TypedDict(
    "_ListChannelsPaginatePaginationConfigTypeDef",
    {"MaxItems": int, "PageSize": int, "StartingToken": str},
    total=False,
)


class ListChannelsPaginatePaginationConfigTypeDef(_ListChannelsPaginatePaginationConfigTypeDef):
    """
    Type definition for `ListChannelsPaginate` `PaginationConfig`

    A dictionary that provides parameters to control pagination.

    - **MaxItems** *(integer) --*

      The total number of items to return. If the total number of items available is more than the
      value specified in max-items then a ``NextToken`` will be provided in the output that you can
      use to resume pagination.

    - **PageSize** *(integer) --*

      The size of each page.

    - **StartingToken** *(string) --*

      A token to specify where to start paginating. This is the ``NextToken`` from a previous
      response.
    """


_ListChannelsPaginateResponseChannelsDestinationsMediaPackageSettingsTypeDef = TypedDict(
    "_ListChannelsPaginateResponseChannelsDestinationsMediaPackageSettingsTypeDef",
    {"ChannelId": str},
    total=False,
)


class ListChannelsPaginateResponseChannelsDestinationsMediaPackageSettingsTypeDef(
    _ListChannelsPaginateResponseChannelsDestinationsMediaPackageSettingsTypeDef
):
    """
    Type definition for `ListChannelsPaginateResponseChannelsDestinations` `MediaPackageSettings`

    - **ChannelId** *(string) --* ID of the channel in MediaPackage that is the destination for this
    output group. You do not need to specify the individual inputs in MediaPackage; MediaLive will
    handle the connection of the two MediaLive pipelines to the two MediaPackage inputs. The
    MediaPackage channel and MediaLive channel must be in the same region.
    """


_ListChannelsPaginateResponseChannelsDestinationsMultiplexSettingsTypeDef = TypedDict(
    "_ListChannelsPaginateResponseChannelsDestinationsMultiplexSettingsTypeDef",
    {"MultiplexId": str, "ProgramName": str},
    total=False,
)


class ListChannelsPaginateResponseChannelsDestinationsMultiplexSettingsTypeDef(
    _ListChannelsPaginateResponseChannelsDestinationsMultiplexSettingsTypeDef
):
    """
    Type definition for `ListChannelsPaginateResponseChannelsDestinations` `MultiplexSettings`

    - **MultiplexId** *(string) --* The ID of the Multiplex that the encoder is providing output to.
    You do not need to specify the individual inputs to the Multiplex; MediaLive will handle the
    connection of the two MediaLive pipelines to the two Multiplex instances. The Multiplex must be
    in the same region as the Channel.

    - **ProgramName** *(string) --* The program name of the Multiplex program that the encoder is
    providing output to.
    """


_ListChannelsPaginateResponseChannelsDestinationsSettingsTypeDef = TypedDict(
    "_ListChannelsPaginateResponseChannelsDestinationsSettingsTypeDef",
    {"PasswordParam": str, "StreamName": str, "Url": str, "Username": str},
    total=False,
)


class ListChannelsPaginateResponseChannelsDestinationsSettingsTypeDef(
    _ListChannelsPaginateResponseChannelsDestinationsSettingsTypeDef
):
    """
    Type definition for `ListChannelsPaginateResponseChannelsDestinations` `Settings`

    - **PasswordParam** *(string) --* key used to extract the password from EC2 Parameter store

    - **StreamName** *(string) --* Stream name for RTMP destinations (URLs of type rtmp://)

    - **Url** *(string) --* A URL specifying a destination

    - **Username** *(string) --* username for destination
    """


_ListChannelsPaginateResponseChannelsDestinationsTypeDef = TypedDict(
    "_ListChannelsPaginateResponseChannelsDestinationsTypeDef",
    {
        "Id": str,
        "MediaPackageSettings": List[
            ListChannelsPaginateResponseChannelsDestinationsMediaPackageSettingsTypeDef
        ],
        "MultiplexSettings": ListChannelsPaginateResponseChannelsDestinationsMultiplexSettingsTypeDef,
        "Settings": List[ListChannelsPaginateResponseChannelsDestinationsSettingsTypeDef],
    },
    total=False,
)


class ListChannelsPaginateResponseChannelsDestinationsTypeDef(
    _ListChannelsPaginateResponseChannelsDestinationsTypeDef
):
    """
    Type definition for `ListChannelsPaginateResponseChannels` `Destinations`

    - **Id** *(string) --* User-specified id. This is used in an output group or an output.

    - **MediaPackageSettings** *(list) --* Destination settings for a MediaPackage output; one
    destination for both encoders.

      - *(dict) --* MediaPackage Output Destination Settings

        - **ChannelId** *(string) --* ID of the channel in MediaPackage that is the destination for
        this output group. You do not need to specify the individual inputs in MediaPackage;
        MediaLive will handle the connection of the two MediaLive pipelines to the two MediaPackage
        inputs. The MediaPackage channel and MediaLive channel must be in the same region.

    - **MultiplexSettings** *(dict) --* Destination settings for a Multiplex output; one destination
    for both encoders.

      - **MultiplexId** *(string) --* The ID of the Multiplex that the encoder is providing output
      to. You do not need to specify the individual inputs to the Multiplex; MediaLive will handle
      the connection of the two MediaLive pipelines to the two Multiplex instances. The Multiplex
      must be in the same region as the Channel.

      - **ProgramName** *(string) --* The program name of the Multiplex program that the encoder is
      providing output to.

    - **Settings** *(list) --* Destination settings for a standard output; one destination for each
    redundant encoder.

      - *(dict) --* Placeholder documentation for OutputDestinationSettings

        - **PasswordParam** *(string) --* key used to extract the password from EC2 Parameter store

        - **StreamName** *(string) --* Stream name for RTMP destinations (URLs of type rtmp://)

        - **Url** *(string) --* A URL specifying a destination

        - **Username** *(string) --* username for destination
    """


_ListChannelsPaginateResponseChannelsEgressEndpointsTypeDef = TypedDict(
    "_ListChannelsPaginateResponseChannelsEgressEndpointsTypeDef", {"SourceIp": str}, total=False
)


class ListChannelsPaginateResponseChannelsEgressEndpointsTypeDef(
    _ListChannelsPaginateResponseChannelsEgressEndpointsTypeDef
):
    """
    Type definition for `ListChannelsPaginateResponseChannels` `EgressEndpoints`

    - **SourceIp** *(string) --* Public IP of where a channel's output comes from
    """


_ListChannelsPaginateResponseChannelsInputAttachmentsInputSettingsAudioSelectorsSelectorSettingsAudioLanguageSelectionTypeDef = TypedDict(
    "_ListChannelsPaginateResponseChannelsInputAttachmentsInputSettingsAudioSelectorsSelectorSettingsAudioLanguageSelectionTypeDef",
    {"LanguageCode": str, "LanguageSelectionPolicy": str},
    total=False,
)


class ListChannelsPaginateResponseChannelsInputAttachmentsInputSettingsAudioSelectorsSelectorSettingsAudioLanguageSelectionTypeDef(
    _ListChannelsPaginateResponseChannelsInputAttachmentsInputSettingsAudioSelectorsSelectorSettingsAudioLanguageSelectionTypeDef
):
    """
    Type definition for
    `ListChannelsPaginateResponseChannelsInputAttachmentsInputSettingsAudioSelectorsSelectorSettings`
    `AudioLanguageSelection`

    - **LanguageCode** *(string) --* Selects a specific three-letter language code from within an
    audio source.

    - **LanguageSelectionPolicy** *(string) --* When set to "strict", the transport stream demux
    strictly identifies audio streams by their language descriptor. If a PMT update occurs such that
    an audio stream matching the initially selected language is no longer present then mute will be
    encoded until the language returns. If "loose", then on a PMT update the demux will choose
    another audio stream in the program with the same stream type if it can't find one with the same
    language.
    """


_ListChannelsPaginateResponseChannelsInputAttachmentsInputSettingsAudioSelectorsSelectorSettingsAudioPidSelectionTypeDef = TypedDict(
    "_ListChannelsPaginateResponseChannelsInputAttachmentsInputSettingsAudioSelectorsSelectorSettingsAudioPidSelectionTypeDef",
    {"Pid": int},
    total=False,
)


class ListChannelsPaginateResponseChannelsInputAttachmentsInputSettingsAudioSelectorsSelectorSettingsAudioPidSelectionTypeDef(
    _ListChannelsPaginateResponseChannelsInputAttachmentsInputSettingsAudioSelectorsSelectorSettingsAudioPidSelectionTypeDef
):
    """
    Type definition for
    `ListChannelsPaginateResponseChannelsInputAttachmentsInputSettingsAudioSelectorsSelectorSettings`
    `AudioPidSelection`

    - **Pid** *(integer) --* Selects a specific PID from within a source.
    """


_ListChannelsPaginateResponseChannelsInputAttachmentsInputSettingsAudioSelectorsSelectorSettingsTypeDef = TypedDict(
    "_ListChannelsPaginateResponseChannelsInputAttachmentsInputSettingsAudioSelectorsSelectorSettingsTypeDef",
    {
        "AudioLanguageSelection": ListChannelsPaginateResponseChannelsInputAttachmentsInputSettingsAudioSelectorsSelectorSettingsAudioLanguageSelectionTypeDef,
        "AudioPidSelection": ListChannelsPaginateResponseChannelsInputAttachmentsInputSettingsAudioSelectorsSelectorSettingsAudioPidSelectionTypeDef,
    },
    total=False,
)


class ListChannelsPaginateResponseChannelsInputAttachmentsInputSettingsAudioSelectorsSelectorSettingsTypeDef(
    _ListChannelsPaginateResponseChannelsInputAttachmentsInputSettingsAudioSelectorsSelectorSettingsTypeDef
):
    """
    Type definition for
    `ListChannelsPaginateResponseChannelsInputAttachmentsInputSettingsAudioSelectors`
    `SelectorSettings`

    - **AudioLanguageSelection** *(dict) --* Audio Language Selection

      - **LanguageCode** *(string) --* Selects a specific three-letter language code from within an
      audio source.

      - **LanguageSelectionPolicy** *(string) --* When set to "strict", the transport stream demux
      strictly identifies audio streams by their language descriptor. If a PMT update occurs such
      that an audio stream matching the initially selected language is no longer present then mute
      will be encoded until the language returns. If "loose", then on a PMT update the demux will
      choose another audio stream in the program with the same stream type if it can't find one with
      the same language.

    - **AudioPidSelection** *(dict) --* Audio Pid Selection

      - **Pid** *(integer) --* Selects a specific PID from within a source.
    """


_ListChannelsPaginateResponseChannelsInputAttachmentsInputSettingsAudioSelectorsTypeDef = TypedDict(
    "_ListChannelsPaginateResponseChannelsInputAttachmentsInputSettingsAudioSelectorsTypeDef",
    {
        "Name": str,
        "SelectorSettings": ListChannelsPaginateResponseChannelsInputAttachmentsInputSettingsAudioSelectorsSelectorSettingsTypeDef,
    },
    total=False,
)


class ListChannelsPaginateResponseChannelsInputAttachmentsInputSettingsAudioSelectorsTypeDef(
    _ListChannelsPaginateResponseChannelsInputAttachmentsInputSettingsAudioSelectorsTypeDef
):
    """
    Type definition for `ListChannelsPaginateResponseChannelsInputAttachmentsInputSettings`
    `AudioSelectors`

    - **Name** *(string) --* The name of this AudioSelector. AudioDescriptions will use this name to
    uniquely identify this Selector. Selector names should be unique per input.

    - **SelectorSettings** *(dict) --* The audio selector settings.

      - **AudioLanguageSelection** *(dict) --* Audio Language Selection

        - **LanguageCode** *(string) --* Selects a specific three-letter language code from within
        an audio source.

        - **LanguageSelectionPolicy** *(string) --* When set to "strict", the transport stream demux
        strictly identifies audio streams by their language descriptor. If a PMT update occurs such
        that an audio stream matching the initially selected language is no longer present then mute
        will be encoded until the language returns. If "loose", then on a PMT update the demux will
        choose another audio stream in the program with the same stream type if it can't find one
        with the same language.

      - **AudioPidSelection** *(dict) --* Audio Pid Selection

        - **Pid** *(integer) --* Selects a specific PID from within a source.
    """


_ListChannelsPaginateResponseChannelsInputAttachmentsInputSettingsCaptionSelectorsSelectorSettingsDvbSubSourceSettingsTypeDef = TypedDict(
    "_ListChannelsPaginateResponseChannelsInputAttachmentsInputSettingsCaptionSelectorsSelectorSettingsDvbSubSourceSettingsTypeDef",
    {"Pid": int},
    total=False,
)


class ListChannelsPaginateResponseChannelsInputAttachmentsInputSettingsCaptionSelectorsSelectorSettingsDvbSubSourceSettingsTypeDef(
    _ListChannelsPaginateResponseChannelsInputAttachmentsInputSettingsCaptionSelectorsSelectorSettingsDvbSubSourceSettingsTypeDef
):
    """
    Type definition for
    `ListChannelsPaginateResponseChannelsInputAttachmentsInputSettingsCaptionSelectorsSelectorSettings`
    `DvbSubSourceSettings`

    - **Pid** *(integer) --* When using DVB-Sub with Burn-In or SMPTE-TT, use this PID for the
    source content. Unused for DVB-Sub passthrough. All DVB-Sub content is passed through,
    regardless of selectors.
    """


_ListChannelsPaginateResponseChannelsInputAttachmentsInputSettingsCaptionSelectorsSelectorSettingsEmbeddedSourceSettingsTypeDef = TypedDict(
    "_ListChannelsPaginateResponseChannelsInputAttachmentsInputSettingsCaptionSelectorsSelectorSettingsEmbeddedSourceSettingsTypeDef",
    {
        "Convert608To708": str,
        "Scte20Detection": str,
        "Source608ChannelNumber": int,
        "Source608TrackNumber": int,
    },
    total=False,
)


class ListChannelsPaginateResponseChannelsInputAttachmentsInputSettingsCaptionSelectorsSelectorSettingsEmbeddedSourceSettingsTypeDef(
    _ListChannelsPaginateResponseChannelsInputAttachmentsInputSettingsCaptionSelectorsSelectorSettingsEmbeddedSourceSettingsTypeDef
):
    """
    Type definition for
    `ListChannelsPaginateResponseChannelsInputAttachmentsInputSettingsCaptionSelectorsSelectorSettings`
    `EmbeddedSourceSettings`

    - **Convert608To708** *(string) --* If upconvert, 608 data is both passed through via the "608
    compatibility bytes" fields of the 708 wrapper as well as translated into 708. 708 data present
    in the source content will be discarded.

    - **Scte20Detection** *(string) --* Set to "auto" to handle streams with intermittent and/or
    non-aligned SCTE-20 and Embedded captions.

    - **Source608ChannelNumber** *(integer) --* Specifies the 608/708 channel number within the
    video track from which to extract captions. Unused for passthrough.

    - **Source608TrackNumber** *(integer) --* This field is unused and deprecated.
    """


_ListChannelsPaginateResponseChannelsInputAttachmentsInputSettingsCaptionSelectorsSelectorSettingsScte20SourceSettingsTypeDef = TypedDict(
    "_ListChannelsPaginateResponseChannelsInputAttachmentsInputSettingsCaptionSelectorsSelectorSettingsScte20SourceSettingsTypeDef",
    {"Convert608To708": str, "Source608ChannelNumber": int},
    total=False,
)


class ListChannelsPaginateResponseChannelsInputAttachmentsInputSettingsCaptionSelectorsSelectorSettingsScte20SourceSettingsTypeDef(
    _ListChannelsPaginateResponseChannelsInputAttachmentsInputSettingsCaptionSelectorsSelectorSettingsScte20SourceSettingsTypeDef
):
    """
    Type definition for
    `ListChannelsPaginateResponseChannelsInputAttachmentsInputSettingsCaptionSelectorsSelectorSettings`
    `Scte20SourceSettings`

    - **Convert608To708** *(string) --* If upconvert, 608 data is both passed through via the "608
    compatibility bytes" fields of the 708 wrapper as well as translated into 708. 708 data present
    in the source content will be discarded.

    - **Source608ChannelNumber** *(integer) --* Specifies the 608/708 channel number within the
    video track from which to extract captions. Unused for passthrough.
    """


_ListChannelsPaginateResponseChannelsInputAttachmentsInputSettingsCaptionSelectorsSelectorSettingsScte27SourceSettingsTypeDef = TypedDict(
    "_ListChannelsPaginateResponseChannelsInputAttachmentsInputSettingsCaptionSelectorsSelectorSettingsScte27SourceSettingsTypeDef",
    {"Pid": int},
    total=False,
)


class ListChannelsPaginateResponseChannelsInputAttachmentsInputSettingsCaptionSelectorsSelectorSettingsScte27SourceSettingsTypeDef(
    _ListChannelsPaginateResponseChannelsInputAttachmentsInputSettingsCaptionSelectorsSelectorSettingsScte27SourceSettingsTypeDef
):
    """
    Type definition for
    `ListChannelsPaginateResponseChannelsInputAttachmentsInputSettingsCaptionSelectorsSelectorSettings`
    `Scte27SourceSettings`

    - **Pid** *(integer) --* The pid field is used in conjunction with the caption selector
    languageCode field as follows: - Specify PID and Language: Extracts captions from that PID; the
    language is "informational". - Specify PID and omit Language: Extracts the specified PID. - Omit
    PID and specify Language: Extracts the specified language, whichever PID that happens to be. -
    Omit PID and omit Language: Valid only if source is DVB-Sub that is being passed through; all
    languages will be passed through.
    """


_ListChannelsPaginateResponseChannelsInputAttachmentsInputSettingsCaptionSelectorsSelectorSettingsTeletextSourceSettingsTypeDef = TypedDict(
    "_ListChannelsPaginateResponseChannelsInputAttachmentsInputSettingsCaptionSelectorsSelectorSettingsTeletextSourceSettingsTypeDef",
    {"PageNumber": str},
    total=False,
)


class ListChannelsPaginateResponseChannelsInputAttachmentsInputSettingsCaptionSelectorsSelectorSettingsTeletextSourceSettingsTypeDef(
    _ListChannelsPaginateResponseChannelsInputAttachmentsInputSettingsCaptionSelectorsSelectorSettingsTeletextSourceSettingsTypeDef
):
    """
    Type definition for
    `ListChannelsPaginateResponseChannelsInputAttachmentsInputSettingsCaptionSelectorsSelectorSettings`
    `TeletextSourceSettings`

    - **PageNumber** *(string) --* Specifies the teletext page number within the data stream from
    which to extract captions. Range of 0x100 (256) to 0x8FF (2303). Unused for passthrough. Should
    be specified as a hexadecimal string with no "0x" prefix.
    """


_ListChannelsPaginateResponseChannelsInputAttachmentsInputSettingsCaptionSelectorsSelectorSettingsTypeDef = TypedDict(
    "_ListChannelsPaginateResponseChannelsInputAttachmentsInputSettingsCaptionSelectorsSelectorSettingsTypeDef",
    {
        "AribSourceSettings": Dict,
        "DvbSubSourceSettings": ListChannelsPaginateResponseChannelsInputAttachmentsInputSettingsCaptionSelectorsSelectorSettingsDvbSubSourceSettingsTypeDef,
        "EmbeddedSourceSettings": ListChannelsPaginateResponseChannelsInputAttachmentsInputSettingsCaptionSelectorsSelectorSettingsEmbeddedSourceSettingsTypeDef,
        "Scte20SourceSettings": ListChannelsPaginateResponseChannelsInputAttachmentsInputSettingsCaptionSelectorsSelectorSettingsScte20SourceSettingsTypeDef,
        "Scte27SourceSettings": ListChannelsPaginateResponseChannelsInputAttachmentsInputSettingsCaptionSelectorsSelectorSettingsScte27SourceSettingsTypeDef,
        "TeletextSourceSettings": ListChannelsPaginateResponseChannelsInputAttachmentsInputSettingsCaptionSelectorsSelectorSettingsTeletextSourceSettingsTypeDef,
    },
    total=False,
)


class ListChannelsPaginateResponseChannelsInputAttachmentsInputSettingsCaptionSelectorsSelectorSettingsTypeDef(
    _ListChannelsPaginateResponseChannelsInputAttachmentsInputSettingsCaptionSelectorsSelectorSettingsTypeDef
):
    """
    Type definition for
    `ListChannelsPaginateResponseChannelsInputAttachmentsInputSettingsCaptionSelectors`
    `SelectorSettings`

    - **AribSourceSettings** *(dict) --* Arib Source Settings

    - **DvbSubSourceSettings** *(dict) --* Dvb Sub Source Settings

      - **Pid** *(integer) --* When using DVB-Sub with Burn-In or SMPTE-TT, use this PID for the
      source content. Unused for DVB-Sub passthrough. All DVB-Sub content is passed through,
      regardless of selectors.

    - **EmbeddedSourceSettings** *(dict) --* Embedded Source Settings

      - **Convert608To708** *(string) --* If upconvert, 608 data is both passed through via the "608
      compatibility bytes" fields of the 708 wrapper as well as translated into 708. 708 data
      present in the source content will be discarded.

      - **Scte20Detection** *(string) --* Set to "auto" to handle streams with intermittent and/or
      non-aligned SCTE-20 and Embedded captions.

      - **Source608ChannelNumber** *(integer) --* Specifies the 608/708 channel number within the
      video track from which to extract captions. Unused for passthrough.

      - **Source608TrackNumber** *(integer) --* This field is unused and deprecated.

    - **Scte20SourceSettings** *(dict) --* Scte20 Source Settings

      - **Convert608To708** *(string) --* If upconvert, 608 data is both passed through via the "608
      compatibility bytes" fields of the 708 wrapper as well as translated into 708. 708 data
      present in the source content will be discarded.

      - **Source608ChannelNumber** *(integer) --* Specifies the 608/708 channel number within the
      video track from which to extract captions. Unused for passthrough.

    - **Scte27SourceSettings** *(dict) --* Scte27 Source Settings

      - **Pid** *(integer) --* The pid field is used in conjunction with the caption selector
      languageCode field as follows: - Specify PID and Language: Extracts captions from that PID;
      the language is "informational". - Specify PID and omit Language: Extracts the specified PID.
      - Omit PID and specify Language: Extracts the specified language, whichever PID that happens
      to be. - Omit PID and omit Language: Valid only if source is DVB-Sub that is being passed
      through; all languages will be passed through.

    - **TeletextSourceSettings** *(dict) --* Teletext Source Settings

      - **PageNumber** *(string) --* Specifies the teletext page number within the data stream from
      which to extract captions. Range of 0x100 (256) to 0x8FF (2303). Unused for passthrough.
      Should be specified as a hexadecimal string with no "0x" prefix.
    """


_ListChannelsPaginateResponseChannelsInputAttachmentsInputSettingsCaptionSelectorsTypeDef = TypedDict(
    "_ListChannelsPaginateResponseChannelsInputAttachmentsInputSettingsCaptionSelectorsTypeDef",
    {
        "LanguageCode": str,
        "Name": str,
        "SelectorSettings": ListChannelsPaginateResponseChannelsInputAttachmentsInputSettingsCaptionSelectorsSelectorSettingsTypeDef,
    },
    total=False,
)


class ListChannelsPaginateResponseChannelsInputAttachmentsInputSettingsCaptionSelectorsTypeDef(
    _ListChannelsPaginateResponseChannelsInputAttachmentsInputSettingsCaptionSelectorsTypeDef
):
    """
    Type definition for `ListChannelsPaginateResponseChannelsInputAttachmentsInputSettings`
    `CaptionSelectors`

    - **LanguageCode** *(string) --* When specified this field indicates the three letter language
    code of the caption track to extract from the source.

    - **Name** *(string) --* Name identifier for a caption selector. This name is used to associate
    this caption selector with one or more caption descriptions. Names must be unique within an
    event.

    - **SelectorSettings** *(dict) --* Caption selector settings.

      - **AribSourceSettings** *(dict) --* Arib Source Settings

      - **DvbSubSourceSettings** *(dict) --* Dvb Sub Source Settings

        - **Pid** *(integer) --* When using DVB-Sub with Burn-In or SMPTE-TT, use this PID for the
        source content. Unused for DVB-Sub passthrough. All DVB-Sub content is passed through,
        regardless of selectors.

      - **EmbeddedSourceSettings** *(dict) --* Embedded Source Settings

        - **Convert608To708** *(string) --* If upconvert, 608 data is both passed through via the
        "608 compatibility bytes" fields of the 708 wrapper as well as translated into 708. 708 data
        present in the source content will be discarded.

        - **Scte20Detection** *(string) --* Set to "auto" to handle streams with intermittent and/or
        non-aligned SCTE-20 and Embedded captions.

        - **Source608ChannelNumber** *(integer) --* Specifies the 608/708 channel number within the
        video track from which to extract captions. Unused for passthrough.

        - **Source608TrackNumber** *(integer) --* This field is unused and deprecated.

      - **Scte20SourceSettings** *(dict) --* Scte20 Source Settings

        - **Convert608To708** *(string) --* If upconvert, 608 data is both passed through via the
        "608 compatibility bytes" fields of the 708 wrapper as well as translated into 708. 708 data
        present in the source content will be discarded.

        - **Source608ChannelNumber** *(integer) --* Specifies the 608/708 channel number within the
        video track from which to extract captions. Unused for passthrough.

      - **Scte27SourceSettings** *(dict) --* Scte27 Source Settings

        - **Pid** *(integer) --* The pid field is used in conjunction with the caption selector
        languageCode field as follows: - Specify PID and Language: Extracts captions from that PID;
        the language is "informational". - Specify PID and omit Language: Extracts the specified
        PID. - Omit PID and specify Language: Extracts the specified language, whichever PID that
        happens to be. - Omit PID and omit Language: Valid only if source is DVB-Sub that is being
        passed through; all languages will be passed through.

      - **TeletextSourceSettings** *(dict) --* Teletext Source Settings

        - **PageNumber** *(string) --* Specifies the teletext page number within the data stream
        from which to extract captions. Range of 0x100 (256) to 0x8FF (2303). Unused for
        passthrough. Should be specified as a hexadecimal string with no "0x" prefix.
    """


_ListChannelsPaginateResponseChannelsInputAttachmentsInputSettingsNetworkInputSettingsHlsInputSettingsTypeDef = TypedDict(
    "_ListChannelsPaginateResponseChannelsInputAttachmentsInputSettingsNetworkInputSettingsHlsInputSettingsTypeDef",
    {"Bandwidth": int, "BufferSegments": int, "Retries": int, "RetryInterval": int},
    total=False,
)


class ListChannelsPaginateResponseChannelsInputAttachmentsInputSettingsNetworkInputSettingsHlsInputSettingsTypeDef(
    _ListChannelsPaginateResponseChannelsInputAttachmentsInputSettingsNetworkInputSettingsHlsInputSettingsTypeDef
):
    """
    Type definition for
    `ListChannelsPaginateResponseChannelsInputAttachmentsInputSettingsNetworkInputSettings`
    `HlsInputSettings`

    - **Bandwidth** *(integer) --* When specified the HLS stream with the m3u8 BANDWIDTH that most
    closely matches this value will be chosen, otherwise the highest bandwidth stream in the m3u8
    will be chosen. The bitrate is specified in bits per second, as in an HLS manifest.

    - **BufferSegments** *(integer) --* When specified, reading of the HLS input will begin this
    many buffer segments from the end (most recently written segment). When not specified, the HLS
    input will begin with the first segment specified in the m3u8.

    - **Retries** *(integer) --* The number of consecutive times that attempts to read a manifest or
    segment must fail before the input is considered unavailable.

    - **RetryInterval** *(integer) --* The number of seconds between retries when an attempt to read
    a manifest or segment fails.
    """


_ListChannelsPaginateResponseChannelsInputAttachmentsInputSettingsNetworkInputSettingsTypeDef = TypedDict(
    "_ListChannelsPaginateResponseChannelsInputAttachmentsInputSettingsNetworkInputSettingsTypeDef",
    {
        "HlsInputSettings": ListChannelsPaginateResponseChannelsInputAttachmentsInputSettingsNetworkInputSettingsHlsInputSettingsTypeDef,
        "ServerValidation": str,
    },
    total=False,
)


class ListChannelsPaginateResponseChannelsInputAttachmentsInputSettingsNetworkInputSettingsTypeDef(
    _ListChannelsPaginateResponseChannelsInputAttachmentsInputSettingsNetworkInputSettingsTypeDef
):
    """
    Type definition for `ListChannelsPaginateResponseChannelsInputAttachmentsInputSettings`
    `NetworkInputSettings`

    - **HlsInputSettings** *(dict) --* Specifies HLS input settings when the uri is for a HLS
    manifest.

      - **Bandwidth** *(integer) --* When specified the HLS stream with the m3u8 BANDWIDTH that most
      closely matches this value will be chosen, otherwise the highest bandwidth stream in the m3u8
      will be chosen. The bitrate is specified in bits per second, as in an HLS manifest.

      - **BufferSegments** *(integer) --* When specified, reading of the HLS input will begin this
      many buffer segments from the end (most recently written segment). When not specified, the HLS
      input will begin with the first segment specified in the m3u8.

      - **Retries** *(integer) --* The number of consecutive times that attempts to read a manifest
      or segment must fail before the input is considered unavailable.

      - **RetryInterval** *(integer) --* The number of seconds between retries when an attempt to
      read a manifest or segment fails.

    - **ServerValidation** *(string) --* Check HTTPS server certificates. When set to
    checkCryptographyOnly, cryptography in the certificate will be checked, but not the server's
    name. Certain subdomains (notably S3 buckets that use dots in the bucket name) do not strictly
    match the corresponding certificate's wildcard pattern and would otherwise cause the event to
    error. This setting is ignored for protocols that do not use https.
    """


_ListChannelsPaginateResponseChannelsInputAttachmentsInputSettingsVideoSelectorSelectorSettingsVideoSelectorPidTypeDef = TypedDict(
    "_ListChannelsPaginateResponseChannelsInputAttachmentsInputSettingsVideoSelectorSelectorSettingsVideoSelectorPidTypeDef",
    {"Pid": int},
    total=False,
)


class ListChannelsPaginateResponseChannelsInputAttachmentsInputSettingsVideoSelectorSelectorSettingsVideoSelectorPidTypeDef(
    _ListChannelsPaginateResponseChannelsInputAttachmentsInputSettingsVideoSelectorSelectorSettingsVideoSelectorPidTypeDef
):
    """
    Type definition for
    `ListChannelsPaginateResponseChannelsInputAttachmentsInputSettingsVideoSelectorSelectorSettings`
    `VideoSelectorPid`

    - **Pid** *(integer) --* Selects a specific PID from within a video source.
    """


_ListChannelsPaginateResponseChannelsInputAttachmentsInputSettingsVideoSelectorSelectorSettingsVideoSelectorProgramIdTypeDef = TypedDict(
    "_ListChannelsPaginateResponseChannelsInputAttachmentsInputSettingsVideoSelectorSelectorSettingsVideoSelectorProgramIdTypeDef",
    {"ProgramId": int},
    total=False,
)


class ListChannelsPaginateResponseChannelsInputAttachmentsInputSettingsVideoSelectorSelectorSettingsVideoSelectorProgramIdTypeDef(
    _ListChannelsPaginateResponseChannelsInputAttachmentsInputSettingsVideoSelectorSelectorSettingsVideoSelectorProgramIdTypeDef
):
    """
    Type definition for
    `ListChannelsPaginateResponseChannelsInputAttachmentsInputSettingsVideoSelectorSelectorSettings`
    `VideoSelectorProgramId`

    - **ProgramId** *(integer) --* Selects a specific program from within a multi-program transport
    stream. If the program doesn't exist, the first program within the transport stream will be
    selected by default.
    """


_ListChannelsPaginateResponseChannelsInputAttachmentsInputSettingsVideoSelectorSelectorSettingsTypeDef = TypedDict(
    "_ListChannelsPaginateResponseChannelsInputAttachmentsInputSettingsVideoSelectorSelectorSettingsTypeDef",
    {
        "VideoSelectorPid": ListChannelsPaginateResponseChannelsInputAttachmentsInputSettingsVideoSelectorSelectorSettingsVideoSelectorPidTypeDef,
        "VideoSelectorProgramId": ListChannelsPaginateResponseChannelsInputAttachmentsInputSettingsVideoSelectorSelectorSettingsVideoSelectorProgramIdTypeDef,
    },
    total=False,
)


class ListChannelsPaginateResponseChannelsInputAttachmentsInputSettingsVideoSelectorSelectorSettingsTypeDef(
    _ListChannelsPaginateResponseChannelsInputAttachmentsInputSettingsVideoSelectorSelectorSettingsTypeDef
):
    """
    Type definition for
    `ListChannelsPaginateResponseChannelsInputAttachmentsInputSettingsVideoSelector`
    `SelectorSettings`

    - **VideoSelectorPid** *(dict) --* Video Selector Pid

      - **Pid** *(integer) --* Selects a specific PID from within a video source.

    - **VideoSelectorProgramId** *(dict) --* Video Selector Program Id

      - **ProgramId** *(integer) --* Selects a specific program from within a multi-program
      transport stream. If the program doesn't exist, the first program within the transport stream
      will be selected by default.
    """


_ListChannelsPaginateResponseChannelsInputAttachmentsInputSettingsVideoSelectorTypeDef = TypedDict(
    "_ListChannelsPaginateResponseChannelsInputAttachmentsInputSettingsVideoSelectorTypeDef",
    {
        "ColorSpace": str,
        "ColorSpaceUsage": str,
        "SelectorSettings": ListChannelsPaginateResponseChannelsInputAttachmentsInputSettingsVideoSelectorSelectorSettingsTypeDef,
    },
    total=False,
)


class ListChannelsPaginateResponseChannelsInputAttachmentsInputSettingsVideoSelectorTypeDef(
    _ListChannelsPaginateResponseChannelsInputAttachmentsInputSettingsVideoSelectorTypeDef
):
    """
    Type definition for `ListChannelsPaginateResponseChannelsInputAttachmentsInputSettings`
    `VideoSelector`

    - **ColorSpace** *(string) --* Specifies the color space of an input. This setting works in
    tandem with colorSpaceUsage and a video description's colorSpaceSettingsChoice to determine if
    any conversion will be performed.

    - **ColorSpaceUsage** *(string) --* Applies only if colorSpace is a value other than follow.
    This field controls how the value in the colorSpace field will be used. fallback means that when
    the input does include color space data, that data will be used, but when the input has no color
    space data, the value in colorSpace will be used. Choose fallback if your input is sometimes
    missing color space data, but when it does have color space data, that data is correct. force
    means to always use the value in colorSpace. Choose force if your input usually has no color
    space data or might have unreliable color space data.

    - **SelectorSettings** *(dict) --* The video selector settings.

      - **VideoSelectorPid** *(dict) --* Video Selector Pid

        - **Pid** *(integer) --* Selects a specific PID from within a video source.

      - **VideoSelectorProgramId** *(dict) --* Video Selector Program Id

        - **ProgramId** *(integer) --* Selects a specific program from within a multi-program
        transport stream. If the program doesn't exist, the first program within the transport
        stream will be selected by default.
    """


_ListChannelsPaginateResponseChannelsInputAttachmentsInputSettingsTypeDef = TypedDict(
    "_ListChannelsPaginateResponseChannelsInputAttachmentsInputSettingsTypeDef",
    {
        "AudioSelectors": List[
            ListChannelsPaginateResponseChannelsInputAttachmentsInputSettingsAudioSelectorsTypeDef
        ],
        "CaptionSelectors": List[
            ListChannelsPaginateResponseChannelsInputAttachmentsInputSettingsCaptionSelectorsTypeDef
        ],
        "DeblockFilter": str,
        "DenoiseFilter": str,
        "FilterStrength": int,
        "InputFilter": str,
        "NetworkInputSettings": ListChannelsPaginateResponseChannelsInputAttachmentsInputSettingsNetworkInputSettingsTypeDef,
        "SourceEndBehavior": str,
        "VideoSelector": ListChannelsPaginateResponseChannelsInputAttachmentsInputSettingsVideoSelectorTypeDef,
    },
    total=False,
)


class ListChannelsPaginateResponseChannelsInputAttachmentsInputSettingsTypeDef(
    _ListChannelsPaginateResponseChannelsInputAttachmentsInputSettingsTypeDef
):
    """
    Type definition for `ListChannelsPaginateResponseChannelsInputAttachments` `InputSettings`

    - **AudioSelectors** *(list) --* Used to select the audio stream to decode for inputs that have
    multiple available.

      - *(dict) --* Audio Selector

        - **Name** *(string) --* The name of this AudioSelector. AudioDescriptions will use this
        name to uniquely identify this Selector. Selector names should be unique per input.

        - **SelectorSettings** *(dict) --* The audio selector settings.

          - **AudioLanguageSelection** *(dict) --* Audio Language Selection

            - **LanguageCode** *(string) --* Selects a specific three-letter language code from
            within an audio source.

            - **LanguageSelectionPolicy** *(string) --* When set to "strict", the transport stream
            demux strictly identifies audio streams by their language descriptor. If a PMT update
            occurs such that an audio stream matching the initially selected language is no longer
            present then mute will be encoded until the language returns. If "loose", then on a PMT
            update the demux will choose another audio stream in the program with the same stream
            type if it can't find one with the same language.

          - **AudioPidSelection** *(dict) --* Audio Pid Selection

            - **Pid** *(integer) --* Selects a specific PID from within a source.

    - **CaptionSelectors** *(list) --* Used to select the caption input to use for inputs that have
    multiple available.

      - *(dict) --* Output groups for this Live Event. Output groups contain information about where
      streams should be distributed.

        - **LanguageCode** *(string) --* When specified this field indicates the three letter
        language code of the caption track to extract from the source.

        - **Name** *(string) --* Name identifier for a caption selector. This name is used to
        associate this caption selector with one or more caption descriptions. Names must be unique
        within an event.

        - **SelectorSettings** *(dict) --* Caption selector settings.

          - **AribSourceSettings** *(dict) --* Arib Source Settings

          - **DvbSubSourceSettings** *(dict) --* Dvb Sub Source Settings

            - **Pid** *(integer) --* When using DVB-Sub with Burn-In or SMPTE-TT, use this PID for
            the source content. Unused for DVB-Sub passthrough. All DVB-Sub content is passed
            through, regardless of selectors.

          - **EmbeddedSourceSettings** *(dict) --* Embedded Source Settings

            - **Convert608To708** *(string) --* If upconvert, 608 data is both passed through via
            the "608 compatibility bytes" fields of the 708 wrapper as well as translated into 708.
            708 data present in the source content will be discarded.

            - **Scte20Detection** *(string) --* Set to "auto" to handle streams with intermittent
            and/or non-aligned SCTE-20 and Embedded captions.

            - **Source608ChannelNumber** *(integer) --* Specifies the 608/708 channel number within
            the video track from which to extract captions. Unused for passthrough.

            - **Source608TrackNumber** *(integer) --* This field is unused and deprecated.

          - **Scte20SourceSettings** *(dict) --* Scte20 Source Settings

            - **Convert608To708** *(string) --* If upconvert, 608 data is both passed through via
            the "608 compatibility bytes" fields of the 708 wrapper as well as translated into 708.
            708 data present in the source content will be discarded.

            - **Source608ChannelNumber** *(integer) --* Specifies the 608/708 channel number within
            the video track from which to extract captions. Unused for passthrough.

          - **Scte27SourceSettings** *(dict) --* Scte27 Source Settings

            - **Pid** *(integer) --* The pid field is used in conjunction with the caption selector
            languageCode field as follows: - Specify PID and Language: Extracts captions from that
            PID; the language is "informational". - Specify PID and omit Language: Extracts the
            specified PID. - Omit PID and specify Language: Extracts the specified language,
            whichever PID that happens to be. - Omit PID and omit Language: Valid only if source is
            DVB-Sub that is being passed through; all languages will be passed through.

          - **TeletextSourceSettings** *(dict) --* Teletext Source Settings

            - **PageNumber** *(string) --* Specifies the teletext page number within the data stream
            from which to extract captions. Range of 0x100 (256) to 0x8FF (2303). Unused for
            passthrough. Should be specified as a hexadecimal string with no "0x" prefix.

    - **DeblockFilter** *(string) --* Enable or disable the deblock filter when filtering.

    - **DenoiseFilter** *(string) --* Enable or disable the denoise filter when filtering.

    - **FilterStrength** *(integer) --* Adjusts the magnitude of filtering from 1 (minimal) to 5
    (strongest).

    - **InputFilter** *(string) --* Turns on the filter for this input. MPEG-2 inputs have the
    deblocking filter enabled by default. 1) auto - filtering will be applied depending on input
    type/quality 2) disabled - no filtering will be applied to the input 3) forced - filtering will
    be applied regardless of input type

    - **NetworkInputSettings** *(dict) --* Input settings.

      - **HlsInputSettings** *(dict) --* Specifies HLS input settings when the uri is for a HLS
      manifest.

        - **Bandwidth** *(integer) --* When specified the HLS stream with the m3u8 BANDWIDTH that
        most closely matches this value will be chosen, otherwise the highest bandwidth stream in
        the m3u8 will be chosen. The bitrate is specified in bits per second, as in an HLS manifest.

        - **BufferSegments** *(integer) --* When specified, reading of the HLS input will begin this
        many buffer segments from the end (most recently written segment). When not specified, the
        HLS input will begin with the first segment specified in the m3u8.

        - **Retries** *(integer) --* The number of consecutive times that attempts to read a
        manifest or segment must fail before the input is considered unavailable.

        - **RetryInterval** *(integer) --* The number of seconds between retries when an attempt to
        read a manifest or segment fails.

      - **ServerValidation** *(string) --* Check HTTPS server certificates. When set to
      checkCryptographyOnly, cryptography in the certificate will be checked, but not the server's
      name. Certain subdomains (notably S3 buckets that use dots in the bucket name) do not strictly
      match the corresponding certificate's wildcard pattern and would otherwise cause the event to
      error. This setting is ignored for protocols that do not use https.

    - **SourceEndBehavior** *(string) --* Loop input if it is a file. This allows a file input to be
    streamed indefinitely.

    - **VideoSelector** *(dict) --* Informs which video elementary stream to decode for input types
    that have multiple available.

      - **ColorSpace** *(string) --* Specifies the color space of an input. This setting works in
      tandem with colorSpaceUsage and a video description's colorSpaceSettingsChoice to determine if
      any conversion will be performed.

      - **ColorSpaceUsage** *(string) --* Applies only if colorSpace is a value other than follow.
      This field controls how the value in the colorSpace field will be used. fallback means that
      when the input does include color space data, that data will be used, but when the input has
      no color space data, the value in colorSpace will be used. Choose fallback if your input is
      sometimes missing color space data, but when it does have color space data, that data is
      correct. force means to always use the value in colorSpace. Choose force if your input usually
      has no color space data or might have unreliable color space data.

      - **SelectorSettings** *(dict) --* The video selector settings.

        - **VideoSelectorPid** *(dict) --* Video Selector Pid

          - **Pid** *(integer) --* Selects a specific PID from within a video source.

        - **VideoSelectorProgramId** *(dict) --* Video Selector Program Id

          - **ProgramId** *(integer) --* Selects a specific program from within a multi-program
          transport stream. If the program doesn't exist, the first program within the transport
          stream will be selected by default.
    """


_ListChannelsPaginateResponseChannelsInputAttachmentsTypeDef = TypedDict(
    "_ListChannelsPaginateResponseChannelsInputAttachmentsTypeDef",
    {
        "InputAttachmentName": str,
        "InputId": str,
        "InputSettings": ListChannelsPaginateResponseChannelsInputAttachmentsInputSettingsTypeDef,
    },
    total=False,
)


class ListChannelsPaginateResponseChannelsInputAttachmentsTypeDef(
    _ListChannelsPaginateResponseChannelsInputAttachmentsTypeDef
):
    """
    Type definition for `ListChannelsPaginateResponseChannels` `InputAttachments`

    - **InputAttachmentName** *(string) --* User-specified name for the attachment. This is required
    if the user wants to use this input in an input switch action.

    - **InputId** *(string) --* The ID of the input

    - **InputSettings** *(dict) --* Settings of an input (caption selector, etc.)

      - **AudioSelectors** *(list) --* Used to select the audio stream to decode for inputs that
      have multiple available.

        - *(dict) --* Audio Selector

          - **Name** *(string) --* The name of this AudioSelector. AudioDescriptions will use this
          name to uniquely identify this Selector. Selector names should be unique per input.

          - **SelectorSettings** *(dict) --* The audio selector settings.

            - **AudioLanguageSelection** *(dict) --* Audio Language Selection

              - **LanguageCode** *(string) --* Selects a specific three-letter language code from
              within an audio source.

              - **LanguageSelectionPolicy** *(string) --* When set to "strict", the transport stream
              demux strictly identifies audio streams by their language descriptor. If a PMT update
              occurs such that an audio stream matching the initially selected language is no longer
              present then mute will be encoded until the language returns. If "loose", then on a
              PMT update the demux will choose another audio stream in the program with the same
              stream type if it can't find one with the same language.

            - **AudioPidSelection** *(dict) --* Audio Pid Selection

              - **Pid** *(integer) --* Selects a specific PID from within a source.

      - **CaptionSelectors** *(list) --* Used to select the caption input to use for inputs that
      have multiple available.

        - *(dict) --* Output groups for this Live Event. Output groups contain information about
        where streams should be distributed.

          - **LanguageCode** *(string) --* When specified this field indicates the three letter
          language code of the caption track to extract from the source.

          - **Name** *(string) --* Name identifier for a caption selector. This name is used to
          associate this caption selector with one or more caption descriptions. Names must be
          unique within an event.

          - **SelectorSettings** *(dict) --* Caption selector settings.

            - **AribSourceSettings** *(dict) --* Arib Source Settings

            - **DvbSubSourceSettings** *(dict) --* Dvb Sub Source Settings

              - **Pid** *(integer) --* When using DVB-Sub with Burn-In or SMPTE-TT, use this PID for
              the source content. Unused for DVB-Sub passthrough. All DVB-Sub content is passed
              through, regardless of selectors.

            - **EmbeddedSourceSettings** *(dict) --* Embedded Source Settings

              - **Convert608To708** *(string) --* If upconvert, 608 data is both passed through via
              the "608 compatibility bytes" fields of the 708 wrapper as well as translated into
              708. 708 data present in the source content will be discarded.

              - **Scte20Detection** *(string) --* Set to "auto" to handle streams with intermittent
              and/or non-aligned SCTE-20 and Embedded captions.

              - **Source608ChannelNumber** *(integer) --* Specifies the 608/708 channel number
              within the video track from which to extract captions. Unused for passthrough.

              - **Source608TrackNumber** *(integer) --* This field is unused and deprecated.

            - **Scte20SourceSettings** *(dict) --* Scte20 Source Settings

              - **Convert608To708** *(string) --* If upconvert, 608 data is both passed through via
              the "608 compatibility bytes" fields of the 708 wrapper as well as translated into
              708. 708 data present in the source content will be discarded.

              - **Source608ChannelNumber** *(integer) --* Specifies the 608/708 channel number
              within the video track from which to extract captions. Unused for passthrough.

            - **Scte27SourceSettings** *(dict) --* Scte27 Source Settings

              - **Pid** *(integer) --* The pid field is used in conjunction with the caption
              selector languageCode field as follows: - Specify PID and Language: Extracts captions
              from that PID; the language is "informational". - Specify PID and omit Language:
              Extracts the specified PID. - Omit PID and specify Language: Extracts the specified
              language, whichever PID that happens to be. - Omit PID and omit Language: Valid only
              if source is DVB-Sub that is being passed through; all languages will be passed
              through.

            - **TeletextSourceSettings** *(dict) --* Teletext Source Settings

              - **PageNumber** *(string) --* Specifies the teletext page number within the data
              stream from which to extract captions. Range of 0x100 (256) to 0x8FF (2303). Unused
              for passthrough. Should be specified as a hexadecimal string with no "0x" prefix.

      - **DeblockFilter** *(string) --* Enable or disable the deblock filter when filtering.

      - **DenoiseFilter** *(string) --* Enable or disable the denoise filter when filtering.

      - **FilterStrength** *(integer) --* Adjusts the magnitude of filtering from 1 (minimal) to 5
      (strongest).

      - **InputFilter** *(string) --* Turns on the filter for this input. MPEG-2 inputs have the
      deblocking filter enabled by default. 1) auto - filtering will be applied depending on input
      type/quality 2) disabled - no filtering will be applied to the input 3) forced - filtering
      will be applied regardless of input type

      - **NetworkInputSettings** *(dict) --* Input settings.

        - **HlsInputSettings** *(dict) --* Specifies HLS input settings when the uri is for a HLS
        manifest.

          - **Bandwidth** *(integer) --* When specified the HLS stream with the m3u8 BANDWIDTH that
          most closely matches this value will be chosen, otherwise the highest bandwidth stream in
          the m3u8 will be chosen. The bitrate is specified in bits per second, as in an HLS
          manifest.

          - **BufferSegments** *(integer) --* When specified, reading of the HLS input will begin
          this many buffer segments from the end (most recently written segment). When not
          specified, the HLS input will begin with the first segment specified in the m3u8.

          - **Retries** *(integer) --* The number of consecutive times that attempts to read a
          manifest or segment must fail before the input is considered unavailable.

          - **RetryInterval** *(integer) --* The number of seconds between retries when an attempt
          to read a manifest or segment fails.

        - **ServerValidation** *(string) --* Check HTTPS server certificates. When set to
        checkCryptographyOnly, cryptography in the certificate will be checked, but not the server's
        name. Certain subdomains (notably S3 buckets that use dots in the bucket name) do not
        strictly match the corresponding certificate's wildcard pattern and would otherwise cause
        the event to error. This setting is ignored for protocols that do not use https.

      - **SourceEndBehavior** *(string) --* Loop input if it is a file. This allows a file input to
      be streamed indefinitely.

      - **VideoSelector** *(dict) --* Informs which video elementary stream to decode for input
      types that have multiple available.

        - **ColorSpace** *(string) --* Specifies the color space of an input. This setting works in
        tandem with colorSpaceUsage and a video description's colorSpaceSettingsChoice to determine
        if any conversion will be performed.

        - **ColorSpaceUsage** *(string) --* Applies only if colorSpace is a value other than follow.
        This field controls how the value in the colorSpace field will be used. fallback means that
        when the input does include color space data, that data will be used, but when the input has
        no color space data, the value in colorSpace will be used. Choose fallback if your input is
        sometimes missing color space data, but when it does have color space data, that data is
        correct. force means to always use the value in colorSpace. Choose force if your input
        usually has no color space data or might have unreliable color space data.

        - **SelectorSettings** *(dict) --* The video selector settings.

          - **VideoSelectorPid** *(dict) --* Video Selector Pid

            - **Pid** *(integer) --* Selects a specific PID from within a video source.

          - **VideoSelectorProgramId** *(dict) --* Video Selector Program Id

            - **ProgramId** *(integer) --* Selects a specific program from within a multi-program
            transport stream. If the program doesn't exist, the first program within the transport
            stream will be selected by default.
    """


_ListChannelsPaginateResponseChannelsInputSpecificationTypeDef = TypedDict(
    "_ListChannelsPaginateResponseChannelsInputSpecificationTypeDef",
    {"Codec": str, "MaximumBitrate": str, "Resolution": str},
    total=False,
)


class ListChannelsPaginateResponseChannelsInputSpecificationTypeDef(
    _ListChannelsPaginateResponseChannelsInputSpecificationTypeDef
):
    """
    Type definition for `ListChannelsPaginateResponseChannels` `InputSpecification`

    - **Codec** *(string) --* Input codec

    - **MaximumBitrate** *(string) --* Maximum input bitrate, categorized coarsely

    - **Resolution** *(string) --* Input resolution, categorized coarsely
    """


_ListChannelsPaginateResponseChannelsTypeDef = TypedDict(
    "_ListChannelsPaginateResponseChannelsTypeDef",
    {
        "Arn": str,
        "ChannelClass": str,
        "Destinations": List[ListChannelsPaginateResponseChannelsDestinationsTypeDef],
        "EgressEndpoints": List[ListChannelsPaginateResponseChannelsEgressEndpointsTypeDef],
        "Id": str,
        "InputAttachments": List[ListChannelsPaginateResponseChannelsInputAttachmentsTypeDef],
        "InputSpecification": ListChannelsPaginateResponseChannelsInputSpecificationTypeDef,
        "LogLevel": str,
        "Name": str,
        "PipelinesRunningCount": int,
        "RoleArn": str,
        "State": str,
        "Tags": Dict[str, str],
    },
    total=False,
)


class ListChannelsPaginateResponseChannelsTypeDef(_ListChannelsPaginateResponseChannelsTypeDef):
    """
    Type definition for `ListChannelsPaginateResponse` `Channels`

    - **Arn** *(string) --* The unique arn of the channel.

    - **ChannelClass** *(string) --* The class for this channel. STANDARD for a channel with two
    pipelines or SINGLE_PIPELINE for a channel with one pipeline.

    - **Destinations** *(list) --* A list of destinations of the channel. For UDP outputs, there is
    one destination per output. For other types (HLS, for example), there is one destination per
    packager.

      - *(dict) --* Placeholder documentation for OutputDestination

        - **Id** *(string) --* User-specified id. This is used in an output group or an output.

        - **MediaPackageSettings** *(list) --* Destination settings for a MediaPackage output; one
        destination for both encoders.

          - *(dict) --* MediaPackage Output Destination Settings

            - **ChannelId** *(string) --* ID of the channel in MediaPackage that is the destination
            for this output group. You do not need to specify the individual inputs in MediaPackage;
            MediaLive will handle the connection of the two MediaLive pipelines to the two
            MediaPackage inputs. The MediaPackage channel and MediaLive channel must be in the same
            region.

        - **MultiplexSettings** *(dict) --* Destination settings for a Multiplex output; one
        destination for both encoders.

          - **MultiplexId** *(string) --* The ID of the Multiplex that the encoder is providing
          output to. You do not need to specify the individual inputs to the Multiplex; MediaLive
          will handle the connection of the two MediaLive pipelines to the two Multiplex instances.
          The Multiplex must be in the same region as the Channel.

          - **ProgramName** *(string) --* The program name of the Multiplex program that the encoder
          is providing output to.

        - **Settings** *(list) --* Destination settings for a standard output; one destination for
        each redundant encoder.

          - *(dict) --* Placeholder documentation for OutputDestinationSettings

            - **PasswordParam** *(string) --* key used to extract the password from EC2 Parameter
            store

            - **StreamName** *(string) --* Stream name for RTMP destinations (URLs of type rtmp://)

            - **Url** *(string) --* A URL specifying a destination

            - **Username** *(string) --* username for destination

    - **EgressEndpoints** *(list) --* The endpoints where outgoing connections initiate from

      - *(dict) --* Placeholder documentation for ChannelEgressEndpoint

        - **SourceIp** *(string) --* Public IP of where a channel's output comes from

    - **Id** *(string) --* The unique id of the channel.

    - **InputAttachments** *(list) --* List of input attachments for channel.

      - *(dict) --* Placeholder documentation for InputAttachment

        - **InputAttachmentName** *(string) --* User-specified name for the attachment. This is
        required if the user wants to use this input in an input switch action.

        - **InputId** *(string) --* The ID of the input

        - **InputSettings** *(dict) --* Settings of an input (caption selector, etc.)

          - **AudioSelectors** *(list) --* Used to select the audio stream to decode for inputs that
          have multiple available.

            - *(dict) --* Audio Selector

              - **Name** *(string) --* The name of this AudioSelector. AudioDescriptions will use
              this name to uniquely identify this Selector. Selector names should be unique per
              input.

              - **SelectorSettings** *(dict) --* The audio selector settings.

                - **AudioLanguageSelection** *(dict) --* Audio Language Selection

                  - **LanguageCode** *(string) --* Selects a specific three-letter language code
                  from within an audio source.

                  - **LanguageSelectionPolicy** *(string) --* When set to "strict", the transport
                  stream demux strictly identifies audio streams by their language descriptor. If a
                  PMT update occurs such that an audio stream matching the initially selected
                  language is no longer present then mute will be encoded until the language
                  returns. If "loose", then on a PMT update the demux will choose another audio
                  stream in the program with the same stream type if it can't find one with the same
                  language.

                - **AudioPidSelection** *(dict) --* Audio Pid Selection

                  - **Pid** *(integer) --* Selects a specific PID from within a source.

          - **CaptionSelectors** *(list) --* Used to select the caption input to use for inputs that
          have multiple available.

            - *(dict) --* Output groups for this Live Event. Output groups contain information about
            where streams should be distributed.

              - **LanguageCode** *(string) --* When specified this field indicates the three letter
              language code of the caption track to extract from the source.

              - **Name** *(string) --* Name identifier for a caption selector. This name is used to
              associate this caption selector with one or more caption descriptions. Names must be
              unique within an event.

              - **SelectorSettings** *(dict) --* Caption selector settings.

                - **AribSourceSettings** *(dict) --* Arib Source Settings

                - **DvbSubSourceSettings** *(dict) --* Dvb Sub Source Settings

                  - **Pid** *(integer) --* When using DVB-Sub with Burn-In or SMPTE-TT, use this PID
                  for the source content. Unused for DVB-Sub passthrough. All DVB-Sub content is
                  passed through, regardless of selectors.

                - **EmbeddedSourceSettings** *(dict) --* Embedded Source Settings

                  - **Convert608To708** *(string) --* If upconvert, 608 data is both passed through
                  via the "608 compatibility bytes" fields of the 708 wrapper as well as translated
                  into 708. 708 data present in the source content will be discarded.

                  - **Scte20Detection** *(string) --* Set to "auto" to handle streams with
                  intermittent and/or non-aligned SCTE-20 and Embedded captions.

                  - **Source608ChannelNumber** *(integer) --* Specifies the 608/708 channel number
                  within the video track from which to extract captions. Unused for passthrough.

                  - **Source608TrackNumber** *(integer) --* This field is unused and deprecated.

                - **Scte20SourceSettings** *(dict) --* Scte20 Source Settings

                  - **Convert608To708** *(string) --* If upconvert, 608 data is both passed through
                  via the "608 compatibility bytes" fields of the 708 wrapper as well as translated
                  into 708. 708 data present in the source content will be discarded.

                  - **Source608ChannelNumber** *(integer) --* Specifies the 608/708 channel number
                  within the video track from which to extract captions. Unused for passthrough.

                - **Scte27SourceSettings** *(dict) --* Scte27 Source Settings

                  - **Pid** *(integer) --* The pid field is used in conjunction with the caption
                  selector languageCode field as follows: - Specify PID and Language: Extracts
                  captions from that PID; the language is "informational". - Specify PID and omit
                  Language: Extracts the specified PID. - Omit PID and specify Language: Extracts
                  the specified language, whichever PID that happens to be. - Omit PID and omit
                  Language: Valid only if source is DVB-Sub that is being passed through; all
                  languages will be passed through.

                - **TeletextSourceSettings** *(dict) --* Teletext Source Settings

                  - **PageNumber** *(string) --* Specifies the teletext page number within the data
                  stream from which to extract captions. Range of 0x100 (256) to 0x8FF (2303).
                  Unused for passthrough. Should be specified as a hexadecimal string with no "0x"
                  prefix.

          - **DeblockFilter** *(string) --* Enable or disable the deblock filter when filtering.

          - **DenoiseFilter** *(string) --* Enable or disable the denoise filter when filtering.

          - **FilterStrength** *(integer) --* Adjusts the magnitude of filtering from 1 (minimal) to
          5 (strongest).

          - **InputFilter** *(string) --* Turns on the filter for this input. MPEG-2 inputs have the
          deblocking filter enabled by default. 1) auto - filtering will be applied depending on
          input type/quality 2) disabled - no filtering will be applied to the input 3) forced -
          filtering will be applied regardless of input type

          - **NetworkInputSettings** *(dict) --* Input settings.

            - **HlsInputSettings** *(dict) --* Specifies HLS input settings when the uri is for a
            HLS manifest.

              - **Bandwidth** *(integer) --* When specified the HLS stream with the m3u8 BANDWIDTH
              that most closely matches this value will be chosen, otherwise the highest bandwidth
              stream in the m3u8 will be chosen. The bitrate is specified in bits per second, as in
              an HLS manifest.

              - **BufferSegments** *(integer) --* When specified, reading of the HLS input will
              begin this many buffer segments from the end (most recently written segment). When not
              specified, the HLS input will begin with the first segment specified in the m3u8.

              - **Retries** *(integer) --* The number of consecutive times that attempts to read a
              manifest or segment must fail before the input is considered unavailable.

              - **RetryInterval** *(integer) --* The number of seconds between retries when an
              attempt to read a manifest or segment fails.

            - **ServerValidation** *(string) --* Check HTTPS server certificates. When set to
            checkCryptographyOnly, cryptography in the certificate will be checked, but not the
            server's name. Certain subdomains (notably S3 buckets that use dots in the bucket name)
            do not strictly match the corresponding certificate's wildcard pattern and would
            otherwise cause the event to error. This setting is ignored for protocols that do not
            use https.

          - **SourceEndBehavior** *(string) --* Loop input if it is a file. This allows a file input
          to be streamed indefinitely.

          - **VideoSelector** *(dict) --* Informs which video elementary stream to decode for input
          types that have multiple available.

            - **ColorSpace** *(string) --* Specifies the color space of an input. This setting works
            in tandem with colorSpaceUsage and a video description's colorSpaceSettingsChoice to
            determine if any conversion will be performed.

            - **ColorSpaceUsage** *(string) --* Applies only if colorSpace is a value other than
            follow. This field controls how the value in the colorSpace field will be used. fallback
            means that when the input does include color space data, that data will be used, but
            when the input has no color space data, the value in colorSpace will be used. Choose
            fallback if your input is sometimes missing color space data, but when it does have
            color space data, that data is correct. force means to always use the value in
            colorSpace. Choose force if your input usually has no color space data or might have
            unreliable color space data.

            - **SelectorSettings** *(dict) --* The video selector settings.

              - **VideoSelectorPid** *(dict) --* Video Selector Pid

                - **Pid** *(integer) --* Selects a specific PID from within a video source.

              - **VideoSelectorProgramId** *(dict) --* Video Selector Program Id

                - **ProgramId** *(integer) --* Selects a specific program from within a
                multi-program transport stream. If the program doesn't exist, the first program
                within the transport stream will be selected by default.

    - **InputSpecification** *(dict) --* Placeholder documentation for InputSpecification

      - **Codec** *(string) --* Input codec

      - **MaximumBitrate** *(string) --* Maximum input bitrate, categorized coarsely

      - **Resolution** *(string) --* Input resolution, categorized coarsely

    - **LogLevel** *(string) --* The log level being written to CloudWatch Logs.

    - **Name** *(string) --* The name of the channel. (user-mutable)

    - **PipelinesRunningCount** *(integer) --* The number of currently healthy pipelines.

    - **RoleArn** *(string) --* The Amazon Resource Name (ARN) of the role assumed when running the
    Channel.

    - **State** *(string) --* Placeholder documentation for ChannelState

    - **Tags** *(dict) --* A collection of key-value pairs.

      - *(string) --* Placeholder documentation for __string

        - *(string) --* Placeholder documentation for __string
    """


_ListChannelsPaginateResponseTypeDef = TypedDict(
    "_ListChannelsPaginateResponseTypeDef",
    {"Channels": List[ListChannelsPaginateResponseChannelsTypeDef]},
    total=False,
)


class ListChannelsPaginateResponseTypeDef(_ListChannelsPaginateResponseTypeDef):
    """
    Type definition for `ListChannelsPaginate` `Response`

    - **Channels** *(list) --* Placeholder documentation for __listOfChannelSummary

      - *(dict) --* Placeholder documentation for ChannelSummary

        - **Arn** *(string) --* The unique arn of the channel.

        - **ChannelClass** *(string) --* The class for this channel. STANDARD for a channel with two
        pipelines or SINGLE_PIPELINE for a channel with one pipeline.

        - **Destinations** *(list) --* A list of destinations of the channel. For UDP outputs, there
        is one destination per output. For other types (HLS, for example), there is one destination
        per packager.

          - *(dict) --* Placeholder documentation for OutputDestination

            - **Id** *(string) --* User-specified id. This is used in an output group or an output.

            - **MediaPackageSettings** *(list) --* Destination settings for a MediaPackage output;
            one destination for both encoders.

              - *(dict) --* MediaPackage Output Destination Settings

                - **ChannelId** *(string) --* ID of the channel in MediaPackage that is the
                destination for this output group. You do not need to specify the individual inputs
                in MediaPackage; MediaLive will handle the connection of the two MediaLive pipelines
                to the two MediaPackage inputs. The MediaPackage channel and MediaLive channel must
                be in the same region.

            - **MultiplexSettings** *(dict) --* Destination settings for a Multiplex output; one
            destination for both encoders.

              - **MultiplexId** *(string) --* The ID of the Multiplex that the encoder is providing
              output to. You do not need to specify the individual inputs to the Multiplex;
              MediaLive will handle the connection of the two MediaLive pipelines to the two
              Multiplex instances. The Multiplex must be in the same region as the Channel.

              - **ProgramName** *(string) --* The program name of the Multiplex program that the
              encoder is providing output to.

            - **Settings** *(list) --* Destination settings for a standard output; one destination
            for each redundant encoder.

              - *(dict) --* Placeholder documentation for OutputDestinationSettings

                - **PasswordParam** *(string) --* key used to extract the password from EC2
                Parameter store

                - **StreamName** *(string) --* Stream name for RTMP destinations (URLs of type
                rtmp://)

                - **Url** *(string) --* A URL specifying a destination

                - **Username** *(string) --* username for destination

        - **EgressEndpoints** *(list) --* The endpoints where outgoing connections initiate from

          - *(dict) --* Placeholder documentation for ChannelEgressEndpoint

            - **SourceIp** *(string) --* Public IP of where a channel's output comes from

        - **Id** *(string) --* The unique id of the channel.

        - **InputAttachments** *(list) --* List of input attachments for channel.

          - *(dict) --* Placeholder documentation for InputAttachment

            - **InputAttachmentName** *(string) --* User-specified name for the attachment. This is
            required if the user wants to use this input in an input switch action.

            - **InputId** *(string) --* The ID of the input

            - **InputSettings** *(dict) --* Settings of an input (caption selector, etc.)

              - **AudioSelectors** *(list) --* Used to select the audio stream to decode for inputs
              that have multiple available.

                - *(dict) --* Audio Selector

                  - **Name** *(string) --* The name of this AudioSelector. AudioDescriptions will
                  use this name to uniquely identify this Selector. Selector names should be unique
                  per input.

                  - **SelectorSettings** *(dict) --* The audio selector settings.

                    - **AudioLanguageSelection** *(dict) --* Audio Language Selection

                      - **LanguageCode** *(string) --* Selects a specific three-letter language code
                      from within an audio source.

                      - **LanguageSelectionPolicy** *(string) --* When set to "strict", the
                      transport stream demux strictly identifies audio streams by their language
                      descriptor. If a PMT update occurs such that an audio stream matching the
                      initially selected language is no longer present then mute will be encoded
                      until the language returns. If "loose", then on a PMT update the demux will
                      choose another audio stream in the program with the same stream type if it
                      can't find one with the same language.

                    - **AudioPidSelection** *(dict) --* Audio Pid Selection

                      - **Pid** *(integer) --* Selects a specific PID from within a source.

              - **CaptionSelectors** *(list) --* Used to select the caption input to use for inputs
              that have multiple available.

                - *(dict) --* Output groups for this Live Event. Output groups contain information
                about where streams should be distributed.

                  - **LanguageCode** *(string) --* When specified this field indicates the three
                  letter language code of the caption track to extract from the source.

                  - **Name** *(string) --* Name identifier for a caption selector. This name is used
                  to associate this caption selector with one or more caption descriptions. Names
                  must be unique within an event.

                  - **SelectorSettings** *(dict) --* Caption selector settings.

                    - **AribSourceSettings** *(dict) --* Arib Source Settings

                    - **DvbSubSourceSettings** *(dict) --* Dvb Sub Source Settings

                      - **Pid** *(integer) --* When using DVB-Sub with Burn-In or SMPTE-TT, use this
                      PID for the source content. Unused for DVB-Sub passthrough. All DVB-Sub
                      content is passed through, regardless of selectors.

                    - **EmbeddedSourceSettings** *(dict) --* Embedded Source Settings

                      - **Convert608To708** *(string) --* If upconvert, 608 data is both passed
                      through via the "608 compatibility bytes" fields of the 708 wrapper as well as
                      translated into 708. 708 data present in the source content will be discarded.

                      - **Scte20Detection** *(string) --* Set to "auto" to handle streams with
                      intermittent and/or non-aligned SCTE-20 and Embedded captions.

                      - **Source608ChannelNumber** *(integer) --* Specifies the 608/708 channel
                      number within the video track from which to extract captions. Unused for
                      passthrough.

                      - **Source608TrackNumber** *(integer) --* This field is unused and deprecated.

                    - **Scte20SourceSettings** *(dict) --* Scte20 Source Settings

                      - **Convert608To708** *(string) --* If upconvert, 608 data is both passed
                      through via the "608 compatibility bytes" fields of the 708 wrapper as well as
                      translated into 708. 708 data present in the source content will be discarded.

                      - **Source608ChannelNumber** *(integer) --* Specifies the 608/708 channel
                      number within the video track from which to extract captions. Unused for
                      passthrough.

                    - **Scte27SourceSettings** *(dict) --* Scte27 Source Settings

                      - **Pid** *(integer) --* The pid field is used in conjunction with the caption
                      selector languageCode field as follows: - Specify PID and Language: Extracts
                      captions from that PID; the language is "informational". - Specify PID and
                      omit Language: Extracts the specified PID. - Omit PID and specify Language:
                      Extracts the specified language, whichever PID that happens to be. - Omit PID
                      and omit Language: Valid only if source is DVB-Sub that is being passed
                      through; all languages will be passed through.

                    - **TeletextSourceSettings** *(dict) --* Teletext Source Settings

                      - **PageNumber** *(string) --* Specifies the teletext page number within the
                      data stream from which to extract captions. Range of 0x100 (256) to 0x8FF
                      (2303). Unused for passthrough. Should be specified as a hexadecimal string
                      with no "0x" prefix.

              - **DeblockFilter** *(string) --* Enable or disable the deblock filter when filtering.

              - **DenoiseFilter** *(string) --* Enable or disable the denoise filter when filtering.

              - **FilterStrength** *(integer) --* Adjusts the magnitude of filtering from 1
              (minimal) to 5 (strongest).

              - **InputFilter** *(string) --* Turns on the filter for this input. MPEG-2 inputs have
              the deblocking filter enabled by default. 1) auto - filtering will be applied
              depending on input type/quality 2) disabled - no filtering will be applied to the
              input 3) forced - filtering will be applied regardless of input type

              - **NetworkInputSettings** *(dict) --* Input settings.

                - **HlsInputSettings** *(dict) --* Specifies HLS input settings when the uri is for
                a HLS manifest.

                  - **Bandwidth** *(integer) --* When specified the HLS stream with the m3u8
                  BANDWIDTH that most closely matches this value will be chosen, otherwise the
                  highest bandwidth stream in the m3u8 will be chosen. The bitrate is specified in
                  bits per second, as in an HLS manifest.

                  - **BufferSegments** *(integer) --* When specified, reading of the HLS input will
                  begin this many buffer segments from the end (most recently written segment). When
                  not specified, the HLS input will begin with the first segment specified in the
                  m3u8.

                  - **Retries** *(integer) --* The number of consecutive times that attempts to read
                  a manifest or segment must fail before the input is considered unavailable.

                  - **RetryInterval** *(integer) --* The number of seconds between retries when an
                  attempt to read a manifest or segment fails.

                - **ServerValidation** *(string) --* Check HTTPS server certificates. When set to
                checkCryptographyOnly, cryptography in the certificate will be checked, but not the
                server's name. Certain subdomains (notably S3 buckets that use dots in the bucket
                name) do not strictly match the corresponding certificate's wildcard pattern and
                would otherwise cause the event to error. This setting is ignored for protocols that
                do not use https.

              - **SourceEndBehavior** *(string) --* Loop input if it is a file. This allows a file
              input to be streamed indefinitely.

              - **VideoSelector** *(dict) --* Informs which video elementary stream to decode for
              input types that have multiple available.

                - **ColorSpace** *(string) --* Specifies the color space of an input. This setting
                works in tandem with colorSpaceUsage and a video description's
                colorSpaceSettingsChoice to determine if any conversion will be performed.

                - **ColorSpaceUsage** *(string) --* Applies only if colorSpace is a value other than
                follow. This field controls how the value in the colorSpace field will be used.
                fallback means that when the input does include color space data, that data will be
                used, but when the input has no color space data, the value in colorSpace will be
                used. Choose fallback if your input is sometimes missing color space data, but when
                it does have color space data, that data is correct. force means to always use the
                value in colorSpace. Choose force if your input usually has no color space data or
                might have unreliable color space data.

                - **SelectorSettings** *(dict) --* The video selector settings.

                  - **VideoSelectorPid** *(dict) --* Video Selector Pid

                    - **Pid** *(integer) --* Selects a specific PID from within a video source.

                  - **VideoSelectorProgramId** *(dict) --* Video Selector Program Id

                    - **ProgramId** *(integer) --* Selects a specific program from within a
                    multi-program transport stream. If the program doesn't exist, the first program
                    within the transport stream will be selected by default.

        - **InputSpecification** *(dict) --* Placeholder documentation for InputSpecification

          - **Codec** *(string) --* Input codec

          - **MaximumBitrate** *(string) --* Maximum input bitrate, categorized coarsely

          - **Resolution** *(string) --* Input resolution, categorized coarsely

        - **LogLevel** *(string) --* The log level being written to CloudWatch Logs.

        - **Name** *(string) --* The name of the channel. (user-mutable)

        - **PipelinesRunningCount** *(integer) --* The number of currently healthy pipelines.

        - **RoleArn** *(string) --* The Amazon Resource Name (ARN) of the role assumed when running
        the Channel.

        - **State** *(string) --* Placeholder documentation for ChannelState

        - **Tags** *(dict) --* A collection of key-value pairs.

          - *(string) --* Placeholder documentation for __string

            - *(string) --* Placeholder documentation for __string
    """


_ListInputSecurityGroupsPaginatePaginationConfigTypeDef = TypedDict(
    "_ListInputSecurityGroupsPaginatePaginationConfigTypeDef",
    {"MaxItems": int, "PageSize": int, "StartingToken": str},
    total=False,
)


class ListInputSecurityGroupsPaginatePaginationConfigTypeDef(
    _ListInputSecurityGroupsPaginatePaginationConfigTypeDef
):
    """
    Type definition for `ListInputSecurityGroupsPaginate` `PaginationConfig`

    A dictionary that provides parameters to control pagination.

    - **MaxItems** *(integer) --*

      The total number of items to return. If the total number of items available is more than the
      value specified in max-items then a ``NextToken`` will be provided in the output that you can
      use to resume pagination.

    - **PageSize** *(integer) --*

      The size of each page.

    - **StartingToken** *(string) --*

      A token to specify where to start paginating. This is the ``NextToken`` from a previous
      response.
    """


_ListInputSecurityGroupsPaginateResponseInputSecurityGroupsWhitelistRulesTypeDef = TypedDict(
    "_ListInputSecurityGroupsPaginateResponseInputSecurityGroupsWhitelistRulesTypeDef",
    {"Cidr": str},
    total=False,
)


class ListInputSecurityGroupsPaginateResponseInputSecurityGroupsWhitelistRulesTypeDef(
    _ListInputSecurityGroupsPaginateResponseInputSecurityGroupsWhitelistRulesTypeDef
):
    """
    Type definition for `ListInputSecurityGroupsPaginateResponseInputSecurityGroups`
    `WhitelistRules`

    - **Cidr** *(string) --* The IPv4 CIDR that's whitelisted.
    """


_ListInputSecurityGroupsPaginateResponseInputSecurityGroupsTypeDef = TypedDict(
    "_ListInputSecurityGroupsPaginateResponseInputSecurityGroupsTypeDef",
    {
        "Arn": str,
        "Id": str,
        "Inputs": List[str],
        "State": str,
        "Tags": Dict[str, str],
        "WhitelistRules": List[
            ListInputSecurityGroupsPaginateResponseInputSecurityGroupsWhitelistRulesTypeDef
        ],
    },
    total=False,
)


class ListInputSecurityGroupsPaginateResponseInputSecurityGroupsTypeDef(
    _ListInputSecurityGroupsPaginateResponseInputSecurityGroupsTypeDef
):
    """
    Type definition for `ListInputSecurityGroupsPaginateResponse` `InputSecurityGroups`

    - **Arn** *(string) --* Unique ARN of Input Security Group

    - **Id** *(string) --* The Id of the Input Security Group

    - **Inputs** *(list) --* The list of inputs currently using this Input Security Group.

      - *(string) --* Placeholder documentation for __string

    - **State** *(string) --* The current state of the Input Security Group.

    - **Tags** *(dict) --* A collection of key-value pairs.

      - *(string) --* Placeholder documentation for __string

        - *(string) --* Placeholder documentation for __string

    - **WhitelistRules** *(list) --* Whitelist rules and their sync status

      - *(dict) --* Whitelist rule

        - **Cidr** *(string) --* The IPv4 CIDR that's whitelisted.
    """


_ListInputSecurityGroupsPaginateResponseTypeDef = TypedDict(
    "_ListInputSecurityGroupsPaginateResponseTypeDef",
    {
        "InputSecurityGroups": List[
            ListInputSecurityGroupsPaginateResponseInputSecurityGroupsTypeDef
        ]
    },
    total=False,
)


class ListInputSecurityGroupsPaginateResponseTypeDef(
    _ListInputSecurityGroupsPaginateResponseTypeDef
):
    """
    Type definition for `ListInputSecurityGroupsPaginate` `Response`

    - **InputSecurityGroups** *(list) --* List of input security groups

      - *(dict) --* An Input Security Group

        - **Arn** *(string) --* Unique ARN of Input Security Group

        - **Id** *(string) --* The Id of the Input Security Group

        - **Inputs** *(list) --* The list of inputs currently using this Input Security Group.

          - *(string) --* Placeholder documentation for __string

        - **State** *(string) --* The current state of the Input Security Group.

        - **Tags** *(dict) --* A collection of key-value pairs.

          - *(string) --* Placeholder documentation for __string

            - *(string) --* Placeholder documentation for __string

        - **WhitelistRules** *(list) --* Whitelist rules and their sync status

          - *(dict) --* Whitelist rule

            - **Cidr** *(string) --* The IPv4 CIDR that's whitelisted.
    """


_ListInputsPaginatePaginationConfigTypeDef = TypedDict(
    "_ListInputsPaginatePaginationConfigTypeDef",
    {"MaxItems": int, "PageSize": int, "StartingToken": str},
    total=False,
)


class ListInputsPaginatePaginationConfigTypeDef(_ListInputsPaginatePaginationConfigTypeDef):
    """
    Type definition for `ListInputsPaginate` `PaginationConfig`

    A dictionary that provides parameters to control pagination.

    - **MaxItems** *(integer) --*

      The total number of items to return. If the total number of items available is more than the
      value specified in max-items then a ``NextToken`` will be provided in the output that you can
      use to resume pagination.

    - **PageSize** *(integer) --*

      The size of each page.

    - **StartingToken** *(string) --*

      A token to specify where to start paginating. This is the ``NextToken`` from a previous
      response.
    """


_ListInputsPaginateResponseInputsDestinationsVpcTypeDef = TypedDict(
    "_ListInputsPaginateResponseInputsDestinationsVpcTypeDef",
    {"AvailabilityZone": str, "NetworkInterfaceId": str},
    total=False,
)


class ListInputsPaginateResponseInputsDestinationsVpcTypeDef(
    _ListInputsPaginateResponseInputsDestinationsVpcTypeDef
):
    """
    Type definition for `ListInputsPaginateResponseInputsDestinations` `Vpc`

    - **AvailabilityZone** *(string) --* The availability zone of the Input destination.

    - **NetworkInterfaceId** *(string) --* The network interface ID of the Input destination in the
    VPC.
    """


_ListInputsPaginateResponseInputsDestinationsTypeDef = TypedDict(
    "_ListInputsPaginateResponseInputsDestinationsTypeDef",
    {
        "Ip": str,
        "Port": str,
        "Url": str,
        "Vpc": ListInputsPaginateResponseInputsDestinationsVpcTypeDef,
    },
    total=False,
)


class ListInputsPaginateResponseInputsDestinationsTypeDef(
    _ListInputsPaginateResponseInputsDestinationsTypeDef
):
    """
    Type definition for `ListInputsPaginateResponseInputs` `Destinations`

    - **Ip** *(string) --* The system-generated static IP address of endpoint. It remains fixed for
    the lifetime of the input.

    - **Port** *(string) --* The port number for the input.

    - **Url** *(string) --* This represents the endpoint that the customer stream will be pushed to.

    - **Vpc** *(dict) --* The properties for a VPC type input destination.

      - **AvailabilityZone** *(string) --* The availability zone of the Input destination.

      - **NetworkInterfaceId** *(string) --* The network interface ID of the Input destination in
      the VPC.
    """


_ListInputsPaginateResponseInputsMediaConnectFlowsTypeDef = TypedDict(
    "_ListInputsPaginateResponseInputsMediaConnectFlowsTypeDef", {"FlowArn": str}, total=False
)


class ListInputsPaginateResponseInputsMediaConnectFlowsTypeDef(
    _ListInputsPaginateResponseInputsMediaConnectFlowsTypeDef
):
    """
    Type definition for `ListInputsPaginateResponseInputs` `MediaConnectFlows`

    - **FlowArn** *(string) --* The unique ARN of the MediaConnect Flow being used as a source.
    """


_ListInputsPaginateResponseInputsSourcesTypeDef = TypedDict(
    "_ListInputsPaginateResponseInputsSourcesTypeDef",
    {"PasswordParam": str, "Url": str, "Username": str},
    total=False,
)


class ListInputsPaginateResponseInputsSourcesTypeDef(
    _ListInputsPaginateResponseInputsSourcesTypeDef
):
    """
    Type definition for `ListInputsPaginateResponseInputs` `Sources`

    - **PasswordParam** *(string) --* The key used to extract the password from EC2 Parameter store.

    - **Url** *(string) --* This represents the customer's source URL where stream is pulled from.

    - **Username** *(string) --* The username for the input source.
    """


_ListInputsPaginateResponseInputsTypeDef = TypedDict(
    "_ListInputsPaginateResponseInputsTypeDef",
    {
        "Arn": str,
        "AttachedChannels": List[str],
        "Destinations": List[ListInputsPaginateResponseInputsDestinationsTypeDef],
        "Id": str,
        "InputClass": str,
        "InputSourceType": str,
        "MediaConnectFlows": List[ListInputsPaginateResponseInputsMediaConnectFlowsTypeDef],
        "Name": str,
        "RoleArn": str,
        "SecurityGroups": List[str],
        "Sources": List[ListInputsPaginateResponseInputsSourcesTypeDef],
        "State": str,
        "Tags": Dict[str, str],
        "Type": str,
    },
    total=False,
)


class ListInputsPaginateResponseInputsTypeDef(_ListInputsPaginateResponseInputsTypeDef):
    """
    Type definition for `ListInputsPaginateResponse` `Inputs`

    - **Arn** *(string) --* The Unique ARN of the input (generated, immutable).

    - **AttachedChannels** *(list) --* A list of channel IDs that that input is attached to
    (currently an input can only be attached to one channel).

      - *(string) --* Placeholder documentation for __string

    - **Destinations** *(list) --* A list of the destinations of the input (PUSH-type).

      - *(dict) --* The settings for a PUSH type input.

        - **Ip** *(string) --* The system-generated static IP address of endpoint. It remains fixed
        for the lifetime of the input.

        - **Port** *(string) --* The port number for the input.

        - **Url** *(string) --* This represents the endpoint that the customer stream will be pushed
        to.

        - **Vpc** *(dict) --* The properties for a VPC type input destination.

          - **AvailabilityZone** *(string) --* The availability zone of the Input destination.

          - **NetworkInterfaceId** *(string) --* The network interface ID of the Input destination
          in the VPC.

    - **Id** *(string) --* The generated ID of the input (unique for user account, immutable).

    - **InputClass** *(string) --* STANDARD - MediaLive expects two sources to be connected to this
    input. If the channel is also STANDARD, both sources will be ingested. If the channel is
    SINGLE_PIPELINE, only the first source will be ingested; the second source will always be
    ignored, even if the first source fails. SINGLE_PIPELINE - You can connect only one source to
    this input. If the ChannelClass is also SINGLE_PIPELINE, this value is valid. If the
    ChannelClass is STANDARD, this value is not valid because the channel requires two sources in
    the input.

    - **InputSourceType** *(string) --* Certain pull input sources can be dynamic, meaning that they
    can have their URL's dynamically changes during input switch actions. Presently, this
    functionality only works with MP4_FILE inputs.

    - **MediaConnectFlows** *(list) --* A list of MediaConnect Flows for this input.

      - *(dict) --* The settings for a MediaConnect Flow.

        - **FlowArn** *(string) --* The unique ARN of the MediaConnect Flow being used as a source.

    - **Name** *(string) --* The user-assigned name (This is a mutable value).

    - **RoleArn** *(string) --* The Amazon Resource Name (ARN) of the role this input assumes during
    and after creation.

    - **SecurityGroups** *(list) --* A list of IDs for all the Input Security Groups attached to the
    input.

      - *(string) --* Placeholder documentation for __string

    - **Sources** *(list) --* A list of the sources of the input (PULL-type).

      - *(dict) --* The settings for a PULL type input.

        - **PasswordParam** *(string) --* The key used to extract the password from EC2 Parameter
        store.

        - **Url** *(string) --* This represents the customer's source URL where stream is pulled
        from.

        - **Username** *(string) --* The username for the input source.

    - **State** *(string) --* Placeholder documentation for InputState

    - **Tags** *(dict) --* A collection of key-value pairs.

      - *(string) --* Placeholder documentation for __string

        - *(string) --* Placeholder documentation for __string

    - **Type** *(string) --* Placeholder documentation for InputType
    """


_ListInputsPaginateResponseTypeDef = TypedDict(
    "_ListInputsPaginateResponseTypeDef",
    {"Inputs": List[ListInputsPaginateResponseInputsTypeDef]},
    total=False,
)


class ListInputsPaginateResponseTypeDef(_ListInputsPaginateResponseTypeDef):
    """
    Type definition for `ListInputsPaginate` `Response`

    - **Inputs** *(list) --* Placeholder documentation for __listOfInput

      - *(dict) --* Placeholder documentation for Input

        - **Arn** *(string) --* The Unique ARN of the input (generated, immutable).

        - **AttachedChannels** *(list) --* A list of channel IDs that that input is attached to
        (currently an input can only be attached to one channel).

          - *(string) --* Placeholder documentation for __string

        - **Destinations** *(list) --* A list of the destinations of the input (PUSH-type).

          - *(dict) --* The settings for a PUSH type input.

            - **Ip** *(string) --* The system-generated static IP address of endpoint. It remains
            fixed for the lifetime of the input.

            - **Port** *(string) --* The port number for the input.

            - **Url** *(string) --* This represents the endpoint that the customer stream will be
            pushed to.

            - **Vpc** *(dict) --* The properties for a VPC type input destination.

              - **AvailabilityZone** *(string) --* The availability zone of the Input destination.

              - **NetworkInterfaceId** *(string) --* The network interface ID of the Input
              destination in the VPC.

        - **Id** *(string) --* The generated ID of the input (unique for user account, immutable).

        - **InputClass** *(string) --* STANDARD - MediaLive expects two sources to be connected to
        this input. If the channel is also STANDARD, both sources will be ingested. If the channel
        is SINGLE_PIPELINE, only the first source will be ingested; the second source will always be
        ignored, even if the first source fails. SINGLE_PIPELINE - You can connect only one source
        to this input. If the ChannelClass is also SINGLE_PIPELINE, this value is valid. If the
        ChannelClass is STANDARD, this value is not valid because the channel requires two sources
        in the input.

        - **InputSourceType** *(string) --* Certain pull input sources can be dynamic, meaning that
        they can have their URL's dynamically changes during input switch actions. Presently, this
        functionality only works with MP4_FILE inputs.

        - **MediaConnectFlows** *(list) --* A list of MediaConnect Flows for this input.

          - *(dict) --* The settings for a MediaConnect Flow.

            - **FlowArn** *(string) --* The unique ARN of the MediaConnect Flow being used as a
            source.

        - **Name** *(string) --* The user-assigned name (This is a mutable value).

        - **RoleArn** *(string) --* The Amazon Resource Name (ARN) of the role this input assumes
        during and after creation.

        - **SecurityGroups** *(list) --* A list of IDs for all the Input Security Groups attached to
        the input.

          - *(string) --* Placeholder documentation for __string

        - **Sources** *(list) --* A list of the sources of the input (PULL-type).

          - *(dict) --* The settings for a PULL type input.

            - **PasswordParam** *(string) --* The key used to extract the password from EC2
            Parameter store.

            - **Url** *(string) --* This represents the customer's source URL where stream is pulled
            from.

            - **Username** *(string) --* The username for the input source.

        - **State** *(string) --* Placeholder documentation for InputState

        - **Tags** *(dict) --* A collection of key-value pairs.

          - *(string) --* Placeholder documentation for __string

            - *(string) --* Placeholder documentation for __string

        - **Type** *(string) --* Placeholder documentation for InputType
    """


_ListMultiplexProgramsPaginatePaginationConfigTypeDef = TypedDict(
    "_ListMultiplexProgramsPaginatePaginationConfigTypeDef",
    {"MaxItems": int, "PageSize": int, "StartingToken": str},
    total=False,
)


class ListMultiplexProgramsPaginatePaginationConfigTypeDef(
    _ListMultiplexProgramsPaginatePaginationConfigTypeDef
):
    """
    Type definition for `ListMultiplexProgramsPaginate` `PaginationConfig`

    A dictionary that provides parameters to control pagination.

    - **MaxItems** *(integer) --*

      The total number of items to return. If the total number of items available is more than the
      value specified in max-items then a ``NextToken`` will be provided in the output that you can
      use to resume pagination.

    - **PageSize** *(integer) --*

      The size of each page.

    - **StartingToken** *(string) --*

      A token to specify where to start paginating. This is the ``NextToken`` from a previous
      response.
    """


_ListMultiplexProgramsPaginateResponseMultiplexProgramsTypeDef = TypedDict(
    "_ListMultiplexProgramsPaginateResponseMultiplexProgramsTypeDef",
    {"ChannelId": str, "ProgramName": str},
    total=False,
)


class ListMultiplexProgramsPaginateResponseMultiplexProgramsTypeDef(
    _ListMultiplexProgramsPaginateResponseMultiplexProgramsTypeDef
):
    """
    Type definition for `ListMultiplexProgramsPaginateResponse` `MultiplexPrograms`

    - **ChannelId** *(string) --* The MediaLive Channel associated with the program.

    - **ProgramName** *(string) --* The name of the multiplex program.
    """


_ListMultiplexProgramsPaginateResponseTypeDef = TypedDict(
    "_ListMultiplexProgramsPaginateResponseTypeDef",
    {"MultiplexPrograms": List[ListMultiplexProgramsPaginateResponseMultiplexProgramsTypeDef]},
    total=False,
)


class ListMultiplexProgramsPaginateResponseTypeDef(_ListMultiplexProgramsPaginateResponseTypeDef):
    """
    Type definition for `ListMultiplexProgramsPaginate` `Response`

    - **MultiplexPrograms** *(list) --* List of multiplex programs.

      - *(dict) --* Placeholder documentation for MultiplexProgramSummary

        - **ChannelId** *(string) --* The MediaLive Channel associated with the program.

        - **ProgramName** *(string) --* The name of the multiplex program.
    """


_ListMultiplexesPaginatePaginationConfigTypeDef = TypedDict(
    "_ListMultiplexesPaginatePaginationConfigTypeDef",
    {"MaxItems": int, "PageSize": int, "StartingToken": str},
    total=False,
)


class ListMultiplexesPaginatePaginationConfigTypeDef(
    _ListMultiplexesPaginatePaginationConfigTypeDef
):
    """
    Type definition for `ListMultiplexesPaginate` `PaginationConfig`

    A dictionary that provides parameters to control pagination.

    - **MaxItems** *(integer) --*

      The total number of items to return. If the total number of items available is more than the
      value specified in max-items then a ``NextToken`` will be provided in the output that you can
      use to resume pagination.

    - **PageSize** *(integer) --*

      The size of each page.

    - **StartingToken** *(string) --*

      A token to specify where to start paginating. This is the ``NextToken`` from a previous
      response.
    """


_ListMultiplexesPaginateResponseMultiplexesMultiplexSettingsTypeDef = TypedDict(
    "_ListMultiplexesPaginateResponseMultiplexesMultiplexSettingsTypeDef",
    {"TransportStreamBitrate": int},
    total=False,
)


class ListMultiplexesPaginateResponseMultiplexesMultiplexSettingsTypeDef(
    _ListMultiplexesPaginateResponseMultiplexesMultiplexSettingsTypeDef
):
    """
    Type definition for `ListMultiplexesPaginateResponseMultiplexes` `MultiplexSettings`

    - **TransportStreamBitrate** *(integer) --* Transport stream bit rate.
    """


_ListMultiplexesPaginateResponseMultiplexesTypeDef = TypedDict(
    "_ListMultiplexesPaginateResponseMultiplexesTypeDef",
    {
        "Arn": str,
        "AvailabilityZones": List[str],
        "Id": str,
        "MultiplexSettings": ListMultiplexesPaginateResponseMultiplexesMultiplexSettingsTypeDef,
        "Name": str,
        "PipelinesRunningCount": int,
        "ProgramCount": int,
        "State": str,
        "Tags": Dict[str, str],
    },
    total=False,
)


class ListMultiplexesPaginateResponseMultiplexesTypeDef(
    _ListMultiplexesPaginateResponseMultiplexesTypeDef
):
    """
    Type definition for `ListMultiplexesPaginateResponse` `Multiplexes`

    - **Arn** *(string) --* The unique arn of the multiplex.

    - **AvailabilityZones** *(list) --* A list of availability zones for the multiplex.

      - *(string) --* Placeholder documentation for __string

    - **Id** *(string) --* The unique id of the multiplex.

    - **MultiplexSettings** *(dict) --* Configuration for a multiplex event.

      - **TransportStreamBitrate** *(integer) --* Transport stream bit rate.

    - **Name** *(string) --* The name of the multiplex.

    - **PipelinesRunningCount** *(integer) --* The number of currently healthy pipelines.

    - **ProgramCount** *(integer) --* The number of programs in the multiplex.

    - **State** *(string) --* The current state of the multiplex.

    - **Tags** *(dict) --* A collection of key-value pairs.

      - *(string) --* Placeholder documentation for __string

        - *(string) --* Placeholder documentation for __string
    """


_ListMultiplexesPaginateResponseTypeDef = TypedDict(
    "_ListMultiplexesPaginateResponseTypeDef",
    {"Multiplexes": List[ListMultiplexesPaginateResponseMultiplexesTypeDef]},
    total=False,
)


class ListMultiplexesPaginateResponseTypeDef(_ListMultiplexesPaginateResponseTypeDef):
    """
    Type definition for `ListMultiplexesPaginate` `Response`

    - **Multiplexes** *(list) --* List of multiplexes.

      - *(dict) --* Placeholder documentation for MultiplexSummary

        - **Arn** *(string) --* The unique arn of the multiplex.

        - **AvailabilityZones** *(list) --* A list of availability zones for the multiplex.

          - *(string) --* Placeholder documentation for __string

        - **Id** *(string) --* The unique id of the multiplex.

        - **MultiplexSettings** *(dict) --* Configuration for a multiplex event.

          - **TransportStreamBitrate** *(integer) --* Transport stream bit rate.

        - **Name** *(string) --* The name of the multiplex.

        - **PipelinesRunningCount** *(integer) --* The number of currently healthy pipelines.

        - **ProgramCount** *(integer) --* The number of programs in the multiplex.

        - **State** *(string) --* The current state of the multiplex.

        - **Tags** *(dict) --* A collection of key-value pairs.

          - *(string) --* Placeholder documentation for __string

            - *(string) --* Placeholder documentation for __string
    """


_ListOfferingsPaginatePaginationConfigTypeDef = TypedDict(
    "_ListOfferingsPaginatePaginationConfigTypeDef",
    {"MaxItems": int, "PageSize": int, "StartingToken": str},
    total=False,
)


class ListOfferingsPaginatePaginationConfigTypeDef(_ListOfferingsPaginatePaginationConfigTypeDef):
    """
    Type definition for `ListOfferingsPaginate` `PaginationConfig`

    A dictionary that provides parameters to control pagination.

    - **MaxItems** *(integer) --*

      The total number of items to return. If the total number of items available is more than the
      value specified in max-items then a ``NextToken`` will be provided in the output that you can
      use to resume pagination.

    - **PageSize** *(integer) --*

      The size of each page.

    - **StartingToken** *(string) --*

      A token to specify where to start paginating. This is the ``NextToken`` from a previous
      response.
    """


_ListOfferingsPaginateResponseOfferingsResourceSpecificationTypeDef = TypedDict(
    "_ListOfferingsPaginateResponseOfferingsResourceSpecificationTypeDef",
    {
        "ChannelClass": str,
        "Codec": str,
        "MaximumBitrate": str,
        "MaximumFramerate": str,
        "Resolution": str,
        "ResourceType": str,
        "SpecialFeature": str,
        "VideoQuality": str,
    },
    total=False,
)


class ListOfferingsPaginateResponseOfferingsResourceSpecificationTypeDef(
    _ListOfferingsPaginateResponseOfferingsResourceSpecificationTypeDef
):
    """
    Type definition for `ListOfferingsPaginateResponseOfferings` `ResourceSpecification`

    - **ChannelClass** *(string) --* Channel class, e.g. 'STANDARD'

    - **Codec** *(string) --* Codec, e.g. 'AVC'

    - **MaximumBitrate** *(string) --* Maximum bitrate, e.g. 'MAX_20_MBPS'

    - **MaximumFramerate** *(string) --* Maximum framerate, e.g. 'MAX_30_FPS' (Outputs only)

    - **Resolution** *(string) --* Resolution, e.g. 'HD'

    - **ResourceType** *(string) --* Resource type, 'INPUT', 'OUTPUT', 'MULTIPLEX', or 'CHANNEL'

    - **SpecialFeature** *(string) --* Special feature, e.g. 'AUDIO_NORMALIZATION' (Channels only)

    - **VideoQuality** *(string) --* Video quality, e.g. 'STANDARD' (Outputs only)
    """


_ListOfferingsPaginateResponseOfferingsTypeDef = TypedDict(
    "_ListOfferingsPaginateResponseOfferingsTypeDef",
    {
        "Arn": str,
        "CurrencyCode": str,
        "Duration": int,
        "DurationUnits": str,
        "FixedPrice": float,
        "OfferingDescription": str,
        "OfferingId": str,
        "OfferingType": str,
        "Region": str,
        "ResourceSpecification": ListOfferingsPaginateResponseOfferingsResourceSpecificationTypeDef,
        "UsagePrice": float,
    },
    total=False,
)


class ListOfferingsPaginateResponseOfferingsTypeDef(_ListOfferingsPaginateResponseOfferingsTypeDef):
    """
    Type definition for `ListOfferingsPaginateResponse` `Offerings`

    - **Arn** *(string) --* Unique offering ARN, e.g.
    'arn:aws:medialive:us-west-2:123456789012:offering:87654321'

    - **CurrencyCode** *(string) --* Currency code for usagePrice and fixedPrice in ISO-4217 format,
    e.g. 'USD'

    - **Duration** *(integer) --* Lease duration, e.g. '12'

    - **DurationUnits** *(string) --* Units for duration, e.g. 'MONTHS'

    - **FixedPrice** *(float) --* One-time charge for each reserved resource, e.g. '0.0' for a
    NO_UPFRONT offering

    - **OfferingDescription** *(string) --* Offering description, e.g. 'HD AVC output at 10-20 Mbps,
    30 fps, and standard VQ in US West (Oregon)'

    - **OfferingId** *(string) --* Unique offering ID, e.g. '87654321'

    - **OfferingType** *(string) --* Offering type, e.g. 'NO_UPFRONT'

    - **Region** *(string) --* AWS region, e.g. 'us-west-2'

    - **ResourceSpecification** *(dict) --* Resource configuration details

      - **ChannelClass** *(string) --* Channel class, e.g. 'STANDARD'

      - **Codec** *(string) --* Codec, e.g. 'AVC'

      - **MaximumBitrate** *(string) --* Maximum bitrate, e.g. 'MAX_20_MBPS'

      - **MaximumFramerate** *(string) --* Maximum framerate, e.g. 'MAX_30_FPS' (Outputs only)

      - **Resolution** *(string) --* Resolution, e.g. 'HD'

      - **ResourceType** *(string) --* Resource type, 'INPUT', 'OUTPUT', 'MULTIPLEX', or 'CHANNEL'

      - **SpecialFeature** *(string) --* Special feature, e.g. 'AUDIO_NORMALIZATION' (Channels only)

      - **VideoQuality** *(string) --* Video quality, e.g. 'STANDARD' (Outputs only)

    - **UsagePrice** *(float) --* Recurring usage charge for each reserved resource, e.g. '157.0'
    """


_ListOfferingsPaginateResponseTypeDef = TypedDict(
    "_ListOfferingsPaginateResponseTypeDef",
    {"Offerings": List[ListOfferingsPaginateResponseOfferingsTypeDef]},
    total=False,
)


class ListOfferingsPaginateResponseTypeDef(_ListOfferingsPaginateResponseTypeDef):
    """
    Type definition for `ListOfferingsPaginate` `Response`

    - **Offerings** *(list) --* List of offerings

      - *(dict) --* Reserved resources available for purchase

        - **Arn** *(string) --* Unique offering ARN, e.g.
        'arn:aws:medialive:us-west-2:123456789012:offering:87654321'

        - **CurrencyCode** *(string) --* Currency code for usagePrice and fixedPrice in ISO-4217
        format, e.g. 'USD'

        - **Duration** *(integer) --* Lease duration, e.g. '12'

        - **DurationUnits** *(string) --* Units for duration, e.g. 'MONTHS'

        - **FixedPrice** *(float) --* One-time charge for each reserved resource, e.g. '0.0' for a
        NO_UPFRONT offering

        - **OfferingDescription** *(string) --* Offering description, e.g. 'HD AVC output at 10-20
        Mbps, 30 fps, and standard VQ in US West (Oregon)'

        - **OfferingId** *(string) --* Unique offering ID, e.g. '87654321'

        - **OfferingType** *(string) --* Offering type, e.g. 'NO_UPFRONT'

        - **Region** *(string) --* AWS region, e.g. 'us-west-2'

        - **ResourceSpecification** *(dict) --* Resource configuration details

          - **ChannelClass** *(string) --* Channel class, e.g. 'STANDARD'

          - **Codec** *(string) --* Codec, e.g. 'AVC'

          - **MaximumBitrate** *(string) --* Maximum bitrate, e.g. 'MAX_20_MBPS'

          - **MaximumFramerate** *(string) --* Maximum framerate, e.g. 'MAX_30_FPS' (Outputs only)

          - **Resolution** *(string) --* Resolution, e.g. 'HD'

          - **ResourceType** *(string) --* Resource type, 'INPUT', 'OUTPUT', 'MULTIPLEX', or
          'CHANNEL'

          - **SpecialFeature** *(string) --* Special feature, e.g. 'AUDIO_NORMALIZATION' (Channels
          only)

          - **VideoQuality** *(string) --* Video quality, e.g. 'STANDARD' (Outputs only)

        - **UsagePrice** *(float) --* Recurring usage charge for each reserved resource, e.g.
        '157.0'
    """


_ListReservationsPaginatePaginationConfigTypeDef = TypedDict(
    "_ListReservationsPaginatePaginationConfigTypeDef",
    {"MaxItems": int, "PageSize": int, "StartingToken": str},
    total=False,
)


class ListReservationsPaginatePaginationConfigTypeDef(
    _ListReservationsPaginatePaginationConfigTypeDef
):
    """
    Type definition for `ListReservationsPaginate` `PaginationConfig`

    A dictionary that provides parameters to control pagination.

    - **MaxItems** *(integer) --*

      The total number of items to return. If the total number of items available is more than the
      value specified in max-items then a ``NextToken`` will be provided in the output that you can
      use to resume pagination.

    - **PageSize** *(integer) --*

      The size of each page.

    - **StartingToken** *(string) --*

      A token to specify where to start paginating. This is the ``NextToken`` from a previous
      response.
    """


_ListReservationsPaginateResponseReservationsResourceSpecificationTypeDef = TypedDict(
    "_ListReservationsPaginateResponseReservationsResourceSpecificationTypeDef",
    {
        "ChannelClass": str,
        "Codec": str,
        "MaximumBitrate": str,
        "MaximumFramerate": str,
        "Resolution": str,
        "ResourceType": str,
        "SpecialFeature": str,
        "VideoQuality": str,
    },
    total=False,
)


class ListReservationsPaginateResponseReservationsResourceSpecificationTypeDef(
    _ListReservationsPaginateResponseReservationsResourceSpecificationTypeDef
):
    """
    Type definition for `ListReservationsPaginateResponseReservations` `ResourceSpecification`

    - **ChannelClass** *(string) --* Channel class, e.g. 'STANDARD'

    - **Codec** *(string) --* Codec, e.g. 'AVC'

    - **MaximumBitrate** *(string) --* Maximum bitrate, e.g. 'MAX_20_MBPS'

    - **MaximumFramerate** *(string) --* Maximum framerate, e.g. 'MAX_30_FPS' (Outputs only)

    - **Resolution** *(string) --* Resolution, e.g. 'HD'

    - **ResourceType** *(string) --* Resource type, 'INPUT', 'OUTPUT', 'MULTIPLEX', or 'CHANNEL'

    - **SpecialFeature** *(string) --* Special feature, e.g. 'AUDIO_NORMALIZATION' (Channels only)

    - **VideoQuality** *(string) --* Video quality, e.g. 'STANDARD' (Outputs only)
    """


_ListReservationsPaginateResponseReservationsTypeDef = TypedDict(
    "_ListReservationsPaginateResponseReservationsTypeDef",
    {
        "Arn": str,
        "Count": int,
        "CurrencyCode": str,
        "Duration": int,
        "DurationUnits": str,
        "End": str,
        "FixedPrice": float,
        "Name": str,
        "OfferingDescription": str,
        "OfferingId": str,
        "OfferingType": str,
        "Region": str,
        "ReservationId": str,
        "ResourceSpecification": ListReservationsPaginateResponseReservationsResourceSpecificationTypeDef,
        "Start": str,
        "State": str,
        "Tags": Dict[str, str],
        "UsagePrice": float,
    },
    total=False,
)


class ListReservationsPaginateResponseReservationsTypeDef(
    _ListReservationsPaginateResponseReservationsTypeDef
):
    """
    Type definition for `ListReservationsPaginateResponse` `Reservations`

    - **Arn** *(string) --* Unique reservation ARN, e.g.
    'arn:aws:medialive:us-west-2:123456789012:reservation:1234567'

    - **Count** *(integer) --* Number of reserved resources

    - **CurrencyCode** *(string) --* Currency code for usagePrice and fixedPrice in ISO-4217 format,
    e.g. 'USD'

    - **Duration** *(integer) --* Lease duration, e.g. '12'

    - **DurationUnits** *(string) --* Units for duration, e.g. 'MONTHS'

    - **End** *(string) --* Reservation UTC end date and time in ISO-8601 format, e.g.
    '2019-03-01T00:00:00'

    - **FixedPrice** *(float) --* One-time charge for each reserved resource, e.g. '0.0' for a
    NO_UPFRONT offering

    - **Name** *(string) --* User specified reservation name

    - **OfferingDescription** *(string) --* Offering description, e.g. 'HD AVC output at 10-20 Mbps,
    30 fps, and standard VQ in US West (Oregon)'

    - **OfferingId** *(string) --* Unique offering ID, e.g. '87654321'

    - **OfferingType** *(string) --* Offering type, e.g. 'NO_UPFRONT'

    - **Region** *(string) --* AWS region, e.g. 'us-west-2'

    - **ReservationId** *(string) --* Unique reservation ID, e.g. '1234567'

    - **ResourceSpecification** *(dict) --* Resource configuration details

      - **ChannelClass** *(string) --* Channel class, e.g. 'STANDARD'

      - **Codec** *(string) --* Codec, e.g. 'AVC'

      - **MaximumBitrate** *(string) --* Maximum bitrate, e.g. 'MAX_20_MBPS'

      - **MaximumFramerate** *(string) --* Maximum framerate, e.g. 'MAX_30_FPS' (Outputs only)

      - **Resolution** *(string) --* Resolution, e.g. 'HD'

      - **ResourceType** *(string) --* Resource type, 'INPUT', 'OUTPUT', 'MULTIPLEX', or 'CHANNEL'

      - **SpecialFeature** *(string) --* Special feature, e.g. 'AUDIO_NORMALIZATION' (Channels only)

      - **VideoQuality** *(string) --* Video quality, e.g. 'STANDARD' (Outputs only)

    - **Start** *(string) --* Reservation UTC start date and time in ISO-8601 format, e.g.
    '2018-03-01T00:00:00'

    - **State** *(string) --* Current state of reservation, e.g. 'ACTIVE'

    - **Tags** *(dict) --* A collection of key-value pairs

      - *(string) --* Placeholder documentation for __string

        - *(string) --* Placeholder documentation for __string

    - **UsagePrice** *(float) --* Recurring usage charge for each reserved resource, e.g. '157.0'
    """


_ListReservationsPaginateResponseTypeDef = TypedDict(
    "_ListReservationsPaginateResponseTypeDef",
    {"Reservations": List[ListReservationsPaginateResponseReservationsTypeDef]},
    total=False,
)


class ListReservationsPaginateResponseTypeDef(_ListReservationsPaginateResponseTypeDef):
    """
    Type definition for `ListReservationsPaginate` `Response`

    - **Reservations** *(list) --* List of reservations

      - *(dict) --* Reserved resources available to use

        - **Arn** *(string) --* Unique reservation ARN, e.g.
        'arn:aws:medialive:us-west-2:123456789012:reservation:1234567'

        - **Count** *(integer) --* Number of reserved resources

        - **CurrencyCode** *(string) --* Currency code for usagePrice and fixedPrice in ISO-4217
        format, e.g. 'USD'

        - **Duration** *(integer) --* Lease duration, e.g. '12'

        - **DurationUnits** *(string) --* Units for duration, e.g. 'MONTHS'

        - **End** *(string) --* Reservation UTC end date and time in ISO-8601 format, e.g.
        '2019-03-01T00:00:00'

        - **FixedPrice** *(float) --* One-time charge for each reserved resource, e.g. '0.0' for a
        NO_UPFRONT offering

        - **Name** *(string) --* User specified reservation name

        - **OfferingDescription** *(string) --* Offering description, e.g. 'HD AVC output at 10-20
        Mbps, 30 fps, and standard VQ in US West (Oregon)'

        - **OfferingId** *(string) --* Unique offering ID, e.g. '87654321'

        - **OfferingType** *(string) --* Offering type, e.g. 'NO_UPFRONT'

        - **Region** *(string) --* AWS region, e.g. 'us-west-2'

        - **ReservationId** *(string) --* Unique reservation ID, e.g. '1234567'

        - **ResourceSpecification** *(dict) --* Resource configuration details

          - **ChannelClass** *(string) --* Channel class, e.g. 'STANDARD'

          - **Codec** *(string) --* Codec, e.g. 'AVC'

          - **MaximumBitrate** *(string) --* Maximum bitrate, e.g. 'MAX_20_MBPS'

          - **MaximumFramerate** *(string) --* Maximum framerate, e.g. 'MAX_30_FPS' (Outputs only)

          - **Resolution** *(string) --* Resolution, e.g. 'HD'

          - **ResourceType** *(string) --* Resource type, 'INPUT', 'OUTPUT', 'MULTIPLEX', or
          'CHANNEL'

          - **SpecialFeature** *(string) --* Special feature, e.g. 'AUDIO_NORMALIZATION' (Channels
          only)

          - **VideoQuality** *(string) --* Video quality, e.g. 'STANDARD' (Outputs only)

        - **Start** *(string) --* Reservation UTC start date and time in ISO-8601 format, e.g.
        '2018-03-01T00:00:00'

        - **State** *(string) --* Current state of reservation, e.g. 'ACTIVE'

        - **Tags** *(dict) --* A collection of key-value pairs

          - *(string) --* Placeholder documentation for __string

            - *(string) --* Placeholder documentation for __string

        - **UsagePrice** *(float) --* Recurring usage charge for each reserved resource, e.g.
        '157.0'
    """


_MultiplexCreatedWaitWaiterConfigTypeDef = TypedDict(
    "_MultiplexCreatedWaitWaiterConfigTypeDef", {"Delay": int, "MaxAttempts": int}, total=False
)


class MultiplexCreatedWaitWaiterConfigTypeDef(_MultiplexCreatedWaitWaiterConfigTypeDef):
    """
    Type definition for `MultiplexCreatedWait` `WaiterConfig`

    A dictionary that provides parameters to control waiting behavior.

    - **Delay** *(integer) --*

      The amount of time in seconds to wait between attempts. Default: 3

    - **MaxAttempts** *(integer) --*

      The maximum number of attempts to be made. Default: 5
    """


_MultiplexDeletedWaitWaiterConfigTypeDef = TypedDict(
    "_MultiplexDeletedWaitWaiterConfigTypeDef", {"Delay": int, "MaxAttempts": int}, total=False
)


class MultiplexDeletedWaitWaiterConfigTypeDef(_MultiplexDeletedWaitWaiterConfigTypeDef):
    """
    Type definition for `MultiplexDeletedWait` `WaiterConfig`

    A dictionary that provides parameters to control waiting behavior.

    - **Delay** *(integer) --*

      The amount of time in seconds to wait between attempts. Default: 5

    - **MaxAttempts** *(integer) --*

      The maximum number of attempts to be made. Default: 20
    """


_MultiplexRunningWaitWaiterConfigTypeDef = TypedDict(
    "_MultiplexRunningWaitWaiterConfigTypeDef", {"Delay": int, "MaxAttempts": int}, total=False
)


class MultiplexRunningWaitWaiterConfigTypeDef(_MultiplexRunningWaitWaiterConfigTypeDef):
    """
    Type definition for `MultiplexRunningWait` `WaiterConfig`

    A dictionary that provides parameters to control waiting behavior.

    - **Delay** *(integer) --*

      The amount of time in seconds to wait between attempts. Default: 5

    - **MaxAttempts** *(integer) --*

      The maximum number of attempts to be made. Default: 120
    """


_MultiplexStoppedWaitWaiterConfigTypeDef = TypedDict(
    "_MultiplexStoppedWaitWaiterConfigTypeDef", {"Delay": int, "MaxAttempts": int}, total=False
)


class MultiplexStoppedWaitWaiterConfigTypeDef(_MultiplexStoppedWaitWaiterConfigTypeDef):
    """
    Type definition for `MultiplexStoppedWait` `WaiterConfig`

    A dictionary that provides parameters to control waiting behavior.

    - **Delay** *(integer) --*

      The amount of time in seconds to wait between attempts. Default: 5

    - **MaxAttempts** *(integer) --*

      The maximum number of attempts to be made. Default: 28
    """
