{-# 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.StorageGateway.StartGateway -- Copyright : (c) 2013-2016 Brendan Hay -- License : Mozilla Public License, v. 2.0. -- Maintainer : Brendan Hay -- Stability : auto-generated -- Portability : non-portable (GHC extensions) -- -- Starts a gateway that you previously shut down (see < ShutdownGateway>). After the gateway starts, you can then make other API calls, your applications can read from or write to the gateway\'s storage volumes and you will be able to take snapshot backups. -- -- When you make a request, you will get a 200 OK success response immediately. However, it might take some time for the gateway to be ready. You should call < DescribeGatewayInformation> and check the status before making any additional API calls. For more information, see < ActivateGateway>. -- -- To specify which gateway to start, use the Amazon Resource Name (ARN) of the gateway in your request. module Network.AWS.StorageGateway.StartGateway ( -- * Creating a Request startGateway , StartGateway -- * Request Lenses , sgGatewayARN -- * Destructuring the Response , startGatewayResponse , StartGatewayResponse -- * Response Lenses , sgrsGatewayARN , sgrsResponseStatus ) where import Network.AWS.Lens import Network.AWS.Prelude import Network.AWS.Request import Network.AWS.Response import Network.AWS.StorageGateway.Types import Network.AWS.StorageGateway.Types.Product -- | A JSON object containing the of the gateway to start. -- -- /See:/ 'startGateway' smart constructor. newtype StartGateway = StartGateway' { _sgGatewayARN :: Text } deriving (Eq,Read,Show,Data,Typeable,Generic) -- | Creates a value of 'StartGateway' with the minimum fields required to make a request. -- -- Use one of the following lenses to modify other fields as desired: -- -- * 'sgGatewayARN' startGateway :: Text -- ^ 'sgGatewayARN' -> StartGateway startGateway pGatewayARN_ = StartGateway' { _sgGatewayARN = pGatewayARN_ } -- | Undocumented member. sgGatewayARN :: Lens' StartGateway Text sgGatewayARN = lens _sgGatewayARN (\ s a -> s{_sgGatewayARN = a}); instance AWSRequest StartGateway where type Rs StartGateway = StartGatewayResponse request = postJSON storageGateway response = receiveJSON (\ s h x -> StartGatewayResponse' <$> (x .?> "GatewayARN") <*> (pure (fromEnum s))) instance Hashable StartGateway instance NFData StartGateway instance ToHeaders StartGateway where toHeaders = const (mconcat ["X-Amz-Target" =# ("StorageGateway_20130630.StartGateway" :: ByteString), "Content-Type" =# ("application/x-amz-json-1.1" :: ByteString)]) instance ToJSON StartGateway where toJSON StartGateway'{..} = object (catMaybes [Just ("GatewayARN" .= _sgGatewayARN)]) instance ToPath StartGateway where toPath = const "/" instance ToQuery StartGateway where toQuery = const mempty -- | A JSON object containing the of the gateway that was restarted. -- -- /See:/ 'startGatewayResponse' smart constructor. data StartGatewayResponse = StartGatewayResponse' { _sgrsGatewayARN :: !(Maybe Text) , _sgrsResponseStatus :: !Int } deriving (Eq,Read,Show,Data,Typeable,Generic) -- | Creates a value of 'StartGatewayResponse' with the minimum fields required to make a request. -- -- Use one of the following lenses to modify other fields as desired: -- -- * 'sgrsGatewayARN' -- -- * 'sgrsResponseStatus' startGatewayResponse :: Int -- ^ 'sgrsResponseStatus' -> StartGatewayResponse startGatewayResponse pResponseStatus_ = StartGatewayResponse' { _sgrsGatewayARN = Nothing , _sgrsResponseStatus = pResponseStatus_ } -- | Undocumented member. sgrsGatewayARN :: Lens' StartGatewayResponse (Maybe Text) sgrsGatewayARN = lens _sgrsGatewayARN (\ s a -> s{_sgrsGatewayARN = a}); -- | The response status code. sgrsResponseStatus :: Lens' StartGatewayResponse Int sgrsResponseStatus = lens _sgrsResponseStatus (\ s a -> s{_sgrsResponseStatus = a}); instance NFData StartGatewayResponse