{-# 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.DirectoryService.UpdateDirectorySetup
(
UpdateDirectorySetup (..),
newUpdateDirectorySetup,
updateDirectorySetup_createSnapshotBeforeUpdate,
updateDirectorySetup_oSUpdateSettings,
updateDirectorySetup_directoryId,
updateDirectorySetup_updateType,
UpdateDirectorySetupResponse (..),
newUpdateDirectorySetupResponse,
updateDirectorySetupResponse_httpStatus,
)
where
import qualified Amazonka.Core as Core
import qualified Amazonka.Core.Lens.Internal as Lens
import qualified Amazonka.Data as Data
import Amazonka.DirectoryService.Types
import qualified Amazonka.Prelude as Prelude
import qualified Amazonka.Request as Request
import qualified Amazonka.Response as Response
data UpdateDirectorySetup = UpdateDirectorySetup'
{
UpdateDirectorySetup -> Maybe Bool
createSnapshotBeforeUpdate :: Prelude.Maybe Prelude.Bool,
UpdateDirectorySetup -> Maybe OSUpdateSettings
oSUpdateSettings :: Prelude.Maybe OSUpdateSettings,
UpdateDirectorySetup -> Text
directoryId :: Prelude.Text,
UpdateDirectorySetup -> UpdateType
updateType :: UpdateType
}
deriving (UpdateDirectorySetup -> UpdateDirectorySetup -> Bool
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: UpdateDirectorySetup -> UpdateDirectorySetup -> Bool
$c/= :: UpdateDirectorySetup -> UpdateDirectorySetup -> Bool
== :: UpdateDirectorySetup -> UpdateDirectorySetup -> Bool
$c== :: UpdateDirectorySetup -> UpdateDirectorySetup -> Bool
Prelude.Eq, ReadPrec [UpdateDirectorySetup]
ReadPrec UpdateDirectorySetup
Int -> ReadS UpdateDirectorySetup
ReadS [UpdateDirectorySetup]
forall a.
(Int -> ReadS a)
-> ReadS [a] -> ReadPrec a -> ReadPrec [a] -> Read a
readListPrec :: ReadPrec [UpdateDirectorySetup]
$creadListPrec :: ReadPrec [UpdateDirectorySetup]
readPrec :: ReadPrec UpdateDirectorySetup
$creadPrec :: ReadPrec UpdateDirectorySetup
readList :: ReadS [UpdateDirectorySetup]
$creadList :: ReadS [UpdateDirectorySetup]
readsPrec :: Int -> ReadS UpdateDirectorySetup
$creadsPrec :: Int -> ReadS UpdateDirectorySetup
Prelude.Read, Int -> UpdateDirectorySetup -> ShowS
[UpdateDirectorySetup] -> ShowS
UpdateDirectorySetup -> String
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [UpdateDirectorySetup] -> ShowS
$cshowList :: [UpdateDirectorySetup] -> ShowS
show :: UpdateDirectorySetup -> String
$cshow :: UpdateDirectorySetup -> String
showsPrec :: Int -> UpdateDirectorySetup -> ShowS
$cshowsPrec :: Int -> UpdateDirectorySetup -> ShowS
Prelude.Show, forall x. Rep UpdateDirectorySetup x -> UpdateDirectorySetup
forall x. UpdateDirectorySetup -> Rep UpdateDirectorySetup x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cto :: forall x. Rep UpdateDirectorySetup x -> UpdateDirectorySetup
$cfrom :: forall x. UpdateDirectorySetup -> Rep UpdateDirectorySetup x
Prelude.Generic)
newUpdateDirectorySetup ::
Prelude.Text ->
UpdateType ->
UpdateDirectorySetup
newUpdateDirectorySetup :: Text -> UpdateType -> UpdateDirectorySetup
newUpdateDirectorySetup Text
pDirectoryId_ UpdateType
pUpdateType_ =
UpdateDirectorySetup'
{ $sel:createSnapshotBeforeUpdate:UpdateDirectorySetup' :: Maybe Bool
createSnapshotBeforeUpdate =
forall a. Maybe a
Prelude.Nothing,
$sel:oSUpdateSettings:UpdateDirectorySetup' :: Maybe OSUpdateSettings
oSUpdateSettings = forall a. Maybe a
Prelude.Nothing,
$sel:directoryId:UpdateDirectorySetup' :: Text
directoryId = Text
pDirectoryId_,
$sel:updateType:UpdateDirectorySetup' :: UpdateType
updateType = UpdateType
pUpdateType_
}
updateDirectorySetup_createSnapshotBeforeUpdate :: Lens.Lens' UpdateDirectorySetup (Prelude.Maybe Prelude.Bool)
updateDirectorySetup_createSnapshotBeforeUpdate :: Lens' UpdateDirectorySetup (Maybe Bool)
updateDirectorySetup_createSnapshotBeforeUpdate = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\UpdateDirectorySetup' {Maybe Bool
createSnapshotBeforeUpdate :: Maybe Bool
$sel:createSnapshotBeforeUpdate:UpdateDirectorySetup' :: UpdateDirectorySetup -> Maybe Bool
createSnapshotBeforeUpdate} -> Maybe Bool
createSnapshotBeforeUpdate) (\s :: UpdateDirectorySetup
s@UpdateDirectorySetup' {} Maybe Bool
a -> UpdateDirectorySetup
s {$sel:createSnapshotBeforeUpdate:UpdateDirectorySetup' :: Maybe Bool
createSnapshotBeforeUpdate = Maybe Bool
a} :: UpdateDirectorySetup)
updateDirectorySetup_oSUpdateSettings :: Lens.Lens' UpdateDirectorySetup (Prelude.Maybe OSUpdateSettings)
updateDirectorySetup_oSUpdateSettings :: Lens' UpdateDirectorySetup (Maybe OSUpdateSettings)
updateDirectorySetup_oSUpdateSettings = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\UpdateDirectorySetup' {Maybe OSUpdateSettings
oSUpdateSettings :: Maybe OSUpdateSettings
$sel:oSUpdateSettings:UpdateDirectorySetup' :: UpdateDirectorySetup -> Maybe OSUpdateSettings
oSUpdateSettings} -> Maybe OSUpdateSettings
oSUpdateSettings) (\s :: UpdateDirectorySetup
s@UpdateDirectorySetup' {} Maybe OSUpdateSettings
a -> UpdateDirectorySetup
s {$sel:oSUpdateSettings:UpdateDirectorySetup' :: Maybe OSUpdateSettings
oSUpdateSettings = Maybe OSUpdateSettings
a} :: UpdateDirectorySetup)
updateDirectorySetup_directoryId :: Lens.Lens' UpdateDirectorySetup Prelude.Text
updateDirectorySetup_directoryId :: Lens' UpdateDirectorySetup Text
updateDirectorySetup_directoryId = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\UpdateDirectorySetup' {Text
directoryId :: Text
$sel:directoryId:UpdateDirectorySetup' :: UpdateDirectorySetup -> Text
directoryId} -> Text
directoryId) (\s :: UpdateDirectorySetup
s@UpdateDirectorySetup' {} Text
a -> UpdateDirectorySetup
s {$sel:directoryId:UpdateDirectorySetup' :: Text
directoryId = Text
a} :: UpdateDirectorySetup)
updateDirectorySetup_updateType :: Lens.Lens' UpdateDirectorySetup UpdateType
updateDirectorySetup_updateType :: Lens' UpdateDirectorySetup UpdateType
updateDirectorySetup_updateType = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\UpdateDirectorySetup' {UpdateType
updateType :: UpdateType
$sel:updateType:UpdateDirectorySetup' :: UpdateDirectorySetup -> UpdateType
updateType} -> UpdateType
updateType) (\s :: UpdateDirectorySetup
s@UpdateDirectorySetup' {} UpdateType
a -> UpdateDirectorySetup
s {$sel:updateType:UpdateDirectorySetup' :: UpdateType
updateType = UpdateType
a} :: UpdateDirectorySetup)
instance Core.AWSRequest UpdateDirectorySetup where
type
AWSResponse UpdateDirectorySetup =
UpdateDirectorySetupResponse
request :: (Service -> Service)
-> UpdateDirectorySetup -> Request UpdateDirectorySetup
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 UpdateDirectorySetup
-> ClientResponse ClientBody
-> m (Either
Error (ClientResponse (AWSResponse UpdateDirectorySetup)))
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 -> UpdateDirectorySetupResponse
UpdateDirectorySetupResponse'
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 UpdateDirectorySetup where
hashWithSalt :: Int -> UpdateDirectorySetup -> Int
hashWithSalt Int
_salt UpdateDirectorySetup' {Maybe Bool
Maybe OSUpdateSettings
Text
UpdateType
updateType :: UpdateType
directoryId :: Text
oSUpdateSettings :: Maybe OSUpdateSettings
createSnapshotBeforeUpdate :: Maybe Bool
$sel:updateType:UpdateDirectorySetup' :: UpdateDirectorySetup -> UpdateType
$sel:directoryId:UpdateDirectorySetup' :: UpdateDirectorySetup -> Text
$sel:oSUpdateSettings:UpdateDirectorySetup' :: UpdateDirectorySetup -> Maybe OSUpdateSettings
$sel:createSnapshotBeforeUpdate:UpdateDirectorySetup' :: UpdateDirectorySetup -> Maybe Bool
..} =
Int
_salt
forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe Bool
createSnapshotBeforeUpdate
forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe OSUpdateSettings
oSUpdateSettings
forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Text
directoryId
forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` UpdateType
updateType
instance Prelude.NFData UpdateDirectorySetup where
rnf :: UpdateDirectorySetup -> ()
rnf UpdateDirectorySetup' {Maybe Bool
Maybe OSUpdateSettings
Text
UpdateType
updateType :: UpdateType
directoryId :: Text
oSUpdateSettings :: Maybe OSUpdateSettings
createSnapshotBeforeUpdate :: Maybe Bool
$sel:updateType:UpdateDirectorySetup' :: UpdateDirectorySetup -> UpdateType
$sel:directoryId:UpdateDirectorySetup' :: UpdateDirectorySetup -> Text
$sel:oSUpdateSettings:UpdateDirectorySetup' :: UpdateDirectorySetup -> Maybe OSUpdateSettings
$sel:createSnapshotBeforeUpdate:UpdateDirectorySetup' :: UpdateDirectorySetup -> Maybe Bool
..} =
forall a. NFData a => a -> ()
Prelude.rnf Maybe Bool
createSnapshotBeforeUpdate
seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe OSUpdateSettings
oSUpdateSettings
seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Text
directoryId
seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf UpdateType
updateType
instance Data.ToHeaders UpdateDirectorySetup where
toHeaders :: UpdateDirectorySetup -> 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
"DirectoryService_20150416.UpdateDirectorySetup" ::
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 UpdateDirectorySetup where
toJSON :: UpdateDirectorySetup -> Value
toJSON UpdateDirectorySetup' {Maybe Bool
Maybe OSUpdateSettings
Text
UpdateType
updateType :: UpdateType
directoryId :: Text
oSUpdateSettings :: Maybe OSUpdateSettings
createSnapshotBeforeUpdate :: Maybe Bool
$sel:updateType:UpdateDirectorySetup' :: UpdateDirectorySetup -> UpdateType
$sel:directoryId:UpdateDirectorySetup' :: UpdateDirectorySetup -> Text
$sel:oSUpdateSettings:UpdateDirectorySetup' :: UpdateDirectorySetup -> Maybe OSUpdateSettings
$sel:createSnapshotBeforeUpdate:UpdateDirectorySetup' :: UpdateDirectorySetup -> Maybe Bool
..} =
[Pair] -> Value
Data.object
( forall a. [Maybe a] -> [a]
Prelude.catMaybes
[ (Key
"CreateSnapshotBeforeUpdate" 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 Bool
createSnapshotBeforeUpdate,
(Key
"OSUpdateSettings" 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 OSUpdateSettings
oSUpdateSettings,
forall a. a -> Maybe a
Prelude.Just (Key
"DirectoryId" forall kv v. (KeyValue kv, ToJSON v) => Key -> v -> kv
Data..= Text
directoryId),
forall a. a -> Maybe a
Prelude.Just (Key
"UpdateType" forall kv v. (KeyValue kv, ToJSON v) => Key -> v -> kv
Data..= UpdateType
updateType)
]
)
instance Data.ToPath UpdateDirectorySetup where
toPath :: UpdateDirectorySetup -> ByteString
toPath = forall a b. a -> b -> a
Prelude.const ByteString
"/"
instance Data.ToQuery UpdateDirectorySetup where
toQuery :: UpdateDirectorySetup -> QueryString
toQuery = forall a b. a -> b -> a
Prelude.const forall a. Monoid a => a
Prelude.mempty
data UpdateDirectorySetupResponse = UpdateDirectorySetupResponse'
{
UpdateDirectorySetupResponse -> Int
httpStatus :: Prelude.Int
}
deriving (UpdateDirectorySetupResponse
-> UpdateDirectorySetupResponse -> Bool
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: UpdateDirectorySetupResponse
-> UpdateDirectorySetupResponse -> Bool
$c/= :: UpdateDirectorySetupResponse
-> UpdateDirectorySetupResponse -> Bool
== :: UpdateDirectorySetupResponse
-> UpdateDirectorySetupResponse -> Bool
$c== :: UpdateDirectorySetupResponse
-> UpdateDirectorySetupResponse -> Bool
Prelude.Eq, ReadPrec [UpdateDirectorySetupResponse]
ReadPrec UpdateDirectorySetupResponse
Int -> ReadS UpdateDirectorySetupResponse
ReadS [UpdateDirectorySetupResponse]
forall a.
(Int -> ReadS a)
-> ReadS [a] -> ReadPrec a -> ReadPrec [a] -> Read a
readListPrec :: ReadPrec [UpdateDirectorySetupResponse]
$creadListPrec :: ReadPrec [UpdateDirectorySetupResponse]
readPrec :: ReadPrec UpdateDirectorySetupResponse
$creadPrec :: ReadPrec UpdateDirectorySetupResponse
readList :: ReadS [UpdateDirectorySetupResponse]
$creadList :: ReadS [UpdateDirectorySetupResponse]
readsPrec :: Int -> ReadS UpdateDirectorySetupResponse
$creadsPrec :: Int -> ReadS UpdateDirectorySetupResponse
Prelude.Read, Int -> UpdateDirectorySetupResponse -> ShowS
[UpdateDirectorySetupResponse] -> ShowS
UpdateDirectorySetupResponse -> String
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [UpdateDirectorySetupResponse] -> ShowS
$cshowList :: [UpdateDirectorySetupResponse] -> ShowS
show :: UpdateDirectorySetupResponse -> String
$cshow :: UpdateDirectorySetupResponse -> String
showsPrec :: Int -> UpdateDirectorySetupResponse -> ShowS
$cshowsPrec :: Int -> UpdateDirectorySetupResponse -> ShowS
Prelude.Show, forall x.
Rep UpdateDirectorySetupResponse x -> UpdateDirectorySetupResponse
forall x.
UpdateDirectorySetupResponse -> Rep UpdateDirectorySetupResponse x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cto :: forall x.
Rep UpdateDirectorySetupResponse x -> UpdateDirectorySetupResponse
$cfrom :: forall x.
UpdateDirectorySetupResponse -> Rep UpdateDirectorySetupResponse x
Prelude.Generic)
newUpdateDirectorySetupResponse ::
Prelude.Int ->
UpdateDirectorySetupResponse
newUpdateDirectorySetupResponse :: Int -> UpdateDirectorySetupResponse
newUpdateDirectorySetupResponse Int
pHttpStatus_ =
UpdateDirectorySetupResponse'
{ $sel:httpStatus:UpdateDirectorySetupResponse' :: Int
httpStatus =
Int
pHttpStatus_
}
updateDirectorySetupResponse_httpStatus :: Lens.Lens' UpdateDirectorySetupResponse Prelude.Int
updateDirectorySetupResponse_httpStatus :: Lens' UpdateDirectorySetupResponse Int
updateDirectorySetupResponse_httpStatus = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\UpdateDirectorySetupResponse' {Int
httpStatus :: Int
$sel:httpStatus:UpdateDirectorySetupResponse' :: UpdateDirectorySetupResponse -> Int
httpStatus} -> Int
httpStatus) (\s :: UpdateDirectorySetupResponse
s@UpdateDirectorySetupResponse' {} Int
a -> UpdateDirectorySetupResponse
s {$sel:httpStatus:UpdateDirectorySetupResponse' :: Int
httpStatus = Int
a} :: UpdateDirectorySetupResponse)
instance Prelude.NFData UpdateDirectorySetupResponse where
rnf :: UpdateDirectorySetupResponse -> ()
rnf UpdateDirectorySetupResponse' {Int
httpStatus :: Int
$sel:httpStatus:UpdateDirectorySetupResponse' :: UpdateDirectorySetupResponse -> Int
..} =
forall a. NFData a => a -> ()
Prelude.rnf Int
httpStatus