<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;

namespace Pulumi.AliCloud.Oss.Outputs
{

    [OutputType]
    public sealed class GetBucketsBucketResult
    {
        /// <summary>
        /// Bucket access control list. Possible values: `private`, `public-read` and `public-read-write`.
        /// </summary>
        public readonly string Acl;
        /// <summary>
        /// A list of CORS rule configurations. Each element contains the following attributes:
        /// </summary>
        public readonly ImmutableArray<Outputs.GetBucketsBucketCorsRuleResult> CorsRules;
        /// <summary>
        /// Bucket creation date.
        /// </summary>
        public readonly string CreationDate;
        /// <summary>
        /// Internet domain name for accessing the bucket from outside.
        /// </summary>
        public readonly string ExtranetEndpoint;
        /// <summary>
        /// Intranet domain name for accessing the bucket from an ECS instance in the same region.
        /// </summary>
        public readonly string IntranetEndpoint;
        /// <summary>
        /// A list CORS of lifecycle configurations. When Lifecycle is enabled, OSS automatically deletes the objects or transitions the objects (to another storage class) corresponding the lifecycle rules on a regular basis. Each element contains the following attributes:
        /// </summary>
        public readonly ImmutableArray<Outputs.GetBucketsBucketLifecycleRuleResult> LifecycleRules;
        /// <summary>
        /// Region of the data center where the bucket is located.
        /// </summary>
        public readonly string Location;
        /// <summary>
        /// A list of one element containing configuration parameters used for storing access log information. It contains the following attributes:
        /// </summary>
        public readonly Outputs.GetBucketsBucketLoggingResult Logging;
        /// <summary>
        /// Bucket name.
        /// </summary>
        public readonly string Name;
        /// <summary>
        /// Bucket owner.
        /// </summary>
        public readonly string Owner;
        public readonly string? Policy;
        /// <summary>
        /// Redundancy type. Possible values: `LRS`, and `ZRS`.
        /// </summary>
        public readonly string RedundancyType;
        /// <summary>
        /// A list of one element containing referer configuration. It contains the following attributes:
        /// </summary>
        public readonly Outputs.GetBucketsBucketRefererConfigResult RefererConfig;
        /// <summary>
        /// A configuration of default encryption for a bucket. It contains the following attributes:
        /// </summary>
        public readonly Outputs.GetBucketsBucketServerSideEncryptionRuleResult ServerSideEncryptionRule;
        /// <summary>
        /// Object storage type. Possible values: `Standard`, `IA`, `Archive` and `ColdArchive`.
        /// </summary>
        public readonly string StorageClass;
        /// <summary>
        /// A mapping of tags.
        /// </summary>
        public readonly ImmutableDictionary<string, object> Tags;
        /// <summary>
        /// If present , the versioning state has been set on the bucket. It contains the following attribute.
        /// </summary>
        public readonly Outputs.GetBucketsBucketVersioningResult Versioning;
        /// <summary>
        /// A list of one element containing configuration parameters used when the bucket is used as a website. It contains the following attributes:
        /// </summary>
        public readonly Outputs.GetBucketsBucketWebsiteResult Website;

        [OutputConstructor]
        private GetBucketsBucketResult(
            string acl,

            ImmutableArray<Outputs.GetBucketsBucketCorsRuleResult> corsRules,

            string creationDate,

            string extranetEndpoint,

            string intranetEndpoint,

            ImmutableArray<Outputs.GetBucketsBucketLifecycleRuleResult> lifecycleRules,

            string location,

            Outputs.GetBucketsBucketLoggingResult logging,

            string name,

            string owner,

            string? policy,

            string redundancyType,

            Outputs.GetBucketsBucketRefererConfigResult refererConfig,

            Outputs.GetBucketsBucketServerSideEncryptionRuleResult serverSideEncryptionRule,

            string storageClass,

            ImmutableDictionary<string, object> tags,

            Outputs.GetBucketsBucketVersioningResult versioning,

            Outputs.GetBucketsBucketWebsiteResult website)
        {
            Acl = acl;
            CorsRules = corsRules;
            CreationDate = creationDate;
            ExtranetEndpoint = extranetEndpoint;
            IntranetEndpoint = intranetEndpoint;
            LifecycleRules = lifecycleRules;
            Location = location;
            Logging = logging;
            Name = name;
            Owner = owner;
            Policy = policy;
            RedundancyType = redundancyType;
            RefererConfig = refererConfig;
            ServerSideEncryptionRule = serverSideEncryptionRule;
            StorageClass = storageClass;
            Tags = tags;
            Versioning = versioning;
            Website = website;
        }
    }
}
