{-# LANGUAGE OverloadedStrings #-} {-# LANGUAGE RecordWildCards #-} {-# LANGUAGE TupleSections #-} -- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotanalytics-pipeline-channel.html module Stratosphere.ResourceProperties.IoTAnalyticsPipelineChannel where import Stratosphere.ResourceImports -- | Full data type definition for IoTAnalyticsPipelineChannel. See -- 'ioTAnalyticsPipelineChannel' for a more convenient constructor. data IoTAnalyticsPipelineChannel = IoTAnalyticsPipelineChannel { _ioTAnalyticsPipelineChannelChannelName :: Maybe (Val Text) , _ioTAnalyticsPipelineChannelName :: Maybe (Val Text) , _ioTAnalyticsPipelineChannelNext :: Maybe (Val Text) } deriving (Show, Eq) instance ToJSON IoTAnalyticsPipelineChannel where toJSON IoTAnalyticsPipelineChannel{..} = object $ catMaybes [ fmap (("ChannelName",) . toJSON) _ioTAnalyticsPipelineChannelChannelName , fmap (("Name",) . toJSON) _ioTAnalyticsPipelineChannelName , fmap (("Next",) . toJSON) _ioTAnalyticsPipelineChannelNext ] instance FromJSON IoTAnalyticsPipelineChannel where parseJSON (Object obj) = IoTAnalyticsPipelineChannel <$> (obj .:? "ChannelName") <*> (obj .:? "Name") <*> (obj .:? "Next") parseJSON _ = mempty -- | Constructor for 'IoTAnalyticsPipelineChannel' containing required fields -- as arguments. ioTAnalyticsPipelineChannel :: IoTAnalyticsPipelineChannel ioTAnalyticsPipelineChannel = IoTAnalyticsPipelineChannel { _ioTAnalyticsPipelineChannelChannelName = Nothing , _ioTAnalyticsPipelineChannelName = Nothing , _ioTAnalyticsPipelineChannelNext = Nothing } -- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotanalytics-pipeline-channel.html#cfn-iotanalytics-pipeline-channel-channelname itapcChannelName :: Lens' IoTAnalyticsPipelineChannel (Maybe (Val Text)) itapcChannelName = lens _ioTAnalyticsPipelineChannelChannelName (\s a -> s { _ioTAnalyticsPipelineChannelChannelName = a }) -- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotanalytics-pipeline-channel.html#cfn-iotanalytics-pipeline-channel-name itapcName :: Lens' IoTAnalyticsPipelineChannel (Maybe (Val Text)) itapcName = lens _ioTAnalyticsPipelineChannelName (\s a -> s { _ioTAnalyticsPipelineChannelName = a }) -- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotanalytics-pipeline-channel.html#cfn-iotanalytics-pipeline-channel-next itapcNext :: Lens' IoTAnalyticsPipelineChannel (Maybe (Val Text)) itapcNext = lens _ioTAnalyticsPipelineChannelNext (\s a -> s { _ioTAnalyticsPipelineChannelNext = a })