{-# 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.ListLocalDisks
(
listLocalDisks
, ListLocalDisks
, lldGatewayARN
, listLocalDisksResponse
, ListLocalDisksResponse
, lldrsGatewayARN
, lldrsDisks
, lldrsResponseStatus
) 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 ListLocalDisks = ListLocalDisks'
{ _lldGatewayARN :: Text
} deriving (Eq, Read, Show, Data, Typeable, Generic)
listLocalDisks
:: Text
-> ListLocalDisks
listLocalDisks pGatewayARN_ = ListLocalDisks' {_lldGatewayARN = pGatewayARN_}
lldGatewayARN :: Lens' ListLocalDisks Text
lldGatewayARN = lens _lldGatewayARN (\ s a -> s{_lldGatewayARN = a})
instance AWSRequest ListLocalDisks where
type Rs ListLocalDisks = ListLocalDisksResponse
request = postJSON storageGateway
response
= receiveJSON
(\ s h x ->
ListLocalDisksResponse' <$>
(x .?> "GatewayARN") <*> (x .?> "Disks" .!@ mempty)
<*> (pure (fromEnum s)))
instance Hashable ListLocalDisks where
instance NFData ListLocalDisks where
instance ToHeaders ListLocalDisks where
toHeaders
= const
(mconcat
["X-Amz-Target" =#
("StorageGateway_20130630.ListLocalDisks" ::
ByteString),
"Content-Type" =#
("application/x-amz-json-1.1" :: ByteString)])
instance ToJSON ListLocalDisks where
toJSON ListLocalDisks'{..}
= object
(catMaybes [Just ("GatewayARN" .= _lldGatewayARN)])
instance ToPath ListLocalDisks where
toPath = const "/"
instance ToQuery ListLocalDisks where
toQuery = const mempty
data ListLocalDisksResponse = ListLocalDisksResponse'
{ _lldrsGatewayARN :: !(Maybe Text)
, _lldrsDisks :: !(Maybe [Disk])
, _lldrsResponseStatus :: !Int
} deriving (Eq, Read, Show, Data, Typeable, Generic)
listLocalDisksResponse
:: Int
-> ListLocalDisksResponse
listLocalDisksResponse pResponseStatus_ =
ListLocalDisksResponse'
{ _lldrsGatewayARN = Nothing
, _lldrsDisks = Nothing
, _lldrsResponseStatus = pResponseStatus_
}
lldrsGatewayARN :: Lens' ListLocalDisksResponse (Maybe Text)
lldrsGatewayARN = lens _lldrsGatewayARN (\ s a -> s{_lldrsGatewayARN = a})
lldrsDisks :: Lens' ListLocalDisksResponse [Disk]
lldrsDisks = lens _lldrsDisks (\ s a -> s{_lldrsDisks = a}) . _Default . _Coerce
lldrsResponseStatus :: Lens' ListLocalDisksResponse Int
lldrsResponseStatus = lens _lldrsResponseStatus (\ s a -> s{_lldrsResponseStatus = a})
instance NFData ListLocalDisksResponse where