{-# 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 #-}
module Network.AWS.SSM.CreateResourceDataSync
(
createResourceDataSync
, CreateResourceDataSync
, crdsSyncName
, crdsS3Destination
, createResourceDataSyncResponse
, CreateResourceDataSyncResponse
, crdsrsResponseStatus
) where
import Network.AWS.Lens
import Network.AWS.Prelude
import Network.AWS.Request
import Network.AWS.Response
import Network.AWS.SSM.Types
import Network.AWS.SSM.Types.Product
data CreateResourceDataSync = CreateResourceDataSync'
{ _crdsSyncName :: !Text
, _crdsS3Destination :: !ResourceDataSyncS3Destination
} deriving (Eq, Read, Show, Data, Typeable, Generic)
createResourceDataSync
:: Text
-> ResourceDataSyncS3Destination
-> CreateResourceDataSync
createResourceDataSync pSyncName_ pS3Destination_ =
CreateResourceDataSync'
{_crdsSyncName = pSyncName_, _crdsS3Destination = pS3Destination_}
crdsSyncName :: Lens' CreateResourceDataSync Text
crdsSyncName = lens _crdsSyncName (\ s a -> s{_crdsSyncName = a})
crdsS3Destination :: Lens' CreateResourceDataSync ResourceDataSyncS3Destination
crdsS3Destination = lens _crdsS3Destination (\ s a -> s{_crdsS3Destination = a})
instance AWSRequest CreateResourceDataSync where
type Rs CreateResourceDataSync =
CreateResourceDataSyncResponse
request = postJSON ssm
response
= receiveEmpty
(\ s h x ->
CreateResourceDataSyncResponse' <$>
(pure (fromEnum s)))
instance Hashable CreateResourceDataSync where
instance NFData CreateResourceDataSync where
instance ToHeaders CreateResourceDataSync where
toHeaders
= const
(mconcat
["X-Amz-Target" =#
("AmazonSSM.CreateResourceDataSync" :: ByteString),
"Content-Type" =#
("application/x-amz-json-1.1" :: ByteString)])
instance ToJSON CreateResourceDataSync where
toJSON CreateResourceDataSync'{..}
= object
(catMaybes
[Just ("SyncName" .= _crdsSyncName),
Just ("S3Destination" .= _crdsS3Destination)])
instance ToPath CreateResourceDataSync where
toPath = const "/"
instance ToQuery CreateResourceDataSync where
toQuery = const mempty
newtype CreateResourceDataSyncResponse = CreateResourceDataSyncResponse'
{ _crdsrsResponseStatus :: Int
} deriving (Eq, Read, Show, Data, Typeable, Generic)
createResourceDataSyncResponse
:: Int
-> CreateResourceDataSyncResponse
createResourceDataSyncResponse pResponseStatus_ =
CreateResourceDataSyncResponse' {_crdsrsResponseStatus = pResponseStatus_}
crdsrsResponseStatus :: Lens' CreateResourceDataSyncResponse Int
crdsrsResponseStatus = lens _crdsrsResponseStatus (\ s a -> s{_crdsrsResponseStatus = a})
instance NFData CreateResourceDataSyncResponse where