<reponame>luxifer/pulumi-scaleway// *** 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 luxifer.Scaleway.Outputs
{

    [OutputType]
    public sealed class ObjectBucketLifecycleRule
    {
        /// <summary>
        /// Specifies the number of days after initiating a multipart upload when the multipart upload must be completed.
        /// </summary>
        public readonly int? AbortIncompleteMultipartUploadDays;
        /// <summary>
        /// The element value can be either Enabled or Disabled. If a rule is disabled, Scaleway S3 doesn't perform any of the actions defined in the rule.
        /// </summary>
        public readonly bool Enabled;
        /// <summary>
        /// Specifies a period in the object's expire (documented below).
        /// </summary>
        public readonly Outputs.ObjectBucketLifecycleRuleExpiration? Expiration;
        /// <summary>
        /// Unique identifier for the rule. Must be less than or equal to 255 characters in length.
        /// </summary>
        public readonly string? Id;
        /// <summary>
        /// Object key prefix identifying one or more objects to which the rule applies.
        /// </summary>
        public readonly string? Prefix;
        /// <summary>
        /// Specifies object tags key and value.
        /// </summary>
        public readonly ImmutableDictionary<string, string>? Tags;
        /// <summary>
        /// Specifies a period in the object's transitions (documented below).
        /// </summary>
        public readonly ImmutableArray<Outputs.ObjectBucketLifecycleRuleTransition> Transitions;

        [OutputConstructor]
        private ObjectBucketLifecycleRule(
            int? abortIncompleteMultipartUploadDays,

            bool enabled,

            Outputs.ObjectBucketLifecycleRuleExpiration? expiration,

            string? id,

            string? prefix,

            ImmutableDictionary<string, string>? tags,

            ImmutableArray<Outputs.ObjectBucketLifecycleRuleTransition> transitions)
        {
            AbortIncompleteMultipartUploadDays = abortIncompleteMultipartUploadDays;
            Enabled = enabled;
            Expiration = expiration;
            Id = id;
            Prefix = prefix;
            Tags = tags;
            Transitions = transitions;
        }
    }
}
