module Stratosphere.ARCZonalShift.ZonalAutoshiftConfiguration.PracticeRunConfigurationProperty ( module Exports, PracticeRunConfigurationProperty(..), mkPracticeRunConfigurationProperty ) where import qualified Data.Aeson as JSON import qualified Stratosphere.Prelude as Prelude import Stratosphere.Property import {-# SOURCE #-} Stratosphere.ARCZonalShift.ZonalAutoshiftConfiguration.ControlConditionProperty as Exports import Stratosphere.ResourceProperties import Stratosphere.Value data PracticeRunConfigurationProperty = -- | See: PracticeRunConfigurationProperty {haddock_workaround_ :: (), -- | See: blockedDates :: (Prelude.Maybe (ValueList Prelude.Text)), -- | See: blockedWindows :: (Prelude.Maybe (ValueList Prelude.Text)), -- | See: blockingAlarms :: (Prelude.Maybe [ControlConditionProperty]), -- | See: outcomeAlarms :: [ControlConditionProperty]} deriving stock (Prelude.Eq, Prelude.Show) mkPracticeRunConfigurationProperty :: [ControlConditionProperty] -> PracticeRunConfigurationProperty mkPracticeRunConfigurationProperty outcomeAlarms = PracticeRunConfigurationProperty {haddock_workaround_ = (), outcomeAlarms = outcomeAlarms, blockedDates = Prelude.Nothing, blockedWindows = Prelude.Nothing, blockingAlarms = Prelude.Nothing} instance ToResourceProperties PracticeRunConfigurationProperty where toResourceProperties PracticeRunConfigurationProperty {..} = ResourceProperties {awsType = "AWS::ARCZonalShift::ZonalAutoshiftConfiguration.PracticeRunConfiguration", supportsTags = Prelude.False, properties = Prelude.fromList ((Prelude.<>) ["OutcomeAlarms" JSON..= outcomeAlarms] (Prelude.catMaybes [(JSON..=) "BlockedDates" Prelude.<$> blockedDates, (JSON..=) "BlockedWindows" Prelude.<$> blockedWindows, (JSON..=) "BlockingAlarms" Prelude.<$> blockingAlarms]))} instance JSON.ToJSON PracticeRunConfigurationProperty where toJSON PracticeRunConfigurationProperty {..} = JSON.object (Prelude.fromList ((Prelude.<>) ["OutcomeAlarms" JSON..= outcomeAlarms] (Prelude.catMaybes [(JSON..=) "BlockedDates" Prelude.<$> blockedDates, (JSON..=) "BlockedWindows" Prelude.<$> blockedWindows, (JSON..=) "BlockingAlarms" Prelude.<$> blockingAlarms]))) instance Property "BlockedDates" PracticeRunConfigurationProperty where type PropertyType "BlockedDates" PracticeRunConfigurationProperty = ValueList Prelude.Text set newValue PracticeRunConfigurationProperty {..} = PracticeRunConfigurationProperty {blockedDates = Prelude.pure newValue, ..} instance Property "BlockedWindows" PracticeRunConfigurationProperty where type PropertyType "BlockedWindows" PracticeRunConfigurationProperty = ValueList Prelude.Text set newValue PracticeRunConfigurationProperty {..} = PracticeRunConfigurationProperty {blockedWindows = Prelude.pure newValue, ..} instance Property "BlockingAlarms" PracticeRunConfigurationProperty where type PropertyType "BlockingAlarms" PracticeRunConfigurationProperty = [ControlConditionProperty] set newValue PracticeRunConfigurationProperty {..} = PracticeRunConfigurationProperty {blockingAlarms = Prelude.pure newValue, ..} instance Property "OutcomeAlarms" PracticeRunConfigurationProperty where type PropertyType "OutcomeAlarms" PracticeRunConfigurationProperty = [ControlConditionProperty] set newValue PracticeRunConfigurationProperty {..} = PracticeRunConfigurationProperty {outcomeAlarms = newValue, ..}