module Stratosphere.DLM.LifecyclePolicy.PolicyDetailsProperty ( module Exports, PolicyDetailsProperty(..), mkPolicyDetailsProperty ) where import qualified Data.Aeson as JSON import qualified Stratosphere.Prelude as Prelude import Stratosphere.Property import {-# SOURCE #-} Stratosphere.DLM.LifecyclePolicy.ActionProperty as Exports import {-# SOURCE #-} Stratosphere.DLM.LifecyclePolicy.CrossRegionCopyTargetsProperty as Exports import {-# SOURCE #-} Stratosphere.DLM.LifecyclePolicy.EventSourceProperty as Exports import {-# SOURCE #-} Stratosphere.DLM.LifecyclePolicy.ExclusionsProperty as Exports import {-# SOURCE #-} Stratosphere.DLM.LifecyclePolicy.ParametersProperty as Exports import {-# SOURCE #-} Stratosphere.DLM.LifecyclePolicy.ScheduleProperty as Exports import Stratosphere.ResourceProperties import Stratosphere.Tag import Stratosphere.Value data PolicyDetailsProperty = -- | See: PolicyDetailsProperty {haddock_workaround_ :: (), -- | See: actions :: (Prelude.Maybe [ActionProperty]), -- | See: copyTags :: (Prelude.Maybe (Value Prelude.Bool)), -- | See: createInterval :: (Prelude.Maybe (Value Prelude.Integer)), -- | See: crossRegionCopyTargets :: (Prelude.Maybe CrossRegionCopyTargetsProperty), -- | See: eventSource :: (Prelude.Maybe EventSourceProperty), -- | See: exclusions :: (Prelude.Maybe ExclusionsProperty), -- | See: extendDeletion :: (Prelude.Maybe (Value Prelude.Bool)), -- | See: parameters :: (Prelude.Maybe ParametersProperty), -- | See: policyLanguage :: (Prelude.Maybe (Value Prelude.Text)), -- | See: policyType :: (Prelude.Maybe (Value Prelude.Text)), -- | See: resourceLocations :: (Prelude.Maybe (ValueList Prelude.Text)), -- | See: resourceType :: (Prelude.Maybe (Value Prelude.Text)), -- | See: resourceTypes :: (Prelude.Maybe (ValueList Prelude.Text)), -- | See: retainInterval :: (Prelude.Maybe (Value Prelude.Integer)), -- | See: schedules :: (Prelude.Maybe [ScheduleProperty]), -- | See: targetTags :: (Prelude.Maybe [Tag])} deriving stock (Prelude.Eq, Prelude.Show) mkPolicyDetailsProperty :: PolicyDetailsProperty mkPolicyDetailsProperty = PolicyDetailsProperty {haddock_workaround_ = (), actions = Prelude.Nothing, copyTags = Prelude.Nothing, createInterval = Prelude.Nothing, crossRegionCopyTargets = Prelude.Nothing, eventSource = Prelude.Nothing, exclusions = Prelude.Nothing, extendDeletion = Prelude.Nothing, parameters = Prelude.Nothing, policyLanguage = Prelude.Nothing, policyType = Prelude.Nothing, resourceLocations = Prelude.Nothing, resourceType = Prelude.Nothing, resourceTypes = Prelude.Nothing, retainInterval = Prelude.Nothing, schedules = Prelude.Nothing, targetTags = Prelude.Nothing} instance ToResourceProperties PolicyDetailsProperty where toResourceProperties PolicyDetailsProperty {..} = ResourceProperties {awsType = "AWS::DLM::LifecyclePolicy.PolicyDetails", supportsTags = Prelude.False, properties = Prelude.fromList (Prelude.catMaybes [(JSON..=) "Actions" Prelude.<$> actions, (JSON..=) "CopyTags" Prelude.<$> copyTags, (JSON..=) "CreateInterval" Prelude.<$> createInterval, (JSON..=) "CrossRegionCopyTargets" Prelude.<$> crossRegionCopyTargets, (JSON..=) "EventSource" Prelude.<$> eventSource, (JSON..=) "Exclusions" Prelude.<$> exclusions, (JSON..=) "ExtendDeletion" Prelude.<$> extendDeletion, (JSON..=) "Parameters" Prelude.<$> parameters, (JSON..=) "PolicyLanguage" Prelude.<$> policyLanguage, (JSON..=) "PolicyType" Prelude.<$> policyType, (JSON..=) "ResourceLocations" Prelude.<$> resourceLocations, (JSON..=) "ResourceType" Prelude.<$> resourceType, (JSON..=) "ResourceTypes" Prelude.<$> resourceTypes, (JSON..=) "RetainInterval" Prelude.<$> retainInterval, (JSON..=) "Schedules" Prelude.<$> schedules, (JSON..=) "TargetTags" Prelude.<$> targetTags])} instance JSON.ToJSON PolicyDetailsProperty where toJSON PolicyDetailsProperty {..} = JSON.object (Prelude.fromList (Prelude.catMaybes [(JSON..=) "Actions" Prelude.<$> actions, (JSON..=) "CopyTags" Prelude.<$> copyTags, (JSON..=) "CreateInterval" Prelude.<$> createInterval, (JSON..=) "CrossRegionCopyTargets" Prelude.<$> crossRegionCopyTargets, (JSON..=) "EventSource" Prelude.<$> eventSource, (JSON..=) "Exclusions" Prelude.<$> exclusions, (JSON..=) "ExtendDeletion" Prelude.<$> extendDeletion, (JSON..=) "Parameters" Prelude.<$> parameters, (JSON..=) "PolicyLanguage" Prelude.<$> policyLanguage, (JSON..=) "PolicyType" Prelude.<$> policyType, (JSON..=) "ResourceLocations" Prelude.<$> resourceLocations, (JSON..=) "ResourceType" Prelude.<$> resourceType, (JSON..=) "ResourceTypes" Prelude.<$> resourceTypes, (JSON..=) "RetainInterval" Prelude.<$> retainInterval, (JSON..=) "Schedules" Prelude.<$> schedules, (JSON..=) "TargetTags" Prelude.<$> targetTags])) instance Property "Actions" PolicyDetailsProperty where type PropertyType "Actions" PolicyDetailsProperty = [ActionProperty] set newValue PolicyDetailsProperty {..} = PolicyDetailsProperty {actions = Prelude.pure newValue, ..} instance Property "CopyTags" PolicyDetailsProperty where type PropertyType "CopyTags" PolicyDetailsProperty = Value Prelude.Bool set newValue PolicyDetailsProperty {..} = PolicyDetailsProperty {copyTags = Prelude.pure newValue, ..} instance Property "CreateInterval" PolicyDetailsProperty where type PropertyType "CreateInterval" PolicyDetailsProperty = Value Prelude.Integer set newValue PolicyDetailsProperty {..} = PolicyDetailsProperty {createInterval = Prelude.pure newValue, ..} instance Property "CrossRegionCopyTargets" PolicyDetailsProperty where type PropertyType "CrossRegionCopyTargets" PolicyDetailsProperty = CrossRegionCopyTargetsProperty set newValue PolicyDetailsProperty {..} = PolicyDetailsProperty {crossRegionCopyTargets = Prelude.pure newValue, ..} instance Property "EventSource" PolicyDetailsProperty where type PropertyType "EventSource" PolicyDetailsProperty = EventSourceProperty set newValue PolicyDetailsProperty {..} = PolicyDetailsProperty {eventSource = Prelude.pure newValue, ..} instance Property "Exclusions" PolicyDetailsProperty where type PropertyType "Exclusions" PolicyDetailsProperty = ExclusionsProperty set newValue PolicyDetailsProperty {..} = PolicyDetailsProperty {exclusions = Prelude.pure newValue, ..} instance Property "ExtendDeletion" PolicyDetailsProperty where type PropertyType "ExtendDeletion" PolicyDetailsProperty = Value Prelude.Bool set newValue PolicyDetailsProperty {..} = PolicyDetailsProperty {extendDeletion = Prelude.pure newValue, ..} instance Property "Parameters" PolicyDetailsProperty where type PropertyType "Parameters" PolicyDetailsProperty = ParametersProperty set newValue PolicyDetailsProperty {..} = PolicyDetailsProperty {parameters = Prelude.pure newValue, ..} instance Property "PolicyLanguage" PolicyDetailsProperty where type PropertyType "PolicyLanguage" PolicyDetailsProperty = Value Prelude.Text set newValue PolicyDetailsProperty {..} = PolicyDetailsProperty {policyLanguage = Prelude.pure newValue, ..} instance Property "PolicyType" PolicyDetailsProperty where type PropertyType "PolicyType" PolicyDetailsProperty = Value Prelude.Text set newValue PolicyDetailsProperty {..} = PolicyDetailsProperty {policyType = Prelude.pure newValue, ..} instance Property "ResourceLocations" PolicyDetailsProperty where type PropertyType "ResourceLocations" PolicyDetailsProperty = ValueList Prelude.Text set newValue PolicyDetailsProperty {..} = PolicyDetailsProperty {resourceLocations = Prelude.pure newValue, ..} instance Property "ResourceType" PolicyDetailsProperty where type PropertyType "ResourceType" PolicyDetailsProperty = Value Prelude.Text set newValue PolicyDetailsProperty {..} = PolicyDetailsProperty {resourceType = Prelude.pure newValue, ..} instance Property "ResourceTypes" PolicyDetailsProperty where type PropertyType "ResourceTypes" PolicyDetailsProperty = ValueList Prelude.Text set newValue PolicyDetailsProperty {..} = PolicyDetailsProperty {resourceTypes = Prelude.pure newValue, ..} instance Property "RetainInterval" PolicyDetailsProperty where type PropertyType "RetainInterval" PolicyDetailsProperty = Value Prelude.Integer set newValue PolicyDetailsProperty {..} = PolicyDetailsProperty {retainInterval = Prelude.pure newValue, ..} instance Property "Schedules" PolicyDetailsProperty where type PropertyType "Schedules" PolicyDetailsProperty = [ScheduleProperty] set newValue PolicyDetailsProperty {..} = PolicyDetailsProperty {schedules = Prelude.pure newValue, ..} instance Property "TargetTags" PolicyDetailsProperty where type PropertyType "TargetTags" PolicyDetailsProperty = [Tag] set newValue PolicyDetailsProperty {..} = PolicyDetailsProperty {targetTags = Prelude.pure newValue, ..}