stratosphere-0.47.0: library-gen/Stratosphere/ResourceProperties/DLMLifecyclePolicyPolicyDetails.hs
{-# LANGUAGE OverloadedStrings #-}
{-# LANGUAGE RecordWildCards #-}
{-# LANGUAGE StrictData #-}
{-# LANGUAGE TupleSections #-}
-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dlm-lifecyclepolicy-policydetails.html
module Stratosphere.ResourceProperties.DLMLifecyclePolicyPolicyDetails where
import Stratosphere.ResourceImports
import Stratosphere.ResourceProperties.DLMLifecyclePolicyParameters
import Stratosphere.ResourceProperties.DLMLifecyclePolicySchedule
import Stratosphere.ResourceProperties.Tag
-- | Full data type definition for DLMLifecyclePolicyPolicyDetails. See
-- 'dlmLifecyclePolicyPolicyDetails' for a more convenient constructor.
data DLMLifecyclePolicyPolicyDetails =
DLMLifecyclePolicyPolicyDetails
{ _dLMLifecyclePolicyPolicyDetailsParameters :: Maybe DLMLifecyclePolicyParameters
, _dLMLifecyclePolicyPolicyDetailsPolicyType :: Maybe (Val Text)
, _dLMLifecyclePolicyPolicyDetailsResourceTypes :: ValList Text
, _dLMLifecyclePolicyPolicyDetailsSchedules :: [DLMLifecyclePolicySchedule]
, _dLMLifecyclePolicyPolicyDetailsTargetTags :: [Tag]
} deriving (Show, Eq)
instance ToJSON DLMLifecyclePolicyPolicyDetails where
toJSON DLMLifecyclePolicyPolicyDetails{..} =
object $
catMaybes
[ fmap (("Parameters",) . toJSON) _dLMLifecyclePolicyPolicyDetailsParameters
, fmap (("PolicyType",) . toJSON) _dLMLifecyclePolicyPolicyDetailsPolicyType
, (Just . ("ResourceTypes",) . toJSON) _dLMLifecyclePolicyPolicyDetailsResourceTypes
, (Just . ("Schedules",) . toJSON) _dLMLifecyclePolicyPolicyDetailsSchedules
, (Just . ("TargetTags",) . toJSON) _dLMLifecyclePolicyPolicyDetailsTargetTags
]
-- | Constructor for 'DLMLifecyclePolicyPolicyDetails' containing required
-- fields as arguments.
dlmLifecyclePolicyPolicyDetails
:: ValList Text -- ^ 'dlmlppdResourceTypes'
-> [DLMLifecyclePolicySchedule] -- ^ 'dlmlppdSchedules'
-> [Tag] -- ^ 'dlmlppdTargetTags'
-> DLMLifecyclePolicyPolicyDetails
dlmLifecyclePolicyPolicyDetails resourceTypesarg schedulesarg targetTagsarg =
DLMLifecyclePolicyPolicyDetails
{ _dLMLifecyclePolicyPolicyDetailsParameters = Nothing
, _dLMLifecyclePolicyPolicyDetailsPolicyType = Nothing
, _dLMLifecyclePolicyPolicyDetailsResourceTypes = resourceTypesarg
, _dLMLifecyclePolicyPolicyDetailsSchedules = schedulesarg
, _dLMLifecyclePolicyPolicyDetailsTargetTags = targetTagsarg
}
-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dlm-lifecyclepolicy-policydetails.html#cfn-dlm-lifecyclepolicy-policydetails-parameters
dlmlppdParameters :: Lens' DLMLifecyclePolicyPolicyDetails (Maybe DLMLifecyclePolicyParameters)
dlmlppdParameters = lens _dLMLifecyclePolicyPolicyDetailsParameters (\s a -> s { _dLMLifecyclePolicyPolicyDetailsParameters = a })
-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dlm-lifecyclepolicy-policydetails.html#cfn-dlm-lifecyclepolicy-policydetails-policytype
dlmlppdPolicyType :: Lens' DLMLifecyclePolicyPolicyDetails (Maybe (Val Text))
dlmlppdPolicyType = lens _dLMLifecyclePolicyPolicyDetailsPolicyType (\s a -> s { _dLMLifecyclePolicyPolicyDetailsPolicyType = a })
-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dlm-lifecyclepolicy-policydetails.html#cfn-dlm-lifecyclepolicy-policydetails-resourcetypes
dlmlppdResourceTypes :: Lens' DLMLifecyclePolicyPolicyDetails (ValList Text)
dlmlppdResourceTypes = lens _dLMLifecyclePolicyPolicyDetailsResourceTypes (\s a -> s { _dLMLifecyclePolicyPolicyDetailsResourceTypes = a })
-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dlm-lifecyclepolicy-policydetails.html#cfn-dlm-lifecyclepolicy-policydetails-schedules
dlmlppdSchedules :: Lens' DLMLifecyclePolicyPolicyDetails [DLMLifecyclePolicySchedule]
dlmlppdSchedules = lens _dLMLifecyclePolicyPolicyDetailsSchedules (\s a -> s { _dLMLifecyclePolicyPolicyDetailsSchedules = a })
-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dlm-lifecyclepolicy-policydetails.html#cfn-dlm-lifecyclepolicy-policydetails-targettags
dlmlppdTargetTags :: Lens' DLMLifecyclePolicyPolicyDetails [Tag]
dlmlppdTargetTags = lens _dLMLifecyclePolicyPolicyDetailsTargetTags (\s a -> s { _dLMLifecyclePolicyPolicyDetailsTargetTags = a })