module Network.AWS.S3.RestoreObject
(
RestoreObject
, restoreObject
, roBucket
, roKey
, roRestoreRequest
, roVersionId
, RestoreObjectResponse
, restoreObjectResponse
) where
import Network.AWS.Prelude
import Network.AWS.Request.S3
import Network.AWS.S3.Types
import qualified GHC.Exts
data RestoreObject = RestoreObject
{ _roBucket :: Text
, _roKey :: Text
, _roRestoreRequest :: Maybe RestoreRequest
, _roVersionId :: Maybe Text
} deriving (Eq, Show)
restoreObject :: Text
-> Text
-> RestoreObject
restoreObject p1 p2 = RestoreObject
{ _roBucket = p1
, _roKey = p2
, _roVersionId = Nothing
, _roRestoreRequest = Nothing
}
roBucket :: Lens' RestoreObject Text
roBucket = lens _roBucket (\s a -> s { _roBucket = a })
roKey :: Lens' RestoreObject Text
roKey = lens _roKey (\s a -> s { _roKey = a })
roRestoreRequest :: Lens' RestoreObject (Maybe RestoreRequest)
roRestoreRequest = lens _roRestoreRequest (\s a -> s { _roRestoreRequest = a })
roVersionId :: Lens' RestoreObject (Maybe Text)
roVersionId = lens _roVersionId (\s a -> s { _roVersionId = a })
data RestoreObjectResponse = RestoreObjectResponse
deriving (Eq, Ord, Show, Generic)
restoreObjectResponse :: RestoreObjectResponse
restoreObjectResponse = RestoreObjectResponse
instance ToPath RestoreObject where
toPath RestoreObject{..} = mconcat
[ "/"
, toText _roBucket
, "/"
, toText _roKey
]
instance ToQuery RestoreObject where
toQuery RestoreObject{..} = mconcat
[ "restore"
, "versionId" =? _roVersionId
]
instance ToHeaders RestoreObject
instance ToXMLRoot RestoreObject where
toXMLRoot RestoreObject{..} = namespaced ns "RestoreObject"
[ "RestoreRequest" =@ _roRestoreRequest
]
instance ToXML RestoreObject
instance AWSRequest RestoreObject where
type Sv RestoreObject = S3
type Rs RestoreObject = RestoreObjectResponse
request = post
response = nullResponse RestoreObjectResponse