<gh_stars>0// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. ***
// *** Do not edit by hand unless you're certain you know what you are doing! ***

using System;
using System.Collections.Generic;
using System.Collections.Immutable;
using System.Threading.Tasks;
using Pulumi.Serialization;
using Pulumi;

namespace TencentCloudIAC.PulumiPackage.Tencentcloud.Cos.Outputs
{

    [OutputType]
    public sealed class BucketLifecycleRule
    {
        /// <summary>
        /// Specifies a period in the object's expire (documented below).
        /// </summary>
        public readonly Outputs.BucketLifecycleRuleExpiration? Expiration;
        /// <summary>
        /// Object key prefix identifying one or more objects to which the rule applies.
        /// </summary>
        public readonly string FilterPrefix;
        /// <summary>
        /// A unique identifier for the rule. It can be up to 255 characters.
        /// </summary>
        public readonly string? Id;
        /// <summary>
        /// Specifies when non current object versions shall expire.
        /// </summary>
        public readonly Outputs.BucketLifecycleRuleNonCurrentExpiration? NonCurrentExpiration;
        /// <summary>
        /// Specifies a period in the non current object's transitions.
        /// </summary>
        public readonly ImmutableArray<Outputs.BucketLifecycleRuleNonCurrentTransition> NonCurrentTransitions;
        /// <summary>
        /// Specifies a period in the object's transitions (documented below).
        /// </summary>
        public readonly ImmutableArray<Outputs.BucketLifecycleRuleTransition> Transitions;

        [OutputConstructor]
        private BucketLifecycleRule(
            Outputs.BucketLifecycleRuleExpiration? expiration,

            string filterPrefix,

            string? id,

            Outputs.BucketLifecycleRuleNonCurrentExpiration? nonCurrentExpiration,

            ImmutableArray<Outputs.BucketLifecycleRuleNonCurrentTransition> nonCurrentTransitions,

            ImmutableArray<Outputs.BucketLifecycleRuleTransition> transitions)
        {
            Expiration = expiration;
            FilterPrefix = filterPrefix;
            Id = id;
            NonCurrentExpiration = nonCurrentExpiration;
            NonCurrentTransitions = nonCurrentTransitions;
            Transitions = transitions;
        }
    }
}
