sdk/include/alibabacloud/oss/model/LifecycleRule.h (93 lines of code) (raw):

/* * Copyright 2009-2017 Alibaba Cloud All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #pragma once #include <string> #include <vector> #include <alibabacloud/oss/Export.h> #include <alibabacloud/oss/Types.h> #include <alibabacloud/oss/model/Tagging.h> namespace AlibabaCloud { namespace OSS { class ALIBABACLOUD_OSS_EXPORT LifeCycleExpiration { public: LifeCycleExpiration(); LifeCycleExpiration(uint32_t days); LifeCycleExpiration(const std::string& createdBeforeDate); void setDays(uint32_t days); void setCreatedBeforeDate(const std::string& date); uint32_t Days() const { return days_; } const std::string& CreatedBeforeDate() const { return createdBeforeDate_; } private: uint32_t days_; std::string createdBeforeDate_; }; class ALIBABACLOUD_OSS_EXPORT LifeCycleTransition { public: LifeCycleTransition() = default; LifeCycleTransition(const LifeCycleExpiration& expiration, AlibabaCloud::OSS::StorageClass storageClass); void setExpiration(const LifeCycleExpiration& expiration); void setStorageClass(AlibabaCloud::OSS::StorageClass storageClass); const LifeCycleExpiration& Expiration() const { return expiration_; } LifeCycleExpiration& Expiration() { return expiration_; } AlibabaCloud::OSS::StorageClass StorageClass() const { return storageClass_; } private: LifeCycleExpiration expiration_; AlibabaCloud::OSS::StorageClass storageClass_; }; using LifeCycleTransitionList = std::vector<LifeCycleTransition>; class ALIBABACLOUD_OSS_EXPORT LifecycleRule { public: LifecycleRule(); const std::string& ID() const { return id_; } const std::string& Prefix() const { return prefix_; } RuleStatus Status() const { return status_;} const LifeCycleExpiration& Expiration() const { return expiration_; } const LifeCycleTransitionList& TransitionList() const { return transitionList_; } const LifeCycleExpiration& AbortMultipartUpload() const { return abortMultipartUpload_; } LifeCycleExpiration& Expiration() { return expiration_; } LifeCycleTransitionList& TransitionList() { return transitionList_; } LifeCycleExpiration& AbortMultipartUpload() { return abortMultipartUpload_; } const TagSet& Tags() const { return tagSet_; } TagSet& Tags() { return tagSet_; } void setID(const std::string& id) { id_ = id; } void setPrefix(const std::string& prefix) { prefix_ = prefix; } void setStatus(RuleStatus status) { status_ = status; } void setExpiration(const LifeCycleExpiration& expiration) { expiration_ = expiration; } void addTransition(const LifeCycleTransition&transition) { transitionList_.push_back(transition); } void setTransitionList(const LifeCycleTransitionList& transitionList) { transitionList_ = transitionList; } void setAbortMultipartUpload(const LifeCycleExpiration& expiration) { abortMultipartUpload_ = expiration; } void addTag(const Tag& tag) { tagSet_.push_back(tag); } void setTags(const TagSet& tags) { tagSet_ = tags; } bool hasExpiration() const; bool hasTransitionList() const; bool hasAbortMultipartUpload() const; bool operator==(const LifecycleRule& right) const; bool ExpiredObjectDeleteMarker() const { return expiredObjectDeleteMarker_; }; const LifeCycleExpiration& NoncurrentVersionExpiration() const { return noncurrentVersionExpiration_; } const LifeCycleTransitionList& NoncurrentVersionTransitionList() const { return noncurrentVersionTransitionList_; } LifeCycleExpiration& NoncurrentVersionExpiration() { return noncurrentVersionExpiration_; } LifeCycleTransitionList& NoncurrentVersionTransitionList() { return noncurrentVersionTransitionList_; } void setExpiredObjectDeleteMarker(bool value) { expiredObjectDeleteMarker_ = value; }; void setNoncurrentVersionExpiration(const LifeCycleExpiration& expiration) { noncurrentVersionExpiration_ = expiration; } void addNoncurrentVersionTransition(const LifeCycleTransition&transition) { noncurrentVersionTransitionList_.push_back(transition); } void setNoncurrentVersionTransitionList(const LifeCycleTransitionList& transitionList) { noncurrentVersionTransitionList_ = transitionList; } bool hasNoncurrentVersionExpiration() const; bool hasNoncurrentVersionTransitionList() const; private: std::string id_; std::string prefix_; RuleStatus status_; LifeCycleExpiration expiration_; LifeCycleTransitionList transitionList_; LifeCycleExpiration abortMultipartUpload_; TagSet tagSet_; bool expiredObjectDeleteMarker_; LifeCycleExpiration noncurrentVersionExpiration_; LifeCycleTransitionList noncurrentVersionTransitionList_; }; using LifecycleRuleList = std::vector<LifecycleRule>; } }