1 /* 2 * Copyright 2009-2017 Alibaba Cloud 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 * You may obtain a copy of the License at 7 * 8 * http://www.apache.org/licenses/LICENSE-2.0 9 * 10 * Unless required by applicable law or agreed to in writing, software 11 * distributed under the License is distributed on an "AS IS" BASIS, 12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 * See the License for the specific language governing permissions and 14 * limitations under the License. 15 */ 16 17 #pragma once 18 #include <alibabacloud/oss/model/Bucket.h> 19 #include <vector> 20 #include <memory> 21 #include <iostream> 22 #include <alibabacloud/oss/OssResult.h> 23 #include <alibabacloud/oss/model/Owner.h> 24 25 namespace AlibabaCloud 26 { 27 namespace OSS 28 { 29 class ListObjectVersionsResult; 30 class ALIBABACLOUD_OSS_EXPORT ObjectVersionSummary 31 { 32 public: 33 ObjectVersionSummary() = default; Key()34 const std::string& Key() const { return key_; } VersionId()35 const std::string& VersionId() const { return versionid_; } ETag()36 const std::string& ETag()const { return eTag_; } LastModified()37 const std::string& LastModified() const { return lastModified_; } StorageClass()38 const std::string& StorageClass() const { return storageClass_; } Type()39 const std::string& Type() const { return type_; } Size()40 int64_t Size() const { return size_; } IsLatest()41 bool IsLatest() const { return isLatest_; } Owner()42 const AlibabaCloud::OSS::Owner& Owner() const { return owner_; } 43 private: 44 friend class ListObjectVersionsResult; 45 std::string key_; 46 std::string versionid_; 47 std::string eTag_; 48 std::string lastModified_; 49 std::string storageClass_; 50 std::string type_; 51 int64_t size_; 52 bool isLatest_; 53 AlibabaCloud::OSS::Owner owner_; 54 }; 55 using ObjectVersionSummaryList = std::vector<ObjectVersionSummary>; 56 57 class ALIBABACLOUD_OSS_EXPORT DeleteMarkerSummary 58 { 59 public: 60 DeleteMarkerSummary() = default; Key()61 const std::string& Key() const { return key_; } VersionId()62 const std::string& VersionId() const { return versionid_; } LastModified()63 const std::string& LastModified() const { return lastModified_; } IsLatest()64 bool IsLatest() const { return isLatest_; } Owner()65 const AlibabaCloud::OSS::Owner& Owner() const { return owner_; } 66 private: 67 friend class ListObjectVersionsResult; 68 std::string key_; 69 std::string versionid_; 70 std::string lastModified_; 71 bool isLatest_; 72 AlibabaCloud::OSS::Owner owner_; 73 }; 74 using DeleteMarkerSummaryList = std::vector<DeleteMarkerSummary>; 75 76 class ALIBABACLOUD_OSS_EXPORT ListObjectVersionsResult : public OssResult 77 { 78 public: 79 ListObjectVersionsResult(); 80 ListObjectVersionsResult(const std::string& data); 81 ListObjectVersionsResult(const std::shared_ptr<std::iostream>& data); 82 ListObjectVersionsResult& operator=(const std::string& data); Name()83 const std::string& Name() const { return name_; } Prefix()84 const std::string& Prefix() const { return prefix_; } KeyMarker()85 const std::string& KeyMarker() const { return keyMarker_; } NextKeyMarker()86 const std::string& NextKeyMarker() const { return nextKeyMarker_; } VersionIdMarker()87 const std::string& VersionIdMarker() const { return versionIdMarker_; } NextVersionIdMarker()88 const std::string& NextVersionIdMarker() const { return nextVersionIdMarker_; } Delimiter()89 const std::string& Delimiter() const { return delimiter_; } EncodingType()90 const std::string& EncodingType() const { return encodingType_; } MaxKeys()91 int MaxKeys() const { return maxKeys_; } IsTruncated()92 bool IsTruncated() const { return isTruncated_; } CommonPrefixes()93 const CommonPrefixeList& CommonPrefixes() const { return commonPrefixes_; } ObjectVersionSummarys()94 const ObjectVersionSummaryList& ObjectVersionSummarys() const { return objectVersionSummarys_; } DeleteMarkerSummarys()95 const DeleteMarkerSummaryList& DeleteMarkerSummarys() const { return deleteMarkerSummarys_; } 96 private: 97 std::string name_; 98 std::string prefix_; 99 std::string keyMarker_; 100 std::string nextKeyMarker_; 101 std::string versionIdMarker_; 102 std::string nextVersionIdMarker_; 103 std::string delimiter_; 104 std::string encodingType_; 105 bool isTruncated_; 106 int maxKeys_; 107 CommonPrefixeList commonPrefixes_; 108 ObjectVersionSummaryList objectVersionSummarys_; 109 DeleteMarkerSummaryList deleteMarkerSummarys_; 110 }; 111 } 112 } 113