module Network.AWS.S3.PutBucketAcl
(
PutBucketAcl
, putBucketAcl
, pbaACL
, pbaAccessControlPolicy
, pbaBucket
, pbaContentMD5
, pbaGrantFullControl
, pbaGrantRead
, pbaGrantReadACP
, pbaGrantWrite
, pbaGrantWriteACP
, PutBucketAclResponse
, putBucketAclResponse
) where
import Network.AWS.Prelude
import Network.AWS.Request.S3
import Network.AWS.S3.Types
import qualified GHC.Exts
data PutBucketAcl = PutBucketAcl
{ _pbaACL :: Maybe BucketCannedACL
, _pbaAccessControlPolicy :: Maybe AccessControlPolicy
, _pbaBucket :: Text
, _pbaContentMD5 :: Maybe Text
, _pbaGrantFullControl :: Maybe Text
, _pbaGrantRead :: Maybe Text
, _pbaGrantReadACP :: Maybe Text
, _pbaGrantWrite :: Maybe Text
, _pbaGrantWriteACP :: Maybe Text
} deriving (Eq, Show)
putBucketAcl :: Text
-> PutBucketAcl
putBucketAcl p1 = PutBucketAcl
{ _pbaBucket = p1
, _pbaACL = Nothing
, _pbaAccessControlPolicy = Nothing
, _pbaContentMD5 = Nothing
, _pbaGrantFullControl = Nothing
, _pbaGrantRead = Nothing
, _pbaGrantReadACP = Nothing
, _pbaGrantWrite = Nothing
, _pbaGrantWriteACP = Nothing
}
pbaACL :: Lens' PutBucketAcl (Maybe BucketCannedACL)
pbaACL = lens _pbaACL (\s a -> s { _pbaACL = a })
pbaAccessControlPolicy :: Lens' PutBucketAcl (Maybe AccessControlPolicy)
pbaAccessControlPolicy =
lens _pbaAccessControlPolicy (\s a -> s { _pbaAccessControlPolicy = a })
pbaBucket :: Lens' PutBucketAcl Text
pbaBucket = lens _pbaBucket (\s a -> s { _pbaBucket = a })
pbaContentMD5 :: Lens' PutBucketAcl (Maybe Text)
pbaContentMD5 = lens _pbaContentMD5 (\s a -> s { _pbaContentMD5 = a })
pbaGrantFullControl :: Lens' PutBucketAcl (Maybe Text)
pbaGrantFullControl =
lens _pbaGrantFullControl (\s a -> s { _pbaGrantFullControl = a })
pbaGrantRead :: Lens' PutBucketAcl (Maybe Text)
pbaGrantRead = lens _pbaGrantRead (\s a -> s { _pbaGrantRead = a })
pbaGrantReadACP :: Lens' PutBucketAcl (Maybe Text)
pbaGrantReadACP = lens _pbaGrantReadACP (\s a -> s { _pbaGrantReadACP = a })
pbaGrantWrite :: Lens' PutBucketAcl (Maybe Text)
pbaGrantWrite = lens _pbaGrantWrite (\s a -> s { _pbaGrantWrite = a })
pbaGrantWriteACP :: Lens' PutBucketAcl (Maybe Text)
pbaGrantWriteACP = lens _pbaGrantWriteACP (\s a -> s { _pbaGrantWriteACP = a })
data PutBucketAclResponse = PutBucketAclResponse
deriving (Eq, Ord, Show, Generic)
putBucketAclResponse :: PutBucketAclResponse
putBucketAclResponse = PutBucketAclResponse
instance ToPath PutBucketAcl where
toPath PutBucketAcl{..} = mconcat
[ "/"
, toText _pbaBucket
]
instance ToQuery PutBucketAcl where
toQuery = const "acl"
instance ToHeaders PutBucketAcl where
toHeaders PutBucketAcl{..} = mconcat
[ "x-amz-acl" =: _pbaACL
, "Content-MD5" =: _pbaContentMD5
, "x-amz-grant-full-control" =: _pbaGrantFullControl
, "x-amz-grant-read" =: _pbaGrantRead
, "x-amz-grant-read-acp" =: _pbaGrantReadACP
, "x-amz-grant-write" =: _pbaGrantWrite
, "x-amz-grant-write-acp" =: _pbaGrantWriteACP
]
instance ToXMLRoot PutBucketAcl where
toXMLRoot PutBucketAcl{..} = namespaced ns "PutBucketAcl"
[ "AccessControlPolicy" =@ _pbaAccessControlPolicy
]
instance ToXML PutBucketAcl
instance AWSRequest PutBucketAcl where
type Sv PutBucketAcl = S3
type Rs PutBucketAcl = PutBucketAclResponse
request = put
response = nullResponse PutBucketAclResponse