packages feed

stratosphere-0.54.0: library-gen/Stratosphere/ResourceProperties/DLMLifecyclePolicyCrossRegionCopyRetainRule.hs

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

-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dlm-lifecyclepolicy-crossregioncopyretainrule.html

module Stratosphere.ResourceProperties.DLMLifecyclePolicyCrossRegionCopyRetainRule where

import Stratosphere.ResourceImports


-- | Full data type definition for
-- DLMLifecyclePolicyCrossRegionCopyRetainRule. See
-- 'dlmLifecyclePolicyCrossRegionCopyRetainRule' for a more convenient
-- constructor.
data DLMLifecyclePolicyCrossRegionCopyRetainRule =
  DLMLifecyclePolicyCrossRegionCopyRetainRule
  { _dLMLifecyclePolicyCrossRegionCopyRetainRuleInterval :: Val Integer
  , _dLMLifecyclePolicyCrossRegionCopyRetainRuleIntervalUnit :: Val Text
  } deriving (Show, Eq)

instance ToJSON DLMLifecyclePolicyCrossRegionCopyRetainRule where
  toJSON DLMLifecyclePolicyCrossRegionCopyRetainRule{..} =
    object $
    catMaybes
    [ (Just . ("Interval",) . toJSON) _dLMLifecyclePolicyCrossRegionCopyRetainRuleInterval
    , (Just . ("IntervalUnit",) . toJSON) _dLMLifecyclePolicyCrossRegionCopyRetainRuleIntervalUnit
    ]

-- | Constructor for 'DLMLifecyclePolicyCrossRegionCopyRetainRule' containing
-- required fields as arguments.
dlmLifecyclePolicyCrossRegionCopyRetainRule
  :: Val Integer -- ^ 'dlmlpcrcrrInterval'
  -> Val Text -- ^ 'dlmlpcrcrrIntervalUnit'
  -> DLMLifecyclePolicyCrossRegionCopyRetainRule
dlmLifecyclePolicyCrossRegionCopyRetainRule intervalarg intervalUnitarg =
  DLMLifecyclePolicyCrossRegionCopyRetainRule
  { _dLMLifecyclePolicyCrossRegionCopyRetainRuleInterval = intervalarg
  , _dLMLifecyclePolicyCrossRegionCopyRetainRuleIntervalUnit = intervalUnitarg
  }

-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dlm-lifecyclepolicy-crossregioncopyretainrule.html#cfn-dlm-lifecyclepolicy-crossregioncopyretainrule-interval
dlmlpcrcrrInterval :: Lens' DLMLifecyclePolicyCrossRegionCopyRetainRule (Val Integer)
dlmlpcrcrrInterval = lens _dLMLifecyclePolicyCrossRegionCopyRetainRuleInterval (\s a -> s { _dLMLifecyclePolicyCrossRegionCopyRetainRuleInterval = a })

-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dlm-lifecyclepolicy-crossregioncopyretainrule.html#cfn-dlm-lifecyclepolicy-crossregioncopyretainrule-intervalunit
dlmlpcrcrrIntervalUnit :: Lens' DLMLifecyclePolicyCrossRegionCopyRetainRule (Val Text)
dlmlpcrcrrIntervalUnit = lens _dLMLifecyclePolicyCrossRegionCopyRetainRuleIntervalUnit (\s a -> s { _dLMLifecyclePolicyCrossRegionCopyRetainRuleIntervalUnit = a })