{-# 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.SNS.OptInPhoneNumber
(
OptInPhoneNumber (..),
newOptInPhoneNumber,
optInPhoneNumber_phoneNumber,
OptInPhoneNumberResponse (..),
newOptInPhoneNumberResponse,
optInPhoneNumberResponse_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.SNS.Types
data OptInPhoneNumber = OptInPhoneNumber'
{
OptInPhoneNumber -> Text
phoneNumber :: Prelude.Text
}
deriving (OptInPhoneNumber -> OptInPhoneNumber -> Bool
(OptInPhoneNumber -> OptInPhoneNumber -> Bool)
-> (OptInPhoneNumber -> OptInPhoneNumber -> Bool)
-> Eq OptInPhoneNumber
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
$c== :: OptInPhoneNumber -> OptInPhoneNumber -> Bool
== :: OptInPhoneNumber -> OptInPhoneNumber -> Bool
$c/= :: OptInPhoneNumber -> OptInPhoneNumber -> Bool
/= :: OptInPhoneNumber -> OptInPhoneNumber -> Bool
Prelude.Eq, ReadPrec [OptInPhoneNumber]
ReadPrec OptInPhoneNumber
Int -> ReadS OptInPhoneNumber
ReadS [OptInPhoneNumber]
(Int -> ReadS OptInPhoneNumber)
-> ReadS [OptInPhoneNumber]
-> ReadPrec OptInPhoneNumber
-> ReadPrec [OptInPhoneNumber]
-> Read OptInPhoneNumber
forall a.
(Int -> ReadS a)
-> ReadS [a] -> ReadPrec a -> ReadPrec [a] -> Read a
$creadsPrec :: Int -> ReadS OptInPhoneNumber
readsPrec :: Int -> ReadS OptInPhoneNumber
$creadList :: ReadS [OptInPhoneNumber]
readList :: ReadS [OptInPhoneNumber]
$creadPrec :: ReadPrec OptInPhoneNumber
readPrec :: ReadPrec OptInPhoneNumber
$creadListPrec :: ReadPrec [OptInPhoneNumber]
readListPrec :: ReadPrec [OptInPhoneNumber]
Prelude.Read, Int -> OptInPhoneNumber -> ShowS
[OptInPhoneNumber] -> ShowS
OptInPhoneNumber -> String
(Int -> OptInPhoneNumber -> ShowS)
-> (OptInPhoneNumber -> String)
-> ([OptInPhoneNumber] -> ShowS)
-> Show OptInPhoneNumber
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
$cshowsPrec :: Int -> OptInPhoneNumber -> ShowS
showsPrec :: Int -> OptInPhoneNumber -> ShowS
$cshow :: OptInPhoneNumber -> String
show :: OptInPhoneNumber -> String
$cshowList :: [OptInPhoneNumber] -> ShowS
showList :: [OptInPhoneNumber] -> ShowS
Prelude.Show, (forall x. OptInPhoneNumber -> Rep OptInPhoneNumber x)
-> (forall x. Rep OptInPhoneNumber x -> OptInPhoneNumber)
-> Generic OptInPhoneNumber
forall x. Rep OptInPhoneNumber x -> OptInPhoneNumber
forall x. OptInPhoneNumber -> Rep OptInPhoneNumber x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cfrom :: forall x. OptInPhoneNumber -> Rep OptInPhoneNumber x
from :: forall x. OptInPhoneNumber -> Rep OptInPhoneNumber x
$cto :: forall x. Rep OptInPhoneNumber x -> OptInPhoneNumber
to :: forall x. Rep OptInPhoneNumber x -> OptInPhoneNumber
Prelude.Generic)
newOptInPhoneNumber ::
Prelude.Text ->
OptInPhoneNumber
newOptInPhoneNumber :: Text -> OptInPhoneNumber
newOptInPhoneNumber Text
pPhoneNumber_ =
OptInPhoneNumber' {phoneNumber :: Text
phoneNumber = Text
pPhoneNumber_}
optInPhoneNumber_phoneNumber :: Lens.Lens' OptInPhoneNumber Prelude.Text
optInPhoneNumber_phoneNumber :: Lens' OptInPhoneNumber Text
optInPhoneNumber_phoneNumber = (OptInPhoneNumber -> Text)
-> (OptInPhoneNumber -> Text -> OptInPhoneNumber)
-> Lens' OptInPhoneNumber Text
forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\OptInPhoneNumber' {Text
phoneNumber :: OptInPhoneNumber -> Text
phoneNumber :: Text
phoneNumber} -> Text
phoneNumber) (\s :: OptInPhoneNumber
s@OptInPhoneNumber' {} Text
a -> OptInPhoneNumber
s {phoneNumber = a} :: OptInPhoneNumber)
instance Core.AWSRequest OptInPhoneNumber where
type
AWSResponse OptInPhoneNumber =
OptInPhoneNumberResponse
request :: (Service -> Service)
-> OptInPhoneNumber -> Request OptInPhoneNumber
request Service -> Service
overrides =
Service -> OptInPhoneNumber -> Request OptInPhoneNumber
forall a. ToRequest a => Service -> a -> Request a
Request.postQuery (Service -> Service
overrides Service
defaultService)
response :: forall (m :: * -> *).
MonadResource m =>
(ByteStringLazy -> IO ByteStringLazy)
-> Service
-> Proxy OptInPhoneNumber
-> ClientResponse ClientBody
-> m (Either Error (ClientResponse (AWSResponse OptInPhoneNumber)))
response =
Text
-> (Int
-> ResponseHeaders
-> [Node]
-> Either String (AWSResponse OptInPhoneNumber))
-> (ByteStringLazy -> IO ByteStringLazy)
-> Service
-> Proxy OptInPhoneNumber
-> ClientResponse ClientBody
-> m (Either Error (ClientResponse (AWSResponse OptInPhoneNumber)))
forall (m :: * -> *) a.
MonadResource m =>
Text
-> (Int
-> ResponseHeaders -> [Node] -> Either String (AWSResponse a))
-> (ByteStringLazy -> IO ByteStringLazy)
-> Service
-> Proxy a
-> ClientResponse ClientBody
-> m (Either Error (ClientResponse (AWSResponse a)))
Response.receiveXMLWrapper
Text
"OptInPhoneNumberResult"
( \Int
s ResponseHeaders
h [Node]
x ->
Int -> OptInPhoneNumberResponse
OptInPhoneNumberResponse'
(Int -> OptInPhoneNumberResponse)
-> Either String Int -> Either String OptInPhoneNumberResponse
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Prelude.<$> (Int -> Either String Int
forall a. a -> Either String a
forall (f :: * -> *) a. Applicative f => a -> f a
Prelude.pure (Int -> Int
forall a. Enum a => a -> Int
Prelude.fromEnum Int
s))
)
instance Prelude.Hashable OptInPhoneNumber where
hashWithSalt :: Int -> OptInPhoneNumber -> Int
hashWithSalt Int
_salt OptInPhoneNumber' {Text
phoneNumber :: OptInPhoneNumber -> Text
phoneNumber :: Text
..} =
Int
_salt Int -> Text -> Int
forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Text
phoneNumber
instance Prelude.NFData OptInPhoneNumber where
rnf :: OptInPhoneNumber -> ()
rnf OptInPhoneNumber' {Text
phoneNumber :: OptInPhoneNumber -> Text
phoneNumber :: Text
..} = Text -> ()
forall a. NFData a => a -> ()
Prelude.rnf Text
phoneNumber
instance Data.ToHeaders OptInPhoneNumber where
toHeaders :: OptInPhoneNumber -> ResponseHeaders
toHeaders = ResponseHeaders -> OptInPhoneNumber -> ResponseHeaders
forall a b. a -> b -> a
Prelude.const ResponseHeaders
forall a. Monoid a => a
Prelude.mempty
instance Data.ToPath OptInPhoneNumber where
toPath :: OptInPhoneNumber -> ByteString
toPath = ByteString -> OptInPhoneNumber -> ByteString
forall a b. a -> b -> a
Prelude.const ByteString
"/"
instance Data.ToQuery OptInPhoneNumber where
toQuery :: OptInPhoneNumber -> QueryString
toQuery OptInPhoneNumber' {Text
phoneNumber :: OptInPhoneNumber -> Text
phoneNumber :: Text
..} =
[QueryString] -> QueryString
forall a. Monoid a => [a] -> a
Prelude.mconcat
[ ByteString
"Action"
ByteString -> ByteString -> QueryString
forall a. ToQuery a => ByteString -> a -> QueryString
Data.=: (ByteString
"OptInPhoneNumber" :: Prelude.ByteString),
ByteString
"Version"
ByteString -> ByteString -> QueryString
forall a. ToQuery a => ByteString -> a -> QueryString
Data.=: (ByteString
"2010-03-31" :: Prelude.ByteString),
ByteString
"phoneNumber" ByteString -> Text -> QueryString
forall a. ToQuery a => ByteString -> a -> QueryString
Data.=: Text
phoneNumber
]
data OptInPhoneNumberResponse = OptInPhoneNumberResponse'
{
OptInPhoneNumberResponse -> Int
httpStatus :: Prelude.Int
}
deriving (OptInPhoneNumberResponse -> OptInPhoneNumberResponse -> Bool
(OptInPhoneNumberResponse -> OptInPhoneNumberResponse -> Bool)
-> (OptInPhoneNumberResponse -> OptInPhoneNumberResponse -> Bool)
-> Eq OptInPhoneNumberResponse
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
$c== :: OptInPhoneNumberResponse -> OptInPhoneNumberResponse -> Bool
== :: OptInPhoneNumberResponse -> OptInPhoneNumberResponse -> Bool
$c/= :: OptInPhoneNumberResponse -> OptInPhoneNumberResponse -> Bool
/= :: OptInPhoneNumberResponse -> OptInPhoneNumberResponse -> Bool
Prelude.Eq, ReadPrec [OptInPhoneNumberResponse]
ReadPrec OptInPhoneNumberResponse
Int -> ReadS OptInPhoneNumberResponse
ReadS [OptInPhoneNumberResponse]
(Int -> ReadS OptInPhoneNumberResponse)
-> ReadS [OptInPhoneNumberResponse]
-> ReadPrec OptInPhoneNumberResponse
-> ReadPrec [OptInPhoneNumberResponse]
-> Read OptInPhoneNumberResponse
forall a.
(Int -> ReadS a)
-> ReadS [a] -> ReadPrec a -> ReadPrec [a] -> Read a
$creadsPrec :: Int -> ReadS OptInPhoneNumberResponse
readsPrec :: Int -> ReadS OptInPhoneNumberResponse
$creadList :: ReadS [OptInPhoneNumberResponse]
readList :: ReadS [OptInPhoneNumberResponse]
$creadPrec :: ReadPrec OptInPhoneNumberResponse
readPrec :: ReadPrec OptInPhoneNumberResponse
$creadListPrec :: ReadPrec [OptInPhoneNumberResponse]
readListPrec :: ReadPrec [OptInPhoneNumberResponse]
Prelude.Read, Int -> OptInPhoneNumberResponse -> ShowS
[OptInPhoneNumberResponse] -> ShowS
OptInPhoneNumberResponse -> String
(Int -> OptInPhoneNumberResponse -> ShowS)
-> (OptInPhoneNumberResponse -> String)
-> ([OptInPhoneNumberResponse] -> ShowS)
-> Show OptInPhoneNumberResponse
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
$cshowsPrec :: Int -> OptInPhoneNumberResponse -> ShowS
showsPrec :: Int -> OptInPhoneNumberResponse -> ShowS
$cshow :: OptInPhoneNumberResponse -> String
show :: OptInPhoneNumberResponse -> String
$cshowList :: [OptInPhoneNumberResponse] -> ShowS
showList :: [OptInPhoneNumberResponse] -> ShowS
Prelude.Show, (forall x.
OptInPhoneNumberResponse -> Rep OptInPhoneNumberResponse x)
-> (forall x.
Rep OptInPhoneNumberResponse x -> OptInPhoneNumberResponse)
-> Generic OptInPhoneNumberResponse
forall x.
Rep OptInPhoneNumberResponse x -> OptInPhoneNumberResponse
forall x.
OptInPhoneNumberResponse -> Rep OptInPhoneNumberResponse x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cfrom :: forall x.
OptInPhoneNumberResponse -> Rep OptInPhoneNumberResponse x
from :: forall x.
OptInPhoneNumberResponse -> Rep OptInPhoneNumberResponse x
$cto :: forall x.
Rep OptInPhoneNumberResponse x -> OptInPhoneNumberResponse
to :: forall x.
Rep OptInPhoneNumberResponse x -> OptInPhoneNumberResponse
Prelude.Generic)
newOptInPhoneNumberResponse ::
Prelude.Int ->
OptInPhoneNumberResponse
newOptInPhoneNumberResponse :: Int -> OptInPhoneNumberResponse
newOptInPhoneNumberResponse Int
pHttpStatus_ =
OptInPhoneNumberResponse'
{ httpStatus :: Int
httpStatus =
Int
pHttpStatus_
}
optInPhoneNumberResponse_httpStatus :: Lens.Lens' OptInPhoneNumberResponse Prelude.Int
optInPhoneNumberResponse_httpStatus :: Lens' OptInPhoneNumberResponse Int
optInPhoneNumberResponse_httpStatus = (OptInPhoneNumberResponse -> Int)
-> (OptInPhoneNumberResponse -> Int -> OptInPhoneNumberResponse)
-> Lens' OptInPhoneNumberResponse Int
forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\OptInPhoneNumberResponse' {Int
httpStatus :: OptInPhoneNumberResponse -> Int
httpStatus :: Int
httpStatus} -> Int
httpStatus) (\s :: OptInPhoneNumberResponse
s@OptInPhoneNumberResponse' {} Int
a -> OptInPhoneNumberResponse
s {httpStatus = a} :: OptInPhoneNumberResponse)
instance Prelude.NFData OptInPhoneNumberResponse where
rnf :: OptInPhoneNumberResponse -> ()
rnf OptInPhoneNumberResponse' {Int
httpStatus :: OptInPhoneNumberResponse -> Int
httpStatus :: Int
..} =
Int -> ()
forall a. NFData a => a -> ()
Prelude.rnf Int
httpStatus