{-# LANGUAGE DeriveDataTypeable #-} {-# LANGUAGE DeriveGeneric #-} {-# LANGUAGE OverloadedStrings #-} {-# LANGUAGE RecordWildCards #-} {-# LANGUAGE TypeFamilies #-} {-# OPTIONS_GHC -fno-warn-unused-imports #-} {-# OPTIONS_GHC -fno-warn-unused-binds #-} {-# OPTIONS_GHC -fno-warn-unused-matches #-} -- Derived from AWS service descriptions, licensed under Apache 2.0. -- | -- Module : Network.AWS.S3.PutBucketReplication -- Copyright : (c) 2013-2015 Brendan Hay -- License : Mozilla Public License, v. 2.0. -- Maintainer : Brendan Hay -- Stability : auto-generated -- Portability : non-portable (GHC extensions) -- -- Creates a new replication configuration (or replaces an existing one, if -- present). -- -- /See:/ for PutBucketReplication. module Network.AWS.S3.PutBucketReplication ( -- * Creating a Request putBucketReplication , PutBucketReplication -- * Request Lenses , pbrContentMD5 , pbrBucket , pbrReplicationConfiguration -- * Destructuring the Response , putBucketReplicationResponse , PutBucketReplicationResponse ) where import Network.AWS.Prelude import Network.AWS.Request import Network.AWS.Response import Network.AWS.S3.Types import Network.AWS.S3.Types.Product -- | /See:/ 'putBucketReplication' smart constructor. data PutBucketReplication = PutBucketReplication' { _pbrContentMD5 :: !(Maybe Text) , _pbrBucket :: !BucketName , _pbrReplicationConfiguration :: !ReplicationConfiguration } deriving (Eq,Read,Show,Data,Typeable,Generic) -- | Creates a value of 'PutBucketReplication' with the minimum fields required to make a request. -- -- Use one of the following lenses to modify other fields as desired: -- -- * 'pbrContentMD5' -- -- * 'pbrBucket' -- -- * 'pbrReplicationConfiguration' putBucketReplication :: BucketName -- ^ 'pbrBucket' -> ReplicationConfiguration -- ^ 'pbrReplicationConfiguration' -> PutBucketReplication putBucketReplication pBucket_ pReplicationConfiguration_ = PutBucketReplication' { _pbrContentMD5 = Nothing , _pbrBucket = pBucket_ , _pbrReplicationConfiguration = pReplicationConfiguration_ } -- | Undocumented member. pbrContentMD5 :: Lens' PutBucketReplication (Maybe Text) pbrContentMD5 = lens _pbrContentMD5 (\ s a -> s{_pbrContentMD5 = a}); -- | Undocumented member. pbrBucket :: Lens' PutBucketReplication BucketName pbrBucket = lens _pbrBucket (\ s a -> s{_pbrBucket = a}); -- | Undocumented member. pbrReplicationConfiguration :: Lens' PutBucketReplication ReplicationConfiguration pbrReplicationConfiguration = lens _pbrReplicationConfiguration (\ s a -> s{_pbrReplicationConfiguration = a}); instance AWSRequest PutBucketReplication where type Rs PutBucketReplication = PutBucketReplicationResponse request = putXML s3 response = receiveNull PutBucketReplicationResponse' instance ToElement PutBucketReplication where toElement = mkElement "{http://s3.amazonaws.com/doc/2006-03-01/}ReplicationConfiguration" . _pbrReplicationConfiguration instance ToHeaders PutBucketReplication where toHeaders PutBucketReplication'{..} = mconcat ["Content-MD5" =# _pbrContentMD5] instance ToPath PutBucketReplication where toPath PutBucketReplication'{..} = mconcat ["/", toBS _pbrBucket] instance ToQuery PutBucketReplication where toQuery = const (mconcat ["replication"]) -- | /See:/ 'putBucketReplicationResponse' smart constructor. data PutBucketReplicationResponse = PutBucketReplicationResponse' deriving (Eq,Read,Show,Data,Typeable,Generic) -- | Creates a value of 'PutBucketReplicationResponse' with the minimum fields required to make a request. -- putBucketReplicationResponse :: PutBucketReplicationResponse putBucketReplicationResponse = PutBucketReplicationResponse'