module Stratosphere.Wisdom.QuickResponse.QuickResponseContentsProperty (
        module Exports, QuickResponseContentsProperty(..),
        mkQuickResponseContentsProperty
    ) where
import qualified Data.Aeson as JSON
import qualified Stratosphere.Prelude as Prelude
import Stratosphere.Property
import {-# SOURCE #-} Stratosphere.Wisdom.QuickResponse.QuickResponseContentProviderProperty as Exports
import Stratosphere.ResourceProperties
data QuickResponseContentsProperty
  = -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-wisdom-quickresponse-quickresponsecontents.html>
    QuickResponseContentsProperty {QuickResponseContentsProperty -> ()
haddock_workaround_ :: (),
                                   -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-wisdom-quickresponse-quickresponsecontents.html#cfn-wisdom-quickresponse-quickresponsecontents-markdown>
                                   QuickResponseContentsProperty
-> Maybe QuickResponseContentProviderProperty
markdown :: (Prelude.Maybe QuickResponseContentProviderProperty),
                                   -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-wisdom-quickresponse-quickresponsecontents.html#cfn-wisdom-quickresponse-quickresponsecontents-plaintext>
                                   QuickResponseContentsProperty
-> Maybe QuickResponseContentProviderProperty
plainText :: (Prelude.Maybe QuickResponseContentProviderProperty)}
  deriving stock (QuickResponseContentsProperty
-> QuickResponseContentsProperty -> Bool
(QuickResponseContentsProperty
 -> QuickResponseContentsProperty -> Bool)
-> (QuickResponseContentsProperty
    -> QuickResponseContentsProperty -> Bool)
-> Eq QuickResponseContentsProperty
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
$c== :: QuickResponseContentsProperty
-> QuickResponseContentsProperty -> Bool
== :: QuickResponseContentsProperty
-> QuickResponseContentsProperty -> Bool
$c/= :: QuickResponseContentsProperty
-> QuickResponseContentsProperty -> Bool
/= :: QuickResponseContentsProperty
-> QuickResponseContentsProperty -> Bool
Prelude.Eq, Int -> QuickResponseContentsProperty -> ShowS
[QuickResponseContentsProperty] -> ShowS
QuickResponseContentsProperty -> String
(Int -> QuickResponseContentsProperty -> ShowS)
-> (QuickResponseContentsProperty -> String)
-> ([QuickResponseContentsProperty] -> ShowS)
-> Show QuickResponseContentsProperty
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
$cshowsPrec :: Int -> QuickResponseContentsProperty -> ShowS
showsPrec :: Int -> QuickResponseContentsProperty -> ShowS
$cshow :: QuickResponseContentsProperty -> String
show :: QuickResponseContentsProperty -> String
$cshowList :: [QuickResponseContentsProperty] -> ShowS
showList :: [QuickResponseContentsProperty] -> ShowS
Prelude.Show)
mkQuickResponseContentsProperty :: QuickResponseContentsProperty
mkQuickResponseContentsProperty :: QuickResponseContentsProperty
mkQuickResponseContentsProperty
  = QuickResponseContentsProperty
      {haddock_workaround_ :: ()
haddock_workaround_ = (), markdown :: Maybe QuickResponseContentProviderProperty
markdown = Maybe QuickResponseContentProviderProperty
forall a. Maybe a
Prelude.Nothing,
       plainText :: Maybe QuickResponseContentProviderProperty
plainText = Maybe QuickResponseContentProviderProperty
forall a. Maybe a
Prelude.Nothing}
instance ToResourceProperties QuickResponseContentsProperty where
  toResourceProperties :: QuickResponseContentsProperty -> ResourceProperties
toResourceProperties QuickResponseContentsProperty {Maybe QuickResponseContentProviderProperty
()
haddock_workaround_ :: QuickResponseContentsProperty -> ()
markdown :: QuickResponseContentsProperty
-> Maybe QuickResponseContentProviderProperty
plainText :: QuickResponseContentsProperty
-> Maybe QuickResponseContentProviderProperty
haddock_workaround_ :: ()
markdown :: Maybe QuickResponseContentProviderProperty
plainText :: Maybe QuickResponseContentProviderProperty
..}
    = ResourceProperties
        {awsType :: Text
awsType = Text
"AWS::Wisdom::QuickResponse.QuickResponseContents",
         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 -> QuickResponseContentProviderProperty -> (Key, Value)
forall v. ToJSON v => Key -> v -> (Key, Value)
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
(JSON..=) Key
"Markdown" (QuickResponseContentProviderProperty -> (Key, Value))
-> Maybe QuickResponseContentProviderProperty -> Maybe (Key, Value)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Prelude.<$> Maybe QuickResponseContentProviderProperty
markdown,
                            Key -> QuickResponseContentProviderProperty -> (Key, Value)
forall v. ToJSON v => Key -> v -> (Key, Value)
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
(JSON..=) Key
"PlainText" (QuickResponseContentProviderProperty -> (Key, Value))
-> Maybe QuickResponseContentProviderProperty -> Maybe (Key, Value)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Prelude.<$> Maybe QuickResponseContentProviderProperty
plainText])}
instance JSON.ToJSON QuickResponseContentsProperty where
  toJSON :: QuickResponseContentsProperty -> Value
toJSON QuickResponseContentsProperty {Maybe QuickResponseContentProviderProperty
()
haddock_workaround_ :: QuickResponseContentsProperty -> ()
markdown :: QuickResponseContentsProperty
-> Maybe QuickResponseContentProviderProperty
plainText :: QuickResponseContentsProperty
-> Maybe QuickResponseContentProviderProperty
haddock_workaround_ :: ()
markdown :: Maybe QuickResponseContentProviderProperty
plainText :: Maybe QuickResponseContentProviderProperty
..}
    = [(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 -> QuickResponseContentProviderProperty -> (Key, Value)
forall v. ToJSON v => Key -> v -> (Key, Value)
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
(JSON..=) Key
"Markdown" (QuickResponseContentProviderProperty -> (Key, Value))
-> Maybe QuickResponseContentProviderProperty -> Maybe (Key, Value)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Prelude.<$> Maybe QuickResponseContentProviderProperty
markdown,
               Key -> QuickResponseContentProviderProperty -> (Key, Value)
forall v. ToJSON v => Key -> v -> (Key, Value)
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
(JSON..=) Key
"PlainText" (QuickResponseContentProviderProperty -> (Key, Value))
-> Maybe QuickResponseContentProviderProperty -> Maybe (Key, Value)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Prelude.<$> Maybe QuickResponseContentProviderProperty
plainText]))
instance Property "Markdown" QuickResponseContentsProperty where
  type PropertyType "Markdown" QuickResponseContentsProperty = QuickResponseContentProviderProperty
  set :: PropertyType "Markdown" QuickResponseContentsProperty
-> QuickResponseContentsProperty -> QuickResponseContentsProperty
set PropertyType "Markdown" QuickResponseContentsProperty
newValue QuickResponseContentsProperty {Maybe QuickResponseContentProviderProperty
()
haddock_workaround_ :: QuickResponseContentsProperty -> ()
markdown :: QuickResponseContentsProperty
-> Maybe QuickResponseContentProviderProperty
plainText :: QuickResponseContentsProperty
-> Maybe QuickResponseContentProviderProperty
haddock_workaround_ :: ()
markdown :: Maybe QuickResponseContentProviderProperty
plainText :: Maybe QuickResponseContentProviderProperty
..}
    = QuickResponseContentsProperty
        {markdown :: Maybe QuickResponseContentProviderProperty
markdown = QuickResponseContentProviderProperty
-> Maybe QuickResponseContentProviderProperty
forall a. a -> Maybe a
forall (f :: * -> *) a. Applicative f => a -> f a
Prelude.pure PropertyType "Markdown" QuickResponseContentsProperty
QuickResponseContentProviderProperty
newValue, Maybe QuickResponseContentProviderProperty
()
haddock_workaround_ :: ()
plainText :: Maybe QuickResponseContentProviderProperty
haddock_workaround_ :: ()
plainText :: Maybe QuickResponseContentProviderProperty
..}
instance Property "PlainText" QuickResponseContentsProperty where
  type PropertyType "PlainText" QuickResponseContentsProperty = QuickResponseContentProviderProperty
  set :: PropertyType "PlainText" QuickResponseContentsProperty
-> QuickResponseContentsProperty -> QuickResponseContentsProperty
set PropertyType "PlainText" QuickResponseContentsProperty
newValue QuickResponseContentsProperty {Maybe QuickResponseContentProviderProperty
()
haddock_workaround_ :: QuickResponseContentsProperty -> ()
markdown :: QuickResponseContentsProperty
-> Maybe QuickResponseContentProviderProperty
plainText :: QuickResponseContentsProperty
-> Maybe QuickResponseContentProviderProperty
haddock_workaround_ :: ()
markdown :: Maybe QuickResponseContentProviderProperty
plainText :: Maybe QuickResponseContentProviderProperty
..}
    = QuickResponseContentsProperty
        {plainText :: Maybe QuickResponseContentProviderProperty
plainText = QuickResponseContentProviderProperty
-> Maybe QuickResponseContentProviderProperty
forall a. a -> Maybe a
forall (f :: * -> *) a. Applicative f => a -> f a
Prelude.pure PropertyType "PlainText" QuickResponseContentsProperty
QuickResponseContentProviderProperty
newValue, Maybe QuickResponseContentProviderProperty
()
haddock_workaround_ :: ()
markdown :: Maybe QuickResponseContentProviderProperty
haddock_workaround_ :: ()
markdown :: Maybe QuickResponseContentProviderProperty
..}