module Stratosphere.WAFv2.WebACL.ClientSideActionConfigProperty (
        module Exports, ClientSideActionConfigProperty(..),
        mkClientSideActionConfigProperty
    ) where
import qualified Data.Aeson as JSON
import qualified Stratosphere.Prelude as Prelude
import Stratosphere.Property
import {-# SOURCE #-} Stratosphere.WAFv2.WebACL.ClientSideActionProperty as Exports
import Stratosphere.ResourceProperties
data ClientSideActionConfigProperty
  = -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-wafv2-webacl-clientsideactionconfig.html>
    ClientSideActionConfigProperty {ClientSideActionConfigProperty -> ()
haddock_workaround_ :: (),
                                    -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-wafv2-webacl-clientsideactionconfig.html#cfn-wafv2-webacl-clientsideactionconfig-challenge>
                                    ClientSideActionConfigProperty -> ClientSideActionProperty
challenge :: ClientSideActionProperty}
  deriving stock (ClientSideActionConfigProperty
-> ClientSideActionConfigProperty -> Bool
(ClientSideActionConfigProperty
 -> ClientSideActionConfigProperty -> Bool)
-> (ClientSideActionConfigProperty
    -> ClientSideActionConfigProperty -> Bool)
-> Eq ClientSideActionConfigProperty
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
$c== :: ClientSideActionConfigProperty
-> ClientSideActionConfigProperty -> Bool
== :: ClientSideActionConfigProperty
-> ClientSideActionConfigProperty -> Bool
$c/= :: ClientSideActionConfigProperty
-> ClientSideActionConfigProperty -> Bool
/= :: ClientSideActionConfigProperty
-> ClientSideActionConfigProperty -> Bool
Prelude.Eq, Int -> ClientSideActionConfigProperty -> ShowS
[ClientSideActionConfigProperty] -> ShowS
ClientSideActionConfigProperty -> String
(Int -> ClientSideActionConfigProperty -> ShowS)
-> (ClientSideActionConfigProperty -> String)
-> ([ClientSideActionConfigProperty] -> ShowS)
-> Show ClientSideActionConfigProperty
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
$cshowsPrec :: Int -> ClientSideActionConfigProperty -> ShowS
showsPrec :: Int -> ClientSideActionConfigProperty -> ShowS
$cshow :: ClientSideActionConfigProperty -> String
show :: ClientSideActionConfigProperty -> String
$cshowList :: [ClientSideActionConfigProperty] -> ShowS
showList :: [ClientSideActionConfigProperty] -> ShowS
Prelude.Show)
mkClientSideActionConfigProperty ::
  ClientSideActionProperty -> ClientSideActionConfigProperty
mkClientSideActionConfigProperty :: ClientSideActionProperty -> ClientSideActionConfigProperty
mkClientSideActionConfigProperty ClientSideActionProperty
challenge
  = ClientSideActionConfigProperty
      {haddock_workaround_ :: ()
haddock_workaround_ = (), challenge :: ClientSideActionProperty
challenge = ClientSideActionProperty
challenge}
instance ToResourceProperties ClientSideActionConfigProperty where
  toResourceProperties :: ClientSideActionConfigProperty -> ResourceProperties
toResourceProperties ClientSideActionConfigProperty {()
ClientSideActionProperty
haddock_workaround_ :: ClientSideActionConfigProperty -> ()
challenge :: ClientSideActionConfigProperty -> ClientSideActionProperty
haddock_workaround_ :: ()
challenge :: ClientSideActionProperty
..}
    = ResourceProperties
        {awsType :: Text
awsType = Text
"AWS::WAFv2::WebACL.ClientSideActionConfig",
         supportsTags :: Bool
supportsTags = Bool
Prelude.False,
         properties :: Object
properties = [Key
"Challenge" Key -> ClientSideActionProperty -> (Key, Value)
forall v. ToJSON v => Key -> v -> (Key, Value)
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
JSON..= ClientSideActionProperty
challenge]}
instance JSON.ToJSON ClientSideActionConfigProperty where
  toJSON :: ClientSideActionConfigProperty -> Value
toJSON ClientSideActionConfigProperty {()
ClientSideActionProperty
haddock_workaround_ :: ClientSideActionConfigProperty -> ()
challenge :: ClientSideActionConfigProperty -> ClientSideActionProperty
haddock_workaround_ :: ()
challenge :: ClientSideActionProperty
..}
    = [(Key, Value)] -> Value
JSON.object [Key
"Challenge" Key -> ClientSideActionProperty -> (Key, Value)
forall v. ToJSON v => Key -> v -> (Key, Value)
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
JSON..= ClientSideActionProperty
challenge]
instance Property "Challenge" ClientSideActionConfigProperty where
  type PropertyType "Challenge" ClientSideActionConfigProperty = ClientSideActionProperty
  set :: PropertyType "Challenge" ClientSideActionConfigProperty
-> ClientSideActionConfigProperty -> ClientSideActionConfigProperty
set PropertyType "Challenge" ClientSideActionConfigProperty
newValue ClientSideActionConfigProperty {()
ClientSideActionProperty
haddock_workaround_ :: ClientSideActionConfigProperty -> ()
challenge :: ClientSideActionConfigProperty -> ClientSideActionProperty
haddock_workaround_ :: ()
challenge :: ClientSideActionProperty
..}
    = ClientSideActionConfigProperty {challenge :: ClientSideActionProperty
challenge = PropertyType "Challenge" ClientSideActionConfigProperty
ClientSideActionProperty
newValue, ()
haddock_workaround_ :: ()
haddock_workaround_ :: ()
..}