module Stratosphere.Greengrass.SubscriptionDefinitionVersion.SubscriptionProperty (
        SubscriptionProperty(..), mkSubscriptionProperty
    ) where
import qualified Data.Aeson as JSON
import qualified Stratosphere.Prelude as Prelude
import Stratosphere.Property
import Stratosphere.ResourceProperties
import Stratosphere.Value
data SubscriptionProperty
  = -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-greengrass-subscriptiondefinitionversion-subscription.html>
    SubscriptionProperty {SubscriptionProperty -> ()
haddock_workaround_ :: (),
                          -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-greengrass-subscriptiondefinitionversion-subscription.html#cfn-greengrass-subscriptiondefinitionversion-subscription-id>
                          SubscriptionProperty -> Value Text
id :: (Value Prelude.Text),
                          -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-greengrass-subscriptiondefinitionversion-subscription.html#cfn-greengrass-subscriptiondefinitionversion-subscription-source>
                          SubscriptionProperty -> Value Text
source :: (Value Prelude.Text),
                          -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-greengrass-subscriptiondefinitionversion-subscription.html#cfn-greengrass-subscriptiondefinitionversion-subscription-subject>
                          SubscriptionProperty -> Value Text
subject :: (Value Prelude.Text),
                          -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-greengrass-subscriptiondefinitionversion-subscription.html#cfn-greengrass-subscriptiondefinitionversion-subscription-target>
                          SubscriptionProperty -> Value Text
target :: (Value Prelude.Text)}
  deriving stock (SubscriptionProperty -> SubscriptionProperty -> Bool
(SubscriptionProperty -> SubscriptionProperty -> Bool)
-> (SubscriptionProperty -> SubscriptionProperty -> Bool)
-> Eq SubscriptionProperty
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
$c== :: SubscriptionProperty -> SubscriptionProperty -> Bool
== :: SubscriptionProperty -> SubscriptionProperty -> Bool
$c/= :: SubscriptionProperty -> SubscriptionProperty -> Bool
/= :: SubscriptionProperty -> SubscriptionProperty -> Bool
Prelude.Eq, Int -> SubscriptionProperty -> ShowS
[SubscriptionProperty] -> ShowS
SubscriptionProperty -> String
(Int -> SubscriptionProperty -> ShowS)
-> (SubscriptionProperty -> String)
-> ([SubscriptionProperty] -> ShowS)
-> Show SubscriptionProperty
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
$cshowsPrec :: Int -> SubscriptionProperty -> ShowS
showsPrec :: Int -> SubscriptionProperty -> ShowS
$cshow :: SubscriptionProperty -> String
show :: SubscriptionProperty -> String
$cshowList :: [SubscriptionProperty] -> ShowS
showList :: [SubscriptionProperty] -> ShowS
Prelude.Show)
mkSubscriptionProperty ::
  Value Prelude.Text
  -> Value Prelude.Text
     -> Value Prelude.Text -> Value Prelude.Text -> SubscriptionProperty
mkSubscriptionProperty :: Value Text
-> Value Text -> Value Text -> Value Text -> SubscriptionProperty
mkSubscriptionProperty Value Text
id Value Text
source Value Text
subject Value Text
target
  = SubscriptionProperty
      {haddock_workaround_ :: ()
haddock_workaround_ = (), id :: Value Text
id = Value Text
id, source :: Value Text
source = Value Text
source,
       subject :: Value Text
subject = Value Text
subject, target :: Value Text
target = Value Text
target}
instance ToResourceProperties SubscriptionProperty where
  toResourceProperties :: SubscriptionProperty -> ResourceProperties
toResourceProperties SubscriptionProperty {()
Value Text
haddock_workaround_ :: SubscriptionProperty -> ()
id :: SubscriptionProperty -> Value Text
source :: SubscriptionProperty -> Value Text
subject :: SubscriptionProperty -> Value Text
target :: SubscriptionProperty -> Value Text
haddock_workaround_ :: ()
id :: Value Text
source :: Value Text
subject :: Value Text
target :: Value Text
..}
    = ResourceProperties
        {awsType :: Text
awsType = Text
"AWS::Greengrass::SubscriptionDefinitionVersion.Subscription",
         supportsTags :: Bool
supportsTags = Bool
Prelude.False,
         properties :: Object
properties = [Key
"Id" 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
id, Key
"Source" 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
source,
                       Key
"Subject" 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
subject, Key
"Target" 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
target]}
instance JSON.ToJSON SubscriptionProperty where
  toJSON :: SubscriptionProperty -> Value
toJSON SubscriptionProperty {()
Value Text
haddock_workaround_ :: SubscriptionProperty -> ()
id :: SubscriptionProperty -> Value Text
source :: SubscriptionProperty -> Value Text
subject :: SubscriptionProperty -> Value Text
target :: SubscriptionProperty -> Value Text
haddock_workaround_ :: ()
id :: Value Text
source :: Value Text
subject :: Value Text
target :: Value Text
..}
    = [(Key, Value)] -> Value
JSON.object
        [Key
"Id" 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
id, Key
"Source" 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
source,
         Key
"Subject" 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
subject, Key
"Target" 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
target]
instance Property "Id" SubscriptionProperty where
  type PropertyType "Id" SubscriptionProperty = Value Prelude.Text
  set :: PropertyType "Id" SubscriptionProperty
-> SubscriptionProperty -> SubscriptionProperty
set PropertyType "Id" SubscriptionProperty
newValue SubscriptionProperty {()
Value Text
haddock_workaround_ :: SubscriptionProperty -> ()
id :: SubscriptionProperty -> Value Text
source :: SubscriptionProperty -> Value Text
subject :: SubscriptionProperty -> Value Text
target :: SubscriptionProperty -> Value Text
haddock_workaround_ :: ()
id :: Value Text
source :: Value Text
subject :: Value Text
target :: Value Text
..}
    = SubscriptionProperty {id :: Value Text
id = PropertyType "Id" SubscriptionProperty
Value Text
newValue, ()
Value Text
haddock_workaround_ :: ()
source :: Value Text
subject :: Value Text
target :: Value Text
haddock_workaround_ :: ()
source :: Value Text
subject :: Value Text
target :: Value Text
..}
instance Property "Source" SubscriptionProperty where
  type PropertyType "Source" SubscriptionProperty = Value Prelude.Text
  set :: PropertyType "Source" SubscriptionProperty
-> SubscriptionProperty -> SubscriptionProperty
set PropertyType "Source" SubscriptionProperty
newValue SubscriptionProperty {()
Value Text
haddock_workaround_ :: SubscriptionProperty -> ()
id :: SubscriptionProperty -> Value Text
source :: SubscriptionProperty -> Value Text
subject :: SubscriptionProperty -> Value Text
target :: SubscriptionProperty -> Value Text
haddock_workaround_ :: ()
id :: Value Text
source :: Value Text
subject :: Value Text
target :: Value Text
..}
    = SubscriptionProperty {source :: Value Text
source = PropertyType "Source" SubscriptionProperty
Value Text
newValue, ()
Value Text
haddock_workaround_ :: ()
id :: Value Text
subject :: Value Text
target :: Value Text
haddock_workaround_ :: ()
id :: Value Text
subject :: Value Text
target :: Value Text
..}
instance Property "Subject" SubscriptionProperty where
  type PropertyType "Subject" SubscriptionProperty = Value Prelude.Text
  set :: PropertyType "Subject" SubscriptionProperty
-> SubscriptionProperty -> SubscriptionProperty
set PropertyType "Subject" SubscriptionProperty
newValue SubscriptionProperty {()
Value Text
haddock_workaround_ :: SubscriptionProperty -> ()
id :: SubscriptionProperty -> Value Text
source :: SubscriptionProperty -> Value Text
subject :: SubscriptionProperty -> Value Text
target :: SubscriptionProperty -> Value Text
haddock_workaround_ :: ()
id :: Value Text
source :: Value Text
subject :: Value Text
target :: Value Text
..}
    = SubscriptionProperty {subject :: Value Text
subject = PropertyType "Subject" SubscriptionProperty
Value Text
newValue, ()
Value Text
haddock_workaround_ :: ()
id :: Value Text
source :: Value Text
target :: Value Text
haddock_workaround_ :: ()
id :: Value Text
source :: Value Text
target :: Value Text
..}
instance Property "Target" SubscriptionProperty where
  type PropertyType "Target" SubscriptionProperty = Value Prelude.Text
  set :: PropertyType "Target" SubscriptionProperty
-> SubscriptionProperty -> SubscriptionProperty
set PropertyType "Target" SubscriptionProperty
newValue SubscriptionProperty {()
Value Text
haddock_workaround_ :: SubscriptionProperty -> ()
id :: SubscriptionProperty -> Value Text
source :: SubscriptionProperty -> Value Text
subject :: SubscriptionProperty -> Value Text
target :: SubscriptionProperty -> Value Text
haddock_workaround_ :: ()
id :: Value Text
source :: Value Text
subject :: Value Text
target :: Value Text
..}
    = SubscriptionProperty {target :: Value Text
target = PropertyType "Target" SubscriptionProperty
Value Text
newValue, ()
Value Text
haddock_workaround_ :: ()
id :: Value Text
source :: Value Text
subject :: Value Text
haddock_workaround_ :: ()
id :: Value Text
source :: Value Text
subject :: Value Text
..}