packages feed

stratosphere-0.40.0: library-gen/Stratosphere/ResourceProperties/MediaLiveChannelCaptionSelectorSettings.hs

{-# LANGUAGE OverloadedStrings #-}
{-# LANGUAGE RecordWildCards #-}
{-# LANGUAGE StrictData #-}
{-# LANGUAGE TupleSections #-}

-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-captionselectorsettings.html

module Stratosphere.ResourceProperties.MediaLiveChannelCaptionSelectorSettings where

import Stratosphere.ResourceImports
import Stratosphere.ResourceProperties.MediaLiveChannelAribSourceSettings
import Stratosphere.ResourceProperties.MediaLiveChannelDvbSubSourceSettings
import Stratosphere.ResourceProperties.MediaLiveChannelEmbeddedSourceSettings
import Stratosphere.ResourceProperties.MediaLiveChannelScte20SourceSettings
import Stratosphere.ResourceProperties.MediaLiveChannelScte27SourceSettings
import Stratosphere.ResourceProperties.MediaLiveChannelTeletextSourceSettings

-- | Full data type definition for MediaLiveChannelCaptionSelectorSettings.
-- See 'mediaLiveChannelCaptionSelectorSettings' for a more convenient
-- constructor.
data MediaLiveChannelCaptionSelectorSettings =
  MediaLiveChannelCaptionSelectorSettings
  { _mediaLiveChannelCaptionSelectorSettingsAribSourceSettings :: Maybe MediaLiveChannelAribSourceSettings
  , _mediaLiveChannelCaptionSelectorSettingsDvbSubSourceSettings :: Maybe MediaLiveChannelDvbSubSourceSettings
  , _mediaLiveChannelCaptionSelectorSettingsEmbeddedSourceSettings :: Maybe MediaLiveChannelEmbeddedSourceSettings
  , _mediaLiveChannelCaptionSelectorSettingsScte20SourceSettings :: Maybe MediaLiveChannelScte20SourceSettings
  , _mediaLiveChannelCaptionSelectorSettingsScte27SourceSettings :: Maybe MediaLiveChannelScte27SourceSettings
  , _mediaLiveChannelCaptionSelectorSettingsTeletextSourceSettings :: Maybe MediaLiveChannelTeletextSourceSettings
  } deriving (Show, Eq)

instance ToJSON MediaLiveChannelCaptionSelectorSettings where
  toJSON MediaLiveChannelCaptionSelectorSettings{..} =
    object $
    catMaybes
    [ fmap (("AribSourceSettings",) . toJSON) _mediaLiveChannelCaptionSelectorSettingsAribSourceSettings
    , fmap (("DvbSubSourceSettings",) . toJSON) _mediaLiveChannelCaptionSelectorSettingsDvbSubSourceSettings
    , fmap (("EmbeddedSourceSettings",) . toJSON) _mediaLiveChannelCaptionSelectorSettingsEmbeddedSourceSettings
    , fmap (("Scte20SourceSettings",) . toJSON) _mediaLiveChannelCaptionSelectorSettingsScte20SourceSettings
    , fmap (("Scte27SourceSettings",) . toJSON) _mediaLiveChannelCaptionSelectorSettingsScte27SourceSettings
    , fmap (("TeletextSourceSettings",) . toJSON) _mediaLiveChannelCaptionSelectorSettingsTeletextSourceSettings
    ]

-- | Constructor for 'MediaLiveChannelCaptionSelectorSettings' containing
-- required fields as arguments.
mediaLiveChannelCaptionSelectorSettings
  :: MediaLiveChannelCaptionSelectorSettings
mediaLiveChannelCaptionSelectorSettings  =
  MediaLiveChannelCaptionSelectorSettings
  { _mediaLiveChannelCaptionSelectorSettingsAribSourceSettings = Nothing
  , _mediaLiveChannelCaptionSelectorSettingsDvbSubSourceSettings = Nothing
  , _mediaLiveChannelCaptionSelectorSettingsEmbeddedSourceSettings = Nothing
  , _mediaLiveChannelCaptionSelectorSettingsScte20SourceSettings = Nothing
  , _mediaLiveChannelCaptionSelectorSettingsScte27SourceSettings = Nothing
  , _mediaLiveChannelCaptionSelectorSettingsTeletextSourceSettings = Nothing
  }

-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-captionselectorsettings.html#cfn-medialive-channel-captionselectorsettings-aribsourcesettings
mlccssAribSourceSettings :: Lens' MediaLiveChannelCaptionSelectorSettings (Maybe MediaLiveChannelAribSourceSettings)
mlccssAribSourceSettings = lens _mediaLiveChannelCaptionSelectorSettingsAribSourceSettings (\s a -> s { _mediaLiveChannelCaptionSelectorSettingsAribSourceSettings = a })

-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-captionselectorsettings.html#cfn-medialive-channel-captionselectorsettings-dvbsubsourcesettings
mlccssDvbSubSourceSettings :: Lens' MediaLiveChannelCaptionSelectorSettings (Maybe MediaLiveChannelDvbSubSourceSettings)
mlccssDvbSubSourceSettings = lens _mediaLiveChannelCaptionSelectorSettingsDvbSubSourceSettings (\s a -> s { _mediaLiveChannelCaptionSelectorSettingsDvbSubSourceSettings = a })

-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-captionselectorsettings.html#cfn-medialive-channel-captionselectorsettings-embeddedsourcesettings
mlccssEmbeddedSourceSettings :: Lens' MediaLiveChannelCaptionSelectorSettings (Maybe MediaLiveChannelEmbeddedSourceSettings)
mlccssEmbeddedSourceSettings = lens _mediaLiveChannelCaptionSelectorSettingsEmbeddedSourceSettings (\s a -> s { _mediaLiveChannelCaptionSelectorSettingsEmbeddedSourceSettings = a })

-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-captionselectorsettings.html#cfn-medialive-channel-captionselectorsettings-scte20sourcesettings
mlccssScte20SourceSettings :: Lens' MediaLiveChannelCaptionSelectorSettings (Maybe MediaLiveChannelScte20SourceSettings)
mlccssScte20SourceSettings = lens _mediaLiveChannelCaptionSelectorSettingsScte20SourceSettings (\s a -> s { _mediaLiveChannelCaptionSelectorSettingsScte20SourceSettings = a })

-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-captionselectorsettings.html#cfn-medialive-channel-captionselectorsettings-scte27sourcesettings
mlccssScte27SourceSettings :: Lens' MediaLiveChannelCaptionSelectorSettings (Maybe MediaLiveChannelScte27SourceSettings)
mlccssScte27SourceSettings = lens _mediaLiveChannelCaptionSelectorSettingsScte27SourceSettings (\s a -> s { _mediaLiveChannelCaptionSelectorSettingsScte27SourceSettings = a })

-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-captionselectorsettings.html#cfn-medialive-channel-captionselectorsettings-teletextsourcesettings
mlccssTeletextSourceSettings :: Lens' MediaLiveChannelCaptionSelectorSettings (Maybe MediaLiveChannelTeletextSourceSettings)
mlccssTeletextSourceSettings = lens _mediaLiveChannelCaptionSelectorSettingsTeletextSourceSettings (\s a -> s { _mediaLiveChannelCaptionSelectorSettingsTeletextSourceSettings = a })