module Stratosphere.Shield.ProactiveEngagement (
        module Exports, ProactiveEngagement(..), mkProactiveEngagement
    ) where
import qualified Data.Aeson as JSON
import qualified Stratosphere.Prelude as Prelude
import Stratosphere.Property
import {-# SOURCE #-} Stratosphere.Shield.ProactiveEngagement.EmergencyContactProperty as Exports
import Stratosphere.ResourceProperties
import Stratosphere.Value
data ProactiveEngagement
  = -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-shield-proactiveengagement.html>
    ProactiveEngagement {ProactiveEngagement -> ()
haddock_workaround_ :: (),
                         -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-shield-proactiveengagement.html#cfn-shield-proactiveengagement-emergencycontactlist>
                         ProactiveEngagement -> [EmergencyContactProperty]
emergencyContactList :: [EmergencyContactProperty],
                         -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-shield-proactiveengagement.html#cfn-shield-proactiveengagement-proactiveengagementstatus>
                         ProactiveEngagement -> Value Text
proactiveEngagementStatus :: (Value Prelude.Text)}
  deriving stock (ProactiveEngagement -> ProactiveEngagement -> Bool
(ProactiveEngagement -> ProactiveEngagement -> Bool)
-> (ProactiveEngagement -> ProactiveEngagement -> Bool)
-> Eq ProactiveEngagement
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
$c== :: ProactiveEngagement -> ProactiveEngagement -> Bool
== :: ProactiveEngagement -> ProactiveEngagement -> Bool
$c/= :: ProactiveEngagement -> ProactiveEngagement -> Bool
/= :: ProactiveEngagement -> ProactiveEngagement -> Bool
Prelude.Eq, Int -> ProactiveEngagement -> ShowS
[ProactiveEngagement] -> ShowS
ProactiveEngagement -> String
(Int -> ProactiveEngagement -> ShowS)
-> (ProactiveEngagement -> String)
-> ([ProactiveEngagement] -> ShowS)
-> Show ProactiveEngagement
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
$cshowsPrec :: Int -> ProactiveEngagement -> ShowS
showsPrec :: Int -> ProactiveEngagement -> ShowS
$cshow :: ProactiveEngagement -> String
show :: ProactiveEngagement -> String
$cshowList :: [ProactiveEngagement] -> ShowS
showList :: [ProactiveEngagement] -> ShowS
Prelude.Show)
mkProactiveEngagement ::
  [EmergencyContactProperty]
  -> Value Prelude.Text -> ProactiveEngagement
mkProactiveEngagement :: [EmergencyContactProperty] -> Value Text -> ProactiveEngagement
mkProactiveEngagement
  [EmergencyContactProperty]
emergencyContactList
  Value Text
proactiveEngagementStatus
  = ProactiveEngagement
      {haddock_workaround_ :: ()
haddock_workaround_ = (),
       emergencyContactList :: [EmergencyContactProperty]
emergencyContactList = [EmergencyContactProperty]
emergencyContactList,
       proactiveEngagementStatus :: Value Text
proactiveEngagementStatus = Value Text
proactiveEngagementStatus}
instance ToResourceProperties ProactiveEngagement where
  toResourceProperties :: ProactiveEngagement -> ResourceProperties
toResourceProperties ProactiveEngagement {[EmergencyContactProperty]
()
Value Text
haddock_workaround_ :: ProactiveEngagement -> ()
emergencyContactList :: ProactiveEngagement -> [EmergencyContactProperty]
proactiveEngagementStatus :: ProactiveEngagement -> Value Text
haddock_workaround_ :: ()
emergencyContactList :: [EmergencyContactProperty]
proactiveEngagementStatus :: Value Text
..}
    = ResourceProperties
        {awsType :: Text
awsType = Text
"AWS::Shield::ProactiveEngagement",
         supportsTags :: Bool
supportsTags = Bool
Prelude.False,
         properties :: Object
properties = [Key
"EmergencyContactList" Key -> [EmergencyContactProperty] -> (Key, Value)
forall v. ToJSON v => Key -> v -> (Key, Value)
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
JSON..= [EmergencyContactProperty]
emergencyContactList,
                       Key
"ProactiveEngagementStatus" 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
proactiveEngagementStatus]}
instance JSON.ToJSON ProactiveEngagement where
  toJSON :: ProactiveEngagement -> Value
toJSON ProactiveEngagement {[EmergencyContactProperty]
()
Value Text
haddock_workaround_ :: ProactiveEngagement -> ()
emergencyContactList :: ProactiveEngagement -> [EmergencyContactProperty]
proactiveEngagementStatus :: ProactiveEngagement -> Value Text
haddock_workaround_ :: ()
emergencyContactList :: [EmergencyContactProperty]
proactiveEngagementStatus :: Value Text
..}
    = [(Key, Value)] -> Value
JSON.object
        [Key
"EmergencyContactList" Key -> [EmergencyContactProperty] -> (Key, Value)
forall v. ToJSON v => Key -> v -> (Key, Value)
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
JSON..= [EmergencyContactProperty]
emergencyContactList,
         Key
"ProactiveEngagementStatus" 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
proactiveEngagementStatus]
instance Property "EmergencyContactList" ProactiveEngagement where
  type PropertyType "EmergencyContactList" ProactiveEngagement = [EmergencyContactProperty]
  set :: PropertyType "EmergencyContactList" ProactiveEngagement
-> ProactiveEngagement -> ProactiveEngagement
set PropertyType "EmergencyContactList" ProactiveEngagement
newValue ProactiveEngagement {[EmergencyContactProperty]
()
Value Text
haddock_workaround_ :: ProactiveEngagement -> ()
emergencyContactList :: ProactiveEngagement -> [EmergencyContactProperty]
proactiveEngagementStatus :: ProactiveEngagement -> Value Text
haddock_workaround_ :: ()
emergencyContactList :: [EmergencyContactProperty]
proactiveEngagementStatus :: Value Text
..}
    = ProactiveEngagement {emergencyContactList :: [EmergencyContactProperty]
emergencyContactList = [EmergencyContactProperty]
PropertyType "EmergencyContactList" ProactiveEngagement
newValue, ()
Value Text
haddock_workaround_ :: ()
proactiveEngagementStatus :: Value Text
haddock_workaround_ :: ()
proactiveEngagementStatus :: Value Text
..}
instance Property "ProactiveEngagementStatus" ProactiveEngagement where
  type PropertyType "ProactiveEngagementStatus" ProactiveEngagement = Value Prelude.Text
  set :: PropertyType "ProactiveEngagementStatus" ProactiveEngagement
-> ProactiveEngagement -> ProactiveEngagement
set PropertyType "ProactiveEngagementStatus" ProactiveEngagement
newValue ProactiveEngagement {[EmergencyContactProperty]
()
Value Text
haddock_workaround_ :: ProactiveEngagement -> ()
emergencyContactList :: ProactiveEngagement -> [EmergencyContactProperty]
proactiveEngagementStatus :: ProactiveEngagement -> Value Text
haddock_workaround_ :: ()
emergencyContactList :: [EmergencyContactProperty]
proactiveEngagementStatus :: Value Text
..}
    = ProactiveEngagement {proactiveEngagementStatus :: Value Text
proactiveEngagementStatus = PropertyType "ProactiveEngagementStatus" ProactiveEngagement
Value Text
newValue, [EmergencyContactProperty]
()
haddock_workaround_ :: ()
emergencyContactList :: [EmergencyContactProperty]
haddock_workaround_ :: ()
emergencyContactList :: [EmergencyContactProperty]
..}