{-# 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.PutBucketReplication
(
PutBucketReplication (..),
newPutBucketReplication,
putBucketReplication_checksumAlgorithm,
putBucketReplication_contentMD5,
putBucketReplication_expectedBucketOwner,
putBucketReplication_token,
putBucketReplication_bucket,
putBucketReplication_replicationConfiguration,
PutBucketReplicationResponse (..),
newPutBucketReplicationResponse,
)
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 PutBucketReplication = PutBucketReplication'
{
PutBucketReplication -> Maybe ChecksumAlgorithm
checksumAlgorithm :: Prelude.Maybe ChecksumAlgorithm,
PutBucketReplication -> Maybe Text
contentMD5 :: Prelude.Maybe Prelude.Text,
PutBucketReplication -> Maybe Text
expectedBucketOwner :: Prelude.Maybe Prelude.Text,
PutBucketReplication -> Maybe Text
token :: Prelude.Maybe Prelude.Text,
PutBucketReplication -> BucketName
bucket :: BucketName,
PutBucketReplication -> ReplicationConfiguration
replicationConfiguration :: ReplicationConfiguration
}
deriving (PutBucketReplication -> PutBucketReplication -> Bool
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: PutBucketReplication -> PutBucketReplication -> Bool
$c/= :: PutBucketReplication -> PutBucketReplication -> Bool
== :: PutBucketReplication -> PutBucketReplication -> Bool
$c== :: PutBucketReplication -> PutBucketReplication -> Bool
Prelude.Eq, ReadPrec [PutBucketReplication]
ReadPrec PutBucketReplication
Int -> ReadS PutBucketReplication
ReadS [PutBucketReplication]
forall a.
(Int -> ReadS a)
-> ReadS [a] -> ReadPrec a -> ReadPrec [a] -> Read a
readListPrec :: ReadPrec [PutBucketReplication]
$creadListPrec :: ReadPrec [PutBucketReplication]
readPrec :: ReadPrec PutBucketReplication
$creadPrec :: ReadPrec PutBucketReplication
readList :: ReadS [PutBucketReplication]
$creadList :: ReadS [PutBucketReplication]
readsPrec :: Int -> ReadS PutBucketReplication
$creadsPrec :: Int -> ReadS PutBucketReplication
Prelude.Read, Int -> PutBucketReplication -> ShowS
[PutBucketReplication] -> ShowS
PutBucketReplication -> String
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [PutBucketReplication] -> ShowS
$cshowList :: [PutBucketReplication] -> ShowS
show :: PutBucketReplication -> String
$cshow :: PutBucketReplication -> String
showsPrec :: Int -> PutBucketReplication -> ShowS
$cshowsPrec :: Int -> PutBucketReplication -> ShowS
Prelude.Show, forall x. Rep PutBucketReplication x -> PutBucketReplication
forall x. PutBucketReplication -> Rep PutBucketReplication x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cto :: forall x. Rep PutBucketReplication x -> PutBucketReplication
$cfrom :: forall x. PutBucketReplication -> Rep PutBucketReplication x
Prelude.Generic)
newPutBucketReplication ::
BucketName ->
ReplicationConfiguration ->
PutBucketReplication
newPutBucketReplication :: BucketName -> ReplicationConfiguration -> PutBucketReplication
newPutBucketReplication
BucketName
pBucket_
ReplicationConfiguration
pReplicationConfiguration_ =
PutBucketReplication'
{ $sel:checksumAlgorithm:PutBucketReplication' :: Maybe ChecksumAlgorithm
checksumAlgorithm =
forall a. Maybe a
Prelude.Nothing,
$sel:contentMD5:PutBucketReplication' :: Maybe Text
contentMD5 = forall a. Maybe a
Prelude.Nothing,
$sel:expectedBucketOwner:PutBucketReplication' :: Maybe Text
expectedBucketOwner = forall a. Maybe a
Prelude.Nothing,
$sel:token:PutBucketReplication' :: Maybe Text
token = forall a. Maybe a
Prelude.Nothing,
$sel:bucket:PutBucketReplication' :: BucketName
bucket = BucketName
pBucket_,
$sel:replicationConfiguration:PutBucketReplication' :: ReplicationConfiguration
replicationConfiguration =
ReplicationConfiguration
pReplicationConfiguration_
}
putBucketReplication_checksumAlgorithm :: Lens.Lens' PutBucketReplication (Prelude.Maybe ChecksumAlgorithm)
putBucketReplication_checksumAlgorithm :: Lens' PutBucketReplication (Maybe ChecksumAlgorithm)
putBucketReplication_checksumAlgorithm = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\PutBucketReplication' {Maybe ChecksumAlgorithm
checksumAlgorithm :: Maybe ChecksumAlgorithm
$sel:checksumAlgorithm:PutBucketReplication' :: PutBucketReplication -> Maybe ChecksumAlgorithm
checksumAlgorithm} -> Maybe ChecksumAlgorithm
checksumAlgorithm) (\s :: PutBucketReplication
s@PutBucketReplication' {} Maybe ChecksumAlgorithm
a -> PutBucketReplication
s {$sel:checksumAlgorithm:PutBucketReplication' :: Maybe ChecksumAlgorithm
checksumAlgorithm = Maybe ChecksumAlgorithm
a} :: PutBucketReplication)
putBucketReplication_contentMD5 :: Lens.Lens' PutBucketReplication (Prelude.Maybe Prelude.Text)
putBucketReplication_contentMD5 :: Lens' PutBucketReplication (Maybe Text)
putBucketReplication_contentMD5 = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\PutBucketReplication' {Maybe Text
contentMD5 :: Maybe Text
$sel:contentMD5:PutBucketReplication' :: PutBucketReplication -> Maybe Text
contentMD5} -> Maybe Text
contentMD5) (\s :: PutBucketReplication
s@PutBucketReplication' {} Maybe Text
a -> PutBucketReplication
s {$sel:contentMD5:PutBucketReplication' :: Maybe Text
contentMD5 = Maybe Text
a} :: PutBucketReplication)
putBucketReplication_expectedBucketOwner :: Lens.Lens' PutBucketReplication (Prelude.Maybe Prelude.Text)
putBucketReplication_expectedBucketOwner :: Lens' PutBucketReplication (Maybe Text)
putBucketReplication_expectedBucketOwner = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\PutBucketReplication' {Maybe Text
expectedBucketOwner :: Maybe Text
$sel:expectedBucketOwner:PutBucketReplication' :: PutBucketReplication -> Maybe Text
expectedBucketOwner} -> Maybe Text
expectedBucketOwner) (\s :: PutBucketReplication
s@PutBucketReplication' {} Maybe Text
a -> PutBucketReplication
s {$sel:expectedBucketOwner:PutBucketReplication' :: Maybe Text
expectedBucketOwner = Maybe Text
a} :: PutBucketReplication)
putBucketReplication_token :: Lens.Lens' PutBucketReplication (Prelude.Maybe Prelude.Text)
putBucketReplication_token :: Lens' PutBucketReplication (Maybe Text)
putBucketReplication_token = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\PutBucketReplication' {Maybe Text
token :: Maybe Text
$sel:token:PutBucketReplication' :: PutBucketReplication -> Maybe Text
token} -> Maybe Text
token) (\s :: PutBucketReplication
s@PutBucketReplication' {} Maybe Text
a -> PutBucketReplication
s {$sel:token:PutBucketReplication' :: Maybe Text
token = Maybe Text
a} :: PutBucketReplication)
putBucketReplication_bucket :: Lens.Lens' PutBucketReplication BucketName
putBucketReplication_bucket :: Lens' PutBucketReplication BucketName
putBucketReplication_bucket = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\PutBucketReplication' {BucketName
bucket :: BucketName
$sel:bucket:PutBucketReplication' :: PutBucketReplication -> BucketName
bucket} -> BucketName
bucket) (\s :: PutBucketReplication
s@PutBucketReplication' {} BucketName
a -> PutBucketReplication
s {$sel:bucket:PutBucketReplication' :: BucketName
bucket = BucketName
a} :: PutBucketReplication)
putBucketReplication_replicationConfiguration :: Lens.Lens' PutBucketReplication ReplicationConfiguration
putBucketReplication_replicationConfiguration :: Lens' PutBucketReplication ReplicationConfiguration
putBucketReplication_replicationConfiguration = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\PutBucketReplication' {ReplicationConfiguration
replicationConfiguration :: ReplicationConfiguration
$sel:replicationConfiguration:PutBucketReplication' :: PutBucketReplication -> ReplicationConfiguration
replicationConfiguration} -> ReplicationConfiguration
replicationConfiguration) (\s :: PutBucketReplication
s@PutBucketReplication' {} ReplicationConfiguration
a -> PutBucketReplication
s {$sel:replicationConfiguration:PutBucketReplication' :: ReplicationConfiguration
replicationConfiguration = ReplicationConfiguration
a} :: PutBucketReplication)
instance Core.AWSRequest PutBucketReplication where
type
AWSResponse PutBucketReplication =
PutBucketReplicationResponse
request :: (Service -> Service)
-> PutBucketReplication -> Request PutBucketReplication
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, ToElement a) => Service -> a -> Request a
Request.putXML (Service -> Service
overrides Service
defaultService)
response :: forall (m :: * -> *).
MonadResource m =>
(ByteStringLazy -> IO ByteStringLazy)
-> Service
-> Proxy PutBucketReplication
-> ClientResponse ClientBody
-> m (Either
Error (ClientResponse (AWSResponse PutBucketReplication)))
response =
forall (m :: * -> *) a.
MonadResource m =>
AWSResponse a
-> (ByteStringLazy -> IO ByteStringLazy)
-> Service
-> Proxy a
-> ClientResponse ClientBody
-> m (Either Error (ClientResponse (AWSResponse a)))
Response.receiveNull PutBucketReplicationResponse
PutBucketReplicationResponse'
instance Prelude.Hashable PutBucketReplication where
hashWithSalt :: Int -> PutBucketReplication -> Int
hashWithSalt Int
_salt PutBucketReplication' {Maybe Text
Maybe ChecksumAlgorithm
BucketName
ReplicationConfiguration
replicationConfiguration :: ReplicationConfiguration
bucket :: BucketName
token :: Maybe Text
expectedBucketOwner :: Maybe Text
contentMD5 :: Maybe Text
checksumAlgorithm :: Maybe ChecksumAlgorithm
$sel:replicationConfiguration:PutBucketReplication' :: PutBucketReplication -> ReplicationConfiguration
$sel:bucket:PutBucketReplication' :: PutBucketReplication -> BucketName
$sel:token:PutBucketReplication' :: PutBucketReplication -> Maybe Text
$sel:expectedBucketOwner:PutBucketReplication' :: PutBucketReplication -> Maybe Text
$sel:contentMD5:PutBucketReplication' :: PutBucketReplication -> Maybe Text
$sel:checksumAlgorithm:PutBucketReplication' :: PutBucketReplication -> 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 Text
contentMD5
forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe Text
expectedBucketOwner
forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe Text
token
forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` BucketName
bucket
forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` ReplicationConfiguration
replicationConfiguration
instance Prelude.NFData PutBucketReplication where
rnf :: PutBucketReplication -> ()
rnf PutBucketReplication' {Maybe Text
Maybe ChecksumAlgorithm
BucketName
ReplicationConfiguration
replicationConfiguration :: ReplicationConfiguration
bucket :: BucketName
token :: Maybe Text
expectedBucketOwner :: Maybe Text
contentMD5 :: Maybe Text
checksumAlgorithm :: Maybe ChecksumAlgorithm
$sel:replicationConfiguration:PutBucketReplication' :: PutBucketReplication -> ReplicationConfiguration
$sel:bucket:PutBucketReplication' :: PutBucketReplication -> BucketName
$sel:token:PutBucketReplication' :: PutBucketReplication -> Maybe Text
$sel:expectedBucketOwner:PutBucketReplication' :: PutBucketReplication -> Maybe Text
$sel:contentMD5:PutBucketReplication' :: PutBucketReplication -> Maybe Text
$sel:checksumAlgorithm:PutBucketReplication' :: PutBucketReplication -> 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 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 Maybe Text
token
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 ReplicationConfiguration
replicationConfiguration
instance Data.ToElement PutBucketReplication where
toElement :: PutBucketReplication -> Element
toElement PutBucketReplication' {Maybe Text
Maybe ChecksumAlgorithm
BucketName
ReplicationConfiguration
replicationConfiguration :: ReplicationConfiguration
bucket :: BucketName
token :: Maybe Text
expectedBucketOwner :: Maybe Text
contentMD5 :: Maybe Text
checksumAlgorithm :: Maybe ChecksumAlgorithm
$sel:replicationConfiguration:PutBucketReplication' :: PutBucketReplication -> ReplicationConfiguration
$sel:bucket:PutBucketReplication' :: PutBucketReplication -> BucketName
$sel:token:PutBucketReplication' :: PutBucketReplication -> Maybe Text
$sel:expectedBucketOwner:PutBucketReplication' :: PutBucketReplication -> Maybe Text
$sel:contentMD5:PutBucketReplication' :: PutBucketReplication -> Maybe Text
$sel:checksumAlgorithm:PutBucketReplication' :: PutBucketReplication -> Maybe ChecksumAlgorithm
..} =
forall a. ToXML a => Name -> a -> Element
Data.mkElement
Name
"{http://s3.amazonaws.com/doc/2006-03-01/}ReplicationConfiguration"
ReplicationConfiguration
replicationConfiguration
instance Data.ToHeaders PutBucketReplication where
toHeaders :: PutBucketReplication -> [Header]
toHeaders PutBucketReplication' {Maybe Text
Maybe ChecksumAlgorithm
BucketName
ReplicationConfiguration
replicationConfiguration :: ReplicationConfiguration
bucket :: BucketName
token :: Maybe Text
expectedBucketOwner :: Maybe Text
contentMD5 :: Maybe Text
checksumAlgorithm :: Maybe ChecksumAlgorithm
$sel:replicationConfiguration:PutBucketReplication' :: PutBucketReplication -> ReplicationConfiguration
$sel:bucket:PutBucketReplication' :: PutBucketReplication -> BucketName
$sel:token:PutBucketReplication' :: PutBucketReplication -> Maybe Text
$sel:expectedBucketOwner:PutBucketReplication' :: PutBucketReplication -> Maybe Text
$sel:contentMD5:PutBucketReplication' :: PutBucketReplication -> Maybe Text
$sel:checksumAlgorithm:PutBucketReplication' :: PutBucketReplication -> 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
"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,
HeaderName
"x-amz-bucket-object-lock-token" forall a. ToHeader a => HeaderName -> a -> [Header]
Data.=# Maybe Text
token
]
instance Data.ToPath PutBucketReplication where
toPath :: PutBucketReplication -> ByteString
toPath PutBucketReplication' {Maybe Text
Maybe ChecksumAlgorithm
BucketName
ReplicationConfiguration
replicationConfiguration :: ReplicationConfiguration
bucket :: BucketName
token :: Maybe Text
expectedBucketOwner :: Maybe Text
contentMD5 :: Maybe Text
checksumAlgorithm :: Maybe ChecksumAlgorithm
$sel:replicationConfiguration:PutBucketReplication' :: PutBucketReplication -> ReplicationConfiguration
$sel:bucket:PutBucketReplication' :: PutBucketReplication -> BucketName
$sel:token:PutBucketReplication' :: PutBucketReplication -> Maybe Text
$sel:expectedBucketOwner:PutBucketReplication' :: PutBucketReplication -> Maybe Text
$sel:contentMD5:PutBucketReplication' :: PutBucketReplication -> Maybe Text
$sel:checksumAlgorithm:PutBucketReplication' :: PutBucketReplication -> Maybe ChecksumAlgorithm
..} =
forall a. Monoid a => [a] -> a
Prelude.mconcat [ByteString
"/", forall a. ToByteString a => a -> ByteString
Data.toBS BucketName
bucket]
instance Data.ToQuery PutBucketReplication where
toQuery :: PutBucketReplication -> QueryString
toQuery =
forall a b. a -> b -> a
Prelude.const (forall a. Monoid a => [a] -> a
Prelude.mconcat [QueryString
"replication"])
data PutBucketReplicationResponse = PutBucketReplicationResponse'
{
}
deriving (PutBucketReplicationResponse
-> PutBucketReplicationResponse -> Bool
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: PutBucketReplicationResponse
-> PutBucketReplicationResponse -> Bool
$c/= :: PutBucketReplicationResponse
-> PutBucketReplicationResponse -> Bool
== :: PutBucketReplicationResponse
-> PutBucketReplicationResponse -> Bool
$c== :: PutBucketReplicationResponse
-> PutBucketReplicationResponse -> Bool
Prelude.Eq, ReadPrec [PutBucketReplicationResponse]
ReadPrec PutBucketReplicationResponse
Int -> ReadS PutBucketReplicationResponse
ReadS [PutBucketReplicationResponse]
forall a.
(Int -> ReadS a)
-> ReadS [a] -> ReadPrec a -> ReadPrec [a] -> Read a
readListPrec :: ReadPrec [PutBucketReplicationResponse]
$creadListPrec :: ReadPrec [PutBucketReplicationResponse]
readPrec :: ReadPrec PutBucketReplicationResponse
$creadPrec :: ReadPrec PutBucketReplicationResponse
readList :: ReadS [PutBucketReplicationResponse]
$creadList :: ReadS [PutBucketReplicationResponse]
readsPrec :: Int -> ReadS PutBucketReplicationResponse
$creadsPrec :: Int -> ReadS PutBucketReplicationResponse
Prelude.Read, Int -> PutBucketReplicationResponse -> ShowS
[PutBucketReplicationResponse] -> ShowS
PutBucketReplicationResponse -> String
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [PutBucketReplicationResponse] -> ShowS
$cshowList :: [PutBucketReplicationResponse] -> ShowS
show :: PutBucketReplicationResponse -> String
$cshow :: PutBucketReplicationResponse -> String
showsPrec :: Int -> PutBucketReplicationResponse -> ShowS
$cshowsPrec :: Int -> PutBucketReplicationResponse -> ShowS
Prelude.Show, forall x.
Rep PutBucketReplicationResponse x -> PutBucketReplicationResponse
forall x.
PutBucketReplicationResponse -> Rep PutBucketReplicationResponse x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cto :: forall x.
Rep PutBucketReplicationResponse x -> PutBucketReplicationResponse
$cfrom :: forall x.
PutBucketReplicationResponse -> Rep PutBucketReplicationResponse x
Prelude.Generic)
newPutBucketReplicationResponse ::
PutBucketReplicationResponse
newPutBucketReplicationResponse :: PutBucketReplicationResponse
newPutBucketReplicationResponse =
PutBucketReplicationResponse
PutBucketReplicationResponse'
instance Prelude.NFData PutBucketReplicationResponse where
rnf :: PutBucketReplicationResponse -> ()
rnf PutBucketReplicationResponse
_ = ()