amazonka-sesv2-2.0: gen/Amazonka/SESV2/TestRenderEmailTemplate.hs
{-# LANGUAGE DeriveGeneric #-}
{-# LANGUAGE DuplicateRecordFields #-}
{-# LANGUAGE NamedFieldPuns #-}
{-# LANGUAGE OverloadedStrings #-}
{-# LANGUAGE RecordWildCards #-}
{-# LANGUAGE StrictData #-}
{-# LANGUAGE TypeFamilies #-}
{-# LANGUAGE NoImplicitPrelude #-}
{-# OPTIONS_GHC -fno-warn-unused-binds #-}
{-# OPTIONS_GHC -fno-warn-unused-imports #-}
{-# OPTIONS_GHC -fno-warn-unused-matches #-}
-- Derived from AWS service descriptions, licensed under Apache 2.0.
-- |
-- Module : Amazonka.SESV2.TestRenderEmailTemplate
-- Copyright : (c) 2013-2023 Brendan Hay
-- License : Mozilla Public License, v. 2.0.
-- Maintainer : Brendan Hay
-- Stability : auto-generated
-- Portability : non-portable (GHC extensions)
--
-- Creates a preview of the MIME content of an email when provided with a
-- template and a set of replacement data.
--
-- You can execute this operation no more than once per second.
module Amazonka.SESV2.TestRenderEmailTemplate
( -- * Creating a Request
TestRenderEmailTemplate (..),
newTestRenderEmailTemplate,
-- * Request Lenses
testRenderEmailTemplate_templateName,
testRenderEmailTemplate_templateData,
-- * Destructuring the Response
TestRenderEmailTemplateResponse (..),
newTestRenderEmailTemplateResponse,
-- * Response Lenses
testRenderEmailTemplateResponse_httpStatus,
testRenderEmailTemplateResponse_renderedTemplate,
)
where
import qualified Amazonka.Core as Core
import qualified Amazonka.Core.Lens.Internal as Lens
import qualified Amazonka.Data as Data
import qualified Amazonka.Prelude as Prelude
import qualified Amazonka.Request as Request
import qualified Amazonka.Response as Response
import Amazonka.SESV2.Types
-- | >Represents a request to create a preview of the MIME content of an
-- email when provided with a template and a set of replacement data.
--
-- /See:/ 'newTestRenderEmailTemplate' smart constructor.
data TestRenderEmailTemplate = TestRenderEmailTemplate'
{ -- | The name of the template.
templateName :: Prelude.Text,
-- | A list of replacement values to apply to the template. This parameter is
-- a JSON object, typically consisting of key-value pairs in which the keys
-- correspond to replacement tags in the email template.
templateData :: Prelude.Text
}
deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)
-- |
-- Create a value of 'TestRenderEmailTemplate' 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:
--
-- 'templateName', 'testRenderEmailTemplate_templateName' - The name of the template.
--
-- 'templateData', 'testRenderEmailTemplate_templateData' - A list of replacement values to apply to the template. This parameter is
-- a JSON object, typically consisting of key-value pairs in which the keys
-- correspond to replacement tags in the email template.
newTestRenderEmailTemplate ::
-- | 'templateName'
Prelude.Text ->
-- | 'templateData'
Prelude.Text ->
TestRenderEmailTemplate
newTestRenderEmailTemplate
pTemplateName_
pTemplateData_ =
TestRenderEmailTemplate'
{ templateName =
pTemplateName_,
templateData = pTemplateData_
}
-- | The name of the template.
testRenderEmailTemplate_templateName :: Lens.Lens' TestRenderEmailTemplate Prelude.Text
testRenderEmailTemplate_templateName = Lens.lens (\TestRenderEmailTemplate' {templateName} -> templateName) (\s@TestRenderEmailTemplate' {} a -> s {templateName = a} :: TestRenderEmailTemplate)
-- | A list of replacement values to apply to the template. This parameter is
-- a JSON object, typically consisting of key-value pairs in which the keys
-- correspond to replacement tags in the email template.
testRenderEmailTemplate_templateData :: Lens.Lens' TestRenderEmailTemplate Prelude.Text
testRenderEmailTemplate_templateData = Lens.lens (\TestRenderEmailTemplate' {templateData} -> templateData) (\s@TestRenderEmailTemplate' {} a -> s {templateData = a} :: TestRenderEmailTemplate)
instance Core.AWSRequest TestRenderEmailTemplate where
type
AWSResponse TestRenderEmailTemplate =
TestRenderEmailTemplateResponse
request overrides =
Request.postJSON (overrides defaultService)
response =
Response.receiveJSON
( \s h x ->
TestRenderEmailTemplateResponse'
Prelude.<$> (Prelude.pure (Prelude.fromEnum s))
Prelude.<*> (x Data..:> "RenderedTemplate")
)
instance Prelude.Hashable TestRenderEmailTemplate where
hashWithSalt _salt TestRenderEmailTemplate' {..} =
_salt
`Prelude.hashWithSalt` templateName
`Prelude.hashWithSalt` templateData
instance Prelude.NFData TestRenderEmailTemplate where
rnf TestRenderEmailTemplate' {..} =
Prelude.rnf templateName
`Prelude.seq` Prelude.rnf templateData
instance Data.ToHeaders TestRenderEmailTemplate where
toHeaders =
Prelude.const
( Prelude.mconcat
[ "Content-Type"
Data.=# ( "application/x-amz-json-1.1" ::
Prelude.ByteString
)
]
)
instance Data.ToJSON TestRenderEmailTemplate where
toJSON TestRenderEmailTemplate' {..} =
Data.object
( Prelude.catMaybes
[Prelude.Just ("TemplateData" Data..= templateData)]
)
instance Data.ToPath TestRenderEmailTemplate where
toPath TestRenderEmailTemplate' {..} =
Prelude.mconcat
[ "/v2/email/templates/",
Data.toBS templateName,
"/render"
]
instance Data.ToQuery TestRenderEmailTemplate where
toQuery = Prelude.const Prelude.mempty
-- | The following element is returned by the service.
--
-- /See:/ 'newTestRenderEmailTemplateResponse' smart constructor.
data TestRenderEmailTemplateResponse = TestRenderEmailTemplateResponse'
{ -- | The response's http status code.
httpStatus :: Prelude.Int,
-- | The complete MIME message rendered by applying the data in the
-- @TemplateData@ parameter to the template specified in the TemplateName
-- parameter.
renderedTemplate :: Prelude.Text
}
deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)
-- |
-- Create a value of 'TestRenderEmailTemplateResponse' 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:
--
-- 'httpStatus', 'testRenderEmailTemplateResponse_httpStatus' - The response's http status code.
--
-- 'renderedTemplate', 'testRenderEmailTemplateResponse_renderedTemplate' - The complete MIME message rendered by applying the data in the
-- @TemplateData@ parameter to the template specified in the TemplateName
-- parameter.
newTestRenderEmailTemplateResponse ::
-- | 'httpStatus'
Prelude.Int ->
-- | 'renderedTemplate'
Prelude.Text ->
TestRenderEmailTemplateResponse
newTestRenderEmailTemplateResponse
pHttpStatus_
pRenderedTemplate_ =
TestRenderEmailTemplateResponse'
{ httpStatus =
pHttpStatus_,
renderedTemplate = pRenderedTemplate_
}
-- | The response's http status code.
testRenderEmailTemplateResponse_httpStatus :: Lens.Lens' TestRenderEmailTemplateResponse Prelude.Int
testRenderEmailTemplateResponse_httpStatus = Lens.lens (\TestRenderEmailTemplateResponse' {httpStatus} -> httpStatus) (\s@TestRenderEmailTemplateResponse' {} a -> s {httpStatus = a} :: TestRenderEmailTemplateResponse)
-- | The complete MIME message rendered by applying the data in the
-- @TemplateData@ parameter to the template specified in the TemplateName
-- parameter.
testRenderEmailTemplateResponse_renderedTemplate :: Lens.Lens' TestRenderEmailTemplateResponse Prelude.Text
testRenderEmailTemplateResponse_renderedTemplate = Lens.lens (\TestRenderEmailTemplateResponse' {renderedTemplate} -> renderedTemplate) (\s@TestRenderEmailTemplateResponse' {} a -> s {renderedTemplate = a} :: TestRenderEmailTemplateResponse)
instance
Prelude.NFData
TestRenderEmailTemplateResponse
where
rnf TestRenderEmailTemplateResponse' {..} =
Prelude.rnf httpStatus
`Prelude.seq` Prelude.rnf renderedTemplate