module Stratosphere.Timestream.ScheduledQuery.SnsConfigurationProperty (
        SnsConfigurationProperty(..), mkSnsConfigurationProperty
    ) where
import qualified Data.Aeson as JSON
import qualified Stratosphere.Prelude as Prelude
import Stratosphere.Property
import Stratosphere.ResourceProperties
import Stratosphere.Value
data SnsConfigurationProperty
  = -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-timestream-scheduledquery-snsconfiguration.html>
    SnsConfigurationProperty {SnsConfigurationProperty -> ()
haddock_workaround_ :: (),
                              -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-timestream-scheduledquery-snsconfiguration.html#cfn-timestream-scheduledquery-snsconfiguration-topicarn>
                              SnsConfigurationProperty -> Value Text
topicArn :: (Value Prelude.Text)}
  deriving stock (SnsConfigurationProperty -> SnsConfigurationProperty -> Bool
(SnsConfigurationProperty -> SnsConfigurationProperty -> Bool)
-> (SnsConfigurationProperty -> SnsConfigurationProperty -> Bool)
-> Eq SnsConfigurationProperty
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
$c== :: SnsConfigurationProperty -> SnsConfigurationProperty -> Bool
== :: SnsConfigurationProperty -> SnsConfigurationProperty -> Bool
$c/= :: SnsConfigurationProperty -> SnsConfigurationProperty -> Bool
/= :: SnsConfigurationProperty -> SnsConfigurationProperty -> Bool
Prelude.Eq, Int -> SnsConfigurationProperty -> ShowS
[SnsConfigurationProperty] -> ShowS
SnsConfigurationProperty -> String
(Int -> SnsConfigurationProperty -> ShowS)
-> (SnsConfigurationProperty -> String)
-> ([SnsConfigurationProperty] -> ShowS)
-> Show SnsConfigurationProperty
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
$cshowsPrec :: Int -> SnsConfigurationProperty -> ShowS
showsPrec :: Int -> SnsConfigurationProperty -> ShowS
$cshow :: SnsConfigurationProperty -> String
show :: SnsConfigurationProperty -> String
$cshowList :: [SnsConfigurationProperty] -> ShowS
showList :: [SnsConfigurationProperty] -> ShowS
Prelude.Show)
mkSnsConfigurationProperty ::
  Value Prelude.Text -> SnsConfigurationProperty
mkSnsConfigurationProperty :: Value Text -> SnsConfigurationProperty
mkSnsConfigurationProperty Value Text
topicArn
  = SnsConfigurationProperty
      {haddock_workaround_ :: ()
haddock_workaround_ = (), topicArn :: Value Text
topicArn = Value Text
topicArn}
instance ToResourceProperties SnsConfigurationProperty where
  toResourceProperties :: SnsConfigurationProperty -> ResourceProperties
toResourceProperties SnsConfigurationProperty {()
Value Text
haddock_workaround_ :: SnsConfigurationProperty -> ()
topicArn :: SnsConfigurationProperty -> Value Text
haddock_workaround_ :: ()
topicArn :: Value Text
..}
    = ResourceProperties
        {awsType :: Text
awsType = Text
"AWS::Timestream::ScheduledQuery.SnsConfiguration",
         supportsTags :: Bool
supportsTags = Bool
Prelude.False,
         properties :: Object
properties = [Key
"TopicArn" 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
topicArn]}
instance JSON.ToJSON SnsConfigurationProperty where
  toJSON :: SnsConfigurationProperty -> Value
toJSON SnsConfigurationProperty {()
Value Text
haddock_workaround_ :: SnsConfigurationProperty -> ()
topicArn :: SnsConfigurationProperty -> Value Text
haddock_workaround_ :: ()
topicArn :: Value Text
..}
    = [(Key, Value)] -> Value
JSON.object [Key
"TopicArn" 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
topicArn]
instance Property "TopicArn" SnsConfigurationProperty where
  type PropertyType "TopicArn" SnsConfigurationProperty = Value Prelude.Text
  set :: PropertyType "TopicArn" SnsConfigurationProperty
-> SnsConfigurationProperty -> SnsConfigurationProperty
set PropertyType "TopicArn" SnsConfigurationProperty
newValue SnsConfigurationProperty {()
Value Text
haddock_workaround_ :: SnsConfigurationProperty -> ()
topicArn :: SnsConfigurationProperty -> Value Text
haddock_workaround_ :: ()
topicArn :: Value Text
..}
    = SnsConfigurationProperty {topicArn :: Value Text
topicArn = PropertyType "TopicArn" SnsConfigurationProperty
Value Text
newValue, ()
haddock_workaround_ :: ()
haddock_workaround_ :: ()
..}