1/*
2* Copyright 2010-2017 Amazon.com, Inc. or its affiliates. All Rights Reserved.
3*
4* Licensed under the Apache License, Version 2.0 (the "License").
5* You may not use this file except in compliance with the License.
6* A copy of the License is located at
7*
8* http://aws.amazon.com/apache2.0
9*
10* or in the "license" file accompanying this file. This file is distributed
11* on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either
12* express or implied. See the License for the specific language governing
13* permissions and limitations under the License.
14*/
15
16#pragma once
17#include <aws/s3/S3_EXPORTS.h>
18#include <aws/s3/model/ServerSideEncryption.h>
19#include <aws/core/utils/memory/stl/AWSString.h>
20#include <aws/s3/model/RequestCharged.h>
21#include <utility>
22
23namespace Aws
24{
25template<typename RESULT_TYPE>
26class AmazonWebServiceResult;
27
28namespace Utils
29{
30namespace Xml
31{
32 class XmlDocument;
33} // namespace Xml
34} // namespace Utils
35namespace S3
36{
37namespace Model
38{
39 class AWS_S3_API UploadPartResult
40 {
41 public:
42 UploadPartResult();
43 UploadPartResult(const Aws::AmazonWebServiceResult<Aws::Utils::Xml::XmlDocument>& result);
44 UploadPartResult& operator=(const Aws::AmazonWebServiceResult<Aws::Utils::Xml::XmlDocument>& result);
45
46
47 /**
48 * <p>The server-side encryption algorithm used when storing this object in Amazon
49 * S3 (for example, AES256, aws:kms).</p>
50 */
51 inline const ServerSideEncryption& GetServerSideEncryption() const{ return m_serverSideEncryption; }
52
53 /**
54 * <p>The server-side encryption algorithm used when storing this object in Amazon
55 * S3 (for example, AES256, aws:kms).</p>
56 */
57 inline void SetServerSideEncryption(const ServerSideEncryption& value) { m_serverSideEncryption = value; }
58
59 /**
60 * <p>The server-side encryption algorithm used when storing this object in Amazon
61 * S3 (for example, AES256, aws:kms).</p>
62 */
63 inline void SetServerSideEncryption(ServerSideEncryption&& value) { m_serverSideEncryption = std::move(value); }
64
65 /**
66 * <p>The server-side encryption algorithm used when storing this object in Amazon
67 * S3 (for example, AES256, aws:kms).</p>
68 */
69 inline UploadPartResult& WithServerSideEncryption(const ServerSideEncryption& value) { SetServerSideEncryption(value); return *this;}
70
71 /**
72 * <p>The server-side encryption algorithm used when storing this object in Amazon
73 * S3 (for example, AES256, aws:kms).</p>
74 */
75 inline UploadPartResult& WithServerSideEncryption(ServerSideEncryption&& value) { SetServerSideEncryption(std::move(value)); return *this;}
76
77
78 /**
79 * <p>Entity tag for the uploaded object.</p>
80 */
81 inline const Aws::String& GetETag() const{ return m_eTag; }
82
83 /**
84 * <p>Entity tag for the uploaded object.</p>
85 */
86 inline void SetETag(const Aws::String& value) { m_eTag = value; }
87
88 /**
89 * <p>Entity tag for the uploaded object.</p>
90 */
91 inline void SetETag(Aws::String&& value) { m_eTag = std::move(value); }
92
93 /**
94 * <p>Entity tag for the uploaded object.</p>
95 */
96 inline void SetETag(const char* value) { m_eTag.assign(value); }
97
98 /**
99 * <p>Entity tag for the uploaded object.</p>
100 */
101 inline UploadPartResult& WithETag(const Aws::String& value) { SetETag(value); return *this;}
102
103 /**
104 * <p>Entity tag for the uploaded object.</p>
105 */
106 inline UploadPartResult& WithETag(Aws::String&& value) { SetETag(std::move(value)); return *this;}
107
108 /**
109 * <p>Entity tag for the uploaded object.</p>
110 */
111 inline UploadPartResult& WithETag(const char* value) { SetETag(value); return *this;}
112
113
114 /**
115 * <p>If server-side encryption with a customer-provided encryption key was
116 * requested, the response will include this header confirming the encryption
117 * algorithm used.</p>
118 */
119 inline const Aws::String& GetSSECustomerAlgorithm() const{ return m_sSECustomerAlgorithm; }
120
121 /**
122 * <p>If server-side encryption with a customer-provided encryption key was
123 * requested, the response will include this header confirming the encryption
124 * algorithm used.</p>
125 */
126 inline void SetSSECustomerAlgorithm(const Aws::String& value) { m_sSECustomerAlgorithm = value; }
127
128 /**
129 * <p>If server-side encryption with a customer-provided encryption key was
130 * requested, the response will include this header confirming the encryption
131 * algorithm used.</p>
132 */
133 inline void SetSSECustomerAlgorithm(Aws::String&& value) { m_sSECustomerAlgorithm = std::move(value); }
134
135 /**
136 * <p>If server-side encryption with a customer-provided encryption key was
137 * requested, the response will include this header confirming the encryption
138 * algorithm used.</p>
139 */
140 inline void SetSSECustomerAlgorithm(const char* value) { m_sSECustomerAlgorithm.assign(value); }
141
142 /**
143 * <p>If server-side encryption with a customer-provided encryption key was
144 * requested, the response will include this header confirming the encryption
145 * algorithm used.</p>
146 */
147 inline UploadPartResult& WithSSECustomerAlgorithm(const Aws::String& value) { SetSSECustomerAlgorithm(value); return *this;}
148
149 /**
150 * <p>If server-side encryption with a customer-provided encryption key was
151 * requested, the response will include this header confirming the encryption
152 * algorithm used.</p>
153 */
154 inline UploadPartResult& WithSSECustomerAlgorithm(Aws::String&& value) { SetSSECustomerAlgorithm(std::move(value)); return *this;}
155
156 /**
157 * <p>If server-side encryption with a customer-provided encryption key was
158 * requested, the response will include this header confirming the encryption
159 * algorithm used.</p>
160 */
161 inline UploadPartResult& WithSSECustomerAlgorithm(const char* value) { SetSSECustomerAlgorithm(value); return *this;}
162
163
164 /**
165 * <p>If server-side encryption with a customer-provided encryption key was
166 * requested, the response will include this header to provide round-trip message
167 * integrity verification of the customer-provided encryption key.</p>
168 */
169 inline const Aws::String& GetSSECustomerKeyMD5() const{ return m_sSECustomerKeyMD5; }
170
171 /**
172 * <p>If server-side encryption with a customer-provided encryption key was
173 * requested, the response will include this header to provide round-trip message
174 * integrity verification of the customer-provided encryption key.</p>
175 */
176 inline void SetSSECustomerKeyMD5(const Aws::String& value) { m_sSECustomerKeyMD5 = value; }
177
178 /**
179 * <p>If server-side encryption with a customer-provided encryption key was
180 * requested, the response will include this header to provide round-trip message
181 * integrity verification of the customer-provided encryption key.</p>
182 */
183 inline void SetSSECustomerKeyMD5(Aws::String&& value) { m_sSECustomerKeyMD5 = std::move(value); }
184
185 /**
186 * <p>If server-side encryption with a customer-provided encryption key was
187 * requested, the response will include this header to provide round-trip message
188 * integrity verification of the customer-provided encryption key.</p>
189 */
190 inline void SetSSECustomerKeyMD5(const char* value) { m_sSECustomerKeyMD5.assign(value); }
191
192 /**
193 * <p>If server-side encryption with a customer-provided encryption key was
194 * requested, the response will include this header to provide round-trip message
195 * integrity verification of the customer-provided encryption key.</p>
196 */
197 inline UploadPartResult& WithSSECustomerKeyMD5(const Aws::String& value) { SetSSECustomerKeyMD5(value); return *this;}
198
199 /**
200 * <p>If server-side encryption with a customer-provided encryption key was
201 * requested, the response will include this header to provide round-trip message
202 * integrity verification of the customer-provided encryption key.</p>
203 */
204 inline UploadPartResult& WithSSECustomerKeyMD5(Aws::String&& value) { SetSSECustomerKeyMD5(std::move(value)); return *this;}
205
206 /**
207 * <p>If server-side encryption with a customer-provided encryption key was
208 * requested, the response will include this header to provide round-trip message
209 * integrity verification of the customer-provided encryption key.</p>
210 */
211 inline UploadPartResult& WithSSECustomerKeyMD5(const char* value) { SetSSECustomerKeyMD5(value); return *this;}
212
213
214 /**
215 * <p>If present, specifies the ID of the AWS Key Management Service (AWS KMS)
216 * customer master key (CMK) was used for the object.</p>
217 */
218 inline const Aws::String& GetSSEKMSKeyId() const{ return m_sSEKMSKeyId; }
219
220 /**
221 * <p>If present, specifies the ID of the AWS Key Management Service (AWS KMS)
222 * customer master key (CMK) was used for the object.</p>
223 */
224 inline void SetSSEKMSKeyId(const Aws::String& value) { m_sSEKMSKeyId = value; }
225
226 /**
227 * <p>If present, specifies the ID of the AWS Key Management Service (AWS KMS)
228 * customer master key (CMK) was used for the object.</p>
229 */
230 inline void SetSSEKMSKeyId(Aws::String&& value) { m_sSEKMSKeyId = std::move(value); }
231
232 /**
233 * <p>If present, specifies the ID of the AWS Key Management Service (AWS KMS)
234 * customer master key (CMK) was used for the object.</p>
235 */
236 inline void SetSSEKMSKeyId(const char* value) { m_sSEKMSKeyId.assign(value); }
237
238 /**
239 * <p>If present, specifies the ID of the AWS Key Management Service (AWS KMS)
240 * customer master key (CMK) was used for the object.</p>
241 */
242 inline UploadPartResult& WithSSEKMSKeyId(const Aws::String& value) { SetSSEKMSKeyId(value); return *this;}
243
244 /**
245 * <p>If present, specifies the ID of the AWS Key Management Service (AWS KMS)
246 * customer master key (CMK) was used for the object.</p>
247 */
248 inline UploadPartResult& WithSSEKMSKeyId(Aws::String&& value) { SetSSEKMSKeyId(std::move(value)); return *this;}
249
250 /**
251 * <p>If present, specifies the ID of the AWS Key Management Service (AWS KMS)
252 * customer master key (CMK) was used for the object.</p>
253 */
254 inline UploadPartResult& WithSSEKMSKeyId(const char* value) { SetSSEKMSKeyId(value); return *this;}
255
256
257
258 inline const RequestCharged& GetRequestCharged() const{ return m_requestCharged; }
259
260
261 inline void SetRequestCharged(const RequestCharged& value) { m_requestCharged = value; }
262
263
264 inline void SetRequestCharged(RequestCharged&& value) { m_requestCharged = std::move(value); }
265
266
267 inline UploadPartResult& WithRequestCharged(const RequestCharged& value) { SetRequestCharged(value); return *this;}
268
269
270 inline UploadPartResult& WithRequestCharged(RequestCharged&& value) { SetRequestCharged(std::move(value)); return *this;}
271
272 private:
273
274 ServerSideEncryption m_serverSideEncryption;
275
276 Aws::String m_eTag;
277
278 Aws::String m_sSECustomerAlgorithm;
279
280 Aws::String m_sSECustomerKeyMD5;
281
282 Aws::String m_sSEKMSKeyId;
283
284 RequestCharged m_requestCharged;
285 };
286
287} // namespace Model
288} // namespace S3
289} // namespace Aws
290