module Network.AWS.StorageGateway.UpdateMaintenanceStartTime
(
updateMaintenanceStartTime
, UpdateMaintenanceStartTime
, umstGatewayARN
, umstHourOfDay
, umstMinuteOfHour
, umstDayOfWeek
, updateMaintenanceStartTimeResponse
, UpdateMaintenanceStartTimeResponse
, umstrsGatewayARN
, umstrsResponseStatus
) where
import Network.AWS.Prelude
import Network.AWS.Request
import Network.AWS.Response
import Network.AWS.StorageGateway.Types
import Network.AWS.StorageGateway.Types.Product
data UpdateMaintenanceStartTime = UpdateMaintenanceStartTime'
{ _umstGatewayARN :: !Text
, _umstHourOfDay :: !Nat
, _umstMinuteOfHour :: !Nat
, _umstDayOfWeek :: !Nat
} deriving (Eq,Read,Show,Data,Typeable,Generic)
updateMaintenanceStartTime
:: Text
-> Natural
-> Natural
-> Natural
-> UpdateMaintenanceStartTime
updateMaintenanceStartTime pGatewayARN_ pHourOfDay_ pMinuteOfHour_ pDayOfWeek_ =
UpdateMaintenanceStartTime'
{ _umstGatewayARN = pGatewayARN_
, _umstHourOfDay = _Nat # pHourOfDay_
, _umstMinuteOfHour = _Nat # pMinuteOfHour_
, _umstDayOfWeek = _Nat # pDayOfWeek_
}
umstGatewayARN :: Lens' UpdateMaintenanceStartTime Text
umstGatewayARN = lens _umstGatewayARN (\ s a -> s{_umstGatewayARN = a});
umstHourOfDay :: Lens' UpdateMaintenanceStartTime Natural
umstHourOfDay = lens _umstHourOfDay (\ s a -> s{_umstHourOfDay = a}) . _Nat;
umstMinuteOfHour :: Lens' UpdateMaintenanceStartTime Natural
umstMinuteOfHour = lens _umstMinuteOfHour (\ s a -> s{_umstMinuteOfHour = a}) . _Nat;
umstDayOfWeek :: Lens' UpdateMaintenanceStartTime Natural
umstDayOfWeek = lens _umstDayOfWeek (\ s a -> s{_umstDayOfWeek = a}) . _Nat;
instance AWSRequest UpdateMaintenanceStartTime where
type Rs UpdateMaintenanceStartTime =
UpdateMaintenanceStartTimeResponse
request = postJSON storageGateway
response
= receiveJSON
(\ s h x ->
UpdateMaintenanceStartTimeResponse' <$>
(x .?> "GatewayARN") <*> (pure (fromEnum s)))
instance ToHeaders UpdateMaintenanceStartTime where
toHeaders
= const
(mconcat
["X-Amz-Target" =#
("StorageGateway_20130630.UpdateMaintenanceStartTime"
:: ByteString),
"Content-Type" =#
("application/x-amz-json-1.1" :: ByteString)])
instance ToJSON UpdateMaintenanceStartTime where
toJSON UpdateMaintenanceStartTime'{..}
= object
(catMaybes
[Just ("GatewayARN" .= _umstGatewayARN),
Just ("HourOfDay" .= _umstHourOfDay),
Just ("MinuteOfHour" .= _umstMinuteOfHour),
Just ("DayOfWeek" .= _umstDayOfWeek)])
instance ToPath UpdateMaintenanceStartTime where
toPath = const "/"
instance ToQuery UpdateMaintenanceStartTime where
toQuery = const mempty
data UpdateMaintenanceStartTimeResponse = UpdateMaintenanceStartTimeResponse'
{ _umstrsGatewayARN :: !(Maybe Text)
, _umstrsResponseStatus :: !Int
} deriving (Eq,Read,Show,Data,Typeable,Generic)
updateMaintenanceStartTimeResponse
:: Int
-> UpdateMaintenanceStartTimeResponse
updateMaintenanceStartTimeResponse pResponseStatus_ =
UpdateMaintenanceStartTimeResponse'
{ _umstrsGatewayARN = Nothing
, _umstrsResponseStatus = pResponseStatus_
}
umstrsGatewayARN :: Lens' UpdateMaintenanceStartTimeResponse (Maybe Text)
umstrsGatewayARN = lens _umstrsGatewayARN (\ s a -> s{_umstrsGatewayARN = a});
umstrsResponseStatus :: Lens' UpdateMaintenanceStartTimeResponse Int
umstrsResponseStatus = lens _umstrsResponseStatus (\ s a -> s{_umstrsResponseStatus = a});