packages feed

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

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

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

module Stratosphere.ResourceProperties.MediaLiveChannelInputSettings where

import Stratosphere.ResourceImports
import Stratosphere.ResourceProperties.MediaLiveChannelAudioSelector
import Stratosphere.ResourceProperties.MediaLiveChannelCaptionSelector
import Stratosphere.ResourceProperties.MediaLiveChannelNetworkInputSettings
import Stratosphere.ResourceProperties.MediaLiveChannelVideoSelector

-- | Full data type definition for MediaLiveChannelInputSettings. See
-- 'mediaLiveChannelInputSettings' for a more convenient constructor.
data MediaLiveChannelInputSettings =
  MediaLiveChannelInputSettings
  { _mediaLiveChannelInputSettingsAudioSelectors :: Maybe [MediaLiveChannelAudioSelector]
  , _mediaLiveChannelInputSettingsCaptionSelectors :: Maybe [MediaLiveChannelCaptionSelector]
  , _mediaLiveChannelInputSettingsDeblockFilter :: Maybe (Val Text)
  , _mediaLiveChannelInputSettingsDenoiseFilter :: Maybe (Val Text)
  , _mediaLiveChannelInputSettingsFilterStrength :: Maybe (Val Integer)
  , _mediaLiveChannelInputSettingsInputFilter :: Maybe (Val Text)
  , _mediaLiveChannelInputSettingsNetworkInputSettings :: Maybe MediaLiveChannelNetworkInputSettings
  , _mediaLiveChannelInputSettingsSourceEndBehavior :: Maybe (Val Text)
  , _mediaLiveChannelInputSettingsVideoSelector :: Maybe MediaLiveChannelVideoSelector
  } deriving (Show, Eq)

instance ToJSON MediaLiveChannelInputSettings where
  toJSON MediaLiveChannelInputSettings{..} =
    object $
    catMaybes
    [ fmap (("AudioSelectors",) . toJSON) _mediaLiveChannelInputSettingsAudioSelectors
    , fmap (("CaptionSelectors",) . toJSON) _mediaLiveChannelInputSettingsCaptionSelectors
    , fmap (("DeblockFilter",) . toJSON) _mediaLiveChannelInputSettingsDeblockFilter
    , fmap (("DenoiseFilter",) . toJSON) _mediaLiveChannelInputSettingsDenoiseFilter
    , fmap (("FilterStrength",) . toJSON) _mediaLiveChannelInputSettingsFilterStrength
    , fmap (("InputFilter",) . toJSON) _mediaLiveChannelInputSettingsInputFilter
    , fmap (("NetworkInputSettings",) . toJSON) _mediaLiveChannelInputSettingsNetworkInputSettings
    , fmap (("SourceEndBehavior",) . toJSON) _mediaLiveChannelInputSettingsSourceEndBehavior
    , fmap (("VideoSelector",) . toJSON) _mediaLiveChannelInputSettingsVideoSelector
    ]

-- | Constructor for 'MediaLiveChannelInputSettings' containing required
-- fields as arguments.
mediaLiveChannelInputSettings
  :: MediaLiveChannelInputSettings
mediaLiveChannelInputSettings  =
  MediaLiveChannelInputSettings
  { _mediaLiveChannelInputSettingsAudioSelectors = Nothing
  , _mediaLiveChannelInputSettingsCaptionSelectors = Nothing
  , _mediaLiveChannelInputSettingsDeblockFilter = Nothing
  , _mediaLiveChannelInputSettingsDenoiseFilter = Nothing
  , _mediaLiveChannelInputSettingsFilterStrength = Nothing
  , _mediaLiveChannelInputSettingsInputFilter = Nothing
  , _mediaLiveChannelInputSettingsNetworkInputSettings = Nothing
  , _mediaLiveChannelInputSettingsSourceEndBehavior = Nothing
  , _mediaLiveChannelInputSettingsVideoSelector = Nothing
  }

-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-inputsettings.html#cfn-medialive-channel-inputsettings-audioselectors
mlcisAudioSelectors :: Lens' MediaLiveChannelInputSettings (Maybe [MediaLiveChannelAudioSelector])
mlcisAudioSelectors = lens _mediaLiveChannelInputSettingsAudioSelectors (\s a -> s { _mediaLiveChannelInputSettingsAudioSelectors = a })

-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-inputsettings.html#cfn-medialive-channel-inputsettings-captionselectors
mlcisCaptionSelectors :: Lens' MediaLiveChannelInputSettings (Maybe [MediaLiveChannelCaptionSelector])
mlcisCaptionSelectors = lens _mediaLiveChannelInputSettingsCaptionSelectors (\s a -> s { _mediaLiveChannelInputSettingsCaptionSelectors = a })

-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-inputsettings.html#cfn-medialive-channel-inputsettings-deblockfilter
mlcisDeblockFilter :: Lens' MediaLiveChannelInputSettings (Maybe (Val Text))
mlcisDeblockFilter = lens _mediaLiveChannelInputSettingsDeblockFilter (\s a -> s { _mediaLiveChannelInputSettingsDeblockFilter = a })

-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-inputsettings.html#cfn-medialive-channel-inputsettings-denoisefilter
mlcisDenoiseFilter :: Lens' MediaLiveChannelInputSettings (Maybe (Val Text))
mlcisDenoiseFilter = lens _mediaLiveChannelInputSettingsDenoiseFilter (\s a -> s { _mediaLiveChannelInputSettingsDenoiseFilter = a })

-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-inputsettings.html#cfn-medialive-channel-inputsettings-filterstrength
mlcisFilterStrength :: Lens' MediaLiveChannelInputSettings (Maybe (Val Integer))
mlcisFilterStrength = lens _mediaLiveChannelInputSettingsFilterStrength (\s a -> s { _mediaLiveChannelInputSettingsFilterStrength = a })

-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-inputsettings.html#cfn-medialive-channel-inputsettings-inputfilter
mlcisInputFilter :: Lens' MediaLiveChannelInputSettings (Maybe (Val Text))
mlcisInputFilter = lens _mediaLiveChannelInputSettingsInputFilter (\s a -> s { _mediaLiveChannelInputSettingsInputFilter = a })

-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-inputsettings.html#cfn-medialive-channel-inputsettings-networkinputsettings
mlcisNetworkInputSettings :: Lens' MediaLiveChannelInputSettings (Maybe MediaLiveChannelNetworkInputSettings)
mlcisNetworkInputSettings = lens _mediaLiveChannelInputSettingsNetworkInputSettings (\s a -> s { _mediaLiveChannelInputSettingsNetworkInputSettings = a })

-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-inputsettings.html#cfn-medialive-channel-inputsettings-sourceendbehavior
mlcisSourceEndBehavior :: Lens' MediaLiveChannelInputSettings (Maybe (Val Text))
mlcisSourceEndBehavior = lens _mediaLiveChannelInputSettingsSourceEndBehavior (\s a -> s { _mediaLiveChannelInputSettingsSourceEndBehavior = a })

-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-inputsettings.html#cfn-medialive-channel-inputsettings-videoselector
mlcisVideoSelector :: Lens' MediaLiveChannelInputSettings (Maybe MediaLiveChannelVideoSelector)
mlcisVideoSelector = lens _mediaLiveChannelInputSettingsVideoSelector (\s a -> s { _mediaLiveChannelInputSettingsVideoSelector = a })