1 /**
2  * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
3  * SPDX-License-Identifier: Apache-2.0.
4  */
5 
6 #pragma once
7 #include <aws/s3/S3_EXPORTS.h>
8 #include <aws/s3/S3Request.h>
9 #include <aws/core/utils/memory/stl/AWSString.h>
10 #include <aws/s3/model/ObjectLockRetention.h>
11 #include <aws/s3/model/RequestPayer.h>
12 #include <aws/core/utils/memory/stl/AWSMap.h>
13 #include <utility>
14 
15 namespace Aws
16 {
17 namespace Http
18 {
19     class URI;
20 } //namespace Http
21 namespace S3
22 {
23 namespace Model
24 {
25 
26   /**
27    */
28   class AWS_S3_API PutObjectRetentionRequest : public S3Request
29   {
30   public:
31     PutObjectRetentionRequest();
32 
33     // Service request name is the Operation name which will send this request out,
34     // each operation should has unique request name, so that we can get operation's name from this request.
35     // Note: this is not true for response, multiple operations may have the same response name,
36     // so we can not get operation's name from response.
GetServiceRequestName()37     inline virtual const char* GetServiceRequestName() const override { return "PutObjectRetention"; }
38 
39     Aws::String SerializePayload() const override;
40 
41     void AddQueryStringParameters(Aws::Http::URI& uri) const override;
42 
43     Aws::Http::HeaderValueCollection GetRequestSpecificHeaders() const override;
44 
ShouldComputeContentMd5()45     inline bool ShouldComputeContentMd5() const override { return true; }
46 
47 
48     /**
49      * <p>The bucket name that contains the object you want to apply this Object
50      * Retention configuration to. </p> <p>When using this action with an access point,
51      * you must direct requests to the access point hostname. The access point hostname
52      * takes the form
53      * <i>AccessPointName</i>-<i>AccountId</i>.s3-accesspoint.<i>Region</i>.amazonaws.com.
54      * When using this action with an access point through the Amazon Web Services
55      * SDKs, you provide the access point ARN in place of the bucket name. For more
56      * information about access point ARNs, see <a
57      * href="https://docs.aws.amazon.com/AmazonS3/latest/userguide/using-access-points.html">Using
58      * access points</a> in the <i>Amazon S3 User Guide</i>.</p>
59      */
GetBucket()60     inline const Aws::String& GetBucket() const{ return m_bucket; }
61 
62     /**
63      * <p>The bucket name that contains the object you want to apply this Object
64      * Retention configuration to. </p> <p>When using this action with an access point,
65      * you must direct requests to the access point hostname. The access point hostname
66      * takes the form
67      * <i>AccessPointName</i>-<i>AccountId</i>.s3-accesspoint.<i>Region</i>.amazonaws.com.
68      * When using this action with an access point through the Amazon Web Services
69      * SDKs, you provide the access point ARN in place of the bucket name. For more
70      * information about access point ARNs, see <a
71      * href="https://docs.aws.amazon.com/AmazonS3/latest/userguide/using-access-points.html">Using
72      * access points</a> in the <i>Amazon S3 User Guide</i>.</p>
73      */
BucketHasBeenSet()74     inline bool BucketHasBeenSet() const { return m_bucketHasBeenSet; }
75 
76     /**
77      * <p>The bucket name that contains the object you want to apply this Object
78      * Retention configuration to. </p> <p>When using this action with an access point,
79      * you must direct requests to the access point hostname. The access point hostname
80      * takes the form
81      * <i>AccessPointName</i>-<i>AccountId</i>.s3-accesspoint.<i>Region</i>.amazonaws.com.
82      * When using this action with an access point through the Amazon Web Services
83      * SDKs, you provide the access point ARN in place of the bucket name. For more
84      * information about access point ARNs, see <a
85      * href="https://docs.aws.amazon.com/AmazonS3/latest/userguide/using-access-points.html">Using
86      * access points</a> in the <i>Amazon S3 User Guide</i>.</p>
87      */
SetBucket(const Aws::String & value)88     inline void SetBucket(const Aws::String& value) { m_bucketHasBeenSet = true; m_bucket = value; }
89 
90     /**
91      * <p>The bucket name that contains the object you want to apply this Object
92      * Retention configuration to. </p> <p>When using this action with an access point,
93      * you must direct requests to the access point hostname. The access point hostname
94      * takes the form
95      * <i>AccessPointName</i>-<i>AccountId</i>.s3-accesspoint.<i>Region</i>.amazonaws.com.
96      * When using this action with an access point through the Amazon Web Services
97      * SDKs, you provide the access point ARN in place of the bucket name. For more
98      * information about access point ARNs, see <a
99      * href="https://docs.aws.amazon.com/AmazonS3/latest/userguide/using-access-points.html">Using
100      * access points</a> in the <i>Amazon S3 User Guide</i>.</p>
101      */
SetBucket(Aws::String && value)102     inline void SetBucket(Aws::String&& value) { m_bucketHasBeenSet = true; m_bucket = std::move(value); }
103 
104     /**
105      * <p>The bucket name that contains the object you want to apply this Object
106      * Retention configuration to. </p> <p>When using this action with an access point,
107      * you must direct requests to the access point hostname. The access point hostname
108      * takes the form
109      * <i>AccessPointName</i>-<i>AccountId</i>.s3-accesspoint.<i>Region</i>.amazonaws.com.
110      * When using this action with an access point through the Amazon Web Services
111      * SDKs, you provide the access point ARN in place of the bucket name. For more
112      * information about access point ARNs, see <a
113      * href="https://docs.aws.amazon.com/AmazonS3/latest/userguide/using-access-points.html">Using
114      * access points</a> in the <i>Amazon S3 User Guide</i>.</p>
115      */
SetBucket(const char * value)116     inline void SetBucket(const char* value) { m_bucketHasBeenSet = true; m_bucket.assign(value); }
117 
118     /**
119      * <p>The bucket name that contains the object you want to apply this Object
120      * Retention configuration to. </p> <p>When using this action with an access point,
121      * you must direct requests to the access point hostname. The access point hostname
122      * takes the form
123      * <i>AccessPointName</i>-<i>AccountId</i>.s3-accesspoint.<i>Region</i>.amazonaws.com.
124      * When using this action with an access point through the Amazon Web Services
125      * SDKs, you provide the access point ARN in place of the bucket name. For more
126      * information about access point ARNs, see <a
127      * href="https://docs.aws.amazon.com/AmazonS3/latest/userguide/using-access-points.html">Using
128      * access points</a> in the <i>Amazon S3 User Guide</i>.</p>
129      */
WithBucket(const Aws::String & value)130     inline PutObjectRetentionRequest& WithBucket(const Aws::String& value) { SetBucket(value); return *this;}
131 
132     /**
133      * <p>The bucket name that contains the object you want to apply this Object
134      * Retention configuration to. </p> <p>When using this action with an access point,
135      * you must direct requests to the access point hostname. The access point hostname
136      * takes the form
137      * <i>AccessPointName</i>-<i>AccountId</i>.s3-accesspoint.<i>Region</i>.amazonaws.com.
138      * When using this action with an access point through the Amazon Web Services
139      * SDKs, you provide the access point ARN in place of the bucket name. For more
140      * information about access point ARNs, see <a
141      * href="https://docs.aws.amazon.com/AmazonS3/latest/userguide/using-access-points.html">Using
142      * access points</a> in the <i>Amazon S3 User Guide</i>.</p>
143      */
WithBucket(Aws::String && value)144     inline PutObjectRetentionRequest& WithBucket(Aws::String&& value) { SetBucket(std::move(value)); return *this;}
145 
146     /**
147      * <p>The bucket name that contains the object you want to apply this Object
148      * Retention configuration to. </p> <p>When using this action with an access point,
149      * you must direct requests to the access point hostname. The access point hostname
150      * takes the form
151      * <i>AccessPointName</i>-<i>AccountId</i>.s3-accesspoint.<i>Region</i>.amazonaws.com.
152      * When using this action with an access point through the Amazon Web Services
153      * SDKs, you provide the access point ARN in place of the bucket name. For more
154      * information about access point ARNs, see <a
155      * href="https://docs.aws.amazon.com/AmazonS3/latest/userguide/using-access-points.html">Using
156      * access points</a> in the <i>Amazon S3 User Guide</i>.</p>
157      */
WithBucket(const char * value)158     inline PutObjectRetentionRequest& WithBucket(const char* value) { SetBucket(value); return *this;}
159 
160 
161     /**
162      * <p>The key name for the object that you want to apply this Object Retention
163      * configuration to.</p>
164      */
GetKey()165     inline const Aws::String& GetKey() const{ return m_key; }
166 
167     /**
168      * <p>The key name for the object that you want to apply this Object Retention
169      * configuration to.</p>
170      */
KeyHasBeenSet()171     inline bool KeyHasBeenSet() const { return m_keyHasBeenSet; }
172 
173     /**
174      * <p>The key name for the object that you want to apply this Object Retention
175      * configuration to.</p>
176      */
SetKey(const Aws::String & value)177     inline void SetKey(const Aws::String& value) { m_keyHasBeenSet = true; m_key = value; }
178 
179     /**
180      * <p>The key name for the object that you want to apply this Object Retention
181      * configuration to.</p>
182      */
SetKey(Aws::String && value)183     inline void SetKey(Aws::String&& value) { m_keyHasBeenSet = true; m_key = std::move(value); }
184 
185     /**
186      * <p>The key name for the object that you want to apply this Object Retention
187      * configuration to.</p>
188      */
SetKey(const char * value)189     inline void SetKey(const char* value) { m_keyHasBeenSet = true; m_key.assign(value); }
190 
191     /**
192      * <p>The key name for the object that you want to apply this Object Retention
193      * configuration to.</p>
194      */
WithKey(const Aws::String & value)195     inline PutObjectRetentionRequest& WithKey(const Aws::String& value) { SetKey(value); return *this;}
196 
197     /**
198      * <p>The key name for the object that you want to apply this Object Retention
199      * configuration to.</p>
200      */
WithKey(Aws::String && value)201     inline PutObjectRetentionRequest& WithKey(Aws::String&& value) { SetKey(std::move(value)); return *this;}
202 
203     /**
204      * <p>The key name for the object that you want to apply this Object Retention
205      * configuration to.</p>
206      */
WithKey(const char * value)207     inline PutObjectRetentionRequest& WithKey(const char* value) { SetKey(value); return *this;}
208 
209 
210     /**
211      * <p>The container element for the Object Retention configuration.</p>
212      */
GetRetention()213     inline const ObjectLockRetention& GetRetention() const{ return m_retention; }
214 
215     /**
216      * <p>The container element for the Object Retention configuration.</p>
217      */
RetentionHasBeenSet()218     inline bool RetentionHasBeenSet() const { return m_retentionHasBeenSet; }
219 
220     /**
221      * <p>The container element for the Object Retention configuration.</p>
222      */
SetRetention(const ObjectLockRetention & value)223     inline void SetRetention(const ObjectLockRetention& value) { m_retentionHasBeenSet = true; m_retention = value; }
224 
225     /**
226      * <p>The container element for the Object Retention configuration.</p>
227      */
SetRetention(ObjectLockRetention && value)228     inline void SetRetention(ObjectLockRetention&& value) { m_retentionHasBeenSet = true; m_retention = std::move(value); }
229 
230     /**
231      * <p>The container element for the Object Retention configuration.</p>
232      */
WithRetention(const ObjectLockRetention & value)233     inline PutObjectRetentionRequest& WithRetention(const ObjectLockRetention& value) { SetRetention(value); return *this;}
234 
235     /**
236      * <p>The container element for the Object Retention configuration.</p>
237      */
WithRetention(ObjectLockRetention && value)238     inline PutObjectRetentionRequest& WithRetention(ObjectLockRetention&& value) { SetRetention(std::move(value)); return *this;}
239 
240 
241 
GetRequestPayer()242     inline const RequestPayer& GetRequestPayer() const{ return m_requestPayer; }
243 
244 
RequestPayerHasBeenSet()245     inline bool RequestPayerHasBeenSet() const { return m_requestPayerHasBeenSet; }
246 
247 
SetRequestPayer(const RequestPayer & value)248     inline void SetRequestPayer(const RequestPayer& value) { m_requestPayerHasBeenSet = true; m_requestPayer = value; }
249 
250 
SetRequestPayer(RequestPayer && value)251     inline void SetRequestPayer(RequestPayer&& value) { m_requestPayerHasBeenSet = true; m_requestPayer = std::move(value); }
252 
253 
WithRequestPayer(const RequestPayer & value)254     inline PutObjectRetentionRequest& WithRequestPayer(const RequestPayer& value) { SetRequestPayer(value); return *this;}
255 
256 
WithRequestPayer(RequestPayer && value)257     inline PutObjectRetentionRequest& WithRequestPayer(RequestPayer&& value) { SetRequestPayer(std::move(value)); return *this;}
258 
259 
260     /**
261      * <p>The version ID for the object that you want to apply this Object Retention
262      * configuration to.</p>
263      */
GetVersionId()264     inline const Aws::String& GetVersionId() const{ return m_versionId; }
265 
266     /**
267      * <p>The version ID for the object that you want to apply this Object Retention
268      * configuration to.</p>
269      */
VersionIdHasBeenSet()270     inline bool VersionIdHasBeenSet() const { return m_versionIdHasBeenSet; }
271 
272     /**
273      * <p>The version ID for the object that you want to apply this Object Retention
274      * configuration to.</p>
275      */
SetVersionId(const Aws::String & value)276     inline void SetVersionId(const Aws::String& value) { m_versionIdHasBeenSet = true; m_versionId = value; }
277 
278     /**
279      * <p>The version ID for the object that you want to apply this Object Retention
280      * configuration to.</p>
281      */
SetVersionId(Aws::String && value)282     inline void SetVersionId(Aws::String&& value) { m_versionIdHasBeenSet = true; m_versionId = std::move(value); }
283 
284     /**
285      * <p>The version ID for the object that you want to apply this Object Retention
286      * configuration to.</p>
287      */
SetVersionId(const char * value)288     inline void SetVersionId(const char* value) { m_versionIdHasBeenSet = true; m_versionId.assign(value); }
289 
290     /**
291      * <p>The version ID for the object that you want to apply this Object Retention
292      * configuration to.</p>
293      */
WithVersionId(const Aws::String & value)294     inline PutObjectRetentionRequest& WithVersionId(const Aws::String& value) { SetVersionId(value); return *this;}
295 
296     /**
297      * <p>The version ID for the object that you want to apply this Object Retention
298      * configuration to.</p>
299      */
WithVersionId(Aws::String && value)300     inline PutObjectRetentionRequest& WithVersionId(Aws::String&& value) { SetVersionId(std::move(value)); return *this;}
301 
302     /**
303      * <p>The version ID for the object that you want to apply this Object Retention
304      * configuration to.</p>
305      */
WithVersionId(const char * value)306     inline PutObjectRetentionRequest& WithVersionId(const char* value) { SetVersionId(value); return *this;}
307 
308 
309     /**
310      * <p>Indicates whether this action should bypass Governance-mode restrictions.</p>
311      */
GetBypassGovernanceRetention()312     inline bool GetBypassGovernanceRetention() const{ return m_bypassGovernanceRetention; }
313 
314     /**
315      * <p>Indicates whether this action should bypass Governance-mode restrictions.</p>
316      */
BypassGovernanceRetentionHasBeenSet()317     inline bool BypassGovernanceRetentionHasBeenSet() const { return m_bypassGovernanceRetentionHasBeenSet; }
318 
319     /**
320      * <p>Indicates whether this action should bypass Governance-mode restrictions.</p>
321      */
SetBypassGovernanceRetention(bool value)322     inline void SetBypassGovernanceRetention(bool value) { m_bypassGovernanceRetentionHasBeenSet = true; m_bypassGovernanceRetention = value; }
323 
324     /**
325      * <p>Indicates whether this action should bypass Governance-mode restrictions.</p>
326      */
WithBypassGovernanceRetention(bool value)327     inline PutObjectRetentionRequest& WithBypassGovernanceRetention(bool value) { SetBypassGovernanceRetention(value); return *this;}
328 
329 
330     /**
331      * <p>The MD5 hash for the request body.</p> <p>For requests made using the Amazon
332      * Web Services Command Line Interface (CLI) or Amazon Web Services SDKs, this
333      * field is calculated automatically.</p>
334      */
GetContentMD5()335     inline const Aws::String& GetContentMD5() const{ return m_contentMD5; }
336 
337     /**
338      * <p>The MD5 hash for the request body.</p> <p>For requests made using the Amazon
339      * Web Services Command Line Interface (CLI) or Amazon Web Services SDKs, this
340      * field is calculated automatically.</p>
341      */
ContentMD5HasBeenSet()342     inline bool ContentMD5HasBeenSet() const { return m_contentMD5HasBeenSet; }
343 
344     /**
345      * <p>The MD5 hash for the request body.</p> <p>For requests made using the Amazon
346      * Web Services Command Line Interface (CLI) or Amazon Web Services SDKs, this
347      * field is calculated automatically.</p>
348      */
SetContentMD5(const Aws::String & value)349     inline void SetContentMD5(const Aws::String& value) { m_contentMD5HasBeenSet = true; m_contentMD5 = value; }
350 
351     /**
352      * <p>The MD5 hash for the request body.</p> <p>For requests made using the Amazon
353      * Web Services Command Line Interface (CLI) or Amazon Web Services SDKs, this
354      * field is calculated automatically.</p>
355      */
SetContentMD5(Aws::String && value)356     inline void SetContentMD5(Aws::String&& value) { m_contentMD5HasBeenSet = true; m_contentMD5 = std::move(value); }
357 
358     /**
359      * <p>The MD5 hash for the request body.</p> <p>For requests made using the Amazon
360      * Web Services Command Line Interface (CLI) or Amazon Web Services SDKs, this
361      * field is calculated automatically.</p>
362      */
SetContentMD5(const char * value)363     inline void SetContentMD5(const char* value) { m_contentMD5HasBeenSet = true; m_contentMD5.assign(value); }
364 
365     /**
366      * <p>The MD5 hash for the request body.</p> <p>For requests made using the Amazon
367      * Web Services Command Line Interface (CLI) or Amazon Web Services SDKs, this
368      * field is calculated automatically.</p>
369      */
WithContentMD5(const Aws::String & value)370     inline PutObjectRetentionRequest& WithContentMD5(const Aws::String& value) { SetContentMD5(value); return *this;}
371 
372     /**
373      * <p>The MD5 hash for the request body.</p> <p>For requests made using the Amazon
374      * Web Services Command Line Interface (CLI) or Amazon Web Services SDKs, this
375      * field is calculated automatically.</p>
376      */
WithContentMD5(Aws::String && value)377     inline PutObjectRetentionRequest& WithContentMD5(Aws::String&& value) { SetContentMD5(std::move(value)); return *this;}
378 
379     /**
380      * <p>The MD5 hash for the request body.</p> <p>For requests made using the Amazon
381      * Web Services Command Line Interface (CLI) or Amazon Web Services SDKs, this
382      * field is calculated automatically.</p>
383      */
WithContentMD5(const char * value)384     inline PutObjectRetentionRequest& WithContentMD5(const char* value) { SetContentMD5(value); return *this;}
385 
386 
387     /**
388      * <p>The account ID of the expected bucket owner. If the bucket is owned by a
389      * different account, the request will fail with an HTTP <code>403 (Access
390      * Denied)</code> error.</p>
391      */
GetExpectedBucketOwner()392     inline const Aws::String& GetExpectedBucketOwner() const{ return m_expectedBucketOwner; }
393 
394     /**
395      * <p>The account ID of the expected bucket owner. If the bucket is owned by a
396      * different account, the request will fail with an HTTP <code>403 (Access
397      * Denied)</code> error.</p>
398      */
ExpectedBucketOwnerHasBeenSet()399     inline bool ExpectedBucketOwnerHasBeenSet() const { return m_expectedBucketOwnerHasBeenSet; }
400 
401     /**
402      * <p>The account ID of the expected bucket owner. If the bucket is owned by a
403      * different account, the request will fail with an HTTP <code>403 (Access
404      * Denied)</code> error.</p>
405      */
SetExpectedBucketOwner(const Aws::String & value)406     inline void SetExpectedBucketOwner(const Aws::String& value) { m_expectedBucketOwnerHasBeenSet = true; m_expectedBucketOwner = value; }
407 
408     /**
409      * <p>The account ID of the expected bucket owner. If the bucket is owned by a
410      * different account, the request will fail with an HTTP <code>403 (Access
411      * Denied)</code> error.</p>
412      */
SetExpectedBucketOwner(Aws::String && value)413     inline void SetExpectedBucketOwner(Aws::String&& value) { m_expectedBucketOwnerHasBeenSet = true; m_expectedBucketOwner = std::move(value); }
414 
415     /**
416      * <p>The account ID of the expected bucket owner. If the bucket is owned by a
417      * different account, the request will fail with an HTTP <code>403 (Access
418      * Denied)</code> error.</p>
419      */
SetExpectedBucketOwner(const char * value)420     inline void SetExpectedBucketOwner(const char* value) { m_expectedBucketOwnerHasBeenSet = true; m_expectedBucketOwner.assign(value); }
421 
422     /**
423      * <p>The account ID of the expected bucket owner. If the bucket is owned by a
424      * different account, the request will fail with an HTTP <code>403 (Access
425      * Denied)</code> error.</p>
426      */
WithExpectedBucketOwner(const Aws::String & value)427     inline PutObjectRetentionRequest& WithExpectedBucketOwner(const Aws::String& value) { SetExpectedBucketOwner(value); return *this;}
428 
429     /**
430      * <p>The account ID of the expected bucket owner. If the bucket is owned by a
431      * different account, the request will fail with an HTTP <code>403 (Access
432      * Denied)</code> error.</p>
433      */
WithExpectedBucketOwner(Aws::String && value)434     inline PutObjectRetentionRequest& WithExpectedBucketOwner(Aws::String&& value) { SetExpectedBucketOwner(std::move(value)); return *this;}
435 
436     /**
437      * <p>The account ID of the expected bucket owner. If the bucket is owned by a
438      * different account, the request will fail with an HTTP <code>403 (Access
439      * Denied)</code> error.</p>
440      */
WithExpectedBucketOwner(const char * value)441     inline PutObjectRetentionRequest& WithExpectedBucketOwner(const char* value) { SetExpectedBucketOwner(value); return *this;}
442 
443 
444 
GetCustomizedAccessLogTag()445     inline const Aws::Map<Aws::String, Aws::String>& GetCustomizedAccessLogTag() const{ return m_customizedAccessLogTag; }
446 
447 
CustomizedAccessLogTagHasBeenSet()448     inline bool CustomizedAccessLogTagHasBeenSet() const { return m_customizedAccessLogTagHasBeenSet; }
449 
450 
SetCustomizedAccessLogTag(const Aws::Map<Aws::String,Aws::String> & value)451     inline void SetCustomizedAccessLogTag(const Aws::Map<Aws::String, Aws::String>& value) { m_customizedAccessLogTagHasBeenSet = true; m_customizedAccessLogTag = value; }
452 
453 
SetCustomizedAccessLogTag(Aws::Map<Aws::String,Aws::String> && value)454     inline void SetCustomizedAccessLogTag(Aws::Map<Aws::String, Aws::String>&& value) { m_customizedAccessLogTagHasBeenSet = true; m_customizedAccessLogTag = std::move(value); }
455 
456 
WithCustomizedAccessLogTag(const Aws::Map<Aws::String,Aws::String> & value)457     inline PutObjectRetentionRequest& WithCustomizedAccessLogTag(const Aws::Map<Aws::String, Aws::String>& value) { SetCustomizedAccessLogTag(value); return *this;}
458 
459 
WithCustomizedAccessLogTag(Aws::Map<Aws::String,Aws::String> && value)460     inline PutObjectRetentionRequest& WithCustomizedAccessLogTag(Aws::Map<Aws::String, Aws::String>&& value) { SetCustomizedAccessLogTag(std::move(value)); return *this;}
461 
462 
AddCustomizedAccessLogTag(const Aws::String & key,const Aws::String & value)463     inline PutObjectRetentionRequest& AddCustomizedAccessLogTag(const Aws::String& key, const Aws::String& value) { m_customizedAccessLogTagHasBeenSet = true; m_customizedAccessLogTag.emplace(key, value); return *this; }
464 
465 
AddCustomizedAccessLogTag(Aws::String && key,const Aws::String & value)466     inline PutObjectRetentionRequest& AddCustomizedAccessLogTag(Aws::String&& key, const Aws::String& value) { m_customizedAccessLogTagHasBeenSet = true; m_customizedAccessLogTag.emplace(std::move(key), value); return *this; }
467 
468 
AddCustomizedAccessLogTag(const Aws::String & key,Aws::String && value)469     inline PutObjectRetentionRequest& AddCustomizedAccessLogTag(const Aws::String& key, Aws::String&& value) { m_customizedAccessLogTagHasBeenSet = true; m_customizedAccessLogTag.emplace(key, std::move(value)); return *this; }
470 
471 
AddCustomizedAccessLogTag(Aws::String && key,Aws::String && value)472     inline PutObjectRetentionRequest& AddCustomizedAccessLogTag(Aws::String&& key, Aws::String&& value) { m_customizedAccessLogTagHasBeenSet = true; m_customizedAccessLogTag.emplace(std::move(key), std::move(value)); return *this; }
473 
474 
AddCustomizedAccessLogTag(const char * key,Aws::String && value)475     inline PutObjectRetentionRequest& AddCustomizedAccessLogTag(const char* key, Aws::String&& value) { m_customizedAccessLogTagHasBeenSet = true; m_customizedAccessLogTag.emplace(key, std::move(value)); return *this; }
476 
477 
AddCustomizedAccessLogTag(Aws::String && key,const char * value)478     inline PutObjectRetentionRequest& AddCustomizedAccessLogTag(Aws::String&& key, const char* value) { m_customizedAccessLogTagHasBeenSet = true; m_customizedAccessLogTag.emplace(std::move(key), value); return *this; }
479 
480 
AddCustomizedAccessLogTag(const char * key,const char * value)481     inline PutObjectRetentionRequest& AddCustomizedAccessLogTag(const char* key, const char* value) { m_customizedAccessLogTagHasBeenSet = true; m_customizedAccessLogTag.emplace(key, value); return *this; }
482 
483   private:
484 
485     Aws::String m_bucket;
486     bool m_bucketHasBeenSet;
487 
488     Aws::String m_key;
489     bool m_keyHasBeenSet;
490 
491     ObjectLockRetention m_retention;
492     bool m_retentionHasBeenSet;
493 
494     RequestPayer m_requestPayer;
495     bool m_requestPayerHasBeenSet;
496 
497     Aws::String m_versionId;
498     bool m_versionIdHasBeenSet;
499 
500     bool m_bypassGovernanceRetention;
501     bool m_bypassGovernanceRetentionHasBeenSet;
502 
503     Aws::String m_contentMD5;
504     bool m_contentMD5HasBeenSet;
505 
506     Aws::String m_expectedBucketOwner;
507     bool m_expectedBucketOwnerHasBeenSet;
508 
509     Aws::Map<Aws::String, Aws::String> m_customizedAccessLogTag;
510     bool m_customizedAccessLogTagHasBeenSet;
511   };
512 
513 } // namespace Model
514 } // namespace S3
515 } // namespace Aws
516