module Stratosphere.SecurityLake.SubscriberNotification (
        module Exports, SubscriberNotification(..),
        mkSubscriberNotification
    ) where
import qualified Data.Aeson as JSON
import qualified Stratosphere.Prelude as Prelude
import Stratosphere.Property
import {-# SOURCE #-} Stratosphere.SecurityLake.SubscriberNotification.NotificationConfigurationProperty as Exports
import Stratosphere.ResourceProperties
import Stratosphere.Value
data SubscriberNotification
  = -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-securitylake-subscribernotification.html>
    SubscriberNotification {SubscriberNotification -> ()
haddock_workaround_ :: (),
                            -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-securitylake-subscribernotification.html#cfn-securitylake-subscribernotification-notificationconfiguration>
                            SubscriberNotification -> NotificationConfigurationProperty
notificationConfiguration :: NotificationConfigurationProperty,
                            -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-securitylake-subscribernotification.html#cfn-securitylake-subscribernotification-subscriberarn>
                            SubscriberNotification -> Value Text
subscriberArn :: (Value Prelude.Text)}
  deriving stock (SubscriberNotification -> SubscriberNotification -> Bool
(SubscriberNotification -> SubscriberNotification -> Bool)
-> (SubscriberNotification -> SubscriberNotification -> Bool)
-> Eq SubscriberNotification
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
$c== :: SubscriberNotification -> SubscriberNotification -> Bool
== :: SubscriberNotification -> SubscriberNotification -> Bool
$c/= :: SubscriberNotification -> SubscriberNotification -> Bool
/= :: SubscriberNotification -> SubscriberNotification -> Bool
Prelude.Eq, Int -> SubscriberNotification -> ShowS
[SubscriberNotification] -> ShowS
SubscriberNotification -> String
(Int -> SubscriberNotification -> ShowS)
-> (SubscriberNotification -> String)
-> ([SubscriberNotification] -> ShowS)
-> Show SubscriberNotification
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
$cshowsPrec :: Int -> SubscriberNotification -> ShowS
showsPrec :: Int -> SubscriberNotification -> ShowS
$cshow :: SubscriberNotification -> String
show :: SubscriberNotification -> String
$cshowList :: [SubscriberNotification] -> ShowS
showList :: [SubscriberNotification] -> ShowS
Prelude.Show)
mkSubscriberNotification ::
  NotificationConfigurationProperty
  -> Value Prelude.Text -> SubscriberNotification
mkSubscriberNotification :: NotificationConfigurationProperty
-> Value Text -> SubscriberNotification
mkSubscriberNotification NotificationConfigurationProperty
notificationConfiguration Value Text
subscriberArn
  = SubscriberNotification
      {haddock_workaround_ :: ()
haddock_workaround_ = (),
       notificationConfiguration :: NotificationConfigurationProperty
notificationConfiguration = NotificationConfigurationProperty
notificationConfiguration,
       subscriberArn :: Value Text
subscriberArn = Value Text
subscriberArn}
instance ToResourceProperties SubscriberNotification where
  toResourceProperties :: SubscriberNotification -> ResourceProperties
toResourceProperties SubscriberNotification {()
Value Text
NotificationConfigurationProperty
haddock_workaround_ :: SubscriberNotification -> ()
notificationConfiguration :: SubscriberNotification -> NotificationConfigurationProperty
subscriberArn :: SubscriberNotification -> Value Text
haddock_workaround_ :: ()
notificationConfiguration :: NotificationConfigurationProperty
subscriberArn :: Value Text
..}
    = ResourceProperties
        {awsType :: Text
awsType = Text
"AWS::SecurityLake::SubscriberNotification",
         supportsTags :: Bool
supportsTags = Bool
Prelude.False,
         properties :: Object
properties = [Key
"NotificationConfiguration"
                         Key -> NotificationConfigurationProperty -> (Key, Value)
forall v. ToJSON v => Key -> v -> (Key, Value)
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
JSON..= NotificationConfigurationProperty
notificationConfiguration,
                       Key
"SubscriberArn" 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
subscriberArn]}
instance JSON.ToJSON SubscriberNotification where
  toJSON :: SubscriberNotification -> Value
toJSON SubscriberNotification {()
Value Text
NotificationConfigurationProperty
haddock_workaround_ :: SubscriberNotification -> ()
notificationConfiguration :: SubscriberNotification -> NotificationConfigurationProperty
subscriberArn :: SubscriberNotification -> Value Text
haddock_workaround_ :: ()
notificationConfiguration :: NotificationConfigurationProperty
subscriberArn :: Value Text
..}
    = [(Key, Value)] -> Value
JSON.object
        [Key
"NotificationConfiguration" Key -> NotificationConfigurationProperty -> (Key, Value)
forall v. ToJSON v => Key -> v -> (Key, Value)
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
JSON..= NotificationConfigurationProperty
notificationConfiguration,
         Key
"SubscriberArn" 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
subscriberArn]
instance Property "NotificationConfiguration" SubscriberNotification where
  type PropertyType "NotificationConfiguration" SubscriberNotification = NotificationConfigurationProperty
  set :: PropertyType "NotificationConfiguration" SubscriberNotification
-> SubscriberNotification -> SubscriberNotification
set PropertyType "NotificationConfiguration" SubscriberNotification
newValue SubscriberNotification {()
Value Text
NotificationConfigurationProperty
haddock_workaround_ :: SubscriberNotification -> ()
notificationConfiguration :: SubscriberNotification -> NotificationConfigurationProperty
subscriberArn :: SubscriberNotification -> Value Text
haddock_workaround_ :: ()
notificationConfiguration :: NotificationConfigurationProperty
subscriberArn :: Value Text
..}
    = SubscriberNotification {notificationConfiguration :: NotificationConfigurationProperty
notificationConfiguration = PropertyType "NotificationConfiguration" SubscriberNotification
NotificationConfigurationProperty
newValue, ()
Value Text
haddock_workaround_ :: ()
subscriberArn :: Value Text
haddock_workaround_ :: ()
subscriberArn :: Value Text
..}
instance Property "SubscriberArn" SubscriberNotification where
  type PropertyType "SubscriberArn" SubscriberNotification = Value Prelude.Text
  set :: PropertyType "SubscriberArn" SubscriberNotification
-> SubscriberNotification -> SubscriberNotification
set PropertyType "SubscriberArn" SubscriberNotification
newValue SubscriberNotification {()
Value Text
NotificationConfigurationProperty
haddock_workaround_ :: SubscriberNotification -> ()
notificationConfiguration :: SubscriberNotification -> NotificationConfigurationProperty
subscriberArn :: SubscriberNotification -> Value Text
haddock_workaround_ :: ()
notificationConfiguration :: NotificationConfigurationProperty
subscriberArn :: Value Text
..}
    = SubscriberNotification {subscriberArn :: Value Text
subscriberArn = PropertyType "SubscriberArn" SubscriberNotification
Value Text
newValue, ()
NotificationConfigurationProperty
haddock_workaround_ :: ()
notificationConfiguration :: NotificationConfigurationProperty
haddock_workaround_ :: ()
notificationConfiguration :: NotificationConfigurationProperty
..}