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-crt/S3Crt_EXPORTS.h>
8 #include <aws/s3-crt/S3CrtRequest.h>
9 #include <aws/s3-crt/model/ObjectCannedACL.h>
10 #include <aws/s3-crt/model/AccessControlPolicy.h>
11 #include <aws/core/utils/memory/stl/AWSString.h>
12 #include <aws/s3-crt/model/RequestPayer.h>
13 #include <aws/core/utils/memory/stl/AWSMap.h>
14 #include <utility>
15 
16 namespace Aws
17 {
18 namespace Http
19 {
20     class URI;
21 } //namespace Http
22 namespace S3Crt
23 {
24 namespace Model
25 {
26 
27   /**
28    */
29   class AWS_S3CRT_API PutObjectAclRequest : public S3CrtRequest
30   {
31   public:
32     PutObjectAclRequest();
33 
34     // Service request name is the Operation name which will send this request out,
35     // each operation should has unique request name, so that we can get operation's name from this request.
36     // Note: this is not true for response, multiple operations may have the same response name,
37     // so we can not get operation's name from response.
GetServiceRequestName()38     inline virtual const char* GetServiceRequestName() const override { return "PutObjectAcl"; }
39 
40     Aws::String SerializePayload() const override;
41 
42     void AddQueryStringParameters(Aws::Http::URI& uri) const override;
43 
44     Aws::Http::HeaderValueCollection GetRequestSpecificHeaders() const override;
45 
ShouldComputeContentMd5()46     inline bool ShouldComputeContentMd5() const override { return true; }
47 
48 
49     /**
50      * <p>The canned ACL to apply to the object. For more information, see <a
51      * href="https://docs.aws.amazon.com/AmazonS3/latest/dev/acl-overview.html#CannedACL">Canned
52      * ACL</a>.</p>
53      */
GetACL()54     inline const ObjectCannedACL& GetACL() const{ return m_aCL; }
55 
56     /**
57      * <p>The canned ACL to apply to the object. For more information, see <a
58      * href="https://docs.aws.amazon.com/AmazonS3/latest/dev/acl-overview.html#CannedACL">Canned
59      * ACL</a>.</p>
60      */
ACLHasBeenSet()61     inline bool ACLHasBeenSet() const { return m_aCLHasBeenSet; }
62 
63     /**
64      * <p>The canned ACL to apply to the object. For more information, see <a
65      * href="https://docs.aws.amazon.com/AmazonS3/latest/dev/acl-overview.html#CannedACL">Canned
66      * ACL</a>.</p>
67      */
SetACL(const ObjectCannedACL & value)68     inline void SetACL(const ObjectCannedACL& value) { m_aCLHasBeenSet = true; m_aCL = value; }
69 
70     /**
71      * <p>The canned ACL to apply to the object. For more information, see <a
72      * href="https://docs.aws.amazon.com/AmazonS3/latest/dev/acl-overview.html#CannedACL">Canned
73      * ACL</a>.</p>
74      */
SetACL(ObjectCannedACL && value)75     inline void SetACL(ObjectCannedACL&& value) { m_aCLHasBeenSet = true; m_aCL = std::move(value); }
76 
77     /**
78      * <p>The canned ACL to apply to the object. For more information, see <a
79      * href="https://docs.aws.amazon.com/AmazonS3/latest/dev/acl-overview.html#CannedACL">Canned
80      * ACL</a>.</p>
81      */
WithACL(const ObjectCannedACL & value)82     inline PutObjectAclRequest& WithACL(const ObjectCannedACL& value) { SetACL(value); return *this;}
83 
84     /**
85      * <p>The canned ACL to apply to the object. For more information, see <a
86      * href="https://docs.aws.amazon.com/AmazonS3/latest/dev/acl-overview.html#CannedACL">Canned
87      * ACL</a>.</p>
88      */
WithACL(ObjectCannedACL && value)89     inline PutObjectAclRequest& WithACL(ObjectCannedACL&& value) { SetACL(std::move(value)); return *this;}
90 
91 
92     /**
93      * <p>Contains the elements that set the ACL permissions for an object per
94      * grantee.</p>
95      */
GetAccessControlPolicy()96     inline const AccessControlPolicy& GetAccessControlPolicy() const{ return m_accessControlPolicy; }
97 
98     /**
99      * <p>Contains the elements that set the ACL permissions for an object per
100      * grantee.</p>
101      */
AccessControlPolicyHasBeenSet()102     inline bool AccessControlPolicyHasBeenSet() const { return m_accessControlPolicyHasBeenSet; }
103 
104     /**
105      * <p>Contains the elements that set the ACL permissions for an object per
106      * grantee.</p>
107      */
SetAccessControlPolicy(const AccessControlPolicy & value)108     inline void SetAccessControlPolicy(const AccessControlPolicy& value) { m_accessControlPolicyHasBeenSet = true; m_accessControlPolicy = value; }
109 
110     /**
111      * <p>Contains the elements that set the ACL permissions for an object per
112      * grantee.</p>
113      */
SetAccessControlPolicy(AccessControlPolicy && value)114     inline void SetAccessControlPolicy(AccessControlPolicy&& value) { m_accessControlPolicyHasBeenSet = true; m_accessControlPolicy = std::move(value); }
115 
116     /**
117      * <p>Contains the elements that set the ACL permissions for an object per
118      * grantee.</p>
119      */
WithAccessControlPolicy(const AccessControlPolicy & value)120     inline PutObjectAclRequest& WithAccessControlPolicy(const AccessControlPolicy& value) { SetAccessControlPolicy(value); return *this;}
121 
122     /**
123      * <p>Contains the elements that set the ACL permissions for an object per
124      * grantee.</p>
125      */
WithAccessControlPolicy(AccessControlPolicy && value)126     inline PutObjectAclRequest& WithAccessControlPolicy(AccessControlPolicy&& value) { SetAccessControlPolicy(std::move(value)); return *this;}
127 
128 
129     /**
130      * <p>The bucket name that contains the object to which you want to attach the ACL.
131      * </p> <p>When using this action with an access point, you must direct requests to
132      * the access point hostname. The access point hostname takes the form
133      * <i>AccessPointName</i>-<i>AccountId</i>.s3-accesspoint.<i>Region</i>.amazonaws.com.
134      * When using this action with an access point through the Amazon Web Services
135      * SDKs, you provide the access point ARN in place of the bucket name. For more
136      * information about access point ARNs, see <a
137      * href="https://docs.aws.amazon.com/AmazonS3/latest/userguide/using-access-points.html">Using
138      * access points</a> in the <i>Amazon S3 User Guide</i>.</p>
139      */
GetBucket()140     inline const Aws::String& GetBucket() const{ return m_bucket; }
141 
142     /**
143      * <p>The bucket name that contains the object to which you want to attach the ACL.
144      * </p> <p>When using this action with an access point, you must direct requests to
145      * the access point hostname. The access point hostname takes the form
146      * <i>AccessPointName</i>-<i>AccountId</i>.s3-accesspoint.<i>Region</i>.amazonaws.com.
147      * When using this action with an access point through the Amazon Web Services
148      * SDKs, you provide the access point ARN in place of the bucket name. For more
149      * information about access point ARNs, see <a
150      * href="https://docs.aws.amazon.com/AmazonS3/latest/userguide/using-access-points.html">Using
151      * access points</a> in the <i>Amazon S3 User Guide</i>.</p>
152      */
BucketHasBeenSet()153     inline bool BucketHasBeenSet() const { return m_bucketHasBeenSet; }
154 
155     /**
156      * <p>The bucket name that contains the object to which you want to attach the ACL.
157      * </p> <p>When using this action with an access point, you must direct requests to
158      * the access point hostname. The access point hostname takes the form
159      * <i>AccessPointName</i>-<i>AccountId</i>.s3-accesspoint.<i>Region</i>.amazonaws.com.
160      * When using this action with an access point through the Amazon Web Services
161      * SDKs, you provide the access point ARN in place of the bucket name. For more
162      * information about access point ARNs, see <a
163      * href="https://docs.aws.amazon.com/AmazonS3/latest/userguide/using-access-points.html">Using
164      * access points</a> in the <i>Amazon S3 User Guide</i>.</p>
165      */
SetBucket(const Aws::String & value)166     inline void SetBucket(const Aws::String& value) { m_bucketHasBeenSet = true; m_bucket = value; }
167 
168     /**
169      * <p>The bucket name that contains the object to which you want to attach the ACL.
170      * </p> <p>When using this action with an access point, you must direct requests to
171      * the access point hostname. The access point hostname takes the form
172      * <i>AccessPointName</i>-<i>AccountId</i>.s3-accesspoint.<i>Region</i>.amazonaws.com.
173      * When using this action with an access point through the Amazon Web Services
174      * SDKs, you provide the access point ARN in place of the bucket name. For more
175      * information about access point ARNs, see <a
176      * href="https://docs.aws.amazon.com/AmazonS3/latest/userguide/using-access-points.html">Using
177      * access points</a> in the <i>Amazon S3 User Guide</i>.</p>
178      */
SetBucket(Aws::String && value)179     inline void SetBucket(Aws::String&& value) { m_bucketHasBeenSet = true; m_bucket = std::move(value); }
180 
181     /**
182      * <p>The bucket name that contains the object to which you want to attach the ACL.
183      * </p> <p>When using this action with an access point, you must direct requests to
184      * the access point hostname. The access point hostname takes the form
185      * <i>AccessPointName</i>-<i>AccountId</i>.s3-accesspoint.<i>Region</i>.amazonaws.com.
186      * When using this action with an access point through the Amazon Web Services
187      * SDKs, you provide the access point ARN in place of the bucket name. For more
188      * information about access point ARNs, see <a
189      * href="https://docs.aws.amazon.com/AmazonS3/latest/userguide/using-access-points.html">Using
190      * access points</a> in the <i>Amazon S3 User Guide</i>.</p>
191      */
SetBucket(const char * value)192     inline void SetBucket(const char* value) { m_bucketHasBeenSet = true; m_bucket.assign(value); }
193 
194     /**
195      * <p>The bucket name that contains the object to which you want to attach the ACL.
196      * </p> <p>When using this action with an access point, you must direct requests to
197      * the access point hostname. The access point hostname takes the form
198      * <i>AccessPointName</i>-<i>AccountId</i>.s3-accesspoint.<i>Region</i>.amazonaws.com.
199      * When using this action with an access point through the Amazon Web Services
200      * SDKs, you provide the access point ARN in place of the bucket name. For more
201      * information about access point ARNs, see <a
202      * href="https://docs.aws.amazon.com/AmazonS3/latest/userguide/using-access-points.html">Using
203      * access points</a> in the <i>Amazon S3 User Guide</i>.</p>
204      */
WithBucket(const Aws::String & value)205     inline PutObjectAclRequest& WithBucket(const Aws::String& value) { SetBucket(value); return *this;}
206 
207     /**
208      * <p>The bucket name that contains the object to which you want to attach the ACL.
209      * </p> <p>When using this action with an access point, you must direct requests to
210      * the access point hostname. The access point hostname takes the form
211      * <i>AccessPointName</i>-<i>AccountId</i>.s3-accesspoint.<i>Region</i>.amazonaws.com.
212      * When using this action with an access point through the Amazon Web Services
213      * SDKs, you provide the access point ARN in place of the bucket name. For more
214      * information about access point ARNs, see <a
215      * href="https://docs.aws.amazon.com/AmazonS3/latest/userguide/using-access-points.html">Using
216      * access points</a> in the <i>Amazon S3 User Guide</i>.</p>
217      */
WithBucket(Aws::String && value)218     inline PutObjectAclRequest& WithBucket(Aws::String&& value) { SetBucket(std::move(value)); return *this;}
219 
220     /**
221      * <p>The bucket name that contains the object to which you want to attach the ACL.
222      * </p> <p>When using this action with an access point, you must direct requests to
223      * the access point hostname. The access point hostname takes the form
224      * <i>AccessPointName</i>-<i>AccountId</i>.s3-accesspoint.<i>Region</i>.amazonaws.com.
225      * When using this action with an access point through the Amazon Web Services
226      * SDKs, you provide the access point ARN in place of the bucket name. For more
227      * information about access point ARNs, see <a
228      * href="https://docs.aws.amazon.com/AmazonS3/latest/userguide/using-access-points.html">Using
229      * access points</a> in the <i>Amazon S3 User Guide</i>.</p>
230      */
WithBucket(const char * value)231     inline PutObjectAclRequest& WithBucket(const char* value) { SetBucket(value); return *this;}
232 
233 
234     /**
235      * <p>The base64-encoded 128-bit MD5 digest of the data. This header must be used
236      * as a message integrity check to verify that the request body was not corrupted
237      * in transit. For more information, go to <a
238      * href="http://www.ietf.org/rfc/rfc1864.txt">RFC 1864.&gt;</a> </p> <p>For
239      * requests made using the Amazon Web Services Command Line Interface (CLI) or
240      * Amazon Web Services SDKs, this field is calculated automatically.</p>
241      */
GetContentMD5()242     inline const Aws::String& GetContentMD5() const{ return m_contentMD5; }
243 
244     /**
245      * <p>The base64-encoded 128-bit MD5 digest of the data. This header must be used
246      * as a message integrity check to verify that the request body was not corrupted
247      * in transit. For more information, go to <a
248      * href="http://www.ietf.org/rfc/rfc1864.txt">RFC 1864.&gt;</a> </p> <p>For
249      * requests made using the Amazon Web Services Command Line Interface (CLI) or
250      * Amazon Web Services SDKs, this field is calculated automatically.</p>
251      */
ContentMD5HasBeenSet()252     inline bool ContentMD5HasBeenSet() const { return m_contentMD5HasBeenSet; }
253 
254     /**
255      * <p>The base64-encoded 128-bit MD5 digest of the data. This header must be used
256      * as a message integrity check to verify that the request body was not corrupted
257      * in transit. For more information, go to <a
258      * href="http://www.ietf.org/rfc/rfc1864.txt">RFC 1864.&gt;</a> </p> <p>For
259      * requests made using the Amazon Web Services Command Line Interface (CLI) or
260      * Amazon Web Services SDKs, this field is calculated automatically.</p>
261      */
SetContentMD5(const Aws::String & value)262     inline void SetContentMD5(const Aws::String& value) { m_contentMD5HasBeenSet = true; m_contentMD5 = value; }
263 
264     /**
265      * <p>The base64-encoded 128-bit MD5 digest of the data. This header must be used
266      * as a message integrity check to verify that the request body was not corrupted
267      * in transit. For more information, go to <a
268      * href="http://www.ietf.org/rfc/rfc1864.txt">RFC 1864.&gt;</a> </p> <p>For
269      * requests made using the Amazon Web Services Command Line Interface (CLI) or
270      * Amazon Web Services SDKs, this field is calculated automatically.</p>
271      */
SetContentMD5(Aws::String && value)272     inline void SetContentMD5(Aws::String&& value) { m_contentMD5HasBeenSet = true; m_contentMD5 = std::move(value); }
273 
274     /**
275      * <p>The base64-encoded 128-bit MD5 digest of the data. This header must be used
276      * as a message integrity check to verify that the request body was not corrupted
277      * in transit. For more information, go to <a
278      * href="http://www.ietf.org/rfc/rfc1864.txt">RFC 1864.&gt;</a> </p> <p>For
279      * requests made using the Amazon Web Services Command Line Interface (CLI) or
280      * Amazon Web Services SDKs, this field is calculated automatically.</p>
281      */
SetContentMD5(const char * value)282     inline void SetContentMD5(const char* value) { m_contentMD5HasBeenSet = true; m_contentMD5.assign(value); }
283 
284     /**
285      * <p>The base64-encoded 128-bit MD5 digest of the data. This header must be used
286      * as a message integrity check to verify that the request body was not corrupted
287      * in transit. For more information, go to <a
288      * href="http://www.ietf.org/rfc/rfc1864.txt">RFC 1864.&gt;</a> </p> <p>For
289      * requests made using the Amazon Web Services Command Line Interface (CLI) or
290      * Amazon Web Services SDKs, this field is calculated automatically.</p>
291      */
WithContentMD5(const Aws::String & value)292     inline PutObjectAclRequest& WithContentMD5(const Aws::String& value) { SetContentMD5(value); return *this;}
293 
294     /**
295      * <p>The base64-encoded 128-bit MD5 digest of the data. This header must be used
296      * as a message integrity check to verify that the request body was not corrupted
297      * in transit. For more information, go to <a
298      * href="http://www.ietf.org/rfc/rfc1864.txt">RFC 1864.&gt;</a> </p> <p>For
299      * requests made using the Amazon Web Services Command Line Interface (CLI) or
300      * Amazon Web Services SDKs, this field is calculated automatically.</p>
301      */
WithContentMD5(Aws::String && value)302     inline PutObjectAclRequest& WithContentMD5(Aws::String&& value) { SetContentMD5(std::move(value)); return *this;}
303 
304     /**
305      * <p>The base64-encoded 128-bit MD5 digest of the data. This header must be used
306      * as a message integrity check to verify that the request body was not corrupted
307      * in transit. For more information, go to <a
308      * href="http://www.ietf.org/rfc/rfc1864.txt">RFC 1864.&gt;</a> </p> <p>For
309      * requests made using the Amazon Web Services Command Line Interface (CLI) or
310      * Amazon Web Services SDKs, this field is calculated automatically.</p>
311      */
WithContentMD5(const char * value)312     inline PutObjectAclRequest& WithContentMD5(const char* value) { SetContentMD5(value); return *this;}
313 
314 
315     /**
316      * <p>Allows grantee the read, write, read ACP, and write ACP permissions on the
317      * bucket.</p> <p>This action is not supported by Amazon S3 on Outposts.</p>
318      */
GetGrantFullControl()319     inline const Aws::String& GetGrantFullControl() const{ return m_grantFullControl; }
320 
321     /**
322      * <p>Allows grantee the read, write, read ACP, and write ACP permissions on the
323      * bucket.</p> <p>This action is not supported by Amazon S3 on Outposts.</p>
324      */
GrantFullControlHasBeenSet()325     inline bool GrantFullControlHasBeenSet() const { return m_grantFullControlHasBeenSet; }
326 
327     /**
328      * <p>Allows grantee the read, write, read ACP, and write ACP permissions on the
329      * bucket.</p> <p>This action is not supported by Amazon S3 on Outposts.</p>
330      */
SetGrantFullControl(const Aws::String & value)331     inline void SetGrantFullControl(const Aws::String& value) { m_grantFullControlHasBeenSet = true; m_grantFullControl = value; }
332 
333     /**
334      * <p>Allows grantee the read, write, read ACP, and write ACP permissions on the
335      * bucket.</p> <p>This action is not supported by Amazon S3 on Outposts.</p>
336      */
SetGrantFullControl(Aws::String && value)337     inline void SetGrantFullControl(Aws::String&& value) { m_grantFullControlHasBeenSet = true; m_grantFullControl = std::move(value); }
338 
339     /**
340      * <p>Allows grantee the read, write, read ACP, and write ACP permissions on the
341      * bucket.</p> <p>This action is not supported by Amazon S3 on Outposts.</p>
342      */
SetGrantFullControl(const char * value)343     inline void SetGrantFullControl(const char* value) { m_grantFullControlHasBeenSet = true; m_grantFullControl.assign(value); }
344 
345     /**
346      * <p>Allows grantee the read, write, read ACP, and write ACP permissions on the
347      * bucket.</p> <p>This action is not supported by Amazon S3 on Outposts.</p>
348      */
WithGrantFullControl(const Aws::String & value)349     inline PutObjectAclRequest& WithGrantFullControl(const Aws::String& value) { SetGrantFullControl(value); return *this;}
350 
351     /**
352      * <p>Allows grantee the read, write, read ACP, and write ACP permissions on the
353      * bucket.</p> <p>This action is not supported by Amazon S3 on Outposts.</p>
354      */
WithGrantFullControl(Aws::String && value)355     inline PutObjectAclRequest& WithGrantFullControl(Aws::String&& value) { SetGrantFullControl(std::move(value)); return *this;}
356 
357     /**
358      * <p>Allows grantee the read, write, read ACP, and write ACP permissions on the
359      * bucket.</p> <p>This action is not supported by Amazon S3 on Outposts.</p>
360      */
WithGrantFullControl(const char * value)361     inline PutObjectAclRequest& WithGrantFullControl(const char* value) { SetGrantFullControl(value); return *this;}
362 
363 
364     /**
365      * <p>Allows grantee to list the objects in the bucket.</p> <p>This action is not
366      * supported by Amazon S3 on Outposts.</p>
367      */
GetGrantRead()368     inline const Aws::String& GetGrantRead() const{ return m_grantRead; }
369 
370     /**
371      * <p>Allows grantee to list the objects in the bucket.</p> <p>This action is not
372      * supported by Amazon S3 on Outposts.</p>
373      */
GrantReadHasBeenSet()374     inline bool GrantReadHasBeenSet() const { return m_grantReadHasBeenSet; }
375 
376     /**
377      * <p>Allows grantee to list the objects in the bucket.</p> <p>This action is not
378      * supported by Amazon S3 on Outposts.</p>
379      */
SetGrantRead(const Aws::String & value)380     inline void SetGrantRead(const Aws::String& value) { m_grantReadHasBeenSet = true; m_grantRead = value; }
381 
382     /**
383      * <p>Allows grantee to list the objects in the bucket.</p> <p>This action is not
384      * supported by Amazon S3 on Outposts.</p>
385      */
SetGrantRead(Aws::String && value)386     inline void SetGrantRead(Aws::String&& value) { m_grantReadHasBeenSet = true; m_grantRead = std::move(value); }
387 
388     /**
389      * <p>Allows grantee to list the objects in the bucket.</p> <p>This action is not
390      * supported by Amazon S3 on Outposts.</p>
391      */
SetGrantRead(const char * value)392     inline void SetGrantRead(const char* value) { m_grantReadHasBeenSet = true; m_grantRead.assign(value); }
393 
394     /**
395      * <p>Allows grantee to list the objects in the bucket.</p> <p>This action is not
396      * supported by Amazon S3 on Outposts.</p>
397      */
WithGrantRead(const Aws::String & value)398     inline PutObjectAclRequest& WithGrantRead(const Aws::String& value) { SetGrantRead(value); return *this;}
399 
400     /**
401      * <p>Allows grantee to list the objects in the bucket.</p> <p>This action is not
402      * supported by Amazon S3 on Outposts.</p>
403      */
WithGrantRead(Aws::String && value)404     inline PutObjectAclRequest& WithGrantRead(Aws::String&& value) { SetGrantRead(std::move(value)); return *this;}
405 
406     /**
407      * <p>Allows grantee to list the objects in the bucket.</p> <p>This action is not
408      * supported by Amazon S3 on Outposts.</p>
409      */
WithGrantRead(const char * value)410     inline PutObjectAclRequest& WithGrantRead(const char* value) { SetGrantRead(value); return *this;}
411 
412 
413     /**
414      * <p>Allows grantee to read the bucket ACL.</p> <p>This action is not supported by
415      * Amazon S3 on Outposts.</p>
416      */
GetGrantReadACP()417     inline const Aws::String& GetGrantReadACP() const{ return m_grantReadACP; }
418 
419     /**
420      * <p>Allows grantee to read the bucket ACL.</p> <p>This action is not supported by
421      * Amazon S3 on Outposts.</p>
422      */
GrantReadACPHasBeenSet()423     inline bool GrantReadACPHasBeenSet() const { return m_grantReadACPHasBeenSet; }
424 
425     /**
426      * <p>Allows grantee to read the bucket ACL.</p> <p>This action is not supported by
427      * Amazon S3 on Outposts.</p>
428      */
SetGrantReadACP(const Aws::String & value)429     inline void SetGrantReadACP(const Aws::String& value) { m_grantReadACPHasBeenSet = true; m_grantReadACP = value; }
430 
431     /**
432      * <p>Allows grantee to read the bucket ACL.</p> <p>This action is not supported by
433      * Amazon S3 on Outposts.</p>
434      */
SetGrantReadACP(Aws::String && value)435     inline void SetGrantReadACP(Aws::String&& value) { m_grantReadACPHasBeenSet = true; m_grantReadACP = std::move(value); }
436 
437     /**
438      * <p>Allows grantee to read the bucket ACL.</p> <p>This action is not supported by
439      * Amazon S3 on Outposts.</p>
440      */
SetGrantReadACP(const char * value)441     inline void SetGrantReadACP(const char* value) { m_grantReadACPHasBeenSet = true; m_grantReadACP.assign(value); }
442 
443     /**
444      * <p>Allows grantee to read the bucket ACL.</p> <p>This action is not supported by
445      * Amazon S3 on Outposts.</p>
446      */
WithGrantReadACP(const Aws::String & value)447     inline PutObjectAclRequest& WithGrantReadACP(const Aws::String& value) { SetGrantReadACP(value); return *this;}
448 
449     /**
450      * <p>Allows grantee to read the bucket ACL.</p> <p>This action is not supported by
451      * Amazon S3 on Outposts.</p>
452      */
WithGrantReadACP(Aws::String && value)453     inline PutObjectAclRequest& WithGrantReadACP(Aws::String&& value) { SetGrantReadACP(std::move(value)); return *this;}
454 
455     /**
456      * <p>Allows grantee to read the bucket ACL.</p> <p>This action is not supported by
457      * Amazon S3 on Outposts.</p>
458      */
WithGrantReadACP(const char * value)459     inline PutObjectAclRequest& WithGrantReadACP(const char* value) { SetGrantReadACP(value); return *this;}
460 
461 
462     /**
463      * <p>Allows grantee to create new objects in the bucket.</p> <p>For the bucket and
464      * object owners of existing objects, also allows deletions and overwrites of those
465      * objects.</p>
466      */
GetGrantWrite()467     inline const Aws::String& GetGrantWrite() const{ return m_grantWrite; }
468 
469     /**
470      * <p>Allows grantee to create new objects in the bucket.</p> <p>For the bucket and
471      * object owners of existing objects, also allows deletions and overwrites of those
472      * objects.</p>
473      */
GrantWriteHasBeenSet()474     inline bool GrantWriteHasBeenSet() const { return m_grantWriteHasBeenSet; }
475 
476     /**
477      * <p>Allows grantee to create new objects in the bucket.</p> <p>For the bucket and
478      * object owners of existing objects, also allows deletions and overwrites of those
479      * objects.</p>
480      */
SetGrantWrite(const Aws::String & value)481     inline void SetGrantWrite(const Aws::String& value) { m_grantWriteHasBeenSet = true; m_grantWrite = value; }
482 
483     /**
484      * <p>Allows grantee to create new objects in the bucket.</p> <p>For the bucket and
485      * object owners of existing objects, also allows deletions and overwrites of those
486      * objects.</p>
487      */
SetGrantWrite(Aws::String && value)488     inline void SetGrantWrite(Aws::String&& value) { m_grantWriteHasBeenSet = true; m_grantWrite = std::move(value); }
489 
490     /**
491      * <p>Allows grantee to create new objects in the bucket.</p> <p>For the bucket and
492      * object owners of existing objects, also allows deletions and overwrites of those
493      * objects.</p>
494      */
SetGrantWrite(const char * value)495     inline void SetGrantWrite(const char* value) { m_grantWriteHasBeenSet = true; m_grantWrite.assign(value); }
496 
497     /**
498      * <p>Allows grantee to create new objects in the bucket.</p> <p>For the bucket and
499      * object owners of existing objects, also allows deletions and overwrites of those
500      * objects.</p>
501      */
WithGrantWrite(const Aws::String & value)502     inline PutObjectAclRequest& WithGrantWrite(const Aws::String& value) { SetGrantWrite(value); return *this;}
503 
504     /**
505      * <p>Allows grantee to create new objects in the bucket.</p> <p>For the bucket and
506      * object owners of existing objects, also allows deletions and overwrites of those
507      * objects.</p>
508      */
WithGrantWrite(Aws::String && value)509     inline PutObjectAclRequest& WithGrantWrite(Aws::String&& value) { SetGrantWrite(std::move(value)); return *this;}
510 
511     /**
512      * <p>Allows grantee to create new objects in the bucket.</p> <p>For the bucket and
513      * object owners of existing objects, also allows deletions and overwrites of those
514      * objects.</p>
515      */
WithGrantWrite(const char * value)516     inline PutObjectAclRequest& WithGrantWrite(const char* value) { SetGrantWrite(value); return *this;}
517 
518 
519     /**
520      * <p>Allows grantee to write the ACL for the applicable bucket.</p> <p>This action
521      * is not supported by Amazon S3 on Outposts.</p>
522      */
GetGrantWriteACP()523     inline const Aws::String& GetGrantWriteACP() const{ return m_grantWriteACP; }
524 
525     /**
526      * <p>Allows grantee to write the ACL for the applicable bucket.</p> <p>This action
527      * is not supported by Amazon S3 on Outposts.</p>
528      */
GrantWriteACPHasBeenSet()529     inline bool GrantWriteACPHasBeenSet() const { return m_grantWriteACPHasBeenSet; }
530 
531     /**
532      * <p>Allows grantee to write the ACL for the applicable bucket.</p> <p>This action
533      * is not supported by Amazon S3 on Outposts.</p>
534      */
SetGrantWriteACP(const Aws::String & value)535     inline void SetGrantWriteACP(const Aws::String& value) { m_grantWriteACPHasBeenSet = true; m_grantWriteACP = value; }
536 
537     /**
538      * <p>Allows grantee to write the ACL for the applicable bucket.</p> <p>This action
539      * is not supported by Amazon S3 on Outposts.</p>
540      */
SetGrantWriteACP(Aws::String && value)541     inline void SetGrantWriteACP(Aws::String&& value) { m_grantWriteACPHasBeenSet = true; m_grantWriteACP = std::move(value); }
542 
543     /**
544      * <p>Allows grantee to write the ACL for the applicable bucket.</p> <p>This action
545      * is not supported by Amazon S3 on Outposts.</p>
546      */
SetGrantWriteACP(const char * value)547     inline void SetGrantWriteACP(const char* value) { m_grantWriteACPHasBeenSet = true; m_grantWriteACP.assign(value); }
548 
549     /**
550      * <p>Allows grantee to write the ACL for the applicable bucket.</p> <p>This action
551      * is not supported by Amazon S3 on Outposts.</p>
552      */
WithGrantWriteACP(const Aws::String & value)553     inline PutObjectAclRequest& WithGrantWriteACP(const Aws::String& value) { SetGrantWriteACP(value); return *this;}
554 
555     /**
556      * <p>Allows grantee to write the ACL for the applicable bucket.</p> <p>This action
557      * is not supported by Amazon S3 on Outposts.</p>
558      */
WithGrantWriteACP(Aws::String && value)559     inline PutObjectAclRequest& WithGrantWriteACP(Aws::String&& value) { SetGrantWriteACP(std::move(value)); return *this;}
560 
561     /**
562      * <p>Allows grantee to write the ACL for the applicable bucket.</p> <p>This action
563      * is not supported by Amazon S3 on Outposts.</p>
564      */
WithGrantWriteACP(const char * value)565     inline PutObjectAclRequest& WithGrantWriteACP(const char* value) { SetGrantWriteACP(value); return *this;}
566 
567 
568     /**
569      * <p>Key for which the PUT action was initiated.</p> <p>When using this action
570      * with an access point, you must direct requests to the access point hostname. The
571      * access point hostname takes the form
572      * <i>AccessPointName</i>-<i>AccountId</i>.s3-accesspoint.<i>Region</i>.amazonaws.com.
573      * When using this action with an access point through the Amazon Web Services
574      * SDKs, you provide the access point ARN in place of the bucket name. For more
575      * information about access point ARNs, see <a
576      * href="https://docs.aws.amazon.com/AmazonS3/latest/userguide/using-access-points.html">Using
577      * access points</a> in the <i>Amazon S3 User Guide</i>.</p> <p>When using this
578      * action with Amazon S3 on Outposts, you must direct requests to the S3 on
579      * Outposts hostname. The S3 on Outposts hostname takes the form
580      * <i>AccessPointName</i>-<i>AccountId</i>.<i>outpostID</i>.s3-outposts.<i>Region</i>.amazonaws.com.
581      * When using this action using S3 on Outposts through the Amazon Web Services
582      * SDKs, you provide the Outposts bucket ARN in place of the bucket name. For more
583      * information about S3 on Outposts ARNs, see <a
584      * href="https://docs.aws.amazon.com/AmazonS3/latest/userguide/S3onOutposts.html">Using
585      * S3 on Outposts</a> in the <i>Amazon S3 User Guide</i>.</p>
586      */
GetKey()587     inline const Aws::String& GetKey() const{ return m_key; }
588 
589     /**
590      * <p>Key for which the PUT action was initiated.</p> <p>When using this action
591      * with an access point, you must direct requests to the access point hostname. The
592      * access point hostname takes the form
593      * <i>AccessPointName</i>-<i>AccountId</i>.s3-accesspoint.<i>Region</i>.amazonaws.com.
594      * When using this action with an access point through the Amazon Web Services
595      * SDKs, you provide the access point ARN in place of the bucket name. For more
596      * information about access point ARNs, see <a
597      * href="https://docs.aws.amazon.com/AmazonS3/latest/userguide/using-access-points.html">Using
598      * access points</a> in the <i>Amazon S3 User Guide</i>.</p> <p>When using this
599      * action with Amazon S3 on Outposts, you must direct requests to the S3 on
600      * Outposts hostname. The S3 on Outposts hostname takes the form
601      * <i>AccessPointName</i>-<i>AccountId</i>.<i>outpostID</i>.s3-outposts.<i>Region</i>.amazonaws.com.
602      * When using this action using S3 on Outposts through the Amazon Web Services
603      * SDKs, you provide the Outposts bucket ARN in place of the bucket name. For more
604      * information about S3 on Outposts ARNs, see <a
605      * href="https://docs.aws.amazon.com/AmazonS3/latest/userguide/S3onOutposts.html">Using
606      * S3 on Outposts</a> in the <i>Amazon S3 User Guide</i>.</p>
607      */
KeyHasBeenSet()608     inline bool KeyHasBeenSet() const { return m_keyHasBeenSet; }
609 
610     /**
611      * <p>Key for which the PUT action was initiated.</p> <p>When using this action
612      * with an access point, you must direct requests to the access point hostname. The
613      * access point hostname takes the form
614      * <i>AccessPointName</i>-<i>AccountId</i>.s3-accesspoint.<i>Region</i>.amazonaws.com.
615      * When using this action with an access point through the Amazon Web Services
616      * SDKs, you provide the access point ARN in place of the bucket name. For more
617      * information about access point ARNs, see <a
618      * href="https://docs.aws.amazon.com/AmazonS3/latest/userguide/using-access-points.html">Using
619      * access points</a> in the <i>Amazon S3 User Guide</i>.</p> <p>When using this
620      * action with Amazon S3 on Outposts, you must direct requests to the S3 on
621      * Outposts hostname. The S3 on Outposts hostname takes the form
622      * <i>AccessPointName</i>-<i>AccountId</i>.<i>outpostID</i>.s3-outposts.<i>Region</i>.amazonaws.com.
623      * When using this action using S3 on Outposts through the Amazon Web Services
624      * SDKs, you provide the Outposts bucket ARN in place of the bucket name. For more
625      * information about S3 on Outposts ARNs, see <a
626      * href="https://docs.aws.amazon.com/AmazonS3/latest/userguide/S3onOutposts.html">Using
627      * S3 on Outposts</a> in the <i>Amazon S3 User Guide</i>.</p>
628      */
SetKey(const Aws::String & value)629     inline void SetKey(const Aws::String& value) { m_keyHasBeenSet = true; m_key = value; }
630 
631     /**
632      * <p>Key for which the PUT action was initiated.</p> <p>When using this action
633      * with an access point, you must direct requests to the access point hostname. The
634      * access point hostname takes the form
635      * <i>AccessPointName</i>-<i>AccountId</i>.s3-accesspoint.<i>Region</i>.amazonaws.com.
636      * When using this action with an access point through the Amazon Web Services
637      * SDKs, you provide the access point ARN in place of the bucket name. For more
638      * information about access point ARNs, see <a
639      * href="https://docs.aws.amazon.com/AmazonS3/latest/userguide/using-access-points.html">Using
640      * access points</a> in the <i>Amazon S3 User Guide</i>.</p> <p>When using this
641      * action with Amazon S3 on Outposts, you must direct requests to the S3 on
642      * Outposts hostname. The S3 on Outposts hostname takes the form
643      * <i>AccessPointName</i>-<i>AccountId</i>.<i>outpostID</i>.s3-outposts.<i>Region</i>.amazonaws.com.
644      * When using this action using S3 on Outposts through the Amazon Web Services
645      * SDKs, you provide the Outposts bucket ARN in place of the bucket name. For more
646      * information about S3 on Outposts ARNs, see <a
647      * href="https://docs.aws.amazon.com/AmazonS3/latest/userguide/S3onOutposts.html">Using
648      * S3 on Outposts</a> in the <i>Amazon S3 User Guide</i>.</p>
649      */
SetKey(Aws::String && value)650     inline void SetKey(Aws::String&& value) { m_keyHasBeenSet = true; m_key = std::move(value); }
651 
652     /**
653      * <p>Key for which the PUT action was initiated.</p> <p>When using this action
654      * with an access point, you must direct requests to the access point hostname. The
655      * access point hostname takes the form
656      * <i>AccessPointName</i>-<i>AccountId</i>.s3-accesspoint.<i>Region</i>.amazonaws.com.
657      * When using this action with an access point through the Amazon Web Services
658      * SDKs, you provide the access point ARN in place of the bucket name. For more
659      * information about access point ARNs, see <a
660      * href="https://docs.aws.amazon.com/AmazonS3/latest/userguide/using-access-points.html">Using
661      * access points</a> in the <i>Amazon S3 User Guide</i>.</p> <p>When using this
662      * action with Amazon S3 on Outposts, you must direct requests to the S3 on
663      * Outposts hostname. The S3 on Outposts hostname takes the form
664      * <i>AccessPointName</i>-<i>AccountId</i>.<i>outpostID</i>.s3-outposts.<i>Region</i>.amazonaws.com.
665      * When using this action using S3 on Outposts through the Amazon Web Services
666      * SDKs, you provide the Outposts bucket ARN in place of the bucket name. For more
667      * information about S3 on Outposts ARNs, see <a
668      * href="https://docs.aws.amazon.com/AmazonS3/latest/userguide/S3onOutposts.html">Using
669      * S3 on Outposts</a> in the <i>Amazon S3 User Guide</i>.</p>
670      */
SetKey(const char * value)671     inline void SetKey(const char* value) { m_keyHasBeenSet = true; m_key.assign(value); }
672 
673     /**
674      * <p>Key for which the PUT action was initiated.</p> <p>When using this action
675      * with an access point, you must direct requests to the access point hostname. The
676      * access point hostname takes the form
677      * <i>AccessPointName</i>-<i>AccountId</i>.s3-accesspoint.<i>Region</i>.amazonaws.com.
678      * When using this action with an access point through the Amazon Web Services
679      * SDKs, you provide the access point ARN in place of the bucket name. For more
680      * information about access point ARNs, see <a
681      * href="https://docs.aws.amazon.com/AmazonS3/latest/userguide/using-access-points.html">Using
682      * access points</a> in the <i>Amazon S3 User Guide</i>.</p> <p>When using this
683      * action with Amazon S3 on Outposts, you must direct requests to the S3 on
684      * Outposts hostname. The S3 on Outposts hostname takes the form
685      * <i>AccessPointName</i>-<i>AccountId</i>.<i>outpostID</i>.s3-outposts.<i>Region</i>.amazonaws.com.
686      * When using this action using S3 on Outposts through the Amazon Web Services
687      * SDKs, you provide the Outposts bucket ARN in place of the bucket name. For more
688      * information about S3 on Outposts ARNs, see <a
689      * href="https://docs.aws.amazon.com/AmazonS3/latest/userguide/S3onOutposts.html">Using
690      * S3 on Outposts</a> in the <i>Amazon S3 User Guide</i>.</p>
691      */
WithKey(const Aws::String & value)692     inline PutObjectAclRequest& WithKey(const Aws::String& value) { SetKey(value); return *this;}
693 
694     /**
695      * <p>Key for which the PUT action was initiated.</p> <p>When using this action
696      * with an access point, you must direct requests to the access point hostname. The
697      * access point hostname takes the form
698      * <i>AccessPointName</i>-<i>AccountId</i>.s3-accesspoint.<i>Region</i>.amazonaws.com.
699      * When using this action with an access point through the Amazon Web Services
700      * SDKs, you provide the access point ARN in place of the bucket name. For more
701      * information about access point ARNs, see <a
702      * href="https://docs.aws.amazon.com/AmazonS3/latest/userguide/using-access-points.html">Using
703      * access points</a> in the <i>Amazon S3 User Guide</i>.</p> <p>When using this
704      * action with Amazon S3 on Outposts, you must direct requests to the S3 on
705      * Outposts hostname. The S3 on Outposts hostname takes the form
706      * <i>AccessPointName</i>-<i>AccountId</i>.<i>outpostID</i>.s3-outposts.<i>Region</i>.amazonaws.com.
707      * When using this action using S3 on Outposts through the Amazon Web Services
708      * SDKs, you provide the Outposts bucket ARN in place of the bucket name. For more
709      * information about S3 on Outposts ARNs, see <a
710      * href="https://docs.aws.amazon.com/AmazonS3/latest/userguide/S3onOutposts.html">Using
711      * S3 on Outposts</a> in the <i>Amazon S3 User Guide</i>.</p>
712      */
WithKey(Aws::String && value)713     inline PutObjectAclRequest& WithKey(Aws::String&& value) { SetKey(std::move(value)); return *this;}
714 
715     /**
716      * <p>Key for which the PUT action was initiated.</p> <p>When using this action
717      * with an access point, you must direct requests to the access point hostname. The
718      * access point hostname takes the form
719      * <i>AccessPointName</i>-<i>AccountId</i>.s3-accesspoint.<i>Region</i>.amazonaws.com.
720      * When using this action with an access point through the Amazon Web Services
721      * SDKs, you provide the access point ARN in place of the bucket name. For more
722      * information about access point ARNs, see <a
723      * href="https://docs.aws.amazon.com/AmazonS3/latest/userguide/using-access-points.html">Using
724      * access points</a> in the <i>Amazon S3 User Guide</i>.</p> <p>When using this
725      * action with Amazon S3 on Outposts, you must direct requests to the S3 on
726      * Outposts hostname. The S3 on Outposts hostname takes the form
727      * <i>AccessPointName</i>-<i>AccountId</i>.<i>outpostID</i>.s3-outposts.<i>Region</i>.amazonaws.com.
728      * When using this action using S3 on Outposts through the Amazon Web Services
729      * SDKs, you provide the Outposts bucket ARN in place of the bucket name. For more
730      * information about S3 on Outposts ARNs, see <a
731      * href="https://docs.aws.amazon.com/AmazonS3/latest/userguide/S3onOutposts.html">Using
732      * S3 on Outposts</a> in the <i>Amazon S3 User Guide</i>.</p>
733      */
WithKey(const char * value)734     inline PutObjectAclRequest& WithKey(const char* value) { SetKey(value); return *this;}
735 
736 
737 
GetRequestPayer()738     inline const RequestPayer& GetRequestPayer() const{ return m_requestPayer; }
739 
740 
RequestPayerHasBeenSet()741     inline bool RequestPayerHasBeenSet() const { return m_requestPayerHasBeenSet; }
742 
743 
SetRequestPayer(const RequestPayer & value)744     inline void SetRequestPayer(const RequestPayer& value) { m_requestPayerHasBeenSet = true; m_requestPayer = value; }
745 
746 
SetRequestPayer(RequestPayer && value)747     inline void SetRequestPayer(RequestPayer&& value) { m_requestPayerHasBeenSet = true; m_requestPayer = std::move(value); }
748 
749 
WithRequestPayer(const RequestPayer & value)750     inline PutObjectAclRequest& WithRequestPayer(const RequestPayer& value) { SetRequestPayer(value); return *this;}
751 
752 
WithRequestPayer(RequestPayer && value)753     inline PutObjectAclRequest& WithRequestPayer(RequestPayer&& value) { SetRequestPayer(std::move(value)); return *this;}
754 
755 
756     /**
757      * <p>VersionId used to reference a specific version of the object.</p>
758      */
GetVersionId()759     inline const Aws::String& GetVersionId() const{ return m_versionId; }
760 
761     /**
762      * <p>VersionId used to reference a specific version of the object.</p>
763      */
VersionIdHasBeenSet()764     inline bool VersionIdHasBeenSet() const { return m_versionIdHasBeenSet; }
765 
766     /**
767      * <p>VersionId used to reference a specific version of the object.</p>
768      */
SetVersionId(const Aws::String & value)769     inline void SetVersionId(const Aws::String& value) { m_versionIdHasBeenSet = true; m_versionId = value; }
770 
771     /**
772      * <p>VersionId used to reference a specific version of the object.</p>
773      */
SetVersionId(Aws::String && value)774     inline void SetVersionId(Aws::String&& value) { m_versionIdHasBeenSet = true; m_versionId = std::move(value); }
775 
776     /**
777      * <p>VersionId used to reference a specific version of the object.</p>
778      */
SetVersionId(const char * value)779     inline void SetVersionId(const char* value) { m_versionIdHasBeenSet = true; m_versionId.assign(value); }
780 
781     /**
782      * <p>VersionId used to reference a specific version of the object.</p>
783      */
WithVersionId(const Aws::String & value)784     inline PutObjectAclRequest& WithVersionId(const Aws::String& value) { SetVersionId(value); return *this;}
785 
786     /**
787      * <p>VersionId used to reference a specific version of the object.</p>
788      */
WithVersionId(Aws::String && value)789     inline PutObjectAclRequest& WithVersionId(Aws::String&& value) { SetVersionId(std::move(value)); return *this;}
790 
791     /**
792      * <p>VersionId used to reference a specific version of the object.</p>
793      */
WithVersionId(const char * value)794     inline PutObjectAclRequest& WithVersionId(const char* value) { SetVersionId(value); return *this;}
795 
796 
797     /**
798      * <p>The account ID of the expected bucket owner. If the bucket is owned by a
799      * different account, the request will fail with an HTTP <code>403 (Access
800      * Denied)</code> error.</p>
801      */
GetExpectedBucketOwner()802     inline const Aws::String& GetExpectedBucketOwner() const{ return m_expectedBucketOwner; }
803 
804     /**
805      * <p>The account ID of the expected bucket owner. If the bucket is owned by a
806      * different account, the request will fail with an HTTP <code>403 (Access
807      * Denied)</code> error.</p>
808      */
ExpectedBucketOwnerHasBeenSet()809     inline bool ExpectedBucketOwnerHasBeenSet() const { return m_expectedBucketOwnerHasBeenSet; }
810 
811     /**
812      * <p>The account ID of the expected bucket owner. If the bucket is owned by a
813      * different account, the request will fail with an HTTP <code>403 (Access
814      * Denied)</code> error.</p>
815      */
SetExpectedBucketOwner(const Aws::String & value)816     inline void SetExpectedBucketOwner(const Aws::String& value) { m_expectedBucketOwnerHasBeenSet = true; m_expectedBucketOwner = value; }
817 
818     /**
819      * <p>The account ID of the expected bucket owner. If the bucket is owned by a
820      * different account, the request will fail with an HTTP <code>403 (Access
821      * Denied)</code> error.</p>
822      */
SetExpectedBucketOwner(Aws::String && value)823     inline void SetExpectedBucketOwner(Aws::String&& value) { m_expectedBucketOwnerHasBeenSet = true; m_expectedBucketOwner = std::move(value); }
824 
825     /**
826      * <p>The account ID of the expected bucket owner. If the bucket is owned by a
827      * different account, the request will fail with an HTTP <code>403 (Access
828      * Denied)</code> error.</p>
829      */
SetExpectedBucketOwner(const char * value)830     inline void SetExpectedBucketOwner(const char* value) { m_expectedBucketOwnerHasBeenSet = true; m_expectedBucketOwner.assign(value); }
831 
832     /**
833      * <p>The account ID of the expected bucket owner. If the bucket is owned by a
834      * different account, the request will fail with an HTTP <code>403 (Access
835      * Denied)</code> error.</p>
836      */
WithExpectedBucketOwner(const Aws::String & value)837     inline PutObjectAclRequest& WithExpectedBucketOwner(const Aws::String& value) { SetExpectedBucketOwner(value); return *this;}
838 
839     /**
840      * <p>The account ID of the expected bucket owner. If the bucket is owned by a
841      * different account, the request will fail with an HTTP <code>403 (Access
842      * Denied)</code> error.</p>
843      */
WithExpectedBucketOwner(Aws::String && value)844     inline PutObjectAclRequest& WithExpectedBucketOwner(Aws::String&& value) { SetExpectedBucketOwner(std::move(value)); return *this;}
845 
846     /**
847      * <p>The account ID of the expected bucket owner. If the bucket is owned by a
848      * different account, the request will fail with an HTTP <code>403 (Access
849      * Denied)</code> error.</p>
850      */
WithExpectedBucketOwner(const char * value)851     inline PutObjectAclRequest& WithExpectedBucketOwner(const char* value) { SetExpectedBucketOwner(value); return *this;}
852 
853 
854 
GetCustomizedAccessLogTag()855     inline const Aws::Map<Aws::String, Aws::String>& GetCustomizedAccessLogTag() const{ return m_customizedAccessLogTag; }
856 
857 
CustomizedAccessLogTagHasBeenSet()858     inline bool CustomizedAccessLogTagHasBeenSet() const { return m_customizedAccessLogTagHasBeenSet; }
859 
860 
SetCustomizedAccessLogTag(const Aws::Map<Aws::String,Aws::String> & value)861     inline void SetCustomizedAccessLogTag(const Aws::Map<Aws::String, Aws::String>& value) { m_customizedAccessLogTagHasBeenSet = true; m_customizedAccessLogTag = value; }
862 
863 
SetCustomizedAccessLogTag(Aws::Map<Aws::String,Aws::String> && value)864     inline void SetCustomizedAccessLogTag(Aws::Map<Aws::String, Aws::String>&& value) { m_customizedAccessLogTagHasBeenSet = true; m_customizedAccessLogTag = std::move(value); }
865 
866 
WithCustomizedAccessLogTag(const Aws::Map<Aws::String,Aws::String> & value)867     inline PutObjectAclRequest& WithCustomizedAccessLogTag(const Aws::Map<Aws::String, Aws::String>& value) { SetCustomizedAccessLogTag(value); return *this;}
868 
869 
WithCustomizedAccessLogTag(Aws::Map<Aws::String,Aws::String> && value)870     inline PutObjectAclRequest& WithCustomizedAccessLogTag(Aws::Map<Aws::String, Aws::String>&& value) { SetCustomizedAccessLogTag(std::move(value)); return *this;}
871 
872 
AddCustomizedAccessLogTag(const Aws::String & key,const Aws::String & value)873     inline PutObjectAclRequest& AddCustomizedAccessLogTag(const Aws::String& key, const Aws::String& value) { m_customizedAccessLogTagHasBeenSet = true; m_customizedAccessLogTag.emplace(key, value); return *this; }
874 
875 
AddCustomizedAccessLogTag(Aws::String && key,const Aws::String & value)876     inline PutObjectAclRequest& AddCustomizedAccessLogTag(Aws::String&& key, const Aws::String& value) { m_customizedAccessLogTagHasBeenSet = true; m_customizedAccessLogTag.emplace(std::move(key), value); return *this; }
877 
878 
AddCustomizedAccessLogTag(const Aws::String & key,Aws::String && value)879     inline PutObjectAclRequest& AddCustomizedAccessLogTag(const Aws::String& key, Aws::String&& value) { m_customizedAccessLogTagHasBeenSet = true; m_customizedAccessLogTag.emplace(key, std::move(value)); return *this; }
880 
881 
AddCustomizedAccessLogTag(Aws::String && key,Aws::String && value)882     inline PutObjectAclRequest& AddCustomizedAccessLogTag(Aws::String&& key, Aws::String&& value) { m_customizedAccessLogTagHasBeenSet = true; m_customizedAccessLogTag.emplace(std::move(key), std::move(value)); return *this; }
883 
884 
AddCustomizedAccessLogTag(const char * key,Aws::String && value)885     inline PutObjectAclRequest& AddCustomizedAccessLogTag(const char* key, Aws::String&& value) { m_customizedAccessLogTagHasBeenSet = true; m_customizedAccessLogTag.emplace(key, std::move(value)); return *this; }
886 
887 
AddCustomizedAccessLogTag(Aws::String && key,const char * value)888     inline PutObjectAclRequest& AddCustomizedAccessLogTag(Aws::String&& key, const char* value) { m_customizedAccessLogTagHasBeenSet = true; m_customizedAccessLogTag.emplace(std::move(key), value); return *this; }
889 
890 
AddCustomizedAccessLogTag(const char * key,const char * value)891     inline PutObjectAclRequest& AddCustomizedAccessLogTag(const char* key, const char* value) { m_customizedAccessLogTagHasBeenSet = true; m_customizedAccessLogTag.emplace(key, value); return *this; }
892 
893   private:
894 
895     ObjectCannedACL m_aCL;
896     bool m_aCLHasBeenSet;
897 
898     AccessControlPolicy m_accessControlPolicy;
899     bool m_accessControlPolicyHasBeenSet;
900 
901     Aws::String m_bucket;
902     bool m_bucketHasBeenSet;
903 
904     Aws::String m_contentMD5;
905     bool m_contentMD5HasBeenSet;
906 
907     Aws::String m_grantFullControl;
908     bool m_grantFullControlHasBeenSet;
909 
910     Aws::String m_grantRead;
911     bool m_grantReadHasBeenSet;
912 
913     Aws::String m_grantReadACP;
914     bool m_grantReadACPHasBeenSet;
915 
916     Aws::String m_grantWrite;
917     bool m_grantWriteHasBeenSet;
918 
919     Aws::String m_grantWriteACP;
920     bool m_grantWriteACPHasBeenSet;
921 
922     Aws::String m_key;
923     bool m_keyHasBeenSet;
924 
925     RequestPayer m_requestPayer;
926     bool m_requestPayerHasBeenSet;
927 
928     Aws::String m_versionId;
929     bool m_versionIdHasBeenSet;
930 
931     Aws::String m_expectedBucketOwner;
932     bool m_expectedBucketOwnerHasBeenSet;
933 
934     Aws::Map<Aws::String, Aws::String> m_customizedAccessLogTag;
935     bool m_customizedAccessLogTagHasBeenSet;
936   };
937 
938 } // namespace Model
939 } // namespace S3Crt
940 } // namespace Aws
941