{-# 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.PinpointSmsVoiceV2.SetVoiceMessageSpendLimitOverride
(
SetVoiceMessageSpendLimitOverride (..),
newSetVoiceMessageSpendLimitOverride,
setVoiceMessageSpendLimitOverride_monthlyLimit,
SetVoiceMessageSpendLimitOverrideResponse (..),
newSetVoiceMessageSpendLimitOverrideResponse,
setVoiceMessageSpendLimitOverrideResponse_monthlyLimit,
setVoiceMessageSpendLimitOverrideResponse_httpStatus,
)
where
import qualified Amazonka.Core as Core
import qualified Amazonka.Core.Lens.Internal as Lens
import qualified Amazonka.Data as Data
import Amazonka.PinpointSmsVoiceV2.Types
import qualified Amazonka.Prelude as Prelude
import qualified Amazonka.Request as Request
import qualified Amazonka.Response as Response
data SetVoiceMessageSpendLimitOverride = SetVoiceMessageSpendLimitOverride'
{
SetVoiceMessageSpendLimitOverride -> Natural
monthlyLimit :: Prelude.Natural
}
deriving (SetVoiceMessageSpendLimitOverride
-> SetVoiceMessageSpendLimitOverride -> Bool
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: SetVoiceMessageSpendLimitOverride
-> SetVoiceMessageSpendLimitOverride -> Bool
$c/= :: SetVoiceMessageSpendLimitOverride
-> SetVoiceMessageSpendLimitOverride -> Bool
== :: SetVoiceMessageSpendLimitOverride
-> SetVoiceMessageSpendLimitOverride -> Bool
$c== :: SetVoiceMessageSpendLimitOverride
-> SetVoiceMessageSpendLimitOverride -> Bool
Prelude.Eq, ReadPrec [SetVoiceMessageSpendLimitOverride]
ReadPrec SetVoiceMessageSpendLimitOverride
Int -> ReadS SetVoiceMessageSpendLimitOverride
ReadS [SetVoiceMessageSpendLimitOverride]
forall a.
(Int -> ReadS a)
-> ReadS [a] -> ReadPrec a -> ReadPrec [a] -> Read a
readListPrec :: ReadPrec [SetVoiceMessageSpendLimitOverride]
$creadListPrec :: ReadPrec [SetVoiceMessageSpendLimitOverride]
readPrec :: ReadPrec SetVoiceMessageSpendLimitOverride
$creadPrec :: ReadPrec SetVoiceMessageSpendLimitOverride
readList :: ReadS [SetVoiceMessageSpendLimitOverride]
$creadList :: ReadS [SetVoiceMessageSpendLimitOverride]
readsPrec :: Int -> ReadS SetVoiceMessageSpendLimitOverride
$creadsPrec :: Int -> ReadS SetVoiceMessageSpendLimitOverride
Prelude.Read, Int -> SetVoiceMessageSpendLimitOverride -> ShowS
[SetVoiceMessageSpendLimitOverride] -> ShowS
SetVoiceMessageSpendLimitOverride -> String
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [SetVoiceMessageSpendLimitOverride] -> ShowS
$cshowList :: [SetVoiceMessageSpendLimitOverride] -> ShowS
show :: SetVoiceMessageSpendLimitOverride -> String
$cshow :: SetVoiceMessageSpendLimitOverride -> String
showsPrec :: Int -> SetVoiceMessageSpendLimitOverride -> ShowS
$cshowsPrec :: Int -> SetVoiceMessageSpendLimitOverride -> ShowS
Prelude.Show, forall x.
Rep SetVoiceMessageSpendLimitOverride x
-> SetVoiceMessageSpendLimitOverride
forall x.
SetVoiceMessageSpendLimitOverride
-> Rep SetVoiceMessageSpendLimitOverride x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cto :: forall x.
Rep SetVoiceMessageSpendLimitOverride x
-> SetVoiceMessageSpendLimitOverride
$cfrom :: forall x.
SetVoiceMessageSpendLimitOverride
-> Rep SetVoiceMessageSpendLimitOverride x
Prelude.Generic)
newSetVoiceMessageSpendLimitOverride ::
Prelude.Natural ->
SetVoiceMessageSpendLimitOverride
newSetVoiceMessageSpendLimitOverride :: Natural -> SetVoiceMessageSpendLimitOverride
newSetVoiceMessageSpendLimitOverride Natural
pMonthlyLimit_ =
SetVoiceMessageSpendLimitOverride'
{ $sel:monthlyLimit:SetVoiceMessageSpendLimitOverride' :: Natural
monthlyLimit =
Natural
pMonthlyLimit_
}
setVoiceMessageSpendLimitOverride_monthlyLimit :: Lens.Lens' SetVoiceMessageSpendLimitOverride Prelude.Natural
setVoiceMessageSpendLimitOverride_monthlyLimit :: Lens' SetVoiceMessageSpendLimitOverride Natural
setVoiceMessageSpendLimitOverride_monthlyLimit = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\SetVoiceMessageSpendLimitOverride' {Natural
monthlyLimit :: Natural
$sel:monthlyLimit:SetVoiceMessageSpendLimitOverride' :: SetVoiceMessageSpendLimitOverride -> Natural
monthlyLimit} -> Natural
monthlyLimit) (\s :: SetVoiceMessageSpendLimitOverride
s@SetVoiceMessageSpendLimitOverride' {} Natural
a -> SetVoiceMessageSpendLimitOverride
s {$sel:monthlyLimit:SetVoiceMessageSpendLimitOverride' :: Natural
monthlyLimit = Natural
a} :: SetVoiceMessageSpendLimitOverride)
instance
Core.AWSRequest
SetVoiceMessageSpendLimitOverride
where
type
AWSResponse SetVoiceMessageSpendLimitOverride =
SetVoiceMessageSpendLimitOverrideResponse
request :: (Service -> Service)
-> SetVoiceMessageSpendLimitOverride
-> Request SetVoiceMessageSpendLimitOverride
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 SetVoiceMessageSpendLimitOverride
-> ClientResponse ClientBody
-> m (Either
Error
(ClientResponse (AWSResponse SetVoiceMessageSpendLimitOverride)))
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 Natural -> Int -> SetVoiceMessageSpendLimitOverrideResponse
SetVoiceMessageSpendLimitOverrideResponse'
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
"MonthlyLimit")
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
SetVoiceMessageSpendLimitOverride
where
hashWithSalt :: Int -> SetVoiceMessageSpendLimitOverride -> Int
hashWithSalt
Int
_salt
SetVoiceMessageSpendLimitOverride' {Natural
monthlyLimit :: Natural
$sel:monthlyLimit:SetVoiceMessageSpendLimitOverride' :: SetVoiceMessageSpendLimitOverride -> Natural
..} =
Int
_salt forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Natural
monthlyLimit
instance
Prelude.NFData
SetVoiceMessageSpendLimitOverride
where
rnf :: SetVoiceMessageSpendLimitOverride -> ()
rnf SetVoiceMessageSpendLimitOverride' {Natural
monthlyLimit :: Natural
$sel:monthlyLimit:SetVoiceMessageSpendLimitOverride' :: SetVoiceMessageSpendLimitOverride -> Natural
..} =
forall a. NFData a => a -> ()
Prelude.rnf Natural
monthlyLimit
instance
Data.ToHeaders
SetVoiceMessageSpendLimitOverride
where
toHeaders :: SetVoiceMessageSpendLimitOverride -> 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
"PinpointSMSVoiceV2.SetVoiceMessageSpendLimitOverride" ::
Prelude.ByteString
),
HeaderName
"Content-Type"
forall a. ToHeader a => HeaderName -> a -> ResponseHeaders
Data.=# ( ByteString
"application/x-amz-json-1.0" ::
Prelude.ByteString
)
]
)
instance
Data.ToJSON
SetVoiceMessageSpendLimitOverride
where
toJSON :: SetVoiceMessageSpendLimitOverride -> Value
toJSON SetVoiceMessageSpendLimitOverride' {Natural
monthlyLimit :: Natural
$sel:monthlyLimit:SetVoiceMessageSpendLimitOverride' :: SetVoiceMessageSpendLimitOverride -> Natural
..} =
[Pair] -> Value
Data.object
( forall a. [Maybe a] -> [a]
Prelude.catMaybes
[forall a. a -> Maybe a
Prelude.Just (Key
"MonthlyLimit" forall kv v. (KeyValue kv, ToJSON v) => Key -> v -> kv
Data..= Natural
monthlyLimit)]
)
instance
Data.ToPath
SetVoiceMessageSpendLimitOverride
where
toPath :: SetVoiceMessageSpendLimitOverride -> ByteString
toPath = forall a b. a -> b -> a
Prelude.const ByteString
"/"
instance
Data.ToQuery
SetVoiceMessageSpendLimitOverride
where
toQuery :: SetVoiceMessageSpendLimitOverride -> QueryString
toQuery = forall a b. a -> b -> a
Prelude.const forall a. Monoid a => a
Prelude.mempty
data SetVoiceMessageSpendLimitOverrideResponse = SetVoiceMessageSpendLimitOverrideResponse'
{
SetVoiceMessageSpendLimitOverrideResponse -> Maybe Natural
monthlyLimit :: Prelude.Maybe Prelude.Natural,
SetVoiceMessageSpendLimitOverrideResponse -> Int
httpStatus :: Prelude.Int
}
deriving (SetVoiceMessageSpendLimitOverrideResponse
-> SetVoiceMessageSpendLimitOverrideResponse -> Bool
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: SetVoiceMessageSpendLimitOverrideResponse
-> SetVoiceMessageSpendLimitOverrideResponse -> Bool
$c/= :: SetVoiceMessageSpendLimitOverrideResponse
-> SetVoiceMessageSpendLimitOverrideResponse -> Bool
== :: SetVoiceMessageSpendLimitOverrideResponse
-> SetVoiceMessageSpendLimitOverrideResponse -> Bool
$c== :: SetVoiceMessageSpendLimitOverrideResponse
-> SetVoiceMessageSpendLimitOverrideResponse -> Bool
Prelude.Eq, ReadPrec [SetVoiceMessageSpendLimitOverrideResponse]
ReadPrec SetVoiceMessageSpendLimitOverrideResponse
Int -> ReadS SetVoiceMessageSpendLimitOverrideResponse
ReadS [SetVoiceMessageSpendLimitOverrideResponse]
forall a.
(Int -> ReadS a)
-> ReadS [a] -> ReadPrec a -> ReadPrec [a] -> Read a
readListPrec :: ReadPrec [SetVoiceMessageSpendLimitOverrideResponse]
$creadListPrec :: ReadPrec [SetVoiceMessageSpendLimitOverrideResponse]
readPrec :: ReadPrec SetVoiceMessageSpendLimitOverrideResponse
$creadPrec :: ReadPrec SetVoiceMessageSpendLimitOverrideResponse
readList :: ReadS [SetVoiceMessageSpendLimitOverrideResponse]
$creadList :: ReadS [SetVoiceMessageSpendLimitOverrideResponse]
readsPrec :: Int -> ReadS SetVoiceMessageSpendLimitOverrideResponse
$creadsPrec :: Int -> ReadS SetVoiceMessageSpendLimitOverrideResponse
Prelude.Read, Int -> SetVoiceMessageSpendLimitOverrideResponse -> ShowS
[SetVoiceMessageSpendLimitOverrideResponse] -> ShowS
SetVoiceMessageSpendLimitOverrideResponse -> String
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [SetVoiceMessageSpendLimitOverrideResponse] -> ShowS
$cshowList :: [SetVoiceMessageSpendLimitOverrideResponse] -> ShowS
show :: SetVoiceMessageSpendLimitOverrideResponse -> String
$cshow :: SetVoiceMessageSpendLimitOverrideResponse -> String
showsPrec :: Int -> SetVoiceMessageSpendLimitOverrideResponse -> ShowS
$cshowsPrec :: Int -> SetVoiceMessageSpendLimitOverrideResponse -> ShowS
Prelude.Show, forall x.
Rep SetVoiceMessageSpendLimitOverrideResponse x
-> SetVoiceMessageSpendLimitOverrideResponse
forall x.
SetVoiceMessageSpendLimitOverrideResponse
-> Rep SetVoiceMessageSpendLimitOverrideResponse x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cto :: forall x.
Rep SetVoiceMessageSpendLimitOverrideResponse x
-> SetVoiceMessageSpendLimitOverrideResponse
$cfrom :: forall x.
SetVoiceMessageSpendLimitOverrideResponse
-> Rep SetVoiceMessageSpendLimitOverrideResponse x
Prelude.Generic)
newSetVoiceMessageSpendLimitOverrideResponse ::
Prelude.Int ->
SetVoiceMessageSpendLimitOverrideResponse
newSetVoiceMessageSpendLimitOverrideResponse :: Int -> SetVoiceMessageSpendLimitOverrideResponse
newSetVoiceMessageSpendLimitOverrideResponse
Int
pHttpStatus_ =
SetVoiceMessageSpendLimitOverrideResponse'
{ $sel:monthlyLimit:SetVoiceMessageSpendLimitOverrideResponse' :: Maybe Natural
monthlyLimit =
forall a. Maybe a
Prelude.Nothing,
$sel:httpStatus:SetVoiceMessageSpendLimitOverrideResponse' :: Int
httpStatus = Int
pHttpStatus_
}
setVoiceMessageSpendLimitOverrideResponse_monthlyLimit :: Lens.Lens' SetVoiceMessageSpendLimitOverrideResponse (Prelude.Maybe Prelude.Natural)
setVoiceMessageSpendLimitOverrideResponse_monthlyLimit :: Lens' SetVoiceMessageSpendLimitOverrideResponse (Maybe Natural)
setVoiceMessageSpendLimitOverrideResponse_monthlyLimit = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\SetVoiceMessageSpendLimitOverrideResponse' {Maybe Natural
monthlyLimit :: Maybe Natural
$sel:monthlyLimit:SetVoiceMessageSpendLimitOverrideResponse' :: SetVoiceMessageSpendLimitOverrideResponse -> Maybe Natural
monthlyLimit} -> Maybe Natural
monthlyLimit) (\s :: SetVoiceMessageSpendLimitOverrideResponse
s@SetVoiceMessageSpendLimitOverrideResponse' {} Maybe Natural
a -> SetVoiceMessageSpendLimitOverrideResponse
s {$sel:monthlyLimit:SetVoiceMessageSpendLimitOverrideResponse' :: Maybe Natural
monthlyLimit = Maybe Natural
a} :: SetVoiceMessageSpendLimitOverrideResponse)
setVoiceMessageSpendLimitOverrideResponse_httpStatus :: Lens.Lens' SetVoiceMessageSpendLimitOverrideResponse Prelude.Int
setVoiceMessageSpendLimitOverrideResponse_httpStatus :: Lens' SetVoiceMessageSpendLimitOverrideResponse Int
setVoiceMessageSpendLimitOverrideResponse_httpStatus = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\SetVoiceMessageSpendLimitOverrideResponse' {Int
httpStatus :: Int
$sel:httpStatus:SetVoiceMessageSpendLimitOverrideResponse' :: SetVoiceMessageSpendLimitOverrideResponse -> Int
httpStatus} -> Int
httpStatus) (\s :: SetVoiceMessageSpendLimitOverrideResponse
s@SetVoiceMessageSpendLimitOverrideResponse' {} Int
a -> SetVoiceMessageSpendLimitOverrideResponse
s {$sel:httpStatus:SetVoiceMessageSpendLimitOverrideResponse' :: Int
httpStatus = Int
a} :: SetVoiceMessageSpendLimitOverrideResponse)
instance
Prelude.NFData
SetVoiceMessageSpendLimitOverrideResponse
where
rnf :: SetVoiceMessageSpendLimitOverrideResponse -> ()
rnf SetVoiceMessageSpendLimitOverrideResponse' {Int
Maybe Natural
httpStatus :: Int
monthlyLimit :: Maybe Natural
$sel:httpStatus:SetVoiceMessageSpendLimitOverrideResponse' :: SetVoiceMessageSpendLimitOverrideResponse -> Int
$sel:monthlyLimit:SetVoiceMessageSpendLimitOverrideResponse' :: SetVoiceMessageSpendLimitOverrideResponse -> Maybe Natural
..} =
forall a. NFData a => a -> ()
Prelude.rnf Maybe Natural
monthlyLimit
seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Int
httpStatus