{-# 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.Pinpoint.CreateVoiceTemplate
(
CreateVoiceTemplate (..),
newCreateVoiceTemplate,
createVoiceTemplate_templateName,
createVoiceTemplate_voiceTemplateRequest,
CreateVoiceTemplateResponse (..),
newCreateVoiceTemplateResponse,
createVoiceTemplateResponse_httpStatus,
createVoiceTemplateResponse_createTemplateMessageBody,
)
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
import qualified Amazonka.Prelude as Prelude
import qualified Amazonka.Request as Request
import qualified Amazonka.Response as Response
data CreateVoiceTemplate = CreateVoiceTemplate'
{
CreateVoiceTemplate -> Text
templateName :: Prelude.Text,
CreateVoiceTemplate -> VoiceTemplateRequest
voiceTemplateRequest :: VoiceTemplateRequest
}
deriving (CreateVoiceTemplate -> CreateVoiceTemplate -> Bool
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: CreateVoiceTemplate -> CreateVoiceTemplate -> Bool
$c/= :: CreateVoiceTemplate -> CreateVoiceTemplate -> Bool
== :: CreateVoiceTemplate -> CreateVoiceTemplate -> Bool
$c== :: CreateVoiceTemplate -> CreateVoiceTemplate -> Bool
Prelude.Eq, ReadPrec [CreateVoiceTemplate]
ReadPrec CreateVoiceTemplate
Int -> ReadS CreateVoiceTemplate
ReadS [CreateVoiceTemplate]
forall a.
(Int -> ReadS a)
-> ReadS [a] -> ReadPrec a -> ReadPrec [a] -> Read a
readListPrec :: ReadPrec [CreateVoiceTemplate]
$creadListPrec :: ReadPrec [CreateVoiceTemplate]
readPrec :: ReadPrec CreateVoiceTemplate
$creadPrec :: ReadPrec CreateVoiceTemplate
readList :: ReadS [CreateVoiceTemplate]
$creadList :: ReadS [CreateVoiceTemplate]
readsPrec :: Int -> ReadS CreateVoiceTemplate
$creadsPrec :: Int -> ReadS CreateVoiceTemplate
Prelude.Read, Int -> CreateVoiceTemplate -> ShowS
[CreateVoiceTemplate] -> ShowS
CreateVoiceTemplate -> String
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [CreateVoiceTemplate] -> ShowS
$cshowList :: [CreateVoiceTemplate] -> ShowS
show :: CreateVoiceTemplate -> String
$cshow :: CreateVoiceTemplate -> String
showsPrec :: Int -> CreateVoiceTemplate -> ShowS
$cshowsPrec :: Int -> CreateVoiceTemplate -> ShowS
Prelude.Show, forall x. Rep CreateVoiceTemplate x -> CreateVoiceTemplate
forall x. CreateVoiceTemplate -> Rep CreateVoiceTemplate x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cto :: forall x. Rep CreateVoiceTemplate x -> CreateVoiceTemplate
$cfrom :: forall x. CreateVoiceTemplate -> Rep CreateVoiceTemplate x
Prelude.Generic)
newCreateVoiceTemplate ::
Prelude.Text ->
VoiceTemplateRequest ->
CreateVoiceTemplate
newCreateVoiceTemplate :: Text -> VoiceTemplateRequest -> CreateVoiceTemplate
newCreateVoiceTemplate
Text
pTemplateName_
VoiceTemplateRequest
pVoiceTemplateRequest_ =
CreateVoiceTemplate'
{ $sel:templateName:CreateVoiceTemplate' :: Text
templateName = Text
pTemplateName_,
$sel:voiceTemplateRequest:CreateVoiceTemplate' :: VoiceTemplateRequest
voiceTemplateRequest = VoiceTemplateRequest
pVoiceTemplateRequest_
}
createVoiceTemplate_templateName :: Lens.Lens' CreateVoiceTemplate Prelude.Text
createVoiceTemplate_templateName :: Lens' CreateVoiceTemplate Text
createVoiceTemplate_templateName = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\CreateVoiceTemplate' {Text
templateName :: Text
$sel:templateName:CreateVoiceTemplate' :: CreateVoiceTemplate -> Text
templateName} -> Text
templateName) (\s :: CreateVoiceTemplate
s@CreateVoiceTemplate' {} Text
a -> CreateVoiceTemplate
s {$sel:templateName:CreateVoiceTemplate' :: Text
templateName = Text
a} :: CreateVoiceTemplate)
createVoiceTemplate_voiceTemplateRequest :: Lens.Lens' CreateVoiceTemplate VoiceTemplateRequest
createVoiceTemplate_voiceTemplateRequest :: Lens' CreateVoiceTemplate VoiceTemplateRequest
createVoiceTemplate_voiceTemplateRequest = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\CreateVoiceTemplate' {VoiceTemplateRequest
voiceTemplateRequest :: VoiceTemplateRequest
$sel:voiceTemplateRequest:CreateVoiceTemplate' :: CreateVoiceTemplate -> VoiceTemplateRequest
voiceTemplateRequest} -> VoiceTemplateRequest
voiceTemplateRequest) (\s :: CreateVoiceTemplate
s@CreateVoiceTemplate' {} VoiceTemplateRequest
a -> CreateVoiceTemplate
s {$sel:voiceTemplateRequest:CreateVoiceTemplate' :: VoiceTemplateRequest
voiceTemplateRequest = VoiceTemplateRequest
a} :: CreateVoiceTemplate)
instance Core.AWSRequest CreateVoiceTemplate where
type
AWSResponse CreateVoiceTemplate =
CreateVoiceTemplateResponse
request :: (Service -> Service)
-> CreateVoiceTemplate -> Request CreateVoiceTemplate
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 CreateVoiceTemplate
-> ClientResponse ClientBody
-> m (Either
Error (ClientResponse (AWSResponse CreateVoiceTemplate)))
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 ->
Int -> CreateTemplateMessageBody -> CreateVoiceTemplateResponse
CreateVoiceTemplateResponse'
forall (f :: * -> *) a b. Functor 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))
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (forall a. FromJSON a => Object -> Either String a
Data.eitherParseJSON Object
x)
)
instance Prelude.Hashable CreateVoiceTemplate where
hashWithSalt :: Int -> CreateVoiceTemplate -> Int
hashWithSalt Int
_salt CreateVoiceTemplate' {Text
VoiceTemplateRequest
voiceTemplateRequest :: VoiceTemplateRequest
templateName :: Text
$sel:voiceTemplateRequest:CreateVoiceTemplate' :: CreateVoiceTemplate -> VoiceTemplateRequest
$sel:templateName:CreateVoiceTemplate' :: CreateVoiceTemplate -> Text
..} =
Int
_salt
forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Text
templateName
forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` VoiceTemplateRequest
voiceTemplateRequest
instance Prelude.NFData CreateVoiceTemplate where
rnf :: CreateVoiceTemplate -> ()
rnf CreateVoiceTemplate' {Text
VoiceTemplateRequest
voiceTemplateRequest :: VoiceTemplateRequest
templateName :: Text
$sel:voiceTemplateRequest:CreateVoiceTemplate' :: CreateVoiceTemplate -> VoiceTemplateRequest
$sel:templateName:CreateVoiceTemplate' :: CreateVoiceTemplate -> Text
..} =
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 VoiceTemplateRequest
voiceTemplateRequest
instance Data.ToHeaders CreateVoiceTemplate where
toHeaders :: CreateVoiceTemplate -> ResponseHeaders
toHeaders =
forall a b. a -> b -> a
Prelude.const
( forall a. Monoid a => [a] -> a
Prelude.mconcat
[ HeaderName
"Content-Type"
forall a. ToHeader a => HeaderName -> a -> ResponseHeaders
Data.=# ( ByteString
"application/x-amz-json-1.1" ::
Prelude.ByteString
)
]
)
instance Data.ToJSON CreateVoiceTemplate where
toJSON :: CreateVoiceTemplate -> Value
toJSON CreateVoiceTemplate' {Text
VoiceTemplateRequest
voiceTemplateRequest :: VoiceTemplateRequest
templateName :: Text
$sel:voiceTemplateRequest:CreateVoiceTemplate' :: CreateVoiceTemplate -> VoiceTemplateRequest
$sel:templateName:CreateVoiceTemplate' :: CreateVoiceTemplate -> Text
..} =
forall a. ToJSON a => a -> Value
Data.toJSON VoiceTemplateRequest
voiceTemplateRequest
instance Data.ToPath CreateVoiceTemplate where
toPath :: CreateVoiceTemplate -> ByteString
toPath CreateVoiceTemplate' {Text
VoiceTemplateRequest
voiceTemplateRequest :: VoiceTemplateRequest
templateName :: Text
$sel:voiceTemplateRequest:CreateVoiceTemplate' :: CreateVoiceTemplate -> VoiceTemplateRequest
$sel:templateName:CreateVoiceTemplate' :: CreateVoiceTemplate -> Text
..} =
forall a. Monoid a => [a] -> a
Prelude.mconcat
[ByteString
"/v1/templates/", forall a. ToByteString a => a -> ByteString
Data.toBS Text
templateName, ByteString
"/voice"]
instance Data.ToQuery CreateVoiceTemplate where
toQuery :: CreateVoiceTemplate -> QueryString
toQuery = forall a b. a -> b -> a
Prelude.const forall a. Monoid a => a
Prelude.mempty
data CreateVoiceTemplateResponse = CreateVoiceTemplateResponse'
{
CreateVoiceTemplateResponse -> Int
httpStatus :: Prelude.Int,
CreateVoiceTemplateResponse -> CreateTemplateMessageBody
createTemplateMessageBody :: CreateTemplateMessageBody
}
deriving (CreateVoiceTemplateResponse -> CreateVoiceTemplateResponse -> Bool
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: CreateVoiceTemplateResponse -> CreateVoiceTemplateResponse -> Bool
$c/= :: CreateVoiceTemplateResponse -> CreateVoiceTemplateResponse -> Bool
== :: CreateVoiceTemplateResponse -> CreateVoiceTemplateResponse -> Bool
$c== :: CreateVoiceTemplateResponse -> CreateVoiceTemplateResponse -> Bool
Prelude.Eq, ReadPrec [CreateVoiceTemplateResponse]
ReadPrec CreateVoiceTemplateResponse
Int -> ReadS CreateVoiceTemplateResponse
ReadS [CreateVoiceTemplateResponse]
forall a.
(Int -> ReadS a)
-> ReadS [a] -> ReadPrec a -> ReadPrec [a] -> Read a
readListPrec :: ReadPrec [CreateVoiceTemplateResponse]
$creadListPrec :: ReadPrec [CreateVoiceTemplateResponse]
readPrec :: ReadPrec CreateVoiceTemplateResponse
$creadPrec :: ReadPrec CreateVoiceTemplateResponse
readList :: ReadS [CreateVoiceTemplateResponse]
$creadList :: ReadS [CreateVoiceTemplateResponse]
readsPrec :: Int -> ReadS CreateVoiceTemplateResponse
$creadsPrec :: Int -> ReadS CreateVoiceTemplateResponse
Prelude.Read, Int -> CreateVoiceTemplateResponse -> ShowS
[CreateVoiceTemplateResponse] -> ShowS
CreateVoiceTemplateResponse -> String
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [CreateVoiceTemplateResponse] -> ShowS
$cshowList :: [CreateVoiceTemplateResponse] -> ShowS
show :: CreateVoiceTemplateResponse -> String
$cshow :: CreateVoiceTemplateResponse -> String
showsPrec :: Int -> CreateVoiceTemplateResponse -> ShowS
$cshowsPrec :: Int -> CreateVoiceTemplateResponse -> ShowS
Prelude.Show, forall x.
Rep CreateVoiceTemplateResponse x -> CreateVoiceTemplateResponse
forall x.
CreateVoiceTemplateResponse -> Rep CreateVoiceTemplateResponse x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cto :: forall x.
Rep CreateVoiceTemplateResponse x -> CreateVoiceTemplateResponse
$cfrom :: forall x.
CreateVoiceTemplateResponse -> Rep CreateVoiceTemplateResponse x
Prelude.Generic)
newCreateVoiceTemplateResponse ::
Prelude.Int ->
CreateTemplateMessageBody ->
CreateVoiceTemplateResponse
newCreateVoiceTemplateResponse :: Int -> CreateTemplateMessageBody -> CreateVoiceTemplateResponse
newCreateVoiceTemplateResponse
Int
pHttpStatus_
CreateTemplateMessageBody
pCreateTemplateMessageBody_ =
CreateVoiceTemplateResponse'
{ $sel:httpStatus:CreateVoiceTemplateResponse' :: Int
httpStatus =
Int
pHttpStatus_,
$sel:createTemplateMessageBody:CreateVoiceTemplateResponse' :: CreateTemplateMessageBody
createTemplateMessageBody =
CreateTemplateMessageBody
pCreateTemplateMessageBody_
}
createVoiceTemplateResponse_httpStatus :: Lens.Lens' CreateVoiceTemplateResponse Prelude.Int
createVoiceTemplateResponse_httpStatus :: Lens' CreateVoiceTemplateResponse Int
createVoiceTemplateResponse_httpStatus = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\CreateVoiceTemplateResponse' {Int
httpStatus :: Int
$sel:httpStatus:CreateVoiceTemplateResponse' :: CreateVoiceTemplateResponse -> Int
httpStatus} -> Int
httpStatus) (\s :: CreateVoiceTemplateResponse
s@CreateVoiceTemplateResponse' {} Int
a -> CreateVoiceTemplateResponse
s {$sel:httpStatus:CreateVoiceTemplateResponse' :: Int
httpStatus = Int
a} :: CreateVoiceTemplateResponse)
createVoiceTemplateResponse_createTemplateMessageBody :: Lens.Lens' CreateVoiceTemplateResponse CreateTemplateMessageBody
createVoiceTemplateResponse_createTemplateMessageBody :: Lens' CreateVoiceTemplateResponse CreateTemplateMessageBody
createVoiceTemplateResponse_createTemplateMessageBody = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\CreateVoiceTemplateResponse' {CreateTemplateMessageBody
createTemplateMessageBody :: CreateTemplateMessageBody
$sel:createTemplateMessageBody:CreateVoiceTemplateResponse' :: CreateVoiceTemplateResponse -> CreateTemplateMessageBody
createTemplateMessageBody} -> CreateTemplateMessageBody
createTemplateMessageBody) (\s :: CreateVoiceTemplateResponse
s@CreateVoiceTemplateResponse' {} CreateTemplateMessageBody
a -> CreateVoiceTemplateResponse
s {$sel:createTemplateMessageBody:CreateVoiceTemplateResponse' :: CreateTemplateMessageBody
createTemplateMessageBody = CreateTemplateMessageBody
a} :: CreateVoiceTemplateResponse)
instance Prelude.NFData CreateVoiceTemplateResponse where
rnf :: CreateVoiceTemplateResponse -> ()
rnf CreateVoiceTemplateResponse' {Int
CreateTemplateMessageBody
createTemplateMessageBody :: CreateTemplateMessageBody
httpStatus :: Int
$sel:createTemplateMessageBody:CreateVoiceTemplateResponse' :: CreateVoiceTemplateResponse -> CreateTemplateMessageBody
$sel:httpStatus:CreateVoiceTemplateResponse' :: CreateVoiceTemplateResponse -> Int
..} =
forall a. NFData a => a -> ()
Prelude.rnf Int
httpStatus
seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf CreateTemplateMessageBody
createTemplateMessageBody