module Stratosphere.Lex.Bot.ConditionalSpecificationProperty (
        module Exports, ConditionalSpecificationProperty(..),
        mkConditionalSpecificationProperty
    ) where
import qualified Data.Aeson as JSON
import qualified Stratosphere.Prelude as Prelude
import Stratosphere.Property
import {-# SOURCE #-} Stratosphere.Lex.Bot.ConditionalBranchProperty as Exports
import {-# SOURCE #-} Stratosphere.Lex.Bot.DefaultConditionalBranchProperty as Exports
import Stratosphere.ResourceProperties
import Stratosphere.Value
data ConditionalSpecificationProperty
  = -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-lex-bot-conditionalspecification.html>
    ConditionalSpecificationProperty {ConditionalSpecificationProperty -> ()
haddock_workaround_ :: (),
                                      -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-lex-bot-conditionalspecification.html#cfn-lex-bot-conditionalspecification-conditionalbranches>
                                      ConditionalSpecificationProperty -> [ConditionalBranchProperty]
conditionalBranches :: [ConditionalBranchProperty],
                                      -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-lex-bot-conditionalspecification.html#cfn-lex-bot-conditionalspecification-defaultbranch>
                                      ConditionalSpecificationProperty
-> DefaultConditionalBranchProperty
defaultBranch :: DefaultConditionalBranchProperty,
                                      -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-lex-bot-conditionalspecification.html#cfn-lex-bot-conditionalspecification-isactive>
                                      ConditionalSpecificationProperty -> Value Bool
isActive :: (Value Prelude.Bool)}
  deriving stock (ConditionalSpecificationProperty
-> ConditionalSpecificationProperty -> Bool
(ConditionalSpecificationProperty
 -> ConditionalSpecificationProperty -> Bool)
-> (ConditionalSpecificationProperty
    -> ConditionalSpecificationProperty -> Bool)
-> Eq ConditionalSpecificationProperty
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
$c== :: ConditionalSpecificationProperty
-> ConditionalSpecificationProperty -> Bool
== :: ConditionalSpecificationProperty
-> ConditionalSpecificationProperty -> Bool
$c/= :: ConditionalSpecificationProperty
-> ConditionalSpecificationProperty -> Bool
/= :: ConditionalSpecificationProperty
-> ConditionalSpecificationProperty -> Bool
Prelude.Eq, Int -> ConditionalSpecificationProperty -> ShowS
[ConditionalSpecificationProperty] -> ShowS
ConditionalSpecificationProperty -> String
(Int -> ConditionalSpecificationProperty -> ShowS)
-> (ConditionalSpecificationProperty -> String)
-> ([ConditionalSpecificationProperty] -> ShowS)
-> Show ConditionalSpecificationProperty
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
$cshowsPrec :: Int -> ConditionalSpecificationProperty -> ShowS
showsPrec :: Int -> ConditionalSpecificationProperty -> ShowS
$cshow :: ConditionalSpecificationProperty -> String
show :: ConditionalSpecificationProperty -> String
$cshowList :: [ConditionalSpecificationProperty] -> ShowS
showList :: [ConditionalSpecificationProperty] -> ShowS
Prelude.Show)
mkConditionalSpecificationProperty ::
  [ConditionalBranchProperty]
  -> DefaultConditionalBranchProperty
     -> Value Prelude.Bool -> ConditionalSpecificationProperty
mkConditionalSpecificationProperty :: [ConditionalBranchProperty]
-> DefaultConditionalBranchProperty
-> Value Bool
-> ConditionalSpecificationProperty
mkConditionalSpecificationProperty
  [ConditionalBranchProperty]
conditionalBranches
  DefaultConditionalBranchProperty
defaultBranch
  Value Bool
isActive
  = ConditionalSpecificationProperty
      {haddock_workaround_ :: ()
haddock_workaround_ = (),
       conditionalBranches :: [ConditionalBranchProperty]
conditionalBranches = [ConditionalBranchProperty]
conditionalBranches,
       defaultBranch :: DefaultConditionalBranchProperty
defaultBranch = DefaultConditionalBranchProperty
defaultBranch, isActive :: Value Bool
isActive = Value Bool
isActive}
instance ToResourceProperties ConditionalSpecificationProperty where
  toResourceProperties :: ConditionalSpecificationProperty -> ResourceProperties
toResourceProperties ConditionalSpecificationProperty {[ConditionalBranchProperty]
()
Value Bool
DefaultConditionalBranchProperty
haddock_workaround_ :: ConditionalSpecificationProperty -> ()
conditionalBranches :: ConditionalSpecificationProperty -> [ConditionalBranchProperty]
defaultBranch :: ConditionalSpecificationProperty
-> DefaultConditionalBranchProperty
isActive :: ConditionalSpecificationProperty -> Value Bool
haddock_workaround_ :: ()
conditionalBranches :: [ConditionalBranchProperty]
defaultBranch :: DefaultConditionalBranchProperty
isActive :: Value Bool
..}
    = ResourceProperties
        {awsType :: Text
awsType = Text
"AWS::Lex::Bot.ConditionalSpecification",
         supportsTags :: Bool
supportsTags = Bool
Prelude.False,
         properties :: Object
properties = [Key
"ConditionalBranches" Key -> [ConditionalBranchProperty] -> (Key, Value)
forall v. ToJSON v => Key -> v -> (Key, Value)
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
JSON..= [ConditionalBranchProperty]
conditionalBranches,
                       Key
"DefaultBranch" Key -> DefaultConditionalBranchProperty -> (Key, Value)
forall v. ToJSON v => Key -> v -> (Key, Value)
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
JSON..= DefaultConditionalBranchProperty
defaultBranch,
                       Key
"IsActive" Key -> Value Bool -> (Key, Value)
forall v. ToJSON v => Key -> v -> (Key, Value)
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
JSON..= Value Bool
isActive]}
instance JSON.ToJSON ConditionalSpecificationProperty where
  toJSON :: ConditionalSpecificationProperty -> Value
toJSON ConditionalSpecificationProperty {[ConditionalBranchProperty]
()
Value Bool
DefaultConditionalBranchProperty
haddock_workaround_ :: ConditionalSpecificationProperty -> ()
conditionalBranches :: ConditionalSpecificationProperty -> [ConditionalBranchProperty]
defaultBranch :: ConditionalSpecificationProperty
-> DefaultConditionalBranchProperty
isActive :: ConditionalSpecificationProperty -> Value Bool
haddock_workaround_ :: ()
conditionalBranches :: [ConditionalBranchProperty]
defaultBranch :: DefaultConditionalBranchProperty
isActive :: Value Bool
..}
    = [(Key, Value)] -> Value
JSON.object
        [Key
"ConditionalBranches" Key -> [ConditionalBranchProperty] -> (Key, Value)
forall v. ToJSON v => Key -> v -> (Key, Value)
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
JSON..= [ConditionalBranchProperty]
conditionalBranches,
         Key
"DefaultBranch" Key -> DefaultConditionalBranchProperty -> (Key, Value)
forall v. ToJSON v => Key -> v -> (Key, Value)
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
JSON..= DefaultConditionalBranchProperty
defaultBranch, Key
"IsActive" Key -> Value Bool -> (Key, Value)
forall v. ToJSON v => Key -> v -> (Key, Value)
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
JSON..= Value Bool
isActive]
instance Property "ConditionalBranches" ConditionalSpecificationProperty where
  type PropertyType "ConditionalBranches" ConditionalSpecificationProperty = [ConditionalBranchProperty]
  set :: PropertyType "ConditionalBranches" ConditionalSpecificationProperty
-> ConditionalSpecificationProperty
-> ConditionalSpecificationProperty
set PropertyType "ConditionalBranches" ConditionalSpecificationProperty
newValue ConditionalSpecificationProperty {[ConditionalBranchProperty]
()
Value Bool
DefaultConditionalBranchProperty
haddock_workaround_ :: ConditionalSpecificationProperty -> ()
conditionalBranches :: ConditionalSpecificationProperty -> [ConditionalBranchProperty]
defaultBranch :: ConditionalSpecificationProperty
-> DefaultConditionalBranchProperty
isActive :: ConditionalSpecificationProperty -> Value Bool
haddock_workaround_ :: ()
conditionalBranches :: [ConditionalBranchProperty]
defaultBranch :: DefaultConditionalBranchProperty
isActive :: Value Bool
..}
    = ConditionalSpecificationProperty
        {conditionalBranches :: [ConditionalBranchProperty]
conditionalBranches = [ConditionalBranchProperty]
PropertyType "ConditionalBranches" ConditionalSpecificationProperty
newValue, ()
Value Bool
DefaultConditionalBranchProperty
haddock_workaround_ :: ()
defaultBranch :: DefaultConditionalBranchProperty
isActive :: Value Bool
haddock_workaround_ :: ()
defaultBranch :: DefaultConditionalBranchProperty
isActive :: Value Bool
..}
instance Property "DefaultBranch" ConditionalSpecificationProperty where
  type PropertyType "DefaultBranch" ConditionalSpecificationProperty = DefaultConditionalBranchProperty
  set :: PropertyType "DefaultBranch" ConditionalSpecificationProperty
-> ConditionalSpecificationProperty
-> ConditionalSpecificationProperty
set PropertyType "DefaultBranch" ConditionalSpecificationProperty
newValue ConditionalSpecificationProperty {[ConditionalBranchProperty]
()
Value Bool
DefaultConditionalBranchProperty
haddock_workaround_ :: ConditionalSpecificationProperty -> ()
conditionalBranches :: ConditionalSpecificationProperty -> [ConditionalBranchProperty]
defaultBranch :: ConditionalSpecificationProperty
-> DefaultConditionalBranchProperty
isActive :: ConditionalSpecificationProperty -> Value Bool
haddock_workaround_ :: ()
conditionalBranches :: [ConditionalBranchProperty]
defaultBranch :: DefaultConditionalBranchProperty
isActive :: Value Bool
..}
    = ConditionalSpecificationProperty {defaultBranch :: DefaultConditionalBranchProperty
defaultBranch = PropertyType "DefaultBranch" ConditionalSpecificationProperty
DefaultConditionalBranchProperty
newValue, [ConditionalBranchProperty]
()
Value Bool
haddock_workaround_ :: ()
conditionalBranches :: [ConditionalBranchProperty]
isActive :: Value Bool
haddock_workaround_ :: ()
conditionalBranches :: [ConditionalBranchProperty]
isActive :: Value Bool
..}
instance Property "IsActive" ConditionalSpecificationProperty where
  type PropertyType "IsActive" ConditionalSpecificationProperty = Value Prelude.Bool
  set :: PropertyType "IsActive" ConditionalSpecificationProperty
-> ConditionalSpecificationProperty
-> ConditionalSpecificationProperty
set PropertyType "IsActive" ConditionalSpecificationProperty
newValue ConditionalSpecificationProperty {[ConditionalBranchProperty]
()
Value Bool
DefaultConditionalBranchProperty
haddock_workaround_ :: ConditionalSpecificationProperty -> ()
conditionalBranches :: ConditionalSpecificationProperty -> [ConditionalBranchProperty]
defaultBranch :: ConditionalSpecificationProperty
-> DefaultConditionalBranchProperty
isActive :: ConditionalSpecificationProperty -> Value Bool
haddock_workaround_ :: ()
conditionalBranches :: [ConditionalBranchProperty]
defaultBranch :: DefaultConditionalBranchProperty
isActive :: Value Bool
..}
    = ConditionalSpecificationProperty {isActive :: Value Bool
isActive = PropertyType "IsActive" ConditionalSpecificationProperty
Value Bool
newValue, [ConditionalBranchProperty]
()
DefaultConditionalBranchProperty
haddock_workaround_ :: ()
conditionalBranches :: [ConditionalBranchProperty]
defaultBranch :: DefaultConditionalBranchProperty
haddock_workaround_ :: ()
conditionalBranches :: [ConditionalBranchProperty]
defaultBranch :: DefaultConditionalBranchProperty
..}