{-# 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.CloudTrail.StopLogging -- Copyright : (c) 2013-2016 Brendan Hay -- License : Mozilla Public License, v. 2.0. -- Maintainer : Brendan Hay -- Stability : auto-generated -- Portability : non-portable (GHC extensions) -- -- Suspends the recording of AWS API calls and log file delivery for the specified trail. Under most circumstances, there is no need to use this action. You can update a trail without stopping it first. This action is the only way to stop recording. For a trail enabled in all regions, this operation must be called from the region in which the trail was created, or an 'InvalidHomeRegionException' will occur. This operation cannot be called on the shadow trails (replicated trails in other regions) of a trail enabled in all regions. module Network.AWS.CloudTrail.StopLogging ( -- * Creating a Request stopLogging , StopLogging -- * Request Lenses , slName -- * Destructuring the Response , stopLoggingResponse , StopLoggingResponse -- * Response Lenses , slrsResponseStatus ) where import Network.AWS.CloudTrail.Types import Network.AWS.CloudTrail.Types.Product import Network.AWS.Lens import Network.AWS.Prelude import Network.AWS.Request import Network.AWS.Response -- | Passes the request to CloudTrail to stop logging AWS API calls for the specified account. -- -- /See:/ 'stopLogging' smart constructor. newtype StopLogging = StopLogging' { _slName :: Text } deriving (Eq,Read,Show,Data,Typeable,Generic) -- | Creates a value of 'StopLogging' with the minimum fields required to make a request. -- -- Use one of the following lenses to modify other fields as desired: -- -- * 'slName' stopLogging :: Text -- ^ 'slName' -> StopLogging stopLogging pName_ = StopLogging' { _slName = pName_ } -- | Specifies the name or the CloudTrail ARN of the trail for which CloudTrail will stop logging AWS API calls. The format of a trail ARN is 'arn:aws:cloudtrail:us-east-1:123456789012:trail\/MyTrail'. slName :: Lens' StopLogging Text slName = lens _slName (\ s a -> s{_slName = a}); instance AWSRequest StopLogging where type Rs StopLogging = StopLoggingResponse request = postJSON cloudTrail response = receiveEmpty (\ s h x -> StopLoggingResponse' <$> (pure (fromEnum s))) instance Hashable StopLogging instance NFData StopLogging instance ToHeaders StopLogging where toHeaders = const (mconcat ["X-Amz-Target" =# ("com.amazonaws.cloudtrail.v20131101.CloudTrail_20131101.StopLogging" :: ByteString), "Content-Type" =# ("application/x-amz-json-1.1" :: ByteString)]) instance ToJSON StopLogging where toJSON StopLogging'{..} = object (catMaybes [Just ("Name" .= _slName)]) instance ToPath StopLogging where toPath = const "/" instance ToQuery StopLogging where toQuery = const mempty -- | Returns the objects or data listed below if successful. Otherwise, returns an error. -- -- /See:/ 'stopLoggingResponse' smart constructor. newtype StopLoggingResponse = StopLoggingResponse' { _slrsResponseStatus :: Int } deriving (Eq,Read,Show,Data,Typeable,Generic) -- | Creates a value of 'StopLoggingResponse' with the minimum fields required to make a request. -- -- Use one of the following lenses to modify other fields as desired: -- -- * 'slrsResponseStatus' stopLoggingResponse :: Int -- ^ 'slrsResponseStatus' -> StopLoggingResponse stopLoggingResponse pResponseStatus_ = StopLoggingResponse' { _slrsResponseStatus = pResponseStatus_ } -- | The response status code. slrsResponseStatus :: Lens' StopLoggingResponse Int slrsResponseStatus = lens _slrsResponseStatus (\ s a -> s{_slrsResponseStatus = a}); instance NFData StopLoggingResponse