{-# 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.Connect.CreateInstance
(
CreateInstance (..),
newCreateInstance,
createInstance_clientToken,
createInstance_directoryId,
createInstance_instanceAlias,
createInstance_identityManagementType,
createInstance_inboundCallsEnabled,
createInstance_outboundCallsEnabled,
CreateInstanceResponse (..),
newCreateInstanceResponse,
createInstanceResponse_arn,
createInstanceResponse_id,
createInstanceResponse_httpStatus,
)
where
import Amazonka.Connect.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 CreateInstance = CreateInstance'
{
CreateInstance -> Maybe Text
clientToken :: Prelude.Maybe Prelude.Text,
CreateInstance -> Maybe Text
directoryId :: Prelude.Maybe Prelude.Text,
CreateInstance -> Maybe (Sensitive Text)
instanceAlias :: Prelude.Maybe (Data.Sensitive Prelude.Text),
CreateInstance -> DirectoryType
identityManagementType :: DirectoryType,
CreateInstance -> Bool
inboundCallsEnabled :: Prelude.Bool,
CreateInstance -> Bool
outboundCallsEnabled :: Prelude.Bool
}
deriving (CreateInstance -> CreateInstance -> Bool
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: CreateInstance -> CreateInstance -> Bool
$c/= :: CreateInstance -> CreateInstance -> Bool
== :: CreateInstance -> CreateInstance -> Bool
$c== :: CreateInstance -> CreateInstance -> Bool
Prelude.Eq, Int -> CreateInstance -> ShowS
[CreateInstance] -> ShowS
CreateInstance -> String
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [CreateInstance] -> ShowS
$cshowList :: [CreateInstance] -> ShowS
show :: CreateInstance -> String
$cshow :: CreateInstance -> String
showsPrec :: Int -> CreateInstance -> ShowS
$cshowsPrec :: Int -> CreateInstance -> ShowS
Prelude.Show, forall x. Rep CreateInstance x -> CreateInstance
forall x. CreateInstance -> Rep CreateInstance x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cto :: forall x. Rep CreateInstance x -> CreateInstance
$cfrom :: forall x. CreateInstance -> Rep CreateInstance x
Prelude.Generic)
newCreateInstance ::
DirectoryType ->
Prelude.Bool ->
Prelude.Bool ->
CreateInstance
newCreateInstance :: DirectoryType -> Bool -> Bool -> CreateInstance
newCreateInstance
DirectoryType
pIdentityManagementType_
Bool
pInboundCallsEnabled_
Bool
pOutboundCallsEnabled_ =
CreateInstance'
{ $sel:clientToken:CreateInstance' :: Maybe Text
clientToken = forall a. Maybe a
Prelude.Nothing,
$sel:directoryId:CreateInstance' :: Maybe Text
directoryId = forall a. Maybe a
Prelude.Nothing,
$sel:instanceAlias:CreateInstance' :: Maybe (Sensitive Text)
instanceAlias = forall a. Maybe a
Prelude.Nothing,
$sel:identityManagementType:CreateInstance' :: DirectoryType
identityManagementType = DirectoryType
pIdentityManagementType_,
$sel:inboundCallsEnabled:CreateInstance' :: Bool
inboundCallsEnabled = Bool
pInboundCallsEnabled_,
$sel:outboundCallsEnabled:CreateInstance' :: Bool
outboundCallsEnabled = Bool
pOutboundCallsEnabled_
}
createInstance_clientToken :: Lens.Lens' CreateInstance (Prelude.Maybe Prelude.Text)
createInstance_clientToken :: Lens' CreateInstance (Maybe Text)
createInstance_clientToken = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\CreateInstance' {Maybe Text
clientToken :: Maybe Text
$sel:clientToken:CreateInstance' :: CreateInstance -> Maybe Text
clientToken} -> Maybe Text
clientToken) (\s :: CreateInstance
s@CreateInstance' {} Maybe Text
a -> CreateInstance
s {$sel:clientToken:CreateInstance' :: Maybe Text
clientToken = Maybe Text
a} :: CreateInstance)
createInstance_directoryId :: Lens.Lens' CreateInstance (Prelude.Maybe Prelude.Text)
createInstance_directoryId :: Lens' CreateInstance (Maybe Text)
createInstance_directoryId = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\CreateInstance' {Maybe Text
directoryId :: Maybe Text
$sel:directoryId:CreateInstance' :: CreateInstance -> Maybe Text
directoryId} -> Maybe Text
directoryId) (\s :: CreateInstance
s@CreateInstance' {} Maybe Text
a -> CreateInstance
s {$sel:directoryId:CreateInstance' :: Maybe Text
directoryId = Maybe Text
a} :: CreateInstance)
createInstance_instanceAlias :: Lens.Lens' CreateInstance (Prelude.Maybe Prelude.Text)
createInstance_instanceAlias :: Lens' CreateInstance (Maybe Text)
createInstance_instanceAlias = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\CreateInstance' {Maybe (Sensitive Text)
instanceAlias :: Maybe (Sensitive Text)
$sel:instanceAlias:CreateInstance' :: CreateInstance -> Maybe (Sensitive Text)
instanceAlias} -> Maybe (Sensitive Text)
instanceAlias) (\s :: CreateInstance
s@CreateInstance' {} Maybe (Sensitive Text)
a -> CreateInstance
s {$sel:instanceAlias:CreateInstance' :: Maybe (Sensitive Text)
instanceAlias = Maybe (Sensitive Text)
a} :: CreateInstance) forall b c a. (b -> c) -> (a -> b) -> a -> c
Prelude.. forall (f :: * -> *) (g :: * -> *) s t a b.
(Functor f, Functor g) =>
AnIso s t a b -> Iso (f s) (g t) (f a) (g b)
Lens.mapping forall a. Iso' (Sensitive a) a
Data._Sensitive
createInstance_identityManagementType :: Lens.Lens' CreateInstance DirectoryType
createInstance_identityManagementType :: Lens' CreateInstance DirectoryType
createInstance_identityManagementType = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\CreateInstance' {DirectoryType
identityManagementType :: DirectoryType
$sel:identityManagementType:CreateInstance' :: CreateInstance -> DirectoryType
identityManagementType} -> DirectoryType
identityManagementType) (\s :: CreateInstance
s@CreateInstance' {} DirectoryType
a -> CreateInstance
s {$sel:identityManagementType:CreateInstance' :: DirectoryType
identityManagementType = DirectoryType
a} :: CreateInstance)
createInstance_inboundCallsEnabled :: Lens.Lens' CreateInstance Prelude.Bool
createInstance_inboundCallsEnabled :: Lens' CreateInstance Bool
createInstance_inboundCallsEnabled = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\CreateInstance' {Bool
inboundCallsEnabled :: Bool
$sel:inboundCallsEnabled:CreateInstance' :: CreateInstance -> Bool
inboundCallsEnabled} -> Bool
inboundCallsEnabled) (\s :: CreateInstance
s@CreateInstance' {} Bool
a -> CreateInstance
s {$sel:inboundCallsEnabled:CreateInstance' :: Bool
inboundCallsEnabled = Bool
a} :: CreateInstance)
createInstance_outboundCallsEnabled :: Lens.Lens' CreateInstance Prelude.Bool
createInstance_outboundCallsEnabled :: Lens' CreateInstance Bool
createInstance_outboundCallsEnabled = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\CreateInstance' {Bool
outboundCallsEnabled :: Bool
$sel:outboundCallsEnabled:CreateInstance' :: CreateInstance -> Bool
outboundCallsEnabled} -> Bool
outboundCallsEnabled) (\s :: CreateInstance
s@CreateInstance' {} Bool
a -> CreateInstance
s {$sel:outboundCallsEnabled:CreateInstance' :: Bool
outboundCallsEnabled = Bool
a} :: CreateInstance)
instance Core.AWSRequest CreateInstance where
type
AWSResponse CreateInstance =
CreateInstanceResponse
request :: (Service -> Service) -> CreateInstance -> Request CreateInstance
request Service -> Service
overrides =
forall a. (ToRequest a, ToJSON a) => Service -> a -> Request a
Request.putJSON (Service -> Service
overrides Service
defaultService)
response :: forall (m :: * -> *).
MonadResource m =>
(ByteStringLazy -> IO ByteStringLazy)
-> Service
-> Proxy CreateInstance
-> ClientResponse ClientBody
-> m (Either Error (ClientResponse (AWSResponse CreateInstance)))
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 Text -> Maybe Text -> Int -> CreateInstanceResponse
CreateInstanceResponse'
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
"Arn")
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x forall a. FromJSON a => Object -> Key -> Either String (Maybe a)
Data..?> Key
"Id")
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 CreateInstance where
hashWithSalt :: Int -> CreateInstance -> Int
hashWithSalt Int
_salt CreateInstance' {Bool
Maybe Text
Maybe (Sensitive Text)
DirectoryType
outboundCallsEnabled :: Bool
inboundCallsEnabled :: Bool
identityManagementType :: DirectoryType
instanceAlias :: Maybe (Sensitive Text)
directoryId :: Maybe Text
clientToken :: Maybe Text
$sel:outboundCallsEnabled:CreateInstance' :: CreateInstance -> Bool
$sel:inboundCallsEnabled:CreateInstance' :: CreateInstance -> Bool
$sel:identityManagementType:CreateInstance' :: CreateInstance -> DirectoryType
$sel:instanceAlias:CreateInstance' :: CreateInstance -> Maybe (Sensitive Text)
$sel:directoryId:CreateInstance' :: CreateInstance -> Maybe Text
$sel:clientToken:CreateInstance' :: CreateInstance -> 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` Maybe Text
directoryId
forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe (Sensitive Text)
instanceAlias
forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` DirectoryType
identityManagementType
forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Bool
inboundCallsEnabled
forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Bool
outboundCallsEnabled
instance Prelude.NFData CreateInstance where
rnf :: CreateInstance -> ()
rnf CreateInstance' {Bool
Maybe Text
Maybe (Sensitive Text)
DirectoryType
outboundCallsEnabled :: Bool
inboundCallsEnabled :: Bool
identityManagementType :: DirectoryType
instanceAlias :: Maybe (Sensitive Text)
directoryId :: Maybe Text
clientToken :: Maybe Text
$sel:outboundCallsEnabled:CreateInstance' :: CreateInstance -> Bool
$sel:inboundCallsEnabled:CreateInstance' :: CreateInstance -> Bool
$sel:identityManagementType:CreateInstance' :: CreateInstance -> DirectoryType
$sel:instanceAlias:CreateInstance' :: CreateInstance -> Maybe (Sensitive Text)
$sel:directoryId:CreateInstance' :: CreateInstance -> Maybe Text
$sel:clientToken:CreateInstance' :: CreateInstance -> 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 Maybe Text
directoryId
seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe (Sensitive Text)
instanceAlias
seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf DirectoryType
identityManagementType
seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Bool
inboundCallsEnabled
seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Bool
outboundCallsEnabled
instance Data.ToHeaders CreateInstance where
toHeaders :: CreateInstance -> 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 CreateInstance where
toJSON :: CreateInstance -> Value
toJSON CreateInstance' {Bool
Maybe Text
Maybe (Sensitive Text)
DirectoryType
outboundCallsEnabled :: Bool
inboundCallsEnabled :: Bool
identityManagementType :: DirectoryType
instanceAlias :: Maybe (Sensitive Text)
directoryId :: Maybe Text
clientToken :: Maybe Text
$sel:outboundCallsEnabled:CreateInstance' :: CreateInstance -> Bool
$sel:inboundCallsEnabled:CreateInstance' :: CreateInstance -> Bool
$sel:identityManagementType:CreateInstance' :: CreateInstance -> DirectoryType
$sel:instanceAlias:CreateInstance' :: CreateInstance -> Maybe (Sensitive Text)
$sel:directoryId:CreateInstance' :: CreateInstance -> Maybe Text
$sel:clientToken:CreateInstance' :: CreateInstance -> 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,
(Key
"DirectoryId" 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
directoryId,
(Key
"InstanceAlias" 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 (Sensitive Text)
instanceAlias,
forall a. a -> Maybe a
Prelude.Just
( Key
"IdentityManagementType"
forall kv v. (KeyValue kv, ToJSON v) => Key -> v -> kv
Data..= DirectoryType
identityManagementType
),
forall a. a -> Maybe a
Prelude.Just
(Key
"InboundCallsEnabled" forall kv v. (KeyValue kv, ToJSON v) => Key -> v -> kv
Data..= Bool
inboundCallsEnabled),
forall a. a -> Maybe a
Prelude.Just
( Key
"OutboundCallsEnabled"
forall kv v. (KeyValue kv, ToJSON v) => Key -> v -> kv
Data..= Bool
outboundCallsEnabled
)
]
)
instance Data.ToPath CreateInstance where
toPath :: CreateInstance -> ByteString
toPath = forall a b. a -> b -> a
Prelude.const ByteString
"/instance"
instance Data.ToQuery CreateInstance where
toQuery :: CreateInstance -> QueryString
toQuery = forall a b. a -> b -> a
Prelude.const forall a. Monoid a => a
Prelude.mempty
data CreateInstanceResponse = CreateInstanceResponse'
{
CreateInstanceResponse -> Maybe Text
arn :: Prelude.Maybe Prelude.Text,
CreateInstanceResponse -> Maybe Text
id :: Prelude.Maybe Prelude.Text,
CreateInstanceResponse -> Int
httpStatus :: Prelude.Int
}
deriving (CreateInstanceResponse -> CreateInstanceResponse -> Bool
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: CreateInstanceResponse -> CreateInstanceResponse -> Bool
$c/= :: CreateInstanceResponse -> CreateInstanceResponse -> Bool
== :: CreateInstanceResponse -> CreateInstanceResponse -> Bool
$c== :: CreateInstanceResponse -> CreateInstanceResponse -> Bool
Prelude.Eq, ReadPrec [CreateInstanceResponse]
ReadPrec CreateInstanceResponse
Int -> ReadS CreateInstanceResponse
ReadS [CreateInstanceResponse]
forall a.
(Int -> ReadS a)
-> ReadS [a] -> ReadPrec a -> ReadPrec [a] -> Read a
readListPrec :: ReadPrec [CreateInstanceResponse]
$creadListPrec :: ReadPrec [CreateInstanceResponse]
readPrec :: ReadPrec CreateInstanceResponse
$creadPrec :: ReadPrec CreateInstanceResponse
readList :: ReadS [CreateInstanceResponse]
$creadList :: ReadS [CreateInstanceResponse]
readsPrec :: Int -> ReadS CreateInstanceResponse
$creadsPrec :: Int -> ReadS CreateInstanceResponse
Prelude.Read, Int -> CreateInstanceResponse -> ShowS
[CreateInstanceResponse] -> ShowS
CreateInstanceResponse -> String
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [CreateInstanceResponse] -> ShowS
$cshowList :: [CreateInstanceResponse] -> ShowS
show :: CreateInstanceResponse -> String
$cshow :: CreateInstanceResponse -> String
showsPrec :: Int -> CreateInstanceResponse -> ShowS
$cshowsPrec :: Int -> CreateInstanceResponse -> ShowS
Prelude.Show, forall x. Rep CreateInstanceResponse x -> CreateInstanceResponse
forall x. CreateInstanceResponse -> Rep CreateInstanceResponse x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cto :: forall x. Rep CreateInstanceResponse x -> CreateInstanceResponse
$cfrom :: forall x. CreateInstanceResponse -> Rep CreateInstanceResponse x
Prelude.Generic)
newCreateInstanceResponse ::
Prelude.Int ->
CreateInstanceResponse
newCreateInstanceResponse :: Int -> CreateInstanceResponse
newCreateInstanceResponse Int
pHttpStatus_ =
CreateInstanceResponse'
{ $sel:arn:CreateInstanceResponse' :: Maybe Text
arn = forall a. Maybe a
Prelude.Nothing,
$sel:id:CreateInstanceResponse' :: Maybe Text
id = forall a. Maybe a
Prelude.Nothing,
$sel:httpStatus:CreateInstanceResponse' :: Int
httpStatus = Int
pHttpStatus_
}
createInstanceResponse_arn :: Lens.Lens' CreateInstanceResponse (Prelude.Maybe Prelude.Text)
createInstanceResponse_arn :: Lens' CreateInstanceResponse (Maybe Text)
createInstanceResponse_arn = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\CreateInstanceResponse' {Maybe Text
arn :: Maybe Text
$sel:arn:CreateInstanceResponse' :: CreateInstanceResponse -> Maybe Text
arn} -> Maybe Text
arn) (\s :: CreateInstanceResponse
s@CreateInstanceResponse' {} Maybe Text
a -> CreateInstanceResponse
s {$sel:arn:CreateInstanceResponse' :: Maybe Text
arn = Maybe Text
a} :: CreateInstanceResponse)
createInstanceResponse_id :: Lens.Lens' CreateInstanceResponse (Prelude.Maybe Prelude.Text)
createInstanceResponse_id :: Lens' CreateInstanceResponse (Maybe Text)
createInstanceResponse_id = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\CreateInstanceResponse' {Maybe Text
id :: Maybe Text
$sel:id:CreateInstanceResponse' :: CreateInstanceResponse -> Maybe Text
id} -> Maybe Text
id) (\s :: CreateInstanceResponse
s@CreateInstanceResponse' {} Maybe Text
a -> CreateInstanceResponse
s {$sel:id:CreateInstanceResponse' :: Maybe Text
id = Maybe Text
a} :: CreateInstanceResponse)
createInstanceResponse_httpStatus :: Lens.Lens' CreateInstanceResponse Prelude.Int
createInstanceResponse_httpStatus :: Lens' CreateInstanceResponse Int
createInstanceResponse_httpStatus = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\CreateInstanceResponse' {Int
httpStatus :: Int
$sel:httpStatus:CreateInstanceResponse' :: CreateInstanceResponse -> Int
httpStatus} -> Int
httpStatus) (\s :: CreateInstanceResponse
s@CreateInstanceResponse' {} Int
a -> CreateInstanceResponse
s {$sel:httpStatus:CreateInstanceResponse' :: Int
httpStatus = Int
a} :: CreateInstanceResponse)
instance Prelude.NFData CreateInstanceResponse where
rnf :: CreateInstanceResponse -> ()
rnf CreateInstanceResponse' {Int
Maybe Text
httpStatus :: Int
id :: Maybe Text
arn :: Maybe Text
$sel:httpStatus:CreateInstanceResponse' :: CreateInstanceResponse -> Int
$sel:id:CreateInstanceResponse' :: CreateInstanceResponse -> Maybe Text
$sel:arn:CreateInstanceResponse' :: CreateInstanceResponse -> Maybe Text
..} =
forall a. NFData a => a -> ()
Prelude.rnf Maybe Text
arn
seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe Text
id
seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Int
httpStatus