module Network.AWS.S3.GetBucketAcl
(
GetBucketAcl
, getBucketAcl
, gbaBucket
, GetBucketAclResponse
, getBucketAclResponse
, gbarGrants
, gbarOwner
) where
import Network.AWS.Prelude
import Network.AWS.Request.S3
import Network.AWS.S3.Types
import qualified GHC.Exts
newtype GetBucketAcl = GetBucketAcl
{ _gbaBucket :: Text
} deriving (Eq, Ord, Show, Monoid, IsString)
getBucketAcl :: Text
-> GetBucketAcl
getBucketAcl p1 = GetBucketAcl
{ _gbaBucket = p1
}
gbaBucket :: Lens' GetBucketAcl Text
gbaBucket = lens _gbaBucket (\s a -> s { _gbaBucket = a })
data GetBucketAclResponse = GetBucketAclResponse
{ _gbarGrants :: List "Grant" Grant
, _gbarOwner :: Maybe Owner
} deriving (Eq, Show)
getBucketAclResponse :: GetBucketAclResponse
getBucketAclResponse = GetBucketAclResponse
{ _gbarOwner = Nothing
, _gbarGrants = mempty
}
gbarGrants :: Lens' GetBucketAclResponse [Grant]
gbarGrants = lens _gbarGrants (\s a -> s { _gbarGrants = a }) . _List
gbarOwner :: Lens' GetBucketAclResponse (Maybe Owner)
gbarOwner = lens _gbarOwner (\s a -> s { _gbarOwner = a })
instance ToPath GetBucketAcl where
toPath GetBucketAcl{..} = mconcat
[ "/"
, toText _gbaBucket
]
instance ToQuery GetBucketAcl where
toQuery = const "acl"
instance ToHeaders GetBucketAcl
instance ToXMLRoot GetBucketAcl where
toXMLRoot = const (namespaced ns "GetBucketAcl" [])
instance ToXML GetBucketAcl
instance AWSRequest GetBucketAcl where
type Sv GetBucketAcl = S3
type Rs GetBucketAcl = GetBucketAclResponse
request = get
response = xmlResponse
instance FromXML GetBucketAclResponse where
parseXML x = GetBucketAclResponse
<$> x .@ "AccessControlList"
<*> x .@? "Owner"