{-# 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 -- 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