module Stratosphere.Lex.Bot.ButtonProperty (
        ButtonProperty(..), mkButtonProperty
    ) where
import qualified Data.Aeson as JSON
import qualified Stratosphere.Prelude as Prelude
import Stratosphere.Property
import Stratosphere.ResourceProperties
import Stratosphere.Value
data ButtonProperty
  = -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-lex-bot-button.html>
    ButtonProperty {ButtonProperty -> ()
haddock_workaround_ :: (),
                    -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-lex-bot-button.html#cfn-lex-bot-button-text>
                    ButtonProperty -> Value Text
text :: (Value Prelude.Text),
                    -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-lex-bot-button.html#cfn-lex-bot-button-value>
                    ButtonProperty -> Value Text
value :: (Value Prelude.Text)}
  deriving stock (ButtonProperty -> ButtonProperty -> Bool
(ButtonProperty -> ButtonProperty -> Bool)
-> (ButtonProperty -> ButtonProperty -> Bool) -> Eq ButtonProperty
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
$c== :: ButtonProperty -> ButtonProperty -> Bool
== :: ButtonProperty -> ButtonProperty -> Bool
$c/= :: ButtonProperty -> ButtonProperty -> Bool
/= :: ButtonProperty -> ButtonProperty -> Bool
Prelude.Eq, Int -> ButtonProperty -> ShowS
[ButtonProperty] -> ShowS
ButtonProperty -> String
(Int -> ButtonProperty -> ShowS)
-> (ButtonProperty -> String)
-> ([ButtonProperty] -> ShowS)
-> Show ButtonProperty
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
$cshowsPrec :: Int -> ButtonProperty -> ShowS
showsPrec :: Int -> ButtonProperty -> ShowS
$cshow :: ButtonProperty -> String
show :: ButtonProperty -> String
$cshowList :: [ButtonProperty] -> ShowS
showList :: [ButtonProperty] -> ShowS
Prelude.Show)
mkButtonProperty ::
  Value Prelude.Text -> Value Prelude.Text -> ButtonProperty
mkButtonProperty :: Value Text -> Value Text -> ButtonProperty
mkButtonProperty Value Text
text Value Text
value
  = ButtonProperty
      {haddock_workaround_ :: ()
haddock_workaround_ = (), text :: Value Text
text = Value Text
text, value :: Value Text
value = Value Text
value}
instance ToResourceProperties ButtonProperty where
  toResourceProperties :: ButtonProperty -> ResourceProperties
toResourceProperties ButtonProperty {()
Value Text
haddock_workaround_ :: ButtonProperty -> ()
text :: ButtonProperty -> Value Text
value :: ButtonProperty -> Value Text
haddock_workaround_ :: ()
text :: Value Text
value :: Value Text
..}
    = ResourceProperties
        {awsType :: Text
awsType = Text
"AWS::Lex::Bot.Button", supportsTags :: Bool
supportsTags = Bool
Prelude.False,
         properties :: Object
properties = [Key
"Text" 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
text, Key
"Value" 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
value]}
instance JSON.ToJSON ButtonProperty where
  toJSON :: ButtonProperty -> Value
toJSON ButtonProperty {()
Value Text
haddock_workaround_ :: ButtonProperty -> ()
text :: ButtonProperty -> Value Text
value :: ButtonProperty -> Value Text
haddock_workaround_ :: ()
text :: Value Text
value :: Value Text
..}
    = [(Key, Value)] -> Value
JSON.object [Key
"Text" 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
text, Key
"Value" 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
value]
instance Property "Text" ButtonProperty where
  type PropertyType "Text" ButtonProperty = Value Prelude.Text
  set :: PropertyType "Text" ButtonProperty
-> ButtonProperty -> ButtonProperty
set PropertyType "Text" ButtonProperty
newValue ButtonProperty {()
Value Text
haddock_workaround_ :: ButtonProperty -> ()
text :: ButtonProperty -> Value Text
value :: ButtonProperty -> Value Text
haddock_workaround_ :: ()
text :: Value Text
value :: Value Text
..}
    = ButtonProperty {text :: Value Text
text = PropertyType "Text" ButtonProperty
Value Text
newValue, ()
Value Text
haddock_workaround_ :: ()
value :: Value Text
haddock_workaround_ :: ()
value :: Value Text
..}
instance Property "Value" ButtonProperty where
  type PropertyType "Value" ButtonProperty = Value Prelude.Text
  set :: PropertyType "Value" ButtonProperty
-> ButtonProperty -> ButtonProperty
set PropertyType "Value" ButtonProperty
newValue ButtonProperty {()
Value Text
haddock_workaround_ :: ButtonProperty -> ()
text :: ButtonProperty -> Value Text
value :: ButtonProperty -> Value Text
haddock_workaround_ :: ()
text :: Value Text
value :: Value Text
..}
    = ButtonProperty {value :: Value Text
value = PropertyType "Value" ButtonProperty
Value Text
newValue, ()
Value Text
haddock_workaround_ :: ()
text :: Value Text
haddock_workaround_ :: ()
text :: Value Text
..}