content: module Stratosphere.IoTAnalytics.Dataset.LateDataRuleProperty (
          module Exports, LateDataRuleProperty(..), mkLateDataRuleProperty
      ) where
  import qualified Data.Aeson as JSON
  import qualified Stratosphere.Prelude as Prelude
  import Stratosphere.Property
  import {-# SOURCE #-} Stratosphere.IoTAnalytics.Dataset.LateDataRuleConfigurationProperty as Exports
  import Stratosphere.ResourceProperties
  import Stratosphere.Value
  data LateDataRuleProperty
    = LateDataRuleProperty {ruleConfiguration :: LateDataRuleConfigurationProperty,
                            ruleName :: (Prelude.Maybe (Value Prelude.Text))}
    deriving stock (Prelude.Eq, Prelude.Show)
  mkLateDataRuleProperty ::
    LateDataRuleConfigurationProperty -> LateDataRuleProperty
  mkLateDataRuleProperty ruleConfiguration
    = LateDataRuleProperty
        {ruleConfiguration = ruleConfiguration, ruleName = Prelude.Nothing}
  instance ToResourceProperties LateDataRuleProperty where
    toResourceProperties LateDataRuleProperty {..}
      = ResourceProperties
          {awsType = "AWS::IoTAnalytics::Dataset.LateDataRule",
           supportsTags = Prelude.False,
           properties = Prelude.fromList
                          ((Prelude.<>)
                             ["RuleConfiguration" JSON..= ruleConfiguration]
                             (Prelude.catMaybes [(JSON..=) "RuleName" Prelude.<$> ruleName]))}
  instance JSON.ToJSON LateDataRuleProperty where
    toJSON LateDataRuleProperty {..}
      = JSON.object
          (Prelude.fromList
             ((Prelude.<>)
                ["RuleConfiguration" JSON..= ruleConfiguration]
                (Prelude.catMaybes [(JSON..=) "RuleName" Prelude.<$> ruleName])))
  instance Property "RuleConfiguration" LateDataRuleProperty where
    type PropertyType "RuleConfiguration" LateDataRuleProperty = LateDataRuleConfigurationProperty
    set newValue LateDataRuleProperty {..}
      = LateDataRuleProperty {ruleConfiguration = newValue, ..}
  instance Property "RuleName" LateDataRuleProperty where
    type PropertyType "RuleName" LateDataRuleProperty = Value Prelude.Text
    set newValue LateDataRuleProperty {..}
      = LateDataRuleProperty {ruleName = Prelude.pure newValue, ..}