/*
* Copyright Amazon.com, Inc. or its affiliates. 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.
* A copy of the License is located at
*
* http://aws.amazon.com/apache2.0
*
* or in the "license" file accompanying this file. This file 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.
*/
/*
* Do not modify this file. This file is generated from the s3control-2018-08-20.normal.json service model.
*/
using System;
using System.Collections.Generic;
using System.Xml.Serialization;
using System.Text;
using System.IO;
using System.Net;
using Amazon.Runtime;
using Amazon.Runtime.Internal;
namespace Amazon.S3Control.Model
{
///
/// The container for the Outposts bucket lifecycle rule.
///
public partial class LifecycleRule
{
private AbortIncompleteMultipartUpload _abortIncompleteMultipartUpload;
private LifecycleExpiration _expiration;
private LifecycleRuleFilter _filter;
private string _id;
private NoncurrentVersionExpiration _noncurrentVersionExpiration;
private List _noncurrentVersionTransitions = new List();
private ExpirationStatus _status;
private List _transitions = new List();
///
/// Gets and sets the property AbortIncompleteMultipartUpload.
///
/// Specifies the days since the initiation of an incomplete multipart upload that Amazon
/// S3 waits before permanently removing all parts of the upload. For more information,
/// see
/// Aborting Incomplete Multipart Uploads Using a Bucket Lifecycle Configuration in
/// the Amazon S3 User Guide.
///
///
public AbortIncompleteMultipartUpload AbortIncompleteMultipartUpload
{
get { return this._abortIncompleteMultipartUpload; }
set { this._abortIncompleteMultipartUpload = value; }
}
// Check to see if AbortIncompleteMultipartUpload property is set
internal bool IsSetAbortIncompleteMultipartUpload()
{
return this._abortIncompleteMultipartUpload != null;
}
///
/// Gets and sets the property Expiration.
///
/// Specifies the expiration for the lifecycle of the object in the form of date, days
/// and, whether the object has a delete marker.
///
///
public LifecycleExpiration Expiration
{
get { return this._expiration; }
set { this._expiration = value; }
}
// Check to see if Expiration property is set
internal bool IsSetExpiration()
{
return this._expiration != null;
}
///
/// Gets and sets the property Filter.
///
/// The container for the filter of lifecycle rule.
///
///
public LifecycleRuleFilter Filter
{
get { return this._filter; }
set { this._filter = value; }
}
// Check to see if Filter property is set
internal bool IsSetFilter()
{
return this._filter != null;
}
///
/// Gets and sets the property ID.
///
/// Unique identifier for the rule. The value cannot be longer than 255 characters.
///
///
public string ID
{
get { return this._id; }
set { this._id = value; }
}
// Check to see if ID property is set
internal bool IsSetID()
{
return this._id != null;
}
///
/// Gets and sets the property NoncurrentVersionExpiration.
///
/// The noncurrent version expiration of the lifecycle rule.
///
///
public NoncurrentVersionExpiration NoncurrentVersionExpiration
{
get { return this._noncurrentVersionExpiration; }
set { this._noncurrentVersionExpiration = value; }
}
// Check to see if NoncurrentVersionExpiration property is set
internal bool IsSetNoncurrentVersionExpiration()
{
return this._noncurrentVersionExpiration != null;
}
///
/// Gets and sets the property NoncurrentVersionTransitions.
///
/// Specifies the transition rule for the lifecycle rule that describes when noncurrent
/// objects transition to a specific storage class. If your bucket is versioning-enabled
/// (or versioning is suspended), you can set this action to request that Amazon S3 transition
/// noncurrent object versions to a specific storage class at a set period in the object's
/// lifetime.
///
///
///
/// This is not supported by Amazon S3 on Outposts buckets.
///
///
///
public List NoncurrentVersionTransitions
{
get { return this._noncurrentVersionTransitions; }
set { this._noncurrentVersionTransitions = value; }
}
// Check to see if NoncurrentVersionTransitions property is set
internal bool IsSetNoncurrentVersionTransitions()
{
return this._noncurrentVersionTransitions != null && this._noncurrentVersionTransitions.Count > 0;
}
///
/// Gets and sets the property Status.
///
/// If 'Enabled', the rule is currently being applied. If 'Disabled', the rule is not
/// currently being applied.
///
///
[AWSProperty(Required=true)]
public ExpirationStatus Status
{
get { return this._status; }
set { this._status = value; }
}
// Check to see if Status property is set
internal bool IsSetStatus()
{
return this._status != null;
}
///
/// Gets and sets the property Transitions.
///
/// Specifies when an Amazon S3 object transitions to a specified storage class.
///
///
///
/// This is not supported by Amazon S3 on Outposts buckets.
///
///
///
public List Transitions
{
get { return this._transitions; }
set { this._transitions = value; }
}
// Check to see if Transitions property is set
internal bool IsSetTransitions()
{
return this._transitions != null && this._transitions.Count > 0;
}
}
}