module Network.AWS.S3.PutBucketVersioning
(
PutBucketVersioning
, putBucketVersioning
, pbvBucket
, pbvContentMD5
, pbvMFA
, pbvVersioningConfiguration
, PutBucketVersioningResponse
, putBucketVersioningResponse
) where
import Network.AWS.Prelude
import Network.AWS.Request.S3
import Network.AWS.S3.Types
import qualified GHC.Exts
data PutBucketVersioning = PutBucketVersioning
{ _pbvBucket :: Text
, _pbvContentMD5 :: Maybe Text
, _pbvMFA :: Maybe Text
, _pbvVersioningConfiguration :: VersioningConfiguration
} deriving (Eq, Show)
putBucketVersioning :: Text
-> VersioningConfiguration
-> PutBucketVersioning
putBucketVersioning p1 p2 = PutBucketVersioning
{ _pbvBucket = p1
, _pbvVersioningConfiguration = p2
, _pbvContentMD5 = Nothing
, _pbvMFA = Nothing
}
pbvBucket :: Lens' PutBucketVersioning Text
pbvBucket = lens _pbvBucket (\s a -> s { _pbvBucket = a })
pbvContentMD5 :: Lens' PutBucketVersioning (Maybe Text)
pbvContentMD5 = lens _pbvContentMD5 (\s a -> s { _pbvContentMD5 = a })
pbvMFA :: Lens' PutBucketVersioning (Maybe Text)
pbvMFA = lens _pbvMFA (\s a -> s { _pbvMFA = a })
pbvVersioningConfiguration :: Lens' PutBucketVersioning VersioningConfiguration
pbvVersioningConfiguration =
lens _pbvVersioningConfiguration
(\s a -> s { _pbvVersioningConfiguration = a })
data PutBucketVersioningResponse = PutBucketVersioningResponse
deriving (Eq, Ord, Show, Generic)
putBucketVersioningResponse :: PutBucketVersioningResponse
putBucketVersioningResponse = PutBucketVersioningResponse
instance ToPath PutBucketVersioning where
toPath PutBucketVersioning{..} = mconcat
[ "/"
, toText _pbvBucket
]
instance ToQuery PutBucketVersioning where
toQuery = const "versioning"
instance ToHeaders PutBucketVersioning where
toHeaders PutBucketVersioning{..} = mconcat
[ "Content-MD5" =: _pbvContentMD5
, "x-amz-mfa" =: _pbvMFA
]
instance ToXMLRoot PutBucketVersioning where
toXMLRoot PutBucketVersioning{..} = namespaced ns "PutBucketVersioning"
[ "VersioningConfiguration" =@ _pbvVersioningConfiguration
]
instance ToXML PutBucketVersioning
instance AWSRequest PutBucketVersioning where
type Sv PutBucketVersioning = S3
type Rs PutBucketVersioning = PutBucketVersioningResponse
request = put
response = nullResponse PutBucketVersioningResponse