stratosphere-0.47.0: library-gen/Stratosphere/ResourceProperties/DLMLifecyclePolicyCrossRegionCopyRule.hs
{-# LANGUAGE OverloadedStrings #-}
{-# LANGUAGE RecordWildCards #-}
{-# LANGUAGE StrictData #-}
{-# LANGUAGE TupleSections #-}
-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dlm-lifecyclepolicy-crossregioncopyrule.html
module Stratosphere.ResourceProperties.DLMLifecyclePolicyCrossRegionCopyRule where
import Stratosphere.ResourceImports
import Stratosphere.ResourceProperties.DLMLifecyclePolicyCrossRegionCopyRetainRule
-- | Full data type definition for DLMLifecyclePolicyCrossRegionCopyRule. See
-- 'dlmLifecyclePolicyCrossRegionCopyRule' for a more convenient
-- constructor.
data DLMLifecyclePolicyCrossRegionCopyRule =
DLMLifecyclePolicyCrossRegionCopyRule
{ _dLMLifecyclePolicyCrossRegionCopyRuleCmkArn :: Maybe (Val Text)
, _dLMLifecyclePolicyCrossRegionCopyRuleCopyTags :: Maybe (Val Bool)
, _dLMLifecyclePolicyCrossRegionCopyRuleEncrypted :: Maybe (Val Bool)
, _dLMLifecyclePolicyCrossRegionCopyRuleRetainRule :: Maybe DLMLifecyclePolicyCrossRegionCopyRetainRule
, _dLMLifecyclePolicyCrossRegionCopyRuleTargetRegion :: Maybe (Val Text)
} deriving (Show, Eq)
instance ToJSON DLMLifecyclePolicyCrossRegionCopyRule where
toJSON DLMLifecyclePolicyCrossRegionCopyRule{..} =
object $
catMaybes
[ fmap (("CmkArn",) . toJSON) _dLMLifecyclePolicyCrossRegionCopyRuleCmkArn
, fmap (("CopyTags",) . toJSON) _dLMLifecyclePolicyCrossRegionCopyRuleCopyTags
, fmap (("Encrypted",) . toJSON) _dLMLifecyclePolicyCrossRegionCopyRuleEncrypted
, fmap (("RetainRule",) . toJSON) _dLMLifecyclePolicyCrossRegionCopyRuleRetainRule
, fmap (("TargetRegion",) . toJSON) _dLMLifecyclePolicyCrossRegionCopyRuleTargetRegion
]
-- | Constructor for 'DLMLifecyclePolicyCrossRegionCopyRule' containing
-- required fields as arguments.
dlmLifecyclePolicyCrossRegionCopyRule
:: DLMLifecyclePolicyCrossRegionCopyRule
dlmLifecyclePolicyCrossRegionCopyRule =
DLMLifecyclePolicyCrossRegionCopyRule
{ _dLMLifecyclePolicyCrossRegionCopyRuleCmkArn = Nothing
, _dLMLifecyclePolicyCrossRegionCopyRuleCopyTags = Nothing
, _dLMLifecyclePolicyCrossRegionCopyRuleEncrypted = Nothing
, _dLMLifecyclePolicyCrossRegionCopyRuleRetainRule = Nothing
, _dLMLifecyclePolicyCrossRegionCopyRuleTargetRegion = Nothing
}
-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dlm-lifecyclepolicy-crossregioncopyrule.html#cfn-dlm-lifecyclepolicy-crossregioncopyrule-cmkarn
dlmlpcrcrCmkArn :: Lens' DLMLifecyclePolicyCrossRegionCopyRule (Maybe (Val Text))
dlmlpcrcrCmkArn = lens _dLMLifecyclePolicyCrossRegionCopyRuleCmkArn (\s a -> s { _dLMLifecyclePolicyCrossRegionCopyRuleCmkArn = a })
-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dlm-lifecyclepolicy-crossregioncopyrule.html#cfn-dlm-lifecyclepolicy-crossregioncopyrule-copytags
dlmlpcrcrCopyTags :: Lens' DLMLifecyclePolicyCrossRegionCopyRule (Maybe (Val Bool))
dlmlpcrcrCopyTags = lens _dLMLifecyclePolicyCrossRegionCopyRuleCopyTags (\s a -> s { _dLMLifecyclePolicyCrossRegionCopyRuleCopyTags = a })
-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dlm-lifecyclepolicy-crossregioncopyrule.html#cfn-dlm-lifecyclepolicy-crossregioncopyrule-encrypted
dlmlpcrcrEncrypted :: Lens' DLMLifecyclePolicyCrossRegionCopyRule (Maybe (Val Bool))
dlmlpcrcrEncrypted = lens _dLMLifecyclePolicyCrossRegionCopyRuleEncrypted (\s a -> s { _dLMLifecyclePolicyCrossRegionCopyRuleEncrypted = a })
-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dlm-lifecyclepolicy-crossregioncopyrule.html#cfn-dlm-lifecyclepolicy-crossregioncopyrule-retainrule
dlmlpcrcrRetainRule :: Lens' DLMLifecyclePolicyCrossRegionCopyRule (Maybe DLMLifecyclePolicyCrossRegionCopyRetainRule)
dlmlpcrcrRetainRule = lens _dLMLifecyclePolicyCrossRegionCopyRuleRetainRule (\s a -> s { _dLMLifecyclePolicyCrossRegionCopyRuleRetainRule = a })
-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dlm-lifecyclepolicy-crossregioncopyrule.html#cfn-dlm-lifecyclepolicy-crossregioncopyrule-targetregion
dlmlpcrcrTargetRegion :: Lens' DLMLifecyclePolicyCrossRegionCopyRule (Maybe (Val Text))
dlmlpcrcrTargetRegion = lens _dLMLifecyclePolicyCrossRegionCopyRuleTargetRegion (\s a -> s { _dLMLifecyclePolicyCrossRegionCopyRuleTargetRegion = a })