{-# 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.WorkMail.CreateAvailabilityConfiguration
(
CreateAvailabilityConfiguration (..),
newCreateAvailabilityConfiguration,
createAvailabilityConfiguration_clientToken,
createAvailabilityConfiguration_ewsProvider,
createAvailabilityConfiguration_lambdaProvider,
createAvailabilityConfiguration_organizationId,
createAvailabilityConfiguration_domainName,
CreateAvailabilityConfigurationResponse (..),
newCreateAvailabilityConfigurationResponse,
createAvailabilityConfigurationResponse_httpStatus,
)
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.WorkMail.Types
data CreateAvailabilityConfiguration = CreateAvailabilityConfiguration'
{
CreateAvailabilityConfiguration -> Maybe Text
clientToken :: Prelude.Maybe Prelude.Text,
CreateAvailabilityConfiguration -> Maybe EwsAvailabilityProvider
ewsProvider :: Prelude.Maybe EwsAvailabilityProvider,
CreateAvailabilityConfiguration -> Maybe LambdaAvailabilityProvider
lambdaProvider :: Prelude.Maybe LambdaAvailabilityProvider,
CreateAvailabilityConfiguration -> Text
organizationId :: Prelude.Text,
CreateAvailabilityConfiguration -> Text
domainName :: Prelude.Text
}
deriving (CreateAvailabilityConfiguration
-> CreateAvailabilityConfiguration -> Bool
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: CreateAvailabilityConfiguration
-> CreateAvailabilityConfiguration -> Bool
$c/= :: CreateAvailabilityConfiguration
-> CreateAvailabilityConfiguration -> Bool
== :: CreateAvailabilityConfiguration
-> CreateAvailabilityConfiguration -> Bool
$c== :: CreateAvailabilityConfiguration
-> CreateAvailabilityConfiguration -> Bool
Prelude.Eq, Int -> CreateAvailabilityConfiguration -> ShowS
[CreateAvailabilityConfiguration] -> ShowS
CreateAvailabilityConfiguration -> String
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [CreateAvailabilityConfiguration] -> ShowS
$cshowList :: [CreateAvailabilityConfiguration] -> ShowS
show :: CreateAvailabilityConfiguration -> String
$cshow :: CreateAvailabilityConfiguration -> String
showsPrec :: Int -> CreateAvailabilityConfiguration -> ShowS
$cshowsPrec :: Int -> CreateAvailabilityConfiguration -> ShowS
Prelude.Show, forall x.
Rep CreateAvailabilityConfiguration x
-> CreateAvailabilityConfiguration
forall x.
CreateAvailabilityConfiguration
-> Rep CreateAvailabilityConfiguration x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cto :: forall x.
Rep CreateAvailabilityConfiguration x
-> CreateAvailabilityConfiguration
$cfrom :: forall x.
CreateAvailabilityConfiguration
-> Rep CreateAvailabilityConfiguration x
Prelude.Generic)
newCreateAvailabilityConfiguration ::
Prelude.Text ->
Prelude.Text ->
CreateAvailabilityConfiguration
newCreateAvailabilityConfiguration :: Text -> Text -> CreateAvailabilityConfiguration
newCreateAvailabilityConfiguration
Text
pOrganizationId_
Text
pDomainName_ =
CreateAvailabilityConfiguration'
{ $sel:clientToken:CreateAvailabilityConfiguration' :: Maybe Text
clientToken =
forall a. Maybe a
Prelude.Nothing,
$sel:ewsProvider:CreateAvailabilityConfiguration' :: Maybe EwsAvailabilityProvider
ewsProvider = forall a. Maybe a
Prelude.Nothing,
$sel:lambdaProvider:CreateAvailabilityConfiguration' :: Maybe LambdaAvailabilityProvider
lambdaProvider = forall a. Maybe a
Prelude.Nothing,
$sel:organizationId:CreateAvailabilityConfiguration' :: Text
organizationId = Text
pOrganizationId_,
$sel:domainName:CreateAvailabilityConfiguration' :: Text
domainName = Text
pDomainName_
}
createAvailabilityConfiguration_clientToken :: Lens.Lens' CreateAvailabilityConfiguration (Prelude.Maybe Prelude.Text)
createAvailabilityConfiguration_clientToken :: Lens' CreateAvailabilityConfiguration (Maybe Text)
createAvailabilityConfiguration_clientToken = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\CreateAvailabilityConfiguration' {Maybe Text
clientToken :: Maybe Text
$sel:clientToken:CreateAvailabilityConfiguration' :: CreateAvailabilityConfiguration -> Maybe Text
clientToken} -> Maybe Text
clientToken) (\s :: CreateAvailabilityConfiguration
s@CreateAvailabilityConfiguration' {} Maybe Text
a -> CreateAvailabilityConfiguration
s {$sel:clientToken:CreateAvailabilityConfiguration' :: Maybe Text
clientToken = Maybe Text
a} :: CreateAvailabilityConfiguration)
createAvailabilityConfiguration_ewsProvider :: Lens.Lens' CreateAvailabilityConfiguration (Prelude.Maybe EwsAvailabilityProvider)
createAvailabilityConfiguration_ewsProvider :: Lens'
CreateAvailabilityConfiguration (Maybe EwsAvailabilityProvider)
createAvailabilityConfiguration_ewsProvider = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\CreateAvailabilityConfiguration' {Maybe EwsAvailabilityProvider
ewsProvider :: Maybe EwsAvailabilityProvider
$sel:ewsProvider:CreateAvailabilityConfiguration' :: CreateAvailabilityConfiguration -> Maybe EwsAvailabilityProvider
ewsProvider} -> Maybe EwsAvailabilityProvider
ewsProvider) (\s :: CreateAvailabilityConfiguration
s@CreateAvailabilityConfiguration' {} Maybe EwsAvailabilityProvider
a -> CreateAvailabilityConfiguration
s {$sel:ewsProvider:CreateAvailabilityConfiguration' :: Maybe EwsAvailabilityProvider
ewsProvider = Maybe EwsAvailabilityProvider
a} :: CreateAvailabilityConfiguration)
createAvailabilityConfiguration_lambdaProvider :: Lens.Lens' CreateAvailabilityConfiguration (Prelude.Maybe LambdaAvailabilityProvider)
createAvailabilityConfiguration_lambdaProvider :: Lens'
CreateAvailabilityConfiguration (Maybe LambdaAvailabilityProvider)
createAvailabilityConfiguration_lambdaProvider = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\CreateAvailabilityConfiguration' {Maybe LambdaAvailabilityProvider
lambdaProvider :: Maybe LambdaAvailabilityProvider
$sel:lambdaProvider:CreateAvailabilityConfiguration' :: CreateAvailabilityConfiguration -> Maybe LambdaAvailabilityProvider
lambdaProvider} -> Maybe LambdaAvailabilityProvider
lambdaProvider) (\s :: CreateAvailabilityConfiguration
s@CreateAvailabilityConfiguration' {} Maybe LambdaAvailabilityProvider
a -> CreateAvailabilityConfiguration
s {$sel:lambdaProvider:CreateAvailabilityConfiguration' :: Maybe LambdaAvailabilityProvider
lambdaProvider = Maybe LambdaAvailabilityProvider
a} :: CreateAvailabilityConfiguration)
createAvailabilityConfiguration_organizationId :: Lens.Lens' CreateAvailabilityConfiguration Prelude.Text
createAvailabilityConfiguration_organizationId :: Lens' CreateAvailabilityConfiguration Text
createAvailabilityConfiguration_organizationId = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\CreateAvailabilityConfiguration' {Text
organizationId :: Text
$sel:organizationId:CreateAvailabilityConfiguration' :: CreateAvailabilityConfiguration -> Text
organizationId} -> Text
organizationId) (\s :: CreateAvailabilityConfiguration
s@CreateAvailabilityConfiguration' {} Text
a -> CreateAvailabilityConfiguration
s {$sel:organizationId:CreateAvailabilityConfiguration' :: Text
organizationId = Text
a} :: CreateAvailabilityConfiguration)
createAvailabilityConfiguration_domainName :: Lens.Lens' CreateAvailabilityConfiguration Prelude.Text
createAvailabilityConfiguration_domainName :: Lens' CreateAvailabilityConfiguration Text
createAvailabilityConfiguration_domainName = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\CreateAvailabilityConfiguration' {Text
domainName :: Text
$sel:domainName:CreateAvailabilityConfiguration' :: CreateAvailabilityConfiguration -> Text
domainName} -> Text
domainName) (\s :: CreateAvailabilityConfiguration
s@CreateAvailabilityConfiguration' {} Text
a -> CreateAvailabilityConfiguration
s {$sel:domainName:CreateAvailabilityConfiguration' :: Text
domainName = Text
a} :: CreateAvailabilityConfiguration)
instance
Core.AWSRequest
CreateAvailabilityConfiguration
where
type
AWSResponse CreateAvailabilityConfiguration =
CreateAvailabilityConfigurationResponse
request :: (Service -> Service)
-> CreateAvailabilityConfiguration
-> Request CreateAvailabilityConfiguration
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 CreateAvailabilityConfiguration
-> ClientResponse ClientBody
-> m (Either
Error
(ClientResponse (AWSResponse CreateAvailabilityConfiguration)))
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 -> CreateAvailabilityConfigurationResponse
CreateAvailabilityConfigurationResponse'
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
CreateAvailabilityConfiguration
where
hashWithSalt :: Int -> CreateAvailabilityConfiguration -> Int
hashWithSalt
Int
_salt
CreateAvailabilityConfiguration' {Maybe Text
Maybe EwsAvailabilityProvider
Maybe LambdaAvailabilityProvider
Text
domainName :: Text
organizationId :: Text
lambdaProvider :: Maybe LambdaAvailabilityProvider
ewsProvider :: Maybe EwsAvailabilityProvider
clientToken :: Maybe Text
$sel:domainName:CreateAvailabilityConfiguration' :: CreateAvailabilityConfiguration -> Text
$sel:organizationId:CreateAvailabilityConfiguration' :: CreateAvailabilityConfiguration -> Text
$sel:lambdaProvider:CreateAvailabilityConfiguration' :: CreateAvailabilityConfiguration -> Maybe LambdaAvailabilityProvider
$sel:ewsProvider:CreateAvailabilityConfiguration' :: CreateAvailabilityConfiguration -> Maybe EwsAvailabilityProvider
$sel:clientToken:CreateAvailabilityConfiguration' :: CreateAvailabilityConfiguration -> 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 EwsAvailabilityProvider
ewsProvider
forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe LambdaAvailabilityProvider
lambdaProvider
forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Text
organizationId
forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Text
domainName
instance
Prelude.NFData
CreateAvailabilityConfiguration
where
rnf :: CreateAvailabilityConfiguration -> ()
rnf CreateAvailabilityConfiguration' {Maybe Text
Maybe EwsAvailabilityProvider
Maybe LambdaAvailabilityProvider
Text
domainName :: Text
organizationId :: Text
lambdaProvider :: Maybe LambdaAvailabilityProvider
ewsProvider :: Maybe EwsAvailabilityProvider
clientToken :: Maybe Text
$sel:domainName:CreateAvailabilityConfiguration' :: CreateAvailabilityConfiguration -> Text
$sel:organizationId:CreateAvailabilityConfiguration' :: CreateAvailabilityConfiguration -> Text
$sel:lambdaProvider:CreateAvailabilityConfiguration' :: CreateAvailabilityConfiguration -> Maybe LambdaAvailabilityProvider
$sel:ewsProvider:CreateAvailabilityConfiguration' :: CreateAvailabilityConfiguration -> Maybe EwsAvailabilityProvider
$sel:clientToken:CreateAvailabilityConfiguration' :: CreateAvailabilityConfiguration -> 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 EwsAvailabilityProvider
ewsProvider
seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe LambdaAvailabilityProvider
lambdaProvider
seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Text
organizationId
seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Text
domainName
instance
Data.ToHeaders
CreateAvailabilityConfiguration
where
toHeaders :: CreateAvailabilityConfiguration -> 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
"WorkMailService.CreateAvailabilityConfiguration" ::
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 CreateAvailabilityConfiguration where
toJSON :: CreateAvailabilityConfiguration -> Value
toJSON CreateAvailabilityConfiguration' {Maybe Text
Maybe EwsAvailabilityProvider
Maybe LambdaAvailabilityProvider
Text
domainName :: Text
organizationId :: Text
lambdaProvider :: Maybe LambdaAvailabilityProvider
ewsProvider :: Maybe EwsAvailabilityProvider
clientToken :: Maybe Text
$sel:domainName:CreateAvailabilityConfiguration' :: CreateAvailabilityConfiguration -> Text
$sel:organizationId:CreateAvailabilityConfiguration' :: CreateAvailabilityConfiguration -> Text
$sel:lambdaProvider:CreateAvailabilityConfiguration' :: CreateAvailabilityConfiguration -> Maybe LambdaAvailabilityProvider
$sel:ewsProvider:CreateAvailabilityConfiguration' :: CreateAvailabilityConfiguration -> Maybe EwsAvailabilityProvider
$sel:clientToken:CreateAvailabilityConfiguration' :: CreateAvailabilityConfiguration -> 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
"EwsProvider" 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 EwsAvailabilityProvider
ewsProvider,
(Key
"LambdaProvider" 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 LambdaAvailabilityProvider
lambdaProvider,
forall a. a -> Maybe a
Prelude.Just
(Key
"OrganizationId" forall kv v. (KeyValue kv, ToJSON v) => Key -> v -> kv
Data..= Text
organizationId),
forall a. a -> Maybe a
Prelude.Just (Key
"DomainName" forall kv v. (KeyValue kv, ToJSON v) => Key -> v -> kv
Data..= Text
domainName)
]
)
instance Data.ToPath CreateAvailabilityConfiguration where
toPath :: CreateAvailabilityConfiguration -> ByteString
toPath = forall a b. a -> b -> a
Prelude.const ByteString
"/"
instance Data.ToQuery CreateAvailabilityConfiguration where
toQuery :: CreateAvailabilityConfiguration -> QueryString
toQuery = forall a b. a -> b -> a
Prelude.const forall a. Monoid a => a
Prelude.mempty
data CreateAvailabilityConfigurationResponse = CreateAvailabilityConfigurationResponse'
{
CreateAvailabilityConfigurationResponse -> Int
httpStatus :: Prelude.Int
}
deriving (CreateAvailabilityConfigurationResponse
-> CreateAvailabilityConfigurationResponse -> Bool
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: CreateAvailabilityConfigurationResponse
-> CreateAvailabilityConfigurationResponse -> Bool
$c/= :: CreateAvailabilityConfigurationResponse
-> CreateAvailabilityConfigurationResponse -> Bool
== :: CreateAvailabilityConfigurationResponse
-> CreateAvailabilityConfigurationResponse -> Bool
$c== :: CreateAvailabilityConfigurationResponse
-> CreateAvailabilityConfigurationResponse -> Bool
Prelude.Eq, ReadPrec [CreateAvailabilityConfigurationResponse]
ReadPrec CreateAvailabilityConfigurationResponse
Int -> ReadS CreateAvailabilityConfigurationResponse
ReadS [CreateAvailabilityConfigurationResponse]
forall a.
(Int -> ReadS a)
-> ReadS [a] -> ReadPrec a -> ReadPrec [a] -> Read a
readListPrec :: ReadPrec [CreateAvailabilityConfigurationResponse]
$creadListPrec :: ReadPrec [CreateAvailabilityConfigurationResponse]
readPrec :: ReadPrec CreateAvailabilityConfigurationResponse
$creadPrec :: ReadPrec CreateAvailabilityConfigurationResponse
readList :: ReadS [CreateAvailabilityConfigurationResponse]
$creadList :: ReadS [CreateAvailabilityConfigurationResponse]
readsPrec :: Int -> ReadS CreateAvailabilityConfigurationResponse
$creadsPrec :: Int -> ReadS CreateAvailabilityConfigurationResponse
Prelude.Read, Int -> CreateAvailabilityConfigurationResponse -> ShowS
[CreateAvailabilityConfigurationResponse] -> ShowS
CreateAvailabilityConfigurationResponse -> String
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [CreateAvailabilityConfigurationResponse] -> ShowS
$cshowList :: [CreateAvailabilityConfigurationResponse] -> ShowS
show :: CreateAvailabilityConfigurationResponse -> String
$cshow :: CreateAvailabilityConfigurationResponse -> String
showsPrec :: Int -> CreateAvailabilityConfigurationResponse -> ShowS
$cshowsPrec :: Int -> CreateAvailabilityConfigurationResponse -> ShowS
Prelude.Show, forall x.
Rep CreateAvailabilityConfigurationResponse x
-> CreateAvailabilityConfigurationResponse
forall x.
CreateAvailabilityConfigurationResponse
-> Rep CreateAvailabilityConfigurationResponse x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cto :: forall x.
Rep CreateAvailabilityConfigurationResponse x
-> CreateAvailabilityConfigurationResponse
$cfrom :: forall x.
CreateAvailabilityConfigurationResponse
-> Rep CreateAvailabilityConfigurationResponse x
Prelude.Generic)
newCreateAvailabilityConfigurationResponse ::
Prelude.Int ->
CreateAvailabilityConfigurationResponse
newCreateAvailabilityConfigurationResponse :: Int -> CreateAvailabilityConfigurationResponse
newCreateAvailabilityConfigurationResponse
Int
pHttpStatus_ =
CreateAvailabilityConfigurationResponse'
{ $sel:httpStatus:CreateAvailabilityConfigurationResponse' :: Int
httpStatus =
Int
pHttpStatus_
}
createAvailabilityConfigurationResponse_httpStatus :: Lens.Lens' CreateAvailabilityConfigurationResponse Prelude.Int
createAvailabilityConfigurationResponse_httpStatus :: Lens' CreateAvailabilityConfigurationResponse Int
createAvailabilityConfigurationResponse_httpStatus = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\CreateAvailabilityConfigurationResponse' {Int
httpStatus :: Int
$sel:httpStatus:CreateAvailabilityConfigurationResponse' :: CreateAvailabilityConfigurationResponse -> Int
httpStatus} -> Int
httpStatus) (\s :: CreateAvailabilityConfigurationResponse
s@CreateAvailabilityConfigurationResponse' {} Int
a -> CreateAvailabilityConfigurationResponse
s {$sel:httpStatus:CreateAvailabilityConfigurationResponse' :: Int
httpStatus = Int
a} :: CreateAvailabilityConfigurationResponse)
instance
Prelude.NFData
CreateAvailabilityConfigurationResponse
where
rnf :: CreateAvailabilityConfigurationResponse -> ()
rnf CreateAvailabilityConfigurationResponse' {Int
httpStatus :: Int
$sel:httpStatus:CreateAvailabilityConfigurationResponse' :: CreateAvailabilityConfigurationResponse -> Int
..} =
forall a. NFData a => a -> ()
Prelude.rnf Int
httpStatus