module Stratosphere.AppTest.TestCase.DatabaseCDCProperty (
        module Exports, DatabaseCDCProperty(..), mkDatabaseCDCProperty
    ) where
import qualified Data.Aeson as JSON
import qualified Stratosphere.Prelude as Prelude
import Stratosphere.Property
import {-# SOURCE #-} Stratosphere.AppTest.TestCase.SourceDatabaseMetadataProperty as Exports
import {-# SOURCE #-} Stratosphere.AppTest.TestCase.TargetDatabaseMetadataProperty as Exports
import Stratosphere.ResourceProperties
data DatabaseCDCProperty
  = -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-apptest-testcase-databasecdc.html>
    DatabaseCDCProperty {DatabaseCDCProperty -> ()
haddock_workaround_ :: (),
                         -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-apptest-testcase-databasecdc.html#cfn-apptest-testcase-databasecdc-sourcemetadata>
                         DatabaseCDCProperty -> SourceDatabaseMetadataProperty
sourceMetadata :: SourceDatabaseMetadataProperty,
                         -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-apptest-testcase-databasecdc.html#cfn-apptest-testcase-databasecdc-targetmetadata>
                         DatabaseCDCProperty -> TargetDatabaseMetadataProperty
targetMetadata :: TargetDatabaseMetadataProperty}
  deriving stock (DatabaseCDCProperty -> DatabaseCDCProperty -> Bool
(DatabaseCDCProperty -> DatabaseCDCProperty -> Bool)
-> (DatabaseCDCProperty -> DatabaseCDCProperty -> Bool)
-> Eq DatabaseCDCProperty
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
$c== :: DatabaseCDCProperty -> DatabaseCDCProperty -> Bool
== :: DatabaseCDCProperty -> DatabaseCDCProperty -> Bool
$c/= :: DatabaseCDCProperty -> DatabaseCDCProperty -> Bool
/= :: DatabaseCDCProperty -> DatabaseCDCProperty -> Bool
Prelude.Eq, Int -> DatabaseCDCProperty -> ShowS
[DatabaseCDCProperty] -> ShowS
DatabaseCDCProperty -> String
(Int -> DatabaseCDCProperty -> ShowS)
-> (DatabaseCDCProperty -> String)
-> ([DatabaseCDCProperty] -> ShowS)
-> Show DatabaseCDCProperty
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
$cshowsPrec :: Int -> DatabaseCDCProperty -> ShowS
showsPrec :: Int -> DatabaseCDCProperty -> ShowS
$cshow :: DatabaseCDCProperty -> String
show :: DatabaseCDCProperty -> String
$cshowList :: [DatabaseCDCProperty] -> ShowS
showList :: [DatabaseCDCProperty] -> ShowS
Prelude.Show)
mkDatabaseCDCProperty ::
  SourceDatabaseMetadataProperty
  -> TargetDatabaseMetadataProperty -> DatabaseCDCProperty
mkDatabaseCDCProperty :: SourceDatabaseMetadataProperty
-> TargetDatabaseMetadataProperty -> DatabaseCDCProperty
mkDatabaseCDCProperty SourceDatabaseMetadataProperty
sourceMetadata TargetDatabaseMetadataProperty
targetMetadata
  = DatabaseCDCProperty
      {haddock_workaround_ :: ()
haddock_workaround_ = (), sourceMetadata :: SourceDatabaseMetadataProperty
sourceMetadata = SourceDatabaseMetadataProperty
sourceMetadata,
       targetMetadata :: TargetDatabaseMetadataProperty
targetMetadata = TargetDatabaseMetadataProperty
targetMetadata}
instance ToResourceProperties DatabaseCDCProperty where
  toResourceProperties :: DatabaseCDCProperty -> ResourceProperties
toResourceProperties DatabaseCDCProperty {()
SourceDatabaseMetadataProperty
TargetDatabaseMetadataProperty
haddock_workaround_ :: DatabaseCDCProperty -> ()
sourceMetadata :: DatabaseCDCProperty -> SourceDatabaseMetadataProperty
targetMetadata :: DatabaseCDCProperty -> TargetDatabaseMetadataProperty
haddock_workaround_ :: ()
sourceMetadata :: SourceDatabaseMetadataProperty
targetMetadata :: TargetDatabaseMetadataProperty
..}
    = ResourceProperties
        {awsType :: Text
awsType = Text
"AWS::AppTest::TestCase.DatabaseCDC",
         supportsTags :: Bool
supportsTags = Bool
Prelude.False,
         properties :: Object
properties = [Key
"SourceMetadata" Key -> SourceDatabaseMetadataProperty -> (Key, Value)
forall v. ToJSON v => Key -> v -> (Key, Value)
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
JSON..= SourceDatabaseMetadataProperty
sourceMetadata,
                       Key
"TargetMetadata" Key -> TargetDatabaseMetadataProperty -> (Key, Value)
forall v. ToJSON v => Key -> v -> (Key, Value)
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
JSON..= TargetDatabaseMetadataProperty
targetMetadata]}
instance JSON.ToJSON DatabaseCDCProperty where
  toJSON :: DatabaseCDCProperty -> Value
toJSON DatabaseCDCProperty {()
SourceDatabaseMetadataProperty
TargetDatabaseMetadataProperty
haddock_workaround_ :: DatabaseCDCProperty -> ()
sourceMetadata :: DatabaseCDCProperty -> SourceDatabaseMetadataProperty
targetMetadata :: DatabaseCDCProperty -> TargetDatabaseMetadataProperty
haddock_workaround_ :: ()
sourceMetadata :: SourceDatabaseMetadataProperty
targetMetadata :: TargetDatabaseMetadataProperty
..}
    = [(Key, Value)] -> Value
JSON.object
        [Key
"SourceMetadata" Key -> SourceDatabaseMetadataProperty -> (Key, Value)
forall v. ToJSON v => Key -> v -> (Key, Value)
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
JSON..= SourceDatabaseMetadataProperty
sourceMetadata,
         Key
"TargetMetadata" Key -> TargetDatabaseMetadataProperty -> (Key, Value)
forall v. ToJSON v => Key -> v -> (Key, Value)
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
JSON..= TargetDatabaseMetadataProperty
targetMetadata]
instance Property "SourceMetadata" DatabaseCDCProperty where
  type PropertyType "SourceMetadata" DatabaseCDCProperty = SourceDatabaseMetadataProperty
  set :: PropertyType "SourceMetadata" DatabaseCDCProperty
-> DatabaseCDCProperty -> DatabaseCDCProperty
set PropertyType "SourceMetadata" DatabaseCDCProperty
newValue DatabaseCDCProperty {()
SourceDatabaseMetadataProperty
TargetDatabaseMetadataProperty
haddock_workaround_ :: DatabaseCDCProperty -> ()
sourceMetadata :: DatabaseCDCProperty -> SourceDatabaseMetadataProperty
targetMetadata :: DatabaseCDCProperty -> TargetDatabaseMetadataProperty
haddock_workaround_ :: ()
sourceMetadata :: SourceDatabaseMetadataProperty
targetMetadata :: TargetDatabaseMetadataProperty
..}
    = DatabaseCDCProperty {sourceMetadata :: SourceDatabaseMetadataProperty
sourceMetadata = PropertyType "SourceMetadata" DatabaseCDCProperty
SourceDatabaseMetadataProperty
newValue, ()
TargetDatabaseMetadataProperty
haddock_workaround_ :: ()
targetMetadata :: TargetDatabaseMetadataProperty
haddock_workaround_ :: ()
targetMetadata :: TargetDatabaseMetadataProperty
..}
instance Property "TargetMetadata" DatabaseCDCProperty where
  type PropertyType "TargetMetadata" DatabaseCDCProperty = TargetDatabaseMetadataProperty
  set :: PropertyType "TargetMetadata" DatabaseCDCProperty
-> DatabaseCDCProperty -> DatabaseCDCProperty
set PropertyType "TargetMetadata" DatabaseCDCProperty
newValue DatabaseCDCProperty {()
SourceDatabaseMetadataProperty
TargetDatabaseMetadataProperty
haddock_workaround_ :: DatabaseCDCProperty -> ()
sourceMetadata :: DatabaseCDCProperty -> SourceDatabaseMetadataProperty
targetMetadata :: DatabaseCDCProperty -> TargetDatabaseMetadataProperty
haddock_workaround_ :: ()
sourceMetadata :: SourceDatabaseMetadataProperty
targetMetadata :: TargetDatabaseMetadataProperty
..}
    = DatabaseCDCProperty {targetMetadata :: TargetDatabaseMetadataProperty
targetMetadata = PropertyType "TargetMetadata" DatabaseCDCProperty
TargetDatabaseMetadataProperty
newValue, ()
SourceDatabaseMetadataProperty
haddock_workaround_ :: ()
sourceMetadata :: SourceDatabaseMetadataProperty
haddock_workaround_ :: ()
sourceMetadata :: SourceDatabaseMetadataProperty
..}