{-# 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.SMS.UpdateReplicationJob
(
updateReplicationJob
, UpdateReplicationJob
, urjFrequency
, urjLicenseType
, urjRoleName
, urjNextReplicationRunStartTime
, urjDescription
, urjReplicationJobId
, updateReplicationJobResponse
, UpdateReplicationJobResponse
, urjrsResponseStatus
) where
import Network.AWS.Lens
import Network.AWS.Prelude
import Network.AWS.Request
import Network.AWS.Response
import Network.AWS.SMS.Types
import Network.AWS.SMS.Types.Product
data UpdateReplicationJob = UpdateReplicationJob'
{ _urjFrequency :: !(Maybe Int)
, _urjLicenseType :: !(Maybe LicenseType)
, _urjRoleName :: !(Maybe Text)
, _urjNextReplicationRunStartTime :: !(Maybe POSIX)
, _urjDescription :: !(Maybe Text)
, _urjReplicationJobId :: !Text
} deriving (Eq, Read, Show, Data, Typeable, Generic)
updateReplicationJob
:: Text
-> UpdateReplicationJob
updateReplicationJob pReplicationJobId_ =
UpdateReplicationJob'
{ _urjFrequency = Nothing
, _urjLicenseType = Nothing
, _urjRoleName = Nothing
, _urjNextReplicationRunStartTime = Nothing
, _urjDescription = Nothing
, _urjReplicationJobId = pReplicationJobId_
}
urjFrequency :: Lens' UpdateReplicationJob (Maybe Int)
urjFrequency = lens _urjFrequency (\ s a -> s{_urjFrequency = a})
urjLicenseType :: Lens' UpdateReplicationJob (Maybe LicenseType)
urjLicenseType = lens _urjLicenseType (\ s a -> s{_urjLicenseType = a})
urjRoleName :: Lens' UpdateReplicationJob (Maybe Text)
urjRoleName = lens _urjRoleName (\ s a -> s{_urjRoleName = a})
urjNextReplicationRunStartTime :: Lens' UpdateReplicationJob (Maybe UTCTime)
urjNextReplicationRunStartTime = lens _urjNextReplicationRunStartTime (\ s a -> s{_urjNextReplicationRunStartTime = a}) . mapping _Time
urjDescription :: Lens' UpdateReplicationJob (Maybe Text)
urjDescription = lens _urjDescription (\ s a -> s{_urjDescription = a})
urjReplicationJobId :: Lens' UpdateReplicationJob Text
urjReplicationJobId = lens _urjReplicationJobId (\ s a -> s{_urjReplicationJobId = a})
instance AWSRequest UpdateReplicationJob where
type Rs UpdateReplicationJob =
UpdateReplicationJobResponse
request = postJSON sms
response
= receiveEmpty
(\ s h x ->
UpdateReplicationJobResponse' <$>
(pure (fromEnum s)))
instance Hashable UpdateReplicationJob where
instance NFData UpdateReplicationJob where
instance ToHeaders UpdateReplicationJob where
toHeaders
= const
(mconcat
["X-Amz-Target" =#
("AWSServerMigrationService_V2016_10_24.UpdateReplicationJob"
:: ByteString),
"Content-Type" =#
("application/x-amz-json-1.1" :: ByteString)])
instance ToJSON UpdateReplicationJob where
toJSON UpdateReplicationJob'{..}
= object
(catMaybes
[("frequency" .=) <$> _urjFrequency,
("licenseType" .=) <$> _urjLicenseType,
("roleName" .=) <$> _urjRoleName,
("nextReplicationRunStartTime" .=) <$>
_urjNextReplicationRunStartTime,
("description" .=) <$> _urjDescription,
Just ("replicationJobId" .= _urjReplicationJobId)])
instance ToPath UpdateReplicationJob where
toPath = const "/"
instance ToQuery UpdateReplicationJob where
toQuery = const mempty
newtype UpdateReplicationJobResponse = UpdateReplicationJobResponse'
{ _urjrsResponseStatus :: Int
} deriving (Eq, Read, Show, Data, Typeable, Generic)
updateReplicationJobResponse
:: Int
-> UpdateReplicationJobResponse
updateReplicationJobResponse pResponseStatus_ =
UpdateReplicationJobResponse' {_urjrsResponseStatus = pResponseStatus_}
urjrsResponseStatus :: Lens' UpdateReplicationJobResponse Int
urjrsResponseStatus = lens _urjrsResponseStatus (\ s a -> s{_urjrsResponseStatus = a})
instance NFData UpdateReplicationJobResponse where