{-# 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.WorkSpacesWeb.CreateIdentityProvider
(
CreateIdentityProvider (..),
newCreateIdentityProvider,
createIdentityProvider_clientToken,
createIdentityProvider_identityProviderDetails,
createIdentityProvider_identityProviderName,
createIdentityProvider_identityProviderType,
createIdentityProvider_portalArn,
CreateIdentityProviderResponse (..),
newCreateIdentityProviderResponse,
createIdentityProviderResponse_httpStatus,
createIdentityProviderResponse_identityProviderArn,
)
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.WorkSpacesWeb.Types
data CreateIdentityProvider = CreateIdentityProvider'
{
CreateIdentityProvider -> Maybe Text
clientToken :: Prelude.Maybe Prelude.Text,
CreateIdentityProvider -> Sensitive (HashMap Text Text)
identityProviderDetails :: Data.Sensitive (Prelude.HashMap Prelude.Text Prelude.Text),
CreateIdentityProvider -> Sensitive Text
identityProviderName :: Data.Sensitive Prelude.Text,
CreateIdentityProvider -> IdentityProviderType
identityProviderType :: IdentityProviderType,
CreateIdentityProvider -> Text
portalArn :: Prelude.Text
}
deriving (CreateIdentityProvider -> CreateIdentityProvider -> Bool
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: CreateIdentityProvider -> CreateIdentityProvider -> Bool
$c/= :: CreateIdentityProvider -> CreateIdentityProvider -> Bool
== :: CreateIdentityProvider -> CreateIdentityProvider -> Bool
$c== :: CreateIdentityProvider -> CreateIdentityProvider -> Bool
Prelude.Eq, Int -> CreateIdentityProvider -> ShowS
[CreateIdentityProvider] -> ShowS
CreateIdentityProvider -> String
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [CreateIdentityProvider] -> ShowS
$cshowList :: [CreateIdentityProvider] -> ShowS
show :: CreateIdentityProvider -> String
$cshow :: CreateIdentityProvider -> String
showsPrec :: Int -> CreateIdentityProvider -> ShowS
$cshowsPrec :: Int -> CreateIdentityProvider -> ShowS
Prelude.Show, forall x. Rep CreateIdentityProvider x -> CreateIdentityProvider
forall x. CreateIdentityProvider -> Rep CreateIdentityProvider x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cto :: forall x. Rep CreateIdentityProvider x -> CreateIdentityProvider
$cfrom :: forall x. CreateIdentityProvider -> Rep CreateIdentityProvider x
Prelude.Generic)
newCreateIdentityProvider ::
Prelude.Text ->
IdentityProviderType ->
Prelude.Text ->
CreateIdentityProvider
newCreateIdentityProvider :: Text -> IdentityProviderType -> Text -> CreateIdentityProvider
newCreateIdentityProvider
Text
pIdentityProviderName_
IdentityProviderType
pIdentityProviderType_
Text
pPortalArn_ =
CreateIdentityProvider'
{ $sel:clientToken:CreateIdentityProvider' :: Maybe Text
clientToken =
forall a. Maybe a
Prelude.Nothing,
$sel:identityProviderDetails:CreateIdentityProvider' :: Sensitive (HashMap Text Text)
identityProviderDetails = forall a. Monoid a => a
Prelude.mempty,
$sel:identityProviderName:CreateIdentityProvider' :: Sensitive Text
identityProviderName =
forall a. Iso' (Sensitive a) a
Data._Sensitive forall t b. AReview t b -> b -> t
Lens.# Text
pIdentityProviderName_,
$sel:identityProviderType:CreateIdentityProvider' :: IdentityProviderType
identityProviderType = IdentityProviderType
pIdentityProviderType_,
$sel:portalArn:CreateIdentityProvider' :: Text
portalArn = Text
pPortalArn_
}
createIdentityProvider_clientToken :: Lens.Lens' CreateIdentityProvider (Prelude.Maybe Prelude.Text)
createIdentityProvider_clientToken :: Lens' CreateIdentityProvider (Maybe Text)
createIdentityProvider_clientToken = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\CreateIdentityProvider' {Maybe Text
clientToken :: Maybe Text
$sel:clientToken:CreateIdentityProvider' :: CreateIdentityProvider -> Maybe Text
clientToken} -> Maybe Text
clientToken) (\s :: CreateIdentityProvider
s@CreateIdentityProvider' {} Maybe Text
a -> CreateIdentityProvider
s {$sel:clientToken:CreateIdentityProvider' :: Maybe Text
clientToken = Maybe Text
a} :: CreateIdentityProvider)
createIdentityProvider_identityProviderDetails :: Lens.Lens' CreateIdentityProvider (Prelude.HashMap Prelude.Text Prelude.Text)
createIdentityProvider_identityProviderDetails :: Lens' CreateIdentityProvider (HashMap Text Text)
createIdentityProvider_identityProviderDetails = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\CreateIdentityProvider' {Sensitive (HashMap Text Text)
identityProviderDetails :: Sensitive (HashMap Text Text)
$sel:identityProviderDetails:CreateIdentityProvider' :: CreateIdentityProvider -> Sensitive (HashMap Text Text)
identityProviderDetails} -> Sensitive (HashMap Text Text)
identityProviderDetails) (\s :: CreateIdentityProvider
s@CreateIdentityProvider' {} Sensitive (HashMap Text Text)
a -> CreateIdentityProvider
s {$sel:identityProviderDetails:CreateIdentityProvider' :: Sensitive (HashMap Text Text)
identityProviderDetails = Sensitive (HashMap Text Text)
a} :: CreateIdentityProvider) forall b c a. (b -> c) -> (a -> b) -> a -> c
Prelude.. forall a. Iso' (Sensitive a) a
Data._Sensitive forall b c a. (b -> c) -> (a -> b) -> a -> c
Prelude.. forall s t a b. (Coercible s a, Coercible t b) => Iso s t a b
Lens.coerced
createIdentityProvider_identityProviderName :: Lens.Lens' CreateIdentityProvider Prelude.Text
createIdentityProvider_identityProviderName :: Lens' CreateIdentityProvider Text
createIdentityProvider_identityProviderName = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\CreateIdentityProvider' {Sensitive Text
identityProviderName :: Sensitive Text
$sel:identityProviderName:CreateIdentityProvider' :: CreateIdentityProvider -> Sensitive Text
identityProviderName} -> Sensitive Text
identityProviderName) (\s :: CreateIdentityProvider
s@CreateIdentityProvider' {} Sensitive Text
a -> CreateIdentityProvider
s {$sel:identityProviderName:CreateIdentityProvider' :: Sensitive Text
identityProviderName = Sensitive Text
a} :: CreateIdentityProvider) forall b c a. (b -> c) -> (a -> b) -> a -> c
Prelude.. forall a. Iso' (Sensitive a) a
Data._Sensitive
createIdentityProvider_identityProviderType :: Lens.Lens' CreateIdentityProvider IdentityProviderType
createIdentityProvider_identityProviderType :: Lens' CreateIdentityProvider IdentityProviderType
createIdentityProvider_identityProviderType = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\CreateIdentityProvider' {IdentityProviderType
identityProviderType :: IdentityProviderType
$sel:identityProviderType:CreateIdentityProvider' :: CreateIdentityProvider -> IdentityProviderType
identityProviderType} -> IdentityProviderType
identityProviderType) (\s :: CreateIdentityProvider
s@CreateIdentityProvider' {} IdentityProviderType
a -> CreateIdentityProvider
s {$sel:identityProviderType:CreateIdentityProvider' :: IdentityProviderType
identityProviderType = IdentityProviderType
a} :: CreateIdentityProvider)
createIdentityProvider_portalArn :: Lens.Lens' CreateIdentityProvider Prelude.Text
createIdentityProvider_portalArn :: Lens' CreateIdentityProvider Text
createIdentityProvider_portalArn = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\CreateIdentityProvider' {Text
portalArn :: Text
$sel:portalArn:CreateIdentityProvider' :: CreateIdentityProvider -> Text
portalArn} -> Text
portalArn) (\s :: CreateIdentityProvider
s@CreateIdentityProvider' {} Text
a -> CreateIdentityProvider
s {$sel:portalArn:CreateIdentityProvider' :: Text
portalArn = Text
a} :: CreateIdentityProvider)
instance Core.AWSRequest CreateIdentityProvider where
type
AWSResponse CreateIdentityProvider =
CreateIdentityProviderResponse
request :: (Service -> Service)
-> CreateIdentityProvider -> Request CreateIdentityProvider
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 CreateIdentityProvider
-> ClientResponse ClientBody
-> m (Either
Error (ClientResponse (AWSResponse CreateIdentityProvider)))
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 -> Text -> CreateIdentityProviderResponse
CreateIdentityProviderResponse'
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
"identityProviderArn")
)
instance Prelude.Hashable CreateIdentityProvider where
hashWithSalt :: Int -> CreateIdentityProvider -> Int
hashWithSalt Int
_salt CreateIdentityProvider' {Maybe Text
Text
Sensitive Text
Sensitive (HashMap Text Text)
IdentityProviderType
portalArn :: Text
identityProviderType :: IdentityProviderType
identityProviderName :: Sensitive Text
identityProviderDetails :: Sensitive (HashMap Text Text)
clientToken :: Maybe Text
$sel:portalArn:CreateIdentityProvider' :: CreateIdentityProvider -> Text
$sel:identityProviderType:CreateIdentityProvider' :: CreateIdentityProvider -> IdentityProviderType
$sel:identityProviderName:CreateIdentityProvider' :: CreateIdentityProvider -> Sensitive Text
$sel:identityProviderDetails:CreateIdentityProvider' :: CreateIdentityProvider -> Sensitive (HashMap Text Text)
$sel:clientToken:CreateIdentityProvider' :: CreateIdentityProvider -> Maybe Text
..} =
Int
_salt
forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe Text
clientToken
forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Sensitive (HashMap Text Text)
identityProviderDetails
forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Sensitive Text
identityProviderName
forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` IdentityProviderType
identityProviderType
forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Text
portalArn
instance Prelude.NFData CreateIdentityProvider where
rnf :: CreateIdentityProvider -> ()
rnf CreateIdentityProvider' {Maybe Text
Text
Sensitive Text
Sensitive (HashMap Text Text)
IdentityProviderType
portalArn :: Text
identityProviderType :: IdentityProviderType
identityProviderName :: Sensitive Text
identityProviderDetails :: Sensitive (HashMap Text Text)
clientToken :: Maybe Text
$sel:portalArn:CreateIdentityProvider' :: CreateIdentityProvider -> Text
$sel:identityProviderType:CreateIdentityProvider' :: CreateIdentityProvider -> IdentityProviderType
$sel:identityProviderName:CreateIdentityProvider' :: CreateIdentityProvider -> Sensitive Text
$sel:identityProviderDetails:CreateIdentityProvider' :: CreateIdentityProvider -> Sensitive (HashMap Text Text)
$sel:clientToken:CreateIdentityProvider' :: CreateIdentityProvider -> Maybe Text
..} =
forall a. NFData a => a -> ()
Prelude.rnf Maybe Text
clientToken
seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Sensitive (HashMap Text Text)
identityProviderDetails
seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Sensitive Text
identityProviderName
seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf IdentityProviderType
identityProviderType
seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Text
portalArn
instance Data.ToHeaders CreateIdentityProvider where
toHeaders :: CreateIdentityProvider -> 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 CreateIdentityProvider where
toJSON :: CreateIdentityProvider -> Value
toJSON CreateIdentityProvider' {Maybe Text
Text
Sensitive Text
Sensitive (HashMap Text Text)
IdentityProviderType
portalArn :: Text
identityProviderType :: IdentityProviderType
identityProviderName :: Sensitive Text
identityProviderDetails :: Sensitive (HashMap Text Text)
clientToken :: Maybe Text
$sel:portalArn:CreateIdentityProvider' :: CreateIdentityProvider -> Text
$sel:identityProviderType:CreateIdentityProvider' :: CreateIdentityProvider -> IdentityProviderType
$sel:identityProviderName:CreateIdentityProvider' :: CreateIdentityProvider -> Sensitive Text
$sel:identityProviderDetails:CreateIdentityProvider' :: CreateIdentityProvider -> Sensitive (HashMap Text Text)
$sel:clientToken:CreateIdentityProvider' :: CreateIdentityProvider -> Maybe Text
..} =
[Pair] -> Value
Data.object
( forall a. [Maybe a] -> [a]
Prelude.catMaybes
[ (Key
"clientToken" forall kv v. (KeyValue kv, ToJSON v) => Key -> v -> kv
Data..=) forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Prelude.<$> Maybe Text
clientToken,
forall a. a -> Maybe a
Prelude.Just
( Key
"identityProviderDetails"
forall kv v. (KeyValue kv, ToJSON v) => Key -> v -> kv
Data..= Sensitive (HashMap Text Text)
identityProviderDetails
),
forall a. a -> Maybe a
Prelude.Just
( Key
"identityProviderName"
forall kv v. (KeyValue kv, ToJSON v) => Key -> v -> kv
Data..= Sensitive Text
identityProviderName
),
forall a. a -> Maybe a
Prelude.Just
( Key
"identityProviderType"
forall kv v. (KeyValue kv, ToJSON v) => Key -> v -> kv
Data..= IdentityProviderType
identityProviderType
),
forall a. a -> Maybe a
Prelude.Just (Key
"portalArn" forall kv v. (KeyValue kv, ToJSON v) => Key -> v -> kv
Data..= Text
portalArn)
]
)
instance Data.ToPath CreateIdentityProvider where
toPath :: CreateIdentityProvider -> ByteString
toPath = forall a b. a -> b -> a
Prelude.const ByteString
"/identityProviders"
instance Data.ToQuery CreateIdentityProvider where
toQuery :: CreateIdentityProvider -> QueryString
toQuery = forall a b. a -> b -> a
Prelude.const forall a. Monoid a => a
Prelude.mempty
data CreateIdentityProviderResponse = CreateIdentityProviderResponse'
{
CreateIdentityProviderResponse -> Int
httpStatus :: Prelude.Int,
CreateIdentityProviderResponse -> Text
identityProviderArn :: Prelude.Text
}
deriving (CreateIdentityProviderResponse
-> CreateIdentityProviderResponse -> Bool
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: CreateIdentityProviderResponse
-> CreateIdentityProviderResponse -> Bool
$c/= :: CreateIdentityProviderResponse
-> CreateIdentityProviderResponse -> Bool
== :: CreateIdentityProviderResponse
-> CreateIdentityProviderResponse -> Bool
$c== :: CreateIdentityProviderResponse
-> CreateIdentityProviderResponse -> Bool
Prelude.Eq, ReadPrec [CreateIdentityProviderResponse]
ReadPrec CreateIdentityProviderResponse
Int -> ReadS CreateIdentityProviderResponse
ReadS [CreateIdentityProviderResponse]
forall a.
(Int -> ReadS a)
-> ReadS [a] -> ReadPrec a -> ReadPrec [a] -> Read a
readListPrec :: ReadPrec [CreateIdentityProviderResponse]
$creadListPrec :: ReadPrec [CreateIdentityProviderResponse]
readPrec :: ReadPrec CreateIdentityProviderResponse
$creadPrec :: ReadPrec CreateIdentityProviderResponse
readList :: ReadS [CreateIdentityProviderResponse]
$creadList :: ReadS [CreateIdentityProviderResponse]
readsPrec :: Int -> ReadS CreateIdentityProviderResponse
$creadsPrec :: Int -> ReadS CreateIdentityProviderResponse
Prelude.Read, Int -> CreateIdentityProviderResponse -> ShowS
[CreateIdentityProviderResponse] -> ShowS
CreateIdentityProviderResponse -> String
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [CreateIdentityProviderResponse] -> ShowS
$cshowList :: [CreateIdentityProviderResponse] -> ShowS
show :: CreateIdentityProviderResponse -> String
$cshow :: CreateIdentityProviderResponse -> String
showsPrec :: Int -> CreateIdentityProviderResponse -> ShowS
$cshowsPrec :: Int -> CreateIdentityProviderResponse -> ShowS
Prelude.Show, forall x.
Rep CreateIdentityProviderResponse x
-> CreateIdentityProviderResponse
forall x.
CreateIdentityProviderResponse
-> Rep CreateIdentityProviderResponse x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cto :: forall x.
Rep CreateIdentityProviderResponse x
-> CreateIdentityProviderResponse
$cfrom :: forall x.
CreateIdentityProviderResponse
-> Rep CreateIdentityProviderResponse x
Prelude.Generic)
newCreateIdentityProviderResponse ::
Prelude.Int ->
Prelude.Text ->
CreateIdentityProviderResponse
newCreateIdentityProviderResponse :: Int -> Text -> CreateIdentityProviderResponse
newCreateIdentityProviderResponse
Int
pHttpStatus_
Text
pIdentityProviderArn_ =
CreateIdentityProviderResponse'
{ $sel:httpStatus:CreateIdentityProviderResponse' :: Int
httpStatus =
Int
pHttpStatus_,
$sel:identityProviderArn:CreateIdentityProviderResponse' :: Text
identityProviderArn = Text
pIdentityProviderArn_
}
createIdentityProviderResponse_httpStatus :: Lens.Lens' CreateIdentityProviderResponse Prelude.Int
createIdentityProviderResponse_httpStatus :: Lens' CreateIdentityProviderResponse Int
createIdentityProviderResponse_httpStatus = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\CreateIdentityProviderResponse' {Int
httpStatus :: Int
$sel:httpStatus:CreateIdentityProviderResponse' :: CreateIdentityProviderResponse -> Int
httpStatus} -> Int
httpStatus) (\s :: CreateIdentityProviderResponse
s@CreateIdentityProviderResponse' {} Int
a -> CreateIdentityProviderResponse
s {$sel:httpStatus:CreateIdentityProviderResponse' :: Int
httpStatus = Int
a} :: CreateIdentityProviderResponse)
createIdentityProviderResponse_identityProviderArn :: Lens.Lens' CreateIdentityProviderResponse Prelude.Text
createIdentityProviderResponse_identityProviderArn :: Lens' CreateIdentityProviderResponse Text
createIdentityProviderResponse_identityProviderArn = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\CreateIdentityProviderResponse' {Text
identityProviderArn :: Text
$sel:identityProviderArn:CreateIdentityProviderResponse' :: CreateIdentityProviderResponse -> Text
identityProviderArn} -> Text
identityProviderArn) (\s :: CreateIdentityProviderResponse
s@CreateIdentityProviderResponse' {} Text
a -> CreateIdentityProviderResponse
s {$sel:identityProviderArn:CreateIdentityProviderResponse' :: Text
identityProviderArn = Text
a} :: CreateIdentityProviderResponse)
instance
Prelude.NFData
CreateIdentityProviderResponse
where
rnf :: CreateIdentityProviderResponse -> ()
rnf CreateIdentityProviderResponse' {Int
Text
identityProviderArn :: Text
httpStatus :: Int
$sel:identityProviderArn:CreateIdentityProviderResponse' :: CreateIdentityProviderResponse -> Text
$sel:httpStatus:CreateIdentityProviderResponse' :: CreateIdentityProviderResponse -> 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 Text
identityProviderArn