{-# LANGUAGE OverloadedStrings #-} {-# LANGUAGE RecordWildCards #-} {-# LANGUAGE TupleSections #-} -- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ssm-maintenancewindowtask-notificationconfig.html module Stratosphere.ResourceProperties.SSMMaintenanceWindowTaskNotificationConfig where import Stratosphere.ResourceImports -- | Full data type definition for SSMMaintenanceWindowTaskNotificationConfig. -- See 'ssmMaintenanceWindowTaskNotificationConfig' for a more convenient -- constructor. data SSMMaintenanceWindowTaskNotificationConfig = SSMMaintenanceWindowTaskNotificationConfig { _sSMMaintenanceWindowTaskNotificationConfigNotificationArn :: Val Text , _sSMMaintenanceWindowTaskNotificationConfigNotificationEvents :: Maybe (ValList Text) , _sSMMaintenanceWindowTaskNotificationConfigNotificationType :: Maybe (Val Text) } deriving (Show, Eq) instance ToJSON SSMMaintenanceWindowTaskNotificationConfig where toJSON SSMMaintenanceWindowTaskNotificationConfig{..} = object $ catMaybes [ (Just . ("NotificationArn",) . toJSON) _sSMMaintenanceWindowTaskNotificationConfigNotificationArn , fmap (("NotificationEvents",) . toJSON) _sSMMaintenanceWindowTaskNotificationConfigNotificationEvents , fmap (("NotificationType",) . toJSON) _sSMMaintenanceWindowTaskNotificationConfigNotificationType ] instance FromJSON SSMMaintenanceWindowTaskNotificationConfig where parseJSON (Object obj) = SSMMaintenanceWindowTaskNotificationConfig <$> (obj .: "NotificationArn") <*> (obj .:? "NotificationEvents") <*> (obj .:? "NotificationType") parseJSON _ = mempty -- | Constructor for 'SSMMaintenanceWindowTaskNotificationConfig' containing -- required fields as arguments. ssmMaintenanceWindowTaskNotificationConfig :: Val Text -- ^ 'ssmmwtncNotificationArn' -> SSMMaintenanceWindowTaskNotificationConfig ssmMaintenanceWindowTaskNotificationConfig notificationArnarg = SSMMaintenanceWindowTaskNotificationConfig { _sSMMaintenanceWindowTaskNotificationConfigNotificationArn = notificationArnarg , _sSMMaintenanceWindowTaskNotificationConfigNotificationEvents = Nothing , _sSMMaintenanceWindowTaskNotificationConfigNotificationType = Nothing } -- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ssm-maintenancewindowtask-notificationconfig.html#cfn-ssm-maintenancewindowtask-notificationconfig-notificationarn ssmmwtncNotificationArn :: Lens' SSMMaintenanceWindowTaskNotificationConfig (Val Text) ssmmwtncNotificationArn = lens _sSMMaintenanceWindowTaskNotificationConfigNotificationArn (\s a -> s { _sSMMaintenanceWindowTaskNotificationConfigNotificationArn = a }) -- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ssm-maintenancewindowtask-notificationconfig.html#cfn-ssm-maintenancewindowtask-notificationconfig-notificationevents ssmmwtncNotificationEvents :: Lens' SSMMaintenanceWindowTaskNotificationConfig (Maybe (ValList Text)) ssmmwtncNotificationEvents = lens _sSMMaintenanceWindowTaskNotificationConfigNotificationEvents (\s a -> s { _sSMMaintenanceWindowTaskNotificationConfigNotificationEvents = a }) -- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ssm-maintenancewindowtask-notificationconfig.html#cfn-ssm-maintenancewindowtask-notificationconfig-notificationtype ssmmwtncNotificationType :: Lens' SSMMaintenanceWindowTaskNotificationConfig (Maybe (Val Text)) ssmmwtncNotificationType = lens _sSMMaintenanceWindowTaskNotificationConfigNotificationType (\s a -> s { _sSMMaintenanceWindowTaskNotificationConfigNotificationType = a })