amazonka-ds-1.5.0: gen/Network/AWS/DirectoryService/UpdateNumberOfDomainControllers.hs
{-# LANGUAGE DeriveDataTypeable #-}
{-# LANGUAGE DeriveGeneric #-}
{-# LANGUAGE OverloadedStrings #-}
{-# LANGUAGE RecordWildCards #-}
{-# LANGUAGE TypeFamilies #-}
{-# OPTIONS_GHC -fno-warn-unused-imports #-}
{-# OPTIONS_GHC -fno-warn-unused-binds #-}
{-# OPTIONS_GHC -fno-warn-unused-matches #-}
-- Derived from AWS service descriptions, licensed under Apache 2.0.
-- |
-- Module : Network.AWS.DirectoryService.UpdateNumberOfDomainControllers
-- Copyright : (c) 2013-2017 Brendan Hay
-- License : Mozilla Public License, v. 2.0.
-- Maintainer : Brendan Hay <brendan.g.hay+amazonka@gmail.com>
-- Stability : auto-generated
-- Portability : non-portable (GHC extensions)
--
-- Adds or removes domain controllers to or from the directory. Based on the difference between current value and new value (provided through this API call), domain controllers will be added or removed. It may take up to 45 minutes for any new domain controllers to become fully active once the requested number of domain controllers is updated. During this time, you cannot make another update request.
--
--
module Network.AWS.DirectoryService.UpdateNumberOfDomainControllers
(
-- * Creating a Request
updateNumberOfDomainControllers
, UpdateNumberOfDomainControllers
-- * Request Lenses
, unodcDirectoryId
, unodcDesiredNumber
-- * Destructuring the Response
, updateNumberOfDomainControllersResponse
, UpdateNumberOfDomainControllersResponse
-- * Response Lenses
, unodcrsResponseStatus
) where
import Network.AWS.DirectoryService.Types
import Network.AWS.DirectoryService.Types.Product
import Network.AWS.Lens
import Network.AWS.Prelude
import Network.AWS.Request
import Network.AWS.Response
-- | /See:/ 'updateNumberOfDomainControllers' smart constructor.
data UpdateNumberOfDomainControllers = UpdateNumberOfDomainControllers'
{ _unodcDirectoryId :: !Text
, _unodcDesiredNumber :: !Nat
} deriving (Eq, Read, Show, Data, Typeable, Generic)
-- | Creates a value of 'UpdateNumberOfDomainControllers' with the minimum fields required to make a request.
--
-- Use one of the following lenses to modify other fields as desired:
--
-- * 'unodcDirectoryId' - Identifier of the directory to which the domain controllers will be added or removed.
--
-- * 'unodcDesiredNumber' - The number of domain controllers desired in the directory.
updateNumberOfDomainControllers
:: Text -- ^ 'unodcDirectoryId'
-> Natural -- ^ 'unodcDesiredNumber'
-> UpdateNumberOfDomainControllers
updateNumberOfDomainControllers pDirectoryId_ pDesiredNumber_ =
UpdateNumberOfDomainControllers'
{ _unodcDirectoryId = pDirectoryId_
, _unodcDesiredNumber = _Nat # pDesiredNumber_
}
-- | Identifier of the directory to which the domain controllers will be added or removed.
unodcDirectoryId :: Lens' UpdateNumberOfDomainControllers Text
unodcDirectoryId = lens _unodcDirectoryId (\ s a -> s{_unodcDirectoryId = a});
-- | The number of domain controllers desired in the directory.
unodcDesiredNumber :: Lens' UpdateNumberOfDomainControllers Natural
unodcDesiredNumber = lens _unodcDesiredNumber (\ s a -> s{_unodcDesiredNumber = a}) . _Nat;
instance AWSRequest UpdateNumberOfDomainControllers
where
type Rs UpdateNumberOfDomainControllers =
UpdateNumberOfDomainControllersResponse
request = postJSON directoryService
response
= receiveEmpty
(\ s h x ->
UpdateNumberOfDomainControllersResponse' <$>
(pure (fromEnum s)))
instance Hashable UpdateNumberOfDomainControllers
where
instance NFData UpdateNumberOfDomainControllers where
instance ToHeaders UpdateNumberOfDomainControllers
where
toHeaders
= const
(mconcat
["X-Amz-Target" =#
("DirectoryService_20150416.UpdateNumberOfDomainControllers"
:: ByteString),
"Content-Type" =#
("application/x-amz-json-1.1" :: ByteString)])
instance ToJSON UpdateNumberOfDomainControllers where
toJSON UpdateNumberOfDomainControllers'{..}
= object
(catMaybes
[Just ("DirectoryId" .= _unodcDirectoryId),
Just ("DesiredNumber" .= _unodcDesiredNumber)])
instance ToPath UpdateNumberOfDomainControllers where
toPath = const "/"
instance ToQuery UpdateNumberOfDomainControllers
where
toQuery = const mempty
-- | /See:/ 'updateNumberOfDomainControllersResponse' smart constructor.
newtype UpdateNumberOfDomainControllersResponse = UpdateNumberOfDomainControllersResponse'
{ _unodcrsResponseStatus :: Int
} deriving (Eq, Read, Show, Data, Typeable, Generic)
-- | Creates a value of 'UpdateNumberOfDomainControllersResponse' with the minimum fields required to make a request.
--
-- Use one of the following lenses to modify other fields as desired:
--
-- * 'unodcrsResponseStatus' - -- | The response status code.
updateNumberOfDomainControllersResponse
:: Int -- ^ 'unodcrsResponseStatus'
-> UpdateNumberOfDomainControllersResponse
updateNumberOfDomainControllersResponse pResponseStatus_ =
UpdateNumberOfDomainControllersResponse'
{_unodcrsResponseStatus = pResponseStatus_}
-- | -- | The response status code.
unodcrsResponseStatus :: Lens' UpdateNumberOfDomainControllersResponse Int
unodcrsResponseStatus = lens _unodcrsResponseStatus (\ s a -> s{_unodcrsResponseStatus = a});
instance NFData
UpdateNumberOfDomainControllersResponse
where