/* * 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. */ using System; using System.Collections.Generic; using System.Xml.Serialization; using System.Text; using System.IO; using Amazon.Runtime; using Amazon.Runtime.Internal; namespace Amazon.S3.Model { /// /// Container for the parameters to the PutLifecycleConfiguration operation. /// Creates a new lifecycle configuration for the bucket or replaces an existing lifecycle /// configuration. For information about lifecycle configuration, see Managing /// your storage lifecycle. /// /// /// /// Bucket lifecycle configuration now supports specifying a lifecycle rule using an object /// key name prefix, one or more object tags, or a combination of both. Accordingly, this /// section describes the latest API. The previous version of the API supported filtering /// based only on an object key name prefix, which is supported for backward compatibility. /// For the related API description, see PutBucketLifecycle. /// ///
Rules
/// /// You specify the lifecycle configuration in your request body. The lifecycle configuration /// is specified as XML consisting of one or more rules. An Amazon S3 Lifecycle configuration /// can have up to 1,000 rules. This limit is not adjustable. Each rule consists of the /// following: /// ///
  • /// /// Filter identifying a subset of objects to which the rule applies. The filter can be /// based on a key name prefix, object tags, or a combination of both. /// ///
  • /// /// Status whether the rule is in effect. /// ///
  • /// /// One or more lifecycle transition and expiration actions that you want Amazon S3 to /// perform on the objects identified by the filter. If the state of your bucket is versioning-enabled /// or versioning-suspended, you can have many versions of the same object (one current /// version and zero or more noncurrent versions). Amazon S3 provides predefined actions /// that you can specify for current and noncurrent object versions. /// ///
/// /// For more information, see Object /// Lifecycle Management and Lifecycle /// Configuration Elements. /// ///
Permissions
/// /// By default, all Amazon S3 resources are private, including buckets, objects, and related /// subresources (for example, lifecycle configuration and website configuration). Only /// the resource owner (that is, the Amazon Web Services account that created it) can /// access the resource. The resource owner can optionally grant access permissions to /// others by writing an access policy. For this operation, a user must get the s3:PutLifecycleConfiguration /// permission. /// /// /// /// You can also explicitly deny permissions. Explicit deny also supersedes any other /// permissions. If you want to block users or accounts from removing or deleting objects /// from your bucket, you must deny them permissions for the following actions: /// ///
  • /// /// s3:DeleteObject /// ///
  • /// /// s3:DeleteObjectVersion /// ///
  • /// /// s3:PutLifecycleConfiguration /// ///
/// /// For more information about permissions, see Managing /// Access Permissions to Your Amazon S3 Resources. /// ///
/// /// The following operations are related to PutBucketLifecycleConfiguration: /// /// ///
public partial class PutLifecycleConfigurationRequest : AmazonWebServiceRequest { private string bucketName; private ChecksumAlgorithm _checksumAlgorithm; private LifecycleConfiguration lifecycleConfiguration; private string expectedBucketOwner; /// /// Gets and sets the property BucketName. /// /// The name of the bucket for which to set the configuration. /// /// public string BucketName { get { return this.bucketName; } set { this.bucketName = value; } } // Check to see if BucketName property is set internal bool IsSetBucketName() { return this.bucketName != null; } /// /// Gets and sets the property ChecksumAlgorithm. /// public ChecksumAlgorithm ChecksumAlgorithm { get { return this._checksumAlgorithm; } set { this._checksumAlgorithm = value; } } // Check to see if ChecksumAlgorithm property is set internal bool IsSetChecksumAlgorithm() { return this._checksumAlgorithm != null; } /// /// The lifecycle configuration to be applied. /// public LifecycleConfiguration Configuration { get { return this.lifecycleConfiguration; } set { this.lifecycleConfiguration = value; } } // Check to see if Configuration property is set internal bool IsSetConfiguration() { return this.lifecycleConfiguration != null; } /// /// Gets and sets the property ExpectedBucketOwner. /// /// The account ID of the expected bucket owner. If the bucket is owned by a different /// account, the request will fail with an HTTP 403 (Access Denied) error. /// /// public string ExpectedBucketOwner { get { return this.expectedBucketOwner; } set { this.expectedBucketOwner = value; } } // Check to see if ExpectedBucketOwner property is set internal bool IsSetExpectedBucketOwner() { return !String.IsNullOrEmpty(this.expectedBucketOwner); } } }