{-# 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 #-}
module Amazonka.SMS.GenerateTemplate
(
GenerateTemplate (..),
newGenerateTemplate,
generateTemplate_appId,
generateTemplate_templateFormat,
GenerateTemplateResponse (..),
newGenerateTemplateResponse,
generateTemplateResponse_s3Location,
generateTemplateResponse_httpStatus,
)
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.SMS.Types
data GenerateTemplate = GenerateTemplate'
{
GenerateTemplate -> Maybe Text
appId :: Prelude.Maybe Prelude.Text,
GenerateTemplate -> Maybe OutputFormat
templateFormat :: Prelude.Maybe OutputFormat
}
deriving (GenerateTemplate -> GenerateTemplate -> Bool
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: GenerateTemplate -> GenerateTemplate -> Bool
$c/= :: GenerateTemplate -> GenerateTemplate -> Bool
== :: GenerateTemplate -> GenerateTemplate -> Bool
$c== :: GenerateTemplate -> GenerateTemplate -> Bool
Prelude.Eq, ReadPrec [GenerateTemplate]
ReadPrec GenerateTemplate
Int -> ReadS GenerateTemplate
ReadS [GenerateTemplate]
forall a.
(Int -> ReadS a)
-> ReadS [a] -> ReadPrec a -> ReadPrec [a] -> Read a
readListPrec :: ReadPrec [GenerateTemplate]
$creadListPrec :: ReadPrec [GenerateTemplate]
readPrec :: ReadPrec GenerateTemplate
$creadPrec :: ReadPrec GenerateTemplate
readList :: ReadS [GenerateTemplate]
$creadList :: ReadS [GenerateTemplate]
readsPrec :: Int -> ReadS GenerateTemplate
$creadsPrec :: Int -> ReadS GenerateTemplate
Prelude.Read, Int -> GenerateTemplate -> ShowS
[GenerateTemplate] -> ShowS
GenerateTemplate -> String
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [GenerateTemplate] -> ShowS
$cshowList :: [GenerateTemplate] -> ShowS
show :: GenerateTemplate -> String
$cshow :: GenerateTemplate -> String
showsPrec :: Int -> GenerateTemplate -> ShowS
$cshowsPrec :: Int -> GenerateTemplate -> ShowS
Prelude.Show, forall x. Rep GenerateTemplate x -> GenerateTemplate
forall x. GenerateTemplate -> Rep GenerateTemplate x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cto :: forall x. Rep GenerateTemplate x -> GenerateTemplate
$cfrom :: forall x. GenerateTemplate -> Rep GenerateTemplate x
Prelude.Generic)
newGenerateTemplate ::
GenerateTemplate
newGenerateTemplate :: GenerateTemplate
newGenerateTemplate =
GenerateTemplate'
{ $sel:appId:GenerateTemplate' :: Maybe Text
appId = forall a. Maybe a
Prelude.Nothing,
$sel:templateFormat:GenerateTemplate' :: Maybe OutputFormat
templateFormat = forall a. Maybe a
Prelude.Nothing
}
generateTemplate_appId :: Lens.Lens' GenerateTemplate (Prelude.Maybe Prelude.Text)
generateTemplate_appId :: Lens' GenerateTemplate (Maybe Text)
generateTemplate_appId = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\GenerateTemplate' {Maybe Text
appId :: Maybe Text
$sel:appId:GenerateTemplate' :: GenerateTemplate -> Maybe Text
appId} -> Maybe Text
appId) (\s :: GenerateTemplate
s@GenerateTemplate' {} Maybe Text
a -> GenerateTemplate
s {$sel:appId:GenerateTemplate' :: Maybe Text
appId = Maybe Text
a} :: GenerateTemplate)
generateTemplate_templateFormat :: Lens.Lens' GenerateTemplate (Prelude.Maybe OutputFormat)
generateTemplate_templateFormat :: Lens' GenerateTemplate (Maybe OutputFormat)
generateTemplate_templateFormat = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\GenerateTemplate' {Maybe OutputFormat
templateFormat :: Maybe OutputFormat
$sel:templateFormat:GenerateTemplate' :: GenerateTemplate -> Maybe OutputFormat
templateFormat} -> Maybe OutputFormat
templateFormat) (\s :: GenerateTemplate
s@GenerateTemplate' {} Maybe OutputFormat
a -> GenerateTemplate
s {$sel:templateFormat:GenerateTemplate' :: Maybe OutputFormat
templateFormat = Maybe OutputFormat
a} :: GenerateTemplate)
instance Core.AWSRequest GenerateTemplate where
type
AWSResponse GenerateTemplate =
GenerateTemplateResponse
request :: (Service -> Service)
-> GenerateTemplate -> Request GenerateTemplate
request Service -> Service
overrides =
forall a. (ToRequest a, ToJSON a) => Service -> a -> Request a
Request.postJSON (Service -> Service
overrides Service
defaultService)
response :: forall (m :: * -> *).
MonadResource m =>
(ByteStringLazy -> IO ByteStringLazy)
-> Service
-> Proxy GenerateTemplate
-> ClientResponse ClientBody
-> m (Either Error (ClientResponse (AWSResponse GenerateTemplate)))
response =
forall (m :: * -> *) a.
MonadResource m =>
(Int -> ResponseHeaders -> Object -> Either String (AWSResponse a))
-> (ByteStringLazy -> IO ByteStringLazy)
-> Service
-> Proxy a
-> ClientResponse ClientBody
-> m (Either Error (ClientResponse (AWSResponse a)))
Response.receiveJSON
( \Int
s ResponseHeaders
h Object
x ->
Maybe S3Location -> Int -> GenerateTemplateResponse
GenerateTemplateResponse'
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Prelude.<$> (Object
x forall a. FromJSON a => Object -> Key -> Either String (Maybe a)
Data..?> Key
"s3Location")
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (forall (f :: * -> *) a. Applicative f => a -> f a
Prelude.pure (forall a. Enum a => a -> Int
Prelude.fromEnum Int
s))
)
instance Prelude.Hashable GenerateTemplate where
hashWithSalt :: Int -> GenerateTemplate -> Int
hashWithSalt Int
_salt GenerateTemplate' {Maybe Text
Maybe OutputFormat
templateFormat :: Maybe OutputFormat
appId :: Maybe Text
$sel:templateFormat:GenerateTemplate' :: GenerateTemplate -> Maybe OutputFormat
$sel:appId:GenerateTemplate' :: GenerateTemplate -> Maybe Text
..} =
Int
_salt
forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe Text
appId
forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe OutputFormat
templateFormat
instance Prelude.NFData GenerateTemplate where
rnf :: GenerateTemplate -> ()
rnf GenerateTemplate' {Maybe Text
Maybe OutputFormat
templateFormat :: Maybe OutputFormat
appId :: Maybe Text
$sel:templateFormat:GenerateTemplate' :: GenerateTemplate -> Maybe OutputFormat
$sel:appId:GenerateTemplate' :: GenerateTemplate -> Maybe Text
..} =
forall a. NFData a => a -> ()
Prelude.rnf Maybe Text
appId
seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe OutputFormat
templateFormat
instance Data.ToHeaders GenerateTemplate where
toHeaders :: GenerateTemplate -> ResponseHeaders
toHeaders =
forall a b. a -> b -> a
Prelude.const
( forall a. Monoid a => [a] -> a
Prelude.mconcat
[ HeaderName
"X-Amz-Target"
forall a. ToHeader a => HeaderName -> a -> ResponseHeaders
Data.=# ( ByteString
"AWSServerMigrationService_V2016_10_24.GenerateTemplate" ::
Prelude.ByteString
),
HeaderName
"Content-Type"
forall a. ToHeader a => HeaderName -> a -> ResponseHeaders
Data.=# ( ByteString
"application/x-amz-json-1.1" ::
Prelude.ByteString
)
]
)
instance Data.ToJSON GenerateTemplate where
toJSON :: GenerateTemplate -> Value
toJSON GenerateTemplate' {Maybe Text
Maybe OutputFormat
templateFormat :: Maybe OutputFormat
appId :: Maybe Text
$sel:templateFormat:GenerateTemplate' :: GenerateTemplate -> Maybe OutputFormat
$sel:appId:GenerateTemplate' :: GenerateTemplate -> Maybe Text
..} =
[Pair] -> Value
Data.object
( forall a. [Maybe a] -> [a]
Prelude.catMaybes
[ (Key
"appId" forall kv v. (KeyValue kv, ToJSON v) => Key -> v -> kv
Data..=) forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Prelude.<$> Maybe Text
appId,
(Key
"templateFormat" forall kv v. (KeyValue kv, ToJSON v) => Key -> v -> kv
Data..=)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Prelude.<$> Maybe OutputFormat
templateFormat
]
)
instance Data.ToPath GenerateTemplate where
toPath :: GenerateTemplate -> ByteString
toPath = forall a b. a -> b -> a
Prelude.const ByteString
"/"
instance Data.ToQuery GenerateTemplate where
toQuery :: GenerateTemplate -> QueryString
toQuery = forall a b. a -> b -> a
Prelude.const forall a. Monoid a => a
Prelude.mempty
data GenerateTemplateResponse = GenerateTemplateResponse'
{
GenerateTemplateResponse -> Maybe S3Location
s3Location :: Prelude.Maybe S3Location,
GenerateTemplateResponse -> Int
httpStatus :: Prelude.Int
}
deriving (GenerateTemplateResponse -> GenerateTemplateResponse -> Bool
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: GenerateTemplateResponse -> GenerateTemplateResponse -> Bool
$c/= :: GenerateTemplateResponse -> GenerateTemplateResponse -> Bool
== :: GenerateTemplateResponse -> GenerateTemplateResponse -> Bool
$c== :: GenerateTemplateResponse -> GenerateTemplateResponse -> Bool
Prelude.Eq, ReadPrec [GenerateTemplateResponse]
ReadPrec GenerateTemplateResponse
Int -> ReadS GenerateTemplateResponse
ReadS [GenerateTemplateResponse]
forall a.
(Int -> ReadS a)
-> ReadS [a] -> ReadPrec a -> ReadPrec [a] -> Read a
readListPrec :: ReadPrec [GenerateTemplateResponse]
$creadListPrec :: ReadPrec [GenerateTemplateResponse]
readPrec :: ReadPrec GenerateTemplateResponse
$creadPrec :: ReadPrec GenerateTemplateResponse
readList :: ReadS [GenerateTemplateResponse]
$creadList :: ReadS [GenerateTemplateResponse]
readsPrec :: Int -> ReadS GenerateTemplateResponse
$creadsPrec :: Int -> ReadS GenerateTemplateResponse
Prelude.Read, Int -> GenerateTemplateResponse -> ShowS
[GenerateTemplateResponse] -> ShowS
GenerateTemplateResponse -> String
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [GenerateTemplateResponse] -> ShowS
$cshowList :: [GenerateTemplateResponse] -> ShowS
show :: GenerateTemplateResponse -> String
$cshow :: GenerateTemplateResponse -> String
showsPrec :: Int -> GenerateTemplateResponse -> ShowS
$cshowsPrec :: Int -> GenerateTemplateResponse -> ShowS
Prelude.Show, forall x.
Rep GenerateTemplateResponse x -> GenerateTemplateResponse
forall x.
GenerateTemplateResponse -> Rep GenerateTemplateResponse x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cto :: forall x.
Rep GenerateTemplateResponse x -> GenerateTemplateResponse
$cfrom :: forall x.
GenerateTemplateResponse -> Rep GenerateTemplateResponse x
Prelude.Generic)
newGenerateTemplateResponse ::
Prelude.Int ->
GenerateTemplateResponse
newGenerateTemplateResponse :: Int -> GenerateTemplateResponse
newGenerateTemplateResponse Int
pHttpStatus_ =
GenerateTemplateResponse'
{ $sel:s3Location:GenerateTemplateResponse' :: Maybe S3Location
s3Location =
forall a. Maybe a
Prelude.Nothing,
$sel:httpStatus:GenerateTemplateResponse' :: Int
httpStatus = Int
pHttpStatus_
}
generateTemplateResponse_s3Location :: Lens.Lens' GenerateTemplateResponse (Prelude.Maybe S3Location)
generateTemplateResponse_s3Location :: Lens' GenerateTemplateResponse (Maybe S3Location)
generateTemplateResponse_s3Location = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\GenerateTemplateResponse' {Maybe S3Location
s3Location :: Maybe S3Location
$sel:s3Location:GenerateTemplateResponse' :: GenerateTemplateResponse -> Maybe S3Location
s3Location} -> Maybe S3Location
s3Location) (\s :: GenerateTemplateResponse
s@GenerateTemplateResponse' {} Maybe S3Location
a -> GenerateTemplateResponse
s {$sel:s3Location:GenerateTemplateResponse' :: Maybe S3Location
s3Location = Maybe S3Location
a} :: GenerateTemplateResponse)
generateTemplateResponse_httpStatus :: Lens.Lens' GenerateTemplateResponse Prelude.Int
generateTemplateResponse_httpStatus :: Lens' GenerateTemplateResponse Int
generateTemplateResponse_httpStatus = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\GenerateTemplateResponse' {Int
httpStatus :: Int
$sel:httpStatus:GenerateTemplateResponse' :: GenerateTemplateResponse -> Int
httpStatus} -> Int
httpStatus) (\s :: GenerateTemplateResponse
s@GenerateTemplateResponse' {} Int
a -> GenerateTemplateResponse
s {$sel:httpStatus:GenerateTemplateResponse' :: Int
httpStatus = Int
a} :: GenerateTemplateResponse)
instance Prelude.NFData GenerateTemplateResponse where
rnf :: GenerateTemplateResponse -> ()
rnf GenerateTemplateResponse' {Int
Maybe S3Location
httpStatus :: Int
s3Location :: Maybe S3Location
$sel:httpStatus:GenerateTemplateResponse' :: GenerateTemplateResponse -> Int
$sel:s3Location:GenerateTemplateResponse' :: GenerateTemplateResponse -> Maybe S3Location
..} =
forall a. NFData a => a -> ()
Prelude.rnf Maybe S3Location
s3Location
seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Int
httpStatus