{-# LANGUAGE OverloadedStrings #-} {-# LANGUAGE RecordWildCards #-} {-# LANGUAGE TupleSections #-} -- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-vpcendpointconnectionnotification.html module Stratosphere.Resources.EC2VPCEndpointConnectionNotification where import Stratosphere.ResourceImports -- | Full data type definition for EC2VPCEndpointConnectionNotification. See -- 'ec2VPCEndpointConnectionNotification' for a more convenient constructor. data EC2VPCEndpointConnectionNotification = EC2VPCEndpointConnectionNotification { _eC2VPCEndpointConnectionNotificationConnectionEvents :: ValList Text , _eC2VPCEndpointConnectionNotificationConnectionNotificationArn :: Val Text , _eC2VPCEndpointConnectionNotificationServiceId :: Maybe (Val Text) , _eC2VPCEndpointConnectionNotificationVPCEndpointId :: Maybe (Val Text) } deriving (Show, Eq) instance ToJSON EC2VPCEndpointConnectionNotification where toJSON EC2VPCEndpointConnectionNotification{..} = object $ catMaybes [ (Just . ("ConnectionEvents",) . toJSON) _eC2VPCEndpointConnectionNotificationConnectionEvents , (Just . ("ConnectionNotificationArn",) . toJSON) _eC2VPCEndpointConnectionNotificationConnectionNotificationArn , fmap (("ServiceId",) . toJSON) _eC2VPCEndpointConnectionNotificationServiceId , fmap (("VPCEndpointId",) . toJSON) _eC2VPCEndpointConnectionNotificationVPCEndpointId ] instance FromJSON EC2VPCEndpointConnectionNotification where parseJSON (Object obj) = EC2VPCEndpointConnectionNotification <$> (obj .: "ConnectionEvents") <*> (obj .: "ConnectionNotificationArn") <*> (obj .:? "ServiceId") <*> (obj .:? "VPCEndpointId") parseJSON _ = mempty -- | Constructor for 'EC2VPCEndpointConnectionNotification' containing -- required fields as arguments. ec2VPCEndpointConnectionNotification :: ValList Text -- ^ 'ecvpcecnConnectionEvents' -> Val Text -- ^ 'ecvpcecnConnectionNotificationArn' -> EC2VPCEndpointConnectionNotification ec2VPCEndpointConnectionNotification connectionEventsarg connectionNotificationArnarg = EC2VPCEndpointConnectionNotification { _eC2VPCEndpointConnectionNotificationConnectionEvents = connectionEventsarg , _eC2VPCEndpointConnectionNotificationConnectionNotificationArn = connectionNotificationArnarg , _eC2VPCEndpointConnectionNotificationServiceId = Nothing , _eC2VPCEndpointConnectionNotificationVPCEndpointId = Nothing } -- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-vpcendpointconnectionnotification.html#cfn-ec2-vpcendpointconnectionnotification-connectionevents ecvpcecnConnectionEvents :: Lens' EC2VPCEndpointConnectionNotification (ValList Text) ecvpcecnConnectionEvents = lens _eC2VPCEndpointConnectionNotificationConnectionEvents (\s a -> s { _eC2VPCEndpointConnectionNotificationConnectionEvents = a }) -- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-vpcendpointconnectionnotification.html#cfn-ec2-vpcendpointconnectionnotification-connectionnotificationarn ecvpcecnConnectionNotificationArn :: Lens' EC2VPCEndpointConnectionNotification (Val Text) ecvpcecnConnectionNotificationArn = lens _eC2VPCEndpointConnectionNotificationConnectionNotificationArn (\s a -> s { _eC2VPCEndpointConnectionNotificationConnectionNotificationArn = a }) -- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-vpcendpointconnectionnotification.html#cfn-ec2-vpcendpointconnectionnotification-serviceid ecvpcecnServiceId :: Lens' EC2VPCEndpointConnectionNotification (Maybe (Val Text)) ecvpcecnServiceId = lens _eC2VPCEndpointConnectionNotificationServiceId (\s a -> s { _eC2VPCEndpointConnectionNotificationServiceId = a }) -- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-vpcendpointconnectionnotification.html#cfn-ec2-vpcendpointconnectionnotification-vpcendpointid ecvpcecnVPCEndpointId :: Lens' EC2VPCEndpointConnectionNotification (Maybe (Val Text)) ecvpcecnVPCEndpointId = lens _eC2VPCEndpointConnectionNotificationVPCEndpointId (\s a -> s { _eC2VPCEndpointConnectionNotificationVPCEndpointId = a })