module Stratosphere.IoT.SecurityProfile.AlertTargetProperty (
        AlertTargetProperty(..), mkAlertTargetProperty
    ) where
import qualified Data.Aeson as JSON
import qualified Stratosphere.Prelude as Prelude
import Stratosphere.Property
import Stratosphere.ResourceProperties
import Stratosphere.Value
data AlertTargetProperty
  = -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iot-securityprofile-alerttarget.html>
    AlertTargetProperty {AlertTargetProperty -> ()
haddock_workaround_ :: (),
                         -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iot-securityprofile-alerttarget.html#cfn-iot-securityprofile-alerttarget-alerttargetarn>
                         AlertTargetProperty -> Value Text
alertTargetArn :: (Value Prelude.Text),
                         -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iot-securityprofile-alerttarget.html#cfn-iot-securityprofile-alerttarget-rolearn>
                         AlertTargetProperty -> Value Text
roleArn :: (Value Prelude.Text)}
  deriving stock (AlertTargetProperty -> AlertTargetProperty -> Bool
(AlertTargetProperty -> AlertTargetProperty -> Bool)
-> (AlertTargetProperty -> AlertTargetProperty -> Bool)
-> Eq AlertTargetProperty
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
$c== :: AlertTargetProperty -> AlertTargetProperty -> Bool
== :: AlertTargetProperty -> AlertTargetProperty -> Bool
$c/= :: AlertTargetProperty -> AlertTargetProperty -> Bool
/= :: AlertTargetProperty -> AlertTargetProperty -> Bool
Prelude.Eq, Int -> AlertTargetProperty -> ShowS
[AlertTargetProperty] -> ShowS
AlertTargetProperty -> String
(Int -> AlertTargetProperty -> ShowS)
-> (AlertTargetProperty -> String)
-> ([AlertTargetProperty] -> ShowS)
-> Show AlertTargetProperty
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
$cshowsPrec :: Int -> AlertTargetProperty -> ShowS
showsPrec :: Int -> AlertTargetProperty -> ShowS
$cshow :: AlertTargetProperty -> String
show :: AlertTargetProperty -> String
$cshowList :: [AlertTargetProperty] -> ShowS
showList :: [AlertTargetProperty] -> ShowS
Prelude.Show)
mkAlertTargetProperty ::
  Value Prelude.Text -> Value Prelude.Text -> AlertTargetProperty
mkAlertTargetProperty :: Value Text -> Value Text -> AlertTargetProperty
mkAlertTargetProperty Value Text
alertTargetArn Value Text
roleArn
  = AlertTargetProperty
      {haddock_workaround_ :: ()
haddock_workaround_ = (), alertTargetArn :: Value Text
alertTargetArn = Value Text
alertTargetArn,
       roleArn :: Value Text
roleArn = Value Text
roleArn}
instance ToResourceProperties AlertTargetProperty where
  toResourceProperties :: AlertTargetProperty -> ResourceProperties
toResourceProperties AlertTargetProperty {()
Value Text
haddock_workaround_ :: AlertTargetProperty -> ()
alertTargetArn :: AlertTargetProperty -> Value Text
roleArn :: AlertTargetProperty -> Value Text
haddock_workaround_ :: ()
alertTargetArn :: Value Text
roleArn :: Value Text
..}
    = ResourceProperties
        {awsType :: Text
awsType = Text
"AWS::IoT::SecurityProfile.AlertTarget",
         supportsTags :: Bool
supportsTags = Bool
Prelude.False,
         properties :: Object
properties = [Key
"AlertTargetArn" 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
alertTargetArn,
                       Key
"RoleArn" 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
roleArn]}
instance JSON.ToJSON AlertTargetProperty where
  toJSON :: AlertTargetProperty -> Value
toJSON AlertTargetProperty {()
Value Text
haddock_workaround_ :: AlertTargetProperty -> ()
alertTargetArn :: AlertTargetProperty -> Value Text
roleArn :: AlertTargetProperty -> Value Text
haddock_workaround_ :: ()
alertTargetArn :: Value Text
roleArn :: Value Text
..}
    = [(Key, Value)] -> Value
JSON.object
        [Key
"AlertTargetArn" 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
alertTargetArn,
         Key
"RoleArn" 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
roleArn]
instance Property "AlertTargetArn" AlertTargetProperty where
  type PropertyType "AlertTargetArn" AlertTargetProperty = Value Prelude.Text
  set :: PropertyType "AlertTargetArn" AlertTargetProperty
-> AlertTargetProperty -> AlertTargetProperty
set PropertyType "AlertTargetArn" AlertTargetProperty
newValue AlertTargetProperty {()
Value Text
haddock_workaround_ :: AlertTargetProperty -> ()
alertTargetArn :: AlertTargetProperty -> Value Text
roleArn :: AlertTargetProperty -> Value Text
haddock_workaround_ :: ()
alertTargetArn :: Value Text
roleArn :: Value Text
..}
    = AlertTargetProperty {alertTargetArn :: Value Text
alertTargetArn = PropertyType "AlertTargetArn" AlertTargetProperty
Value Text
newValue, ()
Value Text
haddock_workaround_ :: ()
roleArn :: Value Text
haddock_workaround_ :: ()
roleArn :: Value Text
..}
instance Property "RoleArn" AlertTargetProperty where
  type PropertyType "RoleArn" AlertTargetProperty = Value Prelude.Text
  set :: PropertyType "RoleArn" AlertTargetProperty
-> AlertTargetProperty -> AlertTargetProperty
set PropertyType "RoleArn" AlertTargetProperty
newValue AlertTargetProperty {()
Value Text
haddock_workaround_ :: AlertTargetProperty -> ()
alertTargetArn :: AlertTargetProperty -> Value Text
roleArn :: AlertTargetProperty -> Value Text
haddock_workaround_ :: ()
alertTargetArn :: Value Text
roleArn :: Value Text
..}
    = AlertTargetProperty {roleArn :: Value Text
roleArn = PropertyType "RoleArn" AlertTargetProperty
Value Text
newValue, ()
Value Text
haddock_workaround_ :: ()
alertTargetArn :: Value Text
haddock_workaround_ :: ()
alertTargetArn :: Value Text
..}