module Network.AWS.StorageGateway.DescribeSnapshotSchedule
(
describeSnapshotSchedule
, DescribeSnapshotSchedule
, dssVolumeARN
, describeSnapshotScheduleResponse
, DescribeSnapshotScheduleResponse
, dssrsStartAt
, dssrsVolumeARN
, dssrsRecurrenceInHours
, dssrsTimezone
, dssrsDescription
, dssrsResponseStatus
) where
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 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});