{-# 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.CognitoIdentityProvider.AdminLinkProviderForUser
(
AdminLinkProviderForUser (..),
newAdminLinkProviderForUser,
adminLinkProviderForUser_userPoolId,
adminLinkProviderForUser_destinationUser,
adminLinkProviderForUser_sourceUser,
AdminLinkProviderForUserResponse (..),
newAdminLinkProviderForUserResponse,
adminLinkProviderForUserResponse_httpStatus,
)
where
import Amazonka.CognitoIdentityProvider.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 AdminLinkProviderForUser = AdminLinkProviderForUser'
{
AdminLinkProviderForUser -> Text
userPoolId :: Prelude.Text,
AdminLinkProviderForUser -> ProviderUserIdentifierType
destinationUser :: ProviderUserIdentifierType,
AdminLinkProviderForUser -> ProviderUserIdentifierType
sourceUser :: ProviderUserIdentifierType
}
deriving (AdminLinkProviderForUser -> AdminLinkProviderForUser -> Bool
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: AdminLinkProviderForUser -> AdminLinkProviderForUser -> Bool
$c/= :: AdminLinkProviderForUser -> AdminLinkProviderForUser -> Bool
== :: AdminLinkProviderForUser -> AdminLinkProviderForUser -> Bool
$c== :: AdminLinkProviderForUser -> AdminLinkProviderForUser -> Bool
Prelude.Eq, ReadPrec [AdminLinkProviderForUser]
ReadPrec AdminLinkProviderForUser
Int -> ReadS AdminLinkProviderForUser
ReadS [AdminLinkProviderForUser]
forall a.
(Int -> ReadS a)
-> ReadS [a] -> ReadPrec a -> ReadPrec [a] -> Read a
readListPrec :: ReadPrec [AdminLinkProviderForUser]
$creadListPrec :: ReadPrec [AdminLinkProviderForUser]
readPrec :: ReadPrec AdminLinkProviderForUser
$creadPrec :: ReadPrec AdminLinkProviderForUser
readList :: ReadS [AdminLinkProviderForUser]
$creadList :: ReadS [AdminLinkProviderForUser]
readsPrec :: Int -> ReadS AdminLinkProviderForUser
$creadsPrec :: Int -> ReadS AdminLinkProviderForUser
Prelude.Read, Int -> AdminLinkProviderForUser -> ShowS
[AdminLinkProviderForUser] -> ShowS
AdminLinkProviderForUser -> String
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [AdminLinkProviderForUser] -> ShowS
$cshowList :: [AdminLinkProviderForUser] -> ShowS
show :: AdminLinkProviderForUser -> String
$cshow :: AdminLinkProviderForUser -> String
showsPrec :: Int -> AdminLinkProviderForUser -> ShowS
$cshowsPrec :: Int -> AdminLinkProviderForUser -> ShowS
Prelude.Show, forall x.
Rep AdminLinkProviderForUser x -> AdminLinkProviderForUser
forall x.
AdminLinkProviderForUser -> Rep AdminLinkProviderForUser x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cto :: forall x.
Rep AdminLinkProviderForUser x -> AdminLinkProviderForUser
$cfrom :: forall x.
AdminLinkProviderForUser -> Rep AdminLinkProviderForUser x
Prelude.Generic)
newAdminLinkProviderForUser ::
Prelude.Text ->
ProviderUserIdentifierType ->
ProviderUserIdentifierType ->
AdminLinkProviderForUser
newAdminLinkProviderForUser :: Text
-> ProviderUserIdentifierType
-> ProviderUserIdentifierType
-> AdminLinkProviderForUser
newAdminLinkProviderForUser
Text
pUserPoolId_
ProviderUserIdentifierType
pDestinationUser_
ProviderUserIdentifierType
pSourceUser_ =
AdminLinkProviderForUser'
{ $sel:userPoolId:AdminLinkProviderForUser' :: Text
userPoolId =
Text
pUserPoolId_,
$sel:destinationUser:AdminLinkProviderForUser' :: ProviderUserIdentifierType
destinationUser = ProviderUserIdentifierType
pDestinationUser_,
$sel:sourceUser:AdminLinkProviderForUser' :: ProviderUserIdentifierType
sourceUser = ProviderUserIdentifierType
pSourceUser_
}
adminLinkProviderForUser_userPoolId :: Lens.Lens' AdminLinkProviderForUser Prelude.Text
adminLinkProviderForUser_userPoolId :: Lens' AdminLinkProviderForUser Text
adminLinkProviderForUser_userPoolId = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\AdminLinkProviderForUser' {Text
userPoolId :: Text
$sel:userPoolId:AdminLinkProviderForUser' :: AdminLinkProviderForUser -> Text
userPoolId} -> Text
userPoolId) (\s :: AdminLinkProviderForUser
s@AdminLinkProviderForUser' {} Text
a -> AdminLinkProviderForUser
s {$sel:userPoolId:AdminLinkProviderForUser' :: Text
userPoolId = Text
a} :: AdminLinkProviderForUser)
adminLinkProviderForUser_destinationUser :: Lens.Lens' AdminLinkProviderForUser ProviderUserIdentifierType
adminLinkProviderForUser_destinationUser :: Lens' AdminLinkProviderForUser ProviderUserIdentifierType
adminLinkProviderForUser_destinationUser = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\AdminLinkProviderForUser' {ProviderUserIdentifierType
destinationUser :: ProviderUserIdentifierType
$sel:destinationUser:AdminLinkProviderForUser' :: AdminLinkProviderForUser -> ProviderUserIdentifierType
destinationUser} -> ProviderUserIdentifierType
destinationUser) (\s :: AdminLinkProviderForUser
s@AdminLinkProviderForUser' {} ProviderUserIdentifierType
a -> AdminLinkProviderForUser
s {$sel:destinationUser:AdminLinkProviderForUser' :: ProviderUserIdentifierType
destinationUser = ProviderUserIdentifierType
a} :: AdminLinkProviderForUser)
adminLinkProviderForUser_sourceUser :: Lens.Lens' AdminLinkProviderForUser ProviderUserIdentifierType
adminLinkProviderForUser_sourceUser :: Lens' AdminLinkProviderForUser ProviderUserIdentifierType
adminLinkProviderForUser_sourceUser = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\AdminLinkProviderForUser' {ProviderUserIdentifierType
sourceUser :: ProviderUserIdentifierType
$sel:sourceUser:AdminLinkProviderForUser' :: AdminLinkProviderForUser -> ProviderUserIdentifierType
sourceUser} -> ProviderUserIdentifierType
sourceUser) (\s :: AdminLinkProviderForUser
s@AdminLinkProviderForUser' {} ProviderUserIdentifierType
a -> AdminLinkProviderForUser
s {$sel:sourceUser:AdminLinkProviderForUser' :: ProviderUserIdentifierType
sourceUser = ProviderUserIdentifierType
a} :: AdminLinkProviderForUser)
instance Core.AWSRequest AdminLinkProviderForUser where
type
AWSResponse AdminLinkProviderForUser =
AdminLinkProviderForUserResponse
request :: (Service -> Service)
-> AdminLinkProviderForUser -> Request AdminLinkProviderForUser
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 AdminLinkProviderForUser
-> ClientResponse ClientBody
-> m (Either
Error (ClientResponse (AWSResponse AdminLinkProviderForUser)))
response =
forall (m :: * -> *) a.
MonadResource m =>
(Int -> ResponseHeaders -> () -> Either String (AWSResponse a))
-> (ByteStringLazy -> IO ByteStringLazy)
-> Service
-> Proxy a
-> ClientResponse ClientBody
-> m (Either Error (ClientResponse (AWSResponse a)))
Response.receiveEmpty
( \Int
s ResponseHeaders
h ()
x ->
Int -> AdminLinkProviderForUserResponse
AdminLinkProviderForUserResponse'
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))
)
instance Prelude.Hashable AdminLinkProviderForUser where
hashWithSalt :: Int -> AdminLinkProviderForUser -> Int
hashWithSalt Int
_salt AdminLinkProviderForUser' {Text
ProviderUserIdentifierType
sourceUser :: ProviderUserIdentifierType
destinationUser :: ProviderUserIdentifierType
userPoolId :: Text
$sel:sourceUser:AdminLinkProviderForUser' :: AdminLinkProviderForUser -> ProviderUserIdentifierType
$sel:destinationUser:AdminLinkProviderForUser' :: AdminLinkProviderForUser -> ProviderUserIdentifierType
$sel:userPoolId:AdminLinkProviderForUser' :: AdminLinkProviderForUser -> Text
..} =
Int
_salt
forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Text
userPoolId
forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` ProviderUserIdentifierType
destinationUser
forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` ProviderUserIdentifierType
sourceUser
instance Prelude.NFData AdminLinkProviderForUser where
rnf :: AdminLinkProviderForUser -> ()
rnf AdminLinkProviderForUser' {Text
ProviderUserIdentifierType
sourceUser :: ProviderUserIdentifierType
destinationUser :: ProviderUserIdentifierType
userPoolId :: Text
$sel:sourceUser:AdminLinkProviderForUser' :: AdminLinkProviderForUser -> ProviderUserIdentifierType
$sel:destinationUser:AdminLinkProviderForUser' :: AdminLinkProviderForUser -> ProviderUserIdentifierType
$sel:userPoolId:AdminLinkProviderForUser' :: AdminLinkProviderForUser -> Text
..} =
forall a. NFData a => a -> ()
Prelude.rnf Text
userPoolId
seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf ProviderUserIdentifierType
destinationUser
seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf ProviderUserIdentifierType
sourceUser
instance Data.ToHeaders AdminLinkProviderForUser where
toHeaders :: AdminLinkProviderForUser -> 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
"AWSCognitoIdentityProviderService.AdminLinkProviderForUser" ::
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 AdminLinkProviderForUser where
toJSON :: AdminLinkProviderForUser -> Value
toJSON AdminLinkProviderForUser' {Text
ProviderUserIdentifierType
sourceUser :: ProviderUserIdentifierType
destinationUser :: ProviderUserIdentifierType
userPoolId :: Text
$sel:sourceUser:AdminLinkProviderForUser' :: AdminLinkProviderForUser -> ProviderUserIdentifierType
$sel:destinationUser:AdminLinkProviderForUser' :: AdminLinkProviderForUser -> ProviderUserIdentifierType
$sel:userPoolId:AdminLinkProviderForUser' :: AdminLinkProviderForUser -> Text
..} =
[Pair] -> Value
Data.object
( forall a. [Maybe a] -> [a]
Prelude.catMaybes
[ forall a. a -> Maybe a
Prelude.Just (Key
"UserPoolId" forall kv v. (KeyValue kv, ToJSON v) => Key -> v -> kv
Data..= Text
userPoolId),
forall a. a -> Maybe a
Prelude.Just
(Key
"DestinationUser" forall kv v. (KeyValue kv, ToJSON v) => Key -> v -> kv
Data..= ProviderUserIdentifierType
destinationUser),
forall a. a -> Maybe a
Prelude.Just (Key
"SourceUser" forall kv v. (KeyValue kv, ToJSON v) => Key -> v -> kv
Data..= ProviderUserIdentifierType
sourceUser)
]
)
instance Data.ToPath AdminLinkProviderForUser where
toPath :: AdminLinkProviderForUser -> ByteString
toPath = forall a b. a -> b -> a
Prelude.const ByteString
"/"
instance Data.ToQuery AdminLinkProviderForUser where
toQuery :: AdminLinkProviderForUser -> QueryString
toQuery = forall a b. a -> b -> a
Prelude.const forall a. Monoid a => a
Prelude.mempty
data AdminLinkProviderForUserResponse = AdminLinkProviderForUserResponse'
{
AdminLinkProviderForUserResponse -> Int
httpStatus :: Prelude.Int
}
deriving (AdminLinkProviderForUserResponse
-> AdminLinkProviderForUserResponse -> Bool
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: AdminLinkProviderForUserResponse
-> AdminLinkProviderForUserResponse -> Bool
$c/= :: AdminLinkProviderForUserResponse
-> AdminLinkProviderForUserResponse -> Bool
== :: AdminLinkProviderForUserResponse
-> AdminLinkProviderForUserResponse -> Bool
$c== :: AdminLinkProviderForUserResponse
-> AdminLinkProviderForUserResponse -> Bool
Prelude.Eq, ReadPrec [AdminLinkProviderForUserResponse]
ReadPrec AdminLinkProviderForUserResponse
Int -> ReadS AdminLinkProviderForUserResponse
ReadS [AdminLinkProviderForUserResponse]
forall a.
(Int -> ReadS a)
-> ReadS [a] -> ReadPrec a -> ReadPrec [a] -> Read a
readListPrec :: ReadPrec [AdminLinkProviderForUserResponse]
$creadListPrec :: ReadPrec [AdminLinkProviderForUserResponse]
readPrec :: ReadPrec AdminLinkProviderForUserResponse
$creadPrec :: ReadPrec AdminLinkProviderForUserResponse
readList :: ReadS [AdminLinkProviderForUserResponse]
$creadList :: ReadS [AdminLinkProviderForUserResponse]
readsPrec :: Int -> ReadS AdminLinkProviderForUserResponse
$creadsPrec :: Int -> ReadS AdminLinkProviderForUserResponse
Prelude.Read, Int -> AdminLinkProviderForUserResponse -> ShowS
[AdminLinkProviderForUserResponse] -> ShowS
AdminLinkProviderForUserResponse -> String
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [AdminLinkProviderForUserResponse] -> ShowS
$cshowList :: [AdminLinkProviderForUserResponse] -> ShowS
show :: AdminLinkProviderForUserResponse -> String
$cshow :: AdminLinkProviderForUserResponse -> String
showsPrec :: Int -> AdminLinkProviderForUserResponse -> ShowS
$cshowsPrec :: Int -> AdminLinkProviderForUserResponse -> ShowS
Prelude.Show, forall x.
Rep AdminLinkProviderForUserResponse x
-> AdminLinkProviderForUserResponse
forall x.
AdminLinkProviderForUserResponse
-> Rep AdminLinkProviderForUserResponse x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cto :: forall x.
Rep AdminLinkProviderForUserResponse x
-> AdminLinkProviderForUserResponse
$cfrom :: forall x.
AdminLinkProviderForUserResponse
-> Rep AdminLinkProviderForUserResponse x
Prelude.Generic)
newAdminLinkProviderForUserResponse ::
Prelude.Int ->
AdminLinkProviderForUserResponse
newAdminLinkProviderForUserResponse :: Int -> AdminLinkProviderForUserResponse
newAdminLinkProviderForUserResponse Int
pHttpStatus_ =
AdminLinkProviderForUserResponse'
{ $sel:httpStatus:AdminLinkProviderForUserResponse' :: Int
httpStatus =
Int
pHttpStatus_
}
adminLinkProviderForUserResponse_httpStatus :: Lens.Lens' AdminLinkProviderForUserResponse Prelude.Int
adminLinkProviderForUserResponse_httpStatus :: Lens' AdminLinkProviderForUserResponse Int
adminLinkProviderForUserResponse_httpStatus = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\AdminLinkProviderForUserResponse' {Int
httpStatus :: Int
$sel:httpStatus:AdminLinkProviderForUserResponse' :: AdminLinkProviderForUserResponse -> Int
httpStatus} -> Int
httpStatus) (\s :: AdminLinkProviderForUserResponse
s@AdminLinkProviderForUserResponse' {} Int
a -> AdminLinkProviderForUserResponse
s {$sel:httpStatus:AdminLinkProviderForUserResponse' :: Int
httpStatus = Int
a} :: AdminLinkProviderForUserResponse)
instance
Prelude.NFData
AdminLinkProviderForUserResponse
where
rnf :: AdminLinkProviderForUserResponse -> ()
rnf AdminLinkProviderForUserResponse' {Int
httpStatus :: Int
$sel:httpStatus:AdminLinkProviderForUserResponse' :: AdminLinkProviderForUserResponse -> Int
..} =
forall a. NFData a => a -> ()
Prelude.rnf Int
httpStatus