module Stratosphere.DMS.DataProvider.RedshiftSettingsProperty (
        RedshiftSettingsProperty(..), mkRedshiftSettingsProperty
    ) where
import qualified Data.Aeson as JSON
import qualified Stratosphere.Prelude as Prelude
import Stratosphere.Property
import Stratosphere.ResourceProperties
import Stratosphere.Value
data RedshiftSettingsProperty
  = -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dms-dataprovider-redshiftsettings.html>
    RedshiftSettingsProperty {RedshiftSettingsProperty -> ()
haddock_workaround_ :: (),
                              -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dms-dataprovider-redshiftsettings.html#cfn-dms-dataprovider-redshiftsettings-databasename>
                              RedshiftSettingsProperty -> Value Text
databaseName :: (Value Prelude.Text),
                              -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dms-dataprovider-redshiftsettings.html#cfn-dms-dataprovider-redshiftsettings-port>
                              RedshiftSettingsProperty -> Value Integer
port :: (Value Prelude.Integer),
                              -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dms-dataprovider-redshiftsettings.html#cfn-dms-dataprovider-redshiftsettings-servername>
                              RedshiftSettingsProperty -> Value Text
serverName :: (Value Prelude.Text)}
  deriving stock (RedshiftSettingsProperty -> RedshiftSettingsProperty -> Bool
(RedshiftSettingsProperty -> RedshiftSettingsProperty -> Bool)
-> (RedshiftSettingsProperty -> RedshiftSettingsProperty -> Bool)
-> Eq RedshiftSettingsProperty
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
$c== :: RedshiftSettingsProperty -> RedshiftSettingsProperty -> Bool
== :: RedshiftSettingsProperty -> RedshiftSettingsProperty -> Bool
$c/= :: RedshiftSettingsProperty -> RedshiftSettingsProperty -> Bool
/= :: RedshiftSettingsProperty -> RedshiftSettingsProperty -> Bool
Prelude.Eq, Int -> RedshiftSettingsProperty -> ShowS
[RedshiftSettingsProperty] -> ShowS
RedshiftSettingsProperty -> String
(Int -> RedshiftSettingsProperty -> ShowS)
-> (RedshiftSettingsProperty -> String)
-> ([RedshiftSettingsProperty] -> ShowS)
-> Show RedshiftSettingsProperty
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
$cshowsPrec :: Int -> RedshiftSettingsProperty -> ShowS
showsPrec :: Int -> RedshiftSettingsProperty -> ShowS
$cshow :: RedshiftSettingsProperty -> String
show :: RedshiftSettingsProperty -> String
$cshowList :: [RedshiftSettingsProperty] -> ShowS
showList :: [RedshiftSettingsProperty] -> ShowS
Prelude.Show)
mkRedshiftSettingsProperty ::
  Value Prelude.Text
  -> Value Prelude.Integer
     -> Value Prelude.Text -> RedshiftSettingsProperty
mkRedshiftSettingsProperty :: Value Text
-> Value Integer -> Value Text -> RedshiftSettingsProperty
mkRedshiftSettingsProperty Value Text
databaseName Value Integer
port Value Text
serverName
  = RedshiftSettingsProperty
      {haddock_workaround_ :: ()
haddock_workaround_ = (), databaseName :: Value Text
databaseName = Value Text
databaseName,
       port :: Value Integer
port = Value Integer
port, serverName :: Value Text
serverName = Value Text
serverName}
instance ToResourceProperties RedshiftSettingsProperty where
  toResourceProperties :: RedshiftSettingsProperty -> ResourceProperties
toResourceProperties RedshiftSettingsProperty {()
Value Integer
Value Text
haddock_workaround_ :: RedshiftSettingsProperty -> ()
databaseName :: RedshiftSettingsProperty -> Value Text
port :: RedshiftSettingsProperty -> Value Integer
serverName :: RedshiftSettingsProperty -> Value Text
haddock_workaround_ :: ()
databaseName :: Value Text
port :: Value Integer
serverName :: Value Text
..}
    = ResourceProperties
        {awsType :: Text
awsType = Text
"AWS::DMS::DataProvider.RedshiftSettings",
         supportsTags :: Bool
supportsTags = Bool
Prelude.False,
         properties :: Object
properties = [Key
"DatabaseName" Key -> Value Text -> (Key, Value)
forall v. ToJSON v => Key -> v -> (Key, Value)
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
JSON..= Value Text
databaseName,
                       Key
"Port" Key -> Value Integer -> (Key, Value)
forall v. ToJSON v => Key -> v -> (Key, Value)
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
JSON..= Value Integer
port, Key
"ServerName" Key -> Value Text -> (Key, Value)
forall v. ToJSON v => Key -> v -> (Key, Value)
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
JSON..= Value Text
serverName]}
instance JSON.ToJSON RedshiftSettingsProperty where
  toJSON :: RedshiftSettingsProperty -> Value
toJSON RedshiftSettingsProperty {()
Value Integer
Value Text
haddock_workaround_ :: RedshiftSettingsProperty -> ()
databaseName :: RedshiftSettingsProperty -> Value Text
port :: RedshiftSettingsProperty -> Value Integer
serverName :: RedshiftSettingsProperty -> Value Text
haddock_workaround_ :: ()
databaseName :: Value Text
port :: Value Integer
serverName :: Value Text
..}
    = [(Key, Value)] -> Value
JSON.object
        [Key
"DatabaseName" Key -> Value Text -> (Key, Value)
forall v. ToJSON v => Key -> v -> (Key, Value)
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
JSON..= Value Text
databaseName, Key
"Port" Key -> Value Integer -> (Key, Value)
forall v. ToJSON v => Key -> v -> (Key, Value)
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
JSON..= Value Integer
port,
         Key
"ServerName" Key -> Value Text -> (Key, Value)
forall v. ToJSON v => Key -> v -> (Key, Value)
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
JSON..= Value Text
serverName]
instance Property "DatabaseName" RedshiftSettingsProperty where
  type PropertyType "DatabaseName" RedshiftSettingsProperty = Value Prelude.Text
  set :: PropertyType "DatabaseName" RedshiftSettingsProperty
-> RedshiftSettingsProperty -> RedshiftSettingsProperty
set PropertyType "DatabaseName" RedshiftSettingsProperty
newValue RedshiftSettingsProperty {()
Value Integer
Value Text
haddock_workaround_ :: RedshiftSettingsProperty -> ()
databaseName :: RedshiftSettingsProperty -> Value Text
port :: RedshiftSettingsProperty -> Value Integer
serverName :: RedshiftSettingsProperty -> Value Text
haddock_workaround_ :: ()
databaseName :: Value Text
port :: Value Integer
serverName :: Value Text
..}
    = RedshiftSettingsProperty {databaseName :: Value Text
databaseName = PropertyType "DatabaseName" RedshiftSettingsProperty
Value Text
newValue, ()
Value Integer
Value Text
haddock_workaround_ :: ()
port :: Value Integer
serverName :: Value Text
haddock_workaround_ :: ()
port :: Value Integer
serverName :: Value Text
..}
instance Property "Port" RedshiftSettingsProperty where
  type PropertyType "Port" RedshiftSettingsProperty = Value Prelude.Integer
  set :: PropertyType "Port" RedshiftSettingsProperty
-> RedshiftSettingsProperty -> RedshiftSettingsProperty
set PropertyType "Port" RedshiftSettingsProperty
newValue RedshiftSettingsProperty {()
Value Integer
Value Text
haddock_workaround_ :: RedshiftSettingsProperty -> ()
databaseName :: RedshiftSettingsProperty -> Value Text
port :: RedshiftSettingsProperty -> Value Integer
serverName :: RedshiftSettingsProperty -> Value Text
haddock_workaround_ :: ()
databaseName :: Value Text
port :: Value Integer
serverName :: Value Text
..}
    = RedshiftSettingsProperty {port :: Value Integer
port = PropertyType "Port" RedshiftSettingsProperty
Value Integer
newValue, ()
Value Text
haddock_workaround_ :: ()
databaseName :: Value Text
serverName :: Value Text
haddock_workaround_ :: ()
databaseName :: Value Text
serverName :: Value Text
..}
instance Property "ServerName" RedshiftSettingsProperty where
  type PropertyType "ServerName" RedshiftSettingsProperty = Value Prelude.Text
  set :: PropertyType "ServerName" RedshiftSettingsProperty
-> RedshiftSettingsProperty -> RedshiftSettingsProperty
set PropertyType "ServerName" RedshiftSettingsProperty
newValue RedshiftSettingsProperty {()
Value Integer
Value Text
haddock_workaround_ :: RedshiftSettingsProperty -> ()
databaseName :: RedshiftSettingsProperty -> Value Text
port :: RedshiftSettingsProperty -> Value Integer
serverName :: RedshiftSettingsProperty -> Value Text
haddock_workaround_ :: ()
databaseName :: Value Text
port :: Value Integer
serverName :: Value Text
..}
    = RedshiftSettingsProperty {serverName :: Value Text
serverName = PropertyType "ServerName" RedshiftSettingsProperty
Value Text
newValue, ()
Value Integer
Value Text
haddock_workaround_ :: ()
databaseName :: Value Text
port :: Value Integer
haddock_workaround_ :: ()
databaseName :: Value Text
port :: Value Integer
..}