AWS SDK for C++

AWS SDK for C++ Version 1.11.695

Loading...
Searching...
No Matches
GetObjectRequest.h
1
6#pragma once
7#include <aws/core/utils/DateTime.h>
8#include <aws/core/utils/memory/stl/AWSMap.h>
9#include <aws/core/utils/memory/stl/AWSString.h>
10#include <aws/s3/S3Request.h>
11#include <aws/s3/S3_EXPORTS.h>
12#include <aws/s3/model/ChecksumMode.h>
13#include <aws/s3/model/RequestPayer.h>
14
15#include <utility>
16
17namespace Aws {
18namespace Http {
19class URI;
20} // namespace Http
21namespace S3 {
22namespace Model {
23
27 public:
28 AWS_S3_API GetObjectRequest() = default;
29
30 // Service request name is the Operation name which will send this request out,
31 // each operation should has unique request name, so that we can get operation's name from this request.
32 // Note: this is not true for response, multiple operations may have the same response name,
33 // so we can not get operation's name from response.
34 inline virtual const char* GetServiceRequestName() const override { return "GetObject"; }
35
36 AWS_S3_API Aws::String SerializePayload() const override;
37
38 AWS_S3_API void AddQueryStringParameters(Aws::Http::URI& uri) const override;
39
41
42 AWS_S3_API bool ShouldValidateResponseChecksum() const override;
43
45
49 AWS_S3_API EndpointParameters GetEndpointContextParams() const override;
50
52
91 inline const Aws::String& GetBucket() const { return m_bucket; }
92 inline bool BucketHasBeenSet() const { return m_bucketHasBeenSet; }
93 template <typename BucketT = Aws::String>
94 void SetBucket(BucketT&& value) {
95 m_bucketHasBeenSet = true;
96 m_bucket = std::forward<BucketT>(value);
97 }
98 template <typename BucketT = Aws::String>
99 GetObjectRequest& WithBucket(BucketT&& value) {
100 SetBucket(std::forward<BucketT>(value));
101 return *this;
102 }
104
106
117 inline const Aws::String& GetIfMatch() const { return m_ifMatch; }
118 inline bool IfMatchHasBeenSet() const { return m_ifMatchHasBeenSet; }
119 template <typename IfMatchT = Aws::String>
120 void SetIfMatch(IfMatchT&& value) {
121 m_ifMatchHasBeenSet = true;
122 m_ifMatch = std::forward<IfMatchT>(value);
123 }
124 template <typename IfMatchT = Aws::String>
125 GetObjectRequest& WithIfMatch(IfMatchT&& value) {
126 SetIfMatch(std::forward<IfMatchT>(value));
127 return *this;
128 }
130
132
142 inline const Aws::Utils::DateTime& GetIfModifiedSince() const { return m_ifModifiedSince; }
143 inline bool IfModifiedSinceHasBeenSet() const { return m_ifModifiedSinceHasBeenSet; }
144 template <typename IfModifiedSinceT = Aws::Utils::DateTime>
145 void SetIfModifiedSince(IfModifiedSinceT&& value) {
146 m_ifModifiedSinceHasBeenSet = true;
147 m_ifModifiedSince = std::forward<IfModifiedSinceT>(value);
148 }
149 template <typename IfModifiedSinceT = Aws::Utils::DateTime>
150 GetObjectRequest& WithIfModifiedSince(IfModifiedSinceT&& value) {
151 SetIfModifiedSince(std::forward<IfModifiedSinceT>(value));
152 return *this;
153 }
155
157
168 inline const Aws::String& GetIfNoneMatch() const { return m_ifNoneMatch; }
169 inline bool IfNoneMatchHasBeenSet() const { return m_ifNoneMatchHasBeenSet; }
170 template <typename IfNoneMatchT = Aws::String>
171 void SetIfNoneMatch(IfNoneMatchT&& value) {
172 m_ifNoneMatchHasBeenSet = true;
173 m_ifNoneMatch = std::forward<IfNoneMatchT>(value);
174 }
175 template <typename IfNoneMatchT = Aws::String>
176 GetObjectRequest& WithIfNoneMatch(IfNoneMatchT&& value) {
177 SetIfNoneMatch(std::forward<IfNoneMatchT>(value));
178 return *this;
179 }
181
183
193 inline const Aws::Utils::DateTime& GetIfUnmodifiedSince() const { return m_ifUnmodifiedSince; }
194 inline bool IfUnmodifiedSinceHasBeenSet() const { return m_ifUnmodifiedSinceHasBeenSet; }
195 template <typename IfUnmodifiedSinceT = Aws::Utils::DateTime>
196 void SetIfUnmodifiedSince(IfUnmodifiedSinceT&& value) {
197 m_ifUnmodifiedSinceHasBeenSet = true;
198 m_ifUnmodifiedSince = std::forward<IfUnmodifiedSinceT>(value);
199 }
200 template <typename IfUnmodifiedSinceT = Aws::Utils::DateTime>
201 GetObjectRequest& WithIfUnmodifiedSince(IfUnmodifiedSinceT&& value) {
202 SetIfUnmodifiedSince(std::forward<IfUnmodifiedSinceT>(value));
203 return *this;
204 }
206
208
211 inline const Aws::String& GetKey() const { return m_key; }
212 inline bool KeyHasBeenSet() const { return m_keyHasBeenSet; }
213 template <typename KeyT = Aws::String>
214 void SetKey(KeyT&& value) {
215 m_keyHasBeenSet = true;
216 m_key = std::forward<KeyT>(value);
217 }
218 template <typename KeyT = Aws::String>
219 GetObjectRequest& WithKey(KeyT&& value) {
220 SetKey(std::forward<KeyT>(value));
221 return *this;
222 }
224
226
233 inline const Aws::String& GetRange() const { return m_range; }
234 inline bool RangeHasBeenSet() const { return m_rangeHasBeenSet; }
235 template <typename RangeT = Aws::String>
236 void SetRange(RangeT&& value) {
237 m_rangeHasBeenSet = true;
238 m_range = std::forward<RangeT>(value);
239 }
240 template <typename RangeT = Aws::String>
241 GetObjectRequest& WithRange(RangeT&& value) {
242 SetRange(std::forward<RangeT>(value));
243 return *this;
244 }
246
248
251 inline const Aws::String& GetResponseCacheControl() const { return m_responseCacheControl; }
252 inline bool ResponseCacheControlHasBeenSet() const { return m_responseCacheControlHasBeenSet; }
253 template <typename ResponseCacheControlT = Aws::String>
254 void SetResponseCacheControl(ResponseCacheControlT&& value) {
255 m_responseCacheControlHasBeenSet = true;
256 m_responseCacheControl = std::forward<ResponseCacheControlT>(value);
257 }
258 template <typename ResponseCacheControlT = Aws::String>
259 GetObjectRequest& WithResponseCacheControl(ResponseCacheControlT&& value) {
260 SetResponseCacheControl(std::forward<ResponseCacheControlT>(value));
261 return *this;
262 }
264
266
269 inline const Aws::String& GetResponseContentDisposition() const { return m_responseContentDisposition; }
270 inline bool ResponseContentDispositionHasBeenSet() const { return m_responseContentDispositionHasBeenSet; }
271 template <typename ResponseContentDispositionT = Aws::String>
272 void SetResponseContentDisposition(ResponseContentDispositionT&& value) {
273 m_responseContentDispositionHasBeenSet = true;
274 m_responseContentDisposition = std::forward<ResponseContentDispositionT>(value);
275 }
276 template <typename ResponseContentDispositionT = Aws::String>
277 GetObjectRequest& WithResponseContentDisposition(ResponseContentDispositionT&& value) {
278 SetResponseContentDisposition(std::forward<ResponseContentDispositionT>(value));
279 return *this;
280 }
282
284
287 inline const Aws::String& GetResponseContentEncoding() const { return m_responseContentEncoding; }
288 inline bool ResponseContentEncodingHasBeenSet() const { return m_responseContentEncodingHasBeenSet; }
289 template <typename ResponseContentEncodingT = Aws::String>
290 void SetResponseContentEncoding(ResponseContentEncodingT&& value) {
291 m_responseContentEncodingHasBeenSet = true;
292 m_responseContentEncoding = std::forward<ResponseContentEncodingT>(value);
293 }
294 template <typename ResponseContentEncodingT = Aws::String>
295 GetObjectRequest& WithResponseContentEncoding(ResponseContentEncodingT&& value) {
296 SetResponseContentEncoding(std::forward<ResponseContentEncodingT>(value));
297 return *this;
298 }
300
302
305 inline const Aws::String& GetResponseContentLanguage() const { return m_responseContentLanguage; }
306 inline bool ResponseContentLanguageHasBeenSet() const { return m_responseContentLanguageHasBeenSet; }
307 template <typename ResponseContentLanguageT = Aws::String>
308 void SetResponseContentLanguage(ResponseContentLanguageT&& value) {
309 m_responseContentLanguageHasBeenSet = true;
310 m_responseContentLanguage = std::forward<ResponseContentLanguageT>(value);
311 }
312 template <typename ResponseContentLanguageT = Aws::String>
313 GetObjectRequest& WithResponseContentLanguage(ResponseContentLanguageT&& value) {
314 SetResponseContentLanguage(std::forward<ResponseContentLanguageT>(value));
315 return *this;
316 }
318
320
323 inline const Aws::String& GetResponseContentType() const { return m_responseContentType; }
324 inline bool ResponseContentTypeHasBeenSet() const { return m_responseContentTypeHasBeenSet; }
325 template <typename ResponseContentTypeT = Aws::String>
326 void SetResponseContentType(ResponseContentTypeT&& value) {
327 m_responseContentTypeHasBeenSet = true;
328 m_responseContentType = std::forward<ResponseContentTypeT>(value);
329 }
330 template <typename ResponseContentTypeT = Aws::String>
331 GetObjectRequest& WithResponseContentType(ResponseContentTypeT&& value) {
332 SetResponseContentType(std::forward<ResponseContentTypeT>(value));
333 return *this;
334 }
336
338
341 inline const Aws::Utils::DateTime& GetResponseExpires() const { return m_responseExpires; }
342 inline bool ResponseExpiresHasBeenSet() const { return m_responseExpiresHasBeenSet; }
343 template <typename ResponseExpiresT = Aws::Utils::DateTime>
344 void SetResponseExpires(ResponseExpiresT&& value) {
345 m_responseExpiresHasBeenSet = true;
346 m_responseExpires = std::forward<ResponseExpiresT>(value);
347 }
348 template <typename ResponseExpiresT = Aws::Utils::DateTime>
349 GetObjectRequest& WithResponseExpires(ResponseExpiresT&& value) {
350 SetResponseExpires(std::forward<ResponseExpiresT>(value));
351 return *this;
352 }
354
356
375 inline const Aws::String& GetVersionId() const { return m_versionId; }
376 inline bool VersionIdHasBeenSet() const { return m_versionIdHasBeenSet; }
377 template <typename VersionIdT = Aws::String>
378 void SetVersionId(VersionIdT&& value) {
379 m_versionIdHasBeenSet = true;
380 m_versionId = std::forward<VersionIdT>(value);
381 }
382 template <typename VersionIdT = Aws::String>
383 GetObjectRequest& WithVersionId(VersionIdT&& value) {
384 SetVersionId(std::forward<VersionIdT>(value));
385 return *this;
386 }
388
390
405 inline const Aws::String& GetSSECustomerAlgorithm() const { return m_sSECustomerAlgorithm; }
406 inline bool SSECustomerAlgorithmHasBeenSet() const { return m_sSECustomerAlgorithmHasBeenSet; }
407 template <typename SSECustomerAlgorithmT = Aws::String>
408 void SetSSECustomerAlgorithm(SSECustomerAlgorithmT&& value) {
409 m_sSECustomerAlgorithmHasBeenSet = true;
410 m_sSECustomerAlgorithm = std::forward<SSECustomerAlgorithmT>(value);
411 }
412 template <typename SSECustomerAlgorithmT = Aws::String>
413 GetObjectRequest& WithSSECustomerAlgorithm(SSECustomerAlgorithmT&& value) {
414 SetSSECustomerAlgorithm(std::forward<SSECustomerAlgorithmT>(value));
415 return *this;
416 }
418
420
438 inline const Aws::String& GetSSECustomerKey() const { return m_sSECustomerKey; }
439 inline bool SSECustomerKeyHasBeenSet() const { return m_sSECustomerKeyHasBeenSet; }
440 template <typename SSECustomerKeyT = Aws::String>
441 void SetSSECustomerKey(SSECustomerKeyT&& value) {
442 m_sSECustomerKeyHasBeenSet = true;
443 m_sSECustomerKey = std::forward<SSECustomerKeyT>(value);
444 }
445 template <typename SSECustomerKeyT = Aws::String>
446 GetObjectRequest& WithSSECustomerKey(SSECustomerKeyT&& value) {
447 SetSSECustomerKey(std::forward<SSECustomerKeyT>(value));
448 return *this;
449 }
451
453
469 inline const Aws::String& GetSSECustomerKeyMD5() const { return m_sSECustomerKeyMD5; }
470 inline bool SSECustomerKeyMD5HasBeenSet() const { return m_sSECustomerKeyMD5HasBeenSet; }
471 template <typename SSECustomerKeyMD5T = Aws::String>
472 void SetSSECustomerKeyMD5(SSECustomerKeyMD5T&& value) {
473 m_sSECustomerKeyMD5HasBeenSet = true;
474 m_sSECustomerKeyMD5 = std::forward<SSECustomerKeyMD5T>(value);
475 }
476 template <typename SSECustomerKeyMD5T = Aws::String>
477 GetObjectRequest& WithSSECustomerKeyMD5(SSECustomerKeyMD5T&& value) {
478 SetSSECustomerKeyMD5(std::forward<SSECustomerKeyMD5T>(value));
479 return *this;
480 }
482
484
485 inline RequestPayer GetRequestPayer() const { return m_requestPayer; }
486 inline bool RequestPayerHasBeenSet() const { return m_requestPayerHasBeenSet; }
487 inline void SetRequestPayer(RequestPayer value) {
488 m_requestPayerHasBeenSet = true;
489 m_requestPayer = value;
490 }
492 SetRequestPayer(value);
493 return *this;
494 }
496
498
503 inline int GetPartNumber() const { return m_partNumber; }
504 inline bool PartNumberHasBeenSet() const { return m_partNumberHasBeenSet; }
505 inline void SetPartNumber(int value) {
506 m_partNumberHasBeenSet = true;
507 m_partNumber = value;
508 }
509 inline GetObjectRequest& WithPartNumber(int value) {
510 SetPartNumber(value);
511 return *this;
512 }
514
516
521 inline const Aws::String& GetExpectedBucketOwner() const { return m_expectedBucketOwner; }
522 inline bool ExpectedBucketOwnerHasBeenSet() const { return m_expectedBucketOwnerHasBeenSet; }
523 template <typename ExpectedBucketOwnerT = Aws::String>
524 void SetExpectedBucketOwner(ExpectedBucketOwnerT&& value) {
525 m_expectedBucketOwnerHasBeenSet = true;
526 m_expectedBucketOwner = std::forward<ExpectedBucketOwnerT>(value);
527 }
528 template <typename ExpectedBucketOwnerT = Aws::String>
529 GetObjectRequest& WithExpectedBucketOwner(ExpectedBucketOwnerT&& value) {
530 SetExpectedBucketOwner(std::forward<ExpectedBucketOwnerT>(value));
531 return *this;
532 }
534
536
539 inline ChecksumMode GetChecksumMode() const { return m_checksumMode; }
540 inline bool ChecksumModeHasBeenSet() const { return m_checksumModeHasBeenSet; }
541 inline void SetChecksumMode(ChecksumMode value) {
542 m_checksumModeHasBeenSet = true;
543 m_checksumMode = value;
544 }
546 SetChecksumMode(value);
547 return *this;
548 }
550
552
553 inline const Aws::Map<Aws::String, Aws::String>& GetCustomizedAccessLogTag() const { return m_customizedAccessLogTag; }
554 inline bool CustomizedAccessLogTagHasBeenSet() const { return m_customizedAccessLogTagHasBeenSet; }
555 template <typename CustomizedAccessLogTagT = Aws::Map<Aws::String, Aws::String>>
556 void SetCustomizedAccessLogTag(CustomizedAccessLogTagT&& value) {
557 m_customizedAccessLogTagHasBeenSet = true;
558 m_customizedAccessLogTag = std::forward<CustomizedAccessLogTagT>(value);
559 }
560 template <typename CustomizedAccessLogTagT = Aws::Map<Aws::String, Aws::String>>
561 GetObjectRequest& WithCustomizedAccessLogTag(CustomizedAccessLogTagT&& value) {
562 SetCustomizedAccessLogTag(std::forward<CustomizedAccessLogTagT>(value));
563 return *this;
564 }
565 template <typename CustomizedAccessLogTagKeyT = Aws::String, typename CustomizedAccessLogTagValueT = Aws::String>
566 GetObjectRequest& AddCustomizedAccessLogTag(CustomizedAccessLogTagKeyT&& key, CustomizedAccessLogTagValueT&& value) {
567 m_customizedAccessLogTagHasBeenSet = true;
568 m_customizedAccessLogTag.emplace(std::forward<CustomizedAccessLogTagKeyT>(key), std::forward<CustomizedAccessLogTagValueT>(value));
569 return *this;
570 }
572 private:
573 Aws::String m_bucket;
574 bool m_bucketHasBeenSet = false;
575
576 Aws::String m_ifMatch;
577 bool m_ifMatchHasBeenSet = false;
578
579 Aws::Utils::DateTime m_ifModifiedSince{};
580 bool m_ifModifiedSinceHasBeenSet = false;
581
582 Aws::String m_ifNoneMatch;
583 bool m_ifNoneMatchHasBeenSet = false;
584
585 Aws::Utils::DateTime m_ifUnmodifiedSince{};
586 bool m_ifUnmodifiedSinceHasBeenSet = false;
587
588 Aws::String m_key;
589 bool m_keyHasBeenSet = false;
590
591 Aws::String m_range;
592 bool m_rangeHasBeenSet = false;
593
594 Aws::String m_responseCacheControl;
595 bool m_responseCacheControlHasBeenSet = false;
596
597 Aws::String m_responseContentDisposition;
598 bool m_responseContentDispositionHasBeenSet = false;
599
600 Aws::String m_responseContentEncoding;
601 bool m_responseContentEncodingHasBeenSet = false;
602
603 Aws::String m_responseContentLanguage;
604 bool m_responseContentLanguageHasBeenSet = false;
605
606 Aws::String m_responseContentType;
607 bool m_responseContentTypeHasBeenSet = false;
608
609 Aws::Utils::DateTime m_responseExpires{};
610 bool m_responseExpiresHasBeenSet = false;
611
612 Aws::String m_versionId;
613 bool m_versionIdHasBeenSet = false;
614
615 Aws::String m_sSECustomerAlgorithm;
616 bool m_sSECustomerAlgorithmHasBeenSet = false;
617
618 Aws::String m_sSECustomerKey;
619 bool m_sSECustomerKeyHasBeenSet = false;
620
621 Aws::String m_sSECustomerKeyMD5;
622 bool m_sSECustomerKeyMD5HasBeenSet = false;
623
624 RequestPayer m_requestPayer{RequestPayer::NOT_SET};
625 bool m_requestPayerHasBeenSet = false;
626
627 int m_partNumber{0};
628 bool m_partNumberHasBeenSet = false;
629
630 Aws::String m_expectedBucketOwner;
631 bool m_expectedBucketOwnerHasBeenSet = false;
632
633 ChecksumMode m_checksumMode{ChecksumMode::NOT_SET};
634 bool m_checksumModeHasBeenSet = false;
635
636 Aws::Map<Aws::String, Aws::String> m_customizedAccessLogTag;
637 bool m_customizedAccessLogTagHasBeenSet = false;
638};
639
640} // namespace Model
641} // namespace S3
642} // namespace Aws
const Aws::Utils::DateTime & GetIfModifiedSince() const
void SetExpectedBucketOwner(ExpectedBucketOwnerT &&value)
AWS_S3_API Aws::String SerializePayload() const override
void SetIfModifiedSince(IfModifiedSinceT &&value)
void SetSSECustomerAlgorithm(SSECustomerAlgorithmT &&value)
const Aws::String & GetResponseContentType() const
AWS_S3_API Aws::Http::HeaderValueCollection GetRequestSpecificHeaders() const override
GetObjectRequest & WithCustomizedAccessLogTag(CustomizedAccessLogTagT &&value)
const Aws::String & GetBucket() const
const Aws::String & GetResponseContentDisposition() const
virtual const char * GetServiceRequestName() const override
void SetResponseContentDisposition(ResponseContentDispositionT &&value)
const Aws::String & GetKey() const
GetObjectRequest & WithVersionId(VersionIdT &&value)
GetObjectRequest & WithChecksumMode(ChecksumMode value)
GetObjectRequest & WithResponseContentLanguage(ResponseContentLanguageT &&value)
GetObjectRequest & WithIfMatch(IfMatchT &&value)
const Aws::String & GetSSECustomerKey() const
const Aws::String & GetRange() const
GetObjectRequest & AddCustomizedAccessLogTag(CustomizedAccessLogTagKeyT &&key, CustomizedAccessLogTagValueT &&value)
const Aws::String & GetSSECustomerKeyMD5() const
GetObjectRequest & WithKey(KeyT &&value)
AWS_S3_API bool ShouldValidateResponseChecksum() const override
AWS_S3_API GetObjectRequest()=default
GetObjectRequest & WithResponseCacheControl(ResponseCacheControlT &&value)
void SetIfNoneMatch(IfNoneMatchT &&value)
GetObjectRequest & WithBucket(BucketT &&value)
const Aws::Map< Aws::String, Aws::String > & GetCustomizedAccessLogTag() const
void SetIfUnmodifiedSince(IfUnmodifiedSinceT &&value)
GetObjectRequest & WithResponseContentEncoding(ResponseContentEncodingT &&value)
void SetIfMatch(IfMatchT &&value)
AWS_S3_API void AddQueryStringParameters(Aws::Http::URI &uri) const override
GetObjectRequest & WithExpectedBucketOwner(ExpectedBucketOwnerT &&value)
const Aws::String & GetExpectedBucketOwner() const
void SetResponseContentLanguage(ResponseContentLanguageT &&value)
GetObjectRequest & WithSSECustomerKey(SSECustomerKeyT &&value)
void SetSSECustomerKey(SSECustomerKeyT &&value)
AWS_S3_API Aws::Vector< Aws::String > GetResponseChecksumAlgorithmNames() const override
const Aws::Utils::DateTime & GetResponseExpires() const
void SetResponseContentType(ResponseContentTypeT &&value)
void SetChecksumMode(ChecksumMode value)
const Aws::String & GetResponseContentEncoding() const
void SetResponseContentEncoding(ResponseContentEncodingT &&value)
void SetCustomizedAccessLogTag(CustomizedAccessLogTagT &&value)
GetObjectRequest & WithResponseContentType(ResponseContentTypeT &&value)
GetObjectRequest & WithIfModifiedSince(IfModifiedSinceT &&value)
GetObjectRequest & WithPartNumber(int value)
void SetRequestPayer(RequestPayer value)
const Aws::String & GetResponseContentLanguage() const
GetObjectRequest & WithResponseContentDisposition(ResponseContentDispositionT &&value)
GetObjectRequest & WithIfNoneMatch(IfNoneMatchT &&value)
GetObjectRequest & WithResponseExpires(ResponseExpiresT &&value)
GetObjectRequest & WithRequestPayer(RequestPayer value)
const Aws::String & GetVersionId() const
void SetVersionId(VersionIdT &&value)
GetObjectRequest & WithRange(RangeT &&value)
GetObjectRequest & WithIfUnmodifiedSince(IfUnmodifiedSinceT &&value)
AWS_S3_API EndpointParameters GetEndpointContextParams() const override
const Aws::Utils::DateTime & GetIfUnmodifiedSince() const
const Aws::String & GetIfNoneMatch() const
GetObjectRequest & WithSSECustomerAlgorithm(SSECustomerAlgorithmT &&value)
const Aws::String & GetIfMatch() const
GetObjectRequest & WithSSECustomerKeyMD5(SSECustomerKeyMD5T &&value)
void SetResponseExpires(ResponseExpiresT &&value)
const Aws::String & GetResponseCacheControl() const
void SetResponseCacheControl(ResponseCacheControlT &&value)
const Aws::String & GetSSECustomerAlgorithm() const
void SetSSECustomerKeyMD5(SSECustomerKeyMD5T &&value)
Aws::Endpoint::EndpointParameters EndpointParameters
Definition S3Request.h:19
Aws::Map< Aws::String, Aws::String > HeaderValueCollection
std::map< K, V, std::less< K >, Aws::Allocator< std::pair< const K, V > > > Map
std::basic_string< char, std::char_traits< char >, Aws::Allocator< char > > String
std::vector< T, Aws::Allocator< T > > Vector