module Network.AWS.StorageGateway.UpdateMaintenanceStartTime
(
UpdateMaintenanceStartTime
, updateMaintenanceStartTime
, umstDayOfWeek
, umstGatewayARN
, umstHourOfDay
, umstMinuteOfHour
, UpdateMaintenanceStartTimeResponse
, updateMaintenanceStartTimeResponse
, umstrGatewayARN
) where
import Network.AWS.Prelude
import Network.AWS.Request.JSON
import Network.AWS.StorageGateway.Types
import qualified GHC.Exts
data UpdateMaintenanceStartTime = UpdateMaintenanceStartTime
{ _umstDayOfWeek :: Nat
, _umstGatewayARN :: Text
, _umstHourOfDay :: Nat
, _umstMinuteOfHour :: Nat
} deriving (Eq, Ord, Show)
updateMaintenanceStartTime :: Text
-> Natural
-> Natural
-> Natural
-> UpdateMaintenanceStartTime
updateMaintenanceStartTime p1 p2 p3 p4 = UpdateMaintenanceStartTime
{ _umstGatewayARN = p1
, _umstHourOfDay = withIso _Nat (const id) p2
, _umstMinuteOfHour = withIso _Nat (const id) p3
, _umstDayOfWeek = withIso _Nat (const id) p4
}
umstDayOfWeek :: Lens' UpdateMaintenanceStartTime Natural
umstDayOfWeek = lens _umstDayOfWeek (\s a -> s { _umstDayOfWeek = a }) . _Nat
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
newtype UpdateMaintenanceStartTimeResponse = UpdateMaintenanceStartTimeResponse
{ _umstrGatewayARN :: Maybe Text
} deriving (Eq, Ord, Show, Monoid)
updateMaintenanceStartTimeResponse :: UpdateMaintenanceStartTimeResponse
updateMaintenanceStartTimeResponse = UpdateMaintenanceStartTimeResponse
{ _umstrGatewayARN = Nothing
}
umstrGatewayARN :: Lens' UpdateMaintenanceStartTimeResponse (Maybe Text)
umstrGatewayARN = lens _umstrGatewayARN (\s a -> s { _umstrGatewayARN = a })
instance ToPath UpdateMaintenanceStartTime where
toPath = const "/"
instance ToQuery UpdateMaintenanceStartTime where
toQuery = const mempty
instance ToHeaders UpdateMaintenanceStartTime
instance ToJSON UpdateMaintenanceStartTime where
toJSON UpdateMaintenanceStartTime{..} = object
[ "GatewayARN" .= _umstGatewayARN
, "HourOfDay" .= _umstHourOfDay
, "MinuteOfHour" .= _umstMinuteOfHour
, "DayOfWeek" .= _umstDayOfWeek
]
instance AWSRequest UpdateMaintenanceStartTime where
type Sv UpdateMaintenanceStartTime = StorageGateway
type Rs UpdateMaintenanceStartTime = UpdateMaintenanceStartTimeResponse
request = post "UpdateMaintenanceStartTime"
response = jsonResponse
instance FromJSON UpdateMaintenanceStartTimeResponse where
parseJSON = withObject "UpdateMaintenanceStartTimeResponse" $ \o -> UpdateMaintenanceStartTimeResponse
<$> o .:? "GatewayARN"