{-# 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.DescribeSnapshotSchedule
(
describeSnapshotSchedule
, DescribeSnapshotSchedule
, dssVolumeARN
, describeSnapshotScheduleResponse
, DescribeSnapshotScheduleResponse
, dssrsStartAt
, dssrsVolumeARN
, dssrsRecurrenceInHours
, dssrsTimezone
, dssrsDescription
, dssrsResponseStatus
) 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 DescribeSnapshotSchedule = DescribeSnapshotSchedule'
{ _dssVolumeARN :: Text
} deriving (Eq, Read, Show, Data, Typeable, Generic)
describeSnapshotSchedule
:: Text
-> DescribeSnapshotSchedule
describeSnapshotSchedule pVolumeARN_ =
DescribeSnapshotSchedule' {_dssVolumeARN = pVolumeARN_}
dssVolumeARN :: Lens' DescribeSnapshotSchedule Text
dssVolumeARN = lens _dssVolumeARN (\ s a -> s{_dssVolumeARN = a})
instance AWSRequest DescribeSnapshotSchedule where
type Rs DescribeSnapshotSchedule =
DescribeSnapshotScheduleResponse
request = postJSON storageGateway
response
= receiveJSON
(\ s h x ->
DescribeSnapshotScheduleResponse' <$>
(x .?> "StartAt") <*> (x .?> "VolumeARN") <*>
(x .?> "RecurrenceInHours")
<*> (x .?> "Timezone")
<*> (x .?> "Description")
<*> (pure (fromEnum s)))
instance Hashable DescribeSnapshotSchedule where
instance NFData DescribeSnapshotSchedule where
instance ToHeaders DescribeSnapshotSchedule where
toHeaders
= const
(mconcat
["X-Amz-Target" =#
("StorageGateway_20130630.DescribeSnapshotSchedule"
:: ByteString),
"Content-Type" =#
("application/x-amz-json-1.1" :: ByteString)])
instance ToJSON DescribeSnapshotSchedule where
toJSON DescribeSnapshotSchedule'{..}
= object
(catMaybes [Just ("VolumeARN" .= _dssVolumeARN)])
instance ToPath DescribeSnapshotSchedule where
toPath = const "/"
instance ToQuery DescribeSnapshotSchedule where
toQuery = const mempty
data DescribeSnapshotScheduleResponse = DescribeSnapshotScheduleResponse'
{ _dssrsStartAt :: !(Maybe Nat)
, _dssrsVolumeARN :: !(Maybe Text)
, _dssrsRecurrenceInHours :: !(Maybe Nat)
, _dssrsTimezone :: !(Maybe Text)
, _dssrsDescription :: !(Maybe Text)
, _dssrsResponseStatus :: !Int
} deriving (Eq, Read, Show, Data, Typeable, Generic)
describeSnapshotScheduleResponse
:: Int
-> DescribeSnapshotScheduleResponse
describeSnapshotScheduleResponse pResponseStatus_ =
DescribeSnapshotScheduleResponse'
{ _dssrsStartAt = Nothing
, _dssrsVolumeARN = Nothing
, _dssrsRecurrenceInHours = Nothing
, _dssrsTimezone = Nothing
, _dssrsDescription = Nothing
, _dssrsResponseStatus = pResponseStatus_
}
dssrsStartAt :: Lens' DescribeSnapshotScheduleResponse (Maybe Natural)
dssrsStartAt = lens _dssrsStartAt (\ s a -> s{_dssrsStartAt = a}) . mapping _Nat
dssrsVolumeARN :: Lens' DescribeSnapshotScheduleResponse (Maybe Text)
dssrsVolumeARN = lens _dssrsVolumeARN (\ s a -> s{_dssrsVolumeARN = a})
dssrsRecurrenceInHours :: Lens' DescribeSnapshotScheduleResponse (Maybe Natural)
dssrsRecurrenceInHours = lens _dssrsRecurrenceInHours (\ s a -> s{_dssrsRecurrenceInHours = a}) . mapping _Nat
dssrsTimezone :: Lens' DescribeSnapshotScheduleResponse (Maybe Text)
dssrsTimezone = lens _dssrsTimezone (\ s a -> s{_dssrsTimezone = a})
dssrsDescription :: Lens' DescribeSnapshotScheduleResponse (Maybe Text)
dssrsDescription = lens _dssrsDescription (\ s a -> s{_dssrsDescription = a})
dssrsResponseStatus :: Lens' DescribeSnapshotScheduleResponse Int
dssrsResponseStatus = lens _dssrsResponseStatus (\ s a -> s{_dssrsResponseStatus = a})
instance NFData DescribeSnapshotScheduleResponse
where