stratosphere-0.54.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 :: Val Bool
, _dLMLifecyclePolicyCrossRegionCopyRuleRetainRule :: Maybe DLMLifecyclePolicyCrossRegionCopyRetainRule
, _dLMLifecyclePolicyCrossRegionCopyRuleTargetRegion :: Val Text
} deriving (Show, Eq)
instance ToJSON DLMLifecyclePolicyCrossRegionCopyRule where
toJSON DLMLifecyclePolicyCrossRegionCopyRule{..} =
object $
catMaybes
[ fmap (("CmkArn",) . toJSON) _dLMLifecyclePolicyCrossRegionCopyRuleCmkArn
, fmap (("CopyTags",) . toJSON) _dLMLifecyclePolicyCrossRegionCopyRuleCopyTags
, (Just . ("Encrypted",) . toJSON) _dLMLifecyclePolicyCrossRegionCopyRuleEncrypted
, fmap (("RetainRule",) . toJSON) _dLMLifecyclePolicyCrossRegionCopyRuleRetainRule
, (Just . ("TargetRegion",) . toJSON) _dLMLifecyclePolicyCrossRegionCopyRuleTargetRegion
]
-- | Constructor for 'DLMLifecyclePolicyCrossRegionCopyRule' containing
-- required fields as arguments.
dlmLifecyclePolicyCrossRegionCopyRule
:: Val Bool -- ^ 'dlmlpcrcrEncrypted'
-> Val Text -- ^ 'dlmlpcrcrTargetRegion'
-> DLMLifecyclePolicyCrossRegionCopyRule
dlmLifecyclePolicyCrossRegionCopyRule encryptedarg targetRegionarg =
DLMLifecyclePolicyCrossRegionCopyRule
{ _dLMLifecyclePolicyCrossRegionCopyRuleCmkArn = Nothing
, _dLMLifecyclePolicyCrossRegionCopyRuleCopyTags = Nothing
, _dLMLifecyclePolicyCrossRegionCopyRuleEncrypted = encryptedarg
, _dLMLifecyclePolicyCrossRegionCopyRuleRetainRule = Nothing
, _dLMLifecyclePolicyCrossRegionCopyRuleTargetRegion = targetRegionarg
}
-- | 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 (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 (Val Text)
dlmlpcrcrTargetRegion = lens _dLMLifecyclePolicyCrossRegionCopyRuleTargetRegion (\s a -> s { _dLMLifecyclePolicyCrossRegionCopyRuleTargetRegion = a })