{-# 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 })