module Stratosphere.QuickSight.DataSource.MySqlParametersProperty (
        MySqlParametersProperty(..), mkMySqlParametersProperty
    ) where
import qualified Data.Aeson as JSON
import qualified Stratosphere.Prelude as Prelude
import Stratosphere.Property
import Stratosphere.ResourceProperties
import Stratosphere.Value
data MySqlParametersProperty
  = -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-quicksight-datasource-mysqlparameters.html>
    MySqlParametersProperty {MySqlParametersProperty -> ()
haddock_workaround_ :: (),
                             -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-quicksight-datasource-mysqlparameters.html#cfn-quicksight-datasource-mysqlparameters-database>
                             MySqlParametersProperty -> Value Text
database :: (Value Prelude.Text),
                             -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-quicksight-datasource-mysqlparameters.html#cfn-quicksight-datasource-mysqlparameters-host>
                             MySqlParametersProperty -> Value Text
host :: (Value Prelude.Text),
                             -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-quicksight-datasource-mysqlparameters.html#cfn-quicksight-datasource-mysqlparameters-port>
                             MySqlParametersProperty -> Value Double
port :: (Value Prelude.Double)}
  deriving stock (MySqlParametersProperty -> MySqlParametersProperty -> Bool
(MySqlParametersProperty -> MySqlParametersProperty -> Bool)
-> (MySqlParametersProperty -> MySqlParametersProperty -> Bool)
-> Eq MySqlParametersProperty
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
$c== :: MySqlParametersProperty -> MySqlParametersProperty -> Bool
== :: MySqlParametersProperty -> MySqlParametersProperty -> Bool
$c/= :: MySqlParametersProperty -> MySqlParametersProperty -> Bool
/= :: MySqlParametersProperty -> MySqlParametersProperty -> Bool
Prelude.Eq, Int -> MySqlParametersProperty -> ShowS
[MySqlParametersProperty] -> ShowS
MySqlParametersProperty -> String
(Int -> MySqlParametersProperty -> ShowS)
-> (MySqlParametersProperty -> String)
-> ([MySqlParametersProperty] -> ShowS)
-> Show MySqlParametersProperty
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
$cshowsPrec :: Int -> MySqlParametersProperty -> ShowS
showsPrec :: Int -> MySqlParametersProperty -> ShowS
$cshow :: MySqlParametersProperty -> String
show :: MySqlParametersProperty -> String
$cshowList :: [MySqlParametersProperty] -> ShowS
showList :: [MySqlParametersProperty] -> ShowS
Prelude.Show)
mkMySqlParametersProperty ::
  Value Prelude.Text
  -> Value Prelude.Text
     -> Value Prelude.Double -> MySqlParametersProperty
mkMySqlParametersProperty :: Value Text -> Value Text -> Value Double -> MySqlParametersProperty
mkMySqlParametersProperty Value Text
database Value Text
host Value Double
port
  = MySqlParametersProperty
      {haddock_workaround_ :: ()
haddock_workaround_ = (), database :: Value Text
database = Value Text
database, host :: Value Text
host = Value Text
host,
       port :: Value Double
port = Value Double
port}
instance ToResourceProperties MySqlParametersProperty where
  toResourceProperties :: MySqlParametersProperty -> ResourceProperties
toResourceProperties MySqlParametersProperty {()
Value Double
Value Text
haddock_workaround_ :: MySqlParametersProperty -> ()
database :: MySqlParametersProperty -> Value Text
host :: MySqlParametersProperty -> Value Text
port :: MySqlParametersProperty -> Value Double
haddock_workaround_ :: ()
database :: Value Text
host :: Value Text
port :: Value Double
..}
    = ResourceProperties
        {awsType :: Text
awsType = Text
"AWS::QuickSight::DataSource.MySqlParameters",
         supportsTags :: Bool
supportsTags = Bool
Prelude.False,
         properties :: Object
properties = [Key
"Database" 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
database, Key
"Host" 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
host,
                       Key
"Port" Key -> Value Double -> (Key, Value)
forall v. ToJSON v => Key -> v -> (Key, Value)
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
JSON..= Value Double
port]}
instance JSON.ToJSON MySqlParametersProperty where
  toJSON :: MySqlParametersProperty -> Value
toJSON MySqlParametersProperty {()
Value Double
Value Text
haddock_workaround_ :: MySqlParametersProperty -> ()
database :: MySqlParametersProperty -> Value Text
host :: MySqlParametersProperty -> Value Text
port :: MySqlParametersProperty -> Value Double
haddock_workaround_ :: ()
database :: Value Text
host :: Value Text
port :: Value Double
..}
    = [(Key, Value)] -> Value
JSON.object
        [Key
"Database" 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
database, Key
"Host" 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
host,
         Key
"Port" Key -> Value Double -> (Key, Value)
forall v. ToJSON v => Key -> v -> (Key, Value)
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
JSON..= Value Double
port]
instance Property "Database" MySqlParametersProperty where
  type PropertyType "Database" MySqlParametersProperty = Value Prelude.Text
  set :: PropertyType "Database" MySqlParametersProperty
-> MySqlParametersProperty -> MySqlParametersProperty
set PropertyType "Database" MySqlParametersProperty
newValue MySqlParametersProperty {()
Value Double
Value Text
haddock_workaround_ :: MySqlParametersProperty -> ()
database :: MySqlParametersProperty -> Value Text
host :: MySqlParametersProperty -> Value Text
port :: MySqlParametersProperty -> Value Double
haddock_workaround_ :: ()
database :: Value Text
host :: Value Text
port :: Value Double
..}
    = MySqlParametersProperty {database :: Value Text
database = PropertyType "Database" MySqlParametersProperty
Value Text
newValue, ()
Value Double
Value Text
haddock_workaround_ :: ()
host :: Value Text
port :: Value Double
haddock_workaround_ :: ()
host :: Value Text
port :: Value Double
..}
instance Property "Host" MySqlParametersProperty where
  type PropertyType "Host" MySqlParametersProperty = Value Prelude.Text
  set :: PropertyType "Host" MySqlParametersProperty
-> MySqlParametersProperty -> MySqlParametersProperty
set PropertyType "Host" MySqlParametersProperty
newValue MySqlParametersProperty {()
Value Double
Value Text
haddock_workaround_ :: MySqlParametersProperty -> ()
database :: MySqlParametersProperty -> Value Text
host :: MySqlParametersProperty -> Value Text
port :: MySqlParametersProperty -> Value Double
haddock_workaround_ :: ()
database :: Value Text
host :: Value Text
port :: Value Double
..}
    = MySqlParametersProperty {host :: Value Text
host = PropertyType "Host" MySqlParametersProperty
Value Text
newValue, ()
Value Double
Value Text
haddock_workaround_ :: ()
database :: Value Text
port :: Value Double
haddock_workaround_ :: ()
database :: Value Text
port :: Value Double
..}
instance Property "Port" MySqlParametersProperty where
  type PropertyType "Port" MySqlParametersProperty = Value Prelude.Double
  set :: PropertyType "Port" MySqlParametersProperty
-> MySqlParametersProperty -> MySqlParametersProperty
set PropertyType "Port" MySqlParametersProperty
newValue MySqlParametersProperty {()
Value Double
Value Text
haddock_workaround_ :: MySqlParametersProperty -> ()
database :: MySqlParametersProperty -> Value Text
host :: MySqlParametersProperty -> Value Text
port :: MySqlParametersProperty -> Value Double
haddock_workaround_ :: ()
database :: Value Text
host :: Value Text
port :: Value Double
..}
    = MySqlParametersProperty {port :: Value Double
port = PropertyType "Port" MySqlParametersProperty
Value Double
newValue, ()
Value Text
haddock_workaround_ :: ()
database :: Value Text
host :: Value Text
haddock_workaround_ :: ()
database :: Value Text
host :: Value Text
..}