stratosphere-0.40.0: library-gen/Stratosphere/Resources/MediaLiveChannel.hs
{-# LANGUAGE OverloadedStrings #-}
{-# LANGUAGE RecordWildCards #-}
{-# LANGUAGE StrictData #-}
{-# LANGUAGE TupleSections #-}
-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-medialive-channel.html
module Stratosphere.Resources.MediaLiveChannel where
import Stratosphere.ResourceImports
import Stratosphere.ResourceProperties.MediaLiveChannelOutputDestination
import Stratosphere.ResourceProperties.MediaLiveChannelInputAttachment
import Stratosphere.ResourceProperties.MediaLiveChannelInputSpecification
-- | Full data type definition for MediaLiveChannel. See 'mediaLiveChannel'
-- for a more convenient constructor.
data MediaLiveChannel =
MediaLiveChannel
{ _mediaLiveChannelChannelClass :: Maybe (Val Text)
, _mediaLiveChannelDestinations :: Maybe [MediaLiveChannelOutputDestination]
, _mediaLiveChannelEncoderSettings :: Maybe Object
, _mediaLiveChannelInputAttachments :: Maybe [MediaLiveChannelInputAttachment]
, _mediaLiveChannelInputSpecification :: Maybe MediaLiveChannelInputSpecification
, _mediaLiveChannelLogLevel :: Maybe (Val Text)
, _mediaLiveChannelName :: Maybe (Val Text)
, _mediaLiveChannelRoleArn :: Maybe (Val Text)
, _mediaLiveChannelTags :: Maybe Object
} deriving (Show, Eq)
instance ToResourceProperties MediaLiveChannel where
toResourceProperties MediaLiveChannel{..} =
ResourceProperties
{ resourcePropertiesType = "AWS::MediaLive::Channel"
, resourcePropertiesProperties =
hashMapFromList $ catMaybes
[ fmap (("ChannelClass",) . toJSON) _mediaLiveChannelChannelClass
, fmap (("Destinations",) . toJSON) _mediaLiveChannelDestinations
, fmap (("EncoderSettings",) . toJSON) _mediaLiveChannelEncoderSettings
, fmap (("InputAttachments",) . toJSON) _mediaLiveChannelInputAttachments
, fmap (("InputSpecification",) . toJSON) _mediaLiveChannelInputSpecification
, fmap (("LogLevel",) . toJSON) _mediaLiveChannelLogLevel
, fmap (("Name",) . toJSON) _mediaLiveChannelName
, fmap (("RoleArn",) . toJSON) _mediaLiveChannelRoleArn
, fmap (("Tags",) . toJSON) _mediaLiveChannelTags
]
}
-- | Constructor for 'MediaLiveChannel' containing required fields as
-- arguments.
mediaLiveChannel
:: MediaLiveChannel
mediaLiveChannel =
MediaLiveChannel
{ _mediaLiveChannelChannelClass = Nothing
, _mediaLiveChannelDestinations = Nothing
, _mediaLiveChannelEncoderSettings = Nothing
, _mediaLiveChannelInputAttachments = Nothing
, _mediaLiveChannelInputSpecification = Nothing
, _mediaLiveChannelLogLevel = Nothing
, _mediaLiveChannelName = Nothing
, _mediaLiveChannelRoleArn = Nothing
, _mediaLiveChannelTags = Nothing
}
-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-medialive-channel.html#cfn-medialive-channel-channelclass
mlcChannelClass :: Lens' MediaLiveChannel (Maybe (Val Text))
mlcChannelClass = lens _mediaLiveChannelChannelClass (\s a -> s { _mediaLiveChannelChannelClass = a })
-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-medialive-channel.html#cfn-medialive-channel-destinations
mlcDestinations :: Lens' MediaLiveChannel (Maybe [MediaLiveChannelOutputDestination])
mlcDestinations = lens _mediaLiveChannelDestinations (\s a -> s { _mediaLiveChannelDestinations = a })
-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-medialive-channel.html#cfn-medialive-channel-encodersettings
mlcEncoderSettings :: Lens' MediaLiveChannel (Maybe Object)
mlcEncoderSettings = lens _mediaLiveChannelEncoderSettings (\s a -> s { _mediaLiveChannelEncoderSettings = a })
-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-medialive-channel.html#cfn-medialive-channel-inputattachments
mlcInputAttachments :: Lens' MediaLiveChannel (Maybe [MediaLiveChannelInputAttachment])
mlcInputAttachments = lens _mediaLiveChannelInputAttachments (\s a -> s { _mediaLiveChannelInputAttachments = a })
-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-medialive-channel.html#cfn-medialive-channel-inputspecification
mlcInputSpecification :: Lens' MediaLiveChannel (Maybe MediaLiveChannelInputSpecification)
mlcInputSpecification = lens _mediaLiveChannelInputSpecification (\s a -> s { _mediaLiveChannelInputSpecification = a })
-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-medialive-channel.html#cfn-medialive-channel-loglevel
mlcLogLevel :: Lens' MediaLiveChannel (Maybe (Val Text))
mlcLogLevel = lens _mediaLiveChannelLogLevel (\s a -> s { _mediaLiveChannelLogLevel = a })
-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-medialive-channel.html#cfn-medialive-channel-name
mlcName :: Lens' MediaLiveChannel (Maybe (Val Text))
mlcName = lens _mediaLiveChannelName (\s a -> s { _mediaLiveChannelName = a })
-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-medialive-channel.html#cfn-medialive-channel-rolearn
mlcRoleArn :: Lens' MediaLiveChannel (Maybe (Val Text))
mlcRoleArn = lens _mediaLiveChannelRoleArn (\s a -> s { _mediaLiveChannelRoleArn = a })
-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-medialive-channel.html#cfn-medialive-channel-tags
mlcTags :: Lens' MediaLiveChannel (Maybe Object)
mlcTags = lens _mediaLiveChannelTags (\s a -> s { _mediaLiveChannelTags = a })