{-# LANGUAGE DeriveGeneric #-}
{-# LANGUAGE DuplicateRecordFields #-}
{-# LANGUAGE NamedFieldPuns #-}
{-# LANGUAGE OverloadedStrings #-}
{-# LANGUAGE RecordWildCards #-}
{-# LANGUAGE StrictData #-}
{-# LANGUAGE NoImplicitPrelude #-}
{-# OPTIONS_GHC -fno-warn-unused-imports #-}
{-# OPTIONS_GHC -fno-warn-unused-matches #-}

-- Derived from AWS service descriptions, licensed under Apache 2.0.

-- |
-- Module      : Amazonka.Pinpoint.Types.InAppTemplateResponse
-- Copyright   : (c) 2013-2023 Brendan Hay
-- License     : Mozilla Public License, v. 2.0.
-- Maintainer  : Brendan Hay
-- Stability   : auto-generated
-- Portability : non-portable (GHC extensions)
module Amazonka.Pinpoint.Types.InAppTemplateResponse where

import qualified Amazonka.Core as Core
import qualified Amazonka.Core.Lens.Internal as Lens
import qualified Amazonka.Data as Data
import Amazonka.Pinpoint.Types.InAppMessageContent
import Amazonka.Pinpoint.Types.Layout
import Amazonka.Pinpoint.Types.TemplateType
import qualified Amazonka.Prelude as Prelude

-- | In-App Template Response.
--
-- /See:/ 'newInAppTemplateResponse' smart constructor.
data InAppTemplateResponse = InAppTemplateResponse'
  { -- | The resource arn of the template.
    InAppTemplateResponse -> Maybe Text
arn :: Prelude.Maybe Prelude.Text,
    -- | The content of the message, can include up to 5 modals. Each modal must
    -- contain a message, a header, and background color. ImageUrl and buttons
    -- are optional.
    InAppTemplateResponse -> Maybe [InAppMessageContent]
content :: Prelude.Maybe [InAppMessageContent],
    -- | Custom config to be sent to client.
    InAppTemplateResponse -> Maybe (HashMap Text Text)
customConfig :: Prelude.Maybe (Prelude.HashMap Prelude.Text Prelude.Text),
    -- | The layout of the message.
    InAppTemplateResponse -> Maybe Layout
layout :: Prelude.Maybe Layout,
    -- | The description of the template.
    InAppTemplateResponse -> Maybe Text
templateDescription :: Prelude.Maybe Prelude.Text,
    -- | The version id of the template.
    InAppTemplateResponse -> Maybe Text
version :: Prelude.Maybe Prelude.Text,
    -- | A string-to-string map of key-value pairs that defines the tags to
    -- associate with the message template. Each tag consists of a required tag
    -- key and an associated tag value.
    InAppTemplateResponse -> Maybe (HashMap Text Text)
tags :: Prelude.Maybe (Prelude.HashMap Prelude.Text Prelude.Text),
    -- | The last modified date of the template.
    InAppTemplateResponse -> Text
lastModifiedDate :: Prelude.Text,
    -- | The creation date of the template.
    InAppTemplateResponse -> Text
creationDate :: Prelude.Text,
    -- | The name of the template.
    InAppTemplateResponse -> Text
templateName :: Prelude.Text,
    -- | The type of the template.
    InAppTemplateResponse -> TemplateType
templateType :: TemplateType
  }
  deriving (InAppTemplateResponse -> InAppTemplateResponse -> Bool
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: InAppTemplateResponse -> InAppTemplateResponse -> Bool
$c/= :: InAppTemplateResponse -> InAppTemplateResponse -> Bool
== :: InAppTemplateResponse -> InAppTemplateResponse -> Bool
$c== :: InAppTemplateResponse -> InAppTemplateResponse -> Bool
Prelude.Eq, ReadPrec [InAppTemplateResponse]
ReadPrec InAppTemplateResponse
Int -> ReadS InAppTemplateResponse
ReadS [InAppTemplateResponse]
forall a.
(Int -> ReadS a)
-> ReadS [a] -> ReadPrec a -> ReadPrec [a] -> Read a
readListPrec :: ReadPrec [InAppTemplateResponse]
$creadListPrec :: ReadPrec [InAppTemplateResponse]
readPrec :: ReadPrec InAppTemplateResponse
$creadPrec :: ReadPrec InAppTemplateResponse
readList :: ReadS [InAppTemplateResponse]
$creadList :: ReadS [InAppTemplateResponse]
readsPrec :: Int -> ReadS InAppTemplateResponse
$creadsPrec :: Int -> ReadS InAppTemplateResponse
Prelude.Read, Int -> InAppTemplateResponse -> ShowS
[InAppTemplateResponse] -> ShowS
InAppTemplateResponse -> String
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [InAppTemplateResponse] -> ShowS
$cshowList :: [InAppTemplateResponse] -> ShowS
show :: InAppTemplateResponse -> String
$cshow :: InAppTemplateResponse -> String
showsPrec :: Int -> InAppTemplateResponse -> ShowS
$cshowsPrec :: Int -> InAppTemplateResponse -> ShowS
Prelude.Show, forall x. Rep InAppTemplateResponse x -> InAppTemplateResponse
forall x. InAppTemplateResponse -> Rep InAppTemplateResponse x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cto :: forall x. Rep InAppTemplateResponse x -> InAppTemplateResponse
$cfrom :: forall x. InAppTemplateResponse -> Rep InAppTemplateResponse x
Prelude.Generic)

-- |
-- Create a value of 'InAppTemplateResponse' with all optional fields omitted.
--
-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.
--
-- The following record fields are available, with the corresponding lenses provided
-- for backwards compatibility:
--
-- 'arn', 'inAppTemplateResponse_arn' - The resource arn of the template.
--
-- 'content', 'inAppTemplateResponse_content' - The content of the message, can include up to 5 modals. Each modal must
-- contain a message, a header, and background color. ImageUrl and buttons
-- are optional.
--
-- 'customConfig', 'inAppTemplateResponse_customConfig' - Custom config to be sent to client.
--
-- 'layout', 'inAppTemplateResponse_layout' - The layout of the message.
--
-- 'templateDescription', 'inAppTemplateResponse_templateDescription' - The description of the template.
--
-- 'version', 'inAppTemplateResponse_version' - The version id of the template.
--
-- 'tags', 'inAppTemplateResponse_tags' - A string-to-string map of key-value pairs that defines the tags to
-- associate with the message template. Each tag consists of a required tag
-- key and an associated tag value.
--
-- 'lastModifiedDate', 'inAppTemplateResponse_lastModifiedDate' - The last modified date of the template.
--
-- 'creationDate', 'inAppTemplateResponse_creationDate' - The creation date of the template.
--
-- 'templateName', 'inAppTemplateResponse_templateName' - The name of the template.
--
-- 'templateType', 'inAppTemplateResponse_templateType' - The type of the template.
newInAppTemplateResponse ::
  -- | 'lastModifiedDate'
  Prelude.Text ->
  -- | 'creationDate'
  Prelude.Text ->
  -- | 'templateName'
  Prelude.Text ->
  -- | 'templateType'
  TemplateType ->
  InAppTemplateResponse
newInAppTemplateResponse :: Text -> Text -> Text -> TemplateType -> InAppTemplateResponse
newInAppTemplateResponse
  Text
pLastModifiedDate_
  Text
pCreationDate_
  Text
pTemplateName_
  TemplateType
pTemplateType_ =
    InAppTemplateResponse'
      { $sel:arn:InAppTemplateResponse' :: Maybe Text
arn = forall a. Maybe a
Prelude.Nothing,
        $sel:content:InAppTemplateResponse' :: Maybe [InAppMessageContent]
content = forall a. Maybe a
Prelude.Nothing,
        $sel:customConfig:InAppTemplateResponse' :: Maybe (HashMap Text Text)
customConfig = forall a. Maybe a
Prelude.Nothing,
        $sel:layout:InAppTemplateResponse' :: Maybe Layout
layout = forall a. Maybe a
Prelude.Nothing,
        $sel:templateDescription:InAppTemplateResponse' :: Maybe Text
templateDescription = forall a. Maybe a
Prelude.Nothing,
        $sel:version:InAppTemplateResponse' :: Maybe Text
version = forall a. Maybe a
Prelude.Nothing,
        $sel:tags:InAppTemplateResponse' :: Maybe (HashMap Text Text)
tags = forall a. Maybe a
Prelude.Nothing,
        $sel:lastModifiedDate:InAppTemplateResponse' :: Text
lastModifiedDate = Text
pLastModifiedDate_,
        $sel:creationDate:InAppTemplateResponse' :: Text
creationDate = Text
pCreationDate_,
        $sel:templateName:InAppTemplateResponse' :: Text
templateName = Text
pTemplateName_,
        $sel:templateType:InAppTemplateResponse' :: TemplateType
templateType = TemplateType
pTemplateType_
      }

-- | The resource arn of the template.
inAppTemplateResponse_arn :: Lens.Lens' InAppTemplateResponse (Prelude.Maybe Prelude.Text)
inAppTemplateResponse_arn :: Lens' InAppTemplateResponse (Maybe Text)
inAppTemplateResponse_arn = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\InAppTemplateResponse' {Maybe Text
arn :: Maybe Text
$sel:arn:InAppTemplateResponse' :: InAppTemplateResponse -> Maybe Text
arn} -> Maybe Text
arn) (\s :: InAppTemplateResponse
s@InAppTemplateResponse' {} Maybe Text
a -> InAppTemplateResponse
s {$sel:arn:InAppTemplateResponse' :: Maybe Text
arn = Maybe Text
a} :: InAppTemplateResponse)

-- | The content of the message, can include up to 5 modals. Each modal must
-- contain a message, a header, and background color. ImageUrl and buttons
-- are optional.
inAppTemplateResponse_content :: Lens.Lens' InAppTemplateResponse (Prelude.Maybe [InAppMessageContent])
inAppTemplateResponse_content :: Lens' InAppTemplateResponse (Maybe [InAppMessageContent])
inAppTemplateResponse_content = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\InAppTemplateResponse' {Maybe [InAppMessageContent]
content :: Maybe [InAppMessageContent]
$sel:content:InAppTemplateResponse' :: InAppTemplateResponse -> Maybe [InAppMessageContent]
content} -> Maybe [InAppMessageContent]
content) (\s :: InAppTemplateResponse
s@InAppTemplateResponse' {} Maybe [InAppMessageContent]
a -> InAppTemplateResponse
s {$sel:content:InAppTemplateResponse' :: Maybe [InAppMessageContent]
content = Maybe [InAppMessageContent]
a} :: InAppTemplateResponse) forall b c a. (b -> c) -> (a -> b) -> a -> c
Prelude.. forall (f :: * -> *) (g :: * -> *) s t a b.
(Functor f, Functor g) =>
AnIso s t a b -> Iso (f s) (g t) (f a) (g b)
Lens.mapping forall s t a b. (Coercible s a, Coercible t b) => Iso s t a b
Lens.coerced

-- | Custom config to be sent to client.
inAppTemplateResponse_customConfig :: Lens.Lens' InAppTemplateResponse (Prelude.Maybe (Prelude.HashMap Prelude.Text Prelude.Text))
inAppTemplateResponse_customConfig :: Lens' InAppTemplateResponse (Maybe (HashMap Text Text))
inAppTemplateResponse_customConfig = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\InAppTemplateResponse' {Maybe (HashMap Text Text)
customConfig :: Maybe (HashMap Text Text)
$sel:customConfig:InAppTemplateResponse' :: InAppTemplateResponse -> Maybe (HashMap Text Text)
customConfig} -> Maybe (HashMap Text Text)
customConfig) (\s :: InAppTemplateResponse
s@InAppTemplateResponse' {} Maybe (HashMap Text Text)
a -> InAppTemplateResponse
s {$sel:customConfig:InAppTemplateResponse' :: Maybe (HashMap Text Text)
customConfig = Maybe (HashMap Text Text)
a} :: InAppTemplateResponse) forall b c a. (b -> c) -> (a -> b) -> a -> c
Prelude.. forall (f :: * -> *) (g :: * -> *) s t a b.
(Functor f, Functor g) =>
AnIso s t a b -> Iso (f s) (g t) (f a) (g b)
Lens.mapping forall s t a b. (Coercible s a, Coercible t b) => Iso s t a b
Lens.coerced

-- | The layout of the message.
inAppTemplateResponse_layout :: Lens.Lens' InAppTemplateResponse (Prelude.Maybe Layout)
inAppTemplateResponse_layout :: Lens' InAppTemplateResponse (Maybe Layout)
inAppTemplateResponse_layout = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\InAppTemplateResponse' {Maybe Layout
layout :: Maybe Layout
$sel:layout:InAppTemplateResponse' :: InAppTemplateResponse -> Maybe Layout
layout} -> Maybe Layout
layout) (\s :: InAppTemplateResponse
s@InAppTemplateResponse' {} Maybe Layout
a -> InAppTemplateResponse
s {$sel:layout:InAppTemplateResponse' :: Maybe Layout
layout = Maybe Layout
a} :: InAppTemplateResponse)

-- | The description of the template.
inAppTemplateResponse_templateDescription :: Lens.Lens' InAppTemplateResponse (Prelude.Maybe Prelude.Text)
inAppTemplateResponse_templateDescription :: Lens' InAppTemplateResponse (Maybe Text)
inAppTemplateResponse_templateDescription = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\InAppTemplateResponse' {Maybe Text
templateDescription :: Maybe Text
$sel:templateDescription:InAppTemplateResponse' :: InAppTemplateResponse -> Maybe Text
templateDescription} -> Maybe Text
templateDescription) (\s :: InAppTemplateResponse
s@InAppTemplateResponse' {} Maybe Text
a -> InAppTemplateResponse
s {$sel:templateDescription:InAppTemplateResponse' :: Maybe Text
templateDescription = Maybe Text
a} :: InAppTemplateResponse)

-- | The version id of the template.
inAppTemplateResponse_version :: Lens.Lens' InAppTemplateResponse (Prelude.Maybe Prelude.Text)
inAppTemplateResponse_version :: Lens' InAppTemplateResponse (Maybe Text)
inAppTemplateResponse_version = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\InAppTemplateResponse' {Maybe Text
version :: Maybe Text
$sel:version:InAppTemplateResponse' :: InAppTemplateResponse -> Maybe Text
version} -> Maybe Text
version) (\s :: InAppTemplateResponse
s@InAppTemplateResponse' {} Maybe Text
a -> InAppTemplateResponse
s {$sel:version:InAppTemplateResponse' :: Maybe Text
version = Maybe Text
a} :: InAppTemplateResponse)

-- | A string-to-string map of key-value pairs that defines the tags to
-- associate with the message template. Each tag consists of a required tag
-- key and an associated tag value.
inAppTemplateResponse_tags :: Lens.Lens' InAppTemplateResponse (Prelude.Maybe (Prelude.HashMap Prelude.Text Prelude.Text))
inAppTemplateResponse_tags :: Lens' InAppTemplateResponse (Maybe (HashMap Text Text))
inAppTemplateResponse_tags = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\InAppTemplateResponse' {Maybe (HashMap Text Text)
tags :: Maybe (HashMap Text Text)
$sel:tags:InAppTemplateResponse' :: InAppTemplateResponse -> Maybe (HashMap Text Text)
tags} -> Maybe (HashMap Text Text)
tags) (\s :: InAppTemplateResponse
s@InAppTemplateResponse' {} Maybe (HashMap Text Text)
a -> InAppTemplateResponse
s {$sel:tags:InAppTemplateResponse' :: Maybe (HashMap Text Text)
tags = Maybe (HashMap Text Text)
a} :: InAppTemplateResponse) forall b c a. (b -> c) -> (a -> b) -> a -> c
Prelude.. forall (f :: * -> *) (g :: * -> *) s t a b.
(Functor f, Functor g) =>
AnIso s t a b -> Iso (f s) (g t) (f a) (g b)
Lens.mapping forall s t a b. (Coercible s a, Coercible t b) => Iso s t a b
Lens.coerced

-- | The last modified date of the template.
inAppTemplateResponse_lastModifiedDate :: Lens.Lens' InAppTemplateResponse Prelude.Text
inAppTemplateResponse_lastModifiedDate :: Lens' InAppTemplateResponse Text
inAppTemplateResponse_lastModifiedDate = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\InAppTemplateResponse' {Text
lastModifiedDate :: Text
$sel:lastModifiedDate:InAppTemplateResponse' :: InAppTemplateResponse -> Text
lastModifiedDate} -> Text
lastModifiedDate) (\s :: InAppTemplateResponse
s@InAppTemplateResponse' {} Text
a -> InAppTemplateResponse
s {$sel:lastModifiedDate:InAppTemplateResponse' :: Text
lastModifiedDate = Text
a} :: InAppTemplateResponse)

-- | The creation date of the template.
inAppTemplateResponse_creationDate :: Lens.Lens' InAppTemplateResponse Prelude.Text
inAppTemplateResponse_creationDate :: Lens' InAppTemplateResponse Text
inAppTemplateResponse_creationDate = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\InAppTemplateResponse' {Text
creationDate :: Text
$sel:creationDate:InAppTemplateResponse' :: InAppTemplateResponse -> Text
creationDate} -> Text
creationDate) (\s :: InAppTemplateResponse
s@InAppTemplateResponse' {} Text
a -> InAppTemplateResponse
s {$sel:creationDate:InAppTemplateResponse' :: Text
creationDate = Text
a} :: InAppTemplateResponse)

-- | The name of the template.
inAppTemplateResponse_templateName :: Lens.Lens' InAppTemplateResponse Prelude.Text
inAppTemplateResponse_templateName :: Lens' InAppTemplateResponse Text
inAppTemplateResponse_templateName = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\InAppTemplateResponse' {Text
templateName :: Text
$sel:templateName:InAppTemplateResponse' :: InAppTemplateResponse -> Text
templateName} -> Text
templateName) (\s :: InAppTemplateResponse
s@InAppTemplateResponse' {} Text
a -> InAppTemplateResponse
s {$sel:templateName:InAppTemplateResponse' :: Text
templateName = Text
a} :: InAppTemplateResponse)

-- | The type of the template.
inAppTemplateResponse_templateType :: Lens.Lens' InAppTemplateResponse TemplateType
inAppTemplateResponse_templateType :: Lens' InAppTemplateResponse TemplateType
inAppTemplateResponse_templateType = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\InAppTemplateResponse' {TemplateType
templateType :: TemplateType
$sel:templateType:InAppTemplateResponse' :: InAppTemplateResponse -> TemplateType
templateType} -> TemplateType
templateType) (\s :: InAppTemplateResponse
s@InAppTemplateResponse' {} TemplateType
a -> InAppTemplateResponse
s {$sel:templateType:InAppTemplateResponse' :: TemplateType
templateType = TemplateType
a} :: InAppTemplateResponse)

instance Data.FromJSON InAppTemplateResponse where
  parseJSON :: Value -> Parser InAppTemplateResponse
parseJSON =
    forall a. String -> (Object -> Parser a) -> Value -> Parser a
Data.withObject
      String
"InAppTemplateResponse"
      ( \Object
x ->
          Maybe Text
-> Maybe [InAppMessageContent]
-> Maybe (HashMap Text Text)
-> Maybe Layout
-> Maybe Text
-> Maybe Text
-> Maybe (HashMap Text Text)
-> Text
-> Text
-> Text
-> TemplateType
-> InAppTemplateResponse
InAppTemplateResponse'
            forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Prelude.<$> (Object
x forall a. FromJSON a => Object -> Key -> Parser (Maybe a)
Data..:? Key
"Arn")
            forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x forall a. FromJSON a => Object -> Key -> Parser (Maybe a)
Data..:? Key
"Content" forall a. Parser (Maybe a) -> a -> Parser a
Data..!= forall a. Monoid a => a
Prelude.mempty)
            forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x forall a. FromJSON a => Object -> Key -> Parser (Maybe a)
Data..:? Key
"CustomConfig" forall a. Parser (Maybe a) -> a -> Parser a
Data..!= forall a. Monoid a => a
Prelude.mempty)
            forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x forall a. FromJSON a => Object -> Key -> Parser (Maybe a)
Data..:? Key
"Layout")
            forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x forall a. FromJSON a => Object -> Key -> Parser (Maybe a)
Data..:? Key
"TemplateDescription")
            forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x forall a. FromJSON a => Object -> Key -> Parser (Maybe a)
Data..:? Key
"Version")
            forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x forall a. FromJSON a => Object -> Key -> Parser (Maybe a)
Data..:? Key
"tags" forall a. Parser (Maybe a) -> a -> Parser a
Data..!= forall a. Monoid a => a
Prelude.mempty)
            forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x forall a. FromJSON a => Object -> Key -> Parser a
Data..: Key
"LastModifiedDate")
            forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x forall a. FromJSON a => Object -> Key -> Parser a
Data..: Key
"CreationDate")
            forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x forall a. FromJSON a => Object -> Key -> Parser a
Data..: Key
"TemplateName")
            forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x forall a. FromJSON a => Object -> Key -> Parser a
Data..: Key
"TemplateType")
      )

instance Prelude.Hashable InAppTemplateResponse where
  hashWithSalt :: Int -> InAppTemplateResponse -> Int
hashWithSalt Int
_salt InAppTemplateResponse' {Maybe [InAppMessageContent]
Maybe Text
Maybe (HashMap Text Text)
Maybe Layout
Text
TemplateType
templateType :: TemplateType
templateName :: Text
creationDate :: Text
lastModifiedDate :: Text
tags :: Maybe (HashMap Text Text)
version :: Maybe Text
templateDescription :: Maybe Text
layout :: Maybe Layout
customConfig :: Maybe (HashMap Text Text)
content :: Maybe [InAppMessageContent]
arn :: Maybe Text
$sel:templateType:InAppTemplateResponse' :: InAppTemplateResponse -> TemplateType
$sel:templateName:InAppTemplateResponse' :: InAppTemplateResponse -> Text
$sel:creationDate:InAppTemplateResponse' :: InAppTemplateResponse -> Text
$sel:lastModifiedDate:InAppTemplateResponse' :: InAppTemplateResponse -> Text
$sel:tags:InAppTemplateResponse' :: InAppTemplateResponse -> Maybe (HashMap Text Text)
$sel:version:InAppTemplateResponse' :: InAppTemplateResponse -> Maybe Text
$sel:templateDescription:InAppTemplateResponse' :: InAppTemplateResponse -> Maybe Text
$sel:layout:InAppTemplateResponse' :: InAppTemplateResponse -> Maybe Layout
$sel:customConfig:InAppTemplateResponse' :: InAppTemplateResponse -> Maybe (HashMap Text Text)
$sel:content:InAppTemplateResponse' :: InAppTemplateResponse -> Maybe [InAppMessageContent]
$sel:arn:InAppTemplateResponse' :: InAppTemplateResponse -> Maybe Text
..} =
    Int
_salt
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe Text
arn
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe [InAppMessageContent]
content
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe (HashMap Text Text)
customConfig
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe Layout
layout
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe Text
templateDescription
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe Text
version
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe (HashMap Text Text)
tags
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Text
lastModifiedDate
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Text
creationDate
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Text
templateName
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` TemplateType
templateType

instance Prelude.NFData InAppTemplateResponse where
  rnf :: InAppTemplateResponse -> ()
rnf InAppTemplateResponse' {Maybe [InAppMessageContent]
Maybe Text
Maybe (HashMap Text Text)
Maybe Layout
Text
TemplateType
templateType :: TemplateType
templateName :: Text
creationDate :: Text
lastModifiedDate :: Text
tags :: Maybe (HashMap Text Text)
version :: Maybe Text
templateDescription :: Maybe Text
layout :: Maybe Layout
customConfig :: Maybe (HashMap Text Text)
content :: Maybe [InAppMessageContent]
arn :: Maybe Text
$sel:templateType:InAppTemplateResponse' :: InAppTemplateResponse -> TemplateType
$sel:templateName:InAppTemplateResponse' :: InAppTemplateResponse -> Text
$sel:creationDate:InAppTemplateResponse' :: InAppTemplateResponse -> Text
$sel:lastModifiedDate:InAppTemplateResponse' :: InAppTemplateResponse -> Text
$sel:tags:InAppTemplateResponse' :: InAppTemplateResponse -> Maybe (HashMap Text Text)
$sel:version:InAppTemplateResponse' :: InAppTemplateResponse -> Maybe Text
$sel:templateDescription:InAppTemplateResponse' :: InAppTemplateResponse -> Maybe Text
$sel:layout:InAppTemplateResponse' :: InAppTemplateResponse -> Maybe Layout
$sel:customConfig:InAppTemplateResponse' :: InAppTemplateResponse -> Maybe (HashMap Text Text)
$sel:content:InAppTemplateResponse' :: InAppTemplateResponse -> Maybe [InAppMessageContent]
$sel:arn:InAppTemplateResponse' :: InAppTemplateResponse -> Maybe Text
..} =
    forall a. NFData a => a -> ()
Prelude.rnf Maybe Text
arn
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe [InAppMessageContent]
content
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe (HashMap Text Text)
customConfig
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe Layout
layout
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe Text
templateDescription
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe Text
version
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe (HashMap Text Text)
tags
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Text
lastModifiedDate
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Text
creationDate
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Text
templateName
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf TemplateType
templateType