{-# 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.StorageGateway.NotifyWhenUploaded
(
notifyWhenUploaded
, NotifyWhenUploaded
, nwuFileShareARN
, notifyWhenUploadedResponse
, NotifyWhenUploadedResponse
, nwursFileShareARN
, nwursNotificationId
, nwursResponseStatus
) 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
newtype NotifyWhenUploaded = NotifyWhenUploaded'
{ _nwuFileShareARN :: Text
} deriving (Eq, Read, Show, Data, Typeable, Generic)
notifyWhenUploaded
:: Text
-> NotifyWhenUploaded
notifyWhenUploaded pFileShareARN_ =
NotifyWhenUploaded' {_nwuFileShareARN = pFileShareARN_}
nwuFileShareARN :: Lens' NotifyWhenUploaded Text
nwuFileShareARN = lens _nwuFileShareARN (\ s a -> s{_nwuFileShareARN = a})
instance AWSRequest NotifyWhenUploaded where
type Rs NotifyWhenUploaded =
NotifyWhenUploadedResponse
request = postJSON storageGateway
response
= receiveJSON
(\ s h x ->
NotifyWhenUploadedResponse' <$>
(x .?> "FileShareARN") <*> (x .?> "NotificationId")
<*> (pure (fromEnum s)))
instance Hashable NotifyWhenUploaded where
instance NFData NotifyWhenUploaded where
instance ToHeaders NotifyWhenUploaded where
toHeaders
= const
(mconcat
["X-Amz-Target" =#
("StorageGateway_20130630.NotifyWhenUploaded" ::
ByteString),
"Content-Type" =#
("application/x-amz-json-1.1" :: ByteString)])
instance ToJSON NotifyWhenUploaded where
toJSON NotifyWhenUploaded'{..}
= object
(catMaybes
[Just ("FileShareARN" .= _nwuFileShareARN)])
instance ToPath NotifyWhenUploaded where
toPath = const "/"
instance ToQuery NotifyWhenUploaded where
toQuery = const mempty
data NotifyWhenUploadedResponse = NotifyWhenUploadedResponse'
{ _nwursFileShareARN :: !(Maybe Text)
, _nwursNotificationId :: !(Maybe Text)
, _nwursResponseStatus :: !Int
} deriving (Eq, Read, Show, Data, Typeable, Generic)
notifyWhenUploadedResponse
:: Int
-> NotifyWhenUploadedResponse
notifyWhenUploadedResponse pResponseStatus_ =
NotifyWhenUploadedResponse'
{ _nwursFileShareARN = Nothing
, _nwursNotificationId = Nothing
, _nwursResponseStatus = pResponseStatus_
}
nwursFileShareARN :: Lens' NotifyWhenUploadedResponse (Maybe Text)
nwursFileShareARN = lens _nwursFileShareARN (\ s a -> s{_nwursFileShareARN = a})
nwursNotificationId :: Lens' NotifyWhenUploadedResponse (Maybe Text)
nwursNotificationId = lens _nwursNotificationId (\ s a -> s{_nwursNotificationId = a})
nwursResponseStatus :: Lens' NotifyWhenUploadedResponse Int
nwursResponseStatus = lens _nwursResponseStatus (\ s a -> s{_nwursResponseStatus = a})
instance NFData NotifyWhenUploadedResponse where