module Stratosphere.Cognito.UserPoolRiskConfigurationAttachment.AccountTakeoverActionsTypeProperty (
        module Exports, AccountTakeoverActionsTypeProperty(..),
        mkAccountTakeoverActionsTypeProperty
    ) where
import qualified Data.Aeson as JSON
import qualified Stratosphere.Prelude as Prelude
import Stratosphere.Property
import {-# SOURCE #-} Stratosphere.Cognito.UserPoolRiskConfigurationAttachment.AccountTakeoverActionTypeProperty as Exports
import Stratosphere.ResourceProperties
data AccountTakeoverActionsTypeProperty
  = -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cognito-userpoolriskconfigurationattachment-accounttakeoveractionstype.html>
    AccountTakeoverActionsTypeProperty {AccountTakeoverActionsTypeProperty -> ()
haddock_workaround_ :: (),
                                        -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cognito-userpoolriskconfigurationattachment-accounttakeoveractionstype.html#cfn-cognito-userpoolriskconfigurationattachment-accounttakeoveractionstype-highaction>
                                        AccountTakeoverActionsTypeProperty
-> Maybe AccountTakeoverActionTypeProperty
highAction :: (Prelude.Maybe AccountTakeoverActionTypeProperty),
                                        -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cognito-userpoolriskconfigurationattachment-accounttakeoveractionstype.html#cfn-cognito-userpoolriskconfigurationattachment-accounttakeoveractionstype-lowaction>
                                        AccountTakeoverActionsTypeProperty
-> Maybe AccountTakeoverActionTypeProperty
lowAction :: (Prelude.Maybe AccountTakeoverActionTypeProperty),
                                        -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cognito-userpoolriskconfigurationattachment-accounttakeoveractionstype.html#cfn-cognito-userpoolriskconfigurationattachment-accounttakeoveractionstype-mediumaction>
                                        AccountTakeoverActionsTypeProperty
-> Maybe AccountTakeoverActionTypeProperty
mediumAction :: (Prelude.Maybe AccountTakeoverActionTypeProperty)}
  deriving stock (AccountTakeoverActionsTypeProperty
-> AccountTakeoverActionsTypeProperty -> Bool
(AccountTakeoverActionsTypeProperty
 -> AccountTakeoverActionsTypeProperty -> Bool)
-> (AccountTakeoverActionsTypeProperty
    -> AccountTakeoverActionsTypeProperty -> Bool)
-> Eq AccountTakeoverActionsTypeProperty
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
$c== :: AccountTakeoverActionsTypeProperty
-> AccountTakeoverActionsTypeProperty -> Bool
== :: AccountTakeoverActionsTypeProperty
-> AccountTakeoverActionsTypeProperty -> Bool
$c/= :: AccountTakeoverActionsTypeProperty
-> AccountTakeoverActionsTypeProperty -> Bool
/= :: AccountTakeoverActionsTypeProperty
-> AccountTakeoverActionsTypeProperty -> Bool
Prelude.Eq, Int -> AccountTakeoverActionsTypeProperty -> ShowS
[AccountTakeoverActionsTypeProperty] -> ShowS
AccountTakeoverActionsTypeProperty -> String
(Int -> AccountTakeoverActionsTypeProperty -> ShowS)
-> (AccountTakeoverActionsTypeProperty -> String)
-> ([AccountTakeoverActionsTypeProperty] -> ShowS)
-> Show AccountTakeoverActionsTypeProperty
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
$cshowsPrec :: Int -> AccountTakeoverActionsTypeProperty -> ShowS
showsPrec :: Int -> AccountTakeoverActionsTypeProperty -> ShowS
$cshow :: AccountTakeoverActionsTypeProperty -> String
show :: AccountTakeoverActionsTypeProperty -> String
$cshowList :: [AccountTakeoverActionsTypeProperty] -> ShowS
showList :: [AccountTakeoverActionsTypeProperty] -> ShowS
Prelude.Show)
mkAccountTakeoverActionsTypeProperty ::
  AccountTakeoverActionsTypeProperty
mkAccountTakeoverActionsTypeProperty :: AccountTakeoverActionsTypeProperty
mkAccountTakeoverActionsTypeProperty
  = AccountTakeoverActionsTypeProperty
      {haddock_workaround_ :: ()
haddock_workaround_ = (), highAction :: Maybe AccountTakeoverActionTypeProperty
highAction = Maybe AccountTakeoverActionTypeProperty
forall a. Maybe a
Prelude.Nothing,
       lowAction :: Maybe AccountTakeoverActionTypeProperty
lowAction = Maybe AccountTakeoverActionTypeProperty
forall a. Maybe a
Prelude.Nothing, mediumAction :: Maybe AccountTakeoverActionTypeProperty
mediumAction = Maybe AccountTakeoverActionTypeProperty
forall a. Maybe a
Prelude.Nothing}
instance ToResourceProperties AccountTakeoverActionsTypeProperty where
  toResourceProperties :: AccountTakeoverActionsTypeProperty -> ResourceProperties
toResourceProperties AccountTakeoverActionsTypeProperty {Maybe AccountTakeoverActionTypeProperty
()
haddock_workaround_ :: AccountTakeoverActionsTypeProperty -> ()
highAction :: AccountTakeoverActionsTypeProperty
-> Maybe AccountTakeoverActionTypeProperty
lowAction :: AccountTakeoverActionsTypeProperty
-> Maybe AccountTakeoverActionTypeProperty
mediumAction :: AccountTakeoverActionsTypeProperty
-> Maybe AccountTakeoverActionTypeProperty
haddock_workaround_ :: ()
highAction :: Maybe AccountTakeoverActionTypeProperty
lowAction :: Maybe AccountTakeoverActionTypeProperty
mediumAction :: Maybe AccountTakeoverActionTypeProperty
..}
    = ResourceProperties
        {awsType :: Text
awsType = Text
"AWS::Cognito::UserPoolRiskConfigurationAttachment.AccountTakeoverActionsType",
         supportsTags :: Bool
supportsTags = Bool
Prelude.False,
         properties :: Object
properties = [Item Object] -> Object
forall l. IsList l => [Item l] -> l
Prelude.fromList
                        ([Maybe (Key, Value)] -> [(Key, Value)]
forall a. [Maybe a] -> [a]
Prelude.catMaybes
                           [Key -> AccountTakeoverActionTypeProperty -> (Key, Value)
forall v. ToJSON v => Key -> v -> (Key, Value)
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
(JSON..=) Key
"HighAction" (AccountTakeoverActionTypeProperty -> (Key, Value))
-> Maybe AccountTakeoverActionTypeProperty -> Maybe (Key, Value)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Prelude.<$> Maybe AccountTakeoverActionTypeProperty
highAction,
                            Key -> AccountTakeoverActionTypeProperty -> (Key, Value)
forall v. ToJSON v => Key -> v -> (Key, Value)
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
(JSON..=) Key
"LowAction" (AccountTakeoverActionTypeProperty -> (Key, Value))
-> Maybe AccountTakeoverActionTypeProperty -> Maybe (Key, Value)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Prelude.<$> Maybe AccountTakeoverActionTypeProperty
lowAction,
                            Key -> AccountTakeoverActionTypeProperty -> (Key, Value)
forall v. ToJSON v => Key -> v -> (Key, Value)
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
(JSON..=) Key
"MediumAction" (AccountTakeoverActionTypeProperty -> (Key, Value))
-> Maybe AccountTakeoverActionTypeProperty -> Maybe (Key, Value)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Prelude.<$> Maybe AccountTakeoverActionTypeProperty
mediumAction])}
instance JSON.ToJSON AccountTakeoverActionsTypeProperty where
  toJSON :: AccountTakeoverActionsTypeProperty -> Value
toJSON AccountTakeoverActionsTypeProperty {Maybe AccountTakeoverActionTypeProperty
()
haddock_workaround_ :: AccountTakeoverActionsTypeProperty -> ()
highAction :: AccountTakeoverActionsTypeProperty
-> Maybe AccountTakeoverActionTypeProperty
lowAction :: AccountTakeoverActionsTypeProperty
-> Maybe AccountTakeoverActionTypeProperty
mediumAction :: AccountTakeoverActionsTypeProperty
-> Maybe AccountTakeoverActionTypeProperty
haddock_workaround_ :: ()
highAction :: Maybe AccountTakeoverActionTypeProperty
lowAction :: Maybe AccountTakeoverActionTypeProperty
mediumAction :: Maybe AccountTakeoverActionTypeProperty
..}
    = [(Key, Value)] -> Value
JSON.object
        ([Item [(Key, Value)]] -> [(Key, Value)]
forall l. IsList l => [Item l] -> l
Prelude.fromList
           ([Maybe (Key, Value)] -> [(Key, Value)]
forall a. [Maybe a] -> [a]
Prelude.catMaybes
              [Key -> AccountTakeoverActionTypeProperty -> (Key, Value)
forall v. ToJSON v => Key -> v -> (Key, Value)
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
(JSON..=) Key
"HighAction" (AccountTakeoverActionTypeProperty -> (Key, Value))
-> Maybe AccountTakeoverActionTypeProperty -> Maybe (Key, Value)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Prelude.<$> Maybe AccountTakeoverActionTypeProperty
highAction,
               Key -> AccountTakeoverActionTypeProperty -> (Key, Value)
forall v. ToJSON v => Key -> v -> (Key, Value)
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
(JSON..=) Key
"LowAction" (AccountTakeoverActionTypeProperty -> (Key, Value))
-> Maybe AccountTakeoverActionTypeProperty -> Maybe (Key, Value)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Prelude.<$> Maybe AccountTakeoverActionTypeProperty
lowAction,
               Key -> AccountTakeoverActionTypeProperty -> (Key, Value)
forall v. ToJSON v => Key -> v -> (Key, Value)
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
(JSON..=) Key
"MediumAction" (AccountTakeoverActionTypeProperty -> (Key, Value))
-> Maybe AccountTakeoverActionTypeProperty -> Maybe (Key, Value)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Prelude.<$> Maybe AccountTakeoverActionTypeProperty
mediumAction]))
instance Property "HighAction" AccountTakeoverActionsTypeProperty where
  type PropertyType "HighAction" AccountTakeoverActionsTypeProperty = AccountTakeoverActionTypeProperty
  set :: PropertyType "HighAction" AccountTakeoverActionsTypeProperty
-> AccountTakeoverActionsTypeProperty
-> AccountTakeoverActionsTypeProperty
set PropertyType "HighAction" AccountTakeoverActionsTypeProperty
newValue AccountTakeoverActionsTypeProperty {Maybe AccountTakeoverActionTypeProperty
()
haddock_workaround_ :: AccountTakeoverActionsTypeProperty -> ()
highAction :: AccountTakeoverActionsTypeProperty
-> Maybe AccountTakeoverActionTypeProperty
lowAction :: AccountTakeoverActionsTypeProperty
-> Maybe AccountTakeoverActionTypeProperty
mediumAction :: AccountTakeoverActionsTypeProperty
-> Maybe AccountTakeoverActionTypeProperty
haddock_workaround_ :: ()
highAction :: Maybe AccountTakeoverActionTypeProperty
lowAction :: Maybe AccountTakeoverActionTypeProperty
mediumAction :: Maybe AccountTakeoverActionTypeProperty
..}
    = AccountTakeoverActionsTypeProperty
        {highAction :: Maybe AccountTakeoverActionTypeProperty
highAction = AccountTakeoverActionTypeProperty
-> Maybe AccountTakeoverActionTypeProperty
forall a. a -> Maybe a
forall (f :: * -> *) a. Applicative f => a -> f a
Prelude.pure PropertyType "HighAction" AccountTakeoverActionsTypeProperty
AccountTakeoverActionTypeProperty
newValue, Maybe AccountTakeoverActionTypeProperty
()
haddock_workaround_ :: ()
lowAction :: Maybe AccountTakeoverActionTypeProperty
mediumAction :: Maybe AccountTakeoverActionTypeProperty
haddock_workaround_ :: ()
lowAction :: Maybe AccountTakeoverActionTypeProperty
mediumAction :: Maybe AccountTakeoverActionTypeProperty
..}
instance Property "LowAction" AccountTakeoverActionsTypeProperty where
  type PropertyType "LowAction" AccountTakeoverActionsTypeProperty = AccountTakeoverActionTypeProperty
  set :: PropertyType "LowAction" AccountTakeoverActionsTypeProperty
-> AccountTakeoverActionsTypeProperty
-> AccountTakeoverActionsTypeProperty
set PropertyType "LowAction" AccountTakeoverActionsTypeProperty
newValue AccountTakeoverActionsTypeProperty {Maybe AccountTakeoverActionTypeProperty
()
haddock_workaround_ :: AccountTakeoverActionsTypeProperty -> ()
highAction :: AccountTakeoverActionsTypeProperty
-> Maybe AccountTakeoverActionTypeProperty
lowAction :: AccountTakeoverActionsTypeProperty
-> Maybe AccountTakeoverActionTypeProperty
mediumAction :: AccountTakeoverActionsTypeProperty
-> Maybe AccountTakeoverActionTypeProperty
haddock_workaround_ :: ()
highAction :: Maybe AccountTakeoverActionTypeProperty
lowAction :: Maybe AccountTakeoverActionTypeProperty
mediumAction :: Maybe AccountTakeoverActionTypeProperty
..}
    = AccountTakeoverActionsTypeProperty
        {lowAction :: Maybe AccountTakeoverActionTypeProperty
lowAction = AccountTakeoverActionTypeProperty
-> Maybe AccountTakeoverActionTypeProperty
forall a. a -> Maybe a
forall (f :: * -> *) a. Applicative f => a -> f a
Prelude.pure PropertyType "LowAction" AccountTakeoverActionsTypeProperty
AccountTakeoverActionTypeProperty
newValue, Maybe AccountTakeoverActionTypeProperty
()
haddock_workaround_ :: ()
highAction :: Maybe AccountTakeoverActionTypeProperty
mediumAction :: Maybe AccountTakeoverActionTypeProperty
haddock_workaround_ :: ()
highAction :: Maybe AccountTakeoverActionTypeProperty
mediumAction :: Maybe AccountTakeoverActionTypeProperty
..}
instance Property "MediumAction" AccountTakeoverActionsTypeProperty where
  type PropertyType "MediumAction" AccountTakeoverActionsTypeProperty = AccountTakeoverActionTypeProperty
  set :: PropertyType "MediumAction" AccountTakeoverActionsTypeProperty
-> AccountTakeoverActionsTypeProperty
-> AccountTakeoverActionsTypeProperty
set PropertyType "MediumAction" AccountTakeoverActionsTypeProperty
newValue AccountTakeoverActionsTypeProperty {Maybe AccountTakeoverActionTypeProperty
()
haddock_workaround_ :: AccountTakeoverActionsTypeProperty -> ()
highAction :: AccountTakeoverActionsTypeProperty
-> Maybe AccountTakeoverActionTypeProperty
lowAction :: AccountTakeoverActionsTypeProperty
-> Maybe AccountTakeoverActionTypeProperty
mediumAction :: AccountTakeoverActionsTypeProperty
-> Maybe AccountTakeoverActionTypeProperty
haddock_workaround_ :: ()
highAction :: Maybe AccountTakeoverActionTypeProperty
lowAction :: Maybe AccountTakeoverActionTypeProperty
mediumAction :: Maybe AccountTakeoverActionTypeProperty
..}
    = AccountTakeoverActionsTypeProperty
        {mediumAction :: Maybe AccountTakeoverActionTypeProperty
mediumAction = AccountTakeoverActionTypeProperty
-> Maybe AccountTakeoverActionTypeProperty
forall a. a -> Maybe a
forall (f :: * -> *) a. Applicative f => a -> f a
Prelude.pure PropertyType "MediumAction" AccountTakeoverActionsTypeProperty
AccountTakeoverActionTypeProperty
newValue, Maybe AccountTakeoverActionTypeProperty
()
haddock_workaround_ :: ()
highAction :: Maybe AccountTakeoverActionTypeProperty
lowAction :: Maybe AccountTakeoverActionTypeProperty
haddock_workaround_ :: ()
highAction :: Maybe AccountTakeoverActionTypeProperty
lowAction :: Maybe AccountTakeoverActionTypeProperty
..}