stratosphere-0.40.0: library-gen/Stratosphere/ResourceProperties/BackupBackupPlanBackupRuleResourceType.hs
{-# LANGUAGE OverloadedStrings #-}
{-# LANGUAGE RecordWildCards #-}
{-# LANGUAGE StrictData #-}
{-# LANGUAGE TupleSections #-}
-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-backup-backupplan-backupruleresourcetype.html
module Stratosphere.ResourceProperties.BackupBackupPlanBackupRuleResourceType where
import Stratosphere.ResourceImports
import Stratosphere.ResourceProperties.BackupBackupPlanLifecycleResourceType
-- | Full data type definition for BackupBackupPlanBackupRuleResourceType. See
-- 'backupBackupPlanBackupRuleResourceType' for a more convenient
-- constructor.
data BackupBackupPlanBackupRuleResourceType =
BackupBackupPlanBackupRuleResourceType
{ _backupBackupPlanBackupRuleResourceTypeCompletionWindowMinutes :: Maybe (Val Double)
, _backupBackupPlanBackupRuleResourceTypeLifecycle :: Maybe BackupBackupPlanLifecycleResourceType
, _backupBackupPlanBackupRuleResourceTypeRecoveryPointTags :: Maybe Object
, _backupBackupPlanBackupRuleResourceTypeRuleName :: Val Text
, _backupBackupPlanBackupRuleResourceTypeScheduleExpression :: Maybe (Val Text)
, _backupBackupPlanBackupRuleResourceTypeStartWindowMinutes :: Maybe (Val Double)
, _backupBackupPlanBackupRuleResourceTypeTargetBackupVault :: Val Text
} deriving (Show, Eq)
instance ToJSON BackupBackupPlanBackupRuleResourceType where
toJSON BackupBackupPlanBackupRuleResourceType{..} =
object $
catMaybes
[ fmap (("CompletionWindowMinutes",) . toJSON) _backupBackupPlanBackupRuleResourceTypeCompletionWindowMinutes
, fmap (("Lifecycle",) . toJSON) _backupBackupPlanBackupRuleResourceTypeLifecycle
, fmap (("RecoveryPointTags",) . toJSON) _backupBackupPlanBackupRuleResourceTypeRecoveryPointTags
, (Just . ("RuleName",) . toJSON) _backupBackupPlanBackupRuleResourceTypeRuleName
, fmap (("ScheduleExpression",) . toJSON) _backupBackupPlanBackupRuleResourceTypeScheduleExpression
, fmap (("StartWindowMinutes",) . toJSON) _backupBackupPlanBackupRuleResourceTypeStartWindowMinutes
, (Just . ("TargetBackupVault",) . toJSON) _backupBackupPlanBackupRuleResourceTypeTargetBackupVault
]
-- | Constructor for 'BackupBackupPlanBackupRuleResourceType' containing
-- required fields as arguments.
backupBackupPlanBackupRuleResourceType
:: Val Text -- ^ 'bbpbrrtRuleName'
-> Val Text -- ^ 'bbpbrrtTargetBackupVault'
-> BackupBackupPlanBackupRuleResourceType
backupBackupPlanBackupRuleResourceType ruleNamearg targetBackupVaultarg =
BackupBackupPlanBackupRuleResourceType
{ _backupBackupPlanBackupRuleResourceTypeCompletionWindowMinutes = Nothing
, _backupBackupPlanBackupRuleResourceTypeLifecycle = Nothing
, _backupBackupPlanBackupRuleResourceTypeRecoveryPointTags = Nothing
, _backupBackupPlanBackupRuleResourceTypeRuleName = ruleNamearg
, _backupBackupPlanBackupRuleResourceTypeScheduleExpression = Nothing
, _backupBackupPlanBackupRuleResourceTypeStartWindowMinutes = Nothing
, _backupBackupPlanBackupRuleResourceTypeTargetBackupVault = targetBackupVaultarg
}
-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-backup-backupplan-backupruleresourcetype.html#cfn-backup-backupplan-backupruleresourcetype-completionwindowminutes
bbpbrrtCompletionWindowMinutes :: Lens' BackupBackupPlanBackupRuleResourceType (Maybe (Val Double))
bbpbrrtCompletionWindowMinutes = lens _backupBackupPlanBackupRuleResourceTypeCompletionWindowMinutes (\s a -> s { _backupBackupPlanBackupRuleResourceTypeCompletionWindowMinutes = a })
-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-backup-backupplan-backupruleresourcetype.html#cfn-backup-backupplan-backupruleresourcetype-lifecycle
bbpbrrtLifecycle :: Lens' BackupBackupPlanBackupRuleResourceType (Maybe BackupBackupPlanLifecycleResourceType)
bbpbrrtLifecycle = lens _backupBackupPlanBackupRuleResourceTypeLifecycle (\s a -> s { _backupBackupPlanBackupRuleResourceTypeLifecycle = a })
-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-backup-backupplan-backupruleresourcetype.html#cfn-backup-backupplan-backupruleresourcetype-recoverypointtags
bbpbrrtRecoveryPointTags :: Lens' BackupBackupPlanBackupRuleResourceType (Maybe Object)
bbpbrrtRecoveryPointTags = lens _backupBackupPlanBackupRuleResourceTypeRecoveryPointTags (\s a -> s { _backupBackupPlanBackupRuleResourceTypeRecoveryPointTags = a })
-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-backup-backupplan-backupruleresourcetype.html#cfn-backup-backupplan-backupruleresourcetype-rulename
bbpbrrtRuleName :: Lens' BackupBackupPlanBackupRuleResourceType (Val Text)
bbpbrrtRuleName = lens _backupBackupPlanBackupRuleResourceTypeRuleName (\s a -> s { _backupBackupPlanBackupRuleResourceTypeRuleName = a })
-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-backup-backupplan-backupruleresourcetype.html#cfn-backup-backupplan-backupruleresourcetype-scheduleexpression
bbpbrrtScheduleExpression :: Lens' BackupBackupPlanBackupRuleResourceType (Maybe (Val Text))
bbpbrrtScheduleExpression = lens _backupBackupPlanBackupRuleResourceTypeScheduleExpression (\s a -> s { _backupBackupPlanBackupRuleResourceTypeScheduleExpression = a })
-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-backup-backupplan-backupruleresourcetype.html#cfn-backup-backupplan-backupruleresourcetype-startwindowminutes
bbpbrrtStartWindowMinutes :: Lens' BackupBackupPlanBackupRuleResourceType (Maybe (Val Double))
bbpbrrtStartWindowMinutes = lens _backupBackupPlanBackupRuleResourceTypeStartWindowMinutes (\s a -> s { _backupBackupPlanBackupRuleResourceTypeStartWindowMinutes = a })
-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-backup-backupplan-backupruleresourcetype.html#cfn-backup-backupplan-backupruleresourcetype-targetbackupvault
bbpbrrtTargetBackupVault :: Lens' BackupBackupPlanBackupRuleResourceType (Val Text)
bbpbrrtTargetBackupVault = lens _backupBackupPlanBackupRuleResourceTypeTargetBackupVault (\s a -> s { _backupBackupPlanBackupRuleResourceTypeTargetBackupVault = a })