packages feed

stratosphere-0.40.0: library-gen/Stratosphere/ResourceProperties/BackupBackupVaultNotificationObjectType.hs

{-# LANGUAGE OverloadedStrings #-}
{-# LANGUAGE RecordWildCards #-}
{-# LANGUAGE StrictData #-}
{-# LANGUAGE TupleSections #-}

-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-backup-backupvault-notificationobjecttype.html

module Stratosphere.ResourceProperties.BackupBackupVaultNotificationObjectType where

import Stratosphere.ResourceImports


-- | Full data type definition for BackupBackupVaultNotificationObjectType.
-- See 'backupBackupVaultNotificationObjectType' for a more convenient
-- constructor.
data BackupBackupVaultNotificationObjectType =
  BackupBackupVaultNotificationObjectType
  { _backupBackupVaultNotificationObjectTypeBackupVaultEvents :: ValList Text
  , _backupBackupVaultNotificationObjectTypeSNSTopicArn :: Val Text
  } deriving (Show, Eq)

instance ToJSON BackupBackupVaultNotificationObjectType where
  toJSON BackupBackupVaultNotificationObjectType{..} =
    object $
    catMaybes
    [ (Just . ("BackupVaultEvents",) . toJSON) _backupBackupVaultNotificationObjectTypeBackupVaultEvents
    , (Just . ("SNSTopicArn",) . toJSON) _backupBackupVaultNotificationObjectTypeSNSTopicArn
    ]

-- | Constructor for 'BackupBackupVaultNotificationObjectType' containing
-- required fields as arguments.
backupBackupVaultNotificationObjectType
  :: ValList Text -- ^ 'bbvnotBackupVaultEvents'
  -> Val Text -- ^ 'bbvnotSNSTopicArn'
  -> BackupBackupVaultNotificationObjectType
backupBackupVaultNotificationObjectType backupVaultEventsarg sNSTopicArnarg =
  BackupBackupVaultNotificationObjectType
  { _backupBackupVaultNotificationObjectTypeBackupVaultEvents = backupVaultEventsarg
  , _backupBackupVaultNotificationObjectTypeSNSTopicArn = sNSTopicArnarg
  }

-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-backup-backupvault-notificationobjecttype.html#cfn-backup-backupvault-notificationobjecttype-backupvaultevents
bbvnotBackupVaultEvents :: Lens' BackupBackupVaultNotificationObjectType (ValList Text)
bbvnotBackupVaultEvents = lens _backupBackupVaultNotificationObjectTypeBackupVaultEvents (\s a -> s { _backupBackupVaultNotificationObjectTypeBackupVaultEvents = a })

-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-backup-backupvault-notificationobjecttype.html#cfn-backup-backupvault-notificationobjecttype-snstopicarn
bbvnotSNSTopicArn :: Lens' BackupBackupVaultNotificationObjectType (Val Text)
bbvnotSNSTopicArn = lens _backupBackupVaultNotificationObjectTypeSNSTopicArn (\s a -> s { _backupBackupVaultNotificationObjectTypeSNSTopicArn = a })