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/OssResult.h>
19 #include <memory>
20 #include <iostream>
21 #include <list>
22 
23 namespace AlibabaCloud
24 {
25 namespace OSS
26 {
27     class ALIBABACLOUD_OSS_EXPORT DeletedObject
28     {
29     public:
DeletedObject()30         DeletedObject():deleteMarker_(false) {}
Key()31         const std::string& Key() const { return key_; }
VersionId()32         const std::string& VersionId() const { return versionId_; }
DeleteMarkerVersionId()33         const std::string& DeleteMarkerVersionId() const { return deleteMarkerVersionId_; }
DeleteMarker()34         bool DeleteMarker() const { return deleteMarker_; }
setKey(const std::string & value)35         void setKey(const std::string& value) { key_ = value; }
setVersionId(const std::string & value)36         void setVersionId(const std::string& value) { versionId_ = value; }
setDeleteMarkerVersionId(const std::string & value)37         void setDeleteMarkerVersionId(const std::string& value) { deleteMarkerVersionId_ = value; }
setDeleteMarker(bool value)38         void setDeleteMarker(bool value) { deleteMarker_ = value; }
39     private:
40         std::string key_;
41         std::string versionId_;
42         std::string deleteMarkerVersionId_;
43         bool deleteMarker_;
44     };
45     using DeletedObjectList = std::vector<DeletedObject>;
46 
47     class ALIBABACLOUD_OSS_EXPORT DeleteObjectVersionsResult : public OssResult
48     {
49     public:
50         DeleteObjectVersionsResult();
51         DeleteObjectVersionsResult(const std::string& data);
52         DeleteObjectVersionsResult(const std::shared_ptr<std::iostream>& data);
53         DeleteObjectVersionsResult& operator=(const std::string& data);
54         bool Quiet() const;
55         const DeletedObjectList& DeletedObjects() const;
56     private:
57         bool quiet_;
58         DeletedObjectList deletedObjects_;
59     };
60 }
61 }
62