{-# 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.PutBucketPolicy
(
PutBucketPolicy (..),
newPutBucketPolicy,
putBucketPolicy_checksumAlgorithm,
putBucketPolicy_confirmRemoveSelfBucketAccess,
putBucketPolicy_contentMD5,
putBucketPolicy_expectedBucketOwner,
putBucketPolicy_bucket,
putBucketPolicy_policy,
PutBucketPolicyResponse (..),
newPutBucketPolicyResponse,
)
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 PutBucketPolicy = PutBucketPolicy'
{
PutBucketPolicy -> Maybe ChecksumAlgorithm
checksumAlgorithm :: Prelude.Maybe ChecksumAlgorithm,
PutBucketPolicy -> Maybe Bool
confirmRemoveSelfBucketAccess :: Prelude.Maybe Prelude.Bool,
PutBucketPolicy -> Maybe Text
contentMD5 :: Prelude.Maybe Prelude.Text,
PutBucketPolicy -> Maybe Text
expectedBucketOwner :: Prelude.Maybe Prelude.Text,
PutBucketPolicy -> BucketName
bucket :: BucketName,
PutBucketPolicy -> ByteString
policy :: Prelude.ByteString
}
deriving (PutBucketPolicy -> PutBucketPolicy -> Bool
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: PutBucketPolicy -> PutBucketPolicy -> Bool
$c/= :: PutBucketPolicy -> PutBucketPolicy -> Bool
== :: PutBucketPolicy -> PutBucketPolicy -> Bool
$c== :: PutBucketPolicy -> PutBucketPolicy -> Bool
Prelude.Eq, Int -> PutBucketPolicy -> ShowS
[PutBucketPolicy] -> ShowS
PutBucketPolicy -> String
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [PutBucketPolicy] -> ShowS
$cshowList :: [PutBucketPolicy] -> ShowS
show :: PutBucketPolicy -> String
$cshow :: PutBucketPolicy -> String
showsPrec :: Int -> PutBucketPolicy -> ShowS
$cshowsPrec :: Int -> PutBucketPolicy -> ShowS
Prelude.Show, forall x. Rep PutBucketPolicy x -> PutBucketPolicy
forall x. PutBucketPolicy -> Rep PutBucketPolicy x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cto :: forall x. Rep PutBucketPolicy x -> PutBucketPolicy
$cfrom :: forall x. PutBucketPolicy -> Rep PutBucketPolicy x
Prelude.Generic)
newPutBucketPolicy ::
BucketName ->
Prelude.ByteString ->
PutBucketPolicy
newPutBucketPolicy :: BucketName -> ByteString -> PutBucketPolicy
newPutBucketPolicy BucketName
pBucket_ ByteString
pPolicy_ =
PutBucketPolicy'
{ $sel:checksumAlgorithm:PutBucketPolicy' :: Maybe ChecksumAlgorithm
checksumAlgorithm =
forall a. Maybe a
Prelude.Nothing,
$sel:confirmRemoveSelfBucketAccess:PutBucketPolicy' :: Maybe Bool
confirmRemoveSelfBucketAccess = forall a. Maybe a
Prelude.Nothing,
$sel:contentMD5:PutBucketPolicy' :: Maybe Text
contentMD5 = forall a. Maybe a
Prelude.Nothing,
$sel:expectedBucketOwner:PutBucketPolicy' :: Maybe Text
expectedBucketOwner = forall a. Maybe a
Prelude.Nothing,
$sel:bucket:PutBucketPolicy' :: BucketName
bucket = BucketName
pBucket_,
$sel:policy:PutBucketPolicy' :: ByteString
policy = ByteString
pPolicy_
}
putBucketPolicy_checksumAlgorithm :: Lens.Lens' PutBucketPolicy (Prelude.Maybe ChecksumAlgorithm)
putBucketPolicy_checksumAlgorithm :: Lens' PutBucketPolicy (Maybe ChecksumAlgorithm)
putBucketPolicy_checksumAlgorithm = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\PutBucketPolicy' {Maybe ChecksumAlgorithm
checksumAlgorithm :: Maybe ChecksumAlgorithm
$sel:checksumAlgorithm:PutBucketPolicy' :: PutBucketPolicy -> Maybe ChecksumAlgorithm
checksumAlgorithm} -> Maybe ChecksumAlgorithm
checksumAlgorithm) (\s :: PutBucketPolicy
s@PutBucketPolicy' {} Maybe ChecksumAlgorithm
a -> PutBucketPolicy
s {$sel:checksumAlgorithm:PutBucketPolicy' :: Maybe ChecksumAlgorithm
checksumAlgorithm = Maybe ChecksumAlgorithm
a} :: PutBucketPolicy)
putBucketPolicy_confirmRemoveSelfBucketAccess :: Lens.Lens' PutBucketPolicy (Prelude.Maybe Prelude.Bool)
putBucketPolicy_confirmRemoveSelfBucketAccess :: Lens' PutBucketPolicy (Maybe Bool)
putBucketPolicy_confirmRemoveSelfBucketAccess = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\PutBucketPolicy' {Maybe Bool
confirmRemoveSelfBucketAccess :: Maybe Bool
$sel:confirmRemoveSelfBucketAccess:PutBucketPolicy' :: PutBucketPolicy -> Maybe Bool
confirmRemoveSelfBucketAccess} -> Maybe Bool
confirmRemoveSelfBucketAccess) (\s :: PutBucketPolicy
s@PutBucketPolicy' {} Maybe Bool
a -> PutBucketPolicy
s {$sel:confirmRemoveSelfBucketAccess:PutBucketPolicy' :: Maybe Bool
confirmRemoveSelfBucketAccess = Maybe Bool
a} :: PutBucketPolicy)
putBucketPolicy_contentMD5 :: Lens.Lens' PutBucketPolicy (Prelude.Maybe Prelude.Text)
putBucketPolicy_contentMD5 :: Lens' PutBucketPolicy (Maybe Text)
putBucketPolicy_contentMD5 = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\PutBucketPolicy' {Maybe Text
contentMD5 :: Maybe Text
$sel:contentMD5:PutBucketPolicy' :: PutBucketPolicy -> Maybe Text
contentMD5} -> Maybe Text
contentMD5) (\s :: PutBucketPolicy
s@PutBucketPolicy' {} Maybe Text
a -> PutBucketPolicy
s {$sel:contentMD5:PutBucketPolicy' :: Maybe Text
contentMD5 = Maybe Text
a} :: PutBucketPolicy)
putBucketPolicy_expectedBucketOwner :: Lens.Lens' PutBucketPolicy (Prelude.Maybe Prelude.Text)
putBucketPolicy_expectedBucketOwner :: Lens' PutBucketPolicy (Maybe Text)
putBucketPolicy_expectedBucketOwner = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\PutBucketPolicy' {Maybe Text
expectedBucketOwner :: Maybe Text
$sel:expectedBucketOwner:PutBucketPolicy' :: PutBucketPolicy -> Maybe Text
expectedBucketOwner} -> Maybe Text
expectedBucketOwner) (\s :: PutBucketPolicy
s@PutBucketPolicy' {} Maybe Text
a -> PutBucketPolicy
s {$sel:expectedBucketOwner:PutBucketPolicy' :: Maybe Text
expectedBucketOwner = Maybe Text
a} :: PutBucketPolicy)
putBucketPolicy_bucket :: Lens.Lens' PutBucketPolicy BucketName
putBucketPolicy_bucket :: Lens' PutBucketPolicy BucketName
putBucketPolicy_bucket = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\PutBucketPolicy' {BucketName
bucket :: BucketName
$sel:bucket:PutBucketPolicy' :: PutBucketPolicy -> BucketName
bucket} -> BucketName
bucket) (\s :: PutBucketPolicy
s@PutBucketPolicy' {} BucketName
a -> PutBucketPolicy
s {$sel:bucket:PutBucketPolicy' :: BucketName
bucket = BucketName
a} :: PutBucketPolicy)
putBucketPolicy_policy :: Lens.Lens' PutBucketPolicy Prelude.ByteString
putBucketPolicy_policy :: Lens' PutBucketPolicy ByteString
putBucketPolicy_policy = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\PutBucketPolicy' {ByteString
policy :: ByteString
$sel:policy:PutBucketPolicy' :: PutBucketPolicy -> ByteString
policy} -> ByteString
policy) (\s :: PutBucketPolicy
s@PutBucketPolicy' {} ByteString
a -> PutBucketPolicy
s {$sel:policy:PutBucketPolicy' :: ByteString
policy = ByteString
a} :: PutBucketPolicy)
instance Core.AWSRequest PutBucketPolicy where
type
AWSResponse PutBucketPolicy =
PutBucketPolicyResponse
request :: (Service -> Service) -> PutBucketPolicy -> Request PutBucketPolicy
request Service -> Service
overrides =
forall a. Request a -> Request a
Request.contentMD5Header
forall b c a. (b -> c) -> (a -> b) -> a -> c
Prelude.. forall a. Request a -> Request a
Request.s3vhost
forall b c a. (b -> c) -> (a -> b) -> a -> c
Prelude.. forall a. (ToRequest a, ToBody a) => Service -> a -> Request a
Request.putBody (Service -> Service
overrides Service
defaultService)
response :: forall (m :: * -> *).
MonadResource m =>
(ByteStringLazy -> IO ByteStringLazy)
-> Service
-> Proxy PutBucketPolicy
-> ClientResponse ClientBody
-> m (Either Error (ClientResponse (AWSResponse PutBucketPolicy)))
response =
forall (m :: * -> *) a.
MonadResource m =>
AWSResponse a
-> (ByteStringLazy -> IO ByteStringLazy)
-> Service
-> Proxy a
-> ClientResponse ClientBody
-> m (Either Error (ClientResponse (AWSResponse a)))
Response.receiveNull PutBucketPolicyResponse
PutBucketPolicyResponse'
instance Prelude.Hashable PutBucketPolicy where
hashWithSalt :: Int -> PutBucketPolicy -> Int
hashWithSalt Int
_salt PutBucketPolicy' {Maybe Bool
Maybe Text
Maybe ChecksumAlgorithm
ByteString
BucketName
policy :: ByteString
bucket :: BucketName
expectedBucketOwner :: Maybe Text
contentMD5 :: Maybe Text
confirmRemoveSelfBucketAccess :: Maybe Bool
checksumAlgorithm :: Maybe ChecksumAlgorithm
$sel:policy:PutBucketPolicy' :: PutBucketPolicy -> ByteString
$sel:bucket:PutBucketPolicy' :: PutBucketPolicy -> BucketName
$sel:expectedBucketOwner:PutBucketPolicy' :: PutBucketPolicy -> Maybe Text
$sel:contentMD5:PutBucketPolicy' :: PutBucketPolicy -> Maybe Text
$sel:confirmRemoveSelfBucketAccess:PutBucketPolicy' :: PutBucketPolicy -> Maybe Bool
$sel:checksumAlgorithm:PutBucketPolicy' :: PutBucketPolicy -> Maybe ChecksumAlgorithm
..} =
Int
_salt
forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe ChecksumAlgorithm
checksumAlgorithm
forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe Bool
confirmRemoveSelfBucketAccess
forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe Text
contentMD5
forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe Text
expectedBucketOwner
forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` BucketName
bucket
forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` ByteString
policy
instance Prelude.NFData PutBucketPolicy where
rnf :: PutBucketPolicy -> ()
rnf PutBucketPolicy' {Maybe Bool
Maybe Text
Maybe ChecksumAlgorithm
ByteString
BucketName
policy :: ByteString
bucket :: BucketName
expectedBucketOwner :: Maybe Text
contentMD5 :: Maybe Text
confirmRemoveSelfBucketAccess :: Maybe Bool
checksumAlgorithm :: Maybe ChecksumAlgorithm
$sel:policy:PutBucketPolicy' :: PutBucketPolicy -> ByteString
$sel:bucket:PutBucketPolicy' :: PutBucketPolicy -> BucketName
$sel:expectedBucketOwner:PutBucketPolicy' :: PutBucketPolicy -> Maybe Text
$sel:contentMD5:PutBucketPolicy' :: PutBucketPolicy -> Maybe Text
$sel:confirmRemoveSelfBucketAccess:PutBucketPolicy' :: PutBucketPolicy -> Maybe Bool
$sel:checksumAlgorithm:PutBucketPolicy' :: PutBucketPolicy -> Maybe ChecksumAlgorithm
..} =
forall a. NFData a => a -> ()
Prelude.rnf Maybe ChecksumAlgorithm
checksumAlgorithm
seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe Bool
confirmRemoveSelfBucketAccess
seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe Text
contentMD5
seq :: forall a b. a -> b -> b
`Prelude.seq` 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
seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf ByteString
policy
instance Data.ToBody PutBucketPolicy where
toBody :: PutBucketPolicy -> RequestBody
toBody PutBucketPolicy' {Maybe Bool
Maybe Text
Maybe ChecksumAlgorithm
ByteString
BucketName
policy :: ByteString
bucket :: BucketName
expectedBucketOwner :: Maybe Text
contentMD5 :: Maybe Text
confirmRemoveSelfBucketAccess :: Maybe Bool
checksumAlgorithm :: Maybe ChecksumAlgorithm
$sel:policy:PutBucketPolicy' :: PutBucketPolicy -> ByteString
$sel:bucket:PutBucketPolicy' :: PutBucketPolicy -> BucketName
$sel:expectedBucketOwner:PutBucketPolicy' :: PutBucketPolicy -> Maybe Text
$sel:contentMD5:PutBucketPolicy' :: PutBucketPolicy -> Maybe Text
$sel:confirmRemoveSelfBucketAccess:PutBucketPolicy' :: PutBucketPolicy -> Maybe Bool
$sel:checksumAlgorithm:PutBucketPolicy' :: PutBucketPolicy -> Maybe ChecksumAlgorithm
..} = forall a. ToBody a => a -> RequestBody
Data.toBody ByteString
policy
instance Data.ToHeaders PutBucketPolicy where
toHeaders :: PutBucketPolicy -> [Header]
toHeaders PutBucketPolicy' {Maybe Bool
Maybe Text
Maybe ChecksumAlgorithm
ByteString
BucketName
policy :: ByteString
bucket :: BucketName
expectedBucketOwner :: Maybe Text
contentMD5 :: Maybe Text
confirmRemoveSelfBucketAccess :: Maybe Bool
checksumAlgorithm :: Maybe ChecksumAlgorithm
$sel:policy:PutBucketPolicy' :: PutBucketPolicy -> ByteString
$sel:bucket:PutBucketPolicy' :: PutBucketPolicy -> BucketName
$sel:expectedBucketOwner:PutBucketPolicy' :: PutBucketPolicy -> Maybe Text
$sel:contentMD5:PutBucketPolicy' :: PutBucketPolicy -> Maybe Text
$sel:confirmRemoveSelfBucketAccess:PutBucketPolicy' :: PutBucketPolicy -> Maybe Bool
$sel:checksumAlgorithm:PutBucketPolicy' :: PutBucketPolicy -> Maybe ChecksumAlgorithm
..} =
forall a. Monoid a => [a] -> a
Prelude.mconcat
[ HeaderName
"x-amz-sdk-checksum-algorithm"
forall a. ToHeader a => HeaderName -> a -> [Header]
Data.=# Maybe ChecksumAlgorithm
checksumAlgorithm,
HeaderName
"x-amz-confirm-remove-self-bucket-access"
forall a. ToHeader a => HeaderName -> a -> [Header]
Data.=# Maybe Bool
confirmRemoveSelfBucketAccess,
HeaderName
"Content-MD5" forall a. ToHeader a => HeaderName -> a -> [Header]
Data.=# Maybe Text
contentMD5,
HeaderName
"x-amz-expected-bucket-owner"
forall a. ToHeader a => HeaderName -> a -> [Header]
Data.=# Maybe Text
expectedBucketOwner
]
instance Data.ToPath PutBucketPolicy where
toPath :: PutBucketPolicy -> ByteString
toPath PutBucketPolicy' {Maybe Bool
Maybe Text
Maybe ChecksumAlgorithm
ByteString
BucketName
policy :: ByteString
bucket :: BucketName
expectedBucketOwner :: Maybe Text
contentMD5 :: Maybe Text
confirmRemoveSelfBucketAccess :: Maybe Bool
checksumAlgorithm :: Maybe ChecksumAlgorithm
$sel:policy:PutBucketPolicy' :: PutBucketPolicy -> ByteString
$sel:bucket:PutBucketPolicy' :: PutBucketPolicy -> BucketName
$sel:expectedBucketOwner:PutBucketPolicy' :: PutBucketPolicy -> Maybe Text
$sel:contentMD5:PutBucketPolicy' :: PutBucketPolicy -> Maybe Text
$sel:confirmRemoveSelfBucketAccess:PutBucketPolicy' :: PutBucketPolicy -> Maybe Bool
$sel:checksumAlgorithm:PutBucketPolicy' :: PutBucketPolicy -> Maybe ChecksumAlgorithm
..} =
forall a. Monoid a => [a] -> a
Prelude.mconcat [ByteString
"/", forall a. ToByteString a => a -> ByteString
Data.toBS BucketName
bucket]
instance Data.ToQuery PutBucketPolicy where
toQuery :: PutBucketPolicy -> QueryString
toQuery = forall a b. a -> b -> a
Prelude.const (forall a. Monoid a => [a] -> a
Prelude.mconcat [QueryString
"policy"])
data PutBucketPolicyResponse = PutBucketPolicyResponse'
{
}
deriving (PutBucketPolicyResponse -> PutBucketPolicyResponse -> Bool
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: PutBucketPolicyResponse -> PutBucketPolicyResponse -> Bool
$c/= :: PutBucketPolicyResponse -> PutBucketPolicyResponse -> Bool
== :: PutBucketPolicyResponse -> PutBucketPolicyResponse -> Bool
$c== :: PutBucketPolicyResponse -> PutBucketPolicyResponse -> Bool
Prelude.Eq, ReadPrec [PutBucketPolicyResponse]
ReadPrec PutBucketPolicyResponse
Int -> ReadS PutBucketPolicyResponse
ReadS [PutBucketPolicyResponse]
forall a.
(Int -> ReadS a)
-> ReadS [a] -> ReadPrec a -> ReadPrec [a] -> Read a
readListPrec :: ReadPrec [PutBucketPolicyResponse]
$creadListPrec :: ReadPrec [PutBucketPolicyResponse]
readPrec :: ReadPrec PutBucketPolicyResponse
$creadPrec :: ReadPrec PutBucketPolicyResponse
readList :: ReadS [PutBucketPolicyResponse]
$creadList :: ReadS [PutBucketPolicyResponse]
readsPrec :: Int -> ReadS PutBucketPolicyResponse
$creadsPrec :: Int -> ReadS PutBucketPolicyResponse
Prelude.Read, Int -> PutBucketPolicyResponse -> ShowS
[PutBucketPolicyResponse] -> ShowS
PutBucketPolicyResponse -> String
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [PutBucketPolicyResponse] -> ShowS
$cshowList :: [PutBucketPolicyResponse] -> ShowS
show :: PutBucketPolicyResponse -> String
$cshow :: PutBucketPolicyResponse -> String
showsPrec :: Int -> PutBucketPolicyResponse -> ShowS
$cshowsPrec :: Int -> PutBucketPolicyResponse -> ShowS
Prelude.Show, forall x. Rep PutBucketPolicyResponse x -> PutBucketPolicyResponse
forall x. PutBucketPolicyResponse -> Rep PutBucketPolicyResponse x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cto :: forall x. Rep PutBucketPolicyResponse x -> PutBucketPolicyResponse
$cfrom :: forall x. PutBucketPolicyResponse -> Rep PutBucketPolicyResponse x
Prelude.Generic)
newPutBucketPolicyResponse ::
PutBucketPolicyResponse
newPutBucketPolicyResponse :: PutBucketPolicyResponse
newPutBucketPolicyResponse = PutBucketPolicyResponse
PutBucketPolicyResponse'
instance Prelude.NFData PutBucketPolicyResponse where
rnf :: PutBucketPolicyResponse -> ()
rnf PutBucketPolicyResponse
_ = ()