content: module Stratosphere.DMS.DataMigration.SourceDataSettingsProperty (
          SourceDataSettingsProperty(..), mkSourceDataSettingsProperty
      ) where
  import qualified Data.Aeson as JSON
  import qualified Stratosphere.Prelude as Prelude
  import Stratosphere.Property
  import Stratosphere.ResourceProperties
  import Stratosphere.Value
  data SourceDataSettingsProperty
    = SourceDataSettingsProperty {cDCStartPosition :: (Prelude.Maybe (Value Prelude.Text)),
                                  cDCStartTime :: (Prelude.Maybe (Value Prelude.Text)),
                                  cDCStopTime :: (Prelude.Maybe (Value Prelude.Text)),
                                  slotName :: (Prelude.Maybe (Value Prelude.Text))}
    deriving stock (Prelude.Eq, Prelude.Show)
  mkSourceDataSettingsProperty :: SourceDataSettingsProperty
  mkSourceDataSettingsProperty
    = SourceDataSettingsProperty
        {cDCStartPosition = Prelude.Nothing,
         cDCStartTime = Prelude.Nothing, cDCStopTime = Prelude.Nothing,
         slotName = Prelude.Nothing}
  instance ToResourceProperties SourceDataSettingsProperty where
    toResourceProperties SourceDataSettingsProperty {..}
      = ResourceProperties
          {awsType = "AWS::DMS::DataMigration.SourceDataSettings",
           supportsTags = Prelude.False,
           properties = Prelude.fromList
                          (Prelude.catMaybes
                             [(JSON..=) "CDCStartPosition" Prelude.<$> cDCStartPosition,
                              (JSON..=) "CDCStartTime" Prelude.<$> cDCStartTime,
                              (JSON..=) "CDCStopTime" Prelude.<$> cDCStopTime,
                              (JSON..=) "SlotName" Prelude.<$> slotName])}
  instance JSON.ToJSON SourceDataSettingsProperty where
    toJSON SourceDataSettingsProperty {..}
      = JSON.object
          (Prelude.fromList
             (Prelude.catMaybes
                [(JSON..=) "CDCStartPosition" Prelude.<$> cDCStartPosition,
                 (JSON..=) "CDCStartTime" Prelude.<$> cDCStartTime,
                 (JSON..=) "CDCStopTime" Prelude.<$> cDCStopTime,
                 (JSON..=) "SlotName" Prelude.<$> slotName]))
  instance Property "CDCStartPosition" SourceDataSettingsProperty where
    type PropertyType "CDCStartPosition" SourceDataSettingsProperty = Value Prelude.Text
    set newValue SourceDataSettingsProperty {..}
      = SourceDataSettingsProperty
          {cDCStartPosition = Prelude.pure newValue, ..}
  instance Property "CDCStartTime" SourceDataSettingsProperty where
    type PropertyType "CDCStartTime" SourceDataSettingsProperty = Value Prelude.Text
    set newValue SourceDataSettingsProperty {..}
      = SourceDataSettingsProperty
          {cDCStartTime = Prelude.pure newValue, ..}
  instance Property "CDCStopTime" SourceDataSettingsProperty where
    type PropertyType "CDCStopTime" SourceDataSettingsProperty = Value Prelude.Text
    set newValue SourceDataSettingsProperty {..}
      = SourceDataSettingsProperty
          {cDCStopTime = Prelude.pure newValue, ..}
  instance Property "SlotName" SourceDataSettingsProperty where
    type PropertyType "SlotName" SourceDataSettingsProperty = Value Prelude.Text
    set newValue SourceDataSettingsProperty {..}
      = SourceDataSettingsProperty {slotName = Prelude.pure newValue, ..}