import { EndpointParameterInstructions } from "@aws-sdk/middleware-endpoint"; import { Command as $Command } from "@aws-sdk/smithy-client"; import { Handler, HttpHandlerOptions as __HttpHandlerOptions, MetadataBearer as __MetadataBearer, MiddlewareStack } from "@aws-sdk/types"; import { PutBucketLifecycleConfigurationRequest } from "../models/models_0"; import { S3ClientResolvedConfig, ServiceInputTypes, ServiceOutputTypes } from "../S3Client"; /** * @public * * The input for {@link PutBucketLifecycleConfigurationCommand}. */ export interface PutBucketLifecycleConfigurationCommandInput extends PutBucketLifecycleConfigurationRequest { } /** * @public * * The output of {@link PutBucketLifecycleConfigurationCommand}. */ export interface PutBucketLifecycleConfigurationCommandOutput extends __MetadataBearer { } /** * @public *
Creates a new lifecycle configuration for the bucket or replaces an existing lifecycle * configuration. Keep in mind that this will overwrite an existing lifecycle configuration, so if * you want to retain any configuration details, they must be included in the new 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 are related to PutBucketLifecycleConfiguration: