{-# LANGUAGE DeriveGeneric #-}
{-# LANGUAGE DuplicateRecordFields #-}
{-# LANGUAGE NamedFieldPuns #-}
{-# LANGUAGE OverloadedStrings #-}
{-# LANGUAGE RecordWildCards #-}
{-# LANGUAGE StrictData #-}
{-# LANGUAGE TypeFamilies #-}
{-# LANGUAGE NoImplicitPrelude #-}
{-# OPTIONS_GHC -fno-warn-unused-binds #-}
{-# OPTIONS_GHC -fno-warn-unused-imports #-}
{-# OPTIONS_GHC -fno-warn-unused-matches #-}
module Amazonka.S3.GetBucketAcl
(
GetBucketAcl (..),
newGetBucketAcl,
getBucketAcl_expectedBucketOwner,
getBucketAcl_bucket,
GetBucketAclResponse (..),
newGetBucketAclResponse,
getBucketAclResponse_grants,
getBucketAclResponse_owner,
getBucketAclResponse_httpStatus,
)
where
import qualified Amazonka.Core as Core
import qualified Amazonka.Core.Lens.Internal as Lens
import qualified Amazonka.Data as Data
import qualified Amazonka.Prelude as Prelude
import qualified Amazonka.Request as Request
import qualified Amazonka.Response as Response
import Amazonka.S3.Types
data GetBucketAcl = GetBucketAcl'
{
GetBucketAcl -> Maybe Text
expectedBucketOwner :: Prelude.Maybe Prelude.Text,
GetBucketAcl -> BucketName
bucket :: BucketName
}
deriving (GetBucketAcl -> GetBucketAcl -> Bool
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: GetBucketAcl -> GetBucketAcl -> Bool
$c/= :: GetBucketAcl -> GetBucketAcl -> Bool
== :: GetBucketAcl -> GetBucketAcl -> Bool
$c== :: GetBucketAcl -> GetBucketAcl -> Bool
Prelude.Eq, ReadPrec [GetBucketAcl]
ReadPrec GetBucketAcl
Int -> ReadS GetBucketAcl
ReadS [GetBucketAcl]
forall a.
(Int -> ReadS a)
-> ReadS [a] -> ReadPrec a -> ReadPrec [a] -> Read a
readListPrec :: ReadPrec [GetBucketAcl]
$creadListPrec :: ReadPrec [GetBucketAcl]
readPrec :: ReadPrec GetBucketAcl
$creadPrec :: ReadPrec GetBucketAcl
readList :: ReadS [GetBucketAcl]
$creadList :: ReadS [GetBucketAcl]
readsPrec :: Int -> ReadS GetBucketAcl
$creadsPrec :: Int -> ReadS GetBucketAcl
Prelude.Read, Int -> GetBucketAcl -> ShowS
[GetBucketAcl] -> ShowS
GetBucketAcl -> String
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [GetBucketAcl] -> ShowS
$cshowList :: [GetBucketAcl] -> ShowS
show :: GetBucketAcl -> String
$cshow :: GetBucketAcl -> String
showsPrec :: Int -> GetBucketAcl -> ShowS
$cshowsPrec :: Int -> GetBucketAcl -> ShowS
Prelude.Show, forall x. Rep GetBucketAcl x -> GetBucketAcl
forall x. GetBucketAcl -> Rep GetBucketAcl x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cto :: forall x. Rep GetBucketAcl x -> GetBucketAcl
$cfrom :: forall x. GetBucketAcl -> Rep GetBucketAcl x
Prelude.Generic)
newGetBucketAcl ::
BucketName ->
GetBucketAcl
newGetBucketAcl :: BucketName -> GetBucketAcl
newGetBucketAcl BucketName
pBucket_ =
GetBucketAcl'
{ $sel:expectedBucketOwner:GetBucketAcl' :: Maybe Text
expectedBucketOwner =
forall a. Maybe a
Prelude.Nothing,
$sel:bucket:GetBucketAcl' :: BucketName
bucket = BucketName
pBucket_
}
getBucketAcl_expectedBucketOwner :: Lens.Lens' GetBucketAcl (Prelude.Maybe Prelude.Text)
getBucketAcl_expectedBucketOwner :: Lens' GetBucketAcl (Maybe Text)
getBucketAcl_expectedBucketOwner = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\GetBucketAcl' {Maybe Text
expectedBucketOwner :: Maybe Text
$sel:expectedBucketOwner:GetBucketAcl' :: GetBucketAcl -> Maybe Text
expectedBucketOwner} -> Maybe Text
expectedBucketOwner) (\s :: GetBucketAcl
s@GetBucketAcl' {} Maybe Text
a -> GetBucketAcl
s {$sel:expectedBucketOwner:GetBucketAcl' :: Maybe Text
expectedBucketOwner = Maybe Text
a} :: GetBucketAcl)
getBucketAcl_bucket :: Lens.Lens' GetBucketAcl BucketName
getBucketAcl_bucket :: Lens' GetBucketAcl BucketName
getBucketAcl_bucket = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\GetBucketAcl' {BucketName
bucket :: BucketName
$sel:bucket:GetBucketAcl' :: GetBucketAcl -> BucketName
bucket} -> BucketName
bucket) (\s :: GetBucketAcl
s@GetBucketAcl' {} BucketName
a -> GetBucketAcl
s {$sel:bucket:GetBucketAcl' :: BucketName
bucket = BucketName
a} :: GetBucketAcl)
instance Core.AWSRequest GetBucketAcl where
type AWSResponse GetBucketAcl = GetBucketAclResponse
request :: (Service -> Service) -> GetBucketAcl -> Request GetBucketAcl
request Service -> Service
overrides =
forall a. Request a -> Request a
Request.s3vhost
forall b c a. (b -> c) -> (a -> b) -> a -> c
Prelude.. forall a. ToRequest a => Service -> a -> Request a
Request.get (Service -> Service
overrides Service
defaultService)
response :: forall (m :: * -> *).
MonadResource m =>
(ByteStringLazy -> IO ByteStringLazy)
-> Service
-> Proxy GetBucketAcl
-> ClientResponse ClientBody
-> m (Either Error (ClientResponse (AWSResponse GetBucketAcl)))
response =
forall (m :: * -> *) a.
MonadResource m =>
(Int -> ResponseHeaders -> [Node] -> Either String (AWSResponse a))
-> (ByteStringLazy -> IO ByteStringLazy)
-> Service
-> Proxy a
-> ClientResponse ClientBody
-> m (Either Error (ClientResponse (AWSResponse a)))
Response.receiveXML
( \Int
s ResponseHeaders
h [Node]
x ->
Maybe [Grant] -> Maybe Owner -> Int -> GetBucketAclResponse
GetBucketAclResponse'
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Prelude.<$> ( [Node]
x
forall a. FromXML a => [Node] -> Text -> Either String (Maybe a)
Data..@? Text
"AccessControlList"
forall (f :: * -> *) a. Functor f => f (Maybe a) -> a -> f a
Core..!@ forall a. Monoid a => a
Prelude.mempty
forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
Prelude.>>= forall (f :: * -> *) a b.
Applicative f =>
([a] -> f b) -> [a] -> f (Maybe b)
Core.may (forall a. FromXML a => Text -> [Node] -> Either String [a]
Data.parseXMLList Text
"Grant")
)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> ([Node]
x forall a. FromXML a => [Node] -> Text -> Either String (Maybe a)
Data..@? Text
"Owner")
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (forall (f :: * -> *) a. Applicative f => a -> f a
Prelude.pure (forall a. Enum a => a -> Int
Prelude.fromEnum Int
s))
)
instance Prelude.Hashable GetBucketAcl where
hashWithSalt :: Int -> GetBucketAcl -> Int
hashWithSalt Int
_salt GetBucketAcl' {Maybe Text
BucketName
bucket :: BucketName
expectedBucketOwner :: Maybe Text
$sel:bucket:GetBucketAcl' :: GetBucketAcl -> BucketName
$sel:expectedBucketOwner:GetBucketAcl' :: GetBucketAcl -> Maybe Text
..} =
Int
_salt
forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe Text
expectedBucketOwner
forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` BucketName
bucket
instance Prelude.NFData GetBucketAcl where
rnf :: GetBucketAcl -> ()
rnf GetBucketAcl' {Maybe Text
BucketName
bucket :: BucketName
expectedBucketOwner :: Maybe Text
$sel:bucket:GetBucketAcl' :: GetBucketAcl -> BucketName
$sel:expectedBucketOwner:GetBucketAcl' :: GetBucketAcl -> Maybe Text
..} =
forall a. NFData a => a -> ()
Prelude.rnf Maybe Text
expectedBucketOwner
seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf BucketName
bucket
instance Data.ToHeaders GetBucketAcl where
toHeaders :: GetBucketAcl -> ResponseHeaders
toHeaders GetBucketAcl' {Maybe Text
BucketName
bucket :: BucketName
expectedBucketOwner :: Maybe Text
$sel:bucket:GetBucketAcl' :: GetBucketAcl -> BucketName
$sel:expectedBucketOwner:GetBucketAcl' :: GetBucketAcl -> Maybe Text
..} =
forall a. Monoid a => [a] -> a
Prelude.mconcat
[ HeaderName
"x-amz-expected-bucket-owner"
forall a. ToHeader a => HeaderName -> a -> ResponseHeaders
Data.=# Maybe Text
expectedBucketOwner
]
instance Data.ToPath GetBucketAcl where
toPath :: GetBucketAcl -> ByteString
toPath GetBucketAcl' {Maybe Text
BucketName
bucket :: BucketName
expectedBucketOwner :: Maybe Text
$sel:bucket:GetBucketAcl' :: GetBucketAcl -> BucketName
$sel:expectedBucketOwner:GetBucketAcl' :: GetBucketAcl -> Maybe Text
..} =
forall a. Monoid a => [a] -> a
Prelude.mconcat [ByteString
"/", forall a. ToByteString a => a -> ByteString
Data.toBS BucketName
bucket]
instance Data.ToQuery GetBucketAcl where
toQuery :: GetBucketAcl -> QueryString
toQuery = forall a b. a -> b -> a
Prelude.const (forall a. Monoid a => [a] -> a
Prelude.mconcat [QueryString
"acl"])
data GetBucketAclResponse = GetBucketAclResponse'
{
GetBucketAclResponse -> Maybe [Grant]
grants :: Prelude.Maybe [Grant],
GetBucketAclResponse -> Maybe Owner
owner :: Prelude.Maybe Owner,
GetBucketAclResponse -> Int
httpStatus :: Prelude.Int
}
deriving (GetBucketAclResponse -> GetBucketAclResponse -> Bool
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: GetBucketAclResponse -> GetBucketAclResponse -> Bool
$c/= :: GetBucketAclResponse -> GetBucketAclResponse -> Bool
== :: GetBucketAclResponse -> GetBucketAclResponse -> Bool
$c== :: GetBucketAclResponse -> GetBucketAclResponse -> Bool
Prelude.Eq, ReadPrec [GetBucketAclResponse]
ReadPrec GetBucketAclResponse
Int -> ReadS GetBucketAclResponse
ReadS [GetBucketAclResponse]
forall a.
(Int -> ReadS a)
-> ReadS [a] -> ReadPrec a -> ReadPrec [a] -> Read a
readListPrec :: ReadPrec [GetBucketAclResponse]
$creadListPrec :: ReadPrec [GetBucketAclResponse]
readPrec :: ReadPrec GetBucketAclResponse
$creadPrec :: ReadPrec GetBucketAclResponse
readList :: ReadS [GetBucketAclResponse]
$creadList :: ReadS [GetBucketAclResponse]
readsPrec :: Int -> ReadS GetBucketAclResponse
$creadsPrec :: Int -> ReadS GetBucketAclResponse
Prelude.Read, Int -> GetBucketAclResponse -> ShowS
[GetBucketAclResponse] -> ShowS
GetBucketAclResponse -> String
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [GetBucketAclResponse] -> ShowS
$cshowList :: [GetBucketAclResponse] -> ShowS
show :: GetBucketAclResponse -> String
$cshow :: GetBucketAclResponse -> String
showsPrec :: Int -> GetBucketAclResponse -> ShowS
$cshowsPrec :: Int -> GetBucketAclResponse -> ShowS
Prelude.Show, forall x. Rep GetBucketAclResponse x -> GetBucketAclResponse
forall x. GetBucketAclResponse -> Rep GetBucketAclResponse x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cto :: forall x. Rep GetBucketAclResponse x -> GetBucketAclResponse
$cfrom :: forall x. GetBucketAclResponse -> Rep GetBucketAclResponse x
Prelude.Generic)
newGetBucketAclResponse ::
Prelude.Int ->
GetBucketAclResponse
newGetBucketAclResponse :: Int -> GetBucketAclResponse
newGetBucketAclResponse Int
pHttpStatus_ =
GetBucketAclResponse'
{ $sel:grants:GetBucketAclResponse' :: Maybe [Grant]
grants = forall a. Maybe a
Prelude.Nothing,
$sel:owner:GetBucketAclResponse' :: Maybe Owner
owner = forall a. Maybe a
Prelude.Nothing,
$sel:httpStatus:GetBucketAclResponse' :: Int
httpStatus = Int
pHttpStatus_
}
getBucketAclResponse_grants :: Lens.Lens' GetBucketAclResponse (Prelude.Maybe [Grant])
getBucketAclResponse_grants :: Lens' GetBucketAclResponse (Maybe [Grant])
getBucketAclResponse_grants = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\GetBucketAclResponse' {Maybe [Grant]
grants :: Maybe [Grant]
$sel:grants:GetBucketAclResponse' :: GetBucketAclResponse -> Maybe [Grant]
grants} -> Maybe [Grant]
grants) (\s :: GetBucketAclResponse
s@GetBucketAclResponse' {} Maybe [Grant]
a -> GetBucketAclResponse
s {$sel:grants:GetBucketAclResponse' :: Maybe [Grant]
grants = Maybe [Grant]
a} :: GetBucketAclResponse) forall b c a. (b -> c) -> (a -> b) -> a -> c
Prelude.. forall (f :: * -> *) (g :: * -> *) s t a b.
(Functor f, Functor g) =>
AnIso s t a b -> Iso (f s) (g t) (f a) (g b)
Lens.mapping forall s t a b. (Coercible s a, Coercible t b) => Iso s t a b
Lens.coerced
getBucketAclResponse_owner :: Lens.Lens' GetBucketAclResponse (Prelude.Maybe Owner)
getBucketAclResponse_owner :: Lens' GetBucketAclResponse (Maybe Owner)
getBucketAclResponse_owner = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\GetBucketAclResponse' {Maybe Owner
owner :: Maybe Owner
$sel:owner:GetBucketAclResponse' :: GetBucketAclResponse -> Maybe Owner
owner} -> Maybe Owner
owner) (\s :: GetBucketAclResponse
s@GetBucketAclResponse' {} Maybe Owner
a -> GetBucketAclResponse
s {$sel:owner:GetBucketAclResponse' :: Maybe Owner
owner = Maybe Owner
a} :: GetBucketAclResponse)
getBucketAclResponse_httpStatus :: Lens.Lens' GetBucketAclResponse Prelude.Int
getBucketAclResponse_httpStatus :: Lens' GetBucketAclResponse Int
getBucketAclResponse_httpStatus = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\GetBucketAclResponse' {Int
httpStatus :: Int
$sel:httpStatus:GetBucketAclResponse' :: GetBucketAclResponse -> Int
httpStatus} -> Int
httpStatus) (\s :: GetBucketAclResponse
s@GetBucketAclResponse' {} Int
a -> GetBucketAclResponse
s {$sel:httpStatus:GetBucketAclResponse' :: Int
httpStatus = Int
a} :: GetBucketAclResponse)
instance Prelude.NFData GetBucketAclResponse where
rnf :: GetBucketAclResponse -> ()
rnf GetBucketAclResponse' {Int
Maybe [Grant]
Maybe Owner
httpStatus :: Int
owner :: Maybe Owner
grants :: Maybe [Grant]
$sel:httpStatus:GetBucketAclResponse' :: GetBucketAclResponse -> Int
$sel:owner:GetBucketAclResponse' :: GetBucketAclResponse -> Maybe Owner
$sel:grants:GetBucketAclResponse' :: GetBucketAclResponse -> Maybe [Grant]
..} =
forall a. NFData a => a -> ()
Prelude.rnf Maybe [Grant]
grants
seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe Owner
owner
seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Int
httpStatus