module Network.AWS.StorageGateway.DescribeWorkingStorage
(
DescribeWorkingStorage
, describeWorkingStorage
, dwsGatewayARN
, DescribeWorkingStorageResponse
, describeWorkingStorageResponse
, dwsrDiskIds
, dwsrGatewayARN
, dwsrWorkingStorageAllocatedInBytes
, dwsrWorkingStorageUsedInBytes
) where
import Network.AWS.Prelude
import Network.AWS.Request.JSON
import Network.AWS.StorageGateway.Types
import qualified GHC.Exts
newtype DescribeWorkingStorage = DescribeWorkingStorage
{ _dwsGatewayARN :: Text
} deriving (Eq, Ord, Read, Show, Monoid, IsString)
describeWorkingStorage :: Text
-> DescribeWorkingStorage
describeWorkingStorage p1 = DescribeWorkingStorage
{ _dwsGatewayARN = p1
}
dwsGatewayARN :: Lens' DescribeWorkingStorage Text
dwsGatewayARN = lens _dwsGatewayARN (\s a -> s { _dwsGatewayARN = a })
data DescribeWorkingStorageResponse = DescribeWorkingStorageResponse
{ _dwsrDiskIds :: List "DiskIds" Text
, _dwsrGatewayARN :: Maybe Text
, _dwsrWorkingStorageAllocatedInBytes :: Maybe Integer
, _dwsrWorkingStorageUsedInBytes :: Maybe Integer
} deriving (Eq, Ord, Read, Show)
describeWorkingStorageResponse :: DescribeWorkingStorageResponse
describeWorkingStorageResponse = DescribeWorkingStorageResponse
{ _dwsrGatewayARN = Nothing
, _dwsrDiskIds = mempty
, _dwsrWorkingStorageUsedInBytes = Nothing
, _dwsrWorkingStorageAllocatedInBytes = Nothing
}
dwsrDiskIds :: Lens' DescribeWorkingStorageResponse [Text]
dwsrDiskIds = lens _dwsrDiskIds (\s a -> s { _dwsrDiskIds = a }) . _List
dwsrGatewayARN :: Lens' DescribeWorkingStorageResponse (Maybe Text)
dwsrGatewayARN = lens _dwsrGatewayARN (\s a -> s { _dwsrGatewayARN = a })
dwsrWorkingStorageAllocatedInBytes :: Lens' DescribeWorkingStorageResponse (Maybe Integer)
dwsrWorkingStorageAllocatedInBytes =
lens _dwsrWorkingStorageAllocatedInBytes
(\s a -> s { _dwsrWorkingStorageAllocatedInBytes = a })
dwsrWorkingStorageUsedInBytes :: Lens' DescribeWorkingStorageResponse (Maybe Integer)
dwsrWorkingStorageUsedInBytes =
lens _dwsrWorkingStorageUsedInBytes
(\s a -> s { _dwsrWorkingStorageUsedInBytes = a })
instance ToPath DescribeWorkingStorage where
toPath = const "/"
instance ToQuery DescribeWorkingStorage where
toQuery = const mempty
instance ToHeaders DescribeWorkingStorage
instance ToJSON DescribeWorkingStorage where
toJSON DescribeWorkingStorage{..} = object
[ "GatewayARN" .= _dwsGatewayARN
]
instance AWSRequest DescribeWorkingStorage where
type Sv DescribeWorkingStorage = StorageGateway
type Rs DescribeWorkingStorage = DescribeWorkingStorageResponse
request = post "DescribeWorkingStorage"
response = jsonResponse
instance FromJSON DescribeWorkingStorageResponse where
parseJSON = withObject "DescribeWorkingStorageResponse" $ \o -> DescribeWorkingStorageResponse
<$> o .:? "DiskIds" .!= mempty
<*> o .:? "GatewayARN"
<*> o .:? "WorkingStorageAllocatedInBytes"
<*> o .:? "WorkingStorageUsedInBytes"