amazonka-cloudtrail-1.6.0: gen/Network/AWS/CloudTrail/StartLogging.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.CloudTrail.StartLogging
-- Copyright : (c) 2013-2018 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)
--
-- Starts the recording of AWS API calls and log file delivery for a trail. For a trail that is enabled in all regions, this operation must be called from the region in which the trail was created. This operation cannot be called on the shadow trails (replicated trails in other regions) of a trail that is enabled in all regions.
--
--
module Network.AWS.CloudTrail.StartLogging
(
-- * Creating a Request
startLogging
, StartLogging
-- * Request Lenses
, sName
-- * Destructuring the Response
, startLoggingResponse
, StartLoggingResponse
-- * Response Lenses
, srsResponseStatus
) 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
-- | The request to CloudTrail to start logging AWS API calls for an account.
--
--
--
-- /See:/ 'startLogging' smart constructor.
newtype StartLogging = StartLogging'
{ _sName :: Text
} deriving (Eq, Read, Show, Data, Typeable, Generic)
-- | Creates a value of 'StartLogging' with the minimum fields required to make a request.
--
-- Use one of the following lenses to modify other fields as desired:
--
-- * 'sName' - Specifies the name or the CloudTrail ARN of the trail for which CloudTrail logs AWS API calls. The format of a trail ARN is: @arn:aws:cloudtrail:us-east-1:123456789012:trail/MyTrail@
startLogging
:: Text -- ^ 'sName'
-> StartLogging
startLogging pName_ = StartLogging' {_sName = pName_}
-- | Specifies the name or the CloudTrail ARN of the trail for which CloudTrail logs AWS API calls. The format of a trail ARN is: @arn:aws:cloudtrail:us-east-1:123456789012:trail/MyTrail@
sName :: Lens' StartLogging Text
sName = lens _sName (\ s a -> s{_sName = a})
instance AWSRequest StartLogging where
type Rs StartLogging = StartLoggingResponse
request = postJSON cloudTrail
response
= receiveEmpty
(\ s h x ->
StartLoggingResponse' <$> (pure (fromEnum s)))
instance Hashable StartLogging where
instance NFData StartLogging where
instance ToHeaders StartLogging where
toHeaders
= const
(mconcat
["X-Amz-Target" =#
("com.amazonaws.cloudtrail.v20131101.CloudTrail_20131101.StartLogging"
:: ByteString),
"Content-Type" =#
("application/x-amz-json-1.1" :: ByteString)])
instance ToJSON StartLogging where
toJSON StartLogging'{..}
= object (catMaybes [Just ("Name" .= _sName)])
instance ToPath StartLogging where
toPath = const "/"
instance ToQuery StartLogging where
toQuery = const mempty
-- | Returns the objects or data listed below if successful. Otherwise, returns an error.
--
--
--
-- /See:/ 'startLoggingResponse' smart constructor.
newtype StartLoggingResponse = StartLoggingResponse'
{ _srsResponseStatus :: Int
} deriving (Eq, Read, Show, Data, Typeable, Generic)
-- | Creates a value of 'StartLoggingResponse' with the minimum fields required to make a request.
--
-- Use one of the following lenses to modify other fields as desired:
--
-- * 'srsResponseStatus' - -- | The response status code.
startLoggingResponse
:: Int -- ^ 'srsResponseStatus'
-> StartLoggingResponse
startLoggingResponse pResponseStatus_ =
StartLoggingResponse' {_srsResponseStatus = pResponseStatus_}
-- | -- | The response status code.
srsResponseStatus :: Lens' StartLoggingResponse Int
srsResponseStatus = lens _srsResponseStatus (\ s a -> s{_srsResponseStatus = a})
instance NFData StartLoggingResponse where