{-# 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.AmplifyUiBuilder.RefreshToken
(
RefreshToken (..),
newRefreshToken,
refreshToken_provider,
refreshToken_refreshTokenBody,
RefreshTokenResponse (..),
newRefreshTokenResponse,
refreshTokenResponse_httpStatus,
refreshTokenResponse_accessToken,
refreshTokenResponse_expiresIn,
)
where
import Amazonka.AmplifyUiBuilder.Types
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
data RefreshToken = RefreshToken'
{
RefreshToken -> TokenProviders
provider :: TokenProviders,
RefreshToken -> RefreshTokenRequestBody
refreshTokenBody :: RefreshTokenRequestBody
}
deriving (RefreshToken -> RefreshToken -> Bool
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: RefreshToken -> RefreshToken -> Bool
$c/= :: RefreshToken -> RefreshToken -> Bool
== :: RefreshToken -> RefreshToken -> Bool
$c== :: RefreshToken -> RefreshToken -> Bool
Prelude.Eq, Int -> RefreshToken -> ShowS
[RefreshToken] -> ShowS
RefreshToken -> String
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [RefreshToken] -> ShowS
$cshowList :: [RefreshToken] -> ShowS
show :: RefreshToken -> String
$cshow :: RefreshToken -> String
showsPrec :: Int -> RefreshToken -> ShowS
$cshowsPrec :: Int -> RefreshToken -> ShowS
Prelude.Show, forall x. Rep RefreshToken x -> RefreshToken
forall x. RefreshToken -> Rep RefreshToken x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cto :: forall x. Rep RefreshToken x -> RefreshToken
$cfrom :: forall x. RefreshToken -> Rep RefreshToken x
Prelude.Generic)
newRefreshToken ::
TokenProviders ->
RefreshTokenRequestBody ->
RefreshToken
newRefreshToken :: TokenProviders -> RefreshTokenRequestBody -> RefreshToken
newRefreshToken TokenProviders
pProvider_ RefreshTokenRequestBody
pRefreshTokenBody_ =
RefreshToken'
{ $sel:provider:RefreshToken' :: TokenProviders
provider = TokenProviders
pProvider_,
$sel:refreshTokenBody:RefreshToken' :: RefreshTokenRequestBody
refreshTokenBody = RefreshTokenRequestBody
pRefreshTokenBody_
}
refreshToken_provider :: Lens.Lens' RefreshToken TokenProviders
refreshToken_provider :: Lens' RefreshToken TokenProviders
refreshToken_provider = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\RefreshToken' {TokenProviders
provider :: TokenProviders
$sel:provider:RefreshToken' :: RefreshToken -> TokenProviders
provider} -> TokenProviders
provider) (\s :: RefreshToken
s@RefreshToken' {} TokenProviders
a -> RefreshToken
s {$sel:provider:RefreshToken' :: TokenProviders
provider = TokenProviders
a} :: RefreshToken)
refreshToken_refreshTokenBody :: Lens.Lens' RefreshToken RefreshTokenRequestBody
refreshToken_refreshTokenBody :: Lens' RefreshToken RefreshTokenRequestBody
refreshToken_refreshTokenBody = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\RefreshToken' {RefreshTokenRequestBody
refreshTokenBody :: RefreshTokenRequestBody
$sel:refreshTokenBody:RefreshToken' :: RefreshToken -> RefreshTokenRequestBody
refreshTokenBody} -> RefreshTokenRequestBody
refreshTokenBody) (\s :: RefreshToken
s@RefreshToken' {} RefreshTokenRequestBody
a -> RefreshToken
s {$sel:refreshTokenBody:RefreshToken' :: RefreshTokenRequestBody
refreshTokenBody = RefreshTokenRequestBody
a} :: RefreshToken)
instance Core.AWSRequest RefreshToken where
type AWSResponse RefreshToken = RefreshTokenResponse
request :: (Service -> Service) -> RefreshToken -> Request RefreshToken
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 RefreshToken
-> ClientResponse ClientBody
-> m (Either Error (ClientResponse (AWSResponse RefreshToken)))
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 -> Sensitive Text -> Int -> RefreshTokenResponse
RefreshTokenResponse'
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.<*> (Object
x forall a. FromJSON a => Object -> Key -> Either String a
Data..:> Key
"accessToken")
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x forall a. FromJSON a => Object -> Key -> Either String a
Data..:> Key
"expiresIn")
)
instance Prelude.Hashable RefreshToken where
hashWithSalt :: Int -> RefreshToken -> Int
hashWithSalt Int
_salt RefreshToken' {RefreshTokenRequestBody
TokenProviders
refreshTokenBody :: RefreshTokenRequestBody
provider :: TokenProviders
$sel:refreshTokenBody:RefreshToken' :: RefreshToken -> RefreshTokenRequestBody
$sel:provider:RefreshToken' :: RefreshToken -> TokenProviders
..} =
Int
_salt
forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` TokenProviders
provider
forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` RefreshTokenRequestBody
refreshTokenBody
instance Prelude.NFData RefreshToken where
rnf :: RefreshToken -> ()
rnf RefreshToken' {RefreshTokenRequestBody
TokenProviders
refreshTokenBody :: RefreshTokenRequestBody
provider :: TokenProviders
$sel:refreshTokenBody:RefreshToken' :: RefreshToken -> RefreshTokenRequestBody
$sel:provider:RefreshToken' :: RefreshToken -> TokenProviders
..} =
forall a. NFData a => a -> ()
Prelude.rnf TokenProviders
provider
seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf RefreshTokenRequestBody
refreshTokenBody
instance Data.ToHeaders RefreshToken where
toHeaders :: RefreshToken -> 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 RefreshToken where
toJSON :: RefreshToken -> Value
toJSON RefreshToken' {RefreshTokenRequestBody
TokenProviders
refreshTokenBody :: RefreshTokenRequestBody
provider :: TokenProviders
$sel:refreshTokenBody:RefreshToken' :: RefreshToken -> RefreshTokenRequestBody
$sel:provider:RefreshToken' :: RefreshToken -> TokenProviders
..} =
forall a. ToJSON a => a -> Value
Data.toJSON RefreshTokenRequestBody
refreshTokenBody
instance Data.ToPath RefreshToken where
toPath :: RefreshToken -> ByteString
toPath RefreshToken' {RefreshTokenRequestBody
TokenProviders
refreshTokenBody :: RefreshTokenRequestBody
provider :: TokenProviders
$sel:refreshTokenBody:RefreshToken' :: RefreshToken -> RefreshTokenRequestBody
$sel:provider:RefreshToken' :: RefreshToken -> TokenProviders
..} =
forall a. Monoid a => [a] -> a
Prelude.mconcat
[ByteString
"/tokens/", forall a. ToByteString a => a -> ByteString
Data.toBS TokenProviders
provider, ByteString
"/refresh"]
instance Data.ToQuery RefreshToken where
toQuery :: RefreshToken -> QueryString
toQuery = forall a b. a -> b -> a
Prelude.const forall a. Monoid a => a
Prelude.mempty
data RefreshTokenResponse = RefreshTokenResponse'
{
RefreshTokenResponse -> Int
httpStatus :: Prelude.Int,
RefreshTokenResponse -> Sensitive Text
accessToken :: Data.Sensitive Prelude.Text,
RefreshTokenResponse -> Int
expiresIn :: Prelude.Int
}
deriving (RefreshTokenResponse -> RefreshTokenResponse -> Bool
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: RefreshTokenResponse -> RefreshTokenResponse -> Bool
$c/= :: RefreshTokenResponse -> RefreshTokenResponse -> Bool
== :: RefreshTokenResponse -> RefreshTokenResponse -> Bool
$c== :: RefreshTokenResponse -> RefreshTokenResponse -> Bool
Prelude.Eq, Int -> RefreshTokenResponse -> ShowS
[RefreshTokenResponse] -> ShowS
RefreshTokenResponse -> String
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [RefreshTokenResponse] -> ShowS
$cshowList :: [RefreshTokenResponse] -> ShowS
show :: RefreshTokenResponse -> String
$cshow :: RefreshTokenResponse -> String
showsPrec :: Int -> RefreshTokenResponse -> ShowS
$cshowsPrec :: Int -> RefreshTokenResponse -> ShowS
Prelude.Show, forall x. Rep RefreshTokenResponse x -> RefreshTokenResponse
forall x. RefreshTokenResponse -> Rep RefreshTokenResponse x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cto :: forall x. Rep RefreshTokenResponse x -> RefreshTokenResponse
$cfrom :: forall x. RefreshTokenResponse -> Rep RefreshTokenResponse x
Prelude.Generic)
newRefreshTokenResponse ::
Prelude.Int ->
Prelude.Text ->
Prelude.Int ->
RefreshTokenResponse
newRefreshTokenResponse :: Int -> Text -> Int -> RefreshTokenResponse
newRefreshTokenResponse
Int
pHttpStatus_
Text
pAccessToken_
Int
pExpiresIn_ =
RefreshTokenResponse'
{ $sel:httpStatus:RefreshTokenResponse' :: Int
httpStatus = Int
pHttpStatus_,
$sel:accessToken:RefreshTokenResponse' :: Sensitive Text
accessToken = forall a. Iso' (Sensitive a) a
Data._Sensitive forall t b. AReview t b -> b -> t
Lens.# Text
pAccessToken_,
$sel:expiresIn:RefreshTokenResponse' :: Int
expiresIn = Int
pExpiresIn_
}
refreshTokenResponse_httpStatus :: Lens.Lens' RefreshTokenResponse Prelude.Int
refreshTokenResponse_httpStatus :: Lens' RefreshTokenResponse Int
refreshTokenResponse_httpStatus = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\RefreshTokenResponse' {Int
httpStatus :: Int
$sel:httpStatus:RefreshTokenResponse' :: RefreshTokenResponse -> Int
httpStatus} -> Int
httpStatus) (\s :: RefreshTokenResponse
s@RefreshTokenResponse' {} Int
a -> RefreshTokenResponse
s {$sel:httpStatus:RefreshTokenResponse' :: Int
httpStatus = Int
a} :: RefreshTokenResponse)
refreshTokenResponse_accessToken :: Lens.Lens' RefreshTokenResponse Prelude.Text
refreshTokenResponse_accessToken :: Lens' RefreshTokenResponse Text
refreshTokenResponse_accessToken = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\RefreshTokenResponse' {Sensitive Text
accessToken :: Sensitive Text
$sel:accessToken:RefreshTokenResponse' :: RefreshTokenResponse -> Sensitive Text
accessToken} -> Sensitive Text
accessToken) (\s :: RefreshTokenResponse
s@RefreshTokenResponse' {} Sensitive Text
a -> RefreshTokenResponse
s {$sel:accessToken:RefreshTokenResponse' :: Sensitive Text
accessToken = Sensitive Text
a} :: RefreshTokenResponse) forall b c a. (b -> c) -> (a -> b) -> a -> c
Prelude.. forall a. Iso' (Sensitive a) a
Data._Sensitive
refreshTokenResponse_expiresIn :: Lens.Lens' RefreshTokenResponse Prelude.Int
refreshTokenResponse_expiresIn :: Lens' RefreshTokenResponse Int
refreshTokenResponse_expiresIn = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\RefreshTokenResponse' {Int
expiresIn :: Int
$sel:expiresIn:RefreshTokenResponse' :: RefreshTokenResponse -> Int
expiresIn} -> Int
expiresIn) (\s :: RefreshTokenResponse
s@RefreshTokenResponse' {} Int
a -> RefreshTokenResponse
s {$sel:expiresIn:RefreshTokenResponse' :: Int
expiresIn = Int
a} :: RefreshTokenResponse)
instance Prelude.NFData RefreshTokenResponse where
rnf :: RefreshTokenResponse -> ()
rnf RefreshTokenResponse' {Int
Sensitive Text
expiresIn :: Int
accessToken :: Sensitive Text
httpStatus :: Int
$sel:expiresIn:RefreshTokenResponse' :: RefreshTokenResponse -> Int
$sel:accessToken:RefreshTokenResponse' :: RefreshTokenResponse -> Sensitive Text
$sel:httpStatus:RefreshTokenResponse' :: RefreshTokenResponse -> 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 Sensitive Text
accessToken
seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Int
expiresIn